mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-04 10:31:50 +00:00
fix
This commit is contained in:
parent
834a0e85d8
commit
e544d797e2
2 changed files with 15 additions and 11 deletions
|
|
@ -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, "<expr>", "bt", table.extend({keysets = keysets}, env))
|
||||
local generator, err = load(
|
||||
src, "<expr>", "bt", table.extend({keysets = keysets}, env))
|
||||
if not generator then
|
||||
error(err)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue