Item à metadata en 1.7 ?
-
envoie ton code je vais te l’arranger
-
@‘Phenix246’:
envoie ton code je vais te l’arranger
public static Item itemObsidian; @EventHandler public void preInit(FMLPreInitializationEvent event) { //Obsidian ITEMS itemObsidian = new itemObsidianMetadata().setUnlocalizedName("itemobsidian"); GameRegistry.registerItem(itemObsidian, "itemObsidian", "ObsidianPlus");Ici j’ai essayer d’utiliser le code de la 1.6 …
Ensuite ma classe :
package com.google.bidibusteam.obsidianplus.common; import javax.swing.Icon; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class itemObsidianMetadata extends Item { public int getMetadata(int metadata) { return metadata; } public String getUnlocalizedName(ItemStack stack) { int metadata = stack.getItemDamage(); if(metadata > type.length || metadata < 0) { metadata = 0; } return super.getUnlocalizedName() + "." + type[metadata]; } private String[] type = new String[]{"item1", "item2", "item3", "item4"}; private Icon[] IconArray; public itemObsidianMetadata(int id) { super(); this.setCreativeTab(CreativeTabs.tabMaterials); this.setHasSubtypes(true); } public void registerIcons(IconRegister iconregister) { IconArray = new Icon[type.length]; for(int i = 0; i < type.length; i++) { IconArray* = iconregister.registerIcon("modtutoriel:" + type*); } } @SideOnly(Side.CLIENT) public void getSubItems(int id, CreativeTabs creativeTabs, List list) { for(int metadata = 0; metadata < type.length; metadata++) { list.add(new ItemStack(id, 1, metadata)); } } @SideOnly(Side.CLIENT) public Icon getIconFromDamage(int metadata) { return metadata < type.length && metadata >= 0 ? IconArray[metadata] : IconArray[0]; } }Ici pareil, un peu de 1.6 mais plein d’erreur car le code et faux en lui même je pense et non finis …
-
package com.google.bidibusteam.obsidianplus.common; import net.minecraft.util.IIcon; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class itemObsidianMetadata extends Item { private String[] type = new String[]{"item1", "item2", "item3", "item4"}; private IIcon[] iconArray; public itemObsidianMetadata() { super(); this.setCreativeTab(CreativeTabs.tabMaterials); this.setHasSubtypes(true); } public int getMetadata(int metadata) { return metadata; } public String getUnlocalizedName(ItemStack stack) { int metadata = stack.getItemDamage(); if(metadata > type.length || metadata < 0) { metadata = 0; } return super.getUnlocalizedName() + "." + type[metadata]; } public void registerIcons(IIconRegister iconregister) { iconArray = new Icon[type.length]; for(int i = 0; i < type.length; i++) { iconArray* = iconregister.registerIcon("modtutoriel:" + type*); } } @SideOnly(Side.CLIENT) public void getSubItems(Item Item, CreativeTabs creativeTabs, List list) { for(int metadata = 0; metadata < type.length; metadata++) list.add(new ItemStack(Item, 1, metadata)); } @SideOnly(Side.CLIENT) public IIcon getIconFromDamage(int metadata) { return metadata < type.length && metadata >= 0 ? iconArray[metadata] : iconArray[0]; } }Normalement là c’est bon ,oublie pas par contre d’utiliser la balise [java], ça rend le code plus facile à lire
-
@‘Phenix246’:
package com.google.bidibusteam.obsidianplus.common; import javax.swing.Icon; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class itemObsidianMetadata extends Item { private String[] type = new String[]{"item1", "item2", "item3", "item4"}; private Icon[] iconArray; public itemObsidianMetadata() { super(); this.setCreativeTab(CreativeTabs.tabMaterials); this.setHasSubtypes(true); } public int getMetadata(int metadata) { return metadata; } public String getUnlocalizedName(ItemStack stack) { int metadata = stack.getItemDamage(); if(metadata > type.length || metadata < 0) { metadata = 0; } return super.getUnlocalizedName() + "." + type[metadata]; } public void registerIcons(IconRegister iconregister) { iconArray = new Icon[type.length]; for(int i = 0; i < type.length; i++) { iconArray* = iconregister.registerIcon("modtutoriel:" + type*); } } @SideOnly(Side.CLIENT) public void getSubItems(Item Item, CreativeTabs creativeTabs, List list) { for(int metadata = 0; metadata < type.length; metadata++) list.add(new ItemStack(Item, 1, metadata)); } @SideOnly(Side.CLIENT) public Icon getIconFromDamage(int metadata) { return metadata < type.length && metadata >= 0 ? iconArray[metadata] : iconArray[0]; } }Normalement là c’est bon ,oublie pas par contre d’utiliser la balise
, ça rend le code plus facile à lireOui oui pas de problème ! Un grand merci à toi ! Au niveau de ma classe principale par contre j'utilise quel code ? -
normalement le tien est bon
-
@‘Phenix246’:
normalement le tien est bon
Par contre j’ai quelques erreurs ici :
@SideOnly(Side.CLIENT) public Icon getIconFromDamage(int metadata) { return metadata < type.length && metadata >= 0 ? iconArray[metadata] : iconArray[0]; }Au Icon et ici aussi :
public void registerIcons(IconRegister iconregister) { iconArray = new Icon[type.length]; for(int i = 0; i < type.length; i++) { iconArray* = iconregister.registerIcon("modtutoriel:" + type*); } }Au niveau du IconRegister, peut être que le code à changer en 1.7 ?
-
en 1.7 Icon devient IIcon
-
@‘Phenix246’:
en 1.7 Icon devient IIcon
Oui mais du coup ici en changeant Icon par IIcon tout le code devient faux
:iconArray* = iconregister.registerIcon("obsidianplus:" + type*);Idem en bas :
return metadata < type.length && metadata >= 0 ? iconArray[metadata] : iconArray[0]; -
Il faut remplacer seulement les références à l’objet Icon, pas tout ce qui contient Icon …
Tu devrais apprendre le java, ça va t’aider à comprendre ce que tu fais. -
@‘robin4002’:
Il faut remplacer seulement les références à l’objet Icon, pas tout ce qui contient Icon …
Tu devrais apprendre le java, ça va t’aider à comprendre ce que tu fais.Okay, merci

Yeap c’est ce que je comptais faire