Merge pull request #2063 from ericrosenbaum/feature/vernier-facing-options

Move facing options into gesture menu
This commit is contained in:
Eric Rosenbaum 2019-03-25 10:56:03 -04:00 committed by GitHub
commit d07cc5dffb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -417,7 +417,9 @@ const PushPullValues = {
*/
const GestureValues = {
SHAKEN: 'shaken',
STARTED_FALLING: 'started falling'
STARTED_FALLING: 'started falling',
TURNED_FACE_UP: 'turned face up',
TURNED_FACE_DOWN: 'turned face down'
};
/**
@ -444,16 +446,6 @@ const AxisValues = {
Z: 'z'
};
/**
* Enum for face menu options.
* @readonly
* @enum {string}
*/
const FaceValues = {
UP: 'up',
DOWN: 'down'
};
/**
* Scratch 3.0 blocks to interact with a GDX-FOR peripheral.
*/
@ -541,27 +533,6 @@ class Scratch3GdxForBlocks {
];
}
get FACE_MENU () {
return [
{
text: formatMessage({
id: 'gdxfor.up',
default: 'up',
description: 'the sensor is facing up'
}),
value: FaceValues.UP
},
{
text: formatMessage({
id: 'gdxfor.down',
default: 'down',
description: 'the sensor is facing down'
}),
value: FaceValues.DOWN
}
];
}
get PUSH_PULL_MENU () {
return [
{
@ -600,6 +571,22 @@ class Scratch3GdxForBlocks {
description: 'the sensor started free falling'
}),
value: GestureValues.STARTED_FALLING
},
{
text: formatMessage({
id: 'gdxfor.turnedFaceUp',
default: 'turned face up',
description: 'the sensor was turned to face up'
}),
value: GestureValues.TURNED_FACE_UP
},
{
text: formatMessage({
id: 'gdxfor.turnedFaceDown',
default: 'turned face down',
description: 'the sensor was turned to face down'
}),
value: GestureValues.TURNED_FACE_DOWN
}
];
}
@ -721,22 +708,6 @@ class Scratch3GdxForBlocks {
}
},
'---',
{
opcode: 'isFacing',
text: formatMessage({
id: 'gdxfor.isFacing',
default: 'facing [FACING]?',
description: 'is the device facing up or down?'
}),
blockType: BlockType.BOOLEAN,
arguments: {
FACING: {
type: ArgumentType.STRING,
menu: 'faceOptions',
defaultValue: FaceValues.UP
}
}
},
{
opcode: 'isFreeFalling',
text: formatMessage({
@ -784,8 +755,7 @@ class Scratch3GdxForBlocks {
gestureOptions: this.GESTURE_MENU,
axisOptions: this.AXIS_MENU,
tiltOptions: this.TILT_MENU,
tiltAnyOptions: this.TILT_MENU_ANY,
faceOptions: this.FACE_MENU
tiltAnyOptions: this.TILT_MENU_ANY
}
};
}
@ -812,6 +782,10 @@ class Scratch3GdxForBlocks {
return this.gestureMagnitude() > SHAKEN_THRESHOLD;
case GestureValues.STARTED_FALLING:
return this.isFreeFalling();
case GestureValues.TURNED_FACE_UP:
return this._peripheral.getAccelerationZ() > FACING_THRESHOLD;
case GestureValues.TURNED_FACE_DOWN:
return this._peripheral.getAccelerationZ() < FACING_THRESHOLD * -1;
default:
log.warn(`unknown gesture value in whenGesture: ${args.GESTURE}`);
return false;
@ -919,17 +893,6 @@ class Scratch3GdxForBlocks {
);
}
isFacing (args) {
switch (args.FACING) {
case FaceValues.UP:
return this._peripheral.getAccelerationZ() > FACING_THRESHOLD;
case FaceValues.DOWN:
return this._peripheral.getAccelerationZ() < FACING_THRESHOLD * -1;
default:
log.warn(`Unknown direction in isFacing: ${args.FACING}`);
}
}
isFreeFalling () {
// When the peripheral is not connected, the acceleration magnitude
// is 0 instead of ~9.8, which ends up calculating as a positive