namespace TEngine
{
///
/// 实体接口。
///
public interface IEntity
{
///
/// 获取实体编号。
///
int Id
{
get;
}
///
/// 获取实体资源名称。
///
string EntityAssetName
{
get;
}
///
/// 获取实体实例。
///
object Handle
{
get;
}
///
/// 获取实体所属的实体组。
///
IEntityGroup EntityGroup
{
get;
}
///
/// 实体初始化。
///
/// 实体编号。
/// 实体资源名称。
/// 实体所属的实体组。
/// 是否是新实例。
/// 用户自定义数据。
void OnInit(int entityId, string entityAssetName, IEntityGroup entityGroup, bool isNewInstance, object userData);
///
/// 实体回收。
///
void OnRecycle();
///
/// 实体显示。
///
/// 用户自定义数据。
void OnShow(object userData);
///
/// 实体隐藏。
///
/// 是否是关闭实体管理器时触发。
/// 用户自定义数据。
void OnHide(bool isShutdown, object userData);
///
/// 实体附加子实体。
///
/// 附加的子实体。
/// 用户自定义数据。
void OnAttached(IEntity childEntity, object userData);
///
/// 实体解除子实体。
///
/// 解除的子实体。
/// 用户自定义数据。
void OnDetached(IEntity childEntity, object userData);
///
/// 实体附加子实体。
///
/// 被附加的父实体。
/// 用户自定义数据。
void OnAttachTo(IEntity parentEntity, object userData);
///
/// 实体解除子实体。
///
/// 被解除的父实体。
/// 用户自定义数据。
void OnDetachFrom(IEntity parentEntity, object userData);
///
/// 实体轮询。
///
/// 逻辑流逝时间,以秒为单位。
/// 真实流逝时间,以秒为单位。
void OnUpdate(float elapseSeconds, float realElapseSeconds);
}
}