diff options
author | rcoh <rcoh@mit.edu> | 2010-12-22 14:27:33 -0500 |
---|---|---|
committer | rcoh <rcoh@mit.edu> | 2010-12-22 14:27:33 -0500 |
commit | c581408f028d5b8ceadc53c68d7c1252fbe09e6d (patch) | |
tree | 8724862d05bde3bb3427cdff378cdb08da8babd2 /operationscore/Behavior.py | |
parent | a1d9b85320c9b07d62470d78ef0c5f9015baf813 (diff) |
About halfway done with support for pixel regions. Modified the component registry a bit. Added
support for multiple pixel mappers (and along with that, default components). RCOH
Diffstat (limited to 'operationscore/Behavior.py')
-rw-r--r-- | operationscore/Behavior.py | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/operationscore/Behavior.py b/operationscore/Behavior.py index 3bdf1ec..d48c1d5 100644 --- a/operationscore/Behavior.py +++ b/operationscore/Behavior.py @@ -33,14 +33,26 @@ class Behavior(SmootCoreObject): recursiveInputs) if type(output) != type([]): output = [output] - return (output, recursions) - except: + return self.addMapperToResponse((output, recursions)) #TODO: use a decorator for this? + except: #deal with behaviors that don't return a tuple. + responses = self.processResponse(sensorInputs, recursiveInputs) return (self.processResponse(sensorInputs, recursiveInputs),[]) def addInputs(self, sensorInputs): if type(sensorInputs) == type([]): [self.addInput(sensorInput) for sensorInput in sensorInputs] else: self.addInput(sensorInputs) + #private + def addMapperToResponse(self, responses): + if self['Mapper'] != None: + if type(responses) == type(tuple): + (out, recurs) = responses + return (self.addMapperToResponse(out), self.addMapperToResponse(recurs)) + if type(responses) == type([]): + for r in responses: + r['Mapper'] = self['Mapper'] + return responses + return responses def timeStep(self): #TODO: type checking. clean this up responses = self.processResponse(self.sensorResponseQueue, \ self.recursiveResponseQueue) @@ -54,8 +66,7 @@ class Behavior(SmootCoreObject): if type(outputs) != type([]): outputs = [outputs] try: - return outputs + return self.addMapperToResponse(outputs) #TODO: WTF is up with this? except: pass - #pdb.set_trace() - return outputs + return self.addMapperToResponse(outputs) |