package openblocks.common.block; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraftforge.common.util.ForgeDirection; import openblocks.common.tileentity.TileEntityPaintCan; import openmods.block.BlockRotationMode; public class BlockPaintCan extends OpenBlock { public int renderPass = 0; public static class Icons { public static IIcon top; public static IIcon back; public static IIcon left; public static IIcon right; public static IIcon front; public static IIcon bottom; } public BlockPaintCan() { super(Material.rock); setHardness(0); setRotationMode(BlockRotationMode.FOUR_DIRECTIONS); setPlacementMode(BlockPlacementMode.ENTITY_ANGLE); setBlockBounds(0.25f, 0f, 0.25f, 0.7f, 0.6875f, 0.75f); } @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister register) { super.registerBlockIcons(register); Icons.back = register.registerIcon("openblocks:paintcan_side"); Icons.front = register.registerIcon("openblocks:paintcan_front"); Icons.left = register.registerIcon("openblocks:paintcan_left"); Icons.right = register.registerIcon("openblocks:paintcan_right"); Icons.top = register.registerIcon("openblocks:paintcan_top"); Icons.bottom = register.registerIcon("openblocks:paintcan_bottom"); setTexture(ForgeDirection.EAST, Icons.right); setTexture(ForgeDirection.WEST, Icons.left); setTexture(ForgeDirection.NORTH, Icons.back); setTexture(ForgeDirection.SOUTH, Icons.front); setTexture(ForgeDirection.UP, Icons.top); setTexture(ForgeDirection.DOWN, Icons.bottom); } @Override public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) { if (renderPass == 0 && side == 1) { return false; } else if (renderPass == 1 && side != 1) { return false; } return super.shouldSideBeRendered(world, x, y, z, side); } @Override public boolean isOpaqueCube() { return false; } @Override public int colorMultiplier(IBlockAccess world, int x, int y, int z) { if (renderPass == 0) { return 0xFFFFFF; } TileEntityPaintCan tile = getTileEntity(world, x, y, z, TileEntityPaintCan.class); if (tile != null) { return tile.getColor(); } return 0xFFFFFF; } @Override protected boolean suppressPickBlock() { return true; } }