public static bool DetectConfigDefaultsReset(Mod mod) { if (ModFeaturesHelpers.GetConfigDefaultsResetMethod(mod) == null) { return(false); } return(true); }
public static bool DetectConfig(Mod mod) { if (ModFeaturesHelpers.GetConfigFilePathProp(mod) == null) { return(false); } if (ModFeaturesHelpers.GetConfigFileLoadMethod(mod) == null) { return(false); } return(true); }
//////////////// public static bool DetectGithub(Mod mod) { if (ModFeaturesHelpers.GetGithubUserNameProp(mod) == null) { return(false); } if (ModFeaturesHelpers.GetGitubProjectNameProp(mod) == null) { return(false); } return(true); }
//////////////// public static string GetConfigRelativePath(Mod mod) { var self = ModHelpersMod.Instance.ModFeaturesHelpers; if (!self.ConfigMods.ContainsKey(mod.Name)) { return(null); } PropertyInfo configPathField = ModFeaturesHelpers.GetConfigFilePathProp(mod); return((string)configPathField.GetValue(null)); }
public static string GetGithubProjectName(Mod mod) { var self = ModHelpersMod.Instance.ModFeaturesHelpers; if (!self.GithubMods.ContainsKey(mod.Name)) { return(null); } PropertyInfo gitProjProp = ModFeaturesHelpers.GetGitubProjectNameProp(mod); return((string)gitProjProp.GetValue(null)); }
public static void ResetDefaultsConfig(Mod mod) { var self = ModHelpersMod.Instance.ModFeaturesHelpers; if (!self.ConfigDefaultsResetMods.ContainsKey(mod.Name)) { throw new HamstarException("Not a recognized config resetable mod."); } MethodInfo configDefaultsMethod = ModFeaturesHelpers.GetConfigDefaultsResetMethod(mod); configDefaultsMethod.Invoke(null, new object[] { }); }
/*public static void SetConfigRelativePath( Mod mod, string path ) { * if( !ExtendedModManager.ConfigMods.ContainsKey( mod.Name ) ) { * throw new HamstarException( "Not a recognized configurable mod." ); * } * * FieldInfo configPathField = mod.GetType().GetField( "ConfigFileRelativePath", BindingFlags.Static | BindingFlags.Public ); * configPathField.SetValue( null, path ); * }*/ public static void ReloadConfigFromFile(Mod mod) { var self = ModHelpersMod.Instance.ModFeaturesHelpers; if (!self.ConfigMods.ContainsKey(mod.Name)) { throw new HamstarException("Not a recognized configurable mod."); } MethodInfo configReloadMethod = ModFeaturesHelpers.GetConfigFileLoadMethod(mod); configReloadMethod.Invoke(null, new object[] { }); }
//////////////// internal void OnPostSetupContent() { this.GithubMods = new Dictionary <string, Mod>(); this.ConfigMods = new Dictionary <string, Mod>(); this.ConfigDefaultsResetMods = new Dictionary <string, Mod>(); foreach (Mod mod in ModLoader.LoadedMods) { if (ModFeaturesHelpers.DetectGithub(mod)) { this.GithubMods[mod.Name] = mod; } if (ModFeaturesHelpers.DetectConfig(mod)) { this.ConfigMods[mod.Name] = mod; } if (ModFeaturesHelpers.DetectConfigDefaultsReset(mod)) { this.ConfigDefaultsResetMods[mod.Name] = mod; } } }