From a8e36458531f5a06856c34251c9dc93ae19998de Mon Sep 17 00:00:00 2001 From: korneel vandamme Date: Sat, 3 Jul 2021 15:07:12 +0200 Subject: fix not reconetcing --- .../metatileentity/implementations/GT_MetaPipeEntity_Cable.java | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/main/java/gregtech/api') diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java index b15e520da7..de008abcab 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java @@ -205,6 +205,15 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile } } + + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + super.onPostTick(aBaseMetaTileEntity, aTick); + if (aTick%20 == 0 && aBaseMetaTileEntity.isServerSide() && (!GT_Mod.gregtechproxy.gt6Cable || mCheckConnections)) { + checkConnections(); + } + } + @Override public boolean onWireCutterRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { if (GT_Mod.gregtechproxy.gt6Cable && GT_ModHandler.damageOrDechargeItem(aPlayer.inventory.getCurrentItem(), 1, 500, aPlayer)) { -- cgit From 5b7dfe22ea8db7a861d5a16b974bf87bcff704fa Mon Sep 17 00:00:00 2001 From: korneel vandamme Date: Sat, 3 Jul 2021 15:16:38 +0200 Subject: store rest of RF to later push it --- .../gregtech/api/graphs/consumers/NodeEnergyReceiver.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/main/java/gregtech/api') diff --git a/src/main/java/gregtech/api/graphs/consumers/NodeEnergyReceiver.java b/src/main/java/gregtech/api/graphs/consumers/NodeEnergyReceiver.java index ec25578e8e..29c07f5b3e 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 aConsumers) { super(aNodeValue, (TileEntity) aTileEntity, aSide, aConsumers); } @@ -25,9 +26,15 @@ public class NodeEnergyReceiver extends ConsumerNode { public int injectEnergy(int aVoltage, int aMaxApms) { ForgeDirection tDirection = ForgeDirection.getOrientation(mSide); int rfOut = GT_Utility.safeInt(aVoltage * GregTech_API.mEUtoRF / 100); + int ampsUsed = 1; + if (mRestRF > rfOut) { + rfOut = mRestRF; + ampsUsed = 0; + } if (((IEnergyReceiver) mTileEntity).receiveEnergy(tDirection, rfOut, true) == rfOut) { - ((IEnergyReceiver) mTileEntity).receiveEnergy(tDirection, rfOut, false); - return 1; + 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) { -- cgit From 5268975ff2713516230b34a45ea77b2e77d207d9 Mon Sep 17 00:00:00 2001 From: korneel vandamme Date: Sat, 3 Jul 2021 15:31:23 +0200 Subject: and actualy push if it is not full amount --- src/main/java/gregtech/api/graphs/consumers/NodeEnergyReceiver.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/java/gregtech/api') diff --git a/src/main/java/gregtech/api/graphs/consumers/NodeEnergyReceiver.java b/src/main/java/gregtech/api/graphs/consumers/NodeEnergyReceiver.java index 29c07f5b3e..83edf2d432 100644 --- a/src/main/java/gregtech/api/graphs/consumers/NodeEnergyReceiver.java +++ b/src/main/java/gregtech/api/graphs/consumers/NodeEnergyReceiver.java @@ -31,7 +31,7 @@ public class NodeEnergyReceiver extends ConsumerNode { rfOut = mRestRF; ampsUsed = 0; } - if (((IEnergyReceiver) mTileEntity).receiveEnergy(tDirection, rfOut, true) == rfOut) { + if (((IEnergyReceiver) mTileEntity).receiveEnergy(tDirection, rfOut, true) > 0) { int consumed = ((IEnergyReceiver) mTileEntity).receiveEnergy(tDirection, rfOut, false); mRestRF = rfOut - consumed; return ampsUsed; -- cgit From 12315a9b056b69abcdfe1474959a846753208529 Mon Sep 17 00:00:00 2001 From: korneel vandamme Date: Sat, 3 Jul 2021 16:29:38 +0200 Subject: fix ae p2p not working --- .../gregtech/api/graphs/GenerateNodeMapPower.java | 13 +++++++++++-- .../api/graphs/consumers/NodeEnergyConnected.java | 22 ++++++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 src/main/java/gregtech/api/graphs/consumers/NodeEnergyConnected.java (limited to 'src/main/java/gregtech/api') 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 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 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); + } +} -- cgit