From e544d797e210931ff48082b91116436520ec077c Mon Sep 17 00:00:00 2001 From: MihailRis Date: Wed, 19 Aug 2026 23:50:09 +0300 Subject: [PATCH] fix --- res/modules/animation.lua | 22 ++++++++++++++-------- res/scripts/components/animator.lua | 4 +--- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/res/modules/animation.lua b/res/modules/animation.lua index dd89da237..bc2b29fb5 100644 --- a/res/modules/animation.lua +++ b/res/modules/animation.lua @@ -110,7 +110,7 @@ local env = { } table.extend(env, math) -local function codegen_track(lines, memoised, keysets) +local function codegen_track(raw_track, lines, memoised, keysets) local code = "" local translation = {false, false, false} local rotation = {false, false, false} @@ -121,8 +121,8 @@ local function codegen_track(lines, memoised, keysets) elseif line.keys then keysets[i] = line.keys code = code .. string.format( - "\n local l%d = value_at(keysets[%d], t * 3 %% 60, %s)", - i, i, line.interp) + "\n local l%d = value_at(keysets[%d], t * %s, %s)", + i, i, raw_track.fps, line.interp) end if line.channel == CH_TRANSLATE then @@ -241,27 +241,33 @@ function this.compile_track(raw_track, track_name) local keysets = {} for bone, lineset in pairs(raw_track.linesets) do - local lineset_code = codegen_track(lineset.lines, memoised, keysets) + local lineset_code = codegen_track( + raw_track, lineset.lines, memoised, keysets) + code = code .. "\n do" .. lineset_code .. "\n end\n" .. " rig:set_matrix(rig:index(" .. string.escape(bone) .. "), dst)\n" end local memoised_code = "" for name, expression in pairs(memoised) do - memoised_code = memoised_code .. "\n local " .. name .. " = " .. expression + memoised_code = memoised_code .. "\n local " .. name .. " = " + .. expression end if #memoised_code > 0 then code = memoised_code .. "\n" .. code end - local src = "return function(rig, t, m)\n local dst = DST\n" .. code .. "\nend" + local src = "return function(rig, t, m)\n local dst = DST\n" + .. code .. "\nend" if TRACE_CODEGEN then - debug.log("["..string.escape(track_name or "nil").." codegen trace]:\n"..code) + debug.log("[".. + string.escape(track_name or "nil").." codegen trace]:\n"..src) end - local generator, err = load(src, "", "bt", table.extend({keysets = keysets}, env)) + local generator, err = load( + src, "", "bt", table.extend({keysets = keysets}, env)) if not generator then error(err) end diff --git a/res/scripts/components/animator.lua b/res/scripts/components/animator.lua index cec1cc3b9..dc80066db 100644 --- a/res/scripts/components/animator.lua +++ b/res/scripts/components/animator.lua @@ -1,6 +1,4 @@ -local tsf = entity.transform local rig = entity.skeleton -local body = entity.rigidbody local states = {} @@ -37,7 +35,7 @@ function set_state(name, fade_time) end local function update(delta) - for key, state in pairs(states) do + for _, state in pairs(states) do state.timer = state.timer + delta local intensity = state.fade_in and 1.0 or 0.0