SpoutDev/Spout — pull request #1922 by DDoSQc (2012-06-21 03:56:04+00:00)
Title: Added populator clearance

This is to prevent conflicts between populators. The Vanilla smooth populator has to populate all chunks adjacent to a chunk that requires population, to prevent conflicts with other populators (which would cause structures like trees and ponds to be smoothed). This sort of conflict can happen with any populator that does heavy terrain modifications.

This PR adds:
- A PopulationState enum, instead of a boolean, to allow for better tracking of the population state of a chunk (since with this system chunks may not always be fully populated).
- New population code, that properly handles populators that need clearance
- An isObserved method, to reduce duplicate code

Population queueing is removed from the chunk generation method, to prevent a leak.

Some formatting too.

Related PRs:
https://github.com/SpoutDev/SpoutAPI/pull/
https://github.com/VanillaDev/Vanilla/pull/

Signed-off-by: Aleksi Sapon