From 19f7b146df127f9fdae647f195a92d46e551e9f6 Mon Sep 17 00:00:00 2001 From: Darren Ranalli Date: Fri, 27 Sep 2002 23:27:34 +0000 Subject: [PATCH] added forceTransition --- direct/src/fsm/FSM.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/direct/src/fsm/FSM.py b/direct/src/fsm/FSM.py index 057a98b861..1aa39185c8 100644 --- a/direct/src/fsm/FSM.py +++ b/direct/src/fsm/FSM.py @@ -192,7 +192,8 @@ class FSM(DirectObject): self.__enter(aState, enterArgList) assert(not self.__internalStateInFlux) - def request(self, aStateName, enterArgList=[], exitArgList=[]): + def request(self, aStateName, enterArgList=[], exitArgList=[], + force=0): """request(self, string) Attempt transition from currentState to given one. Return true is transition exists to given state, @@ -224,7 +225,7 @@ class FSM(DirectObject): FSM.notify.error("[%s]: request: %s, no such state" % (self.__name, aStateName)) - if (aStateName in self.__currentState.getTransitions()): + if force or (aStateName in self.__currentState.getTransitions()): self.__transition(aState, enterArgList, exitArgList) @@ -261,6 +262,10 @@ class FSM(DirectObject): return 0 + def forceTransition(self, aStateName, enterArgList=[], exitArgList=[]): + """ force a transition """ + self.request(aStateName, enterArgList, exitArgList, force=1) + def conditional_request(self, aStateName, enterArgList=[], exitArgList=[]): """request(self, string) Attempt transition from currentState to given one, if it exists.