Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/TurtleArt/talogo.py
diff options
context:
space:
mode:
Diffstat (limited to 'TurtleArt/talogo.py')
-rw-r--r--TurtleArt/talogo.py35
1 files changed, 9 insertions, 26 deletions
diff --git a/TurtleArt/talogo.py b/TurtleArt/talogo.py
index 7aac4ce..c6991bd 100644
--- a/TurtleArt/talogo.py
+++ b/TurtleArt/talogo.py
@@ -33,7 +33,8 @@ try:
except ImportError:
GRID_CELL_SIZE = 55
-from taconstants import (TAB_LAYER, DEFAULT_SCALE, PREFIX_DICTIONARY)
+from tablock import (Block, media_blocks_dictionary)
+from taconstants import (TAB_LAYER, DEFAULT_SCALE)
from tapalette import (block_names, value_blocks)
from tautils import (get_pixbuf_from_journal, convert, data_from_file,
text_media_type, round_int, debug_output, find_group)
@@ -46,7 +47,6 @@ except ImportError:
from gettext import gettext as _
-media_blocks_dictionary = {} # new media blocks get added here
primitive_dictionary = {} # new block primitives get added here
@@ -79,7 +79,7 @@ class logoerror(Exception):
return str(self.value)
-class HiddenBlock:
+class HiddenBlock(Block):
def __init__(self, name, value=None):
self.name = name
@@ -92,6 +92,7 @@ class HiddenBlock:
self.connections = []
self.docks = []
+
# Utility functions
@@ -286,30 +287,12 @@ class LogoCode:
self.tw.block_list.list.index(blk)))
else:
code.append(blk.primitive) # Hidden block
- elif len(blk.values) > 0: # Extract the value from content blocks.
- if blk.name == 'number':
- try:
- code.append(float(blk.values[0]))
- except ValueError:
- code.append(float(ord(blk.values[0][0])))
- elif blk.name == 'string' or \
- blk.name == 'title': # deprecated block
- if isinstance(blk.values[0], (float, int)):
- if int(blk.values[0]) == blk.values[0]:
- blk.values[0] = int(blk.values[0])
- code.append('#s' + str(blk.values[0]))
- else:
- code.append('#s' + blk.values[0])
- elif blk.name in PREFIX_DICTIONARY:
- if blk.values[0] is not None:
- code.append(PREFIX_DICTIONARY[blk.name] +
- str(blk.values[0]))
- else:
- code.append(PREFIX_DICTIONARY[blk.name] + 'None')
- elif blk.name in media_blocks_dictionary:
- code.append('#smedia_' + blk.name.upper())
- else:
+ elif blk.is_value_block(): # Extract the value from content blocks.
+ value = blk.get_value()
+ if value == '%nothing%':
return ['%nothing%']
+ else:
+ code.append(value)
else:
return ['%nothing%']
if blk.connections is not None and len(blk.connections) > 0: