Skip to content

Commit 51bde9c

Browse files
authored
Merge pull request #264 from riversunlight/dev_ev3
EV3の変換機能を追加
2 parents 196eea5 + ae01069 commit 51bde9c

File tree

1 file changed

+34
-0
lines changed
  • src/lib/ruby-to-blocks-converter

1 file changed

+34
-0
lines changed

src/lib/ruby-to-blocks-converter/ev3.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,40 @@ const EV3Converter = {
8989
}
9090
break;
9191
}
92+
} else if ((this._isSelf(receiver) || receiver === Opal.nil) &&
93+
name === 'when' &&
94+
args.length === 2 && args[0].type === 'sym' &&
95+
rubyBlockArgs && rubyBlockArgs.length === 0 &&
96+
rubyBlock) {
97+
switch(args[0].value) {
98+
case 'ev3_button_pressed':
99+
if (this._isStringOrBlock(args[1])) {
100+
block = this._createBlock('ev3_whenButtonPressed', 'hat');
101+
const sensor = Ev3SensorMenu.indexOf(args[1].toString());
102+
this._addInput(
103+
block,
104+
'PORT',
105+
this._createFieldBlock('ev3_menu_sensorPorts', 'sensorPorts', sensor.toString())
106+
);
107+
this._setParent(rubyBlock, block);
108+
}
109+
break;
110+
case 'ev3_distance_gt':
111+
if (this._isNumberOrBlock(args[1])) {
112+
block = this._createBlock('ev3_whenDistanceLessThan', 'hat');
113+
this._addNumberInput(block, 'DISTANCE', 'math_number', args[1], 5);
114+
this._setParent(rubyBlock, block);
115+
}
116+
break;
117+
case 'ev3_brightness_gt':
118+
if (this._isNumberOrBlock(args[1])) {
119+
block = this._createBlock('ev3_whenBrightnessLessThan', 'hat');
120+
this._addNumberInput(block, 'DISTANCE', 'math_number', args[1], 50);
121+
this._setParent(rubyBlock, block);
122+
}
123+
break;
124+
}
125+
92126
}
93127
return block;
94128
}

0 commit comments

Comments
 (0)