diff --git a/res/layouts/pages/main.xml b/res/layouts/pages/main.xml index 9c562fb4..a3960666 100644 --- a/res/layouts/pages/main.xml +++ b/res/layouts/pages/main.xml @@ -1,5 +1,6 @@ + diff --git a/res/layouts/pages/scripts.xml b/res/layouts/pages/scripts.xml new file mode 100644 index 00000000..a22e5e91 --- /dev/null +++ b/res/layouts/pages/scripts.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/res/layouts/pages/scripts.xml.lua b/res/layouts/pages/scripts.xml.lua new file mode 100644 index 00000000..3d0faa84 --- /dev/null +++ b/res/layouts/pages/scripts.xml.lua @@ -0,0 +1,40 @@ +function run_script(path) + debug.log("starting application script "..path) + + local code = file.read(path) + local chunk, err = loadstring(code, path) + if chunk == nil then + error(err) + end + setfenv(chunk, setmetatable({app=__vc_app}, {__index=_G})) + start_coroutine(chunk, path) +end + +local function refresh() + document.list:clear() + + local available = pack.get_available() + local infos = pack.get_info(available) + for _, name in ipairs(available) do + local info = infos[name] + local scripts_dir = info.path.."/scripts/app" + if not file.exists(scripts_dir) then + goto continue + end + local files = file.list(scripts_dir) + for _, filename in ipairs(files) do + if file.ext(filename) == "lua" then + document.list:add(gui.template("script", { + pack=name, + name=file.stem(filename), + path=filename + })) + end + end + ::continue:: + end +end + +function on_open() + refresh() +end diff --git a/res/layouts/templates/script.xml b/res/layouts/templates/script.xml new file mode 100644 index 00000000..1ef770d8 --- /dev/null +++ b/res/layouts/templates/script.xml @@ -0,0 +1,3 @@ + diff --git a/res/texts/ru_RU.txt b/res/texts/ru_RU.txt index e78b5f72..d3c40893 100644 --- a/res/texts/ru_RU.txt +++ b/res/texts/ru_RU.txt @@ -34,6 +34,7 @@ graphics.dense-render.tooltip=Включает прозрачность блок menu.Apply=Применить menu.Audio=Звук menu.Back to Main Menu=Вернуться в Меню +menu.Scripts=Сценарии menu.Content Error=Ошибка Контента menu.Content=Контент menu.Continue=Продолжить