public void Initialize(CelestialBodies.CelestialBody map, Network network)
        {
            MapCamera.GetComponent <CameraController>().Initialize(map.Radius);
            MapCamera.GetComponent <CameraController>().DisplayLargeGrid = true;

            foreach (CelestialBodies.Universe body in map.GetAllUniverses())
            {
                GameObject newGameObject = Instantiate(CelestialBodyPrefab, body.Position, Quaternion.identity);
                newGameObject.transform.localScale = new Vector3(body.Radius * 2, body.Radius * 2, 1);
                newGameObject.GetComponent <SpriteRenderer>().sortingOrder = -(int)body.Type;
            }
            foreach (CelestialBodies.Expanse body in map.GetAllExpanses())
            {
                GameObject newGameObject = Instantiate(CelestialBodyPrefab, body.Position, Quaternion.identity);
                newGameObject.transform.localScale = new Vector3(body.Radius * 2, body.Radius * 2, 1);
                newGameObject.GetComponent <SpriteRenderer>().sortingOrder = -(int)body.Type;
            }
            foreach (CelestialBodies.Galaxy body in map.GetAllGalaxies())
            {
                GameObject newGameObject = Instantiate(CelestialBodyPrefab, body.Position, Quaternion.identity);
                newGameObject.transform.localScale = new Vector3(body.Radius * 2, body.Radius * 2, 1);
                newGameObject.GetComponent <SpriteRenderer>().sortingOrder = -(int)body.Type;
            }
            foreach (CelestialBodies.Sector body in map.GetAllSectors())
            {
                GameObject newGameObject = Instantiate(CelestialBodyPrefab, body.Position, Quaternion.identity);
                newGameObject.transform.localScale = new Vector3(body.Radius * 2, body.Radius * 2, 1);
                newGameObject.GetComponent <SpriteRenderer>().sortingOrder = -(int)body.Type;
            }
            foreach (CelestialBodies.SolarSystem body in map.GetAllSolarSystems())
            {
                GameObject newGameObject = Instantiate(CelestialBodyPrefab, body.Position, Quaternion.identity);
                newGameObject.transform.localScale = new Vector3(body.Radius * 2, body.Radius * 2, 1);
                newGameObject.GetComponent <SpriteRenderer>().sortingOrder = -(int)body.Type;
            }
            foreach (CelestialBodies.Star body in map.GetAllStars())
            {
                GameObject newGameObject = Instantiate(StarPrefab, body.Position, Quaternion.identity);
                newGameObject.transform.localScale = new Vector3(body.Radius * 2, body.Radius * 2, 1);
                newGameObject.GetComponent <SpriteRenderer>().sortingOrder = 1;
            }
            foreach (CelestialBodies.Planet body in map.GetAllPlanets())
            {
                GameObject newGameObject = Instantiate(PlanetPrefab, body.Position, Quaternion.identity);
                newGameObject.transform.localScale = new Vector3(body.Radius * 2, body.Radius * 2, 1);
                newGameObject.GetComponent <SpriteRenderer>().sortingOrder = 2;
            }

            foreach (CelestialBodies.CelestialBody[] edge in network.Edges)
            {
                Vector2 position   = (edge[0].Position + edge[1].Position) / 2;
                Vector2 difference = edge[0].Position - edge[1].Position;
                Vector3 scale      = new Vector3(difference.magnitude, 0.25f, 1f);

                GameObject newGameObject = Instantiate(EdgePrefab, position, Quaternion.Euler(0, 0, Vector2.SignedAngle(Vector2.right, difference)));
                newGameObject.transform.localScale = scale;
                newGameObject.GetComponent <SpriteRenderer>().sortingOrder = 0;
            }
        }
 public void Initialize(CelestialBodies.CelestialBody map, Network network)
 {
     MapCamera.GetComponent <CameraController>().Initialize(map.Radius);
     InitializeSmallBodyLayer(map);
     InitializeSolarSystemLayers(map);
     InitializeSectorLayers(map);
     InitializeGalaxyLayers(map);
     InitializeExpanseLayer(map);
     InitializeUniverseLayer(map);
 }
        private void InitializeExpanseLayer(CelestialBodies.CelestialBody map)
        {
            List <CelestialBodies.CelestialBody> layerList = new List <CelestialBodies.CelestialBody>();

            foreach (CelestialBodies.Expanse expanse in map.GetAllExpanses())
            {
                layerList.Add(expanse);
            }
            ExpanseLayer_LOD3.GetComponent <FewLayerController>().Initialize(layerList);
        }
        private void InitializeUniverseLayer(CelestialBodies.CelestialBody map)
        {
            List <CelestialBodies.CelestialBody> layerList = new List <CelestialBodies.CelestialBody>();

            foreach (CelestialBodies.Universe universe in map.GetAllUniverses())
            {
                layerList.Add(universe);
            }
            UniverseLayer_LOD3.GetComponent <FewLayerController>().Initialize(layerList);
        }
        private void InitializeGalaxyLayers(CelestialBodies.CelestialBody map)
        {
            Quadtree quadtree = new Quadtree(map.Radius, -map.Radius, -map.Radius, map.Radius);
            List <CelestialBodies.Galaxy> galaxies = map.GetAllGalaxies();

            foreach (CelestialBodies.Galaxy galaxy in galaxies)
            {
                quadtree.Insert(galaxy);
            }
            GalaxyLayer_LOD2.GetComponent <ManyLayerController>().Initialize(quadtree);
            GalaxyLayer_LOD3.GetComponent <ManyLayerController>().Initialize(quadtree);
        }
        private void InitializeSectorLayers(CelestialBodies.CelestialBody map)
        {
            Quadtree quadtree = new Quadtree(map.Radius, -map.Radius, -map.Radius, map.Radius);
            List <CelestialBodies.Sector> sectors = map.GetAllSectors();

            foreach (CelestialBodies.Sector sector in sectors)
            {
                quadtree.Insert(sector);
            }
            SectorLayer_LOD1.GetComponent <ManyLayerController>().Initialize(quadtree);
            SectorLayer_LOD2.GetComponent <ManyLayerController>().Initialize(quadtree);
        }
        private void InitializeSolarSystemLayers(CelestialBodies.CelestialBody map)
        {
            Quadtree quadtree = new Quadtree(map.Radius, -map.Radius, -map.Radius, map.Radius);
            List <CelestialBodies.SolarSystem> solarSystems = map.GetAllSolarSystems();

            foreach (CelestialBodies.SolarSystem solarSystem in solarSystems)
            {
                quadtree.Insert(solarSystem);
            }
            SolarSystemLayer_LOD0.GetComponent <ManyLayerController>().Initialize(quadtree);
            SolarSystemLayer_LOD1.GetComponent <ManyLayerController>().Initialize(quadtree);
        }
        private void InitializeSmallBodyLayer(CelestialBodies.CelestialBody map)
        {
            Quadtree quadtree = new Quadtree(map.Radius, -map.Radius, -map.Radius, map.Radius);
            List <CelestialBodies.Planet> planets = map.GetAllPlanets();

            foreach (CelestialBodies.Planet planet in planets)
            {
                quadtree.Insert(planet);
            }
            List <CelestialBodies.Star> stars = map.GetAllStars();

            foreach (CelestialBodies.Star star in stars)
            {
                quadtree.Insert(star);
            }
            SmallBodyLayer_LOD0.GetComponent <ManyLayerController>().Initialize(quadtree);
        }
Example #9
0
 public void Insert(CelestialBodies.CelestialBody body)
 {
     Insert(new Vector4(body.Position.x, body.Position.y, body.Radius, (int)body.Type));
 }