Merge pull request #3 from DramaticShape/20260726_various_fixes

20260726 various fixes
This commit is contained in:
DramaticShape
2026-07-27 11:19:36 -04:00
committed by GitHub
3 changed files with 20 additions and 5 deletions
+7 -2
View File
@@ -212,7 +212,7 @@ return {
-- $0D/$0E and $1D/$1E), which is drawn 32px tall and so reads as
-- two stacked courses of the same band.
wall = { 34, 35, 50, 51,
5, 6, 16,
5, 16,
15, 36, 37, 38, 39, 53, 62, 66,
68, 69, 70, 71, 84, 86, 87,
32, 33, 48, 49,
@@ -237,7 +237,12 @@ return {
-- it is always the top half of a walkable FLOOR cell, so rule 3
-- already lays it flat. Lorelei's room uses the same pair for
-- the paved plaza that stands out of her water.
ground = { 4 },
-- the entrance mat every gym lays inside its door ($06 over $16,
-- 28 placements and nowhere else): drawn from straight above, so
-- it lies FLAT. $06 was in the wall band above, which stood the
-- mat's top half up as a 16px box in the doorway -- the cell rule
-- could not save it, because a pin outranks the cell.
ground = { 4, 6, 22 },
-- Celadon's hedge: a round shrub, one per cell ($2C/$2D over
-- $2E/$2F), 35 of them planted wall to wall. Round drawings get
-- the cylinder archetype -- one voxel ball per 16x16 cell carved
+9 -1
View File
@@ -1930,8 +1930,16 @@ function Structures.buildObject(S, map, region, cluster,
-- knows which is which: a thing that sits ON furniture occupies a
-- blocked cell (you cannot walk through the gym statue, Red's plant,
-- the PC), while a seat you walk up to is in a walkable one.
--
-- FENCE POSTS (the `post` pool, force == "opaque") never take the lift
-- at all. A post stands in the ground by definition -- it is not a
-- thing set down on top of something -- and its cell is blocked like
-- any other post, so the test above cannot tell it apart. Lavender
-- Town is where it showed: pinning the cliff's slope chain gave the
-- posts along the cliff edge an authored 16px box to their south, and
-- they were hoisted to stand on the clifftop instead of the path.
local baseY, support = 0, nil
if force then
if force and force ~= "opaque" then
local bs = S.shapeAt[keyOf(cluster.minX, cluster.maxY + 1)]
local blocked = not map:isWalkableCell(math.floor(cluster.minX / 2),
math.floor(cluster.maxY / 2))
+4 -2
View File
@@ -14,8 +14,10 @@
-- foreign building has stamped here when it has not.
--
-- To answer "does template X place on map Y", match its `tiles` grid
-- against the map's tile grid OFFLINE (data/generated/maps.lua plus
-- tilesets.lua) -- no engine needed, and it gives you the coordinates.
-- against the map's tile grid OFFLINE (the map and tileset tables the
-- ROM importer writes into the player's own cache -- see
-- tools/voxel-survey.md for the paths) -- no engine needed, and it gives
-- you the coordinates.
-- And note a drawing can STRADDLE A MAP BOUNDARY (the Pokemon Tower's
-- roof is on ROUTE_10, its facade on LAVENDER_TOWN), in which case no
-- single map's grid holds the whole thing and each half meshes alone.