better classes
This commit is contained in:
@@ -4,7 +4,6 @@ DiscordActivity *DiscordActivity::singleton = nullptr;
|
|||||||
|
|
||||||
void DiscordActivity::_bind_methods()
|
void DiscordActivity::_bind_methods()
|
||||||
{
|
{
|
||||||
BIND_SET_GET(DiscordActivity, root_connector, Variant::NODE_PATH, godot::PROPERTY_HINT_NODE_PATH_VALID_TYPES, "DiscordConnector");
|
|
||||||
}
|
}
|
||||||
DiscordActivity::DiscordActivity()
|
DiscordActivity::DiscordActivity()
|
||||||
{
|
{
|
||||||
@@ -17,33 +16,4 @@ DiscordActivity::~DiscordActivity()
|
|||||||
DiscordActivity *DiscordActivity::get_singleton()
|
DiscordActivity *DiscordActivity::get_singleton()
|
||||||
{
|
{
|
||||||
return singleton;
|
return singleton;
|
||||||
}
|
}
|
||||||
|
|
||||||
NodePath DiscordActivity::get_root_connector()
|
|
||||||
{
|
|
||||||
return root_connector;
|
|
||||||
}
|
|
||||||
|
|
||||||
void DiscordActivity::set_root_connector(NodePath value)
|
|
||||||
{
|
|
||||||
root_connector = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
void DiscordActivity::_enter_tree()
|
|
||||||
{
|
|
||||||
if (Object::cast_to<DiscordConnector>(get_parent()))
|
|
||||||
{
|
|
||||||
if (root_connector.is_empty())
|
|
||||||
{
|
|
||||||
root_connector = Object::cast_to<DiscordConnector>(get_parent())->get_path();
|
|
||||||
if (!root_connector.is_empty())
|
|
||||||
{
|
|
||||||
connector = get_node<DiscordConnector>(root_connector);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
connector = get_node<DiscordConnector>(root_connector);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,37 +1,25 @@
|
|||||||
#ifndef DISCORD_ACTIVITY_SDK_H
|
#ifndef DISCORD_ACTIVITY_H
|
||||||
#define DISCORD_ACTIVITY_SDK_H
|
#define DISCORD_ACTIVITY_H
|
||||||
|
|
||||||
#include "discord_activity.h"
|
#include "discord_connected.h"
|
||||||
#include "discord_social_sdk.h"
|
|
||||||
#include "discord_connector.h"
|
|
||||||
|
|
||||||
using namespace godot;
|
using namespace godot;
|
||||||
|
|
||||||
class DiscordActivity : public DiscordSocialSDK
|
class DiscordActivity : public DiscordConnected
|
||||||
{
|
{
|
||||||
GDCLASS(DiscordActivity, DiscordSocialSDK);
|
GDCLASS(DiscordActivity, DiscordConnected);
|
||||||
|
|
||||||
static DiscordActivity *singleton;
|
static DiscordActivity *singleton;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
static void _bind_methods();
|
static void _bind_methods();
|
||||||
|
|
||||||
private:
|
|
||||||
NodePath root_connector; // Change to NodePath object
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static DiscordActivity *
|
static DiscordActivity *
|
||||||
get_singleton();
|
get_singleton();
|
||||||
|
|
||||||
DiscordConnector *connector;
|
|
||||||
|
|
||||||
NodePath get_root_connector(); // Adjust return type
|
|
||||||
void set_root_connector(NodePath value); // Adjust parameter type
|
|
||||||
|
|
||||||
DiscordActivity();
|
DiscordActivity();
|
||||||
~DiscordActivity();
|
~DiscordActivity();
|
||||||
|
|
||||||
void _enter_tree() override;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
49
src/nodes/discord_connected.cpp
Normal file
49
src/nodes/discord_connected.cpp
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
#include "discord_connected.h"
|
||||||
|
|
||||||
|
DiscordConnected *DiscordConnected::singleton = nullptr;
|
||||||
|
|
||||||
|
void DiscordConnected::_bind_methods()
|
||||||
|
{
|
||||||
|
BIND_SET_GET(DiscordConnected, root_connector, Variant::NODE_PATH, godot::PROPERTY_HINT_NODE_PATH_VALID_TYPES, "DiscordConnector");
|
||||||
|
}
|
||||||
|
DiscordConnected::DiscordConnected()
|
||||||
|
{
|
||||||
|
singleton = this;
|
||||||
|
}
|
||||||
|
DiscordConnected::~DiscordConnected()
|
||||||
|
{
|
||||||
|
singleton = nullptr;
|
||||||
|
}
|
||||||
|
DiscordConnected *DiscordConnected::get_singleton()
|
||||||
|
{
|
||||||
|
return singleton;
|
||||||
|
}
|
||||||
|
|
||||||
|
NodePath DiscordConnected::get_root_connector()
|
||||||
|
{
|
||||||
|
return root_connector;
|
||||||
|
}
|
||||||
|
|
||||||
|
void DiscordConnected::set_root_connector(NodePath value)
|
||||||
|
{
|
||||||
|
root_connector = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
void DiscordConnected::_enter_tree()
|
||||||
|
{
|
||||||
|
if (cast_to<DiscordConnector>(get_parent()))
|
||||||
|
{
|
||||||
|
if (root_connector.is_empty())
|
||||||
|
{
|
||||||
|
root_connector = cast_to<DiscordConnector>(get_parent())->get_path();
|
||||||
|
if (!root_connector.is_empty())
|
||||||
|
{
|
||||||
|
connector = get_node<DiscordConnector>(root_connector);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
connector = get_node<DiscordConnector>(root_connector);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
36
src/nodes/discord_connected.h
Normal file
36
src/nodes/discord_connected.h
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
#ifndef DISCORD_CONNECTED_H
|
||||||
|
#define DISCORD_CONNECTED_H
|
||||||
|
|
||||||
|
#include "discord_social_sdk.h"
|
||||||
|
#include "discord_connector.h"
|
||||||
|
|
||||||
|
using namespace godot;
|
||||||
|
|
||||||
|
class DiscordConnected : public DiscordSocialSDK
|
||||||
|
{
|
||||||
|
GDCLASS(DiscordConnected, DiscordSocialSDK);
|
||||||
|
|
||||||
|
static DiscordConnected *singleton;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
static void _bind_methods();
|
||||||
|
|
||||||
|
private:
|
||||||
|
NodePath root_connector; // Change to NodePath object
|
||||||
|
|
||||||
|
public:
|
||||||
|
static DiscordConnected *
|
||||||
|
get_singleton();
|
||||||
|
|
||||||
|
DiscordConnector *connector;
|
||||||
|
|
||||||
|
NodePath get_root_connector(); // Adjust return type
|
||||||
|
void set_root_connector(NodePath value); // Adjust parameter type
|
||||||
|
|
||||||
|
DiscordConnected();
|
||||||
|
~DiscordConnected();
|
||||||
|
|
||||||
|
void _enter_tree() override;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
@@ -14,6 +14,7 @@ void initialize_DiscordUtil_module(ModuleInitializationLevel p_level)
|
|||||||
Engine::get_singleton()->register_singleton("DiscordUtil", DiscordUtil::get_singleton());
|
Engine::get_singleton()->register_singleton("DiscordUtil", DiscordUtil::get_singleton());
|
||||||
ClassDB::register_class<EditorPresence>();
|
ClassDB::register_class<EditorPresence>();
|
||||||
ClassDB::register_class<DiscordConnector>();
|
ClassDB::register_class<DiscordConnector>();
|
||||||
|
ClassDB::register_abstract_class<DiscordConnected>();
|
||||||
ClassDB::register_class<DiscordActivity>();
|
ClassDB::register_class<DiscordActivity>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -16,6 +16,7 @@ void uninitialize_DiscordUtil_module();
|
|||||||
#include "nodes/discord_social_sdk.h"
|
#include "nodes/discord_social_sdk.h"
|
||||||
#include "nodes/editor_presence.h"
|
#include "nodes/editor_presence.h"
|
||||||
#include "nodes/discord_connector.h"
|
#include "nodes/discord_connector.h"
|
||||||
|
#include "nodes/discord_connected.h"
|
||||||
#include "nodes/discord_activity.h"
|
#include "nodes/discord_activity.h"
|
||||||
|
|
||||||
#endif // REGISTER_TYPES_H
|
#endif // REGISTER_TYPES_H
|
Reference in New Issue
Block a user