예제 #1
0
        public StateTransition(MapState next, MapState current)
        {
            this.next = next;
            this.current = current;

            endPoint = current.Position;
        }
예제 #2
0
        /// <summary>
        /// Jos quessa on seuraava state, asettaa sen aktiiviseksi.
        /// </summary>
        public void ChangeNextState()
        {
            currentMapState = nextMapState;
            nextMapState = null;

            currentMapState.Start();
        }
예제 #3
0
 public MapStateManagerEventArgs(MapState last, MapState next)
 {
     Last = last;
     Next = next;
 }
예제 #4
0
 public MapStateManagerEventArgs(MapState last, MapState next)
 {
     Last = last;
     Next = next;
 }
예제 #5
0
        /// <summary>
        /// Vaihtaa seuraavan staten.
        /// </summary>
        private void ChangeState()
        {
            if (!Finished && nextMapState == null)
            {
                MapState lastMapState = currentMapState;

                // Jos on jo state, otetaan seuraava vain talteen.
                if (currentMapState != null)
                {
                    nextMapState = GetNextState();
                }
                else
                {
                    // Jos meillä ei ole state, tulee toisto aloittaa.
                    currentMapState = GetNextState();
                    currentMapState.Start();
                }

                if (lastMapState != null && lastMapState.Finished)
                {
                    if (OnStateFinished != null)
                    {
                        OnStateFinished(this, new MapStateManagerEventArgs(lastMapState, nextMapState));
                    }
                }
            }
        }