Пример #1
0
        public void addEvents()
        {
            GameEvents.onGUILaunchScreenSpawn.Add(launchScreenOpenEvent);
            GameEvents.onVesselRecovered.Add(vesselRecoverEvent);

            //GameEvents.onLaunch.Add(vesselSituationChange);
            GameEvents.onVesselSituationChange.Add(vesselSituationChange);
            GameEvents.onGameSceneLoadRequested.Add(gameSceneEvent);
            GameEvents.OnTechnologyResearched.Add(TechUnlockEvent);
            //if (!ToolbarManager.ToolbarAvailable || !KCT_GameStates.settings.PreferBlizzyToolbar)
            GameEvents.onGUIApplicationLauncherReady.Add(OnGUIAppLauncherReady);
            GameEvents.onEditorShipModified.Add(ShipModifiedEvent);
            GameEvents.OnPartPurchased.Add(PartPurchasedEvent);
            //GameEvents.OnVesselRecoveryRequested.Add(RecoveryRequested);
            GameEvents.onGUIRnDComplexSpawn.Add(TechEnableEvent);
            GameEvents.onGUIRnDComplexDespawn.Add(TechDisableEvent);
            GameEvents.OnKSCFacilityUpgraded.Add(FacilityUpgradedEvent);
            GameEvents.onGameStateLoad.Add(PersistenceLoadEvent);

            GameEvents.OnKSCStructureRepaired.Add(FaciliyRepaired);
            GameEvents.OnKSCStructureCollapsed.Add(FacilityDestroyed);

            GameEvents.FindEvent <EventVoid>("OnSYInventoryAppliedToVessel")?.Add(SYInventoryApplied);
            GameEvents.FindEvent <EventVoid>("OnSYReady")?.Add(SYReady);
            GameEvents.FindEvent <EventData <Part> >("OnSYInventoryAppliedToPart")?.Add((p) => { KerbalConstructionTime.instance.editorRecalcuationRequired = true; });
            //     GameEvents.OnKSCStructureRepairing.Add(FacilityRepairingEvent);
            //  GameEvents.onLevelWasLoaded.Add(LevelLoadedEvent);

            /*  GameEvents.OnCrewmemberHired.Add((ProtoCrewMember m, int i) =>
             * {
             *    foreach (KCT_KSC ksc in KCT_GameStates.KSCs)
             *    {
             *        ksc.RecalculateBuildRates();
             *        ksc.RecalculateUpgradedBuildRates();
             *    }
             * });
             * GameEvents.OnCrewmemberSacked.Add((ProtoCrewMember m, int i) =>
             * {
             *    foreach (KCT_KSC ksc in KCT_GameStates.KSCs)
             *    {
             *        ksc.RecalculateBuildRates();
             *        ksc.RecalculateUpgradedBuildRates();
             *    }
             * });*/

            GameEvents.onGUIAdministrationFacilitySpawn.Add(HideAllGUIs);
            GameEvents.onGUIAstronautComplexSpawn.Add(HideAllGUIs);
            GameEvents.onGUIMissionControlSpawn.Add(HideAllGUIs);
            GameEvents.onGUIRnDComplexSpawn.Add(HideAllGUIs);
            GameEvents.onGUIKSPediaSpawn.Add(HideAllGUIs);
            GameEvents.onEditorStarted.Add(() => { KCT_Utilities.HandleEditorButton(); });

            GameEvents.onFacilityContextMenuSpawn.Add(FacilityContextMenuSpawn);

            eventAdded = true;
        }
Пример #2
0
 /// <summary>
 /// Coroutine to reset the launch button handlers every 1/2 second
 /// Needed because KSP seems to change them behind the scene sometimes
 /// </summary>
 /// <returns></returns>
 IEnumerator HandleEditorButton_Coroutine()
 {
     while (true)
     {
         if (HighLogic.LoadedSceneIsEditor)
         {
             KCT_Utilities.HandleEditorButton();
         }
         yield return(wfsHalf); // new WaitForSeconds(0.5f);
     }
 }
Пример #3
0
 // The following was changed to a function because the Mono compiler available on Linux was causing errors with this call
 void OnEditorStarted()
 {
     KCT_Utilities.HandleEditorButton();
 }