/// <summary> /// Generates a save based on the given information /// </summary> /// <param name="player">The current PlayerController being used</param> /// <param name="Position">The position of the player</param> /// <param name="map">The current active map</param> /// <returns>Returns whether or not it was successful</returns> public static bool CreateSave(string SaveName, PlayerController player, Vector2 Position, BaseMap map, GameClass targetClass, Weapon equippedWeapon) { GAMESTATE prevGameState = RenderHandler.CurrentGameState; RenderHandler.CurrentGameState = GAMESTATE.PAUSED; GameSave newSave = new GameSave(); newSave.PlayerPosition = Position; newSave.ActiveMap = map.GetType().Namespace + "." + map.GetType().Name; newSave.player = (PlayerManager)player.Manager; newSave.player.Class = targetClass; newSave.player.Inventory = new InventoryManager(); newSave.player.EquippedWeapon = equippedWeapon; newSave.player.Inventory.Items[0] = equippedWeapon; // ------------------------------------------------------------------------------------------------ File.WriteAllText(PathDirectory + SaveName, JsonConvert.SerializeObject(newSave, settings)); RenderHandler.CurrentGameState = prevGameState; // ------------------------------------------------------------------------------------------------ return(true); }
/// <summary> /// Generates a new save based on the current game state. /// Do not run this method when the game is not active. /// </summary> /// <returns> Returns whether or not if it was successful</returns> public static bool CreateSave(string SaveName) { GAMESTATE prevGameState = RenderHandler.CurrentGameState; RenderHandler.CurrentGameState = GAMESTATE.PAUSED; GameSave newSave = new GameSave(); PlayerController _player = Game.PlayerCharacter; BaseMap map = RenderHandler.selectedMap; newSave.PlayerPosition = new Vector2(_player.SpriteRectangle.X, _player.SpriteRectangle.Y); newSave.player = (PlayerManager)_player.Manager; newSave.ActiveMap = map.GetType().Namespace + "." + map.GetType().Name; // ------------------------------------------------------------------------------------------------ File.WriteAllText(PathDirectory + SaveName, JsonConvert.SerializeObject(newSave, settings)); RenderHandler.CurrentGameState = prevGameState; // ------------------------------------------------------------------------------------------------ return(true); }