Esempio n. 1
0
    public bool createSystem()
    {
        bool system_created = false;

        if(num_planets > 0 ){
          //create the system!
          base.sub_spheres = new SphereRenderer[num_planets];

          /*create the sun!*/
          int ptype = 101;
          float pmass = 1000000f;
          string pname = name + " - Sun";
          float pradius = 12f;
          float pdistance = 0f;
          Vector3 pposition = new Vector3(position.x, Random.Range(-400, 400), position.z);
          Debug.Log(pposition);
          Planet planet = new Planet(ptype, pmass, pname, pradius, pdistance, pposition);
          planet.createPlanet();

          factory = (SphereRendererFactory)GameObject.Find("SphereRendererFactory").GetComponent("SphereRendererFactory");
          base.sub_spheres[0] = factory.createSphereRenderer();
          base.sub_spheres[0].initialize(0, 0, planet_threshold,1 , planet);
          base.sub_spheres[0].setIsDisplayed(true);
          /* end create sun */
          pdistance += 15f;
          /*create planets*/
          for(int i = 1; i < (num_planets); i++){
        float omega = Random.Range(0, 2*Mathf.PI);
        /* sphere types
        * 0 - Dead
        * 1 - Fuel Source
        * 2 - Habitable
        * 3 - Sun
        * 4 - Planetary System
        * 5 - System Cluster
        */
        ptype = Random.Range(0, 100);
        pmass = Random.Range(1000f, 10000f);
        pname = name + " - " + i;
        pradius = Random.Range(10f, 20f);
        pdistance = Random.Range(pdistance, pdistance + 100f);
        pposition = new Vector3(position.x + pdistance*Mathf.Cos(omega) , Random.Range(-100, 100), position.z + pdistance*Mathf.Sin(omega));
        planet = new Planet(ptype, pmass, pname, pradius, pdistance, pposition);
        planet_threshold = pradius + 10f;

        if(!planet.createPlanet()){
          system_created = false;
          break;
        }
        else{
          factory = (SphereRendererFactory)GameObject.Find("SphereRendererFactory").GetComponent("SphereRendererFactory");
          base.sub_spheres[i] = factory.createSphereRenderer();
          base.sub_spheres[i].initialize(0, 0, planet_threshold,1 , planet);
          base.sub_spheres[i].setIsDisplayed(true);
        }
        system_created = true;
          }
        }
        return system_created;
    }
Esempio n. 2
0
    /*define other game constants here */
    /* BUILD THE UNIVERSE */
    void Start()
    {
        Random.seed = System.DateTime.Now.Millisecond;
        Debug.Log("Creating Universe...");

        num_clusters = 10;
        num_systems = 2;

        cluster_threshold = 90f;
        radius = 500f;
        float cdistance = 10f;
        cluster_spheres = new SphereRenderer[num_clusters];

        for(int i = 0; i < cluster_spheres.Length; ++i){
          float omega = Random.Range(0, 2*Mathf.PI);

          //uncomment to implement cluster types and mass
          /*float cmass = Random.Range(1000f, 100000f);
          */
          string cname = "Cluster: " + i;
          float cradius = Random.Range(70f, 80f);
          cdistance = Random.Range(cdistance, cdistance + 300);
          Vector3 cposition = new Vector3(cdistance*Mathf.Cos(omega), Random.Range(-100, 100), cdistance*Mathf.Sin(omega));
          cdistance += cradius;
          /*
          float cdistance = 0;
          */
          SystemCluster cluster = new SystemCluster(ctype, 0, cname, cradius, 0, cposition);
          cluster.setNumSystems(num_systems);
          if(!cluster.createCluster()){
        universe_created = false;
        break;
          }
          else{
        factory = (SphereRendererFactory)GameObject.Find("SphereRendererFactory").GetComponent("SphereRendererFactory");
        cluster_spheres[i] = factory.createSphereRenderer();
        cluster_spheres[i].initialize(0, 0, cluster_threshold,1,  cluster);
        //cluster_spheres[i].setIsDisplayed(true);
          }
          universe_created = true;
        }

        if(universe_created)
          Debug.Log("Universe Created");
        else
          Debug.Log("Universe Failed");
    }
Esempio n. 3
0
    public bool createCluster()
    {
        bool cluster_created = false;

        if(num_systems > 0){
          //create the cluster!
          float sdistance = 0f;
          base.sub_spheres = new SphereRenderer[num_systems];

          for(int i = 0; i < num_systems; ++i){
        float omega = Random.Range(0, 2*Mathf.PI);
        /*uncomment to implement system types and mass
        int stype = Random.Range(0, 2);
        float smass = Random.Range(1000f, 100000f);
        */
        float sradius = Random.Range(500f, 800f);
        sdistance = Random.Range(sdistance, sdistance + 50);
        Vector3 sposition = new Vector3(position.x + sdistance*Mathf.Cos(omega) , Random.Range(-100, 100), position.z + sdistance*Mathf.Sin(omega));
        sdistance += sradius;

        string sname = name + ": " + i;

        /*
        float sdistance = Random.Range(pdistance, radius) + (2 * pdistance)
        */
        PlanetarySystem system = new PlanetarySystem(stype, 0, sname, sradius, 0, sposition);
        system.setNumPlanets(Random.Range(3, 9));
        if(!system.createSystem()){
          cluster_created = false;
          break;
        }
        else{
          factory = (SphereRendererFactory)GameObject.Find("SphereRendererFactory").GetComponent("SphereRendererFactory");
          base.sub_spheres[i] = factory.createSphereRenderer();
          base.sub_spheres[i].initialize(0, 0, system_threshold,1,  system);
          //base.sub_spheres[i].setIsDisplayed(true);
        }
        cluster_created = true;
          }
        }
        return cluster_created;
    }