aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/graphs/consumers/NodeEnergySink.java
blob: 44fb88e5e8af25fe7f71076bcf598138e0583a78 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package gregtech.api.graphs.consumers;

import java.util.ArrayList;

import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection;

import ic2.api.energy.tile.IEnergySink;

// consumer for IC2 machines
public class NodeEnergySink extends ConsumerNode {

    public NodeEnergySink(int nodeValue, IEnergySink tileEntity, ForgeDirection side,
        ArrayList<ConsumerNode> consumers) {
        super(nodeValue, (TileEntity) tileEntity, side, consumers);
    }

    @Override
    public boolean needsEnergy() {
        return super.needsEnergy() && ((IEnergySink) mTileEntity).getDemandedEnergy() > 0;
    }

    @Override
    public int injectEnergy(long aVoltage, long aMaxAmps) {
        int tUsedAmps = 0;
        while (aMaxAmps > tUsedAmps && ((IEnergySink) mTileEntity).getDemandedEnergy() > 0
            && ((IEnergySink) mTileEntity).injectEnergy(mSide, aVoltage, aVoltage) < aVoltage) tUsedAmps++;
        return tUsedAmps;
    }
}