mirror of
https://github.com/bdunderscore/modular-avatar.git
synced 2025-04-11 23:19:00 +08:00
Add ClonedMenuMappings
This commit is contained in:
parent
f7a1cf9b37
commit
96f65000af
@ -0,0 +1,36 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using VRC.SDK3.Avatars.ScriptableObjects;
|
||||
|
||||
// ReSharper disable once CheckNamespace
|
||||
namespace nadena.dev.modular_avatar.core.editor {
|
||||
public static class ClonedMenuMappings {
|
||||
private static Dictionary<VRCExpressionsMenu, ImmutableArray<VRCExpressionsMenu>> ClonedMappings =
|
||||
new Dictionary<VRCExpressionsMenu, ImmutableArray<VRCExpressionsMenu>>();
|
||||
|
||||
private static Dictionary<VRCExpressionsMenu, VRCExpressionsMenu> OriginalMapping =
|
||||
new Dictionary<VRCExpressionsMenu, VRCExpressionsMenu>();
|
||||
|
||||
public static void Clear() {
|
||||
ClonedMappings.Clear();
|
||||
OriginalMapping.Clear();
|
||||
}
|
||||
|
||||
public static void Add(VRCExpressionsMenu original, VRCExpressionsMenu clonedMenu) {
|
||||
if (!ClonedMappings.TryGetValue(original, out ImmutableArray<VRCExpressionsMenu> clonedMenus)) {
|
||||
clonedMenus = ImmutableArray<VRCExpressionsMenu>.Empty;
|
||||
}
|
||||
// Usually, one menu is rarely duplicated in multiple menus, so don't bother using a Builder
|
||||
ClonedMappings[original] = clonedMenus.Add(clonedMenu);
|
||||
OriginalMapping[clonedMenu] = original;
|
||||
}
|
||||
|
||||
public static bool TryGetClonedMenus(VRCExpressionsMenu original, out ImmutableArray<VRCExpressionsMenu> clonedMenus) {
|
||||
return ClonedMappings.TryGetValue(original, out clonedMenus);
|
||||
}
|
||||
|
||||
public static VRCExpressionsMenu GetOriginal(VRCExpressionsMenu cloned) {
|
||||
return OriginalMapping.TryGetValue(cloned, out VRCExpressionsMenu original) ? original : null;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aeaeff9c3af44683bb2f8f5fe6c5791d
|
||||
timeCreated: 1671016064
|
Loading…
x
Reference in New Issue
Block a user