private void UpdateFlightProperties(ControllerConfiguration config, FlightCtrlState state)
        {
            state.yawTrim   = m_Yaw.GetTrim();
            state.pitchTrim = m_Pitch.GetTrim();
            state.rollTrim  = m_Roll.GetTrim();

            state.yaw   = Utility.Clamp(state.yaw + m_Yaw.Update(), -1.0f, 1.0f);
            state.pitch = Utility.Clamp(state.pitch + m_Pitch.Update(), -1.0f, 1.0f);
            state.roll  = Utility.Clamp(state.roll + m_Roll.Update(), -1.0f, 1.0f);

            state.X = Utility.Clamp(state.X + m_X.Update(), -1.0f, 1.0f);
            state.Y = Utility.Clamp(state.Y + m_Y.Update(), -1.0f, 1.0f);
            state.Z = Utility.Clamp(state.Z + m_Z.Update(), -1.0f, 1.0f);

            state.wheelSteerTrim    = m_WheelSteer.GetTrim();
            state.wheelThrottleTrim = m_WheelThrottle.GetTrim();

            state.mainThrottle  = Utility.Clamp(state.mainThrottle + m_Throttle.Update(), 0.0f, 1.0f);
            state.wheelSteer    = Utility.Clamp(state.wheelSteer + m_WheelSteer.Update(), -1.0f, 1.0f);
            state.wheelThrottle = Utility.Clamp(state.wheelThrottle + m_WheelThrottle.Update(), 0.0f, 1.0f);

            FlightCamera.CamHdg   += m_CameraHeading.Update() * config.cameraSensitivity;
            FlightCamera.CamPitch += m_CameraPitch.Update() * config.cameraSensitivity;
            if (FlightCamera.fetch != null)
            {
                FlightCamera.fetch.SetDistance(FlightCamera.fetch.Distance + m_CameraZoom.Update());
            }
        }
 public PresetEditorWindow(ControllerConfiguration controller, int editorId)
 {
     m_Controller = controller;
     m_EditorId = editorId;
     axisSnapshot = new float[controller.iface.GetAxesCount()];
     inputLockHash = "PresetEditor " + m_Controller.wrapper.ToString() + " - " + m_Controller.controllerIndex.ToString();
 }
Example #3
0
        private void UpdateAxes(ControllerConfiguration config, FlightCtrlState state)
        {
            var buttonsMask = config.iface.GetButtonsMask();

            for (int i = 0; i < config.iface.GetAxesCount(); i++)
            {
                List <ContinuousAction> actions = config.GetCurrentPreset().GetContinuousBinding(i, buttonsMask);
                if (actions == null)
                {
                    continue;
                }

                float axisState = config.iface.GetAxisState(i);

                foreach (var action in actions)
                {
                    if (config.GetCurrentPreset().IsContinuousBindingInverted(action))
                    {
                        axisState *= -1.0f;
                    }

                    if (axisState != 0.0f || action == ContinuousAction.Throttle || action == ContinuousAction.WheelThrottle)
                    {
                        EvaluateContinuousAction(config, action, axisState, state);
                    }
                }
            }
        }
 public PresetEditorWindow(ControllerConfiguration controller, int editorId)
 {
     m_Controller  = controller;
     m_EditorId    = editorId;
     axisSnapshot  = new float[controller.iface.GetAxesCount()];
     inputLockHash = "PresetEditor " + m_Controller.wrapper.ToString() + " - " + m_Controller.controllerIndex.ToString();
 }
        public ControllerConfigurationWindow(ControllerConfiguration controller, int editorId)
        {
            m_Controller = controller;
            m_EditorId   = editorId;

            inputLockHash = "Controller Configuration (" + m_Controller.wrapper.ToString() + " - " + m_Controller.controllerIndex.ToString() + ")";
        }
        private void UpdateAxes(ControllerConfiguration config, FlightCtrlState state)
        {
            var buttonsMask = config.iface.GetButtonsMask();

            for (int i = 0; i < config.iface.GetAxesCount(); i++)
            {
                List <ContinuousAction> actions = config.GetCurrentPreset().GetContinuousBinding(i, buttonsMask);
                if (actions == null)
                {
                    continue;
                }

                float axisState = config.iface.GetAxisState(i);

                foreach (var action in actions)
                {
                    var axisValue = axisState;
                    if (config.GetCurrentPreset().IsContinuousBindingInverted(action))
                    {
                        axisValue *= -1.0f;
                    }


                    throttleActive = true;
                    if (!AdvancedFlyByWire.Instance.settings.m_ThrottleOverride && action == ContinuousAction.Throttle)
                    {
                        if (axisValue == last_m_throttle)
                        {
                            throttleActive = false;
                        }
                        else
                        {
                            EvaluateContinuousAction(config, action, axisValue, state);
                            last_m_throttle = axisValue;
                        }
                    }
                    wheelThrottleActive = true;
                    if (!AdvancedFlyByWire.Instance.settings.m_ThrottleOverride && action == ContinuousAction.Throttle)
                    {
                        if (axisValue == m_lastWheelThrottle)
                        {
                            wheelThrottleActive = false;
                        }
                        else
                        {
                            m_lastWheelThrottle = axisValue;
                            EvaluateContinuousAction(config, action, axisValue, state);
                        }
                    }
                    if ((axisState != 0.0f && action != ContinuousAction.Throttle && action != ContinuousAction.WheelThrottle) ||
                        (AdvancedFlyByWire.Instance.settings.m_ThrottleOverride && (action == ContinuousAction.Throttle || action == ContinuousAction.WheelThrottle)))
                    {
                        EvaluateContinuousAction(config, action, axisValue, state);
                    }
                }
            }
        }
Example #7
0
        public void ActivateController(InputWrapper wrapper, int controllerIndex, IController.ButtonPressedCallback pressedCallback, IController.ButtonReleasedCallback releasedCallback)
        {
            foreach (var config in controllers)
            {
                if (config.wrapper == wrapper && config.controllerIndex == controllerIndex)
                {
                    config.isEnabled = true;
                    return;
                }
            }

            var controller = new ControllerConfiguration();

            controller.wrapper         = wrapper;
            controller.controllerIndex = controllerIndex;

            if (Utility.CheckXInputSupport() && wrapper == InputWrapper.XInput)
            {
#if !LINUX
                controller.iface = new XInputController(controller.controllerIndex);
#endif
            }
            else if (Utility.CheckSDLSupport() && wrapper == InputWrapper.SDL)
            {
                controller.iface = new SDLController(controller.controllerIndex);
            }

            /*else if (Utility.CheckSharpDXSupport() && wrapper == InputWrapper.DirectInput)
             * {
             #if !LINUX
             *   controller.iface = new DirectXController(controller.controllerIndex);
             #endif
             * }*/
            else if (wrapper == InputWrapper.KeyboardMouse)
            {
                controller.iface = new KeyboardMouseController();
            }
            else
            {
                // invalid configuration, bail out..
                return;
            }

            controller.SetManualDeadZones(controller.manualDeadZones);
            controller.iface.analogEvaluationCurve  = CurveFactory.Instantiate(controller.analogInputCurve);
            controller.iface.buttonPressedCallback  = pressedCallback;
            controller.iface.buttonReleasedCallback = releasedCallback;

            controller.presets       = DefaultControllerPresets.GetDefaultPresets(controller.iface);
            controller.currentPreset = 0;

            controllers.Add(controller);

            ScreenMessages.PostScreenMessage("CONTROLLER: " + controller.iface.GetControllerName(), 1.0f, ScreenMessageStyle.UPPER_CENTER);
        }
        public void ActivateController(InputWrapper wrapper, int controllerIndex, IController.ButtonPressedCallback pressedCallback, IController.ButtonReleasedCallback releasedCallback)
        {
            foreach (var config in controllers)
            {
                if (config.wrapper == wrapper && config.controllerIndex == controllerIndex)
                {
                    return;
                }
            }

            ControllerConfiguration controller = new ControllerConfiguration();

            controller.wrapper = wrapper;
            controller.controllerIndex = controllerIndex;

            if (Utility.CheckXInputSupport() && wrapper == InputWrapper.XInput)
            {
            #if !LINUX
                controller.iface = new XInputController(controller.controllerIndex);
            #endif
            }
            else if (Utility.CheckSDLSupport() && wrapper == InputWrapper.SDL)
            {
                controller.iface = new SDLController(controller.controllerIndex);
            }
            else  if (wrapper == InputWrapper.KeyboardMouse)
            {
                controller.iface = new KeyboardMouseController();
            }
            else
            {
                // invalid configuration, bail out..
                return;
            }

            controller.SetTreatHatsAsButtons(controller.treatHatsAsButtons);
            controller.iface.analogEvaluationCurve = CurveFactory.Instantiate(controller.analogInputCurve);
            controller.iface.buttonPressedCallback = new IController.ButtonPressedCallback(pressedCallback);
            controller.iface.buttonReleasedCallback = new IController.ButtonReleasedCallback(releasedCallback);

            controller.presets = DefaultControllerPresets.GetDefaultPresets(controller.iface);
            controller.currentPreset = 0;

            controllers.Add(controller);

            ScreenMessages.PostScreenMessage("CONTROLLER: " + controller.iface.GetControllerName(), 1.0f, ScreenMessageStyle.UPPER_CENTER);
        }
        public void ActivateController(InputWrapper wrapper, int controllerIndex, IController.ButtonPressedCallback pressedCallback, IController.ButtonReleasedCallback releasedCallback)
        {
            foreach (var config in controllers)
            {
                if (config.wrapper == wrapper && config.controllerIndex == controllerIndex)
                {
                    return;
                }
            }

            ControllerConfiguration controller = new ControllerConfiguration();

            controller.wrapper         = wrapper;
            controller.controllerIndex = controllerIndex;

            if (Utility.CheckXInputSupport() && wrapper == InputWrapper.XInput)
            {
                controller.iface = new XInputController(controller.controllerIndex);
            }
            else if (Utility.CheckSDLSupport() && wrapper == InputWrapper.SDL)
            {
                controller.iface = new SDLController(controller.controllerIndex);
            }
            else if (wrapper == InputWrapper.KeyboardMouse)
            {
                controller.iface = new KeyboardMouseController();
            }
            else
            {
                // invalid configuration, bail out..
                return;
            }

            controller.SetTreatHatsAsButtons(controller.treatHatsAsButtons);
            controller.iface.analogEvaluationCurve  = CurveFactory.Instantiate(controller.analogInputCurve);
            controller.iface.buttonPressedCallback  = new IController.ButtonPressedCallback(pressedCallback);
            controller.iface.buttonReleasedCallback = new IController.ButtonReleasedCallback(releasedCallback);

            controller.presets       = DefaultControllerPresets.GetDefaultPresets(controller.iface);
            controller.currentPreset = 0;

            controllers.Add(controller);

            ScreenMessages.PostScreenMessage("CONTROLLER: " + controller.iface.GetControllerName(), 1.0f, ScreenMessageStyle.UPPER_CENTER);
        }
        private void UpdateAxes(ControllerConfiguration config, FlightCtrlState state)
        {
            for (int i = 0; i < config.iface.GetAxesCount(); i++)
            {
                List <ContinuousAction> actions = config.GetCurrentPreset().GetContinuousBinding(i, config.iface.GetButtonsMask());
                if (actions == null)
                {
                    continue;
                }

                foreach (var action in actions)
                {
                    float input = config.iface.GetAxisState(i);
                    if (input != 0.0f || action == ContinuousAction.Throttle)
                    {
                        EvaluateContinuousAction(config, action, config.iface.GetAxisState(i), state);
                    }
                }
            }
        }
        private void UpdateFlightProperties(ControllerConfiguration config, FlightCtrlState state)
        {
            state.yawTrim   = m_Yaw.GetTrim();
            state.pitchTrim = m_Pitch.GetTrim();
            state.rollTrim  = m_Roll.GetTrim();

            float precisionModeFactor = AdvancedFlyByWire.Instance.GetPrecisionModeFactor();

            state.yaw   = Utility.Clamp(state.yaw + m_Yaw.Update() * precisionModeFactor, -1.0f, 1.0f);
            state.pitch = Utility.Clamp(state.pitch + m_Pitch.Update() * precisionModeFactor, -1.0f, 1.0f);
            state.roll  = Utility.Clamp(state.roll + m_Roll.Update() * precisionModeFactor, -1.0f, 1.0f);

            state.X = Utility.Clamp(state.X + m_X.Update(), -1.0f, 1.0f);
            state.Y = Utility.Clamp(state.Y + m_Y.Update(), -1.0f, 1.0f);
            state.Z = Utility.Clamp(state.Z + m_Z.Update(), -1.0f, 1.0f);

            state.wheelSteerTrim    = m_WheelSteer.GetTrim();
            state.wheelThrottleTrim = m_WheelThrottle.GetTrim();

            state.mainThrottle  = Utility.Clamp(state.mainThrottle + m_Throttle.Update(), 0.0f, 1.0f);
            state.wheelSteer    = Utility.Clamp(state.wheelSteer + m_WheelSteer.Update(), -1.0f, 1.0f);
            state.wheelThrottle = Utility.Clamp(state.wheelThrottle + m_WheelThrottle.Update(), -1.0f, 1.0f);
        }
        public void EvaluateDiscreteAction(ControllerConfiguration controller, DiscreteAction action, FlightCtrlState state)
        {
            KerbalEVA eva = null;

            if (FlightGlobals.ActiveVessel.isEVA)
            {
                eva = FlightGlobals.ActiveVessel.GetComponent <KerbalEVA>();
            }

            switch (action)
            {
            case DiscreteAction.None:
                return;

            case DiscreteAction.YawPlus:
                m_Yaw.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.YawMinus:
                m_Yaw.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.PitchPlus:
                m_Pitch.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.PitchMinus:
                m_Pitch.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.RollPlus:
                m_Roll.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.RollMinus:
                m_Roll.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.XPlus:
                m_X.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.XMinus:
                m_X.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.YPlus:
                m_Y.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.YMinus:
                m_Y.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.ZPlus:
                m_Z.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.ZMinus:
                m_Z.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.ThrottlePlus:
                m_Throttle.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.ThrottleMinus:
                m_Throttle.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.Stage:
                Staging.ActivateNextStage();
                return;

            case DiscreteAction.Gear:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Gear);
                return;

            case DiscreteAction.Light:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Light);
                return;

            case DiscreteAction.RCS:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.RCS);
                return;

            case DiscreteAction.SAS:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.SAS);
                return;

            case DiscreteAction.Brakes:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Brakes);
                return;

            case DiscreteAction.Abort:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Abort);
                return;

            case DiscreteAction.Custom01:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom01);
                return;

            case DiscreteAction.Custom02:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom02);
                return;

            case DiscreteAction.Custom03:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom03);
                return;

            case DiscreteAction.Custom04:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom04);
                return;

            case DiscreteAction.Custom05:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom05);
                return;

            case DiscreteAction.Custom06:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom06);
                return;

            case DiscreteAction.Custom07:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom07);
                return;

            case DiscreteAction.Custom08:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom08);
                return;

            case DiscreteAction.Custom09:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom09);
                return;

            case DiscreteAction.Custom10:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom10);
                return;

            case DiscreteAction.EVAToggleJetpack:
                if (eva != null)
                {
                    eva.JetpackDeployed = !eva.JetpackDeployed;
                }
                return;

            case DiscreteAction.EVAToggleHeadlamps:
                if (eva != null)
                {
                    eva.lampOn = !eva.lampOn;
                }
                return;

            case DiscreteAction.CutThrottle:
                m_Throttle.SetValue(-state.mainThrottle);
                return;

            case DiscreteAction.FullThrottle:
                m_Throttle.SetValue(1.0f - state.mainThrottle);
                return;

            case DiscreteAction.NextPreset:
                if (controller.currentPreset >= controller.presets.Count - 1)
                {
                    return;
                }

                controller.currentPreset++;
                ScreenMessages.PostScreenMessage("PRESET: " + controller.GetCurrentPreset().name.ToUpper(), 1.0f, ScreenMessageStyle.UPPER_CENTER);
                return;

            case DiscreteAction.PreviousPreset:
                if (controller.currentPreset <= 0)
                {
                    return;
                }

                controller.currentPreset--;
                ScreenMessages.PostScreenMessage("PRESET: " + controller.GetCurrentPreset().name.ToUpper(), 1.0f, ScreenMessageStyle.UPPER_CENTER);
                return;

            case DiscreteAction.CyclePresets:
                controller.currentPreset++;
                if (controller.currentPreset >= controller.presets.Count)
                {
                    controller.currentPreset = 0;
                }
                ScreenMessages.PostScreenMessage("PRESET: " + controller.GetCurrentPreset().name.ToUpper(), 1.0f, ScreenMessageStyle.LOWER_CENTER);
                return;

            case DiscreteAction.CameraZoomPlus:
                m_CameraZoom.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.CameraZoomMinus:
                m_CameraZoom.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.CameraXPlus:
                m_CameraHeading.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.CameraXMinus:
                m_CameraHeading.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.CameraYPlus:
                m_CameraPitch.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.CameraYMinus:
                m_CameraPitch.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.OrbitMapToggle:
                if (!MapView.MapIsEnabled)
                {
                    MapView.EnterMapView();
                }
                else
                {
                    MapView.ExitMapView();
                }
                return;

            case DiscreteAction.TimeWarpPlus:
                WarpController.IncreaseWarp();
                return;

            case DiscreteAction.TimeWarpMinus:
                WarpController.DecreaseWarp();
                return;

            case DiscreteAction.PhysicsTimeWarpPlus:
                WarpController.IncreasePhysicsWarp();
                return;

            case DiscreteAction.PhysicsTimeWarpMinus:
                WarpController.DecreasePhysicsWarp();
                return;

            case DiscreteAction.NavballToggle:
                if (MapView.MapIsEnabled && MapView.fetch != null)
                {
                    MapView.fetch.maneuverModeToggle.OnPress.Invoke();
                }
                return;

            case DiscreteAction.IVAViewToggle:
                if (CameraManager.Instance != null)
                {
                    CameraManager.Instance.SetCameraIVA();
                }
                return;

            case DiscreteAction.CameraViewToggle:
                if (FlightCamera.fetch != null)
                {
                    FlightCamera.fetch.SetNextMode();
                }
                return;

            case DiscreteAction.SASHold:
                FlightGlobals.ActiveVessel.ActionGroups.SetGroup(KSPActionGroup.SAS, true);
                return;

            case DiscreteAction.LockStage:
                if (FlightInputHandler.fetch != null)
                {
                    FlightInputHandler.fetch.stageLock = !FlightInputHandler.fetch.stageLock;
                }
                return;

            case DiscreteAction.TogglePrecisionControls:
                if (FlightInputHandler.fetch != null)
                {
                    FlightInputHandler.fetch.precisionMode = !FlightInputHandler.fetch.precisionMode;
                }
                return;

            case DiscreteAction.ResetTrim:
                m_Yaw.SetTrim(0.0f);
                m_Pitch.SetTrim(0.0f);
                m_Roll.SetTrim(0.0f);
                state.ResetTrim();
                return;
            }
        }
        private void UpdateAxes(ControllerConfiguration config, FlightCtrlState state)
        {
            var buttonsMask = config.iface.GetButtonsMask();

            for (int i = 0; i < config.iface.GetAxesCount(); i++)
            {
                List<ContinuousAction> actions = config.GetCurrentPreset().GetContinuousBinding(i, buttonsMask);
                if (actions == null)
                {
                    continue;
                }

                float axisState = config.iface.GetAxisState(i);

                foreach (var action in actions)
                {
                    if (config.GetCurrentPreset().IsContinuousBindingInverted(action))
                    {
                        axisState *= -1.0f;
                    }

                    if (axisState != 0.0f || action == ContinuousAction.Throttle || action == ContinuousAction.WheelThrottle)
                    {
                        EvaluateContinuousAction(config, action, axisState, state);
                    }
                }
            }
        }
        public void UpdateEVAFlightProperties(ControllerConfiguration config, FlightCtrlState state)
        {
            if (!FlightGlobals.ActiveVessel.isEVA)
            {
                return;
            }

            KerbalEVA eva = GetKerbalEVA();

            if (this.m_autoRunning)
            {
                state.Z = 1f;
            }

            if (!state.isNeutral)
            {
                Vector3 moveDirection   = Vector3.zero;
                Vector3 ladderDirection = Vector3.zero;

                //Debug.Log("State: " + eva.fsm.currentStateName + " (< " + eva.fsm.lastEventName + ")");
                //Debug.Log("MovementMode: " + eva.CharacterFrameMode);
                //Debug.Log("Landed? " + eva.part.GroundContact + ", " + eva.vessel.LandedOrSplashed + ", " + eva.vessel.Landed);

                if (state.Y != 0)
                {
                    moveDirection   += (!eva.CharacterFrameMode ? eva.fUp : eva.transform.up) * state.Y;
                    ladderDirection += state.Y > 0 ? eva.transform.up : -eva.transform.up;
                }
                if (state.X != 0)
                {
                    moveDirection   += (!eva.CharacterFrameMode ? eva.fRgt : eva.transform.right) * state.X;
                    ladderDirection += (state.X > 0 ? eva.transform.right : -eva.transform.right);
                }
                if (state.Z != 0)
                {
                    moveDirection   += (!eva.CharacterFrameMode ? eva.fFwd : eva.transform.forward) * state.Z;
                    ladderDirection += (state.Z > 0 ? eva.transform.up : -eva.transform.up);
                }

                if (eva.vessel.LandedOrSplashed && !eva.JetpackDeployed && !eva.OnALadder && !eva.isRagdoll)
                {
                    float moveSpeed = moveDirection.magnitude;
                    // Decrease max moveSpeed when not moving in a forwards direction.
                    if (Vector3.Angle(moveDirection, eva.transform.forward) > 45)
                    {
                        moveSpeed = Mathf.Clamp(moveSpeed, 0, 0.25f);
                    }
                    this.SetMoveSpeed(moveSpeed);
                }

                // We disable "Run/Ladder/Swim Stop" check while moving.
                if (eva.OnALadder && (state.Y != 0 || state.Z != 0))
                {
                    DisableLadderStopCondition(eva);
                }
                if (eva.vessel.Splashed && (state.X != 0 || state.Z != 0))
                {
                    DisableSwimStopCondition(eva);
                }

                //Debug.Log("Runspeed: " + moveDirection.magnitude);
                moveDirection.Normalize();
                //Debug.Log("MoveDirection: " + moveDirection);
                //Debug.Log("LadderDirection: "+ ladderDirection);
                this.vectorFields[0].SetValue(eva, moveDirection);              //vector3_0 = MoveDirection
                this.vectorFields[2].SetValue(eva, moveDirection);              //vector3_2 = JetpackDirection
                this.vectorFields[6].SetValue(eva, ladderDirection);            //vector3_6 = LadderDirection

                Quaternion rotation = Quaternion.identity;
                rotation *= Quaternion.AngleAxis(eva.turnRate * state.pitch * EVARotationStep * Time.deltaTime, -eva.transform.right);
                rotation *= Quaternion.AngleAxis(eva.turnRate * state.yaw * EVARotationStep * Time.deltaTime, eva.transform.up);
                rotation *= Quaternion.AngleAxis(eva.turnRate * state.roll * EVARotationStep * Time.deltaTime, -eva.transform.forward);
                if (rotation != Quaternion.identity)
                {
                    this.vectorFields[8].SetValue(eva, rotation * (Vector3)this.vectorFields[8].GetValue(eva));
                    this.vectorFields[13].SetValue(eva, rotation * (Vector3)this.vectorFields[13].GetValue(eva));
                }

                if (!moveDirection.IsZero() && !eva.OnALadder)
                {
                    if (eva.CharacterFrameMode)
                    {
                        this.vectorFields[8].SetValue(eva, eva.fFwd);           //vector3_8
                        this.vectorFields[13].SetValue(eva, eva.fUp);           //vector3_13
                    }
                    else
                    {
                        this.vectorFields[8].SetValue(eva, moveDirection);      //vector3_8
                        this.vectorFields[13].SetValue(eva, eva.fUp);           //vector3_13
                    }
                }
            }
            else
            {
                ReEnableStopConditions(eva);
            }
        }
        void DoMainWindow(int index)
        {
            GUI.DragWindow(new Rect(0, 0, 10000, 20));

            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            if (GUILayout.Button("X", GUILayout.Height(16)))
            {
                m_UIActive = false;
                InputLockManager.RemoveControlLock("AdvancedFlyByWireMainWindow");
            }

            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Use stock skin");
            m_UseKSPSkin = GUILayout.Toggle(m_UseKSPSkin, "");
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Use old presets editor");
            m_UseOldPresetsWindow = GUILayout.Toggle(m_UseOldPresetsWindow, "");
            GUILayout.FlexibleSpace();

            if (GUILayout.Button("Save configuration"))
            {
                SaveState(null);
            }

            GUILayout.EndHorizontal();

            m_ScrollPosition = GUILayout.BeginScrollView(m_ScrollPosition);

            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            GUILayout.Label("Controllers");
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();

            var controllers = IController.EnumerateAllControllers();

            foreach (var controller in controllers)
            {
                GUILayout.BeginHorizontal();
                ControllerConfiguration config = m_Configuration.GetConfigurationByControllerType(controller.Key,
                                                                                                  controller.Value.Key);
                bool isEnabled    = config != null && config.iface != null;
                bool newIsEnabled = GUILayout.Toggle(isEnabled, "");

                GUILayout.Label(controller.Value.Value);
                GUILayout.FlexibleSpace();

                if (!isEnabled && newIsEnabled)
                {
                    isEnabled = true;
                    m_Configuration.ActivateController
                    (
                        controller.Key,
                        controller.Value.Key,
                        new IController.ButtonPressedCallback(ButtonPressedCallback),
                        new IController.ButtonReleasedCallback(ButtonReleasedCallback)
                    );
                }
                else if (isEnabled && !newIsEnabled)
                {
                    m_Configuration.DeactivateController(controller.Key, controller.Value.Key);
                }

                if (!isEnabled || config.presetEditorOpen)
                {
                    GUI.enabled = false;
                }

                if (GUILayout.Button("Presets", GUILayout.Height(32)))
                {
                    if (m_UseOldPresetsWindow)
                    {
                        m_PresetEditors.Add(new PresetEditorWindow(config, m_PresetEditors.Count));
                    }
                    else
                    {
                        m_PresetEditors.Add(new PresetEditorWindowNG(config, m_PresetEditors.Count));
                    }

                    config.presetEditorOpen = true;
                }

                if (isEnabled)
                {
                    GUI.enabled = true;
                }

                if (!isEnabled || config.controllerConfigurationOpen)
                {
                    GUI.enabled = false;
                }

                if (GUILayout.Button("Configuration", GUILayout.Height(32)))
                {
                    m_ControllerTests.Add(new ControllerConfigurationWindow(config, m_ControllerTests.Count));
                    config.controllerConfigurationOpen = true;
                }

                if (isEnabled)
                {
                    GUI.enabled = true;
                }

                GUILayout.EndHorizontal();

                if (isEnabled)
                {
                    GUILayout.Space(4);

                    GUILayout.BeginHorizontal();
                    GUILayout.FlexibleSpace();

                    GUILayout.Label("Preset: " + config.GetCurrentPreset().name);

                    if (config.currentPreset <= 0)
                    {
                        GUI.enabled = false;
                    }

                    if (GUILayout.Button("<", GUILayout.Width(32)))
                    {
                        config.currentPreset--;
                    }

                    GUI.enabled = true;
                    GUILayout.Space(4);

                    if (config.currentPreset >= config.presets.Count - 1)
                    {
                        GUI.enabled = false;
                    }

                    if (GUILayout.Button(">", GUILayout.Width(32)))
                    {
                        config.currentPreset++;
                    }

                    GUI.enabled = true;
                    GUILayout.EndHorizontal();
                }

                GUILayout.Space(24);

                GUI.enabled = true;
            }

            GUILayout.EndScrollView();
        }
Example #16
0
        public void EvaluateDiscreteAction(ControllerConfiguration controller, DiscreteAction action, FlightCtrlState state)
        {
            switch (action)
            {
            case DiscreteAction.None:
                return;

            case DiscreteAction.YawPlus:
                m_Yaw.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.YawMinus:
                m_Yaw.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.PitchPlus:
                m_Pitch.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.PitchMinus:
                m_Pitch.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.PitchTrimPlus:
                m_Pitch.SetTrim(Utility.Clamp(m_Pitch.GetTrim() + controller.discreteActionStep, -1.0f, 1.0f));
                return;

            case DiscreteAction.PitchTrimMinus:
                m_Pitch.SetTrim(Utility.Clamp(m_Pitch.GetTrim() - controller.discreteActionStep, -1.0f, 1.0f));
                return;

            case DiscreteAction.RollPlus:
                m_Roll.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.RollMinus:
                m_Roll.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.XPlus:
                m_X.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.XMinus:
                m_X.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.YPlus:
                m_Y.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.YMinus:
                m_Y.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.ZPlus:
                m_Z.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.ZMinus:
                m_Z.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.ThrottlePlus:
                m_Throttle.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.ThrottleMinus:
                m_Throttle.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.CutThrottle:
                m_Throttle.SetValue(-state.mainThrottle);
                return;

            case DiscreteAction.FullThrottle:
                m_Throttle.SetValue(1.0f - state.mainThrottle);
                return;

            case DiscreteAction.NextPreset:
                if (controller.currentPreset >= controller.presets.Count - 1)
                {
                    return;
                }

                controller.currentPreset++;
                ScreenMessages.PostScreenMessage("PRESET: " + controller.GetCurrentPreset().name.ToUpper(), 1.0f, ScreenMessageStyle.UPPER_CENTER);
                return;

            case DiscreteAction.PreviousPreset:
                if (controller.currentPreset <= 0)
                {
                    return;
                }

                controller.currentPreset--;
                ScreenMessages.PostScreenMessage("PRESET: " + controller.GetCurrentPreset().name.ToUpper(), 1.0f, ScreenMessageStyle.UPPER_CENTER);
                return;

            case DiscreteAction.CyclePresets:
                controller.currentPreset++;
                if (controller.currentPreset >= controller.presets.Count)
                {
                    controller.currentPreset = 0;
                }
                ScreenMessages.PostScreenMessage("PRESET: " + controller.GetCurrentPreset().name.ToUpper(), 1.0f, ScreenMessageStyle.LOWER_CENTER);
                return;

            case DiscreteAction.CameraZoomPlus:
                m_CameraZoom.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.CameraZoomMinus:
                m_CameraZoom.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.CameraXPlus:
                m_CameraHeading.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.CameraXMinus:
                m_CameraHeading.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.CameraYPlus:
                m_CameraPitch.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.CameraYMinus:
                m_CameraPitch.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.OrbitMapToggle:
                if (!MapView.MapIsEnabled)
                {
                    MapView.EnterMapView();
                }
                else
                {
                    MapView.ExitMapView();
                }
                return;

            case DiscreteAction.TimeWarpPlus:
                WarpController.IncreaseWarp();
                return;

            case DiscreteAction.TimeWarpMinus:
                WarpController.DecreaseWarp();
                return;

            case DiscreteAction.PhysicsTimeWarpPlus:
                WarpController.IncreasePhysicsWarp();
                return;

            case DiscreteAction.PhysicsTimeWarpMinus:
                WarpController.DecreasePhysicsWarp();
                return;

            case DiscreteAction.StopWarp:
                WarpController.StopWarp();
                return;

            case DiscreteAction.NavballToggle:
                if (MapView.MapIsEnabled && MapView.fetch != null)
                {
                    //  MapView.fetch.maneuverModeToggle.OnPress.Invoke();
                }
                return;

            case DiscreteAction.IVAViewToggle:
                if (CameraManager.Instance != null)
                {
                    CameraManager.Instance.SetCameraIVA();
                }
                return;

            case DiscreteAction.CameraViewToggle:
                if (FlightCamera.fetch != null)
                {
                    FlightCamera.fetch.SetNextMode();
                }
                return;

            case DiscreteAction.SASHold:
                FlightGlobals.ActiveVessel.ActionGroups.SetGroup(KSPActionGroup.SAS, true);
                return;

            case DiscreteAction.SASStabilityAssist:
                setAutopilotMode(VesselAutopilot.AutopilotMode.StabilityAssist, 0);
                return;

            case DiscreteAction.SASPrograde:
                setAutopilotMode(VesselAutopilot.AutopilotMode.Prograde, 1);
                return;

            case DiscreteAction.SASRetrograde:
                setAutopilotMode(VesselAutopilot.AutopilotMode.Retrograde, 2);
                return;

            case DiscreteAction.SASNormal:
                setAutopilotMode(VesselAutopilot.AutopilotMode.Normal, 3);
                return;

            case DiscreteAction.SASAntinormal:
                setAutopilotMode(VesselAutopilot.AutopilotMode.Antinormal, 4);
                return;

            case DiscreteAction.SASRadialIn:
                setAutopilotMode(VesselAutopilot.AutopilotMode.RadialIn, 5);
                return;

            case DiscreteAction.SASRadialOut:
                setAutopilotMode(VesselAutopilot.AutopilotMode.RadialOut, 6);
                return;

            case DiscreteAction.SASManeuver:
                setAutopilotMode(VesselAutopilot.AutopilotMode.Maneuver, 7);
                return;

            case DiscreteAction.SASTarget:
                setAutopilotMode(VesselAutopilot.AutopilotMode.Target, 8);
                return;

            case DiscreteAction.SASAntiTarget:
                setAutopilotMode(VesselAutopilot.AutopilotMode.AntiTarget, 9);
                return;

            case DiscreteAction.SASManeuverOrTarget:
                if (!setAutopilotMode(VesselAutopilot.AutopilotMode.Maneuver, 7))
                {
                    setAutopilotMode(VesselAutopilot.AutopilotMode.Target, 8);
                }
                ;
                return;

            case DiscreteAction.TogglePrecisionControls:
                if (FlightInputHandler.fetch != null)
                {
                    FlightInputHandler.fetch.precisionMode = !FlightInputHandler.fetch.precisionMode;
                    GameEvents.Input.OnPrecisionModeToggle.Fire(FlightInputHandler.fetch.precisionMode);
                }
                return;

            case DiscreteAction.ResetTrim:
                m_Yaw.SetTrim(0.0f);
                m_Pitch.SetTrim(0.0f);
                m_Roll.SetTrim(0.0f);
                return;

            case DiscreteAction.IVANextCamera:
                CameraController.Instance.NextIVACamera();
                return;

            case DiscreteAction.IVALookWindow:
                CameraController.Instance.FocusIVAWindow();
                return;
            }

            if (m_DisableVesselControls)
            {
                return;
            }

            // all other actions
            switch (action)
            {
            case DiscreteAction.Stage:
                KSP.UI.Screens.StageManager.ActivateNextStage();
                return;

            case DiscreteAction.Gear:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Gear);
                return;

            case DiscreteAction.Light:
                EVAController.Instance.ToggleHeadlamp();
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Light);
                return;

            case DiscreteAction.RCS:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.RCS);
                return;

            case DiscreteAction.SAS:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.SAS);
                return;

            case DiscreteAction.Brakes:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Brakes);
                return;

            case DiscreteAction.BrakesHold:
                FlightGlobals.ActiveVessel.ActionGroups.SetGroup(KSPActionGroup.Brakes, true);
                return;

            case DiscreteAction.Abort:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Abort);
                return;

            case DiscreteAction.Custom01:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom01);
                return;

            case DiscreteAction.Custom02:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom02);
                return;

            case DiscreteAction.Custom03:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom03);
                return;

            case DiscreteAction.Custom04:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom04);
                return;

            case DiscreteAction.Custom05:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom05);
                return;

            case DiscreteAction.Custom06:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom06);
                return;

            case DiscreteAction.Custom07:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom07);
                return;

            case DiscreteAction.Custom08:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom08);
                return;

            case DiscreteAction.Custom09:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom09);
                return;

            case DiscreteAction.Custom10:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom10);
                return;

            case DiscreteAction.SASHold:
                FlightGlobals.ActiveVessel.ActionGroups.SetGroup(KSPActionGroup.SAS, true);
                return;

            case DiscreteAction.LockStage:
                if (FlightInputHandler.fetch != null)
                {
                    FlightInputHandler.fetch.stageLock = !FlightInputHandler.fetch.stageLock;
                }
                return;

            case DiscreteAction.EVAInteract:
                EVAController.Instance.DoInteract();
                return;

            case DiscreteAction.EVAJump:
                EVAController.Instance.DoJump();
                return;

            case DiscreteAction.EVAToggleJetpack:
                EVAController.Instance.ToggleJetpack();
                return;

            case DiscreteAction.EVAAutoRunToggle:
                EVAController.Instance.ToggleAutorun();
                return;

            case DiscreteAction.EVAPlantFlag:
                EVAController.Instance.DoPlantFlag();
                return;
            }
        }
        public void EvaluateDiscreteActionRelease(ControllerConfiguration controller, DiscreteAction action, FlightCtrlState state)
        {
            switch (action)
            {
                case DiscreteAction.None:
                    return;
                case DiscreteAction.YawPlus:
                    m_Yaw.SetIncrement(0);
                    return;
                case DiscreteAction.YawMinus:
                    m_Yaw.SetIncrement(0);
                    return;
                case DiscreteAction.PitchPlus:
                    m_Pitch.SetIncrement(0);
                    return;
                case DiscreteAction.PitchMinus:
                    m_Pitch.SetIncrement(0);
                    return;
                case DiscreteAction.RollPlus:
                    m_Roll.SetIncrement(0);
                    return;
                case DiscreteAction.RollMinus:
                    m_Roll.SetIncrement(0);
                    return;
                case DiscreteAction.XPlus:
                    m_X.SetIncrement(0);
                    return;
                case DiscreteAction.XMinus:
                    m_X.SetIncrement(0);
                    return;
                case DiscreteAction.YPlus:
                    m_Y.SetIncrement(0);
                    return;
                case DiscreteAction.YMinus:
                    m_Y.SetIncrement(0);
                    return;
                case DiscreteAction.ZPlus:
                    m_Z.SetIncrement(0);
                    return;
                case DiscreteAction.ZMinus:
                    m_Z.SetIncrement(0);
                    return;
                case DiscreteAction.ThrottlePlus:
                    m_Throttle.SetIncrement(0);
                    return;
                case DiscreteAction.ThrottleMinus:
                    m_Throttle.SetIncrement(0);
                    return;
                case DiscreteAction.CameraZoomPlus:
                    m_CameraZoom.SetIncrement(0);
                    return;
                case DiscreteAction.CameraZoomMinus:
                    m_CameraZoom.SetIncrement(0);
                    return;
                case DiscreteAction.CameraXPlus:
                    m_CameraHeading.SetIncrement(0);
                    return;
                case DiscreteAction.CameraXMinus:
                    m_CameraHeading.SetIncrement(0);
                    return;
                case DiscreteAction.CameraYPlus:
                    m_CameraPitch.SetIncrement(0);
                    return;
                case DiscreteAction.CameraYMinus:
                    m_CameraPitch.SetIncrement(0);
                    return;
            }

            if (m_DisableVesselControls)
            {
                return;
            }

            switch (action)
            {
                case DiscreteAction.SASHold:
                    FlightGlobals.ActiveVessel.ActionGroups.SetGroup(KSPActionGroup.SAS, false);
                    return;
                case DiscreteAction.BrakesHold:
                    FlightGlobals.ActiveVessel.ActionGroups.SetGroup(KSPActionGroup.Brakes, false);
                    return;
            }
        }
        public void EvaluateContinuousAction(ControllerConfiguration controller, ContinuousAction action, float value, FlightCtrlState state)
        {
            switch (action)
            {
            case ContinuousAction.None:
                return;

            case ContinuousAction.Yaw:
                m_Yaw.SetValue(value);
                return;

            case ContinuousAction.NegativeYaw:
                m_Yaw.SetValue(-value);
                return;

            case ContinuousAction.YawTrim:
                m_Yaw.SetTrim(Utility.Clamp(m_Yaw.GetTrim() + value, -1.0f, 1.0f));
                return;

            case ContinuousAction.Pitch:
                m_Pitch.SetValue(value);
                return;

            case ContinuousAction.NegativePitch:
                m_Pitch.SetValue(-value);
                return;

            case ContinuousAction.PitchTrim:
                m_Pitch.SetTrim(Utility.Clamp(m_Pitch.GetTrim() + value, -1.0f, 1.0f));
                return;

            case ContinuousAction.Roll:
                m_Roll.SetValue(value);
                return;

            case ContinuousAction.NegativeRoll:
                m_Roll.SetValue(-value);
                return;

            case ContinuousAction.RollTrim:
                m_Roll.SetTrim(Utility.Clamp(m_Roll.GetTrim() + value, -1.0f, 1.0f));
                return;

            case ContinuousAction.X:
                m_X.SetValue(value);
                return;

            case ContinuousAction.NegativeX:
                m_X.SetValue(-value);
                return;

            case ContinuousAction.Y:
                m_Y.SetValue(value);
                return;

            case ContinuousAction.NegativeY:
                m_Y.SetValue(-value);
                return;

            case ContinuousAction.Z:
                m_Z.SetValue(value);
                return;

            case ContinuousAction.NegativeZ:
                m_Z.SetValue(-value);
                return;

            case ContinuousAction.Throttle:
                m_Throttle.SetMinMaxValues(-state.mainThrottle, 1.0f - state.mainThrottle);
                m_Throttle.SetValue(value - state.mainThrottle);
                return;

            case ContinuousAction.ThrottleIncrement:
                m_Throttle.Increment(value * controller.incrementalActionSensitivity);
                return;

            case ContinuousAction.ThrottleDecrement:
                m_Throttle.Increment(-value * controller.incrementalActionSensitivity);
                return;

            case ContinuousAction.WheelThrottle:
                m_WheelThrottle.SetMinMaxValues(-state.wheelThrottle, 1.0f - state.wheelThrottle);
                m_WheelThrottle.SetValue(value);
                return;

            case ContinuousAction.WheelSteer:
                m_WheelSteer.SetValue(value);
                return;

            case ContinuousAction.WheelThrottleTrim:
                m_WheelThrottle.SetTrim(Utility.Clamp(m_WheelThrottle.GetTrim() + value, 0.0f, 1.0f));
                return;

            case ContinuousAction.WheelSteerTrim:
                m_WheelSteer.SetTrim(Utility.Clamp(m_WheelSteer.GetTrim() + value, -1.0f, 1.0f));
                return;

            case ContinuousAction.CameraX:
                m_CameraHeading.Increment(value);
                return;

            case ContinuousAction.CameraY:
                m_CameraPitch.Increment(value);
                return;

            case ContinuousAction.CameraZoom:
                m_CameraZoom.Increment(value);
                return;
            }
        }
Example #19
0
 public PresetEditorWindowNG(ControllerConfiguration controller, int editorId) : base(controller, editorId)
 {
     axisSnapshot = new float[controller.iface.GetAxesCount()];
 }
 public PresetEditorWindowNG(ControllerConfiguration controller, int editorId) : base(controller, editorId)
 {
 }
        public void EvaluateDiscreteActionRelease(ControllerConfiguration controller, DiscreteAction action, FlightCtrlState state)
        {
            switch (action)
            {
            case DiscreteAction.None:
                return;

            case DiscreteAction.YawPlus:
                m_Yaw.SetIncrement(0);
                return;

            case DiscreteAction.YawMinus:
                m_Yaw.SetIncrement(0);
                return;

            case DiscreteAction.PitchPlus:
                m_Pitch.SetIncrement(0);
                return;

            case DiscreteAction.PitchMinus:
                m_Pitch.SetIncrement(0);
                return;

            case DiscreteAction.RollPlus:
                m_Roll.SetIncrement(0);
                return;

            case DiscreteAction.RollMinus:
                m_Roll.SetIncrement(0);
                return;

            case DiscreteAction.XPlus:
                m_X.SetIncrement(0);
                return;

            case DiscreteAction.XMinus:
                m_X.SetIncrement(0);
                return;

            case DiscreteAction.YPlus:
                m_Y.SetIncrement(0);
                return;

            case DiscreteAction.YMinus:
                m_Y.SetIncrement(0);
                return;

            case DiscreteAction.ZPlus:
                m_Z.SetIncrement(0);
                return;

            case DiscreteAction.ZMinus:
                m_Z.SetIncrement(0);
                return;

            case DiscreteAction.ThrottlePlus:
                m_Throttle.SetIncrement(0);
                return;

            case DiscreteAction.ThrottleMinus:
                m_Throttle.SetIncrement(0);
                return;

            case DiscreteAction.CameraZoomPlus:
                m_CameraZoom.SetIncrement(0);
                return;

            case DiscreteAction.CameraZoomMinus:
                m_CameraZoom.SetIncrement(0);
                return;

            case DiscreteAction.CameraXPlus:
                m_CameraHeading.SetIncrement(0);
                return;

            case DiscreteAction.CameraXMinus:
                m_CameraHeading.SetIncrement(0);
                return;

            case DiscreteAction.CameraYPlus:
                m_CameraPitch.SetIncrement(0);
                return;

            case DiscreteAction.CameraYMinus:
                m_CameraPitch.SetIncrement(0);
                return;

            case DiscreteAction.SASHold:
                FlightGlobals.ActiveVessel.ActionGroups.SetGroup(KSPActionGroup.SAS, false);
                return;
            }
        }
        public void EvaluateDiscreteAction(ControllerConfiguration controller, DiscreteAction action, FlightCtrlState state)
        {
            switch (action)
            {
                case DiscreteAction.None:
                    return;
                case DiscreteAction.YawPlus:
                    m_Yaw.SetIncrement(1, controller.discreteActionStep);
                    return;
                case DiscreteAction.YawMinus:
                    m_Yaw.SetIncrement(-1, controller.discreteActionStep);
                    return;
                case DiscreteAction.PitchPlus:
                    m_Pitch.SetIncrement(1, controller.discreteActionStep);
                    return;
                case DiscreteAction.PitchMinus:
                    m_Pitch.SetIncrement(-1, controller.discreteActionStep);
                    return;
                case DiscreteAction.PitchTrimPlus:
                    m_Pitch.SetTrim(Utility.Clamp(m_Pitch.GetTrim() + controller.discreteActionStep, -1.0f, 1.0f));
                    return;
                case DiscreteAction.PitchTrimMinus:
                    m_Pitch.SetTrim(Utility.Clamp(m_Pitch.GetTrim() - controller.discreteActionStep, -1.0f, 1.0f));
                    return;
                case DiscreteAction.RollPlus:
                    m_Roll.SetIncrement(1, controller.discreteActionStep);
                    return;
                case DiscreteAction.RollMinus:
                    m_Roll.SetIncrement(-1, controller.discreteActionStep);
                    return;
                case DiscreteAction.XPlus:
                    m_X.SetIncrement(1, controller.discreteActionStep);
                    return;
                case DiscreteAction.XMinus:
                    m_X.SetIncrement(-1, controller.discreteActionStep);
                    return;
                case DiscreteAction.YPlus:
                    m_Y.SetIncrement(1, controller.discreteActionStep);
                    return;
                case DiscreteAction.YMinus:
                    m_Y.SetIncrement(-1, controller.discreteActionStep);
                    return;
                case DiscreteAction.ZPlus:
                    m_Z.SetIncrement(1, controller.discreteActionStep);
                    return;
                case DiscreteAction.ZMinus:
                    m_Z.SetIncrement(-1, controller.discreteActionStep);
                    return;
                case DiscreteAction.ThrottlePlus:
                    m_Throttle.SetIncrement(1, controller.discreteActionStep);
                    return;
                case DiscreteAction.ThrottleMinus:
                    m_Throttle.SetIncrement(-1, controller.discreteActionStep);
                    return;
                case DiscreteAction.CutThrottle:
                    m_Throttle.SetValue(-state.mainThrottle);
                    return;
                case DiscreteAction.FullThrottle:
                    m_Throttle.SetValue(1.0f - state.mainThrottle);
                    return;
                case DiscreteAction.NextPreset:
                    if (controller.currentPreset >= controller.presets.Count - 1)
                    {
                        return;
                    }

                    controller.currentPreset++;
                    ScreenMessages.PostScreenMessage("PRESET: " + controller.GetCurrentPreset().name.ToUpper(), 1.0f, ScreenMessageStyle.UPPER_CENTER);
                    return;
                case DiscreteAction.PreviousPreset:
                    if (controller.currentPreset <= 0)
                    {
                        return;
                    }

                    controller.currentPreset--;
                    ScreenMessages.PostScreenMessage("PRESET: " + controller.GetCurrentPreset().name.ToUpper(), 1.0f, ScreenMessageStyle.UPPER_CENTER);
                    return;
                case DiscreteAction.CyclePresets:
                    controller.currentPreset++;
                    if (controller.currentPreset >= controller.presets.Count)
                    {
                        controller.currentPreset = 0;
                    }
                    ScreenMessages.PostScreenMessage("PRESET: " + controller.GetCurrentPreset().name.ToUpper(), 1.0f, ScreenMessageStyle.LOWER_CENTER);
                    return;
                case DiscreteAction.CameraZoomPlus:
                    m_CameraZoom.SetIncrement(1, controller.discreteActionStep);
                    return;
                case DiscreteAction.CameraZoomMinus:
                    m_CameraZoom.SetIncrement(-1, controller.discreteActionStep);
                    return;
                case DiscreteAction.CameraXPlus:
                    m_CameraHeading.SetIncrement(1, controller.discreteActionStep);
                    return;
                case DiscreteAction.CameraXMinus:
                    m_CameraHeading.SetIncrement(-1, controller.discreteActionStep);
                    return;
                case DiscreteAction.CameraYPlus:
                    m_CameraPitch.SetIncrement(1, controller.discreteActionStep);
                    return;
                case DiscreteAction.CameraYMinus:
                    m_CameraPitch.SetIncrement(-1, controller.discreteActionStep);
                    return;
                case DiscreteAction.OrbitMapToggle:
                    if (!MapView.MapIsEnabled)
                    {
                        MapView.EnterMapView();
                    }
                    else
                    {
                        MapView.ExitMapView();
                    }
                    return;
                case DiscreteAction.TimeWarpPlus:
                    WarpController.IncreaseWarp();
                    return;
                case DiscreteAction.TimeWarpMinus:
                    WarpController.DecreaseWarp();
                    return;
                case DiscreteAction.PhysicsTimeWarpPlus:
                    WarpController.IncreasePhysicsWarp();
                    return;
                case DiscreteAction.PhysicsTimeWarpMinus:
                    WarpController.DecreasePhysicsWarp();
                    return;
                case DiscreteAction.NavballToggle:
                    if (MapView.MapIsEnabled && MapView.fetch != null)
                    {
                      //  MapView.fetch.maneuverModeToggle.OnPress.Invoke();
                    }
                    return;
                case DiscreteAction.IVAViewToggle:
                    if (CameraManager.Instance != null)
                    {
                        CameraManager.Instance.SetCameraIVA();
                    }
                    return;
                case DiscreteAction.CameraViewToggle:
                    if (FlightCamera.fetch != null)
                    {
                        FlightCamera.fetch.SetNextMode();
                    }
                    return;
                case DiscreteAction.SASHold:
                    FlightGlobals.ActiveVessel.ActionGroups.SetGroup(KSPActionGroup.SAS, true);
                    return;
                case DiscreteAction.TogglePrecisionControls:
                    if (FlightInputHandler.fetch != null)
                    {
                        FlightInputHandler.fetch.precisionMode = !FlightInputHandler.fetch.precisionMode;
                        //Change color on flight input gauges manually. Hardcoded colors, but unlikely to change.
                        foreach (var r in FlightInputHandler.fetch.inputGaugeRenderers)
                        {
                            if (FlightInputHandler.fetch.precisionMode)
                                r.material.color = new Color(0.255f, 0.992f, 0.996f);
                            else
                                r.material.color = new Color(0.976f, 0.451f, 0.024f);
                        }
                    }
                    return;
                case DiscreteAction.ResetTrim:
                    m_Yaw.SetTrim(0.0f);
                    m_Pitch.SetTrim(0.0f);
                    m_Roll.SetTrim(0.0f);
                    return;
                case DiscreteAction.IVANextCamera:
                    CameraController.Instance.NextIVACamera();
                    return;
                case DiscreteAction.IVALookWindow:
                    CameraController.Instance.FocusIVAWindow();
                    return;
            }

            if (m_DisableVesselControls)
            {
                return;
            }

            // all other actions
            switch (action)
            {
                case DiscreteAction.Stage:
                    Staging.ActivateNextStage();
                    return;
                case DiscreteAction.Gear:
                    FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Gear);
                    return;
                case DiscreteAction.Light:
                    EVAController.Instance.ToggleHeadlamp();
                    FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Light);
                    return;
                case DiscreteAction.RCS:
                    FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.RCS);
                    return;
                case DiscreteAction.SAS:
                    FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.SAS);
                    return;
                case DiscreteAction.Brakes:
                    FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Brakes);
                    return;
                case DiscreteAction.BrakesHold:
                    FlightGlobals.ActiveVessel.ActionGroups.SetGroup(KSPActionGroup.Brakes, true);
                    return;
                case DiscreteAction.Abort:
                    FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Abort);
                    return;
                case DiscreteAction.Custom01:
                    FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom01);
                    return;
                case DiscreteAction.Custom02:
                    FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom02);
                    return;
                case DiscreteAction.Custom03:
                    FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom03);
                    return;
                case DiscreteAction.Custom04:
                    FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom04);
                    return;
                case DiscreteAction.Custom05:
                    FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom05);
                    return;
                case DiscreteAction.Custom06:
                    FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom06);
                    return;
                case DiscreteAction.Custom07:
                    FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom07);
                    return;
                case DiscreteAction.Custom08:
                    FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom08);
                    return;
                case DiscreteAction.Custom09:
                    FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom09);
                    return;
                case DiscreteAction.Custom10:
                    FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom10);
                    return;
                case DiscreteAction.SASHold:
                    FlightGlobals.ActiveVessel.ActionGroups.SetGroup(KSPActionGroup.SAS, true);
                    return;
                case DiscreteAction.LockStage:
                    if (FlightInputHandler.fetch != null)
                    {
                        FlightInputHandler.fetch.stageLock = !FlightInputHandler.fetch.stageLock;
                    }
                    return;
                case DiscreteAction.EVAInteract:
                    EVAController.Instance.DoInteract();
                    return;
                case DiscreteAction.EVAJump:
                    EVAController.Instance.DoJump();
                    return;
                case DiscreteAction.EVAToggleJetpack:
                    EVAController.Instance.ToggleJetpack();
                    return;
                case DiscreteAction.EVAAutoRunToggle:
                    EVAController.Instance.ToggleAutorun();
                    return;
                case DiscreteAction.EVAPlantFlag:
                    EVAController.Instance.DoPlantFlag();
                    return;
            }
        }
Example #23
0
        public void EvaluateDiscreteAction(ControllerConfiguration controller, DiscreteAction action, FlightCtrlState state)
        {
            switch (action)
            {
            case DiscreteAction.None:
                return;

            case DiscreteAction.YawPlus:
                m_Yaw.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.YawMinus:
                m_Yaw.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.PitchPlus:
                m_Pitch.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.PitchMinus:
                m_Pitch.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.PitchTrimPlus:
                m_Pitch.SetTrim(Utility.Clamp(m_Pitch.GetTrim() + controller.discreteActionStep, -1.0f, 1.0f));
                return;

            case DiscreteAction.PitchTrimMinus:
                m_Pitch.SetTrim(Utility.Clamp(m_Pitch.GetTrim() - controller.discreteActionStep, -1.0f, 1.0f));
                return;

            case DiscreteAction.RollPlus:
                m_Roll.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.RollMinus:
                m_Roll.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.XPlus:
                m_X.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.XMinus:
                m_X.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.YPlus:
                m_Y.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.YMinus:
                m_Y.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.ZPlus:
                m_Z.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.ZMinus:
                m_Z.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.ThrottlePlus:
                m_Throttle.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.ThrottleMinus:
                m_Throttle.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.CutThrottle:
                m_Throttle.SetValue(-state.mainThrottle);
                return;

            case DiscreteAction.FullThrottle:
                m_Throttle.SetValue(1.0f - state.mainThrottle);
                return;

            case DiscreteAction.NextPreset:
                if (controller.currentPreset >= controller.presets.Count - 1)
                {
                    return;
                }

                controller.currentPreset++;
                ScreenMessages.PostScreenMessage("PRESET: " + controller.GetCurrentPreset().name.ToUpper(), 1.0f, ScreenMessageStyle.UPPER_CENTER);
                return;

            case DiscreteAction.PreviousPreset:
                if (controller.currentPreset <= 0)
                {
                    return;
                }

                controller.currentPreset--;
                ScreenMessages.PostScreenMessage("PRESET: " + controller.GetCurrentPreset().name.ToUpper(), 1.0f, ScreenMessageStyle.UPPER_CENTER);
                return;

            case DiscreteAction.CyclePresets:
                controller.currentPreset++;
                if (controller.currentPreset >= controller.presets.Count)
                {
                    controller.currentPreset = 0;
                }
                ScreenMessages.PostScreenMessage("PRESET: " + controller.GetCurrentPreset().name.ToUpper(), 1.0f, ScreenMessageStyle.LOWER_CENTER);
                return;

            case DiscreteAction.CameraZoomPlus:
                m_CameraZoom.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.CameraZoomMinus:
                m_CameraZoom.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.CameraXPlus:
                m_CameraHeading.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.CameraXMinus:
                m_CameraHeading.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.CameraYPlus:
                m_CameraPitch.SetIncrement(1, controller.discreteActionStep);
                return;

            case DiscreteAction.CameraYMinus:
                m_CameraPitch.SetIncrement(-1, controller.discreteActionStep);
                return;

            case DiscreteAction.OrbitMapToggle:
                if (!MapView.MapIsEnabled)
                {
                    MapView.EnterMapView();
                }
                else
                {
                    MapView.ExitMapView();
                }
                return;

            case DiscreteAction.TimeWarpPlus:
                WarpController.IncreaseWarp();
                return;

            case DiscreteAction.TimeWarpMinus:
                WarpController.DecreaseWarp();
                return;

            case DiscreteAction.PhysicsTimeWarpPlus:
                WarpController.IncreasePhysicsWarp();
                return;

            case DiscreteAction.PhysicsTimeWarpMinus:
                WarpController.DecreasePhysicsWarp();
                return;

            case DiscreteAction.NavballToggle:
                if (MapView.MapIsEnabled && MapView.fetch != null)
                {
                    MapView.fetch.maneuverModeToggle.OnPress.Invoke();
                }
                return;

            case DiscreteAction.IVAViewToggle:
                if (CameraManager.Instance != null)
                {
                    CameraManager.Instance.SetCameraIVA();
                }
                return;

            case DiscreteAction.CameraViewToggle:
                if (FlightCamera.fetch != null)
                {
                    FlightCamera.fetch.SetNextMode();
                }
                return;

            case DiscreteAction.SASHold:
                FlightGlobals.ActiveVessel.ActionGroups.SetGroup(KSPActionGroup.SAS, true);
                return;

            case DiscreteAction.TogglePrecisionControls:
                if (FlightInputHandler.fetch != null)
                {
                    FlightInputHandler.fetch.precisionMode = !FlightInputHandler.fetch.precisionMode;
                    //Change color on flight input gauges manually. Hardcoded colors, but unlikely to change.
                    foreach (var r in FlightInputHandler.fetch.inputGaugeRenderers)
                    {
                        if (FlightInputHandler.fetch.precisionMode)
                        {
                            r.material.color = new Color(0.255f, 0.992f, 0.996f);
                        }
                        else
                        {
                            r.material.color = new Color(0.976f, 0.451f, 0.024f);
                        }
                    }
                }
                return;

            case DiscreteAction.ResetTrim:
                m_Yaw.SetTrim(0.0f);
                m_Pitch.SetTrim(0.0f);
                m_Roll.SetTrim(0.0f);
                state.ResetTrim();
                return;

            case DiscreteAction.IVANextCamera:
                CameraController.Instance.NextIVACamera();
                return;

            case DiscreteAction.IVALookWindow:
                CameraController.Instance.FocusIVAWindow();
                return;
            }

            if (m_DisableVesselControls)
            {
                return;
            }

            // all other actions
            switch (action)
            {
            case DiscreteAction.Stage:
                Staging.ActivateNextStage();
                return;

            case DiscreteAction.Gear:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Gear);
                return;

            case DiscreteAction.Light:
                EVAController.Instance.ToggleHeadlamp();
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Light);
                return;

            case DiscreteAction.RCS:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.RCS);
                return;

            case DiscreteAction.SAS:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.SAS);
                return;

            case DiscreteAction.Brakes:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Brakes);
                return;

            case DiscreteAction.BrakesHold:
                FlightGlobals.ActiveVessel.ActionGroups.SetGroup(KSPActionGroup.Brakes, true);
                return;

            case DiscreteAction.Abort:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Abort);
                return;

            case DiscreteAction.Custom01:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom01);
                return;

            case DiscreteAction.Custom02:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom02);
                return;

            case DiscreteAction.Custom03:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom03);
                return;

            case DiscreteAction.Custom04:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom04);
                return;

            case DiscreteAction.Custom05:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom05);
                return;

            case DiscreteAction.Custom06:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom06);
                return;

            case DiscreteAction.Custom07:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom07);
                return;

            case DiscreteAction.Custom08:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom08);
                return;

            case DiscreteAction.Custom09:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom09);
                return;

            case DiscreteAction.Custom10:
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(KSPActionGroup.Custom10);
                return;

            case DiscreteAction.SASHold:
                FlightGlobals.ActiveVessel.ActionGroups.SetGroup(KSPActionGroup.SAS, true);
                return;

            case DiscreteAction.LockStage:
                if (FlightInputHandler.fetch != null)
                {
                    FlightInputHandler.fetch.stageLock = !FlightInputHandler.fetch.stageLock;
                }
                return;

            case DiscreteAction.EVAInteract:
                EVAController.Instance.DoInteract();
                return;

            case DiscreteAction.EVAJump:
                EVAController.Instance.DoJump();
                return;

            case DiscreteAction.EVAToggleJetpack:
                EVAController.Instance.ToggleJetpack();
                return;

            case DiscreteAction.EVAAutoRunToggle:
                EVAController.Instance.ToggleAutorun();
                return;

            case DiscreteAction.EVAPlantFlag:
                EVAController.Instance.DoPlantFlag();
                return;
            }
        }
 public void EvaluateContinuousAction(ControllerConfiguration controller, ContinuousAction action, float value, FlightCtrlState state)
 {
     switch (action)
     {
         case ContinuousAction.None:
             return;
         case ContinuousAction.Yaw:
             m_Yaw.SetValue(value);
             return;
         case ContinuousAction.NegativeYaw:
             m_Yaw.SetValue(-value);
             return;
         case ContinuousAction.YawTrim:
             m_Yaw.SetTrim(Utility.Clamp(m_Yaw.GetTrim() + controller.incrementalActionSensitivity * value * Time.deltaTime, -1.0f, 1.0f));
             return;
         case ContinuousAction.Pitch:
             m_Pitch.SetValue(value);
             return;
         case ContinuousAction.NegativePitch:
             m_Pitch.SetValue(-value);
             return;
         case ContinuousAction.PitchTrim:
             m_Pitch.SetTrim(Utility.Clamp(m_Pitch.GetTrim() + controller.incrementalActionSensitivity * value * Time.deltaTime, -1.0f, 1.0f));
             return;
         case ContinuousAction.Roll:
             m_Roll.SetValue(value);
             return;
         case ContinuousAction.NegativeRoll:
             m_Roll.SetValue(-value);
             return;
         case ContinuousAction.RollTrim:
             m_Roll.SetTrim(Utility.Clamp(m_Roll.GetTrim() + controller.incrementalActionSensitivity * value * Time.deltaTime, -1.0f, 1.0f));
             return;
         case ContinuousAction.X:
             m_X.SetValue(value);
             return;
         case ContinuousAction.NegativeX:
             m_X.SetValue(-value);
             return;
         case ContinuousAction.Y:
             m_Y.SetValue(value);
             return;
         case ContinuousAction.NegativeY:
             m_Y.SetValue(-value);
             return;
         case ContinuousAction.Z:
             m_Z.SetValue(value);
             return;
         case ContinuousAction.NegativeZ:
             m_Z.SetValue(-value);
             return;
         case ContinuousAction.Throttle:
             m_Throttle.SetMinMaxValues(-state.mainThrottle, 1.0f - state.mainThrottle);
             m_Throttle.SetValue(value - state.mainThrottle);
             return;
         case ContinuousAction.ThrottleIncrement:
             m_Throttle.Increment(value * controller.incrementalActionSensitivity * Time.deltaTime);
             return;
         case ContinuousAction.ThrottleDecrement:
             m_Throttle.Increment(-value * controller.incrementalActionSensitivity * Time.deltaTime);
             return;
         case ContinuousAction.WheelThrottle:
             m_WheelThrottle.SetMinMaxValues(-1.0f, 1.0f);
             m_WheelThrottle.SetValue(value);
             return;
         case ContinuousAction.WheelSteer:
             m_WheelSteer.SetValue(value);
             return;
         case ContinuousAction.WheelThrottleTrim:
             m_WheelThrottle.SetTrim(Utility.Clamp(m_WheelThrottle.GetTrim() + value * controller.incrementalActionSensitivity * Time.deltaTime, -1.0f, 1.0f));
             return;
         case ContinuousAction.WheelSteerTrim:
             m_WheelSteer.SetTrim(Utility.Clamp(m_WheelSteer.GetTrim() + value * controller.incrementalActionSensitivity * Time.deltaTime, -1.0f, 1.0f));
             return;
         case ContinuousAction.CameraX:
             m_CameraHeading.Increment(value);
             return;
         case ContinuousAction.CameraY:
             m_CameraPitch.Increment(value);
             return;
         case ContinuousAction.CameraZoom:
             m_CameraZoom.Increment(value);
             return;
     }
 }