Esempio n. 1
0
        public void LoadTileData()
        {
            s_Geometry = new Geometry.Geometry();
            // First read target tile to verify we have geometry and get bounding box
            // Read tile
            s_Tile.Read();
            // Generate relevant geometry
            s_Tile.Generate();
            // Append to our geometry
            s_Geometry.AddADT(s_Tile, false);

            // Generate the bounding box for the tile
            // (Because we need to cut the surrounding tiles later)
            Bounds = Geometry.Geometry.GetBoundingBox(X, Y, s_Geometry.Vertices);

            // We need to load the surrounding tiles because there sometimes is overlap in geometry to and from different tiles
            for (var y = Y - 1; y <= Y + 1; y++)
            {
                for (var x = X - 1; y <= X + 1; y++)
                {
                    // Skip target tile as we already added it
                    if (X == x && Y == y)
                    {
                        continue;
                    }

                    // Add a surrounding tile
                    var tile = new ADT(World, x, y);
                    tile.Read();
                    tile.Generate();
                    s_Geometry.AddADT(tile, false);
                }
            }
        }
Esempio n. 2
0
        private bool LoadTile(int tileX, int tileY)
        {
            if (!WDT.HasTile(tileX, tileY))
            {
                return(false);
            }

            if (IsTileLoaded(tileX, tileY))
            {
                return(false);
            }

            // Generate tile
            var tile = new ADT(Continent, tileX, tileY, WDT);

            tile.Read();
            tile.Generate();

            // Generate renderer
            var renderer = new ADTRenderer(Controller, tile);

            renderer.Generate();
            renderer.Bind(Controller.Shader);
            ADTRenderer.Renderers.Add(renderer);

            return(true);
        }
Esempio n. 3
0
        static void ReadADT()
        {
            // var adt = new ADT("Kalimdor", 32, 36);
            //var adt = new ADT("PvPZone01", 32, 30);
            var adt = new ADT("Azeroth", 28, 28);

            // var adt = new ADT("Azeroth", 31, 40);
            adt.Read();
            adt.Generate();
            var geom = new Geometry();

            geom.AddADT(adt);
            geom.SaveWavefrontObject(Path.GetFileNameWithoutExtension(adt.Filename) + ".obj");
        }
Esempio n. 4
0
        static void ReadADTs()
        {
            const string continent = "Azeroth";
            var          allGeom   = new Geometry();

            var sw = new Stopwatch();

            for (int y = 27; y < 29; y++)
            {
                for (int x = 28; x < 30; x++)
                {
                    Console.Write("Parsing {0} [{1}, {2}]", continent, x, y);
                    sw.Start();
                    var adt = new ADT(continent, x, y);
                    adt.Read();
                    adt.Generate();
                    sw.Reset();
                    Console.WriteLine(" (done! {0}ms)", sw.ElapsedMilliseconds);
                    allGeom.AddADT(adt);
                }
            }

            allGeom.SaveWavefrontObject(continent + ".obj");
        }