Added mute to mod.js script

This commit is contained in:
David Kelly 2016-11-11 11:18:24 -08:00
parent 9c8f22e0e7
commit 3d7e075897
2 changed files with 83 additions and 16 deletions

View file

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 293 101.9" style="enable-background:new 0 0 293 101.9;" xml:space="preserve">
<style type="text/css">
.st0{fill:#EF3B4E;}
.st1{fill:#FFFFFF;}
</style>
<path d="M16.2,23.2H283c3.9,0,7.1,3.2,7.1,7.1V88c0,3.9-3.2,7.1-7.1,7.1H16.2c-3.9,0-7.1-3.2-7.1-7.1V30.3
C9.1,26.4,12.3,23.2,16.2,23.2z"/>
<path class="st0" d="M13.9,20.3h266.8c3.9,0,7.1,3.2,7.1,7.1v57.7c0,3.9-3.2,7.1-7.1,7.1H13.9c-3.9,0-7.1-3.2-7.1-7.1V27.4
C6.8,23.5,10,20.3,13.9,20.3z"/>
<g>
<g>
<path d="M103.4,79.8V52.4L92.8,72.8h-4.4L77.7,52.4v27.4h-8.1V38.3h8.6l12.3,23.6l12.4-23.6h8.6v41.5H103.4z"/>
<path d="M137.6,73c1.9,0,3.5-0.4,4.8-1.2c1.3-0.8,2.4-1.8,3.2-3c0.8-1.2,1.4-2.7,1.7-4.3c0.3-1.6,0.5-3.3,0.5-5V38.3h8v21.1
c0,2.8-0.3,5.5-1,8c-0.7,2.5-1.8,4.7-3.2,6.5c-1.5,1.9-3.3,3.3-5.6,4.4c-2.3,1.1-5,1.6-8.2,1.6c-3.3,0-6.1-0.6-8.4-1.7
c-2.3-1.1-4.2-2.7-5.6-4.6c-1.4-1.9-2.5-4.1-3.1-6.6c-0.6-2.5-1-5.1-1-7.8V38.3h8.1v21.1c0,1.8,0.2,3.4,0.5,5.1
c0.3,1.6,0.9,3,1.7,4.3c0.8,1.2,1.8,2.2,3.1,3C134.2,72.6,135.7,73,137.6,73z"/>
<path d="M194.8,45.4h-13.2v34.4h-8.1V45.4h-13.3v-7.1h34.5V45.4z"/>
<path d="M228.8,72.7v7.1H200V38.3h28.3v7.1h-20.2v10h17.5v6.5h-17.5v10.8H228.8z"/>
</g>
<g>
<path class="st1" d="M101.5,77.9V50.4L90.8,70.9h-4.4L75.7,50.4v27.4h-8.1V36.4h8.6L88.6,60L101,36.4h8.6v41.5H101.5z"/>
<path class="st1" d="M135.7,71c1.9,0,3.5-0.4,4.8-1.2c1.3-0.8,2.4-1.8,3.2-3c0.8-1.2,1.4-2.7,1.7-4.3c0.3-1.6,0.5-3.3,0.5-5V36.4
h8v21.1c0,2.8-0.3,5.5-1,8c-0.7,2.5-1.8,4.7-3.2,6.5c-1.5,1.9-3.3,3.3-5.6,4.4c-2.3,1.1-5,1.6-8.2,1.6c-3.3,0-6.1-0.6-8.4-1.7
c-2.3-1.1-4.2-2.7-5.6-4.6c-1.4-1.9-2.5-4.1-3.1-6.6c-0.6-2.5-1-5.1-1-7.8V36.4h8.1v21.1c0,1.8,0.2,3.4,0.5,5.1
c0.3,1.6,0.9,3,1.7,4.3c0.8,1.2,1.8,2.2,3.1,3C132.2,70.6,133.8,71,135.7,71z"/>
<path class="st1" d="M192.9,43.5h-13.2v34.4h-8.1V43.5h-13.3v-7.1h34.5V43.5z"/>
<path class="st1" d="M226.9,70.8v7.1h-28.8V36.4h28.3v7.1h-20.2v10h17.5V60h-17.5v10.8H226.9z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View file

@ -52,7 +52,9 @@ function removeOverlays() {
for (var i = 0; i < modOverlayKeys.length; ++i) {
var avatarID = modOverlayKeys[i];
Overlays.deleteOverlay(modOverlays[avatarID]);
for (var j = 0; j < modOverlays[avatarID].length; ++j) {
Overlays.deleteOverlay(modOverlays[avatarID][j]);
}
}
modOverlays = {};
@ -74,10 +76,14 @@ function buttonClicked(){
button.clicked.connect(buttonClicked);
function overlayURL() {
function kickOverlayURL() {
return ASSETS_PATH + "/images/" + (Users.canKick ? "kick-target.svg" : "ignore-target.svg");
}
function muteOverlayURL() {
return ASSETS_PATH + "/images/" + "mute-target.svg";
}
function updateOverlays() {
if (isShowingOverlays) {
@ -101,20 +107,28 @@ function updateOverlays() {
}
// setup a position for the overlay that is just above this avatar's head
var overlayPosition = avatar.getJointPosition("Head");
overlayPosition.y += 0.45;
var kickOverlayPosition = avatar.getJointPosition("Head");
kickOverlayPosition.y += 0.45;
var muteOverlayPosition = avatar.getJointPosition("Head");
muteOverlayPosition.y += 0.70;
if (avatarID in modOverlays) {
// keep the overlay above the current position of this avatar
Overlays.editOverlay(modOverlays[avatarID], {
position: overlayPosition,
url: overlayURL()
Overlays.editOverlay(modOverlays[avatarID][0], {
position: kickOverlayPosition,
url: kickOverlayURL()
});
if (Users.canKick) {
Overlays.editOverlay(modOverlays[avatarID][1], {
position: muteOverlayPosition,
url: muteOverlayURL()
});
}
} else {
// add the overlay above this avatar
var newOverlay = Overlays.addOverlay("image3d", {
url: overlayURL(),
position: overlayPosition,
var newKickOverlay = Overlays.addOverlay("image3d", {
url: kickOverlayURL(),
position: kickOverlayPosition,
size: 1,
scale: 0.4,
color: { red: 255, green: 255, blue: 255},
@ -123,9 +137,24 @@ function updateOverlays() {
isFacingAvatar: true,
drawInFront: true
});
// push this overlay to our array of overlays
modOverlays[avatarID] = newOverlay;
modOverlays[avatarID]=[newKickOverlay];
if (Users.canKick) {
var newMuteOverlay = Overlays.addOverlay("image3d", {
url: muteOverlayURL(),
position: muteOverlayPosition,
size: 1,
scale: 0.4,
color: { red: 255, green: 255, blue: 255},
alpha: 1,
solid: true,
isFacingAvatar: true,
drawInFront: true
});
// push this overlay to our array of overlays
modOverlays[avatarID].push(newMuteOverlay);
}
}
}
}
@ -138,7 +167,9 @@ AvatarList.avatarRemovedEvent.connect(function(avatarID){
// we are currently showing overlays and an avatar just went away
// first remove the rendered overlay
Overlays.deleteOverlay(modOverlays[avatarID]);
for (var overlay in modOverlays[avatarID]) {
Overlays.deleteOverlay(overlay);
}
// delete the saved ID of the overlay from our mod overlays object
delete modOverlays[avatarID];
@ -151,7 +182,8 @@ function handleSelectedOverlay(clickedOverlay) {
var modOverlayKeys = Object.keys(modOverlays);
for (var i = 0; i < modOverlayKeys.length; ++i) {
var avatarID = modOverlayKeys[i];
var modOverlay = modOverlays[avatarID];
var modOverlay = modOverlays[avatarID][0];
var muteOverlay = modOverlays[avatarID][1];
if (clickedOverlay.overlayID == modOverlay) {
// matched to an overlay, ask for the matching avatar to be kicked or ignored
@ -160,8 +192,10 @@ function handleSelectedOverlay(clickedOverlay) {
} else {
Users.ignore(avatarID);
}
// cleanup of the overlay is handled by the connection to avatarRemovedEvent
} else if (muteOverlay && clickedOverlay.overlayID == muteOverlay) {
Users.mute(avatarID);
}
}
}