public void CreateStars(int count) { for (int i = 0; i < count; i++) { var random = new System.Random(); Vector2 position = new Vector2(UnityEngine.Random.Range(-mapField.x * .5f, mapField.x * .5f), UnityEngine.Random.Range(-mapField.y * .5f, mapField.y * .5f)); position = new Vector2((float)NormalizedRandom(-mapField.x * .5f, mapField.x * .5f), (float)NormalizedRandom(-mapField.y * .5f, mapField.y * .5f)); SolarModel star = new SolarModel(names.GenerateWorldName() + " " + (i + 1), i, position, sunSizeColor); game.data.stars.Add(star); } for (int i = 0; i < game.data.stars.Count; i++) //Checking the distance to each already generated star and then adding it to a list of near stars if close enough { for (int c = 0; c < game.data.stars.Count; c++) //Checking the distance to each already generated star and then adding it to a list of near stars if close enough { if (c != i) { double maxDist = 20 * GameDataModel.galaxyDistanceMultiplication; double actualDist = Vector3.Distance(game.data.stars[i].galacticPosition, game.data.stars[c].galacticPosition); if (actualDist < maxDist) { game.data.stars[i].nearStars.Add(game.data.stars[c]); game.data.stars[c].nearStars.Add(game.data.stars[i]); } } } } float connectedness = 0; for (int i = 0; i < count; i++) { float closestStarDist = 1000000000000000; int closestStarIndex = 0; for (int c = 0; c < count; c++) { if (c != i) { float actualDist = Vector3.Distance(game.data.stars[i].galacticPosition, game.data.stars[c].galacticPosition); if (actualDist < closestStarDist) { closestStarDist = actualDist; closestStarIndex = c; } } } if (game.data.stars[i].nearStars.Count == 0) { game.data.stars[i].nearStars.Add(game.data.stars[closestStarIndex]); game.data.stars[closestStarIndex].nearStars.Add(game.data.stars[i]); //print("Connected disconnected star"); } connectedness += game.data.stars[i].nearStars.Count; } connectedness /= count; print("Connectedness average: " + connectedness); }