@@ -384,6 +384,9 @@ export default async function ({ addon, console, msg }) {
384
384
] ;
385
385
blockSwitches [ "control_repeat_until" ] = [
386
386
noopSwitch ,
387
+ {
388
+ opcode : "control_while" ,
389
+ } ,
387
390
{
388
391
opcode : "control_wait_until" ,
389
392
splitInputs : [ "SUBSTACK" ] ,
@@ -397,6 +400,9 @@ export default async function ({ addon, console, msg }) {
397
400
{
398
401
opcode : "control_repeat_until" ,
399
402
} ,
403
+ {
404
+ opcode : "control_while" ,
405
+ } ,
400
406
noopSwitch ,
401
407
] ;
402
408
blockSwitches [ "control_wait_until" ] = [
@@ -405,35 +411,127 @@ export default async function ({ addon, console, msg }) {
405
411
} ,
406
412
noopSwitch ,
407
413
] ;
414
+
415
+ blockSwitches [ "control_while" ] = [
416
+ {
417
+ opcode : "control_repeat_until" ,
418
+ } ,
419
+ noopSwitch ,
420
+ {
421
+ opcode : "control_forever" ,
422
+ splitInputs : [ "CONDITION" ] ,
423
+ } ,
424
+ ] ;
408
425
}
409
426
410
427
if ( addon . settings . get ( "operator" ) ) {
411
428
blockSwitches [ "operator_equals" ] = [
412
429
{
413
430
opcode : "operator_gt" ,
414
431
} ,
415
- noopSwitch ,
432
+ {
433
+ opcode : "operator_gtorequal" ,
434
+ } ,
416
435
{
417
436
opcode : "operator_lt" ,
418
437
} ,
438
+ {
439
+ opcode : "operator_ltorequal" ,
440
+ } ,
441
+ noopSwitch ,
442
+ {
443
+ opcode : "operator_notequal" ,
444
+ } ,
419
445
] ;
420
446
blockSwitches [ "operator_gt" ] = [
421
447
noopSwitch ,
422
448
{
423
- opcode : "operator_equals " ,
449
+ opcode : "operator_gtorequal " ,
424
450
} ,
425
451
{
426
452
opcode : "operator_lt" ,
427
453
} ,
454
+ {
455
+ opcode : "operator_ltorequal" ,
456
+ } ,
457
+ {
458
+ opcode : "operator_equals" ,
459
+ } ,
460
+ {
461
+ opcode : "operator_notequal" ,
462
+ } ,
428
463
] ;
429
464
blockSwitches [ "operator_lt" ] = [
430
465
{
431
466
opcode : "operator_gt" ,
432
467
} ,
468
+ {
469
+ opcode : "operator_gtorequal" ,
470
+ } ,
471
+ noopSwitch ,
472
+ {
473
+ opcode : "operator_ltorequal" ,
474
+ } ,
475
+ {
476
+ opcode : "operator_equals" ,
477
+ } ,
478
+ {
479
+ opcode : "operator_notequal" ,
480
+ } ,
481
+ ] ;
482
+ blockSwitches [ "operator_notequal" ] = [
483
+ {
484
+ opcode : "operator_gt" ,
485
+ } ,
486
+ {
487
+ opcode : "operator_gtorequal" ,
488
+ } ,
489
+ {
490
+ opcode : "operator_lt" ,
491
+ } ,
492
+ {
493
+ opcode : "operator_ltorequal" ,
494
+ } ,
495
+ {
496
+ opcode : "operator_equals" ,
497
+ } ,
498
+ noopSwitch ,
499
+ ] ;
500
+ blockSwitches [ "operator_gtorequal" ] = [
501
+ {
502
+ opcode : "operator_gt" ,
503
+ } ,
504
+ noopSwitch ,
505
+ {
506
+ opcode : "operator_lt" ,
507
+ } ,
508
+ {
509
+ opcode : "operator_ltorequal" ,
510
+ } ,
433
511
{
434
512
opcode : "operator_equals" ,
435
513
} ,
514
+ {
515
+ opcode : "operator_notequal" ,
516
+ } ,
517
+ ] ;
518
+ blockSwitches [ "operator_ltorequal" ] = [
519
+ {
520
+ opcode : "operator_gt" ,
521
+ } ,
522
+ {
523
+ opcode : "operator_gtorequal" ,
524
+ } ,
525
+ {
526
+ opcode : "operator_lt" ,
527
+ } ,
436
528
noopSwitch ,
529
+ {
530
+ opcode : "operator_equals" ,
531
+ } ,
532
+ {
533
+ opcode : "operator_notequal" ,
534
+ } ,
437
535
] ;
438
536
blockSwitches [ "operator_add" ] = [
439
537
noopSwitch ,
@@ -446,6 +544,9 @@ export default async function ({ addon, console, msg }) {
446
544
{
447
545
opcode : "operator_divide" ,
448
546
} ,
547
+ {
548
+ opcode : "operator_power" ,
549
+ } ,
449
550
{
450
551
opcode : "operator_mod" ,
451
552
} ,
@@ -461,6 +562,9 @@ export default async function ({ addon, console, msg }) {
461
562
{
462
563
opcode : "operator_divide" ,
463
564
} ,
565
+ {
566
+ opcode : "operator_power" ,
567
+ } ,
464
568
{
465
569
opcode : "operator_mod" ,
466
570
} ,
@@ -476,6 +580,9 @@ export default async function ({ addon, console, msg }) {
476
580
{
477
581
opcode : "operator_divide" ,
478
582
} ,
583
+ {
584
+ opcode : "operator_power" ,
585
+ } ,
479
586
{
480
587
opcode : "operator_mod" ,
481
588
} ,
@@ -491,6 +598,27 @@ export default async function ({ addon, console, msg }) {
491
598
opcode : "operator_multiply" ,
492
599
} ,
493
600
noopSwitch ,
601
+ {
602
+ opcode : "operator_power" ,
603
+ } ,
604
+ {
605
+ opcode : "operator_mod" ,
606
+ } ,
607
+ ] ;
608
+ blockSwitches [ "operator_power" ] = [
609
+ {
610
+ opcode : "operator_add" ,
611
+ } ,
612
+ {
613
+ opcode : "operator_subtract" ,
614
+ } ,
615
+ {
616
+ opcode : "operator_multiply" ,
617
+ } ,
618
+ {
619
+ opcode : "operator_divide" ,
620
+ } ,
621
+ noopSwitch ,
494
622
{
495
623
opcode : "operator_mod" ,
496
624
} ,
@@ -508,6 +636,9 @@ export default async function ({ addon, console, msg }) {
508
636
{
509
637
opcode : "operator_divide" ,
510
638
} ,
639
+ {
640
+ opcode : "operator_power" ,
641
+ } ,
511
642
noopSwitch ,
512
643
] ;
513
644
blockSwitches [ "operator_and" ] = [
@@ -522,6 +653,18 @@ export default async function ({ addon, console, msg }) {
522
653
} ,
523
654
noopSwitch ,
524
655
] ;
656
+ blockSwitches [ "operator_trueBoolean" ] = [
657
+ noopSwitch ,
658
+ {
659
+ opcode : "operator_falseBoolean" ,
660
+ } ,
661
+ ] ;
662
+ blockSwitches [ "operator_falseBoolean" ] = [
663
+ {
664
+ opcode : "operator_trueBoolean" ,
665
+ } ,
666
+ noopSwitch ,
667
+ ] ;
525
668
}
526
669
527
670
if ( addon . settings . get ( "sensing" ) ) {
0 commit comments