// Path: src/main/java/buildcraftAdditions/reference/enums/EnumMachineUpgrades.java
// public enum EnumMachineUpgrades {
// 
// 	AUTO_OUTPUT("upgradeAutoEject", false),
// 	EFFICIENCY_1("upgradeEfficiency1", false),
// 	EFFICIENCY_2("upgradeEfficiency2", false),
// 	EFFICIENCY_3("upgradeEfficiency3", false),
// 	SPEED_1("upgradeSpeed1", false),
// 	SPEED_2("upgradeSpeed2", false),
// 	SPEED_3("upgradeSpeed3", false),
// 	AUTO_IMPORT("upgradeAutoImport", false);
// 
// 	private final String tag;
// 	private final boolean multipleInstalls;
// 	private final ResourceLocation texture;
// 
// 	private EnumMachineUpgrades(String tag, boolean multipleInstalls) {
// 		this.tag = tag;
// 		this.multipleInstalls = multipleInstalls;
// 		texture = new ResourceLocation(Variables.MOD.ID, "textures/items/upgrades/" + tag.substring(7).toLowerCase() + ".png");
// 	}
// 
// 	public String getTag() {
// 		return tag;
// 	}
// 
// 	public boolean canBeInstalledMultipleTimes() {
// 		return multipleInstalls;
// 	}
// 
// 	public ItemStack getItemStack() {
// 		return new ItemStack(ItemLoader.upgrade, 1, ordinal());
// 	}
// 
// 	public ResourceLocation getTexture() {
// 		return texture;
// 	}
// 
// 	public String getTextureName() {
// 		return "upgrades/" + tag.substring(7).toLowerCase();
// 	}
// 
// 
// }


import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Set;
import com.google.common.base.Strings;
import com.google.common.collect.Sets;
import org.lwjgl.opengl.GL11;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.network.play.client.C07PacketPlayerDigging;
import net.minecraft.network.play.server.S23PacketBlockChange;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.MathHelper;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
import net.minecraftforge.common.ForgeHooks;
import net.minecraftforge.common.util.Constants;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.event.world.BlockEvent;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.OreDictionary;
import buildcraft.api.transport.IInjectable;
import buildcraftAdditions.api.configurableOutput.EnumPriority;
import buildcraftAdditions.api.configurableOutput.SideConfiguration;
import buildcraftAdditions.reference.enums.EnumMachineUpgrades;
import buildcraftAdditions.tileEntities.interfaces.IUpgradableMachine;
			color += EnumChatFormatting.YELLOW;
		else if (percent >= 30)
			color += EnumChatFormatting.GOLD;
		else if (percent >= 15)
			color += EnumChatFormatting.RED;
		else
			color += EnumChatFormatting.DARK_RED;
		return color + percent + "%";
	}

	public static String colorText(String text, EnumChatFormatting color) {
		return ("" + color + text).trim();
	}

	public static String decapitalizeFirstChar(String string) {
		return !Strings.isNullOrEmpty(string) ? Character.toLowerCase(string.charAt(0)) + string.substring(1) : null;
	}

	public static void dropInventory(World world, int x, int y, int z) {
		TileEntity tile = world.getTileEntity(x, y, z);
		if (tile != null) {
			if (tile instanceof IInventory) {
				IInventory inventory = (IInventory) tile;
				for (int i = 0; i < inventory.getSizeInventory(); i++) {
					dropItemstack(world, x, y, z, inventory.getStackInSlot(i));
					inventory.setInventorySlotContents(i, null);
				}
			}
			if (tile instanceof IUpgradableMachine) {
				IUpgradableMachine machine = (IUpgradableMachine) tile;
// Path: src/main/java/buildcraftAdditions/reference/enums/EnumMachineUpgrades.java
// public enum EnumMachineUpgrades {
// 
// 	AUTO_OUTPUT("upgradeAutoEject", false),
// 	EFFICIENCY_1("upgradeEfficiency1", false),
// 	EFFICIENCY_2("upgradeEfficiency2", false),
// 	EFFICIENCY_3("upgradeEfficiency3", false),
// 	SPEED_1("upgradeSpeed1", false),
// 	SPEED_2("upgradeSpeed2", false),
// 	SPEED_3("upgradeSpeed3", false),
// 	AUTO_IMPORT("upgradeAutoImport", false);
// 
// 	private final String tag;
// 	private final boolean multipleInstalls;
// 	private final ResourceLocation texture;
// 
// 	private EnumMachineUpgrades(String tag, boolean multipleInstalls) {
// 		this.tag = tag;
// 		this.multipleInstalls = multipleInstalls;
// 		texture = new ResourceLocation(Variables.MOD.ID, "textures/items/upgrades/" + tag.substring(7).toLowerCase() + ".png");
// 	}
// 
// 	public String getTag() {
// 		return tag;
// 	}
// 
// 	public boolean canBeInstalledMultipleTimes() {
// 		return multipleInstalls;
// 	}
// 
// 	public ItemStack getItemStack() {
// 		return new ItemStack(ItemLoader.upgrade, 1, ordinal());
// 	}
// 
// 	public ResourceLocation getTexture() {
// 		return texture;
// 	}
// 
// 	public String getTextureName() {
// 		return "upgrades/" + tag.substring(7).toLowerCase();
// 	}
// 
// 
// }


// Path: src/main/java/buildcraftAdditions/utils/Utils.java
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Set;
import com.google.common.base.Strings;
import com.google.common.collect.Sets;
import org.lwjgl.opengl.GL11;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.network.play.client.C07PacketPlayerDigging;
import net.minecraft.network.play.server.S23PacketBlockChange;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.MathHelper;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
import net.minecraftforge.common.ForgeHooks;
import net.minecraftforge.common.util.Constants;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.event.world.BlockEvent;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.OreDictionary;
import buildcraft.api.transport.IInjectable;
import buildcraftAdditions.api.configurableOutput.EnumPriority;
import buildcraftAdditions.api.configurableOutput.SideConfiguration;
import buildcraftAdditions.reference.enums.EnumMachineUpgrades;
import buildcraftAdditions.tileEntities.interfaces.IUpgradableMachine;

			color += EnumChatFormatting.YELLOW;
		else if (percent >= 30)
			color += EnumChatFormatting.GOLD;
		else if (percent >= 15)
			color += EnumChatFormatting.RED;
		else
			color += EnumChatFormatting.DARK_RED;
		return color + percent + "%";
	}

	public static String colorText(String text, EnumChatFormatting color) {
		return ("" + color + text).trim();
	}

	public static String decapitalizeFirstChar(String string) {
		return !Strings.isNullOrEmpty(string) ? Character.toLowerCase(string.charAt(0)) + string.substring(1) : null;
	}

	public static void dropInventory(World world, int x, int y, int z) {
		TileEntity tile = world.getTileEntity(x, y, z);
		if (tile != null) {
			if (tile instanceof IInventory) {
				IInventory inventory = (IInventory) tile;
				for (int i = 0; i < inventory.getSizeInventory(); i++) {
					dropItemstack(world, x, y, z, inventory.getStackInSlot(i));
					inventory.setInventorySlotContents(i, null);
				}
			}
			if (tile instanceof IUpgradableMachine) {
				IUpgradableMachine machine = (IUpgradableMachine) tile;
				Set<EnumMachineUpgrades> upgrades = machine.getInstalledUpgrades();