private IEnumerator SaveSlotButton_AnimateToSlotState(On.UnityEngine.UI.SaveSlotButton.orig_AnimateToSlotState orig, SaveSlotButton self, SlotState nextState) { yield return(orig(self, nextState)); //probably a better way to wait for the transition to end but good enough TM yield return(new WaitForSeconds(0.8f)); string filepath = Application.persistentDataPath + GetLockFilename((int)self.saveSlot); if (File.Exists(filepath)) { self.clearSaveButton.alpha = 0; self.clearSaveButton.interactable = false; self.clearSaveButton.gameObject.SetActive(false); self.StartCoroutine(_uim.FadeOutCanvasGroup(self.clearSaveButton)); } yield break; }
public void Update() { if (scene != Constants.MENU_SCENE) { return; } float t = Time.realtimeSinceStartup; if (_uim.menuState != MainMenuState.SAVE_PROFILES) { MoreSaves.PageLabel.CrossFadeAlpha(0, 0.25f, false); return; } _ih = _ih ? _ih : _uim.GetAttr <UIManager, InputHandler>("ih"); HeroActions heroActions = _ih.inputActions; bool updateSaves = false; bool holdingLeft = heroActions.paneLeft.IsPressed; bool holdingRight = heroActions.paneRight.IsPressed; bool pressedDN = heroActions.dreamNail.WasPressed; if (pressedDN) { if (_selectedSaveSlot != null) { string filepath = Application.persistentDataPath + GetLockFilename((int)_selectedSaveSlot.saveSlot); if (File.Exists(filepath)) { _selectedSaveSlot.StartCoroutine(_uim.FadeInCanvasGroup(_selectedSaveSlot.clearSaveButton)); File.Delete(filepath); } else { _selectedSaveSlot.StartCoroutine(_uim.FadeOutCanvasGroup(_selectedSaveSlot.clearSaveButton)); FileStream fs = File.Create(filepath); fs.Close(); } } } if (heroActions.paneRight.WasPressed && t - _lastInput > 0.05f) { _firstInput = t; _queueRight++; } if (heroActions.paneLeft.WasPressed && t - _lastInput > 0.05f) { _firstInput = t; _queueLeft++; } if (_queueRight == 0 && holdingRight && t - _firstInput > INPUT_WINDOW) { _queueRight = 1; } if (_queueLeft == 0 && holdingLeft && t - _firstInput > INPUT_WINDOW) { _queueLeft = 1; } if (_pagesHidden || !_pagesHidden && t - _lastPageTransition > TRANSISTION_TIME) { if (_queueRight > 0 && t - _lastInput > INPUT_WINDOW / 2) { _lastInput = t; _currentPage += _queueRight; _queueRight = 0; updateSaves = true; } if (_queueLeft > 0 && t - _lastInput > INPUT_WINDOW / 2) { _lastInput = t; _currentPage -= _queueLeft; _queueLeft = 0; updateSaves = true; } _currentPage %= _maxPages; if (_currentPage < 0) { _currentPage = _maxPages - 1; } MoreSaves.PageLabel.text = $"Page {_currentPage + 1}/{_maxPages}"; } if (!_pagesHidden && updateSaves && t - _lastPageTransition > TRANSISTION_TIME) { _lastPageTransition = t; _pagesHidden = true; HideAllSaves(); } if (_pagesHidden && t - _lastInput > INPUT_WINDOW && t - _lastPageTransition > TRANSISTION_TIME) { _lastPageTransition = t; _pagesHidden = false; ShowAllSaves(); } if (t - _lastPageTransition < TRANSISTION_TIME * 2) { return; } if (_pagesHidden || Slots.All(x => x.state != HIDDEN)) { MoreSaves.PageLabel.CrossFadeAlpha(1, 0.25f, false); } else { MoreSaves.PageLabel.CrossFadeAlpha(0, 0.25f, false); } }