Posted May 30, 20169 yr I am trying to get my texture that I made and a basic model to work. I am new to modding Minecraft. I have the item made in game (Showing purple and black block). Just can't get the texture to work. Here is where I plan to do all the registering of items. I saw somewhere that you can't register textures in a file like this and only can do it in the client proxy. Let me know if that is true. package adversary.advancedskills.init; import adversary.advancedskills.common.items.ASItem; import adversary.advancedskills.common.items.RustySword; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.RenderItem; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.util.ResourceLocation; import net.minecraftforge.fml.client.registry.ClientRegistry; import net.minecraftforge.fml.client.registry.RenderingRegistry; import net.minecraftforge.fml.common.registry.GameRegistry; public class ModItems { public static ClientProxy proxy; public static void init() { //TODO: Register all items RustySword.init(); //TODO: Register all items textures } public static Item registerItem(Item item, String name){ //TODO: Fix Argument list (CUSTOMIZATION: TABS) return registerItem(item,name,null); } public static Item registerItem(Item item, String name, CreativeTabs tab){ item.setUnlocalizedName(name); GameRegistry.register(item); return item; } } Here is my client proxy where I am attempting to register my textures. package adversary.advancedskills.init; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.item.Item; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; public class ClientProxy extends CommonProxy{ @Override public void preInit(FMLPreInitializationEvent event){ } @Override public void init(FMLInitializationEvent event){ super.init(event); } @Override public void postInit(FMLPostInitializationEvent event){ } public static void registerRenders(Item item){ ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(AdvancedSkills.MODID + ":" + item.getUnlocalizedName(), "inventory")); } } Here is the item I am trying to make: package adversary.advancedskills.common.items; import adversary.advancedskills.init.ClientProxy; import adversary.advancedskills.init.ModItems; import net.minecraft.client.Minecraft; import net.minecraftforge.fml.common.registry.GameRegistry; public class RustySword extends ASItem{ public RustySword(){ super(); this.setUnlocalizedName("rustySword"); } public static void init() { RustySword rustySword = new RustySword(); rustySword.setUnlocalizedName("rustySword"); ModItems.registerItem(rustySword, "rustySword"); ClientProxy.registerRenders(rustySword); } } Let me know if you need anything else and I will be happy to supply it.
May 30, 20169 yr Author I am trying to get my texture that I made and a basic model to work. I am new to modding Minecraft. I have the item made in game (Showing purple and black block). Just can't get the texture to work. Here is where I plan to do all the registering of items. I saw somewhere that you can't register textures in a file like this and only can do it in the client proxy. Let me know if that is true. package adversary.advancedskills.init; import adversary.advancedskills.common.items.ASItem; import adversary.advancedskills.common.items.RustySword; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.RenderItem; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.util.ResourceLocation; import net.minecraftforge.fml.client.registry.ClientRegistry; import net.minecraftforge.fml.client.registry.RenderingRegistry; import net.minecraftforge.fml.common.registry.GameRegistry; public class ModItems { public static ClientProxy proxy; public static void init() { //TODO: Register all items RustySword.init(); //TODO: Register all items textures } public static Item registerItem(Item item, String name){ //TODO: Fix Argument list (CUSTOMIZATION: TABS) return registerItem(item,name,null); } public static Item registerItem(Item item, String name, CreativeTabs tab){ item.setUnlocalizedName(name); GameRegistry.register(item); return item; } } Here is my client proxy where I am attempting to register my textures. package adversary.advancedskills.init; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.item.Item; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; public class ClientProxy extends CommonProxy{ @Override public void preInit(FMLPreInitializationEvent event){ } @Override public void init(FMLInitializationEvent event){ super.init(event); } @Override public void postInit(FMLPostInitializationEvent event){ } public static void registerRenders(Item item){ ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(AdvancedSkills.MODID + ":" + item.getUnlocalizedName(), "inventory")); } } Here is the item I am trying to make: package adversary.advancedskills.common.items; import adversary.advancedskills.init.ClientProxy; import adversary.advancedskills.init.ModItems; import net.minecraft.client.Minecraft; import net.minecraftforge.fml.common.registry.GameRegistry; public class RustySword extends ASItem{ public RustySword(){ super(); this.setUnlocalizedName("rustySword"); } public static void init() { RustySword rustySword = new RustySword(); rustySword.setUnlocalizedName("rustySword"); ModItems.registerItem(rustySword, "rustySword"); ClientProxy.registerRenders(rustySword); } } Let me know if you need anything else and I will be happy to supply it.
May 30, 20169 yr Author Here is where I call it. Basically in my overall mod file this is where I plan to register all blocks and items. package adversary.advancedskills.init; import adversary.advancedskills.common.items.RustySword; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventHandler; import net.minecraftforge.fml.common.Mod.Instance; import net.minecraftforge.fml.common.SidedProxy; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; @Mod(modid= AdvancedSkills.MODID, name= AdvancedSkills.MODNAME, version= AdvancedSkills.MODVER) public class AdvancedSkills { public static final String MODID = "advancedSkills"; public static final String MODNAME = "Advanced Skills"; public static final String MODVER = "0.0.0"; public static final String CLIENTPROXY = "adversary.advancedskills.init.ClientProxy"; public static final String COMMONPROXY = "adversary.advancedskills.init.CommonProxy"; @SidedProxy(clientSide = AdvancedSkills.CLIENTPROXY, serverSide = AdvancedSkills.COMMONPROXY) public static CommonProxy proxy; @Instance(value = AdvancedSkills.MODID) public static AdvancedSkills instance; @EventHandler public void preInit(FMLPreInitializationEvent event){ proxy.preInit(event); //Register Blocks ModItems.init(); } @EventHandler public void init(FMLInitializationEvent event){ proxy.init(event); //registerRenders(RustySword.rustySword); } @EventHandler public void postInit(FMLPostInitializationEvent event){ proxy.postInit(event); } }
May 30, 20169 yr Author Here is where I call it. Basically in my overall mod file this is where I plan to register all blocks and items. package adversary.advancedskills.init; import adversary.advancedskills.common.items.RustySword; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventHandler; import net.minecraftforge.fml.common.Mod.Instance; import net.minecraftforge.fml.common.SidedProxy; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; @Mod(modid= AdvancedSkills.MODID, name= AdvancedSkills.MODNAME, version= AdvancedSkills.MODVER) public class AdvancedSkills { public static final String MODID = "advancedSkills"; public static final String MODNAME = "Advanced Skills"; public static final String MODVER = "0.0.0"; public static final String CLIENTPROXY = "adversary.advancedskills.init.ClientProxy"; public static final String COMMONPROXY = "adversary.advancedskills.init.CommonProxy"; @SidedProxy(clientSide = AdvancedSkills.CLIENTPROXY, serverSide = AdvancedSkills.COMMONPROXY) public static CommonProxy proxy; @Instance(value = AdvancedSkills.MODID) public static AdvancedSkills instance; @EventHandler public void preInit(FMLPreInitializationEvent event){ proxy.preInit(event); //Register Blocks ModItems.init(); } @EventHandler public void init(FMLInitializationEvent event){ proxy.init(event); //registerRenders(RustySword.rustySword); } @EventHandler public void postInit(FMLPostInitializationEvent event){ proxy.postInit(event); } }
May 30, 20169 yr Author Also intelliJ is telling me not to use @SidedProxy above where I call the function ClientProxy.registerRenders(rustySword); I am getting a few errors. Seems to be relating to my .json file about not being able to find it? Exception loading model for variant advancedskills:rustySword#inventory for item "advancedskills:rustySword", normal location exception Caused by: java.io.FileNotFoundException: advancedskills:models/item/rustySword.json Exception loading model for variant advancedskills:rustySword#inventory for item "advancedskills:rustySword", blockstate location exception Here is a picture of my package structure: Also here is my .json file { "parent": "builtin/generated", "textures": { "layer0": "advancedskills:items/rustySword" }, "display": { "thirdperson": { "rotation": [ -90, 0, 0 ], "translation": [ 0, 1, -3 ], "scale": [ 0.55, 0.55, 0.55 ] }, "firstperson": { "rotation": [ 0, -135, 25 ], "translation": [ 0, 4, 2 ], "scale": [ 1.7, 1.7, 1.7 ] } } }
May 30, 20169 yr Author Here is an updated picture of the structure. Still getting the same errors. I feel stupid at this point.
May 30, 20169 yr Author Maybe I am looking in a different place, but in my updated structure it has it as main/java/resources/assets/advancedskills/models/items. Isn't that right or am I looking in the wrong place?
May 30, 20169 yr Maybe I am looking in a different place, but in my updated structure it has it as main/java/resources/assets/advancedskills/models/items. Isn't that right or am I looking in the wrong place? The path to item models is models/item , not models/items . item != items Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.