2025-01-19 20:35:51 +00:00
|
|
|
|
|
|
|
using System.Diagnostics;
|
|
|
|
using System.Collections;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
using System;
|
|
|
|
using Godot;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Rokojori
|
|
|
|
{
|
|
|
|
public partial class TimeLineManager:NetworkNode
|
|
|
|
{
|
|
|
|
public static void RemoveEvent( TimeLine timeline, int id )
|
|
|
|
{
|
|
|
|
timeline = TimeLineManager.Ensure( timeline );
|
|
|
|
var runner = timeline.runner;
|
|
|
|
|
|
|
|
runner.RemoveEvent( id );
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2025-01-21 20:58:56 +00:00
|
|
|
public static TimeLineCallback ScheduleCallback( TimeLine timeline, System.Action<TimeLineCallback> callback )
|
|
|
|
{
|
|
|
|
timeline = TimeLineManager.Ensure( timeline );
|
|
|
|
var runner = timeline.runner;
|
|
|
|
var eventID = TimeLineManager.CreateID();
|
|
|
|
|
|
|
|
return runner._ScheduleCallback( callback, eventID );
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2025-01-19 20:35:51 +00:00
|
|
|
public static TimeLineEvent ScheduleEvent( TimeLine timeline, float position, Action<TimeLineEvent> callback )
|
|
|
|
{
|
|
|
|
timeline = TimeLineManager.Ensure( timeline );
|
|
|
|
var runner = timeline.runner;
|
|
|
|
var eventID = TimeLineManager.CreateID();
|
|
|
|
|
|
|
|
return runner._ScheduleEvent( position, eventID, false, callback );
|
|
|
|
}
|
|
|
|
|
|
|
|
public static TimeLineEvent ScheduleEventIn( TimeLine timeline, float offset, Action<TimeLineEvent> callback )
|
|
|
|
{
|
|
|
|
timeline = TimeLineManager.Ensure( timeline );
|
|
|
|
var runner = timeline.runner;
|
|
|
|
var position = timeline.position + offset;
|
|
|
|
var eventID = TimeLineManager.CreateID();
|
|
|
|
|
|
|
|
return runner._ScheduleEvent( position, eventID, false, callback );
|
|
|
|
}
|
|
|
|
|
|
|
|
public static TimeLineEvent ScheduleLoopEvent( TimeLine timeline, float duration, float offset, Action<TimeLineEvent> callback )
|
|
|
|
{
|
|
|
|
timeline = TimeLineManager.Ensure( timeline );
|
|
|
|
var runner = timeline.runner;
|
|
|
|
var eventID = TimeLineManager.CreateID();
|
|
|
|
|
|
|
|
return runner._ScheduleLoopEvent( duration, offset, eventID, false, callback );
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static TimeLineSpan ScheduleSpan( TimeLine timeline, float start, float end, Action<TimeLineSpan,TimeLineSpanUpdateType> callback )
|
|
|
|
{
|
|
|
|
timeline = TimeLineManager.Ensure( timeline );
|
|
|
|
var runner = timeline.runner;
|
|
|
|
var spanID = TimeLineManager.CreateID();
|
|
|
|
var duration = end - start;
|
|
|
|
|
|
|
|
return runner._ScheduleSpan( start, end, spanID, false, callback );
|
|
|
|
}
|
|
|
|
|
|
|
|
public static TimeLineSpan ScheduleSpanIn( TimeLine timeline, float delay, float duration, Action<TimeLineSpan,TimeLineSpanUpdateType> callback )
|
|
|
|
{
|
|
|
|
timeline = TimeLineManager.Ensure( timeline );
|
|
|
|
var runner = timeline.runner;
|
|
|
|
|
|
|
|
var start = timeline.position + delay;
|
|
|
|
var end = start + duration;
|
|
|
|
|
|
|
|
var spanID = TimeLineManager.CreateID();
|
|
|
|
|
|
|
|
return runner._ScheduleSpan( start, end, spanID, false, callback );
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|