using System; using System.Collections.Generic; using System.Reflection; namespace UnityEngine.Events { // Token: 0x0200047F RID: 1151 internal class InvokableCallList { // Token: 0x17000D3E RID: 3390 // (get) Token: 0x060039C2 RID: 14786 RVA: 0x00064BC8 File Offset: 0x00062DC8 public int Count { get { return this.m_PersistentCalls.Count + this.m_RuntimeCalls.Count; } } // Token: 0x060039C3 RID: 14787 RVA: 0x00064BF4 File Offset: 0x00062DF4 public void AddPersistentInvokableCall(BaseInvokableCall call) { this.m_PersistentCalls.Add(call); this.m_NeedsUpdate = true; } // Token: 0x060039C4 RID: 14788 RVA: 0x00064C0C File Offset: 0x00062E0C public void AddListener(BaseInvokableCall call) { this.m_RuntimeCalls.Add(call); this.m_NeedsUpdate = true; } // Token: 0x060039C5 RID: 14789 RVA: 0x00064C24 File Offset: 0x00062E24 public void RemoveListener(object targetObj, MethodInfo method) { List list = new List(); for (int i = 0; i < this.m_RuntimeCalls.Count; i++) { if (this.m_RuntimeCalls[i].Find(targetObj, method)) { list.Add(this.m_RuntimeCalls[i]); } } this.m_RuntimeCalls.RemoveAll(new Predicate(list.Contains)); this.m_NeedsUpdate = true; } // Token: 0x060039C6 RID: 14790 RVA: 0x00064CA0 File Offset: 0x00062EA0 public void Clear() { this.m_RuntimeCalls.Clear(); this.m_NeedsUpdate = true; } // Token: 0x060039C7 RID: 14791 RVA: 0x00064CB8 File Offset: 0x00062EB8 public void ClearPersistent() { this.m_PersistentCalls.Clear(); this.m_NeedsUpdate = true; } // Token: 0x060039C8 RID: 14792 RVA: 0x00064CD0 File Offset: 0x00062ED0 public void Invoke(object[] parameters) { if (this.m_NeedsUpdate) { this.m_ExecutingCalls.Clear(); this.m_ExecutingCalls.AddRange(this.m_PersistentCalls); this.m_ExecutingCalls.AddRange(this.m_RuntimeCalls); this.m_NeedsUpdate = false; } for (int i = 0; i < this.m_ExecutingCalls.Count; i++) { this.m_ExecutingCalls[i].Invoke(parameters); } } // Token: 0x0400118A RID: 4490 private readonly List m_PersistentCalls = new List(); // Token: 0x0400118B RID: 4491 private readonly List m_RuntimeCalls = new List(); // Token: 0x0400118C RID: 4492 private readonly List m_ExecutingCalls = new List(); // Token: 0x0400118D RID: 4493 private bool m_NeedsUpdate = true; } }