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.
- package/CHANGELOG.md +326 -0
- package/Editor/Analyzers/BaseCallLogMessageParser.cs.meta +3 -3
- package/Editor/Analyzers/BaseCallReportAggregator.cs.meta +3 -3
- package/Editor/Analyzers/DxMessagingConsoleHarvester.cs +8 -8
- package/Editor/Analyzers/DxMessagingConsoleHarvester.cs.meta +3 -3
- package/Editor/CustomEditors/MessageAwareComponentFallbackEditor.cs +171 -13
- package/Editor/CustomEditors/MessageAwareComponentFallbackEditor.cs.meta +3 -3
- package/Editor/CustomEditors/MessageAwareComponentInspectorOverlay.cs +391 -96
- package/Editor/CustomEditors/MessageAwareComponentInspectorOverlay.cs.meta +3 -3
- package/Editor/CustomEditors/MessageAwareComponentInspectorView.cs +279 -0
- package/Editor/CustomEditors/MessageAwareComponentInspectorView.cs.meta +11 -0
- package/Editor/DxMessagingEditorPalette.cs +66 -0
- package/Editor/DxMessagingEditorPalette.cs.meta +11 -0
- package/Editor/DxMessagingEditorTheme.cs +200 -0
- package/Editor/DxMessagingEditorTheme.cs.meta +11 -0
- package/Editor/DxMessagingMenu.cs.meta +3 -3
- package/Editor/DxMessagingSceneBuildProcessor.cs.meta +3 -3
- package/Editor/Icons/dxmessaging-icon-256.png +0 -0
- package/Editor/Icons/dxmessaging-icon-256.png.meta +156 -0
- package/Editor/Icons/dxmessaging-icon-32.png +0 -0
- package/Editor/Icons/dxmessaging-icon-32.png.meta +156 -0
- package/Editor/Icons/dxmessaging-icon-48.png +0 -0
- package/Editor/Icons/dxmessaging-icon-48.png.meta +156 -0
- package/Editor/Icons.meta +8 -0
- package/Editor/Settings/DxMessagingBaseCallIgnoreSync.cs +2 -3
- package/Editor/Settings/DxMessagingBaseCallIgnoreSync.cs.meta +3 -3
- package/Editor/Settings/DxMessagingSettingsProvider.cs +368 -33
- package/Editor/SetupCscRsp.cs +232 -163
- package/Editor/Testing/MessagingComponentEditorHarness.cs +11 -4
- package/Editor/Theme/DxMessagingTheme.uss +255 -0
- package/Editor/Theme/DxMessagingTheme.uss.meta +11 -0
- package/Editor/Theme/DxTokens.uss +90 -0
- package/Editor/Theme/DxTokens.uss.meta +11 -0
- package/Editor/Theme.meta +8 -0
- package/Editor/Windows/DxMessagingFlowGraphWindow.cs +5513 -0
- package/Editor/Windows/DxMessagingFlowGraphWindow.cs.meta +11 -0
- package/Editor/Windows/DxMessagingMessageMonitorWindow.cs +2288 -0
- package/Editor/Windows/DxMessagingMessageMonitorWindow.cs.meta +11 -0
- package/Editor/Windows.meta +8 -0
- package/README.md +84 -35
- package/Runtime/Analyzers.meta +8 -0
- package/Runtime/AssemblyInfo.cs +1 -0
- package/Runtime/Core/Attributes/DxIgnoreMissingBaseCallAttribute.cs.meta +3 -3
- package/Runtime/Core/Diagnostics/MessageEmissionData.cs +29 -1
- package/Runtime/Core/DxMessagingStaticState.cs.meta +3 -3
- package/Runtime/Core/Extensions/MessageBusExtensions.cs.meta +3 -3
- package/Runtime/Core/Extensions/MessageExtensions.cs +4 -5
- package/Runtime/Core/Extensions/MessageExtensions.cs.meta +3 -3
- package/Runtime/Core/Helper/MessageCache.cs +56 -23
- package/Runtime/Core/IMessage.cs.meta +3 -3
- package/Runtime/Core/InstanceId.cs.meta +3 -3
- package/Runtime/Core/Internal/FlatDispatch.cs +32 -0
- package/Runtime/Core/Internal/TypedSlots.cs +45 -7
- package/Runtime/Core/MessageBus/DiagnosticsTarget.cs.meta +3 -3
- package/Runtime/Core/MessageBus/GlobalMessageBusProvider.cs.meta +3 -3
- package/Runtime/Core/MessageBus/IMessageBus.cs +63 -28
- package/Runtime/Core/MessageBus/IMessageBus.cs.meta +3 -3
- package/Runtime/Core/MessageBus/IMessageBusProvider.cs.meta +3 -3
- package/Runtime/Core/MessageBus/IMessageRegistrationBuilder.cs.meta +3 -3
- package/Runtime/Core/MessageBus/MessageBus.cs +1135 -626
- package/Runtime/Core/MessageBus/MessageBus.cs.meta +3 -3
- package/Runtime/Core/MessageBus/MessageBusRebindMode.cs.meta +3 -3
- package/Runtime/Core/MessageBus/MessageBusRegistration.cs +207 -0
- package/Runtime/Core/MessageBus/MessageBusRegistration.cs.meta +11 -0
- package/Runtime/Core/MessageBus/MessageRegistrationBuilder.cs.meta +3 -3
- package/Runtime/Core/MessageBus/MessagingRegistration.cs.meta +3 -3
- package/Runtime/Core/MessageBus/RegistrationLog.cs +25 -12
- package/Runtime/Core/MessageBus/RegistrationLog.cs.meta +3 -3
- package/Runtime/Core/MessageHandler.cs +1886 -1082
- package/Runtime/Core/MessageHandler.cs.meta +3 -3
- package/Runtime/Core/MessageRegistrationHandle.cs +19 -5
- package/Runtime/Core/MessageRegistrationHandle.cs.meta +3 -3
- package/Runtime/Core/MessageRegistrationToken.cs +1932 -895
- package/Runtime/Core/MessageRegistrationToken.cs.meta +3 -3
- package/Runtime/Core/Messages/IBroadcastMessage.cs.meta +3 -3
- package/Runtime/Core/Messages/ITargetedMessage.cs.meta +3 -3
- package/Runtime/Core/Messages/IUntargetedMessage.cs.meta +3 -3
- package/Runtime/Core/Messages/SourcedStringMessage.cs.meta +3 -3
- package/Runtime/Core/MessagingDebug.cs.meta +3 -3
- package/Runtime/Unity/CurrentGlobalMessageBusProvider.cs.meta +3 -3
- package/Runtime/Unity/DxMessagingRuntimeInitializer.cs.meta +3 -3
- package/Runtime/Unity/InitialGlobalMessageBusProvider.cs.meta +3 -3
- package/Runtime/Unity/Integrations/Reflex/ReflexRegistrationInstaller.cs.meta +3 -3
- package/Runtime/Unity/Integrations/VContainer/VContainerRegistrationExtensions.cs.meta +3 -3
- package/Runtime/Unity/Integrations/Zenject/ZenjectRegistrationInstaller.cs.meta +3 -3
- package/Runtime/Unity/MessageAwareComponent.cs.meta +3 -3
- package/Runtime/Unity/MessageBusProviderHandle.cs.meta +3 -3
- package/Runtime/Unity/MessagingComponent.cs.meta +3 -3
- package/Runtime/Unity/MessagingComponentInstaller.cs.meta +3 -3
- package/Runtime/Unity/ScriptableMessageBusProvider.cs.meta +3 -3
- package/Samples~/DI/Reflex/SampleInstaller.cs.meta +3 -3
- package/Samples~/DI/VContainer/SampleLifetimeScope.cs.meta +3 -3
- package/Samples~/DI/Zenject/SampleInstaller.cs.meta +3 -3
- package/Samples~/Diagnostics Tooling Exerciser/DiagnosticsToolingExerciser.cs +173 -0
- package/Samples~/Diagnostics Tooling Exerciser/DiagnosticsToolingExerciser.cs.meta +11 -0
- package/Samples~/Diagnostics Tooling Exerciser/DiagnosticsToolingExerciser.unity +424 -0
- package/Samples~/Diagnostics Tooling Exerciser/DiagnosticsToolingExerciser.unity.meta +7 -0
- package/Samples~/Diagnostics Tooling Exerciser/DiagnosticsToolingReceiver.cs +185 -0
- package/Samples~/Diagnostics Tooling Exerciser/DiagnosticsToolingReceiver.cs.meta +11 -0
- package/Samples~/Diagnostics Tooling Exerciser/Messages.cs +46 -0
- package/Samples~/Diagnostics Tooling Exerciser/Messages.cs.meta +11 -0
- package/Samples~/Diagnostics Tooling Exerciser/README.md +53 -0
- package/Samples~/Diagnostics Tooling Exerciser/README.md.meta +7 -0
- package/Samples~/Diagnostics Tooling Exerciser/WallstopStudios.DxMessaging.DiagnosticsToolingExerciser.Sample.asmdef +13 -0
- package/Samples~/Diagnostics Tooling Exerciser/WallstopStudios.DxMessaging.DiagnosticsToolingExerciser.Sample.asmdef.meta +7 -0
- package/Samples~/Diagnostics Tooling Exerciser.meta +8 -0
- package/Samples~/Mini Combat/Boot.cs.meta +3 -3
- package/Samples~/Mini Combat/Enemy.cs.meta +3 -3
- package/Samples~/Mini Combat/Messages.cs.meta +3 -3
- package/Samples~/Mini Combat/Player.cs.meta +3 -3
- package/Samples~/Mini Combat/README.md +1 -1
- package/Samples~/Mini Combat/UIOverlay.cs.meta +3 -3
- package/Samples~/Mini Combat/Walkthrough.md +3 -3
- package/Samples~/UI Buttons + Inspector/DiagnosticsEnabler.cs.meta +3 -3
- package/Samples~/UI Buttons + Inspector/Messages.cs.meta +3 -3
- package/Samples~/UI Buttons + Inspector/MessagingObserver.cs.meta +3 -3
- package/Samples~/UI Buttons + Inspector/UIButtonEmitter.cs.meta +3 -3
- package/SourceGenerators/Directory.Build.props +5 -5
- package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators/DxAutoConstructorGenerator.cs.meta +3 -3
- package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators.csproj +12 -11
- package/docs/images/DxMessaging-banner.svg +79 -0
- package/docs/images/DxMessaging-banner.svg.meta +53 -0
- package/docs/images.meta +8 -0
- package/docs.meta +8 -0
- package/package.json +17 -5
- /package/{Editor → Runtime}/Analyzers/Microsoft.CodeAnalysis.CSharp.dll +0 -0
- /package/{Editor → Runtime}/Analyzers/Microsoft.CodeAnalysis.CSharp.dll.meta +0 -0
- /package/{Editor → Runtime}/Analyzers/Microsoft.CodeAnalysis.dll +0 -0
- /package/{Editor → Runtime}/Analyzers/Microsoft.CodeAnalysis.dll.meta +0 -0
- /package/{Editor → Runtime}/Analyzers/System.Collections.Immutable.dll +0 -0
- /package/{Editor → Runtime}/Analyzers/System.Collections.Immutable.dll.meta +0 -0
- /package/{Editor → Runtime}/Analyzers/System.Reflection.Metadata.dll +0 -0
- /package/{Editor → Runtime}/Analyzers/System.Reflection.Metadata.dll.meta +0 -0
- /package/{Editor → Runtime}/Analyzers/System.Runtime.CompilerServices.Unsafe.dll +0 -0
- /package/{Editor → Runtime}/Analyzers/System.Runtime.CompilerServices.Unsafe.dll.meta +0 -0
- /package/{Editor → Runtime}/Analyzers/WallstopStudios.DxMessaging.Analyzer.dll +0 -0
- /package/{Editor → Runtime}/Analyzers/WallstopStudios.DxMessaging.Analyzer.dll.meta +0 -0
- /package/{Editor → Runtime}/Analyzers/WallstopStudios.DxMessaging.SourceGenerators.dll +0 -0
- /package/{Editor → Runtime}/Analyzers/WallstopStudios.DxMessaging.SourceGenerators.dll.meta +0 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
namespace WallstopStudios.DxMessagingSamples.DiagnosticsToolingExerciser
|
|
2
|
+
{
|
|
3
|
+
using System;
|
|
4
|
+
using System.Collections;
|
|
5
|
+
using DxMessaging.Core;
|
|
6
|
+
using DxMessaging.Core.Extensions;
|
|
7
|
+
using DxMessaging.Core.MessageBus;
|
|
8
|
+
using UnityEngine;
|
|
9
|
+
|
|
10
|
+
[DisallowMultipleComponent]
|
|
11
|
+
public sealed class DiagnosticsToolingExerciser : MonoBehaviour
|
|
12
|
+
{
|
|
13
|
+
[SerializeField]
|
|
14
|
+
private DiagnosticsToolingReceiver[] receivers = Array.Empty<DiagnosticsToolingReceiver>();
|
|
15
|
+
|
|
16
|
+
[SerializeField]
|
|
17
|
+
private GameObject[] broadcastSources = Array.Empty<GameObject>();
|
|
18
|
+
|
|
19
|
+
[SerializeField]
|
|
20
|
+
private bool enableGlobalDiagnostics = true;
|
|
21
|
+
|
|
22
|
+
[SerializeField]
|
|
23
|
+
private bool emitOnStart = true;
|
|
24
|
+
|
|
25
|
+
[SerializeField]
|
|
26
|
+
private int burstCount = 3;
|
|
27
|
+
|
|
28
|
+
[SerializeField]
|
|
29
|
+
private float repeatSeconds;
|
|
30
|
+
|
|
31
|
+
[SerializeField]
|
|
32
|
+
private bool logSummary = true;
|
|
33
|
+
|
|
34
|
+
[SerializeField]
|
|
35
|
+
private int sequence;
|
|
36
|
+
|
|
37
|
+
[SerializeField]
|
|
38
|
+
private string lastRunSummary = "Not run yet";
|
|
39
|
+
|
|
40
|
+
public int Sequence => sequence;
|
|
41
|
+
|
|
42
|
+
public string LastRunSummary => lastRunSummary;
|
|
43
|
+
|
|
44
|
+
private void Start()
|
|
45
|
+
{
|
|
46
|
+
ConfigureDiagnostics();
|
|
47
|
+
|
|
48
|
+
if (emitOnStart)
|
|
49
|
+
{
|
|
50
|
+
StartCoroutine(EmitAfterSceneStartup());
|
|
51
|
+
}
|
|
52
|
+
else
|
|
53
|
+
{
|
|
54
|
+
StartRepeatingIfRequested();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
private IEnumerator EmitAfterSceneStartup()
|
|
59
|
+
{
|
|
60
|
+
yield return null;
|
|
61
|
+
EmitBurst();
|
|
62
|
+
StartRepeatingIfRequested();
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
private void StartRepeatingIfRequested()
|
|
66
|
+
{
|
|
67
|
+
if (repeatSeconds > 0)
|
|
68
|
+
{
|
|
69
|
+
InvokeRepeating(nameof(EmitBurst), repeatSeconds, repeatSeconds);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
[ContextMenu("Emit Burst")]
|
|
74
|
+
public void EmitBurst()
|
|
75
|
+
{
|
|
76
|
+
int count = Mathf.Max(1, burstCount);
|
|
77
|
+
for (int index = 0; index < count; index++)
|
|
78
|
+
{
|
|
79
|
+
EmitOneOfEach();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
[ContextMenu("Emit One Of Each")]
|
|
84
|
+
public void EmitOneOfEach()
|
|
85
|
+
{
|
|
86
|
+
EnsureReceiversReady();
|
|
87
|
+
sequence++;
|
|
88
|
+
|
|
89
|
+
ToolingPulse pulse = new(
|
|
90
|
+
CreateTraceId("pulse"),
|
|
91
|
+
"Diagnostics sample global pulse",
|
|
92
|
+
sequence
|
|
93
|
+
);
|
|
94
|
+
pulse.EmitUntargeted();
|
|
95
|
+
|
|
96
|
+
int targetedEmits = 0;
|
|
97
|
+
foreach (DiagnosticsToolingReceiver receiver in receivers)
|
|
98
|
+
{
|
|
99
|
+
if (receiver == null)
|
|
100
|
+
{
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
ToolingCommand command = new(
|
|
105
|
+
CreateTraceId("target"),
|
|
106
|
+
$"Command for {receiver.ListenerLabel}",
|
|
107
|
+
sequence
|
|
108
|
+
);
|
|
109
|
+
command.EmitGameObjectTargeted(receiver.gameObject);
|
|
110
|
+
targetedEmits++;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
int broadcastEmits = 0;
|
|
114
|
+
GameObject[] sources =
|
|
115
|
+
broadcastSources == null || broadcastSources.Length == 0
|
|
116
|
+
? new[] { gameObject }
|
|
117
|
+
: broadcastSources;
|
|
118
|
+
foreach (GameObject source in sources)
|
|
119
|
+
{
|
|
120
|
+
if (source == null)
|
|
121
|
+
{
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
ToolingSignal signal = new(CreateTraceId("signal"), source.name, sequence);
|
|
126
|
+
InstanceId sourceId = source;
|
|
127
|
+
MessageHandler.MessageBus.SourcedBroadcast(ref sourceId, ref signal);
|
|
128
|
+
broadcastEmits++;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
lastRunSummary =
|
|
132
|
+
$"Sequence {sequence}: 1 untargeted, {targetedEmits} targeted, {broadcastEmits} broadcast";
|
|
133
|
+
|
|
134
|
+
if (logSummary)
|
|
135
|
+
{
|
|
136
|
+
Debug.Log(lastRunSummary, this);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
private void ConfigureDiagnostics()
|
|
141
|
+
{
|
|
142
|
+
if (!enableGlobalDiagnostics)
|
|
143
|
+
{
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
if (MessageHandler.MessageBus is MessageBus messageBus)
|
|
148
|
+
{
|
|
149
|
+
messageBus.DiagnosticsMode = true;
|
|
150
|
+
}
|
|
151
|
+
else
|
|
152
|
+
{
|
|
153
|
+
Debug.LogWarning(
|
|
154
|
+
"DxMessaging global diagnostics could not be enabled because the active global bus is not the default MessageBus.",
|
|
155
|
+
this
|
|
156
|
+
);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
private string CreateTraceId(string route)
|
|
161
|
+
{
|
|
162
|
+
return $"sample-{route}-{sequence:000}";
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
private void EnsureReceiversReady()
|
|
166
|
+
{
|
|
167
|
+
foreach (DiagnosticsToolingReceiver receiver in receivers)
|
|
168
|
+
{
|
|
169
|
+
receiver?.EnsureToolingRegistrations();
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|