From fed0c0ed2071a82ad27f36e15fee31fc30a3589b Mon Sep 17 00:00:00 2001 From: "R3AL.CH1CK3N" Date: Mon, 3 Aug 2026 00:33:41 -0400 Subject: [PATCH] fix(pa): single ring barrier - drop the inner kerb too The previous commit only swapped the outer parapet+rail for a low edge and KEPT the inner kerb, leaving two concentric barriers (69 outer + 64 inner) still ringing the lot. From the driver's seat that is the same ring barrier the user asked to ditch, and reporting it as 'gone' was wrong. Inner edge now gets nothing: the parking area and its circulation road are one continuous surface. Only the outer edge keeps a barrier, since behind it is a drop off the structure. Verified in live Edit datamodel: PARingKerb absent from the barrier inventory (was 64), PARingEdge 69 @ 3.0 studs, parts 17874 -> 17810. --- src/server/MapBuilder.luau | 48 +++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 26 deletions(-) diff --git a/src/server/MapBuilder.luau b/src/server/MapBuilder.luau index ffc8971..6827d66 100644 --- a/src/server/MapBuilder.luau +++ b/src/server/MapBuilder.luau @@ -1222,36 +1222,32 @@ local function buildPA(map: Folder) local segCF = CFrame.lookAt(segMid, p1, UP) deck("PARing", Vector3.new(RING_W, 2, segLen), segCF) - -- Ring edge treatment. BOTH edges are now a single low barrier. + -- Ring edge treatment. -- - -- CHANGE (2026-08-02, user call): the OUTER edge used to be a tall - -- white parapet + dark railing ringing the whole parking area. That - -- is the "ring barrier" -- it walled the lot in and, combined with the - -- inner kerb, made the circulation road a 44-stud canyon. Ditched in - -- favour of a plain single barrier on the edge of the parking area. -- - -- Outer keeps a slightly taller barrier than inner because behind the - -- outer edge is still a drop off the structure -- it has to stop a car - -- leaving the world, it just no longer needs to be a parapet+rail. + -- CHANGE (2026-08-02, user call, second pass): first pass only swapped + -- the outer parapet+rail for a low edge and KEPT the inner kerb, which + -- left two concentric barriers (69 outer + 64 inner) still ringing the + -- lot -- visibly the same "ring barrier" from the driver's seat. The + -- ask was a single barrier on the edge of the parking area, so the + -- inner edge is now nothing at all: the lot and its circulation road + -- are the same continuous surface, which is how the real PA reads. + -- Only the outer edge gets a barrier, because behind it is a drop off + -- the structure. local fwd = (p1 - p0).Unit local outN = (segMid - Vector3.new(c.X, ringY, c.Z)).Unit - for _, sgn in ipairs({ 1, -1 }) do - local ePos = segMid + outN * (sgn * RING_W / 2) - -- Skip the edge entirely where a ramp tees in, or the ring seals - -- the PA (see above). - local gate = (sgn == 1) and GATE_OUT or GATE_IN - if not nearJunction(ePos, gate) then - local eCF = CFrame.lookAt(ePos, ePos + fwd, UP) - local EDGE_H = (sgn == 1) and 3.0 or 1.2 - local edge = part({ - Name = (sgn == 1) and "PARingEdge" or "PARingKerb", - Size = Vector3.new(1.6, EDGE_H, segLen + 1), - CFrame = eCF * CFrame.new(0, 1 + EDGE_H / 2, 0), - Color = C_PARAPET, - Material = Enum.Material.Concrete, - }) - edge.Parent = pa - end + local ePos = segMid + outN * (RING_W / 2) + if not nearJunction(ePos, GATE_OUT) then + local eCF = CFrame.lookAt(ePos, ePos + fwd, UP) + local EDGE_H = 3.0 + local edge = part({ + Name = "PARingEdge", + Size = Vector3.new(1.6, EDGE_H, segLen + 1), + CFrame = eCF * CFrame.new(0, 1 + EDGE_H / 2, 0), + Color = C_PARAPET, + Material = Enum.Material.Concrete, + }) + edge.Parent = pa end -- No pillars under the ring any more. The ring is now a GROUND-LEVEL