Update(boards): xpython板卡添加 解包 操作,同时调整 打包 操作位置
This commit is contained in:
@@ -899,19 +899,6 @@
|
|||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
<block type="lists_zip">
|
|
||||||
<mutation items="2"></mutation>
|
|
||||||
<value name="ADD0">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
<value name="ADD1">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
</block>
|
|
||||||
</category>
|
</category>
|
||||||
<category id="catTuple" colour="195">
|
<category id="catTuple" colour="195">
|
||||||
<block type="tuple_create_with"></block>
|
<block type="tuple_create_with"></block>
|
||||||
|
|||||||
@@ -872,19 +872,6 @@
|
|||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
<block type="lists_zip">
|
|
||||||
<mutation items="2"></mutation>
|
|
||||||
<value name="ADD0">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
<value name="ADD1">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
</block>
|
|
||||||
</category>
|
</category>
|
||||||
<category id="catTuple" colour="195">
|
<category id="catTuple" colour="195">
|
||||||
<block type="tuple_create_with"></block>
|
<block type="tuple_create_with"></block>
|
||||||
|
|||||||
@@ -872,19 +872,6 @@
|
|||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
<block type="lists_zip">
|
|
||||||
<mutation items="2"></mutation>
|
|
||||||
<value name="ADD0">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
<value name="ADD1">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
</block>
|
|
||||||
</category>
|
</category>
|
||||||
<category id="catTuple" colour="195">
|
<category id="catTuple" colour="195">
|
||||||
<block type="tuple_create_with"></block>
|
<block type="tuple_create_with"></block>
|
||||||
|
|||||||
@@ -899,19 +899,6 @@
|
|||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
<block type="lists_zip">
|
|
||||||
<mutation items="2"></mutation>
|
|
||||||
<value name="ADD0">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
<value name="ADD1">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
</block>
|
|
||||||
</category>
|
</category>
|
||||||
<category id="catTuple" colour="195">
|
<category id="catTuple" colour="195">
|
||||||
<block type="tuple_create_with"></block>
|
<block type="tuple_create_with"></block>
|
||||||
|
|||||||
@@ -899,19 +899,6 @@
|
|||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
<block type="lists_zip">
|
|
||||||
<mutation items="2"></mutation>
|
|
||||||
<value name="ADD0">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
<value name="ADD1">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
</block>
|
|
||||||
</category>
|
</category>
|
||||||
<category id="catTuple" colour="195">
|
<category id="catTuple" colour="195">
|
||||||
<block type="tuple_create_with"></block>
|
<block type="tuple_create_with"></block>
|
||||||
|
|||||||
@@ -894,19 +894,6 @@
|
|||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
<block type="lists_zip">
|
|
||||||
<mutation items="2"></mutation>
|
|
||||||
<value name="ADD0">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
<value name="ADD1">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
</block>
|
|
||||||
</category>
|
</category>
|
||||||
<category id="catTuple" colour="195">
|
<category id="catTuple" colour="195">
|
||||||
<block type="tuple_create_with"></block>
|
<block type="tuple_create_with"></block>
|
||||||
|
|||||||
@@ -742,19 +742,6 @@
|
|||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
<block type="lists_zip">
|
|
||||||
<mutation items="2"></mutation>
|
|
||||||
<value name="ADD0">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
<value name="ADD1">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
</block>
|
|
||||||
</category>
|
</category>
|
||||||
<category id="catTuple" colour="195">
|
<category id="catTuple" colour="195">
|
||||||
<block type="tuple_create_with"></block>
|
<block type="tuple_create_with"></block>
|
||||||
|
|||||||
@@ -658,19 +658,6 @@
|
|||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
<block type="lists_zip">
|
|
||||||
<mutation items="2"></mutation>
|
|
||||||
<value name="ADD0">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
<value name="ADD1">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
</block>
|
|
||||||
</category>
|
</category>
|
||||||
<category id="catTuple" colour="195">
|
<category id="catTuple" colour="195">
|
||||||
<block type="tuple_create_with"></block>
|
<block type="tuple_create_with"></block>
|
||||||
|
|||||||
@@ -886,19 +886,6 @@
|
|||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
<block type="lists_zip">
|
|
||||||
<mutation items="2"></mutation>
|
|
||||||
<value name="ADD0">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
<value name="ADD1">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
</block>
|
|
||||||
</category>
|
</category>
|
||||||
<category id="catTuple" colour="195">
|
<category id="catTuple" colour="195">
|
||||||
<block type="tuple_create_with"></block>
|
<block type="tuple_create_with"></block>
|
||||||
|
|||||||
@@ -775,127 +775,6 @@ export const lists_del_general = {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
export const lists_zip = {
|
|
||||||
init: function () {
|
|
||||||
this.setColour(LISTS_HUE);
|
|
||||||
|
|
||||||
this.itemCount_ = 2;
|
|
||||||
this.updateShape_();
|
|
||||||
this.setInputsInline(true);
|
|
||||||
this.setPreviousStatement(false);
|
|
||||||
this.setNextStatement(false);
|
|
||||||
this.setOutput(true, "List")
|
|
||||||
this.setMutator(new Blockly.icons.MutatorIcon(['lists_zip_item'], this));
|
|
||||||
this.setTooltip(Blockly.Msg.MIXLY_PYTHON_LISTS_ZIP_TOOLTIP);
|
|
||||||
},
|
|
||||||
|
|
||||||
mutationToDom: function () {
|
|
||||||
var container = document.createElement('mutation');
|
|
||||||
container.setAttribute('items', this.itemCount_);
|
|
||||||
return container;
|
|
||||||
},
|
|
||||||
|
|
||||||
domToMutation: function (xmlElement) {
|
|
||||||
this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10);
|
|
||||||
this.updateShape_();
|
|
||||||
},
|
|
||||||
|
|
||||||
decompose: function (workspace) {
|
|
||||||
var containerBlock =
|
|
||||||
workspace.newBlock('lists_zip_container');
|
|
||||||
containerBlock.initSvg();
|
|
||||||
var connection = containerBlock.getInput('STACK').connection;
|
|
||||||
for (var i = 0; i < this.itemCount_; i++) {
|
|
||||||
var itemBlock = workspace.newBlock('lists_zip_item');
|
|
||||||
itemBlock.initSvg();
|
|
||||||
connection.connect(itemBlock.previousConnection);
|
|
||||||
connection = itemBlock.nextConnection;
|
|
||||||
}
|
|
||||||
return containerBlock;
|
|
||||||
},
|
|
||||||
|
|
||||||
compose: function (containerBlock) {
|
|
||||||
var itemBlock = containerBlock.getInputTargetBlock('STACK');
|
|
||||||
// Count number of inputs.
|
|
||||||
var connections = [];
|
|
||||||
var i = 0;
|
|
||||||
while (itemBlock) {
|
|
||||||
connections[i] = itemBlock.valueConnection_;
|
|
||||||
itemBlock = itemBlock.nextConnection &&
|
|
||||||
itemBlock.nextConnection.targetBlock();
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
this.itemCount_ = i;
|
|
||||||
this.updateShape_();
|
|
||||||
// Reconnect any child blocks.
|
|
||||||
for (var i = 0; i < this.itemCount_; i++) {
|
|
||||||
if (connections[i]) {
|
|
||||||
this.getInput('ADD' + i).connection.connect(connections[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
saveConnections: function (containerBlock) {
|
|
||||||
var itemBlock = containerBlock.getInputTargetBlock('STACK');
|
|
||||||
var i = 0;
|
|
||||||
while (itemBlock) {
|
|
||||||
var input = this.getInput('ADD' + i);
|
|
||||||
itemBlock.valueConnection_ = input && input.connection.targetConnection;
|
|
||||||
i++;
|
|
||||||
itemBlock = itemBlock.nextConnection &&
|
|
||||||
itemBlock.nextConnection.targetBlock();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
updateShape_: function () {
|
|
||||||
// Delete everything.
|
|
||||||
if (this.getInput('EMPTY')) {
|
|
||||||
this.removeInput('EMPTY');
|
|
||||||
} else {
|
|
||||||
var i = 0;
|
|
||||||
while (this.getInput('ADD' + i)) {
|
|
||||||
this.removeInput('ADD' + i);
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Rebuild block.
|
|
||||||
if (this.itemCount_ == 0) {
|
|
||||||
this.appendDummyInput('EMPTY')
|
|
||||||
.appendField(Blockly.Msg.MIXLY_PYTHON_LISTS_ZIP);
|
|
||||||
} else {
|
|
||||||
for (var i = 0; i < this.itemCount_; i++) {
|
|
||||||
var input = this.appendValueInput('ADD' + i);
|
|
||||||
if (i == 0) {
|
|
||||||
input.appendField(Blockly.Msg.MIXLY_PYTHON_LISTS_ZIP);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
export const lists_zip_container = {
|
|
||||||
init: function () {
|
|
||||||
this.setColour(LISTS_HUE);
|
|
||||||
this.appendDummyInput()
|
|
||||||
.appendField(Blockly.Msg.MIXLY_PYTHON_LISTS_ZIP)
|
|
||||||
.appendField('[]');
|
|
||||||
this.appendStatementInput('STACK');
|
|
||||||
this.setTooltip(Blockly.Msg.MIXLY_MIXPY_INOUT_PRINT_MANY_CONTAINER_TOOLTIP);
|
|
||||||
this.contextMenu = false;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
export const lists_zip_item = {
|
|
||||||
init: function () {
|
|
||||||
this.setColour(LISTS_HUE);
|
|
||||||
this.appendDummyInput()
|
|
||||||
.appendField(Blockly.Msg.MIXLY_PYTHON_LISTS_ZIP_ITEM);
|
|
||||||
this.setPreviousStatement(true);
|
|
||||||
this.setNextStatement(true);
|
|
||||||
this.setTooltip(Blockly.Msg.MIXLY_PYTHON_LISTS_ZIP_ITEM_TOOLTIP);
|
|
||||||
this.contextMenu = false;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
export const list_tolist = {
|
export const list_tolist = {
|
||||||
init: function () {
|
init: function () {
|
||||||
this.setColour(LISTS_HUE);
|
this.setColour(LISTS_HUE);
|
||||||
|
|||||||
@@ -199,4 +199,139 @@ export const controls_typeLists = {
|
|||||||
return mode0 + TOOLTIPS[mode];
|
return mode0 + TOOLTIPS[mode];
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export const lists_zip = {
|
||||||
|
init: function () {
|
||||||
|
this.setColour(VARIABLES_HUE);
|
||||||
|
|
||||||
|
this.itemCount_ = 2;
|
||||||
|
this.updateShape_();
|
||||||
|
this.setInputsInline(true);
|
||||||
|
this.setPreviousStatement(false);
|
||||||
|
this.setNextStatement(false);
|
||||||
|
this.setOutput(true, "List")
|
||||||
|
this.setMutator(new Blockly.icons.MutatorIcon(['lists_zip_item'], this));
|
||||||
|
this.setTooltip(Blockly.Msg.MIXLY_PYTHON_LISTS_ZIP_TOOLTIP);
|
||||||
|
},
|
||||||
|
|
||||||
|
mutationToDom: function () {
|
||||||
|
var container = document.createElement('mutation');
|
||||||
|
container.setAttribute('items', this.itemCount_);
|
||||||
|
return container;
|
||||||
|
},
|
||||||
|
|
||||||
|
domToMutation: function (xmlElement) {
|
||||||
|
this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10);
|
||||||
|
this.updateShape_();
|
||||||
|
},
|
||||||
|
|
||||||
|
decompose: function (workspace) {
|
||||||
|
var containerBlock =
|
||||||
|
workspace.newBlock('lists_zip_container');
|
||||||
|
containerBlock.initSvg();
|
||||||
|
var connection = containerBlock.getInput('STACK').connection;
|
||||||
|
for (var i = 0; i < this.itemCount_; i++) {
|
||||||
|
var itemBlock = workspace.newBlock('lists_zip_item');
|
||||||
|
itemBlock.initSvg();
|
||||||
|
connection.connect(itemBlock.previousConnection);
|
||||||
|
connection = itemBlock.nextConnection;
|
||||||
|
}
|
||||||
|
return containerBlock;
|
||||||
|
},
|
||||||
|
|
||||||
|
compose: function (containerBlock) {
|
||||||
|
var itemBlock = containerBlock.getInputTargetBlock('STACK');
|
||||||
|
// Count number of inputs.
|
||||||
|
var connections = [];
|
||||||
|
var i = 0;
|
||||||
|
while (itemBlock) {
|
||||||
|
connections[i] = itemBlock.valueConnection_;
|
||||||
|
itemBlock = itemBlock.nextConnection &&
|
||||||
|
itemBlock.nextConnection.targetBlock();
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
this.itemCount_ = i;
|
||||||
|
this.updateShape_();
|
||||||
|
// Reconnect any child blocks.
|
||||||
|
for (var i = 0; i < this.itemCount_; i++) {
|
||||||
|
if (connections[i]) {
|
||||||
|
this.getInput('ADD' + i).connection.connect(connections[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
saveConnections: function (containerBlock) {
|
||||||
|
var itemBlock = containerBlock.getInputTargetBlock('STACK');
|
||||||
|
var i = 0;
|
||||||
|
while (itemBlock) {
|
||||||
|
var input = this.getInput('ADD' + i);
|
||||||
|
itemBlock.valueConnection_ = input && input.connection.targetConnection;
|
||||||
|
i++;
|
||||||
|
itemBlock = itemBlock.nextConnection &&
|
||||||
|
itemBlock.nextConnection.targetBlock();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
updateShape_: function () {
|
||||||
|
// Delete everything.
|
||||||
|
if (this.getInput('EMPTY')) {
|
||||||
|
this.removeInput('EMPTY');
|
||||||
|
} else {
|
||||||
|
var i = 0;
|
||||||
|
while (this.getInput('ADD' + i)) {
|
||||||
|
this.removeInput('ADD' + i);
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Rebuild block.
|
||||||
|
if (this.itemCount_ == 0) {
|
||||||
|
this.appendDummyInput('EMPTY')
|
||||||
|
.appendField(Blockly.Msg.MIXLY_PYTHON_LISTS_ZIP);
|
||||||
|
} else {
|
||||||
|
for (var i = 0; i < this.itemCount_; i++) {
|
||||||
|
var input = this.appendValueInput('ADD' + i);
|
||||||
|
if (i == 0) {
|
||||||
|
input.appendField(Blockly.Msg.MIXLY_PYTHON_LISTS_ZIP);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
export const lists_zip_container = {
|
||||||
|
init: function () {
|
||||||
|
this.setColour(VARIABLES_HUE);
|
||||||
|
this.appendDummyInput()
|
||||||
|
.appendField(Blockly.Msg.MIXLY_PYTHON_LISTS_ZIP)
|
||||||
|
.appendField('[]');
|
||||||
|
this.appendStatementInput('STACK');
|
||||||
|
this.setTooltip(Blockly.Msg.MIXLY_MIXPY_INOUT_PRINT_MANY_CONTAINER_TOOLTIP);
|
||||||
|
this.contextMenu = false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export const lists_zip_item = {
|
||||||
|
init: function () {
|
||||||
|
this.setColour(VARIABLES_HUE);
|
||||||
|
this.appendDummyInput()
|
||||||
|
.appendField(Blockly.Msg.MIXLY_PYTHON_LISTS_ZIP_ITEM);
|
||||||
|
this.setPreviousStatement(true);
|
||||||
|
this.setNextStatement(true);
|
||||||
|
this.setTooltip(Blockly.Msg.MIXLY_PYTHON_LISTS_ZIP_ITEM_TOOLTIP);
|
||||||
|
this.contextMenu = false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export const unpack_iterable_object = {
|
||||||
|
init: function () {
|
||||||
|
this.setColour(VARIABLES_HUE);
|
||||||
|
this.appendValueInput('VAR')
|
||||||
|
.appendField(Blockly.Msg.MIXLY_VARIABLE_UNPACK)
|
||||||
|
.appendField(new Blockly.FieldDropdown([
|
||||||
|
[Blockly.Msg.MIXLY_PYTHON_LISTS_ZIP_ITEM, '*'],
|
||||||
|
[Blockly.Msg.MIXLY_MICROBIT_TYPE_DICT, '**']
|
||||||
|
]), 'TYPE');
|
||||||
|
this.setTooltip('');
|
||||||
|
this.setOutput(true);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
@@ -245,17 +245,6 @@ export const lists_setIndex3 = lists_set_index
|
|||||||
export const lists_insert_value2 = lists_insert_value
|
export const lists_insert_value2 = lists_insert_value
|
||||||
export const lists_remove_at2 = lists_remove_at
|
export const lists_remove_at2 = lists_remove_at
|
||||||
|
|
||||||
export const lists_zip = function (_, generator) {
|
|
||||||
var code = new Array(this.itemCount_);
|
|
||||||
var default_value = '[]';
|
|
||||||
for (var n = 0; n < this.itemCount_; n++) {
|
|
||||||
code[n] = generator.valueToCode(this, 'ADD' + n,
|
|
||||||
generator.ORDER_NONE) || default_value;
|
|
||||||
}
|
|
||||||
var code = 'zip(' + code.join(', ') + ')';
|
|
||||||
return [code, generator.ORDER_ATOMIC];
|
|
||||||
}
|
|
||||||
|
|
||||||
export const list_tolist = function (_, generator) {
|
export const list_tolist = function (_, generator) {
|
||||||
var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '0'
|
var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '0'
|
||||||
return ['list(' + str + ')', generator.ORDER_ATOMIC];
|
return ['list(' + str + ')', generator.ORDER_ATOMIC];
|
||||||
|
|||||||
@@ -69,4 +69,22 @@ export const controls_typeLists = function (_, generator) {
|
|||||||
var type = this.getFieldValue('type');
|
var type = this.getFieldValue('type');
|
||||||
// generator.definitions_['func_type' + type] = code;
|
// generator.definitions_['func_type' + type] = code;
|
||||||
return [type, generator.ORDER_ATOMIC];
|
return [type, generator.ORDER_ATOMIC];
|
||||||
|
}
|
||||||
|
|
||||||
|
export const lists_zip = function (_, generator) {
|
||||||
|
var code = new Array(this.itemCount_);
|
||||||
|
var default_value = '[]';
|
||||||
|
for (var n = 0; n < this.itemCount_; n++) {
|
||||||
|
code[n] = generator.valueToCode(this, 'ADD' + n,
|
||||||
|
generator.ORDER_NONE) || default_value;
|
||||||
|
}
|
||||||
|
var code = 'zip(' + code.join(', ') + ')';
|
||||||
|
return [code, generator.ORDER_ATOMIC];
|
||||||
|
}
|
||||||
|
|
||||||
|
export const unpack_iterable_object = function (_, generator) {
|
||||||
|
const varName = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '[]';
|
||||||
|
const type = this.getFieldValue('TYPE');
|
||||||
|
const code = `${type}(${varName})`;
|
||||||
|
return [code, generator.ORDER_ATOMIC];
|
||||||
}
|
}
|
||||||
@@ -134,6 +134,33 @@ Variables.flyoutCategory = function (workspace) {
|
|||||||
block.setAttribute('type', 'controls_typeLists');
|
block.setAttribute('type', 'controls_typeLists');
|
||||||
xmlList.push(block);
|
xmlList.push(block);
|
||||||
}
|
}
|
||||||
|
if (Blockly.Blocks['lists_zip']) {
|
||||||
|
var block = Blockly.utils.xml.createElement('block');
|
||||||
|
block.setAttribute('type', 'lists_zip');
|
||||||
|
block.setAttribute('inline', 'false');
|
||||||
|
var mutation = Blockly.utils.xml.createElement('mutation');
|
||||||
|
mutation.setAttribute('items', 2);
|
||||||
|
block.appendChild(mutation);
|
||||||
|
for (let i = 0; i < 2; i++) {
|
||||||
|
let add = Blockly.utils.xml.createElement('value');
|
||||||
|
add.setAttribute('name', `ADD${i}`);
|
||||||
|
// let childBlock = Blockly.utils.xml.createElement('block');
|
||||||
|
// childBlock.setAttribute('type', 'list_many_input');
|
||||||
|
// let field = Blockly.utils.xml.createElement('field');
|
||||||
|
// let value = Blockly.utils.xml.createTextNode('0,1,2,3');
|
||||||
|
// field.setAttribute('name', 'CONTENT');
|
||||||
|
// field.appendChild(value);
|
||||||
|
// childBlock.appendChild(field);
|
||||||
|
// add.appendChild(childBlock);
|
||||||
|
block.appendChild(add);
|
||||||
|
}
|
||||||
|
xmlList.push(block);
|
||||||
|
}
|
||||||
|
if (Blockly.Blocks['unpack_iterable_object']) {
|
||||||
|
var block = Blockly.utils.xml.createElement('block');
|
||||||
|
block.setAttribute('type', 'unpack_iterable_object');
|
||||||
|
xmlList.push(block);
|
||||||
|
}
|
||||||
for (var i = 0; i < variableList.length; i++) {
|
for (var i = 0; i < variableList.length; i++) {
|
||||||
// alert(variableList)
|
// alert(variableList)
|
||||||
// if(i==0&& !(Blockly.Python.setups_['variables_set'+''])){
|
// if(i==0&& !(Blockly.Python.setups_['variables_set'+''])){
|
||||||
|
|||||||
@@ -894,19 +894,6 @@
|
|||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
<block type="lists_zip">
|
|
||||||
<mutation items="2"></mutation>
|
|
||||||
<value name="ADD0">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
<value name="ADD1">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
</block>
|
|
||||||
</category>
|
</category>
|
||||||
<category id="catTuple" colour="195">
|
<category id="catTuple" colour="195">
|
||||||
<block type="tuple_create_with"></block>
|
<block type="tuple_create_with"></block>
|
||||||
|
|||||||
@@ -894,19 +894,6 @@
|
|||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
<block type="lists_zip">
|
|
||||||
<mutation items="2"></mutation>
|
|
||||||
<value name="ADD0">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
<value name="ADD1">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
</block>
|
|
||||||
</category>
|
</category>
|
||||||
<category id="catTuple" colour="195">
|
<category id="catTuple" colour="195">
|
||||||
<block type="tuple_create_with"></block>
|
<block type="tuple_create_with"></block>
|
||||||
|
|||||||
@@ -846,19 +846,6 @@
|
|||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
<block type="lists_zip">
|
|
||||||
<mutation items="2"></mutation>
|
|
||||||
<value name="ADD0">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
<value name="ADD1">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
</block>
|
|
||||||
</category>
|
</category>
|
||||||
<category id="catTuple" colour="195">
|
<category id="catTuple" colour="195">
|
||||||
<block type="tuple_create_with"></block>
|
<block type="tuple_create_with"></block>
|
||||||
|
|||||||
@@ -817,19 +817,6 @@ type="application/javascript"></script> -->
|
|||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
<block type="lists_zip">
|
|
||||||
<mutation items="2"></mutation>
|
|
||||||
<value name="ADD0">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
<value name="ADD1">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
</block>
|
|
||||||
</category>
|
</category>
|
||||||
<category id="catTuple" colour="195">
|
<category id="catTuple" colour="195">
|
||||||
<block type="tuple_create_with"></block>
|
<block type="tuple_create_with"></block>
|
||||||
|
|||||||
@@ -804,19 +804,6 @@ type="application/javascript"></script> -->
|
|||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
<block type="lists_zip">
|
|
||||||
<mutation items="2"></mutation>
|
|
||||||
<value name="ADD0">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
<value name="ADD1">
|
|
||||||
<block type="list_many_input">
|
|
||||||
<field name="CONTENT">0,1,2,3</field>
|
|
||||||
</block>
|
|
||||||
</value>
|
|
||||||
</block>
|
|
||||||
</category>
|
</category>
|
||||||
<category id="catTuple" colour="195">
|
<category id="catTuple" colour="195">
|
||||||
<block type="tuple_create_with"></block>
|
<block type="tuple_create_with"></block>
|
||||||
|
|||||||
@@ -3748,4 +3748,5 @@ En.MIXLY_BATTERY ="battery level";
|
|||||||
En.MIXLY_RANGE_OF_BATTERY = "the range of battery level is 0~100%";
|
En.MIXLY_RANGE_OF_BATTERY = "the range of battery level is 0~100%";
|
||||||
En.MIXLY_MOUSE = "mouse";
|
En.MIXLY_MOUSE = "mouse";
|
||||||
En.MIXLY_SEND = "send";
|
En.MIXLY_SEND = "send";
|
||||||
|
En.MIXLY_VARIABLE_UNPACK = "Unpack";
|
||||||
})();
|
})();
|
||||||
@@ -3896,4 +3896,5 @@ ZhHans.MIXLY_BATTERY ="电池电量";
|
|||||||
ZhHans.MIXLY_RANGE_OF_BATTERY = "电池的电量范围为 0~100%";
|
ZhHans.MIXLY_RANGE_OF_BATTERY = "电池的电量范围为 0~100%";
|
||||||
ZhHans.MIXLY_MOUSE = "鼠标";
|
ZhHans.MIXLY_MOUSE = "鼠标";
|
||||||
ZhHans.MIXLY_SEND = "发送";
|
ZhHans.MIXLY_SEND = "发送";
|
||||||
|
ZhHans.MIXLY_VARIABLE_UNPACK = "解包";
|
||||||
})();
|
})();
|
||||||
@@ -3751,4 +3751,5 @@ ZhHant.MIXLY_BATTERY ="電池電量";
|
|||||||
ZhHant.MIXLY_RANGE_OF_BATTERY = "電池的電量範圍為 0~100%";
|
ZhHant.MIXLY_RANGE_OF_BATTERY = "電池的電量範圍為 0~100%";
|
||||||
ZhHant.MIXLY_MOUSE = "鼠標";
|
ZhHant.MIXLY_MOUSE = "鼠標";
|
||||||
ZhHant.MIXLY_SEND = "發送";
|
ZhHant.MIXLY_SEND = "發送";
|
||||||
|
ZhHant.MIXLY_VARIABLE_UNPACK = "解包";
|
||||||
})();
|
})();
|
||||||
Reference in New Issue
Block a user