mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-02 09:52:27 -04:00
Fix a TypeError in direct.fsm.FSM
This commit is contained in:
parent
733456cb41
commit
7e20626915
@ -149,7 +149,7 @@ class FSM(DirectObject):
|
|||||||
|
|
||||||
def __init__(self, name):
|
def __init__(self, name):
|
||||||
self.fsmLock = RLock()
|
self.fsmLock = RLock()
|
||||||
self.name = name
|
self._name = name
|
||||||
self.stateArray = []
|
self.stateArray = []
|
||||||
self._serialNum = FSM.SerialNum
|
self._serialNum = FSM.SerialNum
|
||||||
FSM.SerialNum += 1
|
FSM.SerialNum += 1
|
||||||
@ -185,7 +185,7 @@ class FSM(DirectObject):
|
|||||||
# the messenger on every state change. The new and old states are
|
# the messenger on every state change. The new and old states are
|
||||||
# accessible as self.oldState and self.newState, and the transition
|
# accessible as self.oldState and self.newState, and the transition
|
||||||
# functions will already have been called.
|
# functions will already have been called.
|
||||||
return 'FSM-%s-%s-stateChange' % (self._serialNum, self.name)
|
return 'FSM-%s-%s-stateChange' % (self._serialNum, self._name)
|
||||||
|
|
||||||
def getCurrentFilter(self):
|
def getCurrentFilter(self):
|
||||||
if not self.state:
|
if not self.state:
|
||||||
@ -240,7 +240,7 @@ class FSM(DirectObject):
|
|||||||
try:
|
try:
|
||||||
assert isinstance(request, str)
|
assert isinstance(request, str)
|
||||||
self.notify.debug("%s.forceTransition(%s, %s" % (
|
self.notify.debug("%s.forceTransition(%s, %s" % (
|
||||||
self.name, request, str(args)[1:]))
|
self._name, request, str(args)[1:]))
|
||||||
|
|
||||||
if not self.state:
|
if not self.state:
|
||||||
# Queue up the request.
|
# Queue up the request.
|
||||||
@ -268,7 +268,7 @@ class FSM(DirectObject):
|
|||||||
try:
|
try:
|
||||||
assert isinstance(request, str)
|
assert isinstance(request, str)
|
||||||
self.notify.debug("%s.demand(%s, %s" % (
|
self.notify.debug("%s.demand(%s, %s" % (
|
||||||
self.name, request, str(args)[1:]))
|
self._name, request, str(args)[1:]))
|
||||||
if not self.state:
|
if not self.state:
|
||||||
# Queue up the request.
|
# Queue up the request.
|
||||||
self.__requestQueue.append(PythonUtil.Functor(
|
self.__requestQueue.append(PythonUtil.Functor(
|
||||||
@ -307,7 +307,7 @@ class FSM(DirectObject):
|
|||||||
try:
|
try:
|
||||||
assert isinstance(request, str)
|
assert isinstance(request, str)
|
||||||
self.notify.debug("%s.request(%s, %s" % (
|
self.notify.debug("%s.request(%s, %s" % (
|
||||||
self.name, request, str(args)[1:]))
|
self._name, request, str(args)[1:]))
|
||||||
|
|
||||||
filter = self.getCurrentFilter()
|
filter = self.getCurrentFilter()
|
||||||
result = filter(request, args)
|
result = filter(request, args)
|
||||||
@ -385,7 +385,7 @@ class FSM(DirectObject):
|
|||||||
|
|
||||||
# In either case, we quietly ignore unhandled command
|
# In either case, we quietly ignore unhandled command
|
||||||
# (lowercase) requests.
|
# (lowercase) requests.
|
||||||
assert self.notify.debug("%s ignoring request %s from state %s." % (self.name, request, self.state))
|
assert self.notify.debug("%s ignoring request %s from state %s." % (self._name, request, self.state))
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def filterOff(self, request, args):
|
def filterOff(self, request, args):
|
||||||
@ -444,7 +444,7 @@ class FSM(DirectObject):
|
|||||||
# Internal function to change unconditionally to the indicated
|
# Internal function to change unconditionally to the indicated
|
||||||
# state.
|
# state.
|
||||||
assert self.state
|
assert self.state
|
||||||
assert self.notify.debug("%s to state %s." % (self.name, newState))
|
assert self.notify.debug("%s to state %s." % (self._name, newState))
|
||||||
|
|
||||||
self.oldState = self.state
|
self.oldState = self.state
|
||||||
self.newState = newState
|
self.newState = newState
|
||||||
@ -476,7 +476,7 @@ class FSM(DirectObject):
|
|||||||
|
|
||||||
if self.__requestQueue:
|
if self.__requestQueue:
|
||||||
request = self.__requestQueue.pop(0)
|
request = self.__requestQueue.pop(0)
|
||||||
assert self.notify.debug("%s continued queued request." % (self.name))
|
assert self.notify.debug("%s continued queued request." % (self._name))
|
||||||
request()
|
request()
|
||||||
|
|
||||||
def __callEnterFunc(self, name, *args):
|
def __callEnterFunc(self, name, *args):
|
||||||
@ -525,9 +525,9 @@ class FSM(DirectObject):
|
|||||||
try:
|
try:
|
||||||
className = self.__class__.__name__
|
className = self.__class__.__name__
|
||||||
if self.state:
|
if self.state:
|
||||||
str = ('%s FSM:%s in state "%s"' % (className, self.name, self.state))
|
str = ('%s FSM:%s in state "%s"' % (className, self._name, self.state))
|
||||||
else:
|
else:
|
||||||
str = ('%s FSM:%s in transition from \'%s\' to \'%s\'' % (className, self.name, self.oldState, self.newState))
|
str = ('%s FSM:%s in transition from \'%s\' to \'%s\'' % (className, self._name, self.oldState, self.newState))
|
||||||
return str
|
return str
|
||||||
finally:
|
finally:
|
||||||
self.fsmLock.release()
|
self.fsmLock.release()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user