Résolu Problème avec le layer d'une armure
-
Bonjour tout le monde, je suis actuellement les tutos sur le modding forge.
J’en suis à la partie de l’armure. J’ai donc fait quelques tests avec un set d’armure, mais le souci est que je n’arrive pas à lui faire charger un layer que j’ai personnalisé.
Voici ma classe ModTest (j’ai appelé mon mod “test”):package fr.nf.odekproduction.test.common; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemArmor.ArmorMaterial; import net.minecraftforge.common.util.EnumHelper; 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.FMLPreInitializationEvent; import cpw.mods.fml.common.registry.GameRegistry; import fr.nf.odekproduction.test.proxy.CommonProxy; @Mod(modid = "modtest", name = "ModTest", version = "3.1") public class ModTest { @Instance("modtest") public static ModTest instance; @SidedProxy(clientSide = "fr.nf.odekproduction.test.proxy.ClientProxy", serverSide = "fr.nf.odekproduction.test.proxy.CommonProxy") public static CommonProxy proxy; public static Item itemTest, itemTest2, chapeauTest, cuirasseTest, pantalonTest, bottesTest; public static ArmorMaterial ArmureTest = EnumHelper.addArmorMaterial("armureTestMateriel", 25, new int[] {4, 6, 5, 4}, 20); @EventHandler public void preInit(FMLPreInitializationEvent Event) { itemTest = new itemTest().setUnlocalizedName("Test").setTextureName("modtest:item_test").setCreativeTab(CreativeTabs.tabMaterials); itemTest2 = new itemTest().setUnlocalizedName("Test2").setTextureName("modtest:item_test2").setCreativeTab(CreativeTabs.tabMaterials); chapeauTest = new itemArmureTest(ArmureTest, 0).setUnlocalizedName("chapeauTest").setTextureName("modtest:item_chapeau_test"); cuirasseTest = new itemArmureTest(ArmureTest, 1).setUnlocalizedName("cuirasseTest").setTextureName("modtest:item_cuirasse_test"); pantalonTest = new itemArmureTest(ArmureTest, 2).setUnlocalizedName("pantalonTest").setTextureName("modtest:item_pantalon_test"); bottesTest = new itemArmureTest(ArmureTest, 3).setUnlocalizedName("bottesTest").setTextureName("modtest:item_bottes_test"); GameRegistry.registerItem(itemTest, "item_test"); GameRegistry.registerItem(itemTest2, "item_test2"); GameRegistry.registerItem(chapeauTest, "item_chapeau_test"); GameRegistry.registerItem(cuirasseTest, "item_cuirasse_test"); GameRegistry.registerItem(pantalonTest, "item_pantalon_test"); GameRegistry.registerItem(bottesTest, "item_bottes_test"); } @EventHandler public void init(FMLInitializationEvent Event) { proxy.registerRender(); } @EventHandler public void postInit(FMLInitializationEvent Event) { } }
Et voici ma classe itemArmureTest:
package fr.nf.odekproduction.test.common; import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; import com.sun.xml.internal.stream.Entity; public class itemArmureTest extends ItemArmor { public itemArmureTest(ArmorMaterial material, int type) { super(material, 0, type); // TODO Auto-generated constructor stub System.out.println("passage"); } public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type) { System.out.println("passage_texture"); if(slot == 2) { return "modtest:textures/models/armor/test_layer_2.png"; } return "modtest:textures/models/armor/test_layer_1.png"; } }
Mais ce qui est curieux (d’après moi, car je suis un débutant), c’est que la méthode “getArmorTexture” ne s’exécute pas. On le voit clairement grâce au “println”.
Alors que ce qui est au dessus s’exécute (je vois bien le “passage” dans la console).
Quelqu’un aurait une idée ?
Merci d’avance.
Cordialement. -
Déplacé dans la bonne section.
import com.sun.xml.internal.stream.Entity;
Tu as une mauvaise importation, retire-la et importe net.minecraft.entity.Entity. -
Tout d’abord, désolé d’avoir posté dans la mauvaise section.
Et merci beaucoup pour cette réponse rapide
A birntot .