/** * 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.IEnergySink; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; /** * @author WeAthFolD */ public class EUSinkManager implements IEnergyBlockManager { @Override public boolean isSupported(TileEntity tile) { return asSink(tile) != null; } IEnergySink asSink(TileEntity tile) { return tile instanceof IEnergySink ? (IEnergySink) 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) { IEnergySink sink = asSink(tile); if(sink != null) { return IC2Support.CONV_RATE * sink.injectEnergy(ForgeDirection.UP, amt / IC2Support.CONV_RATE, ignoreBandwidth ? 233333 : 1024); } return amt; } @Override public double pull(TileEntity tile, double amt, boolean ignoreBandwidth) { // NOT SUPPORTED return 0; } }