using System; namespace XGame.Framework.Time { /// /// 时钟,内置闹钟和定时器 /// public interface IClock : ITimeUpdate, IDisposable { /// /// 设置时间戳,用于校准时间 /// /// 时间戳,单位:毫秒 /// 时钟类型(客户端时间or服务端时间,默认服务端时间) void SetTime(long timestamp, ClockType clockTyp = ClockType.Server); /// /// 获取当前时间戳(毫秒) /// /// 时钟类型(客户端时间or服务端时间,默认服务端时间) /// long GetNowTime(ClockType clockTyp = ClockType.Server); /// /// 添加闹钟 /// /// 目标时间戳(毫秒) /// 回调 /// 时钟类型(客户端时间or服务端时间,默认服务端时间) /// 此闹钟 IAlarm AddAlarm(long triggerTimestamp, Action action, ClockType clockTyp = ClockType.Server); /// /// 添加计时器 /// /// 延时(毫秒) /// 回调 /// 此计时器 ITimer AddDelayTimer(int delay, Action action); /// /// 添加循环定时器(使用客户端时间) /// /// 循环间隔,单位:毫秒 /// 触发事件,参数为循环的次数 /// 循环次数, 默认-1(-1为无限,0和1都是1次) /// 定时器 ITimer AddLooperTimer(int delay, int interval, Action action, int loopTime = -1); } }