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
+9 -2
View File
@@ -23,6 +23,11 @@ planks) with a fully sealed hollow interior. No gaps; the interior must be enclo
corners (blocks touching only edge-to-edge or corner-to-corner still count), so a
circular build doesn't need every block to share a full face with the next.
Build it free-standing, one block thick, in a single flat plane (a vertical ring
facing a direction, like all the examples above) - the plugin figures out which axis
is the ring's "thickness" and only looks for the interior within that plane, so it
doesn't try to flood-fill out through the open air in front of and behind the gate.
Chevrons aren't a separate material you place. When the gate is linked, the plugin
flood-fills the ring, walks it in geometric order, and picks out the blocks that stick
further outward than their immediate ring-neighbours - the "elbow" points of the
@@ -53,8 +58,10 @@ material, unsealed interior, too far from the sign, etc.
- **Right-click** the sign: cycles the destination shown on line 3 among the other
gates on the same network.
- **Left-click** the sign: dials the shown destination — chevrons light in sequence,
then the interior fills with `gate.iris-material` (default water). Walk into it to
teleport. It auto-closes after `dialing.open-seconds`.
then the interior switches from `gate.iris-closed-material` (default bedrock - solid,
nothing can pass through a closed/idle gate) to `gate.iris-open-material` (default
water, the "event horizon"). Walk into it to teleport. It auto-closes after
`dialing.open-seconds`, switching the interior back to bedrock.
## Multi-world