HeavenStudioPlus/Assets/Scripts/UI/Overlays/ChartSectionDisplay.cs

56 lines
1.8 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TMPro;
using HeavenStudio.Editor;
using Jukebox;
using Jukebox.Legacy;
namespace HeavenStudio.Common
{
public class ChartSectionDisplay : MonoBehaviour
{
[SerializeField] private TMP_Text SectionText;
[SerializeField] private Slider SectionProgress;
// Start is called before the first frame update
void Start()
{
GameManager.instance.onSectionChange += OnSectionChange;
GameManager.instance.onBeatChanged += OnBeatChanged;
gameObject.SetActive(GameManager.instance.currentSection != null);
}
// Update is called once per frame
void Update()
{
SectionProgress.value = (float) GameManager.instance.sectionProgress;
}
public void OnBeatChanged(double beat)
{
gameObject.SetActive(GameManager.instance.currentSection != null);
SectionProgress.value = (float) GameManager.instance.sectionProgress;
}
public void OnSectionChange(RiqEntity section)
{
if (section != null)
{
gameObject.SetActive(true);
SectionText.text = section["sectionName"];
SectionProgress.value = (float) GameManager.instance.sectionProgress;
if (PersistentDataManager.gameSettings.perfectChallengeType == PersistentDataManager.PerfectChallengeType.Off) return;
if (!OverlaysManager.OverlaysEnabled) return;
if (section["startPerfect"] && GoForAPerfect.instance != null && GoForAPerfect.instance.perfect && !GoForAPerfect.instance.gameObject.activeSelf)
{
GoForAPerfect.instance.Enable(section.beat);
}
}
}
}
}