package org.freeforums.geforce.securitycraft.items; import java.util.List; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.world.World; import org.freeforums.geforce.securitycraft.blocks.BlockKeycardReader; import org.freeforums.geforce.securitycraft.main.HelpfulMethods; import org.freeforums.geforce.securitycraft.main.mod_SecurityCraft; import org.freeforums.geforce.securitycraft.misc.EnumCustomModules; import org.freeforums.geforce.securitycraft.tileentity.CustomizableSCTE; import org.freeforums.geforce.securitycraft.tileentity.TileEntityKeycardReader; import org.freeforums.geforce.securitycraft.timers.ScheduleKeycardUpdate; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @SuppressWarnings({"unchecked", "rawtypes"}) public class ItemKeycardBase extends Item{ @SideOnly(Side.CLIENT) private IIcon keycardOneIcon; @SideOnly(Side.CLIENT) private IIcon keycardTwoIcon; @SideOnly(Side.CLIENT) private IIcon keycardThreeIcon; @SideOnly(Side.CLIENT) private IIcon limitedUseKeycardIcon; public ItemKeycardBase() { this.setHasSubtypes(true); this.setMaxDamage(0); this.setCreativeTab(mod_SecurityCraft.tabSCTechnical); } /** * returns a list of items with the same ID, but different meta (eg: dye returns 16 items) */ @SideOnly(Side.CLIENT) public void getSubItems(Item par1Item, CreativeTabs par2CreativeTabs, List par3List) { par3List.add(new ItemStack(this, 1, 0)); par3List.add(new ItemStack(this, 1, 1)); par3List.add(new ItemStack(this, 1, 2)); par3List.add(new ItemStack(this, 1, 3)); } /** * Gets an icon index based on an item's damage value */ @SideOnly(Side.CLIENT) public IIcon getIconFromDamage(int par1) { if(par1 == 0){ return this.keycardOneIcon; }else if(par1 == 1){ return this.keycardTwoIcon; }else if(par1 == 2){ return this.keycardThreeIcon; }else if(par1 == 3){ return this.limitedUseKeycardIcon; }else{ return super.getIconFromDamage(par1); } } public String getUnlocalizedName(ItemStack par1ItemStack){ if(par1ItemStack.getItemDamage() == 0){ return "item.keycardOne"; }else if(par1ItemStack.getItemDamage() == 1){ return "item.keycardTwo"; }else if(par1ItemStack.getItemDamage() == 2){ return "item.keycardThree"; }else if(par1ItemStack.getItemDamage() == 3){ return "item.limitedUseKeycard"; }else{ return "item.nullItem"; } } @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister par1IconRegister) { this.keycardOneIcon = par1IconRegister.registerIcon("securitycraft:lv1Keycard"); this.keycardTwoIcon = par1IconRegister.registerIcon("securitycraft:lv2Keycard"); this.keycardThreeIcon = par1IconRegister.registerIcon("securitycraft:lv3Keycard"); this.limitedUseKeycardIcon = par1IconRegister.registerIcon("securitycraft:limitedUseKeycard"); } @SideOnly(Side.CLIENT) public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) { if(par1ItemStack.getItemDamage() == 3){ if(par1ItemStack.stackTagCompound == null){ par1ItemStack.stackTagCompound = new NBTTagCompound(); par1ItemStack.stackTagCompound.setInteger("Uses", 5); } par3List.add("Uses remaining: " + par1ItemStack.stackTagCompound.getInteger("Uses")); } } /** * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return * True if something happen and false if it don't. This is for ITEMS, not BLOCKS */ public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) { if (par3World.getBlock(par4, par5, par6) == mod_SecurityCraft.keycardReader) { if (par3World.isRemote) { if(((TileEntityKeycardReader)par3World.getTileEntity(par4, par5, par6)).getPassLV() > 0){ ((TileEntityKeycardReader)par3World.getTileEntity(par4, par5, par6)).setIsProvidingPower(true); } return true; } else { if(par3World.getBlockMetadata(par4, par5, par6) == 2 || par3World.getBlockMetadata(par4, par5, par6) == 3 || par3World.getBlockMetadata(par4, par5, par6) == 4 || par3World.getBlockMetadata(par4, par5, par6) == 5){ ((BlockKeycardReader)mod_SecurityCraft.keycardReader).insertCard(par3World, par4, par5, par6, par1ItemStack, par2EntityPlayer); } return true; } } else { return false; } } public int getKeycardLV(ItemStack par1ItemStack){ return (par1ItemStack.getItemDamage() + 1); } }