Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- public class MessagingManager : Singleton<MessagingManager>
- {
- protected MessagingManager() { } // guarantee this will be always a singleton only - can't use the constructor!
- // public property for manager
- private List<Action> subscribers = new List<Action>();
- private List<Action<bool>> uiEventSubscribers = new List<Action<bool>>();
- private List<Action<InventoryItem>> inventorySubscribers = new List<Action<InventoryItem>>();
- //New conversation event subscriber list
- private List<Action> greandalSubscribers = new List<Action>();
- // Subscribe method for manager
- public void Subscribe(Action subscriber)
- {
- if (subscribers != null)
- {
- subscribers.Add(subscriber);
- }
- }
- // Unsubscribe method for manager
- public void UnSubscribe(Action subscriber)
- {
- if (subscribers != null)
- {
- subscribers.Remove(subscriber);
- }
- }
- // Clear subscribers method for manager
- public void ClearAllSubscribers()
- {
- if (subscribers != null)
- {
- subscribers.Clear();
- }
- }
- public void Broadcast()
- {
- if (subscribers != null)
- {
- foreach (var subscriber in subscribers.ToArray())
- {
- subscriber();
- }
- }
- }
- //New event handlers for new conversation
- // Subscribe method for manager
- public void GreandalSubscribe(Action subscriber)
- {
- if (greandalSubscribers != null)
- {
- greandalSubscribers.Add(subscriber);
- }
- }
- // Unsubscribe method for manager
- public void GreandalUnSubscribe(Action subscriber)
- {
- if (greandalSubscribers != null)
- {
- greandalSubscribers.Remove(subscriber);
- }
- }
- // Clear subscribers method for manager
- public void GreandalClearAllSubscribers()
- {
- if (greandalSubscribers != null)
- {
- greandalSubscribers.Clear();
- }
- }
- public void GreandalBroadcast()
- {
- if (greandalSubscribers != null)
- {
- foreach (var subscriber in greandalSubscribers.ToArray())
- {
- subscriber();
- }
- }
- }
- // Subscribe method for manager
- public void SubscribeUIEvent(Action<bool> subscriber)
- {
- if (uiEventSubscribers != null)
- {
- uiEventSubscribers.Add(subscriber);
- }
- }
- public void BroadcastUIEvent(bool uIVisible)
- {
- if (uiEventSubscribers != null)
- {
- foreach (var subscriber in uiEventSubscribers.ToArray())
- {
- subscriber(uIVisible);
- }
- }
- }
- // Unsubscribe method for UI manager
- public void UnSubscribeUIEvent(Action<bool> subscriber)
- {
- if (uiEventSubscribers != null)
- {
- uiEventSubscribers.Remove(subscriber);
- }
- }
- // Clear subscribers method for manager
- public void ClearAllUIEventSubscribers()
- {
- if (uiEventSubscribers != null)
- {
- uiEventSubscribers.Clear();
- }
- }
- // Subscribe method for Inventory manager
- public void SubscribeInventoryEvent(Action<InventoryItem> subscriber)
- {
- if (inventorySubscribers != null)
- {
- inventorySubscribers.Add(subscriber);
- }
- }
- // Broadcast method for Inventory manager
- public void BroadcastInventoryEvent(InventoryItem itemInUse)
- {
- foreach (var subscriber in inventorySubscribers)
- {
- subscriber(itemInUse);
- }
- }
- // Unsubscribe method for Inventory manager
- public void UnSubscribeInventoryEvent(Action<InventoryItem> subscriber)
- {
- if (inventorySubscribers != null)
- {
- inventorySubscribers.Remove(subscriber);
- }
- }
- // Clear subscribers method for Inventory manager
- public void ClearAllInventoryEventSubscribers()
- {
- if (inventorySubscribers != null)
- {
- inventorySubscribers.Clear();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement