protected vp_EventHandler.ScriptMethods GetScriptMethods(object target) { vp_EventHandler.ScriptMethods scriptMethods; if (!vp_EventHandler.m_StoredScriptTypes.TryGetValue(target.GetType(), out scriptMethods)) { scriptMethods = new vp_EventHandler.ScriptMethods(target.GetType()); vp_EventHandler.m_StoredScriptTypes.Add(target.GetType(), scriptMethods); } return(scriptMethods); }
public void Register(object target) { if (target == null) { Debug.LogError("Error: (" + this + ") Target object was null."); return; } if (!this.m_Initialized) { this.m_PendingRegistrants.Add(target); return; } vp_EventHandler.ScriptMethods scriptMethods = this.GetScriptMethods(target); if (scriptMethods == null) { Debug.LogError(string.Concat(new object[] { "Error: (", this, ") could not get script methods for '", target, "'." })); return; } foreach (MethodInfo current in scriptMethods.Events) { vp_Event vp_Event; if (!this.m_HandlerEvents.TryGetValue(current.Name, out vp_Event)) { Debug.LogWarning(string.Concat(new object[] { "Warning: (", current.DeclaringType, ") Event handler can't register method '", current.Name, "' because '", base.GetType(), "' has not (successfully) registered any event named '", current.Name.Substring(current.Name.Substring(0, current.Name.IndexOf('_', 4) + 1).Length) })); } else { int num; vp_Event.Prefixes.TryGetValue(current.Name.Substring(0, current.Name.IndexOf('_', 4) + 1), out num); if (this.CompareMethodSignatures(current, vp_Event.GetParameterType(num), vp_Event.GetReturnType(num))) { vp_Event.Register(target, current.Name, num); } } } }