Files
mixly3-server/mixly/boards/default_src/python_mixpy/blocks/algorithm.js

835 lines
25 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import * as Blockly from 'blockly/core';
const ALGORITHM_HUE = '#526FC3';
// sub_algorithm_1
export const algorithm_prepare = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const algorithm_add_school = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_ADD_SCHOOL);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const algorithm_find_path = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_FIND_PATH);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const algorithm_new_path = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_NEW_PATH);
this.setOutput(true);
}
}
export const algorithm_set_path = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_SET_PATH);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const algorithm_add_path = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_ADD_PATH);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const algorithm_del_path = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_DEL_PATH);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const algorithm_return_path = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_RETURN_PATH);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const algorithm_no_left = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_NO_LEFT);
this.setOutput(true);
}
}
export const algorithm_print_path = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_PATH);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
// sub_algorithm_2
export const algorithm_prepare2 = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE2);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const algorithm_current_school = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_CURRENT_SCHOOL);
this.setOutput(true);
}
}
export const algorithm_no_path = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_NO_PATH);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
// sub_algorithm_3
export const algorithm_prepare_2_1 = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE_2_1);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const algorithm_prepare_2_2 = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE_2_2);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const algorithm_move_recent = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_MOVE_RECENT);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const algorithm_not_home = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_NOT_HOME);
this.setOutput(true);
}
};
export const algorithm_not_school = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_NOT_SCHOOL);
this.setOutput(true);
}
};
export const algorithm_print_path2 = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_PATH2);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
// sub_algorithm_4 hanoi
export const hanoi_init = {
init: function () {
this.appendDummyInput()
.appendField("准备")
.appendField(new Blockly.FieldNumber(3, 0, 100, 1), "NUM")
.appendField("层汉诺塔");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(ALGORITHM_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
export const hanoi_move = {
init: function () {
this.appendDummyInput()
.appendField("移动圆盘从");
this.appendValueInput("FROM_NUM")
.setCheck(null)
.appendField("柱");
this.appendDummyInput()
.appendField("到");
this.appendValueInput("TO_NUM")
.setCheck(null)
.appendField("柱");
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(ALGORITHM_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
// sub_algorithm_5
export const algorithm_all_books = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_ALL_BOOKS);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const algorithm_all_books_sequence = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_ALL_BOOKS2);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const algorithm_first_book = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_FIRST_BOOK);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
// export const algorithm_no_ring = {
// init: function() {
// this.setColour(ALGORITHM_HUE);
// this.appendDummyInput()
// .appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_NO_RING);
// this.setOutput(true);
// }
// }
export const algorithm_no_ring2 = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_NO_RING);
this.setOutput(true);
}
};
export const algorithm_yes_ring2 = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_YES_RING);
this.setOutput(true);
}
};
export const algorithm_next_book = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_NEXT_BOOK);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const algorithm_two_left = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_TWO_LEFT);
this.setOutput(true);
}
}
export const algorithm_divide_books = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_DIVIDE_BOOKS);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const algorithm_get_half_books = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_GET_HALF_BOOKS);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
// export const algorithm_check_half_books = {
// init: function() {
// this.setColour(ALGORITHM_HUE);
// this.appendDummyInput()
// .appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_CHECK_HALF_BOOKS);
// this.setPreviousStatement(true, null);
// this.setNextStatement(true, null);
// }
// };
export const algorithm_delete_book = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOK);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const algorithm_delete_books = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOKS);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const algorithm_delete_books2 = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOKS2);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
// export const algorithm_print_book = {
// init: function() {
// this.setColour(ALGORITHM_HUE);
// this.appendDummyInput()
// .appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_BOOK);
// this.setPreviousStatement(true, null);
// this.setNextStatement(true, null);
// }
// };
export const algorithm_print_book2 = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_BOOK);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
// sub_algorithm_6
export const algorithm_book_scale = {
init: function () {
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("设置待查书总数 N=")
.appendField(new Blockly.FieldDropdown([
["5", "5"],
["10", "10"],
["20", "20"],
["50", "50"]
]), "NUM");
this.setInputsInline(false);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(ALGORITHM_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
export const algorithm_number_zero = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_NUMBER_ZERO);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const algorithm_number_add = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_NUMBER_ADD);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const algorithm_print_number = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_NUMBER);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const algorithm_get_book_num = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField('n' + Blockly.Msg.MIXLY_VALUE2)
.appendField(new Blockly.FieldTextInput('50'), 'NUM');
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const algorithm_print_sequence = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_SEQUENCE);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const algorithm_print_divide = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_DIVIDE);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
// sub_algorithm_7
export const algorithm_init_jttl = {
init: function () {
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("初始化鸡兔同笼问题:");
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("有若干只鸡、兔在同一个笼子里。");
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("从上面数鸡兔有10个头");
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("从下面数鸡兔有32只脚。");
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("问笼中有多少只鸡和多少只兔?");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(ALGORITHM_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
export const algorithm_rabbit_zero = {
init: function () {
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("假设兔子的数量为0只");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(ALGORITHM_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
export const algorithm_rabbit_number_in_range = {
init: function () {
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("兔子的数量在范围之内");
this.setOutput(true, null);
this.setColour(ALGORITHM_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
export const algorithm_chick_calculate = {
init: function () {
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("根据(头数-兔子数)计算出鸡的数量");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(ALGORITHM_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
export const algorithm_check_feet = {
init: function () {
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("计算得到脚的数量正确");
this.setOutput(true, null);
this.setColour(ALGORITHM_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
export const algorithm_print_jttl_answer = {
init: function () {
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("输出鸡、兔的数量");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(ALGORITHM_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
export const algorithm_rabbit_add = {
init: function () {
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("假设兔子数量要更多一只");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(ALGORITHM_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
// sub_algorithm_8
export const algorithm_init_fzsf = {
init: function () {
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("加载路线图");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(ALGORITHM_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
export const algorithm_fz_calc = {
init: function () {
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("计算")
.appendField(new Blockly.FieldDropdown([
["S1", "1"],
["S2", "2"],
["S3", "3"],
["S4", "4"]
]), "PATHNAME")
.appendField("长度");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(ALGORITHM_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
export const algorithm_fz_calc_first_min = {
init: function () {
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("设置S1为Smin");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(ALGORITHM_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
export const algorithm_fz_compare = {
init: function () {
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField(new Blockly.FieldDropdown([
["S1", "1"],
["S2", "2"],
["S3", "3"],
["S4", "4"]
]), "PATHNAME")
.appendField("的长度比")
.appendField(new Blockly.FieldDropdown([
["S1", "1"],
["S2", "2"],
["S3", "3"],
["S4", "4"]
]), "PATHNAME2")
.appendField("短");
this.setOutput(true, null);
this.setColour(ALGORITHM_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
export const algorithm_fz_set_min = {
init: function () {
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("设置")
.appendField(new Blockly.FieldDropdown([
["S1", "1"],
["S2", "2"],
["S3", "3"],
["S4", "4"]
]), "PATHNAME")
.appendField("为Smin");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(ALGORITHM_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
export const algorithm_fz_move = {
init: function () {
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("按照Smin移动");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(ALGORITHM_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
// sub_algorithm_8
export const algorithm_init_hxdb = {
init: function () {
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("初始化韩信点兵问题:");
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("有未知数量的若干士兵。");
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("若3人一排列队多1人");
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("若5人一排列队多2人");
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("若7人一排列队多2人");
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("问士兵的数量最少是多少人?");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(ALGORITHM_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
export const algorithm_hxdb_init_soldier = {
init: function () {
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("初始化士兵为")
.appendField(new Blockly.FieldTextInput("7"), "NUM")
.appendField("个");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(ALGORITHM_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
export const algorithm_hxdb_stand_in_line = {
init: function () {
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("使士兵")
.appendField(new Blockly.FieldDropdown([
["3", "3"],
["5", "5"],
["7", "7"]
]), "NUM")
.appendField("人一排列队");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(ALGORITHM_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
export const algorithm_hxdb_last_line = {
init: function () {
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("剩余")
.appendField(new Blockly.FieldTextInput("1"), "NUM")
.appendField("个士兵");
this.setOutput(true, null);
this.setColour(ALGORITHM_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
export const algorithm_hxdb_add = {
init: function () {
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("增加1个士兵");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(ALGORITHM_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
export const algorithm_hxdb_result = {
init: function () {
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.LEFT)
.appendField("输出士兵数量");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(ALGORITHM_HUE);
this.setTooltip('');
this.setHelpUrl('');
}
};
// others
export const hanoi_init_offline = {
init: function () {
this.appendDummyInput()
.appendField("准备")
.appendField(new Blockly.FieldNumber(3, 0, 100, 1), "NUM")
.appendField("层汉诺塔");
this.appendValueInput('VAR')
.setCheck(String)
.appendField(Blockly.Msg.HTML_COLOUR);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(ALGORITHM_HUE);
this.setInputsInline(true);
this.setTooltip('');
this.setHelpUrl('');
}
};
export const algorithm_get_current_location = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_GET_CURRENT_LOCATION);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const algorithm_void_path = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXPY_ALGORITHM_VOID_PATH);
this.setOutput(true);
}
}
export const algorithm_color_seclet = {
init: function () {
this.setColour(ALGORITHM_HUE);
this.appendDummyInput("")
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(new Blockly.FieldColour("ff0000"), "COLOR");
this.setInputsInline(true);
this.setOutput(true, String);
}
};