Skip to content

Commit

Permalink
Added block for multiple and conditions
Browse files Browse the repository at this point in the history
  • Loading branch information
klein0r committed Jan 14, 2024
1 parent f03bf3d commit 1850bc6
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 9 deletions.
14 changes: 8 additions & 6 deletions src/public/google-blockly/own/blocks_logic.js
Expand Up @@ -33,7 +33,7 @@ Blockly.Blocks['logic_multi_and_mutator'] = {
this.setColour("%{BKY_LOGIC_HUE}");

this.appendDummyInput('AND')
.appendField(Blockly.Msg['LOGIC_OPERATION_AND']);
.appendField(Blockly.Translate('logic_multi_and_and'));

this.setPreviousStatement(true);
this.setNextStatement(true);
Expand All @@ -49,9 +49,9 @@ Blockly.Blocks['logic_multi_and'] = {
this.itemCount_ = 2;
this.setMutator(new Blockly.Mutator(['logic_multi_and_mutator']));

this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setInputsInline(false);
this.setOutput(true, 'Boolean');

this.setColour("%{BKY_LOGIC_HUE}");
this.setTooltip(Blockly.Translate('logic_multi_and_tooltip'));
// this.setHelpUrl(getHelp('logic_multi_and_help'));
Expand Down Expand Up @@ -164,7 +164,9 @@ Blockly.Blocks['logic_multi_and'] = {
for (let i = 0; i < this.itemCount_; i++) {
if (!this.getInput('AND' + i)) {
const input = this.appendValueInput('AND' + i).setAlign(Blockly.ALIGN_RIGHT);
input.appendField(Blockly.Msg['LOGIC_OPERATION_AND']);
if (i > 0) {
input.appendField(Blockly.Translate('logic_multi_and_and'));
}
}
}
// Remove deleted inputs.
Expand All @@ -177,13 +179,13 @@ Blockly.Blocks['logic_multi_and'] = {
Blockly.JavaScript['logic_multi_and'] = function(block) {
const ands = [];
for (let n = 0; n < block.itemCount_; n++) {
let condition = Blockly.JavaScript.valueToCode(block, 'AND' + n, Blockly.JavaScript.ORDER_COMMA);
const condition = Blockly.JavaScript.valueToCode(block, 'AND' + n, Blockly.JavaScript.ORDER_COMMA);
if (condition) {
ands.push(condition);
}
}

return `(${ands.join(' && ')})`;
return [`(${ands.length > 0 ? ands.join(' && ') : 'false'})`, Blockly.JavaScript.ORDER_ATOMIC];
};

// --- logic between --------------------------------------------------
Expand Down
1 change: 1 addition & 0 deletions src/public/google-blockly/own/blocks_words.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions src/public/index.html
Expand Up @@ -114,6 +114,9 @@
<block type="controls_if"></block>
<block type="logic_compare"></block>
<block type="logic_operation"></block>
<block type="logic_multi_and">
<mutation items="2"></mutation>
</block>
<block type="logic_negate"></block>
<block type="logic_boolean"></block>
<block type="logic_null"></block>
Expand Down Expand Up @@ -146,9 +149,6 @@
</block>
</value>
</block>
<block type="logic_multi_and">
<mutation items="2"></mutation>
</block>
<block type="logic_ifempty">
<value name="VALUE">
</value>
Expand Down

0 comments on commit 1850bc6

Please sign in to comment.