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