public AstronautComplexApplicantPanel(CMAstronautComplex astronautComplex) { if (astronautComplex == null) throw new ArgumentNullException("astronautComplex"); _applicantPanel = astronautComplex.transform.Find("CrewPanels/panel_applicants"); if (_applicantPanel == null) throw new ArgumentException("No applicant panel found on " + astronautComplex.name); }
public AstronautComplexApplicantPanel(CMAstronautComplex astronautComplex) { if (astronautComplex == null) { throw new ArgumentNullException("astronautComplex"); } _applicantPanel = astronautComplex.transform.Find("CrewPanels/panel_applicants"); if (_applicantPanel == null) { throw new ArgumentException("No applicant panel found on " + astronautComplex.name); } }
/// <summary> /// Set up the SortBars for the Astronaut Complex. (Callback) /// </summary> protected void Start() { try { // Set up hooks: GameEvents.onGUIAstronautComplexSpawn.Add(OnACSpawn); GameEvents.onGUIAstronautComplexDespawn.Add(OnACDespawn); GameEvents.OnCrewmemberHired.Add(OnHire); GameEvents.OnCrewmemberSacked.Add(OnFire); // Get rosters: complex = UIManager.instance.gameObject.GetComponentsInChildren <CMAstronautComplex>(true).FirstOrDefault(); if (complex == null) { throw new Exception("Could not find astronaut complex"); } UIScrollList availableList = complex.transform.Find("CrewPanels/panel_enlisted/panelManager/panel_available/scrolllist_available").GetComponent <UIScrollList>(); UIScrollList assignedList = complex.transform.Find("CrewPanels/panel_enlisted/panelManager/panel_assigned/scrolllist_assigned").GetComponent <UIScrollList>(); UIScrollList killedList = complex.transform.Find("CrewPanels/panel_enlisted/panelManager/panel_kia/scrolllist_kia").GetComponent <UIScrollList>(); UIScrollList applicantList = complex.transform.Find("CrewPanels/panel_applicants/scrolllist_applicants").GetComponent <UIScrollList>(); available = new StockRoster(availableList); assigned = new StockRoster(assignedList); killed = new StockRoster(killedList); applicants = new StockRoster(applicantList); // Set up button list: SortButtonDef[] buttonsCrew = new SortButtonDef[] { StandardButtonDefs.ByName, StandardButtonDefs.ByClass, StandardButtonDefs.ByLevel, StandardButtonDefs.ByGender, StandardButtonDefs.ByNumFlights }; SortButtonDef[] buttonsApplicants = new SortButtonDef[] { StandardButtonDefs.ByName, StandardButtonDefs.ByClass, StandardButtonDefs.ByGender }; // Initialize the crew sort bar: sortBarCrew = gameObject.AddComponent <SortBar>(); sortBarCrew.SetRoster(available); sortBarCrew.SetButtons(buttonsCrew); sortBarCrew.SetDefaultOrdering(StandardKerbalComparers.DefaultAvailable); sortBarCrew.enabled = false; curPanel = CrewPanel.Available; /// Initialize the applicant sort bar: sortBarApplicants = gameObject.AddComponent <SortBar>(); sortBarApplicants.SetRoster(applicants); sortBarApplicants.SetButtons(buttonsApplicants); sortBarApplicants.SetDefaultOrdering(StandardKerbalComparers.DefaultApplicant); sortBarApplicants.enabled = false; // Assign enable listeners to the rosters: Utilities.AddOnEnableListener(availableList.gameObject, OnTabAvailable, true); Utilities.AddOnEnableListener(assignedList.gameObject, OnTabAssigned, true); Utilities.AddOnEnableListener(killedList.gameObject, OnTabKilled, true); // There's no other way to detect KSI's presence, unfortunately. :/ foreach (AssemblyLoader.LoadedAssembly asm in AssemblyLoader.loadedAssemblies) { if (asm.dllName == "KSI") { KSILoaded = true; } } } catch (Exception e) { Debug.LogError("KerbalSorter: Unexpected error in AstronautComplexHook: " + e); } }
/// <summary> /// Set up the SortBars for the Astronaut Complex. (Callback) /// </summary> protected void Start() { try { // Set up hooks: GameEvents.onGUIAstronautComplexSpawn.Add(OnACSpawn); GameEvents.onGUIAstronautComplexDespawn.Add(OnACDespawn); GameEvents.OnCrewmemberHired.Add(OnHire); GameEvents.OnCrewmemberSacked.Add(OnFire); // Get rosters: complex = UIManager.instance.gameObject.GetComponentsInChildren<CMAstronautComplex>(true).FirstOrDefault(); if( complex == null ) throw new Exception("Could not find astronaut complex"); UIScrollList availableList = complex.transform.Find("CrewPanels/panel_enlisted/panelManager/panel_available/scrolllist_available").GetComponent<UIScrollList>(); UIScrollList assignedList = complex.transform.Find("CrewPanels/panel_enlisted/panelManager/panel_assigned/scrolllist_assigned").GetComponent<UIScrollList>(); UIScrollList killedList = complex.transform.Find("CrewPanels/panel_enlisted/panelManager/panel_kia/scrolllist_kia").GetComponent<UIScrollList>(); UIScrollList applicantList = complex.transform.Find("CrewPanels/panel_applicants/scrolllist_applicants").GetComponent<UIScrollList>(); available = new StockRoster(availableList); assigned = new StockRoster(assignedList); killed = new StockRoster(killedList); applicants = new StockRoster(applicantList); // Set up button list: SortButtonDef[] buttonsCrew = new SortButtonDef[]{ StandardButtonDefs.ByName, StandardButtonDefs.ByClass, StandardButtonDefs.ByLevel, StandardButtonDefs.ByGender, StandardButtonDefs.ByNumFlights }; SortButtonDef[] buttonsApplicants = new SortButtonDef[]{ StandardButtonDefs.ByName, StandardButtonDefs.ByClass, StandardButtonDefs.ByGender }; // Initialize the crew sort bar: sortBarCrew = gameObject.AddComponent<SortBar>(); sortBarCrew.SetRoster(available); sortBarCrew.SetButtons(buttonsCrew); sortBarCrew.SetDefaultOrdering(StandardKerbalComparers.DefaultAvailable); sortBarCrew.enabled = false; curPanel = CrewPanel.Available; /// Initialize the applicant sort bar: sortBarApplicants = gameObject.AddComponent<SortBar>(); sortBarApplicants.SetRoster(applicants); sortBarApplicants.SetButtons(buttonsApplicants); sortBarApplicants.SetDefaultOrdering(StandardKerbalComparers.DefaultApplicant); sortBarApplicants.enabled = false; // Assign enable listeners to the rosters: Utilities.AddOnEnableListener(availableList.gameObject, OnTabAvailable, true); Utilities.AddOnEnableListener(assignedList.gameObject, OnTabAssigned, true); Utilities.AddOnEnableListener(killedList.gameObject, OnTabKilled, true); // There's no other way to detect KSI's presence, unfortunately. :/ foreach( AssemblyLoader.LoadedAssembly asm in AssemblyLoader.loadedAssemblies ){ if( asm.dllName == "KSI" ){ KSILoaded = true; } } } catch( Exception e ) { Debug.LogError("KerbalSorter: Unexpected error in AstronautComplexHook: " + e); } }