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(); }
// 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; }