function GravityDanceBall(){}; var self; GravityDanceBall.prototype = { myUUID: null, attracted: false, force: false, timer: 0, preload: function(entityID){ self = this; self.timer = 0; self.myUUID = entityID; print("Script Load Complete"); }, update: function(dt){ if(self.attracted){ // Double safe guard to avoid someracing issues self.timer += dt; if(self.timer> 0.0333333333333333){ self.timer = 0; try{ var entity = Entities.getEntityProperties(self.myUUID); // Up should be the Avatars Reverse FWD: We want the feet point downsssssssssssd var up = Quat.getUp(entity.rotation); //lookAt(const glm::vec3& eye, const glm::vec3& center, const glm::vec3& up) //LookAt( Orientation of Current Object, Orientation of Target, Directionality) MyAvatar.orientation = Quat.multiply(Quat.lookAt(MyAvatar.position, entity.position, up), Quat.fromVec3Degrees({x:90,y:0,z:0})); }catch(e){ print("Failed to sustain update, reset " + e); Script.update.disconnect(self.update); self.attracted = false; } } } }, clickDownOnEntity: function (entityId, mouseEvent){ if (mouseEvent.isPrimaryButton) { if(self.attracted){ self.attracted = false; // lets just flip this before to cancel it. print("Unattract"); try{ Script.update.disconnect(self.update); // Dettach. MyAvatar.setParentID(null); }catch(e){ print("Disconnect Event encountered an error: " + e) }finally{ // Cant be 0, so. MyAvatar.orientation = Quat.fromVec3Degrees({x:0,y:0,z:0}); // Thrust Avatar Down (relatively) MyAvatar.addThrust({x:0, y: -1000, z: 0}); } }else{ self.attracted = true; // lets just flip this before to cancel it. print("Attract"); MyAvatar.setParentID(self.myUUID); try{ print("Connecting"); Script.update.connect(self.update); // Thrust Avatar Down (relatively) print("Connected"); MyAvatar.addThrust({x:0,y: -100000, z: 0}); print("Force Push"); }catch(e){ print("Connect Event encountered an error: " + e) MyAvatar.orientation = Quat.fromVec3Degrees({x:0,y:0,z:0}); self.attracted = false; // lets just flip this before to cancel it. } } } } }; GravityDanceBallObject = function(){ return new GravityDanceBall()}