Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--TurtleArt/taconstants.py5
-rw-r--r--TurtleArt/tawindow.py16
-rw-r--r--plugins/turtle_blocks_extras/turtle_blocks_extras.py27
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.