public void RebuildMap() { instance = this; map.Clear(); CollisionAudioSurfSurfConfig[] componentsInChildren = runtimeConfigs.GetComponentsInChildren <CollisionAudioSurfSurfConfig>(); for (int i = 0; i < componentsInChildren.Length; i++) { UnityEngine.Object.DestroyImmediate(componentsInChildren[i].gameObject); } Array values = Enum.GetValues(typeof(SurfaceType)); for (int j = 0; j < values.Length; j++) { SurfaceType surfaceType = (SurfaceType)values.GetValue(j); if (surfaceType == SurfaceType.Unknown) { continue; } Dictionary <SurfaceType, CollisionAudioSurfSurfConfig> dictionary = new Dictionary <SurfaceType, CollisionAudioSurfSurfConfig>(); map[surfaceType] = dictionary; for (int k = 0; k < values.Length; k++) { SurfaceType surfaceType2 = (SurfaceType)values.GetValue(k); if (surfaceType2 != 0) { dictionary[surfaceType2] = null; } } } ushort num = 0; configIdMap.Clear(); CollisionAudioSurfSurfConfig[] componentsInChildren2 = GetComponentsInChildren <CollisionAudioSurfSurfConfig>(); foreach (CollisionAudioSurfSurfConfig cfg in componentsInChildren2) { AddCofigToMap(cfg); } foreach (CollisionAudioSurfSurfConfig collisionAudioSurfSurfConfig in componentsInChildren2) { if (collisionAudioSurfSurfConfig.isDefault) { Dictionary <SurfaceType, CollisionAudioSurfSurfConfig> dictionary2 = map[collisionAudioSurfSurfConfig.surf1]; foreach (SurfaceType item in new List <SurfaceType>(dictionary2.Keys)) { if (dictionary2[item] != null) { CollisionAudioSurfSurfConfig collisionAudioSurfSurfConfig2 = dictionary2[item]; if (collisionAudioSurfSurfConfig2.hit != null) { collisionAudioSurfSurfConfig2.hit.netId = num++; configIdMap[collisionAudioSurfSurfConfig2.hit.netId] = collisionAudioSurfSurfConfig2.hit; } if (collisionAudioSurfSurfConfig2.slide != null) { collisionAudioSurfSurfConfig2.slide.netId = num++; configIdMap[collisionAudioSurfSurfConfig2.slide.netId] = collisionAudioSurfSurfConfig2.slide; } } if (dictionary2[item] == null && item != SurfaceType.RagdollBall) { CollisionAudioSurfSurfConfig collisionAudioSurfSurfConfig3 = new GameObject().AddComponent <CollisionAudioSurfSurfConfig>(); collisionAudioSurfSurfConfig3.surf1 = collisionAudioSurfSurfConfig.surf1; collisionAudioSurfSurfConfig3.surf2 = item; collisionAudioSurfSurfConfig3.link = collisionAudioSurfSurfConfig.controlConfig; collisionAudioSurfSurfConfig3.name = $"{collisionAudioSurfSurfConfig3.surf1}{collisionAudioSurfSurfConfig3.surf2}Cloned{collisionAudioSurfSurfConfig.name}"; collisionAudioSurfSurfConfig3.transform.SetParent(runtimeConfigs.transform, worldPositionStays: false); AddCofigToMap(collisionAudioSurfSurfConfig3); } } } } }
private void OnEnable() { instance = this; RebuildMap(); }