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); }
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); }
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); }