-
Posts
5117 -
Joined
-
Last visited
-
Days Won
75
Posts posted by Choonster
-
-
registerRender should only use its Item argument, it shouldn't use any of the Item fields.
-
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.
-
This is actually a bad idea since it has some unwanted side-effects. UsesourceSets { main { output.resourcesDir = output.classesDir } }
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.
-
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.
-
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.
-
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?
-
IntelliJ IDEA doesn't copy resources properly for Gradle projects by default. Add the following snippet to your build.gradle script to fix it.
sourceSets { main { output.resourcesDir = output.classesDir } }
-
Use Block#getMaterial to get a Block's Material or use Block#isWood to check if a Block is wood.
-
Do you have CCC and NEI in your Eclipse project anyway or are they missing? They may have been already been downloaded.
-
You can use StatCollector.translateToLocal to translate a key (e.g. "translation.test.none") to the current language.
-
Ah, I wasn't entirely sure what ObfuscationReflectionHelper was for. Thanks for informing me.
ReflectionHelper won't automatically obfuscate/deobfuscate names for you, but it does let you provide both the MCP and SRG names of a field/method to save you the trouble of using reflection on both names individually.
-
AbstractClientPlayer#getSkinType will return "slim" or "default" depending on whether the player is using the Alex or Steve skin type, respectively.
To change a player's skin, call AbstractClientPlayer#getPlayerInfo using reflection to get the player's NetworkPlayerInfo then use reflection to set the NetworkPlayerInfo#locationSkin field.
-
java.lang.ClassNotFoundException: com.Northcraft.mod.proxy.ClientProxypackage 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.
-
Which line is 150?
Your reflection probably won't work on obfuscated clients since the method is present with its SRG name (EntityRenderer#func_175069_a) rather than its MCP (deobfuscated) name. FML's ReflectionHelper and ObfuscationReflectionHelper will help with this.
-
ChunkProviderGenerate has a fixed number of fields containing the vanilla structures to generate, but you can replace them with your own using InitMapGenEvent. You may be able to extend MapGenVillage to generate both vanilla villages and your own villages, but it would probably be a fairly hackish solution.
-
Override Item#onItemRightClick to toggle the EntityPlayer's flight ability using the fields I described in my original post.
You'll probably want to do this on the server and call EntityPlayer#sendPlayerAbilities to sync it with the client (I haven't tried to implement this, so I'm not entirely sure).
-
The EntityPlayer#capabilities field holds the player's PlayerCapabilities instance. The PlayerCapabilities#allowFlying field controls whether or not the player can fly.
-
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.
-
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.
-
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).
-
Do you have a blockstates file for the new block?
Try following The Grey Ghost's blog post on troubleshooting model errors.
-
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.
-
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.
-
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.
Minecraft Forge Modding 1.8 Problem - Textures Mix
in Modder Support
Posted
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).