mirror of
https://github.com/bdunderscore/modular-avatar.git
synced 2025-04-24 13:29:01 +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