fix: now handles errors better without killing the entire process

This commit is contained in:
Chris
2025-09-04 12:34:55 -04:00
parent 568e90ff44
commit 94be96fb02

View File

@@ -73,7 +73,7 @@ namespace Reset.Core.Tools{
GameObject thisPageObject = null; GameObject thisPageObject = null;
bool alreadyExisted = false; bool alreadyExisted = false;
// This checks for a gameobject with the page name. Sets it if it finds it // This checks for a page with the gameobject's name. Sets it if it finds it
foreach (var page in Instance.Pages) { foreach (var page in Instance.Pages) {
if (page.Key.name == $"{Instance.pageNamePrefix}{pageName}") { if (page.Key.name == $"{Instance.pageNamePrefix}{pageName}") {
thisPageObject = page.Key; thisPageObject = page.Key;
@@ -82,7 +82,7 @@ namespace Reset.Core.Tools{
} }
} }
// Otherwise, this will make a new one and add it // Otherwise, this will make a new GameObject/page and add it
UIDocument thisDocument; UIDocument thisDocument;
if (thisPageObject == null) { if (thisPageObject == null) {
@@ -92,7 +92,7 @@ namespace Reset.Core.Tools{
// Add it to the list of page objects and set it's transform // Add it to the list of page objects and set it's transform
KeyValuePair<GameObject, List<string>> newPage = new(thisPageObject, new List<string>()); KeyValuePair<GameObject, List<string>> newPage = new(thisPageObject, new List<string>());
Instance.Pages.Add(newPage.Key, newPage.Value); Instance.Pages.Add(newPage.Key, newPage.Value);
thisPageObject.transform.SetParent(Instance.canvasRootGameObject.transform); thisPageObject.transform.SetParent(Instance.root.transform);
// Add a UI Document for it, give it the base template // Add a UI Document for it, give it the base template
thisDocument = thisPageObject.AddComponent<UIDocument>(); thisDocument = thisPageObject.AddComponent<UIDocument>();
@@ -140,16 +140,14 @@ namespace Reset.Core.Tools{
// Publicly accessible method to change the value // Publicly accessible method to change the value
public static void ChangeValue(string pageName, string sourceName, string newValue){ public static void ChangeValue(string pageName, string sourceName, string newValue){
try { try {
Instance.values[$"{pageName}/{sourceName}"].text = newValue; if (Instance.values.ContainsKey($"{pageName}/{sourceName}")) {
} catch (Exception e) { Instance.values[$"{pageName}/{sourceName}"].text = newValue.ToString();
try { } else {
AddOnOverlay(pageName, sourceName); AddOnOverlay(pageName, sourceName);
Instance.values[$"{pageName}/{sourceName}"].text = newValue; Instance.values[$"{pageName}/{sourceName}"].text = newValue.ToString();
throw;
} catch (Exception exception) {
Debug.LogError($"Failed to both update an existing or create a new debug overlay: {exception.Message}" );
throw;
} }
} catch (Exception e) {
Debug.LogError($"Failed to both update an existing or create a new debug overlay: {e.Message}");
} }
} }