diff options
-rw-r--r-- | behaviors/ModifyParam.py | 4 | ||||
-rw-r--r-- | behaviors/XYMove.py | 1 | ||||
-rw-r--r-- | config/6thFloor.xml | 16 |
3 files changed, 18 insertions, 3 deletions
diff --git a/behaviors/ModifyParam.py b/behaviors/ModifyParam.py index 4f45be0..2c8f12d 100644 --- a/behaviors/ModifyParam.py +++ b/behaviors/ModifyParam.py @@ -1,4 +1,5 @@ from operationscore.Behavior import * +import math import pdb #Class to perform a given operation on some element of an argDict. Designed to be used a recursive hook, but can serve sensor-based functions as well. Specify ParamType (Sensor or Recurse), ParamName, and ParamOp, (a valid python statement with the old value represented as {val}) class ModifyParam(Behavior): @@ -25,6 +26,9 @@ class ModifyParam(Behavior): if paramName in behaviorInput: #TODO: copy -> modify instead of just #copying paramOp = paramOp.replace('{val}', 'behaviorInput[paramName]') #convert the {val} marker to something we can execute + #TODO: move elsewhere + paramOp = paramOp.replace('{y}', "behaviorInput['Location'][1]") + paramOp = paramOp.replace('{x}', "behaviorInput['Location'][0]") behaviorInput[paramName] = eval(paramOp) if paramType == 'Sensor': #return accordingly return (searchSet, recursiveInputs) diff --git a/behaviors/XYMove.py b/behaviors/XYMove.py index 11cee96..0ba3baf 100644 --- a/behaviors/XYMove.py +++ b/behaviors/XYMove.py @@ -13,6 +13,7 @@ class XYMove(Behavior): for loc in sensor: oploc = dict(loc) self.insertStepIfMissing(oploc) + print oploc['YStep'] oploc['Location'] = Geo.addLocations((oploc['XStep'], oploc['YStep']), oploc['Location']) ret.append(oploc) return (ret, []) diff --git a/config/6thFloor.xml b/config/6thFloor.xml index b58ff57..81f0c9f 100644 --- a/config/6thFloor.xml +++ b/config/6thFloor.xml @@ -28,9 +28,9 @@ </PixelMapper> </PixelMapperConfiguration> <RendererConfiguration> - <!--Renderer> + <Renderer> <InheritsFrom>renderers/60StripSeq.xml</InheritsFrom> - </Renderer--> + </Renderer> <Renderer> <InheritsFrom>renderers/Pygame.xml</InheritsFrom> </Renderer> @@ -147,12 +147,22 @@ <Id>movebounce</Id> <ChainedBehaviors> <Id>xymove</Id> - <Id>ybounce</Id> + <!--Id>ybounce</Id--> <Id>xbounce</Id> + <Id>ysin</Id> </ChainedBehaviors> </Args> </Behavior> <Behavior> + <Class>behaviors.ModifyParam</Class> + <Args> + <Id>ysin</Id> + <ParamName>YStep</ParamName> + <ParamType>Sensor</ParamType> + <ParamOp>4*math.sin({x}/float(40))</ParamOp> + </Args> + </Behavior> + <Behavior> <Class>behaviors.BehaviorChain</Class> <Args> <Id>expanddie</Id> |