package crazypants.enderio.machine.painter;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import crazypants.enderio.GuiHandler;
import crazypants.enderio.ModObject;
import crazypants.enderio.machine.AbstractMachineBlock;
public class BlockPainter extends AbstractMachineBlock<TileEntityPainter> {
public static final String KEY_SOURCE_BLOCK_ID = "sourceBlockId";
public static final String KEY_SOURCE_BLOCK_META = "sourceBlockMeta";
public static BlockPainter create() {
BlockPainter ppainter = new BlockPainter();
ppainter.init();
return ppainter;
}
private IIcon invisibleIcon;
private BlockPainter() {
super(ModObject.blockPainter, TileEntityPainter.class);
}
@Override
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
// The server needs the container as it manages the adding and removing of
// items, which are then sent to the client for display
TileEntity te = world.getTileEntity(x, y, z);
if(te instanceof TileEntityPainter) {
return new PainterContainer(player.inventory, (TileEntityPainter) te);
}
return null;
}
@Override
@SideOnly(Side.CLIENT)
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
TileEntity te = world.getTileEntity(x, y, z);
return new GuiPainter(player.inventory, (TileEntityPainter) te);
}
@Override
protected int getGuiId() {
return GuiHandler.GUI_ID_PAINTER;
}
public IIcon getInvisibleIcon() {
return invisibleIcon;
}
public void setInvisibleIcon(IIcon invisibleIcon) {
this.invisibleIcon = invisibleIcon;
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iIconRegister) {
super.registerBlockIcons(iIconRegister);
invisibleIcon = iIconRegister.registerIcon("enderio:invisblePaint");
}
@Override
protected String getMachineFrontIconKey(boolean active) {
if(active) {
return "enderio:painterFrontOn";
}
return "enderio:painterFrontOff";
}
}