/// <summary> /// Finds the index of the subscriber /// </summary> /// <param name="f">Function to find</param> /// <returns></returns> public static int FindSubscriber(__eHandle <object, __eArg <_T> > f) { for (int i = 0; i < Subscribers.Count; i++) { if (f == Subscribers[i]) { return(i); } } return(-1); }
/// <summary> /// Creates a new Subscriber and adds it to storage /// </summary> /// <param name="f">function to subscribe</param> /// <param name="MSA">Max Subscriber amount</param> /// <returns></returns> public static int CreateSubscriber(object sender, __eHandle <object, __eArg <_T> > f) { if (f == null) { __eventSystem.LogEvent(sender.ToString(), "SUBSCRIBING FAILED :: ID=" + (Subscribers.Count - 1) + 1 + " :: NAME=" + f.Method.Name); UnityConsole.Instance.LogConsole("EHS - OBJ=" + sender.ToString() + "\n\t :: SUBSCRIBING FAILED :: ID=" + (Subscribers.Count - 1) + " :: NAME=" + f.Method.Name + " :: Time=" + Time.time + "\n"); return(-1); } Subscribers.Add(f); __eventSystem.LogEvent(sender.ToString(), "SUBSCRIBING :: ID=" + (Subscribers.Count - 1) + " :: NAME=" + f.Method.Name); UnityConsole.Instance.LogConsole("EHS - OBJ=" + sender.ToString() + "\n\t :: SUBSCRIBING :: ID=" + (Subscribers.Count - 1) + " :: NAME=" + f.Method.Name + " :: Time=" + Time.time + "\n"); return(Subscribers.Count - 1); }
/// <summary> /// Raises a new function /// </summary> /// <param name="f">function to raise</param> public static int Raise(object sender, __eHandle <object, __eArg <_T> > f) { int i = Raise(CreateSubscriber(sender, f)); if (i == -1) { __eventSystem.LogEvent(sender.ToString(), "RAISE FAILED :: NAME=" + f.Method.Name + " :: FROM=" + f.Target.ToString()); UnityConsole.Instance.LogConsole("EHS - OBJ=" + sender.ToString() + "\n\t :: RAISE FAILED :: NAME=" + f.Method.Name + " :: FROM=" + f.Target.ToString() + " :: Time=" + Time.time + "\n"); return(i); } __eventSystem.LogEvent(sender.ToString(), "RAISE :: NAME=" + f.Method.Name + " :: FROM=" + f.Target.ToString()); UnityConsole.Instance.LogConsole("EHS - OBJ=" + sender.ToString() + "\n\t :: RAISE :: NAME=" + f.Method.Name + " :: FROM=" + f.Target.ToString() + " :: Time=" + Time.time + "\n"); return(i); }
/// <summary> /// Creates a new Subscriber and adds it to storage /// </summary> /// <param name="f">function to subscribe</param> /// <param name="MSA">Max Subscriber amount</param> /// <returns></returns> public static int CreateSubscriber(__eHandle <object, __eArg <_T> > f) { if (f == null) { #if UNITY_EDITOR EHS_Manager.LogMessage("[SUBSCRIBING FAILED, ID=" + (Subscribers.Count - 1) + 1 + ", NAME=" + f.Method.Name + "]"); #endif return(-1); } Subscribers.Add(f); #if UNITY_EDITOR EHS_Manager.LogMessage("[SUBSCRIBING ID=" + (Subscribers.Count - 1) + ", NAME=" + f.Method.Name + "]"); #endif return(Subscribers.Count - 1); }
/// <summary> /// Raises a new function /// </summary> /// <param name="f">function to raise</param> public static int Raise(__eHandle <object, __eArg <_T> > f) { int i = Raise(CreateSubscriber(f)); if (i == -1) { #if UNITY_EDITOR EHS_Manager.LogMessage("[RAISING FAILED, NAME=" + f.Method.Name + ", FROM=" + f.Target.ToString() + "]"); #endif return(i); } #if UNITY_EDITOR EHS_Manager.LogMessage("[RAISING NAME=" + f.Method.Name + ", FROM=" + f.Target.ToString() + "]"); #endif return(i); }
/// <summary> /// Consumes a subscribed function /// </summary> /// <param name="f">function to consume</param> public static int Consume(__eHandle <object, __eArg <_T> > f) { return(Consume(FindSubscriber(f))); }