public MainWindow() { // Génère la carte game = GameGenerator.GenerateDefaultMap(); // Sauvegarde la nouvelle partie dans un fichier GameFileManager.SaveGame(game, "game1"); // Lit le fichier game = GameFileManager.ReadGame("game1"); manager = new GameManager(game); manager.PopulationChanged += OnPopulationChanged; manager.MaxPopulationChanged += OnMaxPopulationChanged; manager.BuildingCreated += OnBuildingCreated; foreach (var carry in game.Carries) { carry.CarryStockChanged += OnCarryResourceCollected; } InitializeComponent(); this.DataContext = this; InitializeUIFromGame(game); }
public void SaveGame_ThrowArgumentNullException_IfGameIsNull() { IGameDescriptor gameDescriptor = null; string fileName = "newGame"; GameFileManagerStatic.SaveGame(gameDescriptor, fileName); }
public IActionResult Create(GameDescriptorModel gameModel) { IGameDescriptor newGameDescriptor = GameGenerator.GenerateMapFromOptions(gameModel.Workers, gameModel.Farms, gameModel.Resources); gameFileManager.SaveGame(newGameDescriptor, gameModel.Name); return(Redirect($"/{configuration.GetValue<string>("GameEngine")}?name={gameModel.Name}")); }
// GET: /<controller>/ public IActionResult Game(string fileName) { // initialise la classe qui contient tous le messages de l'UI uiMessages = new UIMessages(); // Lit le fichier game = gameFileManager.ReadGame(fileName); manager = new GameManager(game); return(View(manager)); }
public void azSaveGame_ThrowArgumentNullException_IfGameIsNull() { //Arrange var mockConfiguration = GetMockConfiguration(); var azGameFileManager = new AzureGameFileManager(mockConfiguration); IGameDescriptor gameDescriptor = null; string fileName = "newGame"; //Act && Assert Assert.ThrowsException <ArgumentNullException>(() => azGameFileManager.SaveGame(gameDescriptor, fileName)); }
/// <summary> /// /// </summary> /// <param name="game"></param> /// <param name="fileName"></param> public static string SaveGame(IGameDescriptor game, string fileName) { if (game == null) { throw new ArgumentNullException("SaveGame: GameDescriptor cannot be null"); } if (string.IsNullOrWhiteSpace(fileName)) { throw new ArgumentNullException("SaveGame: File name cannot be null"); } var extension = FileSystemDI.Path.GetExtension(fileName); if (extension != GAMEFILE_EXTENSION) { if (string.IsNullOrEmpty(extension)) { fileName += GAMEFILE_EXTENSION; } else { throw new FormatException($"SaveGame: file extension {extension} is incorrect. Use xml"); } } // Initialise le Serializer System.Xml.Serialization.XmlSerializer writer = new System.Xml.Serialization.XmlSerializer(typeof(GameDescriptor)); // Créé le chemin du fichier de sauvegarde string path = GetFullPath(fileName); try { using (Stream file = FileSystemDI.FileStream.Create(path, FileMode.Create)) { writer.Serialize(file, game); file.Close(); } } catch (Exception ex) { throw new IOException("SaveGame: Unable to save the game file. Check your write access?", ex); } return(path); }
/// <summary> /// Initialise l'interface à partir d'un GameDescriptor /// </summary> /// <param name="game"></param> private void InitializeUIFromGame(IGameDescriptor game) { foreach (var townhall in game.TownHalls) { AddTownHallToUI(townhall); } foreach (var farm in game.Farms) { AddFarmToUI(farm); } foreach (var worker in game.Workers) { AddWorkerToUI(worker); } }
public static Stream GetGameDescriptorStream(this IGameDescriptor game) { Stream ReturnValue = new MemoryStream(); // MemoryStream(); // Initialise le Serializer System.Xml.Serialization.XmlSerializer writer = new System.Xml.Serialization.XmlSerializer(typeof(GameDescriptor)); try { writer.Serialize(ReturnValue, game); ReturnValue.Seek(0, SeekOrigin.Begin); } catch (Exception ex) { throw new Exception("GetGameDescriptorStream: Unable to 'Serialize' the game file.", ex); } return(ReturnValue); }
/// <summary> /// Process l'initialisation d'un nouveau GameDescriptor, /// et l'enregistrement du fichier /// </summary> /// <param name="dynamic"></param> /// <returns></returns> private MMessageModel ProcessFileSaveLastPart() { MMessageModel returnedResult = null; try { IGameDescriptor gameDescriptor = InitializeEachGameItem(_partialMessage, _gameDescriptor); gameFileManager.SaveGame(gameDescriptor, _gameName); // La partie est correctement initialisée _gameManager = new GameManager(_gameDescriptor); AttachNotificationsToGameManager(); } catch (Exception ex) { returnedResult = new MMessageModel(MessageTypes.FILESAVE_ERROR_CORRUPTED, $"{{\"status\" : \"error : {ex.Message}\"}}"); } finally { _partialMessage.Clear(); } return(returnedResult); }
public string SaveGame(IGameDescriptor game, string fileName) { string ReturnValue = string.Empty; if (game.IsGameDescriptorValidWithThrow() && fileName.IsGameFileNameValidWithThrow()) { // Create the blob client. CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); // Get reference to the blob container by passing the name by reading the value from the configuration (appsettings.json) CloudBlobContainer container = blobClient.GetContainerReference(containerName); // Get the reference to the block blob from the container CloudBlockBlob blockBlob = container.GetBlockBlobReference(fileName); ReturnValue = blockBlob.Uri.ToString(); // Upload the file blockBlob.UploadFromStream(game.GetGameDescriptorStream()); //Task.Run( async () => await blockBlob.UploadFromStreamAsync(game.GetGameDescriptorStream())); //TODO Assync } return(ReturnValue); }
public static string SaveGame(IGameDescriptor game, string fileName) { var azFileManager = new AzureGameFileManager(Config); return(azFileManager.SaveGame(game, fileName)); }
public GameDetected(IGameDescriptor game, IMetaEngine engine) { Game = game; Engine = engine; }
public static bool IsGameDescriptorValidWithThrow(this IGameDescriptor game) => (game != null) ? true : throw new ArgumentNullException("SaveGame: GameDescriptor cannot be null");
public GameSettings(IGameDescriptor game, IMetaEngine engine) { Game = game; AudioDevice = "adlib"; MetaEngine = engine; }