using System.Collections; using System.Collections.Generic; using Lean.Pool; using UnityEngine; namespace Ichni.RhythmGame { public class TrackTotalTimeChange : AnimationBase { public FlexibleFloat totalTime; public TrackTimeSubmoduleStatic targetTrackTimeSubmoduleStatic; public static TrackTotalTimeChange GenerateElement(string elementName, Track targetTrack, FlexibleFloat totalTime) { TrackTotalTimeChange trackTotalTimeChange = LeanPool.Spawn(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); trackTotalTimeChange.NewInitialize(elementName, targetTrack); if (targetTrack.trackTimeSubmodule is TrackTimeSubmoduleStatic submoduleStatic) { trackTotalTimeChange.targetTrackTimeSubmoduleStatic = submoduleStatic; } else { throw new System.Exception("Target object does not have a TrackTimeSubmoduleStatic"); } trackTotalTimeChange.totalTime = totalTime; trackTotalTimeChange.animationReturnType = FlexibleReturnType.Before; trackTotalTimeChange.SetTimeDuration(totalTime); return trackTotalTimeChange; } protected override void UpdateAnimation(float songTime) { totalTime.UpdateFlexibleFloat(songTime); if (totalTime.returnType == FlexibleReturnType.MiddleExecuting) { targetTrackTimeSubmoduleStatic.trackTotalTime = totalTime.value; } } } }