diff options
Diffstat (limited to 'TurtleArt/taturtle.py')
-rw-r--r-- | TurtleArt/taturtle.py | 54 |
1 files changed, 14 insertions, 40 deletions
diff --git a/TurtleArt/taturtle.py b/TurtleArt/taturtle.py index 3d9d730..16820f8 100644 --- a/TurtleArt/taturtle.py +++ b/TurtleArt/taturtle.py @@ -28,7 +28,7 @@ import cairo from random import uniform from math import sin, cos, pi, sqrt from taconstants import (TURTLE_LAYER, DEFAULT_TURTLE_COLORS, DEFAULT_TURTLE, - COLORDICT) + Color) from tasprite_factory import SVG, svg_str_to_pixbuf from tacanvas import wrap100, COLOR_TABLE from sprites import Sprite @@ -319,13 +319,7 @@ class Turtle: def set_heading(self, heading, share=True): ''' Set the turtle heading (one shape per 360/SHAPES degrees) ''' - try: - self._heading = heading - except (TypeError, ValueError): - debug_output('bad value sent to %s' % (__name__), - self._turtles.turtle_window.running_sugar) - return - self._heading %= 360 + self._heading = heading % 360 i = (int(self._heading + 5) % 360) / (360 / SHAPES) if not self._hidden and self.spr is not None: @@ -341,25 +335,20 @@ class Turtle: def set_color(self, color=None, share=True): ''' Set the pen color for this turtle. ''' + if color is None: + color = self._pen_color # Special case for color blocks - if color is not None and color in COLORDICT: - self.set_shade(COLORDICT[color][1], share) - self.set_gray(COLORDICT[color][2], share) - if COLORDICT[color][0] is not None: - self.set_color(COLORDICT[color][0], share) - color = COLORDICT[color][0] + elif isinstance(color, Color): + self.set_shade(color.shade, share) + self.set_gray(color.gray, share) + if color.color is not None: + color = color.color else: color = self._pen_color - elif color is None: - color = self._pen_color - try: - self._pen_color = color - except (TypeError, ValueError): - debug_output('bad value sent to %s' % (__name__), - self._turtles.turtle_window.running_sugar) - return + self._pen_color = color + # TODO replace these three attributes with one reference to a Color self._turtles.turtle_window.canvas.set_fgcolor(shade=self._pen_shade, gray=self._pen_gray, color=self._pen_color) @@ -372,12 +361,7 @@ class Turtle: def set_gray(self, gray=None, share=True): ''' Set the pen gray level for this turtle. ''' if gray is not None: - try: - self._pen_gray = gray - except (TypeError, ValueError): - debug_output('bad value sent to %s' % (__name__), - self._turtles.turtle_window.running_sugar) - return + self._pen_gray = gray if self._pen_gray < 0: self._pen_gray = 0 @@ -396,12 +380,7 @@ class Turtle: def set_shade(self, shade=None, share=True): ''' Set the pen shade for this turtle. ''' if shade is not None: - try: - self._pen_shade = shade - except (TypeError, ValueError): - debug_output('bad value sent to %s' % (__name__), - self._turtles.turtle_window.running_sugar) - return + self._pen_shade = shade self._turtles.turtle_window.canvas.set_fgcolor(shade=self._pen_shade, gray=self._pen_gray, @@ -415,12 +394,7 @@ class Turtle: def set_pen_size(self, pen_size=None, share=True): ''' Set the pen size for this turtle. ''' if pen_size is not None: - try: - self._pen_size = max(0, pen_size) - except (TypeError, ValueError): - debug_output('bad value sent to %s' % (__name__), - self._turtles.turtle_window.running_sugar) - return + self._pen_size = max(0, pen_size) self._turtles.turtle_window.canvas.set_pen_size(self._pen_size) |