Pick next structure pieces by weight. Customizability++

Continue to refactor StructureComponent to StructurePiece
Signed-off-by: Aleksi Sapon <QcTechs@gmail.com>
Support for null chunk buffers
Fix and cleanup effects

Signed-off-by: Walker Crouse <walkercrouse@hotmail.com>
Use weighted next for strongholds

Signed-off-by: Aleksi Sapon <QcTechs@gmail.com>
Clean imports for temples

Signed-off-by: Aleksi Sapon <QcTechs@gmail.com>
Update for gui

Signed-off-by: Walker Crouse <walkercrouse@hotmail.com>
Generalize WeightedNextPiecesDefaults to a cache

Helps with performance by allowing the constructor lookup to be done
once and early. Will be useful when I add an event for structure piece
placement
Signed-off-by: Aleksi Sapon <QcTechs@gmail.com>
Implement getNextPieces for fortresses. Weights needs to be tuned

Signed-off-by: Aleksi Sapon <QcTechs@gmail.com>
Tweak fortress piece weights (almost good) & Fortress populator

Signed-off-by: Aleksi Sapon <QcTechs@gmail.com>
Added resolve call for new chunk lighting
Added a boundary finding method to LightingManager
- When a chunk is initialized, only the boundary needs to be checked
- This method computes the boundary for all chunks initialized in a single tick
Lighting initialization optimisation
- chunk boundaries that are bounded by ungenerated chunks don't count as search roots
- Light emitting blocks inside chunks don't count as search roots (boundary still checked)
Fix spawning of skeletons.

Thanks @mcsnetworks for your Spoutcraft debug, it pinpointed it.
Signed-off-by: Chris Sanders <zidane@outlook.com>
Adds skylight support to new lighting system
Coords were already in block coordinates
Logs when columns change
Actually do lighting updates
New lighting activate
Only scan the smallest cuboid with changed blocks for lighting
Faster exit from isLightPossible check