public XikeonBrClient() { Debug.WriteLine("XikeonBrClient initialized"); sync = new XikeonBrShared.Sync(OnSyncPropertyChange); sync.Notify = OnSyncNotify; baseEvents = new BaseEvents(); Tick += baseEvents.OnTick; Tick += baseEvents.CountDownTick; spawnManager = new SpawnManager(); Tick += spawnManager.OnTick; EventHandlers.Add("getMapDirectives", new Action <CallbackDelegate>(spawnManager.OnGetMapDirectives)); inventoryManager = new InventoryManager(); Tick += inventoryManager.OnTick; Tick += OnTick; EventHandlers.Add("onClientMapStart", new Action <string>(OnClientMapStart)); EventHandlers.Add("sendMotd", new Action <string>(ReceivedMotd)); EventHandlers.Add("playerSpawned", new Action <Player, Object, CallbackDelegate>(OnPlayerSpawned)); EventHandlers.Add("xbr:showNotification", new Action <string>(Notification.OnNotification)); EventHandlers.Add("xbr:showNotificationDetails", new Action <string, string, string, string>(Notification.OnNotificationDetails)); EventHandlers.Add("xbr:showNotificationDetailsPlayer", new Action <ExpandoObject, string, string, string, string>(Notification.OnNotificationDetails)); EventHandlers.Add("xbr:setTime", new Action <int, int, int>(OnSetTime)); EventHandlers.Add("xbr:freezePlayer", new Action <int, bool>(OnFreezePlayer)); EventHandlers.Add("xbr:playerRestart", new Action(OnPlayerRestart)); EventHandlers.Add("xbr:countdown", new Action <int>(OnCountdown)); EventHandlers.Add("xbr:sync", new Action <string, string, dynamic>(sync.HandleSyncEvent)); // EventHandlers.Add("xbr:onPlayerDied", new Action<int, double, double, double>(OnPlayerDied)); }
public static void AddListener <T, U>(EventID eventId, EventFun2 <T, U> listener) { BaseEvents baseEvents = null; if (!Instance.eventDictionary.TryGetValue(eventId, out baseEvents)) { baseEvents = new GenericEvents2 <T, U>(); Instance.eventDictionary.Add(eventId, baseEvents); } ((GenericEvents2 <T, U>)baseEvents).eventList.Add(listener); }