TL;DR Fixes problem where this.loadedTIleEntityList.removeAll() takes forever for large tile entity volumes.
I encountered this issue on my KCauldron server when using ZettaIndustries' BigBattery. When the battery is massive, it creates an unprecedented volume of tile entities than can cause removing unloaded TEs to hang and leave the server unresponsive. Does not happen for Procyon's official builds, but does happen on these Spanner builds.
Now, utilizing the GC flag I implemented yesterday, the loadedTileEntityList will be pruned for TEs marked for removal (setGC()).
Just in case, the GC flag is reset after removal from the list. I do not know whether Forge re-uses already loaded Tiles, so this is just in case to prevent the possibility of TEs that should be loaded not being ticked.
TL; DR Lets server know if tile entity in an unloaded chunk is being processed.
Allowing a tile entity to be processed in an unloaded chunk introduces a whole host of problems. When a chunk's onChunkUnload() is called, it adds its tile entities to a list of tile entities to be unloaded by the World class. However, when a tile entity's onUnload() is called, it can try to access tile entities that have already been unloaded, making the server try to reload them when they shouldn't be.
When I get a chance I will actually add usage for this in the Chunk and World classes.
The implementation of this flag has been tested on a server of over 30 players for nearly a week now with no problems whatsoever. It has actually reduced lag significantly.
Part #2 of pull that actually reintroduces chunk unload stopping for recent activity. Again sorry I don't know how to make a pull request with multiple files from browser.