46 lines
841 B
C++
46 lines
841 B
C++
#pragma once
|
|
|
|
#include <types/base/types.h>
|
|
#include <string>
|
|
|
|
namespace extra2d {
|
|
|
|
/**
|
|
* @brief 模块基类
|
|
*
|
|
* 所有引擎模块都继承此类,支持自动生命周期管理
|
|
*/
|
|
class Module {
|
|
public:
|
|
virtual ~Module() = default;
|
|
|
|
/**
|
|
* @brief 模块初始化
|
|
* @return 初始化是否成功
|
|
*/
|
|
virtual bool init() { return true; }
|
|
|
|
/**
|
|
* @brief 模块更新
|
|
* @param deltaTime 帧间隔时间(秒)
|
|
*/
|
|
virtual void update(float deltaTime) {}
|
|
|
|
/**
|
|
* @brief 模块销毁
|
|
*/
|
|
virtual void shutdown() {}
|
|
|
|
/**
|
|
* @brief 获取模块名称
|
|
*/
|
|
virtual const char* getName() const = 0;
|
|
|
|
/**
|
|
* @brief 获取模块优先级(值越小越先初始化)
|
|
*/
|
|
virtual int32 getPriority() const { return 100; }
|
|
};
|
|
|
|
} // namespace extra2d
|