Multi-block clean up should be cleaner now.
This commit is contained in:
@@ -3,10 +3,11 @@ package appeng.me.cluster;
|
|||||||
public interface IAEMultiBlock
|
public interface IAEMultiBlock
|
||||||
{
|
{
|
||||||
|
|
||||||
void disconnect();
|
void disconnect(boolean b);
|
||||||
|
|
||||||
IAECluster getCluster();
|
IAECluster getCluster();
|
||||||
|
|
||||||
boolean isValid();
|
boolean isValid();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ public class QuantumCalculator extends MBCalculator
|
|||||||
c.Ring[ringNum++] = te;
|
c.Ring[ringNum++] = te;
|
||||||
}
|
}
|
||||||
|
|
||||||
te.updateStatus( c, flags );
|
te.updateStatus( c, flags, true );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -89,7 +89,7 @@ public class QuantumCalculator extends MBCalculator
|
|||||||
@Override
|
@Override
|
||||||
public void disconnect()
|
public void disconnect()
|
||||||
{
|
{
|
||||||
tqb.disconnect();
|
tqb.disconnect(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ public class QuantumCluster implements ILocatable, IAECluster
|
|||||||
public WorldCoord min;
|
public WorldCoord min;
|
||||||
public WorldCoord max;
|
public WorldCoord max;
|
||||||
public boolean isDestroyed = false;
|
public boolean isDestroyed = false;
|
||||||
private boolean updateStatus = true;
|
public boolean updateStatus = true;
|
||||||
|
|
||||||
boolean registered = false;
|
boolean registered = false;
|
||||||
private long thisSide;
|
private long thisSide;
|
||||||
@@ -211,14 +211,11 @@ public class QuantumCluster implements ILocatable, IAECluster
|
|||||||
MinecraftForge.EVENT_BUS.post( new LocatableEventAnnounce( this, LocatableEvent.Unregister ) );
|
MinecraftForge.EVENT_BUS.post( new LocatableEventAnnounce( this, LocatableEvent.Unregister ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( updateStatus )
|
center.updateStatus( null, (byte) -1, updateStatus );
|
||||||
{
|
|
||||||
center.updateStatus( null, (byte) -1 );
|
|
||||||
|
|
||||||
for (TileQuantumBridge r : Ring)
|
for (TileQuantumBridge r : Ring)
|
||||||
{
|
{
|
||||||
r.updateStatus( null, (byte) -1 );
|
r.updateStatus( null, (byte) -1, updateStatus );
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
center = null;
|
center = null;
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ public class SpatialPylonCalculator extends MBCalculator
|
|||||||
@Override
|
@Override
|
||||||
public void disconnect()
|
public void disconnect()
|
||||||
{
|
{
|
||||||
tqb.disconnect();
|
tqb.disconnect(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -130,11 +130,19 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void disconnect()
|
public void disconnect(boolean affectWorld)
|
||||||
{
|
{
|
||||||
if ( clust != null )
|
if ( clust != null )
|
||||||
|
{
|
||||||
|
if ( ! affectWorld )
|
||||||
|
clust.updateStatus = false;
|
||||||
|
|
||||||
clust.destroy();
|
clust.destroy();
|
||||||
|
}
|
||||||
|
|
||||||
clust = null;
|
clust = null;
|
||||||
|
|
||||||
|
if ( affectWorld )
|
||||||
gridProxy.setValidSides( EnumSet.noneOf( ForgeDirection.class ) );
|
gridProxy.setValidSides( EnumSet.noneOf( ForgeDirection.class ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -158,10 +166,26 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock
|
|||||||
gridProxy.setVisualRepresentation( ring );
|
gridProxy.setVisualRepresentation( ring );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateStatus(QuantumCluster c, byte flags)
|
@Override
|
||||||
|
public void invalidate()
|
||||||
|
{
|
||||||
|
disconnect(false);
|
||||||
|
super.invalidate();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onChunkUnload()
|
||||||
|
{
|
||||||
|
disconnect(false);
|
||||||
|
super.onChunkUnload();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateStatus(QuantumCluster c, byte flags, boolean affectWorld)
|
||||||
{
|
{
|
||||||
clust = c;
|
clust = c;
|
||||||
|
|
||||||
|
if ( affectWorld )
|
||||||
|
{
|
||||||
if ( xdex != flags )
|
if ( xdex != flags )
|
||||||
{
|
{
|
||||||
xdex = flags;
|
xdex = flags;
|
||||||
@@ -175,6 +199,7 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock
|
|||||||
else
|
else
|
||||||
gridProxy.setValidSides( EnumSet.allOf( ForgeDirection.class ) );
|
gridProxy.setValidSides( EnumSet.allOf( ForgeDirection.class ) );
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public long getQEDest()
|
public long getQEDest()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -127,15 +127,15 @@ public class TileSpatialPylon extends AENetworkTile implements IAEMultiBlock
|
|||||||
@Override
|
@Override
|
||||||
public void invalidate()
|
public void invalidate()
|
||||||
{
|
{
|
||||||
|
disconnect(false);
|
||||||
super.invalidate();
|
super.invalidate();
|
||||||
disconnect();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onChunkUnload()
|
public void onChunkUnload()
|
||||||
{
|
{
|
||||||
|
disconnect(false);
|
||||||
super.onChunkUnload();
|
super.onChunkUnload();
|
||||||
disconnect();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onNeighborBlockChange()
|
public void onNeighborBlockChange()
|
||||||
@@ -207,7 +207,7 @@ public class TileSpatialPylon extends AENetworkTile implements IAEMultiBlock
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void disconnect()
|
public void disconnect(boolean b)
|
||||||
{
|
{
|
||||||
if ( clust != null )
|
if ( clust != null )
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user