diff --git a/helpers/DualityInterface.java b/helpers/DualityInterface.java index a60d5ea71..bb300d235 100644 --- a/helpers/DualityInterface.java +++ b/helpers/DualityInterface.java @@ -108,11 +108,7 @@ public class DualityInterface implements IGridTickable, ISegmentedInventory, ISt } } - TileEntity te = iHost.getTileEntity(); - if ( hadConfig != hasConfig && te != null && te.getWorldObj() != null ) - { - te.getWorldObj().notifyBlocksOfNeighborChange( te.xCoord, te.yCoord, te.zCoord, Platform.air ); - } + notifyNeightbors(); } public void writeToNBT(NBTTagCompound data) @@ -329,8 +325,7 @@ public class DualityInterface implements IGridTickable, ISegmentedInventory, ISt fluids.setInternal( new NullInventory() ); } - TileEntity te = iHost.getTileEntity(); - te.getWorldObj().notifyBlocksOfNeighborChange( te.xCoord, te.yCoord, te.zCoord, Platform.air ); + notifyNeightbors(); } public AECableType getCableConnectionType(ForgeDirection dir) @@ -518,4 +513,13 @@ public class DualityInterface implements IGridTickable, ISegmentedInventory, ISt }; }; + public void notifyNeightbors() + { + TileEntity te = iHost.getTileEntity(); + if ( te != null && te.getWorldObj() != null ) + { + te.getWorldObj().notifyBlocksOfNeighborChange( te.xCoord, te.yCoord, te.zCoord, Platform.air ); + } + } + } diff --git a/parts/misc/PartInterface.java b/parts/misc/PartInterface.java index 60841e1cc..0d7b665e6 100644 --- a/parts/misc/PartInterface.java +++ b/parts/misc/PartInterface.java @@ -15,6 +15,9 @@ import net.minecraftforge.common.util.ForgeDirection; import appeng.api.implementations.tiles.ISegmentedInventory; import appeng.api.implementations.tiles.ITileStorageMonitorable; import appeng.api.networking.IGridNode; +import appeng.api.networking.events.MENetworkChannelsChanged; +import appeng.api.networking.events.MENetworkEventSubscribe; +import appeng.api.networking.events.MENetworkPowerStatusChange; import appeng.api.networking.security.BaseActionSource; import appeng.api.networking.ticking.IGridTickable; import appeng.api.networking.ticking.TickRateModulation; @@ -48,6 +51,18 @@ public class PartInterface extends PartBasicState implements IGridTickable, ISeg super( PartInterface.class, is ); } + @MENetworkEventSubscribe + public void stateChange(MENetworkChannelsChanged c) + { + duality.notifyNeightbors(); + } + + @MENetworkEventSubscribe + public void stateChange(MENetworkPowerStatusChange c) + { + duality.notifyNeightbors(); + } + @Override public void gridChanged() { diff --git a/tile/misc/TileInterface.java b/tile/misc/TileInterface.java index a54c2f636..6946ac321 100644 --- a/tile/misc/TileInterface.java +++ b/tile/misc/TileInterface.java @@ -10,6 +10,9 @@ import net.minecraftforge.common.util.ForgeDirection; import appeng.api.implementations.tiles.ISegmentedInventory; import appeng.api.implementations.tiles.ITileStorageMonitorable; import appeng.api.networking.IGridNode; +import appeng.api.networking.events.MENetworkChannelsChanged; +import appeng.api.networking.events.MENetworkEventSubscribe; +import appeng.api.networking.events.MENetworkPowerStatusChange; import appeng.api.networking.security.BaseActionSource; import appeng.api.networking.ticking.IGridTickable; import appeng.api.networking.ticking.TickRateModulation; @@ -38,6 +41,18 @@ public class TileInterface extends AENetworkInvTile implements IGridTickable, IS ForgeDirection pointAt = ForgeDirection.UNKNOWN; DualityInterface duality = new DualityInterface( gridProxy, this ); + @MENetworkEventSubscribe + public void stateChange(MENetworkChannelsChanged c) + { + duality.notifyNeightbors(); + } + + @MENetworkEventSubscribe + public void stateChange(MENetworkPowerStatusChange c) + { + duality.notifyNeightbors(); + } + public void setSide(ForgeDirection axis) { if ( Platform.isClient() )