mirror of
https://github.com/lubosz/overte.git
synced 2025-04-06 01:02:29 +02:00
68 lines
2 KiB
JavaScript
68 lines
2 KiB
JavaScript
//
|
|
// 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();
|
|
})();
|