54 lines
No EOL
2.1 KiB
JavaScript
54 lines
No EOL
2.1 KiB
JavaScript
(function () {
|
|
print("starting ferris wheel script");
|
|
var UPDATE_POSITION_INTERVAL_MS=1000/90;
|
|
|
|
var ridingFerrisWheel = false;
|
|
var interval;
|
|
|
|
var updateToggle = function(){
|
|
if (ridingFerrisWheel){
|
|
ridingFerrisWheel = false;
|
|
} else {
|
|
ridingFerrisWheel = true;
|
|
}
|
|
};
|
|
|
|
this.enterEntity=function(entityID){
|
|
print("entered ferris wheel zone");
|
|
var bench;
|
|
if (ridingFerrisWheel) {
|
|
print("exiting ferris wheel");
|
|
Entities.editEntity(bench,{visible:true});
|
|
Script.clearInterval(interval);
|
|
updateToggle();
|
|
} else {
|
|
print("entering ferris wheel");
|
|
// find nearest car
|
|
var nearby = Entities.findEntities(MyAvatar.position, 5);
|
|
nearby.forEach(function(element) {
|
|
var properties = Entities.getEntityProperties(element);
|
|
if (properties.name.indexOf("Ferris Wheel Seat") !== -1) {
|
|
bench = element;
|
|
Entities.editEntity(element,{visible:false});
|
|
print("found a seat");
|
|
interval = Script.setInterval(function() {
|
|
var nextPosition = Entities.getEntityProperties(element, 'position').position;
|
|
if (Vec3.distance(MyAvatar.position, nextPosition) < 5.0) {
|
|
MyAvatar.position = nextPosition;
|
|
} else {
|
|
if (interval){
|
|
Script.clearInterval(interval);
|
|
updateToggle();
|
|
Entities.editEntity(element,{visible:true});
|
|
}
|
|
}
|
|
// MyAvatar.position = Entities.getEntityProperties(element,'position').position;
|
|
}, UPDATE_POSITION_INTERVAL_MS);
|
|
updateToggle();
|
|
return;
|
|
}
|
|
}, this);
|
|
}
|
|
|
|
};
|
|
}); |