ModFamily GetFamily(string name) { if (!_families.TryGetValue(name, out var result)) { result = new ModFamily(name); _families.Add(name, result); result.ModsEnabledChanged += OnFamilyModsEnabledChanged; } return(result); }
/// <summary> /// Creates state information for a mod family. /// </summary> public static ModFamilyStateInfo FromFamily(ModFamily family) { var name = family.FamilyName; bool enabled = false; AccurateVersion version = default; var enabledMod = family.EnabledMod; if (enabledMod != null) { enabled = true; var defaultMod = family.GetDefaultMod(); if (enabledMod != defaultMod) { version = enabledMod.Version; // Only store version if enabled mod is not default } } return(new ModFamilyStateInfo(name, enabled, version)); }
public ModFamilyEnabledChangedEventArgs(ModFamily family) { Family = family; }
bool TryGetFamily(string name, out ModFamily result) => _families.TryGetValue(name, out result);
/// <summary> /// Checks if a family with the specified name is managed by this manager /// </summary> public bool Contains(string name, out ModFamily family) => TryGetFamily(name, out family);