Recette smelting custom.
-
J’utilise celui la ( celui du tutoriel )
package mod.common.block; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; public class ItemBlockEgg extends ItemBlock { public ItemBlockEgg(Block block) { super(block); this.setMaxDamage(0); this.setHasSubtypes(true); } public int getMetadata(int metadata) { return metadata; } @SideOnly(Side.CLIENT) public IIcon getIconFromDamage(int metadata) { return this.field_150939_a.getIcon(2, metadata); } public String getUnlocalizedName(ItemStack stack) { int metadata = stack.getItemDamage(); if(metadata < 0 || metadata >= BlockEgg.subBlock.length) { metadata = 0; } return super.getUnlocalizedName() + "." + BlockEgg.subBlock[metadata]; } }EDIT : Olalala , bette erreur c’est sur que si j’enregistre pas dans le GameRegistry l’ItemBlockEgg ca va pas marcher xDD
-
Il faut l’enregistrer avec le block, GameRegistry.registerBlock(tonBlock, ItemBlockEgg.class, “tonNom”)
-
Oui je ne l’avais pas fait , voila pourquoi ca buggais , sinon les particules sont toujours rose/noir à cause des metdatas je dois gerer ca comment :s ?
-
Envoi la classe de ton block.
-
blockEgg
package mod.common.block; import java.util.List; import java.util.Random; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import mod.ModMinecraft; import mod.client.ClientProxy; import mod.common.block.entity.TileEntityAnalyzer; import mod.common.block.entity.TileEntityBarriere; import mod.common.block.entity.TileEntityEgg; import net.minecraft.block.Block; import net.minecraft.block.BlockFalling; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityFallingBlock; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class BlockEgg extends Block { // METADATA public BlockEgg() { super(Material.dragonEgg); } public static String[] subBlock = new String[] {"egg1", "egg2", "egg3", "egg4"}; public IIcon[] iconArray = new IIcon[subBlock.length]; public void registerBlockIcons(IIconRegister iconRegister) { for(int i = 0; i < subBlock.length; i++) { this.iconArray[ i] = iconRegister.registerIcon(ModMinecraft.MODID + ":" + subBlock*); } } public IIcon getIcon(int side, int metadata) { return metadata >= 0 && metadata < subBlock.length ? this.iconArray[metadata] : this.iconArray[0]; } public int damageDropped(int metadata) { return metadata; } //AJOUT DU TILEENTITY public boolean isOpaqueCube() { return false; } public boolean renderAsNormalBlock() { return false; } public int getRenderType() { return ClientProxy.tesrRenderId; } @Override public TileEntity createTileEntity(World world, int metadata) { return new TileEntityEgg(); } @Override public boolean hasTileEntity(int metadata) { return true; } }Et dans le register
package mod.common.block; import cpw.mods.fml.common.registry.GameRegistry; import mod.ModMinecraft; import mod.common.block.entity.TileEntityAnalyzer; import mod.common.block.entity.TileEntityBarriere; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.world.biome.BiomeGenBase; public class BlockRegister { public static Block BlockBarriere; public static Block BlockTronc; public static Block BlockFeuille; public static Block BlockPousse; public static Block BlockAnalyzer; public static Block BlockAmbre; public static Block BlockEgg; public static Block BlockEggIndominus; public static Block BlockFossiliser; public static void register() { BlockBarriere = new BlockBarriere(Material.rock).setCreativeTab(CreativeTabs.tabBlock).setBlockTextureName(ModMinecraft.MODID + ":partBarriere"); BlockTronc = new BlockTronc().setBlockName("blockTronc").setCreativeTab(CreativeTabs.tabBlock).setHardness(2.0F); BlockFeuille = new BlockFeuille().setBlockName("blockFeuille").setCreativeTab(CreativeTabs.tabBlock).setHardness(0.1F).setBlockTextureName(ModMinecraft.MODID + ":blockFeuille"); BlockPousse = new BlockPousse().setBlockName("blockPousse").setHardness(0.5F).setBlockTextureName(ModMinecraft.MODID + ":blockPousse"); BlockAnalyzer = new BlockAnalyzer().setBlockName("blockAnalyzer").setCreativeTab(CreativeTabs.tabBlock); BlockAmbre = new BlockAmbre().setBlockName("blockAmbre").setCreativeTab(CreativeTabs.tabBlock); BlockEgg = new BlockEgg().setBlockName("blockEgg").setBlockTextureName(ModMinecraft.MODID + ":partEgg"); BlockEggIndominus = new BlockEggIndominus(Material.dragonEgg).setBlockName("blockEggIndominus").setBlockTextureName(ModMinecraft.MODID + ":partEgg");; BlockFossiliser = new BlockFossiliser(Material.rock).setBlockName("blockFossiliser").setBlockTextureName(ModMinecraft.MODID + ":blockFossiliser"); GameRegistry.registerBlock(BlockAnalyzer,"block_analyzer"); GameRegistry.registerBlock(BlockBarriere, "block_barriere"); GameRegistry.registerBlock(BlockTronc, "block_tronc"); GameRegistry.registerBlock(BlockFeuille, "block_feuille"); GameRegistry.registerBlock(BlockPousse, "block_pousse"); GameRegistry.registerBlock(BlockAmbre, "block_ambre"); GameRegistry.registerBlock(BlockEgg, ItemBlockEgg.class, "block_egg"); GameRegistry.registerBlock(BlockEggIndominus, "block_eggindominus"); GameRegistry.registerBlock(BlockFossiliser, "block_fossiliser"); } }J’ai mis le ```java
.setBlockTextureName(ModMinecraft.MODID + “:partEgg”); -
Tu utilises un TESR ET les des icones ?
PS : pense à mettre le nom de ton block dans les icones.
PS2 : c’est une mauvaise idée d’appeler ta classe ModMinecraft (qui en plus est dans le package mod), çà peut prêter à confusion. -
J’ai un rendu avancé via TESR et j’y ai par la suite ajouté des metadatas , Je changerais ModMinecraft quand j’aurais fini la premières version car il est un peu utiliser par tout et faut que remplace tout ^^
-
Pour le nom : eclipse a ajouté le refactor, tu sélectionnes le nom de ta classe et tu fais Alt + shift + R et tu tapes le nouveau nom.
Alors pourquoi tu utilises les icones ? Les metadatas n’ont aucun rapport avec les icones.
-
J’ai suivi le tutoriel : http://minecraftforgefrance.fr/showthread.php?tid=743
Merci c’est fait

-
Tu peux retirer tout ce qui est en rapport avec les icones si t’utilises les TESR. Dans ton TESR, tu as accès à la variable de ta TileEntity et donc au metadata de ton block (tile.getBlockMetadata()), ensuite tu as juste à le mettre dans un bloc switch ou if.
-
D’accord merci ca marche nickel avec
else if(block == BlockRegister.BlockEgg) { if(metadata == 0) { GL11.glPushMatrix(); GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); GL11.glTranslatef(0.0F, -1.0F, 0.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(TileEntityEggSpecialRenderer.texture); TileEntityEggSpecialRenderer.model.renderAll(); GL11.glPopMatrix(); } if(metadata == 1) { GL11.glPushMatrix(); GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); GL11.glTranslatef(0.0F, -1.0F, 0.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(TileEntityEggSpecialRenderer.texture); TileEntityEggSpecialRenderer.model.renderAll(); GL11.glPopMatrix(); } if(metadata == 2) { GL11.glPushMatrix(); GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); GL11.glTranslatef(0.0F, -1.0F, 0.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(TileEntityEggSpecialRenderer.texture); TileEntityEggSpecialRenderer.model.renderAll(); GL11.glPopMatrix(); } if(metadata == 3) { GL11.glPushMatrix(); GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); GL11.glTranslatef(0.0F, -1.0F, 0.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(TileEntityEggSpecialRenderer.texture); TileEntityEggSpecialRenderer.model.renderAll(); GL11.glPopMatrix(); } if(metadata == 4) { GL11.glPushMatrix(); GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); GL11.glTranslatef(0.0F, -1.0F, 0.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(TileEntityEggSpecialRenderer.texture); TileEntityEggSpecialRenderer.model.renderAll(); GL11.glPopMatrix(); } }J’aime même réussi a rajouter une recette différente ( tout seul Ta vu ca ? Je commence a piger
)Merci en tout cas

-
Balise résolu ?
-
Juste , je vais créer une machine , avec les mêmes codes ( modifé )que ceux que tu m’a donné je peut récuperer le metadata
public static final Item[] matrix = new Item[] { ItemRegister.itemADNofFrog };Comment je le récupère ici ?

-
Je t’ai donné 2 classes : l’une est une classe toute simple qui utilise les ItemStack (AnalyzerSimpleRecipe) dedans tu lui donne des ItemStack (donc le metadata avec), et si cette classe te suffit pas, tu crées une classe implémentant IAnalyzerRecipe et tu mets ton code custom.
-
Ah oui , juste je l’avais oublié , je met en Résolu et encore un grand merci

