package mekanism.common.capabilities;
import mekanism.api.energy.IStrictEnergyAcceptor;
import mekanism.common.capabilities.DefaultStorageHelper.DefaultStorage;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumFacing;
import net.minecraftforge.common.capabilities.CapabilityManager;
import net.minecraftforge.common.util.INBTSerializable;
/**
* Created by ben on 30/04/16.
*/
public class DefaultStrictEnergyAcceptor extends DefaultStrictEnergyStorage implements IStrictEnergyAcceptor, INBTSerializable<NBTTagCompound>
{
public DefaultStrictEnergyAcceptor()
{
this(0);
}
public DefaultStrictEnergyAcceptor(double capacity)
{
super(capacity);
}
@Override
public double transferEnergyToAcceptor(EnumFacing side, double amount)
{
double used = Math.min(amount, Math.max(0, getMaxEnergy() - getEnergy()));
setEnergy(getEnergy() + used);
return used;
}
@Override
public boolean canReceiveEnergy(EnumFacing side)
{
return true;
}
@Override
public NBTTagCompound serializeNBT()
{
return super.serializeNBT();
}
@Override
public void deserializeNBT(NBTTagCompound nbt)
{
super.deserializeNBT(nbt);
}
public static void register()
{
CapabilityManager.INSTANCE.register(IStrictEnergyAcceptor.class, new DefaultStorage<>(), DefaultStrictEnergyAcceptor.class);
}
}