Extra2D/examples/hello_module/hello_module.h

51 lines
974 B
C
Raw Normal View History

#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