Jump to content

Choonster

Moderators
  • Posts

    5117
  • Joined

  • Last visited

  • Days Won

    75

Posts posted by Choonster

  1. sourceSets {
        main { output.resourcesDir = output.classesDir }
    }

    This is actually a bad idea since it has some unwanted side-effects. Use
    idea.module.inheritOutputDirs = true

    instead.

    And IntelliJ is not doing anything incorrectly, it's just following what gradle tells it to do.

     

    Thanks, I've replaced the previous code with this code in my mods.

  2. Which overload of onEntityCollidedWithBlock did you override? onEntityCollidedWithBlock(World, BlockPos, Entity) is only called for the Block under an Entity, onEntityCollidedWithBlock(World, BlockPos, IBlockState, Entity) is called for any Block that an Entity collides with.

     

    For an Entity to collide with your Block on any given side, its bounding box needs to be inset by at least 0.01 on that side.

  3. java.lang.ClassNotFoundException: com.Northcraft.mod.proxy.ClientProxy

    package com.northcraft.mod.proxy;

     

    public class ClientProxy extends CommonProxy

     

    Your @SidedProxy annotation doesn't match the actual location of your proxy classes. Namespaces are case-sensitive, com.Northcraft.mod is not the same as com.northcraft.mod.

  4. It seems that IRecipe#getRemainingItems was only added in 1.8.

     

    I'm not sure it's possible to do this with vanilla items in 1.7.10. For your own items, you can use the container item system to damage the item with each craft. I have an example of this here.

  5. To use ore dictionary ingredients, you need to create a ShapedOreRecipe or ShapelessOreRecipe and add it with GameRegistry.addRecipe.

     

    To make a recipe that damages an axe, you need to create your own recipe class. I wrote a class here that does exactly that (I add an instance of it here). This doesn't support ore dictionary ingredients, but you could adapt it to extend ShapelessOreRecipe instead of ShapelessRecipes.

  6. Do you want to add buildings to existing villages or create your own villages from scratch?

     

    If it's the former, I explain how to do that briefly here.

     

    If it's the latter, you may be able to use FML's IWorldGenerator as a wrapper for your MapGenStructure class (since MapGenStructure sets blocks in the World directly rather than using the Block array like other MapGen classes).

  7. If you look at the usages of CreativeTabs#getBackgroundImageName, you'll see that it's only used on this line of GuiContainerCreative:

    this.mc.getTextureManager().bindTexture(new ResourceLocation("textures/gui/container/creative_inventory/tab_" + creativetabs.getBackgroundImageName()));

     

    So your texture needs to be in assets/minecraft/textures/gui/container/creative_inventory/tab_<name> rather than your mod's regular assets folder.

  8. LivingAttackEvent would indeed be a better choice for this. For some reason I thought it was fired when a living entity attacked something rather than when a living entity is attacked by something.

     

    You should be able to use e.source.getSourceOfDamage() to get the attacking Entity (like your original code), Entity#attackEntityFrom to attack the mob and Event#cancel to cancel the event (preventing the damage to the entity with the potion effect).

     

    instanceof will simply return false if used with a null value, so you don't need to explicitly check for null before using it.

  9. You don't need to include water in your model, just set the block's Material to water and add the BlockLiquid.LEVEL property to your BlockState with a default value of 15. You'll also need to register a custom StateMapper to ignore this property when looking for the model.

     

    You can see how BoP does this here and how I do it here.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.