pub enum StationKind {
Point,
Gate,
}Expand description
What shape a station is (spec-0052 §3) — a cell to stand a body at, or a volume with a block that seals and clears.
The kind is the station’s shape, never its purpose: there is no enum of
bonfire / camera / shop, for the same reason Node::intent is free-form —
a purpose vocabulary would be this month’s genre wearing a schema’s clothes.
A bonfire, a camera subject and a shop counter are the same Self::Point
to every check in this engine.
§Why two shapes and not three
spec-0052 §3 describes three, “mirroring the three shapes a piece anchor can
take (a cell to stand a body at; a volume; a volume with a block that seals
and clears)”. Those are the three shapes a piece anchor may be declared
in; they are not three shapes anything consumes. This engine resolves an
anchor to ResolvedAnchor::Point or ResolvedAnchor::Gate and to nothing
else, and a piece anchor declaring a bare region with no block is read as
a gate whose fill block is minecraft:air.
Every volume-shaped consumer — a lethal_volumes[] region, damage-players’s
in, a volley kill zone, collapse’s ceiling, begin-stealth,
fill-region, clear-region — is a crate::StealthZone, an
anchor-centred box resolved from a point plus an extent. The engine
states the reason in its own words at Verb::FillRegion::region: an
anchor-centred box rather than a prefab region anchor, “because the
assembled model deletes every gate-region anchor’s cells, so a slab declared
that way would already be gone”.
So a third region variant would be a name a campaign could declare and bind
and no reference site could consume — an inert surface whose stand-in
would have to be a gate region the assembled world then deletes. It is left
out deliberately, and spec-0052 §11’s falsifier is what decides it: the first
campaign brief that cannot state its place without one is the evidence, and
the answer is a first-class surface with a consumer, or a refused feature.
Variants§
Point
A cell to stand a body at — where a quest step, an NPC, a wave seat, a cutscene subject, an affordance or a volume’s centre lands.
Gate
A volume with a block that seals and clears — what open-gate,
close-gate, a shortcut and a timed-gate address.
Implementations§
Trait Implementations§
Source§impl Clone for StationKind
impl Clone for StationKind
impl Copy for StationKind
Source§impl Debug for StationKind
impl Debug for StationKind
Source§impl<'de> Deserialize<'de> for StationKind
impl<'de> Deserialize<'de> for StationKind
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for StationKind
Source§impl JsonSchema for StationKind
impl JsonSchema for StationKind
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read more