com.wallstop-studios.dxmessaging 3.2.0 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/Editor/Analyzers/DxMessagingConsoleHarvester.cs +8 -8
  3. package/Editor/CustomEditors/MessageAwareComponentFallbackEditor.cs +171 -13
  4. package/Editor/CustomEditors/MessageAwareComponentInspectorOverlay.cs +391 -96
  5. package/Editor/CustomEditors/MessageAwareComponentInspectorView.cs +279 -0
  6. package/Editor/CustomEditors/MessageAwareComponentInspectorView.cs.meta +11 -0
  7. package/Editor/DxMessagingEditorPalette.cs +66 -0
  8. package/Editor/DxMessagingEditorPalette.cs.meta +11 -0
  9. package/Editor/DxMessagingEditorTheme.cs +200 -0
  10. package/Editor/DxMessagingEditorTheme.cs.meta +11 -0
  11. package/Editor/Icons/dxmessaging-icon-256.png +0 -0
  12. package/Editor/Icons/dxmessaging-icon-256.png.meta +156 -0
  13. package/Editor/Icons/dxmessaging-icon-32.png +0 -0
  14. package/Editor/Icons/dxmessaging-icon-32.png.meta +156 -0
  15. package/Editor/Icons/dxmessaging-icon-48.png +0 -0
  16. package/Editor/Icons/dxmessaging-icon-48.png.meta +156 -0
  17. package/Editor/Icons.meta +8 -0
  18. package/Editor/Settings/DxMessagingSettingsProvider.cs +368 -33
  19. package/Editor/Testing/MessagingComponentEditorHarness.cs +11 -4
  20. package/Editor/Theme/DxMessagingTheme.uss +255 -0
  21. package/Editor/Theme/DxMessagingTheme.uss.meta +11 -0
  22. package/Editor/Theme/DxTokens.uss +90 -0
  23. package/Editor/Theme/DxTokens.uss.meta +11 -0
  24. package/Editor/Theme.meta +8 -0
  25. package/Editor/Windows/DxMessagingFlowGraphWindow.cs +5513 -0
  26. package/Editor/Windows/DxMessagingFlowGraphWindow.cs.meta +11 -0
  27. package/Editor/Windows/DxMessagingMessageMonitorWindow.cs +2288 -0
  28. package/Editor/Windows/DxMessagingMessageMonitorWindow.cs.meta +11 -0
  29. package/Editor/Windows.meta +8 -0
  30. package/README.md +84 -35
  31. package/Runtime/AssemblyInfo.cs +1 -0
  32. package/Runtime/Core/Diagnostics/MessageEmissionData.cs +29 -1
  33. package/Runtime/Core/Extensions/MessageExtensions.cs +4 -5
  34. package/Runtime/Core/Helper/MessageCache.cs +56 -23
  35. package/Runtime/Core/Internal/FlatDispatch.cs +32 -0
  36. package/Runtime/Core/Internal/TypedSlots.cs +3 -7
  37. package/Runtime/Core/MessageBus/MessageBus.cs +577 -142
  38. package/Runtime/Core/MessageBus/RegistrationLog.cs +25 -12
  39. package/Runtime/Core/MessageHandler.cs +774 -786
  40. package/Runtime/Core/MessageRegistrationHandle.cs +19 -5
  41. package/Runtime/Core/MessageRegistrationToken.cs +1080 -520
  42. package/Samples~/Diagnostics Tooling Exerciser/DiagnosticsToolingExerciser.cs +173 -0
  43. package/Samples~/Diagnostics Tooling Exerciser/DiagnosticsToolingExerciser.cs.meta +11 -0
  44. package/Samples~/Diagnostics Tooling Exerciser/DiagnosticsToolingExerciser.unity +424 -0
  45. package/Samples~/Diagnostics Tooling Exerciser/DiagnosticsToolingExerciser.unity.meta +7 -0
  46. package/Samples~/Diagnostics Tooling Exerciser/DiagnosticsToolingReceiver.cs +185 -0
  47. package/Samples~/Diagnostics Tooling Exerciser/DiagnosticsToolingReceiver.cs.meta +11 -0
  48. package/Samples~/Diagnostics Tooling Exerciser/Messages.cs +46 -0
  49. package/Samples~/Diagnostics Tooling Exerciser/Messages.cs.meta +11 -0
  50. package/Samples~/Diagnostics Tooling Exerciser/README.md +53 -0
  51. package/Samples~/Diagnostics Tooling Exerciser/README.md.meta +7 -0
  52. package/Samples~/Diagnostics Tooling Exerciser/WallstopStudios.DxMessaging.DiagnosticsToolingExerciser.Sample.asmdef +13 -0
  53. package/Samples~/Diagnostics Tooling Exerciser/WallstopStudios.DxMessaging.DiagnosticsToolingExerciser.Sample.asmdef.meta +7 -0
  54. package/Samples~/Diagnostics Tooling Exerciser.meta +8 -0
  55. package/Samples~/Mini Combat/README.md +1 -1
  56. package/Samples~/Mini Combat/Walkthrough.md +3 -3
  57. package/docs/images/DxMessaging-banner.svg +79 -0
  58. package/docs/images/DxMessaging-banner.svg.meta +53 -0
  59. package/docs/images.meta +8 -0
  60. package/docs.meta +8 -0
  61. package/package.json +13 -4
@@ -14,9 +14,10 @@ namespace DxMessaging.Core.MessageBus
14
14
  /// </remarks>
15
15
  public sealed class RegistrationLog
16
16
  {
17
- public IReadOnlyList<MessagingRegistration> Registrations => _finalizedRegistrations;
17
+ public IReadOnlyList<MessagingRegistration> Registrations =>
18
+ _finalizedRegistrations ??= new List<MessagingRegistration>();
18
19
 
19
- private readonly List<MessagingRegistration> _finalizedRegistrations;
20
+ private List<MessagingRegistration> _finalizedRegistrations;
20
21
 
21
22
  public bool Enabled
22
23
  {
@@ -35,7 +36,6 @@ namespace DxMessaging.Core.MessageBus
35
36
  public RegistrationLog(bool enabled = false)
36
37
  {
37
38
  _enabled = enabled;
38
- _finalizedRegistrations = new List<MessagingRegistration>();
39
39
  }
40
40
 
41
41
  /// <summary>
@@ -48,7 +48,7 @@ namespace DxMessaging.Core.MessageBus
48
48
  {
49
49
  return;
50
50
  }
51
- _finalizedRegistrations.Add(registration);
51
+ (_finalizedRegistrations ??= new List<MessagingRegistration>()).Add(registration);
52
52
  }
53
53
 
54
54
  /// <summary>
@@ -58,9 +58,15 @@ namespace DxMessaging.Core.MessageBus
58
58
  /// <returns>All registrations for the provided InstanceId.</returns>
59
59
  public IEnumerable<MessagingRegistration> GetRegistrations(InstanceId instanceId)
60
60
  {
61
- for (int i = 0; i < _finalizedRegistrations.Count; ++i)
61
+ List<MessagingRegistration> registrations = _finalizedRegistrations;
62
+ if (registrations == null)
62
63
  {
63
- MessagingRegistration registration = _finalizedRegistrations[i];
64
+ yield break;
65
+ }
66
+
67
+ for (int i = 0; i < registrations.Count; ++i)
68
+ {
69
+ MessagingRegistration registration = registrations[i];
64
70
  if (registration.id == instanceId)
65
71
  {
66
72
  yield return registration;
@@ -75,7 +81,8 @@ namespace DxMessaging.Core.MessageBus
75
81
  /// <returns>The string representing all logged MessagingRegistrations.</returns>
76
82
  public string ToString(Func<MessagingRegistration, string> serializer)
77
83
  {
78
- if (_finalizedRegistrations.Count == 0)
84
+ List<MessagingRegistration> finalizedRegistrations = _finalizedRegistrations;
85
+ if (finalizedRegistrations == null || finalizedRegistrations.Count == 0)
79
86
  {
80
87
  return "[]";
81
88
  }
@@ -84,13 +91,13 @@ namespace DxMessaging.Core.MessageBus
84
91
 
85
92
  StringBuilder registrations = new();
86
93
  _ = registrations.Append('[');
87
- for (int i = 0; i < _finalizedRegistrations.Count; ++i)
94
+ for (int i = 0; i < finalizedRegistrations.Count; ++i)
88
95
  {
89
96
  if (0 < i)
90
97
  {
91
98
  _ = registrations.Append(", ");
92
99
  }
93
- MessagingRegistration finalizedRegistration = _finalizedRegistrations[i];
100
+ MessagingRegistration finalizedRegistration = finalizedRegistrations[i];
94
101
  string prettyFinalizedRegistration = serializer(finalizedRegistration);
95
102
  _ = registrations.Append(prettyFinalizedRegistration);
96
103
  }
@@ -114,14 +121,20 @@ namespace DxMessaging.Core.MessageBus
114
121
  /// <returns>Number of MessagingRegistrations removed.</returns>
115
122
  public int Clear(Predicate<MessagingRegistration> shouldRemove = null)
116
123
  {
124
+ List<MessagingRegistration> finalizedRegistrations = _finalizedRegistrations;
125
+ if (finalizedRegistrations == null)
126
+ {
127
+ return 0;
128
+ }
129
+
117
130
  if (shouldRemove == null)
118
131
  {
119
- int currentCount = _finalizedRegistrations.Count;
120
- _finalizedRegistrations.Clear();
132
+ int currentCount = finalizedRegistrations.Count;
133
+ finalizedRegistrations.Clear();
121
134
  return currentCount;
122
135
  }
123
136
 
124
- return _finalizedRegistrations.RemoveAll(shouldRemove);
137
+ return finalizedRegistrations.RemoveAll(shouldRemove);
125
138
  }
126
139
  }
127
140
  }