world: port ruined portal generation point and expose pre-carve terrain
generateBaseTerrain now factors the noise+surface stage out of chunk generation so structure placement can read pre-carve heights exactly like vanilla's STRUCTURE_STARTS stage. RuinedPortalGenerationPoint replays the ruined_portals set: the weighted pick across all seven variants on its own stream, each attempt's setup/template/rotation/ mirror draws on a fresh GenerationContext stream (makeRandom reseeds per attempt, confirmed from bytecode), findSuitableY with corner-column settle scan against those heights, and the post-draw 3D-biome filter at quart-snapped coordinates. Known gap, documented in STRUCTURE_NOTES.md: no variant is accepted in the window around the fixture's portal yet while vanilla placed one; the biome/surface inputs need a vanilla-side probe to bisect. Not wired into the production replay until that closes.
This commit is contained in:
parent
6e04bd8bbc
commit
798a3ec7b4
6 changed files with 454 additions and 31 deletions
|
|
@ -97,3 +97,7 @@ func coldEnoughToSnow(biome string) bool {
|
|||
temperature, ok := biomeTemperature[biome]
|
||||
return ok && temperature < 0.15
|
||||
}
|
||||
|
||||
// ColdEnoughToSnow exposes the per-biome snow threshold to structure ports.
|
||||
func ColdEnoughToSnow(biome string) bool { return coldEnoughToSnow(biome) }
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue