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 shedar.mods.ic2.nuclearcontrol.IScreenPart;
import shedar.mods.ic2.nuclearcontrol.containers.ContainerAdvancedInfoPanel;
import shedar.mods.ic2.nuclearcontrol.gui.GuiAdvancedInfoPanel;
import shedar.mods.ic2.nuclearcontrol.panel.Screen;
import shedar.mods.ic2.nuclearcontrol.tileentities.TileEntityAdvancedInfoPanel;
import shedar.mods.ic2.nuclearcontrol.utils.BlockDamages;
public class AdvancedInfoPanel extends InfoPanel {
private static final int DAMAGE = BlockDamages.DAMAGE_ADVANCED_PANEL;
private static final float[] BOUNDS = { 0, 0, 0, 1, 1, 1 };
private static final byte[][] mapping = {
{ I_PANEL_ADV_SIDE, I_COLOR_DEFAULT, I_PANEL_ADV_SIDE,
I_PANEL_ADV_SIDE, I_PANEL_ADV_SIDE, I_PANEL_ADV_SIDE },
{ I_COLOR_DEFAULT, I_PANEL_ADV_SIDE, I_PANEL_ADV_SIDE,
I_PANEL_ADV_SIDE, I_PANEL_ADV_SIDE, I_PANEL_ADV_SIDE },
{ I_PANEL_ADV_SIDE, I_PANEL_ADV_SIDE, I_PANEL_ADV_SIDE,
I_COLOR_DEFAULT, I_PANEL_ADV_SIDE, I_PANEL_ADV_SIDE },
{ I_PANEL_ADV_SIDE, I_PANEL_ADV_SIDE, I_COLOR_DEFAULT,
I_PANEL_ADV_SIDE, I_PANEL_ADV_SIDE, I_PANEL_ADV_SIDE },
{ I_PANEL_ADV_SIDE, I_PANEL_ADV_SIDE, I_PANEL_ADV_SIDE,
I_PANEL_ADV_SIDE, I_PANEL_ADV_SIDE, I_COLOR_DEFAULT },
{ I_PANEL_ADV_SIDE, I_PANEL_ADV_SIDE, I_PANEL_ADV_SIDE,
I_PANEL_ADV_SIDE, I_COLOR_DEFAULT, I_PANEL_ADV_SIDE } };
public AdvancedInfoPanel() {
super(DAMAGE, "tile.blockAdvancedInfoPanel");
}
@Override
public TileEntity getTileEntity() {
return new TileEntityAdvancedInfoPanel();
}
@Override
public boolean isSolidBlockRequired() {
return false;
}
@Override
public boolean hasGui() {
return true;
}
@Override
public float[] getBlockBounds(TileEntity tileEntity) {
if (tileEntity == null)
return BOUNDS;
float[] bounds = BOUNDS.clone();
if (tileEntity != null) {
Screen screen = ((IScreenPart) tileEntity).getScreen();
if (screen != null) {
TileEntityAdvancedInfoPanel core = (TileEntityAdvancedInfoPanel) screen
.getCore(tileEntity.getWorldObj());
if (core != null) {
int thickness = core.thickness;
if (thickness != 16) {
bounds[4] = Math.max(thickness, 1) / 16F;
} else {
bounds[4] = 0.98F;
}
}
}
}
return bounds;
}
@Override
public Container getServerGuiElement(TileEntity tileEntity,
EntityPlayer player) {
return new ContainerAdvancedInfoPanel(player,
(TileEntityAdvancedInfoPanel) tileEntity);
}
@Override
public Object getClientGuiElement(TileEntity tileEntity, EntityPlayer player) {
ContainerAdvancedInfoPanel containerAdvancedPanel = new ContainerAdvancedInfoPanel(
player, (TileEntityAdvancedInfoPanel) tileEntity);
return new GuiAdvancedInfoPanel(containerAdvancedPanel);
}
@Override
public void registerIcons(IIconRegister iconRegister) {
super.registerIcons(iconRegister);
}
@Override
protected byte[][] getMapping() {
return mapping;
}
}