Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/assets/opensb/scripts
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2023-07-18 17:36:51 +1000
committerKae <80987908+Novaenia@users.noreply.github.com>2023-07-18 17:36:51 +1000
commit6e1d29fe861ef5a81c5458cd8ae68d09f36e28c3 (patch)
tree36fb8a412649f1e749e2b9fc0268e80bc05251fb /assets/opensb/scripts
parent34bb0b54222c1c0f3450c56e76f89f192d77374b (diff)
Provide speaker info to HUD indicators
Diffstat (limited to 'assets/opensb/scripts')
-rw-r--r--assets/opensb/scripts/universeClient/opensb/voice_manager.lua53
1 files changed, 10 insertions, 43 deletions
diff --git a/assets/opensb/scripts/universeClient/opensb/voice_manager.lua b/assets/opensb/scripts/universeClient/opensb/voice_manager.lua
index c07a8c2..d1c540f 100644
--- a/assets/opensb/scripts/universeClient/opensb/voice_manager.lua
+++ b/assets/opensb/scripts/universeClient/opensb/voice_manager.lua
@@ -107,7 +107,6 @@ local function drawSpeakerBar(mouse, pos, speaker, i)
--end
end
end
-local speakersTime = {}
local function simulateSpeakers()
local speakers = {}
@@ -127,11 +126,10 @@ local function drawIndicators()
canvas:clear()
local screenSize = canvas:size()
local mousePosition = canvas:mousePosition()
- sb.setLogMap("mousePosition", sb.printJson(mousePosition))
local basePos = {screenSize[1] - 350, 50}
-- sort it ourselves for now
- local speakersRemaining, speakersSorted = {}, {}
+ local speakersRemaining, speakers = {}, {}
local hoveredSpeakerId = nil
if hoveredSpeaker then
if not mouseOverSpeaker(mousePosition, hoveredSpeakerPosition, 16) then
@@ -141,63 +139,32 @@ local function drawIndicators()
end
end
- --local speakers = voice.speakers()
- local speakers = { -- just testing before implementing voice lua functions
- {
- speakerId = 1,
- entityId = -65536,
- loudness = -96 + math.random() * 96,
- muted = false,
- name = "theres a pipe bomb up my ass"
- }
- }
-
- local sortI = 0
+ local speakerCount = 0
local now = os.clock()
- for i, speaker in pairs(speakers) do
+ for i, speaker in pairs(voice.speakers()) do
local speakerId = speaker.speakerId
speakersRemaining[speakerId] = true
- local t = speakersTime[speakerId]
- if not t then
- t = now
- speakersTime[speakerId] = t
- end
- speaker.startTime = t
if speakerId == hoveredSpeakerId then
hoveredSpeaker = speaker
else
- sortI = sortI + 1
- speakersSorted[sortI] = speaker
+ speakerCount = speakerCount + 1
+ speakers[speakerCount] = speaker
end
end
- for i, v in pairs(speakersTime) do
- if not speakersRemaining[i] then
- speakersTime[i] = nil
- end
- end
-
- table.sort(speakersSorted, function(a, b)
- if a.startTime == b.startTime then
- return a.speakerId < b.speakerId
- else
- return a.startTime < b.startTime
- end
- end)
-
if hoveredSpeaker then
- local len = #speakersSorted
+ local len = #speakers
if hoveredSpeakerIndex > len then
for i = len + 1, hoveredSpeakerIndex - 1 do
- speakersSorted[i] = false
+ speakers[i] = false
end
- speakersSorted[hoveredSpeakerIndex] = hoveredSpeaker
+ speakers[hoveredSpeakerIndex] = hoveredSpeaker
else
- table.insert(speakersSorted, hoveredSpeakerIndex, hoveredSpeaker)
+ table.insert(speakers, hoveredSpeakerIndex, hoveredSpeaker)
end
end
- for i, v in pairs(speakersSorted) do
+ for i, v in pairs(speakers) do
if v then
local entityId = v.entityId
local loudness = v.loudness