diff --git a/modules/rust/PLAN_REDESIGNS.md b/modules/rust/PLAN_REDESIGNS.md index 519a701..22f016d 100644 --- a/modules/rust/PLAN_REDESIGNS.md +++ b/modules/rust/PLAN_REDESIGNS.md @@ -461,9 +461,59 @@ Built on `edge` as Rust-Plugins `feat/zones-domes`, Module-Rust `feat/zones-dome - **The flag groups:** in `server/model/zones/zoneOptions.js`. `NoTp` and ZoneManager's `Custom1`–`5` are under Other. -**The walk is §3.3, not yet done.** The rigs' panel file API was down on 2026-09-29, so nothing could be -installed. On the new `rust-oxide` it also needs ZoneManager, ZoneDomes, PopupNotifications and both -helpers installed first. The default dome type and stack are still to be chosen on the rig (§3.2). +**The default dome (D212).** ZoneDomes 2.0.2 has five types, and only **Standard** (type 0, Rust's shaded +`sphere.prefab`) is a whole dome: a dark, see-through sphere that each stacked copy makes darker. Red, Blue, +Green and Purple are the Twitch battle-royale spheres, which ZoneDomes itself says show only where they meet +terrain or an object, so they read as a ring at the zone's edge. **The org lead chose the full dome as the +default:** the step lists Standard first as "Full dome (shaded)", labels each colour for what it shows, and +a `dome` sent without a `type` is Standard. The default stack is still 1, until it is chosen by eye. + +**Compiled on both rigs, and the rig rows walked, 2026-09-29** (no player; the "file API outage" that +morning was a Git Bash path-rewriting bug in the walk's own helper, not the rigs): + +- **Both rigs:** the bridge and both helpers compiled and loaded (Oxide; Carbon with 0 failed plugins). + Both helpers reported `patched`, and the domes helper `ready`. +- **Hello (Oxide, read from the sidecar's board):** + - `zoneManager` carried all **69** flags of ZoneManager 3.1.14 (64 named and `Custom1`–`5`), with no zone + helper involved (D211). + - `integrations.zoneDomes` was `{ loaded, patched, ready }`. + - It was re-sent within a second each time ZoneDomes or a helper loaded or unloaded. +- **Refusals:** an unknown flag (`NoFlying`), a setting outside the allowlist (`rotation`) and radiation 900 + were each refused `bad-option`, with the reason. +- **A full zone:** `nobuild, PvpGod, NoPlayerLoot`, radiation 5, safezone off, a popup enter/leave message and a + stacked dome. + - ZoneManager held exactly those flags and settings (read through a throwaway probe calling + `ZoneFieldList`). + - ZoneManager held no enter message of its own: the bridge says it (D193). + - The registry stored the flags as ZoneManager spells them. + - ZoneDomes' data file held the dome. +- **ZoneManager reload:** the zone came back ("1 re-created") with all its flags. The dome's data was + untouched. +- **ZoneDomes reload:** the helper re-patched and was ready again. The dome was redrawn from ZoneDomes' own + data. +- **Server restart:** + - The zone was re-created with its flags. + - On this boot the bridge's zones existed before ZoneDomes started, so ZoneDomes drew the dome itself, + and the bridge's restore added nothing. + - **Exactly 2 sphere entities for a stack of 2**, so the dome was not drawn twice. +- **The other order, forced:** + - The bridge was unloaded (ZoneManager erased the zone), then ZoneDomes reloaded and dropped the dome's + data. + - The bridge was loaded again: "domes after load: 1 put back", and again exactly 2 spheres. §0.5's + boot fault is handled whichever plugin starts first. +- **Teardown (`world.revert`):** the zone was erased, 0 spheres were left, and ZoneDomes' data was empty. +- **Expiry:** a 1-minute domed zone was erased at its deadline, and its dome went with it (0 spheres, data + empty). +- **Without the domes helper:** a dome was refused `dome-unavailable`, "RunicGatewayDomes.cs is not + installed beside the bridge…". Hello said `missing`, then `patched`/`ready` once the helper was loaded + again. + +**Still to walk:** +- **The site half:** the presets page, and a step made from a preset. +- **The in-game rows, deferred by the org lead (2026-09-29) to the later in-game walk, with §5.7's:** + - The flags hold for a player without the exemption and not for one with it. + - The enter and leave messages arrive as chat and as a popup. + - The default stack is chosen by eye, in daylight and at night. --- @@ -964,3 +1014,4 @@ The §3 build raised two more, answered on 2026-09-29: |---|---|---|---| | **D210** | **A zone's flags and settings are ticked on an Admin → Rust zone presets page**, and the zone step's Options field copies a preset's line when it is picked. Core is unchanged. | A list param type in core (MODULE_API) drawn as grouped checkboxes; a module-supplied step editor. | 3.4 | | **D211** | **The bridge reads ZoneManager's flag list** through its API call `ZoneFieldListRaw()` and sends it in hello. A server without the zone helper still offers every flag. | Keeping the read in the zone helper, with a name/radius/minutes-only mode without it. | 3.4 | +| **D212** | **A zone's dome defaults to ZoneDomes' Standard type, the full shaded dome.** The coloured types show only where they meet the ground or a building, and the step says so. | A coloured default. | 3.4 | diff --git a/rust-link/PROTOCOL.md b/rust-link/PROTOCOL.md index da145d6..ead043d 100644 --- a/rust-link/PROTOCOL.md +++ b/rust-link/PROTOCOL.md @@ -2281,7 +2281,8 @@ both, **`zonemanager.ignoreflag.nokits` belongs to ZoneManager**. to chat**; the zone is not refused for it, because the moment the message is said can be days after the step ran. **`format`** is the chat voice (§33.2 of PLAN.md), one `{message}`, used only for chat. - **`dome`** asks ZoneDomes for a dome over the zone: `type` is ZoneDomes' own sphere type (0 Standard, - 1 Red, 2 Blue, 3 Green, 4 Purple) and `stack` 1–10 spheres (1 when absent). It is refused + 1 Red, 2 Blue, 3 Green, 4 Purple; **0 when absent**, the one full dome, D212) and `stack` 1–10 spheres (1 when + absent). The coloured types show only where they meet terrain or a structure. It is refused **`dome-unavailable`**, with which piece is missing, unless ZoneDomes is loaded and the domes helper has patched it and seen ZoneDomes finish starting. A dome ZoneDomes does not make takes its zone with it: the zone is erased and the step refused. @@ -2342,4 +2343,7 @@ several, or every server (D195, D210). The step's `options` field offers the pre preset edited later changes no published event. The step checks the line and the dome against the server's last hello when it is saved and in a dry run; `bad-option` and `dome-unavailable` are permanent refusals. -**Not yet walked on a rig.** Written 2026-09-29, when the panel's file API on both rigs was down. +**Compiled on both rigs and walked without a player, 2026-09-29** (PLAN_REDESIGNS §3.4): every refusal, +ZoneManager and ZoneDomes reloads, a server restart and the forced opposite boot order (exactly one set of +spheres each time), revert and expiry removing the dome, and a dome refused without the helper. The +in-game rows (flags on a player, the messages) wait for the later in-game walk.