From 5a742b8a0f68ee7d44442435425c4580d988651a Mon Sep 17 00:00:00 2001 From: MihailRis Date: Sat, 24 Jan 2026 14:21:38 +0300 Subject: [PATCH 1/2] feat: post-runnables context now allowing to use content-related app.* functions --- res/layouts/pages/content.xml.lua | 4 +++- res/scripts/stdlib.lua | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/res/layouts/pages/content.xml.lua b/res/layouts/pages/content.xml.lua index 89c230ed0..e77141cc4 100644 --- a/res/layouts/pages/content.xml.lua +++ b/res/layouts/pages/content.xml.lua @@ -28,7 +28,9 @@ local function include(id, is_include) end function apply() - core.reconfig_packs(add_packs, rem_packs) + time.post_runnable(function () + app.reconfig_packs(add_packs, rem_packs) + end) if mode ~= "world" then menu:back() end diff --git a/res/scripts/stdlib.lua b/res/scripts/stdlib.lua index 4eb6dd17e..683f27e8a 100644 --- a/res/scripts/stdlib.lua +++ b/res/scripts/stdlib.lua @@ -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 From 3f5fc5376d8fb4c5f18ef76c93a31c1e2afe8733 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Sat, 24 Jan 2026 14:33:38 +0300 Subject: [PATCH 2/2] elevate minimum ore generation height by 6 before blocks generation priority added --- res/content/base/modules/generation/ores.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/content/base/modules/generation/ores.lua b/res/content/base/modules/generation/ores.lua index 3b2c2f915..64b0c2a64 100644 --- a/res/content/base/modules/generation/ores.lua +++ b/res/content/base/modules/generation/ores.lua @@ -18,7 +18,7 @@ function ores.place(placements, x, z, w, d, seed, hmap, chunk_height) for i=1,count do local sx = math.random() * w local sz = math.random() * d - local sy = math.random() * (chunk_height * 0.5) + local sy = math.random() * (chunk_height * 0.5) + 6 if sy < hmap:at(sx, sz) * chunk_height - 6 then table.insert(placements, {ore.struct, {sx, sy, sz}, math.random()*4, -1}) end