package shedar.mods.ic2.nuclearcontrol.blocks.subblocks;
import ic2.api.tile.IWrenchable;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Facing;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import shedar.mods.ic2.nuclearcontrol.ITextureHelper;
public abstract class Subblock {
protected int damage;
protected String name;
public Subblock(int damage, String name) {
this.damage = damage;
this.name = name;
}
public int getDamage() {
return damage;
}
public String getName() {
return name;
}
public IIcon getBlockTextureFromSide(int side) {
return getIcon(getMapping()[0][side]);
}
public IIcon getBlockTexture(IBlockAccess blockaccess, int x, int y, int z, int side) {
TileEntity tileentity = blockaccess.getTileEntity(x, y, z);
int metaSide = 0;
if (tileentity instanceof IWrenchable) {
metaSide = Facing.oppositeSide[((IWrenchable) tileentity).getFacing()];
}
int texture = getMapping()[metaSide][side];
if (tileentity instanceof ITextureHelper) {
texture = ((ITextureHelper) tileentity).modifyTextureIndex(texture);
}
return getIcon(texture);
}
public abstract IIcon getIcon(int index);
protected abstract byte[][] getMapping();
public abstract void registerIcons(IIconRegister iconRegister);
public abstract TileEntity getTileEntity();
public abstract boolean isSolidBlockRequired();
public abstract boolean hasGui();
public abstract float[] getBlockBounds(TileEntity tileEntity);
public abstract Container getServerGuiElement(TileEntity tileEntity,
EntityPlayer player);
public abstract Object getClientGuiElement(TileEntity tileEntity,
EntityPlayer player);
}