/**
* Copyright (c) Lambda Innovation, 2013-2016
* This file is part of the AcademyCraft mod.
* https://github.com/LambdaInnovation/AcademyCraft
* Licensed under GPLv3, see project root for more information.
*/
package cn.academy.support.ic2;
import cn.academy.support.EnergyBlockHelper.IEnergyBlockManager;
import ic2.api.energy.tile.IEnergySource;
import net.minecraft.tileentity.TileEntity;
/**
* @author WeAthFolD
*/
public class EUSourceManager implements IEnergyBlockManager {
@Override
public boolean isSupported(TileEntity tile) {
return asSource(tile) != null;
}
IEnergySource asSource(TileEntity tile) {
return tile instanceof IEnergySource ? (IEnergySource) tile : null;
}
@Override
public double getEnergy(TileEntity tile) {
// NOT SUPPORTED
return 0;
}
@Override
public void setEnergy(TileEntity tile, double energy) {
// NOT SUPPORTED
return;
}
@Override
public double charge(TileEntity tile, double amt, boolean ignoreBandwidth) {
// NOT SUPPORTED
return amt;
}
@Override
public double pull(TileEntity tile, double amt, boolean ignoreBandwidth) {
IEnergySource src = asSource(tile);
if(src != null) {
double todraw = Math.min(src.getOfferedEnergy(), amt / IC2Support.CONV_RATE);
src.drawEnergy(todraw);
return todraw * IC2Support.CONV_RATE;
}
return 0;
}
}