예제 #1
0
        public static ModMetadata ReadFromFile(string metaFile, string hashFile, string modFile)
        {
            //Check for hash mismatch
            if (!File.Exists(hashFile))
            {
                GenerateHashForMod(modFile, hashFile);
            }
            bool isMatch = CompareHashes(modFile, hashFile);

            string text  = File.ReadAllText(metaFile);
            int    index = 0;

            ModMetadata meta = new ModMetadata();

            Deserializer    ds       = new Deserializer();
            ModJSONMetadata jsonMeta = ds.Deserialize <ModJSONMetadata>(text);

            meta.isEnabled    = jsonMeta.isEnabled;
            meta.isPatch      = jsonMeta.isPatch;
            meta.isDirty      = isMatch;
            meta.isStandalone = jsonMeta.isStandalone;

            meta.modifiedClasses = new Dictionary <string, HashSet <string> >();
            foreach (KeyValuePair <string, List <string> > kvp in jsonMeta.modifiedClasses)
            {
                meta.modifiedClasses[kvp.Key] = new HashSet <string>(kvp.Value);
            }

            meta.modPath = modFile;

            return(meta);
        }
예제 #2
0
        public static void WriteToFile(ModMetadata meta, string path)
        {
            ModJSONMetadata JSON = new ModJSONMetadata()
            {
                isDirty         = meta.isDirty,
                isEnabled       = meta.isEnabled,
                isPatch         = meta.isPatch,
                isStandalone    = meta.isStandalone,
                modifiedClasses = new Dictionary <string, List <string> >()
            };

            foreach (KeyValuePair <string, HashSet <string> > kvp in meta.modifiedClasses)
            {
                HashSet <string> modClassList = kvp.Value;
                JSON.modifiedClasses[kvp.Key] = new List <string>(modClassList);
            }

            Serializer s    = new Serializer();
            string     json = s.Serialize(JSON);

            File.WriteAllText(path, json);
        }
예제 #3
0
        public static ModMetadata ReadRawFromFile(string metaFile)
        {
            string text = File.ReadAllText(metaFile);

            ModMetadata meta = new ModMetadata();

            Deserializer    ds       = new Deserializer();
            ModJSONMetadata jsonMeta = ds.Deserialize <ModJSONMetadata>(text);

            meta.isEnabled    = jsonMeta.isEnabled;
            meta.isPatch      = jsonMeta.isPatch;
            meta.isDirty      = jsonMeta.isDirty;
            meta.isStandalone = jsonMeta.isStandalone;

            meta.modifiedClasses = new Dictionary <string, HashSet <string> >();
            foreach (KeyValuePair <string, List <string> > kvp in jsonMeta.modifiedClasses)
            {
                meta.modifiedClasses[kvp.Key] = new HashSet <string>(kvp.Value);
            }

            return(meta);
        }