From b925b9b7b96276c99ed0741285183a5f151c6e18 Mon Sep 17 00:00:00 2001 From: Lyonic Date: Wed, 20 Aug 2025 18:52:11 -0400 Subject: [PATCH 1/2] feat: Added the MaterialLibrary class, and MatFilePathMap resources. --- Nautilus/Initializer.cs | 1 + Nautilus/Nautilus.csproj | 7 + Nautilus/Resources/MatFilePathMapBZ.resources | Bin 0 -> 356164 bytes Nautilus/Resources/MatFilePathMapSN.resources | Bin 0 -> 529561 bytes Nautilus/Utility/MaterialLibrary.cs | 352 ++++++++++++++++++ Nautilus/Utility/MaterialUtils.cs | 23 ++ 6 files changed, 383 insertions(+) create mode 100644 Nautilus/Resources/MatFilePathMapBZ.resources create mode 100644 Nautilus/Resources/MatFilePathMapSN.resources create mode 100644 Nautilus/Utility/MaterialLibrary.cs diff --git a/Nautilus/Initializer.cs b/Nautilus/Initializer.cs index a08b2a14..12187792 100644 --- a/Nautilus/Initializer.cs +++ b/Nautilus/Initializer.cs @@ -77,6 +77,7 @@ static Initializer() SurvivalPatcher.Patch(_harmony); CustomSoundPatcher.Patch(_harmony); MaterialUtils.Patch(); + MaterialLibrary.Patch(); FontReferencesPatcher.Patch(_harmony); VehicleUpgradesPatcher.Patch(_harmony); StoryGoalPatcher.Patch(_harmony); diff --git a/Nautilus/Nautilus.csproj b/Nautilus/Nautilus.csproj index 2cecc44b..3636034c 100644 --- a/Nautilus/Nautilus.csproj +++ b/Nautilus/Nautilus.csproj @@ -52,5 +52,12 @@ + + + + + + + \ No newline at end of file diff --git a/Nautilus/Resources/MatFilePathMapBZ.resources b/Nautilus/Resources/MatFilePathMapBZ.resources new file mode 100644 index 0000000000000000000000000000000000000000..eb86807093206e9cc267554aa1c4189e26aef95d GIT binary patch literal 356164 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

P+fBF%Rk~i5Rp-8qxg-W%yU8jF{<-tD|_6w%{ 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 literal 0 HcmV?d00001 diff --git a/Nautilus/Resources/MatFilePathMapSN.resources b/Nautilus/Resources/MatFilePathMapSN.resources new file mode 100644 index 0000000000000000000000000000000000000000..03f5bfa08ea2ae186af9e9fc8640b76e789c910c GIT binary patch literal 529561 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 literal 0 HcmV?d00001 diff --git a/Nautilus/Utility/MaterialLibrary.cs b/Nautilus/Utility/MaterialLibrary.cs new file mode 100644 index 00000000..7f0a9efc --- /dev/null +++ b/Nautilus/Utility/MaterialLibrary.cs @@ -0,0 +1,352 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Reflection; +using BepInEx; +using UnityEngine; +using UWE; +using ResourceManager = System.Resources.ResourceManager; + +namespace Nautilus.Utility; + +///

+/// Allows for quick and simple retrieval of any base-game material throughout both Subnautica, and Subnautica: +/// Below Zero. Materials can either be fetched directly using their names by accessing the +/// method, or applied generically across the entirety of a custom prefab via the method. +/// +public static class MaterialLibrary +{ + /// + /// Handles loading the material filepath maps from the embedded .resources files, and accessing their contents. + /// + private static ResourceManager _resourceManager; + + /// + /// The maximum number of times the method is allowed to retry loading a material + /// from it's designated path. Necessary because .mat files will occasionally fail to load a couple of times before + /// being successfully retrieved. This cap exists only as a failsafe, and should never actually be reached. + /// + private const int MaxFetchAttempts = 1000; + + /// + /// The current amount of entries within the MaterialLibrary. + /// + public static int Size + { + get + { + if (_resourceManager == null) + return 0; + + var resourceSet = _resourceManager.GetResourceSet(CultureInfo.InvariantCulture, true, true); + + if (resourceSet == null) + { + InternalLogger.Error("Failed to get the ResourceSet of the material library."); + return 0; + } + + //Sadly, this is actually the simplest way to get the total number of entries in a .resources file. + int materialEntries = 0; + foreach (var _ in resourceSet) + materialEntries++; + + return materialEntries; + } + } + + internal static void Patch() + { + #if SUBNAUTICA + string resourcePath = "Nautilus.Resources.MatFilePathMapSN"; + #elif BELOWZERO + string resourcePath = "Nautilus.Resources.MatFilePathMapBZ"; + #endif + + _resourceManager = new ResourceManager(resourcePath, Assembly.GetExecutingAssembly()); + } + + /// + /// Iterates over every present on the given and any of its + /// children, and replaces any custom materials it finds that share the exact same name (case-sensitive) of a + /// base-game material with its vanilla counterpart. + /// + /// The custom object you'd like to apply base-game materials to. Children included. + /// + public static IEnumerator ReplaceVanillaMats(GameObject customPrefab) + { + if (customPrefab == null) + { + InternalLogger.Error("Attempted to apply vanilla materials to a null prefab."); + yield break; + } + + var loadedVanillaMats = new List(); + var customMatNames = new List(); + foreach (var renderer in customPrefab.GetAllComponentsInChildren()) + { + var newMatList = renderer.materials; + + for (int i = 0; i < newMatList.Length; i++) + { + if (newMatList[i] == null) + continue; + + var currentMatName = MaterialUtils.RemoveInstanceFromMatName(newMatList[i].name); + + bool skipMat = customMatNames.Contains(currentMatName); + if (!skipMat) + { + foreach (var material in loadedVanillaMats) + { + if (MaterialUtils.RemoveInstanceFromMatName(material.name).Equals(currentMatName)) + { + newMatList[i] = material; + skipMat = true; + break; + } + } + } + + if (skipMat) + continue; + + var taskResult = new TaskResult(); + yield return FetchMaterial(currentMatName, taskResult); + + var foundMaterial = taskResult.value; + + if (foundMaterial == null) + { + customMatNames.Add(currentMatName); + continue; + } + + newMatList[i] = foundMaterial; + loadedVanillaMats.Add(foundMaterial); + } + + renderer.materials = newMatList; + } + } + + /// + /// Searches the library for the provided , and loads it from its path, if an entry for + /// it exists. If the material exists within the library, but fails to load, fetching the asset will be reattempted + /// until the limit is reached. + /// + /// The exact name of the material you wish to retrieve as seen in-game. Case-sensitive! + /// The to load the found material into. Otherwise, has it's value set to null. + /// + public static IEnumerator FetchMaterial(string materialName, IOut foundMaterial) + { + Material matResult = null; + + string filteredMatName = MaterialUtils.RemoveInstanceFromMatName(materialName); + string resourcePath = GetPathToMaterial(filteredMatName); + if (!resourcePath.IsNullOrWhiteSpace()) + { + int fetchAttempts = 0; + do + { + if (fetchAttempts >= MaxFetchAttempts) + { + InternalLogger.Error($"Max retries limit reached when trying to fetch material: {materialName}."); + InternalLogger.Error("Please ensure the material's path is valid, or up the maximum # of retries."); + yield break; + } + + fetchAttempts++; + InternalLogger.Debug($"Attempting to grab material: {materialName}..."); + + var taskResult = new TaskResult(); + + if (resourcePath.EndsWith(".mat")) + yield return GetMaterialFromPath(resourcePath, taskResult); + else if (resourcePath.EndsWith(".prefab")) + yield return GetMaterialFromPrefab(filteredMatName, resourcePath, taskResult); + else if (resourcePath.StartsWith("LightmappedPrefabs/")) + yield return GetMaterialFromScene(filteredMatName, resourcePath.Substring(resourcePath.IndexOf('/') + 1), taskResult); + else + { + InternalLogger.Error($"Invalid path provided for material: {filteredMatName}"); + break; + } + + matResult = taskResult.value; + } while (matResult == null); + } + + foundMaterial.Set(matResult); + } + + /// + /// Loads and returns a material using its path relative to the . + /// NOTE: The provided .mat file will occasionally fail to load, resulting in 's value + /// being null after this method is finished running. It is not currently known what causes this, but it + /// does not happen constantly, and will only occur a handful of times in a row, if it does at all. As such, + /// the best solution for this problem, for the time being, is simply to try calling this method again, until + /// a successful result is retrieved. + /// + /// The path to the .mat file, relative to the . + /// The to load the found material into. Otherwise, has it's value set to null. + /// + private static IEnumerator GetMaterialFromPath(string matPath, IOut matResult) + { + matResult.Set(null); + + if (!matPath.EndsWith(".mat")) + { + InternalLogger.Error($"{matPath} is not a valid path to a material file."); + yield break; + } + + var handle = AddressablesUtility.LoadAsync(matPath); + + yield return handle.Task; + + matResult.Set(handle.Result); + } + + /// + /// Finds and returns a material by first loading an associated Prefab, given that prefab's path, and the desired + /// material's name. Iterates over every on the Prefab's parent object, and any of its + /// children objects, in order to find the material requested. + /// + /// The name of the material to search for. + /// The path to the reference Prefab, for use in the . + /// The to load the found material into. Otherwise, has it's value set to null. + /// + private static IEnumerator GetMaterialFromPrefab(string matName, string prefabPath, IOut matResult) + { + matResult.Set(null); + + if (!prefabPath.EndsWith(".prefab")) + { + InternalLogger.Error($"{prefabPath} is not a valid path to a prefab file."); + yield break; + } + + var task = PrefabDatabase.GetPrefabForFilenameAsync(prefabPath); + yield return task; + + if (!task.TryGetPrefab(out var prefab)) + { + InternalLogger.Error($"Failed to get prefab at path {prefabPath} from PrefabDatabase."); + yield break; + } + + foreach (var renderer in prefab.GetAllComponentsInChildren()) + { + foreach (var material in renderer.materials) + { + if (material == null) + continue; + + if (MaterialUtils.RemoveInstanceFromMatName(material.name).Equals(matName)) + { + matResult.Set(material); + yield break; + } + } + } + + InternalLogger.Error($"Failed to find material: {matName} on prefab at path: {prefabPath}"); + } + + /// + /// Finds and returns a material with the specified , by searching through a scene prefab, + /// loaded using the given . NOTE: This method won't be able to provide a material result + /// until the specified Scene is loaded via the . + /// + /// The name of the material to search the scene prefab for. + /// The name of the additive scene prefab to load and iterate through for the desired material. + /// The to load the found material into. Otherwise, has it's value set to null. + /// + private static IEnumerator GetMaterialFromScene(string matName, string sceneName, IOut matResult) + { + matResult.Set(null); + + if (!AddressablesUtility.IsAddressableScene(sceneName)) + { + InternalLogger.Error($"Attempted to get a material from invalid scene: {sceneName}"); + yield break; + } + + yield return new WaitUntil(() => LightmappedPrefabs.main); + + bool materialSet = false; + bool matCheckFailed = false; + LightmappedPrefabs.main.RequestScenePrefab(sceneName, scenePrefab => + { + foreach (var renderer in scenePrefab.GetAllComponentsInChildren()) + { + foreach (var material in renderer.materials) + { + if (material == null) + continue; + + if (MaterialUtils.RemoveInstanceFromMatName(material.name).Equals(matName)) + { + matResult.Set(material); + materialSet = true; + return; + } + } + } + + matCheckFailed = true; + }); + + yield return new WaitUntil(() => materialSet || matCheckFailed); + } + + /// + /// Uses the to access the MatFilePathMaps, and retrieve the path associated with + /// a specified material using the , so that it may be loaded when requested. + /// + /// The name of the material whose path is being requested. + /// The path to the resource which should be loaded in order to retrieve the specified material. + /// Points to either a mat, prefab, or scene prefab file. Returns an empty string if the provided + /// does not have an entry within the library. + private static string GetPathToMaterial(string materialName) + { + if (_resourceManager == null) + { + InternalLogger.Error("Tried to get material path from library while ResourceManager is null. Please initialize first!"); + return String.Empty; + } + + return _resourceManager.GetString(ConvertNameToKey(materialName)); + } + + /// + /// Converts the name of a material to the MatFilePathMap key equivalent. This approach is necessary because files + /// with the .resources extension do not allow entries with duplicate text to exist, even if the text entries + /// have different capitalization from one another. The MatFilePathMap contains many entries with the same name, + /// however, and the only way to differentiate them from one another is by preserving their casing. To get around + /// this issue, keys within the MatFilePathMap are made to be lowercased versions of the original mat name, with + /// the number of lowercase and uppercase characters in the original name preserved by being appended to the end + /// of the key version of the name. I.e. RawTitanium -> rawtitanium_lc9_uc2 + /// + /// The name of the base-game material being searched for. + /// The MatFilePathMap key version of the given material name. + private static string ConvertNameToKey(string matName) + { + var characters = matName.ToCharArray(); + + int upperCaseLetters = 0; + int lowerCaseLetters = 0; + for (int i = 0; i < characters.Length; i++) + { + if (char.IsUpper(characters[i])) + upperCaseLetters++; + else + lowerCaseLetters++; + } + + return matName.ToLower() + "_lc" + lowerCaseLetters + "_uc" + upperCaseLetters; + } + +} \ No newline at end of file diff --git a/Nautilus/Utility/MaterialUtils.cs b/Nautilus/Utility/MaterialUtils.cs index a870eaf1..bf2943b0 100644 --- a/Nautilus/Utility/MaterialUtils.cs +++ b/Nautilus/Utility/MaterialUtils.cs @@ -333,6 +333,29 @@ public static void SetMaterialCutout(Material material, bool cutout) } } + /// + /// Removes the (Instance) text from the end of a material's name, recursively. Primarily helpful for programmatic + /// material name comparisons. + /// + /// The material name from which to remove the Instance string. + /// The altered material name if any trailing (Instance) strings were found, otherwise the uneffected + /// matName. + public static string RemoveInstanceFromMatName(string matName) + { + string returnValue = matName; + string instanceString = " (Instance)"; + + // We avoid using .Replace() here to account for users possibly including the instance string at the beginning + // Or in the middle of their material names. Not likely to happen, but better safe than sorry. + if (matName.EndsWith(instanceString)) + { + returnValue = matName.Substring(0, matName.Length - instanceString.Length); + return RemoveInstanceFromMatName(returnValue); + } + + return returnValue; + } + private static void OnSceneLoaded(Scene scene, LoadSceneMode mode) { if (scene.name != "MenuEnvironment") return; From 1a3f95c01c5a6a5122fce79d390255e3087aeb5a Mon Sep 17 00:00:00 2001 From: Lyonic Date: Mon, 1 Dec 2025 06:57:29 -0500 Subject: [PATCH 2/2] fix: Correction of oversights with MaterialLibrary, implementation of requested revisions. --- Nautilus/Extensions/GeneralExtensions.cs | 23 ++ Nautilus/Initializer.cs | 1 - Nautilus/Nautilus.csproj | 10 +- Nautilus/Utility/MaterialLibrary.cs | 413 +++++++++++++++-------- Nautilus/Utility/MaterialUtils.cs | 23 -- 5 files changed, 298 insertions(+), 172 deletions(-) diff --git a/Nautilus/Extensions/GeneralExtensions.cs b/Nautilus/Extensions/GeneralExtensions.cs index dd27a41b..8632dabf 100644 --- a/Nautilus/Extensions/GeneralExtensions.cs +++ b/Nautilus/Extensions/GeneralExtensions.cs @@ -70,6 +70,29 @@ public static string TrimClone(this string @this) return pos >= 0 ? @this.Remove(pos) : @this; } + /// + /// Removes the (Instance) text from the end of names, recursively. Primarily helpful for programmatic + /// material name comparisons. + /// + /// The name from which to remove the Instance string. + /// The altered name if any trailing '(Instance)' strings were found, otherwise the uneffected + /// name. + public static string TrimInstance(string originalString) + { + string returnValue = originalString; + string instanceString = " (Instance)"; + + // We avoid using .Replace() here to account for users possibly including the instance string at the beginning + // Or in the middle of their material names. Not likely to happen, but better safe than sorry. + if (originalString.EndsWith(instanceString)) + { + returnValue = originalString.Substring(0, originalString.Length - instanceString.Length); + return TrimInstance(returnValue); + } + + return returnValue; + } + /// /// Adds a message and increases the life of it, instead of spamming it. /// diff --git a/Nautilus/Initializer.cs b/Nautilus/Initializer.cs index 59a8d544..e30cf17a 100644 --- a/Nautilus/Initializer.cs +++ b/Nautilus/Initializer.cs @@ -78,7 +78,6 @@ static Initializer() SurvivalPatcher.Patch(_harmony); CustomSoundPatcher.Patch(_harmony); MaterialUtils.Patch(); - MaterialLibrary.Patch(); FontReferencesPatcher.Patch(_harmony); VehicleUpgradesPatcher.Patch(_harmony); StoryGoalPatcher.Patch(_harmony); diff --git a/Nautilus/Nautilus.csproj b/Nautilus/Nautilus.csproj index aaea3355..ac94032e 100644 --- a/Nautilus/Nautilus.csproj +++ b/Nautilus/Nautilus.csproj @@ -53,11 +53,15 @@ - - - + + + + + + + \ No newline at end of file diff --git a/Nautilus/Utility/MaterialLibrary.cs b/Nautilus/Utility/MaterialLibrary.cs index 7f0a9efc..0c95337e 100644 --- a/Nautilus/Utility/MaterialLibrary.cs +++ b/Nautilus/Utility/MaterialLibrary.cs @@ -1,9 +1,9 @@ using System; using System.Collections; using System.Collections.Generic; -using System.Globalization; using System.Reflection; using BepInEx; +using Nautilus.Extensions; using UnityEngine; using UWE; using ResourceManager = System.Resources.ResourceManager; @@ -13,215 +13,298 @@ namespace Nautilus.Utility; /// /// Allows for quick and simple retrieval of any base-game material throughout both Subnautica, and Subnautica: /// Below Zero. Materials can either be fetched directly using their names by accessing the -/// method, or applied generically across the entirety of a custom prefab via the method. +/// method, or applied generically across the entirety of a custom prefab via the method. /// public static class MaterialLibrary { /// /// Handles loading the material filepath maps from the embedded .resources files, and accessing their contents. /// - private static ResourceManager _resourceManager; + #if SUBNAUTICA + private static readonly ResourceManager _resourceManager = new ResourceManager("Nautilus.Resources.MatFilePathMapSN", Assembly.GetExecutingAssembly()); + #elif BELOWZERO + private static readonly ResourceManager _resourceManager = new ResourceManager("Nautilus.Resources.MatFilePathMapBZ", Assembly.GetExecutingAssembly()); + #endif /// - /// The maximum number of times the method is allowed to retry loading a material - /// from it's designated path. Necessary because .mat files will occasionally fail to load a couple of times before + /// The maximum number of times the method is allowed to retry loading a material + /// from the designated path. Necessary because .mat files will occasionally fail to load a couple of times before /// being successfully retrieved. This cap exists only as a failsafe, and should never actually be reached. /// private const int MaxFetchAttempts = 1000; /// - /// The current amount of entries within the MaterialLibrary. + /// The maximum amount of time, in seconds, that we should wait for materials to finish being retrieved from a scene + /// prefab before we time out the process. Similarly to the variable, this property + /// exists exclusively as a failsafe, to prevent neverending wait-times. /// - public static int Size - { - get - { - if (_resourceManager == null) - return 0; - - var resourceSet = _resourceManager.GetResourceSet(CultureInfo.InvariantCulture, true, true); - - if (resourceSet == null) - { - InternalLogger.Error("Failed to get the ResourceSet of the material library."); - return 0; - } - - //Sadly, this is actually the simplest way to get the total number of entries in a .resources file. - int materialEntries = 0; - foreach (var _ in resourceSet) - materialEntries++; - - return materialEntries; - } - } + private const int MaxSceneLoadTime = 300; - internal static void Patch() - { - #if SUBNAUTICA - string resourcePath = "Nautilus.Resources.MatFilePathMapSN"; - #elif BELOWZERO - string resourcePath = "Nautilus.Resources.MatFilePathMapBZ"; - #endif - - _resourceManager = new ResourceManager(resourcePath, Assembly.GetExecutingAssembly()); - } - /// - /// Iterates over every present on the given and any of its + /// Iterates over every present on the given and any of its /// children, and replaces any custom materials it finds that share the exact same name (case-sensitive) of a /// base-game material with its vanilla counterpart. /// - /// The custom object you'd like to apply base-game materials to. Children included. - /// - public static IEnumerator ReplaceVanillaMats(GameObject customPrefab) + /// The custom object you'd like to apply base-game materials to. Children included. + public static IEnumerator ReplaceVanillaMaterials(GameObject prefab) { - if (customPrefab == null) + if (prefab == null) { InternalLogger.Error("Attempted to apply vanilla materials to a null prefab."); yield break; } - var loadedVanillaMats = new List(); - var customMatNames = new List(); - foreach (var renderer in customPrefab.GetAllComponentsInChildren()) - { - var newMatList = renderer.materials; + var relevantRenderers = new List(); + var requiredMaterials = new List(); - for (int i = 0; i < newMatList.Length; i++) + foreach (var renderer in prefab.GetAllComponentsInChildren()) + { + int vanillaMats = 0; + + foreach (var material in renderer.materials) { - if (newMatList[i] == null) + if (material == null) continue; - var currentMatName = MaterialUtils.RemoveInstanceFromMatName(newMatList[i].name); + string filteredMatName = GeneralExtensions.TrimInstance(material.name); - bool skipMat = customMatNames.Contains(currentMatName); - if (!skipMat) + if (!GetPathToMaterial(filteredMatName).IsNullOrWhiteSpace()) { - foreach (var material in loadedVanillaMats) - { - if (MaterialUtils.RemoveInstanceFromMatName(material.name).Equals(currentMatName)) - { - newMatList[i] = material; - skipMat = true; - break; - } - } + if(!requiredMaterials.Contains(filteredMatName)) + requiredMaterials.Add(filteredMatName); + + vanillaMats++; } + } - if (skipMat) - continue; + if (vanillaMats > 0) + relevantRenderers.Add(renderer); + } - var taskResult = new TaskResult(); - yield return FetchMaterial(currentMatName, taskResult); + if (requiredMaterials.Count == 0) + { + InternalLogger.Warn($"No vanilla materials found on prefab: \"{prefab.name}\", consider removing " + + $"your call to the ReplaceVanillaMaterials method."); + yield break; + } + + var taskResult = new TaskResult(); + yield return FetchMaterials(requiredMaterials.ToArray(), taskResult); + + var foundMaterials = taskResult.value; - var foundMaterial = taskResult.value; + if (foundMaterials == null) + { + InternalLogger.Error($"Failed to load vanilla materials from MatLibrary for prefab: \"{prefab.name}\"."); + yield break; + } - if (foundMaterial == null) + var nameToVanillaMat = new Dictionary(); + foreach (var matName in requiredMaterials) + { + for (int i = 0; i < foundMaterials.Length; i++) + { + if (matName.Equals(GeneralExtensions.TrimInstance(foundMaterials[i].name))) { - customMatNames.Add(currentMatName); - continue; + nameToVanillaMat.Add(matName, foundMaterials[i]); + break; } + } + } - newMatList[i] = foundMaterial; - loadedVanillaMats.Add(foundMaterial); + foreach (var renderer in relevantRenderers) + { + var newMatList = renderer.materials; + + for (int i = 0; i < newMatList.Length; i++) + { + if (newMatList[i] == null) + continue; + + if (nameToVanillaMat.TryGetValue(GeneralExtensions.TrimInstance(newMatList[i].name), out var vanillaMat)) + newMatList[i] = vanillaMat; } - + renderer.materials = newMatList; } } /// /// Searches the library for the provided , and loads it from its path, if an entry for - /// it exists. If the material exists within the library, but fails to load, fetching the asset will be reattempted - /// until the limit is reached. + /// it exists. /// /// The exact name of the material you wish to retrieve as seen in-game. Case-sensitive! - /// The to load the found material into. Otherwise, has it's value set to null. - /// - public static IEnumerator FetchMaterial(string materialName, IOut foundMaterial) + /// The to load the vanilla material into, if found. Otherwise, has it's value set to null. + /// Whether or not Nautilus should log a warning if no materials with the provided are found. + public static IEnumerator FetchMaterial(string materialName, IOut foundMaterial, bool warnIfFailed=true) { Material matResult = null; - string filteredMatName = MaterialUtils.RemoveInstanceFromMatName(materialName); + string filteredMatName = GeneralExtensions.TrimInstance(materialName); string resourcePath = GetPathToMaterial(filteredMatName); if (!resourcePath.IsNullOrWhiteSpace()) { - int fetchAttempts = 0; - do + if (resourcePath.EndsWith(".mat")) { - if (fetchAttempts >= MaxFetchAttempts) - { - InternalLogger.Error($"Max retries limit reached when trying to fetch material: {materialName}."); - InternalLogger.Error("Please ensure the material's path is valid, or up the maximum # of retries."); - yield break; - } + var taskResult = new TaskResult(); + yield return GetMaterialFromPath(resourcePath, taskResult); - fetchAttempts++; - InternalLogger.Debug($"Attempting to grab material: {materialName}..."); + matResult = taskResult.value; + } + else if (resourcePath.EndsWith(".prefab")) + { + var taskResult = new TaskResult(); + yield return GetMaterialsFromPrefab([filteredMatName], resourcePath, taskResult); - var taskResult = new TaskResult(); + var returnValue = taskResult.value; + if(returnValue != null) + matResult = returnValue[0]; + } + else if (resourcePath.StartsWith("LightmappedPrefabs/")) + { + var taskResult = new TaskResult(); + yield return GetMaterialsFromScene([filteredMatName], resourcePath.Substring(resourcePath.IndexOf('/') + 1), taskResult); + var returnValue = taskResult.value; + if(returnValue != null) + matResult = returnValue[0]; + } + else + InternalLogger.Error($"Invalid path provided for material: \"{filteredMatName}\"."); + }else if (warnIfFailed) + InternalLogger.Warn($"Failed to find material: \"{filteredMatName}\" in MaterialLibrary."); + + foundMaterial.Set(matResult); + } + + /// + /// Searches the library for all of the provided , and loads those materials from their + /// paths, if entries for them exist. If only some of the given mat names have entries in the library, this method + /// will return all of the vanilla materials it can, and will log warnings for those that it fails to find, by default. + /// + /// An array of the exact material names that you wish to retrieve, as seen in-game. Case-sensitive! + /// The to load the vanilla materials into, if found. + /// Will contain as many of the requested vanilla materials as can be found within the library. + /// Whether or not Nautilus should log a warning if one of the requested + /// can not be found in the library. + public static IEnumerator FetchMaterials(string[] materialNames, IOut foundMaterials, bool warnIfFailed=true) + { + var matResults = new List(); + + var materialsWithPath = new Dictionary(); + + foreach (var matName in materialNames) + { + string filteredMatName = GeneralExtensions.TrimInstance(matName); + string resourcePath = GetPathToMaterial(filteredMatName); + + if (!resourcePath.IsNullOrWhiteSpace()) + { if (resourcePath.EndsWith(".mat")) - yield return GetMaterialFromPath(resourcePath, taskResult); - else if (resourcePath.EndsWith(".prefab")) - yield return GetMaterialFromPrefab(filteredMatName, resourcePath, taskResult); - else if (resourcePath.StartsWith("LightmappedPrefabs/")) - yield return GetMaterialFromScene(filteredMatName, resourcePath.Substring(resourcePath.IndexOf('/') + 1), taskResult); - else { - InternalLogger.Error($"Invalid path provided for material: {filteredMatName}"); - break; + var taskResult = new TaskResult(); + yield return GetMaterialFromPath(resourcePath, taskResult); + + matResults.Add(taskResult.value); + continue; } - matResult = taskResult.value; - } while (matResult == null); + if (materialsWithPath.TryGetValue(resourcePath, out var oldMatList)) + { + if (Array.IndexOf(oldMatList, filteredMatName) == -1) + { + var newMatList = new string[oldMatList.Length + 1]; + + Array.Copy(oldMatList, newMatList, oldMatList.Length); + newMatList[oldMatList.Length] = filteredMatName; + + materialsWithPath[resourcePath] = newMatList; + } + }else + materialsWithPath.Add(resourcePath, [filteredMatName]); + }else if (warnIfFailed) + InternalLogger.Warn($"Failed to find material: \"{filteredMatName}\" in MaterialLibrary."); + } + + foreach (var path in materialsWithPath.Keys) + { + var pathMaterials = materialsWithPath[path]; + + var taskResult = new TaskResult(); + + if (path.EndsWith(".prefab")) + yield return GetMaterialsFromPrefab(pathMaterials, path, taskResult); + else if (path.StartsWith("LightmappedPrefabs/")) + yield return GetMaterialsFromScene(pathMaterials, path.Substring(path.IndexOf('/') + 1), taskResult); + else + { + InternalLogger.Error($"The path: \"{path}\", associated with material: \"{pathMaterials[0]}\"," + + $" is invalid."); + continue; + } + + var foundMats = taskResult.value; + if (foundMats != null) + foreach (var material in foundMats) + matResults.Add(material); } - foundMaterial.Set(matResult); + foundMaterials.Set(matResults.ToArray()); } /// /// Loads and returns a material using its path relative to the . - /// NOTE: The provided .mat file will occasionally fail to load, resulting in 's value - /// being null after this method is finished running. It is not currently known what causes this, but it - /// does not happen constantly, and will only occur a handful of times in a row, if it does at all. As such, - /// the best solution for this problem, for the time being, is simply to try calling this method again, until - /// a successful result is retrieved. + /// NOTE: For an unknown reason, materials loaded from their respective paths with the + /// will sometimes fail to load, and will come back as null, instead of as the desired material. For this reason, + /// this method has a built-in try-retry system, that will reattempt loading the requested material up to a + /// number of times. /// /// The path to the .mat file, relative to the . /// The to load the found material into. Otherwise, has it's value set to null. - /// private static IEnumerator GetMaterialFromPath(string matPath, IOut matResult) { - matResult.Set(null); + Material loadedMat = null; - if (!matPath.EndsWith(".mat")) + if(matPath.EndsWith(".mat")) { - InternalLogger.Error($"{matPath} is not a valid path to a material file."); - yield break; - } - - var handle = AddressablesUtility.LoadAsync(matPath); + int fetchAttempts = 0; + do + { + if (fetchAttempts >= MaxFetchAttempts) + { + InternalLogger.Error($"Max retries limit reached when trying to load material at path: {matPath}."); + InternalLogger.Error("Please ensure the material's path is valid, or up the maximum # of retries."); + break; + } - yield return handle.Task; + fetchAttempts++; + InternalLogger.Debug($"Attempting to load material at path: {matPath}..."); + + var handle = AddressablesUtility.LoadAsync(matPath); + yield return handle.Task; + + loadedMat = handle.Result; + } while (loadedMat == null); + } + else + InternalLogger.Error($"{matPath} is not a valid path to a material file."); - matResult.Set(handle.Result); + matResult.Set(loadedMat); } /// - /// Finds and returns a material by first loading an associated Prefab, given that prefab's path, and the desired - /// material's name. Iterates over every on the Prefab's parent object, and any of its - /// children objects, in order to find the material requested. + /// Finds and returns vanilla material(s) by first loading an associated Prefab, given that prefab's path, and the + /// desired vanilla material name(s). Iterates over every on the Prefab's parent object, and any of its + /// children objects, in order to find the material(s) requested. /// - /// The name of the material to search for. + /// The name(s) of the material(s) to search for. /// The path to the reference Prefab, for use in the . - /// The to load the found material into. Otherwise, has it's value set to null. + /// The to load the found material(s) into. Otherwise, has it's value set to null. /// - private static IEnumerator GetMaterialFromPrefab(string matName, string prefabPath, IOut matResult) + private static IEnumerator GetMaterialsFromPrefab(string[] materialNames, string prefabPath, IOut matResult) { - matResult.Set(null); - + var matResults = new List(); + if (!prefabPath.EndsWith(".prefab")) { InternalLogger.Error($"{prefabPath} is not a valid path to a prefab file."); @@ -236,37 +319,58 @@ private static IEnumerator GetMaterialFromPrefab(string matName, string prefabPa InternalLogger.Error($"Failed to get prefab at path {prefabPath} from PrefabDatabase."); yield break; } - + + var foundMats = new List(); + bool allMatsFound = false; foreach (var renderer in prefab.GetAllComponentsInChildren()) { + if (allMatsFound) + break; + foreach (var material in renderer.materials) { if (material == null) continue; - if (MaterialUtils.RemoveInstanceFromMatName(material.name).Equals(matName)) + string filteredMatName = GeneralExtensions.TrimInstance(material.name); + + if (Array.IndexOf(materialNames, filteredMatName) != -1 && !foundMats.Contains(filteredMatName)) { - matResult.Set(material); - yield break; + matResults.Add(material); + foundMats.Add(filteredMatName); + + if (foundMats.Count == materialNames.Length) + { + allMatsFound = true; + break; + } } } } - - InternalLogger.Error($"Failed to find material: {matName} on prefab at path: {prefabPath}"); + + if (!allMatsFound) + { + foreach (var matName in materialNames) + { + if (!foundMats.Contains(matName)) + InternalLogger.Error($"Failed to find material: \"{matName}\" on prefab at path: \"{prefabPath}\"."); + } + } + + matResult.Set(matResults.ToArray()); } /// - /// Finds and returns a material with the specified , by searching through a scene prefab, - /// loaded using the given . NOTE: This method won't be able to provide a material result + /// Finds and returns vanilla material(s) with the specified , by searching through a scene prefab, + /// loaded using the given . NOTE: This method won't be able to return vanilla material(s) /// until the specified Scene is loaded via the . /// - /// The name of the material to search the scene prefab for. + /// The name(s) of the material(s) to search the scene prefab for. /// The name of the additive scene prefab to load and iterate through for the desired material. - /// The to load the found material into. Otherwise, has it's value set to null. - /// - private static IEnumerator GetMaterialFromScene(string matName, string sceneName, IOut matResult) + /// The to load the found material into. Otherwise, has it's value set to null. + private static IEnumerator GetMaterialsFromScene(string[] materialNames, string sceneName, IOut matResults) { - matResult.Set(null); + var foundMaterials = new List(); if (!AddressablesUtility.IsAddressableScene(sceneName)) { @@ -276,30 +380,49 @@ private static IEnumerator GetMaterialFromScene(string matName, string sceneName yield return new WaitUntil(() => LightmappedPrefabs.main); - bool materialSet = false; + var loadStartTime = Time.time; + + bool materialsFound = false; bool matCheckFailed = false; LightmappedPrefabs.main.RequestScenePrefab(sceneName, scenePrefab => { + var foundMats = new List(); foreach (var renderer in scenePrefab.GetAllComponentsInChildren()) { foreach (var material in renderer.materials) { if (material == null) continue; + + string filteredMatName = GeneralExtensions.TrimInstance(material.name); - if (MaterialUtils.RemoveInstanceFromMatName(material.name).Equals(matName)) + if (Array.IndexOf(materialNames, filteredMatName) != -1 && !foundMats.Contains(filteredMatName)) { - matResult.Set(material); - materialSet = true; - return; + foundMaterials.Add(material); + foundMats.Add(filteredMatName); + + if (foundMats.Count == materialNames.Length) + { + matResults.Set(foundMaterials.ToArray()); + materialsFound = true; + return; + } } } } + + foreach (var matName in materialNames) + { + if (!foundMats.Contains(matName)) + InternalLogger.Error($"Failed to find material: \"{matName}\" in scene: \"{sceneName}\"."); + } + + matResults.Set(foundMaterials.ToArray()); matCheckFailed = true; }); - yield return new WaitUntil(() => materialSet || matCheckFailed); + yield return new WaitUntil(() => materialsFound || matCheckFailed || Time.time > loadStartTime + MaxSceneLoadTime); } /// diff --git a/Nautilus/Utility/MaterialUtils.cs b/Nautilus/Utility/MaterialUtils.cs index bf2943b0..a870eaf1 100644 --- a/Nautilus/Utility/MaterialUtils.cs +++ b/Nautilus/Utility/MaterialUtils.cs @@ -333,29 +333,6 @@ public static void SetMaterialCutout(Material material, bool cutout) } } - /// - /// Removes the (Instance) text from the end of a material's name, recursively. Primarily helpful for programmatic - /// material name comparisons. - /// - /// The material name from which to remove the Instance string. - /// The altered material name if any trailing (Instance) strings were found, otherwise the uneffected - /// matName. - public static string RemoveInstanceFromMatName(string matName) - { - string returnValue = matName; - string instanceString = " (Instance)"; - - // We avoid using .Replace() here to account for users possibly including the instance string at the beginning - // Or in the middle of their material names. Not likely to happen, but better safe than sorry. - if (matName.EndsWith(instanceString)) - { - returnValue = matName.Substring(0, matName.Length - instanceString.Length); - return RemoveInstanceFromMatName(returnValue); - } - - return returnValue; - } - private static void OnSceneLoaded(Scene scene, LoadSceneMode mode) { if (scene.name != "MenuEnvironment") return;