Merge branch 'main' of github.com:sbrl/Minetest-WorldEditAdditions

This commit is contained in:
Starbeamrainbowlabs 2023-06-27 19:40:12 +01:00
commit bfecc2da80
No known key found for this signature in database
GPG Key ID: 1BE5172E637709C2
2 changed files with 44 additions and 1 deletions

@ -59,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")

@ -0,0 +1,43 @@
--- A wrapper to simultaniously handle global and world settings.
-- Initialize settings container
local wea_c = worldeditadditions_core
wea_c.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]+")
file:close()
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