From ef4207aed092bee8a0f1a658fadcae84d1324d51 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Fri, 2 Oct 2026 17:44:48 +0300 Subject: [PATCH] fixes --- res/modules/animation.lua | 3 +++ res/modules/internal/animation_codegen.lua | 4 ++-- res/scripts/components/animator.lua | 6 +++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/res/modules/animation.lua b/res/modules/animation.lua index 817b1611f..0c7bb7741 100644 --- a/res/modules/animation.lua +++ b/res/modules/animation.lua @@ -135,6 +135,9 @@ function internals.on_animation_frame() if track_info.__timer > track.duration then table.remove(playing_tracks, i) else + if track_info.target.reset_pose then + track_info.target:reset_pose() + end track.func(track_info.target, track_info.__timer) end end diff --git a/res/modules/internal/animation_codegen.lua b/res/modules/internal/animation_codegen.lua index 0b96dc15b..525240f66 100644 --- a/res/modules/internal/animation_codegen.lua +++ b/res/modules/internal/animation_codegen.lua @@ -247,7 +247,7 @@ end local function codegen_object_target(raw_track, context) local code = "\n if target.set_pos then\n" - code = code .. " local dst = DST\n" + code = code .. " local dst = mat4.idt()\n" local lineset = raw_track.linesets[""] if not lineset then return "" @@ -302,7 +302,7 @@ function internals.compile_animation_track(raw_track, track_name) code = memoised_code .. "\n" .. code end - local src = "return function(target, t, intensity, m)\n m = m or 1\n" + local src = "return function(target, t, intensity, m)\n m = m or 1\n intensity = intensity or 1.0\n" .. code .. "\nend" if animation.TRACE_CODEGEN then diff --git a/res/scripts/components/animator.lua b/res/scripts/components/animator.lua index 341f7cf11..e5f959df7 100644 --- a/res/scripts/components/animator.lua +++ b/res/scripts/components/animator.lua @@ -12,7 +12,7 @@ function create_state(name, track_id, max_intencity) fade_time = 0.0, fade_timer = 0.0, fade_in = false, - max_intencity = max_intencity, + max_intencity = max_intencity or 1.0, } end @@ -25,14 +25,14 @@ function set_state(name, fade_time) end if current_state then current_state.fade_in = false - current_state.fade_time = fade_time + current_state.fade_time = fade_time or 0.0 current_state.fade_timer = 0.0 end current_state = state if state then state.timer = 0.0 state.fade_in = true - state.fade_time = fade_time + state.fade_time = fade_time or 0.0 state.fade_timer = 0.0 end end