public StarManifest GenerateStar() { StarManifest star = new StarManifest(); star.planets = new List <PlanetManifest>(); star.color = (StarColor)UnityEngine.Random.Range(0, maxStarColor - 1); int starCount = UnityEngine.Random.Range(minStars, maxStars); for (int i = 0; i < starCount; i++) { star.planets.Add(GeneratePlanet(i)); } // star is size based on nr of planets if (star.planets.Count > 8) { star.size = StarSize.Supergiant; } else if (star.planets.Count > 5) { star.size = StarSize.Giant; } else { star.size = StarSize.Dwarf; } currentStarCount++; return(star); }
private bool StarRequirements(ConstellationManifest constellation, StarManifest star) { foreach (var st in constellation.stars) { float dist = Vector3.Distance(st.position, star.position); if (minStarGap > dist) { return(false); } } return(true); }
public ConstellationManifest GenerateConstellation(Vector3 normalizedPos) { ConstellationManifest constellation = new ConstellationManifest(); // position constellation.position = normalizedPos; constellation.bounds = new Bounds(constellation.position, new Vector3(constellationSize, constellationSize, 1f)); // set seed int origSeed = UnityEngine.Random.seed; UnityEngine.Random.seed = randomSeed + (int)(constellation.position.x / constellationSize) + (int)(constellation.position.y / constellationSize) * 100000; // stars constellation.stars = new List <StarManifest>(); int starCount = UnityEngine.Random.Range(minStars, maxStars); for (int i = 0; i < starCount; i++) { StarManifest star = GenerateStar(); do { star.position = new Vector3( UnityEngine.Random.Range(-constellationSize / 2f + minStarGap, constellationSize / 2f - minStarGap), UnityEngine.Random.Range(-constellationSize / 2f + minStarGap, constellationSize / 2f - minStarGap) ); }while (!StarRequirements(constellation, star)); star.index = i; constellation.stars.Add(star); } // Fleet constellation.fleet = new List <FleetShipManifest>(); int fleetShipCount = UnityEngine.Random.Range(1, 4); for (int i = 0; i < fleetShipCount; i++) { constellation.fleet.Add(GenerateFleetShip()); } // restore previous seed UnityEngine.Random.seed = origSeed; return(constellation); }
private bool StarRequirements(ConstellationManifest constellation, StarManifest star) { foreach (var st in constellation.stars) { float dist = Vector3.Distance(st.position, star.position); if (minStarGap > dist) { return false; } } return true; }
public StarManifest GenerateStar() { StarManifest star = new StarManifest(); star.planets = new List<PlanetManifest>(); star.color = (StarColor)UnityEngine.Random.Range(0, maxStarColor - 1); int starCount = UnityEngine.Random.Range(minStars, maxStars); for (int i = 0 ; i < starCount ; i++) { star.planets.Add(GeneratePlanet(i)); } // star is size based on nr of planets if (star.planets.Count > 8) { star.size = StarSize.Supergiant; } else if (star.planets.Count > 5) { star.size = StarSize.Giant; } else { star.size = StarSize.Dwarf; } currentStarCount++; return star; }