docs(ui): align CLAUDE.md + roadmap + memory with staged UI strategy
Landed the UI framework design in 2026-04-24-ui-framework.md yesterday;
this commit propagates the decisions across the documents that future
sessions touch first, so the three-layer pattern is discoverable without
re-reading the full plan.
Changes:
* NEW memory/project_ui_architecture.md — evergreen crib-sheet:
three-layer diagram, AcDream.UI.Abstractions contract, D.2a/D.2b
split, module layout, hard rules, why staged not pure-custom.
* CLAUDE.md: new paragraph describing the three-layer UI split, naming
AcDream.UI.Abstractions as the plugin-facing contract, pointing at
the full plan + memory crib.
* docs/architecture/acdream-architecture.md: new "UI Architecture"
companion-stack diagram after Layer 0-5 (doesn't renumber the main
stack), plus step 6a "UI tick" in Per-Frame Update Order.
* docs/plans/2026-04-11-roadmap.md Phase D tightened:
- D.2 split explicitly into D.2a (Hexa.NET.ImGui scaffold + abstraction
layer) and D.2b (custom retail-look backend, implements same contracts).
- D.3 AcFont / D.4 dat sprites / D.7 cursor flagged as D.2b dependencies.
- D.5 core panels / D.6 HUD flagged as abstraction-layer deliverables
— ship with D.2a, reskinned by D.2b.
- D.8 Sound marked superseded (shipped as Phase E.2).
- F.5 core panels + H.1 chat-window cross-references updated to say
they target AcDream.UI.Abstractions, unblocked by D.2a.
- Shipped-phases table untouched.
* docs/research/retail-ui/00-master-synthesis.md: scope note at top
clarifies the Keystone research is the D.2b (custom backend)
foundation, NOT where D.2a starts.
* ~/.claude/.../memory/MEMORY.md: one-line index entry pointing at the
new project_ui_architecture.md (so session auto-load surfaces it).
Zero code changes; doc-only. dotnet build stays green. All verification
greps pass (see plan file for exact checks).
This commit is contained in:
parent
d1c7d4a8b6
commit
7e84d489d0
5 changed files with 135 additions and 13 deletions
|
|
@ -66,6 +66,32 @@ game state through well-defined interfaces that the retail client never had.
|
|||
└──────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### UI Architecture (companion stack, spans Layers 1 & 5)
|
||||
|
||||
The UI is split into its own three-layer stack with a swappable backend,
|
||||
designed 2026-04-24. Full design: `docs/plans/2026-04-24-ui-framework.md`.
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ UI BACKEND (swappable) │
|
||||
│ Hexa.NET.ImGui (Phase D.2a, short-term) │
|
||||
│ or custom retail-look toolkit (Phase D.2b, later) │
|
||||
├─────────────────────────────────────────────────────────────┤
|
||||
│ AcDream.UI.Abstractions (stable contract) │
|
||||
│ ViewModels, Commands, IPanel, IPanelHost, IPanelRenderer │
|
||||
│ ► plugin-facing UI API lives HERE, not in the backend │
|
||||
├─────────────────────────────────────────────────────────────┤
|
||||
│ Game state + events (unchanged) │
|
||||
│ IGameState / IEvents / WorldSession — UI only reads │
|
||||
└─────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
The backend is pluggable; ViewModels / Commands / `IPanelRenderer` are
|
||||
stable across the swap. ImGui persists forever as the
|
||||
`ACDREAM_DEVTOOLS=1` devtools overlay regardless of which backend owns
|
||||
the game UI. See `memory/project_ui_architecture.md` for the session
|
||||
crib-sheet version.
|
||||
|
||||
---
|
||||
|
||||
## Project Structure (target)
|
||||
|
|
@ -206,6 +232,12 @@ exposes them as `WorldEntitySnapshot`. GameWindow becomes thin.
|
|||
|
||||
6. Plugin tick
|
||||
└── Fire IEvents, drain IActions queue
|
||||
|
||||
6a. UI tick
|
||||
IPanelHost.Draw → iterate registered IPanel instances, build
|
||||
ViewModels from IGameState, dispatch user Commands via ICommandBus.
|
||||
Backend-agnostic — ImGui or custom retail-look draws here depending
|
||||
on which is compiled in. See docs/plans/2026-04-24-ui-framework.md.
|
||||
```
|
||||
|
||||
---
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue