scratch-vm/src/blocks/scratch3_sensing.js

70 lines
1.9 KiB
JavaScript
Raw Normal View History

function Scratch3SensingBlocks(runtime) {
/**
* The runtime instantiating this block package.
* @type {Runtime}
*/
this.runtime = runtime;
}
/**
* Retrieve the block primitives implemented by this package.
* @return {Object.<string, Function>} Mapping of opcode to Function.
*/
Scratch3SensingBlocks.prototype.getPrimitives = function() {
return {
'sensing_timer': this.getTimer,
'sensing_resettimer': this.resetTimer,
'sensing_mousex': this.getMouseX,
'sensing_mousey': this.getMouseY,
2016-09-01 23:48:14 -04:00
'sensing_mousedown': this.getMouseDown,
'sensing_current': this.current,
'sensing_currentmenu': this.currentMenu
};
};
Scratch3SensingBlocks.prototype.getTimer = function (args, util) {
return util.ioQuery('clock', 'projectTimer');
};
Scratch3SensingBlocks.prototype.resetTimer = function (args, util) {
util.ioQuery('clock', 'resetProjectTimer');
};
Scratch3SensingBlocks.prototype.getMouseX = function (args, util) {
return util.ioQuery('mouse', 'getX');
};
Scratch3SensingBlocks.prototype.getMouseY = function (args, util) {
return util.ioQuery('mouse', 'getY');
};
Scratch3SensingBlocks.prototype.getMouseDown = function (args, util) {
return util.ioQuery('mouse', 'getIsDown');
};
2016-09-01 23:48:14 -04:00
Scratch3SensingBlocks.prototype.current = function (args, util) {
var date = new Date();
switch (args.CURRENTMENU) {
case 'year':
return date.getFullYear();
case 'month':
return date.getMonth();
case 'date':
return date.getDate();
case 'dayofweek':
return date.getDay();
case 'hour':
return date.getHours();
case 'minute':
return date.getMinutes();
case 'second':
return date.getSeconds();
}
};
Scratch3SensingBlocks.prototype.currentMenu = function (args) {
return args.CURRENTMENU.toLowerCase();
};
module.exports = Scratch3SensingBlocks;