From c5d33ed8924ee906ecedc82801d16b5dac473b0c Mon Sep 17 00:00:00 2001 From: PrototypeTrousers Date: Tue, 2 Nov 2021 21:40:49 -0300 Subject: [PATCH] p2p fixes redton, light, items --- gradle.properties | 2 +- .../java/appeng/parts/p2p/PartP2PItems.java | 9 +++++--- .../java/appeng/parts/p2p/PartP2PLight.java | 18 +++++++++++----- .../appeng/parts/p2p/PartP2PRedstone.java | 21 +++++++++++++++++-- 4 files changed, 39 insertions(+), 11 deletions(-) diff --git a/gradle.properties b/gradle.properties index 8ea05643f..8068b8fe4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ aechannel=stable aebuild=7 aegroup=appeng aebasename=appliedenergistics2 -trousers=omni-fixes-v49d +trousers=omni-fixes-v49e ######################################################### # Versions # diff --git a/src/main/java/appeng/parts/p2p/PartP2PItems.java b/src/main/java/appeng/parts/p2p/PartP2PItems.java index 0db703872..abcbdd6c2 100644 --- a/src/main/java/appeng/parts/p2p/PartP2PItems.java +++ b/src/main/java/appeng/parts/p2p/PartP2PItems.java @@ -76,11 +76,14 @@ public class PartP2PItems extends PartP2PTunnel implements IItemHa this.cachedInv = null; try { - for( PartP2PItems input : this.getInputs() ) + if( this.isOutput() ) { - if( input != null && this.isOutput() ) + for( PartP2PItems input : this.getInputs() ) { - input.onTunnelNetworkChange(); + if( input != null ) + { + input.onTunnelNetworkChange(); + } } } } diff --git a/src/main/java/appeng/parts/p2p/PartP2PLight.java b/src/main/java/appeng/parts/p2p/PartP2PLight.java index 20167003b..a2e645b66 100644 --- a/src/main/java/appeng/parts/p2p/PartP2PLight.java +++ b/src/main/java/appeng/parts/p2p/PartP2PLight.java @@ -41,6 +41,7 @@ import appeng.api.parts.IPartModel; import appeng.core.settings.TickRates; import appeng.items.parts.PartModels; import appeng.me.GridAccessException; +import org.apache.logging.log4j.core.appender.rolling.action.IfAll; public class PartP2PLight extends PartP2PTunnel implements IGridTickable @@ -198,17 +199,24 @@ public class PartP2PLight extends PartP2PTunnel implements IGridTi { try { + boolean hasValidInput = false; + int light = 0; for( PartP2PLight src : this.getInputs() ) { if( src != null && src.getProxy().isActive() ) { - this.setLightLevel( src.lastValue ); - } - else - { - this.getHost().markForUpdate(); + hasValidInput = true; + light = Math.max( light, src.lastValue ); } } + if( hasValidInput ) + { + this.setLightLevel( light ); + } + else + { + this.getHost().markForUpdate(); + } } catch( GridAccessException e ) { diff --git a/src/main/java/appeng/parts/p2p/PartP2PRedstone.java b/src/main/java/appeng/parts/p2p/PartP2PRedstone.java index df75b8299..f7b1c1ae6 100644 --- a/src/main/java/appeng/parts/p2p/PartP2PRedstone.java +++ b/src/main/java/appeng/parts/p2p/PartP2PRedstone.java @@ -72,13 +72,15 @@ public class PartP2PRedstone extends PartP2PTunnel { try { + int power = 0; for( PartP2PRedstone in : this.getInputs() ) { if( in != null ) { - this.putInput( in.power ); + power = Math.max( power, in.power ); } } + this.putInput( power ); } catch( GridAccessException e ) { @@ -176,7 +178,22 @@ public class PartP2PRedstone extends PartP2PTunnel this.power = b.getWeakPower( state, this.getTile().getWorld(), target, srcSide ); this.power = Math.max( this.power, b.getWeakPower( state, this.getTile().getWorld(), target, srcSide ) ); - this.sendToOutput( this.power ); + int powerOut = this.power; + try + { + for( PartP2PRedstone in : this.getInputs() ) + { + if( in != null ) + { + powerOut = Math.max( in.power, powerOut ); + } + } + } + catch( GridAccessException e ) + { + e.printStackTrace(); + } + this.sendToOutput( powerOut ); } else {