Пример #1
0
        public ResourceManager(IServiceProvider serviceProvider, string rootDirectory)
        {
            _serviceProvider = serviceProvider;
            _rootDirectory   = rootDirectory;

            _menuResourceManager = new MenuResourceManager(_serviceProvider, rootDirectory);
            _saveLoadHandler     = new SaveLoadHandler();

            _playerContentManager = new ContentManager(_serviceProvider, rootDirectory);

            _regionContent           = new Dictionary <RegionNames, RegionContent>();
            _crossRegionNpcContent   = new Dictionary <NpcNames, CrossRegionNpcContent>();
            _crossRegionSoundContent = new Dictionary <SoundName, CrossRegionSoundContent>();

            _contentToRemove = new List <RegionNames>();
            _contentToAdd    = new List <RegionContent>();
            _crossRegionNpcContentToRemove   = new List <NpcNames>();
            _crossRegionSoundContentToRemove = new List <SoundName>();
            _crossRegionContentToAdd         = new List <CrossRegionContent>();

            _backgroundThread = new BackgroundThread(_saveLoadHandler, _serviceProvider, _rootDirectory);
            _backgroundThread.SaveInitiated  += SaveStarted;
            _backgroundThread.SaveCompleted  += SaveDone;
            _backgroundThread.AssetsLoaded   += AssetsLoaded;
            _backgroundThread.AssetsUnloaded += AssetsUnloaded;

            var t = new Thread(() => _backgroundThread.Loop());

            t.Start();
        }
Пример #2
0
        // everything here needs to be redone

        public BackgroundThread(SaveLoadHandler saveLoadHandler, IServiceProvider serviceProvider, string rootDirectory)
        {
            _serviceProvider = serviceProvider;
            _rootDirectory   = rootDirectory;

            _saveLoadHandler    = saveLoadHandler;
            _saveRequests       = new List <SaveLoadMessage>();
            _loadRequests       = new List <RegionNames>();
            _unloadRequests     = new List <RegionNames>();
            _preferenceRequests = new List <PreferenceData>();
            _fileLoadRequest    = -1;

            _currentLoadedRegions = new List <RegionNames>();

            _loadUnloadLock = new object();
            _fileLoadLock   = new object();

            _continueLooping = true;
        }