/// <summary>Initiate a game save.</summary> public void BeginSaveData() { // save game data Farm farm = Game1.getFarm(); if (farm.shippingBin.Any()) { Game1.activeClickableMenu = new NewShippingMenu(farm.shippingBin, this.Reflection); farm.shippingBin.Clear(); farm.lastItemShipped = null; this.WaitingToSave = true; } else { this.currentSaveMenu = new NewSaveGameMenu(); this.currentSaveMenu.SaveComplete += this.CurrentSaveMenu_SaveComplete; Game1.activeClickableMenu = this.currentSaveMenu; } // save data to disk PlayerData data = new PlayerData { Time = Game1.timeOfDay, Characters = this.GetPositions().ToArray(), IsCharacterSwimming = Game1.player.swimming.Value }; this.Helper.Data.WriteJsonFile(this.RelativeDataPath, data); // clear any legacy data (no longer needed as backup) this.RemoveLegacyDataForThisPlayer(); }
/// <summary>Perform any required update logic.</summary> public void Update() { // perform passive save if (this.WaitingToSave && Game1.activeClickableMenu == null) { currentSaveMenu = new NewSaveGameMenu(); currentSaveMenu.SaveComplete += CurrentSaveMenu_SaveComplete; Game1.activeClickableMenu = currentSaveMenu; this.WaitingToSave = false; } }
/// <summary>Initiate a game save.</summary> public void BeginSaveData() { // save game data Farm farm = Game1.getFarm(); if (farm.shippingBin.Any()) { Game1.activeClickableMenu = new NewShippingMenu(farm.shippingBin, this.Reflection); farm.shippingBin.Clear(); farm.lastItemShipped = null; this.WaitingToSave = true; } else { currentSaveMenu = new NewSaveGameMenu(); currentSaveMenu.SaveComplete += CurrentSaveMenu_SaveComplete; Game1.activeClickableMenu = currentSaveMenu; } // get data PlayerData data = new PlayerData { Time = Game1.timeOfDay, Characters = this.GetPositions().ToArray(), IsCharacterSwimming = Game1.player.swimming.Value }; // save to disk // ReSharper disable once PossibleNullReferenceException -- not applicable Directory.CreateDirectory(new FileInfo(this.SavePath).Directory.FullName); this.Helper.WriteJsonFile(this.SavePath, data); // clear any legacy data (no longer needed as backup)1 this.RemoveLegacyDataForThisPlayer(); }
public override void update(GameTime time) { if (this.quit) { return; } //base.update(time); if (Game1.client != null && Game1.client.timedOut) { this.quit = true; if (!Game1.activeClickableMenu.Equals((object)this)) { return; } Game1.player.checkForLevelTenStatus(); Game1.exitActiveMenu(); } else { TimeSpan elapsedGameTime; if (this.loader != null) { this.loader.MoveNext(); if (this.loader.Current >= 100) { int num = this.margin; elapsedGameTime = time.ElapsedGameTime; int milliseconds = elapsedGameTime.Milliseconds; this.margin = num - milliseconds; if (this.margin <= 0) { this.complete(); } } double num1 = (double)this._ellipsisDelay; elapsedGameTime = time.ElapsedGameTime; double totalSeconds = elapsedGameTime.TotalSeconds; this._ellipsisDelay = (float)(num1 - totalSeconds); if ((double)this._ellipsisDelay <= 0.0) { this._ellipsisDelay = this._ellipsisDelay + 0.75f; this._ellipsisCount = this._ellipsisCount + 1; if (this._ellipsisCount > 3) { this._ellipsisCount = 1; } } } else if (this.hasDrawn && this.completePause == -1) { Game1.game1.IsSaving = true; if (Game1.IsMasterGame) { if (Game1.saveOnNewDay) { this.loader = SaveGame.Save(); } else { this.margin = -1; this.complete(); } } else { NewSaveGameMenu.saveClientOptions(); this.complete(); } } if (this.completePause < 0) { return; } int num2 = this.completePause; elapsedGameTime = time.ElapsedGameTime; int milliseconds1 = elapsedGameTime.Milliseconds; this.completePause = num2 - milliseconds1; this.saveText.update(time); if (this.completePause >= 0) { return; } this.quit = true; this.completePause = -9999; if (Game1.activeClickableMenu.Equals((object)this)) { Game1.player.checkForLevelTenStatus(); Game1.exitActiveMenu(); } Game1.currentLocation.resetForPlayerEntry(); } }
/// <summary> /// Event function for NewSaveGameMenu event SaveComplete /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void CurrentSaveMenu_SaveComplete(object sender, EventArgs e) { currentSaveMenu.SaveComplete -= CurrentSaveMenu_SaveComplete; currentSaveMenu = null; //AfterSave.Invoke(this, EventArgs.Empty); }