internal byte[] SearchInAllPaksForPath(string searchingPath, PakExtractor fullExtractor, bool checkMainPakFirst = true) { if (checkMainPakFirst && fullExtractor.HasPath(searchingPath)) { return(fullExtractor.ReadRaw(searchingPath)); } if (SearchLookup.ContainsKey(searchingPath)) { try { using (FileStream f = new FileStream(SearchLookup[searchingPath], FileMode.Open, FileAccess.Read)) { try { PakExtractor modPakExtractor = new PakExtractor(new BinaryReader(f)); if (modPakExtractor.HasPath(searchingPath)) { return(modPakExtractor.ReadRaw(searchingPath)); } } catch { } } } catch (IOException) { } } if (!checkMainPakFirst && fullExtractor.HasPath(searchingPath)) { return(fullExtractor.ReadRaw(searchingPath)); } return(null); }
public ModIntegrator() { OptionalModIDs = new List <string>(); // Include static assets PakExtractor staticAssetsExtractor = new PakExtractor(new BinaryReader(new MemoryStream(Properties.Resources.IntegratorStaticAssets))); foreach (KeyValuePair <string, long> entry in staticAssetsExtractor.PathToOffset) { StarterPakData[entry.Key] = staticAssetsExtractor.ReadRaw(entry.Value); } }