//package com.projectreddog.machinemod.energy;
//
//import net.minecraft.item.Item;
//import net.minecraft.item.ItemStack;
//import net.minecraft.nbt.NBTTagCompound;
//
///**
// * Reference implementation of {@link IEnergyContainerItem}. Use/extend this or
// * implement your own.
// *
// * @author King Lemming
// *
// */
//public class ItemEnergyContainer extends Item implements IEnergyContainerItem {
//
// protected int capacity;
// protected int maxReceive;
// protected int maxExtract;
//
// public ItemEnergyContainer() {
//
// }
//
// public ItemEnergyContainer(int capacity) {
//
// this(capacity, capacity, capacity);
// }
//
// public ItemEnergyContainer(int capacity, int maxTransfer) {
//
// this(capacity, maxTransfer, maxTransfer);
// }
//
// public ItemEnergyContainer(int capacity, int maxReceive, int maxExtract) {
//
// this.capacity = capacity;
// this.maxReceive = maxReceive;
// this.maxExtract = maxExtract;
// }
//
// public ItemEnergyContainer setCapacity(int capacity) {
//
// this.capacity = capacity;
// return this;
// }
//
// public void setMaxTransfer(int maxTransfer) {
//
// setMaxReceive(maxTransfer);
// setMaxExtract(maxTransfer);
// }
//
// public void setMaxReceive(int maxReceive) {
//
// this.maxReceive = maxReceive;
// }
//
// public void setMaxExtract(int maxExtract) {
//
// this.maxExtract = maxExtract;
// }
//
// /* IEnergyContainerItem */
// @Override
// public int receiveEnergy(ItemStack container, int maxReceive, boolean simulate) {
//
// if (container.stackTagCompound == null) {
// container.stackTagCompound = new NBTTagCompound();
// }
// int energy = container.stackTagCompound.getInteger("Energy");
// int energyReceived = Math.min(capacity - energy, Math.min(this.maxReceive, maxReceive));
//
// if (!simulate) {
// energy += energyReceived;
// container.stackTagCompound.setInteger("Energy", energy);
// }
// return energyReceived;
// }
//
// @Override
// public int extractEnergy(ItemStack container, int maxExtract, boolean simulate) {
//
// if (container.stackTagCompound == null || !container.stackTagCompound.hasKey("Energy")) {
// return 0;
// }
// int energy = container.stackTagCompound.getInteger("Energy");
// int energyExtracted = Math.min(energy, Math.min(this.maxExtract, maxExtract));
//
// if (!simulate) {
// energy -= energyExtracted;
// container.stackTagCompound.setInteger("Energy", energy);
// }
// return energyExtracted;
// }
//
// @Override
// public int getEnergyStored(ItemStack container) {
//
// if (container.stackTagCompound == null || !container.stackTagCompound.hasKey("Energy")) {
// return 0;
// }
// return container.stackTagCompound.getInteger("Energy");
// }
//
// @Override
// public int getMaxEnergyStored(ItemStack container) {
//
// return capacity;
// }
//
// }