Rendre son bloc orientable
-
Merci Robin. Vraiment un gros plus que tu nous offre là. Un vrai plaisir.
-
Qu’elle tuto dois je suivre un pour un rendue orientable tesr ?
-
Suis le second cas, un bloc avec metadata puis ce tutoriel : http://www.minecraftforgefrance.fr/showthread.php?tid=1509#bonus
-
Bonjour j’ai depuis bientôt une semaine un problème sur cette ligne sur TileEntityDirectional, TileEntityDirectional)tile
TileEntity tile = world.getTileEntity(x, y, z);
if(tile instanceof TileEntityDirectional)
{
int direction = MathHelper.floor_double((double)(living.rotationYaw * 4.0F / 360.0F) + 2.5D) & 3;
((TileEntityDirectional)tile).setDirection((byte)direction);
}
}
voici ma classepackage theopsisblack76.primevalcraftworld; import java.util.Random; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.World; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; public class BlockAnno extends BlockContainer { private static final String subBlock = null; int a1 = 0, a2 = 0, a3 = 0, a4 = 0, a5 = 0, a6 = 0; private IIcon[][] icons; protected BlockAnno() { super(Material.ground); } @SideOnly(Side.CLIENT) public void randomDisplayTick(World world, int x, int y, int z, Random random) { for(int l = 0; l < 700; ++l) { } } public void onEntityCollidedWithBlock(World world, int i, int j, int k, Entity entity) { if(entity.ridingEntity == null && entity.riddenByEntity == null && !world.isRemote) { entity.travelToDimension(1); } } public IIcon getIcon(int side, int metadata) { if(metadata == 0) { if(side == 0 || side == 1) { return this.icons[0][0]; } else if(side == 3) { return this.icons[0][1]; } else { return this.icons[0][2]; } } else if(side > 2) { side = 2; } return metadata >= 0 && metadata < subBlock.length() ? this.icons[metadata][side] : this.icons[0][0]; // dans les autres cas (même code que celui montré dans le tutoriel sur les blocs multi-textures) } @Override public TileEntity createNewTileEntity(World world, int metadata) { return new TileEntityAnno(); } public boolean isOpaqueCube() { return false; } public boolean renderAsNormalBlock() { return false; } public int getRenderType() { return -1; } @Override public int tickRate(World world) { return 10; } public int quantityDropped(Random par1Random) { return 0; public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase living, ItemStack stack) { if(stack.getItemDamage() == 0) { TileEntity tile = world.getTileEntity(x, y, z); if(tile instanceof TileEntityDirectional) { int direction = MathHelper.floor_double((double)(living.rotationYaw * 4.0F / 360.0F) + 2.5D) & 3; ((TileEntityDirectional)tile).setDirection((byte)direction); } } -
Il te manque des fermetures d’accolades …
à la fin de la fonction quantityDropped, à la fin de la fonction onBlockPlacedBy et à la fin de la classe. -
Bonjour,
J’ai suivi le tuto pour orienter son bloc avec metadata mais, après test, le bloc ne s’oriente pas.
Pouvez-vous m’aider ?Block :
public class BlockCrusher extends BasicBlock { public static String[] subBlock = new String[] {"copper", "bronze", "steel"}; public IIcon[][] iconArray = new IIcon[subBlock.length][3]; private static boolean field_149934_M; public void registerBlockIcons(IIconRegister iconRegister) { for(int i = 0; i < subBlock.length; i++) { this.iconArray*[0] = iconRegister.registerIcon("neworesbasic:" + subBlock* + "_crusher_top"); this.iconArray*[1] = iconRegister.registerIcon("neworesbasic:" + subBlock* + "_crusher_front"); this.iconArray*[2] = iconRegister.registerIcon("neworesbasic:" + subBlock* + "_crusher_side"); } } public void getSubBlocks(Item item, CreativeTabs tabs, List list) { for(int i = 0; i < subBlock.length; i++) { list.add(new ItemStack(item, 1, i)); } } public int damageDropped(int metadata) { return metadata; } @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata) { if(side == 1) // UP { return this.iconArray[metadata][0]; } else if(side == 3) // FRONT : 3 { return this.iconArray[metadata][1]; } else { return this.iconArray[metadata][2]; } } public BlockCrusher() { this.setCreativeTab(Basic.BasicTab); } @Override public TileEntity createTileEntity(World world, int metadata) { return new TileEntityCrusher(); } @Override public boolean hasTileEntity(int metadata) { return true; } public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9) { FMLNetworkHandler.openGui(player, Basic.instance, 0, world, x, y, z); return true; } public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase living, ItemStack stack) { TileEntity te = world.getTileEntity(x, y, z); if(te != null && te instanceof TileEntityCrusher && stack.hasDisplayName()) { ((TileEntityCrusher)te).setCustomGuiName(stack.getDisplayName()); } if(te instanceof TileEntityCrusher) { int direction = MathHelper.floor_double((double)(living.rotationYaw * 4.0F / 360.0F) + 2.5D) & 3; ((TileEntityCrusher)te).setDirection((byte)direction); } } public void breakBlock(World world, int x, int y, int z, Block block, int metadata) { dropContainerItem(world, x, y, z); super.breakBlock(world, x, y, z, block, metadata); } protected void dropContainerItem(World world, int x, int y, int z) { TileEntityCrusher tecrusher = (TileEntityCrusher)world.getTileEntity(x, y, z); if (tecrusher != null) { for (int slotId = 0; slotId < tecrusher.getSizeInventory(); slotId++) { ItemStack stack = tecrusher.getStackInSlot(slotId); if (stack != null) { float f = world.rand.nextFloat() * 0.8F + 0.1F; float f1 = world.rand.nextFloat() * 0.8F + 0.1F; EntityItem entityitem; for (float f2 = world.rand.nextFloat() * 0.8F + 0.1F; stack.stackSize > 0; world.spawnEntityInWorld(entityitem)) { int k1 = world.rand.nextInt(21) + 10; if (k1 > stack.stackSize) { k1 = stack.stackSize; } stack.stackSize -= k1; entityitem = new EntityItem(world, (double)((float)x + f), (double)((float)y + f1), (double)((float)z + f2), new ItemStack(stack.getItem(), k1, stack.getItemDamage())); float f3 = 0.05F; entityitem.motionX = (double)((float)world.rand.nextGaussian() * f3); entityitem.motionY = (double)((float)world.rand.nextGaussian() * f3 + 0.2F); entityitem.motionZ = (double)((float)world.rand.nextGaussian() * f3); if (stack.hasTagCompound()) { entityitem.getEntityItem().setTagCompound((NBTTagCompound)stack.getTagCompound().copy()); } } } } } } public static void updateCrusherBlockState(boolean p_149931_0_, World p_149931_1_, int p_149931_2_, int p_149931_3_, int p_149931_4_) { int l = p_149931_1_.getBlockMetadata(p_149931_2_, p_149931_3_, p_149931_4_); TileEntity tileentity = p_149931_1_.getTileEntity(p_149931_2_, p_149931_3_, p_149931_4_); field_149934_M = true; /*if (p_149931_0_) { p_149931_1_.setBlock(p_149931_2_, p_149931_3_, p_149931_4_, Basic.crusher); // In-crushing block } else { p_149931_1_.setBlock(p_149931_2_, p_149931_3_, p_149931_4_, Basic.crusher); }*/ field_149934_M = false; p_149931_1_.setBlockMetadataWithNotify(p_149931_2_, p_149931_3_, p_149931_4_, l, 2); if (tileentity != null) { tileentity.validate(); p_149931_1_.setTileEntity(p_149931_2_, p_149931_3_, p_149931_4_, tileentity); } } public boolean hasComparatorInputOverride() { return true; } public int getComparatorInputOverride(World p_149736_1_, int p_149736_2_, int p_149736_3_, int p_149736_4_, int p_149736_5_) { return Container.calcRedstoneFromInventory((IInventory)p_149736_1_.getTileEntity(p_149736_2_, p_149736_3_, p_149736_4_)); } }TileEntity :
private byte direction; @Override public void readFromNBT(NBTTagCompound nbttag) { super.readFromNBT(nbttag); this.direction = nbttag.getByte("Direction"); // Code. Mystère… ;) } @Override public void writeToNBT(NBTTagCompound nbttag) { super.writeToNBT(nbttag); nbttag.setByte("Direction", this.direction); // Code. Mystère... ;) } public byte getDirection() { return direction; } public void setDirection(byte direction) { this.direction = direction; this.worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); } public Packet getDescriptionPacket() { NBTTagCompound nbttagcompound = new NBTTagCompound(); this.writeToNBT(nbttagcompound); return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbttagcompound); } public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { this.readFromNBT(pkt.func_148857_g()); this.worldObj.markBlockRangeForRenderUpdate(this.xCoord, this.yCoord, this.zCoord, this.xCoord, this.yCoord, this.zCoord); } -
Tu as loupé une partie du tutoriel, il te manque la fonction :
public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) -
Merci ça marche à la perfection !

-
Ce message a été supprimé ! -
non, il faut utilisé le nouveau système
-
J’ai suivi la première possibilité (l’Item qui fait tourner les blocs) et ça me donne ça :
Classe Principale :package fr.Raphmaster6.TestMod.common; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @Mod(modid = "testmod", name = "ModTest", version = "0.0.0-Test Phase") public class TestMod { public static final String MODID = "testmod"; public static final String NAME = "ModTest"; public static Item TestItem; public static Item TestItemRecipeHint; public static Block TestBlock; public static Block AddDistanceToX; public static Block AddDistanceToY; public static Block AddDistanceToZ; public static Block SpeedBooster; public static Block TestBlock2Textures; public static Item ItemOrientation; @Instance("testmod") public static TestMod instance; @SidedProxy(clientSide = "fr.Raphmaster6.TestMod.client.ClientProxy", serverSide = "fr.Raphmaster6.TestMod.common.CommonProxy") public static CommonProxy proxy; @EventHandler public void preInit(FMLPreInitializationEvent event) { TestItem = new TestItem().setUnlocalizedName("itemTest").setTextureName(TestMod.MODID + ":itemTest").setCreativeTab(CreativeTabs.tabMaterials); GameRegistry.registerItem(TestItem, "test_item"); TestItemRecipeHint = new TestItemRecipeHint().setUnlocalizedName("itemTestRecipe").setTextureName(TestMod.MODID + ":itemTestRecipe").setCreativeTab(CreativeTabs.tabMaterials); GameRegistry.registerItem(TestItemRecipeHint, "test_item_recipe"); TestBlock = new TestBlock(Material.ice).setBlockName("blockTest").setBlockTextureName(MODID + ":testBlock").setCreativeTab(CreativeTabs.tabBlock); GameRegistry.registerBlock(TestBlock, "testBlock"); AddDistanceToX = new AddDistanceToX(Material.rock).setBlockName("xRollingBlock").setBlockTextureName(MODID + ":rollingBlockX").setCreativeTab(CreativeTabs.tabBlock).setBlockUnbreakable(); GameRegistry.registerBlock(AddDistanceToX, "xRollingBlock"); AddDistanceToY = new AddDistanceToY(Material.rock).setBlockName("yRollingBlock").setBlockTextureName(MODID + ":rollingBlockY").setCreativeTab(CreativeTabs.tabBlock).setBlockUnbreakable(); GameRegistry.registerBlock(AddDistanceToY, "yRollingBlock"); AddDistanceToZ = new AddDistanceToZ(Material.rock).setBlockName("zRollingBlock").setBlockTextureName(MODID + ":rollingBlockZ").setCreativeTab(CreativeTabs.tabBlock).setBlockUnbreakable(); GameRegistry.registerBlock(AddDistanceToZ, "zRollingBlock"); SpeedBooster = new SpeedBooster(Material.rock).setBlockName("speedBooster").setBlockTextureName(MODID + ":SpeedBooster").setCreativeTab(CreativeTabs.tabBlock).setBlockUnbreakable(); GameRegistry.registerBlock(SpeedBooster, "speedBooster"); TestBlock2Textures = new TestBlock2Textures(Material.rock).setBlockName("testBlock2textures").setCreativeTab(CreativeTabs.tabBlock).setBlockUnbreakable(); GameRegistry.registerBlock(TestBlock2Textures, "testBlock2textures"); GameRegistry.registerTileEntity(TestBlockOrientationTileEntity.class, "testmod:ModTest"); ItemOrientation = new ItemOrientation().setUnlocalizedName("itemOrientation").setTextureName(TestMod.MODID + ":itemOrientation").setCreativeTab(CreativeTabs.tabTools).setMaxStackSize(1); } @EventHandler public void init(FMLInitializationEvent event) { proxy.registerRender(); GameRegistry.addRecipe(new ItemStack(TestItem, 8), new Object[]{ "XXX", "XIX", "XXX", 'X', Items.diamond, 'I', TestMod.TestItemRecipeHint, }); GameRegistry.addShapelessRecipe(new ItemStack(TestItemRecipeHint, 4), new Object[]{ Items.diamond }); GameRegistry.addSmelting(Items.diamond, new ItemStack(TestItemRecipeHint, 4), 5); GameRegistry.addRecipe(new ItemStack(TestBlock, 4), new Object[]{ "I I", "III", "XIX", 'I', TestMod.TestItem, 'X', Items.diamond, }); GameRegistry.addRecipe(new ItemStack(AddDistanceToX, 2), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', Items.slime_ball, 'E', new ItemStack(Items.dye, 1, 2), }); GameRegistry.addRecipe(new ItemStack(AddDistanceToY, 2), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', Items.slime_ball, 'E', new ItemStack(Items.dye, 1, 6), }); GameRegistry.addRecipe(new ItemStack(AddDistanceToZ, 2), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', Items.slime_ball, 'E', new ItemStack(Items.dye, 1, 1), }); GameRegistry.addRecipe(new ItemStack(SpeedBooster, 2), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', Items.arrow, 'E', Items.slime_ball, }); //Start the lines of code to craft the TestBlock2textures GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 0), 'E', new ItemStack(Blocks.log, 1, 0), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 1), 'E', new ItemStack(Blocks.log, 1, 0), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 2), 'E', new ItemStack(Blocks.log, 1, 0), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 3), 'E', new ItemStack(Blocks.log, 1, 0), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 4), 'E', new ItemStack(Blocks.log, 1, 0), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 5), 'E', new ItemStack(Blocks.log, 1, 0), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 6), 'E', new ItemStack(Blocks.log, 1, 0), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 7), 'E', new ItemStack(Blocks.log, 1, 0), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 8), 'E', new ItemStack(Blocks.log, 1, 0), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 9), 'E', new ItemStack(Blocks.log, 1, 0), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 10), 'E', new ItemStack(Blocks.log, 1, 0), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 11), 'E', new ItemStack(Blocks.log, 1, 0), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 12), 'E', new ItemStack(Blocks.log, 1, 0), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 13), 'E', new ItemStack(Blocks.log, 1, 0), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 14), 'E', new ItemStack(Blocks.log, 1, 0), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 15), 'E', new ItemStack(Blocks.log, 1, 0), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 0), 'E', new ItemStack(Blocks.log, 1, 1), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 1), 'E', new ItemStack(Blocks.log, 1, 1), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 2), 'E', new ItemStack(Blocks.log, 1, 1), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 3), 'E', new ItemStack(Blocks.log, 1, 1), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 4), 'E', new ItemStack(Blocks.log, 1, 1), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 5), 'E', new ItemStack(Blocks.log, 1, 1), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 6), 'E', new ItemStack(Blocks.log, 1, 1), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 7), 'E', new ItemStack(Blocks.log, 1, 1), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 8), 'E', new ItemStack(Blocks.log, 1, 1), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 9), 'E', new ItemStack(Blocks.log, 1, 1), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 10), 'E', new ItemStack(Blocks.log, 1, 1), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 11), 'E', new ItemStack(Blocks.log, 1, 1), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 12), 'E', new ItemStack(Blocks.log, 1, 1), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 13), 'E', new ItemStack(Blocks.log, 1, 1), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 14), 'E', new ItemStack(Blocks.log, 1, 1), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 15), 'E', new ItemStack(Blocks.log, 1, 1), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 0), 'E', new ItemStack(Blocks.log, 1, 2), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 1), 'E', new ItemStack(Blocks.log, 1, 2), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 2), 'E', new ItemStack(Blocks.log, 1, 2), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 3), 'E', new ItemStack(Blocks.log, 1, 2), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 4), 'E', new ItemStack(Blocks.log, 1, 2), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 5), 'E', new ItemStack(Blocks.log, 1, 2), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 6), 'E', new ItemStack(Blocks.log, 1, 2), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 7), 'E', new ItemStack(Blocks.log, 1, 2), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 8), 'E', new ItemStack(Blocks.log, 1, 2), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 9), 'E', new ItemStack(Blocks.log, 1, 2), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 10), 'E', new ItemStack(Blocks.log, 1, 2), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 11), 'E', new ItemStack(Blocks.log, 1, 2), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 12), 'E', new ItemStack(Blocks.log, 1, 2), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 13), 'E', new ItemStack(Blocks.log, 1, 2), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 14), 'E', new ItemStack(Blocks.log, 1, 2), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 15), 'E', new ItemStack(Blocks.log, 1, 2), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 0), 'E', new ItemStack(Blocks.log, 1, 3), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 1), 'E', new ItemStack(Blocks.log, 1, 3), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 2), 'E', new ItemStack(Blocks.log, 1, 3), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 3), 'E', new ItemStack(Blocks.log, 1, 3), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 4), 'E', new ItemStack(Blocks.log, 1, 3), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 5), 'E', new ItemStack(Blocks.log, 1, 3), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 6), 'E', new ItemStack(Blocks.log, 1, 3), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 7), 'E', new ItemStack(Blocks.log, 1, 3), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 8), 'E', new ItemStack(Blocks.log, 1, 3), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 9), 'E', new ItemStack(Blocks.log, 1, 3), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 10), 'E', new ItemStack(Blocks.log, 1, 3), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 11), 'E', new ItemStack(Blocks.log, 1, 3), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 12), 'E', new ItemStack(Blocks.log, 1, 3), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 13), 'E', new ItemStack(Blocks.log, 1, 3), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 14), 'E', new ItemStack(Blocks.log, 1, 3), }); GameRegistry.addRecipe(new ItemStack(TestBlock2Textures, 4), new Object[]{ "X X", "IXI", "HEH", 'X', Items.diamond, 'I', TestMod.TestItem, 'H', new ItemStack(Items.dye, 1, 15), 'E', new ItemStack(Blocks.log, 1, 3), }); //End the lines of code to craft the TestBlock2textures } @EventHandler public void postinit(FMLPostInitializationEvent event) { } }Classe de l’Item :
package fr.Raphmaster6.TestMod.common; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.ChatComponentText; import net.minecraft.world.World; public class ItemOrientation extends Item { public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) { if(!world.isRemote) { player.addChatMessage(new ChatComponentText("serveur : side " + side)); player.addChatMessage(new ChatComponentText("serveur : metadata " + world.getBlockMetadata(x, y, z))); } if(world.getBlock(x, y, z).rotateBlock(world, x, y, z, ForgeDirection.getOrientation(side))) { return true; } return false; } }L’erreur affichée :
ForgeDirection cannot be resolved -
Tu es en + que 1.7.10 ? Remplace les ForgeDirection par EnumFacing.
Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk
-
ctrl + shift + o
-
O.K merci… En plus, je connais l’astuce, j’aurais du y penser mais je croyais que c’était uniquement pour les Imports
-
Oui c’est pour les importations, tu n’avais pas importé ForgeDirection donc forcement il ne le reconnaissait pas.
-
R robin4002 a fait référence à ce sujet sur
-
R robin4002 a fait référence à ce sujet sur
-
R robin4002 a fait référence à ce sujet sur