mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-02 09:52:27 -04:00
further correct comments
This commit is contained in:
parent
3f42589532
commit
57c1ff65fb
@ -62,29 +62,37 @@ class FSM(DirectObject.DirectObject):
|
|||||||
|
|
||||||
def filterRed(self, request, args):
|
def filterRed(self, request, args):
|
||||||
if request in ['Green']:
|
if request in ['Green']:
|
||||||
return request
|
return (request,) + args
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def filterYellow(self, request, args):
|
def filterYellow(self, request, args):
|
||||||
if request in ['Red']:
|
if request in ['Red']:
|
||||||
return request
|
return (request,) + args
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def filterGreen(self, request, args):
|
def filterGreen(self, request, args):
|
||||||
if request in ['Yellow']:
|
if request in ['Yellow']:
|
||||||
return request
|
return (request,) + args
|
||||||
return None
|
return None
|
||||||
|
|
||||||
As above, the filterState() functions are optional. If any is
|
As above, the filterState() functions are optional. If any is
|
||||||
omitted, the defaultFilter() method is called instead. The
|
omitted, the defaultFilter() method is called instead. A standard
|
||||||
default definition of defaultFilter() always returns None, thus
|
implementation of defaultFilter() is provided, which may be
|
||||||
disallowing all unexpected transitions. This default behavior may
|
overridden in a derived class to change the behavior on an
|
||||||
be overridden in a derived class.
|
unexpected transition.
|
||||||
|
|
||||||
FSM.state may be queried at any time other than during the
|
If self.defaultTransitions is left unassigned, then the standard
|
||||||
|
implementation of defaultFilter() will return None for any
|
||||||
|
lowercase transition name and allow any uppercase transition name
|
||||||
|
(this assumes that an uppercase name is a request to go directly
|
||||||
|
to a particular state by name).
|
||||||
|
|
||||||
|
self.state may be queried at any time other than during the
|
||||||
handling of the enter() and exit() functions. During these
|
handling of the enter() and exit() functions. During these
|
||||||
functions, FSM.state contains the value None (you are not really
|
functions, self.state contains the value None (you are not really
|
||||||
in any state during the transition). At other times, FSM.state
|
in any state during the transition). However, during a transition
|
||||||
|
you *can* query the outgoing and incoming states, respectively,
|
||||||
|
via self.oldState and self.newState. At other times, self.state
|
||||||
contains the name of the current state.
|
contains the name of the current state.
|
||||||
|
|
||||||
Initially, the FSM is in state 'Off'. It does not call enterOff()
|
Initially, the FSM is in state 'Off'. It does not call enterOff()
|
||||||
@ -191,11 +199,24 @@ class FSM(DirectObject.DirectObject):
|
|||||||
|
|
||||||
def defaultFilter(self, request, args):
|
def defaultFilter(self, request, args):
|
||||||
"""This is the function that is called if there is no
|
"""This is the function that is called if there is no
|
||||||
filterState() method for a particular state name. By default,
|
filterState() method for a particular state name.
|
||||||
the filter defined here in the base class always returns
|
|
||||||
None, disallowing any transition. Specialized FSM's may wish
|
This default filter function behaves in one of two modes:
|
||||||
to redefine this default filter (for instance, to always
|
|
||||||
return the request itself, thus allowing any transition.)."""
|
(1) if self.defaultTransitions is None, allow any request
|
||||||
|
whose name begins with a capital letter, which is assumed to
|
||||||
|
be a direct request to a particular state. This is similar to
|
||||||
|
the old ClassicFSM onUndefTransition=ALLOW, with no explicit
|
||||||
|
state transitions listed.
|
||||||
|
|
||||||
|
(2) if self.defaultTransitions is not None, allow only those
|
||||||
|
requests explicitly identified in this map. This is similar
|
||||||
|
to the old ClassicFSM onUndefTransition=DISALLOW, with an
|
||||||
|
explicit list of allowed state transitions.
|
||||||
|
|
||||||
|
Specialized FSM's may wish to redefine this default filter
|
||||||
|
(for instance, to always return the request itself, thus
|
||||||
|
allowing any transition.)."""
|
||||||
|
|
||||||
if request == 'Off':
|
if request == 'Off':
|
||||||
# We can always go to the "Off" state.
|
# We can always go to the "Off" state.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user