This commit is contained in:
2026-11-05 09:57:11 -05:00
parent d34388bf2c
commit 89e392cc2e
81 changed files with 12410 additions and 1135 deletions
+46 -39
View File
@@ -208,54 +208,60 @@ generation scripts/assets. Species ecological-stage textures/meshes remain
the ecosystem/art owners' separate contract. Dynamic Lua tile names must be
explicitly enumerated by the art owner if its scanner cannot expand loops.
## Recommended v7 preset — NEW WORLDS ONLY
## Epic-scale landscape generator — NEW WORLDS ONLY
The following is a source-grounded **recommendation**, not an applied or
engine-playtested preset. Main should place it in game defaults and its
launcher **new-world creation** path, preserving existing saved mapgen params.
The current launcher writes `mg_name=v7` and seed 731104, but does not yet emit
these tuned noise values. Merely changing game defaults is not sufficient to
prove that managed-launcher new worlds received them.
New Last Hearth worlds use stock v7 as a cave/ore substrate and then the original
`epic_terrain` Lua mapgen mod reshapes each freshly generated mapchunk with
seeded, world-coordinate noise. The mod lives in the separate
`luanti-mapgenerator-epic` workspace repository and is bundled into the managed
Last Hearth runtime package. It does not copy Epic Terrain code, JSON density
functions, textures, or other assets. Its feature mapping is inspired by the
public Epic Terrain description/source, not a byte-for-byte or mathematical
port. The launcher applies the generator preset only when a world is first
created; it never rewrites saved map metadata or generated mapblocks.
```conf
mg_name = v7
water_level = 1
mapgen_limit = 512
mg_flags = caves,nodungeons,light,decorations,biomes,ores
water_level = 32
mapgen_limit = 4096
mg_flags = caves,nodungeons,light,biomes,ores
mgv7_spflags = mountains,ridges,nofloatlands,caverns
mgv7_mount_zero_level = 0
mgv7_np_terrain_base = 12, 65, (384, 384, 384), 82341, 5, 0.6, 2.0
mgv7_np_terrain_alt = 12, 28, (384, 384, 384), 5934, 5, 0.6, 2.0
mgv7_np_terrain_base = 12, 45, (900, 384, 900), 82341, 5, 0.6, 2.0
mgv7_np_terrain_alt = -8, 24, (900, 384, 900), 5934, 5, 0.6, 2.0
mgv7_np_terrain_persist = 0.6, 0.1, (1200, 1200, 1200), 539, 3, 0.6, 2.0
mgv7_np_height_select = -8, 16, (320, 320, 320), 4213, 6, 0.7, 2.0
mgv7_np_height_select = -4, 14, (1400, 320, 1400), 4213, 6, 0.7, 2.0
mgv7_np_filler_depth = 0, 1.2, (150, 150, 150), 261, 3, 0.7, 2.0
mgv7_np_mount_height = 230, 100, (700, 700, 700), 72449, 3, 0.6, 2.0
mgv7_np_mountain = -0.6, 1, (180, 280, 180), 5333, 5, 0.63, 2.0
mgv7_np_mount_height = 250, 100, (700, 700, 700), 72449, 3, 0.6, 2.0
mgv7_np_mountain = -0.6, 1, (320, 280, 320), 5333, 5, 0.63, 2.0
mgv7_np_ridge_uwater = 0, 1, (700, 700, 700), 85039, 5, 0.6, 2.0
mgv7_np_ridge = 0, 1, (100, 100, 100), 6467, 4, 0.75, 2.0
mg_biome_np_heat = 50, 50, (256, 256, 256), 5349, 3, 0.5, 2.0
mg_biome_np_humidity = 50, 50, (256, 256, 256), 842, 3, 0.5, 2.0
```
Why these parameters:
Design and source-grounded limits:
- Base/alternate terrain is lifted from stock offset 4 to 12, while retaining
an accessible low-relief alternate surface. This reduces ocean dominance
without pretending noise can guarantee a dry, safe spawn.
- Broad 384-node hills and 700-node mountain/river structure fit the current
small bounded world. Mountain density retains stock −0.6 bias; its longer
vertical than horizontal spread favors grounded massifs over spiky rubble.
Mount-height noise controls a density gradient, **not** an absolute peak cap.
- Ridges retain v7's native water-level channels and canyon walls. Neither
arbitrary block decorations nor exaggerated height offsets manufacture
cliffs. The river-width threshold remains the stock C++ value.
- 256-node climate fields make multiple coherent communities plausible inside
the ±512 limit; stock 1000-node climate fields can hide most variety there.
Existing small-scale heat/humidity blend noises can remain stock.
- Floatlands are explicitly disabled; native mountain noise can still produce
small overhangs/disconnected remnants. This is stock v7, not a guarantee of
mathematically erosion-correct terrain. Dungeons are disabled so unknown
mapgen dungeon aliases do not create unrelated structures.
- Continentalness is shaped by 5100-node plate and 1750-node warped-shelf fields;
a protected 620-node radius around world origin gives first arrival a dry
meadow, while distant islands, peninsulas and ocean shelves continue to vary
by seed.
- Broad uplift plus ridged mountain fields creates plains, alpine massifs and
high snow surfaces. A separate coast band uses a sharper elevation step for
sea cliffs and indented shore profiles.
- Major and minor river corridors are carved using separate warped ridge fields.
Their water levels descend in short quantized steps, creating waterfalls;
lakes form in closed noise basins. This is intentionally stylized flow, not a
global watershed/drainage solver, so a river need not reach the ocean in every
seed.
- `epic_terrain` keeps native v7 cave voids and ore nodes where possible, then
writes its own soil, water, block-cube trees and understory. Native v7
decorations are disabled for newly created worlds so flora does not float
above the reshaped land.
- Epic Terrain's Minecraft source replaces a density-function graph and custom
surface/rivers rules. Luanti does not expose that graph, so this is a feature-
level parody implemented with the public `register_on_generated`/VoxelManip
path, not a direct port. It is not a physical erosion simulation.
Never call `settings:set_default`, change mapgen at runtime, rewrite existing
map metadata, delete chunks, or automatically regenerate a player's world.
@@ -280,12 +286,13 @@ decoration/schematic definitions. In particular v7 generates biomes, caves,
ordered ores, then decorations; biome transitions must not be assumed to
extrude surface rock unchanged to the bottom of the map.
No full engine was run for this owner task. Main's remaining native gate is a
fresh disposable world with explicit saved preset verification, multiple seed
starts (including 731104), resource reachability, actual tree anchoring/media
loading and representative valley/forest/alpine views. Do not test by opening
the user's persistent world. Neither performance nor safe spawning is certified
by the standalone checks.
The native `test:seeds` gate creates eight disposable worlds, including seed
731104, and checks startup resources plus safe arrival; it is not a terrain
silhouette or biome-traversal test, and it does not require every seed to start
on dry land at the origin. A representative coastal, valley, river and alpine
visual survey is still needed before claiming those aesthetics. Never test by
opening the user's persistent world. Neither performance nor universal spawn
safety is certified by this preset or by the standalone checks.
Security review: no credentials, cryptography, certificates, network access,
filesystem writes, deserialization or player-supplied executable input are