feat(runtime): own SetPosition collision reports
This commit is contained in:
parent
ec627c13a2
commit
237d1184d2
19 changed files with 3744 additions and 103 deletions
|
|
@ -63,6 +63,73 @@ public sealed class RuntimePhysicsOwnershipTests
|
|||
StringComparison.Ordinal);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GraphicalAndHeadlessHostsBorrowOneRuntimeCollisionAuthority()
|
||||
{
|
||||
string root = FindRepositoryRoot();
|
||||
string appRoot = Path.Combine(root, "src", "AcDream.App");
|
||||
string headlessRoot = Path.Combine(root, "src", "AcDream.Headless");
|
||||
string gameWindow = File.ReadAllText(Path.Combine(
|
||||
appRoot,
|
||||
"Rendering",
|
||||
"GameWindow.cs"));
|
||||
string headlessProjection = File.ReadAllText(Path.Combine(
|
||||
headlessRoot,
|
||||
"Hosting",
|
||||
"HeadlessSessionWorldProjection.cs"));
|
||||
string productionHosts = string.Join(
|
||||
"\n",
|
||||
Directory.EnumerateFiles(
|
||||
appRoot,
|
||||
"*.cs",
|
||||
SearchOption.AllDirectories)
|
||||
.Concat(Directory.EnumerateFiles(
|
||||
headlessRoot,
|
||||
"*.cs",
|
||||
SearchOption.AllDirectories))
|
||||
.Select(File.ReadAllText));
|
||||
|
||||
Assert.Contains(
|
||||
"private RuntimeEntityObjectLifetime _runtimeEntityObjects =>",
|
||||
gameWindow,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"_runtime.EntityObjects;",
|
||||
gameWindow,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"_runtimeEntityObjects.Physics",
|
||||
gameWindow,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"private readonly GameRuntime _runtime;",
|
||||
headlessProjection,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"_runtime.EntityObjects.Physics",
|
||||
headlessProjection,
|
||||
StringComparison.Ordinal);
|
||||
|
||||
// Hosts may project reports later, but they must never own a second
|
||||
// collision table or reproduce Runtime's return/error heuristic.
|
||||
Assert.DoesNotContain(
|
||||
"new RuntimeCollisionReportingState",
|
||||
productionHosts,
|
||||
StringComparison.Ordinal);
|
||||
Assert.DoesNotContain(
|
||||
"class RuntimeCollisionReportingState",
|
||||
productionHosts,
|
||||
StringComparison.Ordinal);
|
||||
Assert.DoesNotContain(
|
||||
"HandleSetPositionCollisions(",
|
||||
productionHosts,
|
||||
StringComparison.Ordinal);
|
||||
Assert.DoesNotContain(
|
||||
"CollidingWithEnvironment",
|
||||
productionHosts,
|
||||
StringComparison.Ordinal);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AppPhysicsFilesArePresentationAndPreparedAssetAdapters()
|
||||
{
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue