/// <inheritdoc /> public EntityDespawnTickable(INetworkEntityVisibilityLostEventSubscribable subscriptionService, ILog logger, [NotNull] IReadonlyEntityGuidMappable <GameObject> knownEntites, [NotNull] IObjectDestructorable <NetworkEntityGuid> entityDestructor) : base(subscriptionService, true, logger) { KnownEntites = knownEntites ?? throw new ArgumentNullException(nameof(knownEntites)); EntityDestructor = entityDestructor ?? throw new ArgumentNullException(nameof(entityDestructor)); }
/// <inheritdoc /> public PlayerSessionDestructor( [NotNull] IObjectDestructorable <PlayerEntityDestructionContext> playerEntityDestructor, [NotNull] IConnectionEntityCollection connectionToEntityMap, [NotNull] ISessionCollection sessionCollection) { PlayerEntityDestructor = playerEntityDestructor ?? throw new ArgumentNullException(nameof(playerEntityDestructor)); ConnectionToEntityMap = connectionToEntityMap ?? throw new ArgumentNullException(nameof(connectionToEntityMap)); SessionCollection = sessionCollection ?? throw new ArgumentNullException(nameof(sessionCollection)); }
/// <inheritdoc /> public ServerPlayerEntityDestructor( [NotNull] IObjectDestructorable <NetworkEntityGuid> entityDestructor, [NotNull] IReadonlyEntityGuidMappable <GameObject> guidToGameObjectMap, [NotNull] IReadonlyEntityGuidMappable <InterestCollection> interestCollections, [NotNull] IEntityInterestChangeEventSpoofable interestEventSpoofer) { EntityDestructor = entityDestructor ?? throw new ArgumentNullException(nameof(entityDestructor)); GuidToGameObjectMap = guidToGameObjectMap ?? throw new ArgumentNullException(nameof(guidToGameObjectMap)); InterestCollections = interestCollections ?? throw new ArgumentNullException(nameof(interestCollections)); InterestEventSpoofer = interestEventSpoofer ?? throw new ArgumentNullException(nameof(interestEventSpoofer)); }
/// <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)); }