mirror of
https://github.com/scratchfoundation/scratch-vm.git
synced 2025-08-28 22:30:40 -04:00
Merge pull request #1128 from paulkaplan/sb2-monitors
Import monitors from sb2 files.
This commit is contained in:
commit
f3404f4275
16 changed files with 308 additions and 26 deletions
|
@ -441,22 +441,34 @@ class Blocks {
|
|||
break;
|
||||
}
|
||||
|
||||
const isSpriteSpecific = optRuntime.monitorBlockInfo.hasOwnProperty(block.opcode) &&
|
||||
optRuntime.monitorBlockInfo[block.opcode].isSpriteSpecific;
|
||||
// Variable blocks may be sprite specific depending on the owner of the variable
|
||||
let isSpriteLocalVariable = false;
|
||||
if (block.opcode === 'data_variable') {
|
||||
isSpriteLocalVariable = !optRuntime.getEditingTarget().isStage &&
|
||||
optRuntime.getEditingTarget().variables[block.fields.VARIABLE.id];
|
||||
} else if (block.opcode === 'data_listcontents') {
|
||||
isSpriteLocalVariable = !optRuntime.getEditingTarget().isStage &&
|
||||
optRuntime.getEditingTarget().variables[block.fields.LIST.id];
|
||||
}
|
||||
|
||||
|
||||
const isSpriteSpecific = isSpriteLocalVariable ||
|
||||
(optRuntime.monitorBlockInfo.hasOwnProperty(block.opcode) &&
|
||||
optRuntime.monitorBlockInfo[block.opcode].isSpriteSpecific);
|
||||
block.targetId = isSpriteSpecific ? optRuntime.getEditingTarget().id : null;
|
||||
|
||||
if (wasMonitored && !block.isMonitored) {
|
||||
optRuntime.requestRemoveMonitor(block.id);
|
||||
} else if (!wasMonitored && block.isMonitored) {
|
||||
optRuntime.requestAddMonitor(MonitorRecord({
|
||||
// @todo(vm#564) this will collide if multiple sprites use same block
|
||||
id: block.id,
|
||||
targetId: block.targetId,
|
||||
spriteName: block.targetId ? optRuntime.getTargetById(block.targetId).getName() : null,
|
||||
opcode: block.opcode,
|
||||
params: this._getBlockParams(block),
|
||||
// @todo(vm#565) for numerical values with decimals, some countries use comma
|
||||
value: ''
|
||||
value: '',
|
||||
mode: block.opcode === 'data_listcontents' ? 'list' : 'default'
|
||||
}));
|
||||
}
|
||||
break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue