Résolu Problème metadata (affichage dans la creativeTab).
-
Bonsoir tout le monde !
J’ai un problème d’affichage de mes blocs fences (sous metadata).
Je n’ai aucunes erreurs, juste un problème d’affichage :(.
La class des fences sous metadata :
#HosenkaBlocksMetadata2.java(HosenkaBlocksMetadata2.java)
package fr.mortiloche.hosenka.blocks.blocksmetadata; import java.util.List; import net.minecraft.block.BlockContainer; import net.minecraft.block.BlockFence; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntityChest; import net.minecraft.util.Icon; import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import cpw.mods.fml.common.network.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; public class HosenkaBlocksMetadata2 extends BlockFence { public static String[] type = new String[] {"block1", "block2", "block3", "block4", "block5", "block6", "block7", "block8", "block9", "block10", "block11", "block12", "block13", "block14", "block15", "block16"}; private Icon Icon1, Icon2, Icon3, Icon4, Icon5, Icon6, Icon7, Icon8, Icon9, Icon10, Icon11, Icon12, Icon13, Icon14, Icon15, Icon16; public HosenkaBlocksMetadata2(int par1, String par2Str, Material par3Material) { super(par1, par2Str, par3Material); } public void registerIcons(IconRegister iconregister) { Icon1 = iconregister.registerIcon("hosenka:block1"); Icon2 = iconregister.registerIcon("hosenka:block2"); Icon3 = iconregister.registerIcon("hosenka:block3"); Icon4 = iconregister.registerIcon("hosenka:block4"); Icon5 = iconregister.registerIcon("hosenka:block5"); Icon6 = iconregister.registerIcon("hosenka:block6"); Icon7 = iconregister.registerIcon("hosenka:block7"); Icon8 = iconregister.registerIcon("hosenka:block8"); Icon9 = iconregister.registerIcon("hosenka:block9"); Icon10 = iconregister.registerIcon("hosenka:block10"); Icon11 = iconregister.registerIcon("hosenka:block11"); Icon12 = iconregister.registerIcon("hosenka:block12"); Icon13 = iconregister.registerIcon("hosenka:block13"); Icon14 = iconregister.registerIcon("hosenka:block14"); Icon15 = iconregister.registerIcon("hosenka:block15"); Icon16 = iconregister.registerIcon("hosenka:block16"); } @SideOnly(Side.CLIENT) public void getSubBlocks(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 getIcon(int side, int metadata) { switch(metadata) { case 0: return Icon1; case 1: return Icon2; case 2: return Icon3; case 3: return Icon4; case 4: return Icon5; case 5: return Icon6; case 6: return Icon7; case 7: return Icon8; case 8: return Icon9; case 9: return Icon10; case 10: return Icon11; case 11: return Icon12; case 12: return Icon13; case 13: return Icon14; case 14: return Icon15; case 15: return Icon16; default: return blockIcon; } } public int damageDropped(int metadata) { return metadata; } @Override public TileEntity createNewTileEntity(World world) { return null; } }
La class de L’itemMetadata :
ItemHosenkaBlocksMetadata2
package fr.mortiloche.hosenka.items.blocks.itemblocksmetadata; import fr.mortiloche.hosenka.blocks.blocksmetadata.HosenkaBlocksMetadata1; import fr.mortiloche.hosenka.blocks.blocksmetadata.HosenkaBlocksMetadata2; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; public class ItemHosenkaBlocksMetadata2 extends ItemBlock { public ItemHosenkaBlocksMetadata2(int id) { super(id); this.setHasSubtypes(true); } public int getMetadata(int metadata) { return metadata; } public String getUnlocalizedName(ItemStack stack) { int metadata = stack.getItemDamage(); if(metadata > HosenkaBlocksMetadata2.type.length || metadata < 0) { metadata = 0; } return super.getUnlocalizedName() + "." + HosenkaBlocksMetadata2.type[metadata]; } }
Tout fonctionne bien, les textures en jeu sont parfaitement appliqué (pour chaque metadata) le seul problème c’est ceci :
Comme vous pouvez le voir, les textures affiché dans la creativeTab sont identique mais quand je pose les fences je n’ai aucun soucis sur la texture appliqué au fence. La fence a bien la texture attribué le problème est juste l’affichage dans la creativeTab…
J’ai essayé plusieurs méthode (reprise d’une partie des slabs, ou encore d’aller voir dans les class de minecraft) mais sans succès…
Je n’ai aucune erreur juste ce problème. Si vous avez besoin d’informations n’hésitez pas je vous donnerais tous ce que vous voulez savoir.Si quelqu’un pouvait m’apporter un peu d’aide ce serais vraiment aimable. Merci d’avance.
Ps : Je débute dans le modding soyez indulgent.
Edité le 24/11/2013 à 15h37
Merci à Robin qui ma fortement aidé via teamspeak. Problème “presque résolu” :p.