EventRegistry.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /*
  2. * Copyright (c) Meta Platforms, Inc. and affiliates.
  3. * All rights reserved.
  4. *
  5. * This source code is licensed under the license found in the
  6. * LICENSE file in the root directory of this source tree.
  7. */
  8. using System.Collections.Generic;
  9. using UnityEngine;
  10. namespace Meta.WitAi.Events
  11. {
  12. public class EventRegistry
  13. {
  14. [SerializeField]
  15. private List<string> _overriddenCallbacks = new List<string>();
  16. private HashSet<string> _overriddenCallbacksHash;
  17. public HashSet<string> OverriddenCallbacks
  18. {
  19. get
  20. {
  21. if (_overriddenCallbacksHash == null)
  22. {
  23. _overriddenCallbacksHash = new HashSet<string>(_overriddenCallbacks);
  24. }
  25. return _overriddenCallbacksHash;
  26. }
  27. }
  28. public void RegisterOverriddenCallback(string callback)
  29. {
  30. if (!_overriddenCallbacks.Contains(callback))
  31. {
  32. _overriddenCallbacks.Add(callback);
  33. _overriddenCallbacksHash.Add(callback);
  34. }
  35. }
  36. public void RemoveOverriddenCallback(string callback)
  37. {
  38. if (_overriddenCallbacks.Contains(callback))
  39. {
  40. _overriddenCallbacks.Remove(callback);
  41. _overriddenCallbacksHash.Remove(callback);
  42. }
  43. }
  44. public bool IsCallbackOverridden(string callback)
  45. {
  46. return OverriddenCallbacks.Contains(callback);
  47. }
  48. }
  49. }