Build a GDExtension with MarshConnector Node
This commit is contained in:
parent
2ab1ee403e
commit
3066bdacc9
10 changed files with 323698 additions and 4 deletions
20
src/marshconnector.cpp
Normal file
20
src/marshconnector.cpp
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
#include "marshconnector.h"
|
||||
#include <godot_cpp/core/class_db.hpp>
|
||||
|
||||
using namespace godot;
|
||||
|
||||
void MarshConnector::_bind_methods() {
|
||||
}
|
||||
|
||||
MarshConnector::MarshConnector() {
|
||||
// Initialize any variables here.
|
||||
time_passed = 0.0;
|
||||
}
|
||||
|
||||
MarshConnector::~MarshConnector() {
|
||||
// Add your cleanup here.
|
||||
}
|
||||
|
||||
void MarshConnector::_process(double delta) {
|
||||
time_passed += delta;
|
||||
}
|
||||
26
src/marshconnector.h
Normal file
26
src/marshconnector.h
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
#ifndef MARSHCONNECTOR_H
|
||||
#define MARSHCONNECTOR_H
|
||||
|
||||
#include <godot_cpp/classes/node.hpp>
|
||||
|
||||
namespace godot {
|
||||
|
||||
class MarshConnector : public Node{
|
||||
GDCLASS(MarshConnector, Node)
|
||||
|
||||
private:
|
||||
double time_passed;
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
|
||||
public:
|
||||
MarshConnector();
|
||||
~MarshConnector();
|
||||
|
||||
void _process(double delta) override;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // MARSHCONNECTOR_H
|
||||
36
src/register_types.cpp
Normal file
36
src/register_types.cpp
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
#include "register_types.h"
|
||||
|
||||
#include "marshconnector.h"
|
||||
|
||||
#include <gdextension_interface.h>
|
||||
#include <godot_cpp/core/defs.hpp>
|
||||
#include <godot_cpp/godot.hpp>
|
||||
|
||||
using namespace godot;
|
||||
|
||||
void initialize_marsh_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
GDREGISTER_CLASS(MarshConnector);
|
||||
}
|
||||
|
||||
void uninitialize_marsh_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
// Initialization.
|
||||
GDExtensionBool GDE_EXPORT marsh_library_init(GDExtensionInterfaceGetProcAddress p_get_proc_address, const GDExtensionClassLibraryPtr p_library, GDExtensionInitialization *r_initialization) {
|
||||
godot::GDExtensionBinding::InitObject init_obj(p_get_proc_address, p_library, r_initialization);
|
||||
|
||||
init_obj.register_initializer(initialize_marsh_module);
|
||||
init_obj.register_terminator(uninitialize_marsh_module);
|
||||
init_obj.set_minimum_library_initialization_level(MODULE_INITIALIZATION_LEVEL_SCENE);
|
||||
|
||||
return init_obj.init();
|
||||
}
|
||||
}
|
||||
11
src/register_types.h
Normal file
11
src/register_types.h
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
#ifndef GDEXAMPLE_REGISTER_TYPES_H
|
||||
#define GDEXAMPLE_REGISTER_TYPES_H
|
||||
|
||||
#include <godot_cpp/core/class_db.hpp>
|
||||
|
||||
using namespace godot;
|
||||
|
||||
void initialize_example_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_example_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // GDEXAMPLE_REGISTER_TYPES_H
|
||||
Loading…
Add table
Add a link
Reference in a new issue