Rendu d'item avec un model techne
-
Donc je met quoi plz ?
-
La même chose qu’un item basique.
-
Et comment je lie le render à l’item ?
-
-
Quand j’enregistre mon Item Dans le clientproxy, il m’affiche sa : “Cannot make a static reference to the non-static field assabody.jeje78660.ItemTutorial.itemID”
Mon code :
MinecraftForgeClient.registerItemRenderer(assabody.jeje78660.ItemTutorial.itemID, (IItemRenderer)new ItemTutorielTechneRender()); -
Envoie ta classe principale.
-
Assabody :
ItemTutorial = new ItemTutorial(12000).setUnlocalizedName("ItemTutorial").setTextureName("modtutoriel:ItemTutorial"); GameRegistry.registerItem(ItemTutorial, "ItemTutorial", "ModTutoriel");
ItemTutorial:
package assabody.jeje78660; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; public class ItemTutorial extends Item { public ItemTutorial(int id) { super(id); this.setCreativeTab(CreativeTabs.tabMaterials); } }
AssabodyClientProxy :
public class AssabodyClientProxy extends AssabodyCommonProxy{ @Override public void registerRender() { MinecraftForgeClient.registerItemRenderer(assabody.jeje78660.ItemTutorial.itemID, (IItemRenderer)new ItemTutorielTechneRender()); } }
-
assabody.jeje78660.ItemTutorial.itemID? change par ClassePrincipal.ItemTutorial.itemID?
-
Voila merci sa marche super mais j’aimerais aussi utiliser cet item comme arme et j’ai vu le tuto sur le kit d’outil mais je n’arrive pas a utiliser ce render comme arme, serait-il possible d’ajouter ce chapitre au tuto ?
Merci -
Tu n’as rien a modifier au render, il faut juste modifier l’item.
-
Tu peut me dire quoi plz ?
-
extends ItemSword … et tu fais ton enumTool.
-
Il crash, il me met #“Attempted to load a proxy type assabody.jeje78660.proxy.AssabodyClientProxy into assabody.jeje78660.Assabody.Arme1Assabody, but the types don’t match”(“Attempted to load a proxy type assabody.jeje78660.proxy.AssabodyClientProxy into assabody.jeje78660.Assabody.Arme1Assabody, but the types don’t match”)
Mon code:ItemTutorial = new ItemTutorial(2000, Assabody.Arme1Assabody).setUnlocalizedName("ItemTutorial").setTextureName("assabody:cd1"); GameRegistry.registerItem(ItemTutorial, "ItemTutorial", "assabody");
Mon EnumToolMaterial:
static EnumToolMaterial Arme1Assabody = EnumHelper.addToolMaterial("Arme1Assabody", 3, 2500, 8.0F, 3, 10);
-
Vérifie la ligne "@SidedProxy(clientSide = " dans ta classe principale, si tu ne comprend pas je t’invite à relire le tutoriel sur les proxy.
-
Le proxy marchait vu que j’ai crée juste avant un item 3d…
-
Essaie de déclarer
static EnumToolMaterial Arme1Assabody = EnumHelper.addToolMaterial("Arme1Assabody", 3, 2500, 8.0F, 3, 10); ``` en "public" donc: ```java public static EnumToolMaterial Arme1Assabody = EnumHelper.addToolMaterial("Arme1Assabody", 3, 2500, 8.0F, 3, 10);
-
J’ai oublié de dire que sa me fait une erreur à la déclaration de l’arme :
“new ItemTutorial(2000, Assabody.Arme1Assabody)”
Tout sa souligné de rouge
Et sa me met toujours la même erreur -
Je peux voir la classe?
-
Ma classe principale :
package assabody.jeje78660; import net.minecraftforge.common.EnumHelper; import net.minecraft.item.EnumToolMaterial; import net.minecraft.item.Item; import assabody.jeje78660.proxy.AssabodyCommonProxy; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.registry.GameRegistry; @Mod(modid = "assabody", name="assabody", version="1.0") @NetworkMod(clientSideRequired = true, serverSideRequired = false) public class Assabody { // this.func_110628_a => Minecraft.getMinecraft().renderEngine.bindTexture // .func_111206_d("modid:textureditem") -> .setTextureName("modid:textureditem") // .func_111022_d("modid:texturedebloc") -> .setTextureName("modid:texturedebloc") // mc.func_110434_K().func_110577_a(resourcelocation) -> mc.getTextureManager().bindTexture(resourcelocation) @SidedProxy(clientSide = "assabody.jeje78660.proxy.AssabodyClientProxy", serverSide = "assabody.jeje78660.proxy.AssabodyCommonProxy") public static EnumToolMaterial Arme1Assabody = EnumHelper.addToolMaterial("Arme1Assabody", 3, 2500, 8.0F, 3, 10); public static AssabodyCommonProxy proxy; @Instance("assabody") public static Assabody instance; public static Item ItemTutorial; @EventHandler public void PreInit(FMLPreInitializationEvent event) { //Block, Items, Achievements, Configurations // ID de l'Item + 256 ItemTutorial = new ItemTutorial(2000, Assabody.Arme1Assabody).setUnlocalizedName("ItemTutorial").setTextureName("assabody:cd1"); GameRegistry.registerItem(ItemTutorial, "ItemTutorial", "assabody"); } @EventHandler public void Init(FMLInitializationEvent event) { //Mobs, Render, NetWork, Recipe proxy.registerRender(); } @EventHandler public void PostInit(FMLPostInitializationEvent event) { //Recettes, Cuisson, Languages } }
ItemTutorial:
package assabody.jeje78660; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemSword; public class ItemTutorial extends ItemSword { public ItemTutorial(int id) { super(id, Assabody.Arme1Assabody); this.setCreativeTab(CreativeTabs.tabMaterials); } }
AssabodyClientProxy:
package assabody.jeje78660.proxy; import cpw.mods.fml.common.registry.GameRegistry; import assabody.jeje78660.Assabody; import assabody.jeje78660.ItemTutorielTechneRender; import net.minecraftforge.client.IItemRenderer; import net.minecraftforge.client.MinecraftForgeClient; public class AssabodyClientProxy extends AssabodyCommonProxy{ @Override public void registerRender() { MinecraftForgeClient.registerItemRenderer(Assabody.ItemTutorial.itemID, (IItemRenderer)new ItemTutorielTechneRender()); GameRegistry.registerItem(Assabody.ItemTutorial, "ItemTutorial", "assabody"); } }
-
Dans ta classe principale tu peut enlever le “Assabody.” dans la déclaration de l’item pour l’EnumToolMaterial
Dans la classe de ton item:
Change ça:package assabody.jeje78660; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemSword; public class ItemTutorial extends ItemSword { public ItemTutorial(int id) { super(id, Assabody.Arme1Assabody); this.setCreativeTab(CreativeTabs.tabMaterials); } }
En ça:
package assabody.jeje78660; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemSword; public class ItemTutorial extends ItemSword { public ItemTutorial(int id, EnumToolMaterial toolMaterial) { super(id, toolMaterial); this.setCreativeTab(CreativeTabs.tabMaterials); } }
Dans le clientproxy:
L’enregistrement de l’item ce fait dans la classe principale donc tu déplace ça:GameRegistry.registerItem(Assabody.ItemTutorial, "ItemTutorial", "assabody"); ``` dans ta classe principale