refactor(world): own live environment state
Move the DAT sky, selected day group, world clock, weather, AdminEnvirons bridge, and debug cycles into a one-shot WorldEnvironmentController while preserving GameWindow's public aliases and accepted startup/session/render order. Correct the named retail citations and register the remaining environment audio and fog/radar gaps. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
557eb7ef6b
commit
d09e246d3a
19 changed files with 606 additions and 368 deletions
|
|
@ -13,25 +13,6 @@ internal interface IWorldSceneSkyStateSource
|
|||
float DayFraction { get; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Holds the selected retail day group beside the world clock that provides
|
||||
/// its current interpolation point. Day-group selection remains an update-time
|
||||
/// concern; render owners receive this read-only seam.
|
||||
/// </summary>
|
||||
internal sealed class WorldSceneSkyState : IWorldSceneSkyStateSource
|
||||
{
|
||||
private readonly WorldTimeService _worldTime;
|
||||
|
||||
public WorldSceneSkyState(WorldTimeService worldTime)
|
||||
{
|
||||
_worldTime = worldTime ?? throw new ArgumentNullException(nameof(worldTime));
|
||||
}
|
||||
|
||||
public DayGroupData? ActiveDayGroup { get; set; }
|
||||
|
||||
public float DayFraction => (float)_worldTime.DayFraction;
|
||||
}
|
||||
|
||||
internal interface IWorldSceneEntitySource
|
||||
{
|
||||
IEnumerable<(uint LandblockId, Vector3 AabbMin, Vector3 AabbMax,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue