From cc36e64f7eadcaf2c019227bb1edeffdae2f7872 Mon Sep 17 00:00:00 2001 From: KikooDX Date: Mon, 24 Feb 2020 12:11:02 +0100 Subject: [PATCH] Smart save/load system, lot of new shortcuts --- keyboard.lua | 47 +++++++++++++++++++++++++++++++++++++++++------ load.lua | 4 +++- main.lua | 2 +- save.lua | 20 +++++++++++++------- 4 files changed, 58 insertions(+), 15 deletions(-) diff --git a/keyboard.lua b/keyboard.lua index 522ac74..9a03f35 100644 --- a/keyboard.lua +++ b/keyboard.lua @@ -1,7 +1,41 @@ function update_keyboard() --get keys inputs - --debug key - if love.keyboard.isDown("d") then debug.debug() end + --change screen + local buffer = k_q + k_q = love.keyboard.isScancodeDown("a") + if k_q and not buffer and screen_id%100 > 0 then + save() + screen_id = screen_id - 1 + load() + end + local buffer = k_d + k_d = love.keyboard.isScancodeDown("d") + if k_d and not buffer and screen_id%100 < 99 then + save() + screen_id = screen_id + 1 + load() + end + local buffer = k_z + k_z = love.keyboard.isScancodeDown("w") + if k_z and not buffer and screen_id < 9900 then + save() + screen_id = screen_id + 100 + load() + end + local buffer = k_s + k_s = love.keyboard.isScancodeDown("s") + if k_s and not buffer and screen_id > 100 then + save() + screen_id = screen_id - 100 + load() + end + local buffer = k_i + k_i = love.keyboard.isScancodeDown("i") + if k_i and not buffer then + save() + screen_id = 5050 + load() + end --swap selected object local buffer = k_tab k_tab = love.keyboard.isScancodeDown("tab") @@ -18,14 +52,15 @@ function update_keyboard() love.event.quit() end --saving/export - local buffer = k_s - k_s = love.keyboard.isDown("s") - if k_s and not buffer then - print(save()) + local buffer = k_c + k_c = love.keyboard.isDown("c") + if k_c and not buffer then + save() end local buffer = k_o k_o = love.keyboard.isDown("o") if k_o and not buffer then + load() end --scaling local buffer = k_k diff --git a/load.lua b/load.lua index 7f5986d..0ba3ffe 100644 --- a/load.lua +++ b/load.lua @@ -1,8 +1,10 @@ --scaling settings love.graphics.setDefaultFilter("nearest", "nearest") -selected_screen = "000000000000000000000000000000000000000000000000000000......................0000......................0000......................0000......................0000......................0000......................0000......................0000......................0000......................0000......................0000......................000000000000000000000000000000000000000000000000000000" +default_screen = "000000000000000000000000000000000000000000000000000000......................0000......................0000......................0000......................0000......................0000......................0000......................0000......................0000......................0000......................0000......................000000000000000000000000000000000000000000000000000000" SCREEN_LEN = 390 +screen_id = 5050 +load() path = "../platformer/" --font diff --git a/main.lua b/main.lua index a63271f..82d9dc8 100644 --- a/main.lua +++ b/main.lua @@ -1,9 +1,9 @@ function love.load() + require("save") require("load") require("update") require("draw") require("mouse") require("keyboard") require("tiles") - require("save") end diff --git a/save.lua b/save.lua index 0ef4348..9cfb5a0 100644 --- a/save.lua +++ b/save.lua @@ -1,13 +1,19 @@ function save() - output = "\n-" - for i = 1, 28, 1 do output = "-"..output end - for i = 1, #selected_screen, 1 do - output = output..selected_screen:sub(i, i) - if i % 26 == 0 then output = output.."-\n-" end + if selected_screen ~= default_screen then + file = io.open("screens/"..screen_id..".scr", "w") + file:write(selected_screen) + file:close() + print("save "..screen_id) end - for i = 1, 26, 1 do output = output.."-" end - return output end function load() + file = io.open("screens/"..screen_id..".scr", "r") + if file then + selected_screen = file:read() + file:close() + else + selected_screen = default_screen + end + print("load "..screen_id) end