package shedar.mods.ic2.nuclearcontrol.blocks.subblocks;
import ic2.api.item.IC2Items;
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 net.minecraft.world.World;
import shedar.mods.ic2.nuclearcontrol.containers.ContainerInfoPanel;
import shedar.mods.ic2.nuclearcontrol.gui.GuiInfoPanel;
import shedar.mods.ic2.nuclearcontrol.tileentities.TileEntityInfoPanel;
import shedar.mods.ic2.nuclearcontrol.utils.BlockDamages;
import shedar.mods.ic2.nuclearcontrol.utils.NCLog;
public class InfoPanel extends Subblock {
private static final int DAMAGE = BlockDamages.DAMAGE_INFO_PANEL;
private static final float[] BOUNDS = { 0, 0, 0, 1, 1, 1 };
public static final byte I_PANEL_BACK = 0;
public static final byte I_PANEL_SIDE = 1;
public static final byte I_PANEL_ADV_SIDE = 2;
public static final byte I_EXTENDER_BACK = 3;
public static final byte I_EXTENDER_SIDE = 4;
public static final byte I_EXTENDER_ADV_SIDE = 5;
public static final byte I_COLORS_OFFSET = 6;
public static final int I_COLOR_DEFAULT = I_COLORS_OFFSET + 16 * 3 - 1;
private static final byte[][] mapping = {
{ I_PANEL_BACK, I_COLOR_DEFAULT, I_PANEL_SIDE, I_PANEL_SIDE,
I_PANEL_SIDE, I_PANEL_SIDE },
{ I_COLOR_DEFAULT, I_PANEL_BACK, I_PANEL_SIDE, I_PANEL_SIDE,
I_PANEL_SIDE, I_PANEL_SIDE },
{ I_PANEL_SIDE, I_PANEL_SIDE, I_PANEL_BACK, I_COLOR_DEFAULT,
I_PANEL_SIDE, I_PANEL_SIDE },
{ I_PANEL_SIDE, I_PANEL_SIDE, I_COLOR_DEFAULT, I_PANEL_BACK,
I_PANEL_SIDE, I_PANEL_SIDE },
{ I_PANEL_SIDE, I_PANEL_SIDE, I_PANEL_SIDE, I_PANEL_SIDE,
I_PANEL_BACK, I_COLOR_DEFAULT },
{ I_PANEL_SIDE, I_PANEL_SIDE, I_PANEL_SIDE, I_PANEL_SIDE,
I_COLOR_DEFAULT, I_PANEL_BACK } };
protected IIcon[] icons = new IIcon[486];
public InfoPanel() {
super(DAMAGE, "tile.blockInfoPanel");
}
public InfoPanel(int damage, String name) {
super(damage, name);
}
@Override
public TileEntity getTileEntity() {
return new TileEntityInfoPanel();
}
@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 ContainerInfoPanel(player, (TileEntityInfoPanel) tileEntity);
}
@Override
public Object getClientGuiElement(TileEntity tileEntity, EntityPlayer player) {
ContainerInfoPanel containerPanel = new ContainerInfoPanel(player,
(TileEntityInfoPanel) tileEntity);
return new GuiInfoPanel(containerPanel);
}
@Override
public IIcon getIcon(int index) {
return icons[index];
}
@Override
protected byte[][] getMapping() {
return mapping;
}
@Override
public void registerIcons(IIconRegister iconRegister) {
icons[I_PANEL_BACK] = iconRegister.registerIcon("nuclearcontrol:infoPanel/panelBack");
icons[I_PANEL_SIDE] = iconRegister.registerIcon("nuclearcontrol:infoPanel/panelSide");
icons[I_PANEL_ADV_SIDE] = iconRegister.registerIcon("nuclearcontrol:infoPanel/panelAdvancedSide");
icons[I_EXTENDER_BACK] = iconRegister.registerIcon("nuclearcontrol:infoPanel/extenderBack");
icons[I_EXTENDER_SIDE] = iconRegister.registerIcon("nuclearcontrol:infoPanel/extenderSide");
icons[I_EXTENDER_ADV_SIDE] = iconRegister.registerIcon("nuclearcontrol:infoPanel/extenderAdvancedSide");
for (int i = 0; i <= 14; i++) {
for (int j = 0; j <= 15; j++) {
icons[i * 16 + j + I_COLORS_OFFSET] = iconRegister.registerIcon("nuclearcontrol:infoPanel/off/" + i + "/" + j);
}
}
for (int i = 0; i <= 14; i++) {
for (int j = 0; j <= 15; j++) {
icons[i * 16 + j + I_COLORS_OFFSET + 240] = iconRegister
.registerIcon("nuclearcontrol:infoPanel/on/" + i + "/"
+ j);
}
}
}
}