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); }