feat(ui): centralize retail selection state
This commit is contained in:
parent
c7607f019c
commit
7983309d23
30 changed files with 591 additions and 108 deletions
|
|
@ -120,3 +120,19 @@ window mounts, toolbar digit and inventory-cell asset lookup, plugin mounts,
|
|||
cursor feedback, persistence, automation, and retained tick/draw/restore/dispose
|
||||
paths live behind the runtime. The live Debug gate passed across two graceful
|
||||
restart cycles. Do not add panel mount bodies back to `GameWindow`.
|
||||
|
||||
## 2026-07-11 selection and interaction ownership
|
||||
|
||||
`AcDream.Core.Selection.SelectionState` is the only selected-object truth. It
|
||||
ports retail `ACCWeenieObject::SetSelectedObject`: deduplicate the current guid,
|
||||
remember previous and previous-valid guids, commit before firing one typed
|
||||
transition, and clear with the removed object retained as previous. World pick,
|
||||
radar, combat targeting, inventory, paperdoll slots, toolbar selected-object
|
||||
presentation, target indicator, use/pickup, PreviousSelection, and plugins all
|
||||
read or write this same owner. Plugins use `IPluginHost.Selection`; plugin event
|
||||
failures are isolated from the client and other plugins.
|
||||
|
||||
`AcDream.App.UI.InteractionState` separately owns temporary pointer orchestration:
|
||||
`None`, `Use`, `Examine`, or `UseItemOnTarget(sourceGuid)`. Item target mode is a
|
||||
projection of this state, not a second selected-object field. Keep selection in
|
||||
Core and interaction modes in App when completing Wave 3.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue