Back Port "Fix an issue where interfaces would not cause storage buses to re-check their status."

This commit is contained in:
AlgorithmX2
2014-06-23 00:08:38 -05:00
parent c7692d1be6
commit d750a25fca
3 changed files with 41 additions and 7 deletions
+11 -7
View File
@@ -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 );
}
}
}
+15
View File
@@ -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()
{
+15
View File
@@ -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() )