コード例 #1
0
ファイル: CoRoutine.cs プロジェクト: Deusald/DeusaldSharp
        internal CoRoutine(IEnumerator <ICoData> enumerator, uint coId, CoSegment coSegment, CoTag coTag, uint coMask)
        {
            CoSegment      = coSegment;
            CoTag          = coTag;
            CoMask         = coMask;
            _SecondsToWait = 0f;
            _CoId          = coId;
            _Enumerator    = enumerator;
            _CoState       = CoState.Running;

            Register();
        }
コード例 #2
0
ファイル: CoRoutine.cs プロジェクト: Deusald/DeusaldSharp
        private void CoRoutineNextStep()
        {
            _CoState = CoState.Running;

            bool isEnd = !_Enumerator.MoveNext();

            if (isEnd)
            {
                _CoState = CoState.End;
                return;
            }

            ICoData currentState = _Enumerator.Current;

            switch (currentState !.Type)
            {
コード例 #3
0
        IEnumerator SendData(CoState <string> state)
        {
            while (state.timer.Elapsed < 2)
            {
                RotateAtSpeed(100f);
                // Wait until the next frame
                yield return(null);
            }

            while (state.timer.Elapsed < 4)
            {
                RotateAtSpeed(-100f);
                yield return(null);
            }

            state.timer.Reset();
            // Because needsExitTime is true, we have to tell the FSM when it can
            // safely exit the state
            state.fsm.StateCanExit();
        }
コード例 #4
0
ファイル: CoRoutine.cs プロジェクト: Deusald/DeusaldSharp
 public void Kill()
 {
     _CoState = CoState.End;
 }