using System; using System.Collections; using System.Collections.Generic; using DG.Tweening; using Ichni.Editor; using Michsky.MUIP; using TMPro; using UnityEngine; using UnityEngine.UI; namespace Ichni.StartMenu { public partial class EditorSettingsPage : StartMenuPage { public EditorSettings editorSettings; public TMP_InputField autoSaveIntervalInputField, autoSaveCountInputField; public SliderManager musicVolumeSlider, sfxVolumeSlider; public SliderManager frameRateSlider; public Button exitButton; private void InitializePage() { EditorSettings.LoadSettings(ref editorSettings); autoSaveIntervalInputField.text = editorSettings.autoSaveInterval.ToString(); autoSaveCountInputField.text = editorSettings.maximumAutoSaveCount.ToString(); musicVolumeSlider.mainSlider.value = editorSettings.musicVolume; sfxVolumeSlider.mainSlider.value = editorSettings.soundFXVolume; frameRateSlider.mainSlider.value = editorSettings.frameRate; } } public partial class EditorSettingsPage { protected override void InitializeAnimations() { fadeIn = DOTween.Sequence(); fadeOut = DOTween.Sequence(); fadeIn.Join(canvasGroup.DOFade(1f, 0.5f)) .SetEase(Ease.InOutQuad) .SetAutoKill(false) .OnStart(InitializePage) .OnComplete(() => { canvasGroup.interactable = true; canvasGroup.blocksRaycasts = true; }).Pause(); fadeOut.Join(canvasGroup.DOFade(0f, 0.5f)) .SetEase(Ease.InOutQuad) .SetAutoKill(false) .OnPlay(() => { canvasGroup.interactable = false; canvasGroup.blocksRaycasts = false; }) .OnComplete(() => { StartMenuManager.instance.startPage.fadeIn.Restart(); }) .Pause(); } protected override void InitializeUI() { exitButton.onClick.AddListener(() => { SetSettings(); fadeOut.Restart(); }); } private void SetSettings() { editorSettings.autoSaveInterval = int.Parse(autoSaveIntervalInputField.text); editorSettings.maximumAutoSaveCount = int.Parse(autoSaveCountInputField.text); editorSettings.musicVolume = (int)musicVolumeSlider.mainSlider.value; editorSettings.soundFXVolume = (int)sfxVolumeSlider.mainSlider.value; editorSettings.frameRate = (int)frameRateSlider.mainSlider.value; EditorSettings.SaveSettings(editorSettings); } } }