2026-02-15 17:00:39 +08:00
|
|
|
#include "hello_module.h"
|
2026-02-16 09:29:11 +08:00
|
|
|
#include <extra2d/core/module_macros.h>
|
2026-02-15 17:00:39 +08:00
|
|
|
#include <extra2d/utils/logger.h>
|
|
|
|
|
|
|
|
|
|
namespace extra2d {
|
|
|
|
|
|
2026-02-15 20:13:18 +08:00
|
|
|
HelloModule::HelloModule()
|
|
|
|
|
: Module()
|
|
|
|
|
, config_()
|
|
|
|
|
, time_(0.0f) {
|
2026-02-15 17:00:39 +08:00
|
|
|
}
|
|
|
|
|
|
2026-02-15 20:13:18 +08:00
|
|
|
HelloModule::~HelloModule() {
|
|
|
|
|
if (isInitialized()) {
|
|
|
|
|
destroyModule();
|
2026-02-15 17:00:39 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-02-15 20:13:18 +08:00
|
|
|
void HelloModule::setupModule() {
|
|
|
|
|
if (isInitialized()) {
|
|
|
|
|
return;
|
2026-02-15 17:00:39 +08:00
|
|
|
}
|
|
|
|
|
|
2026-02-15 20:13:18 +08:00
|
|
|
if (config_.greeting.empty()) {
|
|
|
|
|
config_.greeting = "Hello, Extra2D!";
|
2026-02-15 17:00:39 +08:00
|
|
|
}
|
|
|
|
|
|
2026-02-15 20:13:18 +08:00
|
|
|
if (config_.repeatCount <= 0) {
|
|
|
|
|
config_.repeatCount = 1;
|
2026-02-15 17:00:39 +08:00
|
|
|
}
|
2026-02-15 20:13:18 +08:00
|
|
|
|
|
|
|
|
setInitialized(true);
|
2026-02-15 17:00:39 +08:00
|
|
|
|
|
|
|
|
E2D_LOG_INFO("HelloModule initialized");
|
|
|
|
|
E2D_LOG_INFO(" Greeting: {}", config_.greeting);
|
|
|
|
|
E2D_LOG_INFO(" Repeat Count: {}", config_.repeatCount);
|
|
|
|
|
E2D_LOG_INFO(" Logging Enabled: {}", config_.enableLogging);
|
2026-02-15 20:13:18 +08:00
|
|
|
|
2026-02-15 17:00:39 +08:00
|
|
|
sayHello();
|
|
|
|
|
}
|
|
|
|
|
|
2026-02-15 20:13:18 +08:00
|
|
|
void HelloModule::destroyModule() {
|
|
|
|
|
if (!isInitialized()) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2026-02-15 17:00:39 +08:00
|
|
|
if (config_.enableLogging) {
|
|
|
|
|
E2D_LOG_INFO("HelloModule shutdown - Goodbye!");
|
|
|
|
|
}
|
2026-02-15 20:13:18 +08:00
|
|
|
|
|
|
|
|
setInitialized(false);
|
2026-02-15 17:00:39 +08:00
|
|
|
}
|
|
|
|
|
|
2026-02-15 20:13:18 +08:00
|
|
|
void HelloModule::onUpdate(UpdateContext& ctx) {
|
|
|
|
|
if (!isInitialized()) {
|
|
|
|
|
ctx.next();
|
|
|
|
|
return;
|
2026-02-15 17:00:39 +08:00
|
|
|
}
|
2026-02-15 20:13:18 +08:00
|
|
|
|
|
|
|
|
time_ += ctx.getDeltaTime();
|
|
|
|
|
|
|
|
|
|
if (time_ >= 5.0f) {
|
|
|
|
|
sayHello();
|
|
|
|
|
time_ = 0.0f;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ctx.next();
|
2026-02-15 17:00:39 +08:00
|
|
|
}
|
|
|
|
|
|
2026-02-15 20:13:18 +08:00
|
|
|
void HelloModule::sayHello() const {
|
|
|
|
|
if (!config_.enableLogging) {
|
2026-02-15 17:00:39 +08:00
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2026-02-15 20:13:18 +08:00
|
|
|
for (int i = 0; i < config_.repeatCount; ++i) {
|
|
|
|
|
E2D_LOG_INFO("[HelloModule] {}", config_.greeting);
|
|
|
|
|
}
|
2026-02-15 17:00:39 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} // namespace extra2d
|
2026-02-16 09:29:11 +08:00
|
|
|
|
|
|
|
|
E2D_MODULE(HelloModule, 1000)
|