mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 17:17:58 +02:00
clean up grab.js. provide a way to delete old tablets that got saved into Settings on exit
This commit is contained in:
parent
99de46cb27
commit
41ddfbfd27
3 changed files with 55 additions and 95 deletions
|
@ -14,9 +14,12 @@
|
||||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
//
|
//
|
||||||
|
|
||||||
|
/* global MyAvatar, Entities, Script, Camera, Vec3, Reticle, Overlays, getEntityCustomData, Messages, Quat, Controller */
|
||||||
|
|
||||||
|
|
||||||
(function() { // BEGIN LOCAL_SCOPE
|
(function() { // BEGIN LOCAL_SCOPE
|
||||||
|
|
||||||
Script.include("../libraries/utils.js");
|
Script.include("/~/system/libraries/utils.js");
|
||||||
var MAX_SOLID_ANGLE = 0.01; // objects that appear smaller than this can't be grabbed
|
var MAX_SOLID_ANGLE = 0.01; // objects that appear smaller than this can't be grabbed
|
||||||
|
|
||||||
var ZERO_VEC3 = {
|
var ZERO_VEC3 = {
|
||||||
|
@ -31,11 +34,6 @@ var IDENTITY_QUAT = {
|
||||||
w: 0
|
w: 0
|
||||||
};
|
};
|
||||||
var GRABBABLE_DATA_KEY = "grabbableKey"; // shared with handControllerGrab.js
|
var GRABBABLE_DATA_KEY = "grabbableKey"; // shared with handControllerGrab.js
|
||||||
var GRAB_USER_DATA_KEY = "grabKey"; // shared with handControllerGrab.js
|
|
||||||
|
|
||||||
var MSECS_PER_SEC = 1000.0;
|
|
||||||
var HEART_BEAT_INTERVAL = 5 * MSECS_PER_SEC;
|
|
||||||
var HEART_BEAT_TIMEOUT = 15 * MSECS_PER_SEC;
|
|
||||||
|
|
||||||
var DEFAULT_GRABBABLE_DATA = {
|
var DEFAULT_GRABBABLE_DATA = {
|
||||||
grabbable: true,
|
grabbable: true,
|
||||||
|
@ -74,7 +72,7 @@ function entityIsGrabbedByOther(entityID) {
|
||||||
for (var actionIndex = 0; actionIndex < actionIDs.length; actionIndex++) {
|
for (var actionIndex = 0; actionIndex < actionIDs.length; actionIndex++) {
|
||||||
var actionID = actionIDs[actionIndex];
|
var actionID = actionIDs[actionIndex];
|
||||||
var actionArguments = Entities.getActionArguments(entityID, actionID);
|
var actionArguments = Entities.getActionArguments(entityID, actionID);
|
||||||
var tag = actionArguments["tag"];
|
var tag = actionArguments.tag;
|
||||||
if (tag == getTag()) {
|
if (tag == getTag()) {
|
||||||
// we see a grab-*uuid* shaped tag, but it's our tag, so that's okay.
|
// we see a grab-*uuid* shaped tag, but it's our tag, so that's okay.
|
||||||
continue;
|
continue;
|
||||||
|
@ -155,14 +153,14 @@ Mouse.prototype.startDrag = function(position) {
|
||||||
y: position.y
|
y: position.y
|
||||||
};
|
};
|
||||||
this.startRotateDrag();
|
this.startRotateDrag();
|
||||||
}
|
};
|
||||||
|
|
||||||
Mouse.prototype.updateDrag = function(position) {
|
Mouse.prototype.updateDrag = function(position) {
|
||||||
this.current = {
|
this.current = {
|
||||||
x: position.x,
|
x: position.x,
|
||||||
y: position.y
|
y: position.y
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
|
|
||||||
Mouse.prototype.startRotateDrag = function() {
|
Mouse.prototype.startRotateDrag = function() {
|
||||||
this.previous = {
|
this.previous = {
|
||||||
|
@ -174,7 +172,7 @@ Mouse.prototype.startRotateDrag = function() {
|
||||||
y: this.current.y
|
y: this.current.y
|
||||||
};
|
};
|
||||||
this.cursorRestore = Reticle.getPosition();
|
this.cursorRestore = Reticle.getPosition();
|
||||||
}
|
};
|
||||||
|
|
||||||
Mouse.prototype.getDrag = function() {
|
Mouse.prototype.getDrag = function() {
|
||||||
var delta = {
|
var delta = {
|
||||||
|
@ -186,7 +184,7 @@ Mouse.prototype.getDrag = function() {
|
||||||
y: this.current.y
|
y: this.current.y
|
||||||
};
|
};
|
||||||
return delta;
|
return delta;
|
||||||
}
|
};
|
||||||
|
|
||||||
Mouse.prototype.restoreRotateCursor = function() {
|
Mouse.prototype.restoreRotateCursor = function() {
|
||||||
Reticle.setPosition(this.cursorRestore);
|
Reticle.setPosition(this.cursorRestore);
|
||||||
|
@ -194,7 +192,7 @@ Mouse.prototype.restoreRotateCursor = function() {
|
||||||
x: this.rotateStart.x,
|
x: this.rotateStart.x,
|
||||||
y: this.rotateStart.y
|
y: this.rotateStart.y
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
|
|
||||||
var mouse = new Mouse();
|
var mouse = new Mouse();
|
||||||
|
|
||||||
|
@ -218,13 +216,13 @@ Beacon.prototype.enable = function() {
|
||||||
Overlays.editOverlay(this.overlayID, {
|
Overlays.editOverlay(this.overlayID, {
|
||||||
visible: true
|
visible: true
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
Beacon.prototype.disable = function() {
|
Beacon.prototype.disable = function() {
|
||||||
Overlays.editOverlay(this.overlayID, {
|
Overlays.editOverlay(this.overlayID, {
|
||||||
visible: false
|
visible: false
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
Beacon.prototype.updatePosition = function(position) {
|
Beacon.prototype.updatePosition = function(position) {
|
||||||
Overlays.editOverlay(this.overlayID, {
|
Overlays.editOverlay(this.overlayID, {
|
||||||
|
@ -240,7 +238,7 @@ Beacon.prototype.updatePosition = function(position) {
|
||||||
z: position.z
|
z: position.z
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
var beacon = new Beacon();
|
var beacon = new Beacon();
|
||||||
|
|
||||||
|
@ -262,7 +260,7 @@ function Grabber() {
|
||||||
this.planeNormal = ZERO_VEC3;
|
this.planeNormal = ZERO_VEC3;
|
||||||
|
|
||||||
// maxDistance is a function of the size of the object.
|
// maxDistance is a function of the size of the object.
|
||||||
this.maxDistance;
|
this.maxDistance = 0;
|
||||||
|
|
||||||
// mode defines the degrees of freedom of the grab target positions
|
// mode defines the degrees of freedom of the grab target positions
|
||||||
// relative to startPosition options include:
|
// relative to startPosition options include:
|
||||||
|
@ -281,8 +279,8 @@ function Grabber() {
|
||||||
z: 0
|
z: 0
|
||||||
};
|
};
|
||||||
|
|
||||||
this.targetPosition;
|
this.targetPosition = null;
|
||||||
this.targetRotation;
|
this.targetRotation = null;
|
||||||
|
|
||||||
this.liftKey = false; // SHIFT
|
this.liftKey = false; // SHIFT
|
||||||
this.rotateKey = false; // CONTROL
|
this.rotateKey = false; // CONTROL
|
||||||
|
@ -318,7 +316,7 @@ Grabber.prototype.computeNewGrabPlane = function() {
|
||||||
var xzOffset = Vec3.subtract(this.pointOnPlane, Camera.getPosition());
|
var xzOffset = Vec3.subtract(this.pointOnPlane, Camera.getPosition());
|
||||||
xzOffset.y = 0;
|
xzOffset.y = 0;
|
||||||
this.xzDistanceToGrab = Vec3.length(xzOffset);
|
this.xzDistanceToGrab = Vec3.length(xzOffset);
|
||||||
}
|
};
|
||||||
|
|
||||||
Grabber.prototype.pressEvent = function(event) {
|
Grabber.prototype.pressEvent = function(event) {
|
||||||
if (!enabled) {
|
if (!enabled) {
|
||||||
|
@ -353,10 +351,8 @@ Grabber.prototype.pressEvent = function(event) {
|
||||||
|
|
||||||
mouse.startDrag(event);
|
mouse.startDrag(event);
|
||||||
|
|
||||||
this.lastHeartBeat = 0;
|
|
||||||
|
|
||||||
var clickedEntity = pickResults.entityID;
|
var clickedEntity = pickResults.entityID;
|
||||||
var entityProperties = Entities.getEntityProperties(clickedEntity)
|
var entityProperties = Entities.getEntityProperties(clickedEntity);
|
||||||
this.startPosition = entityProperties.position;
|
this.startPosition = entityProperties.position;
|
||||||
this.lastRotation = entityProperties.rotation;
|
this.lastRotation = entityProperties.rotation;
|
||||||
var cameraPosition = Camera.getPosition();
|
var cameraPosition = Camera.getPosition();
|
||||||
|
@ -369,7 +365,7 @@ Grabber.prototype.pressEvent = function(event) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.activateEntity(clickedEntity, entityProperties);
|
// this.activateEntity(clickedEntity, entityProperties);
|
||||||
this.isGrabbing = true;
|
this.isGrabbing = true;
|
||||||
|
|
||||||
this.entityID = clickedEntity;
|
this.entityID = clickedEntity;
|
||||||
|
@ -405,10 +401,9 @@ Grabber.prototype.pressEvent = function(event) {
|
||||||
grabbedEntity: this.entityID
|
grabbedEntity: this.entityID
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|
||||||
// TODO: play sounds again when we aren't leaking AudioInjector threads
|
// TODO: play sounds again when we aren't leaking AudioInjector threads
|
||||||
//Audio.playSound(grabSound, { position: entityProperties.position, volume: VOLUME });
|
//Audio.playSound(grabSound, { position: entityProperties.position, volume: VOLUME });
|
||||||
}
|
};
|
||||||
|
|
||||||
Grabber.prototype.releaseEvent = function(event) {
|
Grabber.prototype.releaseEvent = function(event) {
|
||||||
if (event.isLeftButton!==true ||event.isRightButton===true || event.isMiddleButton===true) {
|
if (event.isLeftButton!==true ||event.isRightButton===true || event.isMiddleButton===true) {
|
||||||
|
@ -416,9 +411,11 @@ Grabber.prototype.releaseEvent = function(event) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.isGrabbing) {
|
if (this.isGrabbing) {
|
||||||
this.deactivateEntity(this.entityID);
|
// this.deactivateEntity(this.entityID);
|
||||||
this.isGrabbing = false
|
this.isGrabbing = false;
|
||||||
Entities.deleteAction(this.entityID, this.actionID);
|
if (this.actionID) {
|
||||||
|
Entities.deleteAction(this.entityID, this.actionID);
|
||||||
|
}
|
||||||
this.actionID = null;
|
this.actionID = null;
|
||||||
|
|
||||||
beacon.disable();
|
beacon.disable();
|
||||||
|
@ -432,32 +429,17 @@ Grabber.prototype.releaseEvent = function(event) {
|
||||||
joint: "mouse"
|
joint: "mouse"
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|
||||||
// TODO: play sounds again when we aren't leaking AudioInjector threads
|
// TODO: play sounds again when we aren't leaking AudioInjector threads
|
||||||
//Audio.playSound(releaseSound, { position: entityProperties.position, volume: VOLUME });
|
//Audio.playSound(releaseSound, { position: entityProperties.position, volume: VOLUME });
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Grabber.prototype.heartBeat = function(entityID) {
|
|
||||||
var now = Date.now();
|
|
||||||
if (now - this.lastHeartBeat > HEART_BEAT_INTERVAL) {
|
|
||||||
var data = getEntityCustomData(GRAB_USER_DATA_KEY, entityID, {});
|
|
||||||
data["heartBeat"] = now;
|
|
||||||
setEntityCustomData(GRAB_USER_DATA_KEY, entityID, data);
|
|
||||||
this.lastHeartBeat = now;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
Grabber.prototype.moveEvent = function(event) {
|
Grabber.prototype.moveEvent = function(event) {
|
||||||
if (!this.isGrabbing) {
|
if (!this.isGrabbing) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mouse.updateDrag(event);
|
mouse.updateDrag(event);
|
||||||
|
|
||||||
this.heartBeat(this.entityID);
|
|
||||||
|
|
||||||
// see if something added/restored gravity
|
// see if something added/restored gravity
|
||||||
var entityProperties = Entities.getEntityProperties(this.entityID);
|
var entityProperties = Entities.getEntityProperties(this.entityID);
|
||||||
if (Vec3.length(entityProperties.gravity) !== 0.0) {
|
if (Vec3.length(entityProperties.gravity) !== 0.0) {
|
||||||
|
@ -486,8 +468,8 @@ Grabber.prototype.moveEvent = function(event) {
|
||||||
//var qZero = this.lastRotation;
|
//var qZero = this.lastRotation;
|
||||||
this.lastRotation = Quat.multiply(deltaQ, this.lastRotation);
|
this.lastRotation = Quat.multiply(deltaQ, this.lastRotation);
|
||||||
|
|
||||||
var distanceToCamera = Vec3.length(Vec3.subtract(this.currentPosition, cameraPosition));
|
var distanceToCameraR = Vec3.length(Vec3.subtract(this.currentPosition, cameraPosition));
|
||||||
var angularTimeScale = distanceGrabTimescale(this.mass, distanceToCamera);
|
var angularTimeScale = distanceGrabTimescale(this.mass, distanceToCameraR);
|
||||||
|
|
||||||
actionArgs = {
|
actionArgs = {
|
||||||
targetRotation: this.lastRotation,
|
targetRotation: this.lastRotation,
|
||||||
|
@ -527,8 +509,8 @@ Grabber.prototype.moveEvent = function(event) {
|
||||||
}
|
}
|
||||||
this.targetPosition = Vec3.subtract(newPointOnPlane, this.offset);
|
this.targetPosition = Vec3.subtract(newPointOnPlane, this.offset);
|
||||||
|
|
||||||
var distanceToCamera = Vec3.length(Vec3.subtract(this.targetPosition, cameraPosition));
|
var distanceToCameraL = Vec3.length(Vec3.subtract(this.targetPosition, cameraPosition));
|
||||||
var linearTimeScale = distanceGrabTimescale(this.mass, distanceToCamera);
|
var linearTimeScale = distanceGrabTimescale(this.mass, distanceToCameraL);
|
||||||
|
|
||||||
actionArgs = {
|
actionArgs = {
|
||||||
targetPosition: this.targetPosition,
|
targetPosition: this.targetPosition,
|
||||||
|
@ -537,7 +519,6 @@ Grabber.prototype.moveEvent = function(event) {
|
||||||
ttl: ACTION_TTL
|
ttl: ACTION_TTL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
beacon.updatePosition(this.targetPosition);
|
beacon.updatePosition(this.targetPosition);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -548,7 +529,7 @@ Grabber.prototype.moveEvent = function(event) {
|
||||||
} else {
|
} else {
|
||||||
Entities.updateAction(this.entityID, this.actionID, actionArgs);
|
Entities.updateAction(this.entityID, this.actionID, actionArgs);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
Grabber.prototype.keyReleaseEvent = function(event) {
|
Grabber.prototype.keyReleaseEvent = function(event) {
|
||||||
if (event.text === "SHIFT") {
|
if (event.text === "SHIFT") {
|
||||||
|
@ -558,7 +539,7 @@ Grabber.prototype.keyReleaseEvent = function(event) {
|
||||||
this.rotateKey = false;
|
this.rotateKey = false;
|
||||||
}
|
}
|
||||||
this.computeNewGrabPlane();
|
this.computeNewGrabPlane();
|
||||||
}
|
};
|
||||||
|
|
||||||
Grabber.prototype.keyPressEvent = function(event) {
|
Grabber.prototype.keyPressEvent = function(event) {
|
||||||
if (event.text === "SHIFT") {
|
if (event.text === "SHIFT") {
|
||||||
|
@ -568,49 +549,8 @@ Grabber.prototype.keyPressEvent = function(event) {
|
||||||
this.rotateKey = true;
|
this.rotateKey = true;
|
||||||
}
|
}
|
||||||
this.computeNewGrabPlane();
|
this.computeNewGrabPlane();
|
||||||
}
|
|
||||||
|
|
||||||
Grabber.prototype.activateEntity = function(entityID, grabbedProperties) {
|
|
||||||
var grabbableData = getEntityCustomData(GRABBABLE_DATA_KEY, entityID, DEFAULT_GRABBABLE_DATA);
|
|
||||||
var invertSolidWhileHeld = grabbableData["invertSolidWhileHeld"];
|
|
||||||
var data = getEntityCustomData(GRAB_USER_DATA_KEY, entityID, {});
|
|
||||||
data["activated"] = true;
|
|
||||||
data["avatarId"] = MyAvatar.sessionUUID;
|
|
||||||
data["refCount"] = data["refCount"] ? data["refCount"] + 1 : 1;
|
|
||||||
// zero gravity and set collisionless to true, but in a way that lets us put them back, after all grabs are done
|
|
||||||
if (data["refCount"] == 1) {
|
|
||||||
data["gravity"] = grabbedProperties.gravity;
|
|
||||||
data["collisionless"] = grabbedProperties.collisionless;
|
|
||||||
data["dynamic"] = grabbedProperties.dynamic;
|
|
||||||
var whileHeldProperties = {gravity: {x:0, y:0, z:0}};
|
|
||||||
if (invertSolidWhileHeld) {
|
|
||||||
whileHeldProperties["collisionless"] = ! grabbedProperties.collisionless;
|
|
||||||
}
|
|
||||||
Entities.editEntity(entityID, whileHeldProperties);
|
|
||||||
}
|
|
||||||
setEntityCustomData(GRAB_USER_DATA_KEY, entityID, data);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Grabber.prototype.deactivateEntity = function(entityID) {
|
|
||||||
var data = getEntityCustomData(GRAB_USER_DATA_KEY, entityID, {});
|
|
||||||
if (data && data["refCount"]) {
|
|
||||||
data["refCount"] = data["refCount"] - 1;
|
|
||||||
if (data["refCount"] < 1) {
|
|
||||||
Entities.editEntity(entityID, {
|
|
||||||
gravity: data["gravity"],
|
|
||||||
collisionless: data["collisionless"],
|
|
||||||
dynamic: data["dynamic"]
|
|
||||||
});
|
|
||||||
data = null;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
data = null;
|
|
||||||
}
|
|
||||||
setEntityCustomData(GRAB_USER_DATA_KEY, entityID, data);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var grabber = new Grabber();
|
var grabber = new Grabber();
|
||||||
|
|
||||||
function pressEvent(event) {
|
function pressEvent(event) {
|
||||||
|
@ -646,7 +586,7 @@ function editEvent(channel, message, sender, localOnly) {
|
||||||
try {
|
try {
|
||||||
var data = JSON.parse(message);
|
var data = JSON.parse(message);
|
||||||
if ("enabled" in data) {
|
if ("enabled" in data) {
|
||||||
enabled = !data["enabled"];
|
enabled = !data.enabled;
|
||||||
}
|
}
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
}
|
}
|
||||||
|
|
|
@ -2997,7 +2997,6 @@ function MyController(hand) {
|
||||||
|
|
||||||
children.forEach(function(childID) {
|
children.forEach(function(childID) {
|
||||||
if (childID !== _this.stylus) {
|
if (childID !== _this.stylus) {
|
||||||
print(childID + " vs " + _this.stylus);
|
|
||||||
// we appear to be holding something and this script isn't in a state that would be holding something.
|
// we appear to be holding something and this script isn't in a state that would be holding something.
|
||||||
// unhook it. if we previously took note of this entity's parent, put it back where it was. This
|
// unhook it. if we previously took note of this entity's parent, put it back where it was. This
|
||||||
// works around some problems that happen when more than one hand or avatar is passing something around.
|
// works around some problems that happen when more than one hand or avatar is passing something around.
|
||||||
|
|
|
@ -7,12 +7,11 @@
|
||||||
// Distributed under the Apache License, Version 2.0.
|
// Distributed under the Apache License, Version 2.0.
|
||||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
//
|
//
|
||||||
/* global getControllerWorldLocation, setEntityCustomData, Tablet, WebTablet:true */
|
/* global getControllerWorldLocation, setEntityCustomData, Tablet, WebTablet:true, HMD, Settings, Script, Vec3, Quat, MyAvatar, Entities, Overlays, Camera, Messages */
|
||||||
|
|
||||||
Script.include(Script.resolvePath("../libraries/utils.js"));
|
Script.include(Script.resolvePath("../libraries/utils.js"));
|
||||||
Script.include(Script.resolvePath("../libraries/controllers.js"));
|
Script.include(Script.resolvePath("../libraries/controllers.js"));
|
||||||
|
|
||||||
var RAD_TO_DEG = 180 / Math.PI;
|
|
||||||
var X_AXIS = {x: 1, y: 0, z: 0};
|
var X_AXIS = {x: 1, y: 0, z: 0};
|
||||||
var Y_AXIS = {x: 0, y: 1, z: 0};
|
var Y_AXIS = {x: 0, y: 1, z: 0};
|
||||||
var DEFAULT_DPI = 32;
|
var DEFAULT_DPI = 32;
|
||||||
|
@ -91,6 +90,7 @@ WebTablet = function (url, width, dpi, hand, clientOnly) {
|
||||||
// compute position, rotation & parentJointIndex of the tablet
|
// compute position, rotation & parentJointIndex of the tablet
|
||||||
this.calculateTabletAttachmentProperties(hand, tabletProperties);
|
this.calculateTabletAttachmentProperties(hand, tabletProperties);
|
||||||
|
|
||||||
|
this.cleanUpOldTablets();
|
||||||
this.tabletEntityID = Entities.addEntity(tabletProperties, clientOnly);
|
this.tabletEntityID = Entities.addEntity(tabletProperties, clientOnly);
|
||||||
|
|
||||||
var WEB_ENTITY_Z_OFFSET = -0.0125;
|
var WEB_ENTITY_Z_OFFSET = -0.0125;
|
||||||
|
@ -219,6 +219,27 @@ WebTablet.prototype.register = function() {
|
||||||
Messages.messageReceived.connect(this.receive);
|
Messages.messageReceived.connect(this.receive);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
WebTablet.prototype.cleanUpOldTabletsOnJoint = function(jointIndex) {
|
||||||
|
var children = Entities.getChildrenIDsOfJoint(MyAvatar.sessionUUID, jointIndex);
|
||||||
|
print("cleanup " + children);
|
||||||
|
children.forEach(function(childID) {
|
||||||
|
var props = Entities.getEntityProperties(childID, ["name"]);
|
||||||
|
if (props.name == "WebTablet Tablet") {
|
||||||
|
print("cleaning up " + props.name);
|
||||||
|
Entities.deleteEntity(childID);
|
||||||
|
} else {
|
||||||
|
print("not cleaning up " + props.name);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
WebTablet.prototype.cleanUpOldTablets = function() {
|
||||||
|
this.cleanUpOldTabletsOnJoint(-1);
|
||||||
|
this.cleanUpOldTabletsOnJoint(SENSOR_TO_ROOM_MATRIX);
|
||||||
|
this.cleanUpOldTabletsOnJoint(CAMERA_MATRIX);
|
||||||
|
this.cleanUpOldTabletsOnJoint(65529);
|
||||||
|
}
|
||||||
|
|
||||||
WebTablet.prototype.unregister = function() {
|
WebTablet.prototype.unregister = function() {
|
||||||
Messages.unsubscribe("home");
|
Messages.unsubscribe("home");
|
||||||
Messages.messageReceived.disconnect(this.receive);
|
Messages.messageReceived.disconnect(this.receive);
|
||||||
|
|
Loading…
Reference in a new issue