refactor(runtime): own world environment state
This commit is contained in:
parent
b972f539f7
commit
902076c0a4
27 changed files with 886 additions and 295 deletions
|
|
@ -1,6 +1,7 @@
|
|||
using System.Numerics;
|
||||
using AcDream.App.World;
|
||||
using AcDream.Core.World;
|
||||
using AcDream.Runtime.World;
|
||||
|
||||
namespace AcDream.App.Tests.World;
|
||||
|
||||
|
|
@ -57,25 +58,23 @@ public sealed class WorldEnvironmentControllerTests
|
|||
}
|
||||
|
||||
[Fact]
|
||||
public void Initialize_WithoutGameTimeRestoresDocumentedFallbackOrigin()
|
||||
public void Initialize_WithoutGameTimeUsesInstanceFallbackOrigin()
|
||||
{
|
||||
double previous = DerethDateTime.OriginOffsetTicks;
|
||||
try
|
||||
{
|
||||
DerethDateTime.SetOriginOffsetFromDat(3600.0);
|
||||
var controller = CreateController([]);
|
||||
var first = CreateController([]);
|
||||
var second = CreateController([]);
|
||||
|
||||
controller.Initialize(SingleGroupSky("Sunny", begin: 0f), zeroTimeOfYear: null);
|
||||
first.Initialize(
|
||||
SingleGroupSky("Sunny", begin: 0f),
|
||||
zeroTimeOfYear: 3600.0);
|
||||
second.Initialize(
|
||||
SingleGroupSky("Sunny", begin: 0f),
|
||||
zeroTimeOfYear: null);
|
||||
|
||||
Assert.Equal(
|
||||
DerethDateTime.DayFractionOriginOffsetTicks,
|
||||
DerethDateTime.OriginOffsetTicks);
|
||||
Assert.InRange(controller.DayFraction, 0.499f, 0.501f);
|
||||
}
|
||||
finally
|
||||
{
|
||||
DerethDateTime.SetOriginOffsetFromDat(previous);
|
||||
}
|
||||
Assert.Equal(3600.0, first.WorldTime.Calendar.OriginOffsetTicks);
|
||||
Assert.Equal(
|
||||
DerethDateTime.DayFractionOriginOffsetTicks,
|
||||
second.WorldTime.Calendar.OriginOffsetTicks);
|
||||
Assert.InRange(second.DayFraction, 0.499f, 0.501f);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
|
|
@ -143,8 +142,8 @@ public sealed class WorldEnvironmentControllerTests
|
|||
|
||||
private static WorldEnvironmentController CreateController(List<string> log) =>
|
||||
new(
|
||||
new WorldTimeService(SkyStateProvider.Default()),
|
||||
new WeatherSystem(),
|
||||
new RuntimeWorldEnvironmentState(log: log.Add),
|
||||
forcedDayGroupIndex: null,
|
||||
log.Add);
|
||||
|
||||
private static LoadedSkyDesc SingleGroupSky(string name, float begin)
|
||||
|
|
@ -180,8 +179,8 @@ public sealed class WorldEnvironmentControllerTests
|
|||
line.Contains("→ DayGroup[", StringComparison.Ordinal);
|
||||
}
|
||||
|
||||
[CollectionDefinition(Name, DisableParallelization = true)]
|
||||
[CollectionDefinition(Name)]
|
||||
public sealed class WorldEnvironmentControllerCollection
|
||||
{
|
||||
public const string Name = "World environment process-global calendar";
|
||||
public const string Name = "World environment";
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue