Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
78 changes: 52 additions & 26 deletions src/extensions/microbitMore/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,31 @@ const MbitMoreGestureID =
11: 'SHAKE'
};

/**
* Enum for name of tilt direction.
* @readonly
* @enum {string}
*/
const MbitMoreTiltDirectionName =
{
FRONT: 'FRONT',
BACK: 'BACK',
LEFT: 'LEFT',
RIGHT: 'RIGHT',
ANY: 'ANY'
};

/**
* Tilt direction to gesture name mapping
* @readonly
*/
const MbitMoreTiltDirectionToGestureName = {
FRONT: MbitMoreGestureName.TILT_UP,
BACK: MbitMoreGestureName.TILT_DOWN,
LEFT: MbitMoreGestureName.TILT_LEFT,
RIGHT: MbitMoreGestureName.TILT_RIGHT
};

/**
* Enum for event type in the micro:bit runtime.
* @readonly
Expand Down Expand Up @@ -1729,43 +1754,43 @@ class MbitMoreBlocks {
return [
{
text: formatMessage({
id: 'mbitMore.tiltDirectionMenu.up',
id: 'mbitMore.tiltDirectionMenu.front',
default: 'front',
description: 'label for front element in tilt direction picker for Microbit More extension'
}),
value: MbitMoreGestureName.TILT_UP
value: MbitMoreTiltDirectionName.FRONT
},
{
text: formatMessage({
id: 'mbitMore.tiltDirectionMenu.down',
id: 'mbitMore.tiltDirectionMenu.back',
default: 'back',
description: 'label for back element in tilt direction picker for Microbit More extension'
}),
value: MbitMoreGestureName.TILT_DOWN
value: MbitMoreTiltDirectionName.BACK
},
{
text: formatMessage({
id: 'mbitMore.tiltDirectionMenu.left',
default: 'left',
description: 'label for left element in tilt direction picker for Microbit More extension'
}),
value: MbitMoreGestureName.TILT_LEFT
value: MbitMoreTiltDirectionName.LEFT
},
{
text: formatMessage({
id: 'mbitMore.tiltDirectionMenu.right',
default: 'right',
description: 'label for right element in tilt direction picker for Microbit More extension'
}),
value: MbitMoreGestureName.TILT_RIGHT
value: MbitMoreTiltDirectionName.RIGHT
},
{
text: formatMessage({
id: 'mbitMore.tiltDirectionMenu.any',
default: 'any',
description: 'label for any direction element in tilt direction picker for Microbit More extension'
}),
value: 'ANY'
value: MbitMoreTiltDirectionName.ANY
}
];
}
Expand All @@ -1781,31 +1806,31 @@ class MbitMoreBlocks {
default: 'front',
description: 'label for front element in tilt angle direction picker for Microbit More extension'
}),
value: 'FRONT'
value: MbitMoreTiltDirectionName.FRONT
},
{
text: formatMessage({
id: 'mbitMore.tiltAngleDirectionMenu.back',
default: 'back',
description: 'label for back element in tilt angle direction picker for Microbit More extension'
}),
value: 'BACK'
value: MbitMoreTiltDirectionName.BACK
},
{
text: formatMessage({
id: 'mbitMore.tiltAngleDirectionMenu.left',
default: 'left',
description: 'label for left element in tilt angle direction picker for Microbit More extension'
}),
value: 'LEFT'
value: MbitMoreTiltDirectionName.LEFT
},
{
text: formatMessage({
id: 'mbitMore.tiltAngleDirectionMenu.right',
default: 'right',
description: 'label for right element in tilt angle direction picker for Microbit More extension'
}),
value: 'RIGHT'
value: MbitMoreTiltDirectionName.RIGHT
}
];
}
Expand Down Expand Up @@ -2441,7 +2466,7 @@ class MbitMoreBlocks {
DIRECTION: {
type: ArgumentType.STRING,
menu: 'tiltDirectionMenu',
defaultValue: 'ANY'
defaultValue: MbitMoreTiltDirectionName.ANY
}
}
},
Expand All @@ -2457,7 +2482,7 @@ class MbitMoreBlocks {
DIRECTION: {
type: ArgumentType.STRING,
menu: 'tiltDirectionMenu',
defaultValue: 'ANY'
defaultValue: MbitMoreTiltDirectionName.ANY
}
}
},
Expand All @@ -2473,7 +2498,7 @@ class MbitMoreBlocks {
DIRECTION: {
type: ArgumentType.STRING,
menu: 'tiltAngleDirectionMenu',
defaultValue: 'FRONT'
defaultValue: MbitMoreTiltDirectionName.FRONT
}
}
},
Expand Down Expand Up @@ -3247,7 +3272,7 @@ class MbitMoreBlocks {
}, this.runtime.currentStepTime);
}
const direction = args.DIRECTION;
if (direction === 'ANY') {
if (direction === MbitMoreTiltDirectionName.ANY) {
const tiltGestures = [
MbitMoreGestureName.TILT_UP,
MbitMoreGestureName.TILT_DOWN,
Expand All @@ -3261,10 +3286,11 @@ class MbitMoreBlocks {
return lastTimestamp !== this.prevGestureEvents[name];
});
}
const lastTimestamp = this._peripheral.getGestureEventTimestamp(direction);
const gestureName = MbitMoreTiltDirectionToGestureName[direction];
const lastTimestamp = this._peripheral.getGestureEventTimestamp(gestureName);
if (lastTimestamp === null) return false;
if (!this.prevGestureEvents[direction]) return true;
return lastTimestamp !== this.prevGestureEvents[direction];
if (!this.prevGestureEvents[gestureName]) return true;
return lastTimestamp !== this.prevGestureEvents[gestureName];
}

/**
Expand All @@ -3277,13 +3303,13 @@ class MbitMoreBlocks {
switch (args.DIRECTION) {
case 'ANY':
return Math.abs(this._peripheral.pitch) > 15 || Math.abs(this._peripheral.roll) > 15;
case MbitMoreGestureName.TILT_UP:
case MbitMoreTiltDirectionName.FRONT:
return this._peripheral.pitch < -15;
case MbitMoreGestureName.TILT_DOWN:
case MbitMoreTiltDirectionName.BACK:
return this._peripheral.pitch > 15;
case MbitMoreGestureName.TILT_LEFT:
case MbitMoreTiltDirectionName.LEFT:
return this._peripheral.roll < -15;
case MbitMoreGestureName.TILT_RIGHT:
case MbitMoreTiltDirectionName.RIGHT:
return this._peripheral.roll > 15;
default:
return false;
Expand All @@ -3298,13 +3324,13 @@ class MbitMoreBlocks {
*/
getTiltAngle (args) {
switch (args.DIRECTION) {
case 'FRONT':
case MbitMoreTiltDirectionName.FRONT:
return -this._peripheral.pitch;
case 'BACK':
case MbitMoreTiltDirectionName.BACK:
return this._peripheral.pitch;
case 'LEFT':
case MbitMoreTiltDirectionName.LEFT:
return -this._peripheral.roll;
case 'RIGHT':
case MbitMoreTiltDirectionName.RIGHT:
return this._peripheral.roll;
default:
return 0;
Expand Down
8 changes: 4 additions & 4 deletions src/extensions/microbitMore/translations.json
Original file line number Diff line number Diff line change
Expand Up @@ -128,8 +128,8 @@
"mbitMore.whenTilted": "[DIRECTION] に傾いたとき",
"mbitMore.isTilted": "[DIRECTION] に傾いた",
"mbitMore.tiltDirectionMenu.any": "どれかの向き",
"mbitMore.tiltDirectionMenu.up": "前",
"mbitMore.tiltDirectionMenu.down": "後ろ",
"mbitMore.tiltDirectionMenu.front": "前",
"mbitMore.tiltDirectionMenu.back": "後ろ",
"mbitMore.tiltDirectionMenu.left": "左",
"mbitMore.tiltDirectionMenu.right": "右",
"mbitMore.getTiltAngle": "[DIRECTION] 方向の傾き",
Expand Down Expand Up @@ -233,8 +233,8 @@
"mbitMore.whenTilted": "[DIRECTION] にかたむいたとき",
"mbitMore.isTilted": "[DIRECTION] にかたむいた",
"mbitMore.tiltDirectionMenu.any": "どれかのむき",
"mbitMore.tiltDirectionMenu.up": "まえ",
"mbitMore.tiltDirectionMenu.down": "うしろ",
"mbitMore.tiltDirectionMenu.front": "まえ",
"mbitMore.tiltDirectionMenu.back": "うしろ",
"mbitMore.tiltDirectionMenu.left": "ひだり",
"mbitMore.tiltDirectionMenu.right": "みぎ",
"mbitMore.getTiltAngle": "[DIRECTION] ほうこうのかたむき",
Expand Down
Loading