smalruby-editor 0.1.20-x86-mingw32 → 0.1.21-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of smalruby-editor might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.gitignore +0 -1
- data/app/assets/javascripts/blocks/character.js.coffee.erb +3 -10
- data/app/assets/javascripts/blocks/control.js.coffee.erb +2 -1
- data/app/assets/javascripts/blocks/data.js.coffee.erb +2 -1
- data/app/assets/javascripts/blocks/etc.js.coffee.erb +2 -1
- data/app/assets/javascripts/blocks/events.js.coffee.erb +5 -4
- data/app/assets/javascripts/blocks/field_character.js.coffee.erb +9 -0
- data/app/assets/javascripts/blocks/hardware.js.coffee.erb +171 -54
- data/app/assets/javascripts/blocks/looks.js.coffee.erb +2 -1
- data/app/assets/javascripts/blocks/motion.js.coffee.erb +4 -16
- data/app/assets/javascripts/blocks/operators.js.coffee.erb +2 -1
- data/app/assets/javascripts/blocks/pen.js.coffee.erb +2 -1
- data/app/assets/javascripts/blocks/ruby.js.coffee.erb +2 -1
- data/app/assets/javascripts/blocks/sensing.js.coffee.erb +25 -3
- data/app/assets/javascripts/blocks/sound.js.coffee.erb +2 -1
- data/app/assets/javascripts/generators/ruby.js.coffee.erb +27 -5
- data/app/assets/javascripts/models/source_code.js.coffee +20 -7
- data/app/assets/javascripts/views/main_menu_view.js.coffee +5 -7
- data/app/assets/stylesheets/editor.css.scss +5 -1
- data/app/assets/stylesheets/toolbox.css.scss.erb +29 -24
- data/app/controllers/source_codes_controller.rb +7 -36
- data/app/helpers/editor_helper.rb +9 -0
- data/app/models/concerns/ruby_to_block/block/hardware_button_down_or_up.rb +25 -0
- data/app/models/concerns/ruby_to_block/block/hardware_button_not_use_pullup.rb +18 -0
- data/app/models/concerns/ruby_to_block/block/hardware_motor_driver.rb +22 -0
- data/app/models/concerns/ruby_to_block/block/hardware_motor_driver_set_speed.rb +20 -0
- data/app/models/concerns/ruby_to_block/block/hardware_motor_driver_speed.rb +24 -0
- data/app/models/concerns/ruby_to_block/block/hardware_on_button_down_or_up.rb +19 -0
- data/app/models/concerns/ruby_to_block/block/hardware_operation.rb +15 -0
- data/app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_set_speed.rb +22 -0
- data/app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_speed.rb +26 -0
- data/app/models/concerns/ruby_to_block/block/ruby_p.rb +19 -0
- data/app/models/concerns/ruby_to_block/block/{motion_reach_wall.rb → sensing_reach_wall.rb} +1 -1
- data/app/models/concerns/ruby_to_block/block/text.rb +3 -2
- data/app/models/source_code.rb +20 -0
- data/app/views/editor/_toolbox.html.haml +84 -63
- data/app/views/editor/index.html.haml +1 -1
- data/demos/adjust_2wd_car.rb.xml +179 -0
- data/demos/car_chase.rb.xml +129 -126
- data/demos/hardware_led.rb.xml +7 -4
- data/demos/pong.rb.xml +17 -14
- data/demos/star.rb.xml +115 -112
- data/lib/smalruby_editor/version.rb +3 -3
- data/lib/smalruby_editor.rb +16 -0
- data/public/assets/{application-c8991557a0789ac1bc9220f409e7f1c1.js → application-734570836cdba680c1568220a51af40f.js} +216 -86
- data/public/assets/{application-c8991557a0789ac1bc9220f409e7f1c1.js.gz → application-734570836cdba680c1568220a51af40f.js.gz} +0 -0
- data/public/assets/{application-d4fe6c0f970efe8eab9267fd08718d96.css → application-898cb749439fba4ce44cffeac1216201.css} +37 -9
- data/public/assets/{application-d4fe6c0f970efe8eab9267fd08718d96.css.gz → application-898cb749439fba4ce44cffeac1216201.css.gz} +0 -0
- data/public/assets/manifest-332a5a1668194028b55103e0ea45c054.json +1 -1
- data/smalruby-editor.gemspec +2 -1
- data/spec/acceptance/block_mode/blocks/events/on_hit.feature +2 -0
- data/spec/acceptance/block_mode/blocks/hardware/button_down_or_up.feature +79 -0
- data/spec/acceptance/block_mode/blocks/hardware/button_not_use_pullup.feature +61 -0
- data/spec/acceptance/block_mode/blocks/hardware/motor_driver.feature +73 -0
- data/spec/acceptance/block_mode/blocks/hardware/motor_driver_speed.feature +93 -0
- data/spec/acceptance/block_mode/blocks/hardware/on_button_down_or_up.feature +87 -0
- data/spec/acceptance/block_mode/blocks/hardware/two_wheel_drive_car_speed.feature +111 -0
- data/spec/acceptance/block_mode/blocks/motion/reach_wall.feature +1 -1
- data/spec/acceptance/block_mode/blocks/operators/text.feature +38 -0
- data/spec/acceptance/block_mode/blocks/sensing/hit.feature +98 -52
- data/spec/acceptance/block_mode/blocks/sensing/reach_wall.feature +98 -0
- data/spec/acceptance/block_mode/demo.feature +3 -1
- data/spec/acceptance/standalone/save.feature +51 -0
- data/spec/helpers/editor_helper_spec.rb +20 -0
- data/spec/javascripts/models/source_code_spec.coffee +40 -0
- data/spec/models/concerns/ruby_to_block/block/hardware_spec.rb +269 -0
- data/spec/models/concerns/ruby_to_block/block/motion_spec.rb +1 -1
- data/spec/models/concerns/ruby_to_block/block/{motion_reach_wall_spec.rb → sensing_reach_wall_spec.rb} +2 -2
- data/spec/models/concerns/ruby_to_block/block/text_spec.rb +39 -0
- data/spec/models/concerns/ruby_to_block_spec.rb +2 -2
- data/spec/models/source_code_spec.rb +53 -0
- data/spec/steps/base_steps.rb +5 -0
- metadata +56 -12
- data/demos/rgb_led_anode.rb.xml +0 -83
@@ -49,9 +49,6 @@
|
|
49
49
|
-# もし端に着いたら、跳ね返る
|
50
50
|
%block{:type => "#{category}_turn_if_reach_wall"}
|
51
51
|
|
52
|
-
-# 条件:端に着いた
|
53
|
-
%block{:type => "#{category}_reach_wall"}
|
54
|
-
|
55
52
|
-# 跳ね返る
|
56
53
|
%block{:type => "#{category}_turn"}
|
57
54
|
|
@@ -85,15 +82,14 @@
|
|
85
82
|
- category = 'hardware'
|
86
83
|
%category{:name => 'アクチュエータ'}
|
87
84
|
-#- subcategory = 'servo'
|
88
|
-
-# サーボ[
|
85
|
+
-# サーボ[▼PIN]を( )度(5~180)にする
|
89
86
|
-#%block{:type => "#{category}_#{subcategory}_set_position"}
|
90
87
|
= toolbox_number_value('POS', 90)
|
91
88
|
|
92
89
|
- subcategory = 'two_wheel_drive_car'
|
93
|
-
-# 2WD車[
|
90
|
+
-# 2WD車[▼PIN]を( )秒[▼コマンド]
|
94
91
|
%block{:type => "#{category}_#{subcategory}_run"}
|
95
|
-
|
96
|
-
D6
|
92
|
+
= toolbox_pin_field('D5')
|
97
93
|
= toolbox_number_value('SEC', 1)
|
98
94
|
%value{:name => 'COMMAND'}
|
99
95
|
%block{:type => "#{category}_#{subcategory}_commands"}
|
@@ -103,30 +99,42 @@
|
|
103
99
|
%field{:name => 'COMMAND'}<
|
104
100
|
forward
|
105
101
|
|
106
|
-
-# 2WD車[
|
102
|
+
-# 2WD車[▼PIN]を進める
|
107
103
|
%block{:type => "#{category}_#{subcategory}_forward"}
|
108
|
-
|
109
|
-
D6
|
104
|
+
= toolbox_pin_field('D5')
|
110
105
|
|
111
|
-
-# 2WD車[
|
106
|
+
-# 2WD車[▼PIN]をバックさせる
|
112
107
|
%block{:type => "#{category}_#{subcategory}_backward"}
|
113
|
-
|
114
|
-
D6
|
108
|
+
= toolbox_pin_field('D5')
|
115
109
|
|
116
|
-
-# 2WD車[
|
110
|
+
-# 2WD車[▼PIN]を左に曲げる
|
117
111
|
%block{:type => "#{category}_#{subcategory}_turn_left"}
|
118
|
-
|
119
|
-
D6
|
112
|
+
= toolbox_pin_field('D5')
|
120
113
|
|
121
|
-
-# 2WD車[
|
114
|
+
-# 2WD車[▼PIN]を右に曲げる
|
122
115
|
%block{:type => "#{category}_#{subcategory}_turn_right"}
|
123
|
-
|
124
|
-
D6
|
116
|
+
= toolbox_pin_field('D5')
|
125
117
|
|
126
|
-
-# 2WD車[
|
118
|
+
-# 2WD車[▼PIN]を止める
|
127
119
|
%block{:type => "#{category}_#{subcategory}_stop"}
|
128
|
-
|
129
|
-
|
120
|
+
= toolbox_pin_field('D5')
|
121
|
+
|
122
|
+
-# 2WD車[▼PIN]の[▼LOR]の速度を<SPEED>%にする
|
123
|
+
%block{:type => "#{category}_#{subcategory}_set_speed"}
|
124
|
+
= toolbox_pin_field('D5')
|
125
|
+
= toolbox_number_value('SPEED', 100)
|
126
|
+
|
127
|
+
- subcategory = 'motor_driver'
|
128
|
+
-# (モータードライバ[▼PIN]で)モーターを[▼正転させる]
|
129
|
+
%block{:type => "#{category}_#{subcategory}"}
|
130
|
+
= toolbox_pin_field('D6')
|
131
|
+
%field{:name => 'METHOD'}<
|
132
|
+
forward
|
133
|
+
|
134
|
+
-# (モータードライバ[▼PIN]の)モーターの速度を<SPEED>%にする
|
135
|
+
%block{:type => "#{category}_#{subcategory}_set_speed"}
|
136
|
+
= toolbox_pin_field('D6')
|
137
|
+
= toolbox_number_value('SPEED', 100)
|
130
138
|
|
131
139
|
- category = 'looks'
|
132
140
|
%category{:name => '見た目'}
|
@@ -173,17 +181,17 @@
|
|
173
181
|
|
174
182
|
- category = 'hardware'
|
175
183
|
- subcategory = 'led'
|
176
|
-
-# LED[
|
184
|
+
-# LED[▼PIN]をオンにする
|
177
185
|
%block{:type => "#{category}_#{subcategory}_on"}
|
178
186
|
|
179
|
-
-# LED[
|
187
|
+
-# LED[▼PIN]をオフにする
|
180
188
|
%block{:type => "#{category}_#{subcategory}_off"}
|
181
189
|
|
182
190
|
-#- subcategory = 'rgb_led'
|
183
|
-
-# RGB LED[▼アノード]コモン[
|
191
|
+
-# RGB LED[▼アノード]コモン[▼PIN]を[カラー]にする
|
184
192
|
-#%block{:type => "#{category}_#{subcategory}_on"}
|
185
193
|
|
186
|
-
-# RGB LED[▼アノード]コモン[
|
194
|
+
-# RGB LED[▼アノード]コモン[▼PIN]をオフにする
|
187
195
|
-#%block{:type => "#{category}_#{subcategory}_off"}
|
188
196
|
|
189
197
|
-#- subcategory = 'seven_segment_display'
|
@@ -247,11 +255,8 @@
|
|
247
255
|
-# センサー[▼PIN]が変化したとき
|
248
256
|
%block{:type => "#{category}_on_sensor_change"}
|
249
257
|
|
250
|
-
-# ボタン[▼]
|
251
|
-
|
252
|
-
|
253
|
-
-# ボタン[▼]を離したとき
|
254
|
-
-#%block{:type => "#{category}_on_button_up"}
|
258
|
+
-# ボタン[▼PIN]が[▼押された]とき
|
259
|
+
%block{:type => "#{category}_on_button_down_or_up"}
|
255
260
|
|
256
261
|
- category = 'control'
|
257
262
|
%category{:name => '制御'}
|
@@ -295,53 +300,65 @@
|
|
295
300
|
|
296
301
|
- category = 'sensing'
|
297
302
|
%category{:name => '調べる'}
|
298
|
-
|
299
|
-
|
300
|
-
|
303
|
+
%category{:name => '一般'}
|
304
|
+
-# 条件:端に触れた
|
305
|
+
%block{:type => "#{category}_reach_wall"}
|
306
|
+
|
307
|
+
-# 条件:キーボードの[▼キー]が[▼押された]
|
308
|
+
%block{:type => "#{category}_input_key_push_or_down"}
|
309
|
+
= toolbox_key_field
|
301
310
|
|
302
|
-
|
303
|
-
|
311
|
+
-# 条件:マウスの[▼左ボタン]が[▼押された]
|
312
|
+
%block{:type => "#{category}_input_mouse_push_or_down"}
|
304
313
|
|
305
|
-
|
306
|
-
|
314
|
+
-# 変数:マウスのx座標
|
315
|
+
%block{:type => "#{category}_input_mouse_pos_x"}
|
307
316
|
|
308
|
-
|
309
|
-
|
317
|
+
-# 変数:マウスのy座標
|
318
|
+
%block{:type => "#{category}_input_mouse_pos_y"}
|
310
319
|
|
311
|
-
|
312
|
-
|
320
|
+
-# 条件:[▼キャラクター]に触れた
|
321
|
+
%block{:type => "#{category}_hit"}
|
313
322
|
|
314
|
-
|
315
|
-
|
316
|
-
|
323
|
+
-# [ ]と聞いて待つ
|
324
|
+
-#%block{:type => "#{category}_ask"}
|
325
|
+
-# = toolbox_text_value('TEXT', 'あなたのお名前は?')
|
317
326
|
|
318
|
-
|
319
|
-
|
327
|
+
-# 変数:答え
|
328
|
+
-#%block{:type => "#{category}_answer"}
|
320
329
|
|
321
|
-
|
322
|
-
|
330
|
+
-# 変数:タイマー
|
331
|
+
-#%block{:type => "#{category}_timer_count"}
|
323
332
|
|
324
|
-
|
325
|
-
|
333
|
+
-# タイマーをリセット
|
334
|
+
-#%block{:type => "#{category}_timer_reset"}
|
326
335
|
|
327
|
-
|
328
|
-
|
336
|
+
-# 変数:[▼キャラクター]の[▼プロパティ]
|
337
|
+
%block{:type => "#{category}_character_property"}
|
329
338
|
|
330
|
-
|
331
|
-
|
339
|
+
-# 変数:現在の[▼時]
|
340
|
+
%block{:type => "#{category}_time_now"}
|
332
341
|
|
333
|
-
|
334
|
-
|
342
|
+
-# 変数:2000年からの日数
|
343
|
+
-#%block{:type => "#{category}_days_since_2000"}
|
335
344
|
|
336
345
|
- category = 'hardware'
|
337
|
-
|
338
|
-
|
346
|
+
%category{:name => 'ハードウェア'}
|
347
|
+
-# センサー[▼PIN]
|
348
|
+
%block{:type => "#{category}_sensor_value"}
|
349
|
+
= toolbox_pin_field('A0')
|
350
|
+
|
351
|
+
-# 条件:ボタン[▼PIN]が[▼押された]
|
352
|
+
%block{:type => "#{category}_button_down_or_up"}
|
353
|
+
= toolbox_pin_field('D3')
|
339
354
|
|
340
|
-
|
341
|
-
|
355
|
+
-# 2WD車[▼PIN]の[▼LOR]の速度%
|
356
|
+
%block{:type => "#{category}_two_wheel_drive_car_speed"}
|
357
|
+
= toolbox_pin_field('D5')
|
342
358
|
|
343
|
-
|
344
|
-
|
359
|
+
-# (モータードライバ[▼PIN]の)モーターの速度(%)
|
360
|
+
%block{:type => "#{category}_motor_driver_speed"}
|
361
|
+
= toolbox_pin_field('D6')
|
345
362
|
|
346
363
|
- category = 'operators'
|
347
364
|
%category{:name => '演算'}
|
@@ -448,3 +465,7 @@
|
|
448
465
|
%category{:name => 'ハードウェア'}
|
449
466
|
-# ハードウェアを準備する
|
450
467
|
%block{:type => "#{category}_init_hardware"}
|
468
|
+
|
469
|
+
-# ボタン[▼PIN]のプルアップ抵抗を使わない
|
470
|
+
%block{:type => "#{category}_button_not_use_pullup"}
|
471
|
+
= toolbox_pin_field('D3')
|
@@ -0,0 +1,179 @@
|
|
1
|
+
<xml xmlns="http://www.w3.org/1999/xhtml">
|
2
|
+
<character name="car1" x="170" y="266" costumes="car2.png" angle="241" rotation_style="left_right" />
|
3
|
+
<character name="car2" x="420" y="260" costumes="car2.png" angle="0" rotation_style="left_right" />
|
4
|
+
<character name="frog1" x="276" y="88" costumes="frog1.png" angle="0" />
|
5
|
+
<block type="hardware_init_hardware" x="177" y="30" />
|
6
|
+
<block type="ruby_comment" x="178" y="70">
|
7
|
+
<field name="COMMENT">2WD車の左右のモーターを調整する</field>
|
8
|
+
<next>
|
9
|
+
<block type="character_new">
|
10
|
+
<field name="NAME">frog1</field>
|
11
|
+
<statement name="DO">
|
12
|
+
<block type="events_on_start">
|
13
|
+
<statement name="DO">
|
14
|
+
<block type="looks_say" inline="true">
|
15
|
+
<value name="TEXT">
|
16
|
+
<block type="text">
|
17
|
+
<field name="TEXT">クリックすると前と後ろに動かすよ。←、→で左右のモーターの速度を調整できるよ</field>
|
18
|
+
</block>
|
19
|
+
</value>
|
20
|
+
</block>
|
21
|
+
</statement>
|
22
|
+
<next>
|
23
|
+
<block type="events_on_click">
|
24
|
+
<statement name="DO">
|
25
|
+
<block type="hardware_two_wheel_drive_car_run" inline="true">
|
26
|
+
<field name="PIN">D5</field>
|
27
|
+
<value name="SEC">
|
28
|
+
<block type="math_number">
|
29
|
+
<field name="NUM">2</field>
|
30
|
+
</block>
|
31
|
+
</value>
|
32
|
+
<value name="COMMAND">
|
33
|
+
<block type="hardware_two_wheel_drive_car_commands">
|
34
|
+
<field name="COMMAND">forward</field>
|
35
|
+
</block>
|
36
|
+
</value>
|
37
|
+
<next>
|
38
|
+
<block type="hardware_two_wheel_drive_car_run" inline="true">
|
39
|
+
<field name="PIN">D5</field>
|
40
|
+
<value name="SEC">
|
41
|
+
<block type="math_number">
|
42
|
+
<field name="NUM">2</field>
|
43
|
+
</block>
|
44
|
+
</value>
|
45
|
+
<value name="COMMAND">
|
46
|
+
<block type="hardware_two_wheel_drive_car_commands">
|
47
|
+
<field name="COMMAND">backward</field>
|
48
|
+
</block>
|
49
|
+
</value>
|
50
|
+
</block>
|
51
|
+
</next>
|
52
|
+
</block>
|
53
|
+
</statement>
|
54
|
+
<next>
|
55
|
+
<block type="events_on_key_push_or_down">
|
56
|
+
<field name="KEY">K_LEFT</field>
|
57
|
+
<field name="POD">push</field>
|
58
|
+
<statement name="DO">
|
59
|
+
<block type="hardware_two_wheel_drive_car_set_speed" inline="true">
|
60
|
+
<field name="PIN">D5</field>
|
61
|
+
<field name="LOR">left</field>
|
62
|
+
<value name="SPEED">
|
63
|
+
<block type="operators_minus" inline="true">
|
64
|
+
<value name="A">
|
65
|
+
<block type="hardware_two_wheel_drive_car_speed">
|
66
|
+
<field name="PIN">D5</field>
|
67
|
+
<field name="LOR">left</field>
|
68
|
+
</block>
|
69
|
+
</value>
|
70
|
+
<value name="B">
|
71
|
+
<block type="math_number">
|
72
|
+
<field name="NUM">1</field>
|
73
|
+
</block>
|
74
|
+
</value>
|
75
|
+
</block>
|
76
|
+
</value>
|
77
|
+
<next>
|
78
|
+
<block type="hardware_two_wheel_drive_car_set_speed" inline="true">
|
79
|
+
<field name="PIN">D5</field>
|
80
|
+
<field name="LOR">right</field>
|
81
|
+
<value name="SPEED">
|
82
|
+
<block type="math_number">
|
83
|
+
<field name="NUM">100</field>
|
84
|
+
</block>
|
85
|
+
</value>
|
86
|
+
</block>
|
87
|
+
</next>
|
88
|
+
</block>
|
89
|
+
</statement>
|
90
|
+
<next>
|
91
|
+
<block type="events_on_key_push_or_down">
|
92
|
+
<field name="KEY">K_RIGHT</field>
|
93
|
+
<field name="POD">push</field>
|
94
|
+
<statement name="DO">
|
95
|
+
<block type="hardware_two_wheel_drive_car_set_speed" inline="true">
|
96
|
+
<field name="PIN">D5</field>
|
97
|
+
<field name="LOR">left</field>
|
98
|
+
<value name="SPEED">
|
99
|
+
<block type="math_number">
|
100
|
+
<field name="NUM">100</field>
|
101
|
+
</block>
|
102
|
+
</value>
|
103
|
+
<next>
|
104
|
+
<block type="hardware_two_wheel_drive_car_set_speed" inline="true">
|
105
|
+
<field name="PIN">D5</field>
|
106
|
+
<field name="LOR">right</field>
|
107
|
+
<value name="SPEED">
|
108
|
+
<block type="operators_minus" inline="true">
|
109
|
+
<value name="A">
|
110
|
+
<block type="hardware_two_wheel_drive_car_speed">
|
111
|
+
<field name="PIN">D5</field>
|
112
|
+
<field name="LOR">right</field>
|
113
|
+
</block>
|
114
|
+
</value>
|
115
|
+
<value name="B">
|
116
|
+
<block type="math_number">
|
117
|
+
<field name="NUM">1</field>
|
118
|
+
</block>
|
119
|
+
</value>
|
120
|
+
</block>
|
121
|
+
</value>
|
122
|
+
</block>
|
123
|
+
</next>
|
124
|
+
</block>
|
125
|
+
</statement>
|
126
|
+
</block>
|
127
|
+
</next>
|
128
|
+
</block>
|
129
|
+
</next>
|
130
|
+
</block>
|
131
|
+
</next>
|
132
|
+
</block>
|
133
|
+
</statement>
|
134
|
+
</block>
|
135
|
+
</next>
|
136
|
+
</block>
|
137
|
+
<block type="character_new" x="179" y="617">
|
138
|
+
<field name="NAME">car1</field>
|
139
|
+
<statement name="DO">
|
140
|
+
<block type="events_on_start">
|
141
|
+
<statement name="DO">
|
142
|
+
<block type="control_loop">
|
143
|
+
<statement name="DO">
|
144
|
+
<block type="looks_say" inline="true">
|
145
|
+
<value name="TEXT">
|
146
|
+
<block type="hardware_two_wheel_drive_car_speed">
|
147
|
+
<field name="PIN">D5</field>
|
148
|
+
<field name="LOR">left</field>
|
149
|
+
</block>
|
150
|
+
</value>
|
151
|
+
</block>
|
152
|
+
</statement>
|
153
|
+
</block>
|
154
|
+
</statement>
|
155
|
+
</block>
|
156
|
+
</statement>
|
157
|
+
</block>
|
158
|
+
<block type="character_new" x="588" y="612">
|
159
|
+
<field name="NAME">car2</field>
|
160
|
+
<statement name="DO">
|
161
|
+
<block type="events_on_start">
|
162
|
+
<statement name="DO">
|
163
|
+
<block type="control_loop">
|
164
|
+
<statement name="DO">
|
165
|
+
<block type="looks_say" inline="true">
|
166
|
+
<value name="TEXT">
|
167
|
+
<block type="hardware_two_wheel_drive_car_speed">
|
168
|
+
<field name="PIN">D5</field>
|
169
|
+
<field name="LOR">right</field>
|
170
|
+
</block>
|
171
|
+
</value>
|
172
|
+
</block>
|
173
|
+
</statement>
|
174
|
+
</block>
|
175
|
+
</statement>
|
176
|
+
</block>
|
177
|
+
</statement>
|
178
|
+
</block>
|
179
|
+
</xml>
|