From fdde9a22387ba3a1788616c45dcc6d1853d4881a Mon Sep 17 00:00:00 2001 From: "Nick J. Connors" Date: Tue, 4 Jan 2022 17:29:44 -0500 Subject: [PATCH] Bug fixes --- .../Builder/Body/SingularityBuilder.cs | 29 ++++++++++-------- .../Builder/General/HeavenlyBodyBuilder.cs | 6 ---- .../Builder/General/PlanetDestroyer.cs | 30 +++++++++++++++++++ NewHorizons/Main.cs | 15 ++++------ NewHorizons/manifest.json | 2 +- 5 files changed, 54 insertions(+), 28 deletions(-) diff --git a/NewHorizons/Builder/Body/SingularityBuilder.cs b/NewHorizons/Builder/Body/SingularityBuilder.cs index c858ae22..7386a983 100644 --- a/NewHorizons/Builder/Body/SingularityBuilder.cs +++ b/NewHorizons/Builder/Body/SingularityBuilder.cs @@ -24,24 +24,29 @@ namespace NewHorizons.Builder.Body public static void Make(GameObject body, Sector sector, OWRigidbody OWRB, IPlanetConfig config) { - - var size = config.Base.BlackHoleSize; - string pairedSingularity = null; - var polarity = Polarity.BlackHole; - - if (config.Singularity != null) + // Backwards compatibility + if(config.Singularity == null) { - size = config.Singularity.Size; - pairedSingularity = config.Singularity.PairedSingularity; - if(config.Singularity.Type != null && config.Singularity.Type.ToUpper().Equals("WHITEHOLE")) + if(config.Base.BlackHoleSize != 0) { - polarity = Polarity.WhiteHole; + MakeBlackHole(body, sector, Vector3.zero, config.Base.BlackHoleSize, true, null); } + return; } - bool isWormHole = config.Singularity.TargetStarSystem != null; + + var size = config.Singularity.Size; + var pairedSingularity = config.Singularity.PairedSingularity; + + var polarity = Polarity.BlackHole; + if (config.Singularity.Type != null && config.Singularity.Type.ToUpper().Equals("WHITEHOLE")) + { + polarity = Polarity.WhiteHole; + } + + bool isWormHole = config.Singularity?.TargetStarSystem != null; bool hasHazardVolume = !isWormHole && (pairedSingularity == null); - Vector3 localPosition = config.Singularity.Position == null ? Vector3.zero : (Vector3)config.Singularity.Position; + Vector3 localPosition = config.Singularity?.Position == null ? Vector3.zero : (Vector3)config.Singularity.Position; GameObject newSingularity = null; switch (polarity) diff --git a/NewHorizons/Builder/General/HeavenlyBodyBuilder.cs b/NewHorizons/Builder/General/HeavenlyBodyBuilder.cs index 25d2dd8b..1f5c11f2 100644 --- a/NewHorizons/Builder/General/HeavenlyBodyBuilder.cs +++ b/NewHorizons/Builder/General/HeavenlyBodyBuilder.cs @@ -110,8 +110,6 @@ namespace NewHorizons.Builder.General primary.transform.position = point.transform.position + primaryCartesianState.Item1; secondary.transform.position = point.transform.position + secondaryCartesianState.Item1; - Logger.Log($"Positions: {primary.transform.position}, {secondary.transform.position}"); - var primaryOriginal = mapping[primaryHB]; var secondaryOriginal = mapping[secondaryHB]; @@ -159,10 +157,6 @@ namespace NewHorizons.Builder.General { trackingOrbitSecondary.TrailTime = period; } - - Logger.Log($"{parent}: {mapping[parent]}"); - Logger.Log($"{primaryHB}: {mapping[primaryHB]}"); - Logger.Log($"{secondaryHB}: {mapping[secondaryHB]}"); } } } diff --git a/NewHorizons/Builder/General/PlanetDestroyer.cs b/NewHorizons/Builder/General/PlanetDestroyer.cs index 9f061e88..4d586323 100644 --- a/NewHorizons/Builder/General/PlanetDestroyer.cs +++ b/NewHorizons/Builder/General/PlanetDestroyer.cs @@ -12,6 +12,36 @@ namespace NewHorizons.Builder.General { static class PlanetDestroyer { + private static readonly string[] _solarSystemBodies = new string[] + { + "Ash Twin", + "Attlerock", + "Brittle Hollow", + "Dark Bramble", + "DreamWorld", + "Ember Twin", + "Giant's Deep", + "Hollow's Lantern", + "Interloper", + "Map Satellite", + "Orbital Probe Cannon", + "Quantum Moon", + "RingWorld", + "Sun", + "Sun Station", + "Timber Hearth", + "White Hole" + }; + + public static void RemoveSolarSystem() + { + foreach(var name in _solarSystemBodies) + { + var ao = AstroObjectLocator.GetAstroObject(name); + if (ao != null) RemoveBody(ao); + } + } + public static void RemoveBody(AstroObject ao, List toDestroy = null) { Logger.Log($"Removing {ao.name}"); diff --git a/NewHorizons/Main.cs b/NewHorizons/Main.cs index 9c38c8de..0165c355 100644 --- a/NewHorizons/Main.cs +++ b/NewHorizons/Main.cs @@ -85,8 +85,6 @@ namespace NewHorizons _isChangingStarSystem = false; - HeavenlyBodyBuilder.Reset(); - if (scene.name.Equals("TitleScreen")) DisplayBodyOnTitleScreen(); if (scene.name != "SolarSystem") @@ -96,6 +94,8 @@ namespace NewHorizons return; } + HeavenlyBodyBuilder.Reset(); + NewHorizonsData.Load(); Instance.ModHelper.Events.Unity.FireOnNextUpdate(() => ShipLogBuilder.Init()); @@ -192,14 +192,10 @@ namespace NewHorizons // I don't know what these do but they look really weird from a distance Instance.ModHelper.Events.Unity.FireOnNextUpdate(() => PlanetDestroyer.RemoveDistantProxyClones()); + if(!_currentStarSystem.Equals("SolarSystem")) Instance.ModHelper.Events.Unity.FireOnNextUpdate(() => PlanetDestroyer.RemoveSolarSystem()); + var map = GameObject.FindObjectOfType(); if (map != null) map._maxPanDistance = FurthestOrbit * 1.5f; - /* - foreach(var cam in GameObject.FindObjectsOfType()) - { - cam.farClipPlane = FurthestOrbit * 3f; - } - */ } public void DisplayBodyOnTitleScreen() @@ -349,6 +345,7 @@ namespace NewHorizons { var config = mod.ModHelper.Storage.Load(file.Replace(folder, "")); Logger.Log($"Loaded {config.Name}"); + if (config.Base.CenterOfSolarSystem) config.Orbit.IsStatic = true; BodyList.Add(new NewHorizonsBody(config, mod.ModHelper.Assets, mod.ModHelper.Manifest.UniqueName)); } catch (Exception e) @@ -460,7 +457,7 @@ namespace NewHorizons SpawnPointBuilder.Make(go, body.Config.Spawn, owRigidBody); } - if (body.Config.Orbit.ShowOrbitLine) OrbitlineBuilder.Make(body.Object, ao, body.Config.Orbit.IsMoon, body.Config); + if (body.Config.Orbit.ShowOrbitLine && !body.Config.Orbit.IsStatic) OrbitlineBuilder.Make(body.Object, ao, body.Config.Orbit.IsMoon, body.Config); if (!body.Config.Orbit.IsStatic) DetectorBuilder.Make(go, owRigidBody, primaryBody, ao); diff --git a/NewHorizons/manifest.json b/NewHorizons/manifest.json index 97a29a4f..7231c9c7 100644 --- a/NewHorizons/manifest.json +++ b/NewHorizons/manifest.json @@ -3,7 +3,7 @@ "author": "xen", "name": "New Horizons", "uniqueName": "xen.NewHorizons", - "version": "0.5.0", + "version": "0.5.1", "owmlVersion": "2.1.0", "dependencies": [ "PacificEngine.OW_CommonResources" ] }