Fixed Dormant Chunk Cache.

This commit is contained in:
AlgorithmX2 2014-05-12 21:15:45 -05:00
parent b2d240b6cc
commit 45c292344f
3 changed files with 32 additions and 1 deletions

View file

@ -490,6 +490,7 @@ public class Registration
ph.registerNewLayer( "appeng.api.parts.layers.LayerIEnergyHandler", "cofh.api.energy.IEnergyHandler" ); ph.registerNewLayer( "appeng.api.parts.layers.LayerIEnergyHandler", "cofh.api.energy.IEnergyHandler" );
FMLCommonHandler.instance().bus().register( TickHandler.instance ); FMLCommonHandler.instance().bus().register( TickHandler.instance );
MinecraftForge.EVENT_BUS.register( TickHandler.instance );
MinecraftForge.EVENT_BUS.register( new PartPlacement() ); MinecraftForge.EVENT_BUS.register( new PartPlacement() );
IGridCacheRegistry gcr = AEApi.instance().registries().gridCache(); IGridCacheRegistry gcr = AEApi.instance().registries().gridCache();

View file

@ -5,6 +5,7 @@ import java.util.LinkedList;
import java.util.Queue; import java.util.Queue;
import java.util.concurrent.Callable; import java.util.concurrent.Callable;
import net.minecraftforge.event.world.ChunkEvent;
import net.minecraftforge.event.world.WorldEvent; import net.minecraftforge.event.world.WorldEvent;
import appeng.api.networking.IGridNode; import appeng.api.networking.IGridNode;
import appeng.core.AELog; import appeng.core.AELog;
@ -103,10 +104,23 @@ public class TickHandler
} }
} }
@SubscribeEvent
public void onChunkLoad(ChunkEvent.Load load)
{
for (Object te : load.getChunk().chunkTileEntityMap.values())
{
if ( te instanceof AEBaseTile )
{
((AEBaseTile) te).onChunkLoad();
}
}
}
@SubscribeEvent @SubscribeEvent
public void onTick(TickEvent ev) public void onTick(TickEvent ev)
{ {
if ( ev.type == Type.SERVER && ev.phase == Phase.END ) // for no there is no reason to care about this on the client... if ( ev.type == Type.SERVER && ev.phase == Phase.END ) // for no there is no reason to care about this on the
// client...
{ {
HandlerRep repo = getRepo(); HandlerRep repo = getRepo();
while (!repo.tiles.isEmpty()) while (!repo.tiles.isEmpty())

View file

@ -111,6 +111,22 @@ public class AEBaseTile extends TileEntity implements IOrientable, ICommonTile,
h.Tick(); h.Tick();
} }
@Override
public void onChunkUnload()
{
if ( !isInvalid() )
invalidate();
}
/**
* for dormant chunk cache.
*/
public void onChunkLoad()
{
if ( isInvalid() )
validate();
}
@Override @Override
// NOTE: WAS FINAL, changed for Immibis // NOTE: WAS FINAL, changed for Immibis
public void writeToNBT(NBTTagCompound data) public void writeToNBT(NBTTagCompound data)