using System; using System.Collections.Generic; using UnityEngine; // Token: 0x0200001F RID: 31 public class CollectCharacters : MonoBehaviour { // Token: 0x06000485 RID: 1157 RVA: 0x000671DB File Offset: 0x000653DB private void Start() { Links.x.characterCollector = this; this.tr = base.transform; base.gameObject.SetActive(false); } // Token: 0x06000486 RID: 1158 RVA: 0x00067200 File Offset: 0x00065400 public void SetSpherePosition(Vector3 pos) { this.tr.position = pos; } // Token: 0x06000487 RID: 1159 RVA: 0x00067210 File Offset: 0x00065410 private void OnTriggerEnter(Collider other) { GameObject gameObject = other.gameObject; this.AddCharacter(gameObject); } // Token: 0x06000488 RID: 1160 RVA: 0x0006722B File Offset: 0x0006542B public void AddCharacter(GameObject go) { if (this.charactersGo.IndexOf(go) == -1) { this.toAdd.Add(go); this.changingCharacters = true; } } // Token: 0x06000489 RID: 1161 RVA: 0x0006724F File Offset: 0x0006544F public void SwitchBlock() { this.charactersGo.Clear(); this.characters.Clear(); } // Token: 0x0600048A RID: 1162 RVA: 0x00067268 File Offset: 0x00065468 public void LateAddCharacter() { foreach (GameObject gameObject in this.toAdd) { if (gameObject) { this.charactersGo.Add(gameObject); this.characters.Add(gameObject.GetComponent()); } } this.toAdd.Clear(); this.UpdateCharacterNumbers(); } // Token: 0x0600048B RID: 1163 RVA: 0x000672EC File Offset: 0x000654EC public void LateRemoveCharacter() { int count = this.characters.Count; for (int i = 0; i < count; i++) { if (!this.characters[i]) { this.toRemove.Add(null); } else if (this.characters[i].inactive) { this.toRemove.Add(this.charactersGo[i]); } } foreach (GameObject gameObject in this.toRemove) { int num = this.charactersGo.IndexOf(gameObject); if (num > -1) { this.charactersGo.RemoveAt(num); if (this.characters[num]) { this.characters[num].body.SetMask(false); } this.characters.RemoveAt(num); } } this.toRemove.Clear(); this.UpdateCharacterNumbers(); } // Token: 0x0600048C RID: 1164 RVA: 0x00067408 File Offset: 0x00065608 public void RemoveCharacter(GameObject go) { if (this.charactersGo.IndexOf(go) > -1) { this.toRemove.Add(go); this.changingCharacters = true; } } // Token: 0x0600048D RID: 1165 RVA: 0x0006742C File Offset: 0x0006562C public void UpdateCharacterNumbers() { int count = this.characters.Count; for (int i = 0; i < count; i++) { if (this.characters[i] && this.characters[i].body) { this.characters[i].body.SetMaskNumber(((float)i + 2f) * 1f); } } } // Token: 0x0600048E RID: 1166 RVA: 0x000674A0 File Offset: 0x000656A0 private void OnTriggerExit(Collider other) { GameObject gameObject = other.gameObject; this.RemoveCharacter(gameObject); } // Token: 0x0400074F RID: 1871 public List characters = new List(); // Token: 0x04000750 RID: 1872 public List charactersGo = new List(); // Token: 0x04000751 RID: 1873 private List toRemove = new List(); // Token: 0x04000752 RID: 1874 private List toAdd = new List(); // Token: 0x04000753 RID: 1875 public Transform tr; // Token: 0x04000754 RID: 1876 public bool changingCharacters; }