OverviewFilesCommitsIssuesDocsReleasesPeers

hyperswarm-peer / src / register_types.cpp

43 lines · cpp ref:
#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 "hyperswarm_peer.h"
#include "overlay_node.h"

using namespace godot;

void initialize_hyperswarm_peer_types(ModuleInitializationLevel p_level) {
	if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
		return;
	}
	GDREGISTER_CLASS(HyperswarmMultiplayerPeer);
	GDREGISTER_CLASS(HyperOverlay);
}

void uninitialize_hyperswarm_peer_types(ModuleInitializationLevel p_level) {
	if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
		return;
	}
}

extern "C" {

GDExtensionBool GDE_EXPORT hyperswarm_peer_library_init(
	GDExtensionInterfaceGetProcAddress p_get_proc_address,
	GDExtensionClassLibraryPtr p_library,
	GDExtensionInitialization *r_initialization) {

	GDExtensionBinding::InitObject init_obj(p_get_proc_address, p_library, r_initialization);
	init_obj.register_initializer(initialize_hyperswarm_peer_types);
	init_obj.register_terminator(uninitialize_hyperswarm_peer_types);
	init_obj.set_minimum_library_initialization_level(MODULE_INITIALIZATION_LEVEL_SCENE);

	return init_obj.init();
}

} // extern "C"