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>
|
/// </summary>
|
||||||
public PriorityVolumeInfo[] zeroGravityVolumes;
|
public PriorityVolumeInfo[] zeroGravityVolumes;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Add visor effect volumes to this planet.
|
||||||
|
/// </summary>
|
||||||
|
public VisorEffectModule visorEffects;
|
||||||
|
|
||||||
[JsonObject]
|
[JsonObject]
|
||||||
public class VolumeInfo
|
public class VolumeInfo
|
||||||
{
|
{
|
||||||
@ -426,6 +431,53 @@ namespace NewHorizons.External.Modules
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public VolumeInfo[] safetyVolumes;
|
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))]
|
[JsonConverter(typeof(StringEnumConverter))]
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user