public PlayerJoiningMultiplayerSessionProcessor(TimeKeeper timeKeeper, EscapePodManager escapePodManager,
                                                 PlayerManager playerManager)
 {
     this.timeKeeper       = timeKeeper;
     this.escapePodManager = escapePodManager;
     this.playerManager    = playerManager;
 }
Пример #2
0
 public InitialPlayerSyncProcessor(IPacketSender packetSender, BuildThrottlingQueue buildEventQueue, Vehicles vehicles, ItemContainers itemContainers, EquipmentSlots equipment, PlayerManager remotePlayerManager, Entities entities, EscapePodManager escapePodManager)
 {
     this.packetSender        = packetSender;
     this.buildEventQueue     = buildEventQueue;
     this.vehicles            = vehicles;
     this.itemContainers      = itemContainers;
     this.equipment           = equipment;
     this.remotePlayerManager = remotePlayerManager;
     this.entities            = entities;
     this.escapePodManager    = escapePodManager;
 }
Пример #3
0
        public World CreateWorld(PersistedWorldData pWorldData, ServerGameMode gameMode)
        {
            string seed = pWorldData.WorldData.Seed;

            if (string.IsNullOrWhiteSpace(seed))
            {
                seed = StringHelper.GenerateRandomString(10);
            }

            Log.Info($"Loading world with seed {seed}");

            World world = new()
            {
                TimeKeeper = new TimeKeeper {
                    ServerStartTime = pWorldData.WorldData.ServerStartTime
                },

                SimulationOwnershipData = new SimulationOwnershipData(),
                PlayerManager           = new PlayerManager(pWorldData.PlayerData.GetPlayers(), config),

                BaseManager = new BaseManager(pWorldData.BaseData.PartiallyConstructedPieces, pWorldData.BaseData.CompletedBasePieceHistory),

                InventoryManager = new InventoryManager(pWorldData.WorldData.InventoryData.InventoryItems, pWorldData.WorldData.InventoryData.StorageSlotItems, pWorldData.WorldData.InventoryData.Modules),

                EscapePodManager = new EscapePodManager(pWorldData.WorldData.EscapePodData.EscapePods, randomStart, seed),

                GameData = pWorldData.WorldData.GameData,
                GameMode = gameMode,
                Seed     = seed
            };

            world.EventTriggerer = new EventTriggerer(world.PlayerManager, pWorldData.WorldData.GameData.StoryTiming.ElapsedTime, pWorldData.WorldData.GameData.StoryTiming.AuroraExplosionTime);
            world.VehicleManager = new VehicleManager(pWorldData.WorldData.VehicleData.Vehicles, world.InventoryManager);

            world.BatchEntitySpawner = new BatchEntitySpawner(
                NitroxServiceLocator.LocateService <EntitySpawnPointFactory>(),
                NitroxServiceLocator.LocateService <UweWorldEntityFactory>(),
                NitroxServiceLocator.LocateService <UwePrefabFactory>(),
                pWorldData.WorldData.ParsedBatchCells,
                protoBufSerializer,
                NitroxServiceLocator.LocateService <Dictionary <NitroxTechType, IEntityBootstrapper> >(),
                NitroxServiceLocator.LocateService <Dictionary <string, PrefabPlaceholdersGroupAsset> >(),
                world.Seed
                );

            world.EntityManager = new EntityManager(pWorldData.EntityData.Entities, world.BatchEntitySpawner);

            HashSet <NitroxTechType> serverSpawnedSimulationWhiteList = NitroxServiceLocator.LocateService <HashSet <NitroxTechType> >();

            world.EntitySimulation = new EntitySimulation(world.EntityManager, world.SimulationOwnershipData, world.PlayerManager, serverSpawnedSimulationWhiteList);

            return(world);
        }
    }
Пример #4
0
 public EscapePodRepairProcessor(EscapePodManager escapePodManager)
 {
     this.escapePodManager = escapePodManager;
 }
Пример #5
0
 public EscapePodInitialSyncProcessor(EscapePodManager escapePodManager)
 {
     this.escapePodManager = escapePodManager;
 }
Пример #6
0
 public AddEscapePodProcessor(IMultiplayerSession multiplayerSession, EscapePodManager escapePodManager)
 {
     this.multiplayerSession = multiplayerSession;
     this.escapePodManager   = escapePodManager;
 }
 public ClaimPlayerSlotReservationProcessor(TimeKeeper timeKeeper, EscapePodManager escapePodManager, PlayerManager playerManager)
 {
     this.timeKeeper       = timeKeeper;
     this.escapePodManager = escapePodManager;
     this.playerManager    = playerManager;
 }
Пример #8
0
 public AuthenticatePacketProcessor(TimeKeeper timeKeeper, EscapePodManager escapePodManager, PlayerManager playerManager)
 {
     this.timeKeeper       = timeKeeper;
     this.escapePodManager = escapePodManager;
     this.playerManager    = playerManager;
 }
 public AuthenticatePacketProcessor(TcpServer tcpServer, TimeKeeper timeKeeper, EscapePodManager escapePodManager)
 {
     this.tcpServer        = tcpServer;
     this.timeKeeper       = timeKeeper;
     this.escapePodManager = escapePodManager;
 }