fix(streaming): commit EnvCell landblocks atomically (#214)
Carry one complete cell payload with each streaming completion and publish visibility, physics, and render state on the render thread. Remove the obsolete post-readiness login reload that triggered a duplicate dungeon build. Co-Authored-By: Codex <noreply@openai.com>
This commit is contained in:
parent
85980fe13f
commit
b0c175afc0
26 changed files with 973 additions and 617 deletions
|
|
@ -163,6 +163,33 @@ public class StreamingControllerDungeonGateTests
|
|||
Assert.DoesNotContain(h.Loads, l => l.Kind == LandblockStreamJobKind.LoadFar);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void InitializeKnownLoginCenter_DungeonPerformsOneCollapseWithoutReloadChurn()
|
||||
{
|
||||
var h = Make();
|
||||
|
||||
h.Ctrl.InitializeKnownLoginCenter(0, 7, isSealedDungeon: true);
|
||||
h.Ctrl.InitializeKnownLoginCenter(0, 7, isSealedDungeon: true);
|
||||
|
||||
Assert.Single(h.Loads);
|
||||
Assert.Equal(Encode(0, 7), h.Loads[0].Id);
|
||||
Assert.Equal(1, h.ClearCalls());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void InitializeKnownLoginCenter_OutdoorWaitsForFirstCorrectlyCenteredTick()
|
||||
{
|
||||
var h = Make();
|
||||
|
||||
h.Ctrl.InitializeKnownLoginCenter(140, 4, isSealedDungeon: false);
|
||||
|
||||
Assert.Empty(h.Loads);
|
||||
Assert.Equal(0, h.ClearCalls());
|
||||
|
||||
h.Ctrl.Tick(140, 4, insideDungeon: false);
|
||||
Assert.Contains(h.Loads, load => load.Id == Encode(140, 4));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void PreCollapse_AfterBootstrapTick_CancelsWindow_UnloadsResidentNeighbors_KeepsDungeon()
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue