public void RemoveListener(IPlayerManagerListener varListener) { if (varListener == null || mListeners == null) { return; } mListeners.Remove(varListener); }
public void AddListener(IPlayerManagerListener varListener) { if (mListeners == null) { mListeners = new List <IPlayerManagerListener>(); } if (varListener == null) { return; } if (mListeners.Contains(varListener)) { return; } mListeners.Add(varListener); }
public void NotifyListener(IPlayerManagerListenerEventType varEvtType, params object[] varArgs) { if (mListeners == null || mListeners.Count == 0) { return; } for (int i = 0; i < mListeners.Count; i++) { IPlayerManagerListener listener = mListeners[i]; if (listener == null) { continue; } object arg = null; switch (varEvtType) { case IPlayerManagerListenerEventType.OnPlayerLogin: if (varArgs != null || varArgs.Length > 0) { arg = varArgs[0]; } listener.OnPlayerLogin(arg as Player); break; case IPlayerManagerListenerEventType.OnPlayerLogout: if (varArgs != null || varArgs.Length > 0) { arg = varArgs[0]; } listener.OnPlayerLogout(arg as Player); break; case IPlayerManagerListenerEventType.OnPlayerOffline: if (varArgs != null || varArgs.Length > 0) { arg = varArgs[0]; } listener.OnPlayerOffline(arg as Player); break; default: break; } } }