got root connector node saved as variable

This commit is contained in:
2025-03-26 00:11:28 +01:00
parent d07acbb149
commit d78f2ca856
5 changed files with 91 additions and 0 deletions

View File

@@ -48,6 +48,9 @@ auto_connect = true
auto_token_manage = true auto_token_manage = true
script = ExtResource("3_h2yge") script = ExtResource("3_h2yge")
[node name="DiscordActivity" type="DiscordActivity" parent="DiscordConnector"]
root_connector = NodePath("/root/@EditorNode@21257/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@54/@VBoxContainer@55/@EditorMainScreen@102/MainScreen/@CanvasItemEditor@11479/@VSplitContainer@11131/@HSplitContainer@11133/@HSplitContainer@11135/@Control@11136/@SubViewportContainer@11137/@SubViewport@11138/Node/DiscordConnector")
[connection signal="user_connected" from="DiscordConnector" to="DiscordConnector" method="_on_user_connected"] [connection signal="user_connected" from="DiscordConnector" to="DiscordConnector" method="_on_user_connected"]
[connection signal="user_connection_failed" from="DiscordConnector" to="DiscordConnector" method="_on_user_connection_failed"] [connection signal="user_connection_failed" from="DiscordConnector" to="DiscordConnector" method="_on_user_connection_failed"]
[connection signal="user_update_failed" from="DiscordConnector" to="DiscordConnector" method="_on_user_update_failed"] [connection signal="user_update_failed" from="DiscordConnector" to="DiscordConnector" method="_on_user_update_failed"]

View File

@@ -0,0 +1,49 @@
#include "discord_activity.h"
DiscordActivity *DiscordActivity::singleton = nullptr;
void DiscordActivity::_bind_methods()
{
BIND_SET_GET(DiscordActivity, root_connector, Variant::NODE_PATH, godot::PROPERTY_HINT_NODE_PATH_VALID_TYPES, "DiscordConnector");
}
DiscordActivity::DiscordActivity()
{
singleton = this;
}
DiscordActivity::~DiscordActivity()
{
singleton = nullptr;
}
DiscordActivity *DiscordActivity::get_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);
}
}
}

View File

@@ -0,0 +1,37 @@
#ifndef DISCORD_ACTIVITY_SDK_H
#define DISCORD_ACTIVITY_SDK_H
#include "discord_activity.h"
#include "discord_social_sdk.h"
#include "discord_connector.h"
using namespace godot;
class DiscordActivity : public DiscordSocialSDK
{
GDCLASS(DiscordActivity, DiscordSocialSDK);
static DiscordActivity *singleton;
protected:
static void _bind_methods();
private:
NodePath root_connector; // Change to NodePath object
public:
static DiscordActivity *
get_singleton();
DiscordConnector *connector;
NodePath get_root_connector(); // Adjust return type
void set_root_connector(NodePath value); // Adjust parameter type
DiscordActivity();
~DiscordActivity();
void _enter_tree() override;
};
#endif

View File

@@ -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_class<DiscordActivity>();
} }
} }

View File

@@ -16,5 +16,6 @@ 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_activity.h"
#endif // REGISTER_TYPES_H #endif // REGISTER_TYPES_H