Esempio n. 1
0
 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);
     }
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
 public void RemoveChild(Orbital c)
 {
     c.Parent = null;
     Children.Remove(c);
 }