overte/examples/entityScripts/virtualBaton/batonSimpleEntityScript.js
2016-03-22 17:38:56 -07:00

96 lines
No EOL
2.4 KiB
JavaScript

(function() {
Script.include("../../libraries/virtualBaton.js");
Script.include("../../libraries/utils.js");
var _this = this;
this.startUpdate = function() {
print("EBL START UPDATE");
Entities.editEntity(_this.batonOwnerIndicator, {
visible: true
});
// Change color of box
Entities.editEntity(_this.entityID, {
color: randomColor()
});
_this.position = Entities.getEntityProperties(_this.entityID, "position").position;
_this.debugLightProperties.position = Vec3.sum(_this.position, {x: 0, y: 1, z: 0});
_this.debugLightProperties.color = randomColor();
var debugLight = Entities.addEntity(_this.debugLightProperties);
Script.setTimeout(function() {
Entities.deleteEntity(debugLight);
}, 500);
}
this.maybeClaim = function() {
print("EBL MAYBE CLAIM");
if (_this.isBatonOwner === true) {
_this.isBatonOwner = false;
}
Entities.editEntity(_this.batonOwnerIndicator, {
visible: false
});
baton.claim(_this.startUpdate, _this.maybeClaim);
}
this.unload = function() {
print("EBL UNLOAD");
baton.unload();
Entities.deleteEntity(_this.batonOwnerIndicator);
}
this.preload = function(entityID) {
print("EBL Preload!!");
_this.entityID = entityID;
_this.setupDebugEntities();
baton = virtualBaton({
batonName: "batonSimpleEntityScript:" + _this.entityID
});
_this.isBatonOwner = false;
_this.maybeClaim();
}
this.setupDebugEntities = function() {
_this.batonOwnerIndicator = Entities.addEntity({
type: "Box",
color: {
red: 200,
green: 10,
blue: 200
},
position: Vec3.sum(MyAvatar.position, {
x: 0,
y: 1,
z: 0
}),
dimensions: {
x: 0.5,
y: 1,
z: 0
},
parentID: MyAvatar.sessionUUID,
visible: false
});
}
_this.debugLightProperties = {
type: "Light",
name: "hifi-baton-light",
dimensions: {
x: 10,
y: 10,
z: 10
},
falloffRadius: 3,
intensity: 20,
}
});