using System; using System.Collections; using System.Collections.Generic; using DG.Tweening; using Ichni.Menu.UI; using Ichni.RhythmGame; using Ichni.UI; using Sirenix.OdinInspector; using UnityEngine; namespace Ichni.Menu { public partial class SongSelectionManager : SerializedMonoBehaviour { public static SongSelectionManager instance; public SongSelectionUIPage songSelectionUIPage; public float currentFilterValue; public Tweener filterTweener; private void Awake() { instance = this; currentFilterValue = 100f; } } public partial class SongSelectionManager { public void SetPreview(SongItemData connectedSong, bool isLocked) { MenuAudioManager.instance.audioContainer.StopEvent("PlayPreview"); MenuAudioManager.instance.audioContainer.SetSwitch(connectedSong.songSwitch); MenuAudioManager.instance.audioContainer.PostEvent("PlayPreview"); float targetFilterValue = isLocked ? 50 : 100; if (!Mathf.Approximately(currentFilterValue, targetFilterValue)) { filterTweener.Kill(true); filterTweener = DOTween.To(() => currentFilterValue, x => currentFilterValue = x, targetFilterValue, 1f) .SetEase(Ease.OutQuad) .OnUpdate(() => { MenuAudioManager.instance.audioContainer.SetRTPC("PreviewLowPassFilter", currentFilterValue); }).Play(); } } } }