#pragma once #include #include #include namespace extra2d { /** * @brief Hello模块配置数据结构 */ struct HelloModuleConfigData { std::string greeting = "Hello, Extra2D!"; int repeatCount = 1; bool enableLogging = true; }; /** * @brief Hello模块 * * 这是一个简单的自定义模块示例,展示如何: * 1. 继承 Module 基类 * 2. 实现生命周期方法 * 3. 使用 E2D_MODULE 宏自动注册模块 */ class HelloModule : public Module { public: /** * @brief 构造函数 */ HelloModule(); /** * @brief 析构函数 */ ~HelloModule() override; /** * @brief 获取模块名称 */ const char *getName() const override { return "HelloModule"; } /** * @brief 获取模块优先级 */ int getPriority() const override { return 1000; } /** * @brief 设置模块 */ void setupModule() override; /** * @brief 销毁模块 */ void destroyModule() override; /** * @brief 更新时 */ void onUpdate(UpdateContext &ctx) override; /** * @brief 设置配置 */ void setConfig(const HelloModuleConfigData &config) { config_ = config; } /** * @brief 执行问候操作 */ void sayHello() const; private: HelloModuleConfigData config_; float time_ = 0.0f; }; } // namespace extra2d