/// <summary> /// Ermittelt ein Kürzel für diese Gruppe. /// </summary> /// <returns>Das gewünschte Kürzel.</returns> public override int GetHashCode() { // Core int hash = (null == OrbitalPosition) ? 0 : OrbitalPosition.GetHashCode(); // Merge all return(hash ^ Frequency.GetHashCode() ^ SymbolRate.GetHashCode() ^ Polarization.GetHashCode() ^ InnerFEC.GetHashCode() ^ UsesS2Modulation.GetHashCode() ^ Modulation.GetHashCode() ^ RollOff.GetHashCode() ^ IsWestPosition.GetHashCode()); }
private float timer; // timer for counting to refresh // Start private void Start() { roadsterOrbitalPosition = new OrbitalPosition(); // init new orbital position storage CSVdataRead = false; // reset flag WebDataRead = false; // reset flag ReadCSVtoDictionary(); // read from csv to dictionary StartCoroutine(RefreshAllData()); // download data from spacex timer = 0; // reset timer }
private void Rotate() { rotationRate = Mathf.Clamp(rotationRate, -rotationRateCap, rotationRateCap); if (!StabilityAssistEnabled) { // Rotate freely transform.Rotate(Vector3.forward, rotationRate); return; } // Stability assist if (StabilityAssistMode == ShipSystems.StabilityAssistMode.Hold) { // Hold position rotationRate = Mathf.SmoothDamp(rotationRate, 0f, ref rotationDampVel, rotationDampTime); transform.Rotate(Vector3.forward, rotationRate); return; } else if (StabilityAssistMode == ShipSystems.StabilityAssistMode.Prograde) { // Rotate to prograde float sign = Mathf.Sign(Vector2.SignedAngle(transform.up, OrbitalDirectionToWorld)); rotationRate += (sign * stabilityAssistAccel); } else if (StabilityAssistMode == ShipSystems.StabilityAssistMode.Retrograde) { // Rotate to retrograde float sign = Mathf.Sign(Vector2.SignedAngle(transform.up, OrbitalDirectionToWorld)); rotationRate -= (sign * stabilityAssistAccel); } else if (StabilityAssistMode == ShipSystems.StabilityAssistMode.RadialIn) { // Rotate to radial in Vector2 dir = OrbitalPosition.RotateVector(Trajectory.ArgumentOfPeriapsis).normalized; float sign = Vector2.SignedAngle(transform.up, -dir); rotationRate += (sign * stabilityAssistAccel); } else { // Rotate to radial out Vector2 dir = OrbitalPosition.RotateVector(Trajectory.ArgumentOfPeriapsis).normalized; float sign = Vector2.SignedAngle(transform.up, dir); rotationRate += (sign * stabilityAssistAccel); } rotationRate = Mathf.Clamp(rotationRate, -rotationRateCap, rotationRateCap); transform.Rotate(Vector3.forward, rotationRate); }
/// <summary> /// Meldet eine Zeichenkette für die orbitale Position des Ursprungs zu /// dieser Quelle. /// </summary> /// <returns>Eine Zeichenkette zur orbitalen Position.</returns> public string GetOrbitalPosition() { // Get the orbital position string pos; if ((null != OrbitalPosition) && (4 == OrbitalPosition.Length)) { pos = string.Format("{0}.{1}°", OrbitalPosition.Substring(0, 3).TrimStart('0'), OrbitalPosition[3]); } else { pos = OrbitalPosition; } // Merge return(string.Format("{0}{1}", pos, IsWestPosition ? "W" : "E")); }
protected override void OnDrawGizmos() { base.OnDrawGizmos(); if (body == null) { return; } Gizmos.color = Color.green; Gizmos.DrawRay(Position, 5f * transform.up); Gizmos.color = Color.red; Gizmos.DrawRay(Position, 5f * OrbitalDirectionToWorld); Gizmos.color = Color.blue; Gizmos.DrawRay(Position, 5f * OrbitalPosition.RotateVector(Trajectory.ArgumentOfPeriapsis).normalized); }
// get data from internet and parse it private IEnumerator GetTeslaRequest(string uri) { UnityWebRequest webRequest = UnityWebRequest.Get(uri); // set GET url yield return(webRequest.SendWebRequest()); // request and wait for the desired page string[] pages = uri.Split('/'); // split url int page = pages.Length - 1; // get url length if (webRequest.isNetworkError) { Debug.LogError(pages[page] + ": Error: " + webRequest.error); // an error occured } else // an error did not occured { roadsterOrbitalPosition = JsonUtility.FromJson <OrbitalPosition>(webRequest.downloadHandler.text); // parse roadster orbital position data to object WebDataRead = true; // set flag to indicate done reading from web } }