Needs a lot of cleanup. Data has been de-duplicated, and where identical copies existed, one of them has been replaced with a symlink. Some files have been excluded, such as binaries, installers and debug dumps. Some of that may still be present.
97 lines
4.1 KiB
JavaScript
97 lines
4.1 KiB
JavaScript
|
|
(function () {
|
|
var spawnPoint = Vec3.sum(MyAvatar.position, Vec3.multiply(3, Quat.getFront(Camera.getOrientation())));
|
|
|
|
// constructor
|
|
function TestBox() {
|
|
this.entity = Entities.addEntity({ type: "Box",
|
|
position: spawnPoint,
|
|
dimentions: { x: 1, y: 1, z: 1 },
|
|
color: { red: 255, green: 255, blue: 255 },
|
|
gravity: { x: 0, y: 0, z: 0 },
|
|
visible: true,
|
|
locked: false,
|
|
lifetime: 3000 });
|
|
var self = this;
|
|
this.timer = Script.setInterval(function () {
|
|
var colorProp = { color: { red: Math.random() * 255,
|
|
green: Math.random() * 255,
|
|
blue: Math.random() * 255 } };
|
|
Entities.editEntity(self.entity, colorProp);
|
|
}, 1000);
|
|
}
|
|
|
|
TestBox.prototype.Destroy = function () {
|
|
Script.clearInterval(this.timer);
|
|
Entities.editEntity(this.entity, { locked: false });
|
|
Entities.deleteEntity(this.entity);
|
|
}
|
|
|
|
// constructor
|
|
function TestFx(color, emitDirection, emitRate, emitStrength, blinkRate) {
|
|
var animationSettings = JSON.stringify({ fps: 30,
|
|
frameIndex: 0,
|
|
running: true,
|
|
firstFrame: 0,
|
|
lastFrame: 30,
|
|
loop: true });
|
|
|
|
this.entity = Entities.addEntity({ type: "ParticleEffect",
|
|
animationSettings: animationSettings,
|
|
position: spawnPoint,
|
|
dimensions: {x: 2, y: 2, z: 2},
|
|
emitVelocity: {x: 0, y: 0.001, z: 0},
|
|
emitRate: 25,
|
|
particleRadius: 0.9,
|
|
velocitySpread: {x: 0.04, y: 0.04, z: 0.04},
|
|
accelerationSpread: {x: 0.04, y: 0.04, z: 0.04},
|
|
emitAcceleration: {x: 0, y: 0.15, z: 0},
|
|
textures: "https://hifi-public.s3.amazonaws.com/alan/Particles/Particle-Sprite-Sparkle-Smoke-1.png",
|
|
color: color,
|
|
lifespan: 10.0,
|
|
visible: true,
|
|
locked: false });
|
|
|
|
this.isPlaying = true;
|
|
|
|
var self = this;
|
|
this.timer = Script.setInterval(function () {
|
|
// flip is playing state
|
|
self.isPlaying = !self.isPlaying;
|
|
var animProp = { animationIsPlaying: self.isPlaying };
|
|
Entities.editEntity(self.entity, animProp);
|
|
}, (1 / blinkRate) * 1000);
|
|
}
|
|
|
|
TestFx.prototype.Destroy = function () {
|
|
Script.clearInterval(this.timer);
|
|
Entities.editEntity(this.entity, { locked: false });
|
|
Entities.deleteEntity(this.entity);
|
|
}
|
|
|
|
var objs = [];
|
|
function Init() {
|
|
objs.push(new TestBox());
|
|
objs.push(new TestFx({ red: 255, green: 245, blue: 215 },
|
|
{ x: 0.5, y: 0.0, z: 0.0 },
|
|
1000, 3, 1));
|
|
objs.push(new TestFx({ red: 255, green: 205, blue: 225 },
|
|
{ x: 0, y: 1, z: 0 },
|
|
1000, 5, 0.5));
|
|
objs.push(new TestFx({ red: 255, green: 225, blue: 225 },
|
|
{ x: -0.5, y: 1, z: 0 },
|
|
1000, 3, 1));
|
|
}
|
|
|
|
function ShutDown() {
|
|
var i, len = objs.length;
|
|
for (i = 0; i < len; i++) {
|
|
objs[i].Destroy();
|
|
}
|
|
objs = [];
|
|
}
|
|
|
|
Init();
|
|
Script.scriptEnding.connect(ShutDown);
|
|
})();
|
|
|