public BaseSettings?GetSettings(string id) { if (ModLibSettingsDatabase == null) { return(null); } Reload(id); return(LoadedModLibSettings.TryGetValue(id, out var settings) ? settings : null); }
private void ReloadAll() { var saveSettingsMethod = AccessTools.Property(ModLibSettingsDatabase, "AllSettingsDict"); var dict = (IDictionary)saveSettingsMethod.GetValue(null); foreach (var settings in dict.Values) { var id = AccessTools.Property(settings.GetType(), "ID")?.GetValue(settings) as string ?? "ERROR"; if (!LoadedModLibSettings.ContainsKey(id)) { LoadedModLibSettings.Add(id, new ModLibGlobalSettingsWrapper(settings)); } else { LoadedModLibSettings[id].UpdateReference(settings); } } }