Jump to content

Choonster

Moderators
  • Posts

    5161
  • Joined

  • Last visited

  • Days Won

    76

Everything posted by Choonster

  1. EntityLivingBase.sprintingSpeedBoostModifierUUID contains the UUID of the sprinting speed boost modifier (as the name suggests). I found this by looking at EntityLivingBase#setSprinting.
  2. The crash has nothing to do with the number of recipes, it's caused by one of the recipes having an invalid shape string. Each shape string of a shaped recipe must be the same length, but one of your recipes has one string that's longer than the other two. The issue is with the recipe on line 15 of DMiscModRecipes, I suspect that this is the starInfusedShovel recipe. You don't need to explicitly create an array to call a varargs method like GameRegistry.addRecipe, just pass the arguments to it directly and Java will create the array for you.
  3. Is there a specific reason to use one of these classes vs. the other in normal Forge mod code (i.e. not dealing with ASM)? cpw said a few years ago in this FML pull request that ReflectionHelper is internal and implied that ObfuscationReflectionHelper is essentially the "public API". Is this still the case? (I'm guessing it is since ReflectionHelper is in the fml.relauncher package whereas ObfuscationReflectionHelper is in fml.common)
  4. You can download MCP mappings (both stable and snaphots) from MCPBot.
  5. Did you try disabling the splash screen in config/splash.properties (like LexManos told you to)?
  6. I'd recommend using a lowercase mod ID to avoid any trouble. Though looking at the icon registering code in 1.7.10, the icon name always gets used in the ResourceLocation(String) constructor first; so your mod ID should be converted to lowercase for icons anyway.
  7. Only use events when you need to react to things outside of your control (usually vanilla blocks, items, entities, etc.). For your own classes, you can usually override a method that's called at the appropriate time instead. Your current code is wrong in several ways: You're not registering your instance on the appropriate event bus Even if you were registering it, you'd be replacing every broken block with Main.CastleWall1 since you never check which block was broken In this case, you'll probably want to override Block#breakBlock or Block#removedByPlayer.
  8. Use World#getBlockState to get the IBlockState at a BlockPos and IBlockState#getBlock to get the Block from an IBlockState.
  9. This is possible, since 1.7.10 only converts the domain of a ResourceLocation to lowercase from the ResourceLocation(String) constructor but not the ResourceLocation(String,String) constructor.
  10. Override Block#onBlockActivated to do something when the Block is right clicked. Use EntityPlayer#getHeldItem to get the player's held item. To spawn an Entity, check if it's the server (world.isRemote is false), create the Entity object and then call World#spawnEntityInWorld.
  11. In that screenshot, you're calling registerRender with the non-existent item variable. What I'm telling you to do is change the code inside the registerRender method to use the item argument.
  12. From your PM: public static void registerRenders() { registerRender(Small_Flint); registerRender(Twigs); } This part is correct, but inside the registerRender method you should use item instead of Small_Flint or Twigs.
  13. I'm pretty sure the error is because your SimpleNetworkWrapper channel name exceeds the maximum length of 20.
  14. genBiomeTerrain is only called by genTerrainBlocks, the latter is the method called by ChunkProviderGenerate to generate the terrain. Override genTerrainBlocks instead of genBiomeTerrain.
  15. The crash report tells you exactly what went wrong: registerRenders requires an Item argument, but you tried to call it with no arguments. A method named registerRenders (which implies that it registers multiple things) shouldn't need an Item argument (since it should be registering models for multiple items, not just one).
  16. Upload the contents of the crash report (crash-reports/crash-2015-07-27_18.47.15-client.txt) and your code to Gist and link them here. The part you've posted doesn't contain much useful information, I need to see the stacktrace to help you.
  17. You still need to call registerRender with each Item field from registerRenders, but you should be using the item argument within registerRender instead of the fields.
  18. Well post your code and the error, then.
  19. Do you understand what a method argument is and how to use one? This is very basic Java knowledge. Instead of using Small_Flint or Twigs in registerRender, simply use item (the method's argument).
  20. registerRender should only use its Item argument, it shouldn't use any of the Item fields.
  21. registerRender should only register the model for its Item argument. registerRenders should call registerRender once for each Item to register the model for that Item.
  22. 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.
  23. 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.
  24. I'm not too sure what the issue is. Could you put your workspace on GitHub or a similar site and link it here? This .gitignore file will ignore any files that don't need to be tracked in your repository.
  25. Just putting it at the end of the file outside of any block should work. I have it in my mod's build.gradle here. You do have the texture in src/main/resources/assets/letsmod/textures/items/mapleLeaf.png, right?
×
×
  • Create New...

Important Information

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