package com.jaquadro.minecraft.gardenstuff.block; import com.jaquadro.minecraft.gardencore.block.tile.TileEntityBlockMateralProxy; import com.jaquadro.minecraft.gardenstuff.GardenStuff; import com.jaquadro.minecraft.gardenstuff.block.tile.TileEntityLatticeMetal; import com.jaquadro.minecraft.gardentrees.block.tile.TileEntityWoodProxy; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import java.util.List; /** * Created by Justin on 3/1/2015. */ public class BlockLatticeMetal extends BlockLattice { public static final String[] subNames = new String[] { "iron", "rust", "wrought_iron", "moss" }; @SideOnly(Side.CLIENT) private IIcon[] icons; public BlockLatticeMetal (String blockName) { super(blockName, Material.iron); setStepSound(Block.soundTypeMetal); setBlockTextureName(GardenStuff.MOD_ID + ":lattice"); } @Override public TileEntity createNewTileEntity (World world, int meta) { return new TileEntityLatticeMetal(); } @Override public void getSubBlocks (Item item, CreativeTabs creativeTab, List list) { for (int i = 0; i < subNames.length; i++) list.add(new ItemStack(item, 1, i)); } @SideOnly(Side.CLIENT) @Override public IIcon getIcon (int side, int meta) { Block protoBlock = TileEntityLatticeMetal.instance.getBlockFromComposedMetadata(meta); if (protoBlock != null && protoBlock != this) return protoBlock.getIcon(side, TileEntityLatticeMetal.instance.getMetaFromComposedMetadata(meta)); return icons[meta % icons.length]; } @SideOnly(Side.CLIENT) @Override public IIcon getIcon (IBlockAccess blockAccess, int x, int y, int z, int side) { TileEntityBlockMateralProxy te = getTileEntity(blockAccess, x, y, z); if (te == null || te.getProtoBlock() == null) return super.getIcon(blockAccess, x, y, z, side); Block protoBlock = te.getProtoBlock(); if (protoBlock == null) protoBlock = this; return protoBlock.getIcon(side, te.getProtoMeta()); } @SideOnly(Side.CLIENT) @Override public void registerBlockIcons (IIconRegister register) { icons = new IIcon[subNames.length]; for (int i = 0; i < icons.length; i++) icons[i] = register.registerIcon(getTextureName() + "_" + subNames[i]); } }