Recette smelting custom.
-
BlockEgg clarifier

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.item.Item; import net.minecraft.item.ItemStack; 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 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) { if(metadata >= 0 && metadata < subBlock.length) { return this.iconArray[metadata]; } return this.iconArray[0]; } public int damageDropped(int metadata) { return metadata; } //AJOUT DU TILEENTITY public BlockEgg() { super(Material.dragonEgg); } 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; } }J’avais un problème avec le rendu dans le monde de mon block mais j’ai résolu le soucis

Du coup je me demandais car j’ai ajouté des metadatas mais c’est comme si il n’y en avais pas par exemple si je les met dans le tabBlock ca me met #0177 pour chaque y a pas de /2

-
Il te manque surement l’item bloc.
-
Je me posais la question car mon blockEgg est un rendu TESR , donc il a un rendu dans l’inventaire dois utiliser celui la ou faire un nouveau j’ai bien fait l’itemBlockEgg je l’ai juste oublier
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]; } } -
Il te manque la méthode getSubItems
-
Dans le tutoriel il n’y a pas de getSubItems il y a juste
public void getSubBlocks(Item item, CreativeTabs tabs, List list) { for(int i = 0; i < subBlock.length; i++) { list.add(new ItemStack(item, 1, i)); } }Mais je ne veut pas qu’il soit dans la creativTabs
-
Tu veux quoi alors ?
-
Je veut qu’il ne soit accessible que par ma machine , donc il ne faut pas qu’il soit dans le menu minecraft ^^
, la pour l’instant j’ai l’impression qu’il n’y a pas de metadatas , quand je fais /give Legrandfifou modminecraft:block_egg 1 2 il me donne juste block_egg … -
Comment tu sais que le metadata est pas donné ? Il s’affiche pas avec F3 + h ? C’est normal. Affiche le metadata dans la fonction addInformation, tu veras que le metadata est bon.
-
Je suis obliger d’enregistrer le blockEgg ( le principal ) pour que les métadatas se créer car du coup avec
public void getSubBlocks(Item item, CreativeTabs tabs, List list) { for(int i = 0; i < subBlock.length; i++) { list.add(new ItemStack(item, 1, i)); } }Il apparaisse ^^
Donc je n’enregistrais qu’un seul , mais est-ce normal que même si le metadata est différent il se stack ?
-
Non, ils peuvent pas se stacker, mais les metadatas ne s’enregistrent pas. La fonction getSubBlocks ne sert à rien si t’utilises un ItemBlock 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.
