Esempio n. 1
0
        public void TestValidPathRootLoading()
        {
            var test = new ClientDataWrapper(TemporaryPath);

            Assert.IsTrue(test.ClientFiles.Any(f => f.Name.Equals("camelot.exe", StringComparison.OrdinalIgnoreCase)));
            Assert.IsTrue(test.ClientFiles.Any(f => f.Name.Equals("game.dll", StringComparison.OrdinalIgnoreCase)));
        }
Esempio n. 2
0
 /// <summary>
 /// Default Constructor
 /// </summary>
 /// <param name="id"></param>
 /// <param name="files"></param>
 /// <param name="type"></param>
 /// <param name="wrapper"></param>
 public ZoneRenderer(int id, IEnumerable <FileInfo> files, ZoneType type, ClientDataWrapper wrapper)
     : base(id, files, type)
 {
     TreeReplacement = wrapper.TreeReplacement;
     NifCache        = new Dictionary <int, ClientMesh>();
     InstancesMatrix = new KeyValuePair <int, Matrix> [0];
     ClientWrapper   = wrapper;
 }
Esempio n. 3
0
 /// <summary>
 /// Default Constructor
 /// </summary>
 /// <param name="id"></param>
 /// <param name="files"></param>
 /// <param name="type"></param>
 /// <param name="wrapper"></param>
 public ZoneRenderer(int id, IEnumerable<FileInfo> files, ZoneType type, ClientDataWrapper wrapper)
     : base(id, files, type)
 {
     TreeReplacement = wrapper.TreeReplacement;
     NifCache = new Dictionary<int, ClientMesh>();
     InstancesMatrix = new KeyValuePair<int, Matrix>[0];
     ClientWrapper = wrapper;
 }
Esempio n. 4
0
 public CityRenderer(int id, IEnumerable<FileInfo> files, ZoneType type, ClientDataWrapper wrapper)
     : base(id, files, type, wrapper)
 {
     var nifs = CityNifs;
     AddNifCache(nifs);
     Matrix scaleMatrix;
     ZoneDrawingExtensions.CreateScale(UnitFactor, UnitFactor, UnitFactor, out scaleMatrix);
     Matrix rotated;
     ZoneDrawingExtensions.Mult(ref scaleMatrix, ref RotationMatrix, out rotated);
     InstancesMatrix = nifs.Select(n => new KeyValuePair<int, Matrix>(n.Key, rotated)).ToArray();
 }
Esempio n. 5
0
        public CityRenderer(int id, IEnumerable <FileInfo> files, ZoneType type, ClientDataWrapper wrapper)
            : base(id, files, type, wrapper)
        {
            var nifs = CityNifs;

            AddNifCache(nifs);
            Matrix scaleMatrix;

            ZoneDrawingExtensions.CreateScale(UnitFactor, UnitFactor, UnitFactor, out scaleMatrix);
            Matrix rotated;

            ZoneDrawingExtensions.Mult(ref scaleMatrix, ref RotationMatrix, out rotated);
            InstancesMatrix = nifs.Select(n => new KeyValuePair <int, Matrix>(n.Key, rotated)).ToArray();
        }
 public void Init()
 {
     client  = new ClientDataWrapper(loc);
     extract = new DirectoryInfo(@"D:\extract\");
 }
Esempio n. 7
0
 public void TestWrongPathRootLoading()
 {
     var test = new ClientDataWrapper(WrongClientRoot);
 }
Esempio n. 8
0
 public void TestWrongPathDirectoryLoading()
 {
     var test = new ClientDataWrapper(WrongClientPath);
 }
Esempio n. 9
0
 public void TestWrongDirectoryLoading()
 {
     string str  = null;
     var    test = new ClientDataWrapper(str);
 }
 public ZoneRendererChooser(ClientDataWrapper client)
     : base(client)
 {
     ClientWrapper = client;
 }
 public DungeonRenderer(int id, IEnumerable <FileInfo> files, ZoneType type, ClientDataWrapper wrapper)
     : base(id, files, type, wrapper)
 {
     AddNifCache(DungeonChunk.Select((s, i) => new KeyValuePair <int, string>(i, s)).ToDictionary(v => v.Key, v => v.Value));
     AddNifInstancesYZSwapped(DungeonPlaces);
 }
        public TerrainRenderer(int id, IEnumerable<FileInfo> files, ZoneType type, ClientDataWrapper wrapper)
            : base(id, files, type, wrapper)
        {
            // Init Terrain Height Calculator
            TerrainHeightCache = TerrainHeightCalculator;

            AddNifCache(TerrainNifs);
            AddNifInstancesYZSwapped(TerrainFixtures);

            // Store Terrain
            var terrain = TerrainHeightMap;
            var vertices = new List<Vector3>();
            var indices = new List<TriangleIndex>();
            for (int x = 0 ; x < terrain.Length ; x++)
            {
                var yLength = terrain[x].Length;
                for (int y = 0 ; y < yLength ; y++)
                {
                    var height = terrain[x][y];
                    vertices.Add(new Vector3(x, height, y));
                }
            }

            var width = terrain.Length;
            for (int x = 0 ; x < terrain.Length - 1 ; x++)
            {
                var yLength = terrain[x].Length;
                for (int y = 0 ; y < yLength - 1 ; y++)
                {
                    var tri1 = new TriangleIndex
                    {
                        A = (uint)((x + 1) * width + (y + 1)),
                        B = (uint)((x + 1) * width + y),
                        C = (uint)(x * width + y),
                    };
                    var tri2 = new TriangleIndex
                    {
                        A = (uint)((x + 1) * width + (y + 1)),
                        B = (uint)(x * width + y),
                        C = (uint)(x * width + (y + 1)),
                    };

                    indices.Add(tri1);
                    indices.Add(tri2);
                }
            }

            // Build Terrain object as a Primitive Nif
            var Terrain = new TriangleCollection
            {
                Vertices = vertices.ToArray(),
                Indices = indices.ToArray(),
            };

            // Add Terrain like a Nif
            var insertid = 0;
            if (NifCache.Count > 0)
                insertid = NifCache.Max(kv => kv.Key) + 1;

            NifCache.Add(insertid, new ClientMesh("terrain", Terrain, Terrain, Terrain));
            InstancesMatrix = InstancesMatrix.Concat(new [] { new KeyValuePair<int, Matrix>(insertid, Matrix.Identity) }).ToArray();
        }
Esempio n. 13
0
        public TerrainRenderer(int id, IEnumerable <FileInfo> files, ZoneType type, ClientDataWrapper wrapper)
            : base(id, files, type, wrapper)
        {
            // Init Terrain Height Calculator
            TerrainHeightCache = TerrainHeightCalculator;

            AddNifCache(TerrainNifs);
            AddNifInstancesYZSwapped(TerrainFixtures);

            // Store Terrain
            var terrain  = TerrainHeightMap;
            var vertices = new List <Vector3>();
            var indices  = new List <TriangleIndex>();

            for (int x = 0; x < terrain.Length; x++)
            {
                var yLength = terrain[x].Length;
                for (int y = 0; y < yLength; y++)
                {
                    var height = terrain[x][y];
                    vertices.Add(new Vector3(x, height, y));
                }
            }

            var width = terrain.Length;

            for (int x = 0; x < terrain.Length - 1; x++)
            {
                var yLength = terrain[x].Length;
                for (int y = 0; y < yLength - 1; y++)
                {
                    var tri1 = new TriangleIndex
                    {
                        A = (uint)((x + 1) * width + (y + 1)),
                        B = (uint)((x + 1) * width + y),
                        C = (uint)(x * width + y),
                    };
                    var tri2 = new TriangleIndex
                    {
                        A = (uint)((x + 1) * width + (y + 1)),
                        B = (uint)(x * width + y),
                        C = (uint)(x * width + (y + 1)),
                    };

                    indices.Add(tri1);
                    indices.Add(tri2);
                }
            }

            // Build Terrain object as a Primitive Nif
            var Terrain = new TriangleCollection
            {
                Vertices = vertices.ToArray(),
                Indices  = indices.ToArray(),
            };

            // Add Terrain like a Nif
            var insertid = 0;

            if (NifCache.Count > 0)
            {
                insertid = NifCache.Max(kv => kv.Key) + 1;
            }

            NifCache.Add(insertid, new ClientMesh("terrain", Terrain, Terrain, Terrain));
            InstancesMatrix = InstancesMatrix.Concat(new [] { new KeyValuePair <int, Matrix>(insertid, Matrix.Identity) }).ToArray();
        }
 public ZoneRendererChooser(ClientDataWrapper client)
     : base(client)
 {
     ClientWrapper = client;
 }
 public DungeonRenderer(int id, IEnumerable<FileInfo> files, ZoneType type, ClientDataWrapper wrapper)
     : base(id, files, type, wrapper)
 {
     AddNifCache(DungeonChunk.Select((s, i) => new KeyValuePair<int, string>(i, s)).ToDictionary(v => v.Key, v => v.Value));
     AddNifInstancesYZSwapped(DungeonPlaces);
 }