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:
+22
-26
@@ -1222,36 +1222,32 @@ local function buildPA(map: Folder)
|
|||||||
local segCF = CFrame.lookAt(segMid, p1, UP)
|
local segCF = CFrame.lookAt(segMid, p1, UP)
|
||||||
deck("PARing", Vector3.new(RING_W, 2, segLen), segCF)
|
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
|
-- CHANGE (2026-08-02, user call, second pass): first pass only swapped
|
||||||
-- outer edge is still a drop off the structure -- it has to stop a car
|
-- the outer parapet+rail for a low edge and KEPT the inner kerb, which
|
||||||
-- leaving the world, it just no longer needs to be a parapet+rail.
|
-- 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 fwd = (p1 - p0).Unit
|
||||||
local outN = (segMid - Vector3.new(c.X, ringY, c.Z)).Unit
|
local outN = (segMid - Vector3.new(c.X, ringY, c.Z)).Unit
|
||||||
for _, sgn in ipairs({ 1, -1 }) do
|
local ePos = segMid + outN * (RING_W / 2)
|
||||||
local ePos = segMid + outN * (sgn * RING_W / 2)
|
if not nearJunction(ePos, GATE_OUT) then
|
||||||
-- Skip the edge entirely where a ramp tees in, or the ring seals
|
local eCF = CFrame.lookAt(ePos, ePos + fwd, UP)
|
||||||
-- the PA (see above).
|
local EDGE_H = 3.0
|
||||||
local gate = (sgn == 1) and GATE_OUT or GATE_IN
|
local edge = part({
|
||||||
if not nearJunction(ePos, gate) then
|
Name = "PARingEdge",
|
||||||
local eCF = CFrame.lookAt(ePos, ePos + fwd, UP)
|
Size = Vector3.new(1.6, EDGE_H, segLen + 1),
|
||||||
local EDGE_H = (sgn == 1) and 3.0 or 1.2
|
CFrame = eCF * CFrame.new(0, 1 + EDGE_H / 2, 0),
|
||||||
local edge = part({
|
Color = C_PARAPET,
|
||||||
Name = (sgn == 1) and "PARingEdge" or "PARingKerb",
|
Material = Enum.Material.Concrete,
|
||||||
Size = Vector3.new(1.6, EDGE_H, segLen + 1),
|
})
|
||||||
CFrame = eCF * CFrame.new(0, 1 + EDGE_H / 2, 0),
|
edge.Parent = pa
|
||||||
Color = C_PARAPET,
|
|
||||||
Material = Enum.Material.Concrete,
|
|
||||||
})
|
|
||||||
edge.Parent = pa
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- No pillars under the ring any more. The ring is now a GROUND-LEVEL
|
-- No pillars under the ring any more. The ring is now a GROUND-LEVEL
|
||||||
|
|||||||
Reference in New Issue
Block a user