refactor(runtime): cut graphical host over to canonical root
Make every App composition phase borrow one GameRuntime, retire the duplicate view/event adapters, and dispose the root only after its graphical borrowers release. This preserves synchronous UI commands while giving shutdown one exact ownership ledger. Co-authored-by: OpenAI Codex <codex@openai.com>
This commit is contained in:
parent
ecb9f79444
commit
ce41efb9e5
29 changed files with 613 additions and 778 deletions
|
|
@ -44,19 +44,15 @@ internal sealed record InteractionRetainedUiDependencies(
|
|||
RetainedUiInputCaptureSlot RetainedInputCapture,
|
||||
InputDispatcher? InputDispatcher,
|
||||
RuntimeSettingsController Settings,
|
||||
RuntimeActionState Actions,
|
||||
GameRuntime Runtime,
|
||||
IRuntimeCombatAttackOperations CombatAttackOperations,
|
||||
RuntimeCombatTargetOperationsSlot CombatTargetOperations,
|
||||
RuntimeSpellCastOperationsSlot SpellCastOperations,
|
||||
RuntimeInventoryState Inventory,
|
||||
MagicCatalog MagicCatalog,
|
||||
RuntimeCharacterState Character,
|
||||
RuntimeCommunicationState Communication,
|
||||
StackSplitQuantityState StackSplitQuantity,
|
||||
BufferedUiRegistry? UiRegistry,
|
||||
LiveCombatModeCommandSlot CombatModeCommands,
|
||||
ILocalPlayerIdentitySource PlayerIdentity,
|
||||
IRuntimeLocalPlayerControllerSource PlayerController,
|
||||
ILocalPlayerModeSource PlayerMode,
|
||||
Func<DeferredSelectionViewPlaneSource, SelectionCameraSource>
|
||||
SelectionCameraFactory,
|
||||
|
|
@ -64,7 +60,20 @@ internal sealed record InteractionRetainedUiDependencies(
|
|||
VitalsVM? ExistingVitals,
|
||||
Action<string>? Toast,
|
||||
Func<double> ClientTime,
|
||||
Action<string> Log);
|
||||
Action<string> Log)
|
||||
{
|
||||
public RuntimeActionState Actions => Runtime.ActionOwner;
|
||||
|
||||
public RuntimeInventoryState Inventory => Runtime.InventoryOwner;
|
||||
|
||||
public RuntimeCharacterState Character => Runtime.CharacterOwner;
|
||||
|
||||
public RuntimeCommunicationState Communication =>
|
||||
Runtime.CommunicationOwner;
|
||||
|
||||
public IRuntimeLocalPlayerControllerSource PlayerController =>
|
||||
Runtime.MovementOwner;
|
||||
}
|
||||
|
||||
internal sealed record RetainedUiComposition(
|
||||
UiHost Host,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue