private static void WriteOrbital(CsvWriter csv, Orbital body) { csv.WriteRecord(body.Config); csv.NextRecord(); foreach (Orbital child in body.Children) { if (string.IsNullOrEmpty(child.Config.Parent)) { child.Config.Parent = body.Name; } WriteOrbital(csv, child); } }
public Orbital AddChild(Orbital c) { c.Parent = this; Children.Add(c); var s1 = (39.4784176f * Mathf.Pow(c.OrbitalDistance, 3f)); var s2 = Gravity.Constant * (this.Mass + c.Mass); var s3 = s1 / s2; c.TimeToOrbit = Mathf.Sqrt(s3); if ((c.OrbitalDistance /= 600000000) < 15) { var multiplier = Children.IndexOf(c) + 3f; var minDistance = (c.OrbitalDistance * 10f) + (5f * multiplier); c.OrbitalDistance = Convert.ToUInt64(Mathf.RoundToInt(minDistance)); } return(c); }
public void RemoveChild(Orbital c) { c.Parent = null; Children.Remove(c); }