Example #1
0
    public static GameObject CreateSystem(int seed)
    {
        GameObject newSystem = new GameObject("StarSystem");

        Random.InitState(seed);

        StarSystemInfo ssi = GetStarSystemInfo(seed);



        int numberOfBodies = ssi.numberOfPlanets;

        if (ssi.asteroidBelt)
        {
            numberOfBodies++;
        }



        GameObject newStar = CelestialBody.CreateStar(Vector3.zero, Random.Range(0, 99999), ssi.starType);

        newStar.transform.parent = newSystem.transform;



        for (int i = 0; i < numberOfBodies; i++)
        {
            if (ssi.asteroidBelt)
            {
                if (Random.Range(0, 100) > 50)
                {
                    AddAsteroidBelt(i).transform.parent = newSystem.transform;
                    ssi.asteroidBelt = false;
                }
                else if (i == (numberOfBodies - 1))
                {
                    AddAsteroidBelt(i).transform.parent = newSystem.transform;
                    ssi.asteroidBelt = false;
                }
                else
                {
                    AddPlanet(i).transform.parent = newSystem.transform;
                }
            }
            else
            {
                AddPlanet(i).transform.parent = newSystem.transform;
            }
        }



        CreateSystemEdgeRing(ssi.systemSize).transform.parent = newSystem.transform;


        return(newSystem);
    }