private void CannotMove_Update() { if (CurrentLocomotionType.CanMove()) { FSM.ChangeState(FStatesLocomotion.NotMoving); } }
private void NotMoving_Enter() { if (!CurrentLocomotionType.CanMove()) { FSM.ChangeState(FStatesLocomotion.CannotMove); } }
protected override void MovingToPosition_Update() { base.MovingToPosition_Update(); if (FocusedOnPosition != null) { CurrentLocomotionType.MoveTowardsPosition(_fullspeed); } }
private void MovingAwayFromPositionOnStarted_Listener() { try { CurrentLocomotionType.MoveAway(_fullspeed); } catch (System.Exception ex) { LogErrorLocomotion(ex); FSM.ChangeState(FStatesLocomotion.CannotMove); } }
private bool MoveCommon(FStatesLocomotion moveType, bool fullspeed = true, DistanceType?stopMovementCondition = null) { StopMovementCondition = stopMovementCondition; if (!CurrentLocomotionType.CanMove() || HasReachedDestination()) { // StopMovementCondition = null; // StopMovementConditions.NONE; return(false); } _fullspeed = fullspeed; FSM.ChangeState(moveType); return(true); }
private void MovingToTarget_Update() { if (!CurrentLocomotionType.CanMove()) { FSM.ChangeState(FStatesLocomotion.CannotMove); } else if (IsNotFocusedOrReachedDestination()) { FSM.ChangeState(FStatesLocomotion.NotMoving); } else { MoveTowardsTarget(_fullspeed); } }
protected virtual void MovingToPosition_Update() { if (!CurrentLocomotionType.CanMove()) { FSM.ChangeState(FStatesLocomotion.CannotMove); } else if (IsNotFocusedOrReachedDestination()) { if (FocusedOnPosition != null) { OnDestinationReached.Invoke(FocusedOnPosition.Value); } FSM.ChangeState(FStatesLocomotion.NotMoving); } }
public bool MoveTowardsTarget(bool fullspeed = true) { if (FocusedOnTransform == null) { FSM.ChangeState(FStatesLocomotion.NotMoving); return(false); } FocusOnPosition(FocusedOnTransform.position); try { return(CurrentLocomotionType.MoveTowardsPosition(fullspeed)); } catch (System.Exception ex) { LogErrorLocomotion(ex); FSM.ChangeState(FStatesLocomotion.CannotMove); return(false); } }
private void MovingAwayFromTarget_Update() { if (!CurrentLocomotionType.CanMove()) { FSM.ChangeState(FStatesLocomotion.CannotMove); } else if (IsNotFocusedOrIsAway()) { FSM.ChangeState(FStatesLocomotion.NotMoving); } else { try { CurrentLocomotionType.MoveAway(); } catch (System.Exception ex) { LogErrorLocomotion(ex); FSM.ChangeState(FStatesLocomotion.CannotMove); } } }
private void OnStateChanged_Listener(FStatesLocomotion state) { CurrentLocomotionType.OnStateChange(state); }
public bool HasReachedDestination() { return(StopMovementCondition == null ? false : CurrentLocomotionType.HasReachedDestination(StopMovementCondition.Value)); }
public void MoveTowardsPosition(bool fullspeed = true) { CurrentLocomotionType.MoveTowardsPosition(fullspeed); }
public void RotateTowardsPosition() { CurrentLocomotionType.RotateTowardsPosition(); }