areas/settings.lua

41 lines
1.2 KiB
Lua
Raw Normal View History

local world_path = minetest.get_worldpath()
2013-09-02 16:16:14 -07:00
areas.config = {}
local function setting(tp, name, default)
2020-03-15 18:23:54 -07:00
local full_name = "areas." .. name
local value
if tp == "boolean" then
2017-05-13 01:59:30 -07:00
value = minetest.settings:get_bool(full_name)
elseif tp == "string" then
2017-05-13 01:59:30 -07:00
value = minetest.settings:get(full_name)
elseif tp == "position" then
value = minetest.setting_get_pos(full_name)
elseif tp == "number" then
2017-05-13 01:59:30 -07:00
value = tonumber(minetest.settings:get(full_name))
else
2020-03-15 18:23:54 -07:00
error("Cannot parse setting type " .. tp)
end
2020-03-15 18:23:54 -07:00
2013-09-02 16:16:14 -07:00
if value == nil then
value = default
end
areas.config[name] = value
2013-09-02 16:16:14 -07:00
end
--------------
-- Settings --
--------------
2013-09-02 16:16:14 -07:00
setting("string", "filename", world_path.."/areas.dat")
-- Allow players with a privilege create their own areas
-- within the maximum size and number.
setting("boolean", "self_protection", true)
setting("string", "self_protection_privilege", "interact")
2020-02-27 13:17:52 -08:00
setting("position", "self_protection_max_size", {x = 64, y = 128, z = 64})
setting("number", "self_protection_max_areas", 8)
-- For players with the areas_high_limit privilege.
setting("position", "self_protection_max_size_high", {x = 512, y = 512, z = 512})
setting("number", "self_protection_max_areas_high", 32)