/// <summary> /// Switch the list that the crew Sort Bar operates with on tab change. (Callback) /// </summary> /// <param name="panel">The new panel</param> protected void OnTabSwitch(CrewPanel panel) { try { if (this.curPanel == panel) { return; } this.curPanel = panel; StockRoster roster = null; KerbalComparer defaultOrder = null; switch (panel) { case CrewPanel.Available: roster = this.available; defaultOrder = StandardKerbalComparers.DefaultAvailable; break; case CrewPanel.Assigned: roster = this.assigned; defaultOrder = StandardKerbalComparers.DefaultAssigned; break; case CrewPanel.Killed: roster = this.killed; defaultOrder = StandardKerbalComparers.DefaultKilled; break; } sortBarCrew.SetRoster(roster); sortBarCrew.SetDefaultOrdering(defaultOrder); } catch (Exception e) { Debug.LogError("KerbalSorter: Unexpected error in AstronautComplexHook: " + e); } }
void Awake () { cp = this; tween1 = GetComponent<dfTweenVector3>(); tween2 = GetComponent<dfTweenFloat>(); control = GetComponent<dfControl>(); crewslots = FindObjectsOfType<CrewSlot>(); }
/// <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); } }
/// <summary> /// Switch the list that the crew Sort Bar operates with on tab change. (Callback) /// </summary> /// <param name="panel">The new panel</param> protected void OnTabSwitch(CrewPanel panel) { try { if( this.curPanel == panel ) { return; } this.curPanel = panel; StockRoster roster = null; KerbalComparer defaultOrder = null; switch( panel ) { case CrewPanel.Available: roster = this.available; defaultOrder = StandardKerbalComparers.DefaultAvailable; break; case CrewPanel.Assigned: roster = this.assigned; defaultOrder = StandardKerbalComparers.DefaultAssigned; break; case CrewPanel.Killed: roster = this.killed; defaultOrder = StandardKerbalComparers.DefaultKilled; break; } sortBarCrew.SetRoster(roster); sortBarCrew.SetDefaultOrdering(defaultOrder); } catch( Exception e ) { Debug.LogError("KerbalSorter: Unexpected error in AstronautComplexHook: " + e); } }
private void Init() { closeButton.onClick.AddListener(this.Close); statsPanel = GetComponentInChildren<StatsPanel>(); statsPanel.Init(); crewPanel = GetComponentInChildren<CrewPanel>(); crewPanel.Init(); equipmentPanel = GetComponentInChildren<EquipmentPanel>(); equipmentPanel.Init(); itemInfoPanel = GetComponentInChildren<ItemInfoPanel>(); inventoryPanel = GetComponentInChildren<InventoryPanel>(); popupPanel = GetComponentInChildren<PopupPanel>(); crewPanel.SelectDefaultCrewMember(); }