Exemplo n.º 1
0
        private void PlaybackEventTrigger(ChartEvent evt, PlayDirection direction)
        {
            if (direction == PlayDirection.Forward)
            {
                switch (evt)
                {
                case EffectKindEvent effectKind:
                {
                    var effect = m_currentEffects[effectKind.EffectIndex] = effectKind.Effect;
                    if (effect == null)
                    {
                        m_audioController.RemoveEffect(effectKind.EffectIndex);
                    }
                    else
                    {
                        m_audioController.SetEffect(effectKind.EffectIndex, CurrentQuarterNodeDuration, effect, 1.0f);
                    }
                }
                break;

                case LaserApplicationEvent app: m_highwayControl.LaserApplication = app.Application; break;

                // TODO(local): left/right lasers separate + allow both independent if needed
                case LaserFilterGainEvent filterGain: laserGain = filterGain.Gain; break;

                case LaserFilterKindEvent filterKind:
                {
                    m_audioController.SetEffect(6, CurrentQuarterNodeDuration, currentLaserEffectDef = filterKind.Effect, m_audioController.GetEffectMix(6));
                }
                break;

                case LaserParamsEvent pars:
                {
                    if (pars.LaserIndex.HasFlag(LaserIndex.Left))
                    {
                        m_highwayControl.LeftLaserParams = pars.Params;
                    }
                    if (pars.LaserIndex.HasFlag(LaserIndex.Right))
                    {
                        m_highwayControl.RightLaserParams = pars.Params;
                    }
                }
                break;

                case SlamVolumeEvent pars: m_slamSample.Volume = pars.Volume; break;
                }
            }

            switch (evt)
            {
            case SpinImpulseEvent spin: m_highwayControl.ApplySpin(spin.Params, spin.AbsolutePosition); break;

            case SwingImpulseEvent swing: m_highwayControl.ApplySwing(swing.Params, swing.AbsolutePosition); break;

            case WobbleImpulseEvent wobble: m_highwayControl.ApplyWobble(wobble.Params, wobble.AbsolutePosition); break;
            }
        }
Exemplo n.º 2
0
        private void PlaybackEventTrigger(EventEntity evt, PlayDirection direction)
        {
            if (direction == PlayDirection.Forward)
            {
                switch (evt)
                {
                case EffectKindEvent effectKind:
                {
                    var effect = m_currentEffects[effectKind.EffectIndex] = effectKind.Effect;
                    if (effect == null)
                    {
                        m_audioController.RemoveEffect(effectKind.EffectIndex);
                    }
                    else
                    {
                        m_audioController.SetEffect(effectKind.EffectIndex, CurrentQuarterNodeDuration, effect, 1.0f);
                    }
                }
                break;

                // TODO(local): left/right lasers separate + allow both independent if needed
                case LaserFilterGainEvent filterGain: laserGain = filterGain.Gain; break;

                case LaserFilterKindEvent filterKind:
                {
                    m_audioController.SetEffect(6, CurrentQuarterNodeDuration, currentLaserEffectDef = filterKind.Effect, m_audioController.GetEffectMix(6));
                }
                break;

                case SlamVolumeEvent pars: m_slamSample.Volume = pars.Volume * SLAM_VOLUME_MOD; break;
                }
            }
        }