// generate location star map public List <XYPair> GeneratePlanetLocations(RandomPlanetGenerationScope scope) { int splitFactor = scope.splitFactor; int gridSizeX = scope.size.x; int gridSizeY = scope.size.y; int radius = scope.radius; int maxAmount = scope.maxAmountPerArea; List <XYPair> planetLocations = new List <XYPair>(); for (int x = 0; x < splitFactor; x++) { for (int y = 0; y < splitFactor; y++) { planetLocations.AddRange(GeneratePlanetLocationsInGridSection(x * (gridSizeX + radius), y * (gridSizeY + radius), gridSizeX, gridSizeY, maxAmount, radius)); } } return(planetLocations); }
public void GenerateNewGalaxy() { AssetGenerator assetG = new AssetGenerator(); int radius = 7; int sectionSizeX = 70; int sectionSizeY = 50; int splitFactor = 4;//280 by 200 RandomPlanetGenerationScope scope = new RandomPlanetGenerationScope(new XYPair(sectionSizeX, sectionSizeY), splitFactor, radius, 40); PrintGenerationInfo("Locating Planets..."); List <XYPair> potentialPlanetLocations = assetG.GeneratePlanetLocations(scope); System.Threading.Thread.Sleep(1000); PrintGenerationInfo("Locating Home Planet System..."); XYPair homeTownPosition = new XYPair(r.Next(50, 230), r.Next(50, 140)); potentialPlanetLocations = assetG.EmptySpaceForHomeTown(potentialPlanetLocations, homeTownPosition); System.Threading.Thread.Sleep(1000); PrintGenerationInfo("Acquiring HomeTown Planet Names..."); planets.AddRange(assetG.GenerateHomeTown(homeTownPosition)); System.Threading.Thread.Sleep(1000); PrintGenerationInfo("Acquiring Planet Names..."); planets.AddRange(assetG.PopulateLocation(potentialPlanetLocations)); System.Threading.Thread.Sleep(1000); PrintGenerationInfo("Analyzing Market Data..."); foreach (Planet p in planets) { p.GenerateMarket(ref r, categoryDatas); p.RefreshFuelPrice(ref r); } System.Threading.Thread.Sleep(1000); PrintGenerationInfo($"Locating {player.GetName()}..."); player.setPlanet(planets.Find(p => p.GetName() == "Earth")); System.Threading.Thread.Sleep(1000); // BitMap for debug //PrintGenerationInfo($"Generating Galaxy Map..."); //Bitmap bmp = new Bitmap((sectionSizeX + radius) * splitFactor * 10, (sectionSizeY + radius) * splitFactor * 10); //Graphics g = Graphics.FromImage(bmp); //foreach (XYPair l in potentialPlanetLocations) //{ // g.DrawEllipse(new Pen(Color.FromArgb(12,12,12), 3f), // new Rectangle(new Point((l.x - radius) * 10, (l.y - radius) * 10), new Size(radius * 10, radius * 10))); //} //List<String> homePlanets = new List<string> { "Earth", "Mars", "XCentrolStation", "YoRHa", "Ernasis", "Alpha Centauri 3", // "Lisnar", "Amenias", "Agnesia"}; //foreach (Planet p in planets) //{ // if (homePlanets.Contains(p.name)) // { // g.FillEllipse(new SolidBrush(ColorTranslator.FromHtml("#ff00ffff")), new Rectangle(new Point((p.GetLocation().x - radius) * 10, (p.GetLocation().y - radius) * 10), // new Size(radius * 2, radius * 2)) // ); // } //} //g.Dispose(); //bmp.Save(@"C:\MSSA\Galaxy Map.PNG", System.Drawing.Imaging.ImageFormat.Png); //bmp.Dispose(); PrintGenerationInfo($"Process Complete!"); System.Threading.Thread.Sleep(3000); PrintGenerationInfo($"Welcome, {player.name}!"); System.Threading.Thread.Sleep(2000); }