Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tools.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools.py')
-rw-r--r--tools.py32
1 files changed, 31 insertions, 1 deletions
diff --git a/tools.py b/tools.py
index 8645a81..0147cb6 100644
--- a/tools.py
+++ b/tools.py
@@ -410,7 +410,35 @@ class RollTool(Tool):
self.jb1 = self.jb1pos = None
def cancel(self):
self.jb1 = self.jb1pos = None
-
+
+
+class PaintTool(Tool):
+ name = 'Paint'
+ icon = 'paint'
+ toolTip = _("Paint")
+ toolAccelerator = _("<ctrl>s")
+
+ def __init__(self,gameInstance):
+ self.game = gameInstance
+ self.name = 'Paint'
+ self.jb1 = self.jb1pos = None
+ def handleEvents(self,event):
+ #look for default events, and if none are handled then try the custom events
+ if not super(PaintTool,self).handleEvents(event):
+ if event.type == MOUSEBUTTONDOWN:
+ if event.button == 1:
+ self.jb1pos = event.pos
+ self.jb1 = self.game.world.get_bodies_at_pos(event.pos)
+ if self.jb1:
+ if type(self.jb1[0].userData) == type({}):
+ self.jb1[0].userData['paint'] = {}
+ self.jb1[0].userData['paint']['color'] = self.jb1[0].userData['color']
+ x = self.game.world.to_world(event.pos)[0]/self.game.world.ppm
+ y = self.game.world.to_world(event.pos)[1]/self.game.world.ppm
+ self.jb1[0].userData['paint']['pos'] = self.jb1[0].GetLocalPoint((x,y)).tuple()
+ self.jb1 = self.jb1pos = None
+ def cancel(self):
+ self.jb1 = self.jb1pos = None
# The destroy tool
class DestroyTool(Tool):
@@ -460,8 +488,10 @@ def getAllTools():
PolygonTool,
GrabTool,
MotorTool,
+ RollTool,
PinTool,
JointTool,
+ PaintTool,
DestroyTool]
allTools = getAllTools()