Extra2D/examples/hello_module/hello_module.h

79 lines
1.3 KiB
C
Raw Normal View History

#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