refactor(streaming): extract landblock build factory

This commit is contained in:
Erik 2026-07-21 20:30:32 +02:00
parent e4a9664f09
commit 5af101b2f1
4 changed files with 1361 additions and 794 deletions

View file

@ -232,27 +232,45 @@ public sealed class LandblockBuildOriginTests
}
[Fact]
public void GameWindowBuildAndPublication_UseCapturedOriginInsteadOfLiveCenter()
public void BuildFactoryAndGameWindowPublication_UseCapturedOriginInsteadOfLiveCenter()
{
string root = FindRepoRoot();
string source = File.ReadAllText(Path.Combine(
string gameWindowSource = File.ReadAllText(Path.Combine(
root,
"src",
"AcDream.App",
"Rendering",
"GameWindow.cs"));
string buildSection = Slice(
source,
"private AcDream.App.Streaming.LandblockBuild? BuildLandblockForStreaming(",
"private void AdvanceLandblockPresentationRetirement(");
string buildSource = File.ReadAllText(Path.Combine(
root,
"src",
"AcDream.App",
"Streaming",
"LandblockBuildFactory.cs"));
string publicationSection = Slice(
source,
gameWindowSource,
"private void ApplyLoadedTerrainLocked(",
"private void OnUpdate(double dt)");
Assert.Contains("request.Origin", buildSection, StringComparison.Ordinal);
Assert.DoesNotContain("_liveCenterX", buildSection, StringComparison.Ordinal);
Assert.DoesNotContain("_liveCenterY", buildSection, StringComparison.Ordinal);
Assert.Contains("request.Origin", buildSource, StringComparison.Ordinal);
Assert.DoesNotContain("_liveCenterX", buildSource, StringComparison.Ordinal);
Assert.DoesNotContain("_liveCenterY", buildSource, StringComparison.Ordinal);
Assert.DoesNotContain(
"BuildLandblockForStreaming",
gameWindowSource,
StringComparison.Ordinal);
Assert.DoesNotContain(
"BuildSceneryEntitiesForStreaming",
gameWindowSource,
StringComparison.Ordinal);
Assert.DoesNotContain(
"BuildInteriorEntitiesForStreaming",
gameWindowSource,
StringComparison.Ordinal);
Assert.DoesNotContain(
"BuildPhysicsDatBundle",
gameWindowSource,
StringComparison.Ordinal);
Assert.Contains("build.Origin.CenterX", publicationSection, StringComparison.Ordinal);
Assert.Contains("build.Origin.CenterY", publicationSection, StringComparison.Ordinal);
Assert.DoesNotContain("_liveCenterX", publicationSection, StringComparison.Ordinal);