Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/plugins/turtle_blocks_extras/turtle_blocks_extras.py
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/turtle_blocks_extras/turtle_blocks_extras.py')
-rw-r--r--plugins/turtle_blocks_extras/turtle_blocks_extras.py68
1 files changed, 67 insertions, 1 deletions
diff --git a/plugins/turtle_blocks_extras/turtle_blocks_extras.py b/plugins/turtle_blocks_extras/turtle_blocks_extras.py
index 01b2a68..2e867eb 100644
--- a/plugins/turtle_blocks_extras/turtle_blocks_extras.py
+++ b/plugins/turtle_blocks_extras/turtle_blocks_extras.py
@@ -718,6 +718,26 @@ module found in the Journal'))
lambda self, x:
self.tw.turtles.set_turtle(x))
+ primitive_dictionary['turtlex'] = self._prim_turtle_x
+ palette.add_block('turtlex',
+ style='number-style-1arg',
+ label=_('turtle x'),
+ prim_name='turtlex',
+ default=['Yertle'],
+ help_string=_('Returns x coordinate of turtle'))
+ self.tw.lc.def_prim('turtlex', 1,
+ lambda self, t: primitive_dictionary['turtlex'](t))
+
+ primitive_dictionary['turtley'] = self._prim_turtle_y
+ palette.add_block('turtley',
+ style='number-style-1arg',
+ label=_('turtle y'),
+ prim_name='turtley',
+ default=['Yertle'],
+ help_string=_('Returns y coordinate of turtle'))
+ self.tw.lc.def_prim('turtley', 1,
+ lambda self, t: primitive_dictionary['turtley'](t))
+
primitive_dictionary['activeturtle'] = self._prim_active_turtle
palette.add_block('activeturtle',
style='box-style',
@@ -730,6 +750,16 @@ module found in the Journal'))
lambda self:
primitive_dictionary['activeturtle']())
+ primitive_dictionary['turtleh'] = self._prim_turtle_h
+ palette.add_block('turtleh',
+ style='number-style-1arg',
+ label=_('turtle heading'),
+ prim_name='turtleh',
+ default=['Yertle'],
+ help_string=_('Returns heading of turtle'))
+ self.tw.lc.def_prim('turtleh', 1,
+ lambda self, t: primitive_dictionary['turtleh'](t))
+
primitive_dictionary['skin'] = self._prim_reskin
palette.add_block('skin',
hidden=True,
@@ -1364,6 +1394,42 @@ Journal objects'))
self.tw.activity.stop_turtle_button.set_icon("stopiton")
self.tw.activity.stop_turtle_button.set_tooltip(_('Stop turtle'))
+ def _prim_chr(self, x):
+ """ Chr conversion """
+ try:
+ return chr(int(x))
+ except ValueError:
+ self.tw.lc.stop_logo()
+ raise logoerror("#notanumber")
+
+ def _prim_int(self, x):
+ """ Int conversion """
+ try:
+ return int(x)
+ except ValueError:
+ self.tw.lc.stop_logo()
+ raise logoerror("#notanumber")
+
+ def _prim_turtle_x(self, t):
+ """ Return x coordinate of turtle t """
+ return self.tw.turtles.get_turtle_x(t)
+
+ def _prim_turtle_y(self, t):
+ """ Return y coordinate of turtle t """
+ return self.tw.turtles.get_turtle_y(t)
+
+ def _prim_turtle_h(self, t):
+ """ Return heading of turtle t """
+ return self.tw.turtles.get_turtle_heading(t)
+
+ def _prim_clamp(self, blklist):
+ """ Run clamp blklist """
+ self.tw.lc.icall(self.tw.lc.evline, blklist[:])
+ yield True
+ self.tw.lc.procstop = False
+ self.tw.lc.ireturn()
+ yield True
+
def _prim_load_block(self, blkname):
''' Load a block on to the canvas '''
# Place the block at the active turtle (x, y) and move the turtle
@@ -1454,7 +1520,7 @@ Journal objects'))
self.tw.show_toolbar_palette(int(arg))
else:
if type(arg) == unicode:
- arg = arg.encode('ascii', 'replace')
+ arg = arg.encode('utf-8')
if arg in palette_names:
self.tw.show_toolbar_palette(palette_name_to_index(arg))
else: