Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPootle daemon <pootle@pootle.sugarlabs.org>2013-11-05 05:32:43 (GMT)
committer Pootle daemon <pootle@pootle.sugarlabs.org>2013-11-05 05:32:43 (GMT)
commit33697496490251b3fea04614c98a088ba0e04c6a (patch)
treee46c6df4d25b58e1ffbe27266295469c22e981e7
parent98f04c96ece3135b69208a2a807657d9289c3c95 (diff)
parent276f8bd1f47c4fec36904e4a968dd7f38c70fe51 (diff)
Merge branch 'master' of git.sugarlabs.org:turtleart/mainline
-rw-r--r--TurtleArt/tabasics.py10
-rw-r--r--TurtleArt/taconstants.py6
-rw-r--r--TurtleArt/taturtle.py19
-rw-r--r--TurtleArt/tautils.py9
4 files changed, 32 insertions, 12 deletions
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':