From 2c7a3d299fe7b7cac2f9e8aefff586859138d6bc Mon Sep 17 00:00:00 2001 From: Thomas Weber Date: Sat, 22 Aug 2020 00:58:02 -0500 Subject: [PATCH] Rename some internal opcodes sensing.keydown -> keyboard.pressed sensing.mousedown -> mouse.down sensing.mouseY -> mouse.y sensing.mouseX -> mouse.x sensing.timer -> timer.get sensing.resetTimer -> timer.reset --- src/compiler/astgen.js | 18 +++++++++--------- src/compiler/jsgen.js | 25 ++++++++++++++----------- 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/src/compiler/astgen.js b/src/compiler/astgen.js index 39f7d532..e2048714 100644 --- a/src/compiler/astgen.js +++ b/src/compiler/astgen.js @@ -570,20 +570,20 @@ class ScriptTreeGenerator { }; case 'sensing_keypressed': return { - kind: 'sensing.keydown', + kind: 'keyboard.pressed', key: this.descendInput(block, 'KEY_OPTION') }; case 'sensing_mousedown': return { - kind: 'sensing.mousedown' - }; - case 'sensing_mousey': - return { - kind: 'sensing.mouseY' + kind: 'mouse.down' }; case 'sensing_mousex': return { - kind: 'sensing.mouseX' + kind: 'mouse.x' + }; + case 'sensing_mousey': + return { + kind: 'mouse.y' }; case 'sensing_of_object_menu': return { @@ -592,7 +592,7 @@ class ScriptTreeGenerator { }; case 'sensing_timer': return { - kind: 'sensing.timer' + kind: 'timer.get' }; case 'sensing_touchingcolor': return { @@ -1044,7 +1044,7 @@ class ScriptTreeGenerator { case 'sensing_resettimer': return { - kind: 'sensing.resetTimer' + kind: 'timer.reset' }; default: diff --git a/src/compiler/jsgen.js b/src/compiler/jsgen.js index 75826693..bc171541 100644 --- a/src/compiler/jsgen.js +++ b/src/compiler/jsgen.js @@ -160,6 +160,9 @@ class ScriptCompiler { case 'constant': return this.safeConstantInput(node.value); + case 'keyboard.pressed': + return new TypedInput(`ioQuery("keyboard", "getKeyIsDown", [${this.descendInput(node.key).asUnknown()}])`, TYPE_BOOLEAN); + case 'list.contains': return new TypedInput(`listContains(${this.referenceVariable(node.list)}, ${this.descendInput(node.item).asUnknown()})`, TYPE_BOOLEAN); case 'list.contents': @@ -188,6 +191,13 @@ class ScriptCompiler { return new TypedInput('target.x', TYPE_NUMBER); case 'motion.y': return new TypedInput('target.y', TYPE_NUMBER); + + case 'mouse.down': + return new TypedInput('ioQuery("mouse", "getIsDown")', TYPE_BOOLEAN); + case 'mouse.x': + return new TypedInput('ioQuery("mouse", "getScratchX")', TYPE_NUMBER); + case 'mouse.y': + return new TypedInput('ioQuery("mouse", "getScratchY")', TYPE_NUMBER); case 'op.abs': return new TypedInput(`Math.abs(${this.descendInput(node.value).asNumber()})`, TYPE_NUMBER); @@ -260,22 +270,15 @@ class ScriptCompiler { case 'sensing.colorTouchingColor': return new TypedInput(`target.colorIsTouchingColor(colorToList(${this.descendInput(node.target).asUnknown()}), colorToList(${this.descendInput(node.mask).asUnknown()}))`, TYPE_BOOLEAN); - case 'sensing.timer': - return new TypedInput('ioQuery("clock", "projectTimer")', TYPE_NUMBER); - case 'sensing.keydown': - return new TypedInput(`ioQuery("keyboard", "getKeyIsDown", [${this.descendInput(node.key).asUnknown()}])`, TYPE_BOOLEAN); - case 'sensing.mousedown': - return new TypedInput('ioQuery("mouse", "getIsDown")', TYPE_BOOLEAN); - case 'sensing.mouseX': - return new TypedInput('ioQuery("mouse", "getScratchX")', TYPE_NUMBER); - case 'sensing.mouseY': - return new TypedInput('ioQuery("mouse", "getScratchY")', TYPE_NUMBER); case 'sensing.touching': return new TypedInput(`target.isTouchingObject(${this.descendInput(node.object).asUnknown()})`, TYPE_BOOLEAN); case 'sensing.touchingColor': return new TypedInput(`target.isTouchingColor(colorToList(${this.descendInput(node.color).asUnknown()}))`, TYPE_BOOLEAN); case 'sensing.username': return new TypedInput('ioQuery("userData", "getUsername")', TYPE_STRING); + + case 'timer.get': + return new TypedInput('ioQuery("clock", "projectTimer")', TYPE_NUMBER); case 'tw.lastKeyPressed': // Not final. @@ -532,7 +535,7 @@ class ScriptCompiler { break; } - case 'sensing.resetTimer': + case 'timer.reset': this.source += 'ioQuery("clock", "resetProjectTimer");\n'; break;