33 lines
864 B
Lua
33 lines
864 B
Lua
local tsf = entity.transform
|
|
local body = entity.rigidbody
|
|
local rig = entity.skeleton
|
|
|
|
local itemid = 0
|
|
local headIndex = rig:index("head")
|
|
local itemIndex = rig:index("item")
|
|
local bodyIndex = rig:index("body")
|
|
|
|
local function refresh_model(id)
|
|
itemid = id
|
|
rig:set_model(itemIndex, item.model_name(itemid))
|
|
rig:set_matrix(itemIndex, mat4.rotate({0, 1, 0}, -80))
|
|
end
|
|
|
|
function on_render()
|
|
local pid = entity:get_player()
|
|
if pid == -1 then
|
|
return
|
|
end
|
|
|
|
local rx, ry, rz = player.get_rot(pid, pid ~= hud.get_player())
|
|
rig:set_matrix(headIndex, mat4.rotate({1, 0, 0}, ry))
|
|
rig:set_matrix(bodyIndex, mat4.rotate({0, 1, 0}, rx))
|
|
|
|
local invid, slotid = player.get_inventory(pid)
|
|
local id, _ = inventory.get(invid, slotid)
|
|
if id ~= itemid then
|
|
refresh_model(id)
|
|
end
|
|
end
|
|
|