2023-05-24 23:44:38 +02:00
|
|
|
|
|
|
|
-- Initialize settings container
|
2023-05-28 17:37:57 +02:00
|
|
|
local wea_c = worldeditadditions_core
|
|
|
|
wea_c.settings = {}
|
2023-05-24 23:44:38 +02:00
|
|
|
|
|
|
|
-- Initialize wea world folder if not already existing
|
|
|
|
local path = minetest.get_worldpath() .. "/worldeditadditions"
|
|
|
|
minetest.mkdir(path)
|
|
|
|
|
2023-07-02 20:03:46 +02:00
|
|
|
--- A wrapper to simultaniously handle global and world settings.
|
|
|
|
-- @namespace worldeditadditions_core.setting_handler
|
2023-05-24 23:44:38 +02:00
|
|
|
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
|
2023-07-04 23:50:14 +02:00
|
|
|
-- local settings = wea_c.split(file:read("*a"),"[\n\r]+")
|
2023-05-28 17:45:39 +02:00
|
|
|
file:close()
|
2023-05-24 23:44:38 +02:00
|
|
|
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
|