Advertisement
SimonDarksideJ

MU2D - Messaging manager additional conversation (pre-ui)

Aug 29th, 2015
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.24 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. public class MessagingManager : Singleton<MessagingManager>
  5. {
  6.     protected MessagingManager() { } // guarantee this will be always a singleton only - can't use the constructor!
  7.  
  8.     // public property for manager
  9.     private List<Action> subscribers = new List<Action>();
  10.     private List<Action<bool>> uiEventSubscribers = new List<Action<bool>>();
  11.     private List<Action<InventoryItem>> inventorySubscribers = new List<Action<InventoryItem>>();
  12.  
  13.     //New conversation event subscriber list
  14.     private List<Action> greandalSubscribers = new List<Action>();
  15.  
  16.     // Subscribe method for manager
  17.     public void Subscribe(Action subscriber)
  18.     {
  19.         if (subscribers != null)
  20.         {
  21.             subscribers.Add(subscriber);
  22.         }
  23.     }
  24.  
  25.     // Unsubscribe method for manager
  26.     public void UnSubscribe(Action subscriber)
  27.     {
  28.         if (subscribers != null)
  29.         {
  30.             subscribers.Remove(subscriber);
  31.         }
  32.     }
  33.  
  34.     // Clear subscribers method for manager
  35.     public void ClearAllSubscribers()
  36.     {
  37.         if (subscribers != null)
  38.         {
  39.             subscribers.Clear();
  40.         }
  41.     }
  42.  
  43.     public void Broadcast()
  44.     {
  45.         if (subscribers != null)
  46.         {
  47.             foreach (var subscriber in subscribers.ToArray())
  48.             {
  49.                 subscriber();
  50.             }
  51.         }
  52.     }
  53.  
  54. //New event handlers for new conversation    
  55.         // Subscribe method for manager
  56.     public void GreandalSubscribe(Action subscriber)
  57.     {
  58.         if (greandalSubscribers != null)
  59.         {
  60.             greandalSubscribers.Add(subscriber);
  61.         }
  62.     }
  63.  
  64.     // Unsubscribe method for manager
  65.     public void GreandalUnSubscribe(Action subscriber)
  66.     {
  67.         if (greandalSubscribers != null)
  68.         {
  69.             greandalSubscribers.Remove(subscriber);
  70.         }
  71.     }
  72.  
  73.     // Clear subscribers method for manager
  74.     public void GreandalClearAllSubscribers()
  75.     {
  76.         if (greandalSubscribers != null)
  77.         {
  78.             greandalSubscribers.Clear();
  79.         }
  80.     }
  81.  
  82.     public void GreandalBroadcast()
  83.     {
  84.         if (greandalSubscribers != null)
  85.         {
  86.             foreach (var subscriber in greandalSubscribers.ToArray())
  87.             {
  88.                 subscriber();
  89.             }
  90.         }
  91.     }
  92.  
  93.     // Subscribe method for manager
  94.     public void SubscribeUIEvent(Action<bool> subscriber)
  95.     {
  96.         if (uiEventSubscribers != null)
  97.         {
  98.             uiEventSubscribers.Add(subscriber);
  99.         }
  100.     }
  101.  
  102.     public void BroadcastUIEvent(bool uIVisible)
  103.     {
  104.         if (uiEventSubscribers != null)
  105.         {
  106.             foreach (var subscriber in uiEventSubscribers.ToArray())
  107.             {
  108.                 subscriber(uIVisible);
  109.             }
  110.         }
  111.     }
  112.  
  113.     // Unsubscribe method for UI manager
  114.     public void UnSubscribeUIEvent(Action<bool> subscriber)
  115.     {
  116.         if (uiEventSubscribers != null)
  117.         {
  118.             uiEventSubscribers.Remove(subscriber);
  119.         }
  120.     }
  121.  
  122.     // Clear subscribers method for manager
  123.     public void ClearAllUIEventSubscribers()
  124.     {
  125.         if (uiEventSubscribers != null)
  126.         {
  127.             uiEventSubscribers.Clear();
  128.         }
  129.     }
  130.  
  131.     // Subscribe method for Inventory manager
  132.     public void SubscribeInventoryEvent(Action<InventoryItem> subscriber)
  133.     {
  134.         if (inventorySubscribers != null)
  135.         {
  136.             inventorySubscribers.Add(subscriber);
  137.         }
  138.     }
  139.  
  140.     // Broadcast method for Inventory manager
  141.     public void BroadcastInventoryEvent(InventoryItem itemInUse)
  142.     {
  143.         foreach (var subscriber in inventorySubscribers)
  144.         {
  145.             subscriber(itemInUse);
  146.         }
  147.     }
  148.  
  149.     // Unsubscribe method for Inventory manager
  150.     public void UnSubscribeInventoryEvent(Action<InventoryItem> subscriber)
  151.     {
  152.         if (inventorySubscribers != null)
  153.         {
  154.             inventorySubscribers.Remove(subscriber);
  155.         }
  156.     }
  157.  
  158.     // Clear subscribers method for Inventory manager
  159.     public void ClearAllInventoryEventSubscribers()
  160.     {
  161.         if (inventorySubscribers != null)
  162.         {
  163.             inventorySubscribers.Clear();
  164.         }
  165.     }
  166.  
  167. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement