From e77fe832f0febbe9520c5bfad5523a6f526a9e8b Mon Sep 17 00:00:00 2001 From: MartinOpat Date: Sat, 22 Nov 2025 23:36:14 +0100 Subject: [PATCH] (wip) Added c++ test file --- evolve-die-repeat/thirdparty/src/test.cpp | 56 +++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 evolve-die-repeat/thirdparty/src/test.cpp diff --git a/evolve-die-repeat/thirdparty/src/test.cpp b/evolve-die-repeat/thirdparty/src/test.cpp new file mode 100644 index 0000000..16bff10 --- /dev/null +++ b/evolve-die-repeat/thirdparty/src/test.cpp @@ -0,0 +1,56 @@ + +#include +#include +#include +#include +#include + +using namespace godot; + +class Test : public RefCounted { + GDCLASS(Test, RefCounted); + + int counter = 0; + + static void _bind_methods() { + ClassDB::bind_method(D_METHOD("increment"), &Test::increment); + ClassDB::bind_method(D_METHOD("get_counter"), &Test::get_counter); + ClassDB::bind_method(D_METHOD("set_counter", "value"), &Test::set_counter); + ClassDB::add_property("Test", PropertyInfo(Variant::INT, "counter"), + "set_counter", "get_counter"); + } + +public: + int increment() { + counter += 1; + return counter; + } + + int get_counter() const { return counter; } + + void set_counter(int p_value) { counter = p_value; } +}; + +extern "C" GDExtensionBool GDE_EXPORT +gol_library_init(GDExtensionInterfaceGetProcAddress get_proc_address, + GDExtensionClassLibraryPtr library, + GDExtensionInitialization *r_initialization) { + + static GDExtensionBinding::InitObject init(get_proc_address, library, + r_initialization); + + init.register_initializer([](ModuleInitializationLevel p_level) { + if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) { + return; + } + ClassDB::register_class(); + }); + + init.register_terminator([](ModuleInitializationLevel /*p_level*/) { + // no-op + }); + + init.set_minimum_library_initialization_level( + MODULE_INITIALIZATION_LEVEL_SCENE); + return init.init(); +}