Posted May 17, 201411 yr I've tried looking around Vanilla code for how to do this, but all the func_x everywhere started to get annoying. How does one add metadata to a block? Edit: So I found a way to have more than 16 versions (infinite really) of the block in one file, as I just make it a new type of block.
May 17, 201411 yr Write this in your class, that's the simple way public void setMeta(World world, int x, int y, int z, int meta) { world.setBlockMetadataWithNotify(x, y, z, MathHelper.clamp_int(meta, 0, 3), 2); world.func_147453_f(x, y, z, this); }
May 17, 201411 yr Author Write this in your class, that's the simple way public void setMeta(World world, int x, int y, int z, int meta) { world.setBlockMetadataWithNotify(x, y, z, MathHelper.clamp_int(meta, 0, 3), 2); world.func_147453_f(x, y, z, this); } Okay, thank you, but how do I change the texture of the block depending on the meta data, as well as use metadeta in a recipe? (I assume registering the block is the same as normal too)
May 17, 201411 yr To load textures: @SideOnly(Side.CLIENT) @Override public void registerIcons(IconRegister iconRegister) { iconBuffer = new Icon[MetaCount]; iconBuffer[0] = iconRegister.registerIcon("MODID:" + TextureName1); iconBuffer[1] = iconRegister.registerIcon("MODID:" + TextureName2); blockIcon = iconBuffer[0]; } To get textures based on meta: @SideOnly(Side.CLIENT) public Icon getBlockTexture(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) { return iconBuffer[par1IBlockAccess.getBlockMetadata(par2, par3, par4)]; }
May 17, 201411 yr Author To load textures: @SideOnly(Side.CLIENT) @Override public void registerIcons(IconRegister iconRegister) { iconBuffer = new Icon[MetaCount]; iconBuffer[0] = iconRegister.registerIcon("MODID:" + TextureName1); iconBuffer[1] = iconRegister.registerIcon("MODID:" + TextureName2); blockIcon = iconBuffer[0]; } To get textures based on meta: @SideOnly(Side.CLIENT) public Icon getBlockTexture(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) { return iconBuffer[par1IBlockAccess.getBlockMetadata(par2, par3, par4)]; } Is this for 1.7 (I'm asking about 1.7)? Cause I get errors galore (of unimportable things, such as IconRegister -- Did you mean IIConRegister?). edit: So I found a way to have more than 16 versions (infinite really) of the block in one file, as I just make it a new type of block.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.