Add an example class and some demo code to the project.

This commit is contained in:
Lukas Tenbrink
2025-04-14 18:55:50 +02:00
parent 7ef3bea224
commit 65ca91beec
6 changed files with 65 additions and 1 deletions

9
src/example_class.cpp Normal file
View File

@@ -0,0 +1,9 @@
#include "example_class.h"
void ExampleClass::_bind_methods() {
godot::ClassDB::bind_method(D_METHOD("print_type", "variant"), &ExampleClass::print_type);
}
void ExampleClass::print_type(const Variant &p_variant) const {
print_line(vformat("Type: %d", p_variant.get_type()));
}

20
src/example_class.h Normal file
View File

@@ -0,0 +1,20 @@
#pragma once
#include "godot_cpp/classes/ref_counted.hpp"
#include "godot_cpp/classes/wrapped.hpp"
#include "godot_cpp/variant/variant.hpp"
using namespace godot;
class ExampleClass : public RefCounted {
GDCLASS(ExampleClass, RefCounted)
protected:
static void _bind_methods();
public:
ExampleClass() = default;
~ExampleClass() override = default;
void print_type(const Variant &p_variant) const;
};

View File

@@ -1,9 +1,12 @@
#include "register_types.h"
#include <gdextension_interface.h>
#include <godot_cpp/core/class_db.hpp>
#include <godot_cpp/core/defs.hpp>
#include <godot_cpp/godot.hpp>
#include "example_class.h"
using namespace godot;
void initialize_gdextension_types(ModuleInitializationLevel p_level)
@@ -11,7 +14,7 @@ void initialize_gdextension_types(ModuleInitializationLevel p_level)
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
return;
}
//GDREGISTER_CLASS(YourClass);
GDREGISTER_CLASS(ExampleClass);
}
void uninitialize_gdextension_types(ModuleInitializationLevel p_level) {