Extra2D/include/module/module.h

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