j'ai fait une armure de quartz, mais la sa texture n'est pas affichée sur le personnage, même si elle l'est sur les items.
La classe de mon armure:
Code : Tout sélectionner
package com.maxanimator.myawesomemod.items.armor;
import com.maxanimator.myawesomemod.References;
import com.maxanimator.myawesomemod.init.ModItems;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.MobEffects;
import net.minecraft.inventory.EntityEquipmentSlot;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.PotionEffect;
import net.minecraft.world.World;
public class QuartzArmor extends ItemArmor{
public QuartzArmor(String name, ArmorMaterial materialIn, int renderIndexIn, EntityEquipmentSlot equipmentSlotIn)
{
super(materialIn, renderIndexIn, equipmentSlotIn);
setUnlocalizedName(name);
setRegistryName(name);
}
public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type)
{
if(stack.getItem() == ModItems.quartz_leggings)
{
return References.MODID + ":textures/models/armor/quartz_layer_2.png";
}
else if(stack.getItem() == ModItems.quartz_helmet || stack.getItem() == ModItems.quartz_chestplate || stack.getItem() == ModItems.quartz_boots)
{
return References.MODID + ":textures/models/armor/quartz_layer_1.png";
}
return null;
}
public void onArmorTick(World world, EntityPlayer player, ItemStack item)
{
if(player.inventory.armorItemInSlot(0) != null &&
player.inventory.armorItemInSlot(1) != null &&
player.inventory.armorItemInSlot(2) != null &&
player.inventory.armorItemInSlot(3) != null)
{
if(player.inventory.armorItemInSlot(0).getItem() == ModItems.quartz_boots &&
player.inventory.armorItemInSlot(1).getItem() == ModItems.quartz_leggings &&
player.inventory.armorItemInSlot(2).getItem() == ModItems.quartz_chestplate &&
player.inventory.armorItemInSlot(3).getItem() == ModItems.quartz_helmet)
{
player.addPotionEffect(new PotionEffect(MobEffects.STRENGTH, 40, 1, true, true));
}
}
}
}
Code : Tout sélectionner
package com.maxanimator.myawesomemod.init;
import com.maxanimator.myawesomemod.References;
import com.maxanimator.myawesomemod.items.BasicItem;
import com.maxanimator.myawesomemod.items.SpearWeapon;
import com.maxanimator.myawesomemod.items.armor.QuartzArmor;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.init.SoundEvents;
import net.minecraft.inventory.EntityEquipmentSlot;
import net.minecraft.item.Item;
import net.minecraft.item.Item.ToolMaterial;
import net.minecraft.item.ItemArmor.ArmorMaterial;
import net.minecraftforge.client.event.ModelRegistryEvent;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.common.util.EnumHelper;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
@Mod.EventBusSubscriber(modid = References.MODID)
public class ModItems
{
public static Item item_test, iron_spear, quartz_helmet, quartz_chestplate, quartz_leggings, quartz_boots;
public static ArmorMaterial QuartzArmor = EnumHelper.addArmorMaterial("QuartzArmor", References.MODID + ":quartz_layer_1", 13, new int[] {1, 4, 5, 2}, 13, SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, 0.0F);
public static void init()
{
item_test = new BasicItem("item_test");
iron_spear = new SpearWeapon("iron_spear", ToolMaterial.IRON);
quartz_helmet = new QuartzArmor("quartz_helmet", QuartzArmor, 3, EntityEquipmentSlot.HEAD);
quartz_chestplate = new QuartzArmor("quartz_chestplate", QuartzArmor, 2, EntityEquipmentSlot.CHEST);
quartz_leggings = new QuartzArmor("quartz_leggings", QuartzArmor, 1, EntityEquipmentSlot.LEGS);
quartz_boots = new QuartzArmor("quartz_boots", QuartzArmor, 0, EntityEquipmentSlot.FEET);
}
@SubscribeEvent
public static void registerItems(RegistryEvent.Register<Item> event)
{
event.getRegistry().registerAll(item_test, iron_spear, quartz_helmet, quartz_chestplate, quartz_leggings, quartz_boots);
}
@SubscribeEvent
public static void registerRenders(ModelRegistryEvent event)
{
registerRender(item_test);
registerRender(iron_spear);
registerRender(quartz_helmet);
registerRender(quartz_chestplate);
registerRender(quartz_leggings);
registerRender(quartz_boots);
}
private static void registerRender(Item item)
{
ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(item.getRegistryName(), "inventory"));
}
}