diff --git a/blocks/math.js b/blocks/math.js index 4e87d5a7a..0350048c8 100644 --- a/blocks/math.js +++ b/blocks/math.js @@ -62,21 +62,35 @@ Blockly.Blocks['math_arithmetic'] = { * @this Blockly.Block */ init: function() { - var OPERATORS = - [[Blockly.Msg.MATH_ADDITION_SYMBOL, 'ADD'], - [Blockly.Msg.MATH_SUBTRACTION_SYMBOL, 'MINUS'], - [Blockly.Msg.MATH_MULTIPLICATION_SYMBOL, 'MULTIPLY'], - [Blockly.Msg.MATH_DIVISION_SYMBOL, 'DIVIDE'], - [Blockly.Msg.MATH_POWER_SYMBOL, 'POWER']]; - this.setHelpUrl(Blockly.Msg.MATH_ARITHMETIC_HELPURL); - this.setColour(Blockly.Blocks.math.HUE); - this.setOutput(true, 'Number'); - this.appendValueInput('A') - .setCheck('Number'); - this.appendValueInput('B') - .setCheck('Number') - .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP'); - this.setInputsInline(true); + this.jsonInit({ + "message0": "%1 %2 %3", + "args0": [ + { + "type": "input_value", + "name": "A", + "check": "Number" + }, + { + "type": "field_dropdown", + "name": "OP", + "options": + [[Blockly.Msg.MATH_ADDITION_SYMBOL, 'ADD'], + [Blockly.Msg.MATH_SUBTRACTION_SYMBOL, 'MINUS'], + [Blockly.Msg.MATH_MULTIPLICATION_SYMBOL, 'MULTIPLY'], + [Blockly.Msg.MATH_DIVISION_SYMBOL, 'DIVIDE'], + [Blockly.Msg.MATH_POWER_SYMBOL, 'POWER']] + }, + { + "type": "input_value", + "name": "B", + "check": "Number" + } + ], + "inputsInline": true, + "output": "Number", + "colour": Blockly.Blocks.math.HUE, + "helpUrl": Blockly.Msg.MATH_ARITHMETIC_HELPURL + }); // Assign 'this' to a variable for use in the tooltip closure below. var thisBlock = this; this.setTooltip(function() { @@ -99,20 +113,32 @@ Blockly.Blocks['math_single'] = { * @this Blockly.Block */ init: function() { - var OPERATORS = - [[Blockly.Msg.MATH_SINGLE_OP_ROOT, 'ROOT'], - [Blockly.Msg.MATH_SINGLE_OP_ABSOLUTE, 'ABS'], - ['-', 'NEG'], - ['ln', 'LN'], - ['log10', 'LOG10'], - ['e^', 'EXP'], - ['10^', 'POW10']]; - this.setHelpUrl(Blockly.Msg.MATH_SINGLE_HELPURL); - this.setColour(Blockly.Blocks.math.HUE); - this.setOutput(true, 'Number'); - this.appendValueInput('NUM') - .setCheck('Number') - .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP'); + this.jsonInit({ + "message0": "%1 %2", + "args0": [ + { + "type": "field_dropdown", + "name": "OP", + "options": [ + [Blockly.Msg.MATH_SINGLE_OP_ROOT, 'ROOT'], + [Blockly.Msg.MATH_SINGLE_OP_ABSOLUTE, 'ABS'], + ['-', 'NEG'], + ['ln', 'LN'], + ['log10', 'LOG10'], + ['e^', 'EXP'], + ['10^', 'POW10'] + ] + }, + { + "type": "input_value", + "name": "NUM", + "check": "Number" + } + ], + "output": "Number", + "colour": Blockly.Blocks.math.HUE, + "helpUrl": Blockly.Msg.MATH_SINGLE_HELPURL + }); // Assign 'this' to a variable for use in the tooltip closure below. var thisBlock = this; this.setTooltip(function() { @@ -137,19 +163,31 @@ Blockly.Blocks['math_trig'] = { * @this Blockly.Block */ init: function() { - var OPERATORS = - [[Blockly.Msg.MATH_TRIG_SIN, 'SIN'], - [Blockly.Msg.MATH_TRIG_COS, 'COS'], - [Blockly.Msg.MATH_TRIG_TAN, 'TAN'], - [Blockly.Msg.MATH_TRIG_ASIN, 'ASIN'], - [Blockly.Msg.MATH_TRIG_ACOS, 'ACOS'], - [Blockly.Msg.MATH_TRIG_ATAN, 'ATAN']]; - this.setHelpUrl(Blockly.Msg.MATH_TRIG_HELPURL); - this.setColour(Blockly.Blocks.math.HUE); - this.setOutput(true, 'Number'); - this.appendValueInput('NUM') - .setCheck('Number') - .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP'); + this.jsonInit({ + "message0": "%1 %2", + "args0": [ + { + "type": "field_dropdown", + "name": "OP", + "options": [ + [Blockly.Msg.MATH_TRIG_SIN, 'SIN'], + [Blockly.Msg.MATH_TRIG_COS, 'COS'], + [Blockly.Msg.MATH_TRIG_TAN, 'TAN'], + [Blockly.Msg.MATH_TRIG_ASIN, 'ASIN'], + [Blockly.Msg.MATH_TRIG_ACOS, 'ACOS'], + [Blockly.Msg.MATH_TRIG_ATAN, 'ATAN'] + ] + }, + { + "type": "input_value", + "name": "NUM", + "check": "Number" + } + ], + "output": "Number", + "colour": Blockly.Blocks.math.HUE, + "helpUrl": Blockly.Msg.MATH_TRIG_HELPURL + }); // Assign 'this' to a variable for use in the tooltip closure below. var thisBlock = this; this.setTooltip(function() { @@ -173,19 +211,27 @@ Blockly.Blocks['math_constant'] = { * @this Blockly.Block */ init: function() { - var CONSTANTS = - [['\u03c0', 'PI'], - ['e', 'E'], - ['\u03c6', 'GOLDEN_RATIO'], - ['sqrt(2)', 'SQRT2'], - ['sqrt(\u00bd)', 'SQRT1_2'], - ['\u221e', 'INFINITY']]; - this.setHelpUrl(Blockly.Msg.MATH_CONSTANT_HELPURL); - this.setColour(Blockly.Blocks.math.HUE); - this.setOutput(true, 'Number'); - this.appendDummyInput() - .appendField(new Blockly.FieldDropdown(CONSTANTS), 'CONSTANT'); - this.setTooltip(Blockly.Msg.MATH_CONSTANT_TOOLTIP); + this.jsonInit({ + "message0": "%1", + "args0": [ + { + "type": "field_dropdown", + "name": "CONSTANT", + "options": [ + ['\u03c0', 'PI'], + ['e', 'E'], + ['\u03c6', 'GOLDEN_RATIO'], + ['sqrt(2)', 'SQRT2'], + ['sqrt(\u00bd)', 'SQRT1_2'], + ['\u221e', 'INFINITY'] + ] + } + ], + "output": "Number", + "colour": Blockly.Blocks.math.HUE, + "tooltip": Blockly.Msg.MATH_CONSTANT_TOOLTIP, + "helpUrl": Blockly.Msg.MATH_CONSTANT_HELPURL + }); } }; @@ -297,17 +343,29 @@ Blockly.Blocks['math_round'] = { * @this Blockly.Block */ init: function() { - var OPERATORS = - [[Blockly.Msg.MATH_ROUND_OPERATOR_ROUND, 'ROUND'], - [Blockly.Msg.MATH_ROUND_OPERATOR_ROUNDUP, 'ROUNDUP'], - [Blockly.Msg.MATH_ROUND_OPERATOR_ROUNDDOWN, 'ROUNDDOWN']]; - this.setHelpUrl(Blockly.Msg.MATH_ROUND_HELPURL); - this.setColour(Blockly.Blocks.math.HUE); - this.setOutput(true, 'Number'); - this.appendValueInput('NUM') - .setCheck('Number') - .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP'); - this.setTooltip(Blockly.Msg.MATH_ROUND_TOOLTIP); + this.jsonInit({ + "message0": "%1 %2", + "args0": [ + { + "type": "field_dropdown", + "name": "OP", + "options": [ + [Blockly.Msg.MATH_ROUND_OPERATOR_ROUND, 'ROUND'], + [Blockly.Msg.MATH_ROUND_OPERATOR_ROUNDUP, 'ROUNDUP'], + [Blockly.Msg.MATH_ROUND_OPERATOR_ROUNDDOWN, 'ROUNDDOWN'] + ] + }, + { + "type": "input_value", + "name": "NUM", + "check": "Number" + } + ], + "output": "Number", + "colour": Blockly.Blocks.math.HUE, + "tooltip": Blockly.Msg.MATH_ROUND_TOOLTIP, + "helpUrl": Blockly.Msg.MATH_ROUND_HELPURL + }); } }; @@ -484,11 +542,12 @@ Blockly.Blocks['math_random_float'] = { * @this Blockly.Block */ init: function() { - this.setHelpUrl(Blockly.Msg.MATH_RANDOM_FLOAT_HELPURL); - this.setColour(Blockly.Blocks.math.HUE); - this.setOutput(true, 'Number'); - this.appendDummyInput() - .appendField(Blockly.Msg.MATH_RANDOM_FLOAT_TITLE_RANDOM); - this.setTooltip(Blockly.Msg.MATH_RANDOM_FLOAT_TOOLTIP); + this.jsonInit({ + "message0": Blockly.Msg.MATH_RANDOM_FLOAT_TITLE_RANDOM, + "output": "Number", + "colour": Blockly.Blocks.math.HUE, + "tooltip": Blockly.Msg.MATH_RANDOM_FLOAT_TOOLTIP, + "helpUrl": Blockly.Msg.MATH_RANDOM_FLOAT_HELPURL + }); } };