/// <summary>Perform any required update logic.</summary> public void Update() { // perform passive save if (this.WaitingToSave && Game1.activeClickableMenu == null) { this.currentSaveMenu = new NewSaveGameMenuV2(); this.currentSaveMenu.SaveComplete += this.CurrentSaveMenu_SaveComplete; Game1.activeClickableMenu = this.currentSaveMenu; this.WaitingToSave = false; } }
/// <summary>Event function for NewSaveGameMenu event SaveComplete</summary> /// <param name="sender">The event sender.</param> /// <param name="e">The event arguments.</param> private void CurrentSaveMenu_SaveComplete(object sender, EventArgs e) { this.currentSaveMenu.SaveComplete -= this.CurrentSaveMenu_SaveComplete; this.currentSaveMenu = null; SaveAnywhere.RestoreMonsters(); if (this.afterSave != null) { this.afterSave.Invoke(this, EventArgs.Empty); } foreach (var v in this.afterCustomSavingCompleted) { v.Value.Invoke(); } }
/// <summary>Initiate a game save.</summary> public void BeginSaveData() { if (this.beforeSave != null) { this.beforeSave.Invoke(this, EventArgs.Empty); } foreach (var v in this.beforeCustomSavingBegins) { v.Value.Invoke(); } SaveAnywhere.Instance.cleanMonsters(); // save game data Farm farm = Game1.getFarm(); if (farm.getShippingBin(Game1.player) != null) { //Game1.activeClickableMenu = new NewShippingMenu(farm.getShippingBin(Game1.player), this.Reflection); Game1.activeClickableMenu = new NewShippingMenuV2(farm.getShippingBin(Game1.player)); //farm.getShippingBin(Game1.player).Clear(); farm.lastItemShipped = null; this.WaitingToSave = true; } else { this.currentSaveMenu = new NewSaveGameMenuV2(); 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(); }
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 { NewSaveGameMenuV2.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(); } }