package zmaster587.advancedRocketry.block;
import java.util.List;
import zmaster587.libVulpes.block.INamedMetaBlock;
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.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.IBlockAccess;
import net.minecraftforge.common.util.ForgeDirection;
public class BlockCrystal extends Block implements INamedMetaBlock {
private static final int colors[] = {0xb23fff, 0x3333ff, 0x00ff00, 0xff3434, 0xffff34, 0xff9400};
private static final String names[] = {"amethyst", "sapphire", "emerald", "ruby", "citrine", "wulfentite"};
public static final int numMetas = colors.length;
public BlockCrystal()
{
super(Material.glass);
this.setCreativeTab(CreativeTabs.tabBlock);
this.setStepSound(soundTypeGlass);
}
public boolean isOpaqueCube()
{
return false;
}
@Override
public String getUnlocalizedName(int itemDamage) {
return "tile." + names[itemDamage];
}
@SideOnly(Side.CLIENT)
public int getRenderBlockPass()
{
return 1;
}
@Override
public int colorMultiplier(IBlockAccess access, int x, int y, int z) {
int meta = access.getBlockMetadata(x, y, z);
if(meta < 0 || meta >= colors.length)
return 0;
return colors[access.getBlockMetadata(x, y, z)];
}
@Override
public int getRenderColor(int meta) {
if(meta < 0 || meta >= colors.length)
return 0;
return colors[meta];
}
@Override
public void getSubBlocks(Item item, CreativeTabs tab,
List list) {
for(int i = 0; i < colors.length; i++) {
list.add(new ItemStack(item, 1, i));
}
}
@Override
public int damageDropped(int meta) {
return meta;
}
@SideOnly(Side.CLIENT)
public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side)
{
Block block = world.getBlock(x, y, z);
int blockMeta = world.getBlockMetadata(x, y,z);
ForgeDirection dir = ForgeDirection.getOrientation(side).getOpposite();
int thisBlockMeta = world.getBlockMetadata(x + dir.offsetX,y+ dir.offsetY,z+ dir.offsetZ);
return block == this && blockMeta == thisBlockMeta ? false : super.shouldSideBeRendered(world, x, y, z, side);
}
}