public bool Save(World world, string saveDir) { try { PersistedWorldData persistedData = PersistedWorldData.From(world); 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."); return(true); } catch (Exception ex) { Log.Error("Could not save world: " + ex); return(false); } }
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); } }