aboutsummaryrefslogtreecommitdiff
path: root/behaviors/MITDoors.py
diff options
context:
space:
mode:
authorGravatar Dan <dan@rcoh-ubuntu-small.(none)>2011-01-28 10:11:22 -0500
committerGravatar Dan <dan@rcoh-ubuntu-small.(none)>2011-01-28 10:11:22 -0500
commita028c880c8325419a238667e71a7e919b72a4798 (patch)
tree5a07f674fcead141165a5b4fec0143c3e6c60e05 /behaviors/MITDoors.py
parentb8bb5e82a2e8802b9adb1258463d4198f974dbd1 (diff)
parent3319a58ecc391f9aac092ade45f9f50dc2af5aa6 (diff)
Merge branch 'fridaydemo' of github.com:rcoh/SmootLight into osc
Diffstat (limited to 'behaviors/MITDoors.py')
-rw-r--r--behaviors/MITDoors.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/behaviors/MITDoors.py b/behaviors/MITDoors.py
new file mode 100644
index 0000000..03bef6d
--- /dev/null
+++ b/behaviors/MITDoors.py
@@ -0,0 +1,27 @@
+from operationscore.Behavior import *
+import math
+import util.ComponentRegistry as compReg
+class MITDoors(Behavior):
+ """MITDoors is a case-specific behavior to map keypresses to specific locations. Written for
+ Kuan 1/26/11 by RCOH"""
+
+ def behaviorInit(self):
+ self.keymapping = {'q':[2,19], 'w':[22,36], 'e':[37,49], 'r':[52,69], 't':[76,91], 'y':[94,105],
+ 'u':[106,117], 'i':[123,154], 'o':[158,161], 'p':[164,167], '[':[172,184]}
+ screenWidth = compReg.getComponent('Screen').getSize()[2] #(minx, miny,maxx, maxy)
+ maxKey = max([max(self.keymapping[v]) for v in self.keymapping])
+ mult = screenWidth / float(maxKey)
+ for k in self.keymapping:
+ self.keymapping[k] = [int(val*mult) for val in self.keymapping[k]]
+ def processResponse(self, sensorInputs, recursiveInputs):
+ ret = []
+ for data in sensorInputs:
+ key = chr(data['Key'])
+ if key in self.keymapping:
+ bounds = self.keymapping[key]
+ data = dict(data)
+ data['Left'], data['Right'] = bounds
+ data['Bottom'] = self['Bottom']
+ data['Location'] = (sum(bounds) / 2., self['Bottom'])
+ ret.append(data)
+ return (ret, [])