feat(headless): share immutable gameplay content

This commit is contained in:
Erik 2026-07-27 09:00:48 +02:00
parent 12b500d383
commit 9569dadb57
25 changed files with 1031 additions and 429 deletions

View file

@ -111,6 +111,9 @@ public sealed class HeadlessProcessContentOwnerTests
Assert.Equal(1, factory.OpenCount);
Assert.Equal(sessionCount, host.Sessions.Count);
Assert.Equal(sessionCount, host.Content?.LeaseCount);
IPreparedCollisionSource sharedCollision =
Assert.IsAssignableFrom<IPreparedCollisionSource>(
host.Sessions[0].Content?.PreparedCollision);
Assert.All(
host.Sessions,
session =>
@ -121,6 +124,12 @@ public sealed class HeadlessProcessContentOwnerTests
Assert.Same(
factory.PreparedResource,
session.Content?.PreparedAssets);
Assert.Same(
MagicCatalog.Empty,
session.Content?.MagicCatalog);
Assert.Same(
sharedCollision,
session.Content?.PreparedCollision);
});
Assert.Equal(
sessionCount,
@ -206,12 +215,15 @@ public sealed class HeadlessProcessContentOwnerTests
internal TestResourceProxy Dats { get; }
internal TestResourceProxy Prepared { get; }
public (IDatReaderWriter Dats, IPreparedAssetSource Prepared) Open(
public HeadlessOpenedProcessContent Open(
HeadlessContentDescriptor descriptor,
Action<string> diagnostic)
{
OpenCount++;
return (DatsResource, PreparedResource);
return new HeadlessOpenedProcessContent(
DatsResource,
PreparedResource,
MagicCatalog.Empty);
}
}
}