com.wallstop-studios.dxmessaging 3.1.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 (139) hide show
  1. package/CHANGELOG.md +326 -0
  2. package/Editor/Analyzers/BaseCallLogMessageParser.cs.meta +3 -3
  3. package/Editor/Analyzers/BaseCallReportAggregator.cs.meta +3 -3
  4. package/Editor/Analyzers/DxMessagingConsoleHarvester.cs +8 -8
  5. package/Editor/Analyzers/DxMessagingConsoleHarvester.cs.meta +3 -3
  6. package/Editor/CustomEditors/MessageAwareComponentFallbackEditor.cs +171 -13
  7. package/Editor/CustomEditors/MessageAwareComponentFallbackEditor.cs.meta +3 -3
  8. package/Editor/CustomEditors/MessageAwareComponentInspectorOverlay.cs +391 -96
  9. package/Editor/CustomEditors/MessageAwareComponentInspectorOverlay.cs.meta +3 -3
  10. package/Editor/CustomEditors/MessageAwareComponentInspectorView.cs +279 -0
  11. package/Editor/CustomEditors/MessageAwareComponentInspectorView.cs.meta +11 -0
  12. package/Editor/DxMessagingEditorPalette.cs +66 -0
  13. package/Editor/DxMessagingEditorPalette.cs.meta +11 -0
  14. package/Editor/DxMessagingEditorTheme.cs +200 -0
  15. package/Editor/DxMessagingEditorTheme.cs.meta +11 -0
  16. package/Editor/DxMessagingMenu.cs.meta +3 -3
  17. package/Editor/DxMessagingSceneBuildProcessor.cs.meta +3 -3
  18. package/Editor/Icons/dxmessaging-icon-256.png +0 -0
  19. package/Editor/Icons/dxmessaging-icon-256.png.meta +156 -0
  20. package/Editor/Icons/dxmessaging-icon-32.png +0 -0
  21. package/Editor/Icons/dxmessaging-icon-32.png.meta +156 -0
  22. package/Editor/Icons/dxmessaging-icon-48.png +0 -0
  23. package/Editor/Icons/dxmessaging-icon-48.png.meta +156 -0
  24. package/Editor/Icons.meta +8 -0
  25. package/Editor/Settings/DxMessagingBaseCallIgnoreSync.cs +2 -3
  26. package/Editor/Settings/DxMessagingBaseCallIgnoreSync.cs.meta +3 -3
  27. package/Editor/Settings/DxMessagingSettingsProvider.cs +368 -33
  28. package/Editor/SetupCscRsp.cs +232 -163
  29. package/Editor/Testing/MessagingComponentEditorHarness.cs +11 -4
  30. package/Editor/Theme/DxMessagingTheme.uss +255 -0
  31. package/Editor/Theme/DxMessagingTheme.uss.meta +11 -0
  32. package/Editor/Theme/DxTokens.uss +90 -0
  33. package/Editor/Theme/DxTokens.uss.meta +11 -0
  34. package/Editor/Theme.meta +8 -0
  35. package/Editor/Windows/DxMessagingFlowGraphWindow.cs +5513 -0
  36. package/Editor/Windows/DxMessagingFlowGraphWindow.cs.meta +11 -0
  37. package/Editor/Windows/DxMessagingMessageMonitorWindow.cs +2288 -0
  38. package/Editor/Windows/DxMessagingMessageMonitorWindow.cs.meta +11 -0
  39. package/Editor/Windows.meta +8 -0
  40. package/README.md +84 -35
  41. package/Runtime/Analyzers.meta +8 -0
  42. package/Runtime/AssemblyInfo.cs +1 -0
  43. package/Runtime/Core/Attributes/DxIgnoreMissingBaseCallAttribute.cs.meta +3 -3
  44. package/Runtime/Core/Diagnostics/MessageEmissionData.cs +29 -1
  45. package/Runtime/Core/DxMessagingStaticState.cs.meta +3 -3
  46. package/Runtime/Core/Extensions/MessageBusExtensions.cs.meta +3 -3
  47. package/Runtime/Core/Extensions/MessageExtensions.cs +4 -5
  48. package/Runtime/Core/Extensions/MessageExtensions.cs.meta +3 -3
  49. package/Runtime/Core/Helper/MessageCache.cs +56 -23
  50. package/Runtime/Core/IMessage.cs.meta +3 -3
  51. package/Runtime/Core/InstanceId.cs.meta +3 -3
  52. package/Runtime/Core/Internal/FlatDispatch.cs +32 -0
  53. package/Runtime/Core/Internal/TypedSlots.cs +45 -7
  54. package/Runtime/Core/MessageBus/DiagnosticsTarget.cs.meta +3 -3
  55. package/Runtime/Core/MessageBus/GlobalMessageBusProvider.cs.meta +3 -3
  56. package/Runtime/Core/MessageBus/IMessageBus.cs +63 -28
  57. package/Runtime/Core/MessageBus/IMessageBus.cs.meta +3 -3
  58. package/Runtime/Core/MessageBus/IMessageBusProvider.cs.meta +3 -3
  59. package/Runtime/Core/MessageBus/IMessageRegistrationBuilder.cs.meta +3 -3
  60. package/Runtime/Core/MessageBus/MessageBus.cs +1135 -626
  61. package/Runtime/Core/MessageBus/MessageBus.cs.meta +3 -3
  62. package/Runtime/Core/MessageBus/MessageBusRebindMode.cs.meta +3 -3
  63. package/Runtime/Core/MessageBus/MessageBusRegistration.cs +207 -0
  64. package/Runtime/Core/MessageBus/MessageBusRegistration.cs.meta +11 -0
  65. package/Runtime/Core/MessageBus/MessageRegistrationBuilder.cs.meta +3 -3
  66. package/Runtime/Core/MessageBus/MessagingRegistration.cs.meta +3 -3
  67. package/Runtime/Core/MessageBus/RegistrationLog.cs +25 -12
  68. package/Runtime/Core/MessageBus/RegistrationLog.cs.meta +3 -3
  69. package/Runtime/Core/MessageHandler.cs +1886 -1082
  70. package/Runtime/Core/MessageHandler.cs.meta +3 -3
  71. package/Runtime/Core/MessageRegistrationHandle.cs +19 -5
  72. package/Runtime/Core/MessageRegistrationHandle.cs.meta +3 -3
  73. package/Runtime/Core/MessageRegistrationToken.cs +1932 -895
  74. package/Runtime/Core/MessageRegistrationToken.cs.meta +3 -3
  75. package/Runtime/Core/Messages/IBroadcastMessage.cs.meta +3 -3
  76. package/Runtime/Core/Messages/ITargetedMessage.cs.meta +3 -3
  77. package/Runtime/Core/Messages/IUntargetedMessage.cs.meta +3 -3
  78. package/Runtime/Core/Messages/SourcedStringMessage.cs.meta +3 -3
  79. package/Runtime/Core/MessagingDebug.cs.meta +3 -3
  80. package/Runtime/Unity/CurrentGlobalMessageBusProvider.cs.meta +3 -3
  81. package/Runtime/Unity/DxMessagingRuntimeInitializer.cs.meta +3 -3
  82. package/Runtime/Unity/InitialGlobalMessageBusProvider.cs.meta +3 -3
  83. package/Runtime/Unity/Integrations/Reflex/ReflexRegistrationInstaller.cs.meta +3 -3
  84. package/Runtime/Unity/Integrations/VContainer/VContainerRegistrationExtensions.cs.meta +3 -3
  85. package/Runtime/Unity/Integrations/Zenject/ZenjectRegistrationInstaller.cs.meta +3 -3
  86. package/Runtime/Unity/MessageAwareComponent.cs.meta +3 -3
  87. package/Runtime/Unity/MessageBusProviderHandle.cs.meta +3 -3
  88. package/Runtime/Unity/MessagingComponent.cs.meta +3 -3
  89. package/Runtime/Unity/MessagingComponentInstaller.cs.meta +3 -3
  90. package/Runtime/Unity/ScriptableMessageBusProvider.cs.meta +3 -3
  91. package/Samples~/DI/Reflex/SampleInstaller.cs.meta +3 -3
  92. package/Samples~/DI/VContainer/SampleLifetimeScope.cs.meta +3 -3
  93. package/Samples~/DI/Zenject/SampleInstaller.cs.meta +3 -3
  94. package/Samples~/Diagnostics Tooling Exerciser/DiagnosticsToolingExerciser.cs +173 -0
  95. package/Samples~/Diagnostics Tooling Exerciser/DiagnosticsToolingExerciser.cs.meta +11 -0
  96. package/Samples~/Diagnostics Tooling Exerciser/DiagnosticsToolingExerciser.unity +424 -0
  97. package/Samples~/Diagnostics Tooling Exerciser/DiagnosticsToolingExerciser.unity.meta +7 -0
  98. package/Samples~/Diagnostics Tooling Exerciser/DiagnosticsToolingReceiver.cs +185 -0
  99. package/Samples~/Diagnostics Tooling Exerciser/DiagnosticsToolingReceiver.cs.meta +11 -0
  100. package/Samples~/Diagnostics Tooling Exerciser/Messages.cs +46 -0
  101. package/Samples~/Diagnostics Tooling Exerciser/Messages.cs.meta +11 -0
  102. package/Samples~/Diagnostics Tooling Exerciser/README.md +53 -0
  103. package/Samples~/Diagnostics Tooling Exerciser/README.md.meta +7 -0
  104. package/Samples~/Diagnostics Tooling Exerciser/WallstopStudios.DxMessaging.DiagnosticsToolingExerciser.Sample.asmdef +13 -0
  105. package/Samples~/Diagnostics Tooling Exerciser/WallstopStudios.DxMessaging.DiagnosticsToolingExerciser.Sample.asmdef.meta +7 -0
  106. package/Samples~/Diagnostics Tooling Exerciser.meta +8 -0
  107. package/Samples~/Mini Combat/Boot.cs.meta +3 -3
  108. package/Samples~/Mini Combat/Enemy.cs.meta +3 -3
  109. package/Samples~/Mini Combat/Messages.cs.meta +3 -3
  110. package/Samples~/Mini Combat/Player.cs.meta +3 -3
  111. package/Samples~/Mini Combat/README.md +1 -1
  112. package/Samples~/Mini Combat/UIOverlay.cs.meta +3 -3
  113. package/Samples~/Mini Combat/Walkthrough.md +3 -3
  114. package/Samples~/UI Buttons + Inspector/DiagnosticsEnabler.cs.meta +3 -3
  115. package/Samples~/UI Buttons + Inspector/Messages.cs.meta +3 -3
  116. package/Samples~/UI Buttons + Inspector/MessagingObserver.cs.meta +3 -3
  117. package/Samples~/UI Buttons + Inspector/UIButtonEmitter.cs.meta +3 -3
  118. package/SourceGenerators/Directory.Build.props +5 -5
  119. package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators/DxAutoConstructorGenerator.cs.meta +3 -3
  120. package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators.csproj +12 -11
  121. package/docs/images/DxMessaging-banner.svg +79 -0
  122. package/docs/images/DxMessaging-banner.svg.meta +53 -0
  123. package/docs/images.meta +8 -0
  124. package/docs.meta +8 -0
  125. package/package.json +17 -5
  126. /package/{Editor → Runtime}/Analyzers/Microsoft.CodeAnalysis.CSharp.dll +0 -0
  127. /package/{Editor → Runtime}/Analyzers/Microsoft.CodeAnalysis.CSharp.dll.meta +0 -0
  128. /package/{Editor → Runtime}/Analyzers/Microsoft.CodeAnalysis.dll +0 -0
  129. /package/{Editor → Runtime}/Analyzers/Microsoft.CodeAnalysis.dll.meta +0 -0
  130. /package/{Editor → Runtime}/Analyzers/System.Collections.Immutable.dll +0 -0
  131. /package/{Editor → Runtime}/Analyzers/System.Collections.Immutable.dll.meta +0 -0
  132. /package/{Editor → Runtime}/Analyzers/System.Reflection.Metadata.dll +0 -0
  133. /package/{Editor → Runtime}/Analyzers/System.Reflection.Metadata.dll.meta +0 -0
  134. /package/{Editor → Runtime}/Analyzers/System.Runtime.CompilerServices.Unsafe.dll +0 -0
  135. /package/{Editor → Runtime}/Analyzers/System.Runtime.CompilerServices.Unsafe.dll.meta +0 -0
  136. /package/{Editor → Runtime}/Analyzers/WallstopStudios.DxMessaging.Analyzer.dll +0 -0
  137. /package/{Editor → Runtime}/Analyzers/WallstopStudios.DxMessaging.Analyzer.dll.meta +0 -0
  138. /package/{Editor → Runtime}/Analyzers/WallstopStudios.DxMessaging.SourceGenerators.dll +0 -0
  139. /package/{Editor → Runtime}/Analyzers/WallstopStudios.DxMessaging.SourceGenerators.dll.meta +0 -0
@@ -0,0 +1,424 @@
1
+ %YAML 1.1
2
+ %TAG !u! tag:unity3d.com,2011:
3
+ --- !u!29 &1
4
+ OcclusionCullingSettings:
5
+ m_ObjectHideFlags: 0
6
+ serializedVersion: 2
7
+ m_OcclusionBakeSettings:
8
+ smallestOccluder: 5
9
+ smallestHole: 0.25
10
+ backfaceThreshold: 100
11
+ m_SceneGUID: 00000000000000000000000000000000
12
+ m_OcclusionCullingData: {fileID: 0}
13
+ --- !u!104 &2
14
+ RenderSettings:
15
+ m_ObjectHideFlags: 0
16
+ serializedVersion: 9
17
+ m_Fog: 0
18
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
19
+ m_FogMode: 3
20
+ m_FogDensity: 0.01
21
+ m_LinearFogStart: 0
22
+ m_LinearFogEnd: 300
23
+ m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
24
+ m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
25
+ m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
26
+ m_AmbientIntensity: 1
27
+ m_AmbientMode: 0
28
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.48, b: 0.62, a: 1}
29
+ m_SkyboxMaterial: {fileID: 0}
30
+ m_HaloStrength: 0.5
31
+ m_FlareStrength: 1
32
+ m_FlareFadeSpeed: 3
33
+ m_HaloTexture: {fileID: 0}
34
+ m_SpotCookie: {fileID: 0}
35
+ m_DefaultReflectionMode: 0
36
+ m_DefaultReflectionResolution: 128
37
+ m_ReflectionBounces: 1
38
+ m_ReflectionIntensity: 1
39
+ m_CustomReflection: {fileID: 0}
40
+ m_Sun: {fileID: 0}
41
+ m_UseRadianceAmbientProbe: 0
42
+ --- !u!157 &3
43
+ LightmapSettings:
44
+ m_ObjectHideFlags: 0
45
+ serializedVersion: 12
46
+ m_GIWorkflowMode: 1
47
+ m_GISettings:
48
+ serializedVersion: 2
49
+ m_BounceScale: 1
50
+ m_IndirectOutputScale: 1
51
+ m_AlbedoBoost: 1
52
+ m_EnvironmentLightingMode: 0
53
+ m_EnableBakedLightmaps: 1
54
+ m_EnableRealtimeLightmaps: 0
55
+ m_LightmapEditorSettings:
56
+ serializedVersion: 12
57
+ m_Resolution: 2
58
+ m_BakeResolution: 40
59
+ m_AtlasSize: 1024
60
+ m_AO: 0
61
+ m_AOMaxDistance: 1
62
+ m_CompAOExponent: 1
63
+ m_CompAOExponentDirect: 0
64
+ m_ExtractAmbientOcclusion: 0
65
+ m_Padding: 2
66
+ m_LightmapParameters: {fileID: 0}
67
+ m_LightmapsBakeMode: 1
68
+ m_TextureCompression: 1
69
+ m_FinalGather: 0
70
+ m_FinalGatherFiltering: 1
71
+ m_FinalGatherRayCount: 256
72
+ m_ReflectionCompression: 2
73
+ m_MixedBakeMode: 2
74
+ m_BakeBackend: 1
75
+ m_PVRSampling: 1
76
+ m_PVRDirectSampleCount: 32
77
+ m_PVRSampleCount: 500
78
+ m_PVRBounces: 2
79
+ m_PVREnvironmentSampleCount: 500
80
+ m_PVREnvironmentReferencePointCount: 2048
81
+ m_PVRFilteringMode: 2
82
+ m_PVRDenoiserTypeDirect: 0
83
+ m_PVRDenoiserTypeIndirect: 0
84
+ m_PVRDenoiserTypeAO: 0
85
+ m_PVRFilterTypeDirect: 0
86
+ m_PVRFilterTypeIndirect: 0
87
+ m_PVRFilterTypeAO: 0
88
+ m_PVREnvironmentMIS: 0
89
+ m_ExportTrainingData: 0
90
+ m_TrainingDataDestination: TrainingData
91
+ m_LightProbeSampleCountMultiplier: 4
92
+ m_LightingDataAsset: {fileID: 0}
93
+ m_LightingSettings: {fileID: 0}
94
+ --- !u!196 &4
95
+ NavMeshSettings:
96
+ serializedVersion: 2
97
+ m_ObjectHideFlags: 0
98
+ m_BuildSettings:
99
+ serializedVersion: 3
100
+ agentTypeID: 0
101
+ agentRadius: 0.5
102
+ agentHeight: 2
103
+ agentSlope: 45
104
+ agentClimb: 0.4
105
+ ledgeDropHeight: 0
106
+ maxJumpAcrossDistance: 0
107
+ minRegionArea: 2
108
+ manualCellSize: 0
109
+ cellSize: 0.16666667
110
+ manualTileSize: 0
111
+ tileSize: 256
112
+ buildHeightMesh: 0
113
+ maxJobWorkers: 0
114
+ preserveTilesOutsideBounds: 0
115
+ debug:
116
+ m_Flags: 0
117
+ m_NavMeshData: {fileID: 0}
118
+ --- !u!1 &100000
119
+ GameObject:
120
+ m_ObjectHideFlags: 0
121
+ m_CorrespondingSourceObject: {fileID: 0}
122
+ m_PrefabInstance: {fileID: 0}
123
+ m_PrefabAsset: {fileID: 0}
124
+ serializedVersion: 6
125
+ m_Component:
126
+ - component: {fileID: 100001}
127
+ - component: {fileID: 100002}
128
+ m_Layer: 0
129
+ m_Name: DxMessaging Tooling Exerciser
130
+ m_TagString: Untagged
131
+ m_Icon: {fileID: 0}
132
+ m_NavMeshLayer: 0
133
+ m_StaticEditorFlags: 0
134
+ m_IsActive: 1
135
+ --- !u!4 &100001
136
+ Transform:
137
+ m_ObjectHideFlags: 0
138
+ m_CorrespondingSourceObject: {fileID: 0}
139
+ m_PrefabInstance: {fileID: 0}
140
+ m_PrefabAsset: {fileID: 0}
141
+ m_GameObject: {fileID: 100000}
142
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
143
+ m_LocalPosition: {x: 0, y: 0, z: 0}
144
+ m_LocalScale: {x: 1, y: 1, z: 1}
145
+ m_ConstrainProportionsScale: 0
146
+ m_Children:
147
+ - {fileID: 110001}
148
+ - {fileID: 120001}
149
+ - {fileID: 130001}
150
+ - {fileID: 140001}
151
+ m_Father: {fileID: 0}
152
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
153
+ --- !u!114 &100002
154
+ MonoBehaviour:
155
+ m_ObjectHideFlags: 0
156
+ m_CorrespondingSourceObject: {fileID: 0}
157
+ m_PrefabInstance: {fileID: 0}
158
+ m_PrefabAsset: {fileID: 0}
159
+ m_GameObject: {fileID: 100000}
160
+ m_Enabled: 1
161
+ m_EditorHideFlags: 0
162
+ m_Script: {fileID: 11500000, guid: 8c25269c4bc0008d13063031282321a7, type: 3}
163
+ m_Name:
164
+ m_EditorClassIdentifier:
165
+ receivers:
166
+ - {fileID: 120003}
167
+ - {fileID: 130003}
168
+ - {fileID: 140003}
169
+ broadcastSources:
170
+ - {fileID: 120000}
171
+ - {fileID: 130000}
172
+ enableGlobalDiagnostics: 1
173
+ emitOnStart: 1
174
+ burstCount: 3
175
+ repeatSeconds: 0
176
+ logSummary: 1
177
+ sequence: 0
178
+ lastRunSummary: Not run yet
179
+ --- !u!1 &110000
180
+ GameObject:
181
+ m_ObjectHideFlags: 0
182
+ m_CorrespondingSourceObject: {fileID: 0}
183
+ m_PrefabInstance: {fileID: 0}
184
+ m_PrefabAsset: {fileID: 0}
185
+ serializedVersion: 6
186
+ m_Component:
187
+ - component: {fileID: 110001}
188
+ m_Layer: 0
189
+ m_Name: Instructions
190
+ m_TagString: Untagged
191
+ m_Icon: {fileID: 0}
192
+ m_NavMeshLayer: 0
193
+ m_StaticEditorFlags: 0
194
+ m_IsActive: 1
195
+ --- !u!4 &110001
196
+ Transform:
197
+ m_ObjectHideFlags: 0
198
+ m_CorrespondingSourceObject: {fileID: 0}
199
+ m_PrefabInstance: {fileID: 0}
200
+ m_PrefabAsset: {fileID: 0}
201
+ m_GameObject: {fileID: 110000}
202
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
203
+ m_LocalPosition: {x: 0, y: 1, z: 0}
204
+ m_LocalScale: {x: 1, y: 1, z: 1}
205
+ m_ConstrainProportionsScale: 0
206
+ m_Children: []
207
+ m_Father: {fileID: 100001}
208
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
209
+ --- !u!1 &120000
210
+ GameObject:
211
+ m_ObjectHideFlags: 0
212
+ m_CorrespondingSourceObject: {fileID: 0}
213
+ m_PrefabInstance: {fileID: 0}
214
+ m_PrefabAsset: {fileID: 0}
215
+ serializedVersion: 6
216
+ m_Component:
217
+ - component: {fileID: 120001}
218
+ - component: {fileID: 120002}
219
+ - component: {fileID: 120003}
220
+ m_Layer: 0
221
+ m_Name: Player Ship
222
+ m_TagString: Untagged
223
+ m_Icon: {fileID: 0}
224
+ m_NavMeshLayer: 0
225
+ m_StaticEditorFlags: 0
226
+ m_IsActive: 1
227
+ --- !u!4 &120001
228
+ Transform:
229
+ m_ObjectHideFlags: 0
230
+ m_CorrespondingSourceObject: {fileID: 0}
231
+ m_PrefabInstance: {fileID: 0}
232
+ m_PrefabAsset: {fileID: 0}
233
+ m_GameObject: {fileID: 120000}
234
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
235
+ m_LocalPosition: {x: -2, y: 0, z: 0}
236
+ m_LocalScale: {x: 1, y: 1, z: 1}
237
+ m_ConstrainProportionsScale: 0
238
+ m_Children: []
239
+ m_Father: {fileID: 100001}
240
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
241
+ --- !u!114 &120002
242
+ MonoBehaviour:
243
+ m_ObjectHideFlags: 0
244
+ m_CorrespondingSourceObject: {fileID: 0}
245
+ m_PrefabInstance: {fileID: 0}
246
+ m_PrefabAsset: {fileID: 0}
247
+ m_GameObject: {fileID: 120000}
248
+ m_Enabled: 1
249
+ m_EditorHideFlags: 0
250
+ m_Script: {fileID: 11500000, guid: 98ea04ea326660845ba49942dacbf907, type: 3}
251
+ m_Name:
252
+ m_EditorClassIdentifier:
253
+ emitMessagesWhenDisabled: 0
254
+ autoConfigureSerializedProviderOnAwake: 0
255
+ _serializedProviderHandle:
256
+ providerAsset: {fileID: 0}
257
+ --- !u!114 &120003
258
+ MonoBehaviour:
259
+ m_ObjectHideFlags: 0
260
+ m_CorrespondingSourceObject: {fileID: 0}
261
+ m_PrefabInstance: {fileID: 0}
262
+ m_PrefabAsset: {fileID: 0}
263
+ m_GameObject: {fileID: 120000}
264
+ m_Enabled: 1
265
+ m_EditorHideFlags: 0
266
+ m_Script: {fileID: 11500000, guid: a45996c05f2e369169f682be7e6de42a, type: 3}
267
+ m_Name:
268
+ m_EditorClassIdentifier:
269
+ listenerLabel: Player Ship
270
+ broadcastSourceFilter: {fileID: 120000}
271
+ enableLocalDiagnostics: 1
272
+ registerGlobalAcceptAll: 1
273
+ logMessages: 0
274
+ untargetedCount: 0
275
+ targetedCount: 0
276
+ broadcastCount: 0
277
+ globalAcceptAllCount: 0
278
+ lastTraceId: None
279
+ lastRoute: None
280
+ lastPayload: None
281
+ --- !u!1 &130000
282
+ GameObject:
283
+ m_ObjectHideFlags: 0
284
+ m_CorrespondingSourceObject: {fileID: 0}
285
+ m_PrefabInstance: {fileID: 0}
286
+ m_PrefabAsset: {fileID: 0}
287
+ serializedVersion: 6
288
+ m_Component:
289
+ - component: {fileID: 130001}
290
+ - component: {fileID: 130002}
291
+ - component: {fileID: 130003}
292
+ m_Layer: 0
293
+ m_Name: Enemy Drone
294
+ m_TagString: Untagged
295
+ m_Icon: {fileID: 0}
296
+ m_NavMeshLayer: 0
297
+ m_StaticEditorFlags: 0
298
+ m_IsActive: 1
299
+ --- !u!4 &130001
300
+ Transform:
301
+ m_ObjectHideFlags: 0
302
+ m_CorrespondingSourceObject: {fileID: 0}
303
+ m_PrefabInstance: {fileID: 0}
304
+ m_PrefabAsset: {fileID: 0}
305
+ m_GameObject: {fileID: 130000}
306
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
307
+ m_LocalPosition: {x: 0, y: 0, z: 0}
308
+ m_LocalScale: {x: 1, y: 1, z: 1}
309
+ m_ConstrainProportionsScale: 0
310
+ m_Children: []
311
+ m_Father: {fileID: 100001}
312
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
313
+ --- !u!114 &130002
314
+ MonoBehaviour:
315
+ m_ObjectHideFlags: 0
316
+ m_CorrespondingSourceObject: {fileID: 0}
317
+ m_PrefabInstance: {fileID: 0}
318
+ m_PrefabAsset: {fileID: 0}
319
+ m_GameObject: {fileID: 130000}
320
+ m_Enabled: 1
321
+ m_EditorHideFlags: 0
322
+ m_Script: {fileID: 11500000, guid: 98ea04ea326660845ba49942dacbf907, type: 3}
323
+ m_Name:
324
+ m_EditorClassIdentifier:
325
+ emitMessagesWhenDisabled: 0
326
+ autoConfigureSerializedProviderOnAwake: 0
327
+ _serializedProviderHandle:
328
+ providerAsset: {fileID: 0}
329
+ --- !u!114 &130003
330
+ MonoBehaviour:
331
+ m_ObjectHideFlags: 0
332
+ m_CorrespondingSourceObject: {fileID: 0}
333
+ m_PrefabInstance: {fileID: 0}
334
+ m_PrefabAsset: {fileID: 0}
335
+ m_GameObject: {fileID: 130000}
336
+ m_Enabled: 1
337
+ m_EditorHideFlags: 0
338
+ m_Script: {fileID: 11500000, guid: a45996c05f2e369169f682be7e6de42a, type: 3}
339
+ m_Name:
340
+ m_EditorClassIdentifier:
341
+ listenerLabel: Enemy Drone
342
+ broadcastSourceFilter: {fileID: 130000}
343
+ enableLocalDiagnostics: 1
344
+ registerGlobalAcceptAll: 1
345
+ logMessages: 0
346
+ untargetedCount: 0
347
+ targetedCount: 0
348
+ broadcastCount: 0
349
+ globalAcceptAllCount: 0
350
+ lastTraceId: None
351
+ lastRoute: None
352
+ lastPayload: None
353
+ --- !u!1 &140000
354
+ GameObject:
355
+ m_ObjectHideFlags: 0
356
+ m_CorrespondingSourceObject: {fileID: 0}
357
+ m_PrefabInstance: {fileID: 0}
358
+ m_PrefabAsset: {fileID: 0}
359
+ serializedVersion: 6
360
+ m_Component:
361
+ - component: {fileID: 140001}
362
+ - component: {fileID: 140002}
363
+ - component: {fileID: 140003}
364
+ m_Layer: 0
365
+ m_Name: HUD Console
366
+ m_TagString: Untagged
367
+ m_Icon: {fileID: 0}
368
+ m_NavMeshLayer: 0
369
+ m_StaticEditorFlags: 0
370
+ m_IsActive: 1
371
+ --- !u!4 &140001
372
+ Transform:
373
+ m_ObjectHideFlags: 0
374
+ m_CorrespondingSourceObject: {fileID: 0}
375
+ m_PrefabInstance: {fileID: 0}
376
+ m_PrefabAsset: {fileID: 0}
377
+ m_GameObject: {fileID: 140000}
378
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
379
+ m_LocalPosition: {x: 2, y: 0, z: 0}
380
+ m_LocalScale: {x: 1, y: 1, z: 1}
381
+ m_ConstrainProportionsScale: 0
382
+ m_Children: []
383
+ m_Father: {fileID: 100001}
384
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
385
+ --- !u!114 &140002
386
+ MonoBehaviour:
387
+ m_ObjectHideFlags: 0
388
+ m_CorrespondingSourceObject: {fileID: 0}
389
+ m_PrefabInstance: {fileID: 0}
390
+ m_PrefabAsset: {fileID: 0}
391
+ m_GameObject: {fileID: 140000}
392
+ m_Enabled: 1
393
+ m_EditorHideFlags: 0
394
+ m_Script: {fileID: 11500000, guid: 98ea04ea326660845ba49942dacbf907, type: 3}
395
+ m_Name:
396
+ m_EditorClassIdentifier:
397
+ emitMessagesWhenDisabled: 0
398
+ autoConfigureSerializedProviderOnAwake: 0
399
+ _serializedProviderHandle:
400
+ providerAsset: {fileID: 0}
401
+ --- !u!114 &140003
402
+ MonoBehaviour:
403
+ m_ObjectHideFlags: 0
404
+ m_CorrespondingSourceObject: {fileID: 0}
405
+ m_PrefabInstance: {fileID: 0}
406
+ m_PrefabAsset: {fileID: 0}
407
+ m_GameObject: {fileID: 140000}
408
+ m_Enabled: 1
409
+ m_EditorHideFlags: 0
410
+ m_Script: {fileID: 11500000, guid: a45996c05f2e369169f682be7e6de42a, type: 3}
411
+ m_Name:
412
+ m_EditorClassIdentifier:
413
+ listenerLabel: HUD Console
414
+ broadcastSourceFilter: {fileID: 120000}
415
+ enableLocalDiagnostics: 1
416
+ registerGlobalAcceptAll: 1
417
+ logMessages: 0
418
+ untargetedCount: 0
419
+ targetedCount: 0
420
+ broadcastCount: 0
421
+ globalAcceptAllCount: 0
422
+ lastTraceId: None
423
+ lastRoute: None
424
+ lastPayload: None
@@ -0,0 +1,7 @@
1
+ fileFormatVersion: 2
2
+ guid: 42dad188093765900d4030c2c4b0022c
3
+ DefaultImporter:
4
+ externalObjects: {}
5
+ userData:
6
+ assetBundleName:
7
+ assetBundleVariant:
@@ -0,0 +1,185 @@
1
+ namespace WallstopStudios.DxMessagingSamples.DiagnosticsToolingExerciser
2
+ {
3
+ using DxMessaging.Core;
4
+ using DxMessaging.Core.Messages;
5
+ using DxMessaging.Unity;
6
+ using UnityEngine;
7
+
8
+ [DisallowMultipleComponent]
9
+ public sealed class DiagnosticsToolingReceiver : MessageAwareComponent
10
+ {
11
+ [SerializeField]
12
+ private string listenerLabel = "Receiver";
13
+
14
+ [SerializeField]
15
+ private GameObject broadcastSourceFilter;
16
+
17
+ [SerializeField]
18
+ private bool enableLocalDiagnostics = true;
19
+
20
+ [SerializeField]
21
+ private bool registerGlobalAcceptAll = true;
22
+
23
+ [SerializeField]
24
+ private bool logMessages;
25
+
26
+ [SerializeField]
27
+ private int untargetedCount;
28
+
29
+ [SerializeField]
30
+ private int targetedCount;
31
+
32
+ [SerializeField]
33
+ private int broadcastCount;
34
+
35
+ [SerializeField]
36
+ private int globalAcceptAllCount;
37
+
38
+ [SerializeField]
39
+ private string lastTraceId = "None";
40
+
41
+ [SerializeField]
42
+ private string lastRoute = "None";
43
+
44
+ [SerializeField]
45
+ private string lastPayload = "None";
46
+
47
+ private bool toolingRegistrationsEnsured;
48
+
49
+ public string ListenerLabel => listenerLabel;
50
+
51
+ public int UntargetedCount => untargetedCount;
52
+
53
+ public int TargetedCount => targetedCount;
54
+
55
+ public int BroadcastCount => broadcastCount;
56
+
57
+ public int GlobalAcceptAllCount => globalAcceptAllCount;
58
+
59
+ protected override bool RegisterForStringMessages => false;
60
+
61
+ protected override void Awake()
62
+ {
63
+ base.Awake();
64
+ }
65
+
66
+ protected override void OnEnable()
67
+ {
68
+ base.OnEnable();
69
+ }
70
+
71
+ protected override void OnDisable()
72
+ {
73
+ base.OnDisable();
74
+ }
75
+
76
+ private void Start()
77
+ {
78
+ EnsureToolingRegistrations();
79
+ }
80
+
81
+ public void EnsureToolingRegistrations()
82
+ {
83
+ if (Token == null)
84
+ {
85
+ return;
86
+ }
87
+
88
+ if (!toolingRegistrationsEnsured)
89
+ {
90
+ RegisterMessageHandlers();
91
+ toolingRegistrationsEnsured = true;
92
+ }
93
+
94
+ Token.Enable();
95
+ }
96
+
97
+ protected override void RegisterMessageHandlers()
98
+ {
99
+ base.RegisterMessageHandlers();
100
+
101
+ if (enableLocalDiagnostics)
102
+ {
103
+ Token.DiagnosticMode = true;
104
+ }
105
+
106
+ _ = Token.RegisterUntargeted<ToolingPulse>(OnPulse);
107
+ _ = Token.RegisterGameObjectTargeted<ToolingCommand>(gameObject, OnCommand);
108
+ _ = Token.RegisterBroadcastWithoutSource<ToolingSignal>(OnSignalFromAnySource);
109
+
110
+ if (broadcastSourceFilter != null)
111
+ {
112
+ InstanceId source = broadcastSourceFilter;
113
+ _ = Token.RegisterBroadcast<ToolingSignal>(source, OnSignalFromExactSource);
114
+ }
115
+
116
+ if (registerGlobalAcceptAll)
117
+ {
118
+ _ = Token.RegisterGlobalAcceptAll(OnAnyUntargeted, OnAnyTargeted, OnAnyBroadcast);
119
+ }
120
+ }
121
+
122
+ [ContextMenu("Reset Counts")]
123
+ public void ResetCounts()
124
+ {
125
+ untargetedCount = 0;
126
+ targetedCount = 0;
127
+ broadcastCount = 0;
128
+ globalAcceptAllCount = 0;
129
+ lastTraceId = "None";
130
+ lastRoute = "None";
131
+ lastPayload = "None";
132
+ }
133
+
134
+ private void OnPulse(ref ToolingPulse message)
135
+ {
136
+ untargetedCount++;
137
+ Record("Untargeted", message.traceId, message.channel);
138
+ }
139
+
140
+ private void OnCommand(ref ToolingCommand message)
141
+ {
142
+ targetedCount++;
143
+ Record("Targeted", message.traceId, message.command);
144
+ }
145
+
146
+ private void OnSignalFromAnySource(InstanceId source, ToolingSignal message)
147
+ {
148
+ broadcastCount++;
149
+ Record("Broadcast without source", message.traceId, message.sourceLabel);
150
+ }
151
+
152
+ private void OnSignalFromExactSource(ref ToolingSignal message)
153
+ {
154
+ broadcastCount++;
155
+ Record("Broadcast exact source", message.traceId, message.sourceLabel);
156
+ }
157
+
158
+ private void OnAnyUntargeted(IUntargetedMessage message)
159
+ {
160
+ globalAcceptAllCount++;
161
+ }
162
+
163
+ private void OnAnyTargeted(InstanceId target, ITargetedMessage message)
164
+ {
165
+ globalAcceptAllCount++;
166
+ }
167
+
168
+ private void OnAnyBroadcast(InstanceId source, IBroadcastMessage message)
169
+ {
170
+ globalAcceptAllCount++;
171
+ }
172
+
173
+ private void Record(string route, string traceId, string payload)
174
+ {
175
+ lastRoute = route;
176
+ lastTraceId = traceId;
177
+ lastPayload = payload;
178
+
179
+ if (logMessages)
180
+ {
181
+ Debug.Log($"[{listenerLabel}] {lastRoute} {lastTraceId}: {lastPayload}", this);
182
+ }
183
+ }
184
+ }
185
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: a45996c05f2e369169f682be7e6de42a
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -0,0 +1,46 @@
1
+ namespace WallstopStudios.DxMessagingSamples.DiagnosticsToolingExerciser
2
+ {
3
+ using DxMessaging.Core.Messages;
4
+
5
+ public readonly struct ToolingPulse : IUntargetedMessage<ToolingPulse>
6
+ {
7
+ public readonly string traceId;
8
+ public readonly string channel;
9
+ public readonly int sequence;
10
+
11
+ public ToolingPulse(string traceId, string channel, int sequence)
12
+ {
13
+ this.traceId = traceId;
14
+ this.channel = channel;
15
+ this.sequence = sequence;
16
+ }
17
+ }
18
+
19
+ public readonly struct ToolingCommand : ITargetedMessage<ToolingCommand>
20
+ {
21
+ public readonly string traceId;
22
+ public readonly string command;
23
+ public readonly int sequence;
24
+
25
+ public ToolingCommand(string traceId, string command, int sequence)
26
+ {
27
+ this.traceId = traceId;
28
+ this.command = command;
29
+ this.sequence = sequence;
30
+ }
31
+ }
32
+
33
+ public readonly struct ToolingSignal : IBroadcastMessage<ToolingSignal>
34
+ {
35
+ public readonly string traceId;
36
+ public readonly string sourceLabel;
37
+ public readonly int sequence;
38
+
39
+ public ToolingSignal(string traceId, string sourceLabel, int sequence)
40
+ {
41
+ this.traceId = traceId;
42
+ this.sourceLabel = sourceLabel;
43
+ this.sequence = sequence;
44
+ }
45
+ }
46
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: 1a943bdedfd4a05329de004c3bf21f20
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant: