diff --git a/NewHorizons/Builder/ShipLog/RevealBuilder.cs b/NewHorizons/Builder/ShipLog/RevealBuilder.cs
index ff8364f2..cde8deb2 100644
--- a/NewHorizons/Builder/ShipLog/RevealBuilder.cs
+++ b/NewHorizons/Builder/ShipLog/RevealBuilder.cs
@@ -1,6 +1,6 @@
using NewHorizons.Builder.Props;
using NewHorizons.Components.Achievement;
-using NewHorizons.External.Modules.Volumes;
+using NewHorizons.External.Modules.Volumes.VolumeInfos;
using NewHorizons.Utility.OWUtilities;
using OWML.Common;
using UnityEngine;
diff --git a/NewHorizons/Builder/Volumes/AudioVolumeBuilder.cs b/NewHorizons/Builder/Volumes/AudioVolumeBuilder.cs
index 7a4eef85..54ed8080 100644
--- a/NewHorizons/Builder/Volumes/AudioVolumeBuilder.cs
+++ b/NewHorizons/Builder/Volumes/AudioVolumeBuilder.cs
@@ -1,5 +1,5 @@
using NewHorizons.Builder.Props;
-using NewHorizons.External.Modules.Volumes;
+using NewHorizons.External.Modules.Volumes.VolumeInfos;
using NewHorizons.Utility;
using NewHorizons.Utility.OWUtilities;
using OWML.Common;
diff --git a/NewHorizons/Builder/Volumes/ChangeStarSystemVolumeBuilder.cs b/NewHorizons/Builder/Volumes/ChangeStarSystemVolumeBuilder.cs
index bf2b92fc..c3b8c5db 100644
--- a/NewHorizons/Builder/Volumes/ChangeStarSystemVolumeBuilder.cs
+++ b/NewHorizons/Builder/Volumes/ChangeStarSystemVolumeBuilder.cs
@@ -1,5 +1,5 @@
using NewHorizons.Components.Volumes;
-using NewHorizons.External.Modules.Volumes;
+using NewHorizons.External.Modules.Volumes.VolumeInfos;
using UnityEngine;
namespace NewHorizons.Builder.Volumes
diff --git a/NewHorizons/Builder/Volumes/CreditsVolumeBuilder.cs b/NewHorizons/Builder/Volumes/CreditsVolumeBuilder.cs
index 52d17585..70093cc4 100644
--- a/NewHorizons/Builder/Volumes/CreditsVolumeBuilder.cs
+++ b/NewHorizons/Builder/Volumes/CreditsVolumeBuilder.cs
@@ -1,5 +1,5 @@
using NewHorizons.Components.Volumes;
-using NewHorizons.External.Modules.Volumes;
+using NewHorizons.External.Modules.Volumes.VolumeInfos;
using OWML.Utils;
using UnityEngine;
diff --git a/NewHorizons/Builder/Volumes/DestructionVolumeBuilder.cs b/NewHorizons/Builder/Volumes/DestructionVolumeBuilder.cs
index d077dfd1..ad93ad7f 100644
--- a/NewHorizons/Builder/Volumes/DestructionVolumeBuilder.cs
+++ b/NewHorizons/Builder/Volumes/DestructionVolumeBuilder.cs
@@ -1,4 +1,4 @@
-using NewHorizons.External.Modules.Volumes;
+using NewHorizons.External.Modules.Volumes.VolumeInfos;
using OWML.Utils;
using UnityEngine;
diff --git a/NewHorizons/Builder/Volumes/FluidVolumeBuilder.cs b/NewHorizons/Builder/Volumes/FluidVolumeBuilder.cs
index eb8038cb..e2839bd3 100644
--- a/NewHorizons/Builder/Volumes/FluidVolumeBuilder.cs
+++ b/NewHorizons/Builder/Volumes/FluidVolumeBuilder.cs
@@ -1,5 +1,5 @@
using NewHorizons.Components.Volumes;
-using NewHorizons.External.Modules.Volumes;
+using NewHorizons.External.Modules.Volumes.VolumeInfos;
using OWML.Utils;
using UnityEngine;
diff --git a/NewHorizons/Builder/Volumes/HazardVolumeBuilder.cs b/NewHorizons/Builder/Volumes/HazardVolumeBuilder.cs
index 1338fbb6..8d995669 100644
--- a/NewHorizons/Builder/Volumes/HazardVolumeBuilder.cs
+++ b/NewHorizons/Builder/Volumes/HazardVolumeBuilder.cs
@@ -1,5 +1,5 @@
using NewHorizons.Builder.Props;
-using NewHorizons.External.Modules.Volumes;
+using NewHorizons.External.Modules.Volumes.VolumeInfos;
using NewHorizons.Utility.OWUtilities;
using OWML.Common;
using OWML.Utils;
diff --git a/NewHorizons/Builder/Volumes/NotificationVolumeBuilder.cs b/NewHorizons/Builder/Volumes/NotificationVolumeBuilder.cs
index ed7ea8fb..6e52c5a8 100644
--- a/NewHorizons/Builder/Volumes/NotificationVolumeBuilder.cs
+++ b/NewHorizons/Builder/Volumes/NotificationVolumeBuilder.cs
@@ -1,5 +1,5 @@
using NewHorizons.Builder.Props;
-using NewHorizons.External.Modules.Volumes;
+using NewHorizons.External.Modules.Volumes.VolumeInfos;
using NewHorizons.Utility.OWUtilities;
using OWML.Common;
using UnityEngine;
diff --git a/NewHorizons/Builder/Volumes/OxygenVolumeBuilder.cs b/NewHorizons/Builder/Volumes/OxygenVolumeBuilder.cs
index b37bf219..3fa34dfe 100644
--- a/NewHorizons/Builder/Volumes/OxygenVolumeBuilder.cs
+++ b/NewHorizons/Builder/Volumes/OxygenVolumeBuilder.cs
@@ -1,4 +1,4 @@
-using NewHorizons.External.Modules.Volumes;
+using NewHorizons.External.Modules.Volumes.VolumeInfos;
using UnityEngine;
namespace NewHorizons.Builder.Volumes
diff --git a/NewHorizons/Builder/Volumes/PriorityVolumeBuilder.cs b/NewHorizons/Builder/Volumes/PriorityVolumeBuilder.cs
index 106f89f8..f3cce567 100644
--- a/NewHorizons/Builder/Volumes/PriorityVolumeBuilder.cs
+++ b/NewHorizons/Builder/Volumes/PriorityVolumeBuilder.cs
@@ -1,4 +1,4 @@
-using NewHorizons.External.Modules.Volumes;
+using NewHorizons.External.Modules.Volumes.VolumeInfos;
using UnityEngine;
namespace NewHorizons.Builder.Volumes
diff --git a/NewHorizons/Builder/Volumes/Rulesets/PlayerImpactRulesetBuilder.cs b/NewHorizons/Builder/Volumes/Rulesets/PlayerImpactRulesetBuilder.cs
index f892ea07..f6d7ed2e 100644
--- a/NewHorizons/Builder/Volumes/Rulesets/PlayerImpactRulesetBuilder.cs
+++ b/NewHorizons/Builder/Volumes/Rulesets/PlayerImpactRulesetBuilder.cs
@@ -1,4 +1,5 @@
using NewHorizons.External.Modules.Volumes;
+using NewHorizons.External.Modules.Volumes.VolumeInfos;
using UnityEngine;
namespace NewHorizons.Builder.Volumes.Rulesets
diff --git a/NewHorizons/Builder/Volumes/Rulesets/ProbeRulesetBuilder.cs b/NewHorizons/Builder/Volumes/Rulesets/ProbeRulesetBuilder.cs
index 98823ffa..33dbdbbc 100644
--- a/NewHorizons/Builder/Volumes/Rulesets/ProbeRulesetBuilder.cs
+++ b/NewHorizons/Builder/Volumes/Rulesets/ProbeRulesetBuilder.cs
@@ -1,4 +1,5 @@
using NewHorizons.External.Modules.Volumes;
+using NewHorizons.External.Modules.Volumes.VolumeInfos;
using UnityEngine;
namespace NewHorizons.Builder.Volumes.Rulesets
diff --git a/NewHorizons/Builder/Volumes/Rulesets/ThrustRulesetBuilder.cs b/NewHorizons/Builder/Volumes/Rulesets/ThrustRulesetBuilder.cs
index 8a49808d..a3677511 100644
--- a/NewHorizons/Builder/Volumes/Rulesets/ThrustRulesetBuilder.cs
+++ b/NewHorizons/Builder/Volumes/Rulesets/ThrustRulesetBuilder.cs
@@ -1,4 +1,5 @@
using NewHorizons.External.Modules.Volumes;
+using NewHorizons.External.Modules.Volumes.VolumeInfos;
using UnityEngine;
namespace NewHorizons.Builder.Volumes.Rulesets
diff --git a/NewHorizons/Builder/Volumes/SpeedTrapVolumeBuilder.cs b/NewHorizons/Builder/Volumes/SpeedTrapVolumeBuilder.cs
index 79f5a69e..fa1ed9bc 100644
--- a/NewHorizons/Builder/Volumes/SpeedTrapVolumeBuilder.cs
+++ b/NewHorizons/Builder/Volumes/SpeedTrapVolumeBuilder.cs
@@ -1,4 +1,4 @@
-using NewHorizons.External.Modules.Volumes;
+using NewHorizons.External.Modules.Volumes.VolumeInfos;
using UnityEngine;
namespace NewHorizons.Builder.Volumes
diff --git a/NewHorizons/Builder/Volumes/VanishVolumeBuilder.cs b/NewHorizons/Builder/Volumes/VanishVolumeBuilder.cs
index 68f888ca..b1a26287 100644
--- a/NewHorizons/Builder/Volumes/VanishVolumeBuilder.cs
+++ b/NewHorizons/Builder/Volumes/VanishVolumeBuilder.cs
@@ -1,5 +1,5 @@
using NewHorizons.Builder.Props;
-using NewHorizons.External.Modules.Volumes;
+using NewHorizons.External.Modules.Volumes.VolumeInfos;
using NewHorizons.Utility.OWUtilities;
using UnityEngine;
diff --git a/NewHorizons/Builder/Volumes/VisorEffects/VisorFrostEffectVolumeBuilder.cs b/NewHorizons/Builder/Volumes/VisorEffects/VisorFrostEffectVolumeBuilder.cs
index 793d72b4..029b98c9 100644
--- a/NewHorizons/Builder/Volumes/VisorEffects/VisorFrostEffectVolumeBuilder.cs
+++ b/NewHorizons/Builder/Volumes/VisorEffects/VisorFrostEffectVolumeBuilder.cs
@@ -1,4 +1,5 @@
using NewHorizons.External.Modules.Volumes;
+using NewHorizons.External.Modules.Volumes.VolumeInfos;
using UnityEngine;
namespace NewHorizons.Builder.Volumes.VisorEffects
diff --git a/NewHorizons/Builder/Volumes/VisorEffects/VisorRainEffectVolumeBuilder.cs b/NewHorizons/Builder/Volumes/VisorEffects/VisorRainEffectVolumeBuilder.cs
index e07c95e6..2f32f189 100644
--- a/NewHorizons/Builder/Volumes/VisorEffects/VisorRainEffectVolumeBuilder.cs
+++ b/NewHorizons/Builder/Volumes/VisorEffects/VisorRainEffectVolumeBuilder.cs
@@ -1,4 +1,5 @@
using NewHorizons.External.Modules.Volumes;
+using NewHorizons.External.Modules.Volumes.VolumeInfos;
using UnityEngine;
namespace NewHorizons.Builder.Volumes.VisorEffects
diff --git a/NewHorizons/Builder/Volumes/VolumeBuilder.cs b/NewHorizons/Builder/Volumes/VolumeBuilder.cs
index 2988e7c5..760bc4c2 100644
--- a/NewHorizons/Builder/Volumes/VolumeBuilder.cs
+++ b/NewHorizons/Builder/Volumes/VolumeBuilder.cs
@@ -1,5 +1,5 @@
using NewHorizons.Builder.Props;
-using NewHorizons.External.Modules.Volumes;
+using NewHorizons.External.Modules.Volumes.VolumeInfos;
using NewHorizons.Utility.OWUtilities;
using UnityEngine;
diff --git a/NewHorizons/Builder/Volumes/ZeroGVolumeBuilder.cs b/NewHorizons/Builder/Volumes/ZeroGVolumeBuilder.cs
index da1867d1..afdde0b8 100644
--- a/NewHorizons/Builder/Volumes/ZeroGVolumeBuilder.cs
+++ b/NewHorizons/Builder/Volumes/ZeroGVolumeBuilder.cs
@@ -1,4 +1,4 @@
-using NewHorizons.External.Modules.Volumes;
+using NewHorizons.External.Modules.Volumes.VolumeInfos;
using UnityEngine;
namespace NewHorizons.Builder.Volumes
diff --git a/NewHorizons/Components/Volumes/LoadCreditsVolume.cs b/NewHorizons/Components/Volumes/LoadCreditsVolume.cs
index 2720b158..60813cdf 100644
--- a/NewHorizons/Components/Volumes/LoadCreditsVolume.cs
+++ b/NewHorizons/Components/Volumes/LoadCreditsVolume.cs
@@ -1,4 +1,4 @@
-using NewHorizons.External.Modules.Volumes;
+using NewHorizons.External.Modules.SerializableEnums;
using NewHorizons.Handlers;
using System.Collections;
using UnityEngine;
diff --git a/NewHorizons/Components/Volumes/NotificationVolume.cs b/NewHorizons/Components/Volumes/NotificationVolume.cs
index 6ffa4776..97692f55 100644
--- a/NewHorizons/Components/Volumes/NotificationVolume.cs
+++ b/NewHorizons/Components/Volumes/NotificationVolume.cs
@@ -1,4 +1,4 @@
-using NewHorizons.External.Modules.Volumes;
+using NewHorizons.External.Modules.Volumes.VolumeInfos;
using NewHorizons.Handlers;
using OWML.Utils;
using UnityEngine;
diff --git a/NewHorizons/External/Configs/PlanetConfig.cs b/NewHorizons/External/Configs/PlanetConfig.cs
index 88a936e2..2d5a707d 100644
--- a/NewHorizons/External/Configs/PlanetConfig.cs
+++ b/NewHorizons/External/Configs/PlanetConfig.cs
@@ -4,6 +4,7 @@ using NewHorizons.External.Modules.Props.Dialogue;
using NewHorizons.External.Modules.Props.Quantum;
using NewHorizons.External.Modules.VariableSize;
using NewHorizons.External.Modules.Volumes;
+using NewHorizons.External.Modules.Volumes.VolumeInfos;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
diff --git a/NewHorizons/External/Modules/PropModule.cs b/NewHorizons/External/Modules/PropModule.cs
index 266cd0e4..dd6860c6 100644
--- a/NewHorizons/External/Modules/PropModule.cs
+++ b/NewHorizons/External/Modules/PropModule.cs
@@ -5,7 +5,7 @@ using NewHorizons.External.Modules.Props.Quantum;
using NewHorizons.External.Modules.Props.Remote;
using NewHorizons.External.Modules.TranslatorText;
using NewHorizons.External.Modules.VariableSize;
-using NewHorizons.External.Modules.Volumes;
+using NewHorizons.External.Modules.Volumes.VolumeInfos;
using NewHorizons.External.Modules.WarpPad;
using Newtonsoft.Json;
using System;
diff --git a/NewHorizons/External/Modules/Volumes/CreditsType.cs b/NewHorizons/External/Modules/SerializableEnums/CreditsType.cs
similarity index 85%
rename from NewHorizons/External/Modules/Volumes/CreditsType.cs
rename to NewHorizons/External/Modules/SerializableEnums/CreditsType.cs
index 984c3512..c24f6c9a 100644
--- a/NewHorizons/External/Modules/Volumes/CreditsType.cs
+++ b/NewHorizons/External/Modules/SerializableEnums/CreditsType.cs
@@ -2,7 +2,7 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System.Runtime.Serialization;
-namespace NewHorizons.External.Modules.Volumes
+namespace NewHorizons.External.Modules.SerializableEnums
{
[JsonConverter(typeof(StringEnumConverter))]
public enum CreditsType
diff --git a/NewHorizons/External/Modules/Volumes/DeathType.cs b/NewHorizons/External/Modules/SerializableEnums/DeathType.cs
similarity index 94%
rename from NewHorizons/External/Modules/Volumes/DeathType.cs
rename to NewHorizons/External/Modules/SerializableEnums/DeathType.cs
index 58a3d528..c87c30a0 100644
--- a/NewHorizons/External/Modules/Volumes/DeathType.cs
+++ b/NewHorizons/External/Modules/SerializableEnums/DeathType.cs
@@ -2,7 +2,7 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System.Runtime.Serialization;
-namespace NewHorizons.External.Modules.Volumes
+namespace NewHorizons.External.Modules.SerializableEnums
{
[JsonConverter(typeof(StringEnumConverter))]
public enum DeathType
diff --git a/NewHorizons/External/Modules/Volumes/ProbeModule.cs b/NewHorizons/External/Modules/Volumes/ProbeModule.cs
new file mode 100644
index 00000000..27568ae9
--- /dev/null
+++ b/NewHorizons/External/Modules/Volumes/ProbeModule.cs
@@ -0,0 +1,19 @@
+using NewHorizons.External.Modules.Volumes.VolumeInfos;
+using Newtonsoft.Json;
+
+namespace NewHorizons.External.Modules.Volumes
+{
+ [JsonObject]
+ public class ProbeModule
+ {
+ ///
+ /// Add probe destruction volumes to this planet. These will delete your probe.
+ ///
+ public VolumeInfo[] destructionVolumes;
+
+ ///
+ /// Add probe safety volumes to this planet. These will stop the probe destruction volumes from working.
+ ///
+ public VolumeInfo[] safetyVolumes;
+ }
+}
diff --git a/NewHorizons/External/Modules/Volumes/VolumeInfo.cs b/NewHorizons/External/Modules/Volumes/RulesetModule.cs
similarity index 51%
rename from NewHorizons/External/Modules/Volumes/VolumeInfo.cs
rename to NewHorizons/External/Modules/Volumes/RulesetModule.cs
index 561c2be7..3604ba2e 100644
--- a/NewHorizons/External/Modules/Volumes/VolumeInfo.cs
+++ b/NewHorizons/External/Modules/Volumes/RulesetModule.cs
@@ -1,88 +1,9 @@
-using NewHorizons.External.Modules.Audio;
+using NewHorizons.External.Modules.Volumes.VolumeInfos;
using Newtonsoft.Json;
-using Newtonsoft.Json.Converters;
using System.ComponentModel;
-using System.ComponentModel.DataAnnotations;
-using System.Runtime.Serialization;
namespace NewHorizons.External.Modules.Volumes
{
- [JsonObject]
- public class VolumeInfo : GeneralPointPropInfo
- {
- ///
- /// The radius of this volume.
- ///
- [DefaultValue(1f)] public float radius = 1f;
- }
-
-
-
-
-
-
-
- [JsonObject]
- public class ProbeModule
- {
- ///
- /// Add probe destruction volumes to this planet. These will delete your probe.
- ///
- public VolumeInfo[] destructionVolumes;
-
- ///
- /// Add probe safety volumes to this planet. These will stop the probe destruction volumes from working.
- ///
- public VolumeInfo[] safetyVolumes;
- }
-
- [JsonObject]
- public class VisorEffectModule
- {
- ///
- /// Add visor frost effect volumes to this planet. This is the ghost matter effect.
- ///
- public FrostEffectVolumeInfo[] frostEffectVolumes;
-
- ///
- /// Add visor rain effect volumes to this planet. You can see this on Giant's Deep.
- ///
- public RainEffectVolumeInfo[] rainEffectVolumes;
-
- [JsonObject]
- public class FrostEffectVolumeInfo : PriorityVolumeInfo
- {
- ///
- /// The rate at which the frost effect will get stronger
- ///
- [DefaultValue(0.5f)]
- public float frostRate = 0.5f;
-
- ///
- /// The maximum strength of frost this volume can give
- ///
- [Range(0f, 1f)]
- [DefaultValue(0.91f)]
- public float maxFrost = 0.91f;
- }
-
- [JsonObject]
- public class RainEffectVolumeInfo : PriorityVolumeInfo
- {
- ///
- /// The rate at which the rain droplet effect will happen
- ///
- [DefaultValue(0.1f)]
- public float dropletRate = 10f;
-
- ///
- /// The rate at which the rain streak effect will happen
- ///
- [DefaultValue(1f)]
- public float streakRate = 1f;
- }
- }
-
[JsonObject]
public class RulesetModule
{
@@ -166,19 +87,4 @@ namespace NewHorizons.External.Modules.Volumes
}
}
- [JsonObject]
- public class SpeedTrapVolumeInfo : VolumeInfo
- {
- ///
- /// The speed the volume will slow you down to when you enter it.
- ///
- [DefaultValue(10f)]
- public float speedLimit = 10f;
-
- ///
- /// How fast it will slow down the player to the speed limit.
- ///
- [DefaultValue(3f)]
- public float acceleration = 3f;
- }
}
diff --git a/NewHorizons/External/Modules/Volumes/VisorEffectModule.cs b/NewHorizons/External/Modules/Volumes/VisorEffectModule.cs
new file mode 100644
index 00000000..29c5ce45
--- /dev/null
+++ b/NewHorizons/External/Modules/Volumes/VisorEffectModule.cs
@@ -0,0 +1,55 @@
+using NewHorizons.External.Modules.Volumes.VolumeInfos;
+using Newtonsoft.Json;
+using System.ComponentModel;
+using System.ComponentModel.DataAnnotations;
+
+namespace NewHorizons.External.Modules.Volumes
+{
+ [JsonObject]
+ public class VisorEffectModule
+ {
+ ///
+ /// Add visor frost effect volumes to this planet. This is the ghost matter effect.
+ ///
+ public FrostEffectVolumeInfo[] frostEffectVolumes;
+
+ ///
+ /// Add visor rain effect volumes to this planet. You can see this on Giant's Deep.
+ ///
+ public RainEffectVolumeInfo[] rainEffectVolumes;
+
+ [JsonObject]
+ public class FrostEffectVolumeInfo : PriorityVolumeInfo
+ {
+ ///
+ /// The rate at which the frost effect will get stronger
+ ///
+ [DefaultValue(0.5f)]
+ public float frostRate = 0.5f;
+
+ ///
+ /// The maximum strength of frost this volume can give
+ ///
+ [Range(0f, 1f)]
+ [DefaultValue(0.91f)]
+ public float maxFrost = 0.91f;
+ }
+
+ [JsonObject]
+ public class RainEffectVolumeInfo : PriorityVolumeInfo
+ {
+ ///
+ /// The rate at which the rain droplet effect will happen
+ ///
+ [DefaultValue(0.1f)]
+ public float dropletRate = 10f;
+
+ ///
+ /// The rate at which the rain streak effect will happen
+ ///
+ [DefaultValue(1f)]
+ public float streakRate = 1f;
+ }
+ }
+
+}
diff --git a/NewHorizons/External/Modules/Volumes/AudioVolumeInfo.cs b/NewHorizons/External/Modules/Volumes/VolumeInfos/AudioVolumeInfo.cs
similarity index 96%
rename from NewHorizons/External/Modules/Volumes/AudioVolumeInfo.cs
rename to NewHorizons/External/Modules/Volumes/VolumeInfos/AudioVolumeInfo.cs
index 48803e6f..f1b692f0 100644
--- a/NewHorizons/External/Modules/Volumes/AudioVolumeInfo.cs
+++ b/NewHorizons/External/Modules/Volumes/VolumeInfos/AudioVolumeInfo.cs
@@ -3,7 +3,7 @@ using Newtonsoft.Json;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
-namespace NewHorizons.External.Modules.Volumes
+namespace NewHorizons.External.Modules.Volumes.VolumeInfos
{
[JsonObject]
public class AudioVolumeInfo : PriorityVolumeInfo
diff --git a/NewHorizons/External/Modules/Volumes/ChangeStarSystemVolumeInfo.cs b/NewHorizons/External/Modules/Volumes/VolumeInfos/ChangeStarSystemVolumeInfo.cs
similarity index 84%
rename from NewHorizons/External/Modules/Volumes/ChangeStarSystemVolumeInfo.cs
rename to NewHorizons/External/Modules/Volumes/VolumeInfos/ChangeStarSystemVolumeInfo.cs
index 77c07638..969a5945 100644
--- a/NewHorizons/External/Modules/Volumes/ChangeStarSystemVolumeInfo.cs
+++ b/NewHorizons/External/Modules/Volumes/VolumeInfos/ChangeStarSystemVolumeInfo.cs
@@ -1,7 +1,7 @@
using Newtonsoft.Json;
using System.ComponentModel;
-namespace NewHorizons.External.Modules.Volumes
+namespace NewHorizons.External.Modules.Volumes.VolumeInfos
{
[JsonObject]
public class ChangeStarSystemVolumeInfo : VolumeInfo
diff --git a/NewHorizons/External/Modules/Volumes/DestructionVolumeInfo.cs b/NewHorizons/External/Modules/Volumes/VolumeInfos/DestructionVolumeInfo.cs
similarity index 85%
rename from NewHorizons/External/Modules/Volumes/DestructionVolumeInfo.cs
rename to NewHorizons/External/Modules/Volumes/VolumeInfos/DestructionVolumeInfo.cs
index eb3cd662..3660a74c 100644
--- a/NewHorizons/External/Modules/Volumes/DestructionVolumeInfo.cs
+++ b/NewHorizons/External/Modules/Volumes/VolumeInfos/DestructionVolumeInfo.cs
@@ -1,7 +1,7 @@
using Newtonsoft.Json;
using System.ComponentModel;
-namespace NewHorizons.External.Modules.Volumes
+namespace NewHorizons.External.Modules.Volumes.VolumeInfos
{
[JsonObject]
public class DestructionVolumeInfo : VanishVolumeInfo
diff --git a/NewHorizons/External/Modules/Volumes/FluidVolumeInfo.cs b/NewHorizons/External/Modules/Volumes/VolumeInfos/FluidVolumeInfo.cs
similarity index 94%
rename from NewHorizons/External/Modules/Volumes/FluidVolumeInfo.cs
rename to NewHorizons/External/Modules/Volumes/VolumeInfos/FluidVolumeInfo.cs
index 80e89be0..7d05fa2f 100644
--- a/NewHorizons/External/Modules/Volumes/FluidVolumeInfo.cs
+++ b/NewHorizons/External/Modules/Volumes/VolumeInfos/FluidVolumeInfo.cs
@@ -2,7 +2,7 @@ using NewHorizons.External.Modules.SerializableEnums;
using Newtonsoft.Json;
using System.ComponentModel;
-namespace NewHorizons.External.Modules.Volumes
+namespace NewHorizons.External.Modules.Volumes.VolumeInfos
{
[JsonObject]
public class FluidVolumeInfo : PriorityVolumeInfo
diff --git a/NewHorizons/External/Modules/Volumes/HazardVolumeInfo.cs b/NewHorizons/External/Modules/Volumes/VolumeInfos/HazardVolumeInfo.cs
similarity index 96%
rename from NewHorizons/External/Modules/Volumes/HazardVolumeInfo.cs
rename to NewHorizons/External/Modules/Volumes/VolumeInfos/HazardVolumeInfo.cs
index c5ffa978..d50a62bb 100644
--- a/NewHorizons/External/Modules/Volumes/HazardVolumeInfo.cs
+++ b/NewHorizons/External/Modules/Volumes/VolumeInfos/HazardVolumeInfo.cs
@@ -3,7 +3,7 @@ using Newtonsoft.Json.Converters;
using System.ComponentModel;
using System.Runtime.Serialization;
-namespace NewHorizons.External.Modules.Volumes
+namespace NewHorizons.External.Modules.Volumes.VolumeInfos
{
[JsonObject]
diff --git a/NewHorizons/External/Modules/Volumes/LoadCreditsVolumeInfo.cs b/NewHorizons/External/Modules/Volumes/VolumeInfos/LoadCreditsVolumeInfo.cs
similarity index 84%
rename from NewHorizons/External/Modules/Volumes/LoadCreditsVolumeInfo.cs
rename to NewHorizons/External/Modules/Volumes/VolumeInfos/LoadCreditsVolumeInfo.cs
index 16c5fa64..b8f4874e 100644
--- a/NewHorizons/External/Modules/Volumes/LoadCreditsVolumeInfo.cs
+++ b/NewHorizons/External/Modules/Volumes/VolumeInfos/LoadCreditsVolumeInfo.cs
@@ -1,7 +1,8 @@
+using NewHorizons.External.Modules.SerializableEnums;
using Newtonsoft.Json;
using System.ComponentModel;
-namespace NewHorizons.External.Modules.Volumes
+namespace NewHorizons.External.Modules.Volumes.VolumeInfos
{
[JsonObject]
public class LoadCreditsVolumeInfo : VolumeInfo
diff --git a/NewHorizons/External/Modules/Volumes/NotificationVolumeInfo.cs b/NewHorizons/External/Modules/Volumes/VolumeInfos/NotificationVolumeInfo.cs
similarity index 95%
rename from NewHorizons/External/Modules/Volumes/NotificationVolumeInfo.cs
rename to NewHorizons/External/Modules/Volumes/VolumeInfos/NotificationVolumeInfo.cs
index ddd83290..5750c913 100644
--- a/NewHorizons/External/Modules/Volumes/NotificationVolumeInfo.cs
+++ b/NewHorizons/External/Modules/Volumes/VolumeInfos/NotificationVolumeInfo.cs
@@ -3,7 +3,7 @@ using Newtonsoft.Json.Converters;
using System.ComponentModel;
using System.Runtime.Serialization;
-namespace NewHorizons.External.Modules.Volumes
+namespace NewHorizons.External.Modules.Volumes.VolumeInfos
{
[JsonObject]
public class NotificationVolumeInfo : VolumeInfo
diff --git a/NewHorizons/External/Modules/Volumes/OxygenVolumeInfo.cs b/NewHorizons/External/Modules/Volumes/VolumeInfos/OxygenVolumeInfo.cs
similarity index 90%
rename from NewHorizons/External/Modules/Volumes/OxygenVolumeInfo.cs
rename to NewHorizons/External/Modules/Volumes/VolumeInfos/OxygenVolumeInfo.cs
index b69d62a2..1a98ff09 100644
--- a/NewHorizons/External/Modules/Volumes/OxygenVolumeInfo.cs
+++ b/NewHorizons/External/Modules/Volumes/VolumeInfos/OxygenVolumeInfo.cs
@@ -1,7 +1,7 @@
using Newtonsoft.Json;
using System.ComponentModel;
-namespace NewHorizons.External.Modules.Volumes
+namespace NewHorizons.External.Modules.Volumes.VolumeInfos
{
[JsonObject]
public class OxygenVolumeInfo : VolumeInfo
diff --git a/NewHorizons/External/Modules/Volumes/PriorityVolumeInfo.cs b/NewHorizons/External/Modules/Volumes/VolumeInfos/PriorityVolumeInfo.cs
similarity index 90%
rename from NewHorizons/External/Modules/Volumes/PriorityVolumeInfo.cs
rename to NewHorizons/External/Modules/Volumes/VolumeInfos/PriorityVolumeInfo.cs
index 8ff41351..574d93dc 100644
--- a/NewHorizons/External/Modules/Volumes/PriorityVolumeInfo.cs
+++ b/NewHorizons/External/Modules/Volumes/VolumeInfos/PriorityVolumeInfo.cs
@@ -1,7 +1,7 @@
using Newtonsoft.Json;
using System.ComponentModel;
-namespace NewHorizons.External.Modules.Volumes
+namespace NewHorizons.External.Modules.Volumes.VolumeInfos
{
[JsonObject]
public class PriorityVolumeInfo : VolumeInfo
diff --git a/NewHorizons/External/Modules/Volumes/RevealVolumeInfo.cs b/NewHorizons/External/Modules/Volumes/VolumeInfos/RevealVolumeInfo.cs
similarity index 96%
rename from NewHorizons/External/Modules/Volumes/RevealVolumeInfo.cs
rename to NewHorizons/External/Modules/Volumes/VolumeInfos/RevealVolumeInfo.cs
index fb73686b..2f577918 100644
--- a/NewHorizons/External/Modules/Volumes/RevealVolumeInfo.cs
+++ b/NewHorizons/External/Modules/Volumes/VolumeInfos/RevealVolumeInfo.cs
@@ -3,7 +3,7 @@ using Newtonsoft.Json.Converters;
using System.ComponentModel;
using System.Runtime.Serialization;
-namespace NewHorizons.External.Modules.Volumes
+namespace NewHorizons.External.Modules.Volumes.VolumeInfos
{
[JsonObject]
public class RevealVolumeInfo : VolumeInfo
diff --git a/NewHorizons/External/Modules/Volumes/VolumeInfos/SpeedTrapVolumeInfo.cs b/NewHorizons/External/Modules/Volumes/VolumeInfos/SpeedTrapVolumeInfo.cs
new file mode 100644
index 00000000..12c05c6d
--- /dev/null
+++ b/NewHorizons/External/Modules/Volumes/VolumeInfos/SpeedTrapVolumeInfo.cs
@@ -0,0 +1,21 @@
+using Newtonsoft.Json;
+using System.ComponentModel;
+
+namespace NewHorizons.External.Modules.Volumes.VolumeInfos
+{
+ [JsonObject]
+ public class SpeedTrapVolumeInfo : VolumeInfo
+ {
+ ///
+ /// The speed the volume will slow you down to when you enter it.
+ ///
+ [DefaultValue(10f)]
+ public float speedLimit = 10f;
+
+ ///
+ /// How fast it will slow down the player to the speed limit.
+ ///
+ [DefaultValue(3f)]
+ public float acceleration = 3f;
+ }
+}
diff --git a/NewHorizons/External/Modules/Volumes/VanishVolumeInfo.cs b/NewHorizons/External/Modules/Volumes/VolumeInfos/VanishVolumeInfo.cs
similarity index 89%
rename from NewHorizons/External/Modules/Volumes/VanishVolumeInfo.cs
rename to NewHorizons/External/Modules/Volumes/VolumeInfos/VanishVolumeInfo.cs
index 83104719..0cab17e6 100644
--- a/NewHorizons/External/Modules/Volumes/VanishVolumeInfo.cs
+++ b/NewHorizons/External/Modules/Volumes/VolumeInfos/VanishVolumeInfo.cs
@@ -1,7 +1,7 @@
using Newtonsoft.Json;
using System.ComponentModel;
-namespace NewHorizons.External.Modules.Volumes
+namespace NewHorizons.External.Modules.Volumes.VolumeInfos
{
[JsonObject]
public class VanishVolumeInfo : VolumeInfo
diff --git a/NewHorizons/External/Modules/Volumes/VolumeInfos/VolumeInfo.cs b/NewHorizons/External/Modules/Volumes/VolumeInfos/VolumeInfo.cs
new file mode 100644
index 00000000..8016c7d3
--- /dev/null
+++ b/NewHorizons/External/Modules/Volumes/VolumeInfos/VolumeInfo.cs
@@ -0,0 +1,18 @@
+using NewHorizons.External.Modules.Audio;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Converters;
+using System.ComponentModel;
+using System.ComponentModel.DataAnnotations;
+using System.Runtime.Serialization;
+
+namespace NewHorizons.External.Modules.Volumes.VolumeInfos
+{
+ [JsonObject]
+ public class VolumeInfo : GeneralPointPropInfo
+ {
+ ///
+ /// The radius of this volume.
+ ///
+ [DefaultValue(1f)] public float radius = 1f;
+ }
+}
diff --git a/NewHorizons/External/Modules/Volumes/VolumesModule.cs b/NewHorizons/External/Modules/Volumes/VolumesModule.cs
index 67d255a4..9d5a9163 100644
--- a/NewHorizons/External/Modules/Volumes/VolumesModule.cs
+++ b/NewHorizons/External/Modules/Volumes/VolumesModule.cs
@@ -1,3 +1,4 @@
+using NewHorizons.External.Modules.Volumes.VolumeInfos;
using Newtonsoft.Json;
namespace NewHorizons.External.Modules.Volumes