Minetest-WorldEditAdditions/worldeditadditions_tools/lib/settings.lua
2024-10-09 20:35:45 -07:00

33 lines
1.4 KiB
Lua

--- If the settings object for the given player name doesn't exist, it is created.
-- @param name The name of the player to ensure has a settings object.
local function settings_init(name)
if worldeditadditions_tools.player_data[name] == nil then
minetest.log("INFO", "Initialising settings for "..name)
worldeditadditions_tools.player_data[name] = {
maxdist = 1000,
skip_liquid = true
}
end
end
--- Gets a given farwand setting for the given player name.
-- @param string name The name of the player to get the setting for.
-- @param string setting_name The name of the setting to fetch.
-- @return any The value of the setting.
function worldeditadditions_tools.setting_get(name, setting_name)
if setting_name == nil then return nil end
settings_init(name)
return worldeditadditions_tools.player_data[name][setting_name]
end
--- Sets a given farwand setting for the given player name to the given value.
-- @param string name The name of the player to set the setting for.
-- @param string setting_name The name of the setting to set.
-- @param any setting_value The value to set the setting to.
-- @return bool Whether setting the setting was successful or not.
function worldeditadditions_tools.setting_set(name, setting_name, setting_value)
if setting_name == nil then return false end
settings_init(name)
worldeditadditions_tools.player_data[name][setting_name] = setting_value
return true
end