public static bool ReadModSync(XmlDocument xml, string modName, out ModSyncInfo info, out IHost host) { #if MOD_TO_SYNC_FACTORY Log.Warning("Begin ModToSyncFacotry.ReadModSync " + modName); #endif info = null; host = null; string id = null; string name = null; string version = null; bool isSaveBreaking = false; try { XmlNode parentNode; if (TryGetNode(xml, "ModSyncNinjaData", out parentNode)) { #if TRACE && MOD_TO_SYNC_FACTORY Log.Message(" ModSync Tags:"); #endif foreach (XmlNode n in parentNode.ChildNodes) { #if TRACE && MOD_TO_SYNC_FACTORY Log.Message(" Tag: " + n.Name + " InnerText: " + n.InnerText); #endif switch (n.Name) { case "ID": id = n.InnerText; break; case "ModName": name = n.InnerText; break; case "Version": version = n.InnerText; break; case "SaveBreaking": if (!bool.TryParse(n.InnerText, out isSaveBreaking)) { isSaveBreaking = false; } break; case "Host": host = CreateHost(modName, n); break; default: Log.Warning("Unknown field [" + n.Name + "] for mod [" + modName + "]"); break; } } } info = new ModSyncInfo(id, name, version, isSaveBreaking); #if MOD_TO_SYNC_FACTORY Log.Warning("End ModToSyncFacotry.ReadModSync true\nInfo:" + info.ToString()); #endif return(true); } catch (Exception e) { Log.Error("Failed to create ModSyncInfo for mod [" + modName + "]. " + e.GetType().Name + " " + e.Message); } #if MOD_TO_SYNC_FACTORY Log.Warning("End ModToSyncFacotry.ReadModSync false"); #endif return(false); }
public static bool ReadVersion(XmlDocument xml, string modName, out ModSyncInfo info, out IHost host) { #if MOD_TO_SYNC_FACTORY_VERSION Log.Warning("Begin ModToSyncFacotry.ReadModSync " + modName); #endif info = null; host = null; string name = modName; string version = null; string ownerProject = null; try { XmlNode parentNode; if (TryGetNode(xml, "VersionData", out parentNode)) { #if TRACE && MOD_TO_SYNC_FACTORY_VERSION Log.Message(" ModSync Tags:"); #endif foreach (XmlNode n in parentNode.ChildNodes) { #if TRACE && MOD_TO_SYNC_FACTORY_VERSION Log.Message(" Tag: " + n.Name + " InnerText: " + n.InnerText); #endif switch (n.Name) { case "overrideVersion": #if TRACE && MOD_TO_SYNC_FACTORY_VERSION Log.Message(" overrideVersion found"); #endif version = n.InnerText; break; case "gitHubRepository": #if TRACE && MOD_TO_SYNC_FACTORY_VERSION Log.Message(" gitHubRepository found"); #endif ownerProject = n.InnerText; break; default: Log.Warning("Unknown field [" + n.Name + "] for mod [" + modName + "]"); break; } } } info = new ModSyncInfo("", name, version, false); host = new HugsLibVersionHost() { OwnerProject = ownerProject }; #if MOD_TO_SYNC_FACTORY_VERSION Log.Warning("End ModToSyncFacotry.ReadModSync true\nInfo:" + info.ToString()); #endif return(true); } catch (Exception e) { Log.Error("Failed to create ModSyncInfo for mod [" + modName + "]. " + e.GetType().Name + " " + e.Message); } #if MOD_TO_SYNC_FACTORY_VERSION Log.Warning("End ModToSyncFacotry.ReadModSync false"); #endif return(false); }