refactor(runtime): define the update-frame contract

This commit is contained in:
Erik 2026-07-22 00:15:27 +02:00
parent a36a7015c4
commit 99a3e819c4
8 changed files with 646 additions and 26 deletions

View file

@ -4,6 +4,7 @@ using AcDream.App.Interaction;
using AcDream.App.Physics;
using AcDream.App.Rendering;
using AcDream.App.Rendering.Vfx;
using AcDream.App.Update;
using AcDream.App.World;
using AcDream.Content;
using AcDream.Core.Net;
@ -52,7 +53,7 @@ internal sealed class LiveEntityNetworkUpdateController
private readonly LocalPlayerOutboundController _localPlayerOutbound;
private readonly Func<EntityPhysicsHost?> _playerHostSource;
private readonly Func<uint> _playerGuid;
private readonly Func<double> _gameTime;
private readonly IPhysicsScriptTimeSource _gameTime;
private readonly Func<WorldSession?> _session;
private readonly LiveEntityInboundAuthorityGate _authorityGate;
private readonly Action<WorldSession.EntityPositionUpdate> _aimTeleportDestination;
@ -62,7 +63,7 @@ internal sealed class LiveEntityNetworkUpdateController
private PlayerMovementController? _playerController => _playerControllerSource();
private EntityPhysicsHost? _playerHost => _playerHostSource();
private uint _playerServerGuid => _playerGuid();
private double _physicsScriptGameTime => _gameTime();
private double _physicsScriptGameTime => _gameTime.CurrentScriptTime;
private IReadOnlyDictionary<uint, WorldEntity> _entitiesByServerGuid =>
_liveEntities.MaterializedWorldEntities;
private IReadOnlyDictionary<uint, WorldEntity> _visibleEntitiesByServerGuid =>
@ -97,7 +98,7 @@ internal sealed class LiveEntityNetworkUpdateController
LocalPlayerOutboundController localPlayerOutbound,
Func<EntityPhysicsHost?> playerHostSource,
Func<uint> playerGuid,
Func<double> gameTime,
IPhysicsScriptTimeSource gameTime,
Func<WorldSession?> session,
Action<uint, AcceptedPhysicsTimestamps> publishTimestamps,
Action<WorldSession.EntityPositionUpdate> aimTeleportDestination,