Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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;
            }));
        }