aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorne_mene <[email protected]>2026-03-31 23:02:40 +0200
committerne_mene <[email protected]>2026-03-31 23:02:40 +0200
commit0cf536b2ba3854d4ee58c06227c1266870829b6c (patch)
tree791388bff86be24c8f1d8eab112e48e0e798b1f4 /src
parent100063ec501ca94773810c4bb5d55e457b0f3f54 (diff)
speck editor: file buttons
Diffstat (limited to 'src')
-rw-r--r--src/scenes/speck_editor.lua22
-rw-r--r--src/specks.lua4
-rw-r--r--src/utils.lua7
3 files changed, 30 insertions, 3 deletions
diff --git a/src/scenes/speck_editor.lua b/src/scenes/speck_editor.lua
index 96176d0..355bcd1 100644
--- a/src/scenes/speck_editor.lua
+++ b/src/scenes/speck_editor.lua
@@ -68,10 +68,28 @@ local function speck_editor_ui_sys(editor)
im.text("File:")
-- TODO: implement these guys
im.button("New")
- im.button("Open")
+
+ if im.button("Open") then
+ editor.filepath = lw.showFileDialog("savefile", function (files, _, _)
+ if not files[1] or files[1] == "" then
+ return
+ end
+
+ editor.filepath = trunc_filename_to_res(files[1])
+ editor.speck_sys = load_speck_sys_non_cached(editor.filepath)
+
+ end, {defaultname = "res/speck/"})
+ end
if im.button("Save as") then
- save(editor)
+ editor.filepath = lw.showFileDialog("savefile", function (files, _, _)
+ if not files[1] or files[1] == "" then
+ return
+ end
+
+ editor.filepath = trunc_filename_to_res(files[1])
+ save(editor)
+ end, {defaultname = "res/speck/"})
end
if im.button("Save") then
save(editor)
diff --git a/src/specks.lua b/src/specks.lua
index 318bfdd..7c0ef11 100644
--- a/src/specks.lua
+++ b/src/specks.lua
@@ -285,3 +285,7 @@ function load_speck_sys(filename)
return sys
end
+function load_speck_sys_non_cached(filename)
+ speck_bank[filename] = lf.load(filename)()
+ return load_speck_sys(filename)
+end
diff --git a/src/utils.lua b/src/utils.lua
index 5b8258c..e20c88a 100644
--- a/src/utils.lua
+++ b/src/utils.lua
@@ -120,7 +120,7 @@ end
function table.deep_copy(datatable)
local tblRes={}
if type(datatable)=="table" then
- for k,v in pairs(datatable) do
+ for k,v in pairs(datatable) do
tblRes[table.deep_copy(k)] = table.deep_copy(v)
end
else
@@ -129,6 +129,11 @@ function table.deep_copy(datatable)
return tblRes
end
+function trunc_filename_to_res(filename)
+ local index = filename:find("res/", 1, true)
+ return filename:sub(index)
+end
+
EASING_FUNCTIONS = {
Lerp = lerp
}