mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 10:22:45 -04:00
added forceTransition
This commit is contained in:
parent
6cb8258b41
commit
19f7b146df
@ -192,7 +192,8 @@ class FSM(DirectObject):
|
|||||||
self.__enter(aState, enterArgList)
|
self.__enter(aState, enterArgList)
|
||||||
assert(not self.__internalStateInFlux)
|
assert(not self.__internalStateInFlux)
|
||||||
|
|
||||||
def request(self, aStateName, enterArgList=[], exitArgList=[]):
|
def request(self, aStateName, enterArgList=[], exitArgList=[],
|
||||||
|
force=0):
|
||||||
"""request(self, string)
|
"""request(self, string)
|
||||||
Attempt transition from currentState to given one.
|
Attempt transition from currentState to given one.
|
||||||
Return true is transition exists to given state,
|
Return true is transition exists to given state,
|
||||||
@ -224,7 +225,7 @@ class FSM(DirectObject):
|
|||||||
FSM.notify.error("[%s]: request: %s, no such state" %
|
FSM.notify.error("[%s]: request: %s, no such state" %
|
||||||
(self.__name, aStateName))
|
(self.__name, aStateName))
|
||||||
|
|
||||||
if (aStateName in self.__currentState.getTransitions()):
|
if force or (aStateName in self.__currentState.getTransitions()):
|
||||||
self.__transition(aState,
|
self.__transition(aState,
|
||||||
enterArgList,
|
enterArgList,
|
||||||
exitArgList)
|
exitArgList)
|
||||||
@ -261,6 +262,10 @@ class FSM(DirectObject):
|
|||||||
return 0
|
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=[]):
|
def conditional_request(self, aStateName, enterArgList=[], exitArgList=[]):
|
||||||
"""request(self, string)
|
"""request(self, string)
|
||||||
Attempt transition from currentState to given one, if it exists.
|
Attempt transition from currentState to given one, if it exists.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user