Jump to content

Animefan8888

Forge Modder
  • Posts

    6157
  • Joined

  • Last visited

  • Days Won

    59

Everything posted by Animefan8888

  1. Try changing if (!event.player.getEntityWorld.isRemote) //to if (event.player.getEntityWorld.isRemote)
  2. Please post the crash report and always post the crash report when there is one.
  3. In what context are you using this? Because doing Block.getBlockFromItem(item) and then Block#getStateFromMeta(int) should return the proper BlockState for that metadata.
  4. Very true, instead you should use the NeighborNotifyEvent.
  5. Right forum and this is done to prevent modders from misstyping their modid when registering something.
  6. In your class that extends Enchantment you can override Enchantment#canApplyAtEnchantingTable and check if the item in the ItemStack parameter matches your items.
  7. ToolMaterial#getEfficiencyOnProperMaterial exists in version 14.21.1.2387 of 1.12.1.
  8. Then you will want to use an IBakedModel and have your block's blockstate store the ItemStack using a custom IUnlistedProperty that you will apply in Block#getExtendedState.
  9. Then don't use it? What would you like to use?
  10. Don't use a TESR. Using Forge you can load the OBJ model without it using ObjLoader.addDomain and then add the model like you would for a normal block using the blockstate JSON, but point to your OBJ model file instead.
  11. ItemPredicate not ItemPredicates.
  12. Please post the Null Pointer Exception and how you register your Capability.
  13. Yes it does. BlockEvent.BreakEvent#state#getBlock()
  14. It might just be easier to extend ItemPickaxe instead of ItemTool, unless you want to override all of the methods ItemPickaxe does and put them in your class...
  15. This is your problem. If you look at ItemPickaxe you will see it contains a private static final Set that it uses to determine what blocks it can mine.
  16. If I am not mistaken Ender IO and Thermal Expansion send energy through there pipes by just filling there pipes with energy, which allows them to get past all of that path finding that if I am not mistaken IC2 does. Though if you go with my suggestion from the other thread you could bypass all of that and just store it in the 'network' instead of the pipes.
  17. Simple solution; multiple 'network' instances/multiple lists/maps. You would check around for blocks that should be connected to the network and then get their network from them or search for a network with that BlockPos. Of course with this you would also need to check for connecting two networks together.
  18. Your FPS shouldn't be consistently low unless you are handling all of this on the client side as well as the server side which is entirely unnecessary. Also calling findTransferPipes() in an update method is rather ridiculous. Adding things to the network could simply be done in the Block.onBlockPlaced and Block.breakBlock, or Block.onNeighborChanged. And instead of storing the network in the pipes/energy tileentities. You could store it in a WorldSavedData and simply reference it when ever you have a World instance. And then you update the network in a world tick event. Not sure if this is the problem, but it could be.
  19. Two things. Use Block.NULL_AABB instead Second override rayTrace and properly raytrace a collision box.
  20. The problem is that you don't ever register a item model to your block's items, at least as far as I could tell. You need to call ModelLoader.setCustomModelResourceLocation and you can check out this thread for more info.
  21. Because he is using that class as both his Mod class and his event handler class. I am pretty sure that you can not just create a Dimension on the server and expect the Client to be "Ok, I'm connecting to dimension 2. Oh that is similar to the overworld.
  22. Could you also post your Items class, clarify where you put the JSON, make sure the registry name is matching the file name, and you might need to update your forge version I believe there was a bug that would cause the exceptions to not be printed.
  23. That is what I meant, but i worded it weirdly. I understand, and it is kinda obvious, but I did explain it not that well. Instead of new ModelResourceLocation(item.getRegistryName(), variantName); do new ModelResourceLocation(item.getRegistryName() + "variantName", "inventory"); This will require an item model for each metadata at assets/<modid>/models/item/registryName+variantName
×
×
  • Create New...

Important Information

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