Merge branch 'worktree-viridian-forest' into 20260726_various_fixes
DramaticShape · 2026-07-27 ·
parent 0ba9109e40 5712f854b5
Merge branch 'worktree-viridian-forest' into 20260726_various_fixes
# Conflicts:
# data/voxel_heights.lua
Changed files
CHANGELOG.md | 32 ++++++++++
data/voxel_heights.lua | 27 +++++---
lib/ChunkMesher.lua | 14 +++--
lib/Structures.lua | 232 +++++++++++++++++++++++++++++++++++++++++++++++++++++----------------
lib/TileShape.lua | 11 ++++
5 files changed, 247 insertions(+), 69 deletions(-)
Diff
diff --cc data/voxel_heights.lua
index c16a706,622c56a..6f10a89
--- a/data/voxel_heights.lua
+++ b/data/voxel_heights.lua
@@@ -396,20 -186,25 +396,27 @@@ return
-- its $32 tile is the water-fallback trap and recessed into a pond
-- lip in the middle of the woods.
FOREST = {
+ -- the hop-down edge, from data.field.tilePairs (CAVERN's entry
+ -- above carries the same note for its own pair)
ledge = { 46 },
- -- the big trees -- the ball ($05/$06/$15/$16/$25/$26), its rim
- -- wisps ($04/$07/$17/$23/$24/$27) and its feet ($35/$36) -- and
- -- the stumps ($02/$03/$12/$13): one voxel hull per 16x16 cell,
- -- cut from the cell's own art, the treatment the overworld border
- -- forest already wears. A tree spans 2x2 cells, so its four
- -- quarter-hulls tile into one big lumpy canopy. Every tile of
- -- the drawing is listed: the cell-rounding is per TILE, and a rim
- -- tile left out keeps its detector reading -- which is exactly
- -- the ragged 0/8/16/32px box collar the trees wore
- cylinder = { 2, 3, 4, 5, 6, 7, 18, 19, 21, 22, 23,
+ -- the big trees: the whole 2x2-CELL drawing carves as ONE 32px
+ -- voxel hull, so a tree is a single tall canopy instead of four
+ -- ground-level quarter-pancakes ("cut in half", as the first
+ -- attempt read). `canopy` pins the drawing's top-left corner
+ -- tile ($04) as the group anchor; every other tile of the
+ -- drawing stays `cylinder` so the group build can verify and
+ -- claim its cells -- and so a stray partial drawing degrades to
+ -- per-cell hulls rather than boxes
+ canopy = { 4 },
+ cylinder = { 5, 6, 7, 21, 22, 23,
35, 36, 37, 38, 39, 53, 54 },
+ -- the stumps ($02/$03/$12/$13): a hull whose drawn top is a CUT
+ -- FACE. The body builds from the bark rows alone, and the drawn
+ -- ellipse of growth rings projects onto the hull's round flat
+ -- top -- its bottom arc to the south, the way the 2D art means
+ -- it. stump_cap is the ellipse's height in art rows
+ stump = { 2, 3, 18, 19 },
+ stump_cap = 7,
-- the white sparkle filler inside the tree masses: flat, not an
-- invisible zero-height box
ground = { 0 },