From 76708883c0c91a3365cbfea7059e41c2c9650d71 Mon Sep 17 00:00:00 2001 From: Pilzinsel64 Date: Thu, 23 Mar 2023 21:12:11 +0100 Subject: [PATCH] `needUpdateConnections` only while updating cons (#113) --- .../enderio/conduit/AbstractConduit.java | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/main/java/crazypants/enderio/conduit/AbstractConduit.java b/src/main/java/crazypants/enderio/conduit/AbstractConduit.java index 5434ad54..816fb675 100644 --- a/src/main/java/crazypants/enderio/conduit/AbstractConduit.java +++ b/src/main/java/crazypants/enderio/conduit/AbstractConduit.java @@ -92,7 +92,9 @@ public abstract class AbstractConduit implements IConduit { * * @see needUpdateConnections() */ - protected boolean needUpdateConnections = false; + private boolean needUpdateConnections = false; + + private boolean isUpdatingConnections = false; protected AbstractConduit() {} @@ -444,10 +446,13 @@ public abstract class AbstractConduit implements IConduit { } private void updateConnections() { - if (!connectionsDirty) { + if (!connectionsDirty && !needUpdateConnections) { return; } + isUpdatingConnections = true; + needUpdateConnections = false; + boolean externalConnectionsChanged = false; List copy = new ArrayList(externalConnections); // remove any no longer valid connections @@ -471,12 +476,8 @@ public abstract class AbstractConduit implements IConduit { connectionsChanged(); } - if (needUpdateConnections) { - // Seems the update was not successfull, let's try on the next Tick. - needUpdateConnections = false; - } else { - connectionsDirty = false; - } + connectionsDirty = false; + isUpdatingConnections = false; } /** @@ -488,7 +489,9 @@ public abstract class AbstractConduit implements IConduit { * See this PR for more info: https://github.com/GTNewHorizons/EnderIO/pull/111 */ protected void needUpdateConnections() { - needUpdateConnections = true; + if (isUpdatingConnections) { + needUpdateConnections = true; + } } @Override