Schedule source chunk features globally

This commit is contained in:
Daniar Mannanov 2026-08-11 12:47:59 +03:00
parent 11440f556c
commit ea66091f85
4 changed files with 125 additions and 0 deletions

View file

@ -0,0 +1,21 @@
package world
// decorationSource is a source chunk whose feature pass may inspect or write a
// target chunk. Vanilla FEATURES has a one-chunk block-state write radius.
type decorationSource struct {
X, Z int32
}
// decorationSources returns source chunks in deterministic X-major/Z-minor
// order. Replaying all nine against one mutable 3x3 terrain region makes target
// output independent of cache request order while preserving each source's own
// decoration seed and placement origin.
func decorationSources(targetX, targetZ int32) []decorationSource {
sources := make([]decorationSource, 0, 9)
for sourceX := targetX - 1; sourceX <= targetX+1; sourceX++ {
for sourceZ := targetZ - 1; sourceZ <= targetZ+1; sourceZ++ {
sources = append(sources, decorationSource{X: sourceX, Z: sourceZ})
}
}
return sources
}