|
|
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
-
- public class NotificationServer : MonoBehaviour
- {
- static Dictionary<string, List<Action>> notifications = new Dictionary<string, List<Action>>();
- static Dictionary<string, List<Action<object>>> notificationsWithArgument = new Dictionary<string, List<Action<object>>>();
-
- static public void register(string key, Action action)
- {
- if (!notifications.ContainsKey(key))
- notifications[key] = new List<Action>();
- if (!notifications[key].Contains(action))
- notifications[key].Add(action);
- }
-
- static public void unregister(string key, Action action)
- {
- if (!notifications.ContainsKey(key))
- return;
- if (!notifications[key].Contains(action))
- return;
- notifications[key].Remove(action);
- }
-
- static public void notify(string key)
- {
- if (!notifications.ContainsKey(key))
- return;
- for (int i=0; i<notifications[key].Count; i++)
- notifications[key][i]();
- }
-
- static public void register(string key, Action<object> action)
- {
- if (!notificationsWithArgument.ContainsKey(key))
- notificationsWithArgument[key] = new List<Action<object>>();
- if (!notificationsWithArgument[key].Contains(action))
- notificationsWithArgument[key].Add(action);
- }
-
- static public void unregister(string key, Action<object> action)
- {
- if (!notificationsWithArgument.ContainsKey(key))
- return;
- if (!notificationsWithArgument[key].Contains(action))
- return;
- notificationsWithArgument[key].Remove(action);
- }
-
- static public void notify(string key, object argument)
- {
- if (!notificationsWithArgument.ContainsKey(key))
- return;
- for (int i=0; i<notificationsWithArgument[key].Count; i++)
- notificationsWithArgument[key][i](argument);
- }
-
- public void doNotify(string key)
- {
- notify(key);
- }
-
- public void doNotify(string key, string argument)
- {
- notify(key, argument);
- }
- }
-
|