public void BroadcastCollisionAudio(CollisionAudioHitConfig config, AudioChannel channel, Vector3 pos, float rms, float pitch)
        {
            if (showDebug)
            {
                Debug.Log(base.name + " Broadcast Collision Audio ");
            }
            float num = AudioUtils.ValueToDB(rms) + 32f;

            if (num < -64f)
            {
                return;
            }
            if (identity == null)
            {
                Debug.LogErrorFormat(this, "No NetIdentity for {0}", base.name);
                return;
            }
            NetStream netStream = identity.BeginEvent(evtCollisionAudio);

            netStream.Write(config.netId, 8);
            if (channel == AudioChannel.Footsteps)
            {
                netStream.Write(v: true);
            }
            else
            {
                netStream.Write(v: false);
                if (channel == AudioChannel.Body)
                {
                    netStream.Write(v: true);
                }
                else
                {
                    netStream.Write(v: false);
                }
            }
            Vector3 vec = pos - base.transform.position;

            NetVector3.Quantize(vec, 100f, 10).Write(netStream, 3);
            netStream.Write(NetFloat.Quantize(AudioUtils.ValueToDB(rms) + 32f, 64f, 6), 6);
            netStream.Write(NetFloat.Quantize(AudioUtils.RatioToCents(pitch), 4800f, 8), 3, 8);
            identity.EndEvent();
        }
        public void OnReceiveCollisionAudio(NetStream stream)
        {
            if (showDebug)
            {
                Debug.Log(base.name + " Recieve Collision Audio ");
            }
            ushort                  libId   = (ushort)stream.ReadUInt32(8);
            AudioChannel            channel = (!stream.ReadBool()) ? (stream.ReadBool() ? AudioChannel.Body : AudioChannel.Physics) : AudioChannel.Footsteps;
            Vector3                 b       = NetVector3.Read(stream, 3, 10).Dequantize(100f);
            Vector3                 pos     = base.transform.position + b;
            float                   emit    = AudioUtils.DBToValue(NetFloat.Dequantize(stream.ReadInt32(6), 64f, 6) - 32f);
            float                   num     = AudioUtils.CentsToRatio(NetFloat.Dequantize(stream.ReadInt32(3, 8), 4800f, 8));
            CollisionAudioHitConfig config  = CollisionAudioEngine.instance.GetConfig(libId);

            if (config != null)
            {
                if (showDebug)
                {
                    Debug.Log(base.name + " There is no audio engine ");
                }
                config.PlayWithKnownEmit(channel, null, pos, emit, num);
            }
        }