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); }
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); }
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); }