com.wallstop-studios.dxmessaging 1.0.0-rc8
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/.gitattributes +63 -0
- package/CHANGELOG.md +0 -0
- package/CHANGELOG.md.meta +7 -0
- package/Editor.meta +8 -0
- package/LICENSE.md +7 -0
- package/LICENSE.md.meta +7 -0
- package/README.md +76 -0
- package/README.md.meta +7 -0
- package/Runtime/Core/Extensions/MessageExtensions.cs +275 -0
- package/Runtime/Core/Extensions/MessageExtensions.cs.meta +11 -0
- package/Runtime/Core/Extensions.meta +8 -0
- package/Runtime/Core/IMessage.cs +12 -0
- package/Runtime/Core/IMessage.cs.meta +11 -0
- package/Runtime/Core/InstanceId.cs +117 -0
- package/Runtime/Core/InstanceId.cs.meta +11 -0
- package/Runtime/Core/MessageBus/IMessageBus.cs +249 -0
- package/Runtime/Core/MessageBus/IMessageBus.cs.meta +11 -0
- package/Runtime/Core/MessageBus/MessageBus.cs +961 -0
- package/Runtime/Core/MessageBus/MessageBus.cs.meta +11 -0
- package/Runtime/Core/MessageBus/MessagingRegistration.cs +100 -0
- package/Runtime/Core/MessageBus/MessagingRegistration.cs.meta +11 -0
- package/Runtime/Core/MessageBus/RegistrationLog.cs +111 -0
- package/Runtime/Core/MessageBus/RegistrationLog.cs.meta +11 -0
- package/Runtime/Core/MessageBus.meta +8 -0
- package/Runtime/Core/MessageHandler.cs +1589 -0
- package/Runtime/Core/MessageHandler.cs.meta +11 -0
- package/Runtime/Core/MessageRegistrationHandle.cs +55 -0
- package/Runtime/Core/MessageRegistrationHandle.cs.meta +11 -0
- package/Runtime/Core/MessageRegistrationToken.cs +885 -0
- package/Runtime/Core/MessageRegistrationToken.cs.meta +11 -0
- package/Runtime/Core/Messages/IBroadcastMessage.cs +27 -0
- package/Runtime/Core/Messages/IBroadcastMessage.cs.meta +11 -0
- package/Runtime/Core/Messages/ITargetedMessage.cs +26 -0
- package/Runtime/Core/Messages/ITargetedMessage.cs.meta +11 -0
- package/Runtime/Core/Messages/IUntargetedMessage.cs +26 -0
- package/Runtime/Core/Messages/IUntargetedMessage.cs.meta +11 -0
- package/Runtime/Core/Messages.meta +8 -0
- package/Runtime/Core/MessagingDebug.cs +71 -0
- package/Runtime/Core/MessagingDebug.cs.meta +11 -0
- package/Runtime/Core.meta +8 -0
- package/Runtime/Unity/MessageAwareComponent.cs +77 -0
- package/Runtime/Unity/MessageAwareComponent.cs.meta +11 -0
- package/Runtime/Unity/MessagingComponent.cs +73 -0
- package/Runtime/Unity/MessagingComponent.cs.meta +11 -0
- package/Runtime/Unity.meta +8 -0
- package/Runtime/WallstopStudios.DxMessaging.asmdef +18 -0
- package/Runtime/WallstopStudios.DxMessaging.asmdef.meta +7 -0
- package/Runtime.meta +8 -0
- package/Tests/Editor/WallstopStudios.DxMessaging.Tests.Editor.asmdef +23 -0
- package/Tests/Editor/WallstopStudios.DxMessaging.Tests.Editor.asmdef.meta +7 -0
- package/Tests/Editor.meta +8 -0
- package/Tests/Runtime/Benchmarks/PerformanceTests.cs +196 -0
- package/Tests/Runtime/Benchmarks/PerformanceTests.cs.meta +11 -0
- package/Tests/Runtime/Benchmarks.meta +8 -0
- package/Tests/Runtime/Core/BroadcastTests.cs +600 -0
- package/Tests/Runtime/Core/BroadcastTests.cs.meta +11 -0
- package/Tests/Runtime/Core/GlobalAcceptAllTests.cs +169 -0
- package/Tests/Runtime/Core/GlobalAcceptAllTests.cs.meta +11 -0
- package/Tests/Runtime/Core/MessagingTestBase.cs +164 -0
- package/Tests/Runtime/Core/MessagingTestBase.cs.meta +11 -0
- package/Tests/Runtime/Core/NominalTests.cs +1468 -0
- package/Tests/Runtime/Core/NominalTests.cs.meta +11 -0
- package/Tests/Runtime/Core/PostProcessorTests.cs +849 -0
- package/Tests/Runtime/Core/PostProcessorTests.cs.meta +11 -0
- package/Tests/Runtime/Core/RegistrationTests.cs +1045 -0
- package/Tests/Runtime/Core/RegistrationTests.cs.meta +11 -0
- package/Tests/Runtime/Core/TargetedTests.cs +596 -0
- package/Tests/Runtime/Core/TargetedTests.cs.meta +11 -0
- package/Tests/Runtime/Core/UntargetedTests.cs +149 -0
- package/Tests/Runtime/Core/UntargetedTests.cs.meta +11 -0
- package/Tests/Runtime/Core.meta +8 -0
- package/Tests/Runtime/Scripts/Components/EmptyMessageAwareComponent.cs +9 -0
- package/Tests/Runtime/Scripts/Components/EmptyMessageAwareComponent.cs.meta +11 -0
- package/Tests/Runtime/Scripts/Components/SimpleMessageAwareComponent.cs +140 -0
- package/Tests/Runtime/Scripts/Components/SimpleMessageAwareComponent.cs.meta +11 -0
- package/Tests/Runtime/Scripts/Components.meta +8 -0
- package/Tests/Runtime/Scripts/Messages/ComplexTargetedMessage.cs +28 -0
- package/Tests/Runtime/Scripts/Messages/ComplexTargetedMessage.cs.meta +11 -0
- package/Tests/Runtime/Scripts/Messages/SimpleBroadcastMessage.cs +8 -0
- package/Tests/Runtime/Scripts/Messages/SimpleBroadcastMessage.cs.meta +11 -0
- package/Tests/Runtime/Scripts/Messages/SimpleTargetedMessage.cs +8 -0
- package/Tests/Runtime/Scripts/Messages/SimpleTargetedMessage.cs.meta +11 -0
- package/Tests/Runtime/Scripts/Messages/SimpleUntargetedMessage.cs +8 -0
- package/Tests/Runtime/Scripts/Messages/SimpleUntargetedMessage.cs.meta +11 -0
- package/Tests/Runtime/Scripts/Messages.meta +8 -0
- package/Tests/Runtime/Scripts.meta +8 -0
- package/Tests/Runtime/WallstopStudios.DxMessaging.Tests.Runtime.asmdef +22 -0
- package/Tests/Runtime/WallstopStudios.DxMessaging.Tests.Runtime.asmdef.meta +7 -0
- package/Tests/Runtime/WallstopStudios.DxMessaging.Tests.Runtime.csproj +1 -0
- package/Tests/Runtime/WallstopStudios.DxMessaging.Tests.Runtime.csproj.meta +7 -0
- package/Tests/Runtime.meta +8 -0
- package/Tests.meta +8 -0
- package/Third Party Notices.md +1 -0
- package/Third Party Notices.md.meta +7 -0
- package/package.json +33 -0
- package/package.json.meta +7 -0
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
namespace DxMessaging.Tests.Runtime.Core
|
|
2
|
+
{
|
|
3
|
+
using System.Collections;
|
|
4
|
+
using DxMessaging.Core;
|
|
5
|
+
using DxMessaging.Core.Extensions;
|
|
6
|
+
using DxMessaging.Core.Messages;
|
|
7
|
+
using NUnit.Framework;
|
|
8
|
+
using Scripts.Components;
|
|
9
|
+
using Scripts.Messages;
|
|
10
|
+
using UnityEngine;
|
|
11
|
+
using UnityEngine.TestTools;
|
|
12
|
+
|
|
13
|
+
public sealed class UntargetedTests : MessagingTestBase
|
|
14
|
+
{
|
|
15
|
+
[UnityTest]
|
|
16
|
+
public IEnumerator SimpleNormal()
|
|
17
|
+
{
|
|
18
|
+
GameObject test1 = new(nameof(SimpleNormal) + "1", typeof(EmptyMessageAwareComponent));
|
|
19
|
+
_spawned.Add(test1);
|
|
20
|
+
GameObject test2 = new(nameof(SimpleNormal) + "2", typeof(EmptyMessageAwareComponent));
|
|
21
|
+
_spawned.Add(test2);
|
|
22
|
+
|
|
23
|
+
EmptyMessageAwareComponent component1 = test1.GetComponent<EmptyMessageAwareComponent>();
|
|
24
|
+
EmptyMessageAwareComponent component2 = test2.GetComponent<EmptyMessageAwareComponent>();
|
|
25
|
+
|
|
26
|
+
int count1 = 0;
|
|
27
|
+
MessageRegistrationToken token1 = GetToken(component1);
|
|
28
|
+
_ = token1.RegisterUntargeted<SimpleUntargetedMessage>(_ => ++count1);
|
|
29
|
+
int count2 = 0;
|
|
30
|
+
MessageRegistrationToken token2 = GetToken(component2);
|
|
31
|
+
_ = token2.RegisterUntargeted<SimpleUntargetedMessage>(_ => ++count2);
|
|
32
|
+
SimpleUntargetedMessage message = new();
|
|
33
|
+
for (int i = 0; i < 100; ++i)
|
|
34
|
+
{
|
|
35
|
+
Assert.AreEqual(i, count1);
|
|
36
|
+
Assert.AreEqual(i, count2);
|
|
37
|
+
message.EmitUntargeted();
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
yield break;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
[UnityTest]
|
|
44
|
+
public IEnumerator SimpleNoCopy()
|
|
45
|
+
{
|
|
46
|
+
GameObject test1 = new(nameof(SimpleNormal) + "1", typeof(EmptyMessageAwareComponent));
|
|
47
|
+
_spawned.Add(test1);
|
|
48
|
+
GameObject test2 = new(nameof(SimpleNormal) + "2", typeof(EmptyMessageAwareComponent));
|
|
49
|
+
_spawned.Add(test2);
|
|
50
|
+
|
|
51
|
+
EmptyMessageAwareComponent component1 = test1.GetComponent<EmptyMessageAwareComponent>();
|
|
52
|
+
EmptyMessageAwareComponent component2 = test2.GetComponent<EmptyMessageAwareComponent>();
|
|
53
|
+
|
|
54
|
+
int count1 = 0;
|
|
55
|
+
void Receive1(ref SimpleUntargetedMessage message)
|
|
56
|
+
{
|
|
57
|
+
++count1;
|
|
58
|
+
}
|
|
59
|
+
MessageRegistrationToken token1 = GetToken(component1);
|
|
60
|
+
_ = token1.RegisterUntargeted<SimpleUntargetedMessage>(Receive1);
|
|
61
|
+
|
|
62
|
+
int count2 = 0;
|
|
63
|
+
void Receive2(ref SimpleUntargetedMessage message)
|
|
64
|
+
{
|
|
65
|
+
++count2;
|
|
66
|
+
}
|
|
67
|
+
MessageRegistrationToken token2 = GetToken(component2);
|
|
68
|
+
_ = token2.RegisterUntargeted<SimpleUntargetedMessage>(Receive2);
|
|
69
|
+
|
|
70
|
+
SimpleUntargetedMessage message = new();
|
|
71
|
+
for (int i = 0; i < 100; ++i)
|
|
72
|
+
{
|
|
73
|
+
Assert.AreEqual(i, count1);
|
|
74
|
+
Assert.AreEqual(i, count2);
|
|
75
|
+
message.EmitUntargeted();
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
yield break;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
[UnityTest]
|
|
82
|
+
public IEnumerator SimpleDualMode()
|
|
83
|
+
{
|
|
84
|
+
GameObject test1 = new(nameof(SimpleNormal) + "1", typeof(EmptyMessageAwareComponent));
|
|
85
|
+
_spawned.Add(test1);
|
|
86
|
+
GameObject test2 = new(nameof(SimpleNormal) + "2", typeof(EmptyMessageAwareComponent));
|
|
87
|
+
_spawned.Add(test2);
|
|
88
|
+
|
|
89
|
+
EmptyMessageAwareComponent component1 = test1.GetComponent<EmptyMessageAwareComponent>();
|
|
90
|
+
EmptyMessageAwareComponent component2 = test2.GetComponent<EmptyMessageAwareComponent>();
|
|
91
|
+
|
|
92
|
+
int count1 = 0;
|
|
93
|
+
void Receive1(ref SimpleUntargetedMessage message)
|
|
94
|
+
{
|
|
95
|
+
++count1;
|
|
96
|
+
}
|
|
97
|
+
MessageRegistrationToken token1 = GetToken(component1);
|
|
98
|
+
_ = token1.RegisterUntargeted<SimpleUntargetedMessage>(Receive1);
|
|
99
|
+
_ = token1.RegisterUntargeted<SimpleUntargetedMessage>(_ => ++count1);
|
|
100
|
+
|
|
101
|
+
int count2 = 0;
|
|
102
|
+
void Receive2(ref SimpleUntargetedMessage message)
|
|
103
|
+
{
|
|
104
|
+
++count2;
|
|
105
|
+
}
|
|
106
|
+
MessageRegistrationToken token2 = GetToken(component2);
|
|
107
|
+
_ = token2.RegisterUntargeted<SimpleUntargetedMessage>(Receive2);
|
|
108
|
+
|
|
109
|
+
SimpleUntargetedMessage message = new();
|
|
110
|
+
for (int i = 0; i < 100; ++i)
|
|
111
|
+
{
|
|
112
|
+
Assert.AreEqual(i * 2, count1);
|
|
113
|
+
Assert.AreEqual(i, count2);
|
|
114
|
+
message.EmitUntargeted();
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
yield break;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
[UnityTest]
|
|
121
|
+
public IEnumerator UntargetedUntyped()
|
|
122
|
+
{
|
|
123
|
+
GameObject test = new(nameof(UntargetedUntyped) + "1", typeof(EmptyMessageAwareComponent));
|
|
124
|
+
_spawned.Add(test);
|
|
125
|
+
|
|
126
|
+
int count = 0;
|
|
127
|
+
void Receive(ref SimpleUntargetedMessage message)
|
|
128
|
+
{
|
|
129
|
+
++count;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
EmptyMessageAwareComponent component = test.GetComponent<EmptyMessageAwareComponent>();
|
|
133
|
+
MessageRegistrationToken token = GetToken(component);
|
|
134
|
+
token.RegisterUntargeted<SimpleUntargetedMessage>(Receive);
|
|
135
|
+
|
|
136
|
+
IUntargetedMessage message = new SimpleUntargetedMessage();
|
|
137
|
+
message.EmitUntargeted();
|
|
138
|
+
Assert.AreEqual(1, count);
|
|
139
|
+
message.EmitUntargeted();
|
|
140
|
+
Assert.AreEqual(2, count);
|
|
141
|
+
message.EmitUntargeted();
|
|
142
|
+
Assert.AreEqual(3, count);
|
|
143
|
+
message.EmitUntargeted();
|
|
144
|
+
Assert.AreEqual(4, count);
|
|
145
|
+
|
|
146
|
+
yield break;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
namespace DxMessaging.Tests.Runtime.Scripts.Components
|
|
2
|
+
{
|
|
3
|
+
using System;
|
|
4
|
+
using DxMessaging.Core;
|
|
5
|
+
using Unity;
|
|
6
|
+
using Messages;
|
|
7
|
+
|
|
8
|
+
public sealed class SimpleMessageAwareComponent : MessageAwareComponent
|
|
9
|
+
{
|
|
10
|
+
public bool SlowComplexTargetingEnabled
|
|
11
|
+
{
|
|
12
|
+
get => _slowComplexTargetingEnabled;
|
|
13
|
+
set
|
|
14
|
+
{
|
|
15
|
+
_slowComplexTargetingEnabled = value;
|
|
16
|
+
ToggleTargetedRegistration();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
public bool FastComplexTargetingEnabled
|
|
20
|
+
{
|
|
21
|
+
get => _fastComplexTargetingEnabled;
|
|
22
|
+
set
|
|
23
|
+
{
|
|
24
|
+
_fastComplexTargetingEnabled = value;
|
|
25
|
+
ToggleTargetedRegistration();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
public Action untargetedHandler;
|
|
30
|
+
public Action targetedHandler;
|
|
31
|
+
public Action slowTargetedHandler;
|
|
32
|
+
public Action targetedWithoutTargetingHandler;
|
|
33
|
+
public Action slowComplexTargetedHandler;
|
|
34
|
+
public Action complexTargetedHandler;
|
|
35
|
+
public Action broadcastHandler;
|
|
36
|
+
public Action broadcastWithoutSourceHandler;
|
|
37
|
+
public Action componentTargetedHandler;
|
|
38
|
+
public Action complexComponentTargetedHandler;
|
|
39
|
+
public Action componentBroadcastHandler;
|
|
40
|
+
|
|
41
|
+
private bool _slowComplexTargetingEnabled = true;
|
|
42
|
+
private bool _fastComplexTargetingEnabled = true;
|
|
43
|
+
|
|
44
|
+
private MessageRegistrationHandle? _slowComplexTargetingHandle;
|
|
45
|
+
private MessageRegistrationHandle? _fastComplexTargetingHandle;
|
|
46
|
+
|
|
47
|
+
protected override void RegisterMessageHandlers()
|
|
48
|
+
{
|
|
49
|
+
_ = _messageRegistrationToken.RegisterUntargeted<SimpleUntargetedMessage>(HandleSimpleUntargetedMessage);
|
|
50
|
+
_ = _messageRegistrationToken.RegisterGameObjectTargeted<SimpleTargetedMessage>(gameObject, HandleSimpleTargetedMessage);
|
|
51
|
+
_ = _messageRegistrationToken.RegisterGameObjectTargeted<SimpleTargetedMessage>(gameObject, HandleSlowSimpleTargetedMessage);
|
|
52
|
+
_ = _messageRegistrationToken.RegisterTargetedWithoutTargeting<SimpleTargetedMessage>(HandleSimpleTargetedWithoutTargetingMessage);
|
|
53
|
+
_fastComplexTargetingHandle = _messageRegistrationToken.RegisterGameObjectTargeted<ComplexTargetedMessage>(gameObject, HandleComplexTargetedMessage);
|
|
54
|
+
_slowComplexTargetingHandle = _messageRegistrationToken.RegisterGameObjectTargeted<ComplexTargetedMessage>(gameObject, HandleSlowComplexTargetedMessage);
|
|
55
|
+
_ = _messageRegistrationToken.RegisterGameObjectBroadcast<SimpleBroadcastMessage>(gameObject, HandleSimpleBroadcastMessage);
|
|
56
|
+
_ = _messageRegistrationToken.RegisterBroadcastWithoutSource<SimpleBroadcastMessage>(HandleSimpleBroadcastWithoutSourceMessage);
|
|
57
|
+
_ = _messageRegistrationToken.RegisterComponentTargeted<SimpleTargetedMessage>(this, HandleSimpleComponentTargetedMessage);
|
|
58
|
+
_ = _messageRegistrationToken.RegisterComponentBroadcast<SimpleBroadcastMessage>(this, HandleSimpleComponentBroadcastMessage);
|
|
59
|
+
_ = _messageRegistrationToken.RegisterComponentTargeted<ComplexTargetedMessage>(this, HandleComplexComponentTargetedMessage);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
private void ToggleTargetedRegistration()
|
|
63
|
+
{
|
|
64
|
+
if (SlowComplexTargetingEnabled)
|
|
65
|
+
{
|
|
66
|
+
_slowComplexTargetingHandle ??= _messageRegistrationToken.RegisterGameObjectTargeted<ComplexTargetedMessage>(gameObject, HandleSlowComplexTargetedMessage);
|
|
67
|
+
}
|
|
68
|
+
else if (_slowComplexTargetingHandle != null)
|
|
69
|
+
{
|
|
70
|
+
_messageRegistrationToken.RemoveRegistration(_slowComplexTargetingHandle.Value);
|
|
71
|
+
_slowComplexTargetingHandle = null;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (FastComplexTargetingEnabled)
|
|
75
|
+
{
|
|
76
|
+
_fastComplexTargetingHandle ??= _messageRegistrationToken.RegisterGameObjectTargeted<ComplexTargetedMessage>(gameObject, HandleComplexTargetedMessage);
|
|
77
|
+
}
|
|
78
|
+
else if (_fastComplexTargetingHandle != null)
|
|
79
|
+
{
|
|
80
|
+
_messageRegistrationToken.RemoveRegistration(_fastComplexTargetingHandle.Value);
|
|
81
|
+
_fastComplexTargetingHandle = null;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
public void HandleSlowComplexTargetedMessage(ComplexTargetedMessage message)
|
|
86
|
+
{
|
|
87
|
+
slowComplexTargetedHandler?.Invoke();
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
public void HandleComplexTargetedMessage(ref ComplexTargetedMessage message)
|
|
91
|
+
{
|
|
92
|
+
complexTargetedHandler?.Invoke();
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
public void HandleSlowSimpleTargetedMessage(SimpleTargetedMessage message)
|
|
96
|
+
{
|
|
97
|
+
slowTargetedHandler?.Invoke();
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
public void HandleSimpleUntargetedMessage(ref SimpleUntargetedMessage message)
|
|
101
|
+
{
|
|
102
|
+
untargetedHandler?.Invoke();
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
public void HandleSimpleTargetedMessage(ref SimpleTargetedMessage message)
|
|
106
|
+
{
|
|
107
|
+
targetedHandler?.Invoke();
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
public void HandleSimpleTargetedWithoutTargetingMessage(ref InstanceId target, ref SimpleTargetedMessage message)
|
|
111
|
+
{
|
|
112
|
+
targetedWithoutTargetingHandler?.Invoke();
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
public void HandleSimpleBroadcastMessage(ref SimpleBroadcastMessage message)
|
|
116
|
+
{
|
|
117
|
+
broadcastHandler?.Invoke();
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
public void HandleSimpleBroadcastWithoutSourceMessage(ref InstanceId source, ref SimpleBroadcastMessage message)
|
|
121
|
+
{
|
|
122
|
+
broadcastWithoutSourceHandler?.Invoke();
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
public void HandleSimpleComponentTargetedMessage(ref SimpleTargetedMessage message)
|
|
126
|
+
{
|
|
127
|
+
componentTargetedHandler?.Invoke();
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
public void HandleComplexComponentTargetedMessage(ref ComplexTargetedMessage message)
|
|
131
|
+
{
|
|
132
|
+
complexComponentTargetedHandler?.Invoke();
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
public void HandleSimpleComponentBroadcastMessage(ref SimpleBroadcastMessage message)
|
|
136
|
+
{
|
|
137
|
+
componentBroadcastHandler?.Invoke();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
namespace DxMessaging.Tests.Runtime.Scripts.Messages
|
|
2
|
+
{
|
|
3
|
+
using System;
|
|
4
|
+
using DxMessaging.Core.Messages;
|
|
5
|
+
|
|
6
|
+
public readonly struct ComplexTargetedMessage : ITargetedMessage<ComplexTargetedMessage>
|
|
7
|
+
{
|
|
8
|
+
// Guids are a bit beefy structure
|
|
9
|
+
public readonly Guid firstId;
|
|
10
|
+
public readonly Guid secondId;
|
|
11
|
+
public readonly Guid thirdId;
|
|
12
|
+
public readonly Guid fourthId;
|
|
13
|
+
public readonly Guid fifthId;
|
|
14
|
+
public readonly Guid sixthId;
|
|
15
|
+
public readonly Guid seventhId;
|
|
16
|
+
|
|
17
|
+
public ComplexTargetedMessage(Guid firstId)
|
|
18
|
+
{
|
|
19
|
+
this.firstId = firstId;
|
|
20
|
+
secondId = Guid.NewGuid();
|
|
21
|
+
thirdId = Guid.NewGuid();
|
|
22
|
+
fourthId = Guid.NewGuid();
|
|
23
|
+
fifthId = Guid.NewGuid();
|
|
24
|
+
sixthId = Guid.NewGuid();
|
|
25
|
+
seventhId = Guid.NewGuid();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "WallstopStudios.DxMessaging.Tests.Runtime",
|
|
3
|
+
"rootNamespace": "DxMessaging.Tests",
|
|
4
|
+
"references": [
|
|
5
|
+
"UnityEngine.TestRunner",
|
|
6
|
+
"UnityEditor.TestRunner",
|
|
7
|
+
"WallstopStudios.DxMessaging"
|
|
8
|
+
],
|
|
9
|
+
"includePlatforms": [],
|
|
10
|
+
"excludePlatforms": [],
|
|
11
|
+
"allowUnsafeCode": false,
|
|
12
|
+
"overrideReferences": true,
|
|
13
|
+
"precompiledReferences": [
|
|
14
|
+
"nunit.framework.dll"
|
|
15
|
+
],
|
|
16
|
+
"autoReferenced": false,
|
|
17
|
+
"defineConstraints": [
|
|
18
|
+
"UNITY_INCLUDE_TESTS"
|
|
19
|
+
],
|
|
20
|
+
"versionDefines": [],
|
|
21
|
+
"noEngineReferences": false
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation" />
|
package/Tests.meta
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
This package contains third-party software components governed by the license(s) indicated below:
|
package/package.json
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "com.wallstop-studios.dxmessaging",
|
|
3
|
+
"version": "1.0.0-rc8",
|
|
4
|
+
"displayName": "DxMessaging",
|
|
5
|
+
"description": "Synchronous Event Bus for Unity",
|
|
6
|
+
"unity": "2022.1",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"messaging",
|
|
9
|
+
"message",
|
|
10
|
+
"messages",
|
|
11
|
+
"event",
|
|
12
|
+
"event bus",
|
|
13
|
+
"eventing",
|
|
14
|
+
"send",
|
|
15
|
+
"receive",
|
|
16
|
+
"signal",
|
|
17
|
+
"slot"
|
|
18
|
+
],
|
|
19
|
+
"license": "MIT",
|
|
20
|
+
"repository": {
|
|
21
|
+
"type": "git",
|
|
22
|
+
"url": "git+https://github.com/wallstop/DxMessaging.git"
|
|
23
|
+
},
|
|
24
|
+
"bugs": {
|
|
25
|
+
"url": "https://github.com/wallstop/DxMessaging/issues"
|
|
26
|
+
},
|
|
27
|
+
"author": "wallstop studios <wallstop@wallstopstudios.com> (https://wallstopstudios.com)",
|
|
28
|
+
"homepage": "https://github.com/wallstop/DxMessaging#readme",
|
|
29
|
+
"main": "README.md",
|
|
30
|
+
"scripts": {
|
|
31
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
32
|
+
}
|
|
33
|
+
}
|