a lot of changes
This commit is contained in:
@@ -3,8 +3,8 @@ import os
|
||||
|
||||
env = SConscript("src/lib/godot-cpp/SConstruct")
|
||||
|
||||
env.Append(CPPPATH=["src/","src/nodes/", "src/lib/discord_social_sdk/include/"])
|
||||
sources = [Glob("src/*.cpp"), Glob("src/nodes/*.cpp")]
|
||||
env.Append(CPPPATH=["src/","src/nodes/", "src/resources/", "src/lib/discord_social_sdk/include/"])
|
||||
sources = [Glob("src/*.cpp"), Glob("src/nodes/*.cpp"), Glob("src/resources/*.cpp")]
|
||||
|
||||
if env["target"] in ["editor", "template_debug"]:
|
||||
try:
|
||||
|
@@ -1,9 +1,11 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://dyc3kseph4el7"]
|
||||
[gd_scene load_steps=5 format=3 uid="uid://dyc3kseph4el7"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://b3qm246m7pnsx" path="res://assets/Logo_V2.png" id="2_gd222"]
|
||||
[ext_resource type="Script" uid="uid://kmubk5a6i385" path="res://discord_connector.gd" id="3_h2yge"]
|
||||
[ext_resource type="Script" uid="uid://46tue7u6crd6" path="res://addons/discord-rpc-gd/nodes/debug.gd" id="6_ujijw"]
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_h2yge"]
|
||||
|
||||
[node name="Node" type="Node"]
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="."]
|
||||
@@ -51,6 +53,11 @@ script = ExtResource("3_h2yge")
|
||||
[node name="DiscordActivity" type="DiscordActivity" parent="DiscordConnector"]
|
||||
root_connector = NodePath("..")
|
||||
|
||||
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
||||
position = Vector2(789, 330.5)
|
||||
scale = Vector2(0.408203, 0.408203)
|
||||
sprite_frames = SubResource("SpriteFrames_h2yge")
|
||||
|
||||
[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_update_failed" from="DiscordConnector" to="DiscordConnector" method="_on_user_update_failed"]
|
||||
|
3
project/new_activity_resource.tres
Normal file
3
project/new_activity_resource.tres
Normal file
@@ -0,0 +1,3 @@
|
||||
[gd_resource type="ActivityResource" format=3 uid="uid://coryo3jlwiadb"]
|
||||
|
||||
[resource]
|
3
project/new_compositor.tres
Normal file
3
project/new_compositor.tres
Normal file
@@ -0,0 +1,3 @@
|
||||
[gd_resource type="Compositor" format=3 uid="uid://cbg8e12ms0vvc"]
|
||||
|
||||
[resource]
|
@@ -1,19 +1,22 @@
|
||||
#include "discord_activity.h"
|
||||
|
||||
DiscordActivity *DiscordActivity::singleton = nullptr;
|
||||
|
||||
void DiscordActivity::_bind_methods()
|
||||
{
|
||||
BIND_SET_GET(DiscordActivity, activity, Variant::OBJECT, PROPERTY_HINT_RESOURCE_TYPE, "ActivityResource");
|
||||
}
|
||||
DiscordActivity::DiscordActivity()
|
||||
{
|
||||
singleton = this;
|
||||
}
|
||||
DiscordActivity::~DiscordActivity()
|
||||
{
|
||||
singleton = nullptr;
|
||||
}
|
||||
DiscordActivity *DiscordActivity::get_singleton()
|
||||
|
||||
Ref<ActivityResource> DiscordActivity::get_activity()
|
||||
{
|
||||
return singleton;
|
||||
return activity;
|
||||
}
|
||||
|
||||
void DiscordActivity::set_activity(Ref<ActivityResource> value)
|
||||
{
|
||||
activity = value;
|
||||
}
|
@@ -2,6 +2,7 @@
|
||||
#define DISCORD_ACTIVITY_H
|
||||
|
||||
#include "discord_connected.h"
|
||||
#include "../resources/activity.h"
|
||||
|
||||
using namespace godot;
|
||||
|
||||
@@ -9,14 +10,13 @@ class DiscordActivity : public DiscordConnected
|
||||
{
|
||||
GDCLASS(DiscordActivity, DiscordConnected);
|
||||
|
||||
static DiscordActivity *singleton;
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
|
||||
public:
|
||||
static DiscordActivity *
|
||||
get_singleton();
|
||||
Ref<ActivityResource> activity;
|
||||
Ref<ActivityResource> get_activity();
|
||||
void set_activity(Ref<ActivityResource> value);
|
||||
|
||||
DiscordActivity();
|
||||
~DiscordActivity();
|
||||
|
@@ -1,22 +1,14 @@
|
||||
#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()
|
||||
|
@@ -10,8 +10,6 @@ class DiscordConnected : public DiscordSocialSDK
|
||||
{
|
||||
GDCLASS(DiscordConnected, DiscordSocialSDK);
|
||||
|
||||
static DiscordConnected *singleton;
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
|
||||
@@ -19,9 +17,6 @@ private:
|
||||
NodePath root_connector; // Change to NodePath object
|
||||
|
||||
public:
|
||||
static DiscordConnected *
|
||||
get_singleton();
|
||||
|
||||
DiscordConnector *connector;
|
||||
|
||||
NodePath get_root_connector(); // Adjust return type
|
||||
|
@@ -1,7 +1,5 @@
|
||||
#include "discord_connector.h"
|
||||
|
||||
DiscordConnector *DiscordConnector::singleton = nullptr;
|
||||
|
||||
void DiscordConnector::_bind_methods()
|
||||
{
|
||||
BIND_SET_GET(DiscordConnector, app_id, Variant::STRING, godot::PROPERTY_HINT_RANGE, "-99999,99999,or_less,or_greater,hide_slider");
|
||||
@@ -21,15 +19,9 @@ void DiscordConnector::_bind_methods()
|
||||
}
|
||||
DiscordConnector::DiscordConnector()
|
||||
{
|
||||
singleton = this;
|
||||
}
|
||||
DiscordConnector::~DiscordConnector()
|
||||
{
|
||||
singleton = nullptr;
|
||||
}
|
||||
DiscordConnector *DiscordConnector::get_singleton()
|
||||
{
|
||||
return singleton;
|
||||
}
|
||||
|
||||
void DiscordConnector::_ready()
|
||||
|
@@ -10,15 +10,10 @@ class DiscordConnector : public DiscordSocialSDK
|
||||
{
|
||||
GDCLASS(DiscordConnector, DiscordSocialSDK);
|
||||
|
||||
static DiscordConnector *singleton;
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
|
||||
public:
|
||||
static DiscordConnector *
|
||||
get_singleton();
|
||||
|
||||
bool editor_process = false;
|
||||
|
||||
std::shared_ptr<discordpp::Client> client;
|
||||
|
@@ -1,19 +1,12 @@
|
||||
#include "discord_social_sdk.h"
|
||||
|
||||
DiscordSocialSDK *DiscordSocialSDK::singleton = nullptr;
|
||||
|
||||
void DiscordSocialSDK::_bind_methods()
|
||||
{
|
||||
}
|
||||
DiscordSocialSDK::DiscordSocialSDK()
|
||||
{
|
||||
singleton = this;
|
||||
}
|
||||
DiscordSocialSDK::~DiscordSocialSDK()
|
||||
{
|
||||
singleton = nullptr;
|
||||
}
|
||||
DiscordSocialSDK *DiscordSocialSDK::get_singleton()
|
||||
{
|
||||
return singleton;
|
||||
}
|
@@ -21,14 +21,10 @@ class DiscordSocialSDK : public Node
|
||||
{
|
||||
GDCLASS(DiscordSocialSDK, Node);
|
||||
|
||||
static DiscordSocialSDK *singleton;
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
|
||||
public:
|
||||
static DiscordSocialSDK *
|
||||
get_singleton();
|
||||
|
||||
DiscordSocialSDK();
|
||||
~DiscordSocialSDK();
|
||||
|
@@ -1,21 +1,13 @@
|
||||
#include "editor_presence.h"
|
||||
|
||||
EditorPresence *EditorPresence::singleton = nullptr;
|
||||
|
||||
void EditorPresence::_bind_methods()
|
||||
{
|
||||
}
|
||||
EditorPresence::EditorPresence()
|
||||
{
|
||||
singleton = this;
|
||||
}
|
||||
EditorPresence::~EditorPresence()
|
||||
{
|
||||
singleton = nullptr;
|
||||
}
|
||||
EditorPresence *EditorPresence::get_singleton()
|
||||
{
|
||||
return singleton;
|
||||
}
|
||||
|
||||
void EditorPresence::_ready()
|
||||
|
@@ -9,15 +9,10 @@ class EditorPresence : public DiscordSocialSDK
|
||||
{
|
||||
GDCLASS(EditorPresence, DiscordSocialSDK);
|
||||
|
||||
static EditorPresence *singleton;
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
|
||||
public:
|
||||
static EditorPresence *
|
||||
get_singleton();
|
||||
|
||||
godot::Engine *engine = godot::Engine::get_singleton();
|
||||
godot::ProjectSettings *project_settings = godot::ProjectSettings::get_singleton();
|
||||
godot::Time *time = godot::Time::get_singleton();
|
||||
|
@@ -16,6 +16,7 @@ void initialize_DiscordUtil_module(ModuleInitializationLevel p_level)
|
||||
ClassDB::register_class<DiscordConnector>();
|
||||
ClassDB::register_abstract_class<DiscordConnected>();
|
||||
ClassDB::register_class<DiscordActivity>();
|
||||
ClassDB::register_class<ActivityResource>();
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -18,5 +18,6 @@ void uninitialize_DiscordUtil_module();
|
||||
#include "nodes/discord_connector.h"
|
||||
#include "nodes/discord_connected.h"
|
||||
#include "nodes/discord_activity.h"
|
||||
#include "resources/activity.h"
|
||||
|
||||
#endif // REGISTER_TYPES_H
|
116
src/resources/activity.cpp
Normal file
116
src/resources/activity.cpp
Normal file
@@ -0,0 +1,116 @@
|
||||
#include "activity.h"
|
||||
|
||||
void ActivityResource::_bind_methods()
|
||||
{
|
||||
BIND_SET_GET(ActivityResource, type, Variant::INT, PROPERTY_HINT_ENUM, "Playing,Streaming,Listening,Watching,Custom Status,Competing,Hang Status");
|
||||
BIND_SET_GET(ActivityResource, state, Variant::STRING);
|
||||
BIND_SET_GET(ActivityResource, details, Variant::STRING);
|
||||
BIND_SET_GET(ActivityResource, large_image, Variant::STRING);
|
||||
BIND_SET_GET(ActivityResource, large_text, Variant::STRING);
|
||||
BIND_SET_GET(ActivityResource, small_image, Variant::STRING);
|
||||
BIND_SET_GET(ActivityResource, small_text, Variant::STRING);
|
||||
BIND_SET_GET(ActivityResource, timestamps_start, Variant::INT);
|
||||
BIND_SET_GET(ActivityResource, timestamps_end, Variant::INT);
|
||||
|
||||
BIND_ENUM_CONSTANT(TYPE_PLAYING);
|
||||
BIND_ENUM_CONSTANT(TYPE_STREAMING);
|
||||
BIND_ENUM_CONSTANT(TYPE_LISTENING);
|
||||
BIND_ENUM_CONSTANT(TYPE_WATCHING);
|
||||
BIND_ENUM_CONSTANT(TYPE_CUSTOM_STATUS);
|
||||
BIND_ENUM_CONSTANT(TYPE_COMPETING);
|
||||
BIND_ENUM_CONSTANT(TYPE_HANG_STATUS);
|
||||
}
|
||||
|
||||
ActivityResource::ActivityResource()
|
||||
{
|
||||
}
|
||||
|
||||
void ActivityResource::set_type(ActivityType p_type)
|
||||
{
|
||||
type = p_type;
|
||||
}
|
||||
|
||||
ActivityResource::ActivityType ActivityResource::get_type()
|
||||
{
|
||||
return type;
|
||||
}
|
||||
|
||||
void ActivityResource::set_state(String p_state)
|
||||
{
|
||||
state = p_state;
|
||||
}
|
||||
|
||||
String ActivityResource::get_state()
|
||||
{
|
||||
return state;
|
||||
}
|
||||
|
||||
void ActivityResource::set_details(String value)
|
||||
{
|
||||
details = value;
|
||||
}
|
||||
|
||||
String ActivityResource::get_details()
|
||||
{
|
||||
return details;
|
||||
}
|
||||
|
||||
void ActivityResource::set_large_image(String value)
|
||||
{
|
||||
large_image = value;
|
||||
}
|
||||
|
||||
String ActivityResource::get_large_image()
|
||||
{
|
||||
return large_image;
|
||||
}
|
||||
|
||||
void ActivityResource::set_large_text(String value)
|
||||
{
|
||||
large_text = value;
|
||||
}
|
||||
|
||||
String ActivityResource::get_large_text()
|
||||
{
|
||||
return large_text;
|
||||
}
|
||||
|
||||
void ActivityResource::set_small_image(String value)
|
||||
{
|
||||
small_image = value;
|
||||
}
|
||||
|
||||
String ActivityResource::get_small_image()
|
||||
{
|
||||
return small_image;
|
||||
}
|
||||
|
||||
void ActivityResource::set_small_text(String value)
|
||||
{
|
||||
small_text = value;
|
||||
}
|
||||
|
||||
String ActivityResource::get_small_text()
|
||||
{
|
||||
return small_text;
|
||||
}
|
||||
|
||||
void ActivityResource::set_timestamps_start(int64_t value)
|
||||
{
|
||||
timestamps_start = value;
|
||||
}
|
||||
|
||||
int64_t ActivityResource::get_timestamps_start()
|
||||
{
|
||||
return timestamps_start;
|
||||
}
|
||||
|
||||
void ActivityResource::set_timestamps_end(int64_t value)
|
||||
{
|
||||
timestamps_end = value;
|
||||
}
|
||||
|
||||
int64_t ActivityResource::get_timestamps_end()
|
||||
{
|
||||
return timestamps_end;
|
||||
}
|
47
src/resources/activity.h
Normal file
47
src/resources/activity.h
Normal file
@@ -0,0 +1,47 @@
|
||||
#ifndef ACTIVITY_H
|
||||
#define ACTIVITY_H
|
||||
|
||||
#include <godot_cpp/core/class_db.hpp>
|
||||
#include <godot_cpp/core/defs.hpp>
|
||||
#include <godot_cpp/godot.hpp>
|
||||
#include <godot_cpp/classes/resource.hpp>
|
||||
#include "../util.h"
|
||||
|
||||
using namespace godot;
|
||||
|
||||
class ActivityResource : public Resource {
|
||||
GDCLASS(ActivityResource, Resource);
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
|
||||
public:
|
||||
enum ActivityType {
|
||||
TYPE_PLAYING = 0,
|
||||
TYPE_STREAMING = 1,
|
||||
TYPE_LISTENING = 2,
|
||||
TYPE_WATCHING = 3,
|
||||
TYPE_CUSTOM_STATUS = 4,
|
||||
TYPE_COMPETING = 5,
|
||||
TYPE_HANG_STATUS = 6,
|
||||
};
|
||||
|
||||
ActivityType type = TYPE_PLAYING;
|
||||
ActivityType get_type();
|
||||
void set_type(ActivityType p_type);
|
||||
|
||||
H_SET_GET(state, "")
|
||||
H_SET_GET(details, "")
|
||||
H_SET_GET(large_image, "")
|
||||
H_SET_GET(large_text, "")
|
||||
H_SET_GET(small_image, "")
|
||||
H_SET_GET(small_text, "")
|
||||
H_SET_GET(timestamps_start, 0)
|
||||
H_SET_GET(timestamps_end, 0)
|
||||
|
||||
ActivityResource();
|
||||
};
|
||||
|
||||
VARIANT_ENUM_CAST(ActivityResource::ActivityType);
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user