aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/graphs/consumers
diff options
context:
space:
mode:
authorboubou19 <miisterunknown@gmail.com>2021-07-03 18:04:11 +0200
committerGitHub <noreply@github.com>2021-07-03 18:04:11 +0200
commitd5ff8e7cdaaa7f2bb1bf644addd4882401f41ff0 (patch)
tree0f82bc58425983c84d7ece884596f62cd910f562 /src/main/java/gregtech/api/graphs/consumers
parent2a5b42343509d9684affa6be27da32e9eef89851 (diff)
parent12315a9b056b69abcdfe1474959a846753208529 (diff)
downloadGT5-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.java22
-rw-r--r--src/main/java/gregtech/api/graphs/consumers/NodeEnergyReceiver.java13
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) {