// Path: src/main/java/com/nauktis/core/utility/Color.java
// public enum Color {
//     BLACK("\u00a70"),
//     WHITE("\u00a7f"),
//     GREY("\u00a77"),
//     AQUA("\u00a7b"),
//     GREEN("\u00a7a"),
//     RED("\u00a7c"),
//     YELLOW("\u00a7e");
// 
//     public final String mColorCode;
// 
//     Color(String pColorCode) {
//         mColorCode = pColorCode;
//     }
// 
//     @Override
//     public String toString() {
//         return mColorCode;
//     }
// }
// 
// Path: src/main/java/com/nauktis/core/utility/Utils.java
// public final class Utils {
//     public static final Random RANDOM = new Random();
// 
//     /**
//      * Utility class, no public constructor.
//      */
//     private Utils() {
// 
//     }
// 
//     /**
//      * Returns true for server side world.
//      */
//     public static boolean isServer(World pWorld) {
//         return !pWorld.isRemote;
//     }
// 
//     /**
//      * Returns true for client side world.
//      */
//     public static boolean isClient(World pWorld) {
//         return pWorld.isRemote;
//     }
// 
//     /**
//      * Returns true if the player has a usable wrench equipped.
//      */
//     public static boolean hasUsableWrench(EntityPlayer pPlayer, int pX, int pY, int pZ) {
//         ItemStack tool = pPlayer.getCurrentEquippedItem();
//         if (tool != null) {
//             if (ModAPIManager.INSTANCE.hasAPI("BuildCraftAPI|tools") && tool.getItem() instanceof IToolWrench && ((IToolWrench) tool.getItem())
//                     .canWrench(pPlayer, pX, pY, pZ)) {
//                 return true;
//             }
//         }
//         return false;
//     }
// 
//     /**
//      * Spawns an ItemStack in the World. No motion in X and Z axis.
//      */
//     public static void spawnItemStack(World pWorld, int pX, int pY, int pZ, ItemStack pItemStack) {
//         EntityItem entityItem = new EntityItem(pWorld, pX + 0.5, pY + 0.5, pZ + 0.5, pItemStack);
//         entityItem.motionX = 0;
//         entityItem.motionZ = 0;
//         pWorld.spawnEntityInWorld(entityItem);
//     }
// 
//     /**
//      * Returns true if the two ItemStacks contains exactly the same item without taking stack size into account.
//      * Credit to Pahimar.
//      */
//     public static boolean itemStacksEqualIgnoreStackSize(ItemStack pItemStack1, ItemStack pItemStack2) {
//         if (pItemStack1 != null && pItemStack2 != null) {
//             // Compare itemID
//             if (Item.getIdFromItem(pItemStack1.getItem()) - Item.getIdFromItem(pItemStack2.getItem()) == 0) {
//                 // Compare item
//                 if (pItemStack1.getItem() == pItemStack2.getItem()) {
//                     // Compare meta
//                     if (pItemStack1.getItemDamage() == pItemStack2.getItemDamage()) {
//                         // Compare NBT presence
//                         if (pItemStack1.hasTagCompound() && pItemStack2.hasTagCompound()) {
//                             // Compare NBT
//                             if (ItemStack.areItemStackTagsEqual(pItemStack1, pItemStack2)) {
//                                 return true;
//                             }
//                         } else if (!pItemStack1.hasTagCompound() && !pItemStack2.hasTagCompound()) {
//                             return true;
//                         }
//                     }
//                 }
//             }
//         }
//         return false;
//     }
// 
//     public static boolean isShiftKeyDown() {
//         return Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT);
//     }
// }


import com.google.common.collect.Lists;
import com.nauktis.core.utility.Color;
import com.nauktis.core.utility.Utils;
import com.nauktis.solarflux.utility.Lang;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import java.util.List;
package com.nauktis.solarflux.items;



public class UpgradeItem extends SFItem {
    private final int mMaximumPerSolarPanel;
    private final List<String> mUpgradeInfos = Lists.newArrayList();

    public UpgradeItem(String pName, int pMaximumPerSolarPanel, List<String> pUpgradeInfos) {
        super(pName);
        mMaximumPerSolarPanel = pMaximumPerSolarPanel;
        mUpgradeInfos.addAll(pUpgradeInfos);
    }

    @Override
    public void addInformation(ItemStack pItemStack, EntityPlayer pEntityPlayer, List pList, boolean pBoolean) {
        super.addInformation(pItemStack, pEntityPlayer, pList, pBoolean);
// Path: src/main/java/com/nauktis/core/utility/Color.java
// public enum Color {
//     BLACK("\u00a70"),
//     WHITE("\u00a7f"),
//     GREY("\u00a77"),
//     AQUA("\u00a7b"),
//     GREEN("\u00a7a"),
//     RED("\u00a7c"),
//     YELLOW("\u00a7e");
// 
//     public final String mColorCode;
// 
//     Color(String pColorCode) {
//         mColorCode = pColorCode;
//     }
// 
//     @Override
//     public String toString() {
//         return mColorCode;
//     }
// }
// 
// Path: src/main/java/com/nauktis/core/utility/Utils.java
// public final class Utils {
//     public static final Random RANDOM = new Random();
// 
//     /**
//      * Utility class, no public constructor.
//      */
//     private Utils() {
// 
//     }
// 
//     /**
//      * Returns true for server side world.
//      */
//     public static boolean isServer(World pWorld) {
//         return !pWorld.isRemote;
//     }
// 
//     /**
//      * Returns true for client side world.
//      */
//     public static boolean isClient(World pWorld) {
//         return pWorld.isRemote;
//     }
// 
//     /**
//      * Returns true if the player has a usable wrench equipped.
//      */
//     public static boolean hasUsableWrench(EntityPlayer pPlayer, int pX, int pY, int pZ) {
//         ItemStack tool = pPlayer.getCurrentEquippedItem();
//         if (tool != null) {
//             if (ModAPIManager.INSTANCE.hasAPI("BuildCraftAPI|tools") && tool.getItem() instanceof IToolWrench && ((IToolWrench) tool.getItem())
//                     .canWrench(pPlayer, pX, pY, pZ)) {
//                 return true;
//             }
//         }
//         return false;
//     }
// 
//     /**
//      * Spawns an ItemStack in the World. No motion in X and Z axis.
//      */
//     public static void spawnItemStack(World pWorld, int pX, int pY, int pZ, ItemStack pItemStack) {
//         EntityItem entityItem = new EntityItem(pWorld, pX + 0.5, pY + 0.5, pZ + 0.5, pItemStack);
//         entityItem.motionX = 0;
//         entityItem.motionZ = 0;
//         pWorld.spawnEntityInWorld(entityItem);
//     }
// 
//     /**
//      * Returns true if the two ItemStacks contains exactly the same item without taking stack size into account.
//      * Credit to Pahimar.
//      */
//     public static boolean itemStacksEqualIgnoreStackSize(ItemStack pItemStack1, ItemStack pItemStack2) {
//         if (pItemStack1 != null && pItemStack2 != null) {
//             // Compare itemID
//             if (Item.getIdFromItem(pItemStack1.getItem()) - Item.getIdFromItem(pItemStack2.getItem()) == 0) {
//                 // Compare item
//                 if (pItemStack1.getItem() == pItemStack2.getItem()) {
//                     // Compare meta
//                     if (pItemStack1.getItemDamage() == pItemStack2.getItemDamage()) {
//                         // Compare NBT presence
//                         if (pItemStack1.hasTagCompound() && pItemStack2.hasTagCompound()) {
//                             // Compare NBT
//                             if (ItemStack.areItemStackTagsEqual(pItemStack1, pItemStack2)) {
//                                 return true;
//                             }
//                         } else if (!pItemStack1.hasTagCompound() && !pItemStack2.hasTagCompound()) {
//                             return true;
//                         }
//                     }
//                 }
//             }
//         }
//         return false;
//     }
// 
//     public static boolean isShiftKeyDown() {
//         return Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT);
//     }
// }


// Path: src/main/java/com/nauktis/solarflux/items/UpgradeItem.java
import com.google.common.collect.Lists;
import com.nauktis.core.utility.Color;
import com.nauktis.core.utility.Utils;
import com.nauktis.solarflux.utility.Lang;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import java.util.List;

package com.nauktis.solarflux.items;



public class UpgradeItem extends SFItem {
    private final int mMaximumPerSolarPanel;
    private final List<String> mUpgradeInfos = Lists.newArrayList();

    public UpgradeItem(String pName, int pMaximumPerSolarPanel, List<String> pUpgradeInfos) {
        super(pName);
        mMaximumPerSolarPanel = pMaximumPerSolarPanel;
        mUpgradeInfos.addAll(pUpgradeInfos);
    }

    @Override
    public void addInformation(ItemStack pItemStack, EntityPlayer pEntityPlayer, List pList, boolean pBoolean) {
        super.addInformation(pItemStack, pEntityPlayer, pList, pBoolean);
        if (Utils.isShiftKeyDown()) {