forked from OpenRoberta/blockly
-
Notifications
You must be signed in to change notification settings - Fork 0
/
blocks_compressed.js
683 lines (682 loc) · 299 KB
/
blocks_compressed.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
// Do not edit this file; automatically generated by build.py.
'use strict';
Blockly.Blocks.naoSensors={};Blockly.Blocks.naoSensors_recognizeWord={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);this.appendValueInput("WORD").appendField(Blockly.Msg.GET).appendField(new Blockly.FieldDropdown([[Blockly.Msg.MODE_WORD,""]]),"MODE").appendField(" ","UNIT").appendField(Blockly.Msg.NAO_RECOGNIZEWORD).setCheck(["Array_String","String"]);this.setPreviousStatement(!1);this.setNextStatement(!1);this.setOutput(!0,"String");this.setTooltip(Blockly.Msg.NAO_RECOGNIZEWORD_TOOLTIP)}};
Blockly.Blocks.naoSensors_getMarkInformation={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);this.appendValueInput("VALUE").setCheck("Number").appendField(Blockly.Msg.GET).appendField(new Blockly.FieldDropdown([[Blockly.Msg.MODE_INFO,""]]),"MODE").appendField(" ","UNIT").appendField(Blockly.Msg.SENSOR_DETECTMARK+" "+Blockly.Msg.ABOUT);this.setOutput(!0,"Array_Number");this.setTooltip(Blockly.Msg.NAO_MARK_GET_INFORMATION_TOOLTIP)}};
Blockly.Blocks.naoSensors_getFaceInformation={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);this.appendValueInput("VALUE").setCheck("String").appendField(Blockly.Msg.GET).appendField(new Blockly.FieldDropdown([[Blockly.Msg.MODE_INFO,""]]),"MODE").appendField(" ","UNIT").appendField(Blockly.Msg.SENSOR_DETECTFACE+" "+Blockly.Msg.ABOUT);this.setOutput(!0,"Array_String");this.setTooltip(Blockly.Msg.NAO_FACE_GET_INFORMATION_TOOLTIP)}};
// Copyright 2012 Google Inc. Apache License 2.0
Blockly.Blocks.naoColour={};Blockly.Blocks.naoColour_picker={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_colour",name:"COLOUR",colour:"#ff0000"}],output:"Colour",colour:Blockly.CAT_COLOUR_RGB,helpUrl:Blockly.Msg.mbedColour_PICKER_HELPURL});var a=this;this.setTooltip(function(){var b=a.getParent();return b&&b.getInputsInline()&&b.tooltip||Blockly.Msg.mbedColour_PICKER_TOOLTIP})}};
Blockly.Blocks.naoColour_rgb={init:function(){this.setColour(Blockly.CAT_COLOUR_RGB);this.appendValueInput("RED").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_RGB_TITLE).appendField(Blockly.Msg.COLOUR_RGB_RED);this.appendValueInput("GREEN").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_RGB_GREEN);this.appendValueInput("BLUE").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_RGB_BLUE);this.setOutput(!0,
"Colour");this.setTooltip(Blockly.Msg.COLOUR_RGB_TOOLTIP)}};Blockly.Blocks.robConfigDefinitions={};var confBlocks={};function createPins(a,b,c,d){c||(c="");d||(d="");for(var e=[];a<=b;a++)e.push([(c+a).toString(),(d+a).toString()]);return e}Blockly.Blocks.robConfigDefinitions.pinsDigital={};Blockly.Blocks.robConfigDefinitions.pinsDigital.uno=function(){return createPins(0,13)};Blockly.Blocks.robConfigDefinitions.pinsDigital.unowifirev2=function(){return createPins(0,13)};
Blockly.Blocks.robConfigDefinitions.pinsDigital.nano=function(){return createPins(0,13,"D")};Blockly.Blocks.robConfigDefinitions.pinsDigital.mega=function(){return createPins(0,53)};Blockly.Blocks.robConfigDefinitions.pinsDigital.sensebox=function(){var a=createPins(1,2,"A");a=a.concat(createPins(3,4,"B"));return a=a.concat(createPins(5,6,"C"))};Blockly.Blocks.robConfigDefinitions.pinsDigital.festobionic=function(){return createPins(1,4)};Blockly.Blocks.robConfigDefinitions.pinsAnalog={};
Blockly.Blocks.robConfigDefinitions.pinsAnalog.uno=function(){return createPins(0,5,"A","A")};Blockly.Blocks.robConfigDefinitions.pinsAnalog.unowifirev2=function(){return createPins(0,5,"A","A")};Blockly.Blocks.robConfigDefinitions.pinsAnalog.nano=function(){return createPins(0,7,"A","A")};Blockly.Blocks.robConfigDefinitions.pinsAnalog.mega=function(){return createPins(0,15,"A","A")};
Blockly.Blocks.robConfigDefinitions.pinsAnalog.sensebox=function(){var a=createPins(1,2,"A");a=a.concat(createPins(3,4,"B"));return a=a.concat(createPins(5,6,"C"))};Blockly.Blocks.robConfigDefinitions.pinsAnalogWrite={};Blockly.Blocks.robConfigDefinitions.pinsAnalogWrite.uno=function(){var a=createPins(3,3),b=createPins(5,6),c=createPins(9,11);return a.concat(b).concat(c)};
Blockly.Blocks.robConfigDefinitions.pinsAnalogWrite.unowifirev2=function(){var a=createPins(3,3),b=createPins(5,6),c=createPins(9,10);return a.concat(b).concat(c)};Blockly.Blocks.robConfigDefinitions.pinsAnalogWrite.nano=function(){var a=createPins(3,3,"D"),b=createPins(5,6,"D"),c=createPins(9,11,"D");return a.concat(b).concat(c)};Blockly.Blocks.robConfigDefinitions.pinsAnalogWrite.mega=function(){var a=createPins(2,13),b=createPins(44,46);return a.concat(b)};
Blockly.Blocks.robConfigDefinitions.pinsAnalogWrite.sensebox=function(){var a=createPins(1,2,"A");a=a.concat(createPins(3,4,"B"));return a=a.concat(createPins(5,6,"C"))};Blockly.Blocks.robConfigDefinitions.pins_wedo=function(){return createPins(1,2)};confBlocks.ultrasonic={};
confBlocks.ultrasonic.arduino={title:"ULTRASONIC",ports:[["trig","TRIG"],["echo","ECHO"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsDigital[a]},sensor:!0,standardPins:["7","6"],fixedPorts:[["GND","GND"],["VCC","5V"]]};confBlocks.ultrasonic.sensebox={title:"ULTRASONIC",ports:[["trig","TRIG"],["echo","ECHO"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsDigital[a]},sensor:!0,standardPins:["1","2"],fixedPorts:[["GND","GND"],["VCC","5V"]]};confBlocks.light={};
confBlocks.light.arduino={title:"LIGHT",ports:[["output","OUTPUT"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsAnalog[a]},sensor:!0,standardPins:["A0"],fixedPorts:[["VCC","5V"]]};confBlocks.light.sensebox={title:"LIGHT",ports:[["output","OUTPUT"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsAnalog[a]},sensor:!0,standardPins:["1"],fixedPorts:[["VCC","5V"]]};confBlocks.lightveml={};
confBlocks.lightveml.sensebox={title:"LIGHTVEML",ports:[["I2C","I2C"]],pins:function(a){return[["I2C","I2C"]]},sensor:!0};confBlocks.accelerometer={};confBlocks.accelerometer.sensebox={title:"ACCELEROMETER",sensor:!0};confBlocks.accelerometer.arduino=confBlocks.accelerometer.sensebox;confBlocks.compass={};confBlocks.compass.sensebox={title:"COMPASS",sensor:!0};confBlocks.moisture={};
confBlocks.moisture.arduino={title:"MOISTURE",ports:[["S","S"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsAnalog[a]},sensor:!0,standardPins:["A0"],fixedPorts:[["GND","GND"],["VCC","5V"]]};confBlocks.potentiometer={};confBlocks.potentiometer.arduino={title:"POTENTIOMETER",ports:[["output","OUTPUT"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsAnalog[a]},sensor:!0,standardPins:["A0"],fixedPorts:[["GND","GND"],["VCC","5V"]]};
confBlocks.potentiometer.sensebox={title:"POTENTIOMETER",ports:[["output","OUTPUT"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsAnalog[a]},sensor:!0,standardPins:["1"],fixedPorts:[["GND","GND"],["VCC","5V"]]};confBlocks.infrared={};confBlocks.infrared.wedo={title:"INFRARED",bricks:!0,ports:[["CONNECTOR","CONNECTOR"]],pins:Blockly.Blocks.robConfigDefinitions.pins_wedo,sensor:!0};
confBlocks.infrared.arduino={title:"INFRARED",ports:[["output","OUTPUT"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsDigital[a]},sensor:!0,standardPins:["11"],fixedPorts:[["GND","GND"],["VCC","5V"]]};confBlocks.temperature={};confBlocks.temperature.arduino={title:"TEMPERATURE",ports:[["output","OUTPUT"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsAnalog[a]},sensor:!0,standardPins:["A0"],fixedPorts:[["GND","GND"],["VCC","5V"]]};
confBlocks.temperature.sensebox={title:"TEMPERATURE",ports:[["I2C","I2C"]],pins:function(a){return[["I2C","I2C"]]},sensor:!0};confBlocks.humidity={};confBlocks.humidity.arduino={title:"HUMIDITY",ports:[["output","OUTPUT"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsDigital[a]},sensor:!0,standardPins:["2"],fixedPorts:[["GND","GND"],["VCC","5V"]]};confBlocks.humidity.sensebox={title:"HUMIDITY",ports:[["I2C","I2C"]],pins:function(){return[["I2C","I2C"]]},sensor:!0};
confBlocks.encoder={};confBlocks.encoder.arduino={title:"ENCODER",ports:[["output","OUTPUT"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsAnalog[a]},sensor:!0,standardPins:["2"]};confBlocks.motion={};confBlocks.motion.arduino={title:"MOTION",ports:[["output","OUTPUT"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsDigital[a]},sensor:!0,standardPins:["7"],fixedPorts:[["GND","GND"],["VCC","5V"]]};confBlocks.key={};
confBlocks.key.arduino={title:"KEY",ports:[["pin","PIN1"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsDigital[a]},sensor:!0,standardPins:["2"],fixedPorts:[["VCC","5V"]]};confBlocks.key.sensebox=confBlocks.key.arduino;confBlocks.key.wedo={title:"KEY",bricks:!0,sensor:!0};confBlocks.drop={};
confBlocks.drop.arduino={title:"DROP",ports:[["S","S"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsAnalog[a]},sensor:!0,standardPins:["A0"],fixedPorts:[["GND","GND"],["VCC","5V"]]};confBlocks.pulse={};confBlocks.pulse.arduino={title:"PULSE",ports:[["S","S"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsAnalog[a]},sensor:!0,standardPins:["A0"],fixedPorts:[["GND","GND"],["VCC","5V"]]};confBlocks.rfid={};
confBlocks.rfid.arduino={title:"RFID",ports:[["RST","RST"],["SDA","SDA"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsDigital[a]},sensor:!0,standardPins:["9","10","13","11","12"],fixedPorts:[["GND","GND"],["3,3V","3,3V"],["SCK","13"],["MOSI","11"],["MISO","12"]]};confBlocks.lcd={};
confBlocks.lcd.arduino={title:"LCD",ports:[["RS","RS"],["E","E"],["D4","D4"],["D5","D5"],["D6","D6"],["D7","D7"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsDigital[a]},sensor:!1,standardPins:"12 11 5 4 3 2".split(" "),fixedPorts:[["VSS","GND"],["VDD","5V"],["V0","Vp"],["RW","GND"]]};confBlocks.lcdi2c={};confBlocks.lcdi2c.arduino={title:"LCDI2C",sensor:!1,fixedPorts:[["GND","GND"],["VCC","5V"],["SDA","A4"],["SCL","A5"]]};
confBlocks.lcdi2c.sensebox={title:"LCDI2C",ports:[["I2C","I2C"]],pins:function(a){return[["I2C","I2C"]]},inputs:[["TITLE","P"],["XLABEL","X"],["YLABEL","Y"],["XSTART","0"],["XEND","100"],["YSTART","0"],["YEND","50"],["XTICK","10"],["YTICK","10"]],sensor:!1};confBlocks.led={};
confBlocks.led.arduino={title:"LED",ports:[["input","INPUT"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsDigital[a]().concat([[Blockly.Msg.PORT_INTERNAL,"LED_BUILTIN"]])},sensor:!1,standardPins:["LED_BUILTIN"],fixedPorts:[["GND","GND"]]};confBlocks.led.festobionic={title:"LED",ports:[["input","INPUT"]],pins:function(a){return[[Blockly.Msg.PORT_INTERNAL,"LED_BUILTIN"]]},sensor:!1,standardPins:["LED_BUILTIN"],fixedPorts:[["GND","GND"]]};
confBlocks.led.sensebox={title:"LED",ports:[["input","INPUT"]],pins:function(a){a=createPins(1,2,"A");a=a.concat(createPins(3,4,"B"));a=a.concat(createPins(5,6,"C"));return a=a.concat(createPins(7,8))},sensor:!1,standardPins:["A1"],fixedPorts:[["GND","GND"]]};confBlocks.led.wedo={title:"LED",bricks:!0,action:!0};confBlocks.buzzer={};
confBlocks.buzzer.arduino={title:"BUZZER",ports:[["+","+"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsDigital[a]},sensor:!1,standardPins:["5"],fixedPorts:[["GND","GND"]]};confBlocks.buzzer.sensebox={title:"BUZZER",ports:[["+","+"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsDigital[a]},sensor:!1,standardPins:["1"],fixedPorts:[["GND","GND"]]};confBlocks.buzzer.wedo={title:"BUZZER",bricks:!0,action:!0};confBlocks.sound={};
confBlocks.sound.sensebox={title:"SOUND",ports:[["out","OUT"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsDigital[a]},sensor:!0,standardPins:["1"],fixedPorts:[["GND","GND"],["VCC","5V"]]};confBlocks.relay={};confBlocks.relay.arduino={title:"RELAY",ports:[["IN","IN"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsDigital[a]},sensor:!1,standardPins:["6"],fixedPorts:[["GND","GND"],["VCC","5V"]]};confBlocks.rgbled={};
confBlocks.rgbled.arduino={title:"RGBLED",ports:[["red","RED"],["green","GREEN"],["blue","BLUE"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsDigital[a]},sensor:!1,standardPins:["5","6","3"],fixedPorts:[["GND","GND"]]};confBlocks.rgbled.sensebox={title:"RGBLED",ports:[["red","RED"],["green","GREEN"],["blue","BLUE"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsDigital[a]},sensor:!1,standardPins:["1","2","3"],fixedPorts:[["GND","GND"]]};confBlocks.stepmotor={};
confBlocks.stepmotor.arduino={title:"STEPMOTOR",ports:[["IN1","IN1"],["IN2","IN2"],["IN3","IN3"],["IN4","IN4"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsDigital[a]},sensor:!1,standardPins:["6","5","4","3"],fixedPorts:[["GND","GND"],["VCC","5V"]]};confBlocks.servo={};confBlocks.servo.arduino={title:"SERVO",ports:[["pulse","PULSE"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsDigital[a]},sensor:!1,standardPins:["8"],fixedPorts:[["GND","GND"],["VCC","5V"]]};
confBlocks.servo.festobionic=confBlocks.servo.arduino;confBlocks.servo.festobionic.standardPins=["1"];confBlocks.gyro={};confBlocks.gyro.wedo={title:"GYRO",bricks:!0,ports:[["CONNECTOR","CONNECTOR"]],pins:Blockly.Blocks.robConfigDefinitions.pins_wedo,sensor:!0};confBlocks.gyro.sensebox={title:"GYRO",sensor:!0};confBlocks.gyro.arduino=confBlocks.gyro.sensebox;confBlocks.motor={};
confBlocks.motor.wedo={title:"MOTOR",bricks:!0,ports:[["CONNECTOR","CONNECTOR"]],pins:Blockly.Blocks.robConfigDefinitions.pins_wedo,action:!0};confBlocks.digitalout={};confBlocks.digitalout.arduino={title:"DIGITALOUT",ports:[["SENSOR_PIN","OUTPUT"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsDigital[a]},sensor:!0};confBlocks.digitalout.sensebox=confBlocks.digitalout.arduino;confBlocks.analogout={};
confBlocks.analogout.arduino={title:"ANALOGOUT",ports:[["SENSOR_PIN","OUTPUT"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsAnalog[a]},sensor:!0};confBlocks.analogout.sensebox=confBlocks.analogout.arduino;confBlocks.digitalin={};confBlocks.digitalin.arduino={title:"DIGITALIN",ports:[["SENSOR_PIN","INPUT"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsDigital[a]},sensor:!1};confBlocks.digitalin.sensebox=confBlocks.digitalin.arduino;confBlocks.analogin={};
confBlocks.analogin.arduino={title:"ANALOGIN",ports:[["SENSOR_PIN","INPUT"]],pins:function(a){return Blockly.Blocks.robConfigDefinitions.pinsAnalogWrite[a]},sensor:!1};confBlocks.analogin.sensebox=confBlocks.analogin.arduino;confBlocks.wireless={};confBlocks.wireless.sensebox={title:"WIRELESS",dropdowns:[["SOCKET",[["XBEE1","XBEE1"]]]],sensor:!1};confBlocks.sdcard={};confBlocks.sdcard.sensebox={title:"SDCARD",inputs:[["NAO_FILENAME","FILE.TXT"]],dropdowns:[["SOCKET",[["XBEE2","XBEE2"]]]],sensor:!1};
confBlocks.plotting={};confBlocks.plotting.sensebox={title:"PLOTTING",inputs:[["TITLE","P"],["XLABEL","X"],["YLABEL","Y"],["XSTART","0"],["XEND","100"],["YSTART","0"],["YEND","50"],["XTICK","10"],["YTICK","10"]],sensor:!1};confBlocks.particle={};confBlocks.particle.sensebox={title:"PARTICLE",ports:[["Serial","SERIAL"]],pins:function(a){return[["Serial1","Serial1"],["Serial2","Serial2"]]},sensor:!0};confBlocks.gps={};
confBlocks.gps.sensebox={title:"GPS",ports:[["I2C","I2C"]],pins:function(){return[["I2C","I2C"]]},sensor:!0};function initConfBlocks(){for(var a in confBlocks)confBlocks.hasOwnProperty(a)&&(Blockly.Blocks["robConf_"+a]={confBlock:a,init:function(){Blockly.Blocks.robConf_generic.init.call(this,confBlocks[this.confBlock][this.workspace.device])}})}initConfBlocks();Blockly.Blocks.robActions={};
function getConfigPorts(a){var b=[];if(Blockly.Workspace.getByContainer("bricklyDiv"))for(var c=Blockly.Workspace.getByContainer("bricklyDiv").getAllBlocks(),d=0;d<c.length;d++){var e=c[d].getConfigDecl;e&&(e=e.call(c[d]),e.type===a&&b.push([e.name,e.name]))}0===b.length&&b.push([Blockly.Msg.CONFIGURATION_NO_PORT||Blockly.checkMsgKey("CONFIGURATION_NO_PORT"),(Blockly.Msg.CONFIGURATION_NO_PORT||Blockly.checkMsgKey("CONFIGURATION_NO_PORT")).toUpperCase()]);return new Blockly.FieldDropdown(b)}
Blockly.Blocks.robActions_setLanguage={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.LANGUAGE_GERMAN,"GERMAN"],[Blockly.Msg.LANGUAGE_ENGLISH,"ENGLISH"],[Blockly.Msg.LANGUAGE_FRENCH,"FRENCH"],[Blockly.Msg.LANGUAGE_SPANISH,"SPANISH"],[Blockly.Msg.LANGUAGE_ITALIAN,"ITALIAN"],[Blockly.Msg.LANGUAGE_DUTCH,"DUTCH"],[Blockly.Msg.LANGUAGE_FINNISH,"FINNISH"],[Blockly.Msg.LANGUAGE_POLISH,"POLISH"],[Blockly.Msg.LANGUAGE_RUSSIAN,"RUSSIAN"],[Blockly.Msg.LANGUAGE_TURKISH,
"TURKISH"],[Blockly.Msg.LANGUAGE_CZECH,"CZECH"],[Blockly.Msg.LANGUAGE_PORTUGUESE,"PORTUGUESE"],[Blockly.Msg.LANGUAGE_DANISH,"DANISH"]]);"nao"===this.workspace.device?a=new Blockly.FieldDropdown([[Blockly.Msg.LANGUAGE_GERMAN,"GERMAN"],[Blockly.Msg.LANGUAGE_ENGLISH,"ENGLISH"],[Blockly.Msg.LANGUAGE_FRENCH,"FRENCH"],[Blockly.Msg.LANGUAGE_JAPANESE,"JAPANESE"],[Blockly.Msg.LANGUAGE_CHINESE,"CHINESE"],[Blockly.Msg.LANGUAGE_SPANISH,"SPANISH"],[Blockly.Msg.LANGUAGE_KOREAN,"KOREAN"],[Blockly.Msg.LANGUAGE_ITALIAN,
"ITALIAN"],[Blockly.Msg.LANGUAGE_DUTCH,"DUTCH"],[Blockly.Msg.LANGUAGE_FINNISH,"FINNISH"],[Blockly.Msg.LANGUAGE_POLISH,"POLISH"],[Blockly.Msg.LANGUAGE_RUSSIAN,"RUSSIAN"],[Blockly.Msg.LANGUAGE_TURKISH,"TURKISH"],[Blockly.Msg.LANGUAGE_ARABIC,"ARABIC"],[Blockly.Msg.LANGUAGE_CZECH,"CZECH"],[Blockly.Msg.LANGUAGE_PORTUGUESE,"PORTUGUESE"],[Blockly.Msg.LANGUAGE_BRAZILIAN,"BRAZILIAN"],[Blockly.Msg.LANGUAGE_SWEDISH,"SWEDISH"],[Blockly.Msg.LANGUAGE_DANISH,"DANISH"],[Blockly.Msg.LANGUAGE_NORWEGIAN,"NORWEGIAN"],
[Blockly.Msg.LANGUAGE_GREEK,"GREEK"]]):"ev3"===this.workspace.device&&(a=new Blockly.FieldDropdown([[Blockly.Msg.LANGUAGE_GERMAN,"GERMAN"],[Blockly.Msg.LANGUAGE_ENGLISH,"ENGLISH"],[Blockly.Msg.LANGUAGE_FRENCH,"FRENCH"],[Blockly.Msg.LANGUAGE_SPANISH,"SPANISH"],[Blockly.Msg.LANGUAGE_ITALIAN,"ITALIAN"],[Blockly.Msg.LANGUAGE_DUTCH,"DUTCH"],[Blockly.Msg.LANGUAGE_FINNISH,"FINNISH"],[Blockly.Msg.LANGUAGE_POLISH,"POLISH"],[Blockly.Msg.LANGUAGE_RUSSIAN,"RUSSIAN"],[Blockly.Msg.LANGUAGE_TURKISH,"TURKISH"],[Blockly.Msg.LANGUAGE_CZECH,
"CZECH"],[Blockly.Msg.LANGUAGE_PORTUGUESE,"PORTUGUESE"],[Blockly.Msg.LANGUAGE_DANISH,"DANISH"]]));this.appendDummyInput().appendField(Blockly.Msg.SET+" "+Blockly.Msg.LANGUAGE).appendField(a,"LANGUAGE");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.SETLANGUAGE_TOOLTIP);"nao"===this.workspace.device?this.setTooltip(Blockly.Msg.NAO_SETLANGUAGE_TOOLTIP):"ev3"===this.workspace.device&&this.setTooltip(Blockly.Msg.SETLANGUAGE_TOOLTIP)}};
Blockly.Blocks.robActions_sayText={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendValueInput("OUT").appendField(Blockly.Msg.SAY);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setBlocking(!0);this.setTooltip(Blockly.Msg.SAY_TOOLTIP)}};
Blockly.Blocks.robActions_sayText_parameters={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendValueInput("OUT").appendField(Blockly.Msg.SAY);this.appendValueInput("VOICESPEED").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.VOICE_SPEED).setCheck("Number");this.appendValueInput("VOICEPITCH").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.VOICE_PITCH).setCheck("Number");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setBlocking(!0);this.setTooltip(Blockly.Msg.SAY_PARAMETERS_TOOLTIP)}};
Blockly.Blocks.robActions_motor_on={init:function(){switch(this.workspace.device){case "ev3":var a=[[Blockly.Msg.MOTOR_PORT+" A","A"],[Blockly.Msg.MOTOR_PORT+" B","B"],[Blockly.Msg.MOTOR_PORT+" C","C"],[Blockly.Msg.MOTOR_PORT+" D","D"]];break;case "nxt":a=[[Blockly.Msg.MOTOR_PORT+" A","A"],[Blockly.Msg.MOTOR_PORT+" B","B"],[Blockly.Msg.MOTOR_PORT+" C","C"]];break;case "botnroll":a=[[Blockly.Msg.MOTOR+" "+Blockly.Msg.MOTOR_LEFT,"B"],[Blockly.Msg.MOTOR+" "+Blockly.Msg.MOTOR_RIGHT,"C"]];break;case "mbot":a=
[[Blockly.Msg.MOTOR+" M1","1"],[Blockly.Msg.MOTOR+" M2","2"]];break;case "wedo":this.action="MOTOR";a=[];if(Blockly.Workspace.getByContainer("bricklyDiv"))for(var b=Blockly.Workspace.getByContainer("bricklyDiv").getAllBlocks(),c=0;c<b.length;c++){var d=b[c].getConfigDecl;d&&(d=d.call(b[c]),"motor"===d.type&&a.push([d.name,d.name]))}0===a.length&&a.push([Blockly.Msg.CONFIGURATION_NO_PORT||Blockly.checkMsgKey("CONFIGURATION_NO_PORT"),(Blockly.Msg.CONFIGURATION_NO_PORT||Blockly.checkMsgKey("CONFIGURATION_NO_PORT")).toUpperCase()]);
break;case "edison":a=[[Blockly.Msg.MOTOR+" "+Blockly.Msg.MOTOR_LEFT,"LMOTOR"],[Blockly.Msg.MOTOR+" "+Blockly.Msg.MOTOR_RIGHT,"RMOTOR"]];break;default:a=["INVALID DEVICE TYPE","UNDEFINED"]}a=new Blockly.FieldDropdown(a);this.setColour(Blockly.CAT_ACTION_RGB);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.MOTOR_ON_TOOLTIP);"wedo"!==this.workspace.device?this.appendValueInput("POWER").appendField(a,"MOTORPORT").appendField(Blockly.Msg.ON).appendField(Blockly.Msg.MOTOR_SPEED).setCheck("Number"):
(this.appendValueInput("POWER").appendField(Blockly.Msg.ACTION_MOTOR).appendField(a,"MOTORPORT").appendField(Blockly.Msg.ON).appendField(Blockly.Msg.MOTOR_SPEED).setCheck("Number"),this.dependConfig={type:"motor",dropDown:a})}};
Blockly.Blocks.robActions_motor_on_for={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=[[Blockly.Msg.MOTOR_PORT+" A","A"],[Blockly.Msg.MOTOR_PORT+" B","B"],[Blockly.Msg.MOTOR_PORT+" C","C"]];"ev3"===this.workspace.device?a.push([Blockly.Msg.MOTOR_PORT+" D","D"]):"botnroll"===this.workspace.device?a=[[Blockly.Msg.MOTOR+" "+Blockly.Msg.MOTOR_LEFT,"B"],[Blockly.Msg.MOTOR+" "+Blockly.Msg.MOTOR_RIGHT,"C"]]:"mbot"===this.workspace.device&&(a=[[Blockly.Msg.MOTOR+" M1","1"],[Blockly.Msg.MOTOR+
" M2","2"]]);if("wedo"===this.workspace.device){this.action="MOTOR";a=[];if(Blockly.Workspace.getByContainer("bricklyDiv"))for(var b=Blockly.Workspace.getByContainer("bricklyDiv").getAllBlocks(),c=0;c<b.length;c++){var d=b[c].getConfigDecl;d&&(d=d.call(b[c]),"motor"===d.type&&a.push([d.name,d.name]))}0===a.length&&a.push([Blockly.Msg.CONFIGURATION_NO_PORT||Blockly.checkMsgKey("CONFIGURATION_NO_PORT"),(Blockly.Msg.CONFIGURATION_NO_PORT||Blockly.checkMsgKey("CONFIGURATION_NO_PORT")).toUpperCase()]);
a=new Blockly.FieldDropdown(a);this.dependConfig={type:"motor",dropDown:a};this.appendValueInput("POWER").appendField(Blockly.Msg.ACTION_MOTOR).appendField(a,"MOTORPORT").appendField(Blockly.Msg.ON).appendField(Blockly.Msg.MOTOR_SPEED).setCheck("Number");this.appendValueInput("VALUE").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.SENSOR_TIME+" "+Blockly.Msg.SENSOR_UNIT_MS).setCheck("Number");this.setTooltip(Blockly.Msg.MOTOR_ON_FOR_TOOLTIP_MS)}else a=new Blockly.FieldDropdown(a),"arduino"===
this.workspace.device?(a=getConfigPorts("stepmotor"),this.dependConfig={type:"stepmotor",dropDown:a},this.appendValueInput("POWER").appendField(Blockly.Msg.MOTOR_PORT_ARDUINO).appendField(a,"MOTORPORT").appendField(Blockly.Msg.ON).appendField(Blockly.Msg.ROTATIONS_PER_MINUTE).setCheck("Number")):this.appendValueInput("POWER").appendField(a,"MOTORPORT").appendField(Blockly.Msg.ON).appendField(Blockly.Msg.MOTOR_SPEED).setCheck("Number"),a=new Blockly.FieldDropdown([[Blockly.Msg.MOTOR_ROTATION,"ROTATIONS"],
[Blockly.Msg.MOTOR_DEGREE,"DEGREE"]]),"botnroll"===this.workspace.device||"mbot"===this.workspace.device?this.appendValueInput("VALUE").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.SENSOR_TIME+" "+Blockly.Msg.SENSOR_UNIT_MS).setCheck("Number"):this.appendValueInput("VALUE").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.FOR).appendField(a,"MOTORROTATION").setCheck("Number"),"arduino"!=this.workspace.device?this.setTooltip(Blockly.Msg.MOTOR_ON_FOR_TOOLTIP):this.setTooltip(Blockly.Msg.MOTOR_ON_FOR_TOOLTIP_RPM);
this.setPreviousStatement(!0);this.setBlocking(!0);this.setNextStatement(!0)}};
Blockly.Blocks.robActions_motor_on_for_ardu={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);if("arduino"==this.workspace.device||"festobionic"==this.workspace.device){var a=getConfigPorts("servo");this.dependConfig={type:"servo",dropDown:a};"arduino"==this.workspace.device?this.appendValueInput("POWER").appendField(Blockly.Msg.SET+" "+Blockly.Msg.ACTION_SERVO_ARDUINO).appendField(a,"MOTORPORT").appendField(Blockly.Msg.TO+" \u00b0").setCheck("Number"):this.appendValueInput("POWER").appendField(Blockly.Msg.SET+
" "+Blockly.Msg.ACTION_SERVO).appendField(a,"MOTORPORT").appendField(Blockly.Msg.TO+" \u00b0").setCheck("Number")}else a=new Blockly.FieldDropdown([[Blockly.Msg.MOTOR_PAN,"A"],[Blockly.Msg.MOTOR_TILT,"D"]]),this.appendValueInput("POWER").appendField(Blockly.Msg.SET+" "+Blockly.Msg.MOTOR).appendField(a,"MOTORPORT").appendField(Blockly.Msg.TO+" \u00b0").setCheck("Number");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.MOTOR_ON_FOR_TOOLTIP_SERVO)}};
Blockly.Blocks.robActions_motor_getPower={init:function(){var a=[[Blockly.Msg.MOTOR_PORT+" A","A"],[Blockly.Msg.MOTOR_PORT+" B","B"],[Blockly.Msg.MOTOR_PORT+" C","C"]];"ev3"===this.workspace.device&&a.push([Blockly.Msg.MOTOR_PORT+" D","D"]);this.setColour(Blockly.CAT_ACTION_RGB);a=new Blockly.FieldDropdown(a);this.appendDummyInput().appendField(Blockly.Msg.GET+" "+Blockly.Msg.MOTOR_SPEED).appendField(a,"MOTORPORT");this.setOutput(!0,"Number");this.setTooltip(Blockly.Msg.MOTOR_GETPOWER_TOOLTIP)}};
Blockly.Blocks.robActions_motor_setPower={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=[[Blockly.Msg.MOTOR_PORT+" A","A"],[Blockly.Msg.MOTOR_PORT+" B","B"],[Blockly.Msg.MOTOR_PORT+" C","C"]];"ev3"===this.workspace.device&&a.push([Blockly.Msg.MOTOR_PORT+" D","D"]);a=new Blockly.FieldDropdown(a);this.appendValueInput("POWER").appendField(Blockly.Msg.SET).appendField(a,"MOTORPORT").appendField(Blockly.Msg.MOTOR_SPEED);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.MOTOR_SETPOWER_TOOLTIP)}};
Blockly.Blocks.robActions_motor_stop={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=[[Blockly.Msg.MOTOR_PORT+" A","A"],[Blockly.Msg.MOTOR_PORT+" B","B"],[Blockly.Msg.MOTOR_PORT+" C","C"]];"ev3"===this.workspace.device&&a.push([Blockly.Msg.MOTOR_PORT+" D","D"]);"mbot"===this.workspace.device&&(a=[[Blockly.Msg.MOTOR_PORT+" M1","1"],[Blockly.Msg.MOTOR_PORT+" M2","2"]]);"edison"===this.workspace.device&&(a=[[Blockly.Msg.MOTOR+" "+Blockly.Msg.MOTOR_LEFT,"LMOTOR"],[Blockly.Msg.MOTOR+" "+
Blockly.Msg.MOTOR_RIGHT,"RMOTOR"]]);a=new Blockly.FieldDropdown(a);if("wedo"===this.workspace.device){this.action="MOTOR";a=[];if(Blockly.Workspace.getByContainer("bricklyDiv"))for(var b=Blockly.Workspace.getByContainer("bricklyDiv").getAllBlocks(),c=0;c<b.length;c++){var d=b[c].getConfigDecl;d&&(d=d.call(b[c]),"motor"===d.type&&a.push([d.name,d.name]))}0===a.length&&a.push([Blockly.Msg.CONFIGURATION_NO_PORT||Blockly.checkMsgKey("CONFIGURATION_NO_PORT"),(Blockly.Msg.CONFIGURATION_NO_PORT||Blockly.checkMsgKey("CONFIGURATION_NO_PORT")).toUpperCase()]);
a=new Blockly.FieldDropdown(a);this.dependConfig={type:"motor",dropDown:a};this.appendDummyInput().appendField(Blockly.Msg.MOTOR_STOP).appendField(Blockly.Msg.ACTION_MOTOR).appendField(a,"MOTORPORT")}else"mbot"===this.workspace.device||"edison"===this.workspace.device?this.appendDummyInput().appendField(Blockly.Msg.MOTOR_STOP).appendField(a,"MOTORPORT"):(b=new Blockly.FieldDropdown([[Blockly.Msg.MOTOR_FLOAT,"FLOAT"],[Blockly.Msg.MOTOR_BRAKE,"NONFLOAT"]]),this.appendDummyInput().appendField(Blockly.Msg.MOTOR_STOP).appendField(a,
"MOTORPORT").appendField(b,"MODE"));this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.MOTOR_STOP_TOOLTIP)}};
Blockly.Blocks.robActions_motorDiff_on={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.MOTOR_FOREWARD,"FOREWARD"],[Blockly.Msg.MOTOR_BACKWARD,"BACKWARD"]]);this.appendValueInput("POWER").appendField(Blockly.Msg.MOTOR_DRIVE).appendField(a,"DIRECTION").appendField(Blockly.Msg.MOTOR_SPEED).setCheck("Number");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.MOTORDIFF_ON_TOOLTIP)}};
Blockly.Blocks.robActions_motorDiff_on_for={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.MOTOR_FOREWARD,"FOREWARD"],[Blockly.Msg.MOTOR_BACKWARD,"BACKWARDS"]]);this.appendValueInput("POWER").appendField(Blockly.Msg.MOTOR_DRIVE).appendField(a,"DIRECTION").appendField(Blockly.Msg.MOTOR_SPEED).setCheck("Number");"botnroll"===this.workspace.device||"mbot"===this.workspace.device?this.appendValueInput("DISTANCE").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.SENSOR_TIME+
" ms").setCheck("Number"):this.appendValueInput("DISTANCE").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.MOTOR_DISTANCE).setCheck("Number");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setBlocking(!0);this.setTooltip(Blockly.Msg.MOTORDIFF_ON_FOR_TOOLTIP)}};
Blockly.Blocks.robActions_motorDiff_stop={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.setInputsInline(!0);this.appendDummyInput().appendField(Blockly.Msg.MOTOR_STOP);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.MOTORDIFF_STOP_TOOLTIP)}};
Blockly.Blocks.robActions_motorDiff_turn={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.MOTOR_RIGHT,"RIGHT"],[Blockly.Msg.MOTOR_LEFT,"LEFT"]]);this.appendValueInput("POWER").appendField(Blockly.Msg.MOTOR_TURN).appendField(a,"DIRECTION").appendField(Blockly.Msg.MOTOR_SPEED).setCheck("Number");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.MOTORDIFF_TURN_TOOLTIP)}};
Blockly.Blocks.robActions_motorDiff_turn_for={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.MOTOR_RIGHT,"RIGHT"],[Blockly.Msg.MOTOR_LEFT,"LEFT"]]);this.appendValueInput("POWER").appendField(Blockly.Msg.MOTOR_TURN).appendField(a,"DIRECTION").appendField(Blockly.Msg.MOTOR_SPEED).setCheck("Number");"botnroll"===this.workspace.device||"mbot"===this.workspace.device?this.appendValueInput("DEGREE").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.SENSOR_TIME+
" ms").setCheck("Number"):this.appendValueInput("DEGREE").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.MOTOR_DEGREE).setCheck("Number");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setBlocking(!0);this.setTooltip(Blockly.Msg.MOTORDIFF_TURN_FOR_TOOLTIP)}};
Blockly.Blocks.robActions_motorDiff_curve={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.MOTOR_FOREWARD,"FOREWARD"],[Blockly.Msg.MOTOR_BACKWARD,"BACKWARD"]]);this.appendValueInput("POWER_LEFT").appendField(Blockly.Msg.MOTOR_STEER).appendField(a,"DIRECTION").appendField(Blockly.Msg.MOTOR_SPEED).appendField(Blockly.Msg.MOTOR_LEFT).setCheck("Number");this.appendValueInput("POWER_RIGHT").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.MOTOR_SPEED).appendField(Blockly.Msg.MOTOR_RIGHT).setCheck("Number");
this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.MOTORDIFF_ON_TOOLTIP)}};
Blockly.Blocks.robActions_motorDiff_curve_for={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.MOTOR_FOREWARD,"FOREWARD"],[Blockly.Msg.MOTOR_BACKWARD,"BACKWARDS"]]);this.appendValueInput("POWER_LEFT").appendField(Blockly.Msg.MOTOR_STEER).appendField(a,"DIRECTION").appendField(Blockly.Msg.MOTOR_SPEED).appendField(Blockly.Msg.MOTOR_LEFT).setCheck("Number");this.appendValueInput("POWER_RIGHT").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.MOTOR_SPEED).appendField(Blockly.Msg.MOTOR_RIGHT).setCheck("Number");
"botnroll"===this.workspace.device||"mbot"===this.workspace.device?this.appendValueInput("DISTANCE").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.SENSOR_TIME+" ms").setCheck("Number"):this.appendValueInput("DISTANCE").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.MOTOR_DISTANCE).setCheck("Number");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setBlocking(!0);this.setTooltip(Blockly.Msg.MOTORDIFF_ON_FOR_TOOLTIP)}};
Blockly.Blocks.robActions_display_picture={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.DISPLAY_PICTURE_GLASSES,"OLDGLASSES"],[Blockly.Msg.DISPLAY_PICTURE_EYES_OPEN,"EYESOPEN"],[Blockly.Msg.DISPLAY_PICTURE_EYES_CLOSED,"EYESCLOSED"],[Blockly.Msg.DISPLAY_PICTURE_FLOWERS,"FLOWERS"],[Blockly.Msg.DISPLAY_PICTURE_TACHO,"TACHO"]]);this.appendDummyInput().appendField(Blockly.Msg.DISPLAY_SHOW+" "+Blockly.Msg.DISPLAY_PICTURE).appendField(a,"PICTURE");
this.appendValueInput("X").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.X);this.appendValueInput("Y").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.Y);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.DISPLAY_PICTURE_TOOLTIP)}};
Blockly.Blocks.robActions_display_picture_new={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.DISPLAY_PICTURE_GLASSES,"OLDGLASSES"],[Blockly.Msg.DISPLAY_PICTURE_EYES_OPEN,"EYESOPEN"],[Blockly.Msg.DISPLAY_PICTURE_EYES_CLOSED,"EYESCLOSED"],[Blockly.Msg.DISPLAY_PICTURE_FLOWERS,"FLOWERS"],[Blockly.Msg.DISPLAY_PICTURE_TACHO,"TACHO"]]);this.appendDummyInput().appendField(Blockly.Msg.DISPLAY_SHOW+" "+Blockly.Msg.DISPLAY_PICTURE).appendField(a,"PICTURE");
this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.DISPLAY_PICTURE_TOOLTIP)}};
Blockly.Blocks.robActions_display_text={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);if("arduino"==this.workspace.device){var a=getConfigPorts("lcd");this.dependConfig={type:"lcd",dropDown:a};this.appendDummyInput().appendField(Blockly.Msg.ACTION_LCD,"ACTORTITEL").appendField(a,"ACTORPORT")}"nxt"===this.workspace.device?this.appendValueInput("OUT").appendField(Blockly.Msg.DISPLAY_SHOW+" "+Blockly.Msg.DISPLAY_TEXT).setCheck(["Number","Boolean","String","Colour","Connection"]):this.appendValueInput("OUT").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.DISPLAY_SHOW+
" "+Blockly.Msg.DISPLAY_TEXT);"botnroll"!==this.workspace.device&&"wedo"!==this.workspace.device&&this.appendValueInput("COL").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.DISPLAY_COL);"wedo"!==this.workspace.device&&this.appendValueInput("ROW").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.DISPLAY_ROW);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.DISPLAY_TEXT_TOOLTIP)}};
Blockly.Blocks.robActions_display_text_i2c={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=getConfigPorts("lcdi2c");this.dependConfig={type:"lcdi2c",dropDown:a};"sensebox"===this.workspace.device?this.appendDummyInput().appendField(Blockly.Msg.ACTION_LCDI2C_SENSEBOX,"ACTORTITEL").appendField(a,"ACTORPORT"):this.appendDummyInput().appendField(Blockly.Msg.ACTION_LCDI2C,"ACTORTITEL").appendField(a,"ACTORPORT");this.appendValueInput("OUT").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.DISPLAY_SHOW+
" "+Blockly.Msg.DISPLAY_TEXT);this.appendValueInput("COL").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.DISPLAY_COL);this.appendValueInput("ROW").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.DISPLAY_ROW);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.DISPLAY_TEXT_TOOLTIP)}};
Blockly.Blocks.robActions_display_clear={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);if("arduino"==this.workspace.device){var a=getConfigPorts("lcd");this.dependConfig={type:"lcd",dropDown:a};this.appendDummyInput().appendField(Blockly.Msg.CLEAR).appendField(Blockly.Msg.ACTION_LCD,"ACTORTITEL").setAlign(Blockly.ALIGN_RIGHT).appendField(a,"ACTORPORT")}else this.appendDummyInput().appendField(Blockly.Msg.DISPLAY_CLEAR);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.DISPLAY_CLEAR_TOOLTIP)}};
Blockly.Blocks.robActions_display_clear_i2c={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);if("arduino"===this.workspace.device||"sensebox"===this.workspace.device){var a=getConfigPorts("lcdi2c");this.dependConfig={type:"lcdi2c",dropDown:a};"sensebox"===this.workspace.device?this.appendDummyInput().appendField(Blockly.Msg.CLEAR).appendField(Blockly.Msg.ACTION_LCDI2C_SENSEBOX,"ACTORTITEL").setAlign(Blockly.ALIGN_RIGHT).appendField(a,"ACTORPORT"):this.appendDummyInput().appendField(Blockly.Msg.CLEAR).appendField(Blockly.Msg.ACTION_LCDI2C,
"ACTORTITEL").setAlign(Blockly.ALIGN_RIGHT).appendField(a,"ACTORPORT")}else this.appendDummyInput().appendField(Blockly.Msg.DISPLAY_CLEAR);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.DISPLAY_CLEAR_TOOLTIP)}};
Blockly.Blocks.robActions_play_tone={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);if("arduino"===this.workspace.device||"sensebox"===this.workspace.device){var a=getConfigPorts("buzzer");this.dependConfig={type:"buzzer",dropDown:a};this.appendValueInput("FREQUENCE").appendField(Blockly.Msg.PLAY).appendField(a,"ACTORPORT").appendField(Blockly.Msg.PLAY_FREQUENZ).setCheck("Number")}else if("wedo"===this.workspace.device){this.action="BUZZER";a=[];if(Blockly.Workspace.getByContainer("bricklyDiv"))for(var b=
Blockly.Workspace.getByContainer("bricklyDiv").getAllBlocks(),c=0;c<b.length;c++){var d=b[c].getConfigDecl;d&&(d=d.call(b[c]),"buzzer"===d.type&&a.push([d.name,d.name]))}0===a.length&&a.push([Blockly.Msg.CONFIGURATION_NO_PORT||Blockly.checkMsgKey("CONFIGURATION_NO_PORT"),(Blockly.Msg.CONFIGURATION_NO_PORT||Blockly.checkMsgKey("CONFIGURATION_NO_PORT")).toUpperCase()]);a=new Blockly.FieldDropdown(a);this.dependConfig={type:"buzzer",dropDown:a};this.appendValueInput("FREQUENCE").appendField(Blockly.Msg.PLAY).appendField(a,
"ACTORPORT").appendField(Blockly.Msg.PLAY_FREQUENZ).setCheck("Number")}else this.appendValueInput("FREQUENCE").appendField(Blockly.Msg.PLAY).appendField(Blockly.Msg.PLAY_FREQUENZ).setCheck("Number");this.appendValueInput("DURATION").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.PLAY_DURATION);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setBlocking(!0);this.setTooltip(Blockly.Msg.PLAY_TONE_TOOLTIP)}};
Blockly.Blocks.robActions_play_file={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([["1","0"],["2","1"],["3","2"],["4","3"],["5","4"]]);this.appendDummyInput().appendField(Blockly.Msg.PLAY+" "+Blockly.Msg.PLAY_FILE).appendField(a,"FILE");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setBlocking(!0);this.setTooltip(Blockly.Msg.PLAY_FILE_TOOLTIP)}};
Blockly.Blocks.robActions_play_setVolume={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendValueInput("VOLUME").appendField(Blockly.Msg.SET+" "+Blockly.Msg.PLAY_VOLUME+" "+Blockly.Msg.SENSOR_UNIT_PERCENT).setCheck("Number");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.PLAY_SETVOLUME_TOOLTIP)}};
Blockly.Blocks.robActions_play_getVolume={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendDummyInput().appendField(Blockly.Msg.GET+" "+Blockly.Msg.PLAY_VOLUME);this.setOutput(!0,"Number");this.setTooltip(Blockly.Msg.PLAY_GETVOLUME_TOOLTIP)}};
Blockly.Blocks.robActions_brickLight_on={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.BRICKLIGHT_GREEN,"GREEN"],[Blockly.Msg.BRICKLIGHT_ORANGE,"ORANGE"],[Blockly.Msg.BRICKLIGHT_RED,"RED"]]);if("botnroll"===this.workspace.device||"arduino"===this.workspace.device||"calliope"===this.workspace.device||"sensebox"===this.workspace.device||"festobionic"===this.workspace.device)var b=new Blockly.FieldDropdown([[Blockly.Msg.BRICKLIGHT_ON,"ON"],[Blockly.Msg.OFF,
"OFF"]]);else b=new Blockly.FieldDropdown([[Blockly.Msg.BRICKLIGHT_ON,"ON"],[Blockly.Msg.BRICKLIGHT_FLASH,"FLASH"],[Blockly.Msg.BRICKLIGHT_DOUBLE_FLASH,"DOUBLE_FLASH"]]),this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.BRICKLIGHT_COLOR).appendField(a,"SWITCH_COLOR");"arduino"===this.workspace.device||"calliope"===this.workspace.device||"sensebox"===this.workspace.device||"festobionic"===this.workspace.device?("calliope"===this.workspace.device?a=new Blockly.FieldDropdown([[Blockly.Msg.CB_LEFT,
"1"],[Blockly.Msg.CB_RIGHT,"2"],[Blockly.Msg.CB_BOTH,"3"]]):(a=getConfigPorts("led"),this.dependConfig={type:"led",dropDown:a}),this.appendDummyInput().appendField(Blockly.Msg.LED_ON).setAlign(Blockly.ALIGN_RIGHT).appendField(a,"ACTORPORT").appendField(b,"SWITCH_BLINK")):"botnroll"===this.workspace.device?this.appendDummyInput().appendField(Blockly.Msg.BRICKLIGHT).setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.MOD).appendField(b,"SWITCH_BLINK"):this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.MOD).appendField(b,
"SWITCH_BLINK");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.BRICKLIGHT_ON_TOOLTIP)}};
Blockly.Blocks.robActions_led_on={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.action="LED";var a=[];if(Blockly.Workspace.getByContainer("bricklyDiv"))for(var b=Blockly.Workspace.getByContainer("bricklyDiv").getAllBlocks(),c=0;c<b.length;c++){var d=b[c].getConfigDecl;d&&(d=d.call(b[c]),"led"===d.type&&a.push([d.name,d.name]))}0===a.length&&a.push([Blockly.Msg.CONFIGURATION_NO_PORT||Blockly.checkMsgKey("CONFIGURATION_NO_PORT"),(Blockly.Msg.CONFIGURATION_NO_PORT||Blockly.checkMsgKey("CONFIGURATION_NO_PORT")).toUpperCase()]);
if("arduino"===this.workspace.device||"sensebox"===this.workspace.device){var e=getConfigPorts("rgbled");this.dependConfig={type:"rgbled",dropDown:e}}else"wedo"===this.workspace.device&&(e=new Blockly.FieldDropdown(a),this.dependConfig={type:"led",dropDown:e});"mbot"===this.workspace.device?e=new Blockly.FieldDropdown([[Blockly.Msg.LEFT,"2"],[Blockly.Msg.RIGHT,"1"]]):"edison"===this.workspace.device&&(e=new Blockly.FieldDropdown([[Blockly.Msg.LEFT,"LLED"],[Blockly.Msg.RIGHT,"RLED"]]));"edison"===
this.workspace.device?this.appendDummyInput("COLOR").appendField(Blockly.Msg.LED_ON).appendField(e,"ACTORPORT"):this.appendValueInput("COLOR").appendField(Blockly.Msg.LED_ON).appendField(e,"ACTORPORT").appendField(Blockly.Msg.BRICKLIGHT_COLOR).setCheck("Colour");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.LED_ON_TOOLTIP)}};
Blockly.Blocks.robActions_led_off={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.action="LED";var a=[];if(Blockly.Workspace.getByContainer("bricklyDiv"))for(var b=Blockly.Workspace.getByContainer("bricklyDiv").getAllBlocks(),c=0;c<b.length;c++){var d=b[c].getConfigDecl;d&&(d=d.call(b[c]),"led"===d.type&&a.push([d.name,d.name]))}0===a.length&&a.push([Blockly.Msg.CONFIGURATION_NO_PORT||Blockly.checkMsgKey("CONFIGURATION_NO_PORT"),(Blockly.Msg.CONFIGURATION_NO_PORT||Blockly.checkMsgKey("CONFIGURATION_NO_PORT")).toUpperCase()]);
if("arduino"===this.workspace.device||"sensebox"===this.workspace.device){var e=getConfigPorts("rgbled");this.dependConfig={type:"rgbled",dropDown:e}}else"wedo"===this.workspace.device&&(e=new Blockly.FieldDropdown(a),this.dependConfig={type:"led",dropDown:e});"mbot"===this.workspace.device?e=new Blockly.FieldDropdown([[Blockly.Msg.LEFT,"2"],[Blockly.Msg.RIGHT,"1"]]):"edison"===this.workspace.device&&(e=new Blockly.FieldDropdown([[Blockly.Msg.LEFT,"LLED"],[Blockly.Msg.RIGHT,"RLED"]]));this.appendDummyInput().appendField(Blockly.Msg.LED_OFF).appendField(e,
"ACTORPORT");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.LED_OFF_TOOLTIP)}};
Blockly.Blocks.robActions_sensorLight_on={init:function(){var a=new Blockly.FieldDropdown([["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]]);this.setColour(Blockly.CAT_ACTION_RGB);var b=new Blockly.FieldDropdown([[Blockly.Msg.BRICKLIGHT_RED,"RED"],[Blockly.Msg.BRICKLIGHT_GREEN,"GREEN"],[Blockly.Msg.BRICKLIGHT_BLUE,"BLUE"]]),c=new Blockly.FieldDropdown([[Blockly.Msg.ON,"ON"],[Blockly.Msg.OFF,"OFF"]]);this.appendDummyInput().appendField(Blockly.Msg.SET).appendField(Blockly.Msg.SENSOR_COLOUR);
this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.BRICKLIGHT_COLOR).appendField(b,"SWITCH_COLOR");this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.MOD).appendField(c,"SWITCH_STATE");this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField(a,"SENSORPORT");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.BRICKLIGHT_ON_TOOLTIP)}};
Blockly.Blocks.robActions_brickLight_off={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendDummyInput().appendField(Blockly.Msg.BRICKLIGHT).appendField(Blockly.Msg.OFF);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.BRICKLIGHT_OFF_TOOLTIP)}};
Blockly.Blocks.robActions_brickLight_reset={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendDummyInput().appendField(Blockly.Msg.SENSOR_RESET).appendField(Blockly.Msg.BRICKLIGHT).appendField(Blockly.Msg.SENSOR_RESET_II);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.BRICKLIGHT_RESET_TOOLTIP)}};
Blockly.Blocks.robActions_set_relay={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.ON,"OFF"],[Blockly.Msg.OFF,"ON"]]),b=getConfigPorts("relay");this.dependConfig={type:"relay",dropDown:b};"arduino"==this.workspace.device?this.appendDummyInput().appendField(Blockly.Msg.SET_RELAY_ARDUINO).appendField(b,"ACTORPORT").appendField(a,"RELAYSTATE"):this.appendDummyInput().appendField(Blockly.Msg.SET_RELAY).appendField(b,"ACTORPORT").appendField(a,"RELAYSTATE");
this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.LED_ON_TOOLTIP)}};Blockly.Blocks.robActions_serial_print={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendValueInput("OUT").appendField(Blockly.Msg.ACTION_SERIAL_PRINT||"ACTION_SERIAL_PRINT").setCheck(["Number","Boolean","String","Colour"]);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.ACTION_SERIAL_PRINT_TOOLTIP)}};
Blockly.Blocks.robActions_write_pin={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.dropDownPorts=getConfigPorts("analogin");var a=this,b=new Blockly.FieldDropdown([[Blockly.Msg.MODE_DIGITAL,"DIGITAL"],[Blockly.Msg.MODE_ANALOG,"ANALOG"]],function(b){b&&this.sourceBlock_.getFieldValue("MODE")!==b&&a.updatePorts(b)});this.dependConfig={type:"digitalin",dropDown:this.dropDownPorts};this.appendValueInput("VALUE").appendField(Blockly.Msg.PIN_WRITE).appendField(b,"MODE").appendField(Blockly.Msg.ACTION_IN).appendField(this.dropDownPorts,
"ACTORPORT").setCheck("Number");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(function(){return Blockly.Msg["ACTOR_"+a.getFieldValue("MODE")+"IN_TOOLTIP"]||"ACTOR_"+a.getFieldValue("MODE")+"IN_TOOLTIP"});this.updatePorts("DIGITAL")},updatePorts:function(a){a=a.toLowerCase()+"in";var b=getConfigPorts(a);this.dependConfig.type=a;this.dropDownPorts.menuGenerator_=b.menuGenerator_;this.dropDownPorts.arrow_&&this.dropDownPorts.arrow_.replaceChild(document.createTextNode(" "),
this.dropDownPorts.arrow_.childNodes[0]);this.dropDownPorts.arrow_&&1<this.dropDownPorts.menuGenerator_.length&&this.dropDownPorts.arrow_.replaceChild(document.createTextNode(" "+Blockly.FieldDropdown.ARROW_CHAR),this.dropDownPorts.arrow_.childNodes[0]);this.dropDownPorts.setValue(this.dropDownPorts.menuGenerator_[0][0])}};
Blockly.Blocks.robActions_pin_set_pull={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);new Blockly.FieldDropdown([[Blockly.Msg.PIN_PULL_UP,"UP"],[Blockly.Msg.PIN_PULL_DOWN,"DOWN"],[Blockly.Msg.PIN_PULL_NONE,"NONE"]]);var a=new Blockly.FieldDropdown(Blockly.Blocks.robConfigDefinitions.pinsDigital[this.workspace.subDevice]());this.appendDummyInput().appendField(Blockly.Msg.SET+" "+Blockly.Msg.PIN_PULL).appendField(Blockly.Msg.PIN_PULL_UP).appendField(Blockly.Msg.ON+" "+Blockly.Msg.SENSOR_PIN).appendField(a,
"PIN_PORT");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.ACTION_PIN_SET_PULL_TOOLTIP)}};
Blockly.Blocks.robActions_sendData={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.INCREMENT=1;this.DECREMENT=-1;this.appendDummyInput().appendField(Blockly.Msg.SEND_DATA_TO).appendField(new Blockly.FieldDropdown([[Blockly.Msg.SEND_DATA_SENSEMAP,"SENSEMAP"],[Blockly.Msg.ACTION_SDCARD,"SDCARD"]]),"DESTINATION");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setMutatorPlus(new Blockly.MutatorPlus(this));this.setTooltip(Blockly.Msg.SEND_DATA_TO_OSM_TOOLTIP);this.connectedSensorsCount=
1;this.generateSensorInputs_(this.connectedSensorsCount)},getNames_:function(){var a=[];if(Blockly.Workspace.getByContainer("bricklyDiv"))for(var b=Blockly.Workspace.getByContainer("bricklyDiv").getAllBlocks(),c=0;c<b.length;c++){var d=b[c].getPhenomena;if(d){d=d.call(b[c]);for(var e=0;e<d.length;e++)""!==d[e]&&a.push([d[e],d[e]])}}0===a.length&&a.push([Blockly.Msg.CONFIGURATION_NO_PHENOMENON||Blockly.checkMsgKey("CONFIGURATION_NO_PHENOMENON"),"NO_PHENOMENON"]);return a},setPhenomena:function(a,b){for(var c=
[],d=0;d<b.length;d++)""!==b[d]&&c.push([b[d],b[d]]);0===c.length&&c.push([Blockly.Msg.CONFIGURATION_NO_PHENOMENON||Blockly.checkMsgKey("CONFIGURATION_NO_PHENOMENON"),"NO_PHENOMENON"]);for(d=0;d<this.connectedSensorsCount;d++){var e=this.getField("PHEN"+d),f=e.getValue(),g;for(g=0;g<e.menuGenerator_.length;g++){if(!c[g]){e.menuGenerator_[g][0]===f?(e.menuGenerator_.splice(g,1),e.setValue(e.menuGenerator_[0][0])):e.menuGenerator_.splice(g,1);break}if(e.menuGenerator_[g][0]!==c[g][0]){e.menuGenerator_[g][0]===
f?(e.menuGenerator_[g]=c[g],e.setValue(e.menuGenerator_[g][0])):e.menuGenerator_[g]=c[g];break}}c[e.menuGenerator_.length]&&e.menuGenerator_.push(c[e.menuGenerator_.length])}1<c.length?e.arrow_.replaceChild(document.createTextNode(e.sourceBlock_.RTL?Blockly.FieldDropdown.ARROW_CHAR+" ":" "+Blockly.FieldDropdown.ARROW_CHAR),e.arrow_.childNodes[0]):e.arrow_.replaceChild(document.createTextNode(""),e.arrow_.childNodes[0]);this.render()},mutationToDom:function(){var a=document.createElement("mutation");
a.setAttribute("items",this.connectedSensorsCount);return a},domToMutation:function(a){a=parseInt(a.getAttribute("items"),10);new Blockly.FieldDropdown(this.getNames_());this.connectedSensorsCount=a;this.generateSensorInputs_(this.connectedSensorsCount)},generateSensorInputs_:function(a){for(var b=0;b<a;b++)this.removeInput("ADD"+b);for(b=0;b<a;b++)this.appendSensorInput_(b,new Blockly.FieldDropdown(this.getNames_()))},appendSensorInput_:function(a,b){this.appendValueInput("ADD"+a).setAlign(Blockly.ALIGN_RIGHT).setCheck("Number").appendField(Blockly.Msg.BRICK_PHENOMENON).appendField(b,
"PHEN"+a)},updateShape_:function(a){Blockly.dragMode_=Blockly.DRAG_NONE;switch(a){case this.INCREMENT:1==this.connectedSensorsCount&&(this.setMutatorMinus(new Blockly.MutatorMinus(this)),this.render());a=new Blockly.FieldDropdown(this.getNames_());this.appendSensorInput_(this.connectedSensorsCount,a);this.connectedSensorsCount++;break;case this.DECREMENT:this.connectedSensorsCount--;if(a=this.getInputTargetBlock("ADD"+this.connectedSensorsCount))a.unplug(),a.bumpNeighbours_();this.removeInput("ADD"+
this.connectedSensorsCount);break;default:throw"updateShape accepts only mutator plus/minus command for this block";}1==this.connectedSensorsCount&&(this.mutatorMinus.dispose(),this.mutatorMinus=null,this.render())}};
Blockly.Blocks.robActions_plot_point={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=getConfigPorts("lcdi2c");this.dependConfig={type:"lcdi2c",dropDown:a};this.appendValueInput("VALUE").appendField(Blockly.Msg.ACTION_PLOT_POINT).appendField(a,"ACTORPORT").appendField(Blockly.Msg.SENSOR_VALUE).setCheck("Number");this.appendValueInput("TICKMARK").appendField(Blockly.Msg.ACTION_PLOT_TICKMARK).setAlign(Blockly.ALIGN_RIGHT).setCheck("Number");this.setPreviousStatement(!0);this.setNextStatement(!0);
this.setTooltip(Blockly.Msg.ACTION_PLOT_POINT_TOOLTIP)}};Blockly.Blocks.robActions_plot_clear={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=getConfigPorts("lcdi2c");this.dependConfig={type:"lcdi2c",dropDown:a};this.appendDummyInput().appendField(Blockly.Msg.ACTION_PLOT_CLEAR).appendField(a,"ACTORPORT");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.ACTION_PLOT_CLEAR_TOOLTIP)}};
Blockly.Blocks.robActions_debug={init:function(){this.setColour("#646464");this.appendValueInput("OUT").appendField("debug");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip("Debug any value or expression. The output is dependent on the system: simulation -> console; real systems -> write to serial or print")}};
Blockly.Blocks.robActions_assert={init:function(){this.setColour("#646464");this.appendValueInput("OUT").appendField("assert").appendField(new Blockly.FieldTextInput(""),"TEXT").setCheck("Boolean");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip("Assert an expression and optional supply a custom label for the assertion.")},onchange:function(a){this.workspace&&2!=Blockly.Block.dragMode_&&(a=this.getInputTargetBlock("OUT"))&&"logic_compare"!==a.type&&(a.unplug(),a.bumpNeighbours_())}};
Blockly.Blocks.robActions_eval_expr={init:function(){this.setColour("#646464");this.type_=Blockly.TYPE_DROPDOWN(this.workspace.device);this.appendDummyInput().appendField(Blockly.Msg.ACTION_EVAL).appendField(new Blockly.FieldTextInput("eg a + b",this.validate),"EXPRESSION").appendField(Blockly.Msg.ACTION_EVAL_AS).appendField(this.type_,"TYPE");this.setOutput(!0,"Number");this.setTooltip("Evals any expression and return the result.")},validate:function(a){return a},mutationToDom:function(){var a=document.createElement("mutation");
a.setAttribute("type",this.type_);return a},domToMutation:function(a){a=a.getAttribute("type");this.updateType_(a)},updateType_:function(a){this.workspace&&2!=Blockly.Block.dragMode_&&(this.type_=a,this.setOutput(!0,a))}};Blockly.Blocks.naoActions={};
Blockly.Blocks.naoActions_applyPosture={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.NAO_POSTURE_REST,"REST"],[Blockly.Msg.NAO_POSTURE_CROUCH,"CROUCH"],[Blockly.Msg.NAO_POSTURE_STAND,"STAND"],[Blockly.Msg.NAO_POSTURE_STANDINIT,"STANDINIT"],[Blockly.Msg.NAO_POSTURE_STANDZERO,"STANDZERO"],[Blockly.Msg.NAO_POSTURE_SIT,"SIT"],[Blockly.Msg.NAO_POSTURE_SITRELAX,"SITRELAX"],[Blockly.Msg.NAO_POSTURE_LYINGBELLY,"LYINGBELLY"],[Blockly.Msg.NAO_POSTURE_LYINGBACK,
"LYINGBACK"]]);this.appendDummyInput().appendField(Blockly.Msg.NAO_APPLYPOSTURE).appendField(a,"DIRECTION");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.NAO_APPLYPOSTURE_TOOLTIP)}};
Blockly.Blocks.naoActions_stiffness={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.NAO_PART_BODY,"BODY"],[Blockly.Msg.NAO_PART_HEAD,"HEAD"],[Blockly.Msg.NAO_PART_ARMS,"ARMS"],[Blockly.Msg.LEFT+" "+Blockly.Msg.NAO_PART_ARM,"LEFTARM"],[Blockly.Msg.RIGHT+" "+Blockly.Msg.NAO_PART_ARM,"RIGHTARM"],[Blockly.Msg.NAO_PART_LEGS,"LEGS"],[Blockly.Msg.LEFT+" "+Blockly.Msg.NAO_PART_LEG,"LEFTLEG"],[Blockly.Msg.RIGHT+" "+Blockly.Msg.NAO_PART_LEG,"RIHTLEG"]]),
b=new Blockly.FieldDropdown([[Blockly.Msg.ON,"ON"],[Blockly.Msg.OFF,"OFF"]]);this.setInputsInline(!0);this.appendDummyInput().appendField(Blockly.Msg.NAO_STIFFNESS).appendField(a,"PART").appendField(b,"MODE");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.NAO_STIFFNESS_TOOLTIP)}};
Blockly.Blocks.naoActions_autonomous={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.ON,"ON"],[Blockly.Msg.OFF,"OFF"]]);this.setInputsInline(!0);this.appendDummyInput().appendField(Blockly.Msg.NAO_AUTONOMOUS).appendField(a,"MODE");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.NAO_AUTONOMOUS_TOOLTIP)}};
Blockly.Blocks.naoActions_moveJoint={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.PORT_HEAD+" "+Blockly.Msg.SLOT_YAW,"HEADYAW"],[Blockly.Msg.PORT_HEAD+" "+Blockly.Msg.SLOT_PITCH,"HEADPITCH"],[Blockly.Msg.PORT_SHOULDER+" "+Blockly.Msg.SLOT_LEFT_PITCH,"LSHOULDERPITCH"],[Blockly.Msg.PORT_SHOULDER+" "+Blockly.Msg.SLOT_RIGHT_PITCH,"RSHOULDERPITCH"],[Blockly.Msg.PORT_SHOULDER+" "+Blockly.Msg.SLOT_LEFT_ROLL,"LSHOULDERROLL"],[Blockly.Msg.PORT_SHOULDER+
" "+Blockly.Msg.SLOT_RIGHT_ROLL,"RSHOULDERROLL"],[Blockly.Msg.PORT_ELBOW+" "+Blockly.Msg.SLOT_LEFT_YAW,"LELBOWYAW"],[Blockly.Msg.PORT_ELBOW+" "+Blockly.Msg.SLOT_RIGHT_YAW,"RELBOWYAW"],[Blockly.Msg.PORT_ELBOW+" "+Blockly.Msg.SLOT_LEFT_ROLL,"LELBOWROLL"],[Blockly.Msg.PORT_ELBOW+" "+Blockly.Msg.SLOT_RIGHT_ROLL,"RELBOWROLL"],[Blockly.Msg.PORT_WRIST+" "+Blockly.Msg.SLOT_LEFT_YAW,"LWRISTYAW"],[Blockly.Msg.PORT_WRIST+" "+Blockly.Msg.SLOT_RIGHT_YAW,"RWRISTYAW"],[Blockly.Msg.PORT_HAND+" "+Blockly.Msg.LEFT,
"LHAND"],[Blockly.Msg.PORT_HAND+" "+Blockly.Msg.RIGHT,"RHAND"],[Blockly.Msg.PORT_HIP+" "+Blockly.Msg.SLOT_LEFT_YAW_PITCH,"LHIPYAWPITCH"],[Blockly.Msg.PORT_HIP+" "+Blockly.Msg.SLOT_RIGHT_YAW_PITCH,"RHIPYAWPITCH"],[Blockly.Msg.PORT_HIP+" "+Blockly.Msg.SLOT_LEFT_ROLL,"LHIPROLL"],[Blockly.Msg.PORT_HIP+" "+Blockly.Msg.SLOT_RIGHT_ROLL,"RHIPROLL"],[Blockly.Msg.PORT_HIP+" "+Blockly.Msg.SLOT_LEFT_PITCH,"LHIPPITCH"],[Blockly.Msg.PORT_HIP+" "+Blockly.Msg.SLOT_RIGHT_PITCH,"RHIPPITCH"],[Blockly.Msg.PORT_KNEE+
" "+Blockly.Msg.SLOT_LEFT_PITCH,"LKNEEPITCH"],[Blockly.Msg.PORT_KNEE+" "+Blockly.Msg.SLOT_RIGHT_PITCH,"RKNEEPITCH"],[Blockly.Msg.PORT_ANKLE+" "+Blockly.Msg.SLOT_LEFT_PITCH,"LANKLEPITCH"],[Blockly.Msg.PORT_ANKLE+" "+Blockly.Msg.SLOT_RIGHT_PITCH,"RANKLEPITCH"],[Blockly.Msg.PORT_ANKLE+" "+Blockly.Msg.SLOT_LEFT_ROLL,"LANKLEROLL"],[Blockly.Msg.PORT_ANKLE+" "+Blockly.Msg.SLOT_RIGHT_ROLL,"RANKLEROLL"]]),b=new Blockly.FieldDropdown([[Blockly.Msg.NAO_ABSOLUTE,"ABSOLUTE"],[Blockly.Msg.NAO_RELATIVE,"RELATIVE"]]);
this.appendValueInput("POWER").appendField(Blockly.Msg.NAO_MOVE).appendField(a,"joint").appendField(b,"MODE").appendField(Blockly.Msg.SENSOR_UNIT_DEGREE).setCheck("Number");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.NAO_MOVEJOINT_TOOLTIP)}};
Blockly.Blocks.naoActions_hand={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.MOTOR_RIGHT,"RIGHT"],[Blockly.Msg.MOTOR_LEFT,"LEFT"]]),b=new Blockly.FieldDropdown([[Blockly.Msg.MODE_OPEN,"OPEN"],[Blockly.Msg.MODE_CLOSE,"CLOSE"]]);this.appendDummyInput().appendField(Blockly.Msg.NAO_HAND).appendField(a,"SIDE").appendField(b,"MODE");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.NAO_HAND_TOOLTIP)}};
Blockly.Blocks.naoActions_walk={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.MOTOR_FOREWARD,"FOREWARD"],[Blockly.Msg.MOTOR_BACKWARD,"BACKWARD"]]);this.appendValueInput("POWER").appendField(Blockly.Msg.NAO_WALK).appendField(a,"DIRECTION").appendField(Blockly.Msg.MOTOR_DISTANCE).setCheck("Number");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.NAO_WALK_TOOLTIP)}};
Blockly.Blocks.naoActions_turn={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.MOTOR_LEFT,"LEFT"],[Blockly.Msg.MOTOR_RIGHT,"RIGHT"]]);this.appendValueInput("POWER").appendField(Blockly.Msg.MOTOR_TURN).appendField(a,"DIRECTION").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.SENSOR_UNIT_DEGREE).setCheck("Number");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.NAO_TURN_TOOLTIP)}};
Blockly.Blocks.naoActions_walkTo={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendDummyInput().appendField(Blockly.Msg.NAO_WALKTO);this.appendValueInput("X").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.X);this.appendValueInput("Y").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.Y);this.appendValueInput("Theta").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.THETA);this.setPreviousStatement(!0);this.setNextStatement(!0);
this.setTooltip(Blockly.Msg.NAO_WALKTO_TOOLTIP)}};
Blockly.Blocks.naoActions_walk_async={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendDummyInput().appendField(Blockly.Msg.NAO_WALK);this.appendValueInput("XSpeed").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.X+" "+Blockly.Msg.MOTOR_SPEED);this.appendValueInput("YSpeed").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.Y+" "+Blockly.Msg.MOTOR_SPEED);this.appendValueInput("ZSpeed").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.MOTOR_TURN+" "+
Blockly.Msg.MOTOR_SPEED);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.NAO_WALK_ASYNC_TOOLTIP)}};Blockly.Blocks.naoActions_stop={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.setInputsInline(!0);this.appendDummyInput().appendField(Blockly.Msg.NAO_STOP);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.NAO_STOP_TOOLTIP)}};
Blockly.Blocks.naoActions_animation={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.NAO_TAI_CHI,"TAICHI"],[Blockly.Msg.NAO_WAVE,"WAVE"],[Blockly.Msg.NAO_BLINK,"BLINK"],[Blockly.Msg.NAO_WIPE_FOREHEAD,"WIPEFOREHEAD"]]);this.appendDummyInput().appendField(Blockly.Msg.NAO_PERFORM).appendField(a,"MOVE");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.NAO_ANIMATION_TOOLTIP)}};
Blockly.Blocks.naoActions_pointLookAt={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.NAO_FRAME_TORSO,"0"],[Blockly.Msg.NAO_FRAME_WORLD,"1"],[Blockly.Msg.MENU_ROBOT,"2"]]),b=new Blockly.FieldDropdown([[Blockly.Msg.NAO_POINTAT,"0"],[Blockly.Msg.NAO_LOOKAT,"1"]]);this.appendDummyInput().appendField(b,"MODE");this.appendDummyInput().appendField(Blockly.Msg.NAO_FRAME).appendField(a,"DIRECTION");this.appendValueInput("X").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.X);
this.appendValueInput("Y").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.Y);this.appendValueInput("Z").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.Z);this.appendValueInput("Speed").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.MOTOR_SPEED);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.NAO_POINTLOOKAT_TOOLTIP)}};
Blockly.Blocks.naoActions_playFile={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendValueInput("OUT").appendField(Blockly.Msg.NAO_PLAY_FILE);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.NAO_PLAYFILE_TOOLTIP)}};
Blockly.Blocks.naoActions_setVolume={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendValueInput("VOLUME").appendField(Blockly.Msg.SET+" "+Blockly.Msg.PLAY_VOLUME).setCheck("Number");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.NAO_SETVOLUME_TOOLTIP)}};
Blockly.Blocks.naoActions_getVolume={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendDummyInput().appendField(Blockly.Msg.GET+" "+Blockly.Msg.PLAY_VOLUME);this.setOutput(!0,"Number");this.setTooltip(Blockly.Msg.NAO_GETVOLUME_TOOLTIP)}};Blockly.Blocks.naoActions_getLanguage={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendDummyInput().appendField(Blockly.Msg.GET+" "+Blockly.Msg.LANGUAGE);this.setOutput(!0,"String");this.setTooltip(Blockly.Msg.NAO_GETLANGUAGE_TOOLTIP)}};
Blockly.Blocks.naoActions_takePicture={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.NAO_CAMERA_TOP,"0"],[Blockly.Msg.NAO_CAMERA_BOTTOM,"1"]]);this.appendDummyInput().appendField(Blockly.Msg.NAO_TAKEPICTURE);this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.NAO_CAMERA).appendField(a,"CAMERA");this.appendValueInput("FILENAME").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.NAO_FILENAME);this.setTooltip(Blockly.Msg.NAO_TAKEPICTURE_TOOLTIP);
this.setPreviousStatement(!0);this.setNextStatement(!0)}};
Blockly.Blocks.naoActions_recordVideo={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.NAO_QQVGA,"0"],[Blockly.Msg.NAO_QVGA,"1"],[Blockly.Msg.NAO_VGA,"2"]]),b=new Blockly.FieldDropdown([[Blockly.Msg.NAO_CAMERA_TOP,"0"],[Blockly.Msg.NAO_CAMERA_BOTTOM,"1"]]);this.appendDummyInput().appendField(Blockly.Msg.NAO_RECORDVIDEO);this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.NAO_RESOLUTION).appendField(a,"RESOLUTION");this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.NAO_CAMERA).appendField(b,
"CAMERA");this.appendValueInput("DURATION").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.PLAY_DURATION).setCheck("Number");this.appendValueInput("FILENAME").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.NAO_FILENAME);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.NAO_RECORDVIDEO_TOOLTIP)}};
Blockly.Blocks.naoActions_rgbLeds={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.NAO_LED_EYES,"EYES"],[Blockly.Msg.MOTOR_LEFT+" "+Blockly.Msg.NAO_LED_EYE,"LEFTEYE"],[Blockly.Msg.MOTOR_RIGHT+" "+Blockly.Msg.NAO_LED_EYE,"RIGHTEYE"],[Blockly.Msg.MOTOR_LEFT+" "+Blockly.Msg.NAO_LED_FOOT,"LEFTFOOT"],[Blockly.Msg.MOTOR_RIGHT+" "+Blockly.Msg.NAO_LED_FOOT,"RIGHTFOOT"],[Blockly.Msg.NAO_LED_ALL,"ALL"]]);this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.NAO_LED).appendField(a,
"LED");this.appendValueInput("COLOR").setCheck("Colour").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.BRICKLIGHT_COLOR);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.NAO_LED_TOOLTIP)}};
Blockly.Blocks.naoActions_setIntensity={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.NAO_LED_HEAD,"HEAD"],[Blockly.Msg.NAO_LED_EARS,"EARS"],[Blockly.Msg.MOTOR_LEFT+" "+Blockly.Msg.NAO_LED_EAR,"LEFTEAR"],[Blockly.Msg.MOTOR_RIGHT+" "+Blockly.Msg.NAO_LED_EAR,"RIGHTEAR"],[Blockly.Msg.NAO_LED_CHEST,"CHEST"]]);this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.NAO_LED).appendField(a,"LED");this.appendValueInput("INTENSITY").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.NAO_INTENSITY);
this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.NAO_SETINTENSITY_TOOLTIP)}};
Blockly.Blocks.naoActions_ledOff={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.NAO_LED_EYES,"EYES"],[Blockly.Msg.MOTOR_LEFT+" "+Blockly.Msg.NAO_LED_EYE,"LEFTEYE"],[Blockly.Msg.MOTOR_RIGHT+" "+Blockly.Msg.NAO_LED_EYE,"RIGHTEYE"],[Blockly.Msg.MOTOR_LEFT+" "+Blockly.Msg.NAO_LED_FOOT,"LEFTFOOT"],[Blockly.Msg.MOTOR_RIGHT+" "+Blockly.Msg.NAO_LED_FOOT,"RIGHTFOOT"],[Blockly.Msg.NAO_LED_EARS,"EARS"],[Blockly.Msg.MOTOR_LEFT+" "+Blockly.Msg.NAO_LED_EAR,
"LEFTEAR"],[Blockly.Msg.MOTOR_RIGHT+" "+Blockly.Msg.NAO_LED_EAR,"RIGHTEAR"],[Blockly.Msg.NAO_LED_CHEST,"CHEST"],[Blockly.Msg.NAO_LED_HEAD,"HEAD"],[Blockly.Msg.NAO_LED_ALL,"ALL"]]);this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.NAO_LED).appendField(a,"LED");this.setInputsInline(!0);this.appendDummyInput().appendField(Blockly.Msg.OFF);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.NAO_LEDOFF_TOOLTIP)}};
Blockly.Blocks.naoActions_ledReset={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.NAO_LED_EYES,"EYES"],[Blockly.Msg.MOTOR_LEFT+" "+Blockly.Msg.NAO_LED_EYE,"LEFTEYE"],[Blockly.Msg.MOTOR_RIGHT+" "+Blockly.Msg.NAO_LED_EYE,"RIGHTEYE"],[Blockly.Msg.MOTOR_LEFT+" "+Blockly.Msg.NAO_LED_FOOT,"LEFTFOOT"],[Blockly.Msg.MOTOR_RIGHT+" "+Blockly.Msg.NAO_LED_FOOT,"RIGHTFOOT"],[Blockly.Msg.NAO_LED_EARS,"EARS"],[Blockly.Msg.MOTOR_LEFT+" "+Blockly.Msg.NAO_LED_EAR,
"LEFTEAR"],[Blockly.Msg.MOTOR_RIGHT+" "+Blockly.Msg.NAO_LED_EAR,"RIGHTEAR"],[Blockly.Msg.NAO_LED_CHEST,"CHEST"],[Blockly.Msg.NAO_LED_HEAD,"HEAD"],[Blockly.Msg.NAO_LED_ALL,"ALL"]]);this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.NAO_LED).appendField(a,"LED");this.setInputsInline(!0);this.appendDummyInput().appendField(Blockly.Msg.SENSOR_RESET);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.NAO_LEDRESET_TOOLTIP)}};
Blockly.Blocks.naoActions_randomEyes={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendValueInput("DURATION").appendField(Blockly.Msg.NAO_RANDOMEYES+" "+Blockly.Msg.PLAY_DURATION).setCheck("Number");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.NAO_RANDOMEYES_TOOLTIP)}};
Blockly.Blocks.naoActions_rasta={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendValueInput("DURATION").appendField(Blockly.Msg.NAO_RASTA+" "+Blockly.Msg.PLAY_DURATION).setCheck("Number");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.NAO_RASTA_TOOLTIP)}};
Blockly.Blocks.naoActions_learnFace={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendValueInput("NAME").appendField(Blockly.Msg.NAO_LEARNFACEOF);this.setOutput(!0,"Boolean");this.setTooltip(Blockly.Msg.NAO_LEARNFACE_TOOLTIP)}};Blockly.Blocks.naoActions_forgetFace={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendValueInput("NAME").appendField(Blockly.Msg.NAO_FORGETFACEOF);this.setNextStatement(!0);this.setPreviousStatement(!0);this.setTooltip(Blockly.Msg.NAO_FORGETFACE_TOOLTIP)}};Blockly.Blocks.mbedControls={};
Blockly.Blocks.mbedControls_start={init:function(){this.setColour(Blockly.CAT_ACTIVITY_RGB);this.appendDummyInput().appendField(Blockly.Msg.START_PROGRAM);this.declare_=!1;this.setPreviousStatement(!1);this.setNextStatement(!0);this.setDeletable(!1);this.setMutatorPlus(new Blockly.MutatorPlus(["mbedControls_start"]));this.setTooltip(Blockly.Msg.START_TOOLTIP)},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("declare",1==this.declare_);return a},domToMutation:function(a){if(this.declare_=
"false"!=a.getAttribute("declare"))this.appendStatementInput("ST"),this.getInput("ST").connection.setCheck("declaration_only")},updateShape_:function(a){if(1==a){this.declare_||(this.appendStatementInput("ST"),this.getInput("ST").connection.setCheck("declaration_only"),this.declare_=!0);a=this.workspace.newBlock("robGlobalVariables_declare");a.initSvg();a.render();var b=a.getInput("VALUE"),c=this.workspace.newBlock("math_number");c.initSvg();c.render();b.connection.connect(c.outputConnection);if(this.getInput("ST").connection.targetConnection){if(c=
this.getInput("ST").connection.targetConnection.sourceBlock_)for(;c.getNextBlock();)c=c.getNextBlock();c.setNext(!0);b=c.nextConnection}else b=this.getInput("ST").connection;b.connect(a.previousConnection)}else-1==a&&(this.removeInput("ST"),this.declare_=!1)}};
Blockly.Blocks.mbedControls_wait_for={init:function(){this.setColour(Blockly.CAT_CONTROL_RGB);this.appendValueInput("WAIT0").appendField(Blockly.Msg.WAIT_UNTIL).setCheck("Boolean");this.setPreviousStatement(!0);this.setNextStatement(!0);this.waitCount_=0;this.setBlocking(!0);this.setMutatorPlus(new Blockly.MutatorPlus(this));this.setTooltip(Blockly.Msg.WAIT_FOR_TOOLTIP)},mutationToDom:function(){if(!this.waitCount_)return null;var a=document.createElement("mutation");this.waitCount_&&a.setAttribute("wait",
this.waitCount_);return a},domToMutation:function(a){this.waitCount_=parseInt(a.getAttribute("wait"),10);for(a=1;a<=this.waitCount_;a++)1==a&&this.appendStatementInput("DO0").appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO),this.appendValueInput("WAIT"+a).appendField(Blockly.Msg.WAIT_OR).setCheck("Boolean"),this.appendStatementInput("DO"+a).appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO);1<=this.waitCount_&&this.setMutatorMinus(new Blockly.MutatorMinus(this))},updateShape_:function(a){Blockly.dragMode_=
Blockly.DRAG_NONE;if(1==a){this.waitCount_++;1==this.waitCount_&&this.appendStatementInput("DO0").appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO);this.appendValueInput("WAIT"+this.waitCount_).appendField(Blockly.Msg.WAIT_OR).setCheck("Boolean");this.appendStatementInput("DO"+this.waitCount_).appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO);a=this.workspace.newBlock("logic_compare");a.initSvg();a.render();a.updateShape("BOOL");var b=this.getInput("WAIT"+this.waitCount_).connection;b.connect(a.outputConnection);
var c=this.workspace.newBlock("robSensors_getSample");c.initSvg();c.render();b=a.getInput("A").connection;b.connect(c.outputConnection);c=this.workspace.newBlock("logic_boolean");c.initSvg();c.render();b=a.getInput("B").connection;b.connect(c.outputConnection)}else if(-1==a){if(a=this.getInputTargetBlock("DO"+this.waitCount_))a.unplug(),a.bumpNeighbours_();if(a=this.getInputTargetBlock("WAIT"+this.waitCount_))a.unplug(),a.bumpNeighbours_();this.removeInput("DO"+this.waitCount_);this.removeInput("WAIT"+
this.waitCount_);this.waitCount_--;0==this.waitCount_&&this.removeInput("DO0")}1<=this.waitCount_?1==this.waitCount_&&(this.setMutatorMinus(new Blockly.MutatorMinus(this)),this.render()):(this.mutatorMinus.dispose(),this.mutatorMinus=null,this.render())}};Blockly.Blocks.robSensorDefinitions={};var sensors={accelerometer:{}};sensors.accelerometer.calliope={title:"ACCELEROMETER",modes:[{name:"VALUE",type:"Number",unit:"MILLIG",op:"NUM_REV",value:0}],ports:[["x","X"],["y","Y"],["z","Z"],["STRENGTH","STRENGTH"]]};sensors.accelerometer.microbit=sensors.accelerometer.calliope;
sensors.accelerometer.mbot={title:"ACCELEROMETER",modes:[{name:"X",type:"Number",unit:"g"},{name:"Y",type:"Number",unit:"g"},{name:"Z",type:"Number",unit:"g"}],ports:[["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]]};sensors.accelerometer.nao={title:"ACCELEROMETER",modes:[{name:"VALUE",type:"Number",unit:"MILLIG",op:"NUM_REV",value:512}],ports:[["x","X"],["y","Y"],["z","Z"]]};
sensors.accelerometer.sensebox={title:"ACCELEROMETER",modes:[{name:"X",type:"Number",unit:"g"},{name:"Y",type:"Number",unit:"g"},{name:"Z",type:"Number",unit:"g"}],ports:"CONFIGURATION"};sensors.accelerometer.arduino=sensors.accelerometer.sensebox;sensors.accelerometer.vorwerk=sensors.accelerometer.calliope;sensors.battery={};sensors.battery.botnroll={title:"BATTERY",modes:[{name:"VALUE",type:"Number",unit:"VOLT"}]};sensors.code={};
sensors.code.bob3={title:"CODE",modes:[{name:"VALUE",type:"Number",value:"11"}]};sensors.colour={};sensors.colour.botnroll={title:"COLOUR",ports:[["LEFT","1"],["RIGHT","2"]],modes:[{name:"COLOUR",type:"Colour",value:"#b30006"},{name:"LIGHT",type:"Number",unit:"PERCENT"},{name:"RGB",type:"Array_Number"}]};
sensors.colour.ev3={title:"COLOUR",ports:[["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]],modes:[{name:"COLOUR",type:"Colour",value:"#b30006"},{name:"LIGHT",type:"Number",unit:"PERCENT",value:50},{name:"AMBIENTLIGHT",type:"Number",unit:"PERCENT",value:50},{name:"RGB",type:"Array_Number"}],standardPort:"3"};
sensors.colour.nxt={title:"COLOUR",ports:[["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]],modes:[{name:"COLOUR",type:"Colour",value:"#b30006"},{name:"LIGHT",type:"Number",unit:"PERCENT",value:50},{name:"AMBIENTLIGHT",type:"Number",unit:"PERCENT",value:50}],standardPort:"3"};sensors.compass={};sensors.compass.botnroll={title:"COMPASS",modes:[{name:"ANGLE",type:"Number",unit:"DEGREE"}]};sensors.compass.calliope=sensors.compass.botnroll;sensors.compass.microbit=sensors.compass.botnroll;
sensors.compass.ev3={title:"COMPASS",modes:[{name:"ANGLE",type:"Number",unit:"DEGREE"},{name:"COMPASS",type:"Number",unit:"DEGREE"}],ports:[["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]],standardPort:"1"};sensors.compass.sensebox={title:"COMPASS",modes:[{name:"X",type:"Number",unit:"DEGREE"},{name:"Y",type:"Number",unit:"DEGREE"},{name:"Z",type:"Number",unit:"DEGREE"}],ports:"CONFIGURATION"};sensors.detectface={};
sensors.detectface.nao={title:"DETECTFACE",modes:[{name:"NAMEONE",type:"String",value:"Roberta"},{name:"NAMEALL",type:"Array_String"}]};sensors.drop={};sensors.drop.arduino={title:"DROP",modes:[{name:"VALUE",type:"Number",unit:"PERCENT"}],ports:"CONFIGURATION"};sensors.drop_off={};sensors.drop_off.vorwerk={title:"DROP_OFF",modes:[{name:"DISTANCE",type:"Number",unit:"CM"}],ports:[["LEFT","LEFT"],["RIGHT","RIGHT"]]};sensors.detectmark={};
sensors.detectmark.nao={title:"DETECTMARK",modes:[{name:"IDONE",type:"Number",value:"84",op:"NUM_EQ"},{name:"IDALL",type:"Array_Number"}]};sensors.encoder={};sensors.encoder.botnroll={title:"ENCODER",modes:[{name:"DEGREE",type:"Number",unit:"DEGREE"},{name:"ROTATION",type:"Number",unit:""},{name:"DISTANCE",type:"Number",unit:"CM"}],ports:[["A","A"],["B","B"],["C","C"],["D","D"]]};
sensors.encoder.ev3={title:"ENCODER",modes:[{name:"DEGREE",type:"Number",unit:"DEGREE",op:"NUM_REV",value:180},{name:"ROTATION",type:"Number",unit:"",op:"NUM_REV",value:2},{name:"DISTANCE",type:"Number",unit:"CM"}],ports:[["A","A"],["B","B"],["C","C"],["D","D"]],standardPort:"B"};
sensors.encoder.nxt={title:"ENCODER",modes:[{name:"DEGREE",type:"Number",unit:"DEGREE",op:"NUM_REV",value:180},{name:"ROTATION",type:"Number",unit:"",op:"NUM_REV",value:2},{name:"DISTANCE",type:"Number",unit:"CM"}],ports:[["A","A"],["B","B"],["C","C"]],standardPort:"B"};sensors.encoder.arduino={title:"ENCODER",modes:[{name:"ROTATION",type:"Number",unit:"",op:"NUM_REV",value:2}],ports:"CONFIGURATION"};sensors.electriccurrent={};
sensors.electriccurrent.nao={title:"ELECTRICCURRENT",modes:[{name:"VALUE",type:"Number",unit:"AMPERE"}],ports:[{port:["PORT_HEAD","HEAD"],slots:[["SLOT_YAW","YAW"],["SLOT_PITCH","PITCH"]]},{port:["PORT_SHOULDER","SHOULDER"],slots:[["SLOT_LEFT_PITCH","LEFT_PITCH"],["SLOT_LEFT_ROLL","LEFT_ROLL"],["SLOT_RIGHT_PITCH","RIGHT_PITCH"],["SLOT_RIGHT_ROLL","RIGHT_ROLL"]]},{port:["PORT_ELBOW","ELBOW"],slots:[["SLOT_LEFT_YAW","LEFT_YAW"],["SLOT_LEFT_ROLL","LEFT_ROLL"],["SLOT_RIGHT_YAW","RIGHT_YAW"],["SLOT_RIGHT_ROLL",
"RIGHT_ROLL"]]},{port:["PORT_WRIST","WRIST"],slots:[["SLOT_LEFT_YAW","LEFT_YAW"],["SLOT_RIGHT_YAW","RIGHT_YAW"]]},{port:["PORT_HAND","HAND"],slots:[["LEFT","LEFT"],["RIGHT","RIGHT"]]},{port:["PORT_HIP","HIP"],slots:[["SLOT_LEFT_YAW_PITCH","LEFT_YAW_PITCH"],["SLOT_LEFT_ROLL","LEFT_ROLL"],["SLOT_LEFT_PITCH","LEFT_PITCH"],["SLOT_RIGHT_YAW_PITCH","RIGHT_YAW_PITCH"],["SLOT_RIGHT_ROLL","RIGHT_ROLL"],["SLOT_RIGHT_PITCH","RIGHT_PITCH"]]},{port:["PORT_KNEE","KNEE"],slots:[["SLOT_LEFT_PITCH","LEFT_PITCH"],
["SLOT_RIGHT_PITCH","RIGHT_PITCH"]]},{port:["PORT_ANKLE","ANKLE"],slots:[["SLOT_LEFT_PITCH","LEFT_PITCH"],["SLOT_LEFT_ROLL","LEFT_ROLL"],["SLOT_RIGHT_PITCH","RIGHT_PITCH"],["SLOT_RIGHT_ROLL","RIGHT_ROLL"]]}]};sensors.fsr={};sensors.fsr.nao={title:"FSR",modes:[{name:"VALUE",type:"Number",unit:"NEWTON",op:"NUM_REV",value:10}],ports:[["LEFT","LEFT"],["RIGHT","RIGHT"]]};sensors.gesture={};
sensors.gesture.calliope={title:"GESTURE",modes:[{name:"UP",type:"Boolean"},{name:"DOWN",type:"Boolean"},{name:"FACE_DOWN",type:"Boolean"},{name:"FACE_UP",type:"Boolean"},{name:"SHAKE",type:"Boolean"},{name:"FREEFALL",type:"Boolean"}]};sensors.gesture.microbit=sensors.gesture.calliope;sensors.gyro={};sensors.gyro.calliope={title:"GYRO",modes:[{name:"ANGLE",type:"Number",unit:"DEGREE",op:"NUM_REV",value:90}],ports:[["x","X"],["y","Y"]]};sensors.gyro.nao=sensors.gyro.calliope;
sensors.gyro.mbot={title:"GYRO",modes:[{name:"X",type:"Number",unit:"DEGREE"},{name:"Y",type:"Number",unit:"DEGREE"}],ports:[["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]]};sensors.gyro.ev3={title:"GYRO",modes:[{name:"ANGLE",type:"Number",unit:"DEGREE",op:"NUM_REV",value:90},{name:"RATE",type:"Number",unit:"OMEGA",op:"NUM_REV",value:90}],ports:[["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]],standardPort:"2"};
sensors.gyro.wedo={title:"GYRO",modes:[{name:"TILTED",type:"Boolean",question:!0}],slots:[["SLOT_TILTED_UP","UP"],["SLOT_TILTED_DOWN","DOWN"],["SLOT_TILTED_BACK","BACK"],["SLOT_TILTED_FRONT","FRONT"],["SLOT_TILTED_NO","NO"],["SLOT_TILTED_ANY","ANY"]],ports:"CONFIGURATION"};sensors.gyro.sensebox={title:"GYRO",modes:[{name:"X",type:"Number",unit:"DEGREE"},{name:"Y",type:"Number",unit:"DEGREE"},{name:"Z",type:"Number",unit:"DEGREE"}],ports:"CONFIGURATION"};
sensors.gyro.arduino={title:"GYRO",modes:[{name:"X",type:"Number",unit:"DEGREE_PER_SECOND"},{name:"Y",type:"Number",unit:"DEGREE_PER_SECOND"},{name:"Z",type:"Number",unit:"DEGREE_PER_SECOND"}],ports:"CONFIGURATION"};sensors.htcolour={};
sensors.htcolour.ev3={title:"HTCOLOUR",ports:[["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]],modes:[{name:"COLOUR",type:"Colour",value:"#b30006"},{name:"LIGHT",type:"Number",unit:"PERCENT",value:50},{name:"AMBIENTLIGHT",type:"Number",unit:"PERCENT",value:50},{name:"RGB",type:"Array_Number"}],standardPort:"3"};sensors.humidity={};sensors.humidity.arduino={title:"HUMIDITY",modes:[{name:"HUMIDITY",type:"Number",unit:"PERCENT"},{name:"TEMPERATURE",type:"Number",unit:"DEGREE"}],ports:"CONFIGURATION"};
sensors.humidity.sensebox={title:"HUMIDITY",modes:[{name:"HUMIDITY",type:"Number",unit:"PERCENT"},{name:"TEMPERATURE",type:"Number",unit:"DEGREE"}],ports:"CONFIGURATION"};sensors.humidity.calliope={title:"HUMIDITY",modes:[{name:"HUMIDITY",type:"Number",unit:"PERCENT"},{name:"TEMPERATURE",type:"Number",unit:"DEGREE"}],ports:[["A1","5"]]};sensors.infrared={};
sensors.infrared.botnroll={title:"INFRARED",ports:[["LEFT","1"],["RIGHT","2"],["BOTH","BOTH"]],modes:[{name:"OBSTACLE",type:"Boolean"},{name:"PRESENCE",type:"Boolean"}]};sensors.infrared.arduino={title:"INFRARED",modes:[{name:"VALUE",type:"Number"},{name:"PRESENCE",type:"Boolean"}],ports:"CONFIGURATION"};sensors.infrared.bob3={title:"INFRARED",modes:[{name:"AMBIENTLIGHT",type:"Number",unit:"PERCENT"},{name:"REFLEXION",type:"Number",unit:"PERCENT"}]};
sensors.infrared.calliope={title:"INFRARED",modes:[{name:"LINE",type:"Boolean"}],ports:[["CB_LEFT","2"],["CB_RIGHT","1"]]};sensors.infrared.mbot={title:"INFRARED",modes:[{name:"LINE",type:"Boolean"}],ports:[["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]],slots:[["SLOT_LEFT","1"],["SLOT_RIGHT","2"]],standardPort:"2"};
sensors.infrared.ev3={title:"INFRARED",ports:[["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]],modes:[{name:"DISTANCE",type:"Number",unit:"CM"},{name:"PRESENCE",type:"Array_Number"}]};sensors.infrared.wedo={title:"INFRARED",ports:"CONFIGURATION",modes:[{name:"DISTANCE",type:"Number",value:10}]};sensors.infrared.edison={title:"INFRARED",ports:[["LEFT","LEFT"],["RIGHT","RIGHT"],["SLOT_FRONT","FRONT"]],modes:[{name:"OBSTACLE",type:"Boolean"}]};sensors.irseeker={};
sensors.irseeker.ev3={title:"IRSEEKER",ports:[["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]],modes:[{name:"MODULATED",type:"Number",unit:"DEGREE"},{name:"UNMODULATED",type:"Number",unit:"DEGREE"}]};sensors.irseeker.edison={title:"IRSEEKER",modes:[{name:"RCCODE",type:"Number"}]};sensors.key={};sensors.key.botnroll={title:"KEY",modes:[{name:"PRESSED",type:"Boolean",question:!0}],ports:[["1","LEFT"],["2","ENTER"],["3","RIGHT"],["SENSOR_KEY_ANY","ANY"]]};
sensors.key.arduino={title:"KEY",modes:[{name:"PRESSED",type:"Boolean",question:!0}],ports:"CONFIGURATION"};sensors.key.mbot={title:"KEY",modes:[{name:"PRESSED",type:"Boolean",question:!0}]};sensors.key.calliope={title:"KEY",modes:[{name:"PRESSED",type:"Boolean",question:!0}],ports:[["A","A"],["B","B"]]};
sensors.key.ev3={title:"KEY",modes:[{name:"PRESSED",type:"Boolean",question:!0}],ports:[["SENSOR_KEY_ENTER","ENTER"],["SENSOR_KEY_UP","UP"],["SENSOR_KEY_DOWN","DOWN"],["SENSOR_KEY_LEFT","LEFT"],["SENSOR_KEY_RIGHT","RIGHT"],["SENSOR_KEY_ESCAPE","ESCAPE"],["SENSOR_KEY_ANY","ANY"]]};sensors.key.nxt={title:"KEY",modes:[{name:"PRESSED",type:"Boolean",question:!0}],ports:[["SENSOR_KEY_ENTER","ENTER"],["SENSOR_KEY_LEFT","LEFT"],["SENSOR_KEY_RIGHT","RIGHT"]]};sensors.key.microbit=sensors.key.calliope;
sensors.key.sensebox=sensors.key.arduino;sensors.key.wedo={title:"KEY",modes:[{name:"PRESSED",type:"Boolean",question:!0}],ports:"CONFIGURATION"};sensors.key.edison={title:"KEY",modes:[{name:"PRESSED",type:"Boolean",question:!0}],ports:[["SENSOR_KEY_PLAY","PLAY"],["SENSOR_KEY_REC","REC"]]};sensors.light={};sensors.light.botnroll={title:"LIGHT",modes:[{name:"LIGHT",type:"Number",unit:"PERCENT"}],ports:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]]};
sensors.light.arduino={title:"LIGHT",modes:[{name:"LIGHT",type:"Number",unit:"PERCENT"}],ports:"CONFIGURATION"};sensors.light.sensebox=sensors.light.arduino;sensors.light.calliope={title:"LIGHT",modes:[{name:"VALUE",type:"Number",unit:"PERCENT"}]};sensors.light.nxt={title:"LIGHT",modes:[{name:"LIGHT",type:"Number",unit:"PERCENT",value:50},{name:"AMBIENTLIGHT",type:"Number",unit:"PERCENT",value:50}],ports:[["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]],standardPort:"3"};
sensors.light.mbot={title:"LIGHT",modes:[{name:"LIGHT",type:"Number",unit:"PERCENT",value:50}],ports:[["PORT_INTERNAL","6"],["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]]};sensors.light.edison={title:"LIGHT",modes:[{name:"LIGHT",type:"Number",unit:"PERCENT",ports:[["LEFT","LLIGHT"],["RIGHT","RLIGHT"],["BELOW","LINETRACKER"]]},{name:"LINE",type:"Boolean",ports:[["BELOW","LINETRACKER"]]}]};sensors.lightveml={};
sensors.lightveml.sensebox={title:"LIGHTVEML",modes:[{name:"LIGHT",type:"Number",unit:"LUX",op:"NUM_REV",value:500},{name:"UVLIGHT",type:"Number",unit:"IRRADIANCE",op:"NUM_REV",value:50}],ports:"CONFIGURATION"};sensors.moisture={};sensors.moisture.arduino={title:"MOISTURE",modes:[{name:"VALUE",type:"Number",unit:"PERCENT"}],ports:"CONFIGURATION"};sensors.motion={};sensors.motion.arduino={title:"MOTION",modes:[{name:"PRESENCE",type:"Boolean"}],ports:"CONFIGURATION"};
sensors.motion.mbot={title:"MOTION",modes:[{name:"PRESENCE",type:"Boolean"}],ports:[["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]],standardPort:"3"};sensors.out={};sensors.out.arduino={title:"OUT",modes:[{name:"ANALOG",type:"Number",value:"100",op:"NUM_REV"},{name:"DIGITAL",type:"Number",value:"1",op:"NUM_EQ"}],ports:"CONFIGURATION"};sensors.out.sensebox=sensors.out.arduino;sensors.potentiometer={};
sensors.potentiometer.arduino={title:"POTENTIOMETER",modes:[{name:"VALUE",type:"Number",unit:"VOLT"}],ports:"CONFIGURATION"};sensors.potentiometer.sensebox=sensors.potentiometer.arduino;sensors.potentiometer.mbot={title:"POTENTIOMETER",modes:[{name:"VALUE",type:"Number",unit:"VOLT"}],ports:[["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]],standardPort:"4"};sensors.pin={};
sensors.pin.calliope={title:"PIN",modes:[{name:"ANALOG",type:"Number",ports:[["P1","1"],["P2","2"],["A1","5"],["C04","C04"],["C05","C05"],["C06","C06"],["C16","C16"],["C17","C17"]]},{name:"DIGITAL",type:"Number",ports:[["P0","0"],["P1","1"],["P2","2"],["P3","3"],["A0","4"],["A1","5"],["C04","C04"],["C05","C05"],["C06","C06"],["C07","C07"],["C08","C08"],["C09","C09"],["C10","C10"],["C11","C11"],["C12","C12"],["C16","C16"],["C17","C17"],["C18","C18"],["C19","C19"]]},{name:"PULSEHIGH",type:"Number",
ports:[["P0","0"],["P1","1"],["P2","2"],["P3","3"],["A0","4"],["A1","5"],["C04","C04"],["C05","C05"],["C06","C06"],["C07","C07"],["C08","C08"],["C09","C09"],["C10","C10"],["C11","C11"],["C12","C12"],["C16","C16"],["C17","C17"],["C18","C18"],["C19","C19"]]},{name:"PULSELOW",type:"Number",ports:[["P0","0"],["P1","1"],["P2","2"],["P3","3"],["A0","4"],["A1","5"],["C04","C04"],["C05","C05"],["C06","C06"],["C07","C07"],["C08","C08"],["C09","C09"],["C10","C10"],["C11","C11"],["C12","C12"],["C16","C16"],
["C17","C17"],["C18","C18"],["C19","C19"]]}]};
sensors.pin.microbit={title:"PIN",modes:[{name:"ANALOG",type:"Number",ports:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["10","10"]]},{name:"DIGITAL",type:"Number",ports:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["19","19"],["20","20"]]},{name:"PULSEHIGH",type:"Number",ports:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7",
"7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["19","19"],["20","20"]]},{name:"PULSELOW",type:"Number",ports:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["19","19"],["20","20"]]}]};sensors.pintouch={};
sensors.pintouch.bob3={title:"PINTOUCH",ports:[["LEFT","2"],["RIGHT","1"]],slots:[["SENSOR_TOP","1"],["CENTER","2"],["SENSOR_BOTTOM","3"],["SENSOR_ANY","0"]],modes:[{name:"PRESSED",type:"Boolean",question:!0}]};sensors.pintouch.calliope={title:"PINTOUCH",ports:[[" 0","0"],[" 1","1"],[" 2","2"],[" 3","3"]],modes:[{name:"PRESSED",type:"Boolean",question:!0}],standardPort:"1"};
sensors.pintouch.microbit={title:"PINTOUCH",ports:[[" 0","0"],[" 1","1"],[" 2","2"]],modes:[{name:"PRESSED",type:"Boolean",question:!0}],standardPort:"1"};sensors.pulse={};sensors.pulse.arduino={title:"PULSE",modes:[{name:"VALUE",type:"Number"}],ports:"CONFIGURATION"};sensors.rssi={};sensors.rssi.calliope={title:"RSSI",modes:[{name:"VALUE",type:"Number"}]};sensors.rfid={};sensors.rfid.arduino={title:"RFID",modes:[{name:"IDONE",type:"String"},{name:"PRESENCE",type:"Boolean"}],ports:"CONFIGURATION"};
sensors.sound={};sensors.sound.calliope={title:"SOUND",modes:[{name:"SOUND",type:"Number",unit:"PERCENT",op:"NUM_REV",value:50}]};sensors.sound.ev3={title:"SOUND",modes:[{name:"SOUND",type:"Number",unit:"PERCENT",op:"NUM_REV",value:50}],ports:[["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]],standardPort:"2"};sensors.sound.sensebox={title:"SOUND",modes:[{name:"SOUND",type:"Number",unit:"PERCENT",op:"NUM_REV",value:50}],ports:"CONFIGURATION"};sensors.sound.nxt=sensors.sound.ev3;
sensors.sound.mbot=sensors.sound.ev3;sensors.sound.edison={title:"SOUND",modes:[{name:"SOUND",type:"Boolean"}]};sensors.temperature={};sensors.temperature.bob3={title:"TEMPERATURE",modes:[{name:"VALUE",type:"Number",unit:"DEGREE",value:20}]};sensors.temperature.mbot={title:"TEMPERATURE",modes:[{name:"VALUE",type:"Number",unit:"DEGREE",value:20}],ports:[["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]],standardPort:"3"};
sensors.temperature.arduino={title:"TEMPERATURE",modes:[{name:"VALUE",type:"Number",unit:"DEGREE",value:20}],ports:"CONFIGURATION"};sensors.temperature.sensebox={title:"TEMPERATURE",modes:[{name:"TEMPERATURE",type:"Number",unit:"DEGREE",value:20},{name:"PRESSURE",type:"Number",unit:"PASCAL",value:101325}],ports:"CONFIGURATION"};sensors.temperature.calliope=sensors.temperature.bob3;sensors.temperature.microbit=sensors.temperature.bob3;sensors.timer={};
sensors.timer.botnroll={title:"TIMER",modes:[{name:"VALUE",type:"Number",unit:"MS",op:"NUM_REV",value:500}],ports:[[" 1","1"]]};sensors.timer.bob3=sensors.timer.botnroll;sensors.timer.calliope=sensors.timer.botnroll;sensors.timer.nxt=sensors.timer.botnroll;sensors.timer.microbit=sensors.timer.botnroll;sensors.timer.arduino=sensors.timer.botnroll;sensors.timer.mbot=sensors.timer.arduino;sensors.timer.wedo=sensors.timer.botnroll;sensors.timer.sensebox=sensors.timer.botnroll;
sensors.timer.festobionic=sensors.timer.botnroll;sensors.timer.ev3={title:"TIMER",modes:[{name:"VALUE",type:"Number",unit:"MS",op:"NUM_REV",value:500}],ports:[[" 1","1"],[" 2","2"],[" 3","3"],[" 4","4"],[" 5","5"]]};sensors.touch={};sensors.touch.ev3={title:"TOUCH",ports:[["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]],modes:[{name:"PRESSED",type:"Boolean",question:!0}],standardPort:"1"};sensors.touch.nxt=sensors.touch.ev3;sensors.touch.mbot=sensors.touch.ev3;
sensors.touch.nao={title:"TOUCH",modes:[{name:"PRESSED",type:"Boolean",question:!0}],ports:[{port:["PORT_HEAD","HEAD"],slots:[["SLOT_FRONT","FRONT"],["SLOT_MIDDLE","MIDDLE"],["SLOT_REAR","REAR"]]},{port:["PORT_HAND","HAND"],slots:[["LEFT","LEFT"],["RIGHT","RIGHT"]]},{port:["PORT_BUMPER","BUMPER"],slots:[["LEFT","LEFT"],["RIGHT","RIGHT"]]}]};
sensors.touch.vorwerk={title:"TOUCH",modes:[{name:"PRESSED",type:"Boolean",question:!0}],ports:[["LEFT","LEFT"],["RIGHT","RIGHT"]],slots:[["SLOT_FRONT","FRONT"],["SLOT_SIDE","SIDE"]]};sensors.ultrasonic={};sensors.ultrasonic.arduino={title:"ULTRASONIC",modes:[{name:"DISTANCE",type:"Number",unit:"CM"}],ports:"CONFIGURATION"};sensors.ultrasonic.botnroll={title:"ULTRASONIC",ports:[["LEFT","0"],["CENTER","1"],["RIGHT","2"],["SENSOR_SONAR","3"]],modes:[{name:"DISTANCE",type:"Number",unit:"CM"}]};
sensors.ultrasonic.calliope={title:"ULTRASONIC",modes:[{name:"DISTANCE",type:"Number",unit:"CM"}],ports:[["A1","1"],["Calli:bot","2"]]};sensors.ultrasonic.sensebox=sensors.ultrasonic.arduino;sensors.ultrasonic.ev3={title:"ULTRASONIC",ports:[["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]],modes:[{name:"DISTANCE",type:"Number",unit:"CM"},{name:"PRESENCE",type:"Boolean"}],standardPort:"4"};
sensors.ultrasonic.nxt={title:"ULTRASONIC",ports:[["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]],modes:[{name:"DISTANCE",type:"Number",unit:"CM"}],standardPort:"4"};sensors.ultrasonic.mbot={title:"ULTRASONIC",ports:[["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]],modes:[{name:"DISTANCE",type:"Number",unit:"CM"}],standardPort:"3"};sensors.ultrasonic.nao={title:"ULTRASONIC",modes:[{name:"DISTANCE",type:"Number",unit:"CM"}]};
sensors.ultrasonic.vorwerk={title:"ULTRASONIC",modes:[{name:"DISTANCE",type:"Number",unit:"CM"}],ports:[["LEFT","LEFT_ULTRASONIC"],["CENTER","CENTER_ULTRASONIC"],["RIGHT","RIGHT_ULTRASONIC"]],slots:[["LEFT","LEFT"],["CENTER","CENTER"],["RIGHT","RIGHT"]]};sensors.wall={};sensors.wall.vorwerk={title:"WALL",modes:[{name:"DISTANCE",type:"Number",unit:"CM"}]};sensors.flame={};
sensors.flame.mbot={title:"FLAME",ports:[["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]],modes:[{name:"VALUE",type:"Number"}],standardPort:"4"};sensors.joystick={};sensors.joystick.mbot={title:"JOYSTICK",ports:[["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]],modes:[{name:"X",type:"Number"},{name:"Y",type:"Number"}],standardPort:"3"};sensors.particle={};
sensors.particle.sensebox={title:"PARTICLE",modes:[{name:"PM25",type:"Number",unit:"PM"},{name:"PM10",type:"Number",unit:"PM"}],ports:"CONFIGURATION"};sensors.gps={};sensors.gps.sensebox={title:"GPS",modes:[{name:"LATITUDE",type:"Number",unit:"DEGREE"},{name:"LONGITUDE",type:"Number",unit:"DEGREE"},{name:"ALTITUDE",type:"Number",unit:"METER"},{name:"SPEED",type:"Number",unit:"SPEED"},{name:"DATE",type:"Number"},{name:"TIME",type:"Number"}],ports:"CONFIGURATION"};var sensorsAll=[];
sensorsAll.botnroll=[sensors.infrared.botnroll,sensors.light.botnroll,sensors.compass.botnroll,sensors.ultrasonic.botnroll,sensors.colour.botnroll,sensors.key.botnroll];sensorsAll.mbot=[sensors.key.mbot,sensors.ultrasonic.mbot,sensors.infrared.mbot,sensors.light.mbot,sensors.timer.mbot];sensorsAll.ev3=[sensors.touch.ev3,sensors.ultrasonic.ev3,sensors.colour.ev3,sensors.infrared.ev3,sensors.encoder.ev3,sensors.key.ev3,sensors.gyro.ev3,sensors.timer.ev3,sensors.compass.ev3,sensors.irseeker.ev3,sensors.htcolour.ev3];
sensorsAll.nxt=[sensors.touch.nxt,sensors.sound.nxt,sensors.light.nxt,sensors.ultrasonic.nxt,sensors.encoder.nxt,sensors.key.nxt,sensors.colour.nxt,sensors.timer.nxt];sensorsAll.bob3=[sensors.pintouch.bob3,sensors.infrared.bob3,sensors.temperature.bob3,sensors.timer.bob3];
sensorsAll.calliope=[sensors.key.calliope,sensors.pintouch.calliope,sensors.gesture.calliope,sensors.compass.calliope,sensors.sound.calliope,sensors.timer.calliope,sensors.temperature.calliope,sensors.light.calliope,sensors.pin.calliope,sensors.gyro.calliope,sensors.accelerometer.calliope,sensors.humidity.calliope,sensors.ultrasonic.calliope,sensors.infrared.calliope];
sensorsAll.microbit=[sensors.key.microbit,sensors.pintouch.microbit,sensors.gesture.microbit,sensors.compass.microbit,sensors.timer.microbit,sensors.temperature.microbit,sensors.pin.microbit,sensors.accelerometer.microbit];
sensorsAll.arduino=[sensors.out.arduino,sensors.key.arduino,sensors.timer.arduino,sensors.temperature.arduino,sensors.ultrasonic.arduino,sensors.light.arduino,sensors.moisture.arduino,sensors.potentiometer.arduino,sensors.infrared.arduino,sensors.humidity.arduino,sensors.encoder.arduino,sensors.motion.arduino,sensors.pulse.arduino,sensors.drop.arduino,sensors.rfid.arduino,sensors.gyro.arduino,sensors.accelerometer.arduino];sensorsAll.festobionic=[sensors.timer.arduino];
sensorsAll.nao=[sensors.touch.nao,sensors.accelerometer.nao,sensors.gyro.nao,sensors.ultrasonic.nao,sensors.fsr.nao,sensors.electriccurrent.nao,sensors.detectface.nao,sensors.detectmark.nao];sensorsAll.vorwerk=[sensors.touch.vorwerk,sensors.accelerometer.vorwerk,sensors.ultrasonic.vorwerk,sensors.wall.vorwerk,sensors.drop_off.vorwerk];sensorsAll.wedo=[sensors.key.wedo,sensors.gyro.wedo,sensors.infrared.wedo,sensors.timer.wedo];
sensorsAll.sensebox=[sensors.key.sensebox,sensors.light.sensebox,sensors.potentiometer.sensebox,sensors.sound.sensebox,sensors.ultrasonic.sensebox,sensors.humidity.sensebox,sensors.temperature.sensebox,sensors.lightveml.sensebox,sensors.accelerometer.sensebox,sensors.particle.sensebox,sensors.gps.sensebox,sensors.timer.sensebox];sensorsAll.edison=[sensors.key.edison,sensors.infrared.edison,sensors.irseeker.edison,sensors.light.edison,sensors.sound.edison];
function initSensors(){for(var a in sensors)sensors.hasOwnProperty(a)&&(Blockly.Blocks["robSensors_"+a+"_getSample"]={sensor:a,init:function(){Blockly.Blocks.robSensors_generic.init.call(this,sensors[this.sensor][this.workspace.device])}})}initSensors();Blockly.Blocks.robSensors_getSample={init:function(){Blockly.Blocks.robSensors_generic_all.init.call(this,sensorsAll[this.workspace.device])}};Blockly.Blocks.robSensors_battery_voltage=Blockly.Blocks.robSensors_battery_getSample;
Blockly.Blocks.robSensors_key_isPressed=Blockly.Blocks.robSensors_key_getSample;Blockly.Blocks.robSensors_touch_isPressed=Blockly.Blocks.robSensors_touch_getSample;Blockly.Blocks.robSensors_getSample_ardu=Blockly.Blocks.robSensors_getSample;Blockly.Blocks.bob3Sensors_ambientlight=Blockly.Blocks.robSensors_infrared_getSample;Blockly.Blocks.bob3Sensors_temperature_getSample=Blockly.Blocks.robSensors_temperature_getSample;Blockly.Blocks.bob3Sensors_getCode=Blockly.Blocks.robSensors_code_getSample;
Blockly.Blocks.bob3Sensors_touch_getSample=Blockly.Blocks.robSensors_pintouch_getSample;Blockly.Blocks.bob3Sensors_getSample_bob3=Blockly.Blocks.robSensors_getSample;Blockly.Blocks.mbedSensors_getSample=Blockly.Blocks.robSensors_getSample;Blockly.Blocks.mbedSensors_key_isPressed=Blockly.Blocks.robSensors_key_getSample;Blockly.Blocks.mbedSensors_pin_isTouched=Blockly.Blocks.robSensors_pintouch_getSample;Blockly.Blocks.mbedSensors_gesture_isActive=Blockly.Blocks.robSensors_gesture_getSample;
Blockly.Blocks.mbedSensors_compass_getSample=Blockly.Blocks.robSensors_compass_getSample;Blockly.Blocks.mbedSensors_microphone_getSample=Blockly.Blocks.robSensors_sound_getSample;Blockly.Blocks.mbedSensors_timer_getSample=Blockly.Blocks.robSensors_timer_getSample;Blockly.Blocks.mbedSensors_temperature_getSample=Blockly.Blocks.robSensors_temperature_getSample;Blockly.Blocks.mbedSensors_getRssi=Blockly.Blocks.robSensors_rssi_getSample;Blockly.Blocks.mbedSensors_ambientLight_getSample=Blockly.Blocks.robSensors_light_getSample;
Blockly.Blocks.mbedSensors_pin_getSample=Blockly.Blocks.robSensors_pin_getSample;Blockly.Blocks.mbedSensors_rotation_getSample=Blockly.Blocks.robSensors_gyro_getSample;Blockly.Blocks.mbedSensors_acceleration_getSample=Blockly.Blocks.robSensors_accelerometer_getSample;Blockly.Blocks.naoSensors_accelerometer=Blockly.Blocks.robSensors_accelerometer_getSample;Blockly.Blocks.colour={};Blockly.Blocks.colour.HUE=20;Blockly.Blocks.colour_picker={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_colour",name:"COLOUR",colour:"#ff0000"}],output:"Colour",colour:Blockly.Blocks.colour.HUE,helpUrl:Blockly.Msg.COLOUR_PICKER_HELPURL});var a=this;this.setTooltip(function(){var b=a.getParent();return b&&b.getInputsInline()&&b.tooltip||Blockly.Msg.COLOUR_PICKER_TOOLTIP})}};
Blockly.Blocks.colour_random={init:function(){this.jsonInit({message0:Blockly.Msg.COLOUR_RANDOM_TITLE,output:"Colour",colour:Blockly.Blocks.colour.HUE,tooltip:Blockly.Msg.COLOUR_RANDOM_TOOLTIP,helpUrl:Blockly.Msg.COLOUR_RANDOM_HELPURL})}};
Blockly.Blocks.colour_rgb={init:function(){this.setHelpUrl(Blockly.Msg.COLOUR_RGB_HELPURL);this.setColour(Blockly.Blocks.colour.HUE);this.appendValueInput("RED").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_RGB_TITLE).appendField(Blockly.Msg.COLOUR_RGB_RED);this.appendValueInput("GREEN").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_RGB_GREEN);this.appendValueInput("BLUE").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_RGB_BLUE);
this.setOutput(!0,"Colour");this.setTooltip(Blockly.Msg.COLOUR_RGB_TOOLTIP)}};
Blockly.Blocks.colour_blend={init:function(){this.setHelpUrl(Blockly.Msg.COLOUR_BLEND_HELPURL);this.setColour(Blockly.Blocks.colour.HUE);this.appendValueInput("COLOUR1").setCheck("Colour").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_BLEND_TITLE).appendField(Blockly.Msg.COLOUR_BLEND_COLOUR1);this.appendValueInput("COLOUR2").setCheck("Colour").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_BLEND_COLOUR2);this.appendValueInput("RATIO").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_BLEND_RATIO);
this.setOutput(!0,"Colour");this.setTooltip(Blockly.Msg.COLOUR_BLEND_TOOLTIP)}};Blockly.Blocks.makeblockActions={};
Blockly.Blocks.makeblockActions_leds_on={init:function(){var a=new Blockly.FieldDropdown([[Blockly.Msg.MOTOR_LEFT,"Left"],[Blockly.Msg.MOTOR_RIGHT,"Right"]]);this.setColour(Blockly.CAT_ACTION_RGB);"bob3"===this.workspace.device?this.appendValueInput("COLOR").appendField(Blockly.Msg.SET_LED).appendField(Blockly.Msg.NAO_LED_EYE).appendField(a,"LEDSIDE").appendField(Blockly.Msg.ON).appendField(Blockly.Msg.BRICKLIGHT_COLOR).setCheck("Colour"):this.appendValueInput("COLOR").appendField(Blockly.Msg.SET_LED).appendField(a,"LEDSIDE").appendField(Blockly.Msg.ON).appendField(Blockly.Msg.BRICKLIGHT_COLOR).setCheck("Colour");
this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.LED_ON_TOOLTIP)}};
Blockly.Blocks.makeblockActions_leds_off={init:function(){var a=new Blockly.FieldDropdown([[Blockly.Msg.MOTOR_LEFT,"Left"],[Blockly.Msg.MOTOR_RIGHT,"Right"]]);this.setColour(Blockly.CAT_ACTION_RGB);"bob3"===this.workspace.device?this.appendDummyInput().appendField(Blockly.Msg.SET_LED).appendField(Blockly.Msg.NAO_LED_EYE).appendField(a,"LEDSIDE").appendField(Blockly.Msg.OFF):this.appendDummyInput().appendField(Blockly.Msg.SET_LED).appendField(a,"LEDSIDE").appendField(Blockly.Msg.OFF);this.setPreviousStatement(!0);
this.setNextStatement(!0);this.setTooltip(Blockly.Msg.LED_OFF_TOOLTIP)}};Blockly.Blocks.loops={};Blockly.Blocks.loops.HUE=120;Blockly.Blocks.controls_repeat_ext={init:function(){this.jsonInit({message0:Blockly.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES",check:"Number"}],previousStatement:null,nextStatement:null,colour:Blockly.CAT_CONTROL_RGB,tooltip:Blockly.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:Blockly.Msg.CONTROLS_REPEAT_HELPURL});this.appendStatementInput("DO").appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO)}};
Blockly.Blocks.controls_repeat={init:function(){this.jsonInit({message0:Blockly.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"field_number",name:"TIMES",text:"10"}],previousStatement:null,nextStatement:null,colour:Blockly.CAT_CONTROL_RGB,tooltip:Blockly.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:Blockly.Msg.CONTROLS_REPEAT_HELPURL});this.appendStatementInput("DO").appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO);this.getField("TIMES").setValidator(Blockly.FieldTextInput.nonnegativeIntegerValidator)}};
Blockly.Blocks.controls_whileUntil={init:function(){var a=[[Blockly.Msg.CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"],[Blockly.Msg.CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"]];this.setHelpUrl(Blockly.Msg.CONTROLS_WHILEUNTIL_HELPURL);this.setColour(Blockly.CAT_CONTROL_RGB);this.appendValueInput("BOOL").setCheck("Boolean").appendField(new Blockly.FieldDropdown(a),"MODE");this.appendStatementInput("DO").appendField(Blockly.Msg.CONTROLS_WHILEUNTIL_INPUT_DO);this.setPreviousStatement(!0);this.setNextStatement(!0);
var b=this;this.setTooltip(function(){var a=b.getFieldValue("MODE");return{WHILE:Blockly.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:Blockly.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[a]})}};
Blockly.Blocks.controls_for={init:function(){this.jsonInit({message0:Blockly.Msg.CONTROLS_FOR_TITLE,args0:[{type:"field_variable",name:"VAR",variable:null},{type:"input_value",name:"FROM",check:"Number",align:"RIGHT"},{type:"input_value",name:"TO",check:"Number",align:"RIGHT"},{type:"input_value",name:"BY",check:"Number",align:"RIGHT"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.CAT_CONTROL_RGB,helpUrl:Blockly.Msg.CONTROLS_FOR_HELPURL});this.appendStatementInput("DO").appendField(Blockly.Msg.CONTROLS_FOR_INPUT_DO);
var a=this;this.setTooltip(function(){return Blockly.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",a.getFieldValue("VAR"))})},customContextMenu:function(a){if(!this.isCollapsed()){var b={enabled:!0},c=this.getFieldValue("VAR");b.text=Blockly.Msg.VARIABLES_SET_CREATE_GET.replace("%1",c);c=goog.dom.createDom("field",null,c);c.setAttribute("name","VAR");c=goog.dom.createDom("block",null,c);c.setAttribute("type","variables_get");b.callback=Blockly.ContextMenu.callbackFactory(this,c);a.push(b)}}};
Blockly.Blocks.controls_forEach={init:function(){this.jsonInit({message0:Blockly.Msg.CONTROLS_FOREACH_TITLE,args0:[{type:"field_variable",name:"VAR",variable:null},{type:"input_value",name:"LIST",check:"Array"}],previousStatement:null,nextStatement:null,colour:Blockly.CAT_CONTROL_RGB,helpUrl:Blockly.Msg.CONTROLS_FOREACH_HELPURL});this.appendStatementInput("DO").appendField(Blockly.Msg.CONTROLS_FOREACH_INPUT_DO);var a=this;this.setTooltip(function(){return Blockly.Msg.CONTROLS_FOREACH_TOOLTIP.replace("%1",
a.getFieldValue("VAR"))})},customContextMenu:Blockly.Blocks.controls_for.customContextMenu};
Blockly.Blocks.controls_flow_statements={init:function(){var a=[[Blockly.Msg.CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[Blockly.Msg.CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];this.setHelpUrl(Blockly.Msg.CONTROLS_FLOW_STATEMENTS_HELPURL);this.setColour(Blockly.CAT_CONTROL_RGB);this.appendDummyInput().appendField(new Blockly.FieldDropdown(a),"FLOW");this.setPreviousStatement(!0);var b=this;this.setTooltip(function(){var a=b.getFieldValue("FLOW");return{BREAK:Blockly.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,
CONTINUE:Blockly.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[a]})},onchange:function(a){a=!1;var b=this;do{if(-1!=this.LOOP_TYPES.indexOf(b.type)){a=!0;break}b=b.getSurroundParent()}while(b);a?(this.setWarningText(null),this.setDisabled(!1)):(this.setWarningText(Blockly.Msg.CONTROLS_FLOW_STATEMENTS_WARNING),this.isInFlyout||this.getInheritedDisabled()||this.setDisabled(!0))},LOOP_TYPES:"controls_repeat controls_repeat_ext controls_forEach controls_for controls_whileUntil robControls_forEach robControls_for robControls_loopForever".split(" ")};
Blockly.Blocks.robControls_for={init:function(){this.jsonInit({message0:Blockly.Msg.CONTROLS_FOR_TITLE,args0:[{type:"field_input",name:"VAR"},{type:"input_value",name:"FROM",check:"Number",align:"RIGHT"},{type:"input_value",name:"TO",check:"Number",align:"RIGHT"},{type:"input_value",name:"BY",check:"Number",align:"RIGHT"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.CAT_CONTROL_RGB,helpUrl:Blockly.Msg.CONTROLS_FOR_HELPURL});this.getField("VAR").setText("i");this.getField("VAR").setValidator(this.validateName);
this.appendStatementInput("DO").appendField(Blockly.Msg.CONTROLS_FOR_INPUT_DO);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);this.declarationType_="Number";var a=this;this.setTooltip(function(){return Blockly.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",a.getFieldValue("VAR"))})},validate:function(){if(!Blockly.Variables.isLegalName(this.getFieldValue("VAR"),this)){var a=Blockly.Variables.generateUniqueName(Blockly.getMainWorkspace());this.setFieldValue(a,"VAR")}},validateName:function(a){var b=
this.sourceBlock_;a=a.replace(/[\s\xa0]+/g,"").replace(/^ | $/g,"");return""!==a&&a.match(/^[a-zA-Z][a-zA-Z_$0-9]*$/)&&Blockly.Variables.isLegalName(a,b)?(b.nameOld&&Blockly.Variables.renameVariable(b.nameOld,a,Blockly.getMainWorkspace()),b.nameOld=a):null},getType:function(){return this.declarationType_},getVars:function(){return[this.getFieldValue("VAR")]},getVarDecl:function(){return[this.getFieldValue("VAR")]},customContextMenu:function(a){if(!this.isCollapsed()){var b={enabled:!0},c=this.getFieldValue("VAR");
b.text=Blockly.Msg.VARIABLES_SET_CREATE_GET.replace("%1",c);c=goog.dom.createDom("field",null,c);c.setAttribute("name","VAR");c=goog.dom.createDom("block",null,c);c.setAttribute("type","variables_get");c.setAttribute("intask",!1);var d=goog.dom.createDom("mutation");c.appendChild(d);b.callback=Blockly.ContextMenu.callbackFactory(this,c);a.push(b)}}};
Blockly.Blocks.robControls_forEach={init:function(){this.jsonInit({message0:Blockly.Msg.CONTROLS_FOREACH_TITLE,args0:[{type:"field_input",name:"VAR"},{type:"input_value",name:"LIST",check:"Array_Number Array_String Array_Boolean Array_Colour Array_Image Array_Connection".split(" ")}],previousStatement:null,nextStatement:null,colour:Blockly.CAT_CONTROL_RGB,helpUrl:Blockly.Msg.CONTROLS_FOREACH_HELPURL});this.nameOld=Blockly.Msg.VARIABLES_TITLE;this.getField("VAR").setText(Blockly.Msg.VARIABLES_DEFAULT_NAME);
this.getField("VAR").setValidator(this.validateName);this.declType_=Blockly.LIST_TYPE_DROPDOWN(this.workspace.device);this.getInput("LIST").appendField(this.declType_,"TYPE");var a=this.getInput("LIST").fieldRow.pop();this.getInput("LIST").fieldRow.splice(1,0,a);this.appendStatementInput("DO").appendField(Blockly.Msg.CONTROLS_FOREACH_INPUT_DO);var b=this;this.listType_="Number";b=this;this.setTooltip(function(){return Blockly.Msg.CONTROLS_FOREACH_TOOLTIP.replace("%1",b.getFieldValue("VAR"))})},validate:function(){var a=
Blockly.Variables.findLegalName(this.getFieldValue("VAR"),this);this.setFieldValue(a,"VAR")},validateName:Blockly.Blocks.robControls_for.validateName,mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("list_type",this.listType_);return a},domToMutation:function(a){(this.listType_=a.getAttribute("list_type"))&&this.getInput("LIST").connection.setCheck("Array_"+this.listType_)},getVars:function(){return[this.getFieldValue("VAR")]},getVarDecl:function(){return[this.getFieldValue("VAR")]},
getType:function(){return this.listType_},onchange:function(){if(this.workspace&&2!=Blockly.Block.dragMode_){var a=this.getInputTargetBlock("LIST");a&&(a=a.outputConnection.check_[0],Blockly.Variables.updateType(this.getFieldValue("VAR"),a.replace("Array_","")))}},updateType_:function(a){this.listType_=a;this.getInput("LIST").connection.setCheck("Array_"+this.listType_);Blockly.Variables.updateType(this.getFieldValue("VAR"),a)},customContextMenu:Blockly.Blocks.robControls_for.customContextMenu};Blockly.Blocks.robSensors={};
Blockly.Blocks.robSensors_encoder_reset={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);var a=new Blockly.FieldDropdown([["A","A"],["B","B"],["C","C"],["D","D"]]);"botnroll"===this.workspace.device&&(a=new Blockly.FieldDropdown([[Blockly.Msg.MOTOR_LEFT,"B"],[Blockly.Msg.MOTOR_RIGHT,"C"]]));this.appendDummyInput().appendField(Blockly.Msg.SENSOR_RESET).appendField(Blockly.Msg.SENSOR_ENCODER).appendField(a,"SENSORPORT").appendField(Blockly.Msg.SENSOR_RESET_II);this.setPreviousStatement(!0);this.setNextStatement(!0);
this.setTooltip(Blockly.Msg.ENCODER_RESET_TOOLTIP)}};Blockly.Blocks.robSensors_gyro_reset={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);var a=new Blockly.FieldDropdown([["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]]);this.appendDummyInput().appendField(Blockly.Msg.SENSOR_RESET).appendField(Blockly.Msg.SENSOR_GYRO).appendField(a,"SENSORPORT").appendField(Blockly.Msg.SENSOR_RESET_II);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.GYRO_RESET_TOOLTIP)}};
Blockly.Blocks.robSensors_timer_reset={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);var a="nxt"===this.workspace.device||"botnroll"===this.workspace.device||"bob3"===this.workspace.device||"sensebox"===this.workspace.device||"wedo"===this.workspace.device?new Blockly.FieldDropdown([[Blockly.Msg.SENSOR_TIMER+" 1","1"]]):new Blockly.FieldDropdown([[Blockly.Msg.SENSOR_TIMER+" 1","1"],[Blockly.Msg.SENSOR_TIMER+" 2","2"],[Blockly.Msg.SENSOR_TIMER+" 3","3"],[Blockly.Msg.SENSOR_TIMER+" 4","4"],
[Blockly.Msg.SENSOR_TIMER+" 5","5"]]);this.appendDummyInput().appendField(Blockly.Msg.SENSOR_RESET).appendField(a,"SENSORPORT").appendField(Blockly.Msg.SENSOR_RESET_II);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.TIMER_RESET_TOOLTIP)}};
Blockly.Blocks.robSensors_compass_calibrate={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);var a=new Blockly.FieldDropdown([["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]]);this.appendDummyInput().appendField(Blockly.Msg.SENSOR_CALIBRATE).appendField(Blockly.Msg.SENSOR_COMPASS_EV3).appendField(a,"SENSORPORT");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.COMPASS_CALIBRATE_TOOLTIP)}};
Blockly.Blocks.mbedSensors_timer_reset={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.SENSOR_TIMER+" 1","1"]]);this.appendDummyInput().appendField(Blockly.Msg.SENSOR_RESET).appendField(a,"SENSORPORT").appendField(Blockly.Msg.SENSOR_RESET_II);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.TIMER_RESET_TOOLTIP)}};
Blockly.Blocks.edisonSensors_sensor_reset={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.SENSOR_INFRARED,"OBSTACLEDETECTOR"],[Blockly.Msg.SENSOR_KEYPAD,"KEYPAD"],[Blockly.Msg.SENSOR_SOUND,"SOUND"],[Blockly.Msg.SENSOR_IRSEEKER_EDISON,"RCCODE"]]);this.appendDummyInput().appendField(Blockly.Msg.SENSOR_RESET).appendField(a,"SENSOR").appendField(Blockly.Msg.SENSOR_RESET_II);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.SENSOR_RESET_TOOLTIP_EDISON)}};
Blockly.Blocks.robSensors_generic={init:function(a){this.setColour(Blockly.CAT_SENSOR_RGB);var b=this;if(a.modes[0].name&&!a.modes[0].question){var c=[];for(var d=0;d<a.modes.length;d++)c.push([Blockly.Msg["MODE_"+a.modes[d].name]||Blockly.checkMsgKey("MODE_"+a.modes[d].name),a.modes[d].name]);c=new Blockly.FieldDropdown(c,function(a){a&&this.sourceBlock_.getFieldValue("MODE")!==a&&this.sourceBlock_.updateShape_(a)})}else c=new Blockly.FieldHidden(a.modes[0].name);this.sensorPort_="NO";if("object"===
typeof a.ports){var e=[];if(a.ports[0].port){for(d=0;d<a.ports.length;d++)e.push([Blockly.Msg[a.ports[d].port[0]]||a.ports[d].port[0],a.ports[d].port[1]]);var f=new Blockly.FieldDropdown(e,function(a){a&&this.sourceBlock_.getFieldValue("SENSORPORT")!==a&&this.sourceBlock_.updatePort_(a)});this.sensorPort_=e[0][1]}else{for(d=0;d<a.ports.length;d++)e.push([Blockly.Msg[a.ports[d][0]]||a.ports[d][0],a.ports[d][1]]);f=new Blockly.FieldDropdown(e)}}else if(a.modes&&a.modes[0].ports){e=[];for(d=0;d<a.modes[0].ports.length;d++)e.push([Blockly.Msg[a.modes[0].ports[d][0]]||
a.modes[0].ports[d][0],a.modes[0].ports[d][1]]);f=new Blockly.FieldDropdown(e)}else"CONFIGURATION"===a.ports?(f=a.title,"OUT"===f&&(f=a.modes[0].name+f),f=getConfigPorts(f.toLowerCase()),this.dependConfig={type:this.sensor,dropDown:f}):f=new Blockly.FieldHidden;if(a.slots){e=[];for(d=0;d<a.slots.length;d++)e.push([Blockly.Msg[a.slots[d][0]]||a.slots[d][0],a.slots[d][1]]);d=new Blockly.FieldDropdown(e)}else if(a.ports&&a.ports[0].slots){e=[];for(d=0;d<a.ports[0].slots.length;d++)e.push([Blockly.Msg[a.ports[0].slots[d][0]]||
a.ports[0].slots[d][0],a.ports[0].slots[d][1]]);d=new Blockly.FieldDropdown(e)}else d=new Blockly.FieldHidden;e=a.modes[0];e.question?this.appendDummyInput("ROW").appendField(Blockly.Msg["SENSOR_"+a.title+"_"+this.workspace.device.toUpperCase()]||Blockly.Msg["SENSOR_"+a.title]||Blockly.checkMsgKey("SENSOR_"+a.title),"SENSORTITLE").appendField(c,"MODE").appendField(f,"SENSORPORT").appendField(d,"SLOT").appendField(Blockly.Msg["SENSOR_IS_"+e.name]||e.name):this.appendDummyInput("ROW").appendField(Blockly.Msg.GET).appendField(c,
"MODE").appendField(Blockly.Msg["SENSOR_UNIT_"+e.unit]||Blockly.checkMsgKey(e.unit),"UNIT").appendField(Blockly.Msg["SENSOR_"+a.title+"_"+this.workspace.device.toUpperCase()]||Blockly.Msg["SENSOR_"+a.title]||Blockly.checkMsgKey("SENSOR_"+a.title),"SENSORTITLE").appendField(f,"SENSORPORT").appendField(d,"SLOT");a.standardPort&&f.setValue(a.standardPort);this.sensorMode_=e.name;this.setOutput(!0,e.type);this.setTooltip(function(){var c=b.getFieldValue("MODE");return Blockly.Msg["SENSOR_"+a.title+"_"+
c+"_GETSAMPLE_TOOLTIP_"+b.workspace.device.toUpperCase()]||Blockly.Msg["SENSOR_"+a.title+"_"+c+"_GETSAMPLE_TOOLTIP"]||Blockly.Msg["SENSOR_"+a.title+"_GETSAMPLE_TOOLTIP"]||Blockly.checkMsgKey("SENSOR_"+a.title+"_GETSAMPLE_TOOLTIP")});this.type="robSensors_"+this.sensor+"_getSample";this.sensorMode_&&(this.mutationToDom=function(){var a=document.createElement("mutation");a.setAttribute("mode",this.sensorMode_);"NO"!==this.sensorPort_&&a.setAttribute("port",this.sensorPort_);return a},this.domToMutation=
function(a){this.sensorMode_=a.getAttribute("mode");this.updateShape_(this.sensorMode_);this.sensorPort_=a.getAttribute("port")||"NO";"NO"!==this.sensorPort_&&this.updatePort_(this.sensorPort_)},this.updateShape_=function(c){for(var d=0;d<a.modes.length;d++)if(a.modes[d].name===c){this.setOutput(!0,a.modes[d].type);var e=this.getField("UNIT");e&&e.setText(Blockly.Msg["SENSOR_UNIT_"+a.modes[d].unit]||Blockly.checkMsgKey(a.modes[d].unit));if(a.modes[d].ports){e=this.getInput("ROW");for(var f=[],g=e.fieldRow.length-
1;0<g&&"SENSORTITLE"!==e.fieldRow[g].name;g--)f.push(e.fieldRow[g].name);for(g=0;g<f.length;g++)e.removeField(f[g]);f=[];for(g=0;g<a.modes[d].ports.length;g++)f.push([Blockly.Msg[a.modes[d].ports[g][0]]||a.modes[d].ports[g][0],a.modes[d].ports[g][1]]);e.appendField(new Blockly.FieldDropdown(f),"SENSORPORT").appendField(new Blockly.FieldHidden,"SLOT")}"OUT"===a.title&&(e=c.toLowerCase()+"out",g=getConfigPorts(e),f=b.getField("SENSORPORT"),b.dependConfig.type=e,f.menuGenerator_=g.menuGenerator_,f.setValue(f.menuGenerator_[0][0]),
f.arrow_&&f.arrow_.replaceChild(document.createTextNode(" "),f.arrow_.childNodes[0]),1<f.menuGenerator_.length&&f.arrow_&&f.arrow_.replaceChild(document.createTextNode(" "+Blockly.FieldDropdown.ARROW_CHAR),f.arrow_.childNodes[0]))}this.sensorMode_=c},this.updatePort_=function(b){for(var c=0;c<a.ports.length;c++)if(a.ports[c].port[1]===b){for(var d=this.getInput("ROW"),e=[],f=d.fieldRow.length-1;0<f&&"SENSORPORT"!==d.fieldRow[f].name;f--)e.push(d.fieldRow[f].name);for(f=0;f<e.length;f++)d.removeField(e[f]);
e=[];for(f=0;f<a.ports[c].slots.length;f++)e.push([Blockly.Msg[a.ports[c].slots[f][0]]||a.ports[c].slots[f][0],a.ports[c].slots[f][1]]);a.modes[0].question?d.appendField(new Blockly.FieldDropdown(e),"SLOT").appendField(Blockly.Msg["SENSOR_IS_"+a.modes[0].name]||a.modes[0].name):d.appendField(new Blockly.FieldDropdown(e),"SLOT");this.render()}this.sensorPort_=b})}};
Blockly.Blocks.robSensors_generic_all={init:function(a){this.setColour(Blockly.CAT_SENSOR_RGB);this.sensors=[];this.ports=[];this.mutPorts=[];this.slots=[];for(var b=[],c=0;c<a.length;c++)for(var d=0;d<a[c].modes.length;d++)if(!(-1<a[c].modes[d].type.indexOf("Array"))){b.push([(Blockly.Msg["MODE_"+a[c].modes[d].name]||Blockly.checkMsgKey(a[c].modes[d].name))+" "+(Blockly.Msg["SENSOR_UNIT_"+a[c].modes[d].unit]||Blockly.checkMsgKey(a[c].modes[d].unit))+" "+(Blockly.Msg["SENSOR_"+a[c].title+"_"+this.workspace.device.toUpperCase()]||
Blockly.Msg["SENSOR_"+a[c].title]||Blockly.checkMsgKey(a[c].title)),a[c].title+"_"+a[c].modes[d].name]);if(a[c].ports){var e=[];if("CONFIGURATION"===a[c].ports){if(Blockly.Workspace.getByContainer("bricklyDiv")){var f=a[c].title;"OUT"===f&&(f=a[c].modes[0].name+f);for(var g=Blockly.Workspace.getByContainer("bricklyDiv").getAllBlocks(),h=0;h<g.length;h++){var k=g[h].getConfigDecl;k&&(k=k.call(),k.type.toUpperCase()===f&&e.push([k.name,k.name]))}}0===e.length&&e.push([Blockly.Msg.CONFIGURATION_NO_PORT||
Blockly.checkMsgKey("CONFIGURATION_NO_PORT"),(Blockly.Msg.CONFIGURATION_NO_PORT||Blockly.checkMsgKey("CONFIGURATION_NO_PORT")).toUpperCase()]);this.ports.push(e);this.mutPorts.push("NO")}else if(a[c].ports[0].port){for(f=0;f<a[c].ports.length;f++)e.push([Blockly.Msg[a[c].ports[f].port[0]]||a[c].ports[f].port[0],a[c].ports[f].port[1]]);this.ports.push(e);this.mutPorts.push(e[0][1])}else{for(f=0;f<a[c].ports.length;f++)e.push([Blockly.Msg[a[c].ports[f][0]]||a[c].ports[f][0],a[c].ports[f][1]]);this.ports.push(e);
this.mutPorts.push("NO")}}else{if(a[c].modes&&a[c].modes[d].ports){e=[];for(f=0;f<a[c].modes[d].ports.length;f++)e.push([Blockly.Msg[a[c].modes[d].ports[f][0]]||a[c].modes[d].ports[f][0],a[c].modes[d].ports[f][1]]);this.ports.push(e)}else this.ports.push([]);this.mutPorts.push("NO")}if(a[c].slots){e=[];for(f=0;f<a[c].slots.length;f++)e.push([Blockly.Msg[a[c].slots[f][0]]||a[c].slots[f][0],a[c].slots[f][1]]);this.slots.push(new Blockly.FieldDropdown(e))}else if(a[c].ports&&a[c].ports[0].slots){e=[];
for(g=0;g<a[c].ports.length;g++){h=[];for(f=0;f<a[c].ports[g].slots.length;f++)h.push([Blockly.Msg[a[c].ports[g].slots[f][0]]||a[c].ports[g].slots[f][0],a[c].ports[g].slots[f][1]]);e.push(new Blockly.FieldDropdown(h))}this.slots.push(e)}else this.slots.push(new Blockly.FieldHidden);this.sensors.push({name:a[c].title,mode:a[c].modes[d].name,type:a[c].modes[d].type,standardPort:a[c].standardPort,unit:a[c].modes[d].unit,op:a[c].modes[d].op,value:a[c].modes[d].value})}c=new Blockly.FieldDropdown(b,function(a){a&&
this.sourceBlock_.getFieldValue("SENSORTYPE")!==a&&this.sourceBlock_.updateShape_(a)});this.dropDownPorts="NO"==this.mutPorts[0]?0>=this.ports[0].length?new Blockly.FieldHidden:new Blockly.FieldDropdown(this.ports[0]):new Blockly.FieldDropdown(this.ports[0],function(a){a&&this.sourceBlock_.getFieldValue("SENSORPORT")!==a&&this.sourceBlock_.updatePort_(a)});d=this.slots[0];Array.isArray(this.slots[0])&&(d=this.slots[0][0]);this.appendDummyInput("ROW").appendField(Blockly.Msg.GET,"GET").appendField(c,
"SENSORTYPE").appendField(this.dropDownPorts,"SENSORPORT").appendField(d,"SLOT");this.setOutput(!0,a[0].modes[0].type);var l=this;this.setTooltip(function(){var a=l.getFieldValue("SENSORTYPE");return Blockly.Msg["SENSOR_"+a+"_GETSAMPLE_TOOLTIP_"+l.workspace.device.toUpperCase()]||Blockly.Msg["SENSOR_"+a+"_GETSAMPLE_TOOLTIP"]||Blockly.Msg["SENSOR_"+a.substr(0,a.indexOf("_"))+"_GETSAMPLE_TOOLTIP"]||Blockly.checkMsgKey("SENSOR_"+a.substr(0,a.indexOf("_"))+"_GETSAMPLE_TOOLTIP")});this.type="robSensors_getSample";
this.sensorType_=b[0][1];this.sensorPort_=this.mutPorts[0];this.mutationToDom=function(){var a=document.createElement("mutation");a.setAttribute("input",this.sensorType_);"NO"!==this.sensorPort_&&a.setAttribute("port",this.sensorPort_);return a};this.domToMutation=function(a){this.sensorType_=a.getAttribute("input");this.updateShape_(this.sensorType_);this.sensorPort_=a.getAttribute("port")||"NO";"NO"!==this.sensorPort_&&this.updatePort_(this.sensorPort_)};this.updatePort_=function(a){for(var b=this.getInput("ROW"),
c=[],d=b.fieldRow.length-1;0<d&&"SENSORPORT"!==b.fieldRow[d].name;d--)c.push(b.fieldRow[d].name);for(d=0;d<c.length;d++)b.removeField(c[d]);var e=this.getField("SENSORTYPE").getOptions_();for(d=c=0;d<e.length;d++)if(e[d][1]==this.sensorType_){c=d;break}e=this.getField("SENSORPORT").getOptions_();var f=0;for(d=0;d<e.length;d++)if(e[d][1]==a){f=d;break}b.appendField(this.slots[c][f],"SLOT");this.render();this.sensorPort_=a};this.updateShape_=function(b){this.sensorType_=b;b=this.getInput("ROW");for(var c=
[],d=0,e;e=b.fieldRow[d];d++)"SENSORTYPE"!==e.name&&"GET"!==e.name&&c.push(e.name);for(d=0;d<c.length;d++)b.removeField(c[d]);c=this.sensorType_.split("_");e=c[0];var f=c[1];for(d=c=0;d<this.sensors.length;d++)if(this.sensors[d].name==e&&this.sensors[d].mode==f){c=d;break}if("NO"==this.mutPorts[c]){if("CONFIGURATION"===this.ports[c].ports||a[c]&&"CONFIGURATION"===a[c].ports){d=[];var g=this.sensorType_.split("_")[0];"OUT"===g&&(g=this.sensorType_.split("_")[1]+g);if(Blockly.Workspace.getByContainer("bricklyDiv"))for(e=
Blockly.Workspace.getByContainer("bricklyDiv").getAllBlocks(),f=0;f<e.length;f++){var h=e[f].getConfigDecl;h&&(h=h.call(),h.type.toUpperCase()===g&&d.push([h.name,h.name]))}0===d.length&&d.push([Blockly.Msg.CONFIGURATION_NO_PORT||Blockly.checkMsgKey("CONFIGURATION_NO_PORT"),(Blockly.Msg.CONFIGURATION_NO_PORT||Blockly.checkMsgKey("CONFIGURATION_NO_PORT")).toUpperCase()]);this.ports[c]=d;this.dropDownPorts=new Blockly.FieldDropdown(this.ports[c]);this.dependConfig=function(){return{type:g.toLowerCase(),
dropDown:this.dropDownPorts}}}else delete this.dependConfig;this.dropDownPorts=0>=this.ports[c].length?new Blockly.FieldHidden:new Blockly.FieldDropdown(this.ports[c])}else this.dropDownPorts=new Blockly.FieldDropdown(this.ports[c],function(a){a&&this.sourceBlock_.getFieldValue("SENSOPORT")!==a&&this.sourceBlock_.updatePort_(a)});b.appendField(this.dropDownPorts,"SENSORPORT");this.slots[c].length?b.appendField(this.slots[c][0],"SLOT"):b.appendField(this.slots[c],"SLOT");this.sensors[c].standardPort&&
this.dropDownPorts.setValue(this.sensors[c].standardPort);this.sensorPort_=this.mutPorts[c];this.setOutput(!0,this.sensors[c].type);b=this.sensors[c].value||30;(d=this.getParent())&&"logic_compare"!=d.type&&(d=null);d&&(d.getInputTargetBlock("B")&&d.getInputTargetBlock("B").dispose(),e=null,"Number"==this.sensors[c].type?(d.updateShape(this.sensors[c].op||"NUM"),e=this.workspace.newBlock("math_number"),e.setFieldValue(b.toString(),"NUM")):"Boolean"==this.sensors[c].type?(d.updateShape("BOOL"),e=this.workspace.newBlock("logic_boolean")):
"String"==this.sensors[c].type?(d.updateShape("TEXT"),e=this.workspace.newBlock("text"),e.setFieldValue(b.toString(),"TEXT")):"Colour"==this.sensors[c].type?(d.updateShape("COLOUR"),e=this.workspace.newBlock("robColour_picker"),e.setFieldValue(this.sensors[c].value,"COLOUR")):(d.updateShape("BOOL"),e=this.workspace.newBlock("logic_boolean")),e.initSvg(),e.render(),d.inTask||e.setInTask(!1),d.getInput("B").connection.connect(e.outputConnection))}}};
function getConfigPorts(a){var b=[];if(Blockly.Workspace.getByContainer("bricklyDiv"))for(var c=Blockly.Workspace.getByContainer("bricklyDiv").getAllBlocks(),d=0;d<c.length;d++){var e=c[d].getConfigDecl;e&&(e=e.call(c[d]),e.type===a&&b.push([e.name,e.name]))}0===b.length&&b.push([Blockly.Msg.CONFIGURATION_NO_PORT||Blockly.checkMsgKey("CONFIGURATION_NO_PORT"),(Blockly.Msg.CONFIGURATION_NO_PORT||Blockly.checkMsgKey("CONFIGURATION_NO_PORT")).toUpperCase()]);return new Blockly.FieldDropdown(b)};Blockly.Blocks.robControls={};
Blockly.Blocks.robControls_start={init:function(){this.setColour(Blockly.CAT_ACTIVITY_RGB);switch(this.workspace.device){case "ev3":var a=new Blockly.FieldCheckbox("FALSE");var b=new Blockly.FieldDropdown([[Blockly.Msg.START_PROGRAM_DEBUG||"START_PROGRAM_DEBUG","a"]]);this.appendDummyInput().appendField(Blockly.Msg.START_PROGRAM).appendField(" ").appendField(a,"DEBUG").appendField(b);break;case "nao":b=new Blockly.FieldDropdown([[Blockly.Msg.START_PROGRAM_AUTOMOMOUSLIFE||"START_PROGRAM_AUTOMOMOUSLIFE",
"a"]]);a=new Blockly.FieldCheckbox("FALSE");this.appendDummyInput().appendField(Blockly.Msg.START_PROGRAM).appendField(" ").appendField(a,"DEBUG").appendField(b);break;default:a=new Blockly.FieldHidden,this.appendDummyInput().appendField(Blockly.Msg.START_PROGRAM).appendField(" ").appendField(a,"DEBUG")}this.declare_=!1;this.setPreviousStatement(!1);this.setNextStatement(!0);this.setDeletable(!1);this.setMutatorPlus(new Blockly.MutatorPlus(["robControls_start"]));this.setTooltip(Blockly.Msg.START_TOOLTIP)},
mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("declare",1==this.declare_);return a},domToMutation:function(a){if(this.declare_="false"!=a.getAttribute("declare"))this.appendStatementInput("ST"),this.getInput("ST").connection.setCheck("declaration_only")},updateShape_:function(a){if(1==a){this.declare_||(this.appendStatementInput("ST"),this.getInput("ST").connection.setCheck("declaration_only"),this.declare_=!0);a=this.workspace.newBlock("robGlobalVariables_declare");
a.initSvg();a.render();var b=a.getInput("VALUE");switch(this.workspace.device){case "edison":var c=this.workspace.newBlock("math_integer");break;default:c=this.workspace.newBlock("math_number")}c.initSvg();c.render();b.connection.connect(c.outputConnection);if(this.getInput("ST").connection.targetConnection){if(c=this.getInput("ST").connection.targetConnection.sourceBlock_)for(;c.getNextBlock();)c=c.getNextBlock();c.setNext(!0);b=c.nextConnection}else b=this.getInput("ST").connection;b.connect(a.previousConnection)}else-1==
a&&(this.removeInput("ST"),this.declare_=!1)}};
Blockly.Blocks.robControls_start_ardu={init:function(){this.setColour(Blockly.CAT_ACTIVITY_RGB);var a=new Blockly.FieldHidden;new Blockly.FieldDropdown([[Blockly.Msg.START_PROGRAM_DEBUG,"a"]]);this.appendDummyInput().appendField(Blockly.Msg.START_PROGRAM).appendField(" ").appendField(a,"DEBUG");this.declare_=!1;this.setPreviousStatement(!1);this.setNextStatement(!0,"botnroll");this.setDeletable(!1);this.setMutatorPlus(new Blockly.MutatorPlus(["robControls_start_ardu"]));this.setTooltip(Blockly.Msg.START_TOOLTIP)},
mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("declare",1==this.declare_);return a},domToMutation:function(a){if(this.declare_="false"!=a.getAttribute("declare"))this.appendStatementInput("ST"),this.getInput("ST").connection.setCheck("declaration_only")},updateShape_:function(a){if(1==a){this.declare_||(this.appendStatementInput("ST"),this.getInput("ST").connection.setCheck("declaration_only"),this.declare_=!0);a=this.workspace.newBlock("robGlobalVariables_declare");
a.initSvg();a.render();var b=a.getInput("VALUE"),c=this.workspace.newBlock("math_number");c.initSvg();c.render();b.connection.connect(c.outputConnection);if(this.getInput("ST").connection.targetConnection){if(c=this.getInput("ST").connection.targetConnection.sourceBlock_)for(;c.getNextBlock();)c=c.getNextBlock();c.setNext(!0);b=c.nextConnection}else b=this.getInput("ST").connection;b.connect(a.previousConnection)}else-1==a&&(this.removeInput("ST"),this.declare_=!1)}};
Blockly.Blocks.robControls_activity={init:function(){this.setColour(Blockly.CAT_ACTIVITY_RGB);this.appendDummyInput().appendField(new Blockly.FieldTextInput(Blockly.Msg.START_ACTIVITY,Blockly.Procedures.rename),"ACTIVITY");this.setPreviousStatement(!1);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.ACTIVITY_TOOLTIP)}};
Blockly.Blocks.robControls_start_activity={init:function(){this.setColour(Blockly.CAT_ACTIVITY_RGB);this.appendDummyInput().appendField(Blockly.Msg.START).appendField(new Blockly.FieldTextInput(Blockly.Msg.START_ACTIVITY,Blockly.Procedures.rename),"ACTIVITY");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.START_ACTIVITY_TOOLTIP)}};
Blockly.Blocks.robControls_wait={init:function(){this.setColour(Blockly.CAT_CONTROL_RGB);this.appendValueInput("WAIT0").appendField(Blockly.Msg.WAIT_UNTIL).setCheck("Boolean");this.setPreviousStatement(!0);this.setNextStatement(!0);this.waitCount_=0;this.setMutatorPlus(new Blockly.MutatorPlus(this));this.setBlocking(!0);this.setTooltip(Blockly.Msg.WAIT_TOOLTIP)},mutationToDom:function(){if(!this.waitCount_)return null;var a=document.createElement("mutation");this.waitCount_&&a.setAttribute("wait",
this.waitCount_);return a},domToMutation:function(a){this.waitCount_=parseInt(a.getAttribute("wait"),10);for(a=1;a<=this.waitCount_;a++)1==a&&this.appendStatementInput("DO0").appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO),this.appendValueInput("WAIT"+a).appendField(Blockly.Msg.WAIT_OR).setCheck("Boolean"),this.appendStatementInput("DO"+a).appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO);1<=this.waitCount_&&this.setMutatorMinus(new Blockly.MutatorMinus(this))},updateShape_:function(a){Blockly.dragMode_=
Blockly.DRAG_NONE;if(1==a)this.waitCount_++,1==this.waitCount_&&this.appendStatementInput("DO0").appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO),this.appendValueInput("WAIT"+this.waitCount_).appendField(Blockly.Msg.WAIT_OR).setCheck("Boolean"),this.appendStatementInput("DO"+this.waitCount_).appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO);else if(-1==a){if(a=this.getInputTargetBlock("DO"+this.waitCount_))a.unplug(),a.bumpNeighbours_();if(a=this.getInputTargetBlock("WAIT"+this.waitCount_))a.unplug(),
a.bumpNeighbours_();this.removeInput("DO"+this.waitCount_);this.removeInput("WAIT"+this.waitCount_);this.waitCount_--;0==this.waitCount_&&this.removeInput("DO0");this.itemCount_--;this.removeInput("ADD"+this.itemCount_)}1<=this.waitCount_?1==this.waitCount_&&(this.setMutatorMinus(new Blockly.MutatorMinus(this)),this.render()):(this.mutatorMinus.dispose(),this.mutatorMinus=null,this.render())}};
Blockly.Blocks.robControls_wait_time={init:function(){this.setColour(Blockly.CAT_CONTROL_RGB);this.appendValueInput("WAIT").appendField(Blockly.Msg.WAIT).setCheck("Number");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setBlocking(!0);this.setTooltip(Blockly.Msg.WAIT_TIME_TOOLTIP)}};
Blockly.Blocks.robControls_wait_for={init:function(){this.setColour(Blockly.CAT_CONTROL_RGB);this.appendValueInput("WAIT0").appendField(Blockly.Msg.WAIT_UNTIL).setCheck("Boolean");this.setPreviousStatement(!0);this.setNextStatement(!0);this.waitCount_=0;this.setMutatorPlus(new Blockly.MutatorPlus(this));this.setBlocking(!0);this.setTooltip(Blockly.Msg.WAIT_FOR_TOOLTIP)},mutationToDom:function(){if(!this.waitCount_)return null;var a=document.createElement("mutation");this.waitCount_&&a.setAttribute("wait",
this.waitCount_);return a},domToMutation:function(a){this.waitCount_=parseInt(a.getAttribute("wait"),10);for(a=1;a<=this.waitCount_;a++)1==a&&this.appendStatementInput("DO0").appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO),this.appendValueInput("WAIT"+a).appendField(Blockly.Msg.WAIT_OR).setCheck("Boolean"),this.appendStatementInput("DO"+a).appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO);1<=this.waitCount_&&this.setMutatorMinus(new Blockly.MutatorMinus(this))},updateShape_:function(a){Blockly.dragMode_=
Blockly.DRAG_NONE;if(1==a){this.waitCount_++;1==this.waitCount_&&this.appendStatementInput("DO0").appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO);this.appendValueInput("WAIT"+this.waitCount_).appendField(Blockly.Msg.WAIT_OR).setCheck("Boolean");this.appendStatementInput("DO"+this.waitCount_).appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO);a=this.workspace.newBlock("logic_compare");a.initSvg();a.render();a.updateShape("BOOL");var b=this.getInput("WAIT"+this.waitCount_).connection;b.connect(a.outputConnection);
var c="botnroll"===this.workspace.device?this.workspace.newBlock("robSensors_getSample_ardu"):"bob3"===this.workspace.device?this.workspace.newBlock("bob3Sensors_getSample_bob3"):this.workspace.newBlock("robSensors_getSample");c.initSvg();c.render();b=a.getInput("A").connection;b.connect(c.outputConnection);c=this.workspace.newBlock("logic_boolean");c.initSvg();c.render();b=a.getInput("B").connection;b.connect(c.outputConnection)}else if(-1==a){if(a=this.getInputTargetBlock("DO"+this.waitCount_))a.unplug(),
a.bumpNeighbours_();if(a=this.getInputTargetBlock("WAIT"+this.waitCount_))a.unplug(),a.bumpNeighbours_();this.removeInput("DO"+this.waitCount_);this.removeInput("WAIT"+this.waitCount_);this.waitCount_--;0==this.waitCount_&&this.removeInput("DO0")}1<=this.waitCount_?1==this.waitCount_&&(this.setMutatorMinus(new Blockly.MutatorMinus(this)),this.render()):(this.mutatorMinus.dispose(),this.mutatorMinus=null,this.render())}};
Blockly.Blocks.robControls_loopForever={init:function(){this.setColour(Blockly.CAT_CONTROL_RGB);var a=new Blockly.FieldLabel(Blockly.Msg.LOOP_FOREVER);this.appendDummyInput().appendField(a,"TITLE_FOREVER");this.appendStatementInput("DO").appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.LOOPFOREVER_TOOLTIP)}};
Blockly.Blocks.robControls_loopForever_ardu={init:function(){this.setColour(Blockly.CAT_ACTIVITY_RGB);var a=new Blockly.FieldLabel(Blockly.Msg.LOOP_FOREVER);this.appendDummyInput().appendField(a,"TITLE_FOREVER");this.appendStatementInput("DO").appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO);this.setPreviousStatement(!0,"botnroll");this.setNextStatement(!1);this.setDeletable(!1);this.setMovable(!1);this.setTooltip(Blockly.Msg.LOOPFOREVER_TOOLTIP)}};Blockly.Blocks.math={};Blockly.Blocks.math.HUE=230;Blockly.Blocks.math_number={init:function(){this.setHelpUrl(Blockly.Msg.MATH_NUMBER_HELPURL);this.setColour(Blockly.CAT_MATH_RGB);this.appendDummyInput().appendField(new Blockly.FieldNumber("0",Blockly.FieldTextInput.numberValidator),"NUM");this.setOutput(!0,"Number");var a=this;this.setTooltip(function(){var b=a.getParent();return b&&b.getInputsInline()&&b.tooltip||Blockly.Msg.MATH_NUMBER_TOOLTIP})}};
Blockly.Blocks.math_integer={init:function(){this.setHelpUrl(Blockly.Msg.MATH_NUMBER_HELPURL);this.setColour(Blockly.CAT_MATH_RGB);this.appendDummyInput().appendField(new Blockly.FieldNumber("0",Blockly.FieldTextInput.integerValidator),"NUM");this.setOutput(!0,"Number");var a=this;this.setTooltip(function(){var b=a.getParent();return b&&b.getInputsInline()&&b.tooltip||Blockly.Msg.MATH_NUMBER_TOOLTIP})}};
Blockly.Blocks.rob_math_number={init:function(){this.setColour(Blockly.CAT_MATH_RGB);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["0","0"],["1","1"],["2","3"],["4","4"],["5","5"],["6","6"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"]]),"NUM");this.setOutput(!0,"Number");var a=this;this.setTooltip(function(){var b=a.getParent();return b&&b.getInputsInline()&&b.tooltip||Blockly.Msg.MATH_NUMBER_TOOLTIP})}};
Blockly.Blocks.math_arithmetic={init:function(){this.jsonInit({message0:"%1 %2 %3",args0:[{type:"input_value",name:"A",check:"Number"},{type:"field_dropdown",name:"OP",options:[[Blockly.Msg.MATH_ADDITION_SYMBOL,"ADD"],[Blockly.Msg.MATH_SUBTRACTION_SYMBOL,"MINUS"],[Blockly.Msg.MATH_MULTIPLICATION_SYMBOL,"MULTIPLY"],[Blockly.Msg.MATH_DIVISION_SYMBOL,"DIVIDE"],[Blockly.Msg.MATH_POWER_SYMBOL,"POWER"]]},{type:"input_value",name:"B",check:"Number"}],inputsInline:!0,output:"Number",colour:Blockly.CAT_MATH_RGB,
helpUrl:Blockly.Msg.MATH_ARITHMETIC_HELPURL});var a=this;this.setTooltip(function(){var b=a.getFieldValue("OP");return{ADD:Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[b]})}};
Blockly.Blocks.math_single={init:function(){"edison"===this.workspace.device?this.jsonInit({message0:"%1 %2",args0:[{type:"field_dropdown",name:"OP",options:[[Blockly.Msg.MATH_SINGLE_OP_ABSOLUTE,"ABS"],["-","NEG"],["10^","POW10"]]},{type:"input_value",name:"NUM",check:"Number"}],output:"Number",colour:Blockly.CAT_MATH_RGB,helpUrl:Blockly.Msg.MATH_SINGLE_HELPURL}):this.jsonInit({message0:"%1 %2",args0:[{type:"field_dropdown",name:"OP",options:[[Blockly.Msg.MATH_SINGLE_OP_ROOT,"ROOT"],[Blockly.Msg.MATH_SINGLE_OP_ABSOLUTE,
"ABS"],["-","NEG"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]},{type:"input_value",name:"NUM",check:"Number"}],output:"Number",colour:Blockly.CAT_MATH_RGB,helpUrl:Blockly.Msg.MATH_SINGLE_HELPURL});var a=this;this.setTooltip(function(){var b=a.getFieldValue("OP");return{ROOT:Blockly.Msg.MATH_SINGLE_TOOLTIP_ROOT,ABS:Blockly.Msg.MATH_SINGLE_TOOLTIP_ABS,NEG:Blockly.Msg.MATH_SINGLE_TOOLTIP_NEG,LN:Blockly.Msg.MATH_SINGLE_TOOLTIP_LN,LOG10:Blockly.Msg.MATH_SINGLE_TOOLTIP_LOG10,EXP:Blockly.Msg.MATH_SINGLE_TOOLTIP_EXP,
POW10:Blockly.Msg.MATH_SINGLE_TOOLTIP_POW10}[b]})}};
Blockly.Blocks.math_trig={init:function(){this.jsonInit({message0:"%1 %2",args0:[{type:"field_dropdown",name:"OP",options:[[Blockly.Msg.MATH_TRIG_SIN,"SIN"],[Blockly.Msg.MATH_TRIG_COS,"COS"],[Blockly.Msg.MATH_TRIG_TAN,"TAN"],[Blockly.Msg.MATH_TRIG_ASIN,"ASIN"],[Blockly.Msg.MATH_TRIG_ACOS,"ACOS"],[Blockly.Msg.MATH_TRIG_ATAN,"ATAN"]]},{type:"input_value",name:"NUM",check:"Number"}],output:"Number",colour:Blockly.CAT_MATH_RGB,helpUrl:Blockly.Msg.MATH_TRIG_HELPURL});var a=this;this.setTooltip(function(){var b=
a.getFieldValue("OP");return{SIN:Blockly.Msg.MATH_TRIG_TOOLTIP_SIN,COS:Blockly.Msg.MATH_TRIG_TOOLTIP_COS,TAN:Blockly.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:Blockly.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:Blockly.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:Blockly.Msg.MATH_TRIG_TOOLTIP_ATAN}[b]})}};
Blockly.Blocks.math_constant={init:function(){"calliope"===this.workspace.device||"microbit"===this.workspace.device?this.jsonInit({message0:"%1",args0:[{type:"field_dropdown",name:"CONSTANT",options:[["\u03c0","PI"],["e","E"],["\u03c6","GOLDEN_RATIO"],["sqrt(2)","SQRT2"],["sqrt(\u00bd)","SQRT1_2"]]}],output:"Number",colour:Blockly.CAT_MATH_RGB,tooltip:Blockly.Msg.MATH_CONSTANT_TOOLTIP,helpUrl:Blockly.Msg.MATH_CONSTANT_HELPURL}):this.jsonInit({message0:"%1",args0:[{type:"field_dropdown",name:"CONSTANT",
options:[["\u03c0","PI"],["e","E"],["\u03c6","GOLDEN_RATIO"],["sqrt(2)","SQRT2"],["sqrt(\u00bd)","SQRT1_2"],["\u221e","INFINITY"]]}],output:"Number",colour:Blockly.CAT_MATH_RGB,tooltip:Blockly.Msg.MATH_CONSTANT_TOOLTIP,helpUrl:Blockly.Msg.MATH_CONSTANT_HELPURL})}};
Blockly.Blocks.math_number_property={init:function(){var a="edison"===this.workspace.device?[[Blockly.Msg.MATH_IS_EVEN,"EVEN"],[Blockly.Msg.MATH_IS_ODD,"ODD"],[Blockly.Msg.MATH_IS_PRIME,"PRIME"],[Blockly.Msg.MATH_IS_POSITIVE,"POSITIVE"],[Blockly.Msg.MATH_IS_NEGATIVE,"NEGATIVE"],[Blockly.Msg.MATH_IS_DIVISIBLE_BY,"DIVISIBLE_BY"]]:[[Blockly.Msg.MATH_IS_EVEN,"EVEN"],[Blockly.Msg.MATH_IS_ODD,"ODD"],[Blockly.Msg.MATH_IS_PRIME,"PRIME"],[Blockly.Msg.MATH_IS_WHOLE,"WHOLE"],[Blockly.Msg.MATH_IS_POSITIVE,"POSITIVE"],
[Blockly.Msg.MATH_IS_NEGATIVE,"NEGATIVE"],[Blockly.Msg.MATH_IS_DIVISIBLE_BY,"DIVISIBLE_BY"]];this.setColour(Blockly.CAT_MATH_RGB);this.appendValueInput("NUMBER_TO_CHECK").setCheck("Number");a=new Blockly.FieldDropdown(a,function(a){this.sourceBlock_.updateShape_("DIVISIBLE_BY"==a)});this.appendDummyInput().appendField(a,"PROPERTY");this.setInputsInline(!0);this.setOutput(!0,"Boolean");this.setTooltip(Blockly.Msg.MATH_IS_TOOLTIP)},mutationToDom:function(){var a=document.createElement("mutation"),b=
"DIVISIBLE_BY"==this.getFieldValue("PROPERTY");a.setAttribute("divisor_input",b);return a},domToMutation:function(a){a="true"==a.getAttribute("divisor_input");this.updateShape_(a)},updateShape_:function(a){var b=this.getInput("DIVISOR");a?b||this.appendValueInput("DIVISOR").setCheck("Number"):b&&this.removeInput("DIVISOR")}};
Blockly.Blocks.math_change={init:function(){this.jsonInit({message0:Blockly.Msg.MATH_CHANGE_TITLE,args0:[{type:"field_variable",name:"VAR",variable:Blockly.Msg.MATH_CHANGE_TITLE_ITEM},{type:"input_value",name:"DELTA",check:"Number"}],previousStatement:null,nextStatement:null,colour:Blockly.CAT_MATH_RGB,helpUrl:Blockly.Msg.MATH_CHANGE_HELPURL});var a=this;this.setTooltip(function(){return Blockly.Msg.MATH_CHANGE_TOOLTIP.replace("%1",a.getFieldValue("VAR"))})}};
Blockly.Blocks.math_round={init:function(){this.jsonInit({message0:"%1 %2",args0:[{type:"field_dropdown",name:"OP",options:[[Blockly.Msg.MATH_ROUND_OPERATOR_ROUND,"ROUND"],[Blockly.Msg.MATH_ROUND_OPERATOR_ROUNDUP,"ROUNDUP"],[Blockly.Msg.MATH_ROUND_OPERATOR_ROUNDDOWN,"ROUNDDOWN"]]},{type:"input_value",name:"NUM",check:"Number"}],output:"Number",colour:Blockly.CAT_MATH_RGB,tooltip:Blockly.Msg.MATH_ROUND_TOOLTIP,helpUrl:Blockly.Msg.MATH_ROUND_HELPURL})}};
Blockly.Blocks.math_on_list={init:function(){var a="edison"===this.workspace.device?[[Blockly.Msg.MATH_ONLIST_OPERATOR_SUM,"SUM"],[Blockly.Msg.MATH_ONLIST_OPERATOR_MIN,"MIN"],[Blockly.Msg.MATH_ONLIST_OPERATOR_MAX,"MAX"],[Blockly.Msg.MATH_ONLIST_OPERATOR_AVERAGE,"AVERAGE"]]:[[Blockly.Msg.MATH_ONLIST_OPERATOR_SUM,"SUM"],[Blockly.Msg.MATH_ONLIST_OPERATOR_MIN,"MIN"],[Blockly.Msg.MATH_ONLIST_OPERATOR_MAX,"MAX"],[Blockly.Msg.MATH_ONLIST_OPERATOR_AVERAGE,"AVERAGE"],[Blockly.Msg.MATH_ONLIST_OPERATOR_MEDIAN,
"MEDIAN"],[Blockly.Msg.MATH_ONLIST_OPERATOR_STD_DEV,"STD_DEV"],[Blockly.Msg.MATH_ONLIST_OPERATOR_RANDOM,"RANDOM"]],b=this;this.setHelpUrl(Blockly.Msg.MATH_ONLIST_HELPURL);this.setColour(Blockly.CAT_MATH_RGB);this.setOutput(!0,"Number");a=new Blockly.FieldDropdown(a,function(a){b.updateType_(a)});this.appendValueInput("LIST").setCheck("Array_Number").appendField(a,"OP");this.setTooltip(function(){var a=b.getFieldValue("OP");return{SUM:Blockly.Msg.MATH_ONLIST_TOOLTIP_SUM,MIN:Blockly.Msg.MATH_ONLIST_TOOLTIP_MIN,
MAX:Blockly.Msg.MATH_ONLIST_TOOLTIP_MAX,AVERAGE:Blockly.Msg.MATH_ONLIST_TOOLTIP_AVERAGE,MEDIAN:Blockly.Msg.MATH_ONLIST_TOOLTIP_MEDIAN,MODE:Blockly.Msg.MATH_ONLIST_TOOLTIP_MODE,STD_DEV:Blockly.Msg.MATH_ONLIST_TOOLTIP_STD_DEV,RANDOM:Blockly.Msg.MATH_ONLIST_TOOLTIP_RANDOM}[a]})},updateType_:function(a){"MODE"==a?this.outputConnection.setCheck("Array"):this.outputConnection.setCheck("Number")},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("op",this.getFieldValue("OP"));
return a},domToMutation:function(a){this.updateType_(a.getAttribute("op"))}};Blockly.Blocks.math_modulo={init:function(){this.jsonInit({message0:Blockly.Msg.MATH_MODULO_TITLE,args0:[{type:"input_value",name:"DIVIDEND",check:"Number"},{type:"input_value",name:"DIVISOR",check:"Number"}],inputsInline:!0,output:"Number",colour:Blockly.CAT_MATH_RGB,tooltip:Blockly.Msg.MATH_MODULO_TOOLTIP,helpUrl:Blockly.Msg.MATH_MODULO_HELPURL})}};
Blockly.Blocks.math_constrain={init:function(){this.jsonInit({message0:Blockly.Msg.MATH_CONSTRAIN_TITLE,args0:[{type:"input_value",name:"VALUE",check:"Number"},{type:"input_value",name:"LOW",check:"Number"},{type:"input_value",name:"HIGH",check:"Number"}],inputsInline:!0,output:"Number",colour:Blockly.CAT_MATH_RGB,tooltip:Blockly.Msg.MATH_CONSTRAIN_TOOLTIP,helpUrl:Blockly.Msg.MATH_CONSTRAIN_HELPURL})}};
Blockly.Blocks.math_random_int={init:function(){this.jsonInit({message0:Blockly.Msg.MATH_RANDOM_INT_TITLE,args0:[{type:"input_value",name:"FROM",check:"Number"},{type:"input_value",name:"TO",check:"Number"}],inputsInline:!0,output:"Number",colour:Blockly.CAT_MATH_RGB,tooltip:Blockly.Msg.MATH_RANDOM_INT_TOOLTIP,helpUrl:Blockly.Msg.MATH_RANDOM_INT_HELPURL})}};
Blockly.Blocks.math_random_float={init:function(){this.jsonInit({message0:Blockly.Msg.MATH_RANDOM_FLOAT_TITLE_RANDOM,output:"Number",colour:Blockly.CAT_MATH_RGB,tooltip:Blockly.Msg.MATH_RANDOM_FLOAT_TOOLTIP,helpUrl:Blockly.Msg.MATH_RANDOM_FLOAT_HELPURL})}};
Blockly.Blocks.robMath_change={init:function(){this.jsonInit({message0:Blockly.Msg.MATH_CHANGE_TITLE,args0:[{type:"input_value",name:"VAR",check:"Number"},{type:"input_value",name:"DELTA",check:"Number"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.CAT_MATH_RGB,helpUrl:Blockly.Msg.MATH_CHANGE_HELPURL});var a=this;this.setTooltip(function(){return Blockly.Msg.MATH_CHANGE_TOOLTIP.replace("%1",a.getFieldValue("VAR"))})},onchange:function(){if(this.workspace&&2!=Blockly.Block.dragMode_){var a=
this.getInputTargetBlock("VAR");a&&"variables_get"!==a.type&&(a.unplug(),a.bumpNeighbours_())}}};Blockly.Blocks.mbedImage={};
Blockly.Blocks.mbedImage_image={init:function(){this.setColour(Blockly.CAT_IMAGE_RGB);var a=this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT),b="mbot"===this.workspace.device?16:5,c="mbot"===this.workspace.device?8:5;a.appendField(new Blockly.FieldLabel("0","monospace"));for(var d=1;d<b;d++)10<=d?a.appendField(new Blockly.FieldLabel(" "+d,"monospace")):a.appendField(new Blockly.FieldLabel(" "+d,"monospace"));for(d=0;d<c;d++){a=this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT);a.appendField(new Blockly.FieldLabel(""+
d,"monospace"));for(var e=0;e<b;e++)a.appendField(new Blockly.FieldPixelbox(" ",this.validate_),"P"+e+d)}this.setOutput(!0,"Image");this.setTooltip(Blockly.Msg.IMAGE_TOOLTIP)},validate_:function(a){a=a.trim();return""==a||" "==a||" "==a.substring(1,1)?(Blockly.FieldTextInput.htmlInput_&&(Blockly.FieldTextInput.htmlInput_.value="#"),""):"#"==a.substring(0,1)?(Blockly.FieldTextInput.htmlInput_&&(Blockly.FieldTextInput.htmlInput_.value=""),"#"):"0"==a.substring(0,1)?"":"9"==a.substring(0,1)?"#":a.match(/^[1-8#]$/)&&
"calliope"===this.workspace.device?a:a.substring(0,1).match(/^[1-8#]/)&&"calliope"===this.workspace.device?a.substring(0,1):null}};
Blockly.Blocks.mbedImage_shift={init:function(){this.jsonInit({message0:Blockly.Msg.IMAGE_SHIFT+" %1 %2 %3",args0:[{type:"input_value",name:"A",check:"Image"},{type:"field_dropdown",name:"OP",options:[["\u2191","UP"],["\u2193","DOWN"],["\u2192","RIGHT"],["\u2190","LEFT"]]},{type:"input_value",name:"B",check:"Number"}],inputsInline:!0,output:"Image",colour:Blockly.CAT_IMAGE_RGB,tooltip:Blockly.Msg.IMAGE_SHIFT_TOOLTIP})}};
Blockly.Blocks.mbedImage_invert={init:function(){this.jsonInit({message0:Blockly.Msg.IMAGE_INVERT+" %1",args0:[{type:"input_value",name:"VAR",check:"Image"}],output:"Image",colour:Blockly.CAT_IMAGE_RGB,tooltip:Blockly.Msg.IMAGE_INVERT_TOOLTIP})}};
Blockly.Blocks.mbedImage_get_image={init:function(){var a=new Blockly.FieldDropdownImage([["heart","HEART"],["heart small","HEART_SMALL"],["happy","HAPPY"],["smile","SMILE"],["confused","CONFUSED"],["angry","ANGRY"],["asleep","ASLEEP"],["surprised","SURPRISED"],["silly","SILLY"],["fabulous","FABULOUS"],["meh!","MEH"],["yes","YES"],["no","NO"],["triangle","TRIANGLE"],["triangle left","TRIANGLE_LEFT"],["chessboard","CHESSBOARD"],["diamond","DIAMOND"],["diamond small","DIAMOND_SMALL"],["square","SQUARE"],
["square small","SQUARE_SMALL"],["rabbit","RABBIT"],["cow","COW"],["music crotchet","MUSIC_CROTCHET"],["music quaver","MUSIC_QUAVER"],["music quavers","MUSIC_QUAVERS"],["pitchfork","PITCHFORK"],["xmas","XMAS"],["pacman","PACMAN"],["target","TARGET"],["T-shirt","TSHIRT"],["rollerskate","ROLLERSKATE"],["duck","DUCK"],["house","HOUSE"],["tortoise","TORTOISE"],["butterfly","BUTTERFLY"],["stickfigure","STICKFIGURE"],["ghost","GHOST"],["sword","SWORD"],["giraffe","GIRAFFE"],["skull","SKULL"],["umbrella",
"UMBRELLA"],["snake","SNAKE"],["sad","SAD"]],"/dropDowns/",24,24,"png");this.setColour(Blockly.CAT_IMAGE_RGB);this.appendDummyInput().appendField(a,"IMAGE");this.setOutput(!0,"Image");var b=this;this.setTooltip(function(){var a=b.getFieldValue("IMAGE");return{HEART:Blockly.Msg.IMAGE_GET_TOOLTIP_HEART,HEART_SMALL:Blockly.Msg.IMAGE_GET_TOOLTIP_HEART_SMALL,SMILE:Blockly.Msg.IMAGE_GET_TOOLTIP_SMILE,CONFUSED:Blockly.Msg.IMAGE_GET_TOOLTIP_CONFUSED,ANGRY:Blockly.Msg.IMAGE_GET_TOOLTIP_ANGRY,ASLEEP:Blockly.Msg.IMAGE_GET_TOOLTIP_ASLEEP,
SILLY:Blockly.Msg.IMAGE_GET_TOOLTIP_SILLY,FABULOUS:Blockly.Msg.IMAGE_GET_TOOLTIP_FABULOUS,MEH:Blockly.Msg.IMAGE_GET_TOOLTIP_MEH,YES:Blockly.Msg.IMAGE_GET_TOOLTIP_YES,NO:Blockly.Msg.IMAGE_GET_TOOLTIP_NO,TRIANGLE:Blockly.Msg.IMAGE_GET_TOOLTIP_TRIANGLE,TRIANGLE_LEFT:Blockly.Msg.IMAGE_GET_TOOLTIP_TRIANGLE_LEFT,CHESSBOARD:Blockly.Msg.IMAGE_GET_TOOLTIP_CHESSBOARD,DIAMOND:Blockly.Msg.IMAGE_GET_TOOLTIP_DIAMOND,DIAMOND_SMALL:Blockly.Msg.IMAGE_GET_TOOLTIP_DIAMOND_SMALL,SQUARE:Blockly.Msg.IMAGE_GET_TOOLTIP_SQUARE,
SQUARE_SMALL:Blockly.Msg.IMAGE_GET_TOOLTIP_SQUARE_SMALL,RABBIT:Blockly.Msg.IMAGE_GET_TOOLTIP_RABBIT,COW:Blockly.Msg.IMAGE_GET_TOOLTIP_COW,MUSIC_CROTCHET:Blockly.Msg.IMAGE_GET_TOOLTIP_MUSIC_CROTCHET,MUSIC_QUAVER:Blockly.Msg.IMAGE_GET_TOOLTIP_MUSIC_QUAVER,MUSIC_QUAVERS:Blockly.Msg.IMAGE_GET_TOOLTIP_MUSIC_QUAVERS,PITCHFORK:Blockly.Msg.IMAGE_GET_TOOLTIP_PITCHFORK,XMAS:Blockly.Msg.IMAGE_GET_TOOLTIP_XMAS,PACMAN:Blockly.Msg.IMAGE_GET_TOOLTIP_PACMAN,TARGET:Blockly.Msg.IMAGE_GET_TOOLTIP_TARGET,TSHIRT:Blockly.Msg.IMAGE_GET_TOOLTIP_TSHIRT,
ROLLERSKATE:Blockly.Msg.IMAGE_GET_TOOLTIP_ROLLERSKATE,DUCK:Blockly.Msg.IMAGE_GET_TOOLTIP_DUCK,HOUSE:Blockly.Msg.IMAGE_GET_TOOLTIP_HOUSE,TORTOISE:Blockly.Msg.IMAGE_GET_TOOLTIP_TORTOISE,BUTTERFLY:Blockly.Msg.IMAGE_GET_TOOLTIP_BUTTERFLY,STICKFIGURE:Blockly.Msg.IMAGE_GET_TOOLTIP_STICKFIGURE,GHOST:Blockly.Msg.IMAGE_GET_TOOLTIP_GHOST,SWORD:Blockly.Msg.IMAGE_GET_TOOLTIP_SWORD,GIRAFFE:Blockly.Msg.IMAGE_GET_TOOLTIP_GIRAFFE,SKULL:Blockly.Msg.IMAGE_GET_TOOLTIP_SKULL,UMBRELLA:Blockly.Msg.IMAGE_GET_TOOLTIP_UMBRELLA,
SNAKE:Blockly.Msg.IMAGE_GET_TOOLTIP_SNAKE,SAD:Blockly.Msg.IMAGE_GET_TOOLTIP_SAD}[a]})}};Blockly.Blocks.lists={};Blockly.Blocks.lists.HUE=260;Blockly.Blocks.lists_create_empty={init:function(){this.jsonInit({message0:Blockly.Msg.LISTS_CREATE_EMPTY_TITLE,output:"Array",colour:Blockly.CAT_LIST_RGB,tooltip:Blockly.Msg.LISTS_CREATE_EMPTY_TOOLTIP,helpUrl:Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL})}};
Blockly.Blocks.lists_create_with={init:function(){this.setHelpUrl(Blockly.Msg.LISTS_CREATE_WITH_HELPURL);this.setColour(Blockly.CAT_LIST_RGB);this.itemCount_=3;this.updateShape_();this.setOutput(!0,"Array");this.setMutator(new Blockly.Mutator(["lists_create_with_item"]));this.setTooltip(Blockly.Msg.LISTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("items",this.itemCount_);return a},domToMutation:function(a){this.itemCount_=parseInt(a.getAttribute("items"),
10);this.updateShape_()},decompose:function(a){var b=a.newBlock("lists_create_with_container");b.initSvg();for(var c=b.getInput("STACK").connection,d=0;d<this.itemCount_;d++){var e=a.newBlock("lists_create_with_item");e.initSvg();c.connect(e.previousConnection);c=e.nextConnection}return b},compose:function(a){var b=a.getInputTargetBlock("STACK");for(a=[];b;)a.push(b.valueConnection_),b=b.nextConnection&&b.nextConnection.targetBlock();for(b=0;b<this.itemCount_;b++){var c=this.getInput("ADD"+b).connection.targetConnection;
c&&-1==a.indexOf(c)&&c.disconnect()}this.itemCount_=a.length;this.updateShape_();for(b=0;b<this.itemCount_;b++)Blockly.Mutator.reconnect(a[b],this,"ADD"+b)},saveConnections:function(a){a=a.getInputTargetBlock("STACK");for(var b=0;a;){var c=this.getInput("ADD"+b);a.valueConnection_=c&&c.connection.targetConnection;b++;a=a.nextConnection&&a.nextConnection.targetBlock()}},updateShape_:function(){this.itemCount_&&this.getInput("EMPTY")?this.removeInput("EMPTY"):this.itemCount_||this.getInput("EMPTY")||
this.appendDummyInput("EMPTY").appendField(Blockly.Msg.LISTS_CREATE_EMPTY_TITLE);for(var a=0;a<this.itemCount_;a++)if(!this.getInput("ADD"+a)){var b=this.appendValueInput("ADD"+a);0==a&&b.appendField(Blockly.Msg.LISTS_CREATE_WITH_INPUT_WITH)}for(;this.getInput("ADD"+a);)this.removeInput("ADD"+a),a++}};
Blockly.Blocks.lists_create_with_container={init:function(){this.setColour(Blockly.CAT_LIST_RGB);this.appendDummyInput().appendField(Blockly.Msg.LISTS_CREATE_WITH_CONTAINER_TITLE_ADD);this.appendStatementInput("STACK");this.setTooltip(Blockly.Msg.LISTS_CREATE_WITH_CONTAINER_TOOLTIP);this.contextMenu=!1}};
Blockly.Blocks.lists_create_with_item={init:function(){this.setColour(Blockly.CAT_LIST_RGB);this.appendDummyInput().appendField(Blockly.Msg.LISTS_CREATE_WITH_ITEM_TITLE);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.LISTS_CREATE_WITH_ITEM_TOOLTIP);this.contextMenu=!1}};
Blockly.Blocks.lists_repeat={init:function(){this.jsonInit({message0:Blockly.Msg.LISTS_REPEAT_TITLE,args0:[{type:"input_value",name:"ITEM"},{type:"input_value",name:"NUM",check:"Number"}],output:"Array",colour:Blockly.CAT_LIST_RGB,tooltip:Blockly.Msg.LISTS_REPEAT_TOOLTIP,helpUrl:Blockly.Msg.LISTS_REPEAT_HELPURL})}};
Blockly.Blocks.lists_length={init:function(){this.jsonInit({message0:Blockly.Msg.LISTS_LENGTH_TITLE,args0:[{type:"input_value",name:"VALUE",check:["String","Array"]}],output:"Number",colour:Blockly.CAT_LIST_RGB,tooltip:Blockly.Msg.LISTS_LENGTH_TOOLTIP,helpUrl:Blockly.Msg.LISTS_LENGTH_HELPURL})}};
Blockly.Blocks.lists_isEmpty={init:function(){this.jsonInit({message0:Blockly.Msg.LISTS_ISEMPTY_TITLE,args0:[{type:"input_value",name:"VALUE",check:["String","Array"]}],output:"Boolean",colour:Blockly.CAT_LIST_RGB,tooltip:Blockly.Msg.LISTS_ISEMPTY_TOOLTIP,helpUrl:Blockly.Msg.LISTS_ISEMPTY_HELPURL})}};
Blockly.Blocks.lists_indexOf={init:function(){var a=[[Blockly.Msg.LISTS_INDEX_OF_FIRST,"FIRST"],[Blockly.Msg.LISTS_INDEX_OF_LAST,"LAST"]];this.setHelpUrl(Blockly.Msg.LISTS_INDEX_OF_HELPURL);this.setColour(Blockly.CAT_LIST_RGB);this.setOutput(!0,"Number");this.appendValueInput("VALUE").setCheck("Array").appendField(Blockly.Msg.LISTS_INDEX_OF_INPUT_IN_LIST);this.appendValueInput("FIND").appendField(new Blockly.FieldDropdown(a),"END");this.setInputsInline(!0);this.setTooltip(Blockly.Msg.LISTS_INDEX_OF_TOOLTIP)}};
Blockly.Blocks.lists_getIndex={init:function(){var a=[[Blockly.Msg.LISTS_GET_INDEX_GET,"GET"],[Blockly.Msg.LISTS_GET_INDEX_GET_REMOVE,"GET_REMOVE"],[Blockly.Msg.LISTS_GET_INDEX_REMOVE,"REMOVE"]];this.WHERE_OPTIONS=[[Blockly.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Blockly.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Blockly.Msg.LISTS_GET_INDEX_FIRST,"FIRST"],[Blockly.Msg.LISTS_GET_INDEX_LAST,"LAST"],[Blockly.Msg.LISTS_GET_INDEX_RANDOM,"RANDOM"]];this.setHelpUrl(Blockly.Msg.LISTS_GET_INDEX_HELPURL);
this.setColour(Blockly.CAT_LIST_RGB);a=new Blockly.FieldDropdown(a,function(a){this.sourceBlock_.updateStatement_("REMOVE"==a)});this.appendValueInput("VALUE").setCheck("Array").appendField(Blockly.Msg.LISTS_GET_INDEX_INPUT_IN_LIST);this.appendDummyInput().appendField(a,"MODE").appendField("","SPACE");this.appendDummyInput("AT");Blockly.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(Blockly.Msg.LISTS_GET_INDEX_TAIL);this.setInputsInline(!0);this.setOutput(!0);this.updateAt_(!0);
var b=this;this.setTooltip(function(){var a=b.getFieldValue("MODE")+"_"+b.getFieldValue("WHERE");return Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_"+a]})},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("statement",!this.outputConnection);var b=this.getInput("AT").type==Blockly.INPUT_VALUE;a.setAttribute("at",b);return a},domToMutation:function(a){var b="true"==a.getAttribute("statement");this.updateStatement_(b);a="false"!=a.getAttribute("at");this.updateAt_(a)},updateStatement_:function(a){a!=
!this.outputConnection&&(this.unplug(!0,!0),a?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(a){this.removeInput("AT");this.removeInput("ORDINAL",!0);a?(this.appendValueInput("AT").setCheck("Number"),Blockly.Msg.ORDINAL_NUMBER_SUFFIX&&this.appendDummyInput("ORDINAL").appendField(Blockly.Msg.ORDINAL_NUMBER_SUFFIX)):this.appendDummyInput("AT");var b=new Blockly.FieldDropdown(this.WHERE_OPTIONS,
function(b){var c="FROM_START"==b||"FROM_END"==b;if(c!=a){var e=this.sourceBlock_;e.updateAt_(c);e.setFieldValue(b,"WHERE");return null}});this.getInput("AT").appendField(b,"WHERE");Blockly.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}};
Blockly.Blocks.lists_setIndex={init:function(){var a=[[Blockly.Msg.LISTS_SET_INDEX_SET,"SET"],[Blockly.Msg.LISTS_SET_INDEX_INSERT,"INSERT"]];this.WHERE_OPTIONS=[[Blockly.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Blockly.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Blockly.Msg.LISTS_GET_INDEX_FIRST,"FIRST"],[Blockly.Msg.LISTS_GET_INDEX_LAST,"LAST"],[Blockly.Msg.LISTS_GET_INDEX_RANDOM,"RANDOM"]];this.setHelpUrl(Blockly.Msg.LISTS_SET_INDEX_HELPURL);this.setColour(Blockly.CAT_LIST_RGB);this.appendValueInput("LIST").setCheck("Array").appendField(Blockly.Msg.LISTS_SET_INDEX_INPUT_IN_LIST);
this.appendDummyInput().appendField(new Blockly.FieldDropdown(a),"MODE").appendField("","SPACE");this.appendDummyInput("AT");this.appendValueInput("TO").appendField(Blockly.Msg.LISTS_SET_INDEX_INPUT_TO);this.setInputsInline(!0);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.LISTS_SET_INDEX_TOOLTIP);this.updateAt_(!0);var b=this;this.setTooltip(function(){var a=b.getFieldValue("MODE")+"_"+b.getFieldValue("WHERE");return Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_"+a]})},
mutationToDom:function(){var a=document.createElement("mutation"),b=this.getInput("AT").type==Blockly.INPUT_VALUE;a.setAttribute("at",b);return a},domToMutation:function(a){a="false"!=a.getAttribute("at");this.updateAt_(a)},updateAt_:function(a){this.removeInput("AT");this.removeInput("ORDINAL",!0);a?(this.appendValueInput("AT").setCheck("Number"),Blockly.Msg.ORDINAL_NUMBER_SUFFIX&&this.appendDummyInput("ORDINAL").appendField(Blockly.Msg.ORDINAL_NUMBER_SUFFIX)):this.appendDummyInput("AT");var b=new Blockly.FieldDropdown(this.WHERE_OPTIONS,
function(b){var c="FROM_START"==b||"FROM_END"==b;if(c!=a){var e=this.sourceBlock_;e.updateAt_(c);e.setFieldValue(b,"WHERE");return null}});this.moveInputBefore("AT","TO");this.getInput("ORDINAL")&&this.moveInputBefore("ORDINAL","TO");this.getInput("AT").appendField(b,"WHERE")}};
Blockly.Blocks.lists_getSublist={init:function(){this.WHERE_OPTIONS_1=[[Blockly.Msg.LISTS_GET_SUBLIST_START_FROM_START,"FROM_START"],[Blockly.Msg.LISTS_GET_SUBLIST_START_FROM_END,"FROM_END"],[Blockly.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]];this.WHERE_OPTIONS_2=[[Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[Blockly.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]];this.setHelpUrl(Blockly.Msg.LISTS_GET_SUBLIST_HELPURL);this.setColour(Blockly.CAT_LIST_RGB);
this.appendValueInput("LIST").setCheck("Array").appendField(Blockly.Msg.LISTS_GET_SUBLIST_INPUT_IN_LIST);this.appendDummyInput("AT1");this.appendDummyInput("AT2");Blockly.Msg.LISTS_GET_SUBLIST_TAIL&&this.appendDummyInput("TAIL").appendField(Blockly.Msg.LISTS_GET_SUBLIST_TAIL);this.setInputsInline(!0);this.setOutput(!0,"Array");this.updateAt_(1,!0);this.updateAt_(2,!0);this.setTooltip(Blockly.Msg.LISTS_GET_SUBLIST_TOOLTIP)},mutationToDom:function(){var a=document.createElement("mutation"),b=this.getInput("AT1").type==
Blockly.INPUT_VALUE;a.setAttribute("at1",b);b=this.getInput("AT2").type==Blockly.INPUT_VALUE;a.setAttribute("at2",b);return a},domToMutation:function(a){var b="true"==a.getAttribute("at1");a="true"==a.getAttribute("at2");this.updateAt_(1,b);this.updateAt_(2,a)},updateAt_:function(a,b){this.removeInput("AT"+a);this.removeInput("ORDINAL"+a,!0);b?(this.appendValueInput("AT"+a).setCheck("Number"),Blockly.Msg.ORDINAL_NUMBER_SUFFIX&&this.appendDummyInput("ORDINAL"+a).appendField(Blockly.Msg.ORDINAL_NUMBER_SUFFIX)):
this.appendDummyInput("AT"+a);var c=new Blockly.FieldDropdown(this["WHERE_OPTIONS_"+a],function(c){var d="FROM_START"==c||"FROM_END"==c;if(d!=b){var f=this.sourceBlock_;f.updateAt_(a,d);f.setFieldValue(c,"WHERE"+a);return null}});this.getInput("AT"+a).appendField(c,"WHERE"+a);1==a&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"));Blockly.Msg.LISTS_GET_SUBLIST_TAIL&&this.moveInputBefore("TAIL",null)}};
Blockly.Blocks.lists_sort={init:function(){this.jsonInit({message0:Blockly.Msg.LISTS_SORT_TITLE,args0:[{type:"field_dropdown",name:"TYPE",options:[[Blockly.Msg.LISTS_SORT_TYPE_NUMERIC,"NUMERIC"],[Blockly.Msg.LISTS_SORT_TYPE_TEXT,"TEXT"],[Blockly.Msg.LISTS_SORT_TYPE_IGNORECASE,"IGNORE_CASE"]]},{type:"field_dropdown",name:"DIRECTION",options:[[Blockly.Msg.LISTS_SORT_ORDER_ASCENDING,"1"],[Blockly.Msg.LISTS_SORT_ORDER_DESCENDING,"-1"]]},{type:"input_value",name:"LIST",check:"Array"}],output:"Array",colour:Blockly.Blocks.lists.HUE,
tooltip:Blockly.Msg.LISTS_SORT_TOOLTIP,helpUrl:Blockly.Msg.LISTS_SORT_HELPURL})}};
Blockly.Blocks.lists_split={init:function(){var a=this,b=new Blockly.FieldDropdown([[Blockly.Msg.LISTS_SPLIT_LIST_FROM_TEXT,"SPLIT"],[Blockly.Msg.LISTS_SPLIT_TEXT_FROM_LIST,"JOIN"]],function(b){a.updateType_(b)});this.setHelpUrl(Blockly.Msg.LISTS_SPLIT_HELPURL);this.setColour(Blockly.CAT_LIST_RGB);this.appendValueInput("INPUT").setCheck("String").appendField(b,"MODE");this.appendValueInput("DELIM").setCheck("String").appendField(Blockly.Msg.LISTS_SPLIT_WITH_DELIMITER);this.setInputsInline(!0);this.setOutput(!0,
"Array");this.setTooltip(function(){var b=a.getFieldValue("MODE");if("SPLIT"==b)return Blockly.Msg.LISTS_SPLIT_TOOLTIP_SPLIT;if("JOIN"==b)return Blockly.Msg.LISTS_SPLIT_TOOLTIP_JOIN;throw"Unknown mode: "+b;})},updateType_:function(a){"SPLIT"==a?(this.outputConnection.setCheck("Array"),this.getInput("INPUT").setCheck("String")):(this.outputConnection.setCheck("String"),this.getInput("INPUT").setCheck("Array"))},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("mode",
this.getFieldValue("MODE"));return a},domToMutation:function(a){this.updateType_(a.getAttribute("mode"))}};
Blockly.Blocks.robLists_create_with={init:function(){this.setColour(Blockly.CAT_LIST_RGB);this.setInputsInline(!1);this.setMutatorPlus(new Blockly.MutatorPlus(this));this.setInputsInline(!1);this.setTooltip(Blockly.Msg.LISTS_CREATE_WITH_TOOLTIP);this.listType_="Number";this.itemCount_=3},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("items",this.itemCount_);a.setAttribute("list_type",this.listType_);return a},domToMutation:function(a){var b=parseInt(a.getAttribute("items"),
10);a=a.getAttribute("list_type");this.createIt(b,a)},createIt:function(a,b){this.itemCount_=a;this.listType_=b;var c=Blockly.LIST_TYPE_DROPDOWN(this.workspace.device);c.setValue(this.listType_);for(var d=0;d<this.itemCount_;d++)0==d?this.appendValueInput("ADD0").appendField(Blockly.Msg.LISTS_CREATE_TITLE).appendField(":").appendField(c,"LIST_TYPE").appendField(Blockly.RTL?"\u2192":"\u2190").setCheck(this.listType_):this.appendValueInput("ADD"+d).setCheck(this.listType_);0==this.itemCount_?this.appendDummyInput("EMPTY").appendField(Blockly.Msg.LISTS_CREATE_EMPTY_TITLE).appendField(":").appendField(c,
"LIST_TYPE"):this.setMutatorMinus(new Blockly.MutatorMinus(this));this.setOutput(!0,"Array_"+this.listType_)},updateShape_:function(a){Blockly.dragMode_=Blockly.DRAG_NONE;var b=Blockly.LIST_TYPE_DROPDOWN(this.workspace.device);b.setValue(this.listType_);if(1==a)0==this.itemCount_?(this.removeInput("EMPTY"),this.appendValueInput("ADD0").appendField(Blockly.Msg.LISTS_CREATE_TITLE).appendField(":").appendField(b,"LIST_TYPE").appendField(Blockly.RTL?"\u2192":"\u2190").setCheck(this.listType_),this.setInputsInline(!1),
this.setMutatorMinus(new Blockly.MutatorMinus(this))):this.appendValueInput("ADD"+this.itemCount_).setCheck(this.listType_),a=this.getNewValue(),a.initSvg(),a.render(),this.getInput("ADD"+this.itemCount_).connection.connect(a.outputConnection),this.itemCount_++;else if(-1==a){this.itemCount_--;if(a=this.getInputTargetBlock("ADD"+this.itemCount_))a.unplug(),a.bumpNeighbours_();this.removeInput("ADD"+this.itemCount_)}0==this.itemCount_&&(this.appendDummyInput("EMPTY").appendField(Blockly.Msg.LISTS_CREATE_EMPTY_TITLE).appendField(":").appendField(b,
"LIST_TYPE"),this.mutatorMinus.dispose(),this.mutatorMinus=null);this.render()},updateType_:function(a){this.listType_=a;for(var b=0;b<this.itemCount_;b++){var c=this.getInputTargetBlock("ADD"+b);c&&c.dispose();c=this.getInput("ADD"+b);c.setCheck(a);var d=this.getNewValue();d.initSvg();d.render();c.connection.connect(d.outputConnection)}this.setOutput(!0,"Array_"+this.listType_)},getNewValue:function(){var a;switch(this.listType_){case "Number":switch(this.workspace.device){case "edison":return a=
this.workspace.newBlock("math_integer");default:return a=this.workspace.newBlock("math_number")}case "String":return a=this.workspace.newBlock("text");case "Boolean":return a=this.workspace.newBlock("logic_boolean");case "Colour":switch(this.workspace.device){case "microbit":case "calliope":a=this.workspace.newBlock("mbedColour_picker");break;case "nao":a=this.workspace.newBlock("naoColour_picker");break;default:a=this.workspace.newBlock("robColour_picker")}return a;case "Image":switch(this.workspace.device){case "microbit":case "calliope":a=
this.workspace.newBlock("mbedImage_get_image");break;case "mbot":a=this.workspace.newBlock("mBotImage_image")}return a;case "Connection":return a=this.workspace.newBlock("logic_null")}},onchange:function(a){this.workspace&&2!=Blockly.Block.dragMode_&&"nxt"===this.workspace.device&&((a=this.getSurroundParent())&&-1!=a.type.indexOf("Variables_declare")?this.setErrorText(null):this.setErrorText(Blockly.Msg.ORA_LIST_CREATE_WITH_ERROR))}};
Blockly.Blocks.robLists_repeat={init:function(){this.jsonInit({message0:Blockly.Msg.LISTS_REPEAT_TITLE,args0:[{type:"input_value",name:"ITEM"},{type:"input_value",name:"NUM",check:"Number"}],output:"Array_Number",colour:Blockly.CAT_LIST_RGB,tooltip:Blockly.Msg.LISTS_REPEAT_TOOLTIP,helpUrl:Blockly.Msg.LISTS_REPEAT_HELPURL});var a=this.getInput("ITEM").fieldRow[0].text_,b=this.getInput("NUM").fieldRow[0].text_,c=this.getInput("").fieldRow[0].text_;this.removeInput("NUM");this.removeInput("ITEM");this.removeInput("");
this.listDeclType_=Blockly.LIST_TYPE_DROPDOWN(this.workspace.device);this.appendValueInput("ITEM").appendField(a).appendField(this.listDeclType_,"LIST_TYPE");this.appendValueInput("NUM").appendField(b).setCheck("Number");this.appendDummyInput().appendField(c);this.listType_="Number"},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("list_type",this.listType_);return a},domToMutation:function(a){this.listType_=a.getAttribute("list_type");this.updateType_(this.listType_)},
updateType_:function(a){this.listType_=a;this.getInput("ITEM").setCheck(a);this.setOutput(!0,"Array_"+this.listType_)}};Blockly.Blocks.robLists_length={init:function(){this.jsonInit({message0:Blockly.Msg.LISTS_LENGTH_TITLE,args0:[{type:"input_value",name:"VALUE",check:"Array_Number Array_String Array_Boolean Array_Colour Array_Connection Array_Image".split(" ")}],output:"Number",colour:Blockly.CAT_LIST_RGB,tooltip:Blockly.Msg.LISTS_LENGTH_TOOLTIP,helpUrl:Blockly.Msg.LISTS_LENGTH_HELPURL})}};
Blockly.Blocks.robLists_isEmpty={init:function(){this.jsonInit({message0:Blockly.Msg.LISTS_ISEMPTY_TITLE,args0:[{type:"input_value",name:"VALUE",check:"Array_Number Array_String Array_Boolean Array_Colour Array_Connection Array_Image".split(" ")}],output:"Boolean",colour:Blockly.CAT_LIST_RGB,tooltip:Blockly.Msg.LISTS_ISEMPTY_TOOLTIP,helpUrl:Blockly.Msg.LISTS_ISEMPTY_HELPURL})}};
Blockly.Blocks.robLists_indexOf={init:function(){var a=[[Blockly.Msg.LISTS_INDEX_OF_FIRST,"FIRST"],[Blockly.Msg.LISTS_INDEX_OF_LAST,"LAST"]];this.setHelpUrl(Blockly.Msg.LISTS_INDEX_OF_HELPURL);this.setColour(Blockly.CAT_LIST_RGB);this.setOutput(!0,"Number");this.appendValueInput("VALUE").setCheck("Array_Number Array_String Array_Boolean Array_Colour Array_Connection Array_Image".split(" ")).appendField(Blockly.Msg.LISTS_INDEX_OF_INPUT_IN_LIST);this.appendValueInput("FIND").appendField(new Blockly.FieldDropdown(a),
"END");this.setInputsInline(!0);this.setTooltip(Blockly.Msg.LISTS_INDEX_OF_TOOLTIP)},onchange:function(){if(this.workspace&&2!=Blockly.Block.dragMode_){var a=this.getInputTargetBlock("VALUE"),b=this.getInputTargetBlock("FIND");a?this.getInput("FIND").setCheck(a.outputConnection.check_[0].replace("Array_","")):this.getInput("FIND").setCheck("Number String Boolean Colour Connection String Image".split(" "));b?this.getInput("VALUE").setCheck("Array_"+b.outputConnection.check_[0]):this.getInput("VALUE").setCheck("Array_Number Array_String Array_Boolean Array_Colour Array_Connection Array_Image".split(" "));
this.render()}}};
Blockly.Blocks.robLists_getIndex={init:function(){var a="nxt"===this.workspace.device||"edison"===this.workspace.device?[[Blockly.Msg.LISTS_GET_INDEX_GET,"GET"]]:[[Blockly.Msg.LISTS_GET_INDEX_GET,"GET"],[Blockly.Msg.LISTS_GET_INDEX_GET_REMOVE,"GET_REMOVE"],[Blockly.Msg.LISTS_GET_INDEX_REMOVE,"REMOVE"]];this.WHERE_OPTIONS="edison"===this.workspace.device?[[Blockly.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"]]:[[Blockly.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Blockly.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],
[Blockly.Msg.LISTS_GET_INDEX_FIRST,"FIRST"],[Blockly.Msg.LISTS_GET_INDEX_LAST,"LAST"]];this.setHelpUrl(Blockly.Msg.LISTS_GET_INDEX_HELPURL);this.setColour(Blockly.CAT_LIST_RGB);a=new Blockly.FieldDropdown(a,function(a){this.sourceBlock_.updateStatement_("REMOVE"==a)});this.appendValueInput("VALUE").setCheck("Array_Number Array_String Array_Boolean Array_Colour Array_Connection Array_Image".split(" ")).appendField(Blockly.Msg.LISTS_GET_INDEX_INPUT_IN_LIST);this.appendDummyInput().appendField(a,"MODE").appendField("",
"SPACE");this.appendDummyInput("AT");Blockly.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(Blockly.Msg.LISTS_GET_INDEX_TAIL);this.setInputsInline(!0);this.dataType_="Number";this.setOutput(!0,this.dataType_);this.updateAt_(!0);var b=this;this.setTooltip(function(){var a=b.getFieldValue("MODE")+"_"+b.getFieldValue("WHERE");return Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_"+a]})},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("statement",!this.outputConnection);
var b=this.getInput("AT").type==Blockly.INPUT_VALUE;a.setAttribute("at",b);a.setAttribute("datatype",this.dataType_);return a},domToMutation:function(a){(this.dataType_=a.getAttribute("datatype"))&&this.setOutput(!0,this.dataType_);var b="true"==a.getAttribute("statement");this.updateStatement_(b);a="false"!=a.getAttribute("at");this.updateAt_(a)},updateStatement_:function(a){a!=!this.outputConnection&&(this.unplug(!0,!0),this.bumpNeighbours_(),a?(this.setOutput(!1),this.setPreviousStatement(!0),
this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(a){this.removeInput("AT");this.removeInput("ORDINAL",!0);a?(this.appendValueInput("AT").setCheck("Number"),Blockly.Msg.ORDINAL_NUMBER_SUFFIX&&this.appendDummyInput("ORDINAL").appendField(Blockly.Msg.ORDINAL_NUMBER_SUFFIX)):this.appendDummyInput("AT");var b=new Blockly.FieldDropdown(this.WHERE_OPTIONS,function(b){var c="FROM_START"==b||"FROM_END"==b;if(c!=a){var e=this.sourceBlock_;
e.updateAt_(c);e.setFieldValue(b,"WHERE");return null}});this.getInput("AT").appendField(b,"WHERE");Blockly.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)},onchange:function(){if(this.workspace&&2!=Blockly.Block.dragMode_&&!this.previousConnection){var a=this.getInputTargetBlock("VALUE");a?(this.setOutput(!0,a.outputConnection.check_[0].replace("Array_","")),this.dataType_=a.outputConnection.check_[0].replace("Array_","")):(this.setOutput(!0,"Number"),this.dataType_="Number");this.render()}}};
Blockly.Blocks.robLists_setIndex={init:function(){var a="nxt"===this.workspace.device||"edison"===this.workspace.device?[[Blockly.Msg.LISTS_SET_INDEX_SET,"SET"]]:[[Blockly.Msg.LISTS_SET_INDEX_SET,"SET"],[Blockly.Msg.LISTS_SET_INDEX_INSERT,"INSERT"]];this.WHERE_OPTIONS="edison"===this.workspace.device?[[Blockly.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"]]:[[Blockly.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Blockly.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Blockly.Msg.LISTS_GET_INDEX_FIRST,"FIRST"],
[Blockly.Msg.LISTS_GET_INDEX_LAST,"LAST"]];this.setHelpUrl(Blockly.Msg.LISTS_SET_INDEX_HELPURL);this.setColour(Blockly.CAT_LIST_RGB);this.appendValueInput("LIST").setCheck("Array_Number Array_String Array_Boolean Array_Colour Array_Connection String Array_Image".split(" ")).appendField(Blockly.Msg.LISTS_SET_INDEX_INPUT_IN_LIST);this.appendDummyInput().appendField(new Blockly.FieldDropdown(a),"MODE").appendField("","SPACE");this.appendDummyInput("AT");this.appendValueInput("TO").appendField(Blockly.Msg.LISTS_SET_INDEX_INPUT_TO);
this.setInputsInline(!0);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.LISTS_SET_INDEX_TOOLTIP);this.updateAt_(!0);var b=this;this.setTooltip(function(){var a=b.getFieldValue("MODE")+"_"+b.getFieldValue("WHERE");return Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_"+a]})},mutationToDom:function(){var a=document.createElement("mutation"),b=this.getInput("AT").type==Blockly.INPUT_VALUE;a.setAttribute("at",b);return a},domToMutation:function(a){a="false"!=a.getAttribute("at");
this.updateAt_(a)},updateAt_:function(a){this.removeInput("AT");this.removeInput("ORDINAL",!0);a?(this.appendValueInput("AT").setCheck("Number"),Blockly.Msg.ORDINAL_NUMBER_SUFFIX&&this.appendDummyInput("ORDINAL").appendField(Blockly.Msg.ORDINAL_NUMBER_SUFFIX)):this.appendDummyInput("AT");var b=new Blockly.FieldDropdown(this.WHERE_OPTIONS,function(b){var c="FROM_START"==b||"FROM_END"==b;if(c!=a){var e=this.sourceBlock_;e.updateAt_(c);e.setFieldValue(b,"WHERE");return null}});this.moveInputBefore("AT",
"TO");this.getInput("ORDINAL")&&this.moveInputBefore("ORDINAL","TO");this.getInput("AT").appendField(b,"WHERE")},onchange:function(){if(this.workspace&&2!=Blockly.Block.dragMode_){var a=this.getInputTargetBlock("LIST"),b=this.getInputTargetBlock("TO");a?this.getInput("TO").setCheck(a.outputConnection.check_[0].replace("Array_","")):this.getInput("TO").setCheck("Number String Boolean Colour Connection String Image".split(" "));b?this.getInput("LIST").setCheck("Array_"+b.outputConnection.check_[0]):
this.getInput("LIST").setCheck("Array_Number Array_String Array_Boolean Array_Colour Array_Connection String Array_Image".split(" "));this.render()}}};
Blockly.Blocks.robLists_getSublist={init:function(){this.WHERE_OPTIONS_1=[[Blockly.Msg.LISTS_GET_SUBLIST_START_FROM_START,"FROM_START"],[Blockly.Msg.LISTS_GET_SUBLIST_START_FROM_END,"FROM_END"],[Blockly.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]];this.WHERE_OPTIONS_2=[[Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[Blockly.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]];this.setHelpUrl(Blockly.Msg.LISTS_GET_SUBLIST_HELPURL);this.setColour(Blockly.CAT_LIST_RGB);
this.appendValueInput("LIST").setCheck("Array_Number Array_String Array_Boolean Array_Colour Array_Connection String Array_Image".split(" ")).appendField(Blockly.Msg.LISTS_GET_SUBLIST_INPUT_IN_LIST);this.appendDummyInput("AT1");this.appendDummyInput("AT2");Blockly.Msg.LISTS_GET_SUBLIST_TAIL&&this.appendDummyInput("TAIL").appendField(Blockly.Msg.LISTS_GET_SUBLIST_TAIL);this.setInputsInline(!0);this.setOutput(!0,"Array_Number Array_String Array_Boolean Array_Colour Array_Connection String Array_Image".split(" "));
this.updateAt_(1,!0);this.updateAt_(2,!0);this.setTooltip(Blockly.Msg.LISTS_GET_SUBLIST_TOOLTIP)},mutationToDom:function(){var a=document.createElement("mutation"),b=this.getInput("AT1").type==Blockly.INPUT_VALUE;a.setAttribute("at1",b);b=this.getInput("AT2").type==Blockly.INPUT_VALUE;a.setAttribute("at2",b);return a},domToMutation:function(a){var b="true"==a.getAttribute("at1");a="true"==a.getAttribute("at2");this.updateAt_(1,b);this.updateAt_(2,a)},updateAt_:function(a,b){this.removeInput("AT"+
a);this.removeInput("ORDINAL"+a,!0);b?(this.appendValueInput("AT"+a).setCheck("Number"),Blockly.Msg.ORDINAL_NUMBER_SUFFIX&&this.appendDummyInput("ORDINAL"+a).appendField(Blockly.Msg.ORDINAL_NUMBER_SUFFIX)):this.appendDummyInput("AT"+a);var c=new Blockly.FieldDropdown(this["WHERE_OPTIONS_"+a],function(c){var d="FROM_START"==c||"FROM_END"==c;if(d!=b){var f=this.sourceBlock_;f.updateAt_(a,d);f.setFieldValue(c,"WHERE"+a);return null}});this.getInput("AT"+a).appendField(c,"WHERE"+a);1==a&&(this.moveInputBefore("AT1",
"AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"));Blockly.Msg.LISTS_GET_SUBLIST_TAIL&&this.moveInputBefore("TAIL",null)},onchange:function(){if(this.workspace&&2!=Blockly.Block.dragMode_){var a=this.getInputTargetBlock("LIST");a?this.setOutput(!0,a.outputConnection.check_[0]):this.setOutput(!0,"Array_Number Array_String Array_Boolean Array_Colour Array_Connection String Array_Image".split(" "));this.render()}}};Blockly.Blocks.robColour={};
Blockly.Blocks.robColour_picker={init:function(){this.setHelpUrl(Blockly.Msg.COLOUR_PICKER_HELPURL);this.setColour(Blockly.CAT_COLOUR_RGB);var a=new Blockly.FieldColour("#FFFFFF");switch(this.workspace.device){case "nxt":a.setColours("#000000 #0057A6 #00642E #00FF00 #585858 #800080 #B30006 #DC143C #EE82EE #F7D117 #FF00FF #FFA500 #FFFFFF".split(" ")).setColumns(13);break;case "bob3":a.setColours("#000000 #0000FF #228822 #4466EE #4488AA #6633AA #6699EE #55FF99 #00FF00 #77FFDD #00FFFF #DD4422 #FF0000 #FF0088 #FF00FF #FF7755 #FF8800 #FFFF00 #FFFFFF".split(" ")).setColumns(19);break;
case "botnroll":case "ev3":a.setColours("#000000 #0057A6 #00642E #532115 #585858 #B30006 #F7D117 #FFFFFF".split(" ")).setColumns(8);break;case "wedo":a=new Blockly.FieldColour("#FFFFFE"),a.setColours("#FF1493 #800080 #4876FF #00FFFF #90EE90 #008000 #FFFF00 #FFA500 #FF0000 #FFFFFE".split(" ")).setColumns(10)}this.appendDummyInput().appendField(a,"COLOUR");this.setOutput(!0,"Colour");var b=this;this.setTooltip(function(){var a=b.getParent();return a&&a.getInputsInline()&&a.tooltip||Blockly.Msg.COLOUR_PICKER_TOOLTIP})}};
Blockly.Blocks.robColour_rgb={init:function(){this.setColour(Blockly.CAT_COLOUR_RGB);this.appendValueInput("RED").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_RGB_TITLE).appendField(Blockly.Msg.COLOUR_RGB_RED);this.appendValueInput("GREEN").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_RGB_GREEN);this.appendValueInput("BLUE").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_RGB_BLUE);this.setOutput(!0,
"Colour");this.setTooltip(Blockly.Msg.COLOUR_RGB_TOOLTIP)}};Blockly.Blocks.bob3Communication={};
Blockly.Blocks.bob3Communication_sendBlock={init:function(){this.setColour(Blockly.CAT_COMMUNICATION_RGB);"bob3"===this.workspace.device||"edison"===this.workspace.device?this.appendValueInput("sendData").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.CONNECTION_SEND_DATA).setCheck("Number"):"mbot"===this.workspace.device&&this.appendValueInput("sendData").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.CONNECTION_SEND_DATA).setCheck("String");this.setTooltip(Blockly.Msg["CONNECTION_SEND_TOOLTIP_"+this.workspace.device.toUpperCase()]);
this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!1)}};
Blockly.Blocks.bob3Communication_receiveBlock={init:function(){this.setColour(Blockly.CAT_COMMUNICATION_RGB);this.appendDummyInput("receiveData").appendField(Blockly.Msg.CONNECTION_RECEIVED_DATA);"bob3"===this.workspace.device||"edison"===this.workspace.device?this.setOutput(!0,"Number"):"mbot"===this.workspace.device&&this.setOutput(!0,"String");this.setBlocking(!0);this.setTooltip(Blockly.Msg["CONNECTION_RECEIVE_TOOLTIP_"+this.workspace.device.toUpperCase()]);this.setInputsInline(!1)}};Blockly.Blocks.robCommunication={};Blockly.Blocks.robCommunication_startConnection={init:function(){this.setColour(Blockly.CAT_COMMUNICATION_RGB);this.setPreviousStatement(!1);this.setNextStatement(!1);this.setOutput(!0,"Connection");this.appendValueInput("ADDRESS").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.CONNECTION_CONNECT).setCheck("String");this.setInputsInline(!0);this.setTooltip(Blockly.Msg.CONNECTION_START_TOOLTIP)}};
Blockly.Blocks.robCommunication_sendBlock={init:function(){this.setColour(Blockly.CAT_COMMUNICATION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.CONNECTION_PROTOCOL_BLUETOOTH,"BLUETOOTH"]]);if("nxt"===this.workspace.device){var b=new Blockly.FieldDropdown([[Blockly.Msg.VARIABLES_TYPE_NUMBER,"Number"],[Blockly.Msg.VARIABLES_TYPE_BOOLEAN,"Boolean"],[Blockly.Msg.VARIABLES_TYPE_STRING,"String"]],function(a){a&&this.sourceBlock_.getFieldValue("TYPE")!==a&&this.sourceBlock_.updateType_(a)});var c=
new Blockly.FieldDropdown([["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]]);this.dataType_="Number";this.data="nxt"}else"edison"===this.workspace.device?(b=new Blockly.FieldDropdown([[Blockly.Msg.VARIABLES_TYPE_NUMBER,"Number"]]),this.dataType_="Number",this.data="edison",c=0):(b=new Blockly.FieldDropdown([[Blockly.Msg.VARIABLES_TYPE_STRING,"String"]]),this.dataType_="String",this.data="ev3");this.appendValueInput("sendData").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.CONNECTION_SEND_DATA).appendField(b,
"TYPE").setCheck(this.dataType_);"edison"!==this.workspace.device&&(this.appendDummyInput().appendField("via").setAlign(Blockly.ALIGN_RIGHT).appendField(a,"PROTOCOL"),c?this.appendValueInput("CONNECTION").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.CONNECTION_OVER_CHANNEL).appendField(c,"CHANNEL").appendField(Blockly.Msg.CONNECTION_TO_ROBOT).setCheck("Connection"):this.appendValueInput("CONNECTION").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.CONNECTION_TO_CONNECTION).setCheck("Connection"));
this.setTooltip(Blockly.Msg.CONNECTION_SEND_TOOLTIP);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!1)},mutationToDom:function(){if(void 0===this.dataType_)return!1;var a=document.createElement("mutation");a.setAttribute("datatype",this.dataType_);return a},domToMutation:function(a){(this.dataType_=a.getAttribute("datatype"))&&this.getInput("sendData").setCheck(this.dataType_)},updateType_:function(a){this.dataType_=a;this.getInput("sendData").setCheck(this.dataType_)}};
Blockly.Blocks.robCommunication_receiveBlock={init:function(){this.setColour(Blockly.CAT_COMMUNICATION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.CONNECTION_PROTOCOL_BLUETOOTH,"BLUETOOTH"]]);if("nxt"===this.workspace.device){var b=new Blockly.FieldDropdown([[Blockly.Msg.VARIABLES_TYPE_NUMBER,"Number"],[Blockly.Msg.VARIABLES_TYPE_BOOLEAN,"Boolean"],[Blockly.Msg.VARIABLES_TYPE_STRING,"String"]],function(a){a&&this.sourceBlock_.getFieldValue("TYPE")!==a&&this.sourceBlock_.updateType_(a)});var c=
new Blockly.FieldDropdown([["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]]);this.dataType_="Number";this.data="nxt"}else"edison"===this.workspace.device?(b=new Blockly.FieldDropdown([[Blockly.Msg.VARIABLES_TYPE_NUMBER,"Number"]]),this.dataType_="Number",this.data="edison",c=0):(b=new Blockly.FieldDropdown([[Blockly.Msg.VARIABLES_TYPE_STRING,"String"]]),this.dataType_="String",this.data="ev3");this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.CONNECTION_RECEIVED_DATA).appendField(b,
"TYPE");"edison"!==this.workspace.device&&(this.appendDummyInput().appendField("via").setAlign(Blockly.ALIGN_RIGHT).appendField(a,"PROTOCOL"),c?this.appendValueInput("CONNECTION").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.CONNECTION_OVER_CHANNEL).appendField(c,"CHANNEL").appendField(Blockly.Msg.CONNECTION_FROM_ROBOT).setCheck("Connection"):this.appendValueInput("CONNECTION").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.CONNECTION_FROM_CONNECTION).setCheck("Connection"));this.setOutput(!0,
this.dataType_);this.setBlocking(!0);this.setTooltip(Blockly.Msg.CONNECTION_RECEIVE_TOOLTIP);this.setInputsInline(!1)},mutationToDom:function(){if(void 0===this.dataType_)return!1;var a=document.createElement("mutation");a.setAttribute("datatype",this.dataType_);return a},domToMutation:function(a){(this.dataType_=a.getAttribute("datatype"))&&this.setOutput(!0,this.dataType_)},updateType_:function(a){this.dataType_=a;this.setOutput(!0,this.dataType_)}};
Blockly.Blocks.robCommunication_waitForConnection={init:function(){this.setColour(Blockly.CAT_COMMUNICATION_RGB);this.appendDummyInput("").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.CONNECTION_WAIT_FOR_CONNECTION);this.setOutput(!0,"Connection");this.setBlocking(!0);this.setTooltip(Blockly.Msg.CONNECTION_WAIT_TOOLTIP)}};
Blockly.Blocks.robCommunication_connection={init:function(){this.setColour(Blockly.CAT_COMMUNICATION_RGB);if("nxt"===this.workspace.device){var a=new Blockly.FieldDropdown([["0 Master","0"],["1 Slave","1"],["2 Slave","2"],["3 Slave","3"]]);this.data="nxt";this.appendDummyInput().appendField(a,"CONNECTION")}this.setOutput(!0,"Connection");this.setTooltip(Blockly.Msg.CONNECTION_TOOLTIP)}};
Blockly.Blocks.robCommunication_checkConnection={init:function(){this.jsonInit({message0:Blockly.Msg.CONNECTION_CHECK,args0:[{type:"input_value",name:"CONNECTION",check:"Connection"}],output:"Boolean",colour:Blockly.CAT_COMMUNICATION_RGB,tooltip:Blockly.Msg.CONNECTION_CHECK_TOOLTIP})}};Blockly.Blocks.robCommunication_ir_sendBlock=Blockly.Blocks.bob3Communication_sendBlock;Blockly.Blocks.robCommunication_ir_receiveBlock=Blockly.Blocks.bob3Communication_receiveBlock;
Blockly.Blocks.edisonCommunication_ir_sendBlock=Blockly.Blocks.bob3Communication_sendBlock;Blockly.Blocks.edisonCommunication_ir_receiveBlock=Blockly.Blocks.bob3Communication_receiveBlock;Blockly.Blocks.mBotImage={};Blockly.Blocks.mBotImage_image=Blockly.Blocks.mbedImage_image;Blockly.Blocks.mBotImage_shift=Blockly.Blocks.mbedImage_shift;Blockly.Blocks.mBotImage_invert=Blockly.Blocks.mbedImage_invert;Blockly.Blocks.robBrick={};
Blockly.Blocks["robBrick_EV3-Brick"]={init:function(){this.setColour("#BBBBBB");this.setInputsInline(!1);var a=new Blockly.FieldTextInput("0",Blockly.FieldTextInput.nonnegativeNumberValidator),b=new Blockly.FieldTextInput("0",Blockly.FieldTextInput.nonnegativeNumberValidator);this.appendDummyInput().appendField(new Blockly.FieldLabel(this.workspace.device.toUpperCase(),"brick_label"));this.appendDummyInput().appendField(Blockly.Msg.BRICK_WHEEL_DIAMETER).appendField(a,"WHEEL_DIAMETER").appendField("cm");this.appendDummyInput().appendField(Blockly.Msg.BRICK_TRACK_WIDTH).appendField(b,
"TRACK_WIDTH").appendField("cm");this.appendValueInput("S1").appendField("Sensor 1").setAlign(Blockly.ALIGN_RIGHT).setCheck("Sensor");this.appendValueInput("S2").appendField("Sensor 2").setAlign(Blockly.ALIGN_RIGHT).setCheck("Sensor");this.appendValueInput("S3").appendField("Sensor 3").setAlign(Blockly.ALIGN_RIGHT).setCheck("Sensor");this.appendValueInput("S4").appendField("Sensor 4").setAlign(Blockly.ALIGN_RIGHT).setCheck("Sensor");this.appendValueInput("MA").appendField("Motor A").setAlign(Blockly.ALIGN_RIGHT).setCheck("Actor");
this.appendValueInput("MB").appendField("Motor B").setAlign(Blockly.ALIGN_RIGHT).setCheck("Actor");this.appendValueInput("MC").appendField("Motor C").setAlign(Blockly.ALIGN_RIGHT).setCheck("Actor");"ev3"===this.workspace.device?(this.appendValueInput("MD").appendField("Motor D").setAlign(Blockly.ALIGN_RIGHT).setCheck("Actor"),this.setTooltip(Blockly.Msg.EV3BRICK_TOOLTIP)):this.setTooltip(Blockly.Msg.NXTBRICK_TOOLTIP);this.setDeletable(!1)}};
Blockly.Blocks["robBrick_Arduino-Brick"]={init:function(){var a=new Blockly.FieldDropdown([["Uno","Uno"],["Mega","Mega"],["Nano","Nano"]]);this.setColour("#BBBBBB");this.setInputsInline(!1);this.appendDummyInput().appendField(new Blockly.FieldLabel(this.workspace.device.toUpperCase(),"brick_label"));this.appendDummyInput().appendField(a,"BOARD");this.setDeletable(!1)}};
Blockly.Blocks["robBrick_WeDo-Brick"]={init:function(){var a=Blockly.Variables.findLegalName(Blockly.Msg.BRICKNAME_WEDO.charAt(0).toUpperCase(),this);this.nameOld=a;a=new Blockly.FieldTextInput(a,this.validateName);this.setColour("#BBBBBB");this.setInputsInline(!1);this.setDeletable(!1);this.appendDummyInput().appendField(new Blockly.FieldLabel(this.workspace.device.toUpperCase(),"brick_label"));this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField(a,"VAR")},validateName:function(a){var b=
this.sourceBlock_;a=a.replace(/[\s\xa0]+/g,"").replace(/^ | $/g,"");if(""===a||!a.match(/^[a-zA-Z][a-zA-Z_\-:!\u00a7$%@=?\*+~#\.$/0-9]*$/))return null;a=Blockly.Variables.findLegalName(a,b);Blockly.Variables.renameVariable(b.nameOld,a,this.sourceBlock_.workspace);return b.nameOld=a},getVarDecl:function(){return[this.getFieldValue("VAR")]},getVars:function(){return[this.getFieldValue("VAR")]}};
Blockly.Blocks["robBrick_senseBox-Brick"]={init:function(){this.setColour("#BBBBBB");this.setInputsInline(!1);this.appendDummyInput().appendField(new Blockly.FieldLabel("senseBox","brick_label"));this.appendDummyInput().appendField(Blockly.Msg.BOX_ID).appendField(new Blockly.FieldTextInput("",this.idValidator),"BOX_ID").setAlign(Blockly.ALIGN_RIGHT);this.appendDummyInput("ADD1").appendField(Blockly.Msg.BRICK_PHENOMENON).appendField(new Blockly.FieldTextInput(this.findLegalName_("ID1"),this.nameValidator),
"NAME1").appendField(Blockly.Msg.ID).appendField(new Blockly.FieldTextInput("",this.idValidator),"ID1").setAlign(Blockly.ALIGN_RIGHT);this.idCount_=1;this.setMutatorPlus(new Blockly.MutatorPlus(this));this.setTooltip(Blockly.Msg.SENSEBOXBRICK_TOOLTIP);this.setDeletable(!1)},getPhenomena:function(){for(var a=[],b=1;b<=this.idCount_;b++)a.push(this.getField("NAME"+b).getValue());return a},nameValidator:function(a){var b=this.sourceBlock_;a=a.replace(/[\s\xa0]+/g,"").replace(/^ | $/g,"");if(""===a)return b.updateSendData_(0),
a;if(!a.match(/^[a-zA-Z][a-zA-Z_$0-9]*$/))return null;b.updateSendData_(0);return a},idValidator:function(a){return""===a?a:a.match(/^[a-fA-F0-9]{24}$/)?a:null},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("items",this.idCount_);return a},domToMutation:function(a){this.idCount_=parseInt(a.getAttribute("items"),10);for(a=2;a<=this.idCount_;a++)this.appendDummyInput("ADD"+a).appendField(Blockly.Msg.BRICK_PHENOMENON).appendField(new Blockly.FieldTextInput("",this.nameValidator),
"NAME"+a).appendField(Blockly.Msg.ID).appendField(new Blockly.FieldTextInput("",this.idValidator),"ID"+a).setAlign(Blockly.ALIGN_RIGHT);2<=this.idCount_&&this.setMutatorMinus(new Blockly.MutatorMinus(this))},updateShape_:function(a){1==a?(1==this.idCount_&&this.setMutatorMinus(new Blockly.MutatorMinus(this)),this.idCount_++,this.appendDummyInput("ADD"+this.idCount_).appendField(Blockly.Msg.BRICK_PHENOMENON).appendField(new Blockly.FieldTextInput(this.findLegalName_("ID"+this.idCount_),this.nameValidator),
"NAME"+this.idCount_).appendField(Blockly.Msg.ID).appendField(new Blockly.FieldTextInput("",this.idValidator),"ID"+this.idCount_).setAlign(Blockly.ALIGN_RIGHT)):-1==a&&(this.removeInput("ADD"+this.idCount_),this.idCount_--);1==this.idCount_&&(this.mutatorMinus.dispose(),this.mutatorMinus=null);this.render();this.updateSendData_(a)},updateSendData_:function(a){if(Blockly.Workspace.getByContainer("blocklyDiv"))for(var b=Blockly.Workspace.getByContainer("blocklyDiv").getAllBlocks(),c=0;c<b.length;c++){var d=
b[c].setPhenomena;d&&d.call(b[c],a,this.getPhenomena())}},findLegalName_:function(a){for(var b=this,c=function(a){for(var c=0;c<=b.idCount_;c++)if(b.getField("NAME"+c)&&b.getField("NAME"+c).getValue()===a)return!1;return!0};!c(a);)a=r?r[1]+(parseInt(r[2],10)+1):a+"2";return a},onchange:function(a){a.name&&a.name.startsWith("NAME")&&a.oldValue!=a.newValue&&this.updateSendData_(0)}};
Blockly.Blocks["robBrick_mBot-Brick"]={init:function(){this.setColour("#BBBBBB");this.setInputsInline(!1);new Blockly.FieldTextInput("0",Blockly.FieldTextInput.nonnegativeNumberValidator);new Blockly.FieldTextInput("0",Blockly.FieldTextInput.nonnegativeNumberValidator);this.appendDummyInput().appendField(new Blockly.FieldLabel(this.workspace.device.toUpperCase(),"brick_label"));this.appendValueInput("PORT_1").appendField("Port 1").setAlign(Blockly.ALIGN_RIGHT);this.appendValueInput("PORT_2").appendField("Port 2").setAlign(Blockly.ALIGN_RIGHT);
this.appendValueInput("PORT_3").appendField("Port 3").setAlign(Blockly.ALIGN_RIGHT);this.appendValueInput("PORT_4").appendField("Port 4").setAlign(Blockly.ALIGN_RIGHT);this.appendValueInput("M1").appendField("Motor M1").setAlign(Blockly.ALIGN_RIGHT).setCheck("Actor");this.appendValueInput("M2").appendField("Motor M2").setAlign(Blockly.ALIGN_RIGHT).setCheck("Actor");this.setTooltip(Blockly.Msg.MAKEBLOCKBRICK_TOOLTIP);this.setDeletable(!1)}};
Blockly.Blocks["robBrick_ardu-Brick"]={init:function(){this.setColour("#BBBBBB");this.setInputsInline(!1);this.appendDummyInput().appendField(new Blockly.FieldLabel("Bot'n Roll","brick_label"));this.appendValueInput("S1").appendField(Blockly.Msg.MOTOR_LEFT).setAlign(Blockly.ALIGN_RIGHT).setCheck("Sensor");this.appendValueInput("S2").appendField(Blockly.Msg.MOTOR_RIGHT).setAlign(Blockly.ALIGN_RIGHT).setCheck("Sensor");this.appendValueInput("MB").appendField(Blockly.Msg.MOTOR_LEFT).setAlign(Blockly.ALIGN_RIGHT).setCheck("Actor");
this.appendValueInput("MA").appendField(Blockly.Msg.MOTOR_RIGHT).setAlign(Blockly.ALIGN_RIGHT).setCheck("Actor");this.appendDummyInput().appendField("Line Follower").setAlign(Blockly.ALIGN_CENTER);this.appendValueInput("S3").appendField("0 - 7").setAlign(Blockly.ALIGN_RIGHT).setCheck("Sensor");this.appendValueInput("S4").setAlign(Blockly.ALIGN_RIGHT).setCheck("Sensor");this.appendDummyInput().appendField("Rescue Module").setAlign(Blockly.ALIGN_CENTER);this.appendValueInput("S5").appendField(Blockly.Msg.MOTOR_LEFT).setAlign(Blockly.ALIGN_RIGHT).setCheck("Sensor");
this.appendValueInput("S6").appendField(Blockly.Msg.CENTER).setAlign(Blockly.ALIGN_RIGHT).setCheck("Sensor");this.appendValueInput("S7").appendField(Blockly.Msg.MOTOR_RIGHT).setAlign(Blockly.ALIGN_RIGHT).setCheck("Sensor");this.appendValueInput("S8").appendField(Blockly.Msg.MOTOR_LEFT).setAlign(Blockly.ALIGN_RIGHT).setCheck("Sensor");this.appendValueInput("S9").appendField(Blockly.Msg.MOTOR_RIGHT).setAlign(Blockly.ALIGN_RIGHT).setCheck("Sensor");this.appendDummyInput().appendField("Extra 'B' Search Rescue").setAlign(Blockly.ALIGN_CENTER);
this.appendValueInput("S10").appendField(Blockly.Msg.SENSOR_SONAR).setAlign(Blockly.ALIGN_RIGHT).setCheck("Sensor");this.appendValueInput("MC").appendField(Blockly.Msg.MOTOR_PAN).setAlign(Blockly.ALIGN_RIGHT).setCheck("Actor");this.appendValueInput("MD").appendField(Blockly.Msg.MOTOR_TILT).setAlign(Blockly.ALIGN_RIGHT).setCheck("Actor");this.setTooltip(Blockly.Msg.ARDUBRICK_TOOLTIP);this.setDeletable(!1)}};
Blockly.Blocks["robBrick_vorwerk-Brick"]={init:function(){this.setColour("#BBBBBB");this.setInputsInline(!1);var a=new Blockly.FieldTextInput("0.0.0.0"),b=new Blockly.FieldTextInput("22",Blockly.FieldTextInput.nonnegativeNumberValidator),c=new Blockly.FieldTextInput("pi"),d=new Blockly.FieldTextInput("raspberry");this.appendDummyInput().appendField(new Blockly.FieldLabel("Vorwerk","brick_label"));this.appendDummyInput().appendField(Blockly.Msg.BRICK_IPADDRESS).appendField(a,"IP_ADDRESS");this.appendDummyInput().appendField(Blockly.Msg.BRICK_PORT).appendField(b,
"PORT");this.appendDummyInput().appendField(Blockly.Msg.BRICK_USERNAME).appendField(c,"USERNAME");this.appendDummyInput().appendField(Blockly.Msg.BRICK_PASSWORD).appendField(d,"PASSWORD");this.setTooltip(Blockly.Msg.NAOBRICK_TOOLTIP);this.setDeletable(!1)}};Blockly.Blocks.robBrick_voltage={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);this.appendDummyInput().appendField(Blockly.Msg.SENSOR_BATTERY);this.setOutput(!0,"Sensor");this.setTooltip(Blockly.Msg.BATTERY_GETSAMPLE_TOOLTIP)}};
Blockly.Blocks.robBrick_ultrasonic={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);this.appendDummyInput().appendField(Blockly.Msg.SENSOR_ULTRASONIC);this.setOutput(!0,"Sensor");this.setTooltip(Blockly.Msg.ULTRASONIC_TOOLTIP)}};Blockly.Blocks.robBrick_temperature={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);this.appendDummyInput().appendField(Blockly.Msg.SENSOR_TEMPERATURE);this.setOutput(!0,"Sensor");this.setTooltip(Blockly.Msg.TEMPERATURE_TOOLTIP)}};
Blockly.Blocks.robBrick_ultrasonic_ardu={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);this.appendDummyInput().appendField(Blockly.Msg.SENSOR_ULTRASONIC).appendField(Blockly.Msg.MOTOR_LEFT+" | "+Blockly.Msg.CENTER+" | "+Blockly.Msg.MOTOR_RIGHT);this.setOutput(!0,"Sensor");this.setTooltip(Blockly.Msg.ULTRASONIC_TOOLTIP)}};
Blockly.Blocks.robBrick_colour={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);this.appendDummyInput().appendField(Blockly.Msg.SENSOR_COLOUR);this.setOutput(!0,"Sensor");this.setTooltip(Blockly.Msg.COLOUR_TOOLTIP)}};Blockly.Blocks.robBrick_HiTechnic_colour={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);this.appendDummyInput().appendField("HiTechnic"+Blockly.Msg.SENSOR_COLOUR);this.setOutput(!0,"Sensor");this.setTooltip(Blockly.Msg.HTCOLOUR_TOOLTIP)}};
Blockly.Blocks.robBrick_htcolour={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);this.appendDummyInput().appendField(Blockly.Msg.SENSOR_HTCOLOUR);this.setOutput(!0,"Sensor");this.setTooltip(Blockly.Msg.HTCOLOUR_TOOLTIP)}};Blockly.Blocks.robBrick_light={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);this.setOutput(!0,"Sensor");this.appendDummyInput().appendField(Blockly.Msg.SENSOR_LIGHT);"botnroll"===this.workspace.device?this.setTooltip(Blockly.Msg.LIGHT_ARDU_TOOLTIP):this.setTooltip(Blockly.Msg.LIGHT_TOOLTIP)}};
Blockly.Blocks.robBrick_infrared={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);this.appendDummyInput().appendField(Blockly.Msg.SENSOR_INFRARED);this.setOutput(!0,"Sensor");this.setTooltip(Blockly.Msg.INFRARED_TOOLTIP)}};Blockly.Blocks.robBrick_irseeker={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);this.appendDummyInput().appendField(Blockly.Msg.SENSOR_IRSEEKER);this.setOutput(!0,"Sensor");this.setTooltip(Blockly.Msg.IRSEEKER_TOOLTIP)}};
Blockly.Blocks.robBrick_touch={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);this.appendDummyInput().appendField(Blockly.Msg.SENSOR_TOUCH);this.setOutput(!0,"Sensor");this.setTooltip(Blockly.Msg.TOUCH_TOOLTIP)}};
Blockly.Blocks.robBrick_compass={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);"ev3"===this.workspace.device?this.appendDummyInput().appendField(Blockly.Msg.SENSOR_COMPASS_EV3):this.appendDummyInput().appendField(Blockly.Msg.SENSOR_COMPASS);this.setOutput(!0,"Sensor");"ev3"===this.workspace.device?this.setTooltip(Blockly.Msg.COMPASS_TOOLTIP_EV3):this.setTooltip(Blockly.Msg.COMPASS_TOOLTIP)}};
Blockly.Blocks.robBrick_gyro={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);this.appendDummyInput().appendField(Blockly.Msg.SENSOR_GYRO);this.setOutput(!0,"Sensor");this.setTooltip(Blockly.Msg.GYRO_TOOLTIP)}};Blockly.Blocks.robBrick_sound={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);this.appendDummyInput().appendField(Blockly.Msg.SENSOR_SOUND);this.setOutput(!0,"Sensor");this.setTooltip(Blockly.Msg.SOUND_TOOLTIP);this.data="nxt"}};
Blockly.Blocks.robBrick_joystick={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);this.appendDummyInput().appendField(Blockly.Msg.SENSOR_JOYSTICK);this.setOutput(!0,"Sensor");this.setTooltip(Blockly.Msg.JOYSTICK_TOOLTIP)}};Blockly.Blocks.robBrick_accelerometer={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);this.appendDummyInput().appendField(Blockly.Msg.NAO_ACCELEROMETER);this.setOutput(!0,"Sensor");this.setTooltip(Blockly.Msg.ACCELEROMETER_TOOLTIP)}};
Blockly.Blocks.robBrick_flame={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);this.appendDummyInput().appendField(Blockly.Msg.SENSOR_FLAME);this.setOutput(!0,"Sensor");this.setTooltip(Blockly.Msg.FLAME_TOOLTIP)}};Blockly.Blocks.robBrick_ambientlight={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);this.appendDummyInput().appendField(Blockly.Msg.SENSOR_AMBIENTLIGHT);this.setOutput(!0,"Sensor");this.setTooltip(Blockly.Msg.FLAME_TOOLTIP)}};
Blockly.Blocks.robBrick_motion={init:function(){this.setColour(Blockly.CAT_SENSOR_RGB);this.appendDummyInput().appendField(Blockly.Msg.SENSOR_MOTION);this.setOutput(!0,"Sensor");this.setTooltip(Blockly.Msg.MOTION_TOOLTIP)}};Blockly.Blocks.robBrick_led={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendDummyInput().appendField(Blockly.Msg.LED);this.setOutput(!0,"Actor");this.setTooltip(Blockly.Msg.LED_TOOLTIP)}};
Blockly.Blocks.robBrick_led_matrix={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendDummyInput().appendField(Blockly.Msg.LED_MATRIX);this.setOutput(!0,"Actor");this.setTooltip(Blockly.Msg.LED_MATRIX_TOOLTIP)}};
Blockly.Blocks.robBrick_motor_big={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.YES,"TRUE"],[Blockly.Msg.NO,"FALSE"]]),b=new Blockly.FieldDropdown([[Blockly.Msg.MOTOR_FOREWARD,"OFF"],[Blockly.Msg.MOTOR_BACKWARD,"ON"]]),c=new Blockly.FieldDropdown([[Blockly.Msg.MOTOR_NONE,"NONE"],[Blockly.Msg.MOTOR_RIGHT,"RIGHT"],[Blockly.Msg.MOTOR_LEFT,"LEFT"]]);this.appendDummyInput().appendField(Blockly.Msg.MOTOR_BIG+" "+Blockly.Msg.MOTOR);this.appendDummyInput().appendField(Blockly.Msg.MOTOR_REGULATION).appendField(a,
"MOTOR_REGULATION").setAlign(Blockly.ALIGN_RIGHT);this.appendDummyInput().appendField(Blockly.Msg.MOTOR_ROTATION_REVERSE).appendField(b,"MOTOR_REVERSE").setAlign(Blockly.ALIGN_RIGHT);this.appendDummyInput().appendField(Blockly.Msg.MOTOR_SIDE).appendField(c,"MOTOR_DRIVE").setAlign(Blockly.ALIGN_RIGHT);this.setOutput(!0,"Actor");this.setTooltip(Blockly.Msg.MOTOR_BIG_TOOLTIP)}};
Blockly.Blocks.robBrick_motor_geared={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.MOTOR_RIGHT,"RIGHT"],[Blockly.Msg.MOTOR_LEFT,"LEFT"]]);this.appendDummyInput().appendField(Blockly.Msg.GEARED_MOTOR);this.appendDummyInput().appendField(Blockly.Msg.MOTOR_SIDE).appendField(a,"MOTOR_DRIVE").setAlign(Blockly.ALIGN_RIGHT);this.setOutput(!0,"Actor");this.setTooltip(Blockly.Msg.MOTOR_GEARED_TOOLTIP)}};
Blockly.Blocks.robBrick_led_matrix={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendDummyInput().appendField(Blockly.Msg.LED_MATRIX||"LED_MATRIX");this.setOutput(!0,"Actor");this.setTooltip(Blockly.Msg.LED_MATRIX_TOOLTIP||"LED_MATRIX_TOOLTIP")}};
Blockly.Blocks.robBrick_motor_middle={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.YES,"TRUE"],[Blockly.Msg.NO,"FALSE"]]),b=new Blockly.FieldDropdown([[Blockly.Msg.MOTOR_FOREWARD,"OFF"],[Blockly.Msg.MOTOR_BACKWARD,"ON"]]);"botnroll"===this.workspace.device?this.appendDummyInput().appendField(Blockly.Msg.MOTOR):this.appendDummyInput().appendField(Blockly.Msg.MOTOR_MIDDLE+" "+Blockly.Msg.MOTOR);this.appendDummyInput().appendField(Blockly.Msg.MOTOR_REGULATION).appendField(a,
"MOTOR_REGULATION").setAlign(Blockly.ALIGN_RIGHT);this.appendDummyInput().appendField(Blockly.Msg.MOTOR_ROTATION_REVERSE).appendField(b,"MOTOR_REVERSE").setAlign(Blockly.ALIGN_RIGHT);this.setOutput(!0,"Actor");this.setTooltip(Blockly.Msg.MOTOR_MIDDLE_TOOLTIP)}};Blockly.Blocks.robBrick_motor_ardu={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendDummyInput().appendField(Blockly.Msg.MOTOR);this.setOutput(!0,"Actor");this.setTooltip(Blockly.Msg.MOTOR_ARDU_TOOLTIP)}};
Blockly.Blocks.robBrick_actor={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendDummyInput("ACTOR").appendField(Blockly.Msg.MOTOR_OTHER);this.setOutput(!0,"Actor");this.setTooltip(Blockly.Msg.ACTOR_TOOLTIP)}};Blockly.Blocks.logic={};Blockly.Blocks.logic.HUE=210;
Blockly.Blocks.controls_if={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(Blockly.CAT_LOGIC_RGB);this.appendValueInput("IF0").setCheck("Boolean").appendField(Blockly.Msg.CONTROLS_IF_MSG_IF);this.appendStatementInput("DO0").appendField(Blockly.Msg.CONTROLS_IF_MSG_THEN);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setMutator(new Blockly.Mutator(["controls_if_elseif","controls_if_else"]));var a=this;this.setTooltip(function(){if(a.elseifCount_||a.elseCount_){if(!a.elseifCount_&&
a.elseCount_)return Blockly.Msg.CONTROLS_IF_TOOLTIP_2;if(a.elseifCount_&&!a.elseCount_)return Blockly.Msg.CONTROLS_IF_TOOLTIP_3;if(a.elseifCount_&&a.elseCount_)return Blockly.Msg.CONTROLS_IF_TOOLTIP_4}else return Blockly.Msg.CONTROLS_IF_TOOLTIP_1;return""});this.elseCount_=this.elseifCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var a=document.createElement("mutation");this.elseifCount_&&a.setAttribute("elseif",this.elseifCount_);this.elseCount_&&a.setAttribute("else",
1);return a},domToMutation:function(a){this.elseifCount_=parseInt(a.getAttribute("elseif"),10)||0;this.elseCount_=parseInt(a.getAttribute("else"),10)||0;this.updateShape_()},decompose:function(a){var b=a.newBlock("controls_if_if");b.initSvg();for(var c=b.nextConnection,d=1;d<=this.elseifCount_;d++){var e=a.newBlock("controls_if_elseif");e.initSvg();c.connect(e.previousConnection);c=e.nextConnection}this.elseCount_&&(a=a.newBlock("controls_if_else"),a.initSvg(),c.connect(a.previousConnection));return b},
compose:function(a){var b=a.nextConnection.targetBlock();this.elseCount_=this.elseifCount_=0;a=[null];for(var c=[null],d=null;b;){switch(b.type){case "controls_if_elseif":this.elseifCount_++;a.push(b.valueConnection_);c.push(b.statementConnection_);break;case "controls_if_else":this.elseCount_++;d=b.statementConnection_;break;default:throw"Unknown block type.";}b=b.nextConnection&&b.nextConnection.targetBlock()}this.updateShape_();for(b=1;b<=this.elseifCount_;b++)Blockly.Mutator.reconnect(a[b],this,
"IF"+b),Blockly.Mutator.reconnect(c[b],this,"DO"+b);Blockly.Mutator.reconnect(d,this,"ELSE")},saveConnections:function(a){a=a.nextConnection.targetBlock();for(var b=1;a;){switch(a.type){case "controls_if_elseif":var c=this.getInput("IF"+b),d=this.getInput("DO"+b);a.valueConnection_=c&&c.connection.targetConnection;a.statementConnection_=d&&d.connection.targetConnection;b++;break;case "controls_if_else":d=this.getInput("ELSE");a.statementConnection_=d&&d.connection.targetConnection;break;default:throw"Unknown block type.";
}a=a.nextConnection&&a.nextConnection.targetBlock()}},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var a=1;this.getInput("IF"+a);)this.removeInput("IF"+a),this.removeInput("DO"+a),a++;for(a=1;a<=this.elseifCount_;a++)this.appendValueInput("IF"+a).setCheck("Boolean").appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+a).appendField(Blockly.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSE)}};
Blockly.Blocks.controls_if_if={init:function(){this.setColour(Blockly.CAT_LOGIC_RGB);this.appendDummyInput().appendField(Blockly.Msg.CONTROLS_IF_IF_TITLE_IF);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.CONTROLS_IF_IF_TOOLTIP);this.contextMenu=!1}};
Blockly.Blocks.controls_if_elseif={init:function(){this.setColour(Blockly.CAT_LOGIC_RGB);this.appendDummyInput().appendField(Blockly.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.CONTROLS_IF_ELSEIF_TOOLTIP);this.contextMenu=!1}};
Blockly.Blocks.controls_if_else={init:function(){this.setColour(Blockly.CAT_LOGIC_RGB);this.appendDummyInput().appendField(Blockly.Msg.CONTROLS_IF_ELSE_TITLE_ELSE);this.setPreviousStatement(!0);this.setTooltip(Blockly.Msg.CONTROLS_IF_ELSE_TOOLTIP);this.contextMenu=!1}};
Blockly.Blocks.logic_compare={init:function(){var a=this.RTL?[["=","EQ"],["\u2260","NEQ"],[">","LT"],["\u2265","LTE"],["<","GT"],["\u2264","GTE"]]:[["=","EQ"],["\u2260","NEQ"],["<","LT"],["\u2264","LTE"],[">","GT"],["\u2265","GTE"]];this.setHelpUrl(Blockly.Msg.LOGIC_COMPARE_HELPURL);this.setColour(Blockly.CAT_LOGIC_RGB);this.setOutput(!0,"Boolean");this.appendValueInput("A");this.appendValueInput("B").appendField(new Blockly.FieldDropdown(a),"OP");this.setInputsInline(!0);var b=this;this.setTooltip(function(){var a=
b.getFieldValue("OP");return{EQ:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[a]});this.prevBlocks_=[null,null]},updateShape:function(a){if(a){this.operatorRange_=a;var b=this.getInputTargetBlock("B");this.removeInput("B",!0);this.removeInput("OP_DROP",!0);a="NUM_REV"==a?Blockly.RTL?[["<","GT"],["\u2264",
"GTE"],[">","LT"],["\u2265","LTE"],["=","EQ"],["\u2260","NEQ"]]:[[">","GT"],["\u2265","GTE"],["<","LT"],["\u2264","LTE"],["=","EQ"],["\u2260","NEQ"]]:"BOOL"==a||"ARRAY_NUMBER"==a||"ARRAY_STRING"==a?[["=","EQ"],["\u2260","NEQ"]]:"COLOUR"==a?[["=","EQ"],["\u2260","NEQ"]]:"TEXT"==a||"NUM_EQ"==a?[["=","EQ"],["\u2260","NEQ"]]:Blockly.RTL?[[">","LT"],["\u2265","LTE"],["<","GT"],["\u2264","GTE"],["=","EQ"],["\u2260","NEQ"]]:[["<","LT"],["\u2264","LTE"],[">","GT"],["\u2265","GTE"],["=","EQ"],["\u2260","NEQ"]];
this.appendDummyInput("OP_DROP").appendField(new Blockly.FieldDropdown(a),"OP");a=this.appendValueInput("B");b&&a.connection.connect(b)}},onchange:function(a){if(this.workspace&&2!=Blockly.Block.dragMode_){a=this.getInputTargetBlock("A");var b=this.getInputTargetBlock("B");if(a&&b){if(!a.outputConnection.check_||!b.outputConnection.check_)return;Blockly.Events.setGroup(!1);if(a.outputConnection.check_[0]===b.outputConnection.check_[0])return;this.getInput("A").setCheck(a.outputConnection.check_);
this.getInput("B").setCheck(a.outputConnection.check_)}else a?this.getInput("B").setCheck(a.outputConnection.check_):b?this.getInput("A").setCheck(b.outputConnection.check_):(this.getInput("A").setCheck(null),this.getInput("B").setCheck(null));this.render()}}};
Blockly.Blocks.logic_operation={init:function(){var a=[[Blockly.Msg.LOGIC_OPERATION_AND,"AND"],[Blockly.Msg.LOGIC_OPERATION_OR,"OR"]];this.setHelpUrl(Blockly.Msg.LOGIC_OPERATION_HELPURL);this.setColour(Blockly.CAT_LOGIC_RGB);this.setOutput(!0,"Boolean");this.appendValueInput("A").setCheck("Boolean");this.appendValueInput("B").setCheck("Boolean").appendField(new Blockly.FieldDropdown(a),"OP");this.setInputsInline(!0);var b=this;this.setTooltip(function(){var a=b.getFieldValue("OP");return{AND:Blockly.Msg.LOGIC_OPERATION_TOOLTIP_AND,
OR:Blockly.Msg.LOGIC_OPERATION_TOOLTIP_OR}[a]})}};Blockly.Blocks.logic_negate={init:function(){this.jsonInit({message0:Blockly.Msg.LOGIC_NEGATE_TITLE,args0:[{type:"input_value",name:"BOOL",check:"Boolean"}],output:"Boolean",colour:Blockly.CAT_LOGIC_RGB,tooltip:Blockly.Msg.LOGIC_NEGATE_TOOLTIP,helpUrl:Blockly.Msg.LOGIC_NEGATE_HELPURL})}};
Blockly.Blocks.logic_boolean={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_dropdown",name:"BOOL",options:[[Blockly.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[Blockly.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]]}],output:"Boolean",colour:Blockly.CAT_LOGIC_RGB,tooltip:Blockly.Msg.LOGIC_BOOLEAN_TOOLTIP,helpUrl:Blockly.Msg.LOGIC_BOOLEAN_HELPURL})}};
Blockly.Blocks.logic_null={init:function(){this.jsonInit({message0:Blockly.Msg.LOGIC_NULL,output:null,colour:Blockly.CAT_LOGIC_RGB,tooltip:Blockly.Msg.LOGIC_NULL_TOOLTIP,helpUrl:Blockly.Msg.LOGIC_NULL_HELPURL})}};
Blockly.Blocks.logic_ternary={init:function(){this.setHelpUrl(Blockly.Msg.LOGIC_TERNARY_HELPURL);this.setColour(Blockly.CAT_LOGIC_RGB);this.appendValueInput("IF").setCheck("Boolean").appendField(Blockly.Msg.LOGIC_TERNARY_CONDITION);this.appendValueInput("THEN").appendField(Blockly.Msg.LOGIC_TERNARY_IF_TRUE);this.appendValueInput("ELSE").appendField(Blockly.Msg.LOGIC_TERNARY_IF_FALSE);this.setOutput(!0);this.setTooltip(Blockly.Msg.LOGIC_TERNARY_TOOLTIP);this.connectionType=null},onchange:function(a){var b=
this.getInputTargetBlock("THEN"),c=this.getInputTargetBlock("ELSE"),d=this.outputConnection.targetConnection,e=null;d?e=d.check_:b?e=b.outputConnection.check_:c&&(e=c.outputConnection.check_);e!==this.connectionType&&(Blockly.Events.setGroup(a.group),this.setOutput(!0,e),this.getInput("THEN").setCheck(e),this.getInput("ELSE").setCheck(e),this.render(),Blockly.Events.setGroup(!1),this.connectionType=e)}};
Blockly.Blocks.robControls_ifElse={init:function(){this.setColour(Blockly.CAT_CONTROL_RGB);this.appendValueInput("IF0").appendField(Blockly.Msg.CONTROLS_IF_MSG_IF).setCheck("Boolean");this.appendStatementInput("DO0").appendField(Blockly.Msg.CONTROLS_IF_MSG_THEN);this.appendStatementInput("ELSE").appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSE);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setMutatorPlus(new Blockly.MutatorPlus(this));this.elseIfCount_=0;this.elseCount_=1;var a=this;this.setTooltip(function(){return 0===
a.elseIfCount_?Blockly.Msg.CONTROLS_IF_TOOLTIP_2:Blockly.Msg.CONTROLS_IF_TOOLTIP_4})},mutationToDom:function(){if(!this.elseIfCount_&&!this.elseCount_)return null;var a=document.createElement("mutation");this.elseIfCount_&&a.setAttribute("elseif",this.elseIfCount_);this.elseCount_&&a.setAttribute("else",1);return a},domToMutation:function(a){a.hasAttribute("elseif")&&(this.elseIfCount_=parseInt(a.getAttribute("elseif"),10));this.removeInput("ELSE");for(a=1;a<=this.elseIfCount_;a++)this.appendValueInput("IF"+
a).appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSEIF).setCheck("Boolean"),this.appendStatementInput("DO"+a).appendField(Blockly.Msg.CONTROLS_IF_MSG_THEN);this.appendStatementInput("ELSE").appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSE);1<=this.elseIfCount_&&this.setMutatorMinus(new Blockly.MutatorMinus(this))},updateShape_:function(a){Blockly.dragMode_=Blockly.DRAG_NONE;if(1==a)this.elseIfCount_++,this.removeInput("ELSE"),this.appendValueInput("IF"+this.elseIfCount_).appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSEIF).setCheck("Boolean"),
this.appendStatementInput("DO"+this.elseIfCount_).appendField(Blockly.Msg.CONTROLS_IF_MSG_THEN),this.appendStatementInput("ELSE").appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSE);else if(0==a)this.elseIfCount_=0;else if(-1==a){if(a=this.getInputTargetBlock("IF"+this.elseIfCount_))a.unplug(!1),a.bumpNeighbours_();this.removeInput("ELSE");this.removeInput("DO"+this.elseIfCount_);this.removeInput("IF"+this.elseIfCount_);this.appendStatementInput("ELSE").appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSE);this.elseIfCount_--}1<=
this.elseIfCount_?1==this.elseIfCount_&&(this.setMutatorMinus(new Blockly.MutatorMinus(this)),this.render()):(this.mutatorMinus.dispose(),this.mutatorMinus=null)}};
Blockly.Blocks.robControls_if={init:function(){this.setColour(Blockly.CAT_CONTROL_RGB);this.appendValueInput("IF0").appendField(Blockly.Msg.CONTROLS_IF_MSG_IF).setCheck("Boolean");this.appendStatementInput("DO0").appendField(Blockly.Msg.CONTROLS_IF_MSG_THEN);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setMutatorPlus(new Blockly.MutatorPlus(this));this.elseIfCount_=0;var a=this;this.setTooltip(function(){return 0===a.elseIfCount_?Blockly.Msg.CONTROLS_IF_TOOLTIP_1:Blockly.Msg.CONTROLS_IF_TOOLTIP_3})},
mutationToDom:function(){if(!this.elseIfCount_)return null;var a=document.createElement("mutation");this.elseIfCount_&&a.setAttribute("elseif",this.elseIfCount_);return a},domToMutation:function(a){this.elseIfCount_=parseInt(a.getAttribute("elseif"),10);for(a=1;a<=this.elseIfCount_;a++)this.appendValueInput("IF"+a).appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSEIF).setCheck("Boolean"),this.appendStatementInput("DO"+a).appendField(Blockly.Msg.CONTROLS_IF_MSG_THEN);1<=this.elseIfCount_&&this.setMutatorMinus(new Blockly.MutatorMinus(this))},
updateShape_:function(a){Blockly.dragMode_=Blockly.DRAG_NONE;if(1==a)this.elseIfCount_++,this.appendValueInput("IF"+this.elseIfCount_).appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSEIF).setCheck("Boolean"),this.appendStatementInput("DO"+this.elseIfCount_).appendField(Blockly.Msg.CONTROLS_IF_MSG_THEN);else if(-1==a){if(a=this.getInputTargetBlock("IF"+this.elseIfCount_))a.unplug(),a.bumpNeighbours_();this.removeInput("DO"+this.elseIfCount_);this.removeInput("IF"+this.elseIfCount_);this.elseIfCount_--}1<=
this.elseIfCount_?1==this.elseIfCount_&&(this.setMutatorMinus(new Blockly.MutatorMinus(this)),this.render()):(this.mutatorMinus.dispose(),this.mutatorMinus=null)}};Blockly.Blocks.mbedActions={};
Blockly.Blocks.mbedActions_motor_on={init:function(){var a=[["Port A","A"],["Port B","B"],["Port A + B","AB"],[Blockly.Msg.CB_LEFT,"0"],[Blockly.Msg.CB_RIGHT,"2"],[Blockly.Msg.CB_BOTH,"3"]];this.setColour(Blockly.CAT_ACTION_RGB);a=new Blockly.FieldDropdown(a);this.appendValueInput("POWER").appendField(Blockly.Msg.MOTOR).appendField(a,"MOTORPORT").appendField(Blockly.Msg.ON).appendField(Blockly.Msg.MOTOR_SPEED).setCheck("Number");this.setPreviousStatement(!0);this.setNextStatement(!0);var b=this;this.setTooltip(function(){return isNaN(parseInt(b.getFieldValue("MOTORPORT")))?
Blockly.Msg["MOTOR_ON_TOOLTIP_"+b.workspace.device.toUpperCase()]||Blockly.Msg.MOTOR_ON_TOOLTIP:Blockly.Msg["MOTOR_ON_TOOLTIP_"+b.workspace.device.toUpperCase()+"_CB"]||Blockly.Msg.MOTOR_ON_TOOLTIP})}};
Blockly.Blocks.mbedActions_motors_on={init:function(){var a=new Blockly.FieldDropdown([["Port A","A"],[Blockly.Msg.CB_LEFT,"LEFT"]]),b=new Blockly.FieldDropdown([["Port B","B"],[Blockly.Msg.CB_RIGHT,"RIGHT"]]);this.setColour(Blockly.CAT_ACTION_RGB);this.appendValueInput("POWER_A").appendField(Blockly.Msg.MOTOR).appendField(a,"A").appendField(Blockly.Msg.ON).appendField(Blockly.Msg.MOTOR_SPEED).setCheck("Number");this.appendValueInput("POWER_B").setAlign(Blockly.ALIGN_RIGHT).appendField(b,"B").appendField(Blockly.Msg.ON).appendField(Blockly.Msg.MOTOR_SPEED).setCheck("Number");
this.setPreviousStatement(!0);this.setNextStatement(!0);var c=this;this.setTooltip(function(){return"A"==c.getFieldValue("A")?Blockly.Msg["MOTORS_ON_TOOLTIP_"+c.workspace.device.toUpperCase()]||Blockly.Msg.MOTOR_ON_TOOLTIP:Blockly.Msg["MOTORS_ON_TOOLTIP_"+c.workspace.device.toUpperCase()+"_CB"]||Blockly.Msg.MOTOR_ON_TOOLTIP})},onchange:function(){if(this.workspace&&2!=Blockly.Block.dragMode_){var a=this.getField("A"),b=this.getField("B");"A"===a.value_?b.setValue("B"):b.setValue("RIGHT")}}};
Blockly.Blocks.mbedActions_single_motor_on={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendValueInput("POWER").appendField(Blockly.Msg.MOTOR).appendField(Blockly.Msg.MOTOR_ON).appendField(Blockly.Msg.ON).appendField(Blockly.Msg.MOTOR_SPEED).setCheck("Number");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg["SINGLE_MOTOR_ON_TOOLTIP_"+this.workspace.device.toUpperCase()]||Blockly.Msg.SINGLE_MOTOR_ON_TOOLTIP)}};
Blockly.Blocks.mbedActions_single_motor_stop={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.MOTOR_FLOAT,"FLOAT"],[Blockly.Msg.MOTOR_BRAKE,"NONFLOAT"],[Blockly.Msg.SLEEP,"SLEEP"]]);this.appendDummyInput().appendField(Blockly.Msg.MOTOR).appendField(Blockly.Msg.MOTOR_STOP).appendField(a,"MODE");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.MOTOR_STOP_TOOLTIP)}};
Blockly.Blocks.mbedActions_motor_stop={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([["Port A","A"],["Port B","B"],["Port A + B","AB"],[Blockly.Msg.CB_LEFT,"0"],[Blockly.Msg.CB_RIGHT,"2"],[Blockly.Msg.CB_BOTH,"3"]]);this.appendDummyInput().appendField(Blockly.Msg.MOTOR_STOP).appendField(Blockly.Msg.MOTOR).appendField(a,"MOTORPORT");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.MOTOR_STOP_TOOLTIP)}};
Blockly.Blocks.mbedActions_motors_stop={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendDummyInput().appendField(Blockly.Msg.MOTOR_STOP).appendField(Blockly.Msg.MOTOR_PORT+" A + B");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.MOTORS_STOP_TOOLTIP)}};
Blockly.Blocks.mbedActions_display_text={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);if("mbot"!==this.workspace.device){var a=new Blockly.FieldDropdown([[Blockly.Msg.DISPLAY_TEXT,"TEXT"],[Blockly.Msg.DISPLAY_CHARACTER,"CHARACTER"]]);this.appendValueInput("OUT").appendField(Blockly.Msg.DISPLAY_SHOW).appendField(a,"TYPE").setCheck(["Number","Boolean","String"])}else{a=new Blockly.FieldDropdown([[Blockly.Msg.DISPLAY_TEXT,"TEXT"]]);var b=new Blockly.FieldDropdown([["Port 1","1"],["Port 2",
"2"],["Port 3","3"],["Port 4","4"]]);this.appendValueInput("OUT").appendField(Blockly.Msg.DISPLAY_SHOW).appendField(a,"TYPE").appendField(Blockly.Msg.LED_MATRIX).appendField(b,"ACTORPORT").setCheck(["Number","Boolean","String"])}this.setPreviousStatement(!0);this.setNextStatement(!0);this.setBlocking(!0);this.setTooltip(Blockly.Msg.DISPLAY_TEXT_TOOLTIP)}};Blockly.Blocks.mBotActions_display_text=Blockly.Blocks.mbedActions_display_text;
Blockly.Blocks.mbedActions_display_image={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.DISPLAY_IMAGE,"IMAGE"],[Blockly.Msg.DISPLAY_ANIMATION,"ANIMATION"]],function(a){a&&this.sourceBlock_.updateShape_(a)});if("mbot"!==this.workspace.device)this.appendValueInput("VALUE").appendField(Blockly.Msg.DISPLAY_SHOW).appendField(a,"TYPE").setCheck("Image");else{var b=new Blockly.FieldDropdown([["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]]);
this.appendValueInput("VALUE").appendField(Blockly.Msg.DISPLAY_SHOW).appendField(a,"TYPE").appendField(Blockly.Msg.LED_MATRIX).appendField(b,"ACTORPORT").setCheck("Image")}this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.DISPLAY_PICTURE_TOOLTIP)},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("type",this.getFieldValue("TYPE"));return a},domToMutation:function(a){this.updateShape_(a.getAttribute("type"))},updateShape_:function(a){this.workspace&&
2!=Blockly.Block.dragMode_&&("IMAGE"===a?this.getInput("VALUE").setCheck("Image"):this.getInput("VALUE").setCheck("Array_Image"))}};Blockly.Blocks.mBotActions_display_image=Blockly.Blocks.mbedActions_display_image;
Blockly.Blocks.mbedActions_display_clear={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);if("mbot"!==this.workspace.device)this.appendDummyInput().appendField(Blockly.Msg.DISPLAY_CLEAR);else{var a=new Blockly.FieldDropdown([["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]]);this.appendDummyInput().appendField(Blockly.Msg.CLEAR).appendField(Blockly.Msg.LED_MATRIX).appendField(a,"ACTORPORT")}this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.DISPLAY_CLEAR_TOOLTIP)}};
Blockly.Blocks.mBotActions_display_clear=Blockly.Blocks.mbedActions_display_clear;
Blockly.Blocks.mbedActions_display_getPixel={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendValueInput("X").setCheck("Number").appendField(Blockly.Msg.GET+" "+Blockly.Msg.DISPLAY_PIXEL_TITLE).appendField(Blockly.Msg.DISPLAY_PIXEL_BRIGHTNESS).setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.X);this.appendValueInput("Y").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.Y);this.setTooltip(Blockly.Msg.DISPLAY_GET_PIXEL_TOOLTIP);this.setOutput(!0,"Number")}};
Blockly.Blocks.mbedActions_display_setPixel={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendValueInput("X").setCheck("Number").appendField(Blockly.Msg.SET+" "+Blockly.Msg.DISPLAY_PIXEL_TITLE).setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.X);this.appendValueInput("Y").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.Y);this.appendValueInput("BRIGHTNESS").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.DISPLAY_PIXEL_BRIGHTNESS);
this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.DISPLAY_SET_PIXEL_TOOLTIP)}};
Blockly.Blocks.mbedActions_ledBar_set={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendValueInput("X").setCheck("Number").appendField(Blockly.Msg.SET+" "+Blockly.Msg.LEDBAR).setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.X);this.appendValueInput("BRIGHTNESS").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.DISPLAY_PIXEL_BRIGHTNESS);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.LEDBAR_SET_TOOLTIP)}};
Blockly.Blocks.mbedActions_display_getBrightness={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.GET+" "+Blockly.Msg.DISPLAY_PIXEL_BRIGHTNESS);this.setTooltip(Blockly.Msg.DISPLAY_GET_BRIGHTNESS_TOOLTIP);this.setOutput(!0,"Number")}};
Blockly.Blocks.mbedActions_display_setBrightness={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);if("mbot"!==this.workspace.device)this.appendValueInput("BRIGHTNESS").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.SET+" "+Blockly.Msg.DISPLAY_PIXEL_BRIGHTNESS);else{var a=new Blockly.FieldDropdown([["Port 1","1"],["Port 2","2"],["Port 3","3"],["Port 4","4"]]);this.appendValueInput("BRIGHTNESS").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.SET+
" "+Blockly.Msg.DISPLAY_PIXEL_BRIGHTNESS).appendField(Blockly.Msg.LED_MATRIX).appendField(a,"ACTORPORT")}this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.DISPLAY_SET_BRIGHTNESS_TOOLTIP)}};Blockly.Blocks.mBotActions_display_setBrightness=Blockly.Blocks.mbedActions_display_setBrightness;
Blockly.Blocks.mbedActions_fourDigitDisplay_show={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendValueInput("VALUE").appendField(Blockly.Msg.DISPLAY_SHOW+" "+Blockly.Msg.FOURDIGITDISPLAY).appendField(Blockly.Msg.VARIABLES_TYPE_NUMBER).setCheck("Number");this.appendValueInput("POSITION").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.FROM_POSITION).setCheck("Number");this.appendValueInput("COLON").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLON).setCheck("Boolean");
this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.FOURDIGITDISPLAY_SHOW_TOOLTIP)}};Blockly.Blocks.mbedActions_fourDigitDisplay_clear={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendDummyInput().appendField(Blockly.Msg.CLEAR).appendField(Blockly.Msg.FOURDIGITDISPLAY);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.FOURDIGITDISPLAY_CLEAR_TOOLTIP)}};
Blockly.Blocks.mbedActions_play_tone={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendValueInput("FREQUENCE").appendField(Blockly.Msg.PLAY).appendField(Blockly.Msg.PLAY_FREQUENZ).setCheck("Number");this.appendValueInput("DURATION").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.PLAY_DURATION);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setBlocking(!0);this.setTooltip(Blockly.Msg.PLAY_TONE_TOOLTIP)}};
Blockly.Blocks.mbedActions_play_note={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldNote("261.626"),b=new Blockly.FieldDropdown([[Blockly.Msg.PLAY_WHOLE,"2000"],[Blockly.Msg.PLAY_HALF,"1000"],[Blockly.Msg.PLAY_QUARTER,"500"],[Blockly.Msg.PLAY_EIGHTH,"250"],[Blockly.Msg.PLAY_SIXTEENTH,"125"]]);if("wedo"===this.workspace.device){this.action="BUZZER";var c=[];if(Blockly.Workspace.getByContainer("bricklyDiv"))for(var d=Blockly.Workspace.getByContainer("bricklyDiv").getAllBlocks(),
e=0;e<d.length;e++){var f=d[e].getConfigDecl;f&&(f=f.call(d[e]),"buzzer"===f.type&&c.push([f.name,f.name]))}0===c.length&&c.push([Blockly.Msg.CONFIGURATION_NO_PORT||Blockly.checkMsgKey("CONFIGURATION_NO_PORT"),(Blockly.Msg.CONFIGURATION_NO_PORT||Blockly.checkMsgKey("CONFIGURATION_NO_PORT")).toUpperCase()]);c=new Blockly.FieldDropdown(c);this.dependConfig={type:"buzzer",dropDown:c};this.appendDummyInput().appendField(Blockly.Msg.PLAY).appendField(c,"ACTORPORT").appendField(b,"DURATION").appendField(a,
"FREQUENCE")}else this.appendDummyInput().appendField(Blockly.Msg.PLAY).appendField(b,"DURATION").appendField(a,"FREQUENCE");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setBlocking(!0);this.setTooltip(Blockly.Msg.PLAY_NOTE_TOOLTIP)}};
Blockly.Blocks.mbedActions_play_setVolume={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendValueInput("VOLUME").appendField(Blockly.Msg.SET+" "+Blockly.Msg.PLAY_VOLUME).setCheck("Number");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.PLAY_SETVOLUME_TOOLTIP)}};
Blockly.Blocks.mbedActions_play_getVolume={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendDummyInput().appendField(Blockly.Msg.GET+" "+Blockly.Msg.PLAY_VOLUME);this.setOutput(!0,"Number");this.setTooltip(Blockly.Msg.PLAY_GETVOLUME_TOOLTIP)}};
Blockly.Blocks.mbedActions_leds_on={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.PORT_INTERNAL,"0"],[Blockly.Msg.CB_LEFT+" "+Blockly.Msg.SLOT_FRONT,"1"],[Blockly.Msg.CB_RIGHT+" "+Blockly.Msg.SLOT_FRONT,"4"],[Blockly.Msg.CB_LEFT+" "+Blockly.Msg.SLOT_REAR,"2"],[Blockly.Msg.CB_RIGHT+" "+Blockly.Msg.SLOT_REAR,"3"],[Blockly.Msg.CB_ALL,"5"]]);this.appendValueInput("COLOR").appendField(Blockly.Msg.LED_ON).appendField(a,"ACTORPORT").appendField(Blockly.Msg.BRICKLIGHT_COLOR).setCheck("Colour");
this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.LED_ON_TOOLTIP);var b=this;this.setTooltip(function(){return 0<parseInt(b.getFieldValue("ACTORPORT"))?Blockly.Msg.LED_ON_TOOLTIP_CB:Blockly.Msg.LED_ON_TOOLTIP})}};
Blockly.Blocks.mbedActions_leds_off={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.PORT_INTERNAL,"0"],[Blockly.Msg.CB_LEFT+" "+Blockly.Msg.SLOT_FRONT,"1"],[Blockly.Msg.CB_RIGHT+" "+Blockly.Msg.SLOT_FRONT,"4"],[Blockly.Msg.CB_LEFT+" "+Blockly.Msg.SLOT_REAR,"2"],[Blockly.Msg.CB_RIGHT+" "+Blockly.Msg.SLOT_REAR,"3"],[Blockly.Msg.CB_ALL,"5"]]);this.appendDummyInput().appendField(Blockly.Msg.LED_OFF).appendField(a,"ACTORPORT");this.setPreviousStatement(!0);
this.setNextStatement(!0);this.setTooltip(Blockly.Msg.LED_OFF_TOOLTIP)}};
Blockly.Blocks.mbedActions_write_to_pin={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.ANALOG,"ANALOG"],[Blockly.Msg.DIGITAL,"DIGITAL"]],function(a){a&&this.sourceBlock_.getFieldValue("VALUETYPE")!==a&&this.sourceBlock_.updatePins_(a)});this.appendValueInput("VALUE").appendField(Blockly.Msg.PIN_WRITE).appendField(a,"VALUETYPE").appendField(Blockly.Msg.VALUE_TO+" "+Blockly.Msg.SENSOR_PIN).appendField(new Blockly.FieldDropdown([["dummy","0"]]),
"PIN").setCheck("Number");this.protocol_="ANALOG";this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.WRITE_TO_PIN_TOOLTIP);this.updatePins_(this.protocol_)},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("protocol",this.protocol_);return a},domToMutation:function(a){this.protocol_=a.getAttribute("protocol");this.updatePins_(this.protocol_)},updatePins_:function(a){this.protocol_=a;if("microbit"===this.workspace.device){if("ANALOG"===
a){a=[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["10","10"]];var b=this.getField("PIN");b.menuGenerator_=a}else"DIGITAL"===a&&(a=[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["19","19"],["20","20"]],b=this.getField("PIN"),b.menuGenerator_=a);b.setValue("0");b.setText("0")}else"ANALOG"===a?(a=[["P1","1"],["P2","2"],["A1","5"],["C04","C04"],["C05","C05"],
["C06","C06"],["C16","C16"],["C17","C17"]],b=this.getField("PIN"),b.menuGenerator_=a,b.setValue("1"),b.setText("P1")):"DIGITAL"===a&&(a=[["P0","0"],["P1","1"],["P2","2"],["P3","3"],["A0","4"],["A1","5"],["C04","C04"],["C05","C05"],["C06","C06"],["C07","C07"],["C08","C08"],["C09","C09"],["C10","C10"],["C11","C11"],["C12","C12"],["C16","C16"],["C17","C17"],["C18","C18"],["C19","C19"]],b=this.getField("PIN"),b.menuGenerator_=a,b.setValue("0"),b.setText("P0"))}};
Blockly.Blocks.mbedActions_pin_set_pull={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.PIN_PULL_UP,"UP"],[Blockly.Msg.PIN_PULL_DOWN,"DOWN"],[Blockly.Msg.PIN_PULL_NONE,"NONE"]]),b=new Blockly.FieldDropdown([["P0","0"],["P1","1"],["P2","2"],["P3","3"],["A0","4"],["A1","5"],["C04","C04"],["C05","C05"],["C06","C06"],["C07","C07"],["C08","C08"],["C09","C09"],["C10","C10"],["C11","C11"],["C12","C12"],["C16","C16"],["C17","C17"],["C18","C18"],["C19",
"C19"]]);this.appendDummyInput().appendField(Blockly.Msg.SET+" "+Blockly.Msg.PIN_PULL).appendField(a,"PIN_PULL").appendField(Blockly.Msg.ON+" "+Blockly.Msg.SENSOR_PIN).appendField(b,"PIN_PORT");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.PIN_SET_PULL_TOOLTIP)}};
Blockly.Blocks.mbedActions_switch_led_matrix={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.ON,"ON"],[Blockly.Msg.OFF,"OFF"]]);this.appendDummyInput().appendField(Blockly.Msg.SWITCH+" "+Blockly.Msg.LED_MATRIX).appendField(a,"STATE");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.SWITCH_LED_MATRIX_TOOLTIP)}};Blockly.Blocks.robConfig={};
Blockly.Blocks.robConf_generic={init:function(a){this.setColour(a.sensor?Blockly.CAT_SENSOR_RGB:Blockly.CAT_ACTION_RGB);var b=a.sensor?"SENSOR_":"ACTION_",c=Blockly.Msg[b+a.title+"_"+this.workspace.device.toUpperCase()]||Blockly.Msg[b+a.title];this.nameOld=c=Blockly.RobConfig.findLegalName(c.charAt(0).toUpperCase()||Blockly.Msg[b+a.title]||Blockly.checkMsgKey("CONFIGURATION_PORT"),this);c=new Blockly.FieldTextInput(c,function(a){var b=this.sourceBlock_;a=a.replace(/[\s\xa0]+/g,"").replace(/^ | $/g,
"");if(""===a||!a.match(/^[a-zA-Z][a-zA-Z_$0-9]*$/))return null;a=Blockly.RobConfig.findLegalName(a,b);Blockly.RobConfig.renameConfig(this.sourceBlock_,b.nameOld,a,Blockly.Workspace.getByContainer("blocklyDiv"));return b.nameOld=a});this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg[b+a.title+"_"+this.workspace.device.toUpperCase()]||Blockly.Msg[b+a.title]||b+a.title,"SENSORTITLE").appendField(c,"NAME");if(a.bricks){if(Blockly.Workspace.getByContainer("bricklyDiv")){c=Blockly.getMainWorkspace().getTopBlocks(!0);
var d=[];for(b=0;b<c.length;b++){var e=c[b];-1!==e.type.indexOf("robBrick_")&&e.getVarDecl&&d.push([e.getVarDecl()[0],e.getVarDecl()[0]])}}0==d.length&&d.push([["INVALID_NAME","INVALID_NAME"]]);b=new Blockly.FieldDropdown(d);this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg["BRICKNAME_"+this.workspace.device.toUpperCase()]).appendField(b,"VAR");this.getVars=function(){return[this.getFieldValue("VAR")]};this.renameVar=function(a,b){Blockly.Names.equals(a,this.getFieldValue("VAR"))&&
this.setFieldValue(b,"VAR")}}if(a.inputs)for(b=0;b<a.inputs.length;b++)d=a.inputs[b][0],c=new Blockly.FieldTextInput(a.inputs[b][1]),this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg[a.inputs[b][0]]).appendField(c,d);if(a.dropdowns)for(b=0;b<a.dropdowns.length;b++)d=Blockly.Msg[a.dropdowns[b][0]],c=new Blockly.FieldDropdown(a.dropdowns[b][1]),this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField(d).appendField(c,d);c=[];if(a.ports){for(b=0;b<a.ports.length;b++)c.push([Blockly.Msg[a.ports[b][0]]||
a.ports[b][0],a.ports[b][1]]);new Blockly.FieldDropdown(c)}else new Blockly.FieldHidden;if(a.pins)for(b=0;b<c.length;b++)d=new Blockly.FieldDropdown(a.pins.call(this,this.workspace.subDevice)),a.standardPins&&d.setValue(a.standardPins[b]),this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField(c[b][0]).appendField(d,c[b][1]);if(a.fixedPorts)for(b=0;b<a.fixedPorts.length;b++)d=new Blockly.FieldDropdown([[a.fixedPorts[b][1],a.fixedPorts[b][1]]]),this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField(a.fixedPorts[b][0]).appendField(d);
var f=this;this.setTooltip(function(){return Blockly.Msg[a.title+"_TOOLTIP_"+f.workspace.device.toUpperCase()]||Blockly.Msg[a.title+"_TOOLTIP"]||a.title+"_TOOLTIP"});this.type="robConf_"+a.title.toLowerCase();this.getConfigDecl=function(){return{type:a.title.toLowerCase(),name:f.getFieldValue("NAME")}};this.onDispose=function(){Blockly.RobConfig.disposeConfig(this)}}};Blockly.Blocks.bob3Actions={};
Blockly.Blocks.bob3Actions_set_led={init:function(){var a=new Blockly.FieldDropdown([[Blockly.Msg.MOTOR_LEFT,"LED_4"],[Blockly.Msg.MOTOR_RIGHT,"LED_3"]]),b=new Blockly.FieldDropdown([[Blockly.Msg.ON,"ON"],[Blockly.Msg.OFF,"OFF"]]);this.setColour(Blockly.CAT_ACTION_RGB);this.appendDummyInput().appendField(Blockly.Msg.SET_LED).appendField(Blockly.Msg.NAO_PART_BODY).appendField(a,"LEDSIDE").appendField(b,"LEDSTATE");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.LED_ON_WHITE_TOOLTIP)}};
Blockly.Blocks.bob3Actions_recall={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendDummyInput().appendField(Blockly.Msg.BOB3_RECALL_NUMBER);this.setOutput(!0,"Number");this.setTooltip(Blockly.Msg.BOB3_READNUMBER_TOOLTIP)}};Blockly.Blocks.bob3Actions_remember={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendValueInput("VALUE").appendField(Blockly.Msg.BOB3_REMEMBER_NUMBER).setCheck(["Number"]);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.BOB3_SAVENUMBER_TOOLTIP)}};Blockly.Blocks.mbedColour={};Blockly.Blocks.mbedColour.HUE=20;Blockly.Blocks.mbedColour_picker={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_colour",name:"COLOUR",colour:"#ff0000"}],output:"Colour",colour:Blockly.CAT_COLOUR_RGB,helpUrl:Blockly.Msg.mbedColour_PICKER_HELPURL});var a=this;this.setTooltip(function(){var b=a.getParent();return b&&b.getInputsInline()&&b.tooltip||Blockly.Msg.mbedColour_PICKER_TOOLTIP})}};
Blockly.Blocks.mbedColour_rgb={init:function(){this.setColour(Blockly.CAT_COLOUR_RGB);this.appendValueInput("RED").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_RGB_TITLE).appendField(Blockly.Msg.COLOUR_RGB_RED);this.appendValueInput("GREEN").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_RGB_GREEN);this.appendValueInput("BLUE").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_RGB_BLUE);this.appendValueInput("WHITE").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_RGB_WHITE);
this.setOutput(!0,"Colour");this.setTooltip(Blockly.Msg.COLOUR_RGB_TOOLTIP)}};Blockly.Blocks.mbedCommunication={};
Blockly.Blocks.mbedCommunication_sendBlock={init:function(){this.setColour(Blockly.CAT_COMMUNICATION_RGB);for(var a=new Blockly.FieldDropdown([[Blockly.Msg.VARIABLES_TYPE_NUMBER,"Number"],[Blockly.Msg.VARIABLES_TYPE_BOOLEAN,"Boolean"],[Blockly.Msg.VARIABLES_TYPE_STRING,"String"]],function(a){a&&this.sourceBlock_.getFieldValue("TYPE")!==a&&this.sourceBlock_.updateType_(a)}),b=[],c=0;8>c;c++)b.push([c.toString(),c.toString()]);this.dataType_="Number";this.appendValueInput("sendData").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.CONNECTION_SEND_DATA).appendField(a,"TYPE").setCheck(this.dataType_);
this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.CONNECTION_POWER).appendField(new Blockly.FieldDropdown(b),"POWER");this.setTooltip(Blockly.Msg.CONNECTION_MBED_SEND_TOOLTIP);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!1)},mutationToDom:function(){if(void 0===this.dataType_)return!1;var a=document.createElement("mutation");a.setAttribute("datatype",this.dataType_);return a},domToMutation:function(a){(this.dataType_=a.getAttribute("datatype"))&&
this.getInput("sendData").setCheck(this.dataType_)},updateType_:function(a){this.dataType_=a;this.getInput("sendData").setCheck(this.dataType_)}};
Blockly.Blocks.mbedCommunication_receiveBlock={init:function(){this.setColour(Blockly.CAT_COMMUNICATION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.VARIABLES_TYPE_NUMBER,"Number"],[Blockly.Msg.VARIABLES_TYPE_BOOLEAN,"Boolean"],[Blockly.Msg.VARIABLES_TYPE_STRING,"String"]],function(a){a&&this.sourceBlock_.getFieldValue("TYPE")!==a&&this.sourceBlock_.updateType_(a)});this.dataType_="Number";this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.CONNECTION_RECEIVED_DATA).appendField(a,
"TYPE");this.setOutput(!0,this.dataType_);this.setTooltip(Blockly.Msg.CONNECTION_MBED_RECEIVE_TOOLTIP);this.setInputsInline(!1)},mutationToDom:function(){if(void 0===this.dataType_)return!1;var a=document.createElement("mutation");a.setAttribute("datatype",this.dataType_);return a},domToMutation:function(a){(this.dataType_=a.getAttribute("datatype"))&&this.setOutput(!0,this.dataType_)},updateType_:function(a){this.dataType_=a;this.setOutput(!0,this.dataType_)}};
Blockly.Blocks.mbedCommunication_setChannel={init:function(){this.jsonInit({message0:Blockly.Msg.CONNECTION_SET_CHANNEL,args0:[{type:"input_value",name:"CONNECTION",check:"Number"}],previousStatement:null,nextStatement:null,colour:Blockly.CAT_COMMUNICATION_RGB,tooltip:Blockly.Msg.CONNECTION_SET_CHANNEL_TOOLTIP})}};Blockly.Blocks.procedures={};Blockly.Blocks.procedures.HUE=290;
Blockly.Blocks.procedures_defnoreturn={init:function(){var a=new Blockly.FieldTextInput(Blockly.Msg.PROCEDURES_DEFNORETURN_PROCEDURE,Blockly.Procedures.rename);a.setSpellcheck(!1);this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_DEFNORETURN_TITLE).appendField(a,"NAME").appendField("","PARAMS");this.setMutator(new Blockly.Mutator(["procedures_mutatorarg"]));Blockly.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(Blockly.Msg.PROCEDURES_DEFNORETURN_COMMENT);this.setColour(Blockly.CAT_PROCEDURE_RGB);
this.setTooltip(Blockly.Msg.PROCEDURES_DEFNORETURN_TOOLTIP);this.setHelpUrl(Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL);this.arguments_=[];this.setStatements_(!0);this.statementConnection_=null},validate:function(){var a=Blockly.Procedures.findLegalName(this.getFieldValue("NAME"),this);this.setFieldValue(a,"NAME")},setStatements_:function(a){this.hasStatements_!==a&&(a?(this.appendStatementInput("STACK").appendField(Blockly.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK",
"RETURN")):this.removeInput("STACK",!0),this.hasStatements_=a)},updateParams_:function(){for(var a=!1,b={},c=0;c<this.arguments_.length;c++){if(b["arg_"+this.arguments_[c].toLowerCase()]){a=!0;break}b["arg_"+this.arguments_[c].toLowerCase()]=!0}a?this.setWarningText(Blockly.Msg.PROCEDURES_DEF_DUPLICATE_WARNING):this.setWarningText(null);a="";this.arguments_.length&&(a=Blockly.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", "));Blockly.Events.disable();this.setFieldValue(a,"PARAMS");Blockly.Events.enable()},
mutationToDom:function(a){var b=document.createElement("mutation");a&&b.setAttribute("name",this.getFieldValue("NAME"));for(var c=0;c<this.arguments_.length;c++){var d=document.createElement("arg");d.setAttribute("name",this.arguments_[c]);a&&this.paramIds_&&d.setAttribute("paramId",this.paramIds_[c]);b.appendChild(d)}this.hasStatements_||b.setAttribute("statements","false");return b},domToMutation:function(a){this.arguments_=[];for(var b=0,c;c=a.childNodes[b];b++)"arg"==c.nodeName.toLowerCase()&&
this.arguments_.push(c.getAttribute("name"));this.updateParams_();Blockly.Procedures.mutateCallers(this);this.setStatements_("false"!==a.getAttribute("statements"))},decompose:function(a){var b=a.newBlock("procedures_mutatorcontainer");b.initSvg();this.getInput("RETURN")?b.setFieldValue(this.hasStatements_?"TRUE":"FALSE","STATEMENTS"):b.getInput("STATEMENT_INPUT").setVisible(!1);for(var c=b.getInput("STACK").connection,d=0;d<this.arguments_.length;d++){var e=a.newBlock("procedures_mutatorarg");e.initSvg();
e.setFieldValue(this.arguments_[d],"NAME");e.oldLocation=d;c.connect(e.previousConnection);c=e.nextConnection}Blockly.Procedures.mutateCallers(this);return b},compose:function(a){this.arguments_=[];this.paramIds_=[];for(var b=a.getInputTargetBlock("STACK");b;)this.arguments_.push(b.getFieldValue("NAME")),this.paramIds_.push(b.id),b=b.nextConnection&&b.nextConnection.targetBlock();this.updateParams_();Blockly.Procedures.mutateCallers(this);a=a.getFieldValue("STATEMENTS");if(null!==a&&(a="TRUE"==a,
this.hasStatements_!=a))if(a)this.setStatements_(!0),Blockly.Mutator.reconnect(this.statementConnection_,this,"STACK"),this.statementConnection_=null;else{a=this.getInput("STACK").connection;if(this.statementConnection_=a.targetConnection)a=a.targetBlock(),a.unplug(),a.bumpNeighbours_();this.setStatements_(!1)}},dispose:function(){var a=this.getFieldValue("NAME");Blockly.Procedures.disposeCallers(a,this.workspace);this.constructor.prototype.dispose.apply(this,arguments)},getProcedureDef:function(){return[this.getFieldValue("NAME"),
this.arguments_,!1]},getVars:function(){return this.arguments_},renameVar:function(a,b){for(var c=!1,d=0;d<this.arguments_.length;d++)Blockly.Names.equals(a,this.arguments_[d])&&(this.arguments_[d]=b,c=!0);if(c&&(this.updateParams_(),this.mutator.isVisible())){c=this.mutator.workspace_.getAllBlocks();d=0;for(var e;e=c[d];d++)"procedures_mutatorarg"==e.type&&Blockly.Names.equals(a,e.getFieldValue("NAME"))&&e.setFieldValue(b,"NAME")}},customContextMenu:function(a){var b={enabled:!0},c=this.getFieldValue("NAME");
b.text=Blockly.Msg.PROCEDURES_CREATE_DO.replace("%1",c);var d=goog.dom.createDom("mutation");d.setAttribute("name",c);for(var e=0;e<this.arguments_.length;e++)c=goog.dom.createDom("arg"),c.setAttribute("name",this.arguments_[e]),d.appendChild(c);d=goog.dom.createDom("block",null,d);d.setAttribute("type",this.callType_);b.callback=Blockly.ContextMenu.callbackFactory(this,d);a.push(b);if(!this.isCollapsed())for(e=0;e<this.arguments_.length;e++)b={enabled:!0},c=this.arguments_[e],b.text=Blockly.Msg.VARIABLES_SET_CREATE_GET.replace("%1",
c),d=goog.dom.createDom("field",null,c),d.setAttribute("name","VAR"),d=goog.dom.createDom("block",null,d),d.setAttribute("type","variables_get"),b.callback=Blockly.ContextMenu.callbackFactory(this,d),a.push(b)},callType_:"procedures_callnoreturn"};
Blockly.Blocks.procedures_defreturn={init:function(){var a=new Blockly.FieldTextInput(Blockly.Msg.PROCEDURES_DEFRETURN_PROCEDURE,Blockly.Procedures.rename);a.setSpellcheck(!1);this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_DEFRETURN_TITLE).appendField(a,"NAME").appendField("","PARAMS");this.appendValueInput("RETURN").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN);this.setMutator(new Blockly.Mutator(["procedures_mutatorarg"]));Blockly.Msg.PROCEDURES_DEFRETURN_COMMENT&&
this.setCommentText(Blockly.Msg.PROCEDURES_DEFRETURN_COMMENT);this.setColour(Blockly.CAT_PROCEDURE_RGB);this.setTooltip(Blockly.Msg.PROCEDURES_DEFRETURN_TOOLTIP);this.setHelpUrl(Blockly.Msg.PROCEDURES_DEFRETURN_HELPURL);this.arguments_=[];this.setStatements_(!0);this.statementConnection_=null},setStatements_:Blockly.Blocks.procedures_defnoreturn.setStatements_,validate:Blockly.Blocks.procedures_defnoreturn.validate,updateParams_:Blockly.Blocks.procedures_defnoreturn.updateParams_,mutationToDom:Blockly.Blocks.procedures_defnoreturn.mutationToDom,
domToMutation:Blockly.Blocks.procedures_defnoreturn.domToMutation,decompose:Blockly.Blocks.procedures_defnoreturn.decompose,compose:Blockly.Blocks.procedures_defnoreturn.compose,dispose:Blockly.Blocks.procedures_defnoreturn.dispose,getProcedureDef:function(){return[this.getFieldValue("NAME"),this.arguments_,!0]},getVars:Blockly.Blocks.procedures_defnoreturn.getVars,renameVar:Blockly.Blocks.procedures_defnoreturn.renameVar,customContextMenu:Blockly.Blocks.procedures_defnoreturn.customContextMenu,callType_:"procedures_callreturn"};
Blockly.Blocks.procedures_mutatorcontainer={init:function(){this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_MUTATORCONTAINER_TITLE);this.appendStatementInput("STACK");this.appendDummyInput("STATEMENT_INPUT").appendField(Blockly.Msg.PROCEDURES_ALLOW_STATEMENTS).appendField(new Blockly.FieldCheckbox("TRUE"),"STATEMENTS");this.setColour(Blockly.CAT_PROCEDURE_RGB);this.setTooltip(Blockly.Msg.PROCEDURES_MUTATORCONTAINER_TOOLTIP);this.contextMenu=!1}};
Blockly.Blocks.procedures_mutatorarg={init:function(){this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_MUTATORARG_TITLE).appendField(new Blockly.FieldTextInput("x",this.validator_),"NAME");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setColour(Blockly.CAT_PROCEDURE_RGB);this.setTooltip(Blockly.Msg.PROCEDURES_MUTATORARG_TOOLTIP);this.contextMenu=!1},validator_:function(a){return(a=a.replace(/[\s\xa0]+/g," ").replace(/^ | $/g,""))||null}};
Blockly.Blocks.procedures_callnoreturn={init:function(){this.appendDummyInput("TOPROW").appendField(this.id,"NAME");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setColour(Blockly.Blocks.procedures.HUE);this.setHelpUrl(Blockly.Msg.PROCEDURES_CALLNORETURN_HELPURL);this.arguments_=[];this.quarkConnections_={};this.quarkIds_=null},getProcedureCall:function(){return this.getFieldValue("NAME")},renameProcedure:function(a,b){Blockly.Names.equals(a,this.getProcedureCall())&&(this.setFieldValue(b,
"NAME"),this.setTooltip((this.outputConnection?Blockly.Msg.PROCEDURES_CALLRETURN_TOOLTIP:Blockly.Msg.PROCEDURES_CALLNORETURN_TOOLTIP).replace("%1",b)))},setProcedureParameters_:function(a,b){var c=Blockly.Procedures.getDefinition(this.getProcedureCall(),this.workspace),d=c&&c.mutator&&c.mutator.isVisible();d||(this.quarkConnections_={},this.quarkIds_=null);if(b)if(goog.array.equals(this.arguments_,a))this.quarkIds_=b;else{if(b.length!=a.length)throw"Error: paramNames and paramIds must be the same length.";
this.setCollapsed(!1);this.quarkIds_||(this.quarkConnections_={},a.join("\n")==this.arguments_.join("\n")?this.quarkIds_=b:this.quarkIds_=[]);c=this.rendered;this.rendered=!1;for(var e=0;e<this.arguments_.length;e++){var f=this.getInput("ARG"+e);f&&(f=f.connection.targetConnection,this.quarkConnections_[this.quarkIds_[e]]=f,d&&f&&-1==b.indexOf(this.quarkIds_[e])&&(f.disconnect(),f.getSourceBlock().bumpNeighbours_()))}this.arguments_=[].concat(a);this.updateShape_();if(this.quarkIds_=b)for(e=0;e<this.arguments_.length;e++)d=
this.quarkIds_[e],d in this.quarkConnections_&&(f=this.quarkConnections_[d],Blockly.Mutator.reconnect(f,this,"ARG"+e)||delete this.quarkConnections_[d]);(this.rendered=c)&&this.render()}},updateShape_:function(){for(var a=0;a<this.arguments_.length;a++){var b=this.getField("ARGNAME"+a);b?(Blockly.Events.disable(),b.setValue(this.arguments_[a]),Blockly.Events.enable()):(b=new Blockly.FieldLabel(this.arguments_[a]),this.appendValueInput("ARG"+a).setAlign(Blockly.ALIGN_RIGHT).appendField(b,"ARGNAME"+
a).init())}for(;this.getInput("ARG"+a);)this.removeInput("ARG"+a),a++;if(a=this.getInput("TOPROW"))this.arguments_.length?this.getField("WITH")||(a.appendField(Blockly.Msg.PROCEDURES_CALL_BEFORE_PARAMS,"WITH"),a.init()):this.getField("WITH")&&a.removeField("WITH")},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("name",this.getProcedureCall());for(var b=0;b<this.arguments_.length;b++){var c=document.createElement("arg");c.setAttribute("name",this.arguments_[b]);a.appendChild(c)}return a},
domToMutation:function(a){var b=a.getAttribute("name");this.renameProcedure(this.getProcedureCall(),b);b=[];for(var c=[],d=0,e;e=a.childNodes[d];d++)"arg"==e.nodeName.toLowerCase()&&(b.push(e.getAttribute("name")),c.push(e.getAttribute("paramId")));this.setProcedureParameters_(b,c)},renameVar:function(a,b){for(var c=0;c<this.arguments_.length;c++)Blockly.Names.equals(a,this.arguments_[c])&&(this.arguments_[c]=b,this.getField("ARGNAME"+c).setValue(b))},customContextMenu:function(a){var b={enabled:!0};
b.text=Blockly.Msg.PROCEDURES_HIGHLIGHT_DEF;var c=this.getProcedureCall(),d=this.workspace;b.callback=function(){var a=Blockly.Procedures.getDefinition(c,d);a&&a.select()};a.push(b)}};
Blockly.Blocks.procedures_callreturn={init:function(){this.appendDummyInput("TOPROW").appendField("","NAME");this.setOutput(!0);this.setColour(Blockly.CAT_PROCEDURE_RGB);this.setHelpUrl(Blockly.Msg.PROCEDURES_CALLRETURN_HELPURL);this.arguments_=[];this.quarkConnections_={};this.quarkIds_=null},getProcedureCall:Blockly.Blocks.procedures_callnoreturn.getProcedureCall,renameProcedure:Blockly.Blocks.procedures_callnoreturn.renameProcedure,setProcedureParameters_:Blockly.Blocks.procedures_callnoreturn.setProcedureParameters_,
updateShape_:Blockly.Blocks.procedures_callnoreturn.updateShape_,mutationToDom:Blockly.Blocks.procedures_callnoreturn.mutationToDom,domToMutation:Blockly.Blocks.procedures_callnoreturn.domToMutation,renameVar:Blockly.Blocks.procedures_callnoreturn.renameVar,customContextMenu:Blockly.Blocks.procedures_callnoreturn.customContextMenu};
Blockly.Blocks.procedures_ifreturn={init:function(){this.appendValueInput("CONDITION").setCheck("Boolean").appendField(Blockly.Msg.CONTROLS_IF_MSG_IF);this.appendValueInput("VALUE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN);this.setInputsInline(!0);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setColour(Blockly.Blocks.procedures.HUE);this.setTooltip(Blockly.Msg.PROCEDURES_IFRETURN_TOOLTIP);this.setHelpUrl(Blockly.Msg.PROCEDURES_IFRETURN_HELPURL);this.hasReturnValue_=!0},
mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("value",Number(this.hasReturnValue_));return a},domToMutation:function(a){this.hasReturnValue_=1==a.getAttribute("value");this.hasReturnValue_||(this.removeInput("VALUE"),this.appendDummyInput("VALUE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN))},onchange:function(a){a=!1;var b=this;do{if(-1!=this.FUNCTION_TYPES.indexOf(b.type)){a=!0;break}b=b.getSurroundParent()}while(b);a?("procedures_defnoreturn"==b.type&&
this.hasReturnValue_?(this.removeInput("VALUE"),this.appendDummyInput("VALUE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN),this.hasReturnValue_=!1):"procedures_defreturn"!=b.type||this.hasReturnValue_||(this.removeInput("VALUE"),this.appendValueInput("VALUE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN),this.hasReturnValue_=!0),this.setWarningText(null)):this.setWarningText(Blockly.Msg.PROCEDURES_IFRETURN_WARNING)},FUNCTION_TYPES:["procedures_defnoreturn","procedures_defreturn"]};
Blockly.Blocks.robProcedures_defnoreturn={init:function(){this.setHelpUrl(Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL);this.setColour(Blockly.CAT_PROCEDURE_RGB);var a=Blockly.Procedures.findLegalName(Blockly.Msg.PROCEDURES_DEFNORETURN_PROCEDURE,this);a=new Blockly.FieldTextInput(a,Blockly.Procedures.robRename);a.setSpellcheck(!1);this.appendDummyInput().appendField(a,"NAME").appendField("","WITH");this.appendStatementInput("STACK").appendField(Blockly.Msg.PROCEDURES_DEFNORETURN_DO);this.setMutator(new Blockly.MutatorPlus(["robProcedures_defnoreturn"]));
this.setTooltip(Blockly.Msg.PROCEDURES_DEFNORETURN_TOOLTIP);this.declare_=!1},validate:function(){var a=Blockly.Procedures.findLegalName(this.getFieldValue("NAME"),this);this.setFieldValue(a,"NAME")},getProcedureDef:function(){return[this.getFieldValue("NAME"),this,!1]},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("declare",1==this.declare_);return a},domToMutation:function(a){if(this.declare_="false"!=a.getAttribute("declare"))this.setFieldValue(Blockly.Msg.PROCEDURES_BEFORE_PARAMS,
"WITH"),a=this.getInput("STACK").connection.targetConnection,this.removeInput("STACK"),this.appendStatementInput("ST"),this.getInput("ST").connection.setCheck("declaration_only"),this.appendStatementInput("STACK").appendField(Blockly.Msg.PROCEDURES_DEFNORETURN_DO),a&&this.getInput("STACK").connection.connect(a)},updateShape_:function(a){if(1==a){if(!this.declare_){this.declare_=!0;this.setFieldValue(Blockly.Msg.PROCEDURES_BEFORE_PARAMS,"WITH");var b=this.getInput("STACK").connection.targetConnection;
this.removeInput("STACK");this.appendStatementInput("ST");this.getInput("ST").connection.setCheck("declaration_only");this.appendStatementInput("STACK").appendField(Blockly.Msg.PROCEDURES_DEFNORETURN_DO);b&&this.getInput("STACK").connection.connect(b)}b=this.workspace.newBlock("robLocalVariables_declare");b.initSvg();b.render();var c;if(this.getInput("ST").connection.targetConnection){if(c=this.getInput("ST").connection.targetConnection.sourceBlock_)for(;c.getNextBlock();)c=c.getNextBlock();c.setNext(!0);
c=c.nextConnection}else c=this.getInput("ST").connection;c.connect(b.previousConnection);Blockly.Procedures.updateCallers(b.getFieldValue("VAR"),"Number",this.workspace,a)}else-1==a&&(this.setFieldValue("","WITH"),this.removeInput("ST"),this.declare_=!1)}};
Blockly.Blocks.robProcedures_defreturn={init:function(){var a=Blockly.TYPE_DROPDOWN(this.workspace.device,"none");this.setHelpUrl(Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL);this.setColour(Blockly.CAT_PROCEDURE_RGB);var b=Blockly.Procedures.findLegalName(Blockly.Msg.PROCEDURES_DEFNORETURN_PROCEDURE,this);b=new Blockly.FieldTextInput(b,Blockly.Procedures.robRename);b.setSpellcheck(!1);this.appendDummyInput().appendField(b,"NAME").appendField("","WITH");this.appendStatementInput("STACK").appendField(Blockly.Msg.PROCEDURES_DEFNORETURN_DO);
this.setMutator(new Blockly.MutatorPlus(["robProcedures_defreturn"]));this.setTooltip(Blockly.Msg.PROCEDURES_DEFRETURN_TOOLTIP);this.appendValueInput("RETURN").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.RETURN).appendField(a,"TYPE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_BACK).setCheck("Number");this.declare_=!1;this.returnType_="Number"},validate:function(){var a=Blockly.Procedures.findLegalName(this.getFieldValue("NAME"),this);this.setFieldValue(a,"NAME")},getProcedureDef:function(){return[this.getFieldValue("NAME"),
this,!0]},getReturnType:function(){return this.returnType_},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("declare",1==this.declare_);a.setAttribute("return_type",this.returnType_);return a},domToMutation:function(a){(this.declare_="false"!=a.getAttribute("declare"))&&this.addDeclarationStatement_();(this.returnType_=a.getAttribute("return_type"))&&this.updateType_(this.returnType_)},updateShape_:function(a,b){if(1==a){this.declare_||(this.addDeclarationStatement_(),
this.declare_=!0);var c=this.workspace.newBlock("robLocalVariables_declare");c.initSvg();c.render();var d;if(this.getInput("ST").connection.targetConnection){if(d=this.getInput("ST").connection.targetConnection.sourceBlock_)for(;d.getNextBlock();)d=d.getNextBlock();d.setNext(!0);d=d.nextConnection}else d=this.getInput("ST").connection;d.connect(c.previousConnection);Blockly.Procedures.updateCallers(c.getFieldValue("VAR"),"Number",this.workspace,a)}else 0==a?(c=b||this.getFieldValue("TYPE"),this.getInput("RETURN").connection.setCheck(c)):
-1==a&&(this.setFieldValue("","WITH"),this.removeInput("ST"),this.declare_=!1)},addDeclarationStatement_:function(){var a=Blockly.TYPE_DROPDOWN(this.workspace.device,"none");this.setFieldValue(Blockly.Msg.PROCEDURES_BEFORE_PARAMS,"WITH");var b=this.getInput("RETURN").connection.targetConnection,c=this.getInput("STACK").connection.targetConnection;this.removeInput("RETURN");this.removeInput("STACK");this.appendStatementInput("ST");this.getInput("ST").connection.setCheck("declaration_only");this.appendStatementInput("STACK").appendField(Blockly.Msg.PROCEDURES_DEFNORETURN_DO);
this.appendValueInput("RETURN").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.RETURN).appendField(a,"TYPE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_BACK).setCheck(this.returnType_);this.setFieldValue(this.returnType_,"TYPE");b&&this.getInput("RETURN").connection.connect(b);c&&this.getInput("STACK").connection.connect(c)},updateType_:function(a){a&&this.getFieldValue("TYPE")!==a&&(this.returnType_=a,this.getInput("RETURN").setCheck(this.returnType_),Blockly.Procedures.updateCallers(this.getFieldValue("NAME"),
this.returnType_,this.workspace,99,this.getFieldValue("NAME")))}};
Blockly.Blocks.robProcedures_callnoreturn={init:function(){this.setHelpUrl(Blockly.Msg.PROCEDURES_CALLNORETURN_HELPURL);this.setColour(Blockly.CAT_PROCEDURE_RGB);this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_CALLNORETURN_CALL).appendField("","NAME");this.setPreviousStatement(!0);this.setNextStatement(!0);this.arguments_=[];this.argumentsTypes_=[]},getProcedureCall:function(){return this.getFieldValue("NAME")},renameProcedure:function(a,b){Blockly.Names.equals(a,this.getProcedureCall())&&
(this.setFieldValue(b,"NAME"),this.setTooltip((this.outputConnection?Blockly.Msg.PROCEDURES_CALLRETURN_TOOLTIP:Blockly.Msg.PROCEDURES_CALLNORETURN_TOOLTIP).replace("%1",b)))},setProcedureParameters:function(a,b){if(b.length!=a.length)throw"Error: paramNames and paramIds must be the same length.";var c=this.rendered;this.rendered=!1;for(var d=[],e=this.arguments_.length-1;0<=e;e--){var f=this.getInput("ARG"+e);if(f){var g=f.connection.targetConnection;f=f.fieldRow[0].getText();d[e]={name:f,conn:g};
this.removeInput("ARG"+e)}}this.arguments_=[].concat(a);this.argumentsTypes_=[].concat(b);for(e=0;e<this.arguments_.length;e++)if(f=this.appendValueInput("ARG"+e).setAlign(Blockly.ALIGN_RIGHT).appendField(this.arguments_[e]).setCheck(this.argumentsTypes_[e]),f.init(),0<d.length){for(g=0;g<d.length;g++)if(d[g].name==this.arguments_[e]){var h=d[g];d.splice(g,1);break}h&&h.conn&&((g=h.conn)&&g.targetConnection&&g.sourceBlock_.workspace!=this.workspace||f.connection.connect(g))}for(g=0;g<d.length;g++)(e=
d[g])&&e.conn&&(e.conn.sourceBlock_.moveBy(50,15),e.conn.sourceBlock_.setDisabled(!0));this.rendered=c;this.render()},updateProcedureParameters:function(a,b,c){if(1==c){c=this.arguments_.slice(0);var d=this.argumentsTypes_.slice(0);c.push(a);d.push(b);this.setProcedureParameters(c,d)}else-1==c?(c=this.arguments_.slice(0),d=this.argumentsTypes_.slice(0),a=this.arguments_.indexOf(a),0<=a&&(c.splice(a,1),d.splice(a,1),this.setProcedureParameters(c,d))):0==c&&(a=this.arguments_.indexOf(a),0<=a&&(this.argumentsTypes_[a]=
b,this.getInput("ARG"+a).setCheck(this.argumentsTypes_[a])));this.render()},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("name",this.getProcedureCall());for(var b=0;b<this.arguments_.length;b++){var c=document.createElement("arg");c.setAttribute("name",this.arguments_[b]);c.setAttribute("type",this.argumentsTypes_[b]);a.appendChild(c)}return a},domToMutation:function(a){var b=a.getAttribute("name");this.setFieldValue(b,"NAME");this.setTooltip((this.outputConnection?
Blockly.Msg.PROCEDURES_CALLRETURN_TOOLTIP:Blockly.Msg.PROCEDURES_CALLNORETURN_TOOLTIP).replace("%1",b));Blockly.Procedures.getDefinition(b,this.workspace);this.arguments_=[];this.argumentsTypes_=[];b=0;for(var c;c=a.childNodes[b];b++)"arg"==c.nodeName.toLowerCase()&&(this.arguments_.push(c.getAttribute("name")),this.argumentsTypes_.push(c.getAttribute("type")));this.setProcedureParameters(this.arguments_,this.argumentsTypes_)},renameVar:function(a,b){for(var c=0;c<this.arguments_.length;c++)Blockly.Names.equals(a,
this.arguments_[c])&&(this.arguments_[c]=b,this.getInput("ARG"+c).fieldRow[0].setText(b))},customContextMenu:function(a){var b={enabled:!0};b.text=Blockly.Msg.PROCEDURES_HIGHLIGHT_DEF;var c=this.getProcedureCall(),d=this.workspace;b.callback=function(){var a=Blockly.Procedures.getDefinition(c,d);a&&a.select()};a.push(b)},onchange:function(a){if(this.workspace&&!this.workspace.isFlyout&&a.type==Blockly.Events.DELETE){var b=this.getProcedureCall();Blockly.Procedures.getDefinition(b,this.workspace)||
(Blockly.Events.setGroup(a.group),this.dispose(!0,!1),Blockly.Events.setGroup(!1))}}};
Blockly.Blocks.robProcedures_callreturn={init:function(){this.setHelpUrl(Blockly.Msg.PROCEDURES_CALLNORETURN_HELPURL);this.setColour(Blockly.CAT_PROCEDURE_RGB);this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_CALLNORETURN_CALL).appendField("","NAME");this.setOutput(!0,"Number");this.arguments_=[];this.argumentsTypes_=[];this.outputType_="Number"},getProcedureCall:function(){return this.getFieldValue("NAME")},renameProcedure:function(a,b){Blockly.Names.equals(a,this.getProcedureCall())&&
(this.setFieldValue(b,"NAME"),this.setTooltip((this.outputConnection?Blockly.Msg.PROCEDURES_CALLRETURN_TOOLTIP:Blockly.Msg.PROCEDURES_CALLNORETURN_TOOLTIP).replace("%1",b)))},setProcedureParameters:function(a,b){if(b.length!=a.length)throw"Error: paramNames and paramIds must be the same length.";var c=this.rendered;this.rendered=!1;for(var d=[],e=this.arguments_.length-1;0<=e;e--){var f=this.getInput("ARG"+e);if(f){var g=f.connection.targetConnection;f=f.fieldRow[0].getText();d[e]={name:f,conn:g};
this.removeInput("ARG"+e)}}this.arguments_=[].concat(a);this.argumentsTypes_=[].concat(b);for(e=0;e<this.arguments_.length;e++)if(f=this.appendValueInput("ARG"+e).setAlign(Blockly.ALIGN_RIGHT).appendField(this.arguments_[e]).setCheck(this.argumentsTypes_[e]),f.init(),0<d.length){for(g=0;g<d.length;g++)if(d[g].name==this.arguments_[e]){var h=d[g];d.splice(g,1);break}h&&h.conn&&((g=h.conn)&&g.targetConnection&&g.sourceBlock_.workspace!=this.workspace||f.connection.connect(g))}for(g=0;g<d.length;g++)(e=
d[g])&&e.conn&&(e.conn.sourceBlock_.moveBy(50,15),e.conn.sourceBlock_.setDisabled(!0));this.rendered=c;this.render()},updateProcedureParameters:function(a,b,c){if(1==c){c=this.arguments_.slice(0);var d=this.argumentsTypes_.slice(0);c.push(a);d.push(b);this.setProcedureParameters(c,d)}else-1==c?(c=this.arguments_.slice(0),d=this.argumentsTypes_.slice(0),a=this.arguments_.indexOf(a),0<=a&&(c.splice(a,1),d.splice(a,1),this.setProcedureParameters(c,d))):0==c?(a=this.arguments_.indexOf(a),0<=a&&(this.argumentsTypes_[a]=
b,this.getInput("ARG"+a).setCheck(this.argumentsTypes_[a]))):99==c&&(this.outputType_=b,this.outputConnection.setCheck(this.outputType_));this.render()},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("name",this.getProcedureCall());for(var b=0;b<this.arguments_.length;b++){var c=document.createElement("arg");c.setAttribute("name",this.arguments_[b]);c.setAttribute("type",this.argumentsTypes_[b]);a.appendChild(c)}a.setAttribute("output_type",this.outputType_);return a},
domToMutation:function(a){var b=a.getAttribute("name");this.setFieldValue(b,"NAME");this.setTooltip((this.outputConnection?Blockly.Msg.PROCEDURES_CALLRETURN_TOOLTIP:Blockly.Msg.PROCEDURES_CALLNORETURN_TOOLTIP).replace("%1",b));Blockly.Procedures.getDefinition(b,this.workspace);this.arguments_=[];this.argumentsTypes_=[];b=0;for(var c;c=a.childNodes[b];b++)"arg"==c.nodeName.toLowerCase()&&(this.arguments_.push(c.getAttribute("name")),this.argumentsTypes_.push(c.getAttribute("type")));this.setProcedureParameters(this.arguments_,
this.argumentsTypes_);this.outputType_=a.getAttribute("output_type");this.setOutput(!0,this.outputType_)},renameVar:function(a,b){for(var c=0;c<this.arguments_.length;c++)Blockly.Names.equals(a,this.arguments_[c])&&(this.arguments_[c]=b,this.getInput("ARG"+c).fieldRow[0].setText(b))},customContextMenu:function(a){var b={enabled:!0};b.text=Blockly.Msg.PROCEDURES_HIGHLIGHT_DEF;var c=this.getProcedureCall(),d=this.workspace;b.callback=function(){var a=Blockly.Procedures.getDefinition(c,d);a&&a.select()};
a.push(b)},onchange:Blockly.Blocks.robProcedures_callnoreturn.onchange};
Blockly.Blocks.robProcedures_ifreturn={init:function(){this.setHelpUrl("http://c2.com/cgi/wiki?GuardClause");this.setColour(Blockly.CAT_PROCEDURE_RGB);this.appendValueInput("CONDITION").setCheck("Boolean").appendField(Blockly.Msg.CONTROLS_IF_MSG_IF);this.appendValueInput("VALUE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN);this.setInputsInline(!0);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.PROCEDURES_IFRETURN_TOOLTIP);this.hasReturnValue_=!0;this.returnType_=
null},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("value",Number(this.hasReturnValue_));this.returnType_&&a.setAttribute("return_type",this.returnType_);return a},domToMutation:function(a){(this.hasReturnValue_=1==a.getAttribute("value"))?this.returnType_&&this.getInput("VALUE").setCheck(this.returnType_):(this.removeInput("VALUE"),this.appendDummyInput("VALUE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN))},getProcedureCall:function(){return this.type},
updateProcedureParameters:function(a,b,c){if(99==c){c=this;do{if("robProcedures_defreturn"==c.type&&c.getFieldValue("NAME")==a){this.returnType_=b;this.getInput("VALUE").setCheck(this.returnType_);this.render();break}c=c.getSurroundParent()}while(c)}},onchange:function(){var a=!1,b=this;do{if("robProcedures_defnoreturn"==b.type||"robProcedures_defreturn"==b.type){a=!0;break}b=b.getSurroundParent()}while(b);a?("robProcedures_defnoreturn"==b.type&&this.hasReturnValue_?(this.removeInput("VALUE"),this.appendDummyInput("VALUE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN),
this.hasReturnValue_=!1):"robProcedures_defreturn"!=b.type||this.hasReturnValue_||(this.removeInput("VALUE"),this.appendValueInput("VALUE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN),this.hasReturnValue_=!0),"robProcedures_defreturn"==b.type&&(this.returnType_=b.getReturnType(),this.getInput("VALUE").setCheck(this.returnType_),this.render()),this.setWarningText(null)):(this.returnType_=null,this.hasReturnValue&&this.getInput("VALUE").setCheck(this.returnType_),this.setWarningText(Blockly.Msg.PROCEDURES_IFRETURN_WARNING))}};Blockly.Blocks.mbedBrick={};
Blockly.Blocks["mbedBrick_Calliope-Brick"]={init:function(){this.setColour("#BBBBBB");this.setInputsInline(!1);this.appendDummyInput().appendField(new Blockly.FieldLabel("Calliope","brick_label"));this.appendValueInput("PP").appendField("+").setAlign(Blockly.ALIGN_RIGHT).setCheck("Port");this.appendValueInput("PM").appendField("-").setAlign(Blockly.ALIGN_RIGHT).setCheck("Port");this.appendValueInput("P0").appendField("0").setAlign(Blockly.ALIGN_RIGHT).setCheck("Port");this.appendValueInput("P1").appendField("1").setAlign(Blockly.ALIGN_RIGHT).setCheck("Port");
this.appendValueInput("P2").appendField("2").setAlign(Blockly.ALIGN_RIGHT).setCheck("Port");this.appendValueInput("P3").appendField("3").setAlign(Blockly.ALIGN_RIGHT).setCheck("Port");this.setTooltip(Blockly.Msg.CALLIOPEBRICK_TOOLTIP)}};
Blockly.Blocks["mbedBrick_microbit-Brick"]={init:function(){this.setColour("#BBBBBB");this.setInputsInline(!1);this.appendDummyInput().appendField(new Blockly.FieldLabel("micro:bit","brick_label"));this.appendValueInput("PP").appendField("+").setAlign(Blockly.ALIGN_RIGHT).setCheck("Port");this.appendValueInput("PM").appendField("-").setAlign(Blockly.ALIGN_RIGHT).setCheck("Port");this.appendValueInput("P0").appendField("0").setAlign(Blockly.ALIGN_RIGHT).setCheck("Port");this.appendValueInput("P1").appendField("1").setAlign(Blockly.ALIGN_RIGHT).setCheck("Port");
this.appendValueInput("P2").appendField("2").setAlign(Blockly.ALIGN_RIGHT).setCheck("Port");this.setTooltip(Blockly.Msg.MICROBITBRICK_TOOLTIP)}};Blockly.Blocks.variables={};Blockly.Blocks.variables.HUE=330;
Blockly.Blocks.variables_get={init:function(){this.setHelpUrl(Blockly.Msg.VARIABLES_GET_HELPURL);this.setColour(Blockly.CAT_VARIABLE_RGB);this.appendDummyInput().appendField(new Blockly.FieldVariable(Blockly.Msg.VARIABLES_DEFAULT_NAME),"VAR");this.setOutput(!0);this.setTooltip(Blockly.Msg.VARIABLES_GET_TOOLTIP);this.contextMenuMsg_=Blockly.Msg.VARIABLES_GET_CREATE_SET;this.dataType_=null},getVars:function(){return[this.getFieldValue("VAR")]},setType:function(a,b){b!==this.dataType_&&(this.dataType_=
b,this.setOutput(!0,this.dataType_))},mutationToDom:function(){if(!this.dataType_)return null;var a=document.createElement("mutation");this.dataType_&&a.setAttribute("datatype",this.dataType_);return a},domToMutation:function(a){(a=a.getAttribute("datatype")||Blockly.Variables.getType(this.getFieldValue("VAR")))&&this.workspace.variableDeclaration&&(this.dataType_=a,this.setOutput(!0,this.dataType_))},renameVar:function(a,b){Blockly.Names.equals(a,this.getFieldValue("VAR"))&&this.setFieldValue(b,
"VAR")},onchange:function(){if(this.workspace&&Blockly.getMainWorkspace().variableDeclaration){var a=this.getFieldValue("VAR");if(a=Blockly.Variables.getProcedureName(a)){var b=!1,c=this;do{if(("robProcedures_defnoreturn"==c.type||"robProcedures_defreturn"==c.type)&&c.getFieldValue("NAME")==a){b=!0;break}if(c.id===a){b=!0;break}if("global"===a){b=!0;break}c=c.getSurroundParent()}while(c);b?this.setErrorText(null):a.match(/^[a-zA-Z][a-zA-Z0-9_]*$/)?this.setErrorText(Blockly.Msg.PROCEDURES_VARIABLES_ERROR+
a+Blockly.Msg.PROCEDURES_TITLE):this.setErrorText(Blockly.Msg.PROCEDURES_VARIABLES_LOOP_ERROR+this.getFieldValue("VAR"))}}},contextMenuType_:"variables_set",customContextMenu:function(a){var b={enabled:!0},c=this.getFieldValue("VAR");b.text=this.contextMenuMsg_.replace("%1",c);c=goog.dom.createDom("field",null,c);c.setAttribute("name","VAR");c=goog.dom.createDom("block",null,c);c.setAttribute("type",this.contextMenuType_);c.setAttribute("intask",!1);var d=goog.dom.createDom("mutation");c.appendChild(d);
b.callback=Blockly.ContextMenu.callbackFactory(this,c);a.push(b)}};
Blockly.Blocks.variables_set={init:function(){this.jsonInit({message0:Blockly.Msg.VARIABLES_SET,args0:[{type:"field_variable",name:"VAR",variable:Blockly.Msg.VARIABLES_DEFAULT_NAME},{type:"input_value",name:"VALUE"}],previousStatement:null,nextStatement:null,colour:Blockly.CAT_VARIABLE_RGB,tooltip:Blockly.Msg.VARIABLES_SET_TOOLTIP,helpUrl:Blockly.Msg.VARIABLES_SET_HELPURL});this.contextMenuMsg_=Blockly.Msg.VARIABLES_SET_CREATE_GET},getVars:function(){return[this.getFieldValue("VAR")]},setType:function(a,
b){this.dataType_=b;this.getInput("VALUE").setCheck(this.dataType_)},mutationToDom:function(){if(!this.dataType_)return null;var a=document.createElement("mutation");this.dataType_&&a.setAttribute("datatype",this.dataType_);return a},domToMutation:function(a){(a=a.getAttribute("datatype")||Blockly.Variables.getType(this.getFieldValue("VAR")))&&this.workspace.variableDeclaration&&(this.dataType_=a,this.getInput("VALUE").setCheck(this.dataType_))},renameVar:function(a,b){Blockly.Names.equals(a,this.getFieldValue("VAR"))&&
this.setFieldValue(b,"VAR")},onchange:Blockly.Blocks.variables_get.onchange,contextMenuType_:"variables_get",customContextMenu:Blockly.Blocks.variables_get.customContextMenu};
Blockly.Blocks.robGlobalVariables_declare={init:function(){this.setHelpUrl(Blockly.Msg.VARIABLES_SET_HELPURL);this.setColour(Blockly.CAT_ACTIVITY_RGB);this.declType_=Blockly.TYPE_DROPDOWN(this.workspace.device);var a=Blockly.Variables.findLegalName(Blockly.Msg.VARIABLES_DEFAULT_NAME,this);this.nameOld=a;a=new Blockly.FieldTextInput(a,this.validateName);this.appendValueInput("VALUE").appendField(Blockly.Msg.VARIABLES_TITLE).appendField(a,"VAR").appendField(":").appendField(this.declType_,"TYPE").appendField(Blockly.RTL?
"\u2192":"\u2190").setCheck("Number");this.setPreviousStatement(!0,"declaration_only");this.setMutatorMinus(new Blockly.MutatorMinus(["robGlobalVariables_declare"]));this.setMovable(!1);this.setDeletable(!1);this.contextMenuMsg_=Blockly.Msg.VARIABLES_SET_CREATE_GET;this.contextMenudeclarationType_="variables_get";this.declarationType_="Number";this.nextStatement_=!1;this.setNextStatement(!1)},validate:function(){var a=Blockly.Variables.findLegalName(this.getFieldValue("VAR"),this);this.setFieldValue(a,
"VAR")},validateName:function(a){var b=this.sourceBlock_;a=a.replace(/[\s\xa0]+/g,"").replace(/^ | $/g,"");if(""===a||!a.match(/^[a-zA-Z][a-zA-Z_$0-9]*$/))return null;a=Blockly.Variables.findLegalName(a,b);Blockly.Variables.renameVariable(b.nameOld,a,Blockly.getMainWorkspace());return b.nameOld=a},mutationToDom:function(){if(void 0===this.nextStatement_||void 0===this.declarationType_)return!1;var a=document.createElement("mutation");a.setAttribute("next",this.nextStatement_);a.setAttribute("declaration_type",
this.declarationType_);return a},domToMutation:function(a){(this.nextStatement_="true"==a.getAttribute("next"))&&this.setNext(this.nextStatement_);(this.declarationType_=a.getAttribute("declaration_type"))&&this.getInput("VALUE").setCheck(this.declarationType_)},setNext:function(a){this.nextStatement_=a;this.setNextStatement(a,"declaration_only")},getType:function(){return this.declarationType_},getVarDecl:function(){return[this.getFieldValue("VAR")]},getVars:function(){return[this.getFieldValue("VAR")]},
updateShape_:function(a,b){if(-1==a){var c=this.getParent(),d=this.getNextBlock();this.unplug(!0,!0);c&&-1!==c.type.indexOf("Controls_start")&&!d?c.updateShape_(a):c&&!d&&c.setNext(!1);Blockly.Variables.deleteAll(this.getFieldValue("VAR"));this.dispose()}else if(0==a){this.getInputTargetBlock("VALUE")&&this.getInputTargetBlock("VALUE").dispose();c=null;this.getInput("VALUE").setCheck(b);if("Number"===b)c=this.workspace.newBlock("math_number");else if("String"===b)c=this.workspace.newBlock("text");
else if("Boolean"===b)c=this.workspace.newBlock("logic_boolean");else if("Array"===b.substr(0,5))c=this.workspace.newBlock("robLists_create_with"),c.createIt(3,b.substr(6));else if("Colour"===b)switch(this.workspace.device){case "microbit":case "calliope":c=this.workspace.newBlock("mbedColour_picker");break;case "nao":c=this.workspace.newBlock("naoColour_picker");break;default:c=this.workspace.newBlock("robColour_picker")}else if("Image"===b)switch(this.workspace.device){case "microbit":case "calliope":c=
this.workspace.newBlock("mbedImage_get_image");break;case "mbot":c=this.workspace.newBlock("mBotImage_image")}else"Connection"===b&&(c=this.workspace.newBlock("logic_null"));d=this.getInput("VALUE");c&&(c.initSvg(),c.render(),"Array"===b.substr(0,5)&&c.updateType_(b.substr(6)),d.connection.connect(c.outputConnection))}},updateType_:function(a){this.declarationType_=a;Blockly.Variables.updateType(this.getFieldValue("VAR"),this.declarationType_)},contextMenuType_:"variables_get",customContextMenu:Blockly.Blocks.variables_get.customContextMenu};
Blockly.Blocks.robLocalVariables_declare={init:function(){this.setHelpUrl(Blockly.Msg.VARIABLES_SET_HELPURL);this.setColour(Blockly.CAT_PROCEDURE_RGB);this.declType_=Blockly.TYPE_DROPDOWN(this.workspace.device);var a=Blockly.Variables.findLegalName("x",this);this.nameOld=a;a=new Blockly.FieldTextInput(a,this.validateName);this.appendDummyInput().appendField(Blockly.Msg.VARIABLES_TITLE).appendField(a,"VAR").appendField(":").appendField(this.declType_,"TYPE");this.setPreviousStatement(!0,"declaration_only");
this.setTooltip(Blockly.Msg.VARIABLES_LOCAL_DECLARE_TOOLTIP);this.setMutatorMinus(new Blockly.MutatorMinus(this));this.setMovable(!1);this.setDeletable(!1);this.contextMenuMsg_=Blockly.Msg.VARIABLES_SET_CREATE_GET;this.contextMenudeclarationType_="variables_get";this.nextStatement_=!1;this.declarationType_="Number"},validate:Blockly.Blocks.robGlobalVariables_declare.validate,validateName:Blockly.Blocks.robGlobalVariables_declare.validateName,mutationToDom:Blockly.Blocks.robGlobalVariables_declare.mutationToDom,
domToMutation:function(a){(this.nextStatement_="true"==a.getAttribute("next"))&&this.setNext(this.nextStatement_);this.declarationType_=a.getAttribute("declaration_type")},setNext:Blockly.Blocks.robGlobalVariables_declare.setNext,getType:function(){return this.declarationType_},getVarDecl:function(){return[this.getFieldValue("VAR")]},getVars:function(){return[this.getFieldValue("VAR")]},updateShape_:function(a,b){if(-1==a){Blockly.Variables.deleteAll(this.getFieldValue("VAR"));Blockly.Procedures.updateCallers(this.getFieldValue("VAR"),
this.declarationType_,this.workspace,a);var c=this.getParent(),d=this.getNextBlock();this.unplug(!0,!0);!c||"robProcedures_defnoreturn"!=c.type&&"robProcedures_defreturn"!=c.type||d?c&&!d&&c.setNextStatement(!1):c.updateShape_(a);this.dispose()}},updateType_:function(a){this.declarationType_=a;Blockly.Variables.updateType(this.getFieldValue("VAR"),a);Blockly.Procedures.updateCallers(this.getFieldValue("VAR"),a,Blockly.mainWorkspace,0)},contextMenuType_:"variables_get",customContextMenu:Blockly.Blocks.variables_get.customContextMenu};Blockly.Blocks.vorwerkActions={};Blockly.Blocks.vorwerkActions_play_file={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([["1","0"],["2","1"],["3","2"],["4","3"]]);this.appendDummyInput().appendField(Blockly.Msg.PLAY+" "+Blockly.Msg.PLAY_FILE).appendField(a,"FILE");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setBlocking(!0);this.setTooltip(Blockly.Msg.PLAY_FILE_TOOLTIP)}};
Blockly.Blocks.vorwerkActions_brush_on={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendValueInput("OUT").appendField(Blockly.Msg.BRUSH_ON);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.BRUSH_ON_TOOLTIP)}};Blockly.Blocks.vorwerkActions_brush_off={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendDummyInput().appendField(Blockly.Msg.BRUSH_OFF);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.BRUSH_OFF_TOOLTIP)}};
Blockly.Blocks.vorwerkActions_side_brush={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.BRICKLIGHT_ON,"ON"],[Blockly.Msg.OFF,"OFF"]]);this.appendDummyInput().appendField(Blockly.Msg.SIDE_BRUSH_STATUS).appendField(a,"BRUSH_STATE");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.SIDE_BRUSH_TOOLTIP)}};
Blockly.Blocks.vorwerkActions_vacuum_on={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendValueInput("OUT").appendField(Blockly.Msg.VACUUM_ON);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.VACUUM_ON_TOOLTIP)}};Blockly.Blocks.vorwerkActions_vacuum_off={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);this.appendDummyInput().appendField(Blockly.Msg.VACUUM_OFF);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.VACUUM_OFF_TOOLTIP)}};
Blockly.Blocks.vorwerkActions_motor_on_for={init:function(){var a=[[Blockly.Msg.MOTOR_PORT+" "+Blockly.Msg.LEFT,"LEFT"],[Blockly.Msg.MOTOR_PORT+" "+Blockly.Msg.RIGHT,"RIGHT"]];this.setColour(Blockly.CAT_ACTION_RGB);a=new Blockly.FieldDropdown(a);var b=new Blockly.FieldDropdown([[Blockly.Msg.MOTOR_DISTANCE,"DISTANCE"]]);this.appendValueInput("POWER").appendField(a,"MOTORPORT").appendField(Blockly.Msg.ON).appendField(Blockly.Msg.MOTOR_SPEED).setCheck("Number");this.appendValueInput("VALUE").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.FOR).appendField(b,
"MOTORROTATION").setCheck("Number");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setBlocking(!0);this.setTooltip(Blockly.Msg.MOTOR_ON_FOR_TOOLTIP)}};
Blockly.Blocks.vorwerkActions_motor_stop={init:function(){this.setColour(Blockly.CAT_ACTION_RGB);var a=new Blockly.FieldDropdown([[Blockly.Msg.MOTOR_PORT+" "+Blockly.Msg.LEFT,"LEFT"],[Blockly.Msg.MOTOR_PORT+" "+Blockly.Msg.RIGHT,"RIGHT"]]);this.appendDummyInput().appendField(Blockly.Msg.MOTOR_STOP).appendField(a,"MOTORPORT");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.MOTOR_STOP_TOOLTIP)}};Blockly.Blocks.naoBrick={};
Blockly.Blocks["naoBrick_NAO-Brick"]={init:function(){this.setColour("#BBBBBB");this.setInputsInline(!1);var a=new Blockly.FieldTextInput("0.0.0.0",Blockly.FieldTextInput.nonnegativeNumberValidator),b=new Blockly.FieldTextInput("22",Blockly.FieldTextInput.nonnegativeNumberValidator),c=new Blockly.FieldTextInput("nao",Blockly.FieldTextInput.nonnegativeNumberValidator),d=new Blockly.FieldTextInput("nao",Blockly.FieldTextInput.nonnegativeNumberValidator);this.appendDummyInput().appendField(new Blockly.FieldLabel("NAO","brick_label"));
this.appendDummyInput().appendField(Blockly.Msg.NAO_BRICK_IPADDRESS).appendField(a,"IP_ADDRESS");this.appendDummyInput().appendField(Blockly.Msg.NAO_BRICK_PORT).appendField(b,"PORT");this.appendDummyInput().appendField(Blockly.Msg.NAO_BRICK_USERNAME).appendField(c,"USERNAME");this.appendDummyInput().appendField(Blockly.Msg.NAO_BRICK_PASSWORD).appendField(d,"PASSWORD");this.setTooltip(Blockly.Msg.NAOBRICK_TOOLTIP);this.setDeletable(!1)}};Blockly.Blocks.texts={};Blockly.Blocks.texts.HUE=160;
Blockly.Blocks.text={init:function(){this.setHelpUrl(Blockly.Msg.TEXT_TEXT_HELPURL);this.setColour(Blockly.CAT_TEXT_RGB);this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new Blockly.FieldTextInput("",this.validate),"TEXT").appendField(this.newQuote_(!1));this.setOutput(!0,"String");var a=this;this.setTooltip(function(){var b=a.getParent();return b&&b.getInputsInline()&&b.tooltip||Blockly.Msg.TEXT_TEXT_TOOLTIP})},validate:function(a){return a&&a.match(/[<>\$]/)?null:a},newQuote_:function(a){return new Blockly.FieldImage(a==
this.RTL?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC",
12,12,'"')}};
Blockly.Blocks.text_comment={init:function(){this.setHelpUrl(Blockly.Msg.TEXT_TEXT_HELPURL);this.setColour(Blockly.CAT_TEXT_RGB);var a=new Blockly.FieldTextInput("",this.validate);a.maxDisplayLength=75;this.appendDummyInput().appendField(this.newComment_(!0)).appendField(a,"TEXT").appendField(this.newComment_(!1));this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.TEXT_COMMENT_TOOLTIP)},validate:function(a){return a&&a.match(/[<>\$]/)?null:a},newComment_:function(a){return new Blockly.FieldImage(a?'data:image/svg+xml;charset=UTF-8,<svg version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" width="32" height="32" viewBox="0 0 32 32" fill="%23ffffff" ><path d="M24 8h-17.333c-2.2 0-4 1.8-4 4v9.333c0 2.2 1.8 4 4 4h1.333v4l4-4h12c2.2 0 4-1.8 4-4v-9.333c0-2.2-1.8-4-4-4zM25.333 21.333c0 0.723-0.611 1.333-1.333 1.333h-17.333c-0.723 0-1.333-0.611-1.333-1.333v-9.333c0-0.723 0.611-1.333 1.333-1.333h17.333c0.723 0 1.333 0.611 1.333 1.333v9.333zM9.333 19.333c-1.472 0-2.667-1.195-2.667-2.667s1.195-2.667 2.667-2.667 2.667 1.195 2.667 2.667-1.195 2.667-2.667 2.667zM9.333 15.333c-0.736 0-1.333 0.597-1.333 1.333s0.597 1.333 1.333 1.333 1.333-0.597 1.333-1.333-0.597-1.333-1.333-1.333zM15.333 19.333c-1.472 0-2.667-1.195-2.667-2.667s1.195-2.667 2.667-2.667 2.667 1.195 2.667 2.667-1.195 2.667-2.667 2.667zM15.333 15.333c-0.736 0-1.333 0.597-1.333 1.333s0.597 1.333 1.333 1.333 1.333-0.597 1.333-1.333-0.597-1.333-1.333-1.333zM21.333 19.333c-1.472 0-2.667-1.195-2.667-2.667s1.195-2.667 2.667-2.667 2.667 1.195 2.667 2.667-1.195 2.667-2.667 2.667zM21.333 15.333c-0.736 0-1.333 0.597-1.333 1.333s0.597 1.333 1.333 1.333 1.333-0.597 1.333-1.333-0.597-1.333-1.333-1.333z"></path></svg>':
'data:image/svg+xml;charset=UTF-8,<svg version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" width="32" height="32" viewBox="-32 0 32 32" fill="%23ffffff"><path transform="scale(-1,1)" d="M24 8h-17.333c-2.2 0-4 1.8-4 4v9.333c0 2.2 1.8 4 4 4h1.333v4l4-4h12c2.2 0 4-1.8 4-4v-9.333c0-2.2-1.8-4-4-4zM25.333 21.333c0 0.723-0.611 1.333-1.333 1.333h-17.333c-0.723 0-1.333-0.611-1.333-1.333v-9.333c0-0.723 0.611-1.333 1.333-1.333h17.333c0.723 0 1.333 0.611 1.333 1.333v9.333zM9.333 19.333c-1.472 0-2.667-1.195-2.667-2.667s1.195-2.667 2.667-2.667 2.667 1.195 2.667 2.667-1.195 2.667-2.667 2.667zM9.333 15.333c-0.736 0-1.333 0.597-1.333 1.333s0.597 1.333 1.333 1.333 1.333-0.597 1.333-1.333-0.597-1.333-1.333-1.333zM15.333 19.333c-1.472 0-2.667-1.195-2.667-2.667s1.195-2.667 2.667-2.667 2.667 1.195 2.667 2.667-1.195 2.667-2.667 2.667zM15.333 15.333c-0.736 0-1.333 0.597-1.333 1.333s0.597 1.333 1.333 1.333 1.333-0.597 1.333-1.333-0.597-1.333-1.333-1.333zM21.333 19.333c-1.472 0-2.667-1.195-2.667-2.667s1.195-2.667 2.667-2.667 2.667 1.195 2.667 2.667-1.195 2.667-2.667 2.667zM21.333 15.333c-0.736 0-1.333 0.597-1.333 1.333s0.597 1.333 1.333 1.333 1.333-0.597 1.333-1.333-0.597-1.333-1.333-1.333z"></path></svg>',
18,18,'"')},customContextMenu:function(a){a.splice(1,1)}};
Blockly.Blocks.text_join={init:function(){this.setHelpUrl(Blockly.Msg.TEXT_JOIN_HELPURL);this.setColour(Blockly.CAT_TEXT_RGB);this.itemCount_=2;this.updateShape_();this.setOutput(!0,"String");this.setMutator(new Blockly.Mutator(["text_create_join_item"]));this.setTooltip(Blockly.Msg.TEXT_JOIN_TOOLTIP)},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("items",this.itemCount_);return a},domToMutation:function(a){this.itemCount_=parseInt(a.getAttribute("items"),10);this.updateShape_()},
decompose:function(a){var b=a.newBlock("text_create_join_container");b.initSvg();for(var c=b.getInput("STACK").connection,d=0;d<this.itemCount_;d++){var e=a.newBlock("text_create_join_item");e.initSvg();c.connect(e.previousConnection);c=e.nextConnection}return b},compose:function(a){var b=a.getInputTargetBlock("STACK");for(a=[];b;)a.push(b.valueConnection_),b=b.nextConnection&&b.nextConnection.targetBlock();for(b=0;b<this.itemCount_;b++){var c=this.getInput("ADD"+b).connection.targetConnection;c&&
-1==a.indexOf(c)&&c.disconnect()}this.itemCount_=a.length;this.updateShape_();for(b=0;b<this.itemCount_;b++)Blockly.Mutator.reconnect(a[b],this,"ADD"+b)},saveConnections:function(a){a=a.getInputTargetBlock("STACK");for(var b=0;a;){var c=this.getInput("ADD"+b);a.valueConnection_=c&&c.connection.targetConnection;b++;a=a.nextConnection&&a.nextConnection.targetBlock()}},updateShape_:function(){this.itemCount_&&this.getInput("EMPTY")?this.removeInput("EMPTY"):this.itemCount_||this.getInput("EMPTY")||this.appendDummyInput("EMPTY").appendField(this.newQuote_(!0)).appendField(this.newQuote_(!1));
for(var a=0;a<this.itemCount_;a++)if(!this.getInput("ADD"+a)){var b=this.appendValueInput("ADD"+a);0==a&&b.appendField(Blockly.Msg.TEXT_JOIN_TITLE_CREATEWITH)}for(;this.getInput("ADD"+a);)this.removeInput("ADD"+a),a++},newQuote_:Blockly.Blocks.text.newQuote_};
Blockly.Blocks.text_create_join_container={init:function(){this.setColour(Blockly.CAT_TEXT_RGB);this.appendDummyInput().appendField(Blockly.Msg.TEXT_CREATE_JOIN_TITLE_JOIN);this.appendStatementInput("STACK");this.setTooltip(Blockly.Msg.TEXT_CREATE_JOIN_TOOLTIP);this.contextMenu=!1}};
Blockly.Blocks.text_create_join_item={init:function(){this.setColour(Blockly.CAT_TEXT_RGB);this.appendDummyInput().appendField(Blockly.Msg.TEXT_CREATE_JOIN_ITEM_TITLE_ITEM);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.TEXT_CREATE_JOIN_ITEM_TOOLTIP);this.contextMenu=!1}};
Blockly.Blocks.text_append={init:function(){this.setHelpUrl(Blockly.Msg.TEXT_APPEND_HELPURL);this.setColour(Blockly.CAT_TEXT_RGB);this.appendValueInput("TEXT").appendField(Blockly.Msg.TEXT_APPEND_TO).appendField(new Blockly.FieldVariable(Blockly.Msg.TEXT_APPEND_VARIABLE),"VAR").appendField(Blockly.Msg.TEXT_APPEND_APPENDTEXT);this.setPreviousStatement(!0);this.setNextStatement(!0);var a=this;this.setTooltip(function(){return Blockly.Msg.TEXT_APPEND_TOOLTIP.replace("%1",a.getFieldValue("VAR"))})}};
Blockly.Blocks.text_length={init:function(){this.jsonInit({message0:Blockly.Msg.TEXT_LENGTH_TITLE,args0:[{type:"input_value",name:"VALUE",check:["String","Array"]}],output:"Number",colour:Blockly.CAT_TEXT_RGB,tooltip:Blockly.Msg.TEXT_LENGTH_TOOLTIP,helpUrl:Blockly.Msg.TEXT_LENGTH_HELPURL})}};
Blockly.Blocks.text_isEmpty={init:function(){this.jsonInit({message0:Blockly.Msg.TEXT_ISEMPTY_TITLE,args0:[{type:"input_value",name:"VALUE",check:["String","Array"]}],output:"Boolean",colour:Blockly.CAT_TEXT_RGB,tooltip:Blockly.Msg.TEXT_ISEMPTY_TOOLTIP,helpUrl:Blockly.Msg.TEXT_ISEMPTY_HELPURL})}};
Blockly.Blocks.text_indexOf={init:function(){var a=[[Blockly.Msg.TEXT_INDEXOF_OPERATOR_FIRST,"FIRST"],[Blockly.Msg.TEXT_INDEXOF_OPERATOR_LAST,"LAST"]];this.setHelpUrl(Blockly.Msg.TEXT_INDEXOF_HELPURL);this.setColour(Blockly.CAT_TEXT_RGB);this.setOutput(!0,"Number");this.appendValueInput("VALUE").setCheck("String").appendField(Blockly.Msg.TEXT_INDEXOF_INPUT_INTEXT);this.appendValueInput("FIND").setCheck("String").appendField(new Blockly.FieldDropdown(a),"END");Blockly.Msg.TEXT_INDEXOF_TAIL&&this.appendDummyInput().appendField(Blockly.Msg.TEXT_INDEXOF_TAIL);
this.setInputsInline(!0);this.setTooltip(Blockly.Msg.TEXT_INDEXOF_TOOLTIP)}};
Blockly.Blocks.text_charAt={init:function(){this.WHERE_OPTIONS=[[Blockly.Msg.TEXT_CHARAT_FROM_START,"FROM_START"],[Blockly.Msg.TEXT_CHARAT_FROM_END,"FROM_END"],[Blockly.Msg.TEXT_CHARAT_FIRST,"FIRST"],[Blockly.Msg.TEXT_CHARAT_LAST,"LAST"],[Blockly.Msg.TEXT_CHARAT_RANDOM,"RANDOM"]];this.setHelpUrl(Blockly.Msg.TEXT_CHARAT_HELPURL);this.setColour(Blockly.CAT_TEXT_RGB);this.setOutput(!0,"String");this.appendValueInput("VALUE").setCheck("String").appendField(Blockly.Msg.TEXT_CHARAT_INPUT_INTEXT);this.appendDummyInput("AT");
this.setInputsInline(!0);this.updateAt_(!0);this.setTooltip(Blockly.Msg.TEXT_CHARAT_TOOLTIP)},mutationToDom:function(){var a=document.createElement("mutation"),b=this.getInput("AT").type==Blockly.INPUT_VALUE;a.setAttribute("at",b);return a},domToMutation:function(a){a="false"!=a.getAttribute("at");this.updateAt_(a)},updateAt_:function(a){this.removeInput("AT");this.removeInput("ORDINAL",!0);a?(this.appendValueInput("AT").setCheck("Number"),Blockly.Msg.ORDINAL_NUMBER_SUFFIX&&this.appendDummyInput("ORDINAL").appendField(Blockly.Msg.ORDINAL_NUMBER_SUFFIX)):
this.appendDummyInput("AT");Blockly.Msg.TEXT_CHARAT_TAIL&&(this.removeInput("TAIL",!0),this.appendDummyInput("TAIL").appendField(Blockly.Msg.TEXT_CHARAT_TAIL));var b=new Blockly.FieldDropdown(this.WHERE_OPTIONS,function(b){var c="FROM_START"==b||"FROM_END"==b;if(c!=a){var e=this.sourceBlock_;e.updateAt_(c);e.setFieldValue(b,"WHERE");return null}});this.getInput("AT").appendField(b,"WHERE")}};
Blockly.Blocks.text_getSubstring={init:function(){this.WHERE_OPTIONS_1=[[Blockly.Msg.TEXT_GET_SUBSTRING_START_FROM_START,"FROM_START"],[Blockly.Msg.TEXT_GET_SUBSTRING_START_FROM_END,"FROM_END"],[Blockly.Msg.TEXT_GET_SUBSTRING_START_FIRST,"FIRST"]];this.WHERE_OPTIONS_2=[[Blockly.Msg.TEXT_GET_SUBSTRING_END_FROM_START,"FROM_START"],[Blockly.Msg.TEXT_GET_SUBSTRING_END_FROM_END,"FROM_END"],[Blockly.Msg.TEXT_GET_SUBSTRING_END_LAST,"LAST"]];this.setHelpUrl(Blockly.Msg.TEXT_GET_SUBSTRING_HELPURL);this.setColour(Blockly.CAT_TEXT_RGB);
this.appendValueInput("STRING").setCheck("String").appendField(Blockly.Msg.TEXT_GET_SUBSTRING_INPUT_IN_TEXT);this.appendDummyInput("AT1");this.appendDummyInput("AT2");Blockly.Msg.TEXT_GET_SUBSTRING_TAIL&&this.appendDummyInput("TAIL").appendField(Blockly.Msg.TEXT_GET_SUBSTRING_TAIL);this.setInputsInline(!0);this.setOutput(!0,"String");this.updateAt_(1,!0);this.updateAt_(2,!0);this.setTooltip(Blockly.Msg.TEXT_GET_SUBSTRING_TOOLTIP)},mutationToDom:function(){var a=document.createElement("mutation"),
b=this.getInput("AT1").type==Blockly.INPUT_VALUE;a.setAttribute("at1",b);b=this.getInput("AT2").type==Blockly.INPUT_VALUE;a.setAttribute("at2",b);return a},domToMutation:function(a){var b="true"==a.getAttribute("at1");a="true"==a.getAttribute("at2");this.updateAt_(1,b);this.updateAt_(2,a)},updateAt_:function(a,b){this.removeInput("AT"+a);this.removeInput("ORDINAL"+a,!0);b?(this.appendValueInput("AT"+a).setCheck("Number"),Blockly.Msg.ORDINAL_NUMBER_SUFFIX&&this.appendDummyInput("ORDINAL"+a).appendField(Blockly.Msg.ORDINAL_NUMBER_SUFFIX)):
this.appendDummyInput("AT"+a);2==a&&Blockly.Msg.TEXT_GET_SUBSTRING_TAIL&&(this.removeInput("TAIL",!0),this.appendDummyInput("TAIL").appendField(Blockly.Msg.TEXT_GET_SUBSTRING_TAIL));var c=new Blockly.FieldDropdown(this["WHERE_OPTIONS_"+a],function(c){var d="FROM_START"==c||"FROM_END"==c;if(d!=b){var f=this.sourceBlock_;f.updateAt_(a,d);f.setFieldValue(c,"WHERE"+a);return null}});this.getInput("AT"+a).appendField(c,"WHERE"+a);1==a&&this.moveInputBefore("AT1","AT2")}};
Blockly.Blocks.text_changeCase={init:function(){var a=[[Blockly.Msg.TEXT_CHANGECASE_OPERATOR_UPPERCASE,"UPPERCASE"],[Blockly.Msg.TEXT_CHANGECASE_OPERATOR_LOWERCASE,"LOWERCASE"],[Blockly.Msg.TEXT_CHANGECASE_OPERATOR_TITLECASE,"TITLECASE"]];this.setHelpUrl(Blockly.Msg.TEXT_CHANGECASE_HELPURL);this.setColour(Blockly.CAT_TEXT_RGB);this.appendValueInput("TEXT").setCheck("String").appendField(new Blockly.FieldDropdown(a),"CASE");this.setOutput(!0,"String");this.setTooltip(Blockly.Msg.TEXT_CHANGECASE_TOOLTIP)}};
Blockly.Blocks.text_trim={init:function(){var a=[[Blockly.Msg.TEXT_TRIM_OPERATOR_BOTH,"BOTH"],[Blockly.Msg.TEXT_TRIM_OPERATOR_LEFT,"LEFT"],[Blockly.Msg.TEXT_TRIM_OPERATOR_RIGHT,"RIGHT"]];this.setHelpUrl(Blockly.Msg.TEXT_TRIM_HELPURL);this.setColour(Blockly.CAT_TEXT_RGB);this.appendValueInput("TEXT").setCheck("String").appendField(new Blockly.FieldDropdown(a),"MODE");this.setOutput(!0,"String");this.setTooltip(Blockly.Msg.TEXT_TRIM_TOOLTIP)}};
Blockly.Blocks.text_print={init:function(){this.jsonInit({message0:Blockly.Msg.TEXT_PRINT_TITLE,args0:[{type:"input_value",name:"TEXT"}],previousStatement:null,nextStatement:null,colour:Blockly.CAT_TEXT_RGB,tooltip:Blockly.Msg.TEXT_PRINT_TOOLTIP,helpUrl:Blockly.Msg.TEXT_PRINT_HELPURL})}};
Blockly.Blocks.text_prompt_ext={init:function(){var a=[[Blockly.Msg.TEXT_PROMPT_TYPE_TEXT,"TEXT"],[Blockly.Msg.TEXT_PROMPT_TYPE_NUMBER,"NUMBER"]];this.setHelpUrl(Blockly.Msg.TEXT_PROMPT_HELPURL);this.setColour(Blockly.CAT_TEXT_RGB);var b=this;a=new Blockly.FieldDropdown(a,function(a){b.updateType_(a)});this.appendValueInput("TEXT").appendField(a,"TYPE");this.setOutput(!0,"String");this.setTooltip(function(){return"TEXT"==b.getFieldValue("TYPE")?Blockly.Msg.TEXT_PROMPT_TOOLTIP_TEXT:Blockly.Msg.TEXT_PROMPT_TOOLTIP_NUMBER})},
updateType_:function(a){this.outputConnection.setCheck("NUMBER"==a?"Number":"String")},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("type",this.getFieldValue("TYPE"));return a},domToMutation:function(a){this.updateType_(a.getAttribute("type"))}};
Blockly.Blocks.text_prompt={init:function(){var a=[[Blockly.Msg.TEXT_PROMPT_TYPE_TEXT,"TEXT"],[Blockly.Msg.TEXT_PROMPT_TYPE_NUMBER,"NUMBER"]],b=this;this.setHelpUrl(Blockly.Msg.TEXT_PROMPT_HELPURL);this.setColour(Blockly.CAT_TEXT_RGB);a=new Blockly.FieldDropdown(a,function(a){b.updateType_(a)});this.appendDummyInput().appendField(a,"TYPE").appendField(this.newQuote_(!0)).appendField(new Blockly.FieldTextInput(""),"TEXT").appendField(this.newQuote_(!1));this.setOutput(!0,"String");this.setTooltip(function(){return"TEXT"==
b.getFieldValue("TYPE")?Blockly.Msg.TEXT_PROMPT_TOOLTIP_TEXT:Blockly.Msg.TEXT_PROMPT_TOOLTIP_NUMBER})},newQuote_:Blockly.Blocks.text.newQuote_,updateType_:Blockly.Blocks.text_prompt_ext.updateType_,mutationToDom:Blockly.Blocks.text_prompt_ext.mutationToDom,domToMutation:Blockly.Blocks.text_prompt_ext.domToMutation};
Blockly.Blocks.robText_join={init:function(){this.setHelpUrl(Blockly.Msg.TEXT_JOIN_HELPURL);this.setColour(Blockly.CAT_TEXT_RGB);"calliope"===this.workspace.device||"microbit"===this.workspace.device?(this.appendValueInput("ADD0").appendField(Blockly.Msg.TEXT_JOIN_TITLE_CREATEWITH).setCheck(["Number","String","Boolean"]),this.appendValueInput("ADD1").setCheck(["Number","String","Boolean","String"])):(this.appendValueInput("ADD0").appendField(Blockly.Msg.TEXT_JOIN_TITLE_CREATEWITH),this.appendValueInput("ADD1"));
this.setOutput(!0,"String");this.setMutatorPlus(new Blockly.MutatorPlus(this));this.setTooltip(Blockly.Msg.TEXT_JOIN_TOOLTIP);this.itemCount_=2},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("items",this.itemCount_);return a},domToMutation:function(a){this.itemCount_=parseInt(a.getAttribute("items"),10);for(a=2;a<this.itemCount_;a++)this.appendValueInput("ADD"+a),2==a&&this.setMutatorMinus(new Blockly.MutatorMinus(this))},updateShape_:function(a){Blockly.dragMode_=
Blockly.DRAG_NONE;if(1==a)2==this.itemCount_&&(this.setMutatorMinus(new Blockly.MutatorMinus(this)),this.render()),"calliope"===this.workspace.device||"microbit"===this.workspace.device?this.appendValueInput("ADD"+this.itemCount_).setCheck(["Number","String","Boolean"]):this.appendValueInput("ADD"+this.itemCount_),this.itemCount_++;else if(-1==a){this.itemCount_--;if(a=this.getInputTargetBlock("ADD"+this.itemCount_))a.unplug(),a.bumpNeighbours_();this.removeInput("ADD"+this.itemCount_)}2==this.itemCount_&&
(this.mutatorMinus.dispose(),this.mutatorMinus=null,this.render())}};
Blockly.Blocks.robText_append={init:function(){this.setHelpUrl(Blockly.Msg.TEXT_APPEND_HELPURL);this.setColour(Blockly.CAT_TEXT_RGB);this.setInputsInline(!0);this.appendValueInput("VAR").appendField(Blockly.Msg.TEXT_APPEND_TO).setCheck("String");"calliope"===this.workspace.device||"microbit"===this.workspace.device?this.appendValueInput("TEXT").appendField(Blockly.Msg.TEXT_APPEND_APPENDTEXT).setCheck(["Number","String","Boolean"]):this.appendValueInput("TEXT").appendField(Blockly.Msg.TEXT_APPEND_APPENDTEXT);
this.setPreviousStatement(!0);this.setNextStatement(!0);var a=this;this.setTooltip(function(){return Blockly.Msg.TEXT_APPEND_TOOLTIP.replace("%1",a.getFieldValue("VAR"))})},onchange:function(){if(this.workspace&&2!=Blockly.Block.dragMode_){var a=this.getInputTargetBlock("VAR");a&&"variables_get"!==a.type&&(a.unplug(),a.bumpNeighbours_())}}};