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.
This commit is contained in:
2026-08-03 00:33:41 -04:00
parent e997f0f73d
commit fed0c0ed20
+14 -18
View File
@@ -1222,29 +1222,26 @@ 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 ePos = segMid + outN * (RING_W / 2)
if not nearJunction(ePos, GATE_OUT) then
local eCF = CFrame.lookAt(ePos, ePos + fwd, UP)
local EDGE_H = (sgn == 1) and 3.0 or 1.2
local EDGE_H = 3.0
local edge = part({
Name = (sgn == 1) and "PARingEdge" or "PARingKerb",
Name = "PARingEdge",
Size = Vector3.new(1.6, EDGE_H, segLen + 1),
CFrame = eCF * CFrame.new(0, 1 + EDGE_H / 2, 0),
Color = C_PARAPET,
@@ -1252,7 +1249,6 @@ local function buildPA(map: Folder)
})
edge.Parent = pa
end
end
-- No pillars under the ring any more. The ring is now a GROUND-LEVEL
-- circulation road sharing the apron slab (Circuit.PA_LIFT raises the