public void HideAllGUIs() { const string logBlockName = nameof(KCTEvents) + "." + nameof(HideAllGUIs); using (EntryExitLogger.EntryExitLog(logBlockName, EntryExitLoggerOptions.All)) { //KCT_GUI.hideAll(); KCT_GUI.ClickOff(); } }
public void HideAllGUIs() { //KCT_GUI.hideAll(); KCT_GUI.ClickOff(); }
public void Start() { if (KCT_Utilities.CurrentGameIsMission()) { return; } KCTDebug.Log("Start called"); // Subscribe to events from KSP and other mods if (!KCT_Events.instance.subscribedToEvents) { KCT_Events.instance.SubscribeToEvents(); } KCT_GameStates.settings.Save(); //Save the settings file, with defaults if it doesn't exist KCT_PresetManager.Instance.SaveActiveToSaveData(); // Ghetto event queue if (HighLogic.LoadedScene == GameScenes.EDITOR) { InvokeRepeating("EditorRecalculation", 1, 1); KCT_GUI.buildRateForDisplay = null; if (!KCT_GUI.PrimarilyDisabled) { KCT_Utilities.RecalculateEditorBuildTime(EditorLogic.fetch.ship); } } if (KCT_GUI.PrimarilyDisabled) { if (InputLockManager.GetControlLock("KCTLaunchLock") == ControlTypes.EDITOR_LAUNCH) { InputLockManager.RemoveControlLock("KCTLaunchLock"); } } KACWrapper.InitKACWrapper(); if (!KCT_PresetManager.Instance.ActivePreset.generalSettings.Enabled) { if (InputLockManager.GetControlLock("KCTKSCLock") == ControlTypes.KSC_FACILITIES) { InputLockManager.RemoveControlLock("KCTKSCLock"); } return; } //Begin primary mod functions KCT_GameStates.UT = Planetarium.GetUniversalTime(); KCT_GUI.guiDataSaver.Load(); switch (HighLogic.LoadedScene) { case GameScenes.EDITOR: //if (HighLogic.LoadedSceneIsEditor) { KCT_GUI.hideAll(); if (!KCT_GUI.PrimarilyDisabled) { KCT_GUI.showEditorGUI = KCT_GameStates.showWindows[1]; if (KCT_GUI.showEditorGUI) { KCT_GUI.ClickOn(); } else { KCT_GUI.ClickOff(); } } } break; case GameScenes.SPACECENTER: //else if (HighLogic.LoadedScene == GameScenes.SPACECENTER) { bool shouldStart = KCT_GUI.showFirstRun; KCT_GUI.hideAll(); if (!shouldStart) { KCT_GUI.showBuildList = KCT_GameStates.showWindows[0]; if (KCT_GUI.showBuildList) { KCT_GUI.ClickOn(); } else { KCT_GUI.ClickOff(); } } KCT_GUI.showFirstRun = shouldStart; } break; case GameScenes.FLIGHT: if (/*HighLogic.LoadedSceneIsFlight && */ FlightGlobals.ActiveVessel.situation == Vessel.Situations.PRELAUNCH && FlightGlobals.ActiveVessel.GetCrewCount() == 0 && KCT_GameStates.launchedCrew.Count > 0) { KerbalRoster roster = HighLogic.CurrentGame.CrewRoster; for (int i = 0; i < FlightGlobals.ActiveVessel.parts.Count; i++) { Part p = FlightGlobals.ActiveVessel.parts[i]; //KCTDebug.Log("craft: " + p.craftID); KCTDebug.LogError("Part being tested: " + p.partInfo.title); { CrewedPart cP = KCT_GameStates.launchedCrew.Find(part => part.partID == p.craftID); if (cP == null) { continue; } List <ProtoCrewMember> crewList = cP.crewList; KCTDebug.LogError("cP.crewList.Count: " + cP.crewList.Count); foreach (ProtoCrewMember crewMember in crewList) { if (crewMember != null) { ProtoCrewMember finalCrewMember = crewMember; if (crewMember.type == ProtoCrewMember.KerbalType.Crew) { finalCrewMember = roster.Crew.FirstOrDefault(c => c.name == crewMember.name); } else if (crewMember.type == ProtoCrewMember.KerbalType.Tourist) { finalCrewMember = roster.Tourist.FirstOrDefault(c => c.name == crewMember.name); } if (finalCrewMember == null) { KCTDebug.LogError("Error when assigning " + crewMember.name + " to " + p.partInfo.name + ". Cannot find Kerbal in list."); continue; } try { KCTDebug.Log("Assigning " + finalCrewMember.name + " to " + p.partInfo.name); if (p.AddCrewmember(finalCrewMember)) //p.AddCrewmemberAt(finalCrewMember, crewList.IndexOf(crewMember))) { finalCrewMember.rosterStatus = ProtoCrewMember.RosterStatus.Assigned; if (finalCrewMember.seat != null) { finalCrewMember.seat.SpawnCrew(); } } else { KCTDebug.LogError("Error when assigning " + crewMember.name + " to " + p.partInfo.name); finalCrewMember.rosterStatus = ProtoCrewMember.RosterStatus.Available; continue; } } catch { KCTDebug.LogError("Error when assigning " + crewMember.name + " to " + p.partInfo.name); finalCrewMember.rosterStatus = ProtoCrewMember.RosterStatus.Available; continue; } } } } } KCT_GameStates.launchedCrew.Clear(); } //if (HighLogic.LoadedSceneIsFlight) { KCT_GUI.hideAll(); if (KCT_GameStates.launchedVessel != null && FlightGlobals.ActiveVessel != null && FlightGlobals.ActiveVessel.situation == Vessel.Situations.PRELAUNCH) { KCT_GameStates.launchedVessel.KSC = null; //it's invalid now KCTDebug.Log("Attempting to remove launched vessel from build list"); bool removed = KCT_GameStates.launchedVessel.RemoveFromBuildList(); if (removed) //Only do these when the vessel is first removed from the list { //Add the cost of the ship to the funds so it can be removed again by KSP KCT_Utilities.AddFunds(KCT_GameStates.launchedVessel.cost, TransactionReasons.VesselRollout); FlightGlobals.ActiveVessel.vesselName = KCT_GameStates.launchedVessel.shipName; } KCT_Recon_Rollout rollout = KCT_GameStates.ActiveKSC.Recon_Rollout.FirstOrDefault(r => r.associatedID == KCT_GameStates.launchedVessel.id.ToString()); if (rollout != null) { KCT_GameStates.ActiveKSC.Recon_Rollout.Remove(rollout); } KCT_AirlaunchPrep alPrep = KCT_GameStates.ActiveKSC.AirlaunchPrep.FirstOrDefault(r => r.associatedID == KCT_GameStates.launchedVessel.id.ToString()); if (alPrep != null) { KCT_GameStates.ActiveKSC.AirlaunchPrep.Remove(alPrep); } AirlaunchParams alParams = KCT_GameStates.AirlaunchParams; if (alParams != null && alParams.KCTVesselId == KCT_GameStates.launchedVessel.id && (!alParams.KSPVesselId.HasValue || alParams.KSPVesselId == FlightGlobals.ActiveVessel.id)) { if (!alParams.KSPVesselId.HasValue) { alParams.KSPVesselId = FlightGlobals.ActiveVessel.id; } StartCoroutine(AirlaunchRoutine(alParams, FlightGlobals.ActiveVessel.id)); } } } break; } ratesUpdated = false; KCTDebug.Log("Start finished"); wfsOne = new WaitForSeconds(1f); wfsTwo = new WaitForSeconds(2f); wfsHalf = new WaitForSeconds(0.5f); DelayedStart(); UpdateTechlistIconColor(); StartCoroutine(HandleEditorButton_Coroutine()); }
public void Start() { const string logBlockName = nameof(KerbalConstructionTime) + "." + nameof(Start); using (EntryExitLogger.EntryExitLog(logBlockName, EntryExitLoggerOptions.All)) { if (KCT_Utilities.CurrentGameIsMission()) { return; } Log.Trace("Start called"); //add the events if (!KCTEvents.instance.eventAdded) { KCTEvents.instance.addEvents(); } GameStates.settings.Save(); //Save the settings file, with defaults if it doesn't exist KCT_PresetManager.Instance.SaveActiveToSaveData(); // Ghetto event queue if (HighLogic.LoadedScene == GameScenes.EDITOR) { InvokeRepeating("EditorRecalculation", 1, 1); KCT_GUI.buildRateForDisplay = null; if (!KCT_GUI.PrimarilyDisabled) { KCT_Utilities.RecalculateEditorBuildTime(EditorLogic.fetch.ship); } } if (KCT_GUI.PrimarilyDisabled) { if (InputLockManager.GetControlLock("KCTLaunchLock") == ControlTypes.EDITOR_LAUNCH) { InputLockManager.RemoveControlLock("KCTLaunchLock"); } } KACWrapper.InitKACWrapper(); if (!KCT_PresetManager.Instance.ActivePreset.generalSettings.Enabled) { if (InputLockManager.GetControlLock("KCTKSCLock") == ControlTypes.KSC_FACILITIES) { InputLockManager.RemoveControlLock("KCTKSCLock"); } return; } //Begin primary mod functions GameStates.UT = Planetarium.GetUniversalTime(); KCT_GUI.guiDataSaver.Load(); if (HighLogic.LoadedSceneIsEditor) { KCT_GUI.hideAll(); if (!KCT_GUI.PrimarilyDisabled) { KCT_GUI.showEditorGUI = GameStates.showWindows[1]; if (KCT_GUI.showEditorGUI) { KCT_GUI.ClickOn(); } else { KCT_GUI.ClickOff(); } } } else if (HighLogic.LoadedScene == GameScenes.SPACECENTER) { bool shouldStart = KCT_GUI.showFirstRun; KCT_GUI.hideAll(); if (!shouldStart) { KCT_GUI.showBuildList = GameStates.showWindows[0]; if (KCT_GUI.showBuildList) { KCT_GUI.ClickOn(); } else { KCT_GUI.ClickOff(); } } KCT_GUI.showFirstRun = shouldStart; } if (HighLogic.LoadedSceneIsFlight && FlightGlobals.ActiveVessel.situation == Vessel.Situations.PRELAUNCH) { if (FlightGlobals.ActiveVessel.GetCrewCount() == 0 && GameStates.launchedCrew.Count > 0) { KerbalRoster roster = HighLogic.CurrentGame.CrewRoster; for (int i = 0; i < FlightGlobals.ActiveVessel.parts.Count; i++) { Part p = FlightGlobals.ActiveVessel.parts[i]; //Log.Trace("craft: " + p.craftID); { CrewedPart cP = GameStates.launchedCrew.Find(part => part.partID == p.craftID); if (cP == null) { continue; } List <ProtoCrewMember> crewList = cP.crewList; foreach (ProtoCrewMember crewMember in crewList) { if (crewMember != null) { ProtoCrewMember finalCrewMember = crewMember; if (crewMember.type == ProtoCrewMember.KerbalType.Crew) { finalCrewMember = roster.Crew.FirstOrDefault(c => c.name == crewMember.name); } else if (crewMember.type == ProtoCrewMember.KerbalType.Tourist) { finalCrewMember = roster.Tourist.FirstOrDefault(c => c.name == crewMember.name); } if (finalCrewMember == null) { Debug.LogError("Error when assigning " + crewMember.name + " to " + p.partInfo.name + ". Cannot find Kerbal in list."); continue; } try { Log.Trace("Assigning " + finalCrewMember.name + " to " + p.partInfo.name); if (p.AddCrewmember(finalCrewMember)) //p.AddCrewmemberAt(finalCrewMember, crewList.IndexOf(crewMember))) { finalCrewMember.rosterStatus = ProtoCrewMember.RosterStatus.Assigned; if (finalCrewMember.seat != null) { finalCrewMember.seat.SpawnCrew(); } } else { Debug.LogError("Error when assigning " + crewMember.name + " to " + p.partInfo.name); finalCrewMember.rosterStatus = ProtoCrewMember.RosterStatus.Available; continue; } } catch { Debug.LogError("Error when assigning " + crewMember.name + " to " + p.partInfo.name); finalCrewMember.rosterStatus = ProtoCrewMember.RosterStatus.Available; continue; } } } } } GameStates.launchedCrew.Clear(); } } if (HighLogic.LoadedSceneIsFlight) { KCT_GUI.hideAll(); if (GameStates.launchedVessel != null && FlightGlobals.ActiveVessel != null && FlightGlobals.ActiveVessel.situation == Vessel.Situations.PRELAUNCH) { GameStates.launchedVessel.KSC = null; //it's invalid now Log.Trace("Attempting to remove launched vessel from build list"); bool removed = GameStates.launchedVessel.RemoveFromBuildList(); if (removed) //Only do these when the vessel is first removed from the list { //Add the cost of the ship to the funds so it can be removed again by KSP KCT_Utilities.AddFunds(GameStates.launchedVessel.cost, TransactionReasons.VesselRollout); FlightGlobals.ActiveVessel.vesselName = GameStates.launchedVessel.shipName; } Recon_Rollout rollout = GameStates.ActiveKSC.Recon_Rollout.FirstOrDefault(r => r.associatedID == GameStates.launchedVessel.id.ToString()); if (rollout != null) { GameStates.ActiveKSC.Recon_Rollout.Remove(rollout); } } } ratesUpdated = false; DelayedStart(); } }