public static void DrawContent() { MarkerForces comv = RCSBuildAid.VesselForces; MassEditorMarker comm = RCSBuildAid.ReferenceMarker.GetComponent <MassEditorMarker> (); GUILayout.BeginHorizontal(); { if (RCSBuildAid.EngineList.Count != 0) { GUILayout.BeginVertical(); { GUILayout.Label("Reference"); GUILayout.Label("Torque"); GUILayout.Label("Thrust"); GUILayout.Label("TWR"); } GUILayout.EndVertical(); GUILayout.BeginVertical(); { MainWindow.referenceButton(); GUILayout.Label(comv.Torque().magnitude.ToString("0.### kNm")); GUILayout.Label(comv.Thrust().magnitude.ToString("0.## kN")); GUILayout.Label((comv.Thrust().magnitude / (comm.mass * 9.81)).ToString("0.##")); } GUILayout.EndVertical(); } else { GUILayout.Label("No engines attached", MainWindow.style.centerText); } } GUILayout.EndHorizontal(); }
protected MassEditorMarker() { instance = this; }
void initMarkers() { /* get CoM */ if (vesselOverlays.CoMmarker == null) { throw new Exception ("CoM marker is null, this shouldn't happen."); } CoM = vesselOverlays.CoMmarker.gameObject; protoMarker = (GameObject)UnityEngine.Object.Instantiate (CoM); Destroy (protoMarker.GetComponent<EditorMarker_CoM> ()); /* we don't need this */ protoMarker.name = "Marker Prototype"; if (protoMarker.transform.childCount > 0) { /* Stock CoM doesn't have any attached objects, if there's some it means * there's a plugin doing the same thing as us. We don't want extra * objects */ for (int i = 0; i < protoMarker.transform.childCount; i++) { Destroy (protoMarker.transform.GetChild (i).gameObject); } } /* init DCoM */ DCoM = (GameObject)UnityEngine.Object.Instantiate (protoMarker); DCoM.name = "DCoM Marker"; /* init ACoM */ ACoM = (GameObject)UnityEngine.Object.Instantiate (protoMarker); ACoM.name = "ACoM Marker"; /* init CoD */ CoD = (GameObject)UnityEngine.Object.Instantiate (protoMarker); referenceDict [MarkerType.CoM] = CoM; referenceDict [MarkerType.DCoM] = DCoM; referenceDict [MarkerType.ACoM] = ACoM; /* CoM setup, replace stock component with our own */ CoMMarker comMarker = CoM.AddComponent<CoMMarker> (); comMarker.posMarkerObject = vesselOverlays.CoMmarker.posMarkerObject; Destroy (vesselOverlays.CoMmarker); vesselOverlays.CoMmarker = comMarker; WetMass = comMarker; /* setup DCoM */ DCoMMarker dcomMarker = DCoM.AddComponent<DCoMMarker> (); /* we do need this */ dcomMarker.posMarkerObject = DCoM; DryMass = dcomMarker; /* setup ACoM */ var acomMarker = ACoM.AddComponent<AverageMarker> (); acomMarker.posMarkerObject = ACoM; acomMarker.CoM1 = comMarker; acomMarker.CoM2 = dcomMarker; /* setup CoD */ var codMarker = CoD.AddComponent<CoDMarker> (); codMarker.posMarkerObject = CoD; CoD.SetActive (false); /* attach our method to the CoM toggle button */ vesselOverlays.toggleCoMbtn.onClick.AddListener (delegate { comButtonClick (); }); try { /* scaling for CoL and CoT markers */ vesselOverlays.CoLmarker.gameObject.AddComponent<MarkerScaler> (); vesselOverlays.CoTmarker.gameObject.AddComponent<MarkerScaler> (); } catch (NullReferenceException) { Debug.LogWarning ("CoL/CoT marker is null, this shouldn't happen."); } }
void initMarkers() { /* get CoM */ if (vesselOverlays.CoMmarker == null) { throw new Exception("CoM marker is null, this shouldn't happen."); } CoM = vesselOverlays.CoMmarker.gameObject; protoMarker = (GameObject)UnityEngine.Object.Instantiate(CoM); Destroy(protoMarker.GetComponent <EditorMarker_CoM> ()); /* we don't need this */ protoMarker.name = "Marker Prototype"; if (protoMarker.transform.childCount > 0) { /* Stock CoM doesn't have any attached objects, if there's some it means * there's a plugin doing the same thing as us. We don't want extra * objects */ for (int i = 0; i < protoMarker.transform.childCount; i++) { Destroy(protoMarker.transform.GetChild(i).gameObject); } } /* init DCoM */ DCoM = (GameObject)UnityEngine.Object.Instantiate(protoMarker); DCoM.name = "DCoM Marker"; /* init ACoM */ ACoM = (GameObject)UnityEngine.Object.Instantiate(protoMarker); ACoM.name = "ACoM Marker"; /* init CoD */ CoD = (GameObject)UnityEngine.Object.Instantiate(protoMarker); referenceDict [MarkerType.CoM] = CoM; referenceDict [MarkerType.DCoM] = DCoM; referenceDict [MarkerType.ACoM] = ACoM; /* CoM setup, replace stock component with our own */ CoMMarker comMarker = CoM.AddComponent <CoMMarker> (); comMarker.posMarkerObject = vesselOverlays.CoMmarker.posMarkerObject; Destroy(vesselOverlays.CoMmarker); vesselOverlays.CoMmarker = comMarker; WetMass = comMarker; /* setup DCoM */ DCoMMarker dcomMarker = DCoM.AddComponent <DCoMMarker> (); /* we do need this */ dcomMarker.posMarkerObject = DCoM; DryMass = dcomMarker; /* setup ACoM */ var acomMarker = ACoM.AddComponent <AverageMarker> (); acomMarker.posMarkerObject = ACoM; acomMarker.CoM1 = comMarker; acomMarker.CoM2 = dcomMarker; /* setup CoD */ var codMarker = CoD.AddComponent <CoDMarker> (); codMarker.posMarkerObject = CoD; CoD.SetActive(false); /* attach our method to the CoM toggle button */ vesselOverlays.toggleCoMbtn.onClick.AddListener(delegate { comButtonClick(); }); try { /* scaling for CoL and CoT markers */ vesselOverlays.CoLmarker.gameObject.AddComponent <MarkerScaler> (); vesselOverlays.CoTmarker.gameObject.AddComponent <MarkerScaler> (); } catch (NullReferenceException) { Debug.LogWarning("CoL/CoT marker is null, this shouldn't happen."); } }
public MassEditorMarker() { instance = this; }