mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
rename to Particle Fields
This commit is contained in:
parent
7320e51306
commit
ca7e0f25e7
@ -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,
|
||||
};
|
||||
}
|
||||
|
||||
17
NewHorizons/External/Configs/PlanetConfig.cs
vendored
17
NewHorizons/External/Configs/PlanetConfig.cs
vendored
@ -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();
|
||||
}
|
||||
|
||||
@ -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;
|
||||
@ -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")]
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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": [
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user