public void SetOrder(IMod mod, int?order) { var name = mod.GetSerializationString().ToLower(); lock (Orders) { if (order == null) { if (Orders.ContainsKey(name)) { Orders.Remove(name); } } else { Orders[name] = order.GetValueOrDefault(); } } }
protected virtual bool RemoveMod(IMod mod) { var key = mod.GetSerializationString(); lock (Items) { lock (AdditionalMods) { if (!AdditionalMods.Contains(key, StringComparer.InvariantCultureIgnoreCase)) { return(false); } AdditionalMods.Remove(key); } if (Mods.Contains(key, StringComparer.InvariantCultureIgnoreCase)) { return(false); } Items.RemoveAll(Items.Where(x => x.ComparePK(mod)).ToArray()); DisabledItems.RemoveAllLocked(x => x.Equals(mod.Name, StringComparison.InvariantCultureIgnoreCase)); UpdateState(); return(true); } }