From caca39b04af149661544f51eb9b5027e17597213 Mon Sep 17 00:00:00 2001 From: Darren Ranalli Date: Mon, 6 Jul 2009 21:44:52 +0000 Subject: [PATCH] added pushCurrentState, removed initial automatic call from FunctionCall --- direct/src/fsm/StatePush.py | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/direct/src/fsm/StatePush.py b/direct/src/fsm/StatePush.py index dc95bff985..b26d93a5e0 100755 --- a/direct/src/fsm/StatePush.py +++ b/direct/src/fsm/StatePush.py @@ -24,6 +24,10 @@ class PushesStateChanges: def getState(self): return self._value + def pushCurrentState(self): + self._handleStateChange() + return self + def _addSubscription(self, subscriber): self._subscribers.add(subscriber) subscriber._recvStatePush(self) @@ -213,8 +217,9 @@ class FunctionCall(ReceivesMultipleStateChanges, PushesStateChanges): else: self._bakedKargs[key] = arg self._initialized = True - # push the current state to any listeners - self._handleStateChange() + # call pushCurrentState() instead + ## push the current state to any listeners + ##self._handleStateChange() def destroy(self): ReceivesMultipleStateChanges.destroy(self) @@ -252,6 +257,8 @@ if __debug__: assert l == [] sv = StateVar(0) fc = FunctionCall(handler, sv) + assert l == [] + fc.pushCurrentState() assert l == [0,] sv.set(1) assert l == [0,1,] @@ -271,6 +278,8 @@ if __debug__: sv = StateVar(0) ksv = StateVar('a') fc = FunctionCall(handler, sv, kValue=ksv) + assert l == [] + fc.pushCurrentState() assert l == [(0,'a',),] sv.set(1) assert l == [(0,'a'),(1,'a'),] @@ -349,6 +358,8 @@ if __debug__: l.append(value) p = Pulse() fc = FunctionCall(handler, p) + assert l == [] + fc.pushCurrentState() assert l == [False, ] p.sendPulse() assert l == [False, True, False, ] @@ -377,11 +388,11 @@ if __debug__: l.append(value) ep = EventPulse('testEvent') fc = FunctionCall(handler, ep) - assert l == [False, ] + assert l == [] messenger.send('testEvent') - assert l == [False, True, False, ] + assert l == [True, False, ] messenger.send('testEvent') - assert l == [False, True, False, True, False, ] + assert l == [True, False, True, False, ] fc.destroy() ep.destroy() del fc @@ -410,6 +421,9 @@ if __debug__: l.append(value) ea = EventArgument('testEvent', index=1) fc = FunctionCall(handler, ea) + assert l == [] + fc.pushCurrentState() + assert l == [None, ] messenger.send('testEvent', ['a', 'b']) assert l == [None, 'b', ] messenger.send('testEvent', [1, 2, 3, ])