예제 #1
0
        public BaseSettings?GetSettings(string id)
        {
            if (ModLibSettingsDatabase == null)
            {
                return(null);
            }

            Reload(id);
            return(LoadedModLibSettings.TryGetValue(id, out var settings) ? settings : null);
        }
예제 #2
0
        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);
                }
            }
        }