From 2af4e5b0cd2898805363d398e87a5934f8290ff6 Mon Sep 17 00:00:00 2001 From: Noah Pilarski Date: Tue, 23 Aug 2022 19:06:46 -0400 Subject: [PATCH 1/5] Rename CloudFluidType to FluidType --- NewHorizons/Builder/Atmosphere/CloudsBuilder.cs | 2 +- NewHorizons/Builder/Body/RingBuilder.cs | 2 +- NewHorizons/External/Modules/AtmosphereModule.cs | 8 ++++---- NewHorizons/External/Modules/VariableSize/RingModule.cs | 2 +- NewHorizons/Schemas/body_schema.json | 6 +++--- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/NewHorizons/Builder/Atmosphere/CloudsBuilder.cs b/NewHorizons/Builder/Atmosphere/CloudsBuilder.cs index c18487ba..89bd924f 100644 --- a/NewHorizons/Builder/Atmosphere/CloudsBuilder.cs +++ b/NewHorizons/Builder/Atmosphere/CloudsBuilder.cs @@ -90,7 +90,7 @@ namespace NewHorizons.Builder.Atmosphere try { - fluidType = (FluidVolume.Type)Enum.Parse(typeof(FluidVolume.Type), Enum.GetName(typeof(CloudFluidType), atmo.clouds.fluidType).ToUpper()); + fluidType = (FluidVolume.Type)Enum.Parse(typeof(FluidVolume.Type), Enum.GetName(typeof(FluidType), atmo.clouds.fluidType).ToUpper()); } catch (Exception ex) { diff --git a/NewHorizons/Builder/Body/RingBuilder.cs b/NewHorizons/Builder/Body/RingBuilder.cs index c39dabf6..3bdabd02 100644 --- a/NewHorizons/Builder/Body/RingBuilder.cs +++ b/NewHorizons/Builder/Body/RingBuilder.cs @@ -50,7 +50,7 @@ namespace NewHorizons.Builder.Body try { - fluidType = (FluidVolume.Type)Enum.Parse(typeof(FluidVolume.Type), Enum.GetName(typeof(CloudFluidType), ring.fluidType).ToUpper()); + fluidType = (FluidVolume.Type)Enum.Parse(typeof(FluidVolume.Type), Enum.GetName(typeof(FluidType), ring.fluidType).ToUpper()); } catch (Exception ex) { diff --git a/NewHorizons/External/Modules/AtmosphereModule.cs b/NewHorizons/External/Modules/AtmosphereModule.cs index 3e20630d..f03f3ceb 100644 --- a/NewHorizons/External/Modules/AtmosphereModule.cs +++ b/NewHorizons/External/Modules/AtmosphereModule.cs @@ -9,7 +9,7 @@ using Newtonsoft.Json.Converters; namespace NewHorizons.External.Modules { [JsonConverter(typeof(StringEnumConverter))] - public enum CloudFluidType + public enum FluidType { [EnumMember(Value = @"none")] None = 0, @@ -126,7 +126,7 @@ namespace NewHorizons.External.Modules /// /// Fluid type for sounds/effects when colliding with this cloud. /// - [DefaultValue("cloud")] public CloudFluidType fluidType = CloudFluidType.Cloud; + [DefaultValue("cloud")] public FluidType fluidType = FluidType.Cloud; /// /// Add lightning to this planet like on Giant's Deep. @@ -202,8 +202,8 @@ namespace NewHorizons.External.Modules [Obsolete("CloudRamp is deprecated, please use CloudInfo instead")] public string cloudRamp; - [Obsolete("CloudFluidType is deprecated, please use CloudInfo instead")] - public CloudFluidType fluidType; + [Obsolete("FluidType is deprecated, please use CloudInfo instead")] + public FluidType fluidType; [Obsolete("UseBasicCloudShader is deprecated, please use CloudInfo instead")] public bool useBasicCloudShader; diff --git a/NewHorizons/External/Modules/VariableSize/RingModule.cs b/NewHorizons/External/Modules/VariableSize/RingModule.cs index dd0ecaf2..2a4157d1 100644 --- a/NewHorizons/External/Modules/VariableSize/RingModule.cs +++ b/NewHorizons/External/Modules/VariableSize/RingModule.cs @@ -9,7 +9,7 @@ namespace NewHorizons.External.Modules.VariableSize /// /// Fluid type for sounds/effects when colliding with this ring. /// - public CloudFluidType fluidType = CloudFluidType.None; + public FluidType fluidType = FluidType.None; /// /// Angle between the rings and the equatorial plane of the planet. diff --git a/NewHorizons/Schemas/body_schema.json b/NewHorizons/Schemas/body_schema.json index 03303e44..5832cf91 100644 --- a/NewHorizons/Schemas/body_schema.json +++ b/NewHorizons/Schemas/body_schema.json @@ -327,7 +327,7 @@ "fluidType": { "description": "Fluid type for sounds/effects when colliding with this cloud.", "default": "cloud", - "$ref": "#/definitions/CloudFluidType" + "$ref": "#/definitions/FluidType" }, "hasLightning": { "type": "boolean", @@ -388,7 +388,7 @@ "basic" ] }, - "CloudFluidType": { + "FluidType": { "type": "string", "description": "", "x-enumNames": [ @@ -2112,7 +2112,7 @@ }, "fluidType": { "description": "Fluid type for sounds/effects when colliding with this ring.", - "$ref": "#/definitions/CloudFluidType" + "$ref": "#/definitions/FluidType" }, "inclination": { "type": "number", From 9af15e1051190b21e8dfb0f8d31577c2882ccce4 Mon Sep 17 00:00:00 2001 From: Noah Pilarski Date: Tue, 23 Aug 2022 19:07:58 -0400 Subject: [PATCH 2/5] Add fluid type to tornado/hurricane --- NewHorizons/Builder/Props/TornadoBuilder.cs | 32 +++++++++++++++++++-- NewHorizons/External/Modules/PropModule.cs | 5 ++++ 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/NewHorizons/Builder/Props/TornadoBuilder.cs b/NewHorizons/Builder/Props/TornadoBuilder.cs index e166bea0..dd9ac6c1 100644 --- a/NewHorizons/Builder/Props/TornadoBuilder.cs +++ b/NewHorizons/Builder/Props/TornadoBuilder.cs @@ -2,6 +2,7 @@ using NewHorizons.Components; using NewHorizons.External.Modules; using NewHorizons.Handlers; using NewHorizons.Utility; +using System; using UnityEngine; using Logger = NewHorizons.Utility.Logger; using Random = UnityEngine.Random; @@ -142,14 +143,29 @@ namespace NewHorizons.Builder.Props tornadoGO.GetComponentInChildren().enabled = true; + var fluidType = FluidVolume.Type.CLOUD; + + try + { + fluidType = (FluidVolume.Type)Enum.Parse(typeof(FluidVolume.Type), Enum.GetName(typeof(FluidType), info.fluidType).ToUpper()); + } + catch (Exception ex) + { + Logger.LogError($"Couldn't parse fluid volume type [{info.fluidType}]:\n{ex}"); + } + // Resize it so the force volume goes all the way up switch (downwards) { case true: - tornadoGO.transform.Find("MockDownTornado_FluidCenter").localScale = new Vector3(1, 2f, 1); + var fluidDown = tornadoGO.transform.Find("MockDownTornado_FluidCenter"); + fluidDown.GetComponent()._fluidType = fluidType; + fluidDown.localScale = new Vector3(1, 2f, 1); break; default: - tornadoGO.transform.Find("MockUpTornado_FluidCenter").localScale = new Vector3(1, 2f, 1); + var fluidUp = tornadoGO.transform.Find("MockUpTornado_FluidCenter"); + fluidUp.GetComponent()._fluidType = fluidType; + fluidUp.localScale = new Vector3(1, 2f, 1); break; } @@ -175,7 +191,19 @@ namespace NewHorizons.Builder.Props hurricaneGO.transform.position = planetGO.transform.TransformPoint(position); hurricaneGO.transform.rotation = Quaternion.FromToRotation(Vector3.up, sector.transform.TransformDirection(position.normalized)); + var fluidType = FluidVolume.Type.CLOUD; + + try + { + fluidType = (FluidVolume.Type)Enum.Parse(typeof(FluidVolume.Type), Enum.GetName(typeof(FluidType), info.fluidType).ToUpper()); + } + catch (Exception ex) + { + Logger.LogError($"Couldn't parse fluid volume type [{info.fluidType}]:\n{ex}"); + } + var fluidVolume = hurricaneGO.GetComponentInChildren(); + fluidVolume._fluidType = fluidType; fluidVolume._density = 8; var effects = hurricaneGO.transform.Find("Effects_GD_Hurricane").gameObject; diff --git a/NewHorizons/External/Modules/PropModule.cs b/NewHorizons/External/Modules/PropModule.cs index 70ebc244..863c3669 100644 --- a/NewHorizons/External/Modules/PropModule.cs +++ b/NewHorizons/External/Modules/PropModule.cs @@ -325,6 +325,11 @@ namespace NewHorizons.External.Modules /// The maximum distance at which you'll hear the sounds of the cyclone. If not set it will scale relative to the size of the cyclone. /// public float audioDistance; + + /// + /// Fluid type for sounds/effects when colliding with this tornado. + /// + [DefaultValue("cloud")] public FluidType fluidType = FluidType.Cloud; } [JsonObject] From 718b8b82b650d25900bffe1eed72b756b8806a7f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 23 Aug 2022 23:10:29 +0000 Subject: [PATCH 3/5] Updated Schemas --- NewHorizons/Schemas/body_schema.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/NewHorizons/Schemas/body_schema.json b/NewHorizons/Schemas/body_schema.json index 5832cf91..05f0f9e7 100644 --- a/NewHorizons/Schemas/body_schema.json +++ b/NewHorizons/Schemas/body_schema.json @@ -1675,6 +1675,11 @@ "type": "number", "description": "The maximum distance at which you'll hear the sounds of the cyclone. If not set it will scale relative to the size of the cyclone.", "format": "float" + }, + "fluidType": { + "description": "Fluid type for sounds/effects when colliding with this tornado.", + "default": "cloud", + "$ref": "#/definitions/FluidType" } } }, From 7e728b4a56cb16298f671847fb14c94da11257ae Mon Sep 17 00:00:00 2001 From: Noah Pilarski Date: Thu, 25 Aug 2022 19:27:35 -0400 Subject: [PATCH 4/5] Simplify --- NewHorizons/Builder/Props/TornadoBuilder.cs | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/NewHorizons/Builder/Props/TornadoBuilder.cs b/NewHorizons/Builder/Props/TornadoBuilder.cs index dd9ac6c1..1923d3b2 100644 --- a/NewHorizons/Builder/Props/TornadoBuilder.cs +++ b/NewHorizons/Builder/Props/TornadoBuilder.cs @@ -155,19 +155,9 @@ namespace NewHorizons.Builder.Props } // Resize it so the force volume goes all the way up - switch (downwards) - { - case true: - var fluidDown = tornadoGO.transform.Find("MockDownTornado_FluidCenter"); - fluidDown.GetComponent()._fluidType = fluidType; - fluidDown.localScale = new Vector3(1, 2f, 1); - break; - default: - var fluidUp = tornadoGO.transform.Find("MockUpTornado_FluidCenter"); - fluidUp.GetComponent()._fluidType = fluidType; - fluidUp.localScale = new Vector3(1, 2f, 1); - break; - } + var fluidGO = tornadoGO.transform.Find(downwards ? "MockDownTornado_FluidCenter" : "MockUpTornado_FluidCenter"); + fluidGO.GetComponent()._fluidType = fluidType; + fluidGO.localScale = new Vector3(1, 2f, 1); if (info.tint != null) { From 6539260f14ea49194a0782744a912f2a9c5abc8c Mon Sep 17 00:00:00 2001 From: Noah Pilarski Date: Thu, 25 Aug 2022 19:33:19 -0400 Subject: [PATCH 5/5] Share function --- .../Builder/Atmosphere/CloudsBuilder.cs | 14 +--------- NewHorizons/Builder/Body/RingBuilder.cs | 13 +--------- NewHorizons/Builder/Props/TornadoBuilder.cs | 26 ++----------------- NewHorizons/Utility/NewHorizonExtensions.cs | 14 ++++++++++ 4 files changed, 18 insertions(+), 49 deletions(-) diff --git a/NewHorizons/Builder/Atmosphere/CloudsBuilder.cs b/NewHorizons/Builder/Atmosphere/CloudsBuilder.cs index 89bd924f..054e170b 100644 --- a/NewHorizons/Builder/Atmosphere/CloudsBuilder.cs +++ b/NewHorizons/Builder/Atmosphere/CloudsBuilder.cs @@ -85,19 +85,7 @@ namespace NewHorizons.Builder.Atmosphere fluidCLFV._layer = 5; fluidCLFV._priority = 1; fluidCLFV._density = 1.2f; - - var fluidType = FluidVolume.Type.CLOUD; - - try - { - fluidType = (FluidVolume.Type)Enum.Parse(typeof(FluidVolume.Type), Enum.GetName(typeof(FluidType), atmo.clouds.fluidType).ToUpper()); - } - catch (Exception ex) - { - Logger.LogError($"Couldn't parse fluid volume type [{atmo.clouds.fluidType}]:\n{ex}"); - } - - fluidCLFV._fluidType = fluidType; + fluidCLFV._fluidType = atmo.clouds.fluidType.ConvertToOW(FluidVolume.Type.CLOUD); fluidCLFV._allowShipAutoroll = true; fluidCLFV._disableOnStart = false; diff --git a/NewHorizons/Builder/Body/RingBuilder.cs b/NewHorizons/Builder/Body/RingBuilder.cs index 3bdabd02..c89318f0 100644 --- a/NewHorizons/Builder/Body/RingBuilder.cs +++ b/NewHorizons/Builder/Body/RingBuilder.cs @@ -46,18 +46,7 @@ namespace NewHorizons.Builder.Body trigger._shape = ringShape; var sfv = ringVolume.AddComponent(); - var fluidType = FluidVolume.Type.NONE; - - try - { - fluidType = (FluidVolume.Type)Enum.Parse(typeof(FluidVolume.Type), Enum.GetName(typeof(FluidType), ring.fluidType).ToUpper()); - } - catch (Exception ex) - { - Logger.LogError($"Couldn't parse fluid volume type [{ring.fluidType}]:\n{ex}"); - } - - sfv._fluidType = fluidType; + sfv._fluidType = ring.fluidType.ConvertToOW(); sfv._density = 5f; ringVolume.SetActive(true); diff --git a/NewHorizons/Builder/Props/TornadoBuilder.cs b/NewHorizons/Builder/Props/TornadoBuilder.cs index 1923d3b2..9f962fe5 100644 --- a/NewHorizons/Builder/Props/TornadoBuilder.cs +++ b/NewHorizons/Builder/Props/TornadoBuilder.cs @@ -143,20 +143,9 @@ namespace NewHorizons.Builder.Props tornadoGO.GetComponentInChildren().enabled = true; - var fluidType = FluidVolume.Type.CLOUD; - - try - { - fluidType = (FluidVolume.Type)Enum.Parse(typeof(FluidVolume.Type), Enum.GetName(typeof(FluidType), info.fluidType).ToUpper()); - } - catch (Exception ex) - { - Logger.LogError($"Couldn't parse fluid volume type [{info.fluidType}]:\n{ex}"); - } - // Resize it so the force volume goes all the way up var fluidGO = tornadoGO.transform.Find(downwards ? "MockDownTornado_FluidCenter" : "MockUpTornado_FluidCenter"); - fluidGO.GetComponent()._fluidType = fluidType; + fluidGO.GetComponent()._fluidType = info.fluidType.ConvertToOW(FluidVolume.Type.CLOUD); fluidGO.localScale = new Vector3(1, 2f, 1); if (info.tint != null) @@ -181,19 +170,8 @@ namespace NewHorizons.Builder.Props hurricaneGO.transform.position = planetGO.transform.TransformPoint(position); hurricaneGO.transform.rotation = Quaternion.FromToRotation(Vector3.up, sector.transform.TransformDirection(position.normalized)); - var fluidType = FluidVolume.Type.CLOUD; - - try - { - fluidType = (FluidVolume.Type)Enum.Parse(typeof(FluidVolume.Type), Enum.GetName(typeof(FluidType), info.fluidType).ToUpper()); - } - catch (Exception ex) - { - Logger.LogError($"Couldn't parse fluid volume type [{info.fluidType}]:\n{ex}"); - } - var fluidVolume = hurricaneGO.GetComponentInChildren(); - fluidVolume._fluidType = fluidType; + fluidVolume._fluidType = info.fluidType.ConvertToOW(FluidVolume.Type.CLOUD); fluidVolume._density = 8; var effects = hurricaneGO.transform.Find("Effects_GD_Hurricane").gameObject; diff --git a/NewHorizons/Utility/NewHorizonExtensions.cs b/NewHorizons/Utility/NewHorizonExtensions.cs index 43548039..389975be 100644 --- a/NewHorizons/Utility/NewHorizonExtensions.cs +++ b/NewHorizons/Utility/NewHorizonExtensions.cs @@ -1,4 +1,5 @@ using NewHorizons.External.Configs; +using NewHorizons.External.Modules; using Newtonsoft.Json; using System; using System.Collections.Generic; @@ -215,5 +216,18 @@ namespace NewHorizons.Utility Utility.Logger.LogVerbose($"Coordinate Check for {system}: {xCorrect}, {yCorrect}, {zCorrect} [{string.Join("-", coordinates.x)}, {string.Join("-", coordinates.y)}, {string.Join("-", coordinates.z)}]"); return xCorrect && yCorrect && zCorrect; } + + public static FluidVolume.Type ConvertToOW(this FluidType fluidType, FluidVolume.Type @default = FluidVolume.Type.NONE) + { + try + { + return (FluidVolume.Type)Enum.Parse(typeof(FluidVolume.Type), Enum.GetName(typeof(FluidType), fluidType).ToUpper()); + } + catch (Exception ex) + { + Logger.LogError($"Couldn't parse fluid volume type [{fluidType}]:\n{ex}"); + return @default; + } + } } }