refactor(runtime): own magic and player state
Move the coupled Spellbook and LocalPlayerState into one Runtime-owned character graph, route content, live-session, retained UI, reset, and shutdown through that exact owner, and delete the duplicate desired-component snapshot from inventory state. Preserve synchronous retail update and reset ordering while adding independent-instance and retryable-failure coverage. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
d362172620
commit
d02a12ceac
16 changed files with 418 additions and 96 deletions
|
|
@ -15,6 +15,7 @@ using AcDream.Core.Physics;
|
|||
using AcDream.Core.Rendering;
|
||||
using AcDream.Core.Spells;
|
||||
using AcDream.Core.Vfx;
|
||||
using AcDream.Runtime.Gameplay;
|
||||
using DatReaderWriter.DBObjs;
|
||||
using Silk.NET.Input;
|
||||
using Silk.NET.OpenAL;
|
||||
|
|
@ -257,7 +258,7 @@ public sealed class ContentEffectsAudioCompositionTests
|
|||
ResidencyBudgetOptions.Default,
|
||||
new PhysicsDataCache(),
|
||||
false,
|
||||
new Spellbook(),
|
||||
new RuntimeCharacterState(),
|
||||
Router,
|
||||
Poses,
|
||||
new DeferredEntityEffectAdvanceSource(),
|
||||
|
|
@ -289,7 +290,11 @@ public sealed class ContentEffectsAudioCompositionTests
|
|||
throw new InvalidOperationException($"fault at {point}");
|
||||
});
|
||||
|
||||
public void Dispose() => Publication.Dispose();
|
||||
public void Dispose()
|
||||
{
|
||||
Publication.Dispose();
|
||||
Dependencies.Character.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
private sealed class Publication :
|
||||
|
|
@ -386,7 +391,9 @@ public sealed class ContentEffectsAudioCompositionTests
|
|||
return _preparedAssets;
|
||||
}
|
||||
public MagicCatalog LoadMagicCatalog(IDatReaderWriter dats) => _magic;
|
||||
public void InstallSpellMetadata(Spellbook spellBook, MagicCatalog catalog) { }
|
||||
public void InstallSpellMetadata(
|
||||
RuntimeCharacterState character,
|
||||
MagicCatalog catalog) { }
|
||||
public int GetSpellCount(MagicCatalog catalog) => 0;
|
||||
public IAnimationLoader CreateAnimationLoader(
|
||||
IDatReaderWriter dats,
|
||||
|
|
|
|||
|
|
@ -191,9 +191,8 @@ public sealed class InteractionRetainedUiCompositionTests
|
|||
Selection: null!,
|
||||
Inventory: null!,
|
||||
MagicCatalog: null!,
|
||||
Spellbook: null!,
|
||||
Character: null!,
|
||||
Communication: null!,
|
||||
LocalPlayer: null!,
|
||||
StackSplitQuantity: null!,
|
||||
UiRegistry: null,
|
||||
CombatModeCommands: null!,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue