private void PreLoadNIFThreadFunc(object filePathObj) { // Load the NIF file without loading textures. var filePath = (string)filePathObj; NIF.NiFile file = dataReader.LoadNIF(filePath); // Pre-load the NIF file's textures. foreach (var anNiObject in file.blocks) { if (anNiObject is NIF.NiSourceTexture) { var anNiSourceTexture = (NIF.NiSourceTexture)anNiObject; if ((anNiSourceTexture.fileName != null) && (anNiSourceTexture.fileName != "")) { materialManager.TextureManager.PreLoadTexture(anNiSourceTexture.fileName); } } } lock (dictionariesLock) { preLoadedNIFFiles[filePath] = file; } }
public NIF.NiFile LoadNIF(string filePath) { var fileData = MorrowindBSAFile.LoadFileData(filePath); var file = new NIF.NiFile(Path.GetFileNameWithoutExtension(filePath)); file.Deserialize(new UnityBinaryReader(new MemoryStream(fileData))); return(file); }
public Task <NIF.NiFile> LoadNifAsync(string filePath) { var fileData = MorrowindBSAFile.LoadFileData(filePath); return(Task.Run(() => { var file = new NIF.NiFile(Path.GetFileNameWithoutExtension(filePath)); file.Deserialize(new UnityBinaryReader(new MemoryStream(fileData))); return file; })); }