Fix interior flood leaking out the front/back of free-standing rings

A one-block-thick ring standing free (nothing built behind it, like
every reference screenshot) has open air directly in front of and
behind the interior. The iris/interior flood-fill searched all 6
directions, so it always escaped through that open air and flooded
the surrounding world instead of staying inside the ring - reliably
producing "interior isn't fully enclosed" regardless of how sound the
ring actually was.

Fixed by detecting which world axis the ring is thinnest along (same
idea already used for chevron placement) and restricting both the
interior candidate search and the flood itself to the other two axes,
so it can only explore within the ring's own plane.

Also fixed iris material semantics per feedback: the interior is no
longer just air when idle. gate.iris-material is now split into
iris-closed-material (default BEDROCK - solid, blocks all passage)
and iris-open-material (default WATER, the event horizon), applied
at link time, on open/close, and after a restart re-scan.
This commit is contained in:
Michael Burgess
2026-08-09 11:19:55 -04:00
parent 282c8cfdbb
commit 190f875d23
5 changed files with 59 additions and 16 deletions
+5 -2
View File
@@ -44,8 +44,11 @@ gate:
# Stargate's chevron placement - then swaps just those to chevron-lit-material while
# dialing/open, restoring whatever they looked like at rest when the gate closes.
chevron-lit-material: GILDED_BLACKSTONE
# Material poured into the interior (the "event horizon") while the gate is open.
iris-material: WATER
# The interior ("iris") reflects whether the gate is usable. Closed/idle, it's solid
# bedrock - nothing can walk or fall through it. Only while open does it become
# iris-open-material (the "event horizon") and let players/items pass.
iris-open-material: WATER
iris-closed-material: BEDROCK
max-frame-blocks: 300
max-iris-blocks: 200
min-frame-blocks: 8