Merge branch 'save_game_state' into puzzles_list - crossword.koplugin - Unnamed repository; edit this file 'description' to name the repository. (DIR) Log (DIR) Files (DIR) Refs (DIR) Submodules (DIR) README (DIR) LICENSE --- (DIR) commit bc89c4294ecc1fe9f1c6e4279f3b6152be134eff (DIR) parent 0a18edc6a23986c5b9026f91dbfa91a8c552a7c1 (HTM) Author: Scarlett <social@scarlettmcallister.com> Date: Tue, 25 Jan 2022 17:58:20 -0400 Merge branch 'save_game_state' into puzzles_list Diffstat: M puzzle.lua | 4 ++-- A state.lua | 34 +++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 2 deletions(-) --- (DIR) diff --git a/puzzle.lua b/puzzle.lua @@ -1,8 +1,8 @@ local logger = require("logger") local Solve = require("solve") +local State = require("state") -local Puzzle = { - json_object = nil, +local Puzzle = State:new{ size = { cols = nil, rows = nil, (DIR) diff --git a/state.lua b/state.lua @@ -0,0 +1,34 @@ +local DataStorage = require("datastorage") +local LuaSettings = require("frontend/luasettings") +local logger = require("logger") + +local State = { + state_file = "crossword_states.lua", + lua_settings = nil, +} + +function State:new(o) + o = o or {} + setmetatable(o, self) + self.__index = self + o:init() + return o +end + +function State:init() + self.lua_settings = LuaSettings:open(("%s/%s"):format(DataStorage:getSettingsDir(), self.state_file)) +end + +function State:load() + local state = self.lua_settings:child("puzzle_id") + for key, value in pairs(state.data) do + self[key] = value + end +end + +function State:save() + self.lua_settings:saveSetting("puzzle_id", self) + self.lua_settings:flush() +end + +return State