refactor(runtime): own world reveal generation
This commit is contained in:
parent
4ab98b080e
commit
a6860d5563
26 changed files with 1294 additions and 502 deletions
|
|
@ -5,7 +5,9 @@ using AcDream.Core.Net;
|
|||
using AcDream.Core.Net.Messages;
|
||||
using AcDream.Core.Physics;
|
||||
using AcDream.Core.World;
|
||||
using AcDream.Runtime;
|
||||
using AcDream.Runtime.Entities;
|
||||
using AcDream.Runtime.World;
|
||||
using DatReaderWriter.DBObjs;
|
||||
|
||||
namespace AcDream.App.Tests.Streaming;
|
||||
|
|
@ -617,8 +619,10 @@ public sealed class GpuWorldStateVisibilityTests
|
|||
const uint landblock = 0x0101FFFFu;
|
||||
const uint cell = 0x01010001u;
|
||||
const uint guid = 0x70000021u;
|
||||
var availability = new WorldGenerationAvailabilityState();
|
||||
availability.Begin(7);
|
||||
var transit = new RuntimeWorldTransitState();
|
||||
var availability = new WorldGenerationAvailabilityState(transit);
|
||||
long generation =
|
||||
transit.BeginReveal(RuntimePortalKind.Portal, cell);
|
||||
var state = new GpuWorldState(availability: availability);
|
||||
state.AddLandblock(new LoadedLandblock(
|
||||
landblock,
|
||||
|
|
@ -644,7 +648,18 @@ public sealed class GpuWorldStateVisibilityTests
|
|||
Assert.True(record.IsSpatiallyVisible);
|
||||
Assert.Equal([true], edges);
|
||||
|
||||
Assert.True(availability.End(7));
|
||||
Assert.True(transit.AcknowledgeDestinationReadiness(
|
||||
new RuntimeDestinationReadiness(
|
||||
generation,
|
||||
cell,
|
||||
IsIndoor: false,
|
||||
IsUnhydratable: false,
|
||||
RequiredRenderRadius: 1,
|
||||
IsRenderNeighborhoodReady: true,
|
||||
AreCompositeTexturesReady: true,
|
||||
IsCollisionReady: true)));
|
||||
Assert.True(transit.AcknowledgeMaterialized(generation, cell));
|
||||
Assert.True(transit.Complete(generation));
|
||||
Assert.True(state.IsLiveEntityVisible(projectionKey));
|
||||
Assert.True(record.IsSpatiallyVisible);
|
||||
}
|
||||
|
|
@ -688,8 +703,9 @@ public sealed class GpuWorldStateVisibilityTests
|
|||
[Fact]
|
||||
public void ReadinessNeighborhood_CopiesStaticAndLiveWhileWorldIsQuiesced()
|
||||
{
|
||||
var availability = new WorldGenerationAvailabilityState();
|
||||
availability.Begin(7);
|
||||
var transit = new RuntimeWorldTransitState();
|
||||
var availability = new WorldGenerationAvailabilityState(transit);
|
||||
transit.BeginReveal(RuntimePortalKind.Portal, 0x10100001u);
|
||||
var centerStatic = Entity(1, 0u);
|
||||
var centerLive = Entity(2, 0x70000001u);
|
||||
var neighborStatic = Entity(3, 0u);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue