soiz1 commited on
Commit
1d7c166
·
verified ·
1 Parent(s): 54abf5d

Update src/lib/blocks.js

Browse files
Files changed (1) hide show
  1. src/lib/blocks.js +35 -4
src/lib/blocks.js CHANGED
@@ -115,8 +115,20 @@ export default function (vm) {
115
  };
116
 
117
  const costumesMenu = function () {
 
 
 
 
 
 
118
  if (vm.editingTarget && vm.editingTarget.getCostumes().length > 0) {
119
- return vm.editingTarget.getCostumes().map(costume => [costume.name, costume.name]);
 
 
 
 
 
 
120
  }
121
  return [['', '']];
122
  };
@@ -474,9 +486,28 @@ export default function (vm) {
474
  this.jsonInit(json);
475
  };
476
 
477
- ScratchBlocks.VerticalFlyout.getCheckboxState = function (blockId) {
478
  const monitoredBlock = vm.runtime.monitorBlocks._blocks[blockId];
479
- return monitoredBlock ? monitoredBlock.isMonitored : false;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
480
  };
481
 
482
  ScratchBlocks.FlyoutExtensionCategoryHeader.getExtensionState = function (extensionId) {
@@ -521,4 +552,4 @@ export default function (vm) {
521
  ]);
522
 
523
  return ScratchBlocks;
524
- }
 
115
  };
116
 
117
  const costumesMenu = function () {
118
+ const next = ScratchBlocks.ScratchMsgs.translate('LOOKS_NEXTCOSTUME', 'next costume');
119
+ const previous = "previous costume" //ScratchBlocks.ScratchMsgs.translate('LOOKS_PREVIOUSCOSTUME', 'previous costume');
120
+ // TODO: Add translation index into ScratchBlocks for this.
121
+
122
+ const random = "random costume"//ScratchBlocks.ScratchMsgs.translate('LOOKS_RANDOMBACKDROP', 'random costume');
123
+ // TODO: Add translation entry
124
  if (vm.editingTarget && vm.editingTarget.getCostumes().length > 0) {
125
+ return vm.editingTarget.getCostumes().map(costume => [costume.name, costume.name])
126
+ .concat([
127
+ [next, "next costume"],
128
+ [previous, "previous costume"],
129
+ [random, "random costume"]
130
+ ])
131
+ ;
132
  }
133
  return [['', '']];
134
  };
 
486
  this.jsonInit(json);
487
  };
488
 
489
+ ScratchBlocks.VerticalFlyout.getCheckboxState = function (blockId, inputList) {
490
  const monitoredBlock = vm.runtime.monitorBlocks._blocks[blockId];
491
+ if (!monitoredBlock)
492
+ return false;
493
+
494
+ const { opcode, fields } = monitoredBlock;
495
+
496
+ if (opcode == "data_variable" || opcode == "data_listcontents")
497
+ return monitoredBlock ? monitoredBlock.isMonitored : false;
498
+
499
+ const parsedFields = inputList[0].fieldRow
500
+ .filter(({ name }) => name in fields)
501
+ .map(field => {
502
+ if (field.variable_) return field.variable_.name;
503
+ return field.name === "CURRENTMENU" ? field.value_.toLowerCase() : field.value_;
504
+ }).join("_");
505
+
506
+ const newBlockId = blockId + (parsedFields.length ? "_" : "") + parsedFields;
507
+
508
+ const newMonitoredBlock = vm.runtime.monitorBlocks._blocks[newBlockId];
509
+
510
+ return newMonitoredBlock ? newMonitoredBlock.isMonitored : false;
511
  };
512
 
513
  ScratchBlocks.FlyoutExtensionCategoryHeader.getExtensionState = function (extensionId) {
 
552
  ]);
553
 
554
  return ScratchBlocks;
555
+ }