mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-04 18:41:51 +00:00
feat: post-runnables context now allowing to use content-related app.* functions
This commit is contained in:
parent
89485dc592
commit
5a742b8a0f
2 changed files with 18 additions and 2 deletions
|
|
@ -25,6 +25,7 @@ function tb_frame_tostring(frame)
|
|||
end
|
||||
|
||||
local __vc__app_script_coroutine
|
||||
local __vc__is_post_runnable = false
|
||||
|
||||
local function complete_app_lib(app)
|
||||
local __app_load_content = app.load_content
|
||||
|
|
@ -44,6 +45,10 @@ local function complete_app_lib(app)
|
|||
app.tick = __app_tick
|
||||
|
||||
local function call_in_app_script_co(func, ...)
|
||||
if __vc__is_post_runnable then
|
||||
func(...)
|
||||
return
|
||||
end
|
||||
local running = coroutine.running()
|
||||
if not running or running ~= __vc__app_script_coroutine then
|
||||
error("content must be reload in application script coroutine")
|
||||
|
|
@ -513,7 +518,7 @@ local fn_audio_reset_fetch_buffer = audio.__reset_fetch_buffer
|
|||
audio.__reset_fetch_buffer = nil
|
||||
core.get_core_token = audio.input.__get_core_token
|
||||
|
||||
function __process_post_runnables()
|
||||
local function __vc__process_post_runnables()
|
||||
if #__post_runnables then
|
||||
for _, func in ipairs(__post_runnables) do
|
||||
local status, result = xpcall(func, __vc__error)
|
||||
|
|
@ -547,6 +552,15 @@ function __process_post_runnables()
|
|||
end
|
||||
end
|
||||
|
||||
function __process_post_runnables()
|
||||
__vc__is_post_runnable = true
|
||||
local success, err = pcall(__vc__process_post_runnables)
|
||||
if not success then
|
||||
debug.error("an error ocurred while processing post-runnables: ".. err)
|
||||
end
|
||||
__vc__is_post_runnable = false
|
||||
end
|
||||
|
||||
function time.post_runnable(runnable)
|
||||
table.insert(__post_runnables, runnable)
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue