summaryrefslogtreecommitdiff
path: root/indra/newview/scripts/lua/test_animation.lua
blob: c16fef4918fc79d6fc9b2f76fd966f3f35217895 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
LLInventory = require 'LLInventory'
LLAgent = require 'LLAgent'

-- Get 'Animations' folder id (you can see all folder types via LLInventory.getFolderTypeNames())
animations_id = LLInventory.getBasicFolderID('animatn')
-- Get animations from the 'Animation' folder (you can see all folder types via LLInventory.getAssetTypeNames())
anims = LLInventory.collectDescendentsIf{folder_id=animations_id, type="animatn"}.items

local anim_ids = {}
for key in pairs(anims) do
    table.insert(anim_ids, key)
end

-- Start playing a random animation
math.randomseed(os.time())
local random_id = anim_ids[math.random(#anim_ids)]
local anim_info = LLAgent.getAnimationInfo(random_id)

print("Starting animation locally: " .. anims[random_id].name)
print("Loop: " .. anim_info.is_loop .. " Joints: " .. anim_info.num_joints .. " Duration " .. tonumber(string.format("%.2f", anim_info.duration)))
LLAgent.playAnimation{item_id=random_id}

-- Stop animation after 3 sec if it's looped or longer than 3 sec
if anim_info.is_loop == 1 or anim_info.duration > 3 then
    LL.sleep(3)
    print("Stop animation.")
    LLAgent.stopAnimation(random_id)
end