コード例 #1
0
        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);
        }
コード例 #2
0
        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);
            }
        }