Beispiel #1
0
        public void FireTransition(GraphTransition transitionToFire)
        {
            transitionToFire.TransitionIsFired();


            if (transitionToFire.GetNodeFrom() == m_token)
            {
                m_token = transitionToFire.GetNodeTo();

                if (m_token.GetNodeType() == NODE_TYPE.ROOM_TYPE)
                {
                    Room currentRoom = (Room)m_token;

                    List <GraphTransition> outGoingTransitions = currentRoom.GetOutgoingTransitions();

                    foreach (GraphTransition currentTransition in outGoingTransitions)
                    {
                        if (currentTransition.ShouldBeAutomaticallyFired())
                        {
                            //	GenericLog.Log("heyaaaaaaa2");
                            FireTransition(currentTransition);
                            return;
                        }
                    }



                    foreach (string soundName in transitionToFire.GetTransitionSound())
                    {
                        m_informationManager.AddTransitionSoundsToPlay(soundName);
                    }
                }
            }
        }
        public bool IsTransitionEventReady(GraphTransition transition)
        {
            foreach (string currentEvent in transition.GetRequieredEvents())
            {
                if (!HasEvent(currentEvent))
                {
                    return(false);
                }
            }

            foreach (string currentEvent in transition.GetBlockingEvents())
            {
                if (HasEvent(currentEvent))
                {
                    return(false);
                }
            }

            return(true);
        }
        public void ComputeTransitionEvent(GraphTransition transition)
        {
            /* foreach (string currentEvent in transition.GetEventsToAdd())
             * {
             *   AddEvent(currentEvent);
             * }
             *
             * foreach (string currentEvent in transition.GetEventsToRemove())
             * {
             *   RemoveEvent(currentEvent);
             * }*/

            foreach (string currentEvent in transition.PopEventsToAdd())
            {
                AddEvent(currentEvent);
            }

            foreach (string currentEvent in transition.PopEventsToRemove())
            {
                RemoveEvent(currentEvent);
            }
        }
Beispiel #4
0
 public void AddIngoingTransition(GraphTransition inTransition)
 {
     m_ingoingTransitions.Add(inTransition);
 }
Beispiel #5
0
 public void AddOutgoingTransition(GraphTransition outTransition)
 {
     m_outgoingTransitions.Add(outTransition);
 }