예제 #1
0
 public TestActionState(EActionStateId inActionStateId, ActionStateInfo inActionStateInfo)
     : base(inActionStateId, inActionStateInfo)
 {
     OnStartCalled  = false;
     OnUpdateCalled = false;
     OnEndCalled    = false;
 }
예제 #2
0
        public void Start_NullState_DoesNotSetState()
        {
            const EActionStateId expectedStartingActionState = EActionStateId.Null;

            _character.StartingState = expectedStartingActionState;
            _character.TestStart();

            Assert.IsNull(_stateMachine.RequestedId);
        }
        public void RequestActionState_SetsTrackToNewIdAndIsActionStateActiveReturnsTrue()
        {
            const EActionStateId           expectedStateId = EActionStateId.Locomotion;
            const EActionStateMachineTrack changedTrack    = EActionStateMachineTrack.Locomotion;

            _actionStateMachineComponent.RequestActionState(changedTrack, expectedStateId, new ActionStateInfo());

            Assert.IsTrue(_actionStateMachineComponent.IsActionStateActiveOnTrack(changedTrack, expectedStateId));
        }
예제 #4
0
        public void Start_SetsLocomotionTrackToStartingState()
        {
            const EActionStateId expectedStartingActionState = EActionStateId.Spawning;

            _character.StartingState = expectedStartingActionState;
            _character.TestStart();

            Assert.AreEqual(expectedStartingActionState, _stateMachine.RequestedId);
            Assert.AreEqual(EActionStateMachineTrack.Locomotion, _stateMachine.RequestedTrack);
        }
        public void IsActionStateActiveOnTrack_CorrectTrackWrongId_False()
        {
            const EActionStateId           wrongId         = EActionStateId.Null;
            const EActionStateId           expectedStateId = EActionStateId.Locomotion;
            const EActionStateMachineTrack changedTrack    = EActionStateMachineTrack.Locomotion;

            _actionStateMachineComponent.RequestActionState(changedTrack, expectedStateId, new ActionStateInfo());

            Assert.IsFalse(_actionStateMachineComponent.IsActionStateActiveOnTrack(changedTrack, wrongId));
        }
        public void RequestActionState_SetsCallsEndOnPriorActionStateAndStartOnNewOne()
        {
            const EActionStateId           newStateId   = EActionStateId.Null;
            const EActionStateId           oldStateId   = EActionStateId.Locomotion;
            const EActionStateMachineTrack changedTrack = EActionStateMachineTrack.Locomotion;

            _actionStateMachineComponent.RequestActionState(changedTrack, oldStateId, new ActionStateInfo());
            var oldActionState = (TestActionState)_actionStateMachineComponent.GetActionStateOnTrack(changedTrack);

            _actionStateMachineComponent.RequestActionState(changedTrack, newStateId, new ActionStateInfo());
            var newActionState = (TestActionState)_actionStateMachineComponent.GetActionStateOnTrack(changedTrack);

            Assert.IsTrue(oldActionState.OnEndCalled);
            Assert.IsTrue(newActionState.OnStartCalled);
        }
 public bool IsActionStateActiveOnTrack(EActionStateMachineTrack selectedTrack, EActionStateId expectedId)
 {
     IsActionStateActiveTrackQuery = selectedTrack;
     IsActionStateActiveIdQuery    = expectedId;
     return(IsActionStateActiveResult);
 }
 public void RequestActionState(EActionStateMachineTrack selectedTrack, EActionStateId inId, ActionStateInfo inInfo)
 {
     RequestedTrack = selectedTrack;
     RequestedId    = inId;
     RequestedInfo  = inInfo;
 }
예제 #9
0
 public ActionState CreateActionState(EActionStateId inId, ActionStateInfo inInfo)
 {
     return(new TestActionState(inId, inInfo));
 }
예제 #10
0
 // IActionStateCreatorInterface
 public ActionState CreateActionState(EActionStateId inId, ActionStateInfo inInfo)
 {
     return(_definitions.Definitions[inId](inInfo));
 }
예제 #11
0
 public virtual bool IsActionStateActiveOnTrack(EActionStateMachineTrack selectedTrack, EActionStateId expectedId)
 {
     return(ActiveActionStates[selectedTrack].ActionStateId == expectedId);
 }
예제 #12
0
        // IActionStateMachineInterface
        public virtual void RequestActionState(EActionStateMachineTrack selectedTrack, EActionStateId inId, ActionStateInfo inInfo)
        {
            var newState = Creator.CreateActionState(inId, inInfo);

            ActiveActionStates[selectedTrack].End();
            ActiveActionStates[selectedTrack] = newState;
            newState.Start();
        }
예제 #13
0
 protected ActionState(EActionStateId inActionStateId, ActionStateInfo inInfo)
 {
     ActionStateId = inActionStateId;
     Info          = inInfo;
 }