Skip to content

Commit 9c27f94

Browse files
authored
Merge pull request #1 from NED-Studio/develop
Develop
2 parents fc24811 + 7bc7dd0 commit 9c27f94

File tree

14 files changed

+103
-33
lines changed

14 files changed

+103
-33
lines changed

Assets/Extensions/GenericMessagingSystem/Core/BaseMessagingManager.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
using UnityEngine;
99
using UnityEngine.Assertions;
1010

11-
namespace NED.GenericMessaingSystem
11+
namespace NED.GenericMessagingSystem
1212
{
1313
/// <summary>
1414
/// Base class for All Messaging Manager
@@ -25,11 +25,8 @@ public abstract class BaseMessagingManager : MonoBehaviour
2525
/// Called automaticly by Internal Unity
2626
/// Call <see cref="CreateAllStorage()"/> in implementation
2727
/// </summary>
28-
protected virtual void Awake()
28+
public BaseMessagingManager()
2929
{
30-
#if UNITY_EDITOR
31-
if (EnableDebug) Debug.Log("Awake");
32-
#endif
3330
CreateAllStorage();
3431
}
3532

@@ -96,7 +93,10 @@ public void Add<D, I>(I handler) where D : IMessageDomain where I : IMessageList
9693

9794
Assert.IsNotNull<List<I>>(HandlerStorage<D, I>.Handlers, "Handler storage not created yet!");
9895

99-
HandlerStorage<D, I>.Handlers.Add(handler);
96+
if (HandlerStorage<D, I>.Handlers != null)
97+
{
98+
HandlerStorage<D, I>.Handlers.Add(handler);
99+
}
100100
}
101101

102102
/// <summary>

Assets/Extensions/GenericMessagingSystem/Core/GlobalMessage.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// See the LICENSE file in the project root for more information.
33
// Created By Leo Pripos Marbun
44

5-
namespace NED.GenericMessaingSystem
5+
namespace NED.GenericMessagingSystem
66
{
77
/// <summary>
88
/// Global message domain

Assets/Extensions/GenericMessagingSystem/Core/HandlerStorage.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
using System.Collections.Generic;
66

7-
namespace NED.GenericMessaingSystem
7+
namespace NED.GenericMessagingSystem
88
{
99
/// <summary>
1010
/// Class to message handler object
@@ -15,6 +15,14 @@ internal static class HandlerStorage<D, I> where D : IMessageDomain where I : IM
1515
{
1616
private static List<I> m_Handlers;
1717

18+
/// <summary>
19+
/// Get ready status of Handler
20+
/// </summary>
21+
public static bool IsReady
22+
{
23+
get { return (m_Handlers != null); }
24+
}
25+
1826
/// <summary>
1927
/// Get all handler collections
2028
/// </summary>

Assets/Extensions/GenericMessagingSystem/Core/IMessageDomain.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// See the LICENSE file in the project root for more information.
33
// Created By Leo Pripos Marbun
44

5-
namespace NED.GenericMessaingSystem
5+
namespace NED.GenericMessagingSystem
66
{
77
/// <summary>
88
/// Base interface for message domain

Assets/Extensions/GenericMessagingSystem/Core/IMessageListener.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// See the LICENSE file in the project root for more information.
33
// Created By Leo Pripos Marbun
44

5-
namespace NED.GenericMessaingSystem
5+
namespace NED.GenericMessagingSystem
66
{
77
/// <summary>
88
/// Base interface for message listener

Assets/Extensions/GenericMessagingSystem/Sample/1-Debug/Scripts/GMSDebugMessageHandler.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using UnityEngine;
22

3-
namespace NED.GenericMessaingSystem.Sample
3+
namespace NED.GenericMessagingSystem.Sample
44
{
55
public class GMSDebugMessageHandler : MonoBehaviour, GMSIDebugMessage
66
{
@@ -22,4 +22,4 @@ public void DebugMessage(string message)
2222
Debug.Log(message);
2323
}
2424
}
25-
}
25+
}

Assets/Extensions/GenericMessagingSystem/Sample/1-Debug/Scripts/GMSDebugMessageManager.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
namespace NED.GenericMessaingSystem.Sample
1+
namespace NED.GenericMessagingSystem.Sample
22
{
33
public class GMSDebugMessageManager : BaseMessagingManager
44
{

Assets/Extensions/GenericMessagingSystem/Sample/1-Debug/Scripts/GMSDebugMessageSender.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using System.Diagnostics;
22
using UnityEngine;
33

4-
namespace NED.GenericMessaingSystem.Sample
4+
namespace NED.GenericMessagingSystem.Sample
55
{
66
public class GMSDebugMessageSender : MonoBehaviour
77
{

Assets/Extensions/GenericMessagingSystem/Sample/1-Debug/Scripts/GMSIDebugMessage.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
namespace NED.GenericMessaingSystem.Sample
1+
namespace NED.GenericMessagingSystem.Sample
22
{
33
public interface GMSIDebugMessage : IMessageListener
44
{

Assets/Extensions/GenericMessagingSystem/Sample/2-Tick/Scripts/GMSITickListener.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
namespace NED.GenericMessaingSystem.Sample
1+
namespace NED.GenericMessagingSystem.Sample
22
{
33
public interface GMSITickListener : IMessageListener
44
{

Assets/Extensions/GenericMessagingSystem/Sample/2-Tick/Scripts/GMSTickManager.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using UnityEngine;
22

3-
namespace NED.GenericMessaingSystem.Sample
3+
namespace NED.GenericMessagingSystem.Sample
44
{
55
public sealed class GMSTickManager : BaseMessagingManager
66
{

Assets/Extensions/GenericMessagingSystem/Sample/2-Tick/Scripts/GMSTickText.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using UnityEngine;
22
using UnityEngine.UI;
33

4-
namespace NED.GenericMessaingSystem.Sample
4+
namespace NED.GenericMessagingSystem.Sample
55
{
66
[RequireComponent(typeof(Text))]
77
public class GMSTickText : MonoBehaviour, GMSITickListener

README-ID.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Generic Messaging System
2+
------
3+
**Generic Messaging System** adalah messaging system untuk Unity game engine untuk menangani interaksi antar objek dengan menggunakan messaging yang menggunakan generic untuk menyimpan objek dari handler.
4+
5+
## Penggunaan
6+
1. Download *.unitypackage dari [Halaman Release](../../releases)
7+
2. Import ke project unity anda
8+
3. Buat kelas baru yang meng-extend kelas `BaseMessagingManager`
9+
4. Overite abstract method `BaseMessagingManager.CreateAllStorage()` dan `BaseMessagingManager.DestroyAllStorage()` dan dengan menggunakan fungsi dibawah ini untuk membuat/menghapus penyimpanan objek :
10+
```
11+
Kelas : BaseMessagingManager
12+
13+
public void CreateStorage<D, I>() where D : IMessageDomain where I : IMessageListener
14+
15+
public void DestroyStorage<D, I>() where D : IMessageDomain where I : IMessageListener
16+
```
17+
18+
5. Buat interface baru yang meng-extend `IMessageListener`
19+
6. Buat interface baru yang meng-extend `IMessageDomain` untuk membuat domain baru atau gunakan `GlobalDomain` yang telah ada
20+
7. Buat kelas baru yang mengimplementasikan `IMessageListener` sebagai kelas yang akan menangani message (handler)
21+
8. Tambah/hapus handler ke/dari manager dengan memanggil fungsi Add/Remove dari kelas yang meng-extend `BaseMessagingManager`:
22+
```
23+
Kelas : BaseMessagingManager
24+
25+
public void Broadcast<D, I>(Action<I> action) where D : IMessageDomain where I : IMessageListener
26+
27+
public IEnumerator BroadcastAsync<D, I>(Action<I> action) where D : IMessageDomain where I : IMessageListener
28+
```
29+
9. Broadcast message dengan menggunkan fungsi:
30+
```
31+
class : BaseMessagingManager
32+
33+
public void Broadcast<D, I>(Action<I> action) where D : IMessageDomain where I : IMessageListener
34+
35+
public IEnumerator BroadcastAsync<D, I>(Action<I> action) where D : IMessageDomain where I : IMessageListener
36+
```
37+
38+
Untuk lebih detail, silahkan liat pada contoh scene yang sudah ada.
39+
40+
## Contribution
41+
Silahkan baca [CONTRIBUTION.md](./CONTRIBUTION.md) untuk informasi lebih detail untuk ikut berkontribusi.
42+
43+
## Licenses
44+
Silahkan baca [LICENSE](./LICENSE) untuk informasi lebih tentang license.
45+
46+
## Bahasa
47+
* [README(ENGLISH)](./README.md)
48+
* [README(BAHASA)](./README-ID.md)

README.md

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,48 @@
11
# Generic Messaging System
22
------
3-
**Generic Messaging System** adalah messaging system for Unity game engine which implementing Generic class to store instance of handler.
3+
**Generic Messaging System** is messaging system for Unity game engine which implementing Generic class to store instance of handler.
44

55
## How to use
6-
1. Download *.unitypackage release from [Release Page](../../releases)
7-
2. Import to your Unity project
8-
3. Create New Class which extending BaseMessagingManager class
9-
4. Overite abstract method **BaseMessagingManager.CreateAllStorage()** and **BaseMessagingManager.DestroyAllStorage()** using method :
10-
6+
1. Download *.unitypackage from [Release Page](../../releases)
7+
2. Import to your unity project
8+
3. Create new class which extending `BaseMessagingManager` class
9+
4. Overite abstract method `BaseMessagingManager.CreateAllStorage()` and `BaseMessagingManager.DestroyAllStorage()` and using method bellow to create/destroy storage :
1110
```
12-
BaseMessagingManager.CreateStorage<D, I>() where D : IMessageDomain where I : IMessageListener
11+
class : BaseMessagingManager
12+
13+
public void CreateStorage<D, I>() where D : IMessageDomain where I : IMessageListener
1314

14-
BaseMessagingManager.DestroyStorage<D, I>() where D : IMessageDomain where I : IMessageListener
15+
public void DestroyStorage<D, I>() where D : IMessageDomain where I : IMessageListener
1516
```
1617

17-
5. Create Interface which extending IMessageListener
18-
6. Create Interface which extending IMessageDomain or use GlobalDomain
19-
7. Create new class which extend IMessageListener and Add or Remove its instrance using :
20-
18+
5. Create interface which extending `IMessageListener`
19+
6. Create interface which extending `IMessageDomain` to create new domain or use ` GlobalDomain`
20+
7. Create new class which extend `IMessageListener` as handler class
21+
8. Add/Remove instance of handler using:
22+
```
23+
class : BaseMessagingManager
24+
25+
public void Add<D, I>(I handler) where D : IMessageDomain where I : IMessageListener
26+
27+
public void Remove<D, I>(I handler) where D : IMessageDomain where I : IMessageListener
2128
```
22-
BaseMessagingManager.Add<D, I>(I handler) where D : IMessageDomain where I : IMessageListener
29+
9. Broadcast message using:
30+
```
31+
class : BaseMessagingManager
32+
33+
public void Broadcast<D, I>(Action<I> action) where D : IMessageDomain where I : IMessageListener
2334

24-
BaseMessagingManager.Remove<D, I>(I handler) where D : IMessageDomain where I : IMessageListener
35+
public IEnumerator BroadcastAsync<D, I>(Action<I> action) where D : IMessageDomain where I : IMessageListener
2536
```
2637

27-
Please look at Sample for more detail
38+
Please look at sample for more detail.
2839

2940
## Contribution
3041
Please read [CONTRIBUTION.md](./CONTRIBUTION.md) file for detail about contribution.
3142

3243
## Licenses
3344
Please read [LICENSE](./LICENSE) file for detail about lincese.
3445

46+
## Language
47+
* [README(ENGLISH)](./README.md)
48+
* [README(BAHASA)](./README-ID.md)

0 commit comments

Comments
 (0)