- Subscriber and colony tick improvements (#3995)
Changes proposed in this pull request: Feature chunkload Colonies now save the position of claimed chunks which are loaded, which is used to see if the colony is loaded/parts of it are loaded. Feature subscribers In this I've changed the way subscriber adding works, aswell as some internal structure of it.
Subscribers(players who receive colony views) are no longer constantly pulled from the server's playerlist each tick, instead they're added/removed on chunk enter. Which adds little overhead at all as we're already loading the chunk claim on chunk enter. Those which are added on chunk enter are called/saved as close subscribers, aka subscribers close to the colony.
In addition we're storing important players with global permissions on login/logoff, those are used for out of colony functionality like keeping the colony active when chunks are loaded, or receiving important messages of stuff happening within the colony like a raider event. Atm owners and officer have those perms.
Feature Colony Ticks Introduces states to the colony Simplifies ticking logic and makes it about 3x faster Reworked some older ticking logic stuff The basic idea is that states for a colony lets us freely control what the colony updates in each state. For now there are three states:
Active: All managers /other things updated/tick as usual Unloaded: Only logic which should tick even when the colony chunks are not loaded, requires a player(global subscriber) online for the colony with certain permissions. Inactive: Colony does nothing except occasionally checking if it needs to go into another state. Using the statemachine for this allows us to define transitions for logic which needs to be executed on ticks, simply by choosing in which state it should tick, giving it a function to execute and specifying at which rate we need the updates. Regarding performance this makes our colonies require about three times less tim...