Add reporting for block params

This commit is contained in:
Paul Kaplan 2017-05-22 15:18:48 -04:00
parent 817ea47e32
commit 5973e2d305

View file

@ -267,6 +267,25 @@ class Blocks {
} }
} }
/**
* Serialize block fields and input fields for reporting new monitors
* @param {!object} block Block to be paramified.
* @return {!object} object of param key/values.
*/
getBlockParams (block) {
const params = {};
for (const key in block.fields) {
params[key] = block.fields[key].value;
}
for (const inputKey in block.inputs) {
const inputBlock = this._blocks[block.inputs[inputKey].block];
for (const key in inputBlock.fields) {
params[key] = inputBlock.fields[key].value;
}
}
return params;
}
/** /**
* Block management: change block field values * Block management: change block field values
* @param {!object} args Blockly change event to be processed * @param {!object} args Blockly change event to be processed
@ -297,6 +316,7 @@ class Blocks {
// @todo(vm#564) this will collide if multiple sprites use same block // @todo(vm#564) this will collide if multiple sprites use same block
id: block.id, id: block.id,
opcode: block.opcode, opcode: block.opcode,
params: this.getBlockParams(block),
// @todo(vm#565) for numerical values with decimals, some countries use comma // @todo(vm#565) for numerical values with decimals, some countries use comma
value: '' value: ''
}); });