using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TMPro; using Starpelly; namespace RhythmHeavenMania.Editor.Track { public class TempoTimeline : MonoBehaviour { [Header("Components")] private RectTransform rectTransform; [SerializeField] private RectTransform RefTempoChange; [SerializeField] private RectTransform StartingBPM; public List tempoTimelineObjs = new List(); private void Start() { rectTransform = this.GetComponent(); for (int i = 0; i < GameManager.instance.Beatmap.tempoChanges.Count; i++) { Beatmap.TempoChange tempoChange = GameManager.instance.Beatmap.tempoChanges[i]; AddTempoChange(false, tempoChange); } } private void Update() { StartingBPM.GetChild(0).GetComponent().text = GameManager.instance.Beatmap.bpm.ToString(); if (Timeline.instance.timelineState.tempoChange && !Conductor.instance.NotStopped()) { if (RectTransformUtility.RectangleContainsScreenPoint(rectTransform, Input.mousePosition, Editor.instance.EditorCamera)) { if (Input.GetMouseButtonDown(0)) { if (tempoTimelineObjs.FindAll(c => c.hovering == true).Count == 0) { AddTempoChange(true); } } } if (RectTransformUtility.RectangleContainsScreenPoint(StartingBPM, Input.mousePosition, Editor.instance.EditorCamera)) { float increase = Input.mouseScrollDelta.y; if (Input.GetKey(KeyCode.LeftControl)) increase /= 100f; if (Input.GetKey(KeyCode.LeftShift)) increase *= 5f; GameManager.instance.Beatmap.bpm += increase; StartingBPM.transform.GetChild(0).GetComponent().text = GameManager.instance.Beatmap.bpm.ToString(); } StartingBPM.GetComponent().enabled = true; StartingBPM.GetComponent