21 lines
829 B
Go
21 lines
829 B
Go
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
|
|
}
|