From 996bbb99ff8cf8e921dfba0b0f65d4d333309523 Mon Sep 17 00:00:00 2001 From: R-T-B <21GunSoftware@comcast.net> Date: Thu, 28 Jan 2021 12:16:26 -0800 Subject: [PATCH] Release 69. Comet GameEvents.onNewVesselCreated nullref fix --- .../Constants/CompatibilityChecker.cs | 2 +- .../RuntimeUtility/DiscoverableObjects.cs | 21 +++++-------------- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/src/Kopernicus/Constants/CompatibilityChecker.cs b/src/Kopernicus/Constants/CompatibilityChecker.cs index ba0a3ae08..135739c36 100755 --- a/src/Kopernicus/Constants/CompatibilityChecker.cs +++ b/src/Kopernicus/Constants/CompatibilityChecker.cs @@ -65,7 +65,7 @@ public class CompatibilityChecker : MonoBehaviour internal const Int32 VERSION_MINOR = 11; internal const Int32 REVISION = 0; #endif - internal const Int32 KOPERNICUS = 68; + internal const Int32 KOPERNICUS = 69; public static Boolean IsCompatible() { diff --git a/src/Kopernicus/RuntimeUtility/DiscoverableObjects.cs b/src/Kopernicus/RuntimeUtility/DiscoverableObjects.cs index cc172e185..ecb385b2b 100755 --- a/src/Kopernicus/RuntimeUtility/DiscoverableObjects.cs +++ b/src/Kopernicus/RuntimeUtility/DiscoverableObjects.cs @@ -269,7 +269,7 @@ public void SpawnAsteroid(Asteroid asteroid, UInt32 seed) } else { - float fragmentDynamicPressureModifier = 0f; + float fragmentDynamicPressureModifier = 0f; bool optimizedCollider = false; CometOrbitType cometType = CometManager.GenerateWeightedCometType(); Orbit cometOrbit = cometType.CalculateHomeOrbit(); @@ -282,24 +282,13 @@ public void SpawnAsteroid(Asteroid asteroid, UInt32 seed) configNode.AddValue("cometPartId", value); ConfigNode configNode3 = new ConfigNode("VESSELMODULES"); configNode3.AddNode(configNode); - vessel = ProtoVessel.CreateVesselNode(DiscoverableObjectsUtil.GenerateCometName(), VesselType.SpaceObject, cometOrbit, 0, new ConfigNode[1] - { - configNode2 - }, new ConfigNode("ACTIONGROUPS"), ProtoVessel.CreateDiscoveryNode(DiscoveryLevels.Presence, randomObjClass, lifetime, maxLifetime), configNode3); + vessel = ProtoVessel.CreateVesselNode(DiscoverableObjectsUtil.GenerateCometName(), VesselType.SpaceObject, cometOrbit, 0, new ConfigNode[1] { configNode2 }, new ConfigNode("ACTIONGROUPS"), ProtoVessel.CreateDiscoveryNode(DiscoveryLevels.Presence, randomObjClass, lifetime, maxLifetime), configNode3); OverrideNode(ref vessel, asteroid.Vessel); ProtoVessel protoVessel = new ProtoVessel(vessel, HighLogic.CurrentGame); - try - { - Kopernicus.Events.OnRuntimeUtilitySpawnAsteroid.Fire(asteroid, protoVessel); - GameEvents.onNewVesselCreated.Fire(protoVessel.vesselRef); - GameEvents.onAsteroidSpawned.Fire(protoVessel.vesselRef); - } - catch - { - //I don't know why this is needed. - } + Kopernicus.Events.OnRuntimeUtilitySpawnAsteroid.Fire(asteroid, protoVessel); protoVessel.Load(HighLogic.CurrentGame.flightState); - + GameEvents.onNewVesselCreated.Fire(protoVessel.vesselRef); + GameEvents.onAsteroidSpawned.Fire(protoVessel.vesselRef); Debug.Log("[Kopernicus] New object found near " + body.name + ": " + protoVessel.vesselName + "!"); } #endif