diff --git a/README.md b/README.md index c98fd80..bab176d 100644 --- a/README.md +++ b/README.md @@ -122,6 +122,11 @@ The table is generated from [`index.yaml`](index.yaml); edit that file, then run | [`sheet-charge-chargen/`](sheet-charge-chargen/) | 1.0.2 | Joins the Charge sheet to +app character applications | | [`charge-wiki/`](charge-wiki/) | 1.0.4 | Charge rules as wiki pages (action rolls, momentum, consequences, stress, clocks, progression; CC BY 4.0) | | [`duties-charge/`](duties-charge/) | 1.0.2 | Duties roll provider "charge" on the Charge sheet | +| [`radio/`](radio/) | 1.8.1 | +radio — frequencies to tune in to, speak on and recall, with moderators, admins and locks; the worked example of a system built on @feed | +| [`radio-help/`](radio-help/) | 1.1.1 | Registers the radio topics with +help (requires radio and plus-help) | +| [`radio-config/`](radio-config/) | 1.0.1 | Registers the radio settings with +config (requires radio and plus-config) | +| [`radio-scene/`](radio-scene/) | 1.4.3 | +radio/log — what a listener hears on a frequency goes into their scene, through a tap on the radio feed kind (requires radio and scene) | +| [`scene-verse/`](scene-verse/) | 2.0.0 | Verse and canon on scenes, and +scene/verses (requires scene) | Packages bundled with SharpMUSH (`+who`/`+where`, the HTTP handler, the diff --git a/index.yaml b/index.yaml index 50f1332..c8b7473 100644 --- a/index.yaml +++ b/index.yaml @@ -351,3 +351,28 @@ packages: package: duties-charge version: 1.0.2 description: Duties roll provider "charge" on the Charge sheet + - path: radio/ + name: Radio + package: radio + version: 1.8.1 + description: +radio — frequencies to tune in to, speak on and recall, with moderators, admins and locks; the worked example of a system built on @feed + - path: radio-help/ + name: Radio help + package: radio-help + version: 1.1.1 + description: Registers the radio topics with +help (requires radio and plus-help) + - path: radio-config/ + name: Radio settings + package: radio-config + version: 1.0.1 + description: Registers the radio settings with +config (requires radio and plus-config) + - path: radio-scene/ + name: Radio in scenes + package: radio-scene + version: 1.4.3 + description: +radio/log — what a listener hears on a frequency goes into their scene, through a tap on the radio feed kind (requires radio and scene) + - path: scene-verse/ + name: Verse and canon in scenes + package: scene-verse + version: 2.0.0 + description: Verse and canon on scenes, and +scene/verses (requires scene) diff --git a/radio-config/package.yaml b/radio-config/package.yaml new file mode 100644 index 0000000..edcbd8e --- /dev/null +++ b/radio-config/package.yaml @@ -0,0 +1,37 @@ +format: "1.20" +package: radio-config +title: "Radio: +config settings" +version: 1.0.1 +authors: [SharpMUSH] +description: "Puts the Radio settings into +config: registers them with the +config registry, so staff see and change them with +config radio." +license: MIT +homepage: https://github.com/SharpMUSH/SharpMUSH.Packages +keywords: [radio, config, bridge] +category: Community +bridge: true +requires_server: ">=1.0" +verified_server: "1.0" + +# A bridge: it joins two packages that do not know about each other. radio declares its settings as +# DATA`CONFIG`, with their types and limits, and reads them with get() whether or not +config is installed. +# This package is the one leaf that tells the +config registry where they are. +depends: + - package: radio + version: ">=1.5" + source: + repo: https://github.com/SharpMUSH/SharpMUSH.Packages + path: radio/ + branch: main + - package: plus-config + version: ">=1.0" + source: + repo: https://github.com/SharpMUSH/SharpMUSH + path: examples/packages/plus-config/ + branch: main + +objects: + - ref: config_registration + target: "{{plus-config/registry}}" + attributes: + SYSTEM`RADIO: |- + {{radio/radio}} diff --git a/radio-help/package.yaml b/radio-help/package.yaml new file mode 100644 index 0000000..4f0c2c8 --- /dev/null +++ b/radio-help/package.yaml @@ -0,0 +1,46 @@ +format: "1.20" +package: radio-help +title: "Radio: +help topics" +version: 1.1.1 +authors: [SharpMUSH] +description: "Puts the Radio topics into +help: registers the radio package's help with the +help librarian, and points its messages at +help." +license: MIT +homepage: https://github.com/SharpMUSH/SharpMUSH.Packages +keywords: [radio, help, bridge] +category: Community +bridge: true +requires_server: ">=1.0" +verified_server: "1.0" + +# A bridge: it joins two packages that do not know about each other. radio keeps its topics on its own help +# object, and plus-help reads any object registered with its librarian. This package is that registration, and the lines that point its messages at +help; +# uninstalling it takes the topics out of +help, and neither package changes. +depends: + - package: radio + version: ">=1.6" + source: + repo: https://github.com/SharpMUSH/SharpMUSH.Packages + path: radio/ + branch: main + - package: plus-help + version: ">=1.0" + source: + repo: https://github.com/SharpMUSH/SharpMUSH + path: examples/packages/plus-help/ + branch: main + +objects: + - ref: help_registration + target: "{{plus-help/librarian}}" + attributes: + SRC`RADIO: |- + {{radio/radio_help}} + + # Lines the radio package's messages end with when +help is here, through its FUN`HINT: HINT`. + - ref: message_hints + target: "{{radio/radio}}" + attributes: + HINT`SWITCHES: |- + +help radio lists them. + HINT`USAGE: |- + +help radio lists the rest. diff --git a/radio-scene/package.yaml b/radio-scene/package.yaml new file mode 100644 index 0000000..da00037 --- /dev/null +++ b/radio-scene/package.yaml @@ -0,0 +1,127 @@ +format: "1.20" +package: radio-scene +title: "Radio in scenes" +version: 1.4.3 +authors: [SharpMUSH] +description: "Radio in scenes: +radio/log puts what a player hears on a frequency into the scene they are in. Joins the radio and scene packages through a tap on the radio feed kind." +license: MIT +homepage: https://github.com/SharpMUSH/SharpMUSH.Packages +keywords: [radio, scene, logging, feed] +category: Scenes +bridge: true +requires_server: ">=1.0" +verified_server: "1.0" + +# +radio/log writes poses through the Scene plugin, so it installs only while the plugin runs. +plugins: [scene] + +# Neither package knows about the other. The radio keeps frequencies and who hears them; the scene +# package keeps scenes and their poses. This one listens to the radio's feed and writes into scenes. +depends: + - package: radio + version: ">=1.3" + source: + repo: https://github.com/SharpMUSH/SharpMUSH.Packages + path: radio/ + branch: main + - package: scene + version: ">=1.5" + source: + repo: https://github.com/SharpMUSH/SharpMUSH + path: examples/packages/scene/ + branch: main + +objects: + # The logger: a tap on the radio feed kind, and the /log and /stoplog switches of +radio. WIZARD because + # it reads the WIZARD radio's attributes and adds poses to other people's scenes. + # + # DATA`PLAYER``LOG` a player logs frequency into the scene they are in; is the + # radio's FUN`KEY for them, so it matches the radio's own settings + - ref: radiolog + type: thing + name: Radio Scene Log + flags: [WIZARD] + attributes: + # A tap on the radio kind, queued once per line after it is delivered. It reads the line by name (help + # @feed taps): feed is radio/, recipients who heard it, speaker, style, text, and name the + # alterego. A listener who logs this frequency + # and is in a scene gets the line into that scene, drawn as they heard it, once per scene however + # many people in it are logging. It is recorded as the radio type, with the frequency's name in the + # pose's frequency field, which the portal shows in the message's header. + TAP`LOG: |- + think setqm(tap_frequency,after(%,/), + tap_scenes,, + tap_pairs,)[iter(%,if(u({{radiolog}}/FUN`LOGS`INTO,%i0),setqm(tap_scenes,%q %q, + tap_pairs,%q %q~%i0)))]; @dolist/inline %q={@scene/addpose [before(##,~)]=[after(##,~)],[scenemember(before(##,~),after(##,~),showas)],[loc(after(##,~))],radio,emit,,[uargs({{radio/radio}}/FUN`LINE,frequency,%q,speaker,%,name,firstof(%,name(%)),style,%