From d1c6cb9efdbca3cd6298339db8ced49105fa5f48 Mon Sep 17 00:00:00 2001 From: Nick Date: Wed, 9 Mar 2022 15:57:20 -0500 Subject: [PATCH] Maybe fix base game shaders --- NewHorizons/Builder/Props/DetailBuilder.cs | 2 ++ NewHorizons/Builder/Props/PropBuildManager.cs | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/NewHorizons/Builder/Props/DetailBuilder.cs b/NewHorizons/Builder/Props/DetailBuilder.cs index 6578dda8..c48bcd8c 100644 --- a/NewHorizons/Builder/Props/DetailBuilder.cs +++ b/NewHorizons/Builder/Props/DetailBuilder.cs @@ -23,6 +23,7 @@ namespace NewHorizons.Builder.Props if (detail.assetBundle != null) { var prefab = PropBuildManager.LoadPrefab(detail.assetBundle, detail.path, uniqueModName, mod); + detailGO = MakeDetail(go, sector, prefab, detail.position, detail.rotation, detail.scale, detail.alignToNormal); } else if (detail.objFilePath != null) @@ -30,6 +31,7 @@ namespace NewHorizons.Builder.Props try { var prefab = mod.ModHelper.Assets.Get3DObject(detail.objFilePath, detail.mtlFilePath); + PropBuildManager.ReplaceShaders(prefab); prefab.SetActive(false); detailGO = MakeDetail(go, sector, prefab, detail.position, detail.rotation, detail.scale, detail.alignToNormal); } diff --git a/NewHorizons/Builder/Props/PropBuildManager.cs b/NewHorizons/Builder/Props/PropBuildManager.cs index 21ae86df..b7de61df 100644 --- a/NewHorizons/Builder/Props/PropBuildManager.cs +++ b/NewHorizons/Builder/Props/PropBuildManager.cs @@ -104,7 +104,25 @@ namespace NewHorizons.Builder.Props return null; } + ReplaceShaders(prefab); + return prefab; } + + public static void ReplaceShaders(GameObject prefab) + { + foreach (var renderer in prefab.GetComponentsInChildren(true)) + { + foreach (var material in renderer.sharedMaterials) + { + if (material == null) + { + continue; + } + + material.shader = Shader.Find(material.shader.name); + } + } + } } }