Per ADR-0045 (three-tier library naming) the launcher migrates from
the retired lib-sporel.* prefix to the new lib-management.* tier for
host-infrastructure libs. Updates:
- manifest.module id: lib-sporel.launcher -> lib-management.launcher
- manifest.core id: lib-sporel.launcher.core -> lib-management.launcher.core
- init.lua engine.module.dir_of("lib-management.launcher")
- README + fsm.lua comment refs
Gitea repo renamed in lockstep:
sporel/sporel-module-lib-sporel.launcher ->
sporel/sporel-module-lib-management.launcher
42 lines
1.5 KiB
Markdown
42 lines
1.5 KiB
Markdown
# lib-management.launcher
|
|
|
|
Module-discovery and module-switch entry. Lists available modules from the configured modules-dir and launches the selected one via `engine.switch_module`. Typical entry point: `--module=lib-management.launcher` boots into a chooser screen rather than directly into a game.
|
|
|
|
**Version:** 0.1.0
|
|
**Module-ID:** lib-management.launcher
|
|
**Requires:** lib-core.input v>=0.4.0
|
|
**Tags:** launcher, menu, system, navigation
|
|
|
|
## Topology
|
|
|
|
<!-- topology:start (auto-generated; do not edit) -->
|
|
```mermaid
|
|
graph LR
|
|
this["lib-management.launcher"]
|
|
lib_core_input["lib-core.input"]
|
|
this --> lib_core_input
|
|
engine["engine.*"]
|
|
this --> engine
|
|
```
|
|
<!-- topology:end -->
|
|
|
|
## Controls
|
|
|
|
- **Mouse-Left**: Click a module-button to launch it; click confirm/cancel in the quit-modal.
|
|
- **Enter**: Confirm quit when the modal is open.
|
|
- **Escape**: Open the quit-modal from the chooser; cancel the modal when open.
|
|
|
|
## Demonstrates
|
|
|
|
- `engine.module.list` discovery of installed modules from the modules-dir.
|
|
- `engine.switch_module` runtime swap from the launcher to the selected module.
|
|
- Simple text + rect rendering via `engine.render` for the chooser UI.
|
|
- Input-action binding through `lib-core.input` (`ui_click`, `ui_back`, `ui_confirm`).
|
|
- Modal-state FSM (chooser <-> quit-modal) factored into a sibling `fsm.lua` loaded via `engine.module.dir_of`.
|
|
|
|
## References
|
|
|
|
- meta/docs/architecture/module-lifecycle.md
|
|
- meta/docs/architecture/host-app.md
|
|
- meta/docs/superpowers/specs/2026-05-14-launcher-design.md
|