//------------------------------------------------------------ // Game Framework // Copyright © 2013-2021 loyalsoft. All rights reserved. // Homepage: http://www.game7000.com/ // Feedback: http://www.game7000.com/ //------------------------------------------------------------ using System; namespace GameFramework.Event { /// /// 事件管理器接口。 /// public interface IEventManager { /// /// 获取事件处理函数的数量。 /// int EventHandlerCount { get; } /// /// 获取事件数量。 /// int EventCount { get; } /// /// 获取事件处理函数的数量。 /// /// 事件类型编号。 /// 事件处理函数的数量。 int Count(int id); /// /// 检查是否存在事件处理函数。 /// /// 事件类型编号。 /// 要检查的事件处理函数。 /// 是否存在事件处理函数。 bool Check(int id, EventHandler handler); /// /// 订阅事件处理函数。 /// /// 事件类型编号。 /// 要订阅的事件处理函数。 void Subscribe(int id, EventHandler handler); /// /// 取消订阅事件处理函数。 /// /// 事件类型编号。 /// 要取消订阅的事件处理函数。 void Unsubscribe(int id, EventHandler handler); /// /// 设置默认事件处理函数。 /// /// 要设置的默认事件处理函数。 void SetDefaultHandler(EventHandler handler); /// /// 抛出事件,这个操作是线程安全的,即使不在主线程中抛出,也可保证在主线程中回调事件处理函数,但事件会在抛出后的下一帧分发。 /// /// 事件源。 /// 事件参数。 void Fire(object sender, GameEventArgs e); /// /// 抛出事件立即模式,这个操作不是线程安全的,事件会立刻分发。 /// /// 事件源。 /// 事件参数。 void FireNow(object sender, GameEventArgs e); } }