SpoutDev/Spout — pull request #1921 by DDoSQc (2012-06-20 17:37:46+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.

PS: Yes, I know, 17 commits... but last time I tried to fix those I almost lost all of my changes... They don't appear in the commit list when I use git rebase -i, for some reason...

Signed-off-by: Aleksi Sapon