Skip to content

Commit 9989495

Browse files
committed
add custom block warnings and allow usage of extensions in AI integration
1 parent 073d4bd commit 9989495

4 files changed

Lines changed: 55 additions & 3 deletions

File tree

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"default":"<toolbox><block type=\"motion_movesteps\" blockType=\"Stack\"><value name=\"STEPS\"><shadow type=\"math_number\"><field name=\"NUM\">10</field></shadow></value></block><block type=\"motion_turnright\" blockType=\"Stack\"><value name=\"DEGREES\"><shadow type=\"math_number\"><field name=\"NUM\">15</field></shadow></value></block><block type=\"motion_turnleft\" blockType=\"Stack\"><value name=\"DEGREES\"><shadow type=\"math_number\"><field name=\"NUM\">15</field></shadow></value></block><block type=\"motion_goto\" blockType=\"Stack\"><value name=\"TO\"><shadow type=\"motion_goto_menu\"></shadow></value></block><block type=\"motion_gotoxy\" blockType=\"Stack\"><value name=\"X\"><shadow id=\"movex\" type=\"math_number\"><field name=\"NUM\">0</field></shadow></value><value name=\"Y\"><shadow id=\"movey\" type=\"math_number\"><field name=\"NUM\">0</field></shadow></value></block><block type=\"motion_glideto\" blockType=\"Stack\"><value name=\"SECS\"><shadow type=\"math_number\"><field name=\"NUM\">1</field></shadow></value><value name=\"TO\"><shadow type=\"motion_glideto_menu\"></shadow></value></block><block type=\"motion_glidesecstoxy\" blockType=\"Stack\"><value name=\"SECS\"><shadow type=\"math_number\"><field name=\"NUM\">1</field></shadow></value><value name=\"X\"><shadow id=\"glidex\" type=\"math_number\"><field name=\"NUM\">0</field></shadow></value><value name=\"Y\"><shadow id=\"glidey\" type=\"math_number\"><field name=\"NUM\">0</field></shadow></value></block><block type=\"motion_pointindirection\" blockType=\"Stack\"><value name=\"DIRECTION\"><shadow type=\"math_angle\"><field name=\"NUM\">90</field></shadow></value></block><block type=\"motion_pointtowards\" blockType=\"Stack\"><value name=\"TOWARDS\"><shadow type=\"motion_pointtowards_menu\"></shadow></value></block><block type=\"motion_changexby\" blockType=\"Stack\"><value name=\"DX\"><shadow type=\"math_number\"><field name=\"NUM\">10</field></shadow></value></block><block type=\"motion_setx\" blockType=\"Stack\"><value name=\"X\"><shadow id=\"setx\" type=\"math_number\"><field name=\"NUM\">0</field></shadow></value></block><block type=\"motion_changeyby\" blockType=\"Stack\"><value name=\"DY\"><shadow type=\"math_number\"><field name=\"NUM\">10</field></shadow></value></block><block type=\"motion_sety\" blockType=\"Stack\"><value name=\"Y\"><shadow id=\"sety\" type=\"math_number\"><field name=\"NUM\">0</field></shadow></value></block><block type=\"motion_ifonedgebounce\" blockType=\"Stack\"/><block type=\"motion_setrotationstyle\" blockType=\"Stack\"/><block type=\"motion_xposition\" blockType=\"Boolean\"/><block type=\"motion_yposition\" blockType=\"Boolean\"/><block type=\"motion_direction\" blockType=\"Boolean\"/><block type=\"looks_sayforsecs\" blockType=\"Stack\"><value name=\"MESSAGE\"><shadow type=\"text\"><field name=\"TEXT\">Hello!</field></shadow></value><value name=\"SECS\"><shadow type=\"math_number\"><field name=\"NUM\">2</field></shadow></value></block><block type=\"looks_say\" blockType=\"Stack\"><value name=\"MESSAGE\"><shadow type=\"text\"><field name=\"TEXT\">Hello!</field></shadow></value></block><block type=\"looks_thinkforsecs\" blockType=\"Stack\"><value name=\"MESSAGE\"><shadow type=\"text\"><field name=\"TEXT\">Hmm...</field></shadow></value><value name=\"SECS\"><shadow type=\"math_number\"><field name=\"NUM\">2</field></shadow></value></block><block type=\"looks_think\" blockType=\"Stack\"><value name=\"MESSAGE\"><shadow type=\"text\"><field name=\"TEXT\">Hmm...</field></shadow></value></block><block type=\"looks_switchcostumeto\" blockType=\"Stack\"><value name=\"COSTUME\"><shadow type=\"looks_costume\"><field name=\"COSTUME\">costume1</field></shadow></value></block><block type=\"looks_nextcostume\" blockType=\"Stack\"/><block type=\"looks_switchbackdropto\" blockType=\"Stack\"><value name=\"BACKDROP\"><shadow type=\"looks_backdrops\"><field name=\"BACKDROP\">backdrop1</field></shadow></value></block><block type=\"looks_nextbackdrop\" blockType=\"Stack\"/><block type=\"looks_changesizeby\" blockType=\"Stack\"><value name=\"CHANGE\"><shadow type=\"math_number\"><field name=\"NUM\">10</field></shadow></value></block><block type=\"looks_setsizeto\" blockType=\"Stack\"><value name=\"SIZE\"><shadow type=\"math_number\"><field name=\"NUM\">100</field></shadow></value></block><block type=\"looks_changeeffectby\" blockType=\"Stack\"><value name=\"CHANGE\"><shadow type=\"math_number\"><field name=\"NUM\">25</field></shadow></value></block><block type=\"looks_seteffectto\" blockType=\"Stack\"><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">0</field></shadow></value></block><block type=\"looks_cleargraphiceffects\" blockType=\"Stack\"/><block type=\"looks_show\" blockType=\"Stack\"/><block type=\"looks_hide\" blockType=\"Stack\"/><block type=\"looks_gotofrontback\" blockType=\"Stack\"/><block type=\"looks_goforwardbackwardlayers\" blockType=\"Stack\"><value name=\"NUM\"><shadow type=\"math_integer\"><field name=\"NUM\">1</field></shadow></value></block><block type=\"looks_costumenumbername\" blockType=\"Boolean\"/><block type=\"looks_backdropnumbername\" blockType=\"Boolean\"/><block type=\"looks_size\" blockType=\"Boolean\"/><block type=\"sound_playuntildone\" blockType=\"Stack\"><value name=\"SOUND_MENU\"><shadow type=\"sound_sounds_menu\"><field name=\"SOUND_MENU\"/></shadow></value></block><block type=\"sound_play\" blockType=\"Stack\"><value name=\"SOUND_MENU\"><shadow type=\"sound_sounds_menu\"><field name=\"SOUND_MENU\"/></shadow></value></block><block type=\"sound_stopallsounds\" blockType=\"Stack\"/><block type=\"sound_changeeffectby\" blockType=\"Stack\"><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">10</field></shadow></value></block><block type=\"sound_seteffectto\" blockType=\"Stack\"><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">100</field></shadow></value></block><block type=\"sound_cleareffects\" blockType=\"Stack\"/><block type=\"sound_changevolumeby\" blockType=\"Stack\"><value name=\"VOLUME\"><shadow type=\"math_number\"><field name=\"NUM\">-10</field></shadow></value></block><block type=\"sound_setvolumeto\" blockType=\"Stack\"><value name=\"VOLUME\"><shadow type=\"math_number\"><field name=\"NUM\">100</field></shadow></value></block><block type=\"sound_volume\" blockType=\"Boolean\"/><block type=\"event_whenflagclicked\" blockType=\"Hat\"/><block type=\"event_whenkeypressed\" blockType=\"Hat\"></block><block type=\"event_whenthisspriteclicked\" blockType=\"Hat\"/><block type=\"event_whenbackdropswitchesto\" blockType=\"Hat\"></block><block type=\"event_whengreaterthan\" blockType=\"Hat\"><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">10</field></shadow></value></block><block type=\"event_whenbroadcastreceived\" blockType=\"Hat\"><field name=\"BROADCAST_OPTION\" variabletype=\"broadcast_msg\">message1</field></block><block type=\"event_broadcast\" blockType=\"Stack\"><value name=\"BROADCAST_INPUT\"><shadow type=\"event_broadcast_menu\"><field name=\"BROADCAST_OPTION\" variabletype=\"broadcast_msg\">message1</field></shadow></value></block><block type=\"event_broadcastandwait\" blockType=\"Stack\"><value name=\"BROADCAST_INPUT\"><shadow type=\"event_broadcast_menu\"><field name=\"BROADCAST_OPTION\" variabletype=\"broadcast_msg\">message1</field></shadow></value></block><block type=\"control_wait\" blockType=\"Stack\"><value name=\"DURATION\"><shadow type=\"math_positive_number\"><field name=\"NUM\">1</field></shadow></value></block><block type=\"control_repeat\" blockType=\"Stack\"><value name=\"TIMES\"><shadow type=\"math_whole_number\"><field name=\"NUM\">10</field></shadow></value></block><block type=\"control_forever\" blockType=\"Stack\"><statement name=\"SUBSTACK\"/></block><block type=\"control_if\" blockType=\"Stack\"><value name=\"CONDITION\"/><statement name=\"SUBSTACK\"/></block><block type=\"control_if_else\" blockType=\"Stack\"><value name=\"CONDITION\"/><statement name=\"SUBSTACK\"/><statement name=\"SUBSTACK2\"/></block><block type=\"control_wait_until\" blockType=\"Stack\"><value name=\"CONDITION\"/></block><block type=\"control_repeat_until\" blockType=\"Stack\"><value name=\"CONDITION\"/><statement name=\"SUBSTACK\"/></block><block type=\"control_while\" blockType=\"Stack\"><value name=\"CONDITION\"/><statement name=\"SUBSTACK\"/></block><block type=\"control_stop\" blockType=\"Stack\"/><block type=\"control_start_as_clone\" blockType=\"Hat\"/><block type=\"control_create_clone_of\" blockType=\"Stack\"><value name=\"CLONE_OPTION\"><shadow type=\"control_create_clone_of_menu\"/></value></block><block type=\"control_delete_this_clone\" blockType=\"Stack\"/><block type=\"sensing_touchingobject\" blockType=\"Reporter\"><value name=\"TOUCHINGOBJECTMENU\"><shadow type=\"sensing_touchingobjectmenu\"/></value></block><block type=\"sensing_touchingcolor\" blockType=\"Reporter\"><value name=\"COLOR\"><shadow type=\"colour_picker\"/></value></block><block type=\"sensing_coloristouchingcolor\" blockType=\"Reporter\"><value name=\"COLOR\"><shadow type=\"colour_picker\"/></value><value name=\"COLOR2\"><shadow type=\"colour_picker\"/></value></block><block type=\"sensing_distanceto\" blockType=\"Boolean\"><value name=\"DISTANCETOMENU\"><shadow type=\"sensing_distancetomenu\"/></value></block><block type=\"sensing_askandwait\" blockType=\"Stack\"><value name=\"QUESTION\"><shadow type=\"text\"><field name=\"TEXT\">What's your name?</field></shadow></value></block><block type=\"sensing_answer\" blockType=\"Boolean\"/><block type=\"sensing_keypressed\" blockType=\"Reporter\"><value name=\"KEY_OPTION\"><shadow type=\"sensing_keyoptions\"/></value></block><block type=\"sensing_mousedown\" blockType=\"Reporter\"/><block type=\"sensing_mousex\" blockType=\"Boolean\"/><block type=\"sensing_mousey\" blockType=\"Boolean\"/><block type=\"sensing_setdragmode\" blockType=\"Stack\"/><block type=\"sensing_loudness\" blockType=\"Boolean\"/><block type=\"sensing_timer\" blockType=\"Boolean\"/><block type=\"sensing_resettimer\" blockType=\"Stack\"/><block type=\"sensing_of\" blockType=\"Boolean\"><value name=\"OBJECT\"><shadow id=\"sensing_of_object_menu\" type=\"sensing_of_object_menu\"/></value></block><block type=\"sensing_current\" blockType=\"Boolean\"/><block type=\"sensing_dayssince2000\" blockType=\"Boolean\"/><block type=\"sensing_username\" blockType=\"Boolean\"/><block type=\"operator_add\" blockType=\"Boolean\"><value name=\"NUM1\"><shadow type=\"math_number\"><field name=\"NUM\"/></shadow></value><value name=\"NUM2\"><shadow type=\"math_number\"><field name=\"NUM\"/></shadow></value></block><block type=\"operator_subtract\" blockType=\"Boolean\"><value name=\"NUM1\"><shadow type=\"math_number\"><field name=\"NUM\"/></shadow></value><value name=\"NUM2\"><shadow type=\"math_number\"><field name=\"NUM\"/></shadow></value></block><block type=\"operator_multiply\" blockType=\"Boolean\"><value name=\"NUM1\"><shadow type=\"math_number\"><field name=\"NUM\"/></shadow></value><value name=\"NUM2\"><shadow type=\"math_number\"><field name=\"NUM\"/></shadow></value></block><block type=\"operator_divide\" blockType=\"Boolean\"><value name=\"NUM1\"><shadow type=\"math_number\"><field name=\"NUM\"/></shadow></value><value name=\"NUM2\"><shadow type=\"math_number\"><field name=\"NUM\"/></shadow></value></block><block type=\"operator_random\" blockType=\"Boolean\"><value name=\"FROM\"><shadow type=\"math_number\"><field name=\"NUM\">1</field></shadow></value><value name=\"TO\"><shadow type=\"math_number\"><field name=\"NUM\">10</field></shadow></value></block><block type=\"operator_gt\" blockType=\"Reporter\"><value name=\"OPERAND1\"><shadow type=\"text\"><field name=\"TEXT\"/></shadow></value><value name=\"OPERAND2\"><shadow type=\"text\"><field name=\"TEXT\">50</field></shadow></value></block><block type=\"operator_lt\" blockType=\"Reporter\"><value name=\"OPERAND1\"><shadow type=\"text\"><field name=\"TEXT\"/></shadow></value><value name=\"OPERAND2\"><shadow type=\"text\"><field name=\"TEXT\">50</field></shadow></value></block><block type=\"operator_equals\" blockType=\"Reporter\"><value name=\"OPERAND1\"><shadow type=\"text\"><field name=\"TEXT\"/></shadow></value><value name=\"OPERAND2\"><shadow type=\"text\"><field name=\"TEXT\">50</field></shadow></value></block><block type=\"operator_and\" blockType=\"Reporter\"><value name=\"OPERAND1\"/><value name=\"OPERAND2\"/></block><block type=\"operator_or\" blockType=\"Reporter\"><value name=\"OPERAND1\"/><value name=\"OPERAND2\"/></block><block type=\"operator_not\" blockType=\"Reporter\"><value name=\"OPERAND\"/></block><block type=\"operator_join\" blockType=\"Boolean\"><value name=\"STRING1\"><shadow type=\"text\"><field name=\"TEXT\">apple </field></shadow></value><value name=\"STRING2\"><shadow type=\"text\"><field name=\"TEXT\">banana</field></shadow></value></block><block type=\"operator_letter_of\" blockType=\"Boolean\"><value name=\"LETTER\"><shadow type=\"math_whole_number\"><field name=\"NUM\">1</field></shadow></value><value name=\"STRING\"><shadow type=\"text\"><field name=\"TEXT\">apple</field></shadow></value></block><block type=\"operator_length\" blockType=\"Boolean\"><value name=\"STRING\"><shadow type=\"text\"><field name=\"TEXT\">apple</field></shadow></value></block><block type=\"operator_contains\" blockType=\"Reporter\"><value name=\"STRING1\"><shadow type=\"text\"><field name=\"TEXT\">apple</field></shadow></value><value name=\"STRING2\"><shadow type=\"text\"><field name=\"TEXT\">a</field></shadow></value></block><block type=\"operator_mod\" blockType=\"Boolean\"><value name=\"NUM1\"><shadow type=\"math_number\"><field name=\"NUM\"/></shadow></value><value name=\"NUM2\"><shadow type=\"math_number\"><field name=\"NUM\"/></shadow></value></block><block type=\"operator_round\" blockType=\"Boolean\"><value name=\"NUM\"><shadow type=\"math_number\"><field name=\"NUM\"/></shadow></value></block><block type=\"operator_mathop\" blockType=\"Boolean\"><value name=\"NUM\"><shadow type=\"math_number\"><field name=\"NUM\"/></shadow></value></block><block blockType=\"Stack\" type=\"data_variable\"><field name=\"VARIABLE\" variabletype=\"\">my variable</field></block><block blockType=\"Stack\" type=\"data_setvariableto\"><field name=\"VARIABLE\" variabletype=\"\">my variable</field><value name=\"VALUE\"><shadow type=\"text\"><field name=\"TEXT\">0</field></shadow></value></block><block blockType=\"Stack\" type=\"data_changevariableby\"><field name=\"VARIABLE\" variabletype=\"\">my variable</field><value name=\"VALUE\"><shadow type=\"math_number\"><field name=\"NUM\">1</field></shadow></value></block><block blockType=\"Stack\" type=\"data_showvariable\"><field name=\"VARIABLE\" variabletype=\"\">my variable</field></block><block blockType=\"Stack\" type=\"data_hidevariable\"><field name=\"VARIABLE\" variabletype=\"\">my variable</field></block><block blockType=\"Reporter\" type=\"data_listcontents\"><field name=\"LIST\" variabletype=\"list\">my list</field></block><block blockType=\"Stack\" type=\"data_addtolist\"><field name=\"LIST\" variabletype=\"list\">my list</field><value name=\"ITEM\"><shadow type=\"text\"><field name=\"TEXT\">thing</field></shadow></value></block><block blockType=\"Stack\" type=\"data_deleteoflist\"><field name=\"LIST\" variabletype=\"list\">my list</field><value name=\"INDEX\"><shadow type=\"math_integer\"><field name=\"NUM\">1</field></shadow></value></block><block blockType=\"Stack\" type=\"data_deletealloflist\"><field name=\"LIST\" variabletype=\"list\">my list</field></block><block blockType=\"Stack\" type=\"data_insertatlist\"><field name=\"LIST\" variabletype=\"list\">my list</field><value name=\"ITEM\"><shadow type=\"text\"><field name=\"TEXT\">thing</field></shadow></value><value name=\"INDEX\"><shadow type=\"math_integer\"><field name=\"NUM\">1</field></shadow></value></block><block blockType=\"Stack\" type=\"data_replaceitemoflist\"><field name=\"LIST\" variabletype=\"list\">my list</field><value name=\"INDEX\"><shadow type=\"math_integer\"><field name=\"NUM\">1</field></shadow></value><value name=\"ITEM\"><shadow type=\"text\"><field name=\"TEXT\">thing</field></shadow></value></block><block blockType=\"Reporter\" type=\"data_itemoflist\"><field name=\"LIST\" variabletype=\"list\">my list</field><value name=\"INDEX\"><shadow type=\"math_integer\"><field name=\"NUM\">1</field></shadow></value></block><block blockType=\"Reporter\" type=\"data_itemnumoflist\"><field name=\"LIST\" variabletype=\"list\">my list</field><value name=\"ITEM\"><shadow type=\"text\"><field name=\"TEXT\">thing</field></shadow></value></block><block blockType=\"Stack\" type=\"data_showlist\"><field name=\"LIST\" variabletype=\"list\">my list</field></block><block blockType=\"Reporter\" type=\"data_lengthoflist\"><field name=\"LIST\" variabletype=\"list\">my list</field></block><block blockType=\"Boolean\" type=\"data_listcontainsitem\"><field name=\"LIST\" variabletype=\"list\">my list</field><value name=\"ITEM\"><shadow type=\"text\"><field name=\"TEXT\">thing</field></shadow></value></block><block blockType=\"Stack\" type=\"data_hidelist\"><field name=\"LIST\" variabletype=\"list\">my list</field></block><block type=\"procedures_definition\" blockType=\"Hat\"><statement name=\"custom_block\"><shadow type=\"procedures_prototype\"><mutation proccode=\"...\" argumentids=\"...\" argumentnames=\"...\" argumentdefaults=\"\" warp=\"...\"/></shadow></statement><next></next></block><block type=\"procedures_call\" blockType=\"Stack\"><mutation proccode=\"...\" argumentids=\"...\" warp=\"...\"/></block><block type=\"argument_reporter_boolean\" blockType=\"Boolean\"><field name=\"VALUE\"/></block><block type=\"argument_reporter_string_number\" blockType=\"Reporter\"><field name=\"VALUE\"/></block></toolbox>"
3+
}

‎src/addons/addons/ai-integration/helpers.js‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
const toolboxOverrides = require('./assets/toolboxOverrides.json');
2+
const defaultToolbox = require('./assets/defaultToolbox.json');
23

34
export default class helpers {
45
constructor() {
@@ -192,8 +193,11 @@ export default class helpers {
192193
document.AI_INTEGRATION.popupOpen = false;
193194
});
194195
}
195-
static returnSterilizedToolbox(Gaddon) {
196+
static returnSterilizedToolbox(Gaddon,allowExtensions = false) {
196197
if (Gaddon == null) return;
198+
if(allowExtensions){
199+
return defaultToolbox.default;
200+
}
197201
function extractBlockReturnType(block) {
198202
if (!block) return null;
199203
var returnType = "Stack";
@@ -248,7 +252,8 @@ export default class helpers {
248252
workspace.dispose();
249253
var serializer = new XMLSerializer();
250254
var xmlString = serializer.serializeToString(sterializedToolbox);
251-
console.log("[DEBUG] toolbox has # of blocks: " + sterializedToolbox.getElementsByTagName("block").length);
255+
console.log("[DEBUG] toolbox has #",sterializedToolbox.getElementsByTagName("block").length," of blocks");
256+
252257
return xmlString.replace(/>\s+</g, '><').trim();
253258
}
254259
}

0 commit comments

Comments
 (0)