Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion src/lib/ruby-to-blocks-converter/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import MeshConverter from './mesh';
import SmalrubotS1Converter from './smalrubot_s1';
import BoostConverter from './boost';
import TranslateConverter from './translate';
import MakeyMakeyConverter from './makeymakey'

const messages = defineMessages({
couldNotConvertPremitive: {
Expand Down Expand Up @@ -100,7 +101,8 @@ class RubyToBlocksConverter {
SensingConverter,
OperatorsConverter,
VariablesConverter,
MyBlocksConverter
MyBlocksConverter,
MakeyMakeyConverter
];
this.reset();
}
Expand Down
46 changes: 46 additions & 0 deletions src/lib/ruby-to-blocks-converter/makeymakey.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/* global Opal */
import _ from 'lodash';

/**
* MakeyMakey converter
*/
const MakeyMakeyConverter = {
// eslint-disable-next-line no-unused-vars
onSend: function (receiver, name, args, rubyBlockArgs, rubyBlock, node) {
let block;
if ((this._isSelf(receiver) || receiver === Opal.nil) &&
name === 'when' &&
args.length === 2 && args[0].type === 'sym' &&
rubyBlockArgs && rubyBlockArgs.length === 0 &&
rubyBlock) {
switch (args[0].value) {
case 'makey_key_pressed':
console.log('if');
if (this._isStringOrBlock(args[1])) {
block = this._createBlock('makeymakey_whenMakeyKeyPressed', 'hat');
this._addInput(
block,
'KEY',
this._createFieldBlock('makeymakey_menu_KEY', 'KEY', args[1]),
);
this._setParent(rubyBlock, block);
}
break;
case 'makey_pressed_in_oder':
if (this._isStringOrBlock(args[1])) {
block = this._createBlock('makeymakey_whenCodePressed', 'hat');
this._addInput(
block,
'SEQUENCE',
this._createFieldBlock('makeymakey_menu_SEQUENC', 'SEQUENCE', args[1])
);
this._setParent(rubyBlock, block);
}
break;
}
}
return block;
}
};

export default MakeyMakeyConverter;