From 5c37f9d260cff3a59000042729211cef358b6a94 Mon Sep 17 00:00:00 2001 From: AALUND13 Date: Sun, 22 Feb 2026 01:08:46 -0500 Subject: [PATCH 1/2] Optimize config loading/saving --- UnboundLib/Unbound.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/UnboundLib/Unbound.cs b/UnboundLib/Unbound.cs index 86a0160..fb02a1c 100644 --- a/UnboundLib/Unbound.cs +++ b/UnboundLib/Unbound.cs @@ -85,6 +85,7 @@ public Unbound() { // Add UNBOUND text to the main menu screen bool firstTime = true; + config.SaveOnConfigSet = false; On.MainMenuHandler.Awake += (orig, self) => { @@ -336,6 +337,12 @@ private void Start() // sync modded clients networkEvents.OnJoinedRoomEvent += SyncModClients.RequestSync; + + this.ExecuteAfterSeconds(1, () => + { + config.Save(); + config.SaveOnConfigSet = true; + }); } private void Update() From 6ebf5dfa14e937706a25b529d279a4e2fe166e52 Mon Sep 17 00:00:00 2001 From: AALUND13 Date: Fri, 13 Mar 2026 02:52:37 -0400 Subject: [PATCH 2/2] Optimize "Toggle Cards" menu --- UnboundLib/Utils/CardManager.cs | 10 ++++++++++ UnboundLib/Utils/UI/ToggleCardsMenuHandler.cs | 6 ++++++ 2 files changed, 16 insertions(+) diff --git a/UnboundLib/Utils/CardManager.cs b/UnboundLib/Utils/CardManager.cs index 87c4be2..2782efc 100644 --- a/UnboundLib/Utils/CardManager.cs +++ b/UnboundLib/Utils/CardManager.cs @@ -122,10 +122,12 @@ public static CardInfo GetCardInfoWithName(string cardName) public static void EnableCards(CardInfo[] cardInfos, bool saved = true) { + Unbound.config.SaveOnConfigSet = false; foreach (var card in cardInfos) { EnableCard(card, saved); } + Unbound.config.SaveOnConfigSet = true; } public static void EnableCard(CardInfo cardInfo, bool saved = true) @@ -154,10 +156,12 @@ public static void EnableCard(CardInfo cardInfo, bool saved = true) public static void DisableCards(CardInfo[] cardInfos, bool saved = true) { + Unbound.config.SaveOnConfigSet = false; foreach (var card in cardInfos) { DisableCard(card, saved); } + Unbound.config.SaveOnConfigSet = true; } public static void DisableCard(CardInfo cardInfo, bool saved = true) @@ -186,19 +190,25 @@ public static void DisableCard(CardInfo cardInfo, bool saved = true) public static void EnableCategory(string categoryName) { if (categoryBools.ContainsKey(categoryName)) categoryBools[categoryName].Value = true; + + Unbound.config.SaveOnConfigSet = false; foreach (string cardname in GetCardsInCategory(categoryName)) { EnableCard(cards[cardname].cardInfo, true); } + Unbound.config.SaveOnConfigSet = true; } public static void DisableCategory(string categoryName) { if (categoryBools.ContainsKey(categoryName)) categoryBools[categoryName].Value = false; + + Unbound.config.SaveOnConfigSet = false; foreach (string cardname in GetCardsInCategory(categoryName)) { DisableCard(cards[cardname].cardInfo, true); } + Unbound.config.SaveOnConfigSet = true; } public static bool IsCardActive(CardInfo card) diff --git a/UnboundLib/Utils/UI/ToggleCardsMenuHandler.cs b/UnboundLib/Utils/UI/ToggleCardsMenuHandler.cs index 3f66c95..c7d0861 100644 --- a/UnboundLib/Utils/UI/ToggleCardsMenuHandler.cs +++ b/UnboundLib/Utils/UI/ToggleCardsMenuHandler.cs @@ -121,6 +121,7 @@ private void Start() toggledAll = !toggledAll; var cardsInCategory = CardManager.GetCardsInCategory(currentCategory); + Unbound.config.SaveOnConfigSet = false; if (toggledAll) { var objectsInCategory = GetCardObjects(cardsInCategory); @@ -139,6 +140,7 @@ private void Start() cardObjs[cardObject].Invoke(); } } + Unbound.config.SaveOnConfigSet = true; }); // get and set info button @@ -336,15 +338,18 @@ private void DisableCards() private void DisableCardsInCategory(string category) { if (!cardObjectsInCategory.ContainsKey(category)) return; + Unbound.config.SaveOnConfigSet = false; foreach (GameObject cardObject in cardObjectsInCategory[category]) { cardObject.SetActive(false); } + Unbound.config.SaveOnConfigSet = true; } private IEnumerator EnableCardsInCategory(string category) { if (!cardObjectsInCategory.ContainsKey(category)) yield break; + Unbound.config.SaveOnConfigSet = false; foreach (GameObject cardObject in cardObjectsInCategory[category]) { var active = ActiveOnSearch(cardObject.name); @@ -352,6 +357,7 @@ private IEnumerator EnableCardsInCategory(string category) UpdateVisualsCardObj(cardObject); yield return new WaitForEndOfFrame(); } + Unbound.config.SaveOnConfigSet = true; } internal static Color uncommonColor = new Color(0, 0.5f, 1, 1);