diff options
author | boubou19 <miisterunknown@gmail.com> | 2021-07-03 18:04:11 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-03 18:04:11 +0200 |
commit | d5ff8e7cdaaa7f2bb1bf644addd4882401f41ff0 (patch) | |
tree | 0f82bc58425983c84d7ece884596f62cd910f562 /src/main/java/gregtech/api/graphs/consumers | |
parent | 2a5b42343509d9684affa6be27da32e9eef89851 (diff) | |
parent | 12315a9b056b69abcdfe1474959a846753208529 (diff) | |
download | GT5-Unofficial-d5ff8e7cdaaa7f2bb1bf644addd4882401f41ff0.tar.gz GT5-Unofficial-d5ff8e7cdaaa7f2bb1bf644addd4882401f41ff0.tar.bz2 GT5-Unofficial-d5ff8e7cdaaa7f2bb1bf644addd4882401f41ff0.zip |
Merge pull request #586 from GTNewHorizons/beter-power-net
Beter power net
Diffstat (limited to 'src/main/java/gregtech/api/graphs/consumers')
-rw-r--r-- | src/main/java/gregtech/api/graphs/consumers/NodeEnergyConnected.java | 22 | ||||
-rw-r--r-- | src/main/java/gregtech/api/graphs/consumers/NodeEnergyReceiver.java | 13 |
2 files changed, 32 insertions, 3 deletions
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); + } +} diff --git a/src/main/java/gregtech/api/graphs/consumers/NodeEnergyReceiver.java b/src/main/java/gregtech/api/graphs/consumers/NodeEnergyReceiver.java index c8c4c64211..9bd00d9e28 100644 --- a/src/main/java/gregtech/api/graphs/consumers/NodeEnergyReceiver.java +++ b/src/main/java/gregtech/api/graphs/consumers/NodeEnergyReceiver.java @@ -17,6 +17,7 @@ import static gregtech.api.enums.GT_Values.V; //consumer for RF machines public class NodeEnergyReceiver extends ConsumerNode { + int mRestRF = 0; public NodeEnergyReceiver(int aNodeValue, IEnergyReceiver aTileEntity, byte aSide, ArrayList<ConsumerNode> aConsumers) { super(aNodeValue, (TileEntity) aTileEntity, aSide, aConsumers); } @@ -25,9 +26,15 @@ public class NodeEnergyReceiver extends ConsumerNode { public int injectEnergy(int aVoltage, int aMaxAmps) { ForgeDirection tDirection = ForgeDirection.getOrientation(mSide); int rfOut = GT_Utility.safeInt(aVoltage * GregTech_API.mEUtoRF / 100); - if (((IEnergyReceiver) mTileEntity).receiveEnergy(tDirection, rfOut, true) == rfOut) { - ((IEnergyReceiver) mTileEntity).receiveEnergy(tDirection, rfOut, false); - return 1; + int ampsUsed = 1; + if (mRestRF > rfOut) { + rfOut = mRestRF; + ampsUsed = 0; + } + if (((IEnergyReceiver) mTileEntity).receiveEnergy(tDirection, rfOut, true) > 0) { + int consumed = ((IEnergyReceiver) mTileEntity).receiveEnergy(tDirection, rfOut, false); + mRestRF = rfOut - consumed; + return ampsUsed; } if (GregTech_API.mRFExplosions && GregTech_API.sMachineExplosions && ((IEnergyReceiver) mTileEntity).getMaxEnergyStored(tDirection) < rfOut * 600L) { |