using IFramework.Coroutine;
using IFramework.Inject;
using IFramework.Message;
using IFramework.Recorder;
using IFramework.Timer;
using System;
namespace IFramework
{
///
/// 模块组
///
public interface IModules : IContainer, IBelongToEnvironment
{
///
/// 协程
///
ICoroutineModule coroutine { get; }
///
/// 消息
///
IMessageModule message { get; }
///
/// 消息(string 版本)
///
IStringMessageModule stringMessage { get; }
///
/// 操作记录
///
IOperationRecorderModule recoder { get; }
///
/// 注入模块
///
IInjectModule inject { get; }
///
/// 计时器
///
ITimerModule timer { get; }
///
/// 创建模块
///
///
///
///
///
Module CreateModule(Type type, string name = Module.defaultName, int priority = 0);
///
/// 创建模块
///
///
///
///
///
T CreateModule(string name = Module.defaultName, int priority = 0) where T : Module;
///
/// 获取模块
///
///
///
///
///
Module GetModule(Type type, string name = Module.defaultName, int priority = 0);
///
/// 获取模块
///
///
///
///
///
T GetModule(string name = Module.defaultName, int priority = 0) where T : Module;
///
/// 查找模块
///
///
///
///
Module FindModule(Type type, string name = Module.defaultName);
///
/// 查找模块
///
///
///
///
T FindModule(string name = Module.defaultName) where T : Module;
}
}