From 16afb9eddc5efa951c6a848b79bb1ec6412113ea Mon Sep 17 00:00:00 2001 From: VorTechnix <45538536+VorTechnix@users.noreply.github.com> Date: Wed, 24 May 2023 14:44:38 -0700 Subject: [PATCH 1/4] Create setting_handler.lua --- .../utils/setting_handler.lua | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 worldeditadditions_core/utils/setting_handler.lua diff --git a/worldeditadditions_core/utils/setting_handler.lua b/worldeditadditions_core/utils/setting_handler.lua new file mode 100644 index 0000000..ab3fb45 --- /dev/null +++ b/worldeditadditions_core/utils/setting_handler.lua @@ -0,0 +1,42 @@ +--- A wrapper to simultaniously handle global and world settings. + +-- Initialize settings container +local weac = worldeditadditions_core +weac.settings = {} + +-- Initialize wea world folder if not already existing +local path = minetest.get_worldpath() .. "/worldeditadditions" +minetest.mkdir(path) + +-- @class +local setting_handler = {} + +--- Reads world settings into WEA core settings object +setting_handler.read = function() + local file, err = io.open(path .. "/settings.conf", "rb") + if err then return false end + -- Split by newline + local settings = wea_c.split(file.read(),"[\n\r]+") +end + +--- Write setting to world settings +setting_handler.write = function(setting, state) + local writer, err = io.open(path .. "/settings.conf", "ab") + if not writer then + return false + elseif setting == "" and not state then + writer:write("") + else + writer:write("worldeditadditions_" .. setting .. " = " .. state .. "\n") + end + writer:flush() + writer:close() + return true +end + +-- Test for world settings and generate file if none +if not setting_handler.read() then + setting_handler.write("") +end + +return setting_handler \ No newline at end of file From 8de2892907649731c795356b827c9aa5fd3521ae Mon Sep 17 00:00:00 2001 From: VorTechnix <45538536+VorTechnix@users.noreply.github.com> Date: Wed, 24 May 2023 16:02:51 -0700 Subject: [PATCH 2/4] added setting_handler --- worldeditadditions_core/init.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/worldeditadditions_core/init.lua b/worldeditadditions_core/init.lua index 0e68a14..8338da1 100644 --- a/worldeditadditions_core/init.lua +++ b/worldeditadditions_core/init.lua @@ -27,6 +27,8 @@ wea_c.EventEmitter = dofile(modpath.."/utils/EventEmitter.lua") wea_c.Set = dofile(wea_c.modpath.."/utils/set.lua") +wea_c.setting_handler = dofile(wea_c.modpath.."/utils/setting_handler.lua") + wea_c.Vector3 = dofile(wea_c.modpath.."/utils/vector3.lua") wea_c.Mesh, wea_c.Face = dofile(wea_c.modpath.."/utils/mesh.lua") From 67baee7465952861fb2e268bbc808681f01ab6bc Mon Sep 17 00:00:00 2001 From: VorTechnix <45538536+VorTechnix@users.noreply.github.com> Date: Sun, 28 May 2023 08:37:57 -0700 Subject: [PATCH 3/4] fixed missing underscore --- worldeditadditions_core/utils/setting_handler.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/worldeditadditions_core/utils/setting_handler.lua b/worldeditadditions_core/utils/setting_handler.lua index ab3fb45..e126c2d 100644 --- a/worldeditadditions_core/utils/setting_handler.lua +++ b/worldeditadditions_core/utils/setting_handler.lua @@ -1,8 +1,8 @@ --- A wrapper to simultaniously handle global and world settings. -- Initialize settings container -local weac = worldeditadditions_core -weac.settings = {} +local wea_c = worldeditadditions_core +wea_c.settings = {} -- Initialize wea world folder if not already existing local path = minetest.get_worldpath() .. "/worldeditadditions" From 8d9f51de352c326f65d98ab4111148ae3984f8b3 Mon Sep 17 00:00:00 2001 From: VorTechnix <45538536+VorTechnix@users.noreply.github.com> Date: Sun, 28 May 2023 08:45:39 -0700 Subject: [PATCH 4/4] handler patch I should have done this in a branch lol --- worldeditadditions_core/init.lua | 4 +--- worldeditadditions_core/utils/setting_handler.lua | 3 ++- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/worldeditadditions_core/init.lua b/worldeditadditions_core/init.lua index 8338da1..454ad44 100644 --- a/worldeditadditions_core/init.lua +++ b/worldeditadditions_core/init.lua @@ -27,8 +27,6 @@ wea_c.EventEmitter = dofile(modpath.."/utils/EventEmitter.lua") wea_c.Set = dofile(wea_c.modpath.."/utils/set.lua") -wea_c.setting_handler = dofile(wea_c.modpath.."/utils/setting_handler.lua") - wea_c.Vector3 = dofile(wea_c.modpath.."/utils/vector3.lua") wea_c.Mesh, wea_c.Face = dofile(wea_c.modpath.."/utils/mesh.lua") @@ -61,7 +59,7 @@ dofile(wea_c.modpath.."/utils/player.lua") -- Player info functions - +wea_c.setting_handler = dofile(wea_c.modpath.."/utils/setting_handler.lua") -- AFTER parser wea_c.pos = dofile(modpath.."/core/pos.lua") -- AFTER EventEmitter wea_c.register_command = dofile(modpath.."/core/register_command.lua") diff --git a/worldeditadditions_core/utils/setting_handler.lua b/worldeditadditions_core/utils/setting_handler.lua index e126c2d..5265c97 100644 --- a/worldeditadditions_core/utils/setting_handler.lua +++ b/worldeditadditions_core/utils/setting_handler.lua @@ -16,7 +16,8 @@ setting_handler.read = function() local file, err = io.open(path .. "/settings.conf", "rb") if err then return false end -- Split by newline - local settings = wea_c.split(file.read(),"[\n\r]+") + -- local settings = wea_c.split(file:read(),"[\n\r]+") + file:close() end --- Write setting to world settings