diff options
author | Marion <marion.zepf@gmail.com> | 2013-08-09 21:07:49 (GMT) |
---|---|---|
committer | Marion <marion.zepf@gmail.com> | 2013-08-09 21:07:49 (GMT) |
commit | e4252715ca37f55b2bd6702a6c2bb5ce55dd3e23 (patch) | |
tree | 61b41723b5ac5e74c53d92a8fb3113ccacfc23f3 /TurtleArt/tabasics.py | |
parent | dbc9daecdc6894fe62c23a86aaa91a9513742c13 (diff) |
introduce a Color type for the pen color in block programs
Diffstat (limited to 'TurtleArt/tabasics.py')
-rw-r--r-- | TurtleArt/tabasics.py | 29 |
1 files changed, 11 insertions, 18 deletions
diff --git a/TurtleArt/tabasics.py b/TurtleArt/tabasics.py index 0346d0e..5eac58b 100644 --- a/TurtleArt/tabasics.py +++ b/TurtleArt/tabasics.py @@ -71,14 +71,7 @@ from gettext import gettext as _ from tapalette import (make_palette, define_logo_function) from talogo import (primitive_dictionary, logoerror) from tautils import (convert, chr_to_ord, round_int, strtype) -from taconstants import (COLORDICT, CONSTANTS) - - -def _color_to_num(c): - if COLORDICT[c][0] is None: - return(COLORDICT[c][1]) - else: - return(COLORDICT[c][0]) +from taconstants import (Color, CONSTANTS) def _num_type(x): @@ -1334,10 +1327,10 @@ variable')) def _prim_plus(self, x, y): ''' Add numbers, concat strings ''' - if x in COLORDICT: - x = _color_to_num(x) - if y in COLORDICT: - y = _color_to_num(y) + if isinstance(x, Color): + x = int(x) + if isinstance(y, Color): + y = int(y) if _num_type(x) and _num_type(y): return(x + y) elif isinstance(x, list) and isinstance(y, list): @@ -1446,8 +1439,8 @@ variable')) pass if isinstance(x, list): raise logoerror("#syntaxerror") - if x in COLORDICT: - return _color_to_num(x) + if isinstance(x, Color): + return int(x) xx = convert(x.replace(self.tw.decimal_point, '.'), float) if isinstance(xx, float): return xx @@ -1460,12 +1453,12 @@ variable')) def _make_constant(self, palette, block_name, label, constant): ''' Factory for constant blocks ''' - if constant in COLORDICT: - if COLORDICT[constant][0] is not None: - value = str(COLORDICT[constant][0]) + if isinstance(constant, Color): + if constant.color is not None: + value = str(constant.color) else: # Black or White - value = '0 tasetshade %d' % (COLORDICT[constant][1]) + value = '0 tasetshade %d' % (constant.shade) else: value = constant palette.add_block(block_name, |