diff --git a/NewHorizons/Builder/Body/ProxyBuilder.cs b/NewHorizons/Builder/Body/ProxyBuilder.cs index 32f7d355..89820072 100644 --- a/NewHorizons/Builder/Body/ProxyBuilder.cs +++ b/NewHorizons/Builder/Body/ProxyBuilder.cs @@ -120,10 +120,13 @@ namespace NewHorizons.Builder.Body } } - if (body.Config.Ring != null) + if (body.Config.Rings != null) { - RingBuilder.MakeRingGraphics(proxy, null, body.Config.Ring, body.Mod); - if (realSize < body.Config.Ring.outerRadius) realSize = body.Config.Ring.outerRadius; + foreach (var ring in body.Config.Rings) + { + RingBuilder.MakeRingGraphics(proxy, null, ring, body.Mod); + if (realSize < ring.outerRadius) realSize = ring.outerRadius; + } } Renderer starAtmosphere = null; diff --git a/NewHorizons/Builder/Body/RingBuilder.cs b/NewHorizons/Builder/Body/RingBuilder.cs index 9d2e6b05..a0918a56 100644 --- a/NewHorizons/Builder/Body/RingBuilder.cs +++ b/NewHorizons/Builder/Body/RingBuilder.cs @@ -73,7 +73,7 @@ namespace NewHorizons.Builder.Body return null; } - var ringGO = new GameObject("Ring"); + var ringGO = new GameObject(!string.IsNullOrEmpty(ring.rename) ? ring.rename : "Ring"); ringGO.transform.parent = sector?.transform ?? rootObject.transform; ringGO.transform.position = rootObject.transform.position; ringGO.transform.rotation = rootObject.transform.rotation; diff --git a/NewHorizons/External/Configs/PlanetConfig.cs b/NewHorizons/External/Configs/PlanetConfig.cs index 4ea8a886..d429d405 100644 --- a/NewHorizons/External/Configs/PlanetConfig.cs +++ b/NewHorizons/External/Configs/PlanetConfig.cs @@ -67,6 +67,10 @@ namespace NewHorizons.External.Configs [Obsolete("Signal is deprecated, please use Props->signals")] public SignalModule Signal; + + [Obsolete("Ring is deprecated, please use Rings")] + public RingModule Ring; + #endregion Obsolete /// @@ -135,9 +139,9 @@ namespace NewHorizons.External.Configs public string[] removeChildren; /// - /// Creates a ring around the planet + /// Create rings around the planet /// - public RingModule Ring; + public RingModule[] Rings; /// /// Add sand to this planet diff --git a/NewHorizons/External/Modules/RingModule.cs b/NewHorizons/External/Modules/RingModule.cs index 5f21a8a6..a5c93c4c 100644 --- a/NewHorizons/External/Modules/RingModule.cs +++ b/NewHorizons/External/Modules/RingModule.cs @@ -62,5 +62,10 @@ namespace NewHorizons.External.Modules /// Fade rings in/out over time. Optional. Value between 0-1, time is in minutes. /// public TimeValuePair[] opacityCurve; + + /// + /// An optional rename of this object + /// + public string rename; } } \ No newline at end of file diff --git a/NewHorizons/Handlers/PlanetCreationHandler.cs b/NewHorizons/Handlers/PlanetCreationHandler.cs index ec75a23c..4e4bab9b 100644 --- a/NewHorizons/Handlers/PlanetCreationHandler.cs +++ b/NewHorizons/Handlers/PlanetCreationHandler.cs @@ -547,9 +547,12 @@ namespace NewHorizons.Handlers } } - if (body.Config.Ring != null) + if (body.Config.Rings != null) { - RingBuilder.Make(go, sector, body.Config.Ring, body.Mod); + foreach (var ring in body.Config.Rings) + { + RingBuilder.Make(go, sector, ring, body.Mod); + } } if (body.Config.AsteroidBelt != null) diff --git a/NewHorizons/Handlers/TitleSceneHandler.cs b/NewHorizons/Handlers/TitleSceneHandler.cs index ea435305..9faee29c 100644 --- a/NewHorizons/Handlers/TitleSceneHandler.cs +++ b/NewHorizons/Handlers/TitleSceneHandler.cs @@ -107,13 +107,16 @@ namespace NewHorizons.Handlers } pivot.name = "Pivot"; - if (body.Config.Ring != null) + if (body.Config.Rings != null && body.Config.Rings.Length > 0) { - RingModule newRing = new RingModule(); - newRing.innerRadius = size * 1.2f; - newRing.outerRadius = size * 2f; - newRing.texture = body.Config.Ring.texture; - var ring = RingBuilder.Make(titleScreenGO, null, newRing, body.Mod); + foreach (var ring in body.Config.Rings) + { + RingModule newRing = new RingModule(); + newRing.innerRadius = size * 1.2f; + newRing.outerRadius = size * 2f; + newRing.texture = ring.texture; + RingBuilder.Make(titleScreenGO, null, newRing, body.Mod); + } titleScreenGO.transform.localScale = Vector3.one * 0.8f; }