performance and code structure improvements

This commit is contained in:
2023-11-30 19:43:15 +01:00
parent d744144d6d
commit 6121ce5418
12 changed files with 47 additions and 92 deletions

1
.gitmodules vendored
View File

@@ -1,3 +1,4 @@
[submodule "src/lib/godot-cpp"]
path = src/lib/godot-cpp
url = https://github.com/godotengine/godot-cpp
branch = 4.2

View File

@@ -1,23 +1,28 @@
import os
import sys
yes = {'yes', 'y', 'ye', ''}
no = {'no', 'n'}
yes = {"yes", "y", "ye", ""}
no = {"no", "n"}
if len(sys.argv) > 1:
choice = sys.argv[1].removeprefix("-")
else:
sys.stdout.write(
"Do you want to open only the built project instead of the Godot Editor after building? ([y]es/[n]o): ")
"Do you want to open only the built project instead of the Godot Editor after building? ([y]es/[n]o): "
)
choice = input().lower()
if choice in yes:
os.system("python -m SCons && python -m SCons target=template_release && cd project && godot")
os.system(
"python -m SCons && python -m SCons target=template_release && cd project && godot"
)
elif choice in no:
if os.name == 'nt':
if os.name == "nt":
os.system(
"python -m SCons && python -m SCons target=template_release && godot project\project.godot")
"python -m SCons && python -m SCons target=template_release && godot project\project.godot"
)
else:
os.system(
"python -m SCons && python -m SCons target=template_release && godot project/project.godot")
"python -m SCons && python -m SCons target=template_release && godot project/project.godot"
)
else:
sys.stdout.write("Please respond with 'yes' or 'no'")

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -3,5 +3,5 @@
name="DiscordSDK"
description="Discord Game SDK support for GDScript in Godot"
author="vaporvee"
version="3.2"
version="3.3"
script="plugin.gd"

View File

@@ -13,7 +13,6 @@ func _enter_tree() -> void:
ProjectSettings.set_setting("DiscordSDK/EditorPresence/enabled",false)
ProjectSettings.set_as_basic("DiscordSDK/EditorPresence/enabled",true)
ProjectSettings.set_initial_value("DiscordSDK/EditorPresence/enabled",false)
ProjectSettings.set_restart_if_changed("DiscordSDK/EditorPresence/enabled",true)
func _enable_plugin() -> void:
if FileAccess.file_exists(ProjectSettings.globalize_path("res://") + "addons/discord-sdk-gd/bin/.gdignore"):

View File

@@ -13,7 +13,7 @@ config_version=5
config/name="GDExtension DiscordSDK Test Project"
config/tags=PackedStringArray("vaporvee")
run/main_scene="res://main.tscn"
config/features=PackedStringArray("4.1")
config/features=PackedStringArray("4.2")
boot_splash/bg_color=Color(0.25098, 0.305882, 0.929412, 1)
boot_splash/image="res://assets/Banner_v1.png"
boot_splash/fullsize=false

View File

@@ -8,8 +8,8 @@ with zipfile.ZipFile("src/lib/discord_game_sdk.zip", "r") as zip_ref:
# Patch the SDK to actually build, since it's missing an include
with open("src/lib/discord_game_sdk/cpp/types.h", "r+") as f:
s = f.read();
f.seek(0);
s = f.read()
f.seek(0)
f.write("#include <cstdint>\n" + s)
copy_tree("src/lib/discord_game_sdk/lib/", "src/lib/discord_game_sdk/bin/")
@@ -47,4 +47,4 @@ shutil.rmtree("src/lib/discord_game_sdk/bin/x86/", ignore_errors=True)
shutil.rmtree("src/lib/discord_game_sdk/bin/x86_64/", ignore_errors=True)
os.remove("src/lib/discord_game_sdk/README.md")
os.system("git submodule update --init")
os.system("git submodule update --init --remote")

View File

@@ -89,16 +89,17 @@ SET_GET(is_public_party, activity.GetParty().SetPrivacy(static_cast<discord::Act
discord_sdk::discord_sdk()
{
ERR_FAIL_COND(singleton != nullptr);
singleton = this;
app_id = 0;
}
discord_sdk::~discord_sdk()
{
ERR_FAIL_COND(singleton != this);
set_app_id(0);
delete core;
core = nullptr;
if (app_id != 0)
{
set_app_id(0);
core->~Core();
}
singleton = nullptr;
}

View File

@@ -6,6 +6,11 @@
#include <godot_cpp/classes/ref_counted.hpp>
#include <godot_cpp/core/class_db.hpp>
#define H_SET_GET(variable_type, property_name) \
variable_type property_name; \
variable_type get_##property_name(); \
void set_##property_name(variable_type value);
using namespace godot;
class discord_sdk : public RefCounted
@@ -29,98 +34,42 @@ public:
Dictionary relationship2dict(discord::Relationship relationship);
Dictionary user2dict(discord::User user);
///
int64_t app_id = 0;
String state;
String details;
String large_image;
String large_image_text;
String small_image;
String small_image_text;
int64_t start_timestamp;
int64_t end_timestamp;
String party_id;
int32_t current_party_size;
int32_t max_party_size;
String match_secret;
String join_secret;
String spectate_secret;
bool is_public_party;
bool instanced;
bool is_overlay_locked;
H_SET_GET(int64_t, app_id)
H_SET_GET(String, state)
H_SET_GET(String, details)
H_SET_GET(String, large_image)
H_SET_GET(String, large_image_text)
H_SET_GET(String, small_image)
H_SET_GET(String, small_image_text)
H_SET_GET(int64_t, start_timestamp)
H_SET_GET(int64_t, end_timestamp)
H_SET_GET(String, party_id)
H_SET_GET(int32_t, current_party_size)
H_SET_GET(int32_t, max_party_size)
H_SET_GET(String, match_secret)
H_SET_GET(String, join_secret)
H_SET_GET(String, spectate_secret)
H_SET_GET(bool, is_public_party)
H_SET_GET(bool, instanced)
H_SET_GET(bool, is_overlay_locked)
void debug();
void coreupdate();
void refresh();
void clear(bool reset_values);
void unclear();
int64_t get_app_id();
void set_app_id(int64_t value);
String get_state();
void set_state(String value);
String get_details();
void set_details(String value);
String get_large_image();
void set_large_image(String value);
String get_large_image_text();
void set_large_image_text(String value);
String get_small_image();
void set_small_image(String value);
String get_small_image_text();
void set_small_image_text(String value);
int64_t get_start_timestamp();
void set_start_timestamp(int64_t value);
int64_t get_end_timestamp();
void set_end_timestamp(int64_t value);
String get_party_id();
void set_party_id(String value);
int32_t get_current_party_size();
void set_current_party_size(int32_t value);
int32_t get_max_party_size();
void set_max_party_size(int32_t value);
String get_match_secret();
void set_match_secret(String value);
String get_join_secret();
void set_join_secret(String value);
String get_spectate_secret();
void set_spectate_secret(String value);
bool get_is_public_party();
void set_is_public_party(bool value);
bool get_instanced();
void set_instanced(bool value);
bool get_is_overlay_enabled();
bool get_is_overlay_locked();
void set_is_overlay_locked(bool value);
void open_invite_overlay(bool is_spectate);
void open_server_invite_overlay(String invite_code);
void open_voice_settings();
void accept_join_request(int64_t user_id);
void send_invite(int64_t user_id, bool is_spectate, String message_content);
void accept_invite(int64_t user_id);
void register_command(String value);
void register_steam(int32_t value);
Dictionary get_current_user();
Dictionary get_relationship(int64_t user_id);
Array get_all_relationships();
bool get_is_discord_working();
int get_result_int();
};