package shedar.mods.ic2.nuclearcontrol.items; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.world.World; import org.lwjgl.opengl.GL11; import shedar.mods.ic2.nuclearcontrol.IC2NuclearControl; import shedar.mods.ic2.nuclearcontrol.InventoryItem; import shedar.mods.ic2.nuclearcontrol.gui.GuiRemoteMonitor; public class ItemRemoteMonitor extends Item{ private IIcon base, card; public ItemRemoteMonitor(){ this.setCreativeTab(IC2NuclearControl.tabIC2NC); this.setMaxStackSize(1); } @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { if(!player.isSneaking() && !world.isRemote && stack.stackSize == 1) { player.openGui(IC2NuclearControl.instance, GuiRemoteMonitor.REMOTEMONITOR_GUI, world, 0, 0, 0); } return stack; } @Override public int getMaxItemUseDuration(ItemStack stack) { return 1; } public boolean requiresMultipleRenderPasses(){ return true; } public int getRenderPasses(int k){ return 2; } @Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister iconRegister){ card = iconRegister.registerIcon("nuclearcontrol:remoteMonitorCard"); base = iconRegister.registerIcon("nuclearcontrol:remoteMonitor"); } public IIcon getIcon(ItemStack stack, int pass){ if (pass == 0){ return base; } else { InventoryItem inventoryItem = new InventoryItem(stack); if (inventoryItem.getStackInSlot(0) != null){ this.setCardColor(inventoryItem.getStackInSlot(0).getItem()); return card; } return base; } } private void setCardColor(Item stack){ if(stack instanceof ItemCardEnergySensorLocation){ GL11.glColor4f(255, 0, 0, 1); } else if(stack instanceof ItemCardText){ GL11.glColor4f(0, 255, 0, 1); }else if(stack instanceof ItemTimeCard){ GL11.glColor4f(255,255,51,1); }else{ GL11.glColor4f(0,0,255,1); } } }