UNPKG

cloud-blocks

Version:

Cloud Blocks is a library for building scratch computing interfaces with Luxrobo MODI.

587 lines (557 loc) 14.4 kB
/** * @license * Visual Blocks Editor * * Copyright 2016 Massachusetts Institute of Technology * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ 'use strict'; goog.provide('Blockly.Blocks.looks'); goog.require('Blockly.Blocks'); goog.require('Blockly.Colours'); goog.require('Blockly.constants'); goog.require('Blockly.ScratchBlocks.VerticalExtensions'); Blockly.Blocks['looks_sayforsecs'] = { /** * Block to say for some time. * @this Blockly.Block */ init: function () { this.jsonInit({ message0: Blockly.Msg.LOOKS_SAYFORSECS, args0: [ { type: 'input_value', name: 'MESSAGE' }, { type: 'input_value', name: 'SECS' } ], category: Blockly.Categories.looks, extensions: ['colours_looks', 'shape_statement'] }); } }; Blockly.Blocks['looks_say'] = { /** * Block to say. * @this Blockly.Block */ init: function () { this.jsonInit({ message0: Blockly.Msg.LOOKS_SAY, args0: [ { type: 'input_value', name: 'MESSAGE' } ], category: Blockly.Categories.looks, extensions: ['colours_looks', 'shape_statement'] }); } }; Blockly.Blocks['looks_thinkforsecs'] = { /** * Block to think for some time. * @this Blockly.Block */ init: function () { this.jsonInit({ message0: Blockly.Msg.LOOKS_THINKFORSECS, args0: [ { type: 'input_value', name: 'MESSAGE' }, { type: 'input_value', name: 'SECS' } ], category: Blockly.Categories.looks, extensions: ['colours_looks', 'shape_statement'] }); } }; Blockly.Blocks['looks_think'] = { /** * Block to think. * @this Blockly.Block */ init: function () { this.jsonInit({ message0: Blockly.Msg.LOOKS_THINK, args0: [ { type: 'input_value', name: 'MESSAGE' } ], category: Blockly.Categories.looks, extensions: ['colours_looks', 'shape_statement'] }); } }; Blockly.Blocks['looks_show'] = { /** * Show block. * @this Blockly.Block */ init: function () { this.jsonInit({ message0: Blockly.Msg.LOOKS_SHOW, category: Blockly.Categories.looks, extensions: ['colours_looks', 'shape_statement'] }); } }; Blockly.Blocks['looks_hide'] = { /** * Hide block. * @this Blockly.Block */ init: function () { this.jsonInit({ message0: Blockly.Msg.LOOKS_HIDE, category: Blockly.Categories.looks, extensions: ['colours_looks', 'shape_statement'] }); } }; Blockly.Blocks['looks_hideallsprites'] = { /** * Hide-all-sprites block. Does not actually do anything. This is an * obsolete block that is implemented for compatibility with Scratch 2.0 * projects. * @this Blockly.Block */ init: function () { this.jsonInit({ message0: Blockly.Msg.LOOKS_HIDEALLSPRITES, category: Blockly.Categories.looks, extensions: ['colours_looks', 'shape_statement'] }); } }; Blockly.Blocks['looks_changeeffectby'] = { /** * Block to change graphic effect. * @this Blockly.Block */ init: function () { this.jsonInit({ message0: Blockly.Msg.LOOKS_CHANGEEFFECTBY, args0: [ { type: 'field_dropdown', name: 'EFFECT', options: [ [Blockly.Msg.LOOKS_EFFECT_COLOR, 'COLOR'], [Blockly.Msg.LOOKS_EFFECT_FISHEYE, 'FISHEYE'], [Blockly.Msg.LOOKS_EFFECT_WHIRL, 'WHIRL'], [Blockly.Msg.LOOKS_EFFECT_PIXELATE, 'PIXELATE'], [Blockly.Msg.LOOKS_EFFECT_MOSAIC, 'MOSAIC'], [Blockly.Msg.LOOKS_EFFECT_BRIGHTNESS, 'BRIGHTNESS'], [Blockly.Msg.LOOKS_EFFECT_GHOST, 'GHOST'] ] }, { type: 'input_value', name: 'CHANGE' } ], category: Blockly.Categories.looks, extensions: ['colours_looks', 'shape_statement'] }); } }; Blockly.Blocks['looks_seteffectto'] = { /** * Block to set graphic effect. * @this Blockly.Block */ init: function () { this.jsonInit({ message0: Blockly.Msg.LOOKS_SETEFFECTTO, args0: [ { type: 'field_dropdown', name: 'EFFECT', options: [ [Blockly.Msg.LOOKS_EFFECT_COLOR, 'COLOR'], [Blockly.Msg.LOOKS_EFFECT_FISHEYE, 'FISHEYE'], [Blockly.Msg.LOOKS_EFFECT_WHIRL, 'WHIRL'], [Blockly.Msg.LOOKS_EFFECT_PIXELATE, 'PIXELATE'], [Blockly.Msg.LOOKS_EFFECT_MOSAIC, 'MOSAIC'], [Blockly.Msg.LOOKS_EFFECT_BRIGHTNESS, 'BRIGHTNESS'], [Blockly.Msg.LOOKS_EFFECT_GHOST, 'GHOST'] ] }, { type: 'input_value', name: 'VALUE' } ], category: Blockly.Categories.looks, extensions: ['colours_looks', 'shape_statement'] }); } }; Blockly.Blocks['looks_cleargraphiceffects'] = { /** * Block to clear graphic effects. * @this Blockly.Block */ init: function () { this.jsonInit({ message0: Blockly.Msg.LOOKS_CLEARGRAPHICEFFECTS, category: Blockly.Categories.looks, extensions: ['colours_looks', 'shape_statement'] }); } }; Blockly.Blocks['looks_changesizeby'] = { /** * Block to change size * @this Blockly.Block */ init: function () { this.jsonInit({ message0: Blockly.Msg.LOOKS_CHANGESIZEBY, args0: [ { type: 'input_value', name: 'CHANGE' } ], category: Blockly.Categories.looks, extensions: ['colours_looks', 'shape_statement'] }); } }; Blockly.Blocks['looks_setsizeto'] = { /** * Block to set size * @this Blockly.Block */ init: function () { this.jsonInit({ message0: Blockly.Msg.LOOKS_SETSIZETO, args0: [ { type: 'input_value', name: 'SIZE' } ], category: Blockly.Categories.looks, extensions: ['colours_looks', 'shape_statement'] }); } }; Blockly.Blocks['looks_size'] = { /** * Block to report size * @this Blockly.Block */ init: function () { this.jsonInit({ message0: Blockly.Msg.LOOKS_SIZE, category: Blockly.Categories.looks, checkboxInFlyout: true, extensions: ['colours_looks', 'output_number'] }); } }; Blockly.Blocks['looks_changestretchby'] = { /** * Block to change stretch. Does not actually do anything. This is an * obsolete block that is implemented for compatibility with Scratch 1.4 * projects as well as 2.0 projects that still have the block. * The "stretch" blocks were introduced in very early versions of Scratch, * but their functionality was removed shortly later. They still appeared * correctly up until (and including) Scratch 1.4 - as "change stretch by" * and "set stretch to" - but were removed altogether in Scratch 2.0, and * displayed as red "undefined" blocks. Some Scratch projects still contain * these blocks, however, and they don't open in 3.0 unless the blocks * actually exist (though they still don't funcitonally do anything). * @this Blockly.Block */ init: function () { this.jsonInit({ message0: Blockly.Msg.LOOKS_CHANGESTRETCHBY, args0: [ { type: 'input_value', name: 'CHANGE' } ], category: Blockly.Categories.looks, extensions: ['colours_looks', 'shape_statement'] }); } }; Blockly.Blocks['looks_setstretchto'] = { /** * Block to set stretch. Does not actually do anything. This is an obsolete * block that is implemented for compatibility with Scratch 1.4 projects * (see looks_changestretchby). * @this Blockly.Block */ init: function () { this.jsonInit({ message0: Blockly.Msg.LOOKS_SETSTRETCHTO, args0: [ { type: 'input_value', name: 'STRETCH' } ], category: Blockly.Categories.looks, extensions: ['colours_looks', 'shape_statement'] }); } }; Blockly.Blocks['looks_costume'] = { /** * Costumes drop-down menu. * @this Blockly.Block */ init: function () { this.jsonInit({ message0: '%1', args0: [ { type: 'field_dropdown', name: 'COSTUME', options: [ ['costume1', 'COSTUME1'], ['costume2', 'COSTUME2'] ] } ], colour: Blockly.Colours.looks.secondary, colourSecondary: Blockly.Colours.looks.secondary, colourTertiary: Blockly.Colours.looks.tertiary, extensions: ['output_string'] }); } }; Blockly.Blocks['looks_switchcostumeto'] = { /** * Block to switch the sprite's costume to the selected one. * @this Blockly.Block */ init: function () { this.jsonInit({ message0: Blockly.Msg.LOOKS_SWITCHCOSTUMETO, args0: [ { type: 'input_value', name: 'COSTUME' } ], category: Blockly.Categories.looks, extensions: ['colours_looks', 'shape_statement'] }); } }; Blockly.Blocks['looks_nextcostume'] = { /** * Block to switch the sprite's costume to the next one. * @this Blockly.Block */ init: function () { this.jsonInit({ message0: Blockly.Msg.LOOKS_NEXTCOSTUME, category: Blockly.Categories.looks, extensions: ['colours_looks', 'shape_statement'] }); } }; Blockly.Blocks['looks_switchbackdropto'] = { /** * Block to switch the backdrop to the selected one. * @this Blockly.Block */ init: function () { this.jsonInit({ message0: Blockly.Msg.LOOKS_SWITCHBACKDROPTO, args0: [ { type: 'input_value', name: 'BACKDROP' } ], category: Blockly.Categories.looks, extensions: ['colours_looks', 'shape_statement'] }); } }; Blockly.Blocks['looks_backdrops'] = { /** * Backdrop list * @this Blockly.Block */ init: function () { this.jsonInit({ id: 'looks_backdrops', message0: '%1', args0: [ { type: 'field_dropdown', name: 'BACKDROP', options: [['backdrop1', 'BACKDROP1']] } ], colour: Blockly.Colours.looks.secondary, colourSecondary: Blockly.Colours.looks.secondary, colourTertiary: Blockly.Colours.looks.tertiary, extensions: ['output_string'] }); } }; Blockly.Blocks['looks_gotofrontback'] = { /** * "Go to front/back" Block. * @this Blockly.Block */ init: function () { this.jsonInit({ message0: Blockly.Msg.LOOKS_GOTOFRONTBACK, args0: [ { type: 'field_dropdown', name: 'FRONT_BACK', options: [ [Blockly.Msg.LOOKS_GOTOFRONTBACK_FRONT, 'front'], [Blockly.Msg.LOOKS_GOTOFRONTBACK_BACK, 'back'] ] } ], category: Blockly.Categories.looks, extensions: ['colours_looks', 'shape_statement'] }); } }; Blockly.Blocks['looks_goforwardbackwardlayers'] = { /** * "Go forward/backward [Number] Layers" Block. * @this Blockly.Block */ init: function () { this.jsonInit({ message0: Blockly.Msg.LOOKS_GOFORWARDBACKWARDLAYERS, args0: [ { type: 'field_dropdown', name: 'FORWARD_BACKWARD', options: [ [Blockly.Msg.LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD, 'forward'], [Blockly.Msg.LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD, 'backward'] ] }, { type: 'input_value', name: 'NUM' } ], category: Blockly.Categories.looks, extensions: ['colours_looks', 'shape_statement'] }); } }; Blockly.Blocks['looks_backdropnumbername'] = { /** * Block to report backdrop's number or name * @this Blockly.Block */ init: function () { this.jsonInit({ message0: Blockly.Msg.LOOKS_BACKDROPNUMBERNAME, args0: [ { type: 'field_dropdown', name: 'NUMBER_NAME', options: [ [Blockly.Msg.LOOKS_NUMBERNAME_NUMBER, 'number'], [Blockly.Msg.LOOKS_NUMBERNAME_NAME, 'name'] ] } ], category: Blockly.Categories.looks, checkboxInFlyout: true, extensions: ['colours_looks', 'output_number'] }); } }; Blockly.Blocks['looks_costumenumbername'] = { /** * Block to report costume's number or name * @this Blockly.Block */ init: function () { this.jsonInit({ message0: Blockly.Msg.LOOKS_COSTUMENUMBERNAME, args0: [ { type: 'field_dropdown', name: 'NUMBER_NAME', options: [ [Blockly.Msg.LOOKS_NUMBERNAME_NUMBER, 'number'], [Blockly.Msg.LOOKS_NUMBERNAME_NAME, 'name'] ] } ], category: Blockly.Categories.looks, checkboxInFlyout: true, extensions: ['colours_looks', 'output_number'] }); } }; Blockly.Blocks['looks_switchbackdroptoandwait'] = { /** * Block to switch the backdrop to the selected one and wait. * @this Blockly.Block */ init: function () { this.jsonInit({ message0: Blockly.Msg.LOOKS_SWITCHBACKDROPTOANDWAIT, args0: [ { type: 'input_value', name: 'BACKDROP' } ], category: Blockly.Categories.looks, extensions: ['colours_looks', 'shape_statement'] }); } }; Blockly.Blocks['looks_nextbackdrop'] = { /** * Block to switch the backdrop to the next one. * @this Blockly.Block */ init: function () { this.jsonInit({ message0: Blockly.Msg.LOOKS_NEXTBACKDROP_BLOCK, category: Blockly.Categories.looks, extensions: ['colours_looks', 'shape_statement'] }); } };