mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Add visor effect volumes
This commit is contained in:
parent
dcf119fe48
commit
11d0980153
@ -0,0 +1,18 @@
|
||||
using NewHorizons.External.Modules;
|
||||
using UnityEngine;
|
||||
|
||||
namespace NewHorizons.Builder.Volumes
|
||||
{
|
||||
public static class VisorFrostEffectVolumeBuilder
|
||||
{
|
||||
public static VisorFrostEffectVolume Make(GameObject planetGO, Sector sector, VolumesModule.VisorEffectModule.FrostEffectVolumeInfo info)
|
||||
{
|
||||
var volume = PriorityVolumeBuilder.Make<VisorFrostEffectVolume>(planetGO, sector, info);
|
||||
|
||||
volume._frostRate = info.frostRate;
|
||||
volume._maxFrost = info.maxFrost;
|
||||
|
||||
return volume;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
using NewHorizons.External.Modules;
|
||||
using UnityEngine;
|
||||
|
||||
namespace NewHorizons.Builder.Volumes
|
||||
{
|
||||
public static class VisorRainEffectVolumeBuilder
|
||||
{
|
||||
public static VisorRainEffectVolume Make(GameObject planetGO, Sector sector, VolumesModule.VisorEffectModule.RainEffectVolumeInfo info)
|
||||
{
|
||||
var volume = PriorityVolumeBuilder.Make<VisorRainEffectVolume>(planetGO, sector, info);
|
||||
|
||||
volume._dropletRate = info.dropletRate;
|
||||
volume._streakRate = info.streakRate;
|
||||
|
||||
return volume;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -123,6 +123,23 @@ namespace NewHorizons.Builder.Volumes
|
||||
}
|
||||
}
|
||||
}
|
||||
if (config.Volumes.visorEffects != null)
|
||||
{
|
||||
if (config.Volumes.visorEffects.frostEffectVolumes != null)
|
||||
{
|
||||
foreach (var frostEffectVolume in config.Volumes.visorEffects.frostEffectVolumes)
|
||||
{
|
||||
VisorFrostEffectVolumeBuilder.Make(go, sector, frostEffectVolume);
|
||||
}
|
||||
}
|
||||
if (config.Volumes.visorEffects.rainEffectVolumes != null)
|
||||
{
|
||||
foreach (var rainEffectVolume in config.Volumes.visorEffects.rainEffectVolumes)
|
||||
{
|
||||
VisorRainEffectVolumeBuilder.Make(go, sector, rainEffectVolume);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
52
NewHorizons/External/Modules/VolumesModule.cs
vendored
52
NewHorizons/External/Modules/VolumesModule.cs
vendored
@ -81,6 +81,11 @@ namespace NewHorizons.External.Modules
|
||||
/// </summary>
|
||||
public PriorityVolumeInfo[] zeroGravityVolumes;
|
||||
|
||||
/// <summary>
|
||||
/// Add visor effect volumes to this planet.
|
||||
/// </summary>
|
||||
public VisorEffectModule visorEffects;
|
||||
|
||||
[JsonObject]
|
||||
public class VolumeInfo
|
||||
{
|
||||
@ -426,6 +431,53 @@ namespace NewHorizons.External.Modules
|
||||
/// </summary>
|
||||
public VolumeInfo[] safetyVolumes;
|
||||
}
|
||||
|
||||
[JsonObject]
|
||||
public class VisorEffectModule
|
||||
{
|
||||
/// <summary>
|
||||
/// Add visor frost effect volumes to this planet. This is the ghost matter effect.
|
||||
/// </summary>
|
||||
public FrostEffectVolumeInfo[] frostEffectVolumes;
|
||||
|
||||
/// <summary>
|
||||
/// Add visor rain effect volumes to this planet. You can see this on Giant's Deep.
|
||||
/// </summary>
|
||||
public RainEffectVolumeInfo[] rainEffectVolumes;
|
||||
|
||||
[JsonObject]
|
||||
public class FrostEffectVolumeInfo : PriorityVolumeInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// The rate at which the frost effect will get stronger
|
||||
/// </summary>
|
||||
[DefaultValue(0.1f)]
|
||||
public float frostRate = 0.1f;
|
||||
|
||||
/// <summary>
|
||||
/// The maximum strength of frost this volume can give
|
||||
/// </summary>
|
||||
[Range(0f, 1f)]
|
||||
[DefaultValue(0.5f)]
|
||||
public float maxFrost = 0.5f;
|
||||
}
|
||||
|
||||
[JsonObject]
|
||||
public class RainEffectVolumeInfo : PriorityVolumeInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// The rate at which the rain droplet effect will happen
|
||||
/// </summary>
|
||||
[DefaultValue(0.1f)]
|
||||
public float dropletRate = 10f;
|
||||
|
||||
/// <summary>
|
||||
/// The rate at which the rain streak effect will happen
|
||||
/// </summary>
|
||||
[DefaultValue(1f)]
|
||||
public float streakRate = 1f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user