From a8d3218cf4b28e86d78e038f6ca86bd5af8b489a Mon Sep 17 00:00:00 2001 From: "Nick J. Connors" Date: Sun, 30 Jan 2022 14:06:30 -0500 Subject: [PATCH] Set water funnel colour --- NewHorizons/Builder/Body/FunnelBuilder.cs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/NewHorizons/Builder/Body/FunnelBuilder.cs b/NewHorizons/Builder/Body/FunnelBuilder.cs index 0e1b3733..3384857a 100644 --- a/NewHorizons/Builder/Body/FunnelBuilder.cs +++ b/NewHorizons/Builder/Body/FunnelBuilder.cs @@ -35,8 +35,6 @@ namespace NewHorizons.Builder.Body var owrb = funnelGO.AddComponent(); var alignment = funnelGO.AddComponent(); - //funnelGO.AddComponent(); - var matchMotion = funnelGO.AddComponent(); matchMotion.SetBodyToMatch(rigidbody); @@ -78,6 +76,16 @@ namespace NewHorizons.Builder.Body GameObject.Destroy(geoGO.transform.Find("Effects_HT_SandColumn/SandColumn_Interior").gameObject); var waterMaterials = GameObject.Find("TimberHearth_Body/Sector_TH/Geometry_TH/Terrain_TH_Water_v3/Village_Upper_Water/Village_Upper_Water_Geo").GetComponent().materials; + var materials = new Material[waterMaterials.Length]; + for(int i = 0; i < waterMaterials.Length; i++) + { + materials[i] = new Material(waterMaterials[i]); + if (module.Tint != null) + { + materials[i].SetColor("_FogColor", module.Tint.ToColor()); + } + } + proxyGO.GetComponentInChildren().materials = waterMaterials; geoGO.GetComponentInChildren().materials = waterMaterials; @@ -145,10 +153,12 @@ namespace NewHorizons.Builder.Body private static void PostMake(GameObject funnelGO, AlignWithTargetBody alignment, FunnelController funnelSizeController, FunnelModule module) { - var target = AstroObjectLocator.GetAstroObject(module.Target)?.GetAttachedOWRigidbody(); + var targetAO = AstroObjectLocator.GetAstroObject(module.Target); + var target = targetAO?.GetAttachedOWRigidbody(); if(target == null) { - Logger.LogWarning($"Couldn't find the target for the funnel {funnelGO.name}"); + if (targetAO != null) Logger.LogError($"Found funnel target ({targetAO.name}) but couldn't find rigidbody for the funnel {funnelGO.name}"); + else Logger.LogError($"Couldn't find the target ({module.Target}) for the funnel {funnelGO.name}"); return; }