diff options
-rw-r--r-- | TurtleArt/taconstants.py | 5 | ||||
-rw-r--r-- | TurtleArt/tawindow.py | 16 | ||||
-rw-r--r-- | plugins/turtle_blocks_extras/turtle_blocks_extras.py | 27 |
3 files changed, 43 insertions, 5 deletions
diff --git a/TurtleArt/taconstants.py b/TurtleArt/taconstants.py index 8cba7c2..fd84d5b 100644 --- a/TurtleArt/taconstants.py +++ b/TurtleArt/taconstants.py @@ -95,8 +95,9 @@ EXPANDABLE_FLOW = [] EXPANDABLE = ['vspace', 'hspace', 'identity2'] -EXPANDABLE_ARGS = ['list', 'myfunc1arg', 'myfunc2arg', 'myfunc3arg', - 'userdefined', 'userdefined2args', 'userdefined3args'] +EXPANDABLE_ARGS = ['list', 'myfunc1arg', 'myfunc2arg', + 'userdefined', 'userdefined2args', + 'loadblock', 'loadblock2arg'] # # Deprecated block styles that need dock adjustments diff --git a/TurtleArt/tawindow.py b/TurtleArt/tawindow.py index afa8a7c..7e58de4 100644 --- a/TurtleArt/tawindow.py +++ b/TurtleArt/tawindow.py @@ -2387,6 +2387,16 @@ class TurtleArtWindow(): blk.primitive = 'userdefined3' blk.name = 'userdefined3args' self._resize_skin(blk) + elif blk.name == 'loadblock': + dy = blk.add_arg() + blk.primitive = 'loadblock2' + blk.name = 'loadblock2arg' + self._resize_skin(blk) + elif blk.name == 'loadblock2arg': + dy = blk.add_arg(False) + blk.primitive = 'loadblock3' + blk.name = 'loadblock3arg' + self._resize_skin(blk) else: dy = blk.add_arg() for gblk in group: @@ -3550,9 +3560,11 @@ class TurtleArtWindow(): for i in range(len(b[4]) - 4): blk.add_arg() elif btype == 'myfunc2arg' or btype == 'myfunc3arg' or\ - btype == 'userdefined2args' or btype == 'userdefined3args': + btype == 'userdefined2args' or btype == 'userdefined3args' or\ + btype == 'loadblock2arg' or btype == 'loadblock3arg': blk.add_arg() - if btype == 'myfunc3arg' or btype == 'userdefined3args': + if btype == 'myfunc3arg' or btype == 'userdefined3args' or \ + btype == 'loadblock3arg': blk.add_arg(False) if btype in PYTHON_SKIN: if self.nop == 'pythonloaded': diff --git a/plugins/turtle_blocks_extras/turtle_blocks_extras.py b/plugins/turtle_blocks_extras/turtle_blocks_extras.py index 46ccb55..d75e336 100644 --- a/plugins/turtle_blocks_extras/turtle_blocks_extras.py +++ b/plugins/turtle_blocks_extras/turtle_blocks_extras.py @@ -692,7 +692,7 @@ module found in the Journal')) primitive_dictionary['loadblock'] = self._prim_load_block palette.add_block('loadblock', - style='basic-style-1arg', + style='basic-style-var-arg', label=_('load'), prim_name='loadblock', default=_('forward'), @@ -700,6 +700,28 @@ module found in the Journal')) self.tw.lc.def_prim('loadblock', 1, lambda self, x: primitive_dictionary['loadblock'](x)) + palette.add_block('loadblock2arg', + style='basic-style-var-arg', + hidden=True, + label=_('load'), + prim_name='loadblock2', + string_or_number=True, + default=[_('forward'), 100], + help_string=_('loads a block')) + self.tw.lc.def_prim('loadblock2', 2, + lambda self, x, y: primitive_dictionary['loadblock']([x, y])) + + palette.add_block('loadblock3arg', + style='basic-style-var-arg', + hidden=True, + label=_('load'), + string_or_number=True, + prim_name='loadblock3', + default=[_('setxy'), 0, 0], + help_string=_('loads a block')) + self.tw.lc.def_prim('loadblock3', 3, + lambda self, x, y, z: primitive_dictionary['loadblock']([x, y, z])) + primitive_dictionary['loadpalette'] = self._prim_load_palette palette.add_block('loadpalette', style='basic-style-1arg', @@ -1444,6 +1466,9 @@ bullets')) def _make_block(self, name, x, y, defaults): x_pos = x + 20 y_pos = y + 20 + for i, v in enumerate(defaults): + if type(v) == float and int(v) == v: + defaults[i] = int(v) self.tw._new_block(name, x_pos, y_pos, defaults) # Find the block we just created and attach it to a stack. |