summaryrefslogtreecommitdiff
path: root/indra/newview/scripts/lua/test_luafloater_speedometer.lua
diff options
context:
space:
mode:
authornat-goodspeed <nat@lindenlab.com>2024-06-20 13:55:10 -0400
committerGitHub <noreply@github.com>2024-06-20 13:55:10 -0400
commitd7d18aaad0e7b8412e50fd82d446d31611207175 (patch)
treec567fbc724c9f19442d476a47e5cc8e431b0760b /indra/newview/scripts/lua/test_luafloater_speedometer.lua
parente92689063bdbe34907348a12f1db39bc81132783 (diff)
parent3a2018ddda6feb1aaa023106f95de6d8e0a0b507 (diff)
Merge pull request #1297 from secondlife/lua-speedometer-demo
Add demo script with idle and notification interactions
Diffstat (limited to 'indra/newview/scripts/lua/test_luafloater_speedometer.lua')
-rw-r--r--indra/newview/scripts/lua/test_luafloater_speedometer.lua32
1 files changed, 32 insertions, 0 deletions
diff --git a/indra/newview/scripts/lua/test_luafloater_speedometer.lua b/indra/newview/scripts/lua/test_luafloater_speedometer.lua
new file mode 100644
index 0000000000..a9d3a70330
--- /dev/null
+++ b/indra/newview/scripts/lua/test_luafloater_speedometer.lua
@@ -0,0 +1,32 @@
+local Floater = require 'Floater'
+local leap = require 'leap'
+local LLNotification = require 'LLNotification'
+local startup = require 'startup'
+local Timer = (require 'timers').Timer
+local max_speed = 0
+local flt = Floater:new("luafloater_speedometer.xml")
+startup.wait('STATE_STARTED')
+
+local timer
+
+function flt:floater_close(event_data)
+ if timer then
+ timer:cancel()
+ end
+ msg = "Registered max speed: " .. string.format("%.2f", max_speed) .. " m/s";
+ LLNotification.add('SystemMessageTip', {MESSAGE = msg})
+end
+
+local function idle(event_data)
+ local speed = leap.request('LLVOAvatar', {op='getSpeed'})['value']
+ flt:post({action="set_value", ctrl_name="speed_lbl", value = string.format("%.2f", speed)})
+ max_speed=math.max(max_speed, speed)
+end
+
+msg = 'Are you sure you want to run this "speedometer" script?'
+response = LLNotification.requestAdd('GenericAlertYesCancel', {MESSAGE = msg})
+
+if response.OK_okcancelbuttons then
+ flt:show()
+ timer = Timer:new(1, idle, true) -- iterate
+end