Example #1
0
 /// <inheritdoc />
 public PlayerEntityMovementDataUpdateManager(
     [NotNull] IPlayerEntityGuidEnumerable playerGuids,
     [NotNull] INetworkMessageSender <EntityMovementMessageContext> movementUpdateMessageSender,
     [NotNull] IDirtyableMovementDataCollection movementCollection,
     [NotNull] GlobalEntityCollectionsLockingPolicy lockingPolicy)
 {
     PlayerGuids = playerGuids ?? throw new ArgumentNullException(nameof(playerGuids));
     MovementUpdateMessageSender = movementUpdateMessageSender ?? throw new ArgumentNullException(nameof(movementUpdateMessageSender));
     MovementCollection          = movementCollection ?? throw new ArgumentNullException(nameof(movementCollection));
     LockingPolicy = lockingPolicy ?? throw new ArgumentNullException(nameof(lockingPolicy));
 }
 /// <inheritdoc />
 public DefaultInterestRadiusManager(
     [NotNull] IEntityInterestChangeEventSubscribable subscriptionService,
     [NotNull] ILog logger,
     [NotNull] IReadonlyEntityGuidMappable <InterestCollection> managedInterestCollections,
     [NotNull] INetworkMessageSender <EntityVisibilityChangeContext> visibilityMessageSender,
     [NotNull] GlobalEntityCollectionsLockingPolicy lockingPolicy)
     : base(subscriptionService, true, logger)
 {
     ManagedInterestCollections = managedInterestCollections ?? throw new ArgumentNullException(nameof(managedInterestCollections));
     VisibilityMessageSender    = visibilityMessageSender ?? throw new ArgumentNullException(nameof(visibilityMessageSender));
     LockingPolicy = lockingPolicy ?? throw new ArgumentNullException(nameof(lockingPolicy));
 }
        /// <inheritdoc />
        public PlayerEntityEntryManager(
            IPlayerSessionClaimedEventSubscribable subscriptionService,
            ISessionDisconnectionEventSubscribable disconnectionSubscriptionService,
            IFactoryCreatable <GameObject, PlayerEntityCreationContext> playerFactory,
            INetworkMessageSender <GenericSingleTargetMessageContext <PlayerSelfSpawnEventPayload> > spawnPayloadSender,
            ILog logger,
            GlobalEntityCollectionsLockingPolicy lockingPolicy)
            : base(subscriptionService, false, logger)
        {
            PlayerFactory      = playerFactory;
            SpawnPayloadSender = spawnPayloadSender;
            LockingPolicy      = lockingPolicy;

            disconnectionSubscriptionService.OnSessionDisconnection += OnSessionDisconnection;
        }
 /// <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));
 }
 /// <inheritdoc />
 public PlayerEntityExitManager(
     [NotNull] ISessionDisconnectionEventSubscribable subscriptionService,
     [NotNull] ILog logger,
     [NotNull] IObjectDestructorable <PlayerSessionDeconstructionContext> sessionDestructor,
     [NotNull] IZoneServerToGameServerClient zoneClientGameService,
     [NotNull] IConnectionEntityCollection connectionToEntityMap,
     [NotNull] GlobalEntityCollectionsLockingPolicy lockingPolicy,
     [NotNull] IEntityDataSaveable entitySaver)
     : base(subscriptionService, false, logger)
 {
     SessionDestructor     = sessionDestructor ?? throw new ArgumentNullException(nameof(sessionDestructor));
     ZoneClientGameService = zoneClientGameService ?? throw new ArgumentNullException(nameof(zoneClientGameService));
     ConnectionToEntityMap = connectionToEntityMap ?? throw new ArgumentNullException(nameof(connectionToEntityMap));
     LockingPolicy         = lockingPolicy ?? throw new ArgumentNullException(nameof(lockingPolicy));
     EntitySaver           = entitySaver ?? throw new ArgumentNullException(nameof(entitySaver));
 }