public ServerWorld(SerializableWorld world) { this.world = world; authId = null; id = null; shareCode = null; }
public static void SaveGame(IEnumerable<Vector3> dronePosition, IEnumerable<SerializableMessage> messages, IEnumerable<SerializableTrade> trades, int playerIndex, string filePath) { string directory = System.IO.Path.GetDirectoryName(filePath); if (!System.IO.Directory.Exists(directory)) System.IO.Directory.CreateDirectory(directory); System.Runtime.Serialization.IFormatter formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); System.IO.Stream stream = new System.IO.FileStream(filePath, System.IO.FileMode.Create, System.IO.FileAccess.Write, System.IO.FileShare.None); SerializableWorld world = new SerializableWorld(); List<SerializableVector3> lp = new List<SerializableVector3>(dronePosition.Count()); List<SerializableMessage> lm = new List<SerializableMessage>(messages.Count()); List<SerializableTrade> lt = new List<SerializableTrade>(trades.Count()); foreach (var position in dronePosition) { lp.Add(new SerializableVector3(position.x, position.y, position.z)); } foreach (var message in messages) { lm.Add(message); } foreach (var trade in trades) { lt.Add(trade); } world.DronePositions = lp; world.Messages = lm; world.Trades = lt; world.ActivePlayerIndex = playerIndex; formatter.Serialize(stream, world); stream.Close(); }
// Serializes the game world using persistence manager public void SaveActiveWorld() { SerializableWorld updatedWorld = new SerializableWorld(Tiles, resources); updatedWorld.Name = persistenceManager.SelectedWorld.world.Name; updatedWorld.CreationTime = persistenceManager.SelectedWorld.world.CreationTime; updatedWorld.IsTutorialCompleted = persistenceManager.SelectedWorld.world.IsTutorialCompleted; persistenceManager.SelectedWorld.world = updatedWorld; persistenceManager.SaveGameState(persistenceManager.SelectedWorld); }
private void BuildWorldFromSerialized(SerializableWorld world) { boardSize = world.WorldData.GetLength(0); tiles = new Tile[boardSize, boardSize]; for (int x = 0; x < boardSize; x++) { for (int z = 0; z < boardSize; z++) { SerializableTile serialTile = world.WorldData[x, z]; Tile tile = CreateTileAt(x, z, serialTile.TileType); if (serialTile.Entity != null) { tile.Entity = entityFactory.Get(serialTile.Entity.EntityType); tile.Entity.Level = serialTile.Entity.Level; } } } RebakeNavMesh(); resources.Money = world.ResourceData.Money; resources.Population = world.ResourceData.Population; }