mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-12 22:41:49 +00:00
feat: animation track as asset (WIP)
This commit is contained in:
parent
df5bc1f9fe
commit
104c74e653
10 changed files with 86 additions and 24 deletions
|
|
@ -279,7 +279,7 @@ end
|
|||
|
||||
local cached_tracks = {}
|
||||
|
||||
function this.load_vca(filepath)
|
||||
function this.load_vca(filepath, identifier)
|
||||
local track = cached_tracks[filepath]
|
||||
if track then
|
||||
return track
|
||||
|
|
@ -287,8 +287,16 @@ function this.load_vca(filepath)
|
|||
local source = file.read(filepath)
|
||||
local raw_track = parse_track(xml.parse_vcd(source, "track"))
|
||||
track = this.compile_track(raw_track, filepath)
|
||||
cached_tracks[filepath] = track
|
||||
cached_tracks[identifier] = track
|
||||
return track
|
||||
end
|
||||
|
||||
function this.get_track(identifier)
|
||||
return cached_tracks[identifier]
|
||||
end
|
||||
|
||||
function __vc_internals.load_vca_animation(filepath, identifier)
|
||||
this.load_vca(filepath, identifier)
|
||||
end
|
||||
|
||||
return this
|
||||
|
|
|
|||
|
|
@ -2,9 +2,10 @@ local rig = entity.skeleton
|
|||
|
||||
local states = {}
|
||||
|
||||
function create_state(name, track, max_intencity)
|
||||
function create_state(name, track_id, max_intencity)
|
||||
states[name] = {
|
||||
track = track,
|
||||
track = nil,
|
||||
track_id = track_id,
|
||||
timer = 0.0,
|
||||
fade_time = 0.0,
|
||||
fade_timer = 0.0,
|
||||
|
|
@ -47,6 +48,7 @@ local function update(delta)
|
|||
end
|
||||
end
|
||||
|
||||
state.track = state.track or animation.get_track(state.track_id)
|
||||
if state.track and intensity > 0.0 then
|
||||
state.track.func(rig, state.timer, intensity * state.max_intencity)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -332,6 +332,8 @@ end
|
|||
world.raycast = entities.__world_raycast
|
||||
entities.__world_raycast = nil
|
||||
|
||||
animation = require "core:animation"
|
||||
|
||||
__vc_scripts_registry = require "core:internal/scripts_registry"
|
||||
|
||||
file.open = require "core:internal/stream_providers/file"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue