feat(headless): hydrate isolated collision worlds
This commit is contained in:
parent
9569dadb57
commit
b6547ff38c
20 changed files with 1960 additions and 101 deletions
|
|
@ -1,4 +1,6 @@
|
|||
using System.Reflection;
|
||||
using System.Collections.Immutable;
|
||||
using System.Runtime.InteropServices;
|
||||
using AcDream.Content;
|
||||
using AcDream.Headless.Configuration;
|
||||
using AcDream.Headless.Hosting;
|
||||
|
|
@ -114,6 +116,9 @@ public sealed class HeadlessProcessContentOwnerTests
|
|||
IPreparedCollisionSource sharedCollision =
|
||||
Assert.IsAssignableFrom<IPreparedCollisionSource>(
|
||||
host.Sessions[0].Content?.PreparedCollision);
|
||||
float[] sharedHeightTable = Assert.IsType<float[]>(
|
||||
ImmutableCollectionsMarshal.AsArray(
|
||||
host.Sessions[0].Content!.HeightTable));
|
||||
Assert.All(
|
||||
host.Sessions,
|
||||
session =>
|
||||
|
|
@ -130,6 +135,10 @@ public sealed class HeadlessProcessContentOwnerTests
|
|||
Assert.Same(
|
||||
sharedCollision,
|
||||
session.Content?.PreparedCollision);
|
||||
Assert.Same(
|
||||
sharedHeightTable,
|
||||
ImmutableCollectionsMarshal.AsArray(
|
||||
session.Content!.HeightTable));
|
||||
});
|
||||
Assert.Equal(
|
||||
sessionCount,
|
||||
|
|
@ -151,6 +160,13 @@ public sealed class HeadlessProcessContentOwnerTests
|
|||
session.Runtime.EntityObjects.Physics.DataCache)
|
||||
.Distinct(ReferenceEqualityComparer.Instance)
|
||||
.Count());
|
||||
Assert.Equal(
|
||||
sessionCount,
|
||||
host.Sessions
|
||||
.Select(static session =>
|
||||
session.Runtime.MovementOwner)
|
||||
.Distinct(ReferenceEqualityComparer.Instance)
|
||||
.Count());
|
||||
|
||||
HeadlessSessionHost[] sessions = host.Sessions.ToArray();
|
||||
host.Dispose();
|
||||
|
|
@ -223,7 +239,8 @@ public sealed class HeadlessProcessContentOwnerTests
|
|||
return new HeadlessOpenedProcessContent(
|
||||
DatsResource,
|
||||
PreparedResource,
|
||||
MagicCatalog.Empty);
|
||||
MagicCatalog.Empty,
|
||||
ImmutableArray.CreateRange(new float[256]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue