private void RosterWindow(int windowId) { GUIStyle style = GUI.skin.button; var defaultColor = style.normal.textColor; GUILayout.BeginVertical(); rosterScrollViewer = GUILayout.BeginScrollView(rosterScrollViewer, GUILayout.Height(200), GUILayout.Width(300)); GUILayout.BeginVertical(); foreach (ProtoCrewMember kerbal in HighLogic.CurrentGame.CrewRoster.Crew) { GUIStyle labelStyle = null; if (kerbal.rosterStatus == ProtoCrewMember.RosterStatus.Dead || kerbal.rosterStatus == ProtoCrewMember.RosterStatus.Missing) labelStyle = Resources.LabelStyleRed; else if (kerbal.rosterStatus == ProtoCrewMember.RosterStatus.Assigned) labelStyle = Resources.LabelStyleYellow; else labelStyle = Resources.LabelStyle; GUILayout.BeginHorizontal(); GUILayout.Label(kerbal.name, labelStyle, GUILayout.Width(140)); string buttonText = string.Empty; if (kerbal.rosterStatus == ProtoCrewMember.RosterStatus.Available) GUI.enabled = true; else GUI.enabled = false; if (GUILayout.Button((SelectedKerbal == null || SelectedKerbal.Kerbal != kerbal) ? "Edit" : "Cancel", GUILayout.Width(60))) { if (SelectedKerbal == null || SelectedKerbal.Kerbal != kerbal) { SelectedKerbal = new KerbalModel(kerbal, false); } else { SelectedKerbal = null; } } if (kerbal.rosterStatus == ProtoCrewMember.RosterStatus.Available && IsPreLaunch && SelectedPart != null && !PartIsFull(SelectedPart)) { GUI.enabled = true; buttonText = "Add"; } else if (kerbal.rosterStatus == ProtoCrewMember.RosterStatus.Dead || kerbal.rosterStatus == ProtoCrewMember.RosterStatus.Missing) { GUI.enabled = true; buttonText = "Respawn"; } else { GUI.enabled = false; buttonText = "--"; } if (GUILayout.Button(buttonText, GUILayout.Width(60))) { if (buttonText == "Add") AddCrew(SelectedPart, kerbal, true); else if (buttonText == "Respawn") RespawnKerbal(kerbal); } GUILayout.EndHorizontal(); GUI.enabled = true; } GUILayout.EndVertical(); GUILayout.EndScrollView(); if (SelectedKerbal != null) { GUILayout.BeginVertical(); GUILayout.Label(SelectedKerbal.IsNew ? "Create a Kerbal" : "Edit a Kerbal"); SelectedKerbal.Name = GUILayout.TextField(SelectedKerbal.Name); if (!string.IsNullOrEmpty(saveMessage)) { GUILayout.Label(saveMessage, Resources.ErrorLabelRedStyle); } GUILayout.Label("Courage"); SelectedKerbal.Courage = GUILayout.HorizontalSlider(SelectedKerbal.Courage, 0, 1); GUILayout.Label("Stupidity"); SelectedKerbal.Stupidity = GUILayout.HorizontalSlider(SelectedKerbal.Stupidity, 0, 1); SelectedKerbal.Badass = GUILayout.Toggle(SelectedKerbal.Badass, "Badass"); Boolean male = SelectedKerbal.Gender == ProtoCrewMember.Gender.Male; GUILayout.BeginHorizontal(); male = GUILayout.Toggle(male, "Male", GUILayout.ExpandWidth(true)); male = !GUILayout.Toggle(!male, "Female", GUILayout.ExpandWidth(true)); GUILayout.EndHorizontal(); SelectedKerbal.Gender = male ? ProtoCrewMember.Gender.Male : ProtoCrewMember.Gender.Female; foreach (int type in Enum.GetValues(typeof(ProtoCrewMember.KerbalType))) { if (type % 2 == 0) GUILayout.BeginHorizontal(); bool selected = GUILayout.Toggle(selectedType == type, ((ProtoCrewMember.KerbalType)type).ToString(), GUILayout.ExpandWidth(true)); if (selected) selectedType = type; if (type % 2 == 1) GUILayout.EndHorizontal(); } SelectedKerbal.Type = (ProtoCrewMember.KerbalType)selectedType; GUILayout.Label("Profession : " + (SelectedKerbal.Type != ProtoCrewMember.KerbalType.Tourist ? traitsList[Math.Abs(SelectedKerbal.Name.GetHashCode()) % traitsList.Count()] : "Tourist")); GUILayout.BeginHorizontal(); if (GUILayout.Button("Cancel", GUILayout.MaxWidth(50))) { SelectedKerbal = null; } if (GUILayout.Button("Apply", GUILayout.MaxWidth(50))) { saveMessage = SelectedKerbal.SubmitChanges(); if(string.IsNullOrEmpty(saveMessage)) SelectedKerbal = null; } GUILayout.EndHorizontal(); GUILayout.EndVertical(); } else { if (GUILayout.Button("Create Kerbal", GUILayout.MaxWidth(120))) { SelectedKerbal = CreateKerbal(); } } GUILayout.EndVertical(); GUI.DragWindow(new Rect(0, 0, Screen.width, 30)); }
private void RosterWindow(int windowId) { GUIStyle style = GUI.skin.button; var defaultColor = style.normal.textColor; GUILayout.BeginVertical(); rosterScrollViewer = GUILayout.BeginScrollView(rosterScrollViewer, GUILayout.Height(200), GUILayout.Width(300)); GUILayout.BeginVertical(); foreach (ProtoCrewMember kerbal in HighLogic.CurrentGame.CrewRoster) { GUIStyle labelStyle = null; if (kerbal.rosterStatus == ProtoCrewMember.RosterStatus.DEAD || kerbal.rosterStatus == ProtoCrewMember.RosterStatus.MISSING) { labelStyle = Resources.LabelStyleRed; } else if (kerbal.rosterStatus == ProtoCrewMember.RosterStatus.ASSIGNED) { labelStyle = Resources.LabelStyleYellow; } else { labelStyle = Resources.LabelStyle; } GUILayout.BeginHorizontal(); GUILayout.Label(kerbal.name, labelStyle, GUILayout.Width(140)); string buttonText = string.Empty; if (kerbal.rosterStatus == ProtoCrewMember.RosterStatus.AVAILABLE) { GUI.enabled = true; } else { GUI.enabled = false; } if (GUILayout.Button((SelectedKerbal == null || SelectedKerbal.Kerbal != kerbal) ? "Edit" : "Cancel", GUILayout.Width(60))) { if (SelectedKerbal == null || SelectedKerbal.Kerbal != kerbal) { SelectedKerbal = new KerbalModel(kerbal, false); } else { SelectedKerbal = null; } } if (kerbal.rosterStatus == ProtoCrewMember.RosterStatus.AVAILABLE && IsPreLaunch && SelectedPart != null && !PartIsFull(SelectedPart)) { GUI.enabled = true; buttonText = "Add"; } else if (kerbal.rosterStatus == ProtoCrewMember.RosterStatus.DEAD || kerbal.rosterStatus == ProtoCrewMember.RosterStatus.MISSING) { GUI.enabled = true; buttonText = "Respawn"; } else { GUI.enabled = false; buttonText = "--"; } if (GUILayout.Button(buttonText, GUILayout.Width(60))) { if (buttonText == "Add") { AddCrew(SelectedPart, kerbal, true); } else if (buttonText == "Respawn") { RespawnKerbal(kerbal); } } GUILayout.EndHorizontal(); GUI.enabled = true; } GUILayout.EndVertical(); GUILayout.EndScrollView(); if (SelectedKerbal != null) { GUILayout.Label(SelectedKerbal.IsNew ? "Create a Kerbal" : "Edit a Kerbal"); SelectedKerbal.Name = GUILayout.TextField(SelectedKerbal.Name); if (!string.IsNullOrEmpty(saveMessage)) { GUILayout.Label(saveMessage, Resources.ErrorLabelRedStyle); } GUILayout.Label("Courage"); SelectedKerbal.Courage = GUILayout.HorizontalSlider(SelectedKerbal.Courage, 0, 1); GUILayout.Label("Stupidity"); SelectedKerbal.Stupidity = GUILayout.HorizontalSlider(SelectedKerbal.Stupidity, 0, 1); SelectedKerbal.Badass = GUILayout.Toggle(SelectedKerbal.Badass, "Badass"); GUILayout.BeginHorizontal(); if (GUILayout.Button("Cancel", GUILayout.MaxWidth(50))) { SelectedKerbal = null; } if (GUILayout.Button("Apply", GUILayout.MaxWidth(50))) { saveMessage = SelectedKerbal.SubmitChanges(); if (string.IsNullOrEmpty(saveMessage)) { SelectedKerbal = null; } } GUILayout.EndHorizontal(); } else { if (GUILayout.Button("Create Kerbal", GUILayout.MaxWidth(120))) { SelectedKerbal = CreateKerbal(); } } GUILayout.EndVertical(); GUI.DragWindow(new Rect(0, 0, Screen.width, 30)); }
private void RosterWindow(int windowId) { GUIStyle style = GUI.skin.button; var defaultColor = style.normal.textColor; GUILayout.BeginVertical(); rosterScrollViewer = GUILayout.BeginScrollView(rosterScrollViewer, GUILayout.Height(200), GUILayout.Width(300)); GUILayout.BeginVertical(); foreach (ProtoCrewMember kerbal in HighLogic.CurrentGame.CrewRoster.Crew) { GUIStyle labelStyle = null; if (kerbal.rosterStatus == ProtoCrewMember.RosterStatus.Dead || kerbal.rosterStatus == ProtoCrewMember.RosterStatus.Missing) { labelStyle = Resources.LabelStyleRed; } else if (kerbal.rosterStatus == ProtoCrewMember.RosterStatus.Assigned) { labelStyle = Resources.LabelStyleYellow; } else { labelStyle = Resources.LabelStyle; } GUILayout.BeginHorizontal(); GUILayout.Label(kerbal.name, labelStyle, GUILayout.Width(140)); string buttonText = string.Empty; if (kerbal.rosterStatus == ProtoCrewMember.RosterStatus.Available) { GUI.enabled = true; } else { GUI.enabled = false; } if (GUILayout.Button((SelectedKerbal == null || SelectedKerbal.Kerbal != kerbal) ? "Edit" : "Cancel", GUILayout.Width(60))) { if (SelectedKerbal == null || SelectedKerbal.Kerbal != kerbal) { SelectedKerbal = new KerbalModel(kerbal, false); } else { SelectedKerbal = null; } } if (kerbal.rosterStatus == ProtoCrewMember.RosterStatus.Available && IsPreLaunch && SelectedPart != null && !PartIsFull(SelectedPart)) { GUI.enabled = true; buttonText = "Add"; } else if (kerbal.rosterStatus == ProtoCrewMember.RosterStatus.Dead || kerbal.rosterStatus == ProtoCrewMember.RosterStatus.Missing) { GUI.enabled = true; buttonText = "Respawn"; } else { GUI.enabled = false; buttonText = "--"; } if (GUILayout.Button(buttonText, GUILayout.Width(60))) { if (buttonText == "Add") { AddCrew(SelectedPart, kerbal, true); } else if (buttonText == "Respawn") { RespawnKerbal(kerbal); } } GUILayout.EndHorizontal(); GUI.enabled = true; } GUILayout.EndVertical(); GUILayout.EndScrollView(); if (SelectedKerbal != null) { GUILayout.BeginVertical(); GUILayout.Label(SelectedKerbal.IsNew ? "Create a Kerbal" : "Edit a Kerbal"); SelectedKerbal.Name = GUILayout.TextField(SelectedKerbal.Name); if (!string.IsNullOrEmpty(saveMessage)) { GUILayout.Label(saveMessage, Resources.ErrorLabelRedStyle); } GUILayout.Label("Courage"); SelectedKerbal.Courage = GUILayout.HorizontalSlider(SelectedKerbal.Courage, 0, 1); GUILayout.Label("Stupidity"); SelectedKerbal.Stupidity = GUILayout.HorizontalSlider(SelectedKerbal.Stupidity, 0, 1); SelectedKerbal.Badass = GUILayout.Toggle(SelectedKerbal.Badass, "Badass"); Boolean male = SelectedKerbal.Gender == ProtoCrewMember.Gender.Male; GUILayout.BeginHorizontal(); male = GUILayout.Toggle(male, "Male", GUILayout.ExpandWidth(true)); male = !GUILayout.Toggle(!male, "Female", GUILayout.ExpandWidth(true)); GUILayout.EndHorizontal(); SelectedKerbal.Gender = male ? ProtoCrewMember.Gender.Male : ProtoCrewMember.Gender.Female; foreach (int type in Enum.GetValues(typeof(ProtoCrewMember.KerbalType))) { if (type % 2 == 0) { GUILayout.BeginHorizontal(); } bool selected = GUILayout.Toggle(selectedType == type, ((ProtoCrewMember.KerbalType)type).ToString(), GUILayout.ExpandWidth(true)); if (selected) { selectedType = type; } if (type % 2 == 1) { GUILayout.EndHorizontal(); } } SelectedKerbal.Type = (ProtoCrewMember.KerbalType)selectedType; GUILayout.Label("Profession : " + (SelectedKerbal.Type != ProtoCrewMember.KerbalType.Tourist ? traitsList[Math.Abs(SelectedKerbal.Name.GetHashCode()) % traitsList.Count()] : "Tourist")); GUILayout.BeginHorizontal(); if (GUILayout.Button("Cancel", GUILayout.MaxWidth(50))) { SelectedKerbal = null; } if (GUILayout.Button("Apply", GUILayout.MaxWidth(50))) { saveMessage = SelectedKerbal.SubmitChanges(); if (string.IsNullOrEmpty(saveMessage)) { SelectedKerbal = null; } } GUILayout.EndHorizontal(); GUILayout.EndVertical(); } else { if (GUILayout.Button("Create Kerbal", GUILayout.MaxWidth(120))) { SelectedKerbal = CreateKerbal(); } } GUILayout.EndVertical(); GUI.DragWindow(new Rect(0, 0, Screen.width, 30)); }
private void RosterWindow(int windowId) { GUIStyle style = GUI.skin.button; var defaultColor = style.normal.textColor; GUILayout.BeginVertical(); rosterScrollViewer = GUILayout.BeginScrollView(rosterScrollViewer, GUILayout.Height(200), GUILayout.Width(300)); GUILayout.BeginVertical(); for (int i = 0; i < KerbalCrewRoster.CrewRoster.Count; i++) { ProtoCrewMember kerbal = KerbalCrewRoster.CrewRoster[i]; GUIStyle labelStyle = null; if (kerbal.rosterStatus == ProtoCrewMember.RosterStatus.RESPAWN) labelStyle = Resources.LabelStyleRed; else if (kerbal.rosterStatus == ProtoCrewMember.RosterStatus.ASSIGNED) labelStyle = Resources.LabelStyleYellow; else labelStyle = Resources.LabelStyle; GUILayout.BeginHorizontal(); GUILayout.Label(kerbal.name, labelStyle, GUILayout.Width(140)); string buttonText = string.Empty; if (kerbal.rosterStatus == ProtoCrewMember.RosterStatus.AVAILABLE) GUI.enabled = true; else GUI.enabled = false; if (GUILayout.Button((SelectedKerbal == null || SelectedKerbal.Kerbal != kerbal) ? "Edit" : "Cancel", GUILayout.Width(60))) { if (SelectedKerbal == null || SelectedKerbal.Kerbal != kerbal) { SelectedKerbal = new KerbalModel(kerbal, false); } else { SelectedKerbal = null; } } if (kerbal.rosterStatus == ProtoCrewMember.RosterStatus.AVAILABLE && IsPreLaunch && SelectedPart != null && !PartIsFull(SelectedPart)) { GUI.enabled = true; buttonText = "Add"; } else if (kerbal.rosterStatus == ProtoCrewMember.RosterStatus.RESPAWN && ManifestBehaviour.Settings.AllowRespawn) { GUI.enabled = true; buttonText = "Respawn"; } else { GUI.enabled = false; buttonText = "--"; } if (SelectedKerbal != null && SelectedKerbal.Kerbal == kerbal) { GUI.enabled = true; buttonText = "Delete"; } if (GUILayout.Button(buttonText, GUILayout.Width(60))) { if (buttonText == "Add") AddCrew(SelectedPart, kerbal); else if (buttonText == "Respawn") RespawnKerbal(kerbal); else { KerbalCrewRoster.CrewRoster.Remove(SelectedKerbal.Kerbal); SelectedKerbal = null; } } GUILayout.EndHorizontal(); GUI.enabled = true; } GUILayout.EndVertical(); GUILayout.EndScrollView(); if (SelectedKerbal != null) { GUILayout.Label(SelectedKerbal.IsNew ? "Create a Kerbal" : "Edit a Kerbal"); SelectedKerbal.Name = GUILayout.TextField(SelectedKerbal.Name); if (!string.IsNullOrEmpty(saveMessage)) { GUILayout.Label(saveMessage, Resources.ErrorLabelRedStyle); } GUILayout.Label("Courage"); SelectedKerbal.Courage = GUILayout.HorizontalSlider(SelectedKerbal.Courage, 0, 1); GUILayout.Label("Stupidity"); SelectedKerbal.Stupidity = GUILayout.HorizontalSlider(SelectedKerbal.Stupidity, 0, 1); SelectedKerbal.Badass = GUILayout.Toggle(SelectedKerbal.Badass, "Badass"); GUILayout.BeginHorizontal(); if (GUILayout.Button("Cancel", GUILayout.MaxWidth(50))) { SelectedKerbal = null; } if (GUILayout.Button("Apply", GUILayout.MaxWidth(50))) { saveMessage = SelectedKerbal.SubmitChanges(); if(string.IsNullOrEmpty(saveMessage)) SelectedKerbal = null; } GUILayout.EndHorizontal(); } else { if (GUILayout.Button("Create Kerbal", GUILayout.MaxWidth(120))) { SelectedKerbal = CreateKerbal(); } } GUILayout.EndVertical(); GUI.DragWindow(new Rect(0, 0, Screen.width, 30)); }