rj-action-library/Runtime/Time/TImeLineManager_Scheduling.cs

76 lines
2.3 KiB
C#

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 );
}
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 );
}
}
}