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))); }
/// <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; }
/// <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; }
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 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\"); }
public void TestWrongPathRootLoading() { var test = new ClientDataWrapper(WrongClientRoot); }
public void TestWrongPathDirectoryLoading() { var test = new ClientDataWrapper(WrongClientPath); }
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(); }
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); }