geode/loader/test/main/main.cpp

125 lines
3.2 KiB
C++
Raw Normal View History

2022-10-13 06:07:37 -04:00
#include <Geode/Loader.hpp>
2023-01-14 18:00:59 -05:00
#include <Geode/loader/ModJsonTest.hpp>
2023-01-21 09:00:14 -05:00
#include <Geode/loader/ModEvent.hpp>
2023-04-07 13:07:16 -04:00
#include <Geode/utils/cocos.hpp>
2023-04-03 03:04:56 -04:00
#include "../dependency/main.hpp"
2022-07-30 12:24:03 -04:00
using namespace geode::prelude;
2022-07-30 12:24:03 -04:00
auto test = []() {
log::info("Static logged");
return 0;
};
2022-07-30 12:24:03 -04:00
// Exported functions
$on_mod(Enabled) {
log::info("Enabled");
2022-07-30 12:24:03 -04:00
}
$on_mod(Disabled) {
log::info("Disabled");
2022-07-30 12:24:03 -04:00
}
$on_mod(Loaded) {
log::info("Loaded");
2022-07-30 12:24:03 -04:00
}
$on_mod(Unloaded) {
log::info("Unloaded");
2022-07-30 12:24:03 -04:00
}
2023-04-03 03:04:56 -04:00
// Events
$execute {
new EventListener<TestEventFilter>(+[](TestEvent* event) {
log::info("Received event: {}", event->getData());
});
}
2023-04-07 13:07:16 -04:00
#include <Geode/modify/MenuLayer.hpp>
struct $modify(MenuLayer) {
bool init() {
if (!MenuLayer::init())
return false;
auto node = CCNode::create();
auto ref = WeakRef(node);
log::info("ref: {}", ref.lock().data());
node->release();
log::info("ref: {}", ref.lock().data());
return true;
}
};
2022-07-30 12:24:03 -04:00
// Modify
#include <Geode/modify/GJGarageLayer.hpp>
struct GJGarageLayerTest : Modify<GJGarageLayerTest, GJGarageLayer> {
GJGarageLayerTest() : myValue(1907) {}
int myValue;
std::string myString = "yeah have fun finding a better thing for this";
bool init() {
if (!GJGarageLayer::init()) return false;
auto label = CCLabelBMFont::create("Modify works!", "bigFont.fnt");
label->setPosition(100, 110);
label->setScale(.4f);
label->setZOrder(99999);
addChild(label);
if (m_fields->myValue == 1907 && m_fields->myString != "") {
auto label = CCLabelBMFont::create("Field default works!", "bigFont.fnt");
label->setPosition(100, 100);
label->setScale(.4f);
label->setZOrder(99999);
addChild(label);
}
// Saved Values
auto timesOpened = Mod::get()->getSavedValue<int64_t>("times-opened", 0);
Mod::get()->setSavedValue("times-opened", timesOpened + 1);
auto label2 = CCLabelBMFont::create(
fmt::format("Times opened: {}", timesOpened).c_str(),
"bigFont.fnt"
);
label2->setPosition(100, 90);
label2->setScale(.4f);
label2->setZOrder(99999);
addChild(label2);
// Dispatch system pt. 1
// auto fn = Dispatcher::get()->getFunction<void(GJGarageLayer*)>("test-garage-open");
// fn(this);
return true;
}
2022-07-30 12:24:03 -04:00
};
/*// Event system pt. 2
int a = (0, []() {
Dispatcher::get()->addSelector("test-garage-open", [](GJGarageLayer* gl) {
auto label = CCLabelBMFont::create("EventCenter works!", "bigFont.fnt");
label->setPosition(100, 80);
label->setScale(.4f);
label->setZOrder(99999);
gl->addChild(label);
2022-07-30 12:24:03 -04:00
TestDependency::depTest(gl);
});
2022-07-30 12:24:03 -04:00
// Event system pt. 2
// $observe("test-garage-open", GJGarageLayer*, evt) {
// auto gl = evt.object();
// auto label = CCLabelBMFont::create("EventCenter works!", "bigFont.fnt");
// label->setPosition(100, 80);
// label->setScale(.4f);
// label->setZOrder(99999);
// gl->addChild(label);
// // API pt. 2
// TestDependency::depTest(gl);
// }
return 0;
2022-07-30 12:24:03 -04:00
}());*/