fix custom curves

This commit is contained in:
MihailRis 2026-09-29 18:39:46 +03:00
parent ac3d4a5148
commit ea63d29221

View file

@ -15,12 +15,14 @@ local exclude_patters = {
} }
-- TODO: replace with actual expression -> lua translator -- TODO: replace with actual expression -> lua translator
local function process_expression(src, memoised, ismul) local function process_expression(src, memoised, ismul, iscurve)
if not iscurve then
if ismul then if ismul then
src = string.format("(%s) * intensity + (1.0 - intensity)", src) src = string.format("(%s) * intensity + (1.0 - intensity)", src)
else else
src = string.format("(%s) * intensity", src) src = string.format("(%s) * intensity", src)
end end
end
for i, pattern in ipairs(exclude_patters) do for i, pattern in ipairs(exclude_patters) do
if src:find(pattern) then if src:find(pattern) then
@ -284,7 +286,7 @@ function internals.compile_animation_track(raw_track, track_name)
for name, curve in pairs(raw_track.curves) do for name, curve in pairs(raw_track.curves) do
context.curves[name] = load(string.format( context.curves[name] = load(string.format(
"return function(kl, kr, t) return %s end", "return function(kl, kr, t) return %s end",
process_expression(curve.func, context.memoised) process_expression(curve.func, context.memoised, false, true)
), "<curve>", "t", env)() ), "<curve>", "t", env)()
end end