51 lines
974 B
C++
51 lines
974 B
C++
#pragma once
|
|
|
|
#include <extra2d/core/module.h>
|
|
#include <string>
|
|
|
|
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
|