package emasher.items; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import emasher.EngineersToolbox; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.world.World; import java.util.List; public class ItemSocketRemote extends Item { @SideOnly( Side.CLIENT ) public IIcon[] textures; public ItemSocketRemote() { super(); this.setCreativeTab( EngineersToolbox.tabItems() ); this.setMaxStackSize( 1 ); this.setUnlocalizedName( "socket_remote" ); } @Override @SideOnly( Side.CLIENT ) public void registerIcons( IIconRegister ir ) { String cb = ""; if( emasher.util.Config.cbTextures() ) cb = "cb"; textures = new IIcon[7]; for( int i = 0; i < 7; i++ ) { textures[i] = ir.registerIcon( "eng_toolbox:remote_" + i + cb ); } itemIcon = textures[0]; } @Override @SideOnly( Side.CLIENT ) public IIcon getIconFromDamage( int damage ) { return textures[damage]; } @Override public ItemStack onItemRightClick( ItemStack item, World world, EntityPlayer player ) { if( player.isSneaking() && !world.isRemote ) { item.setItemDamage( item.getItemDamage() + 1 ); if( item.getItemDamage() == 7 ) item.setItemDamage( 0 ); } return item; } @Override public boolean onEntitySwing( EntityLivingBase entityLiving, ItemStack stack ) { if( !entityLiving.worldObj.isRemote ) { if( entityLiving instanceof EntityPlayer ) { EntityPlayer player = ( EntityPlayer ) entityLiving; if( player.isSneaking() && !player.isSwingInProgress ) { int damage = stack.getItemDamage(); damage--; if( damage < 0 ) damage = 6; stack.setItemDamage( damage ); } } } return false; } @Override public boolean isItemTool( ItemStack par1ItemStack ) { return true; } @Override public void addInformation( ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4 ) { String tooltip = ""; switch(par1ItemStack.getItemDamage()) { case 0: tooltip = EnumChatFormatting.BLUE + "Tank Select Mode"; break; case 1: tooltip = EnumChatFormatting.GREEN + "Inventory Select Mode"; break; case 2: tooltip = EnumChatFormatting.RED + "Redstone Circuit Select Mode"; break; case 3: tooltip = EnumChatFormatting.DARK_PURPLE + "Redstone Latch Select Mode"; break; case 4: tooltip = EnumChatFormatting.WHITE + "Generic Mode"; break; case 5: tooltip = EnumChatFormatting.YELLOW + "Module Lock Mode"; break; case 6: tooltip = EnumChatFormatting.AQUA + "Facade Removal Mode"; break; } par3List.add( tooltip ); } }