feat(rust): zone presets, and the zone step's options, messages and dome (PLAN_REDESIGNS §3, D210)
Admin → Rust zone presets: named sets of ZoneManager flags and settings for one server, several, or every server (D195), ticked in groups read from each server's own ZoneManager list in its last hello (D211). A flag not on a covered server is refused on save with the server named; two presets of one name may not share a server. rust.zone.open gains options (one line, NoBuild, radiation=10), enterMessage, leaveMessage, delivery, dome and domeStack. The options field's dropdown is rust.options.zone_presets, whose row VALUE is the preset's line, so picking one copies it into the step (D210) and no published event changes when a preset does. The line and the dome are checked against the server's hello on save and in a dry run; bad-option and dome-unavailable are permanent. Schema: rust_zone_presets, rust_zone_preset_servers. Swagger fragment and routes.manifest regenerated against the pinned core f0e7d2a. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
This commit is contained in:
@@ -111,3 +111,16 @@ export const IconServer = () => (
|
||||
)
|
||||
|
||||
export default { IconLink, IconKey, IconSliders, IconEye, IconServer }
|
||||
|
||||
/**
|
||||
* A circle inside a dashed ring — the admin sidebar's row for zone presets.
|
||||
*
|
||||
* A zone is an area with rules at its edge, so the glyph is a place and its
|
||||
* boundary rather than a map pin, which the live map already means.
|
||||
*/
|
||||
export const IconZone = () => (
|
||||
<Icon>
|
||||
<circle cx="12" cy="12" r="9" strokeDasharray="3 3" />
|
||||
<circle cx="12" cy="12" r="3" />
|
||||
</Icon>
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user