mirror of
https://github.com/overte-org/overte.git
synced 2025-04-08 17:54:20 +02:00
Added mute to mod.js script
This commit is contained in:
parent
9c8f22e0e7
commit
3d7e075897
2 changed files with 83 additions and 16 deletions
33
scripts/system/assets/images/mute-target.svg
Executable file
33
scripts/system/assets/images/mute-target.svg
Executable 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 |
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue