From 62d6d4d5aeced03397f88acaaccabc5e2a469735 Mon Sep 17 00:00:00 2001 From: SX Date: Thu, 13 Feb 2020 19:56:34 +0200 Subject: Refactor mod structure --- storage.lua | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 storage.lua (limited to 'storage.lua') diff --git a/storage.lua b/storage.lua new file mode 100644 index 0000000..5adbaf5 --- /dev/null +++ b/storage.lua @@ -0,0 +1,33 @@ + +local elevator_file = minetest.get_worldpath() .. "/elevator" + +local str = minetest.get_mod_storage and minetest.get_mod_storage() + +-- Central "network" table. +elevator.motors = {} + +local function load_elevator() + local data = nil + if str and ((str.contains and str:contains("data")) or (str:get_string("data") and str:get_string("data") ~= "")) then + data = minetest.deserialize(str:get_string("data")) + else + local file = io.open(elevator_file) + if file then + data = minetest.deserialize(file:read("*all")) or {} + file:close() + end + end + elevator.motors = data.motors and data.motors or {} +end + +local function save_elevator() + if str then + str:set_string("data", minetest.serialize({motors = elevator.motors})) + return + end + local f = io.open(elevator_file, "w") + f:write(minetest.serialize({motors = elevator.motors})) + f:close() +end + +load_elevator() -- cgit v1.2.3 From 469b50633862b4838e4304750ef01195fd9850e8 Mon Sep 17 00:00:00 2001 From: SX Date: Thu, 13 Feb 2020 22:23:06 +0200 Subject: Refactoring hooks, storage, register --- storage.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'storage.lua') diff --git a/storage.lua b/storage.lua index 5adbaf5..e923e5d 100644 --- a/storage.lua +++ b/storage.lua @@ -17,10 +17,10 @@ local function load_elevator() file:close() end end - elevator.motors = data.motors and data.motors or {} + elevator.motors = (data and data.motors) and data.motors or {} end -local function save_elevator() +elevator.save_elevator = function() if str then str:set_string("data", minetest.serialize({motors = elevator.motors})) return -- cgit v1.2.3