grow Viridian Forest real trees, stumps and signs
DramaticShape · 2026-07-27 ·
parent 7b727aa684
grow Viridian Forest real trees, stumps and signs
The forest was raw detector output: ragged mixed-height tree boxes
with 0px rim collars, stump rows fused into crate walls, and signs
broken by the $32 water-fallback trap. Every tile of the tree drawing
and the stumps now takes the per-cell voxel hull the border forest
wears (a tree's four quarter-hulls tile into one lumpy canopy), signs
take the signpost slab, and the white filler is flat ground.
Changed files
CHANGELOG.md | 18 ++++++++++++++++++
data/voxel_heights.lua | 25 +++++++++++++++++++++++++
2 files changed, 43 insertions(+)
Diff
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 59541dc..074c15e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,24 @@
### Added
+- **Viridian Forest grows real trees.** Nearly everything drawn in the
+ forest is ROUND, and the detector was boxing all of it: the big trees
+ came out as ragged mixed-height volumes (their sparse canopy-rim
+ tiles read 0px against 32px bodies, leaving gap-toothed hedge walls),
+ the stump rows merged into 16px crate walls wearing folded stump art,
+ and the trail signs were broken piles -- their $32 tile is the
+ water-fallback trap and recessed into a pond lip in the middle of the
+ woods. All of it is now profile-pinned to the treatments the rest of
+ the world already uses: every tile of the tree drawing (ball, rim
+ wisps, feet) and the stumps take the per-cell voxel HULL the overworld
+ border forest wears -- a tree spans 2x2 cells, so its four
+ quarter-hulls tile into one big lumpy canopy, and each stump becomes a
+ round bollard; the signs take the standing thin-slab `signpost`
+ treatment every town sign gets; and the white sparkle filler inside
+ the tree masses is flat ground instead of an invisible zero-height
+ box. The whole map now resolves to hulls, signs, ledges and ground --
+ a detector sweep finds no stray boxed column anywhere.
+
- **Flowers stand up, and keep swaying.** The animated meadow tile
($03, the one tile the overworld animates by frame rewrite) now
renders as a billboard one voxel deep: the drawing's darkest tones
diff --git a/data/voxel_heights.lua b/data/voxel_heights.lua
index a8e477e..16b3352 100644
--- a/data/voxel_heights.lua
+++ b/data/voxel_heights.lua
@@ -178,8 +178,33 @@ return {
CAVERN = {
ledge = { 5 },
},
+ -- Viridian Forest. Nearly everything drawn here is ROUND, and the
+ -- detector was boxing all of it: the big trees came out as ragged
+ -- mixed-height volumes (their sparse canopy-edge tiles read 0px,
+ -- their bodies 32px), the stump rows merged into 16px crate walls
+ -- wearing folded stump art, and the trail sign was a broken pile --
+ -- its $32 tile is the water-fallback trap and recessed into a pond
+ -- lip in the middle of the woods.
FOREST = {
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,
+ 35, 36, 37, 38, 39, 53, 54 },
+ -- the white sparkle filler inside the tree masses: flat, not an
+ -- invisible zero-height box
+ ground = { 0 },
+ -- the trail signs: the standing thin-slab treatment every town
+ -- sign gets ($32 pinned is also what lifts it out of the water
+ -- trap)
+ signpost = { 33, 34, 49, 50 },
},
-- Oak's Lab (the tileset also serves the Fighting Dojo and Lance's