mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-14 15:31:49 +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)
|
table.extend(env, math)
|
||||||
|
|
||||||
local function codegen_track(lines, memoised, keysets)
|
local function codegen_track(raw_track, lines, memoised, keysets)
|
||||||
local code = ""
|
local code = ""
|
||||||
local translation = {false, false, false}
|
local translation = {false, false, false}
|
||||||
local rotation = {false, false, false}
|
local rotation = {false, false, false}
|
||||||
|
|
@ -121,8 +121,8 @@ local function codegen_track(lines, memoised, keysets)
|
||||||
elseif line.keys then
|
elseif line.keys then
|
||||||
keysets[i] = line.keys
|
keysets[i] = line.keys
|
||||||
code = code .. string.format(
|
code = code .. string.format(
|
||||||
"\n local l%d = value_at(keysets[%d], t * 3 %% 60, %s)",
|
"\n local l%d = value_at(keysets[%d], t * %s, %s)",
|
||||||
i, i, line.interp)
|
i, i, raw_track.fps, line.interp)
|
||||||
end
|
end
|
||||||
|
|
||||||
if line.channel == CH_TRANSLATE then
|
if line.channel == CH_TRANSLATE then
|
||||||
|
|
@ -241,27 +241,33 @@ function this.compile_track(raw_track, track_name)
|
||||||
local keysets = {}
|
local keysets = {}
|
||||||
|
|
||||||
for bone, lineset in pairs(raw_track.linesets) do
|
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" ..
|
code = code .. "\n do" .. lineset_code .. "\n end\n" ..
|
||||||
" rig:set_matrix(rig:index(" .. string.escape(bone) .. "), dst)\n"
|
" rig:set_matrix(rig:index(" .. string.escape(bone) .. "), dst)\n"
|
||||||
end
|
end
|
||||||
|
|
||||||
local memoised_code = ""
|
local memoised_code = ""
|
||||||
for name, expression in pairs(memoised) do
|
for name, expression in pairs(memoised) do
|
||||||
memoised_code = memoised_code .. "\n local " .. name .. " = " .. expression
|
memoised_code = memoised_code .. "\n local " .. name .. " = "
|
||||||
|
.. expression
|
||||||
end
|
end
|
||||||
|
|
||||||
if #memoised_code > 0 then
|
if #memoised_code > 0 then
|
||||||
code = memoised_code .. "\n" .. code
|
code = memoised_code .. "\n" .. code
|
||||||
end
|
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
|
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
|
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
|
if not generator then
|
||||||
error(err)
|
error(err)
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,4 @@
|
||||||
local tsf = entity.transform
|
|
||||||
local rig = entity.skeleton
|
local rig = entity.skeleton
|
||||||
local body = entity.rigidbody
|
|
||||||
|
|
||||||
local states = {}
|
local states = {}
|
||||||
|
|
||||||
|
|
@ -37,7 +35,7 @@ function set_state(name, fade_time)
|
||||||
end
|
end
|
||||||
|
|
||||||
local function update(delta)
|
local function update(delta)
|
||||||
for key, state in pairs(states) do
|
for _, state in pairs(states) do
|
||||||
state.timer = state.timer + delta
|
state.timer = state.timer + delta
|
||||||
|
|
||||||
local intensity = state.fade_in and 1.0 or 0.0
|
local intensity = state.fade_in and 1.0 or 0.0
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue