Skip to content

Commit 8d1ec8b

Browse files
committed
Added additional Sphero SPRK+ Blocks
Added general message display blocks to show an countdown or any other user specific text on the screen.
1 parent 220291a commit 8d1ec8b

File tree

23 files changed

+771
-31
lines changed

23 files changed

+771
-31
lines changed

package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"eslint": "^4.19.1",
1616
"eslint-config-google": "^0.9.1",
1717
"http-server": "latest",
18-
"jasmine-core": "latest",
18+
"jasmine-core": "^3.2.0",
1919
"jsdoc": "^3.5.5",
2020
"karma": "^2.0.5",
2121
"karma-chrome-launcher": "latest",

src/blocks/blocks.soy

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,18 @@
8181
/**
8282
* Blockly default display blocks.
8383
*/
84-
{template .defaultDisplayBlocks}
85-
<category name="{msg desc="Display Blocks"}Display{/msg}" colour="120">
84+
{template .defaultMessengerBlocks}
85+
<category name="{msg desc="Display Blocks"}Control{/msg}" colour="120">
86+
<block type="general_messenger_delay">
87+
<value name="time">
88+
<block type="math_number">
89+
<field name="NUM">5</field>
90+
</block>
91+
</value>
92+
</block>
93+
</category>
8694

95+
<category name="{msg desc="Display Blocks"}Display{/msg}" colour="120">
8796
<block type="general_messenger_display_text">
8897
<value name="text">
8998
<block type="text">
@@ -129,6 +138,9 @@
129138
</next>
130139
</block>
131140

141+
<block type="general_messenger_display_clear">
142+
</block>
143+
132144
</category>
133145
{/template}
134146

src/blocks/general/messenger/blocks.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,25 @@
1919
*/
2020

2121

22+
/**
23+
* Delay actions.
24+
*/
25+
Blockly.Blocks['general_messenger_delay'] = {
26+
init: function() {
27+
this.setHelpUrl('');
28+
this.setColour(260);
29+
this.appendDummyInput()
30+
.appendField(Blockly.BlocksTemplate.point())
31+
.appendField(i18t('wait ('))
32+
.appendField(new Blockly.FieldTextInput('2'), 'time')
33+
.appendField('sec)');
34+
this.setPreviousStatement(true);
35+
this.setNextStatement(true);
36+
this.setTooltip(i18t('Delay actions for the given seconds'));
37+
},
38+
};
39+
40+
2241
/**
2342
* Display text on local screen.
2443
*/
@@ -35,3 +54,20 @@ Blockly.Blocks['general_messenger_display_text'] = {
3554
this.setHelpUrl('');
3655
},
3756
};
57+
58+
59+
/**
60+
* Clear displayed text on local screen.
61+
*/
62+
Blockly.Blocks['general_messenger_display_clear'] = {
63+
init: function() {
64+
this.setColour(150);
65+
this.appendDummyInput()
66+
.appendField(Blockly.BlocksTemplate.addCircle())
67+
.appendField(i18t('clear display'));
68+
this.setPreviousStatement(true);
69+
this.setNextStatement(true);
70+
this.setTooltip('');
71+
this.setHelpUrl('');
72+
},
73+
};

src/blocks/general/messenger/javascript.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,17 @@
1919
*/
2020

2121

22+
/**
23+
* Delay actions.
24+
* @param {!Blockly.block} block
25+
* @return {string}
26+
*/
27+
Blockly.JavaScript['general_messenger_delay'] = function(block) {
28+
let time = block.getFieldValue('time') * 1000;
29+
return 'cwcMessengerCommand.delay(' + time + ');\n';
30+
};
31+
32+
2233
/**
2334
* Display text on local screen.
2435
* @param {!Blockly.block} block
@@ -29,3 +40,12 @@ Blockly.JavaScript['general_messenger_display_text'] = function(block) {
2940
block, 'text', Blockly.JavaScript.ORDER_ATOMIC) || '';
3041
return 'cwcMessengerDisplay.displayText(String(' + value_text + '));\n';
3142
};
43+
44+
45+
/**
46+
* Clear displayed text on local screen.
47+
* @return {string}
48+
*/
49+
Blockly.JavaScript['general_messenger_display_clear'] = function() {
50+
return 'cwcMessengerDisplay.clear();\n';
51+
};

src/blocks/lego/wedo2/toolbox.soy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545

4646
<sep></sep>
4747

48-
{call cwc.soy.Blocks.defaultDisplayBlocks /}
48+
{call cwc.soy.Blocks.defaultMessengerBlocks /}
4949

5050
<sep></sep>
5151

src/blocks/sphero/blocks.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
*/
2525
Blockly.Blocks['sphero_start'] = {
2626
init: function() {
27+
this.setDeletable(false);
2728
this.setHelpUrl('');
2829
this.setColour(65);
2930
this.appendDummyInput()

0 commit comments

Comments
 (0)