Example #1
0
    public static GameObject CreateAsteroid(Vector3 _position)
    {
        GameObject asteroidObject = new GameObject("Asteroid");

        asteroidObject.transform.position = _position;
        //planetObject.transform.parent = transform;
        //newPlanet.AddComponent<Planet> ();

        int size = Random.Range(2, 4);


        asteroidObject.transform.localScale = new Vector3(size, size, size);

        ///	planet = newPlanet.GetComponent<Planet> ();
        int   pixWidth  = 18;
        int   pixHeight = 18;
        int   scale     = 1;
        float xOrg      = 0;
        float yOrg      = 0;
        int   _seed     = Random.Range(0, 500);

        //planetMesh = SolarBodyGeneration.GetSphereMesh ();
        asteroidObject.AddComponent <MeshFilter> ().mesh = SolarBodyGeneration.RandomisedIcoSphere();
        MeshRenderer mr = asteroidObject.AddComponent <MeshRenderer> ();

        mr.material.mainTexture = Noise.CalculateSeamlessNoise(pixWidth, pixHeight, scale, xOrg, yOrg, _seed, PlanetColour.GetBarrenColour());



        return(asteroidObject);
    }
Example #2
0
    public static GameObject CreateMoon()
    {
        GameObject moonObject = new GameObject("Moon");
        //moonObject.transform.position = MoonPoint(0) + planetObject.transform.position;

        float sizeM = Random.Range(0.5f, 2.0f);

        moonObject.transform.localScale = new Vector3(sizeM, sizeM, sizeM);
        //moonObject.transform.parent = planetObject.transform;
        //newPlanet.AddComponent<Planet> ();



        ///	planet = newPlanet.GetComponent<Planet> ();
        int   pixWidthM  = 128;
        int   pixHeightM = 128;
        int   scaleM     = 4;
        float xOrgM      = 0;
        float yOrgM      = 0;
        int   seedM      = Random.Range(0, 999);

        //planetMesh = SolarBodyGeneration.GetSphereMesh ();
        moonObject.AddComponent <MeshFilter> ().mesh = SolarBodyGeneration.GetSphereMesh();
        MeshRenderer mr = moonObject.AddComponent <MeshRenderer> ();

        mr.material.mainTexture = Noise.CalculateSeamlessNoise(pixWidthM, pixHeightM, scaleM, xOrgM, yOrgM, seedM, PlanetColour.GetPlanetColour((PlanetType)Random.Range(0, 15)));


        return(moonObject);
    }
Example #3
0
    public static GameObject CreateAnomaliPoint()
    {
        GameObject newPoint = new GameObject("AnomaliPoint");

        newPoint.AddComponent <MeshFilter> ().mesh = SolarBodyGeneration.GetConeMesh();

        newPoint.AddComponent <MeshRenderer> ();



        return(newPoint);
    }
Example #4
0
    public static GameObject CreateCloud()
    {
        GameObject cloudObject = new GameObject("Cloud");

        //cloudObject.transform.position = planetObject.transform.position;
        //cloudObject.transform.parent = planetObject.transform;
        //cloudObject.AddComponent<Clouds> ();

        cloudObject.AddComponent <MeshFilter> ().mesh = SolarBodyGeneration.GetSphereMesh();
        cloudObject.transform.localScale = new Vector3(1.03f, 1.03f, 1.03f);

        int   pixWidthC  = 128;
        int   pixHeightC = 128;
        int   scaleC     = 10;
        float xOrgC      = Random.Range(0, 999.9f);
        float yOrgC      = Random.Range(0, 999.9f);

        cloudObject.AddComponent <MeshRenderer> ();

        //r = gameObject.GetComponent<MeshRenderer> ();

        //noiseTex = new Texture2D (pixWidth, pixHeight);
        //pix = new Color[noiseTex.width * noiseTex.height];

        //r.material.mainTexture = noiseTex;

        //NewCloud (_scale,_rotationSpeed);



        MeshRenderer mr = cloudObject.GetComponent <MeshRenderer> ();



        mr.material.mainTexture = Noise.CalculatePerlinNoise(pixWidthC, pixHeightC, scaleC, xOrgC, yOrgC, PlanetColour.GetCloudColour());


        mr.material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.SrcAlpha);
        mr.material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha);
        mr.material.SetInt("_ZWrite", 0);
        mr.material.DisableKeyword("_ALPHATEST_ON");
        mr.material.EnableKeyword("_ALPHABLEND_ON");
        mr.material.DisableKeyword("_ALPHAPREMULTIPLY_ON");
        mr.material.renderQueue = 3000;

        return(cloudObject);
    }
Example #5
0
    public static GameObject CreatePlanet(Vector3 _position, int _seed, PlanetType _planetType)
    {
        GameObject planetObject = new GameObject("Planet");

        planetObject.transform.position = _position;
        //planetObject.transform.parent = transform;
        //newPlanet.AddComponent<Planet> ();

        int size = Random.Range(3, 10);

        planetObject.transform.localScale = new Vector3(size, size, size);

        ///	planet = newPlanet.GetComponent<Planet> ();
        int   pixWidth  = 256;
        int   pixHeight = 256;
        int   scale     = 6;
        float xOrg      = 0;
        float yOrg      = 0;

        //planetMesh = SolarBodyGeneration.GetSphereMesh ();
        planetObject.AddComponent <MeshFilter> ().mesh = SolarBodyGeneration.GetSphereMesh();
        MeshRenderer mr = planetObject.AddComponent <MeshRenderer> ();

        mr.material.mainTexture = Noise.CalculateSeamlessNoise(pixWidth, pixHeight, scale, xOrg, yOrg, _seed, PlanetColour.GetPlanetColour(_planetType));

//		if (_planetType == PlanetType.Molten) {
//			planetObject.GetComponent<MeshRenderer> ().material.EnableKeyword ("_EMISSION");
//			planetObject.GetComponent<MeshRenderer> ().material.SetTexture ("_EmissionMap", Noise.CalculateSeamlessNoise (pixWidth, pixHeight, scale, xOrg, yOrg, _seed, PlanetColour.GetPlanetColour (_planetType)));
//			planetObject.GetComponent<MeshRenderer> ().material.SetColor ("_EmissionColor", new Color(0.5f,0.5f,0.5f));
//			planetObject.GetComponent<MeshRenderer> ().material.SetFloat ("_Metallic", 1);
//			planetObject.GetComponent<MeshRenderer> ().material.SetFloat ("_Glossiness", 1);
//		}
        if (_planetType != PlanetType.Molten)
        {
            //cloud = new Clouds[numberOfCloudLayers];
        }

        return(planetObject);
    }
Example #6
0
    public static GameObject CreateStar(Vector3 _position, int _seed, StarType _starType)
    {
        GameObject starObject = new GameObject("Star");

        starObject.transform.position = _position;
        //planetObject.transform.parent = transform;
        //newPlanet.AddComponent<Planet> ();

        int size = Random.Range(20, 30);


        starObject.transform.localScale = new Vector3(size, size, size);

        ///	planet = newPlanet.GetComponent<Planet> ();
        int   pixWidth  = 256;
        int   pixHeight = 256;
        int   scale     = 6;
        float xOrg      = 0;
        float yOrg      = 0;

        //planetMesh = SolarBodyGeneration.GetSphereMesh ();
        starObject.AddComponent <MeshFilter> ().mesh = SolarBodyGeneration.GetSphereMesh();
        MeshRenderer mr = starObject.AddComponent <MeshRenderer> ();


        //StarType st = (StarType)Random.Range (0, 6);


        mr.material.mainTexture = Noise.CalculateSeamlessNoise(pixWidth, pixHeight, scale, xOrg, yOrg, _seed, StarColour.GetStarColour(_starType));

        mr.material.EnableKeyword("_EMISSION");
        mr.material.SetTexture("_EmissionMap", Noise.CalculateSeamlessNoise(pixWidth, pixHeight, scale, xOrg, yOrg, _seed, StarColour.GetStarColour(_starType)));
        mr.material.SetColor("_EmissionColor", Color.white);

        return(starObject);
    }
    public StarSystemGenerator.StarSystemInfo GenerateSystem(StarSystem _starSystem, bool _active)
    {
        GameObject newSystem = StarSystemGenerator.CreateSystem(_starSystem.seed);

        newSystem.transform.parent = transform;
        //StarSystemGenerator.CreateSystemEdgeRing (seed).transform.parent = transform.GetChild(1);

        for (int i = 0; i < _starSystem.anomaliEvent.Length; i++)
        {
            GameObject newPoint = new GameObject("Anomali Event");
            newPoint.transform.parent     = newSystem.transform;
            newPoint.transform.localScale = new Vector3(2, 2, 2);

            newPoint.AddComponent <MeshFilter> ().mesh = SolarBodyGeneration.GetTorusMesh();

            newPoint.AddComponent <MeshRenderer> ().material.mainTexture = new Texture();
            newPoint.GetComponent <MeshRenderer> ().material.color       = Color.white;

            GameObject newPoint2 = new GameObject();
            newPoint2.transform.parent     = newPoint.transform;
            newPoint2.transform.rotation   = new Quaternion(-180, 0, 0, 0);
            newPoint2.transform.position   = new Vector3(0, 6, 0);
            newPoint2.transform.localScale = new Vector3(2, 2, 2);


            newPoint2.AddComponent <MeshFilter> ().mesh = SolarBodyGeneration.GetConeMesh();

            newPoint2.AddComponent <MeshRenderer> ().material.mainTexture = new Texture();
            newPoint2.GetComponent <MeshRenderer> ().material.color       = Color.white;
            //newPoint.transform.position = StarSystemGenerator.GetRandomPoint (StarSystemGenerator.GetStarSystemEdgeDistance(_starSystem.seed));
            //Vector3 newPos = Random.insideUnitSphere * StarSystemGenerator.GetStarSystemEdgeDistance(_starSystem.seed);
            //newPos.y = 25;
            newPoint.transform.position = GetRandomNonCollidingPoint(StarSystemGenerator.GetStarSystemEdgeDistance(_starSystem.seed));

            newPoint.tag = "EventPoint";
            newPoint.AddComponent <SphereCollider> ();
            newPoint.AddComponent <EventPoint> ().eventNumber     = i;
            newPoint.GetComponent <EventPoint> ().eventListNumber = Random.Range(0, 23);
        }

        if (_starSystem.mainEvent)
        {
            GameObject newPoint = new GameObject("Main Event");
            newPoint.transform.parent     = newSystem.transform;
            newPoint.transform.localScale = new Vector3(2, 2, 2);

            newPoint.AddComponent <MeshFilter> ().mesh = SolarBodyGeneration.GetTorusMesh();

            newPoint.AddComponent <MeshRenderer> ().material.mainTexture = new Texture();
            newPoint.GetComponent <MeshRenderer> ().material.color       = Color.yellow;

            GameObject newPoint2 = new GameObject();
            newPoint2.transform.parent     = newPoint.transform;
            newPoint2.transform.rotation   = new Quaternion(-180, 0, 0, 0);
            newPoint2.transform.position   = new Vector3(0, 6, 0);
            newPoint2.transform.localScale = new Vector3(2, 2, 2);


            newPoint2.AddComponent <MeshFilter> ().mesh = SolarBodyGeneration.GetConeMesh();

            newPoint2.AddComponent <MeshRenderer> ().material.mainTexture = new Texture();
            newPoint2.GetComponent <MeshRenderer> ().material.color       = Color.yellow;

            //newPoint.transform.position = StarSystemGenerator.GetRandomPoint (StarSystemGenerator.GetStarSystemEdgeDistance(_starSystem.seed));
            //Vector3 newPos = Random.insideUnitSphere * StarSystemGenerator.GetStarSystemEdgeDistance(_starSystem.seed);
            //newPos.y = 25;
            //newPoint.transform.position = newPos;

            newPoint.transform.position = GetRandomNonCollidingPoint(StarSystemGenerator.GetStarSystemEdgeDistance(_starSystem.seed));


            newPoint.tag = "MainEventPoint";
            newPoint.AddComponent <SphereCollider> ();
        }
        if (_starSystem.trader)
        {
            GameObject newPoint = new GameObject("Trader");
            newPoint.transform.parent = newSystem.transform;


            GameObject ob = Instantiate(traderGameObject [Random.Range(0, traderGameObject.Length)], new Vector3(0, -12, 0), traderGameObject [Random.Range(0, traderGameObject.Length)].transform.rotation, newPoint.transform);

            newPoint.transform.position = GetRandomNonCollidingPoint(StarSystemGenerator.GetStarSystemEdgeDistance(_starSystem.seed));


            newPoint.tag = "Trader";
            newPoint.AddComponent <SphereCollider> ();
        }
        if (_starSystem.researchOutpost)
        {
            GameObject newPoint = new GameObject("Research Outpost");
            newPoint.transform.parent = newSystem.transform;

            GameObject ob = Instantiate(researchGameObject [Random.Range(0, researchGameObject.Length)], new Vector3(0, -12, 0), researchGameObject [Random.Range(0, researchGameObject.Length)].transform.rotation, newPoint.transform);

            newPoint.transform.position = GetRandomNonCollidingPoint(StarSystemGenerator.GetStarSystemEdgeDistance(_starSystem.seed));


            newPoint.tag = "ResearchOutpost";
            newPoint.AddComponent <SphereCollider> ();
        }

        Vector3 particlePosition = Random.insideUnitSphere * 200;

        particlePosition.y        = Random.Range(-350, -500);
        ps [1].transform.position = particlePosition;

        ParticleSystem.MainModule mainP = ps [1].main;
        mainP.startColor = new ParticleSystem.MinMaxGradient(NebulaColour.GetColour(Random.Range(0, 4)));

        for (int i = 0; i < ps.Length; i++)
        {
            ps[i].Stop();
            ps[i].Clear();
            ps[i].randomSeed = (uint)Random.Range(0, 99999);
            ps[i].Play();
        }

        newSystem.SetActive(_active);

        return(StarSystemGenerator.GetStarSystemInfo(_starSystem.seed));
    }
    //public int numberOfSystems;

    public static GameObject CreateGalaxy(out StarSystem[] starSystem, int numberOfSystems)
    {
        GameObject newGalaxy = new GameObject("Galaxy");


        starSystem = new StarSystem[numberOfSystems];


        for (int i = 0; i < starSystem.Length; i++)
        {
            int[] ae = new int[Random.Range(0, 3)];

            for (int e = 0; e < ae.Length; e++)
            {
                ae [e] = Random.Range(0, 3);
            }

            bool me = false;

            if (i < 10)
            {
                me = true;
            }

            bool t = false;

            if (Random.Range(0, 100) < 50)
            {
                t = true;
            }

            bool ro = false;

            if (Random.Range(0, 100) < 50)
            {
                ro = true;
            }

            starSystem [i] = new StarSystem(Random.Range(0, 10000000), ae, me, t, ro);


            GameObject newSystemPoint = new GameObject("SystemPoint");
            newSystemPoint.transform.parent     = newGalaxy.transform;
            newSystemPoint.transform.position   = new Vector3((20 * (i)), 0, 0);
            newSystemPoint.transform.localScale = new Vector3(4, 4, 4);
            newSystemPoint.AddComponent <MeshFilter> ().mesh = SolarBodyGeneration.GetSphereMesh();
            MeshRenderer mr = newSystemPoint.AddComponent <MeshRenderer> ();
            newSystemPoint.AddComponent <SphereCollider> ().radius = 1;
            newSystemPoint.AddComponent <SystemPoint> ().SetStarSystem(i);
            newSystemPoint.tag = "SystemPoint";


            int   pixWidth  = 16;
            int   pixHeight = 16;
            int   scale     = 1;
            float xOrg      = 0;
            float yOrg      = 0;


            StarType st = StarSystemGenerator.GetStarSystemInfo(starSystem[i].seed).starType;


            mr.material.mainTexture = Noise.CalculateSeamlessNoise(pixWidth, pixHeight, scale, xOrg, yOrg, starSystem[i].seed, StarColour.GetStarColour(st));

            mr.material.EnableKeyword("_EMISSION");
            mr.material.SetTexture("_EmissionMap", Noise.CalculateSeamlessNoise(pixWidth, pixHeight, scale, xOrg, yOrg, starSystem[i].seed, StarColour.GetStarColour(st)));
            mr.material.SetColor("_EmissionColor", new Color(0.5f, 0.5f, 0.5f));
        }


        return(newGalaxy);
    }