示例#1
0
        public static IReadOnlyCollection <ICelestialSystem> GetSiblings(this ICelestialSystem root)
        {
            if (root.Parent == null)
            {
                return(new List <ICelestialSystem>());
            }

            return(root.Parent.Children.Except(root).ToList());
        }
示例#2
0
 private static Station CreateStation(ICelestialSystem system)
 {
     return(new Station($"{system.CentralBody.Name} Station", system, 200000.Kilometer() + system.CentralBody.Radius * 100)
     {
         OfferedItems = new List <MarketplaceItem>
         {
             new MarketplaceItem(new ItemStack(new LiquidElementItem(Elements.Hydrogen), 5000), new decimal(0.11)),
             new MarketplaceItem(new ItemStack(new LiquidElementItem(Elements.Oxygen), 5000), new decimal(1.8)),
         },
         RequestedItems = new List <MarketplaceItem>
         {
             new MarketplaceItem(new ItemStack(new LiquidElementItem(Elements.Hydrogen), 5000), new decimal(0.1)),
             new MarketplaceItem(new ItemStack(new LiquidElementItem(Elements.Oxygen), 5000), new decimal(1.6))
         }
     });
 }
示例#3
0
        public static ICelestialSystem GetDescendent(this ICelestialSystem root, string name)
        {
            ICelestialSystem current = root;

            foreach (var child in current.Children)
            {
                if (child.Name == name)
                {
                    return(child);
                }

                var descendent = child.GetDescendent(name);
                if (descendent != null)
                {
                    return(descendent);
                }
            }

            return(null);
        }
示例#4
0
 public Station(string name, ICelestialSystem celestialSystem, double parkingOrbit)
 {
     Name            = name;
     CelestialSystem = celestialSystem;
     ParkingOrbit    = parkingOrbit;
 }