overte/tutorial/lighter/createButaneLighter.js
2016-10-27 14:58:20 -07:00

220 lines
6.4 KiB
JavaScript

//
// Created by Thijs Wenker on September 14, 2016.
// Copyright 2016 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
//
const TEST_MODE = false;
const SCRIPT_URL = 'atp:/tutorial/lighter/butaneLighter.js';
//Creates an entity and returns a mixed object of the creation properties and the assigned entityID
var createEntity = function(entityProperties, parent) {
if (parent.rotation !== undefined) {
if (entityProperties.rotation !== undefined) {
entityProperties.rotation = Quat.multiply(parent.rotation, entityProperties.rotation);
} else {
entityProperties.rotation = parent.rotation;
}
}
if (parent.position !== undefined) {
var localPosition = (parent.rotation !== undefined) ? Vec3.multiplyQbyV(parent.rotation, entityProperties.position) : entityProperties.position;
entityProperties.position = Vec3.sum(localPosition, parent.position)
}
if (parent.id !== undefined) {
entityProperties.parentID = parent.id;
}
entityProperties.id = Entities.addEntity(entityProperties);
return entityProperties;
};
createButaneLighter = function(transform) {
var entityProperties = {
collisionsWillMove: true,
dimensions: {
x: 0.025599999353289604,
y: 0.057399999350309372,
z: 0.37419998645782471
},
dynamic: true,
gravity: {
x: 0,
y: -9.8,
z: 0
},
velocity: {
x: 0,
y: -0.01,
z: 0
},
modelURL: 'atp:/tutorial_models/lighterIceCreamSandwich.fbx',
name: 'BrutaneLighter',
shapeType: 'simple-compound',
type: 'Model',
userData: JSON.stringify({
"tag": "equip-temporary",
"grabbableKey": {
"invertSolidWhileHeld": true
},
"wearable": {
"joints": {
"RightHand": [
{
"x": 0.049671292304992676,
"y": 0.09825992584228516,
"z": 0.03760027885437012
},
{
"x": 0.6562752723693848,
"y": 0.27598991990089417,
"z": 0.6638742685317993,
"w": -0.22890058159828186
}
],
"LeftHand": [
{
"x": -0.028073370456695557,
"y": 0.09609812498092651,
"z": 0.039550721645355225
},
{
"x": -0.6697965264320374,
"y": 0.22050897777080536,
"z": 0.6544681191444397,
"w": 0.27283111214637756
}
]
}
}
}),
script: SCRIPT_URL
};
return createEntity(entityProperties, transform);
}
function createFireParticle(butaneLighter) {
var entityProperties = {
userData: JSON.stringify({ tag: "equip-temporary" }),
accelerationSpread: {
x: 0.1,
y: 0,
z: 0.1
},
alpha: 0.039999999105930328,
alphaFinish: 0.039999999105930328,
alphaStart: 0.039999999105930328,
azimuthFinish: 0.039999999105930328,
azimuthStart: 0,
dimensions: {
x: 0.49194091558456421,
y: 0.49194091558456421,
z: 0.49194091558456421
},
emitAcceleration: {
x: 0,
y: 0,
z: 0
},
emitOrientation: {
w: 1,
x: -1.52587890625e-05,
y: -1.52587890625e-05,
z: -1.52587890625e-05
},
emitRate: 770,
emitSpeed: 0.014000000432133675,
isEmitting: false,
lifespan: 0.37000000476837158,
maxParticles: 820,
name: 'lighter_particle',
particleRadius: 0.0027000000700354576,
position: {
x: -0.00044769048690795898,
y: 0.016354814171791077,
z: 0.19217036664485931
},
radiusFinish: 0.0027000000700354576,
radiusSpread: 3,
radiusStart: 0.0027000000700354576,
rotation: {
w: 1,
x: -0.0001678466796875,
y: -1.52587890625e-05,
z: -1.52587890625e-05
},
speedSpread: 0.56999999284744263,
textures: 'atp:/textures/fire3.png',
type: 'ParticleEffect',
"color": {
"red": 255,
"green": 255,
"blue": 255
},
"isEmitting": 0,
"maxParticles": 820,
"lifespan": 0.28,
"emitRate": 1100,
"emitSpeed": 0.007,
"speedSpread": 0.5699999928474426,
"emitOrientation": {
"x": -0.0000152587890625,
"y": -0.0000152587890625,
"z": -0.0000152587890625,
"w": 1
},
"emitDimensions": {
"x": 0,
"y": 0,
"z": 0
},
"polarStart": 0,
"polarFinish": 0,
"azimuthStart": 0,
"azimuthFinish": 0.03999999910593033,
"emitAcceleration": {
"x": 0,
"y": 0,
"z": 0
},
"accelerationSpread": {
"x": 0,
"y": 0,
"z": 0
},
"particleRadius": 0.0037,
"radiusSpread": 3,
"radiusStart": 0.008,
"radiusFinish": 0.0004,
"colorSpread": {
"red": 0,
"green": 0,
"blue": 0
},
"colorStart": {
"red": 255,
"green": 255,
"blue": 255
},
"colorFinish": {
"red": 255,
"green": 255,
"blue": 255
},
"alpha": 0.03999999910593033,
"alphaSpread": 0,
"alphaStart": 0.141,
"alphaFinish": 0.02,
"emitterShouldTrail": 0,
"textures": "atp:/textures/fire3.png"
};
return createEntity(entityProperties, butaneLighter);
}
doCreateButaneLighter = function(transform) {
var butaneLighter = createButaneLighter(transform);
createFireParticle(butaneLighter);
return butaneLighter;
}