#pragma once #include #include namespace extra2d { /** * @brief Hello模块示例 * 展示如何创建自定义模块 */ class HelloModule : public Module { public: /** * @brief 配置结构 */ struct Cfg { std::string greeting = "Hello, Extra2D!"; int repeatCount = 1; int priority = 100; }; /** * @brief 构造函数 * @param cfg 配置 */ explicit HelloModule(const Cfg& cfg = Cfg{}); /** * @brief 析构函数 */ ~HelloModule() override; bool init() override; void shutdown() override; bool ok() const override { return initialized_; } const char* name() const override { return "hello"; } int priority() const override { return cfg_.priority; } /** * @brief 执行问候操作 */ void sayHello() const; private: Cfg cfg_; bool initialized_ = false; }; } // namespace extra2d