Source: zowi/advanced/zowiMovements.js

/*global require */
'use strict';

var _ = require('lodash'),
    utils = require('./../../build-utils'),
    StatementBloq = require('./../../statementBloq');

/**
 * Bloq name: zowiMovements
 *
 * Bloq type: statement
 *
 * Description: It makes Zowi execute a specific movement, selectable
 *              from a first drop-down, in a concrete direction,
 *              selectable from a second drop-down, the given number 
 *              of times at a determined velocity, selectable from a
 *              third drop-down.
 *
 * Return type: none
 */

var zowiMovements = _.merge(_.clone(StatementBloq, true), {

    name: 'zowiMovements',
    bloqClass: 'bloq-zowi-movements',
    content: [
        [{
            alias: 'text',
            value: 'bloq-zowi-movements'
        }, {
            id: 'MOVEMENT',
            alias: 'staticDropdown',
            options: [{
                label: 'bloq-zowi-movements-walk',
                value: 'walk'
            }, {
                label: 'bloq-zowi-movements-turn',
                value: 'turn'
            }, {
                label: 'bloq-zowi-movements-shakeLeg',
                value: 'shakeLeg'
            }, {
                label: 'bloq-zowi-movements-bend',
                value: 'bend'
            }]
        }, {
            id: 'DIR',
            alias: 'staticDropdown',
            options: [{
                label: 'bloq-zowi-movements-forward',
                value: 'FORWARD'
            }, {
                label: 'bloq-zowi-movements-backward',
                value: 'BACKWARD'
            }, {
                label: 'bloq-zowi-movements-left',
                value: 'LEFT'
            }, {
                label: 'bloq-zowi-movements-right',
                value: 'RIGHT'
            }]
        }, {
            id: 'STEPS',
            alias: 'numberInput',
            value: 4
        }, {
            alias: 'text',
            value: 'bloq-zowi-movements-speed'
        }, {
            id: 'SPEED',
            alias: 'staticDropdown',
            options: [{
                label: 'bloq-zowi-movements-speed-small',
                value: 'LOW_SPEED'
            }, {
                label: 'bloq-zowi-movements-speed-medium',
                value: 'MEDIUM_SPEED'
            }, {
                label: 'bloq-zowi-movements-speed-high',
                value: 'HIGH_SPEED'
            }]
        }]
    ],
    code: 'zowi.{MOVEMENT}({STEPS},{SPEED},{DIR});'
});
utils.generateBloqInputConnectors(zowiMovements);

module.exports = zowiMovements;