79 lines
1.3 KiB
C++
79 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include <extra2d/core/export.h>
|
|
#include <extra2d/core/module.h>
|
|
#include <string>
|
|
|
|
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
|