refactor(runtime): close canonical gameplay ownership
Unify the toolbar shortcut manager with Runtime inventory state, route retail-ordered shortcut and spellbook command effects through the canonical owners, and make retained controllers borrow those exact instances. Remove the item-interaction transaction fallback and add graphical/no-window parity plus failure-safe terminal ownership-ledger coverage. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
ce6fae7b38
commit
89e6b207f8
36 changed files with 1433 additions and 251 deletions
|
|
@ -285,6 +285,7 @@ internal sealed class RetailInteractionRetainedUiCompositionFactory
|
|||
DeferredSelectionUiAuthority selection = late.Selection;
|
||||
return new ItemInteractionController(
|
||||
d.Inventory.Objects,
|
||||
d.Inventory.Transactions,
|
||||
playerGuid: () => d.PlayerIdentity.ServerGuid,
|
||||
sendUse: null,
|
||||
sendExamine: guid => session.CurrentSession?.SendAppraise(guid),
|
||||
|
|
@ -334,8 +335,7 @@ internal sealed class RetailInteractionRetainedUiCompositionFactory
|
|||
{
|
||||
d.Inventory.ExternalContainers.RequestOpen(guid);
|
||||
},
|
||||
requestUse: selection.RequestUse,
|
||||
transactions: d.Inventory.Transactions);
|
||||
requestUse: selection.RequestUse);
|
||||
}
|
||||
|
||||
public RetainedUiComposition CreateRetainedUi(
|
||||
|
|
@ -592,7 +592,7 @@ internal sealed class RetailInteractionRetainedUiCompositionFactory
|
|||
d.Window.Close),
|
||||
Toolbar: new ToolbarRuntimeBindings(
|
||||
d.Inventory.Objects,
|
||||
() => d.Inventory.Shortcuts.Items,
|
||||
d.Inventory.Shortcuts,
|
||||
iconComposer.GetIcon,
|
||||
iconComposer.GetDragIcon,
|
||||
guid => late.Session.TryUseItem(guid, d.Log),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue