diff --git a/NewHorizons/External/Configs/StarSystemConfig.cs b/NewHorizons/External/Configs/StarSystemConfig.cs index dac5e069..d190244a 100644 --- a/NewHorizons/External/Configs/StarSystemConfig.cs +++ b/NewHorizons/External/Configs/StarSystemConfig.cs @@ -43,8 +43,14 @@ namespace NewHorizons.External.Configs /// /// Customize the skybox for this system /// + [Obsolete("skybox is deprecated, please use Skybox instead")] public SkyboxConfig skybox; + /// + /// Customize the skybox for this system + /// + public SkyboxModule Skybox; + /// /// Set to `true` if you want to spawn here after dying, not Timber Hearth. You can still warp back to the main star /// system. @@ -117,6 +123,7 @@ namespace NewHorizons.External.Configs public int[] z; } + [Obsolete("SkyboxConfig is deprecated, please use SkyboxModule instead")] [JsonObject] public class SkyboxConfig { @@ -134,6 +141,52 @@ namespace NewHorizons.External.Configs /// Path to the material within the asset bundle specified by `assetBundle` to use for the skybox /// public string path; + + } + + [JsonObject] + public class SkyboxModule + { + + /// + /// Whether to destroy the star field around the player + /// + public bool destroyStarField; + + /// + /// Whether to use a cube for the skybox instead of a smooth sphere + /// + public bool useCube; + + /// + /// Relative filepath to the texture to use for the skybox's positive X direction + /// + public string rightPath; + + /// + /// Relative filepath to the texture to use for the skybox's negative X direction + /// + public string leftPath; + + /// + /// Relative filepath to the texture to use for the skybox's positive Y direction + /// + public string topPath; + + /// + /// Relative filepath to the texture to use for the skybox's negative Y direction + /// + public string bottomPath; + + /// + /// Relative filepath to the texture to use for the skybox's positive Z direction + /// + public string frontPath; + + /// + /// Relative filepath to the texture to use for the skybox's negative Z direction + /// + public string backPath; } /// @@ -162,7 +215,10 @@ namespace NewHorizons.External.Configs // If current one is null take the other factRequiredForWarp = string.IsNullOrEmpty(factRequiredForWarp) ? otherConfig.factRequiredForWarp : factRequiredForWarp; +#pragma warning disable CS0618 // Type or member is obsolete skybox = skybox == null ? otherConfig.skybox : skybox; +#pragma warning restore CS0618 // Type or member is obsolete + Skybox = Skybox == null ? otherConfig.Skybox : Skybox; travelAudio = string.IsNullOrEmpty(travelAudio) ? otherConfig.travelAudio : travelAudio; // False by default so if one is true go true @@ -187,6 +243,14 @@ namespace NewHorizons.External.Configs #pragma warning disable 612, 618 if (!string.IsNullOrEmpty(travelAudioClip)) travelAudio = travelAudioClip; if (!string.IsNullOrEmpty(travelAudioFilePath)) travelAudio = travelAudioFilePath; + if (skybox != null) + { + if (Skybox == null) + { + Skybox = new SkyboxModule(); + Skybox.destroyStarField = skybox.destroyStarField; + } + } } } } \ No newline at end of file