From 2dac8d4651621869a7dead6a0bf3dac51a56eea2 Mon Sep 17 00:00:00 2001 From: Kasen IO Date: Sun, 2 Aug 2020 18:48:07 -0400 Subject: [PATCH 1/2] Add attach avatar app. --- .../attach-avatar-app/assets/Halo.fbx | Bin 0 -> 82768 bytes .../assets/account-child-circle.png | Bin 0 -> 1145 bytes .../assets/account-child-circle.svg | 1 + .../attach-avatar-app/attachAvatarApp.js | 81 ++++++++++++++++++ applications/metadata.js | 9 ++ 5 files changed, 91 insertions(+) create mode 100644 applications/attach-avatar-app/assets/Halo.fbx create mode 100644 applications/attach-avatar-app/assets/account-child-circle.png create mode 100644 applications/attach-avatar-app/assets/account-child-circle.svg create mode 100644 applications/attach-avatar-app/attachAvatarApp.js diff --git a/applications/attach-avatar-app/assets/Halo.fbx b/applications/attach-avatar-app/assets/Halo.fbx new file mode 100644 index 0000000000000000000000000000000000000000..19263b10456c576b09a724a230c2bf1f68c12cde GIT binary patch literal 82768 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 literal 0 HcmV?d00001 diff --git a/applications/attach-avatar-app/assets/account-child-circle.svg b/applications/attach-avatar-app/assets/account-child-circle.svg new file mode 100644 index 0000000..6476108 --- /dev/null +++ b/applications/attach-avatar-app/assets/account-child-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/applications/attach-avatar-app/attachAvatarApp.js b/applications/attach-avatar-app/attachAvatarApp.js new file mode 100644 index 0000000..5c732f0 --- /dev/null +++ b/applications/attach-avatar-app/attachAvatarApp.js @@ -0,0 +1,81 @@ +/* globals Vec3, Quat, Uuid, Camera, MyAvatar, Entities, Overlays, Script, Tablet, AvatarList, AvatarManager, Picks, PickType require ScriptDiscoveryService */ +// +// attachAvatarApp.js +// +// Created by KasenVR on 2 August 2020. +// Copyright 2020 Vircadia contributors. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +var APP_NAME = "Avatar Attach App"; +var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system"); + +var accountChildIcon = 'data:image/svg+xml;utf8,';; + +var button = tablet.addButton({ + text: "ATTACH", + icon: accountChildIcon.replace('black', 'white'), + activeIcon: accountChildIcon +}); + +Script.scriptEnding.connect(function(){ + tablet.removeButton(button); + button = null; +}); + +button.clicked.connect(togglePlatform); +var platformID; + +function togglePlatform() { + + function getNearbyAvatars(origin, sessionUUIDs) { + + var cleanAvatars = sessionUUIDs.filter(function (id) { + if (id == null) { + return false; + } + + var idString = id.toString(); + + if (idString.indexOf(MyAvatar.sessionUUID) === -1) { + return true; + } else { + return false; + } + }); + + return cleanAvatars.map(function(id) { + var avi = AvatarList.getAvatar(id); + avi.$distance = Vec3.distance(origin, avi.position); + return avi; + }).sort(function(a, b) { + return a.$distance < b.$distance ? -1 : a.$distance > b.$distance ? 1 : 0; + }); + + }; + + var nearest = getNearbyAvatars(MyAvatar.position, AvatarList.getAvatarIdentifiers())[0]; + var platformScale = { x: 0.604 * MyAvatar.scale, y: 0.036 * MyAvatar.scale, z: 0.604 * MyAvatar.scale }; + + if(platformID) { + Entities.deleteEntity(platformID); + platformID = null; + MyAvatar.setParentID("null"); + } else if (nearest != null) { + platformID = Entities.addEntity({ + type: "Model", + modelURL: Script.resolvePath("./assets/Halo.fbx"), + position: MyAvatar.position, + rotation: Quat.IDENTITY, + dimensions: platformScale, + collisionMask: 8, + collisionless: false, + shapeType: "box", + parentID: nearest.sessionUUID, + parentJointIndex: 0, + }, "avatar"); // Make it a client entity! We want it to show up/load in other worlds without rez rights. + MyAvatar.setParentID(platformID); + } +} diff --git a/applications/metadata.js b/applications/metadata.js index 449c78a..0087842 100644 --- a/applications/metadata.js +++ b/applications/metadata.js @@ -80,5 +80,14 @@ var metadata = { "applications": [ "icon": "nametags/assets/nametags-i.svg", "caption": "NAMETAGS" }, + { + "isActive": true, + "directory": "attach-avatar-app", + "name": "Attach Avatar", + "description": "Attaches your avatar to another avatar via a collisionless platform.", + "jsfile": "attach-avatar-app/attachAvatarApp.js", + "icon": "attach-avatar-app/assets/account-child-circle.png", + "caption": "ATCH AVI" + } ] }; From 985b7299377f3c521ddf39dbf92cd290f08fa471 Mon Sep 17 00:00:00 2001 From: Kasen IO Date: Wed, 5 Aug 2020 23:11:50 -0400 Subject: [PATCH 2/2] Fix attach avatar icon blurriness. --- applications/attach-avatar-app/attachAvatarApp.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/applications/attach-avatar-app/attachAvatarApp.js b/applications/attach-avatar-app/attachAvatarApp.js index 5c732f0..62e30b7 100644 --- a/applications/attach-avatar-app/attachAvatarApp.js +++ b/applications/attach-avatar-app/attachAvatarApp.js @@ -12,12 +12,12 @@ var APP_NAME = "Avatar Attach App"; var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system"); -var accountChildIcon = 'data:image/svg+xml;utf8,';; +var accountChildIcon = 'data:image/svg+xml;utf8,';; var button = tablet.addButton({ text: "ATTACH", - icon: accountChildIcon.replace('black', 'white'), - activeIcon: accountChildIcon + icon: accountChildIcon, + activeIcon: accountChildIcon.replace('white', 'black') }); Script.scriptEnding.connect(function(){