/// <inheritdoc /> public PlayerEntityMovementDataUpdateManager( [NotNull] IPlayerEntityGuidEnumerable playerGuids, [NotNull] INetworkMessageSender <EntityMovementMessageContext> movementUpdateMessageSender, [NotNull] IDirtyableMovementDataCollection movementCollection) { PlayerGuids = playerGuids ?? throw new ArgumentNullException(nameof(playerGuids)); MovementUpdateMessageSender = movementUpdateMessageSender ?? throw new ArgumentNullException(nameof(movementUpdateMessageSender)); MovementCollection = movementCollection ?? throw new ArgumentNullException(nameof(movementCollection)); }
/// <inheritdoc /> public EntityDataUpdateManager( [NotNull] IPlayerEntityGuidEnumerable playerGuids, IReadonlyEntityGuidMappable <IPeerPayloadSendService <GameServerPacketPayload> > sessionMappable, IReadonlyEntityGuidMappable <InterestCollection> guidToInterestCollectionMappable, IFactoryCreatable <FieldValueUpdate, EntityFieldUpdateCreationContext> updateFactory, IReadonlyEntityGuidMappable <IChangeTrackableEntityDataCollection> changeTrackingCollections, [NotNull] GlobalEntityCollectionsLockingPolicy lockingPolicy) { PlayerGuids = playerGuids ?? throw new ArgumentNullException(nameof(playerGuids)); SessionMappable = sessionMappable; GuidToInterestCollectionMappable = guidToInterestCollectionMappable; UpdateFactory = updateFactory; ChangeTrackingCollections = changeTrackingCollections; LockingPolicy = lockingPolicy ?? throw new ArgumentNullException(nameof(lockingPolicy)); }