diff --git a/unpublishedScripts/DomainContent/Home/dressingRoom/dressingRoom.js b/unpublishedScripts/DomainContent/Home/dressingRoom/dressingRoom.js deleted file mode 100644 index dbadbf6cd5..0000000000 --- a/unpublishedScripts/DomainContent/Home/dressingRoom/dressingRoom.js +++ /dev/null @@ -1,706 +0,0 @@ -(function() { - - var utilsPath = Script.resolvePath("../utils.js"); - Script.include(utilsPath); - var avatarModelURL ='https://s3.amazonaws.com/hifi-public/ozan/avatars/albert/albert/albert.fbx'; - - DressingRoom = function() { - return this - } - - DressingRoom.prototype = { - preload: function(entityID) { - print('PRELOAD DRESSING ROOM'); - this.entityID = entityID; - // avatarModelURL = getAvatarFBX(); - }, - enterEntity: function() { - print('ENTER DRESSING ROOM'); - // avatarModelURL = getAvatarFBX(); - makeDoppelgangerForMyAvatar(); - subscribeToWearableMessages(); - // subscribeToFreezeMessages(); - this.setOccupied(); - var doppelProps = Entities.getEntityProperties(this.entityID); - // Entities.editEntity(doppelgangers[0], { - // dimensions: doppelProps.naturalDimensions, - // }); - }, - leaveEntity: function() { - print('EXIT DRESSING ROOM!'); - this.setUnoccupied(); - cleanup(); - }, - checkIfOccupied: function() { - var data = getEntityCustomData('hifi-home-dressing-room', this.entityID, { - occupied: false - }); - return data.occupied; - }, - setOccupied: function() { - setEntityCustomData('hifi-home-dressing-room', this.entityID, { - occupied: true - }); - }, - setUnoccupied: function() { - setEntityCustomData('hifi-home-dressing-room', this.entityID, { - occupied: false - }); - }, - unload: function() { - this.setUnoccupied(); - cleanup(); - }, - }; - - // - // doppelganger.js - // - // Created by James B. Pollack @imgntn on 12/28/2015 - // Copyright 2015 High Fidelity, Inc. - // - // This script shows how to hook up a model entity to your avatar to act as a doppelganger. - // - // Distributed under the Apache License, Version 2.0. - // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html - // - - var MIRROR_JOINT_DATA = true; - var MIRRORED_ENTITY_SCRIPT_URL = Script.resolvePath('mirroredEntity.js'); - var FREEZE_TOGGLER_SCRIPT_URL = Script.resolvePath('freezeToggler.js?' + Math.random(0, 1000)) - var THROTTLE = false; - var THROTTLE_RATE = 100; - var doppelgangers = []; - - - function Doppelganger(avatar) { - this.initialProperties = { - name: 'Hifi-Doppelganger', - type: 'Model', - modelURL: avatarModelURL, - // dimensions: getAvatarDimensions(avatar), - position: matchBasePosition(), - rotation: matchBaseRotation(), - collisionsWillMove: false, - ignoreForCollisions: false, - // script: FREEZE_TOGGLER_SCRIPT_URL, - userData: JSON.stringify({ - grabbableKey: { - grabbable: false, - wantsTrigger: true - } - }) - }; - - this.id = createDoppelgangerEntity(this.initialProperties); - this.avatar = avatar; - return this; - } - - function getAvatarFBX() { - var skeletonURL = MyAvatar.skeletonModelURL; - var req = new XMLHttpRequest(); - req.open("GET", skeletonURL, false); - req.send(); - - var fst = req.responseText; - - var fbxURL; - - var split = fst.split('\n'); - split.forEach(function(line) { - if (line.indexOf('filename') > -1) { - var innerSplit = line.split(" "); - innerSplit.forEach(function(inner) { - if (inner.indexOf('.fbx') > -1) { - fbxURL = inner; - } - }) - } - }); - - return fbxURL - } - - function getJointData(avatar) { - var allJointData = []; - var jointNames = MyAvatar.jointNames; - jointNames.forEach(function(joint, index) { - var translation = MyAvatar.getJointTranslation(index); - var rotation = MyAvatar.getJointRotation(index) - allJointData.push({ - joint: joint, - index: index, - translation: translation, - rotation: rotation - }); - }); - - return allJointData; - } - - function setJointData(doppelganger, relativeXforms) { - print('setting joint data for ' + doppelganger.id) - var jointRotations = []; - var i, l = relativeXforms.length; - for (i = 0; i < l; i++) { - jointRotations.push(relativeXforms[i].rot); - } - var setJointSuccess = Entities.setAbsoluteJointRotationsInObjectFrame(doppelganger.id, jointRotations); - // print('JOINT ROTATIONS:: ' + JSON.stringify(jointRotations)); - print('SUCCESS SETTING JOINTS?' + setJointSuccess + "for " + doppelganger.id) - return; - } - - // maps joint names to their mirrored joint - var JOINT_MIRROR_NAME_MAP = { - RightUpLeg: "LeftUpLeg", - RightLeg: "LeftLeg", - RightFoot: "LeftFoot", - LeftUpLeg: "RightUpLeg", - LeftLeg: "RightLeg", - LeftFoot: "RightFoot", - RightShoulder: "LeftShoulder", - RightArm: "LeftArm", - RightForeArm: "LeftForeArm", - RightHand: "LeftHand", - RightHandThumb1: "LeftHandThumb1", - RightHandThumb2: "LeftHandThumb2", - RightHandThumb3: "LeftHandThumb3", - RightHandThumb4: "LeftHandThumb4", - RightHandIndex1: "LeftHandIndex1", - RightHandIndex2: "LeftHandIndex2", - RightHandIndex3: "LeftHandIndex3", - RightHandIndex4: "LeftHandIndex4", - RightHandMiddle1: "LeftHandMiddle1", - RightHandMiddle2: "LeftHandMiddle2", - RightHandMiddle3: "LeftHandMiddle3", - RightHandMiddle4: "LeftHandMiddle4", - RightHandRing1: "LeftHandRing1", - RightHandRing2: "LeftHandRing2", - RightHandRing3: "LeftHandRing3", - RightHandRing4: "LeftHandRing4", - RightHandPinky1: "LeftHandPinky1", - RightHandPinky2: "LeftHandPinky2", - RightHandPinky3: "LeftHandPinky3", - RightHandPinky4: "LeftHandPinky4", - LeftShoulder: "RightShoulder", - LeftArm: "RightArm", - LeftForeArm: "RightForeArm", - LeftHand: "RightHand", - LeftHandThumb1: "RightHandThumb1", - LeftHandThumb2: "RightHandThumb2", - LeftHandThumb3: "RightHandThumb3", - LeftHandThumb4: "RightHandThumb4", - LeftHandIndex1: "RightHandIndex1", - LeftHandIndex2: "RightHandIndex2", - LeftHandIndex3: "RightHandIndex3", - LeftHandIndex4: "RightHandIndex4", - LeftHandMiddle1: "RightHandMiddle1", - LeftHandMiddle2: "RightHandMiddle2", - LeftHandMiddle3: "RightHandMiddle3", - LeftHandMiddle4: "RightHandMiddle4", - LeftHandRing1: "RightHandRing1", - LeftHandRing2: "RightHandRing2", - LeftHandRing3: "RightHandRing3", - LeftHandRing4: "RightHandRing4", - LeftHandPinky1: "RightHandPinky1", - LeftHandPinky2: "RightHandPinky2", - LeftHandPinky3: "RightHandPinky3", - LeftHandPinky4: "RightHandPinky4", - LeftHandPinky: "RightHandPinky", - }; - - // maps joint names to parent joint names. - var JOINT_PARENT_NAME_MAP = { - Hips: "", - RightUpLeg: "Hips", - RightLeg: "RightUpLeg", - RightFoot: "RightLeg", - LeftUpLeg: "Hips", - LeftLeg: "LeftUpLeg", - LeftFoot: "LeftLeg", - Spine: "Hips", - Spine1: "Spine", - Spine2: "Spine1", - Spine3: "Spine2", - Neck: "Spine3", - Head: "Neck", - RightShoulder: "Spine3", - RightArm: "RightShoulder", - RightForeArm: "RightArm", - RightHand: "RightForeArm", - RightHandThumb1: "RightHand", - RightHandThumb2: "RightHandThumb1", - RightHandThumb3: "RightHandThumb2", - RightHandThumb4: "RightHandThumb3", - RightHandIndex1: "RightHand", - RightHandIndex2: "RightHandIndex1", - RightHandIndex3: "RightHandIndex2", - RightHandIndex4: "RightHandIndex3", - RightHandMiddle1: "RightHand", - RightHandMiddle2: "RightHandMiddle1", - RightHandMiddle3: "RightHandMiddle2", - RightHandMiddle4: "RightHandMiddle3", - RightHandRing1: "RightHand", - RightHandRing2: "RightHandRing1", - RightHandRing3: "RightHandRing2", - RightHandRing4: "RightHandRing3", - RightHandPinky1: "RightHand", - RightHandPinky2: "RightHandPinky1", - RightHandPinky3: "RightHandPinky2", - RightHandPinky4: "RightHandPinky3", - LeftShoulder: "Spine3", - LeftArm: "LeftShoulder", - LeftForeArm: "LeftArm", - LeftHand: "LeftForeArm", - LeftHandThumb1: "LeftHand", - LeftHandThumb2: "LeftHandThumb1", - LeftHandThumb3: "LeftHandThumb2", - LeftHandThumb4: "LeftHandThumb3", - LeftHandIndex1: "LeftHand", - LeftHandIndex2: "LeftHandIndex1", - LeftHandIndex3: "LeftHandIndex2", - LeftHandIndex4: "LeftHandIndex3", - LeftHandMiddle1: "LeftHand", - LeftHandMiddle2: "LeftHandMiddle1", - LeftHandMiddle3: "LeftHandMiddle2", - LeftHandMiddle4: "LeftHandMiddle3", - LeftHandRing1: "LeftHand", - LeftHandRing2: "LeftHandRing1", - LeftHandRing3: "LeftHandRing2", - LeftHandRing4: "LeftHandRing3", - LeftHandPinky1: "LeftHand", - LeftHandPinky2: "LeftHandPinky1", - LeftHandPinky3: "LeftHandPinky2", - LeftHandPinky: "LeftHandPinky3", - }; - - // maps joint indices to parent joint indices. - var JOINT_PARENT_INDEX_MAP; - var JOINT_MIRROR_INDEX_MAP; - - // ctor - function Xform(rot, pos) { - this.rot = rot; - this.pos = pos; - }; - Xform.ident = function() { - return new Xform({ - x: 0, - y: 0, - z: 0, - w: 1 - }, { - x: 0, - y: 0, - z: 0 - }); - } - Xform.mul = function(lhs, rhs) { - var rot = Quat.multiply(lhs.rot, rhs.rot); - var pos = Vec3.sum(lhs.pos, Vec3.multiplyQbyV(lhs.rot, rhs.pos)); - return new Xform(rot, pos); - }; - Xform.prototype.inv = function() { - var invRot = Quat.inverse(this.rot); - var invPos = Vec3.multiply(-1, this.pos); - return new Xform(invRot, Vec3.multiplyQbyV(invRot, invPos)); - }; - Xform.prototype.mirrorX = function() { - return new Xform({ - x: this.rot.x, - y: -this.rot.y, - z: -this.rot.z, - w: this.rot.w - }, { - x: -this.pos.x, - y: this.pos.y, - z: this.pos.z - }); - } - Xform.prototype.toString = function() { - var rot = this.rot; - var pos = this.pos; - return "Xform rot = (" + rot.x + ", " + rot.y + ", " + rot.z + ", " + rot.w + "), pos = (" + pos.x + ", " + pos.y + ", " + pos.z + ")"; - }; - - function buildAbsoluteXformsFromMyAvatar() { - var jointNames = MyAvatar.getJointNames(); - - // lazy init of JOINT_PARENT_INDEX_MAP - if (jointNames.length > 0 && !JOINT_PARENT_INDEX_MAP) { - JOINT_PARENT_INDEX_MAP = {}; - var keys = Object.keys(JOINT_PARENT_NAME_MAP); - var i, l = keys.length; - var keyIndex, valueName, valueIndex; - for (i = 0; i < l; i++) { - keyIndex = MyAvatar.getJointIndex(keys[i]); - valueName = JOINT_PARENT_NAME_MAP[keys[i]]; - if (valueName) { - valueIndex = MyAvatar.getJointIndex(valueName); - } else { - valueIndex = -1; - } - JOINT_PARENT_INDEX_MAP[keyIndex] = valueIndex; - } - } - - // lazy init of JOINT_MIRROR_INDEX_MAP - if (jointNames.length > 0 && !JOINT_MIRROR_INDEX_MAP) { - JOINT_MIRROR_INDEX_MAP = {}; - var keys = Object.keys(JOINT_MIRROR_NAME_MAP); - var i, l = keys.length; - var keyIndex, valueName, valueIndex; - for (i = 0; i < l; i++) { - keyIndex = MyAvatar.getJointIndex(keys[i]); - valueIndex = MyAvatar.getJointIndex(JOINT_MIRROR_NAME_MAP[keys[i]]); - if (valueIndex > 0) { - JOINT_MIRROR_INDEX_MAP[keyIndex] = valueIndex; - } - } - } - - // build absolute xforms by multiplying by parent Xforms - var absoluteXforms = []; - var i, l = jointNames.length; - var parentXform; - for (i = 0; i < l; i++) { - var parentIndex = JOINT_PARENT_INDEX_MAP[i]; - if (parentIndex >= 0) { - parentXform = absoluteXforms[parentIndex]; - } else { - parentXform = Xform.ident(); - } - var localXform = new Xform(MyAvatar.getJointRotation(i), MyAvatar.getJointTranslation(i)); - absoluteXforms.push(Xform.mul(parentXform, localXform)); - } - return absoluteXforms; - } - - function buildRelativeXformsFromAbsoluteXforms(absoluteXforms) { - - // build relative xforms by multiplying by the inverse of the parent Xforms - var relativeXforms = []; - var i, l = absoluteXforms.length; - var parentXform; - for (i = 0; i < l; i++) { - var parentIndex = JOINT_PARENT_INDEX_MAP[i]; - if (parentIndex >= 0) { - parentXform = absoluteXforms[parentIndex]; - } else { - parentXform = Xform.ident(); - } - relativeXforms.push(Xform.mul(parentXform.inv(), absoluteXforms[i])); - } - return relativeXforms; - } - - function createDoppelganger(avatar) { - return new Doppelganger(avatar); - } - - function createDoppelgangerEntity(initialProperties) { - return Entities.addEntity(initialProperties); - } - - function matchBasePosition() { - var ids = Entities.findEntities(MyAvatar.position, 20); - for (var i = 0; i < ids.length; i++) { - var entityID = ids[i]; - var props = Entities.getEntityProperties(entityID, "name"); - var name = props.name; - if (name === "Hifi-Dressing-Room-Base") { - var details = Entities.getEntityProperties(entityID, ["position", "dimensions"]); - details.position.y += getAvatarFootOffset(); - details.position.y += details.dimensions.y / 2; - print('JBP BASE POSITION ' + JSON.stringify(details.position)) - return details.position; - } - } - } - - - function getAvatarFootOffset() { - var data = getJointData(); - var upperLeg, lowerLeg, foot, toe, toeTop; - data.forEach(function(d) { - - var jointName = d.joint; - if (jointName === "RightUpLeg") { - upperLeg = d.translation.y; - } - if (jointName === "RightLeg") { - lowerLeg = d.translation.y; - } - if (jointName === "RightFoot") { - foot = d.translation.y; - } - if (jointName === "RightToeBase") { - toe = d.translation.y; - } - if (jointName === "RightToe_End") { - toeTop = d.translation.y - } - }) - - var myPosition = MyAvatar.position; - var offset = upperLeg + lowerLeg + foot + toe + toeTop; - offset = offset / 100; - return offset - } - - function matchBaseRotation() { - var ids = Entities.findEntities(MyAvatar.position, 20); - var hasBase = false; - for (var i = 0; i < ids.length; i++) { - var entityID = ids[i]; - var props = Entities.getEntityProperties(entityID, "name"); - var name = props.name; - if (name === "Hifi-Dressing-Room-Base") { - var details = Entities.getEntityProperties(entityID, "rotation"); - print('JBP DOPPELGANGER ROTATION SET TO BASE:: ' + JSON.stringify(details.rotation)) - return details.rotation; - } - } - } - - - - function connectDoppelgangerUpdates() { - Script.update.connect(updateDoppelganger); - - } - - function disconnectDoppelgangerUpdates() { - Script.update.disconnect(updateDoppelganger); - } - - var sinceLastUpdate = 0; - - function updateDoppelganger(deltaTime) { - if (THROTTLE === true) { - sinceLastUpdate = sinceLastUpdate + deltaTime * 100; - if (sinceLastUpdate > THROTTLE_RATE) { - sinceLastUpdate = 0; - } else { - return; - } - } - - - var absoluteXforms = buildAbsoluteXformsFromMyAvatar(); - if (MIRROR_JOINT_DATA) { - var mirroredAbsoluteXforms = []; - var i, l = absoluteXforms.length; - for (i = 0; i < l; i++) { - var mirroredIndex = JOINT_MIRROR_INDEX_MAP[i]; - if (mirroredIndex === undefined) { - mirroredIndex = i; - } - mirroredAbsoluteXforms[mirroredIndex] = absoluteXforms[i].mirrorX(); - } - absoluteXforms = mirroredAbsoluteXforms; - } - var relativeXforms = buildRelativeXformsFromAbsoluteXforms(absoluteXforms); - // print('DOPPELGANGERS:::: ' + doppelgangers.length); - // print('first doppel id:: ' + doppelgangers[0].id); - doppelgangers.forEach(function(doppelganger) { - setJointData(doppelganger, relativeXforms); - }) - - } - - function makeDoppelgangerForMyAvatar() { - doppelgangers = []; - var doppelganger = createDoppelganger(MyAvatar); - doppelgangers.push(doppelganger); - connectDoppelgangerUpdates(); - } - - function subscribeToWearableMessages() { - Messages.subscribe('Hifi-Doppelganger-Wearable'); - Messages.messageReceived.connect(handleWearableMessages); - } - - function subscribeToFreezeMessages() { - Messages.subscribe('Hifi-Doppelganger-Freeze'); - Messages.messageReceived.connect(handleFreezeMessages); - } - - function handleFreezeMessages(channel, message, sender) { - if (channel !== 'Hifi-Doppelganger-Freeze') { - return; - } - if (sender !== MyAvatar.sessionUUID) { - return; - } - - var parsedMessage = null; - - try { - parsedMessage = JSON.parse(message); - } catch (e) { - print('error parsing wearable message'); - } - print('MESSAGE ACTION::' + parsedMessage.action) - if (parsedMessage.action === 'freeze') { - print('ACTUAL FREEZE') - disconnectDoppelgangerUpdates(); - } - if (parsedMessage.action === 'unfreeze') { - print('ACTUAL UNFREEZE') - connectDoppelgangerUpdates(); - } - - } - - var wearablePairs = []; - - function handleWearableMessages(channel, message, sender) { - if (channel !== 'Hifi-Doppelganger-Wearable' || 'Hifi-Doppelganger-Wearable-Avatar') { - return; - } - - if (sender !== MyAvatar.sessionUUID) { - return; - } - - var parsedMessage = null; - - try { - parsedMessage = JSON.parse(message); - } catch (e) { - print('error parsing wearable message'); - } - print('parsed message!!!') - - if (channel === 'Hifi-Doppelganger-Wearable') { - mirrorEntitiesForDoppelganger(doppelgangers[0], parsedMessage); - } - if (channel === 'Hifi-Doppelganger-Wearable') { - mirrorEntitiesForAvatar(parsedMessge); - } - - } - - function mirrorEntitiesForDoppelganger(doppelganger, parsedMessage) { - var doppelgangerProps = Entities.getEntityProperties(doppelganger.id); - - var action = parsedMessage.action; - print('IN MIRROR ENTITIES CALL' + action) - - var baseEntity = parsedMessage.baseEntity; - - var wearableProps = Entities.getEntityProperties(baseEntity); - - print('WEARABLE PROPS::') - delete wearableProps.id; - delete wearableProps.created; - delete wearableProps.age; - delete wearableProps.ageAsText; - //delete wearableProps.position; - // add to dg - // add to avatar - // moved item on dg - // moved item on avatar - // remove item from dg - // remove item from avatar - - var joint = wearableProps.parentJointIndex; - if (action === 'add') { - print('IN DOPPELGANGER ADD'); - - wearableProps.parentID = doppelganger.id; - wearableProps.parentJointIndex = joint; - - //create a new one - wearableProps.script = MIRRORED_ENTITY_SCRIPT_URL; - wearableProps.name = 'Hifi-Doppelganger-Mirrored-Entity'; - wearableProps.userData = JSON.stringify({ - doppelgangerKey: { - baseEntity: baseEntity, - doppelganger: doppelganger.id - } - }) - var mirrorEntity = Entities.addEntity(wearableProps); - - var mirrorEntityProps = Entities.getEntityProperties(mirrorEntity) - print('MIRROR PROPS::' + JSON.stringify(mirrorEntityProps)) - var wearablePair = { - baseEntity: baseEntity, - mirrorEntity: mirrorEntity - } - - wearablePairs.push(wearablePair); - } - - if (action === 'update') { - wearableProps.parentID = doppelganger.id; - - var mirrorEntity = getMirrorEntityForBaseEntity(baseEntity); - // print('MIRROR ENTITY, newPosition' + mirrorEntity + ":::" + JSON.stringify(newPosition)) - Entities.editEntity(mirrorEntity, wearableProps) - } - - if (action === 'remove') { - Entities.deleteEntity(getMirrorEntityForBaseEntity(baseEntity)) - wearablePairs = wearablePairs.filter(function(obj) { - return obj.baseEntity !== baseEntity; - }); - } - - if (action === 'updateBase') { - //this gets called when the mirrored entity gets grabbed. now we move the - var mirrorEntityProperties = Entities.getEntityProperties(message.mirrorEntity) - var doppelgangerToMirrorEntity = Vec3.subtract(doppelgangerProps.position, mirrorEntityProperties.position); - var newPosition = Vec3.sum(MyAvatar.position, doppelgangerToMirrorEntity); - - delete mirrorEntityProperties.id; - delete mirrorEntityProperties.created; - delete mirrorEntityProperties.age; - delete mirrorEntityProperties.ageAsText; - mirrorEntityProperties.position = newPosition; - mirrorEntityProperties.parentID = MyAvatar.sessionUUID; - Entities.editEntity(message.baseEntity, mirrorEntityProperties); - } - } - - function getMirrorEntityForBaseEntity(baseEntity) { - var result = wearablePairs.filter(function(obj) { - return obj.baseEntity === baseEntity; - }); - if (result.length === 0) { - return false; - } else { - return result[0].mirrorEntity - } - } - - function getBaseEntityForMirrorEntity(mirrorEntity) { - var result = wearablePairs.filter(function(obj) { - return obj.mirrorEntity === mirrorEntity; - }); - if (result.length === 0) { - return false; - } else { - return result[0].baseEntity - } - } - - - - function cleanup() { - - Script.update.disconnect(updateDoppelganger); - - doppelgangers.forEach(function(doppelganger) { - print('DELETING DOPPELGANGER' + doppelganger.id) - Entities.deleteEntity(doppelganger.id); - }); - - doppelgangers = []; - } - - return new DressingRoom(); -}); \ No newline at end of file diff --git a/unpublishedScripts/DomainContent/Home/dressingRoom/freezeToggler.js b/unpublishedScripts/DomainContent/Home/dressingRoom/freezeToggler.js deleted file mode 100644 index 1f167fdccc..0000000000 --- a/unpublishedScripts/DomainContent/Home/dressingRoom/freezeToggler.js +++ /dev/null @@ -1,74 +0,0 @@ -// -// dopppelgangerEntity.js -// -// Created by James B. Pollack @imgntn on 1/6/2016 -// Copyright 2016 High Fidelity, Inc. -// -// for freezing / unfreezing the doppelganger -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// - -(function() { - var COUNTDOWN_LENGTH = 0; - var _this; - - Dopppelganger = function() { - - _this = this; - }; - - Dopppelganger.prototype = { - isFrozen: false, - startNearTrigger: function() { - print('DOPPELGANGER NEAR TRIGGER') - }, - startFarTrigger: function() { - print('DOPPELGANGER FAR TRIGGER') - if (this.isFrozen === false) { - this.freeze(); - } else { - this.unfreeze(); - } - - }, - clickReleaseOnEntity: function(entityID, mouseEvent) { - print('DOPPELGANGER CLICK') - if (!mouseEvent.isLeftButton) { - return; - } - if (this.isFrozen === false) { - this.freeze(); - } else { - this.unfreeze(); - } - - }, - freeze: function() { - print('FREEZE YO') - this.isFrozen = true; - var data = { - action: 'freeze' - } - - Script.setTimeout(function() { - Messages.sendMessage('Hifi-Doppelganger-Freeze', JSON.stringify(data)); - }, COUNTDOWN_LENGTH) - - }, - unfreeze: function() { - this.isFrozen = false; - var data = { - action: 'unfreeze' - } - Messages.sendMessage('Hifi-Doppelganger-Freeze', JSON.stringify(data)); - }, - - preload: function(entityID) { - this.entityID = entityID; - }, - }; - - return new Dopppelganger(); -}) \ No newline at end of file diff --git a/unpublishedScripts/DomainContent/Home/dressingRoom/mirror.js b/unpublishedScripts/DomainContent/Home/dressingRoom/mirror.js deleted file mode 100644 index 0310b21f96..0000000000 --- a/unpublishedScripts/DomainContent/Home/dressingRoom/mirror.js +++ /dev/null @@ -1,48 +0,0 @@ -// -// mirroredEntity.js -// -// Created by James B. Pollack @imgntn on 1/6/2016 -// Copyright 2016 High Fidelity, Inc. -// -// when grabbed, this entity relays updates to update the base entity -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// - -(function() { - - var _this; - - MirroredEntity = function() { - _this = this; - }; - - MirroredEntity.prototype = { - startNearGrab: function () { - print("I was just grabbed... entity:" + this.entityID); - }, - continueNearGrab: function () { - print("I am still being grabbed... entity:" + this.entityID); - var data = { - action:'updateBase', - baseEntity:this.userData.doppelgangerKey.baseEntity, - mirrorEntity:this.entityID, - doppelganger:this.userData.doppelgangerKey.doppelganger - } - Messages.sendMessage('Hifi-Doppelganger-Wearable',data) - }, - - releaseGrab: function () { - print("I was released... entity:" + this.entityID); - }, - - preload: function(entityID) { - this.entityID = entityID; - this.initialProperties = Entities.getEntityProperties(this.entityID); - this.userData = JSON.parse(this.initialProperties.userData); - }, - }; - - return new MirroredEntity(); -}) diff --git a/unpublishedScripts/DomainContent/Home/pingPongGun/pingPongGun.js b/unpublishedScripts/DomainContent/Home/pingPongGun/pingPongGun.js index a1c409785d..a1aed09cc2 100644 --- a/unpublishedScripts/DomainContent/Home/pingPongGun/pingPongGun.js +++ b/unpublishedScripts/DomainContent/Home/pingPongGun/pingPongGun.js @@ -114,7 +114,7 @@ dynamic: true, rotation: gunProperties.rotation, position: this.getGunTipPosition(gunProperties), - gravity:PING_PONG_GUN_GRAVITY, + gravity: PING_PONG_GUN_GRAVITY, velocity: forwardVec, lifetime: 10, userData: JSON.stringify({ diff --git a/unpublishedScripts/DomainContent/Home/pingPongGun/wrapper.js b/unpublishedScripts/DomainContent/Home/pingPongGun/wrapper.js index d8ccc6394c..07ac3e43b4 100644 --- a/unpublishedScripts/DomainContent/Home/pingPongGun/wrapper.js +++ b/unpublishedScripts/DomainContent/Home/pingPongGun/wrapper.js @@ -15,7 +15,7 @@ var MODEL_URL = 'http://hifi-content.s3.amazonaws.com/alan/dev/Pingpong-Gun-New. var COLLISION_HULL_URL = 'http://hifi-content.s3.amazonaws.com/alan/dev/Pingpong-Gun-New.obj'; var COLLISION_SOUND_URL = 'http://hifi-public.s3.amazonaws.com/sounds/Collisions-otherorganic/plastic_impact.L.wav'; -_PingPongGun = function(spawnPosition, spawnRotation) { +HomePingPongGun = function(spawnPosition, spawnRotation) { var pingPongGun = Entities.addEntity({ type: "Model", modelURL: MODEL_URL, @@ -28,10 +28,10 @@ _PingPongGun = function(spawnPosition, spawnRotation) { y: 0.3875, z: 0.9931 }, - gravity:{ - x:0, - y:-3, - z:0 + gravity: { + x: 0, + y: -3, + z: 0 }, rotation: Quat.fromPitchYawRollDegrees(spawnRotation.x, spawnRotation.y, spawnRotation.z), dynamic: true, diff --git a/unpublishedScripts/DomainContent/Home/reset.js b/unpublishedScripts/DomainContent/Home/reset.js index cc27293370..cae24d9b10 100644 --- a/unpublishedScripts/DomainContent/Home/reset.js +++ b/unpublishedScripts/DomainContent/Home/reset.js @@ -20,6 +20,8 @@ var utilsPath = Script.resolvePath('utils.js'); + var kineticPath = Script.resolvePath("kineticObjects/wrapper.js?" + Math.random()); + var fishTankPath = Script.resolvePath('fishTank/wrapper.js?' + Math.random()); var tiltMazePath = Script.resolvePath("tiltMaze/wrapper.js?" + Math.random()) @@ -30,27 +32,27 @@ var cuckooClockPath = Script.resolvePath("cuckooClock/wrapper.js?" + Math.random()); - var pingPongGunPath = Script.resolvePath("pingPongGun/wrapper.js?" + Math.random()); - var kineticPath = Script.resolvePath("kineticObjects/wrapper.js?" + Math.random()); + var transformerPath = Script.resolvePath("dressingRoom/wrapper.js?" + Math.random()); + + Script.include(utilsPath); Script.include(kineticPath); - Script.include(utilsPath); Script.include(fishTankPath); Script.include(tiltMazePath); Script.include(whiteboardPath); Script.include(plantPath); Script.include(cuckooClockPath); - Script.include(pingPongGunPath); + Script.include(transformerPath); - var center = Vec3.sum(Vec3.sum(MyAvatar.position, { - x: 0, - y: 0.5, - z: 0 - }), Vec3.multiply(1, Quat.getFront(Camera.getOrientation()))); + var TRANSFORMER_URL_ARTEMIS = ''; + var TRANSFORMER_URL_ALBERT = ''; + var TRANSFORMER_URL_BEING_OF_LIGHT = ''; + var TRANSFORMER_URL_KATE = ''; + var TRANSFORMER_URL_WILL = ''; Reset.prototype = { tidying: false, @@ -98,6 +100,7 @@ Script.setTimeout(function() { _this.createKineticEntities(); _this.createDynamicEntities(); + _this.createTransformers(); }, 750) @@ -156,7 +159,7 @@ z: 0 }); - var pingPongGun = new _PingPongGun({ + var pingPongGun = new HomePingPongGun({ x: 1101.2123, y: 460.2328, z: -65.8513 @@ -244,15 +247,15 @@ }); var cellPoster = new PosterCell({ - x:1103.78, - y:461, - z:-70.3 + x: 1103.78, + y: 461, + z: -70.3 }); var playaPoster = new PosterPlaya({ - x:1101.8, - y:461, - z:-73.3 + x: 1101.8, + y: 461, + z: -73.3 }); @@ -264,6 +267,39 @@ }, + createTransformers: function() { + var firstDollPosition: { + x: 0, + y: 0, + z: 0 + } + + var dollRotation = { + x: 0, + y: 0, + z: 0, + } + + var dolls = [ + TRANSFORMER_URL_ARTEMIS, + TRANSFORMER_URL_ALBERT, + TRANSFORMER_URL_BEING_OF_LIGHT, + TRANSFORMER_URL_KATE, + TRANSFORMER_URL_WILL + ]; + + var dollLateralSeparation = 0.5; + dolls.forEach(function(doll, index) { + var separation = index * dollLateralSeparation; + var right = Quat.getRight(dollRotation); + var left = Vec3.multiply(-1, right); + var howFarLeft = Vec3.multiply(separation, left); + var distanceToLeft = Vec3.sum(firstDollPosition, howFarLeft); + var transformer = new TransformerDoll(doll, distanceToLeft, dollRotation); + }); + + }, + findAndDeleteHomeEntities: function() { print('JBP trying to find home entities to delete') var resetProperties = Entities.getEntityProperties(_this.entityID); @@ -295,4 +331,4 @@ } return new Reset(); -}); +}); \ No newline at end of file diff --git a/unpublishedScripts/DomainContent/Home/switches/list.txt b/unpublishedScripts/DomainContent/Home/switches/list.txt deleted file mode 100644 index 8509514bbb..0000000000 --- a/unpublishedScripts/DomainContent/Home/switches/list.txt +++ /dev/null @@ -1,17 +0,0 @@ -hifi-home-living-room-disc-light-model -hifi-home-living-room-disc-light-glow -hifi-home-living-room-disc-light-master - -hifi-home-living-room-ceiling-fan -hifi-home-living-room-ceiling-fan-sound -hifi-home-living-room-vent-sound - -hifi-home-living-room-desk-lamp-trigger -hifi-home-living-room-desk-lamp-spotlight - -hifi-home-lab-desk-lamp-trigger -hifi-home-lab-desk-lamp-spotlight - -hifi-home-dressing-room-disc-light-model -hifi-home-dressing-room-disc-light-glow -hifi-home-dressing-room-disc-light-master \ No newline at end of file