public static GameData From(PDAStateData pdaState, StoryGoalData storyGoals, ScheduleKeeper scheduleKeeper, EventTriggerer eventTriggerer) { return(new GameData { PDAState = pdaState, StoryGoals = StoryGoalData.From(storyGoals, scheduleKeeper), StoryTiming = StoryTimingData.From(eventTriggerer) }); }
public static GameData From(PDAStateData pdaState, StoryGoalData storyGoals, EventTriggerer eventTriggerer) { return(new GameData { PDAState = pdaState, StoryGoals = storyGoals, StoryTiming = StoryTimingData.From(eventTriggerer) }); }
private World CreateWorld(DateTime serverStartTime, List <Entity> entities, List <BasePiece> partiallyConstructedPieces, List <BasePiece> completedBasePieceHistory, List <VehicleModel> vehicles, List <Player> players, List <ItemData> inventoryItems, List <ItemData> storageSlotItems, GameData gameData, List <Int3> parsedBatchCells, List <EscapePodModel> escapePods, StoryTimingData storyTimingData, string gameMode) { World world = new World(); world.TimeKeeper = new TimeKeeper(); world.TimeKeeper.ServerStartTime = serverStartTime; world.SimulationOwnershipData = new SimulationOwnershipData(); world.PlayerManager = new PlayerManager(players, config); world.EventTriggerer = new EventTriggerer(world.PlayerManager, storyTimingData.ElapsedTime, storyTimingData.AuroraExplosionTime); world.BaseManager = new BaseManager(partiallyConstructedPieces, completedBasePieceHistory); world.InventoryManager = new InventoryManager(inventoryItems, storageSlotItems); world.VehicleManager = new VehicleManager(vehicles, world.InventoryManager); world.GameData = gameData; world.EscapePodManager = new EscapePodManager(escapePods); world.GameMode = gameMode; world.BatchEntitySpawner = new BatchEntitySpawner(NitroxServiceLocator.LocateService <EntitySpawnPointFactory>(), NitroxServiceLocator.LocateService <UweWorldEntityFactory>(), NitroxServiceLocator.LocateService <UwePrefabFactory>(), parsedBatchCells, serializer, NitroxServiceLocator.LocateService <Dictionary <TechType, IEntityBootstrapper> >(), NitroxServiceLocator.LocateService <Dictionary <string, List <PrefabAsset> > >()); world.EntityManager = new EntityManager(entities, world.BatchEntitySpawner); HashSet <TechType> serverSpawnedSimulationWhiteList = NitroxServiceLocator.LocateService <HashSet <TechType> >(); world.EntitySimulation = new EntitySimulation(world.EntityManager, world.SimulationOwnershipData, world.PlayerManager, serverSpawnedSimulationWhiteList); Log.Info("World GameMode: " + gameMode); Log.Info("Server Password: "******"None. Public Server." : config.ServerPassword)); Log.Info("Admin Password: "******"To get help for commands, run help in console or /help in chatbox"); return(world); }
private World CreateWorld(DateTime serverStartTime, List <Entity> entities, List <BasePiece> partiallyConstructedPieces, List <BasePiece> completedBasePieceHistory, List <VehicleModel> vehicles, List <Player> players, List <ItemData> inventoryItems, List <ItemData> storageSlotItems, GameData gameData, List <NitroxInt3> parsedBatchCells, List <EscapePodModel> escapePods, StoryTimingData storyTimingData, ServerGameMode gameMode) { World world = new World { TimeKeeper = new TimeKeeper { ServerStartTime = serverStartTime }, SimulationOwnershipData = new SimulationOwnershipData(), PlayerManager = new PlayerManager(players, config), BaseManager = new BaseManager(partiallyConstructedPieces, completedBasePieceHistory), InventoryManager = new InventoryManager(inventoryItems, storageSlotItems), EscapePodManager = new EscapePodManager(escapePods), GameData = gameData, GameMode = gameMode }; world.EventTriggerer = new EventTriggerer(world.PlayerManager, storyTimingData.ElapsedTime, storyTimingData.AuroraExplosionTime); world.VehicleManager = new VehicleManager(vehicles, world.InventoryManager); world.BatchEntitySpawner = new BatchEntitySpawner( NitroxServiceLocator.LocateService <EntitySpawnPointFactory>(), NitroxServiceLocator.LocateService <UweWorldEntityFactory>(), NitroxServiceLocator.LocateService <UwePrefabFactory>(), parsedBatchCells, protoBufSerializer, NitroxServiceLocator.LocateService <Dictionary <NitroxTechType, IEntityBootstrapper> >(), NitroxServiceLocator.LocateService <Dictionary <string, PrefabPlaceholdersGroupAsset> >() ); world.EntityManager = new EntityManager(entities, world.BatchEntitySpawner); HashSet <NitroxTechType> serverSpawnedSimulationWhiteList = NitroxServiceLocator.LocateService <HashSet <NitroxTechType> >(); world.EntitySimulation = new EntitySimulation(world.EntityManager, world.SimulationOwnershipData, world.PlayerManager, serverSpawnedSimulationWhiteList); return(world); }
private World CreateWorld(DateTime serverStartTime, List <Entity> entities, List <BasePiece> partiallyConstructedPieces, List <BasePiece> completedBasePieceHistory, List <VehicleModel> vehicles, List <Player> players, List <ItemData> inventoryItems, List <ItemData> storageSlotItems, GameData gameData, List <Int3> parsedBatchCells, List <EscapePodModel> escapePods, StoryTimingData storyTimingData, string gameMode) { World world = new World(); world.TimeKeeper = new TimeKeeper(); world.TimeKeeper.ServerStartTime = serverStartTime; world.SimulationOwnershipData = new SimulationOwnershipData(); world.PlayerManager = new PlayerManager(players, config); world.EventTriggerer = new EventTriggerer(world.PlayerManager, storyTimingData.ElapsedTime, storyTimingData.AuroraExplosionTime); world.BaseManager = new BaseManager(partiallyConstructedPieces, completedBasePieceHistory); world.InventoryManager = new InventoryManager(inventoryItems, storageSlotItems); world.VehicleManager = new VehicleManager(vehicles, world.InventoryManager); world.GameData = gameData; world.EscapePodManager = new EscapePodManager(escapePods); world.GameMode = gameMode; world.BatchEntitySpawner = new BatchEntitySpawner(NitroxServiceLocator.LocateService <EntitySpawnPointFactory>(), NitroxServiceLocator.LocateService <UweWorldEntityFactory>(), NitroxServiceLocator.LocateService <UwePrefabFactory>(), parsedBatchCells, protoBufSerializer, NitroxServiceLocator.LocateService <Dictionary <NitroxTechType, IEntityBootstrapper> >(), NitroxServiceLocator.LocateService <Dictionary <string, PrefabPlaceholdersGroupAsset> >()); world.EntityManager = new EntityManager(entities, world.BatchEntitySpawner); HashSet <NitroxTechType> serverSpawnedSimulationWhiteList = NitroxServiceLocator.LocateService <HashSet <NitroxTechType> >(); world.EntitySimulation = new EntitySimulation(world.EntityManager, world.SimulationOwnershipData, world.PlayerManager, serverSpawnedSimulationWhiteList); Log.Info($"World GameMode: {gameMode}"); Log.InfoSensitive("Server Password: {password}", string.IsNullOrEmpty(config.ServerPassword) ? "None. Public Server." : config.ServerPassword); Log.InfoSensitive("Admin Password: {password}", config.AdminPassword); Log.Info($"Autosave: {(config.DisableAutoSave ? "DISABLED" : $"ENABLED ({config.SaveInterval / 60000} min)")}");
public void Save(World world) { try { PersistedWorldData persistedData = new PersistedWorldData(); persistedData.WorldData.ParsedBatchCells = world.BatchEntitySpawner.SerializableParsedBatches; persistedData.WorldData.ServerStartTime = world.TimeKeeper.ServerStartTime; persistedData.WorldData.EntityData = EntityData.From(world.EntityManager.GetAllEntities()); persistedData.BaseData = BaseData.From(world.BaseManager.GetPartiallyConstructedPieces(), world.BaseManager.GetCompletedBasePieceHistory()); persistedData.WorldData.VehicleData = VehicleData.From(world.VehicleManager.GetVehicles()); persistedData.WorldData.InventoryData = InventoryData.From(world.InventoryManager.GetAllInventoryItems(), world.InventoryManager.GetAllStorageSlotItems()); persistedData.PlayerData = PlayerData.From(world.PlayerManager.GetAllPlayers()); persistedData.WorldData.GameData = world.GameData; persistedData.WorldData.StoryTimingData = StoryTimingData.From(world.EventTriggerer); persistedData.WorldData.EscapePodData = EscapePodData.From(world.EscapePodManager.GetEscapePods()); if (!Directory.Exists(config.SaveName)) { Directory.CreateDirectory(config.SaveName); } using (Stream stream = File.OpenWrite(Path.Combine(config.SaveName, "BaseData.nitrox"))) { serializer.Serialize(stream, new SaveVersion(BaseData.VERSION)); serializer.Serialize(stream, persistedData.BaseData); } using (Stream stream = File.OpenWrite(Path.Combine(config.SaveName, "PlayerData.nitrox"))) { serializer.Serialize(stream, new SaveVersion(PlayerData.VERSION)); serializer.Serialize(stream, persistedData.PlayerData); } using (Stream stream = File.OpenWrite(Path.Combine(config.SaveName, "WorldData.nitrox"))) { serializer.Serialize(stream, new SaveVersion(WorldData.VERSION)); serializer.Serialize(stream, persistedData.WorldData); } Log.Info("World state saved."); } catch (Exception ex) { Log.Info("Could not save world: " + ex); } }
public void Save(World world, string saveDir) { try { PersistedWorldData persistedData = new PersistedWorldData { BaseData = BaseData.From(world.BaseManager.GetPartiallyConstructedPieces(), world.BaseManager.GetCompletedBasePieceHistory()), PlayerData = PlayerData.From(world.PlayerManager.GetAllPlayers()), EntityData = EntityData.From(world.EntityManager.GetAllEntities()), WorldData = { ParsedBatchCells = world.BatchEntitySpawner.SerializableParsedBatches, ServerStartTime = world.TimeKeeper.ServerStartTime, VehicleData = VehicleData.From(world.VehicleManager.GetVehicles()), InventoryData = InventoryData.From(world.InventoryManager.GetAllInventoryItems(), world.InventoryManager.GetAllStorageSlotItems()), GameData = world.GameData, StoryTimingData = StoryTimingData.From(world.EventTriggerer), EscapePodData = EscapePodData.From(world.EscapePodManager.GetEscapePods()) } }; if (!Directory.Exists(saveDir)) { Directory.CreateDirectory(saveDir); } saveDataSerializer.Serialize(Path.Combine(saveDir, "Version" + fileEnding), new SaveFileVersions()); saveDataSerializer.Serialize(Path.Combine(saveDir, "BaseData" + fileEnding), persistedData.BaseData); saveDataSerializer.Serialize(Path.Combine(saveDir, "PlayerData" + fileEnding), persistedData.PlayerData); saveDataSerializer.Serialize(Path.Combine(saveDir, "WorldData" + fileEnding), persistedData.WorldData); saveDataSerializer.Serialize(Path.Combine(saveDir, "EntityData" + fileEnding), persistedData.EntityData); Log.Info("World state saved."); } catch (Exception ex) { Log.Info("Could not save world: " + ex); } }