public GameLibraryViewModel() { _gameSignatures = new HashSet <string>(); _games = new ObservableCollection <GameViewModel>(); _addCommand = new DelegateCommand(Scan); GameDetector = new GameDetector(); GameDetector.Add(new ScummMetaEngine()); GameDetector.Add(new SkyMetaEngine()); GameDetector.Add(new Sword1.Sword1MetaEngine()); LoadGameLibrary(); }
public static void AddPluginsFromDirectory(this GameDetector gameDetector, string engineDirectory) { if (ServiceLocator.FileStorage.DirectoryExists(engineDirectory)) { var dlls = ServiceLocator.FileStorage.EnumerateFiles(engineDirectory, "*.dll"); foreach (var dll in dlls) { try { var asm = Assembly.LoadFile(dll); if (asm != null) { var engines = GetEngines(asm); foreach (var engine in engines) { gameDetector.Add(engine); } } } catch (BadImageFormatException) { } catch (Exception) { } } } }