diff options
author | Maxim Nikolenko <maximnproductengine@lindenlab.com> | 2024-10-31 13:38:41 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-31 13:38:41 +0200 |
commit | 559e2c1bb223e82f29a00a0cf1556e56073dde3a (patch) | |
tree | febccd7b15a8f86145d5deb3a2902adc8ea023cf /indra/newview/scripts/lua/require | |
parent | fcd8b53a573800f11bf0c5585acf89811e731740 (diff) |
#2962 allow the script to ‘wait’ for a teleport finished/failed event
Diffstat (limited to 'indra/newview/scripts/lua/require')
-rw-r--r-- | indra/newview/scripts/lua/require/teleport_util.lua | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/indra/newview/scripts/lua/require/teleport_util.lua b/indra/newview/scripts/lua/require/teleport_util.lua new file mode 100644 index 0000000000..8a46768e54 --- /dev/null +++ b/indra/newview/scripts/lua/require/teleport_util.lua @@ -0,0 +1,28 @@ +local leap = require 'leap' + +local teleport_util = {} + +local teleport_pump = 'LLTeleport' +local waitfor = leap.WaitFor(0, teleport_pump) +function waitfor:filter(pump, data) + if pump == self.name then + return data + end +end + +function waitfor:process(data) + teleport_util._success = data.success + leap.WaitFor.process(self, data) +end + +leap.request(leap.cmdpump(), + {op='listen', source=teleport_pump, listener='teleport.lua', tweak=true}) + +function teleport_util.wait() + while teleport_util._success == nil do + local item = waitfor:wait() + end + return teleport_util._success +end + +return teleport_util |