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.Config;
import openmods.utils.ByteUtils;
public class BlockProjector extends OpenBlock {
public static final int META_BIT_ACTIVE = 0;
private static final float SLAB_HEIGHT = 0.5F;
private static final int MIN_LIGHT_LEVEL = 0;
private static final int MAX_LIGHT_LEVEL = 15;
private static final String CONE_ICON = "openblocks:projector_cone" + (Config.renderHoloGrid? "_grid" : "");
@SideOnly(Side.CLIENT)
public IIcon coneIcon;
@SideOnly(Side.CLIENT)
private IIcon sideIcon;
public BlockProjector() {
super(Material.iron);
setBlockBounds(0, 0, 0, 1, SLAB_HEIGHT, 1);
setRenderMode(RenderMode.BOTH);
}
@Override
public int getLightValue(IBlockAccess world, int x, int y, int z) {
if (ByteUtils.get(world.getBlockMetadata(x, y, z), META_BIT_ACTIVE))
return Math.min(Math.max(MIN_LIGHT_LEVEL, Config.projectorLightLevelValue), MAX_LIGHT_LEVEL);
return 0;
}
@Override
public int getLightValue() {
return 1;
}
@Override
public boolean isOpaqueCube() {
return false;
}
@Override
public boolean isBlockNormalCube() {
return false;
}
@Override
public boolean renderAsNormalBlock() {
return false;
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(final IIconRegister registry) {
this.sideIcon = registry.registerIcon("stone_slab_side");
this.blockIcon = registry.registerIcon("stone_slab_top");
this.coneIcon = registry.registerIcon(CONE_ICON);
setTexture(ForgeDirection.NORTH, this.sideIcon);
setTexture(ForgeDirection.SOUTH, this.sideIcon);
setTexture(ForgeDirection.EAST, this.sideIcon);
setTexture(ForgeDirection.WEST, this.sideIcon);
}
@Override
public boolean canRenderInPass(int pass) {
return true;
}
@Override
public int getRenderBlockPass() {
return 1;
}
}