mirror of
https://github.com/damp11113-software/ccIDE.git
synced 2025-04-27 22:48:13 +00:00
update 1.1.3 new block function for table and new block
new block: CCColors
This commit is contained in:
parent
aee88bcdae
commit
18200b2b51
63
blocks/CCColors/block_design.json
Normal file
63
blocks/CCColors/block_design.json
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
{
|
||||||
|
"colors_color_picker": {
|
||||||
|
"message0": "Color %1",
|
||||||
|
"args0": [
|
||||||
|
{
|
||||||
|
"type": "field_dropdown",
|
||||||
|
"name": "COLOR",
|
||||||
|
"options": [
|
||||||
|
["White", "colors.white"],
|
||||||
|
["Orange", "colors.orange"],
|
||||||
|
["Magenta", "colors.magenta"],
|
||||||
|
["Light blue", "colors.lightBlue"],
|
||||||
|
["Yellow", "colors.yellow"],
|
||||||
|
["Lime", "colors.lime"],
|
||||||
|
["Pink", "colors.pink"],
|
||||||
|
["Gray", "colors.gray"],
|
||||||
|
["Light gray", "colors.lightGray"],
|
||||||
|
["Cyan", "colors.cyan"],
|
||||||
|
["Purple", "colors.purple"],
|
||||||
|
["Blue", "colors.blue"],
|
||||||
|
["Brown", "colors.brown"],
|
||||||
|
["Green", "colors.green"],
|
||||||
|
["Red", "colors.red"],
|
||||||
|
["Black", "colors.black"]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"output": "CCColors",
|
||||||
|
"colour": 192,
|
||||||
|
"tooltip": "Pick color value"
|
||||||
|
},
|
||||||
|
"colors_combine": {
|
||||||
|
"message0": "Combine color from %1",
|
||||||
|
"args0": [
|
||||||
|
{
|
||||||
|
"type": "input_value",
|
||||||
|
"name": "COLORARRAY",
|
||||||
|
"check": "Array"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"output": "CCColors",
|
||||||
|
"colour": 192,
|
||||||
|
"tooltip": "Combines a set of colors (or sets of colors) into a larger set."
|
||||||
|
},
|
||||||
|
"colors_subtract": {
|
||||||
|
"message0": "Subtract color %1 from %2",
|
||||||
|
"args0": [
|
||||||
|
{
|
||||||
|
"type": "input_value",
|
||||||
|
"name": "COLORARRAY",
|
||||||
|
"check": "Array"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "input_value",
|
||||||
|
"name": "COLOR",
|
||||||
|
"check": "CCColors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"output": "CCColors",
|
||||||
|
"colour": 192,
|
||||||
|
"tooltip": "Removes one or more colors (or sets of colors) from an initial set."
|
||||||
|
}
|
||||||
|
}
|
26
blocks/CCColors/generator.js
Normal file
26
blocks/CCColors/generator.js
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
const { luaGenerator } = require('blockly/lua');
|
||||||
|
|
||||||
|
// Check if luaGenerator.forBlock is defined and initialize if necessary
|
||||||
|
if (!luaGenerator.forBlock) {
|
||||||
|
luaGenerator.forBlock = {};
|
||||||
|
}
|
||||||
|
|
||||||
|
luaGenerator.forBlock['colors_color_picker'] = function(block, generator) {
|
||||||
|
var color = block.getFieldValue('COLOR');
|
||||||
|
|
||||||
|
return [color, generator.ORDER_NONE];
|
||||||
|
};
|
||||||
|
|
||||||
|
luaGenerator.forBlock['colors_combine'] = function(block, generator) {
|
||||||
|
var colorArray = generator.valueToCode(block, 'COLORARRAY', generator.ORDER_ATOMIC);
|
||||||
|
|
||||||
|
return [`colors.combine(table.unpack(${colorArray}))`, generator.ORDER_NONE];
|
||||||
|
};
|
||||||
|
|
||||||
|
luaGenerator.forBlock['colors_subtract'] = function(block, generator) {
|
||||||
|
var colorArray = generator.valueToCode(block, 'COLORARRAY', generator.ORDER_ATOMIC);
|
||||||
|
var color = generator.valueToCode(block, 'COLOR', generator.ORDER_ATOMIC);
|
||||||
|
|
||||||
|
return [`colors.subtract(${color}, table.unpack(${colorArray}))`, generator.ORDER_NONE];
|
||||||
|
};
|
||||||
|
|
22
blocks/CCColors/index.json
Normal file
22
blocks/CCColors/index.json
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"name": "Colors",
|
||||||
|
"author": "DPSoftware Foundation",
|
||||||
|
"description": "Constants and functions for colour values",
|
||||||
|
"version": "0.5",
|
||||||
|
"category": "Display",
|
||||||
|
"keyword": "Colors",
|
||||||
|
"license": "GPL-3.0-or-later",
|
||||||
|
"peripherals": false,
|
||||||
|
"library": true,
|
||||||
|
"require_network": false,
|
||||||
|
"dependencies": {},
|
||||||
|
"design_for_computer": {
|
||||||
|
"basic": false,
|
||||||
|
"adv": true,
|
||||||
|
"command": false,
|
||||||
|
"pocket": false,
|
||||||
|
"advpocket": true,
|
||||||
|
"turtle": false,
|
||||||
|
"advturtle": true
|
||||||
|
}
|
||||||
|
}
|
7
blocks/CCColors/toolbox.xml
Normal file
7
blocks/CCColors/toolbox.xml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<xml id="toolbox" style="display: none;">
|
||||||
|
<category name="Colors" colour="192">
|
||||||
|
<block type="colors_color_picker"></block>
|
||||||
|
<block type="colors_combine"></block>
|
||||||
|
<block type="colors_subtract"></block>
|
||||||
|
</category>
|
||||||
|
</xml>
|
@ -15,7 +15,7 @@
|
|||||||
"helpUrl": ""
|
"helpUrl": ""
|
||||||
},
|
},
|
||||||
"sys_utils_table_variable_pack": {
|
"sys_utils_table_variable_pack": {
|
||||||
"message0": "Pack %1 to Table",
|
"message0": "Pack args %1 to Table",
|
||||||
"args0": [
|
"args0": [
|
||||||
{
|
{
|
||||||
"type": "input_value",
|
"type": "input_value",
|
||||||
@ -24,10 +24,10 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"output": "Array",
|
"output": "Array",
|
||||||
"colour": 220
|
"colour": 260
|
||||||
},
|
},
|
||||||
"sys_utils_get_value_from_table_with_index": {
|
"sys_utils_get_value_from_table_with_index": {
|
||||||
"message0": "UnPack %1 to Value with index/key %2",
|
"message0": "UnPack args %1 to Value with index/key %2",
|
||||||
"args0": [
|
"args0": [
|
||||||
{
|
{
|
||||||
"type": "input_value",
|
"type": "input_value",
|
||||||
@ -41,7 +41,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"output": null,
|
"output": null,
|
||||||
"colour": 220
|
"colour": 260
|
||||||
},
|
},
|
||||||
"sys_utils_get_type": {
|
"sys_utils_get_type": {
|
||||||
"message0": "Get type of %1",
|
"message0": "Get type of %1",
|
||||||
@ -53,5 +53,49 @@
|
|||||||
],
|
],
|
||||||
"output": "String",
|
"output": "String",
|
||||||
"colour": 220
|
"colour": 220
|
||||||
|
},
|
||||||
|
"sys_table_unpack_to_args": {
|
||||||
|
"message0": "UnPack table %1 to Args",
|
||||||
|
"args0": [
|
||||||
|
{
|
||||||
|
"type": "input_value",
|
||||||
|
"name": "TABLE",
|
||||||
|
"check": "Array"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"output": "Multiple",
|
||||||
|
"colour": 260
|
||||||
|
},
|
||||||
|
"sys_table_add_key_value": {
|
||||||
|
"message0": "Add key %1 with data %2",
|
||||||
|
"args0": [
|
||||||
|
{
|
||||||
|
"type": "input_value",
|
||||||
|
"name": "KEY",
|
||||||
|
"check": ["String", "Number"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "input_value",
|
||||||
|
"name": "VALUE"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"output": "Array_Pair",
|
||||||
|
"colour": 260
|
||||||
|
},
|
||||||
|
"sys_table_append_data": {
|
||||||
|
"message0": "Append %1 to table %2",
|
||||||
|
"args0": [
|
||||||
|
{
|
||||||
|
"type": "input_value",
|
||||||
|
"name": "DATA"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "input_value",
|
||||||
|
"name": "TABLE",
|
||||||
|
"check": "Array"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"output": "Array",
|
||||||
|
"colour": 260
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,7 @@ luaGenerator.forBlock['sys_sleep'] = function(block, generator) {
|
|||||||
luaGenerator.forBlock['sys_utils_table_variable_pack'] = function(block, generator) {
|
luaGenerator.forBlock['sys_utils_table_variable_pack'] = function(block, generator) {
|
||||||
var args = generator.valueToCode(block, 'RETURN_ARGS', generator.ORDER_NONE);
|
var args = generator.valueToCode(block, 'RETURN_ARGS', generator.ORDER_NONE);
|
||||||
|
|
||||||
return [`{${args}}`, luaGenerator.ORDER_NONE];
|
return [`table.pack(${arg})`, luaGenerator.ORDER_NONE];
|
||||||
};
|
};
|
||||||
|
|
||||||
luaGenerator.forBlock['sys_utils_get_value_from_table_with_index'] = function(block, generator) {
|
luaGenerator.forBlock['sys_utils_get_value_from_table_with_index'] = function(block, generator) {
|
||||||
@ -30,4 +30,31 @@ luaGenerator.forBlock['sys_utils_get_type'] = function(block, generator) {
|
|||||||
var input = generator.valueToCode(block, 'INPUT', generator.ORDER_NONE);
|
var input = generator.valueToCode(block, 'INPUT', generator.ORDER_NONE);
|
||||||
|
|
||||||
return [`type(${input})`, luaGenerator.ORDER_NONE];
|
return [`type(${input})`, luaGenerator.ORDER_NONE];
|
||||||
|
};
|
||||||
|
|
||||||
|
luaGenerator.forBlock['sys_table_unpack_to_args'] = function(block, generator) {
|
||||||
|
var table = generator.valueToCode(block, 'TABLE', generator.ORDER_NONE);
|
||||||
|
|
||||||
|
return [`table.unpack(${table})`, luaGenerator.ORDER_NONE];
|
||||||
|
};
|
||||||
|
|
||||||
|
luaGenerator.forBlock['sys_table_add_key_value'] = function(block, generator) {
|
||||||
|
var key = generator.valueToCode(block, 'KEY', generator.ORDER_NONE);
|
||||||
|
var value = generator.valueToCode(block, 'VALUE', generator.ORDER_NONE);
|
||||||
|
|
||||||
|
return [`[${key}] = ${value}`, luaGenerator.ORDER_NONE];
|
||||||
|
};
|
||||||
|
|
||||||
|
luaGenerator.forBlock['sys_table_append_data'] = function(block, generator) {
|
||||||
|
var data = generator.valueToCode(block, 'DATA', generator.ORDER_NONE);
|
||||||
|
var table = generator.valueToCode(block, 'TABLE', generator.ORDER_NONE);
|
||||||
|
|
||||||
|
return `table.insert(${table}, ${data})\n`;
|
||||||
|
};
|
||||||
|
|
||||||
|
luaGenerator.forBlock['sys_table_append_data'] = function(block, generator) {
|
||||||
|
var data = generator.valueToCode(block, 'DATA', generator.ORDER_NONE);
|
||||||
|
var table = generator.valueToCode(block, 'TABLE', generator.ORDER_NONE);
|
||||||
|
|
||||||
|
return `table.insert(${table}, ${data})\n`;
|
||||||
};
|
};
|
@ -1,14 +1,19 @@
|
|||||||
<xml id="toolbox" style="display: none;">
|
<xml id="toolbox" style="display: none;">
|
||||||
<category name="Utils" colour="220">
|
<category name="Basic" colour="110">
|
||||||
<block type="sys_utils_table_variable_pack"></block>
|
<block type="text_print">
|
||||||
<block type="sys_utils_get_value_from_table_with_index">
|
<value name="TEXT">
|
||||||
<value name="INDEX">
|
<shadow type="text">
|
||||||
<shadow type="math_number">
|
<field name="TEXT">abc</field>
|
||||||
<field name="NUM">1</field>
|
</shadow>
|
||||||
|
</value>
|
||||||
|
</block>
|
||||||
|
<block type="text_prompt_ext">
|
||||||
|
<value name="TEXT">
|
||||||
|
<shadow type="text">
|
||||||
|
<field name="TEXT">abc</field>
|
||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
<block type="sys_utils_get_type"></block>
|
|
||||||
</category>
|
</category>
|
||||||
<category name="Control" colour="38">
|
<category name="Control" colour="38">
|
||||||
<block type="sys_sleep">
|
<block type="sys_sleep">
|
||||||
@ -246,21 +251,7 @@
|
|||||||
<shadow type="text"></shadow>
|
<shadow type="text"></shadow>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
<label text="Input/Output:" web-class="ioLabel"></label>
|
|
||||||
<block type="text_print">
|
|
||||||
<value name="TEXT">
|
|
||||||
<shadow type="text">
|
|
||||||
<field name="TEXT">abc</field>
|
|
||||||
</shadow>
|
|
||||||
</value>
|
|
||||||
</block>
|
|
||||||
<block type="text_prompt_ext">
|
|
||||||
<value name="TEXT">
|
|
||||||
<shadow type="text">
|
|
||||||
<field name="TEXT">abc</field>
|
|
||||||
</shadow>
|
|
||||||
</value>
|
|
||||||
</block>
|
|
||||||
</category>
|
</category>
|
||||||
<category name="Table" colour="260">
|
<category name="Table" colour="260">
|
||||||
<block type="lists_create_with">
|
<block type="lists_create_with">
|
||||||
@ -313,6 +304,20 @@
|
|||||||
</block>
|
</block>
|
||||||
<block type="lists_sort"></block>
|
<block type="lists_sort"></block>
|
||||||
<block type="lists_reverse"></block>
|
<block type="lists_reverse"></block>
|
||||||
|
<block type="sys_utils_table_variable_pack"></block>
|
||||||
|
<block type="sys_utils_get_value_from_table_with_index">
|
||||||
|
<value name="INDEX">
|
||||||
|
<shadow type="math_number">
|
||||||
|
<field name="NUM">1</field>
|
||||||
|
</shadow>
|
||||||
|
</value>
|
||||||
|
</block>
|
||||||
|
<block type="sys_table_unpack_to_args"></block>
|
||||||
|
<block type="sys_table_add_key_value"></block>
|
||||||
|
<block type="sys_table_append_data"></block>
|
||||||
|
</category>
|
||||||
|
<category name="Utils" colour="220">
|
||||||
|
<block type="sys_utils_get_type"></block>
|
||||||
</category>
|
</category>
|
||||||
<sep></sep>
|
<sep></sep>
|
||||||
<category name="Variables" custom="VARIABLE" colour="330">
|
<category name="Variables" custom="VARIABLE" colour="330">
|
||||||
|
Loading…
x
Reference in New Issue
Block a user