diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/gregtech/api/graphs/GenerateNodeMapPower.java | 13 | ||||
-rw-r--r-- | src/main/java/gregtech/api/graphs/consumers/NodeEnergyConnected.java | 22 |
2 files changed, 33 insertions, 2 deletions
diff --git a/src/main/java/gregtech/api/graphs/GenerateNodeMapPower.java b/src/main/java/gregtech/api/graphs/GenerateNodeMapPower.java index c4b9b59a1b..ec5c984bc0 100644 --- a/src/main/java/gregtech/api/graphs/GenerateNodeMapPower.java +++ b/src/main/java/gregtech/api/graphs/GenerateNodeMapPower.java @@ -5,6 +5,7 @@ import gregtech.api.GregTech_API; import gregtech.api.graphs.consumers.*; import gregtech.api.graphs.paths.NodePath; import gregtech.api.graphs.paths.PowerNodePath; +import gregtech.api.interfaces.tileentity.IEnergyConnected; import gregtech.api.metatileentity.BaseMetaPipeEntity; import gregtech.api.metatileentity.BaseMetaTileEntity; import gregtech.api.metatileentity.MetaPipeEntity; @@ -50,8 +51,16 @@ public class GenerateNodeMapPower extends GenerateNodeMap { protected boolean addConsumer(TileEntity aTileEntity, byte aSide, int aNodeValue, ArrayList<ConsumerNode> aConsumers) { if (aTileEntity instanceof BaseMetaTileEntity) { BaseMetaTileEntity tBaseTileEntity = (BaseMetaTileEntity) aTileEntity; - if (tBaseTileEntity.inputEnergyFrom(aSide,false)) { - ConsumerNode tConsumerNode = new NodeGTBaseMetaTile(aNodeValue,tBaseTileEntity, aSide, aConsumers); + if (tBaseTileEntity.inputEnergyFrom(aSide, false)) { + ConsumerNode tConsumerNode = new NodeGTBaseMetaTile(aNodeValue, tBaseTileEntity, aSide, aConsumers); + aConsumers.add(tConsumerNode); + return true; + } + + } else if (aTileEntity instanceof IEnergyConnected) { + IEnergyConnected tTileEntity = (IEnergyConnected) aTileEntity; + if (tTileEntity.inputEnergyFrom(aSide,false)) { + ConsumerNode tConsumerNode = new NodeEnergyConnected(aNodeValue,tTileEntity,aSide,aConsumers); aConsumers.add(tConsumerNode); return true; } diff --git a/src/main/java/gregtech/api/graphs/consumers/NodeEnergyConnected.java b/src/main/java/gregtech/api/graphs/consumers/NodeEnergyConnected.java new file mode 100644 index 0000000000..baff232d94 --- /dev/null +++ b/src/main/java/gregtech/api/graphs/consumers/NodeEnergyConnected.java @@ -0,0 +1,22 @@ +package gregtech.api.graphs.consumers; + +import gregtech.api.interfaces.tileentity.IEnergyConnected; +import net.minecraft.tileentity.TileEntity; + +import java.util.ArrayList; + +public class NodeEnergyConnected extends ConsumerNode { + public NodeEnergyConnected(int aNodeValue, IEnergyConnected aTileEntity, byte aSide, ArrayList<ConsumerNode> aConsumers) { + super(aNodeValue,(TileEntity) aTileEntity, aSide, aConsumers); + } + + @Override + public boolean needsEnergy() { + return super.needsEnergy(); + } + + @Override + public int injectEnergy(int aVoltage, int aMaxAmps) { + return (int) ((IEnergyConnected)mTileEntity).injectEnergyUnits(mSide,aVoltage,aMaxAmps); + } +} |