feat(bridge): a zone's ZoneManager options, its messages, and a ZoneDomes dome (PLAN_REDESIGNS §3) #21
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/zones-domes"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What & why
PLAN_REDESIGNS §3 (D166, D167, D193, D194, D210–D212). Spec: PROTOCOL §19.11 (docs
docs/rust-zones-domes).world.zonegainsflagsandsettings:ZoneFieldListRaw()(D211; plan §0.6 was wrong that only a helper could read it).bad-option, never dropped.enterMessage/leaveMessage/delivery/format: the bridge says a zone's messages itself (D193), fromOnEnterZone/OnExitZone, for its own zones only.dome: { type, stack }:dome-unavailable, with what's missing, unless ZoneDomes and the helper are ready.RunicGatewayDomes.cs: Harmony patches for ZoneDomes, shipped beside the bridge.TranslateMessageso its API can be called without a player. It used to throw after making the dome.InitializeDomesthat raisesOnRgDomesReady, so the bridge never adds a dome before ZoneDomes' own start. Adding one before that draws it twice and leaves spheres nothing can remove.zoneManager { version, flags }andintegrations.zoneDomes { loaded, version, helper, ready }. Hello is sent again when ZoneManager, ZoneDomes or either helper loads or unloads.release.ymlships the new helper inHELPERS, and the README documents it.How it was tested
node scripts/checkPlugin.js: 38 hooks, all void and listed.patched, and the domes helperready.bad-optionfor an unknown flag, a setting outside the allowlist, and radiation 900.dome-unavailableand hello saidmissing.Checklist
AI-assisted contributions (required)
Claude Code (Claude Opus 5.5). I have reviewed and understandevery change, and take responsibility for it. AI-authored commits are
marked with a
Co-Authored-By/Assisted-Bytrailer.License
(GNU GPL v3.0 or later), and I have the right to contribute it.
Merge note: #20 (§5 titles) also edits
RunicGateway.cs, so whichever merges second needs a small conflict fix.🤖 Generated with Claude Code
https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
world.zone gains flags, settings, enterMessage, leaveMessage, delivery, format and dome (PROTOCOL §19.11). Flags are checked against the live ZoneManager's own list, read through its API call ZoneFieldListRaw() (D211), and refused bad-option rather than dropped; settings are an allowlist of five with bounds. Both are kept on the registry entry and re-applied when a zone is re-created. The bridge says a zone's enter and leave messages itself (D193), as chat or a popup (chat when PopupNotifications is missing), and stays quiet for 5 s after re-creating a zone. RunicGatewayDomes.cs, a new helper, patches ZoneDomes so its API can be called without a player, and raises OnRgDomesReady after ZoneDomes' own start; the bridge puts its domes back only after it, so none is drawn twice. Domes are removed before their zone at expiry and revert. hello carries zoneManager { version, flags }, integrations.zoneDomes the ZoneDomes and helper state, and hello is sent again when ZoneManager, ZoneDomes or either helper loads or unloads. The release ships the new helper beside the zone helper. Not compiled or walked on a rig: the panel's file API was down on both. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY