rename to Particle Fields

This commit is contained in:
Noah Pilarski 2023-08-24 16:28:56 -04:00
parent 7320e51306
commit ca7e0f25e7
7 changed files with 51 additions and 49 deletions

View File

@ -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<VectionFieldEmitter>();
var pvc = emitter.GetComponent<PlanetaryVectionController>();
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,
};
}

View File

@ -169,9 +169,10 @@ namespace NewHorizons.External.Configs
public WaterModule Water;
/// <summary>
/// Add particle effects to the planet
/// Add particle effects in a field around the planet.
/// Also known as Vection Fields.
/// </summary>
public VectionFieldModule[] VectionFields;
public ParticleFieldModule[] ParticleFields;
/// <summary>
/// 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();
}

View File

@ -57,7 +57,7 @@ namespace NewHorizons.External.Modules
/// Colour of fog on the planet, if you put fog.
/// </summary>
public MColor fogTint;
/// <summary>
/// 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
/// <summary>
/// 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.
/// </summary>
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.
/// </summary>
[DefaultValue(0f)] public float rotationSpeed = 0f;
#region Obsolete
/// <summary>
@ -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")]

View File

@ -10,15 +10,15 @@ using System.Runtime.Serialization;
namespace NewHorizons.External.Modules
{
[JsonObject]
public class VectionFieldModule
public class ParticleFieldModule
{
/// <summary>
/// Particle type for this vection field.
/// </summary>
public VectionFieldType type;
public ParticleFieldType type;
/// <summary>
/// What the vection field activates based on.
/// What the particle field activates based on.
/// </summary>
[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,

View File

@ -658,7 +658,7 @@ namespace NewHorizons.Handlers
atmosphere = AtmosphereBuilder.Make(go, sector, body.Config.Atmosphere, surfaceSize).GetComponentInChildren<LODGroup>();
}
if (body.Config.VectionFields != null)
if (body.Config.ParticleFields != null)
{
EffectsBuilder.Make(go, sector, body.Config);
}

View File

@ -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": [

View File

@ -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