Fix chevron over-count, plane-lock diagonal frame connectivity, true one-way travel, iris shield independence
Chevron placement: the "protruding elbow" heuristic marked every
convex corner of a smooth ring as a chevron, which for a true
octagon/circle is *every* corner - producing 8 chevrons instead of a
deliberate subset. Replaced with a fixed, configurable count
(gate.chevron-count, default 7) evenly spaced along the ring's actual
geometric walk order.
Frame flood-fill leaking into unrelated structures: the diagonal
("stepped ring") connectivity fix from two commits ago used a full 3D
26-neighbor search, which let the flood leak sideways through the
ring's thickness into any other nearby structure sharing a frame
material (e.g. gilded blackstone used decoratively on a backdrop
wall), putting chevrons on it. The scan now bootstraps with a small
orthogonal-only flood to find the ring's plane first, then only
allows diagonal connectivity within that plane - never through depth.
One-way travel, properly this time: RuntimeGate gained an `outgoing`
flag, set true only on the gate that was actually dialed. The
teleport listener now only matches outgoing gates, so the destination
shows the event horizon but isn't walkable - stepping into it does
nothing, and only the dialing side can send a player anywhere.
Iris shield: it's a physical barrier independent of the wormhole, not
tied to "connected" state. Closed always means iris-shield-material
(default changed from IRON_BLOCK to BEDROCK per feedback), whether or
not the gate is even dialed right now. Only when the shield is open
does the idle/connected distinction (air vs event horizon) apply.
applyIrisMaterial() centralizes this so link, restart re-scan,
open/close, and the shield toggle all agree.
This commit is contained in:
@@ -31,7 +31,10 @@ gate:
|
||||
# Mix and match to match your build (the default matches an obsidian/gilded-blackstone
|
||||
# ring). The ring can be any size or shape, as long as it's a single connected loop
|
||||
# made only of these materials with a fully sealed hollow interior - no fixed template
|
||||
# or size is required.
|
||||
# or size is required. "Connected" includes diagonal stepping (round rings need that
|
||||
# at their corners), but only within the ring's own flat plane - a nearby structure
|
||||
# built from the same materials won't get pulled in just because it touches the ring
|
||||
# through its thickness.
|
||||
frame-materials:
|
||||
- OBSIDIAN
|
||||
- GOLD_BLOCK
|
||||
@@ -39,19 +42,22 @@ gate:
|
||||
- BIRCH_PLANKS
|
||||
- OAK_PLANKS
|
||||
# Chevrons aren't a separate material you place. The plugin flood-fills the ring,
|
||||
# walks it in geometric order, and picks out the blocks that stick further outward
|
||||
# than their ring-neighbours - the "elbow" points of the shape, same as a real
|
||||
# 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.
|
||||
# walks it in geometric order, and picks this many blocks, evenly spaced around the
|
||||
# ring's actual perimeter (not raw scan order) - 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: GLOWSTONE
|
||||
# The interior has three looks, matching SG-1: idle (not connected) is just empty
|
||||
# air - you can see straight through the ring. Connected, it's the event horizon
|
||||
# (iris-open-material) UNLESS the iris shield is closed, in which case it shows
|
||||
# iris-shield-material instead and blocks all travel even though the gate is active.
|
||||
# The shield is toggled with a button placed directly below the control sign.
|
||||
chevron-count: 7
|
||||
# The interior's look is driven by two independent things, matching SG-1:
|
||||
# - The iris shield: a physical barrier toggled with a button placed directly below
|
||||
# the control sign. Closed means closed - iris-shield-material, solid, blocking
|
||||
# everything - REGARDLESS of whether a wormhole is even active right now.
|
||||
# - Whether the shield is open: then it's iris-open-material (the event horizon)
|
||||
# if the gate is actively connected, or iris-idle-material (just empty air, you
|
||||
# see straight through) if it's just sitting there dialed to nothing.
|
||||
iris-idle-material: AIR
|
||||
iris-open-material: WATER
|
||||
iris-shield-material: IRON_BLOCK
|
||||
iris-shield-material: BEDROCK
|
||||
max-frame-blocks: 300
|
||||
max-iris-blocks: 200
|
||||
min-frame-blocks: 8
|
||||
|
||||
Reference in New Issue
Block a user