package shedar.mods.ic2.nuclearcontrol.blocks.subblocks;
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.IIcon;
import shedar.mods.ic2.nuclearcontrol.IC2NuclearControl;
import shedar.mods.ic2.nuclearcontrol.containers.ContainerEnergyCounter;
import shedar.mods.ic2.nuclearcontrol.gui.GuiEnergyCounter;
import shedar.mods.ic2.nuclearcontrol.tileentities.TileEntityEnergyCounter;
import shedar.mods.ic2.nuclearcontrol.utils.BlockDamages;
public class EnergyCounter extends Subblock {
private static final int DAMAGE = BlockDamages.DAMAGE_ENERGY_COUNTER;
private static final float[] BOUNDS = { 0, 0, 0, 1, 1, 1 };
public static final byte I_INPUT = 0;
public static final byte I_OUTPUT = 1;
private static final byte[][] mapping = {
{ I_OUTPUT, I_INPUT, I_OUTPUT, I_OUTPUT, I_OUTPUT, I_OUTPUT },
{ I_INPUT, I_OUTPUT, I_OUTPUT, I_OUTPUT, I_OUTPUT, I_OUTPUT },
{ I_OUTPUT, I_OUTPUT, I_OUTPUT, I_INPUT, I_OUTPUT, I_OUTPUT },
{ I_OUTPUT, I_OUTPUT, I_INPUT, I_OUTPUT, I_OUTPUT, I_OUTPUT },
{ I_OUTPUT, I_OUTPUT, I_OUTPUT, I_OUTPUT, I_OUTPUT, I_INPUT },
{ I_OUTPUT, I_OUTPUT, I_OUTPUT, I_OUTPUT, I_INPUT, I_OUTPUT } };
private IIcon[] icons = new IIcon[2];
public EnergyCounter() {
super(DAMAGE, "tile.blockEnergyCounter");
}
@Override
public TileEntity getTileEntity() {
TileEntity instance = IC2NuclearControl.instance.crossRF.getEnergyCounter();
if (instance == null)
instance = new TileEntityEnergyCounter();
//TileEntity instance = new TileEntityEnergyCounter();
return instance;
}
@Override
public boolean isSolidBlockRequired() {
return false;
}
@Override
public boolean hasGui() {
return true;
}
@Override
public float[] getBlockBounds(TileEntity tileEntity) {
return BOUNDS;
}
@Override
public Container getServerGuiElement(TileEntity tileEntity,
EntityPlayer player) {
return new ContainerEnergyCounter(player,
(TileEntityEnergyCounter) tileEntity);
}
@Override
public Object getClientGuiElement(TileEntity tileEntity, EntityPlayer player) {
ContainerEnergyCounter containerCounter = new ContainerEnergyCounter(
player, (TileEntityEnergyCounter) tileEntity);
return new GuiEnergyCounter(containerCounter);
}
@Override
public IIcon getIcon(int index) {
return icons[index];
}
@Override
protected byte[][] getMapping() {
return mapping;
}
@Override
public void registerIcons(IIconRegister iconRegister) {
icons[I_INPUT] = iconRegister
.registerIcon("nuclearcontrol:energyCounter/input");
icons[I_OUTPUT] = iconRegister
.registerIcon("nuclearcontrol:energyCounter/output");
}
}