diff options
Diffstat (limited to '')
-rw-r--r-- | VRCSDK3Worlds/Assets/Bakery/ftUniqueIDRegistry.cs | 46 | ||||
-rw-r--r-- | VRCSDK3Worlds/Assets/Bakery/ftUniqueIDRegistry.cs.meta | 12 |
2 files changed, 58 insertions, 0 deletions
diff --git a/VRCSDK3Worlds/Assets/Bakery/ftUniqueIDRegistry.cs b/VRCSDK3Worlds/Assets/Bakery/ftUniqueIDRegistry.cs new file mode 100644 index 00000000..9faa1b43 --- /dev/null +++ b/VRCSDK3Worlds/Assets/Bakery/ftUniqueIDRegistry.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public static class ftUniqueIDRegistry +{ + public static Dictionary<Int32, Int32> Mapping = new Dictionary<int, int>(); + public static Dictionary<Int32, Int32> MappingInv = new Dictionary<int, int>(); + + public static void Deregister(Int32 id) + { + int instanceId = GetInstanceId(id); + if (instanceId < 0) return; + MappingInv.Remove(instanceId); + Mapping.Remove(id); + } + + public static void Register(Int32 id, Int32 value) + { + if (!Mapping.ContainsKey(id)) { + Mapping[id] = value; + MappingInv[value] = id; + } + } + + public static Int32 GetInstanceId(Int32 id) + { + Int32 instanceId; + if (!Mapping.TryGetValue(id, out instanceId)) + { + return -1; + } + else + { + return instanceId; + } + } + + public static Int32 GetUID(Int32 instanceId) + { + Int32 result; + if (MappingInv.TryGetValue(instanceId, out result)) return result; + return -1; + } +} diff --git a/VRCSDK3Worlds/Assets/Bakery/ftUniqueIDRegistry.cs.meta b/VRCSDK3Worlds/Assets/Bakery/ftUniqueIDRegistry.cs.meta new file mode 100644 index 00000000..361f4742 --- /dev/null +++ b/VRCSDK3Worlds/Assets/Bakery/ftUniqueIDRegistry.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 823b71f76e7ce5a48a9db822489f7b5d +timeCreated: 1496221374 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: |