override public float Run()
        {
            Player player = KickStarter.player;

            if (KickStarter.playerInput)
            {
                if (IsSingleLockMovement())
                {
                    doLeftLock  = doUpLock;
                    doRightLock = doUpLock;
                    doDownLock  = doUpLock;
                }

                if (doUpLock == LockType.Disabled)
                {
                    KickStarter.playerInput.SetUpLock(true);
                }
                else if (doUpLock == LockType.Enabled)
                {
                    KickStarter.playerInput.SetUpLock(false);
                }

                if (doDownLock == LockType.Disabled)
                {
                    KickStarter.playerInput.SetDownLock(true);
                }
                else if (doDownLock == LockType.Enabled)
                {
                    KickStarter.playerInput.SetDownLock(false);
                }

                if (doLeftLock == LockType.Disabled)
                {
                    KickStarter.playerInput.SetLeftLock(true);
                }
                else if (doLeftLock == LockType.Enabled)
                {
                    KickStarter.playerInput.SetLeftLock(false);
                }

                if (doRightLock == LockType.Disabled)
                {
                    KickStarter.playerInput.SetRightLock(true);
                }
                else if (doRightLock == LockType.Enabled)
                {
                    KickStarter.playerInput.SetRightLock(false);
                }

                if (KickStarter.settingsManager.movementMethod != MovementMethod.PointAndClick)
                {
                    if (doJumpLock == LockType.Disabled)
                    {
                        KickStarter.playerInput.SetJumpLock(true);
                    }
                    else if (doJumpLock == LockType.Enabled)
                    {
                        KickStarter.playerInput.SetJumpLock(false);
                    }
                }

                if (IsInFirstPerson())
                {
                    if (freeAimLock == LockType.Disabled)
                    {
                        KickStarter.playerInput.SetFreeAimLock(true);
                    }
                    else if (freeAimLock == LockType.Enabled)
                    {
                        KickStarter.playerInput.SetFreeAimLock(false);
                    }
                }

                if (cursorState == LockType.Disabled)
                {
                    KickStarter.playerInput.SetInGameCursorState(false);
                }
                else if (cursorState == LockType.Enabled)
                {
                    KickStarter.playerInput.SetInGameCursorState(true);
                }

                if (doRunLock != PlayerMoveLock.NoChange)
                {
                    KickStarter.playerInput.runLock = doRunLock;
                }
            }

            if (player)
            {
                if (movePath)
                {
                    player.SetLockedPath(movePath);
                    player.SetMoveDirectionAsForward();
                }
                else if (player.GetPath())
                {
                    if (player.IsPathfinding() && !ChangingMovementLock() && (doRunLock == PlayerMoveLock.AlwaysWalk || doRunLock == PlayerMoveLock.AlwaysRun))
                    {
                        if (doRunLock == PlayerMoveLock.AlwaysRun)
                        {
                            player.GetPath().pathSpeed = PathSpeed.Run;
                            player.isRunning = true;
                        }
                        else if (doRunLock == PlayerMoveLock.AlwaysWalk)
                        {
                            player.GetPath().pathSpeed = PathSpeed.Walk;
                            player.isRunning = false;
                        }
                    }
                    else
                    {
                        player.EndPath();
                    }
                }

                if (doGravityLock == LockType.Enabled)
                {
                    player.ignoreGravity = false;
                }
                else if (doGravityLock == LockType.Disabled)
                {
                    player.ignoreGravity = true;
                }

                if (AllowHeadTurning())
                {
                    if (doHotspotHeadTurnLock == LockType.Disabled)
                    {
                        player.SetHotspotHeadTurnLock(true);
                    }
                    else if (doHotspotHeadTurnLock == LockType.Enabled)
                    {
                        player.SetHotspotHeadTurnLock(false);
                    }
                }
            }

            return(0f);
        }