
"variableTypes": ["Panda", "Lion", "Badger"]Blockly/demos/generator/test.html
/blockly_compressed.js
/blocks_compressed.js
/javascript_compressed.js
/msg/js/en.js
/blocks/state_def.js
/generators/javascript/state_defs.jsBlockly.JavaScript['bin_storenum'] = function(block) {
var number_name = block.getFieldValue('NAME');
var value_bin = Blockly.JavaScript.valueToCode(block, 'Bin', Blockly.JavaScript.ORDER_ATOMIC);
var number_index = block.getFieldValue('Index');
var value_location = Blockly.JavaScript.valueToCode(block, 'Location', Blockly.JavaScript.ORDER_ATOMIC);
var value_bin_name = Blockly.JavaScript.valueToCode(block, 'Bin Name', Blockly.JavaScript.ORDER_ATOMIC);
// TODO: Assemble JavaScript into code variable.
console.debug(value_bin_name);
var code = value_bin_name + ".STORENUM(" + number_index + ") = " + (value_bin);
return code;
};<script src="../../blocks/state_defs.js"></script>
<script src="../../generators/javascript/state_defs.js"></script><category name="Variables">
<category name="Panda Variables" custom="VARIABLE" colour=#00FFFF>
<button text="A button" callbackKey="myFirstButtonPressed"></button>
</category>
<category name="Lion Variables" custom="VARIABLE" colour=#00FFFF>
<button text="A button" callbackKey="mySecondButtonPressed"></button>
</category>
</category>
demoWorkspace.registerButtonCallback('myFirstButtonPressed',function(button){
Blockly.Variables.createVariable(
button.getTargetWorkspace(), null, 'panda'
)
}
);
demoWorkspace.registerButtonCallback('mySecondButtonPressed',function(button){
Blockly.Variables.createVariable(
button.getTargetWorkspace(), null, 'lion'
)
}
);
Blockly.Blocks['bin_storenum'] = {
init: function() {
this.jsonInit(
{
"type": "bin_storenum",
"message0": "Store Number in Bin %1 Value %2 %3 Location %4 %5 Bin Name %6",
"args0": [
{
"type" : "input_dummy"
},
{
"type" : "field_number",
"name" : "NAME",
"value" : 0
},
{
"type" : "input_value",
"name" : "Bin",
"align" : "RIGHT"
},
{
"type" : "field_number",
"name" : "Index",
"value" : 0,
"min" : 0,
"max" : 100
},
{
"type" : "input_value",
"name" : "Location",
"check" : "Pig",
"align" : "RIGHT"
},
{
"type" : "input_value",
"name" : "Bin Name",
"check" : "Panda",
"align" : "RIGHT"
}
],
"previousStatement": null,
"nextStatement": null,
"colour": 330,
"tooltip": "",
"helpUrl": ""
}
)
}
}// Block for Panda variable getter.
{
"type": "variables_get_panda",
"message0": "%1",
"args0": [
{
"type": "field_variable",
"name": "VAR",
"variable": "%{BKY_VARIABLES_DEFAULT_NAME}",
"variableTypes": ["Panda"] // Specifies what types to put in the dropdown
}
],
"output": "Panda", // Returns a value of "Panda"
},
// Block for Panda variable setter.
{
"type": "variables_set_panda",
"message0": "%{BKY_VARIABLES_SET}",
"args0": [
{
"type": "field_variable",
"name": "VAR",
"variable": "%{BKY_VARIABLES_DEFAULT_NAME}",
"variableTypes": ["Panda"]
},
{
"type": "input_value",
"name": "VALUE",
"check": "Panda" // Checks that the input value is of type "Panda"
}
]
},
// Block for LION variable getter.
{
"type": "variables_get_lion",
"message0": "%1",
"args0": [
{
"type": "field_variable",
"name": "VAR",
"variable": "%{BKY_VARIABLES_DEFAULT_NAME}",
"variableTypes": ["Panda"] // Specifies what types to put in the dropdown
}
],
"output": "Lion", // Returns a value of "Panda"
},
// Block for LION variable setter.
{
"type": "variables_set_lion",
"message0": "%{BKY_VARIABLES_SET}",
"args0": [
{
"type": "field_variable",
"name": "VAR",
"variable": "%{BKY_VARIABLES_DEFAULT_NAME}",
"variableTypes": ["lion"]
},
{
"type": "input_value",
"name": "VALUE",
"check": "lion" // Checks that the input value is of type "Panda"
}
],
}
"previousStatement": null,
"nextStatement": null,
}<category name="Desired variables">
<category name="bin" custom="VARIABLE">
<button text="A button" callbackKey="binButtonPressed" type="bin"></button>
</category>
<category name="var" custom="VARIABLE">
<button text="A button" callbackKey="varButtonPressed" type="var"></button>
</category>
<category name="prm" custom="VARIABLE">
<button text="A button" callbackKey="prmButtonPressed" type="prm"></button>
</category>
</category>demoWorkspace.registerButtonCallback('binButtonPressed',function(button){
Blockly.Variables.createVariable(
button.getTargetWorkspace(), null, 'bin'
)
}
);
demoWorkspace.registerButtonCallback('binButtonPressed',function(button){
Blockly.Variables.createVariable(
button.getTargetWorkspace(), null, 'var'
)
}
);
demoWorkspace.registerButtonCallback('prmButtonPressed',function(button){
Blockly.Variables.createVariable(
button.getTargetWorkspace(), null, 'prm'
)
}
);
Blockly.VariablesDynamic.onCreateVariableButtonClick_Bin = function(button) {
Blockly.Variables.createVariableButtonHandler(button.getTargetWorkspace(), null, 'bin');
};
Blockly.VariablesDynamic.onCreateVariableButtonClick_Var = function(button) {
Blockly.Variables.createVariableButtonHandler(button.getTargetWorkspace(), null, 'var');
};
Blockly.VariablesDynamic.onCreateVariableButtonClick_Prm = function(button) {
Blockly.Variables.createVariableButtonHandler(button.getTargetWorkspace(), null, 'prm');
};workspace.registerButtonCallback('CREATE_VARIABLE_BIN',
Blockly.VariablesDynamic.onCreateVariableButtonClick_Bin);
workspace.registerButtonCallback('CREATE_VARIABLE_VAR',
Blockly.VariablesDynamic.onCreateVariableButtonClick_Var);
workspace.registerButtonCallback('CREATE_VARIABLE_PRM',
Blockly.VariablesDynamic.onCreateVariableButtonClick_Prm);Blockly.VariablesDynamic.flyoutCategoryBlocks = function(workspace) {
var variableModelList = workspace.getAllVariables();
variableModelList.sort(Blockly.VariableModel.compareByName);Blockly.VariablesDynamic.flyoutCategoryBlocks = function(workspace) {
var variableModelList = workspace.getAllVariables();
variableModelList.sort(Blockly.VariableModel.compareByType);