public void PlayBreakAudio(BasePart breakingPart) { AudioManager.AudioMaterial audioMaterial = breakingPart.AudioMaterial; AudioSource[] array; if (audioMaterial != AudioManager.AudioMaterial.Metal) { if (audioMaterial != AudioManager.AudioMaterial.Wood) { array = null; } else { array = null; //WPFMonoBehaviour.gameData.commonAudioCollection.collisionWoodDestroy; } } else { array = null; //WPFMonoBehaviour.gameData.commonAudioCollection.collisionMetalBreak; } if (array != null) { //Singleton<AudioManager>.Instance.SpawnOneShotEffect(array, breakingPart.transform.position); } }
protected void PlayCollisionSFX(Collision collisionData) { AudioSource[] array = null; AudioSource[] array2 = null; AudioManager.AudioMaterial audioMaterial = this.audioMaterial; if (audioMaterial != AudioManager.AudioMaterial.Metal) { if (audioMaterial != AudioManager.AudioMaterial.Wood) { array = null; array2 = null; } else { array = WPFMonoBehaviour.gameData.commonAudioCollection.collisionWoodHit; array2 = WPFMonoBehaviour.gameData.commonAudioCollection.collisionWoodDamage; } } else { array = WPFMonoBehaviour.gameData.commonAudioCollection.collisionMetalHit; array2 = WPFMonoBehaviour.gameData.commonAudioCollection.collisionMetalDamage; } if (array != null && array2 != null) { float num = 0f; Vector3 soundPosition = Vector3.zero; IEnumerator enumerator = collisionData.GetEnumerator(); try { while (enumerator.MoveNext()) { object obj = enumerator.Current; ContactPoint contactPoint = (ContactPoint)obj; float num2 = Vector3.Dot(collisionData.relativeVelocity, contactPoint.normal); if (num2 > num) { num = num2; soundPosition = contactPoint.point; } } } finally { IDisposable disposable; if ((disposable = (enumerator as IDisposable)) != null) { disposable.Dispose(); } } if (num > 8f) { Singleton <AudioManager> .Instance.SpawnOneShotEffect(array2, soundPosition); this.m_lastTimePlayedSFX = Time.time; } else if (num > 2.5f) { AudioSource audioSource = Singleton <AudioManager> .Instance.SpawnOneShotEffect(array, soundPosition); this.m_lastTimePlayedSFX = Time.time; if (audioSource) { audioSource.volume = (num - 2f) / 8f; } } } }
public void PlayCollisionAudio(BasePart collisionPart, Collision collisionData) { if (collisionData.relativeVelocity.magnitude < 2.5f) { return; } AudioSource[] array = null; AudioSource[] array2 = null; AudioManager.AudioMaterial audioMaterial = collisionPart.AudioMaterial; if (audioMaterial != AudioManager.AudioMaterial.Metal) { if (audioMaterial != AudioManager.AudioMaterial.Wood) { array = null; array2 = null; } else { array = WPFMonoBehaviour.gameData.commonAudioCollection.collisionWoodHit; array2 = WPFMonoBehaviour.gameData.commonAudioCollection.collisionWoodDamage; } } else { array = WPFMonoBehaviour.gameData.commonAudioCollection.collisionMetalHit; array2 = WPFMonoBehaviour.gameData.commonAudioCollection.collisionMetalDamage; } float num = 1f; if (this is GoldenPig) { array = WPFMonoBehaviour.gameData.commonAudioCollection.goldenPigHit; array2 = array; num = 1.5f; } if (array != null && array2 != null) { float num2 = 0f; Vector3 soundPosition = Vector3.zero; IEnumerator enumerator = collisionData.GetEnumerator(); try { while (enumerator.MoveNext()) { object obj = enumerator.Current; ContactPoint contactPoint = (ContactPoint)obj; float num3 = Vector3.Dot(collisionData.relativeVelocity, contactPoint.normal); if (num3 > num2) { num2 = num3 * num; soundPosition = contactPoint.point; } } } finally { IDisposable disposable; if ((disposable = (enumerator as IDisposable)) != null) { disposable.Dispose(); } } if (num2 > 8f) { //Singleton<AudioManager>.Instance.SpawnOneShotEffect(array2, soundPosition); } else if (num2 > 2.5f) { //AudioSource audioSource = Singleton<AudioManager>.Instance.SpawnOneShotEffect(array, soundPosition); //if (audioSource) //{ //audioSource.volume = (num2 - 2f) / 8f; //} } } }