From 3c36364df9bc5a2541ef0be130bed963fd451023 Mon Sep 17 00:00:00 2001 From: kyooosukedn Date: Tue, 24 Oct 2023 23:10:37 +0200 Subject: [PATCH 1/9] Added method to rename user profile --- addons/mod_loader/api/profile.gd | 38 ++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/addons/mod_loader/api/profile.gd b/addons/mod_loader/api/profile.gd index abac4287..1b68867f 100644 --- a/addons/mod_loader/api/profile.gd +++ b/addons/mod_loader/api/profile.gd @@ -94,6 +94,44 @@ static func create_profile(profile_name: String) -> bool: return is_save_success +# Renames an existing user profile. +# +# Parameters: +# - old_profile_name (String): The current name for the user profile (must be unique). +# - new_profile_name (String): The new name for the user profile (must be unique). +# +# Returns: bool +static func rename_profile(old_profile_name: String, new_profile_name: String) -> bool: + # Verify that the old profile name is not already in use + if ModLoaderStore.user_profiles.has(old_profile_name): + ModLoaderLog.error("User profile with the name of \"%s\" already exists." % profile_name, LOG_NAME) + return false + + # Verify that the new profile_name is not already in use + if ModLoaderStore.user_profiles.has(new_profile_name): + ModLoaderLog.error("User profile with the name of \"%s\" already exists." % new_profile_name, LOG_NAME) + return false + + # Rename user profile + var profile_to_rename = ModLoaderStore.user_profiles[old_profile_name] + profile_to_rename.name = new_profile_name + + # Remove old profile entry, replace it with new name entry in the ModLoaderStore + ModLoaderStore.user_profiles.erase(old_profile_name) = new_profile + ModLoaderStore.user_profiles[new_profile_name] = profile_to_rename + + # Set it as the current profile + if ModLoaderStore.current_user_profile == old_profile_name: + ModLoaderStore.current_user_profile = new_profile_name + + # Store the new profile in the json file + var is_save_success := _save() + + if is_save_success: + ModLoaderLog.debug("Renamed user profile from \"%s\" to \"%s\"" % [old_profile_name, new_profile_name], LOG_NAME) + + return is_save_success + # Sets the current user profile to the given user profile. # From 5826ddd7aa7802af3fa7d3477d50565f86ba52d1 Mon Sep 17 00:00:00 2001 From: kyooosukedn <87076947+kyooosukedn@users.noreply.github.com> Date: Wed, 25 Oct 2023 20:59:39 +0000 Subject: [PATCH 2/9] Corrected functional changes and indentation from review --- addons/mod_loader/api/profile.gd | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/addons/mod_loader/api/profile.gd b/addons/mod_loader/api/profile.gd index 1b68867f..4067eb90 100644 --- a/addons/mod_loader/api/profile.gd +++ b/addons/mod_loader/api/profile.gd @@ -102,23 +102,23 @@ static func create_profile(profile_name: String) -> bool: # # Returns: bool static func rename_profile(old_profile_name: String, new_profile_name: String) -> bool: - # Verify that the old profile name is not already in use - if ModLoaderStore.user_profiles.has(old_profile_name): - ModLoaderLog.error("User profile with the name of \"%s\" already exists." % profile_name, LOG_NAME) + # Verify that the old profile name is already in use + if not ModLoaderStore.user_profiles.has(old_profile_name): + ModLoaderLog.error("User profile with the name of \"%s\" does not exist." % old_profile_name, LOG_NAME) return false - # Verify that the new profile_name is not already in use - if ModLoaderStore.user_profiles.has(new_profile_name): - ModLoaderLog.error("User profile with the name of \"%s\" already exists." % new_profile_name, LOG_NAME) - return false + # Verify that the new profile_name is not already in use + if ModLoaderStore.user_profiles.has(new_profile_name): + ModLoaderLog.error("User profile with the name of \"%s\" already exists." % new_profile_name, LOG_NAME) + return false - # Rename user profile - var profile_to_rename = ModLoaderStore.user_profiles[old_profile_name] - profile_to_rename.name = new_profile_name + # Rename user profile + var profile_to_rename = ModLoaderStore.user_profiles[old_profile_name].duplicate(true) + profile_to_rename.name = new_profile_name # Remove old profile entry, replace it with new name entry in the ModLoaderStore - ModLoaderStore.user_profiles.erase(old_profile_name) = new_profile - ModLoaderStore.user_profiles[new_profile_name] = profile_to_rename + ModLoaderStore.user_profiles.erase(old_profile_name) + ModLoaderStore.user_profiles[new_profile_name] = profile_to_rename # Set it as the current profile if ModLoaderStore.current_user_profile == old_profile_name: From 8ee0615aeff43aefd915ae0eef1939828eac8001 Mon Sep 17 00:00:00 2001 From: kyooosukedn <87076947+kyooosukedn@users.noreply.github.com> Date: Wed, 25 Oct 2023 21:01:42 +0000 Subject: [PATCH 3/9] Indentation --- addons/mod_loader/api/profile.gd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/mod_loader/api/profile.gd b/addons/mod_loader/api/profile.gd index 4067eb90..e154e4b8 100644 --- a/addons/mod_loader/api/profile.gd +++ b/addons/mod_loader/api/profile.gd @@ -122,7 +122,7 @@ static func rename_profile(old_profile_name: String, new_profile_name: String) - # Set it as the current profile if ModLoaderStore.current_user_profile == old_profile_name: - ModLoaderStore.current_user_profile = new_profile_name + ModLoaderStore.current_user_profile = new_profile_name # Store the new profile in the json file var is_save_success := _save() From cec00beac0e2dcb1f5de10fcc32ff793c5837cb8 Mon Sep 17 00:00:00 2001 From: kyooosukedn Date: Tue, 31 Oct 2023 16:26:05 +0100 Subject: [PATCH 4/9] Corrected false indentation and error --- addons/mod_loader/api/profile.gd | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/addons/mod_loader/api/profile.gd b/addons/mod_loader/api/profile.gd index e154e4b8..d44f5b9a 100644 --- a/addons/mod_loader/api/profile.gd +++ b/addons/mod_loader/api/profile.gd @@ -106,6 +106,7 @@ static func rename_profile(old_profile_name: String, new_profile_name: String) - if not ModLoaderStore.user_profiles.has(old_profile_name): ModLoaderLog.error("User profile with the name of \"%s\" does not exist." % old_profile_name, LOG_NAME) return false +<<<<<<< HEAD # Verify that the new profile_name is not already in use if ModLoaderStore.user_profiles.has(new_profile_name): @@ -123,6 +124,25 @@ static func rename_profile(old_profile_name: String, new_profile_name: String) - # Set it as the current profile if ModLoaderStore.current_user_profile == old_profile_name: ModLoaderStore.current_user_profile = new_profile_name +======= + + # Verify that the new profile_name is not already in use + if ModLoaderStore.user_profiles.has(new_profile_name): + ModLoaderLog.error("User profile with the name of \"%s\" already exists." % new_profile_name, LOG_NAME) + return false + + # Rename user profile + var profile_to_rename = ModLoaderStore.user_profiles[old_profile_name].duplicate(true) + profile_to_rename.name = new_profile_name + + # Remove old profile entry, replace it with new name entry in the ModLoaderStore + ModLoaderStore.user_profiles.erase(old_profile_name) + ModLoaderStore.user_profiles[new_profile_name] = profile_to_rename + + # Set it as the current profile + if ModLoaderStore.current_user_profile == ModLoaderStore.user_profiles[old_profile_name]: + ModLoaderStore.current_user_profile[new_profile_name] +>>>>>>> 5e66546 (Corrected false indentation and error) # Store the new profile in the json file var is_save_success := _save() From ed61daf55f141e9befcc56bdae81bf1573b85a78 Mon Sep 17 00:00:00 2001 From: kyooosukedn Date: Tue, 31 Oct 2023 16:32:04 +0100 Subject: [PATCH 5/9] Corrected false indentation and error --- addons/mod_loader/api/profile.gd | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/addons/mod_loader/api/profile.gd b/addons/mod_loader/api/profile.gd index d44f5b9a..b7616adb 100644 --- a/addons/mod_loader/api/profile.gd +++ b/addons/mod_loader/api/profile.gd @@ -106,25 +106,6 @@ static func rename_profile(old_profile_name: String, new_profile_name: String) - if not ModLoaderStore.user_profiles.has(old_profile_name): ModLoaderLog.error("User profile with the name of \"%s\" does not exist." % old_profile_name, LOG_NAME) return false -<<<<<<< HEAD - - # Verify that the new profile_name is not already in use - if ModLoaderStore.user_profiles.has(new_profile_name): - ModLoaderLog.error("User profile with the name of \"%s\" already exists." % new_profile_name, LOG_NAME) - return false - - # Rename user profile - var profile_to_rename = ModLoaderStore.user_profiles[old_profile_name].duplicate(true) - profile_to_rename.name = new_profile_name - - # Remove old profile entry, replace it with new name entry in the ModLoaderStore - ModLoaderStore.user_profiles.erase(old_profile_name) - ModLoaderStore.user_profiles[new_profile_name] = profile_to_rename - - # Set it as the current profile - if ModLoaderStore.current_user_profile == old_profile_name: - ModLoaderStore.current_user_profile = new_profile_name -======= # Verify that the new profile_name is not already in use if ModLoaderStore.user_profiles.has(new_profile_name): @@ -142,7 +123,6 @@ static func rename_profile(old_profile_name: String, new_profile_name: String) - # Set it as the current profile if ModLoaderStore.current_user_profile == ModLoaderStore.user_profiles[old_profile_name]: ModLoaderStore.current_user_profile[new_profile_name] ->>>>>>> 5e66546 (Corrected false indentation and error) # Store the new profile in the json file var is_save_success := _save() From 7f357cf8e2fe7d016f53cdce72e70c8b6024969a Mon Sep 17 00:00:00 2001 From: kyooosukedn Date: Sun, 5 Nov 2023 15:20:13 +0100 Subject: [PATCH 6/9] Updated some failed changes --- addons/mod_loader/api/profile.gd | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/addons/mod_loader/api/profile.gd b/addons/mod_loader/api/profile.gd index b7616adb..8cf72212 100644 --- a/addons/mod_loader/api/profile.gd +++ b/addons/mod_loader/api/profile.gd @@ -12,6 +12,8 @@ const FILE_PATH_USER_PROFILES := "user://mod_user_profiles.json" # API profile functions # ============================================================================= +export var name := "" +export var mod_list := {} # Enables a mod - it will be loaded on the next game start # @@ -94,6 +96,7 @@ static func create_profile(profile_name: String) -> bool: return is_save_success + # Renames an existing user profile. # # Parameters: @@ -113,16 +116,16 @@ static func rename_profile(old_profile_name: String, new_profile_name: String) - return false # Rename user profile - var profile_to_rename = ModLoaderStore.user_profiles[old_profile_name].duplicate(true) - profile_to_rename.name = new_profile_name + var profile_renamed := ModLoaderStore.user_profiles[old_profile_name].duplicate() as ModUserProfile + profile_renamed.name = new_profile_name # Remove old profile entry, replace it with new name entry in the ModLoaderStore ModLoaderStore.user_profiles.erase(old_profile_name) - ModLoaderStore.user_profiles[new_profile_name] = profile_to_rename + ModLoaderStore.user_profiles[profile_renamed] = profile_renamed - # Set it as the current profile - if ModLoaderStore.current_user_profile == ModLoaderStore.user_profiles[old_profile_name]: - ModLoaderStore.current_user_profile[new_profile_name] + # Set it as the current profile if it was the current profile + if ModLoaderStore.current_user_profile.name == old_profile_name: + set_profile(profile_renamed) # Store the new profile in the json file var is_save_success := _save() From 16d37be441dc45d3ce8a80afb37a30afd2ed3da1 Mon Sep 17 00:00:00 2001 From: Kai Date: Sat, 25 Jan 2025 11:13:23 +0100 Subject: [PATCH 7/9] refactor: :recycle: export props only exported properties are duplicated --- addons/mod_loader/resources/mod_user_profile.gd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/mod_loader/resources/mod_user_profile.gd b/addons/mod_loader/resources/mod_user_profile.gd index de485d20..ad08c983 100644 --- a/addons/mod_loader/resources/mod_user_profile.gd +++ b/addons/mod_loader/resources/mod_user_profile.gd @@ -4,8 +4,8 @@ class_name ModUserProfile # This Class is used to represent a User Profile for the ModLoader. -var name := "" -var mod_list := {} +export var name := "" +export var mod_list := {} func _init(_name := "", _mod_list := {}) -> void: From c5c108a562981e6d2b40178142e70623a7e87a64 Mon Sep 17 00:00:00 2001 From: Kai Date: Sat, 25 Jan 2025 11:15:56 +0100 Subject: [PATCH 8/9] refactor: :fire: remove vars --- addons/mod_loader/api/profile.gd | 2 -- 1 file changed, 2 deletions(-) diff --git a/addons/mod_loader/api/profile.gd b/addons/mod_loader/api/profile.gd index 8cf72212..9c1e64eb 100644 --- a/addons/mod_loader/api/profile.gd +++ b/addons/mod_loader/api/profile.gd @@ -12,8 +12,6 @@ const FILE_PATH_USER_PROFILES := "user://mod_user_profiles.json" # API profile functions # ============================================================================= -export var name := "" -export var mod_list := {} # Enables a mod - it will be loaded on the next game start # From 2526fe9b0a82c6de39494322ffb7fced278be268 Mon Sep 17 00:00:00 2001 From: Kai Date: Sat, 25 Jan 2025 14:07:48 +0100 Subject: [PATCH 9/9] fix: :bug: wrong user_profiles ref --- addons/mod_loader/api/profile.gd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/mod_loader/api/profile.gd b/addons/mod_loader/api/profile.gd index 9c1e64eb..ed8a4fc1 100644 --- a/addons/mod_loader/api/profile.gd +++ b/addons/mod_loader/api/profile.gd @@ -119,7 +119,7 @@ static func rename_profile(old_profile_name: String, new_profile_name: String) - # Remove old profile entry, replace it with new name entry in the ModLoaderStore ModLoaderStore.user_profiles.erase(old_profile_name) - ModLoaderStore.user_profiles[profile_renamed] = profile_renamed + ModLoaderStore.user_profiles[new_profile_name] = profile_renamed # Set it as the current profile if it was the current profile if ModLoaderStore.current_user_profile.name == old_profile_name: