From d163f12e6796379fcf4536e8ee2abe5413561260 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Tue, 4 Nov 2025 12:13:55 +0300 Subject: [PATCH] fix --- res/scripts/stdlib.lua | 4 ++-- src/logic/scripting/scripting.cpp | 17 +++-------------- src/logic/scripting/scripting.hpp | 1 - 3 files changed, 5 insertions(+), 17 deletions(-) diff --git a/res/scripts/stdlib.lua b/res/scripts/stdlib.lua index 447f7dd4..4443eed3 100644 --- a/res/scripts/stdlib.lua +++ b/res/scripts/stdlib.lua @@ -198,8 +198,8 @@ function __vc_start_app_script(path) error(err) end local script_env = setmetatable({app = app or __vc_app}, {__index=_G}) - setfenv(chunk, script_env) - return start_coroutine(chunk, path) + chunk = setfenv(chunk, script_env) + return __vc_start_coroutine(chunk, path) end gui_util = require "core:internal/gui_util" diff --git a/src/logic/scripting/scripting.cpp b/src/logic/scripting/scripting.cpp index c15f30aa..586feeb8 100644 --- a/src/logic/scripting/scripting.cpp +++ b/src/logic/scripting/scripting.cpp @@ -151,13 +151,10 @@ std::unique_ptr scripting::load_client_project_script( return std::make_unique(L, std::move(env)); } -static std::unique_ptr start_lua_coroutine( - const io::path& script, const std::string& method -) { +std::unique_ptr scripting::start_app_script(const io::path& script) { auto L = lua::get_main_state(); - if (lua::getglobal(L, method)) { - auto source = io::read_string(script); - lua::loadbuffer(L, 0, source, script.name()); + if (lua::getglobal(L, "__vc_start_app_script")) { + lua::pushstring(L, script.string()); if (lua::call(L, 1)) { int id = lua::tointeger(L, -1); lua::pop(L, 1); @@ -168,14 +165,6 @@ static std::unique_ptr start_lua_coroutine( return nullptr; } -std::unique_ptr scripting::start_coroutine(const io::path& script) { - return start_lua_coroutine(script, "__vc_start_coroutine"); -} - -std::unique_ptr scripting::start_app_script(const io::path& script) { - return start_lua_coroutine(script, "__vc_start_app_script"); -} - [[nodiscard]] scriptenv scripting::get_root_environment() { return std::make_shared(0); } diff --git a/src/logic/scripting/scripting.hpp b/src/logic/scripting/scripting.hpp index 2f45ae60..d9c7e614 100644 --- a/src/logic/scripting/scripting.hpp +++ b/src/logic/scripting/scripting.hpp @@ -76,7 +76,6 @@ namespace scripting { const io::path& script ); - std::unique_ptr start_coroutine(const io::path& script); std::unique_ptr start_app_script(const io::path& script); void on_world_load(LevelController* controller);