using System; using System.Collections.Generic; using UnityEngine.Serialization; namespace UnityEngine.Events { // Token: 0x0200047E RID: 1150 [Serializable] internal class PersistentCallGroup { // Token: 0x060039AF RID: 14767 RVA: 0x0006485C File Offset: 0x00062A5C public PersistentCallGroup() { this.m_Calls = new List(); } // Token: 0x17000D3D RID: 3389 // (get) Token: 0x060039B0 RID: 14768 RVA: 0x00064870 File Offset: 0x00062A70 public int Count { get { return this.m_Calls.Count; } } // Token: 0x060039B1 RID: 14769 RVA: 0x00064890 File Offset: 0x00062A90 public PersistentCall GetListener(int index) { return this.m_Calls[index]; } // Token: 0x060039B2 RID: 14770 RVA: 0x000648B4 File Offset: 0x00062AB4 public IEnumerable GetListeners() { return this.m_Calls; } // Token: 0x060039B3 RID: 14771 RVA: 0x000648D0 File Offset: 0x00062AD0 public void AddListener() { this.m_Calls.Add(new PersistentCall()); } // Token: 0x060039B4 RID: 14772 RVA: 0x000648E4 File Offset: 0x00062AE4 public void AddListener(PersistentCall call) { this.m_Calls.Add(call); } // Token: 0x060039B5 RID: 14773 RVA: 0x000648F4 File Offset: 0x00062AF4 public void RemoveListener(int index) { this.m_Calls.RemoveAt(index); } // Token: 0x060039B6 RID: 14774 RVA: 0x00064904 File Offset: 0x00062B04 public void Clear() { this.m_Calls.Clear(); } // Token: 0x060039B7 RID: 14775 RVA: 0x00064914 File Offset: 0x00062B14 public void RegisterEventPersistentListener(int index, Object targetObj, string methodName) { PersistentCall listener = this.GetListener(index); listener.RegisterPersistentListener(targetObj, methodName); listener.mode = PersistentListenerMode.EventDefined; } // Token: 0x060039B8 RID: 14776 RVA: 0x0006493C File Offset: 0x00062B3C public void RegisterVoidPersistentListener(int index, Object targetObj, string methodName) { PersistentCall listener = this.GetListener(index); listener.RegisterPersistentListener(targetObj, methodName); listener.mode = PersistentListenerMode.Void; } // Token: 0x060039B9 RID: 14777 RVA: 0x00064964 File Offset: 0x00062B64 public void RegisterObjectPersistentListener(int index, Object targetObj, Object argument, string methodName) { PersistentCall listener = this.GetListener(index); listener.RegisterPersistentListener(targetObj, methodName); listener.mode = PersistentListenerMode.Object; listener.arguments.unityObjectArgument = argument; } // Token: 0x060039BA RID: 14778 RVA: 0x00064998 File Offset: 0x00062B98 public void RegisterIntPersistentListener(int index, Object targetObj, int argument, string methodName) { PersistentCall listener = this.GetListener(index); listener.RegisterPersistentListener(targetObj, methodName); listener.mode = PersistentListenerMode.Int; listener.arguments.intArgument = argument; } // Token: 0x060039BB RID: 14779 RVA: 0x000649CC File Offset: 0x00062BCC public void RegisterFloatPersistentListener(int index, Object targetObj, float argument, string methodName) { PersistentCall listener = this.GetListener(index); listener.RegisterPersistentListener(targetObj, methodName); listener.mode = PersistentListenerMode.Float; listener.arguments.floatArgument = argument; } // Token: 0x060039BC RID: 14780 RVA: 0x00064A00 File Offset: 0x00062C00 public void RegisterStringPersistentListener(int index, Object targetObj, string argument, string methodName) { PersistentCall listener = this.GetListener(index); listener.RegisterPersistentListener(targetObj, methodName); listener.mode = PersistentListenerMode.String; listener.arguments.stringArgument = argument; } // Token: 0x060039BD RID: 14781 RVA: 0x00064A34 File Offset: 0x00062C34 public void RegisterBoolPersistentListener(int index, Object targetObj, bool argument, string methodName) { PersistentCall listener = this.GetListener(index); listener.RegisterPersistentListener(targetObj, methodName); listener.mode = PersistentListenerMode.Bool; listener.arguments.boolArgument = argument; } // Token: 0x060039BE RID: 14782 RVA: 0x00064A68 File Offset: 0x00062C68 public void UnregisterPersistentListener(int index) { PersistentCall listener = this.GetListener(index); listener.UnregisterPersistentListener(); } // Token: 0x060039BF RID: 14783 RVA: 0x00064A84 File Offset: 0x00062C84 public void RemoveListeners(Object target, string methodName) { List list = new List(); for (int i = 0; i < this.m_Calls.Count; i++) { if (this.m_Calls[i].target == target && this.m_Calls[i].methodName == methodName) { list.Add(this.m_Calls[i]); } } this.m_Calls.RemoveAll(new Predicate(list.Contains)); } // Token: 0x060039C0 RID: 14784 RVA: 0x00064B18 File Offset: 0x00062D18 public void Initialize(InvokableCallList invokableList, UnityEventBase unityEventBase) { foreach (PersistentCall persistentCall in this.m_Calls) { if (persistentCall.IsValid()) { BaseInvokableCall runtimeCall = persistentCall.GetRuntimeCall(unityEventBase); if (runtimeCall != null) { invokableList.AddPersistentInvokableCall(runtimeCall); } } } } // Token: 0x04001189 RID: 4489 [FormerlySerializedAs("m_Listeners")] [SerializeField] private List m_Calls; } }