diff --git a/src/server/MapBuilder.luau b/src/server/MapBuilder.luau index 1eb40c9..464cd14 100644 --- a/src/server/MapBuilder.luau +++ b/src/server/MapBuilder.luau @@ -1013,7 +1013,23 @@ local function buildPA(map: Folder) -- pure geometry with no asset IDs, and 0.06 studs proud is under tyre -- resolution -- you cannot feel it. local PAINT_T = 0.12 + + -- STALL PAINT DISABLED (2026-08-02, user call): the generated stall + -- markings are being replaced with pre-made parking assets from the + -- Creator Store. Set this back to true to restore the painted lines. + -- + -- Deliberately a FLAG rather than deleting markRow and its callers: the + -- row placement below is surveyed against OSM (二番館 frontage, the 大型 + -- rows, the 身障者用 bays) and feeds PACapacity, which the headless + -- verifier asserts. Ripping it out would throw away that survey work and + -- silently change the recorded capacity. With the flag off, every stall + -- position is still computed -- they just emit no geometry. + local DRAW_STALL_PAINT = false + local function paint(name, size, x, z, colour) + if not DRAW_STALL_PAINT then + return nil + end local m = part({ Name = name, -- caller passes the old 2.2 in size.Y; ignore it and use PAINT_T @@ -1220,7 +1236,18 @@ local function buildPA(map: Folder) local segMid = (p0 + p1) / 2 local segLen = (p1 - p0).Magnitude + 1.5 local segCF = CFrame.lookAt(segMid, p1, UP) - deck("PARing", Vector3.new(RING_W, 2, segLen), segCF) + -- PARing deck REMOVED (2026-08-02, user call): this laid a 44-stud-wide + -- band of road deck in a circle around the PA. Measured flush with the + -- apron (both tops at y=47.00) and entirely inside the apron footprint + -- (ring bbox X -4535..-3712 vs apron X -4538..-3710), so it was not + -- structural -- just a differently-shaded ring of pavement painted over + -- asphalt the apron already provides. Reads as a leftover ring where + -- the old barriers used to be. Deleting it leaves no hole: the apron + -- slab underneath is continuous. + -- + -- The loop itself still runs: `junctions` and the ramp/flare geometry + -- below are positioned off these arc points, so the circle is still + -- the reference line -- it just no longer emits a deck. -- Ring edge: NO barrier on the circulation road any more. -- @@ -1542,10 +1569,25 @@ local function buildPA(map: Folder) return math.rad(angDeg - 90) end + -- GENERATED PA STRUCTURES DISABLED (2026-08-02, user call): the placeholder + -- buildings and props are being replaced with Creator Store assets placed + -- by hand into workspace.PAProps. Flip this back to true to restore them. + -- + -- A flag, not a deletion: every position below is surveyed against a real + -- OSM way (本館, フォンターナ way 88790141, toilets 88790136, kiosk 88790109, + -- hut 88790185) via osmX/osmZ with OSM_SHIFT_N + OSM_SCALE. That survey is + -- the useful part -- it tells you exactly where each real structure stands, + -- which is the reference for placing the store assets. Keeping the calls + -- live but silent preserves it. + local DRAW_PA_STRUCTURES = false + -- `long` runs along the building's own long axis, `wide` across it. -- Footprints are scaled by the same OSM_SCALE as the positions, so the lot -- stays a faithful uniform reduction rather than a stretched one. local function building(name, long_m, height_m, wide_m, xe, zn, angDeg) + if not DRAW_PA_STRUCTURES then + return nil + end local sy = height_m * M local cf = CFrame.new(osmX(xe), DECK_Y + sy / 2, osmZ(zn)) * CFrame.Angles(0, osmYaw(angDeg), 0) local b = part({ @@ -1580,12 +1622,16 @@ local function buildPA(map: Folder) -- x -45..-18, z -66..-43, hence a ~46 x 34 m block centred (-32,-53) -- squared up to the 45 deg lot grid. building("PAHonkan", 46, 13, 34, -32, -53, 45) - makeSign("本館 MAIN BUILDING", CFrame.new(osmX(-32), DECK_Y + 15 * M, osmZ(-53) + 20 * M), pa) + if DRAW_PA_STRUCTURES then + makeSign("本館 MAIN BUILDING", CFrame.new(osmX(-32), DECK_Y + 15 * M, osmZ(-53) + 20 * M), pa) + end -- フォンターナ・ダイコク / ベイサイドテラス -- NE tip. OSM way 88790141, -- oriented bbox 28 x 43 m at bearing +43 deg, centre (+13.9, +123.1). building("PANibankan", 43, 7, 28, 13.9, 123.1, 43) - makeSign("フォンターナ・ダイコク", CFrame.new(osmX(13.9), DECK_Y + 9 * M, osmZ(123.1) + 16 * M), pa) + if DRAW_PA_STRUCTURES then + makeSign("フォンターナ・ダイコク", CFrame.new(osmX(13.9), DECK_Y + 9 * M, osmZ(123.1) + 16 * M), pa) + end -- Remaining mapped structures, each from its own OSM building way. building("PAToiletNorth", 21, 5, 7, -17.5, 109.8, -44) -- way 88790136 @@ -1595,6 +1641,9 @@ local function buildPA(map: Folder) -- Free-standing amenity nodes. Small props, but they are what stops the -- apron reading as an empty car park. local function prop(name, sx_m, sy_m, sz_m, xe, zn, colour, mat) + if not DRAW_PA_STRUCTURES then + return nil + end local p = part({ Name = name, Size = Vector3.new(sx_m * OSM_SCALE * M, sy_m * M, sz_m * OSM_SCALE * M), @@ -1620,6 +1669,9 @@ local function buildPA(map: Folder) -- EV rapid charger: first on any Japanese expressway, installed 2008-10-10. -- OSM charging_station node sits at (-58.3, +30.2), on the west flank. for k = 0, 1 do + if not DRAW_PA_STRUCTURES then + break + end local ev = part({ Name = "PAEVCharger", Size = Vector3.new(1.6 * M, 2.2 * M, 0.9 * M),