using System.Diagnostics; using System.Collections; using System.Collections.Generic; using System; using Godot; namespace Rokojori { public enum TimeLineSpanUpdateType { Start, InSpan, End, CompletelyInside } public class TimeLineSpan { public int id; public bool persistent; public float start; public float end; public bool wasInside = false; public TimeLine timeLine; public Action callback; public float duration => end - start; public float phase { get { var position = timeLine.position; return Mathf.Clamp( ( position - start ) / duration, 0, 1 ); } } } }