public static StellarSystem Generate(int x, int y)
        {
            var output = new StellarSystem();

            output.X            = x;
            output.Y            = y;
            output.SystemNature = SystemNatureGenerator.Generate();

            //Add Primary
            output.Stars.Add(StarGenerator.Generate(1));

            //Add Secondary Star
            if (output.SystemNature == SystemNature.Binary ||
                output.SystemNature == SystemNature.Trinary)
            {
                output.Stars.Add(StarGenerator.Generate(2));
            }

            //Add Third Star
            if (output.SystemNature == SystemNature.Trinary)
            {
                output.Stars.Add(StarGenerator.Generate(3));
            }



            return(output);
        }
Exemple #2
0
        public static SpaceSystem GeneratePlanetarySystem()
        {
            SpaceSystem system = new SpaceSystem();

            string alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

            string Designation1 = $"{alphabet[RandomNumberGenerator.Range(0, 25)]}{alphabet[RandomNumberGenerator.Range(0, 25)]}";
            string Designation2 = $"{RandomNumberGenerator.Range(0, 999)}";

            system.Name  = $"{Designation1}-{Designation2}";
            system.Speed = 5f;

            system.Bodies = new IBody[RandomNumberGenerator.Range(1, maxPlanets)];

            system.Star      = StarGenerator.Generate();
            system.Name      = system.Name;
            system.Bodies[0] = system.Star;

            for (int i = 1; i < system.Bodies.Length; i++)
            {
                system.Bodies[i] = generatePlanet($"{system.Name} {i}", system.Star);
            }

            return(system);
        }
Exemple #3
0
        private StellarSystem GenerateSingleStarSystem(StellarSystem parent, int position)
        {
            var system = new SingleObjectSystem(parent);

            var star = _starGenerator.Generate(system, position);

            system.CenterObject = star;
            return(system);
        }
        public static StellarSystem Generate(int x, int y)
        {
            var output = new StellarSystem();

            output.X            = x;
            output.Y            = y;
            output.SystemNature = SystemNatureGenerator.Generate();

            //Add Primary
            IStar primary = StarGenerator.Generate(1);

            output.Stars.Add(primary);
            output.CombinedLuminosity = primary.Luminosity;

            //Add Secondary Star
            if (output.SystemNature == SystemNature.Binary ||
                output.SystemNature == SystemNature.Trinary)
            {
                IStar star = StarGenerator.Generate(2, output.Stars[0]);
                output.Stars.Add(star);
            }

            //Add Third Star
            if (output.SystemNature == SystemNature.Trinary)
            {
                output.Stars.Add(StarGenerator.Generate(3, output.Stars[0]));
            }

            //Generate primary star bodies
            SystemBodiesGenerator.Generate(output, 0);

            if (output.Stars.Count > 1)
            {
                SystemBodiesGenerator.Generate(output, 1);
            }

            if (output.Stars.Count > 2)
            {
                SystemBodiesGenerator.Generate(output, starToGenerate: 2);
            }

            return(output);
        }