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:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user