using UnityEngine;
using UnityEngine.EventSystems;
///
/// Attach to a track's Blocks rect. On click, invokes callback with the clicked time (0-10).
///
public class TrackClickHandler : MonoBehaviour, IPointerClickHandler
{
public System.Action OnTrackClicked;
public void OnPointerClick(PointerEventData eventData)
{
if (OnTrackClicked == null) return;
var rect = GetComponent();
if (rect == null) return;
RectTransformUtility.ScreenPointToLocalPointInRectangle(rect, eventData.position, eventData.pressEventCamera, out var localPoint);
float normalizedX = Mathf.InverseLerp(rect.rect.xMin, rect.rect.xMax, localPoint.x);
float second = Mathf.Clamp(normalizedX * ProgrammedMovementsController.TimelineDurationSeconds, 0f, ProgrammedMovementsController.TimelineDurationSeconds - 0.1f);
int trackIndex = transform.parent.GetSiblingIndex();
OnTrackClicked.Invoke(trackIndex, second);
}
}