4 public string GroupId {
get; } = groupId;
5 readonly HashSet<string>
keys = [];
9 public void AddKeys(params
string[] keys1) {
10 foreach (
string key
in keys1) {
16 public bool ContainsAll(IEnumerable<string> keyList) => keyList.All(k =>
keys.Contains(k));
17 public IReadOnlyCollection<string>
Keys =>
keys;
25 "InitKeyCompatibleGroups",
27 loader.InitKeyCompatibleGroups();
61 if (list.Count <= 1) {
78 public static bool HasConflict(List<string> list, out List<string> conflictKeys) {
80 if (list.Count <= 1) {
83 foreach (
string key
in list) {
84 bool hasCompatibleGroup =
false;
87 hasCompatibleGroup =
true;
91 if (!hasCompatibleGroup
92 && !conflictKeys.Contains(key)) {
93 conflictKeys.Add(key);
96 return conflictKeys.Count > 0;
bool ContainsKey(string key)
bool ContainsAll(IEnumerable< string > keyList)
void AddKeys(params string[] keys1)
readonly HashSet< string > keys
IReadOnlyCollection< string > Keys
static bool HasConflict(List< string > list)
输入按键名称列表,检查是否存在冲突
static KeyCompatibleGroup GetCompatibleGroup(string groupId)
获取兼容组信息
static readonly Dictionary< string, KeyCompatibleGroup > m_compatibleGroups
static bool HasConflict(List< string > list, out List< string > conflictKeys)
输入按键名称列表,检查是否存在冲突,并输出冲突的按键列表
static void AddKeyToCompatibleGroup(string groupId, params string[] keys)
添加按键到兼容组
static void HookAction(string HookName, Func< ModLoader, bool > action)
执行Hook