private IndexSummary Build(string grimDawnDirectory, string grimDawnSavesDirectory, bool keepExtractedFiles, bool skipVersionCheck, Action <string> stateChangeCallback) { LoadAllCharacters(grimDawnSavesDirectory, stateChangeCallback); stateChangeCallback("Loading tags/strings"); _stringsCache.LoadAllStrings(grimDawnDirectory); stateChangeCallback("Loading items"); _itemCache.LoadAllItems(grimDawnDirectory, keepExtractedFiles, skipVersionCheck, stateChangeCallback); var summary = BuildIndex(stateChangeCallback); MD5Store.Instance.Save("DatabaseHashes.json"); return(summary); }