Files
ichni_Official/Assets/Scripts/Menu/SongSelection/SongSelectionManager.cs

68 lines
2.1 KiB
C#
Raw Normal View History

2025-06-13 14:59:58 -04:00
using System;
2025-06-06 10:14:55 -04:00
using System.Collections;
using System.Collections.Generic;
2025-07-26 04:20:25 -04:00
using DG.Tweening;
2025-07-08 14:28:40 -04:00
using Ichni.Menu.UI;
2025-06-13 14:59:58 -04:00
using Ichni.RhythmGame;
2025-06-14 14:42:49 -04:00
using Ichni.UI;
2025-06-13 14:59:58 -04:00
using Sirenix.OdinInspector;
2026-03-14 03:13:10 -04:00
using SLSUtilities.WwiseAssistance;
2025-06-06 10:14:55 -04:00
using UnityEngine;
2025-06-13 14:59:58 -04:00
namespace Ichni.Menu
2025-06-06 10:14:55 -04:00
{
2025-06-13 14:59:58 -04:00
public partial class SongSelectionManager : SerializedMonoBehaviour
2025-06-06 10:14:55 -04:00
{
2025-06-13 14:59:58 -04:00
public static SongSelectionManager instance;
2025-06-14 14:42:49 -04:00
public SongSelectionUIPage songSelectionUIPage;
2025-07-26 04:20:25 -04:00
public float currentFilterValue;
public Tweener filterTweener;
2025-06-13 14:59:58 -04:00
2026-03-14 03:13:10 -04:00
private uint _playPreviewPlayingID;
2025-06-13 14:59:58 -04:00
private void Awake()
{
instance = this;
2025-07-26 04:20:25 -04:00
currentFilterValue = 100f;
2026-03-14 03:13:10 -04:00
_playPreviewPlayingID = AkUnitySoundEngine.AK_INVALID_PLAYING_ID;
2025-06-13 14:59:58 -04:00
}
2025-06-06 10:14:55 -04:00
}
2025-06-13 14:59:58 -04:00
public partial class SongSelectionManager
2025-06-06 10:14:55 -04:00
{
2025-07-26 04:20:25 -04:00
public void SetPreview(SongItemData connectedSong, bool isLocked)
{
2026-03-14 03:13:10 -04:00
if(_playPreviewPlayingID != AkUnitySoundEngine.AK_INVALID_PLAYING_ID)
{
AudioManager.Stop(_playPreviewPlayingID);
}
AudioManager.SetSwitch(connectedSong.songSwitch);
_playPreviewPlayingID = AudioManager.Post(AK.EVENTS.PLAYPREVIEW);
2025-06-13 14:59:58 -04:00
2025-07-26 04:20:25 -04:00
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(() =>
{
2026-03-14 03:13:10 -04:00
AudioManager.SetRTPC("PreviewLowPassFilter", currentFilterValue);
2025-07-26 04:20:25 -04:00
}).Play();
}
}
2026-03-14 03:13:10 -04:00
public void StopPreviewSong()
{
if(_playPreviewPlayingID != AkUnitySoundEngine.AK_INVALID_PLAYING_ID)
{
AudioManager.Stop(_playPreviewPlayingID);
_playPreviewPlayingID = AkUnitySoundEngine.AK_INVALID_PLAYING_ID;
}
}
2025-06-06 10:14:55 -04:00
}
2025-06-13 14:59:58 -04:00
}