diff --git a/NewHorizons/Builder/Atmosphere/EffectsBuilder.cs b/NewHorizons/Builder/Atmosphere/EffectsBuilder.cs index 130a4c6d..e06c1800 100644 --- a/NewHorizons/Builder/Atmosphere/EffectsBuilder.cs +++ b/NewHorizons/Builder/Atmosphere/EffectsBuilder.cs @@ -79,23 +79,23 @@ namespace NewHorizons.Builder.Atmosphere var maxHeight = config.Atmosphere.size; if (config.Atmosphere.clouds?.outerCloudRadius != null) maxHeight = config.Atmosphere.clouds.outerCloudRadius; - foreach (var vectionField in config.VectionFields) + foreach (var particleField in config.ParticleFields) { - var prefab = GetPrefabByType(vectionField.type); + var prefab = GetPrefabByType(particleField.type); var emitter = Object.Instantiate(prefab, effectsGO.transform); - emitter.name = !string.IsNullOrWhiteSpace(vectionField.rename) ? vectionField.rename : prefab.name.Replace("Prefab_", ""); + emitter.name = !string.IsNullOrWhiteSpace(particleField.rename) ? particleField.rename : prefab.name.Replace("Prefab_", ""); emitter.transform.position = planetGO.transform.position; var vfe = emitter.GetComponent(); var pvc = emitter.GetComponent(); pvc._vectionFieldEmitter = vfe; - pvc._densityByHeight = vectionField.densityByHeightCurve != null ? vectionField.densityByHeightCurve.ToAnimationCurve() : new AnimationCurve(new Keyframe[] + pvc._densityByHeight = particleField.densityByHeightCurve != null ? particleField.densityByHeightCurve.ToAnimationCurve() : new AnimationCurve(new Keyframe[] { new Keyframe(minHeight - 0.5f, 0), new Keyframe(minHeight, 10f), new Keyframe(maxHeight, 0f) }); - pvc._followTarget = vectionField.followTarget == VectionFieldModule.FollowTarget.Probe ? PlanetaryVectionController.FollowTarget.Probe : PlanetaryVectionController.FollowTarget.Player; + pvc._followTarget = particleField.followTarget == ParticleFieldModule.FollowTarget.Probe ? PlanetaryVectionController.FollowTarget.Probe : PlanetaryVectionController.FollowTarget.Player; pvc._activeInSector = sector; pvc._exclusionSectors = new Sector[] { }; @@ -106,27 +106,27 @@ namespace NewHorizons.Builder.Atmosphere effectsGO.SetActive(true); } - public static GameObject GetPrefabByType(VectionFieldModule.VectionFieldType type) + public static GameObject GetPrefabByType(ParticleFieldModule.ParticleFieldType type) { return type switch { - VectionFieldModule.VectionFieldType.Rain => _rainEmitterPrefab, - VectionFieldModule.VectionFieldType.SnowflakesHeavy => _snowEmitterPrefab, - VectionFieldModule.VectionFieldType.SnowflakesLight => _snowLightEmitterPrefab, - VectionFieldModule.VectionFieldType.Embers => _emberEmitterPrefab, - VectionFieldModule.VectionFieldType.Clouds => _cloudEmitterPrefab, - VectionFieldModule.VectionFieldType.Leaves => _leafEmitterPrefab, - VectionFieldModule.VectionFieldType.Bubbles => _bubbleEmitterPrefab, - VectionFieldModule.VectionFieldType.Fog => _fogEmitterPrefab, - VectionFieldModule.VectionFieldType.CrystalMotes => _crystalMoteEmitterPrefab, - VectionFieldModule.VectionFieldType.RockMotes => _rockMoteEmitterPrefab, - VectionFieldModule.VectionFieldType.IceMotes => _iceMoteEmitterPrefab, - VectionFieldModule.VectionFieldType.SandMotes => _sandMoteEmitterPrefab, - VectionFieldModule.VectionFieldType.Crawlies => _crawliesEmitterPrefab, - VectionFieldModule.VectionFieldType.Fireflies => _firefliesEmitterPrefab, - VectionFieldModule.VectionFieldType.Plankton => _planktonEmitterPrefab, - VectionFieldModule.VectionFieldType.Pollen => _pollenEmitterPrefab, - VectionFieldModule.VectionFieldType.Current => _currentEmitterPrefab, + ParticleFieldModule.ParticleFieldType.Rain => _rainEmitterPrefab, + ParticleFieldModule.ParticleFieldType.SnowflakesHeavy => _snowEmitterPrefab, + ParticleFieldModule.ParticleFieldType.SnowflakesLight => _snowLightEmitterPrefab, + ParticleFieldModule.ParticleFieldType.Embers => _emberEmitterPrefab, + ParticleFieldModule.ParticleFieldType.Clouds => _cloudEmitterPrefab, + ParticleFieldModule.ParticleFieldType.Leaves => _leafEmitterPrefab, + ParticleFieldModule.ParticleFieldType.Bubbles => _bubbleEmitterPrefab, + ParticleFieldModule.ParticleFieldType.Fog => _fogEmitterPrefab, + ParticleFieldModule.ParticleFieldType.CrystalMotes => _crystalMoteEmitterPrefab, + ParticleFieldModule.ParticleFieldType.RockMotes => _rockMoteEmitterPrefab, + ParticleFieldModule.ParticleFieldType.IceMotes => _iceMoteEmitterPrefab, + ParticleFieldModule.ParticleFieldType.SandMotes => _sandMoteEmitterPrefab, + ParticleFieldModule.ParticleFieldType.Crawlies => _crawliesEmitterPrefab, + ParticleFieldModule.ParticleFieldType.Fireflies => _firefliesEmitterPrefab, + ParticleFieldModule.ParticleFieldType.Plankton => _planktonEmitterPrefab, + ParticleFieldModule.ParticleFieldType.Pollen => _pollenEmitterPrefab, + ParticleFieldModule.ParticleFieldType.Current => _currentEmitterPrefab, _ => null, }; } diff --git a/NewHorizons/External/Configs/PlanetConfig.cs b/NewHorizons/External/Configs/PlanetConfig.cs index d5727b69..d1248900 100644 --- a/NewHorizons/External/Configs/PlanetConfig.cs +++ b/NewHorizons/External/Configs/PlanetConfig.cs @@ -169,9 +169,10 @@ namespace NewHorizons.External.Configs public WaterModule Water; /// - /// Add particle effects to the planet + /// Add particle effects in a field around the planet. + /// Also known as Vection Fields. /// - public VectionFieldModule[] VectionFields; + public ParticleFieldModule[] ParticleFields; /// /// Add various volumes on this body @@ -350,22 +351,22 @@ namespace NewHorizons.External.Configs if (Atmosphere.hasRain) { - if (VectionFields == null) VectionFields = new VectionFieldModule[0]; - VectionFields = VectionFields.Append(new VectionFieldModule + if (ParticleFields == null) ParticleFields = new ParticleFieldModule[0]; + ParticleFields = ParticleFields.Append(new ParticleFieldModule { - type = VectionFieldModule.VectionFieldType.Rain, + type = ParticleFieldModule.ParticleFieldType.Rain, rename = "RainEmitter" }).ToArray(); } if (Atmosphere.hasSnow) { - if (VectionFields == null) VectionFields = new VectionFieldModule[0]; + if (ParticleFields == null) ParticleFields = new ParticleFieldModule[0]; for (int i = 0; i < 5; i++) { - VectionFields = VectionFields.Append(new VectionFieldModule + ParticleFields = ParticleFields.Append(new ParticleFieldModule { - type = VectionFieldModule.VectionFieldType.SnowflakesHeavy, + type = ParticleFieldModule.ParticleFieldType.SnowflakesHeavy, rename = "SnowEmitter" }).ToArray(); } diff --git a/NewHorizons/External/Modules/AtmosphereModule.cs b/NewHorizons/External/Modules/AtmosphereModule.cs index 4fa3cfe5..e318f372 100644 --- a/NewHorizons/External/Modules/AtmosphereModule.cs +++ b/NewHorizons/External/Modules/AtmosphereModule.cs @@ -57,7 +57,7 @@ namespace NewHorizons.External.Modules /// Colour of fog on the planet, if you put fog. /// public MColor fogTint; - + /// /// Relative filepath to the fog color ramp texture, if you put fog. /// x axis is angle to sun (left at midnight, right at noon), y axis is distance to camera (close at bottom, far at top). @@ -76,7 +76,7 @@ namespace NewHorizons.External.Modules /// /// Does this planet have rain? - /// This is equivalent to effects of setting a rain vection field, rain audio volume, and visor effect volume, combined for convenience. + /// This is equivalent to effects of setting a rain particle/vection field, rain audio volume, and visor effect volume, combined for convenience. /// For more control over the rain, use those individual components. /// public bool hasRain; @@ -170,7 +170,7 @@ namespace NewHorizons.External.Modules /// How fast the clouds will rotate relative to the planet in degrees per second. /// [DefaultValue(0f)] public float rotationSpeed = 0f; - + #region Obsolete /// @@ -185,7 +185,7 @@ namespace NewHorizons.External.Modules #region Obsolete - [Obsolete("HasSnow is deprecated, please use VectionFields instead")] + [Obsolete("HasSnow is deprecated, please use ParticleFields instead")] public bool hasSnow; [Obsolete("CloudTint is deprecated, please use CloudInfo instead")] @@ -206,7 +206,8 @@ namespace NewHorizons.External.Modules [Obsolete("UseBasicCloudShader is deprecated, please use CloudInfo instead")] public bool useBasicCloudShader; - [DefaultValue(true)] [Obsolete("ShadowsOnClouds is deprecated, please use CloudInfo instead")] + [DefaultValue(true)] + [Obsolete("ShadowsOnClouds is deprecated, please use CloudInfo instead")] public bool shadowsOnClouds = true; [Obsolete("HasAtmosphere is deprecated, please use UseAtmosphereShader instead")] diff --git a/NewHorizons/External/Modules/VectionFieldModule.cs b/NewHorizons/External/Modules/VectionFieldModule.cs index a7636ae7..19586544 100644 --- a/NewHorizons/External/Modules/VectionFieldModule.cs +++ b/NewHorizons/External/Modules/VectionFieldModule.cs @@ -10,15 +10,15 @@ using System.Runtime.Serialization; namespace NewHorizons.External.Modules { [JsonObject] - public class VectionFieldModule + public class ParticleFieldModule { /// /// Particle type for this vection field. /// - public VectionFieldType type; + public ParticleFieldType type; /// - /// What the vection field activates based on. + /// What the particle field activates based on. /// [DefaultValue("player")] public FollowTarget followTarget = FollowTarget.Player; @@ -48,7 +48,7 @@ namespace NewHorizons.External.Modules } [JsonConverter(typeof(StringEnumConverter))] - public enum VectionFieldType + public enum ParticleFieldType { [EnumMember(Value = @"rain")] Rain, [EnumMember(Value = @"snowflakesHeavy")] SnowflakesHeavy, diff --git a/NewHorizons/Handlers/PlanetCreationHandler.cs b/NewHorizons/Handlers/PlanetCreationHandler.cs index b65dbdc4..c5edbf56 100644 --- a/NewHorizons/Handlers/PlanetCreationHandler.cs +++ b/NewHorizons/Handlers/PlanetCreationHandler.cs @@ -658,7 +658,7 @@ namespace NewHorizons.Handlers atmosphere = AtmosphereBuilder.Make(go, sector, body.Config.Atmosphere, surfaceSize).GetComponentInChildren(); } - if (body.Config.VectionFields != null) + if (body.Config.ParticleFields != null) { EffectsBuilder.Make(go, sector, body.Config); } diff --git a/NewHorizons/Schemas/body_schema.json b/NewHorizons/Schemas/body_schema.json index e794df83..18200221 100644 --- a/NewHorizons/Schemas/body_schema.json +++ b/NewHorizons/Schemas/body_schema.json @@ -132,11 +132,11 @@ "description": "Add water to this planet", "$ref": "#/definitions/WaterModule" }, - "VectionFields": { + "ParticleFields": { "type": "array", "description": "Add particle effects to the planet", "items": { - "$ref": "#/definitions/VectionFieldModule" + "$ref": "#/definitions/ParticleFieldModule" } }, "Volumes": { @@ -378,7 +378,7 @@ }, "hasRain": { "type": "boolean", - "description": "Does this planet have rain? \nThis is equivalent to effects of setting a rain vection field, rain audio volume, and visor effect volume, combined for convenience.\nFor more control over the rain, use those individual components." + "description": "Does this planet have rain? \nThis is equivalent to effects of setting a rain particle/vection field, rain audio volume, and visor effect volume, combined for convenience.\nFor more control over the rain, use those individual components." }, "size": { "type": "number", @@ -3421,16 +3421,16 @@ } } }, - "VectionFieldModule": { + "ParticleFieldModule": { "type": "object", "additionalProperties": false, "properties": { "type": { "description": "Particle type for this vection field.", - "$ref": "#/definitions/VectionFieldType" + "$ref": "#/definitions/ParticleFieldType" }, "followTarget": { - "description": "What the vection field activates based on.", + "description": "What the particle field activates based on.", "default": "player", "$ref": "#/definitions/FollowTarget" }, @@ -3447,7 +3447,7 @@ } } }, - "VectionFieldType": { + "ParticleFieldType": { "type": "string", "description": "", "x-enumNames": [ diff --git a/NewHorizons/Utility/NewHorizonExtensions.cs b/NewHorizons/Utility/NewHorizonExtensions.cs index 22f0ff4d..b292b06b 100644 --- a/NewHorizons/Utility/NewHorizonExtensions.cs +++ b/NewHorizons/Utility/NewHorizonExtensions.cs @@ -13,7 +13,7 @@ using System.Reflection; using System.Text; using System.Text.RegularExpressions; using UnityEngine; -using static NewHorizons.External.Modules.VectionFieldModule; +using static NewHorizons.External.Modules.ParticleFieldModule; using NomaiCoordinates = NewHorizons.External.Configs.StarSystemConfig.NomaiCoordinates; namespace NewHorizons.Utility