protected void buildSceneWindowGUI(int windowID) { preventEditorClickthroughs(); if (buildSceneMinimized) { GUILayout.BeginHorizontal(); if (GUILayout.Button("Max")) { buildSceneMinimized = false; } if (GUILayout.Button("X", ARUtils.buttonStyle(Color.red))) { if (weLockedEditor && EditorLogic.editorLocked) { EditorLogic.fetch.Unlock(); } buildSceneShow = false; } GUILayout.EndHorizontal(); base.WindowGUI(windowID); return; } double mass = 0; int cost = 0; foreach (Part part in EditorLogic.SortedShipList) { cost += part.partInfo.cost; if (part.physicalSignificance != Part.PhysicalSignificance.NONE) { mass += part.totalMass(); } //In the VAB, ModuleJettison (which adds fairings) forgets to subtract the fairing mass from //the part mass if the engine does have a fairing, so we have to do this manually if (part.vessel == null && //hacky way to tell whether we're in the VAB (part.Modules.OfType <ModuleJettison>().Count() > 0)) { ModuleJettison jettison = part.Modules.OfType <ModuleJettison>().First(); if (part.findAttachNode(jettison.bottomNodeName).attachedPart == null) { mass -= jettison.jettisonedObjectMass; } } } double TWR = 0; if (twrPerStage.Length > 0) { TWR = twrPerStage[twrPerStage.Length - 1]; } int partCount = EditorLogic.SortedShipList.Count; GUIStyle txtR = new GUIStyle(GUI.skin.label); txtR.alignment = TextAnchor.UpperRight; GUIStyle sty = new GUIStyle(GUI.skin.button); sty.normal.textColor = sty.focused.textColor = Color.white; sty.hover.textColor = sty.active.textColor = Color.yellow; sty.onNormal.textColor = sty.onFocused.textColor = sty.onHover.textColor = sty.onActive.textColor = Color.green; sty.padding = txtR.padding; sty.margin = txtR.margin; GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Minimize")) { buildSceneMinimized = true; } if (GUILayout.Button("Close", ARUtils.buttonStyle(Color.red))) { if (weLockedEditor && EditorLogic.editorLocked) { EditorLogic.fetch.Unlock(); } buildSceneShow = false; } GUILayout.EndHorizontal(); //Alloc my planitron if (_planitron == null) { _planitron = new MechJebModulePlanitron(core); } GUILayout.BeginHorizontal(GUILayout.ExpandWidth(true)); GUILayout.Label("Show planitron", GUILayout.ExpandWidth(true)); _planitron.enabled = GUILayout.Toggle(_planitron.enabled, _planitron.getPlanet(), sty); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(GUILayout.ExpandWidth(true)); GUILayout.Label("Total mass", GUILayout.ExpandWidth(true)); GUILayout.Label(mass.ToString("F2") + " tons", txtR); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(GUILayout.ExpandWidth(true)); GUILayout.Label("Surface weight", GUILayout.ExpandWidth(true)); GUILayout.Label((mass * _planitron.gravity()).ToString("F2") + " tons", txtR); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(GUILayout.ExpandWidth(true)); GUILayout.Label("Surface TWR", GUILayout.ExpandWidth(true)); GUILayout.Label(TWR.ToString("F2"), txtR); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(GUILayout.ExpandWidth(true)); GUILayout.Label("Part count", GUILayout.ExpandWidth(true)); GUILayout.Label(partCount.ToString(), txtR); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(GUILayout.ExpandWidth(true)); GUILayout.Label("Total Cost", GUILayout.ExpandWidth(true)); GUILayout.Label(cost.ToString(), txtR); GUILayout.EndHorizontal(); doStagingAnalysisGUI(true); GUILayout.EndVertical(); base.WindowGUI(windowID); }
protected void buildSceneWindowGUI(int windowID) { if (buildSceneMinimized) { GUILayout.BeginHorizontal(); if (GUILayout.Button("Max")) { buildSceneMinimized = false; } if (GUILayout.Button("X", ARUtils.buttonStyle(Color.red))) { buildSceneShow = false; } GUILayout.EndHorizontal(); base.WindowGUI(windowID); return; } double mass = 0; foreach (Part part in EditorLogic.SortedShipList) { if (part.physicalSignificance != Part.PhysicalSignificance.NONE) { mass += part.mass; } } double TWR = 0; if (twrPerStage.Length > 0) { TWR = twrPerStage[twrPerStage.Length - 1]; } int partCount = EditorLogic.SortedShipList.Count; GUIStyle txtR = new GUIStyle(GUI.skin.label); txtR.alignment = TextAnchor.UpperRight; GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Minimize")) { buildSceneMinimized = true; } if (GUILayout.Button("Close", ARUtils.buttonStyle(Color.red))) { buildSceneShow = false; } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(GUILayout.ExpandWidth(true)); GUILayout.Label("Total mass", GUILayout.ExpandWidth(true)); GUILayout.Label(mass.ToString("F2") + " tons", txtR); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(GUILayout.ExpandWidth(true)); GUILayout.Label("Surface TWR", GUILayout.ExpandWidth(true)); GUILayout.Label(TWR.ToString("F2"), txtR); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(GUILayout.ExpandWidth(true)); GUILayout.Label("Part count", GUILayout.ExpandWidth(true)); GUILayout.Label(partCount.ToString(), txtR); GUILayout.EndHorizontal(); doStagingAnalysisGUI(); GUILayout.EndVertical(); base.WindowGUI(windowID); }