Exemple #1
0
        private void LoadPacks()
        {
            _currentReader = new MarkerPackReader();

            _allPathableResourceManagers = new List <PathableResourceManager>();

            var iconProgressIndicator = new Progress <string>((report) => { _mapIcon.LoadingMessage = report; });

            var dirDataReader      = new DirectoryReader(_markerDirectory);
            var dirResourceManager = new PathableResourceManager(dirDataReader);

            _allPathableResourceManagers.Add(dirResourceManager);
            dirDataReader.LoadOnFileType((Stream fileStream, IDataReader dataReader) => {
                _currentReader.ReadFromXmlPack(fileStream, dirResourceManager);
            }, ".xml", iconProgressIndicator);

            // Load archive marker packs
            List <string> zipPackFiles = new List <string>();

            zipPackFiles.AddRange(Directory.GetFiles(_markerDirectory, "*.zip", SearchOption.AllDirectories));
            zipPackFiles.AddRange(Directory.GetFiles(_markerDirectory, "*.taco", SearchOption.AllDirectories));

            foreach (string packFile in zipPackFiles)
            {
                // Potentially contains many packs within
                var zipDataReader      = new ZipArchiveReader(packFile);
                var zipResourceManager = new PathableResourceManager(zipDataReader);
                _allPathableResourceManagers.Add(zipResourceManager);
                zipDataReader.LoadOnFileType((Stream fileStream, IDataReader dataReader) => {
                    _currentReader.ReadFromXmlPack(fileStream, zipResourceManager);
                }, ".xml", iconProgressIndicator);
            }

            _packsLoaded = true;
        }
Exemple #2
0
        private void UnloadAllPathables()
        {
            _packsLoaded = false;

            // Unregister all pathable resource managers
            _allPathableResourceManagers.ForEach(GameService.Pathing.UnregisterPathableResourceManager);

            // Unregister all pathables
            foreach (IPathable <Entity> pathable in _currentReader.Pathables)
            {
                GameService.Pathing.UnregisterPathable(pathable);
            }

            // Dispose all pathable resource managers
            _allPathableResourceManagers.ForEach(m => m.Dispose());

            // Dipose marker pack reader
            _currentReader.Dispose();
            _currentReader = null;
        }