public static ushort getAnimal(AnimalSpawnpoint spawn) { return(LevelAnimals.getAnimal(spawn.type)); }
// Token: 0x0600270A RID: 9994 RVA: 0x000E805C File Offset: 0x000E645C private void onLevelLoaded(int level) { if (level > Level.SETUP) { this.seq = 0u; AnimalManager._animals = new List <Animal>(); AnimalManager._packs = null; AnimalManager.updates = 0; AnimalManager.tickIndex = 0; AnimalManager._tickingAnimals = new List <Animal>(); if (Provider.isServer) { AnimalManager._packs = new List <PackInfo>(); if (LevelAnimals.spawns.Count > 0) { for (int i = 0; i < LevelAnimals.spawns.Count; i++) { AnimalSpawnpoint animalSpawnpoint = LevelAnimals.spawns[i]; int num = -1; for (int j = AnimalManager.packs.Count - 1; j >= 0; j--) { List <AnimalSpawnpoint> spawns = AnimalManager.packs[j].spawns; for (int k = 0; k < spawns.Count; k++) { AnimalSpawnpoint animalSpawnpoint2 = spawns[k]; if ((animalSpawnpoint2.point - animalSpawnpoint.point).sqrMagnitude < 256f) { if (num == -1) { spawns.Add(animalSpawnpoint); } else { List <AnimalSpawnpoint> spawns2 = AnimalManager.packs[num].spawns; for (int l = 0; l < spawns2.Count; l++) { spawns.Add(spawns2[l]); } AnimalManager.packs.RemoveAtFast(num); } num = j; break; } } } if (num == -1) { PackInfo packInfo = new PackInfo(); packInfo.spawns.Add(animalSpawnpoint); AnimalManager.packs.Add(packInfo); } } List <AnimalManager.ValidAnimalSpawnsInfo> list = new List <AnimalManager.ValidAnimalSpawnsInfo>(); for (int m = 0; m < AnimalManager.packs.Count; m++) { PackInfo packInfo2 = AnimalManager.packs[m]; List <AnimalSpawnpoint> list2 = new List <AnimalSpawnpoint>(); for (int n = 0; n < packInfo2.spawns.Count; n++) { list2.Add(packInfo2.spawns[n]); } list.Add(new AnimalManager.ValidAnimalSpawnsInfo { spawns = list2, pack = packInfo2 }); } while ((long)AnimalManager.animals.Count < (long)((ulong)AnimalManager.maxInstances) && list.Count > 0) { int index = UnityEngine.Random.Range(0, list.Count); AnimalManager.ValidAnimalSpawnsInfo validAnimalSpawnsInfo = list[index]; int index2 = UnityEngine.Random.Range(0, validAnimalSpawnsInfo.spawns.Count); AnimalSpawnpoint animalSpawnpoint3 = validAnimalSpawnsInfo.spawns[index2]; validAnimalSpawnsInfo.spawns.RemoveAt(index2); if (validAnimalSpawnsInfo.spawns.Count == 0) { list.RemoveAt(index); } Vector3 point = animalSpawnpoint3.point; point.y += 0.1f; ushort id; if (validAnimalSpawnsInfo.pack.animals.Count > 0) { id = validAnimalSpawnsInfo.pack.animals[0].id; } else { id = LevelAnimals.getAnimal(animalSpawnpoint3); } Animal animal = this.addAnimal(id, point, UnityEngine.Random.Range(0f, 360f), false); if (animal != null) { animal.pack = validAnimalSpawnsInfo.pack; validAnimalSpawnsInfo.pack.animals.Add(animal); } } for (int num2 = AnimalManager.packs.Count - 1; num2 >= 0; num2--) { PackInfo packInfo3 = AnimalManager.packs[num2]; if (packInfo3.animals.Count <= 0) { AnimalManager.packs.RemoveAt(num2); } } } } } }