#pragma once #include #include 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