public void OnDestroy() { if (_portrait != null) { _portrait.Release(); } if (_instructor != null) { Destroy(_instructor.gameObject); } if (enable) { RBMenuAppLToolBar.Destroy(); } GameEvents.onGUIRnDComplexDespawn.Remove(TurnUIOff); GameEvents.onGUIMissionControlDespawn.Remove(TurnUIOff); GameEvents.onGUIAstronautComplexSpawn.Remove(TurnUIOff); GameEvents.onGUIAdministrationFacilitySpawn.Remove(TurnUIOff); GameEvents.onGUIRnDComplexDespawn.Remove(TurnUIOn); GameEvents.onGUIMissionControlDespawn.Remove(TurnUIOn); GameEvents.onGUIAstronautComplexDespawn.Remove(TurnUIOn); GameEvents.onGUIAdministrationFacilityDespawn.Remove(TurnUIOn); GameEvents.onVesselSOIChanged.Remove(onVesselSOIChanged); if (HighLogic.CurrentGame.Mode == Game.Modes.CAREER) { GameEvents.Contract.onOffered.Remove(CheckContracts); } }
public void Start() { isTSTInstalled = Database.instance.isTSTInstalled; isPCBMInstalled = Utilities.IsPCBMInstalled; if (isPCBMInstalled) //If Progressive CB Maps assembly is present, initialise PCBM wrapper. { PCBMWrapper.InitPCBMWrapper(); if (!PCBMWrapper.APIPCBMReady) { isPCBMInstalled = false; //If the initialise of wrapper failed set bool to false, we won't be interfacing to PCBM today. } } enable = ResearchBodies.enabled; //Create Instructor _instructor = Create("Instructor_Wernher"); //Register for Contract On offerred so we can remove ones that are for bodies not yet tracked. if (HighLogic.CurrentGame.Mode == Game.Modes.CAREER) { GameEvents.Contract.onOffered.Add(CheckContracts); } //If RB is enabled set initial Discovery Levels of CBs and call ProgressiveCBMaps to set their graphics levels. if (enable) { SetBodyDiscoveryLevels(); if (!ToolbarManager.ToolbarAvailable && !Database.instance.UseAppLauncher) { Database.instance.UseAppLauncher = true; } RBMenuAppLToolBar.Start(Database.instance.UseAppLauncher); GameEvents.onGUIRnDComplexSpawn.Add(TurnUIOff); GameEvents.onGUIMissionControlSpawn.Add(TurnUIOff); GameEvents.onGUIAstronautComplexSpawn.Add(TurnUIOff); GameEvents.onGUIAdministrationFacilitySpawn.Add(TurnUIOff); GameEvents.onGUIRnDComplexDespawn.Add(TurnUIOn); GameEvents.onGUIMissionControlDespawn.Add(TurnUIOn); GameEvents.onGUIAstronautComplexDespawn.Add(TurnUIOn); GameEvents.onGUIAdministrationFacilityDespawn.Add(TurnUIOn); GameEvents.onVesselSOIChanged.Add(onVesselSOIChanged); Utilities.setScaledScreen(); difficulty = ResearchBodies.Instance.RBgameSettings.Difficulty; ResearchCost = ResearchBodies.Instance.RBgameSettings.ResearchCost; ScienceReward = ResearchBodies.Instance.RBgameSettings.ScienceReward; ProgressResearchCost = ResearchBodies.Instance.RBgameSettings.ProgressResearchCost; } }