From 33697496490251b3fea04614c98a088ba0e04c6a Mon Sep 17 00:00:00 2001 From: Pootle daemon Date: Tue, 05 Nov 2013 05:32:43 +0000 Subject: Merge branch 'master' of git.sugarlabs.org:turtleart/mainline --- diff --git a/TurtleArt/tabasics.py b/TurtleArt/tabasics.py index ce84a49..1dcaa56 100644 --- a/TurtleArt/tabasics.py +++ b/TurtleArt/tabasics.py @@ -179,9 +179,8 @@ class Palettes(): help_string=_('moves turtle backward')) self.tw.lc.def_prim( 'back', 1, - Primitive(Turtle.forward, - arg_descs=[ArgSlot(TYPE_NUMBER, - wrapper=self.prim_cache["minus"])], + Primitive(Turtle.backward, + arg_descs=[ArgSlot(TYPE_NUMBER)], call_afterwards=self.after_move)) palette.add_block('clean', @@ -214,9 +213,8 @@ turtle')) in degrees)')) self.tw.lc.def_prim( 'left', 1, - Primitive(Turtle.right, - arg_descs=[ArgSlot(TYPE_NUMBER, - wrapper=self.prim_cache["minus"])], + Primitive(Turtle.left, + arg_descs=[ArgSlot(TYPE_NUMBER)], call_afterwards=self.after_right)) palette.add_block('right', diff --git a/TurtleArt/taconstants.py b/TurtleArt/taconstants.py index 1cedaa3..4cedb34 100644 --- a/TurtleArt/taconstants.py +++ b/TurtleArt/taconstants.py @@ -79,6 +79,12 @@ XO4 = 'xo4' UNKNOWN = 'unknown' TMP_SVG_PATH = '/tmp/turtle_output.svg' +ARG_MUST_BE_NUMBER = ['product2', 'minus2', 'random', 'remainder2', 'forward', + 'back', 'left', 'right', 'arc', 'setxy2', 'setxy', + 'fillscreen', 'setscale', 'setpensize', 'wait', + 'setcolor', 'seth', 'setgray', 'setshade', 'string', + 'fillscreen2'] + KEY_DICT = { 'Left': 1, 'KP_Left': 1, diff --git a/TurtleArt/taturtle.py b/TurtleArt/taturtle.py index 88f4782..02d4d31 100644 --- a/TurtleArt/taturtle.py +++ b/TurtleArt/taturtle.py @@ -561,6 +561,15 @@ class Turtle: round_int(self._heading)])) self._turtles.turtle_window.send_event(event) + def left(self, degrees, share=True): + try: + degrees = 0 - degrees + except: + debug_output('bad value sent to %s' % (__name__), + self._turtles.turtle_window.running_sugar) + return + self.right(degrees, share) + def _draw_line(self, old, new, pendown): if self._pen_state and pendown: self._turtles.turtle_window.canvas.set_source_rgb() @@ -574,6 +583,7 @@ class Turtle: self._poly_points.append(('line', pos2[0], pos2[1])) def forward(self, distance, share=True): + print distance scaled_distance = distance * self._turtles.turtle_window.coord_scale old = self.get_xy() @@ -593,6 +603,15 @@ class Turtle: int(distance)])) self._turtles.turtle_window.send_event(event) + def backward(self, distance, share=True): + try: + distance = 0 - distance + except: + debug_output('bad value sent to %s' % (__name__), + self._turtles.turtle_window.running_sugar) + return + self.forward(distance, share) + def set_xy(self, x, y, share=True, pendown=True, dragging=False): old = self.get_xy() try: diff --git a/TurtleArt/tautils.py b/TurtleArt/tautils.py index ef80877..ff30b19 100644 --- a/TurtleArt/tautils.py +++ b/TurtleArt/tautils.py @@ -51,7 +51,7 @@ except (ImportError, AttributeError): from StringIO import StringIO from taconstants import (HIT_HIDE, HIT_SHOW, XO1, XO15, XO175, XO4, UNKNOWN, - MAGICNUMBER, SUFFIX) + MAGICNUMBER, SUFFIX, ARG_MUST_BE_NUMBER) import logging _logger = logging.getLogger('turtleart-activity') @@ -677,14 +677,11 @@ def arithmetic_check(blk1, blk2, dock1, dock2): return False if dock1 == 2 and zero_arg(blk2.values[0]): return False - elif blk1.name \ - in ['product2', 'minus2', 'random', 'remainder2', 'string'] and \ - blk2.name \ - in ['product2', 'minus2', 'random', 'remainder2', 'string']: + elif blk1.name in ARG_MUST_BE_NUMBER and blk2.name in ARG_MUST_BE_NUMBER: if blk1.name == 'string': if not numeric_arg(blk1.values[0]): return False - elif blk1.name == 'string': + elif blk2.name == 'string': if not numeric_arg(blk2.values[0]): return False elif blk1.name in ['greater2', 'less2'] and blk2.name == 'string': -- cgit v0.9.1