refactor(runtime): unify generation reset for direct hosts
Move canonical per-session teardown into one retryable Runtime transaction, reduce App reset to projection acknowledgements, and prove the same GameRuntime graph through deterministic no-window lifecycle, gameplay, portal, fault, reconnect, and isolation gates.\n\nCo-authored-by: Codex <noreply@openai.com>
This commit is contained in:
parent
7818494116
commit
a9a822f206
28 changed files with 2707 additions and 345 deletions
|
|
@ -476,6 +476,29 @@ internal sealed class SelectionInteractionController
|
|||
failures);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Retires only App approach and retained item-interaction presentation.
|
||||
/// Runtime resets the canonical interaction and selection owners once at
|
||||
/// the shared generation boundary.
|
||||
/// </summary>
|
||||
internal void ResetGenerationPresentation()
|
||||
{
|
||||
List<Exception> failures = [];
|
||||
try { CancelPendingApproach(); }
|
||||
catch (Exception error) { failures.Add(error); }
|
||||
try { _items.ResetGenerationPresentation(); }
|
||||
catch (Exception error) { failures.Add(error); }
|
||||
try { _approachCompletions.Clear(); }
|
||||
catch (Exception error) { failures.Add(error); }
|
||||
|
||||
if (failures.Count != 0)
|
||||
{
|
||||
throw new AggregateException(
|
||||
"One or more selection-interaction presentation reset stages failed.",
|
||||
failures);
|
||||
}
|
||||
}
|
||||
|
||||
private bool ValidatePickupTarget(uint serverGuid, bool showToast)
|
||||
{
|
||||
if (_query.IsCreature(serverGuid))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue