/// <summary> /// Loops over every folder inside the ruleset directory and looks for valid config.xml files. Valid configurations are added to the list of the main form. /// </summary> public static void DiscoverRulesets() { if (!Directory.Exists(Utility.RulesetDirectory)) { Directory.CreateDirectory(Utility.RulesetDirectory); return; } foreach (string directory in Directory.GetDirectories(Utility.RulesetDirectory)) { string file = directory + "\\config.xml"; if (!File.Exists(file)) { continue; } Configuration config = Configuration.TryLoadConfig(directory); if (config == null) { continue; } MainFormHelper.Get().Games.Add(config); } }
public static void OverlayLog(string message, bool useLogfile = false) { MainFormHelper.Get().GameMasterProcess.OverlayLog(message); if (useLogfile) { MainFormHelper.Get().GameMasterProcess.Log(message); } }
/// <summary> /// Deletes a ruleset /// </summary> public void Delete() { MainForm Main = MainFormHelper.Get(); Main.Games.Remove(this); Main.UpdateList(); Directory.Delete(Path.Combine(Utility.RulesetDirectory, Folder), true); }
public static void Throw(string exception, Severity severity = Severity.Low) { LogHelper.Log(exception); if (severity == Severity.Medium) { LogHelper.OverlayLog("An exception has occured! The program may be unstable now!"); } if (severity == Severity.High) { MainFormHelper.Get().GameMasterProcess.Interrupt(); } }
/// <summary> /// Saves the specified ruleset as an XML to the specified path /// </summary> /// <param name="ruleset">The ruleset to be saved</param> /// <param name="path">The path of the XML</param> public static void Save(Configuration ruleset) { if (ruleset.Folder == null) { ruleset.Folder = Path.Combine(Utility.RulesetDirectory, Utility.GenerateSlug(ruleset.Name)); if (!Directory.Exists(ruleset.Folder)) { Directory.CreateDirectory(ruleset.Folder); } } XmlSerializer serializer = new XmlSerializer(typeof(Configuration)); TextWriter writer = new StreamWriter(Path.Combine(ruleset.Folder, "config.xml")); serializer.Serialize(writer, ruleset); writer.Flush(); writer.Close(); if (!MainFormHelper.Get().Games.Contains(ruleset)) { MainFormHelper.Get().Games.Add(ruleset); MainFormHelper.Get().UpdateList(); } }
public static void Log(string message) => MainFormHelper.Get().GameMasterProcess.Log(message);