68 lines · 2.0 KB · JavaScript
RawDownload
////  makeBlocks.js////  Created by Matti Lahtinen 4/3/2017//  Copyright 2017 High Fidelity, Inc.//////  Distributed under the Apache License, Version 2.0.//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html////  Creates multiple  "magnetic" blocks with random colors that users clones of and snap together.  (function() {    var MAX_RGB_COMPONENT_VALUE = 256 / 2; // Limit the values to half the maximum.    var MIN_COLOR_VALUE = 127;    var SIZE = 0.3;    var LIFETIME = 600;    var VERTICAL_OFFSET = -0.25;    var ROWS = 3;    var COLUMNS = 3;    // Random Pastel Generator based on Piper's script    function newColor() {        return {            red: randomPastelRGBComponent(),            green: randomPastelRGBComponent(),            blue: randomPastelRGBComponent()        };    }    // Helper functions.    function randomPastelRGBComponent() {        return Math.floor(Math.random() * MAX_RGB_COMPONENT_VALUE) + MIN_COLOR_VALUE;    }     var SCRIPT_URL = Script.resolvePath("./entity_scripts/magneticBlock.js");     var forwardVector = Quat.getForward(MyAvatar.orientation);    forwardVector.y += VERTICAL_OFFSET;    for (var x = 0; x < COLUMNS; x++) {        for (var y = 0; y < ROWS; y++) {             var forwardOffset = {                x: 0,                y: SIZE * y + SIZE,                z: SIZE * x + SIZE            };             Entities.addEntity({                type: "Box",                name: "MagneticBlock-" + y + '-' + x,                dimensions: {                    x: SIZE,                    y: SIZE,                    z: SIZE                },                grab: { grabbable: true },                cloneable: true,                cloneLifetime: LIFETIME,                cloneLimit: 9999,                position: Vec3.sum(MyAvatar.position, Vec3.sum(forwardOffset, forwardVector)),                color: newColor(),                script: SCRIPT_URL            });        }    }     Script.stop();})();