Delay Block Updates, and save the world!

This commit is contained in:
AlgorithmX2
2014-07-07 23:54:28 -05:00
parent 5c8327f040
commit 2ea77d35bc
15 changed files with 102 additions and 41 deletions
+1 -1
View File
@@ -136,7 +136,7 @@ public class PartPlacement
{
is.add( sp.facade.getItemStack() );
host.getFacadeContainer().removeFacade( host, sp.side );
world.notifyBlocksOfNeighborChange( x, y, z, Platform.air );
Platform.notifyBlocksOfNeighbors( world, x, y, z );
}
if ( host.isEmpty() )
+1 -1
View File
@@ -312,7 +312,7 @@ public class PartAnnihilationPlane extends PartBasicState implements IGridTickab
else
{
breaking = true;
TickHandler.instance.addCallable( this );
TickHandler.instance.addCallable( this.tile.getWorldObj(), this );
return TickRateModulation.URGENT;
}
}
+2 -2
View File
@@ -106,8 +106,8 @@ public class PartLevelEmitter extends PartUpgradeable implements IEnergyWatcherH
host.markForUpdate();
TileEntity te = host.getTile();
prevState = isLevelEmitterOn();
te.getWorldObj().notifyBlocksOfNeighborChange( te.xCoord, te.yCoord, te.zCoord, Platform.air );
te.getWorldObj().notifyBlocksOfNeighborChange( te.xCoord + side.offsetX, te.yCoord + side.offsetY, te.zCoord + side.offsetZ, Platform.air );
Platform.notifyBlocksOfNeighbors( te.getWorldObj(), te.xCoord, te.yCoord, te.zCoord );
Platform.notifyBlocksOfNeighbors( te.getWorldObj(), te.xCoord + side.offsetX, te.yCoord + side.offsetY, te.zCoord + side.offsetZ );
}
}
+8 -7
View File
@@ -13,6 +13,7 @@ import appeng.api.networking.events.MENetworkChannelsChanged;
import appeng.api.networking.events.MENetworkEventSubscribe;
import appeng.api.networking.events.MENetworkPowerStatusChange;
import appeng.me.GridAccessException;
import appeng.util.Platform;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@@ -111,15 +112,15 @@ public class PartP2PRedstone extends PartP2PTunnel<PartP2PRedstone>
int yCoord = tile.yCoord;
int zCoord = tile.zCoord;
worldObj.notifyBlocksOfNeighborChange( xCoord, yCoord, zCoord, worldObj.getBlock( xCoord, yCoord, zCoord ) );
Platform.notifyBlocksOfNeighbors( worldObj, xCoord, yCoord, zCoord );
// and this cause somtimes it can go thought walls.
worldObj.notifyBlocksOfNeighborChange( xCoord - 1, yCoord, zCoord, worldObj.getBlock( xCoord, yCoord, zCoord ) );
worldObj.notifyBlocksOfNeighborChange( xCoord, yCoord - 1, zCoord, worldObj.getBlock( xCoord, yCoord, zCoord ) );
worldObj.notifyBlocksOfNeighborChange( xCoord, yCoord, zCoord - 1, worldObj.getBlock( xCoord, yCoord, zCoord ) );
worldObj.notifyBlocksOfNeighborChange( xCoord, yCoord, zCoord + 1, worldObj.getBlock( xCoord, yCoord, zCoord ) );
worldObj.notifyBlocksOfNeighborChange( xCoord, yCoord + 1, zCoord, worldObj.getBlock( xCoord, yCoord, zCoord ) );
worldObj.notifyBlocksOfNeighborChange( xCoord + 1, yCoord, zCoord, worldObj.getBlock( xCoord, yCoord, zCoord ) );
Platform.notifyBlocksOfNeighbors( worldObj, xCoord - 1, yCoord, zCoord );
Platform.notifyBlocksOfNeighbors( worldObj, xCoord, yCoord - 1, zCoord );
Platform.notifyBlocksOfNeighbors( worldObj, xCoord, yCoord, zCoord - 1 );
Platform.notifyBlocksOfNeighbors( worldObj, xCoord, yCoord, zCoord + 1 );
Platform.notifyBlocksOfNeighbors( worldObj, xCoord, yCoord + 1, zCoord );
Platform.notifyBlocksOfNeighbors( worldObj, xCoord + 1, yCoord, zCoord );
}
@Override
+1 -1
View File
@@ -178,7 +178,7 @@ public class PartP2PTunnel<T extends PartP2PTunnel> extends PartBasicState
}
}
tile.getWorldObj().notifyBlocksOfNeighborChange( tile.xCoord, tile.yCoord, tile.zCoord, Platform.air );
Platform.notifyBlocksOfNeighbors( tile.getWorldObj(), tile.xCoord, tile.yCoord, tile.zCoord );
return true;
}
}
+3 -3
View File
@@ -125,19 +125,19 @@ public class PartP2PTunnelME extends PartP2PTunnel<PartP2PTunnelME> implements I
if ( !proxy.getEnergy().isNetworkPowered() )
{
connection.markDestroy();
TickHandler.instance.addCallable( connection );
TickHandler.instance.addCallable( tile.getWorldObj(), connection );
}
else
{
if ( proxy.isActive() )
{
connection.markCreate();
TickHandler.instance.addCallable( connection );
TickHandler.instance.addCallable( tile.getWorldObj(), connection );
}
else
{
connection.markDestroy();
TickHandler.instance.addCallable( connection );
TickHandler.instance.addCallable( tile.getWorldObj(), connection );
}
}