(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); } }; });