diff --git a/README.md b/README.md index c61faf5..7ed1100 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,10 @@ Use safemode to make areas be safe zones; otherwise they are killzones by defaul ## Config in minetest.conf +* `pvp_areas.enable_pvp` + * Allow PvP by default. + * default is `false`, PvP is disabled + * `pvp_areas.safemode` * safemode = true --> PvP Control areas are safe zones * default is `false`, making PvP Control areas kill zones diff --git a/init.lua b/init.lua old mode 100755 new mode 100644 index 9e833f7..f59cbe3 --- a/init.lua +++ b/init.lua @@ -8,15 +8,39 @@ local pvp_areas_modname = minetest.get_current_modname() local hasareasmod = minetest.get_modpath("areas") -local safemode = minetest.setting_getbool("pvp_areas.safemode") or false -local area_label = minetest.setting_get("pvp_areas.label") or "Defined area." +-- The settings object +local settings = {} +if minetest.settings then + settings = minetest.settings +else + --- Function to retrieve a setting value. + -- + -- @function settings:get + -- @param setting **string** setting name + -- @return String value of setting + function settings:get(setting) + return minetest.setting_get(setting) + end + + --- Function to retrieve a boolean setting value. + -- + -- @function settings:get_bool + -- @param setting **string** setting name + -- @return **bool**: True if setting is enabled + function settings:get_bool(setting) + return minetest.setting_getbool(setting) + end +end + +local safemode = settings:get_bool("pvp_areas.safemode") or false +local area_label = settings:get("pvp_areas.label") or "Defined area." -- if false Mob does Damage local mobsDoNoDamage = false local pvp_areas_store = AreaStore() pvp_areas_store:from_file(pvp_areas_worlddir .. "/pvp_areas_store.dat") -local pvp_default = minetest.is_yes(minetest.setting_getbool("pvp_areas_enable_pvp")) +local pvp_default = minetest.is_yes(settings:get_bool("pvp_areas.enable_pvp")) minetest.log("action", "[" .. pvp_areas_modname .. "] PvP by Default: " .. tostring(pvp_default)) local pvp_areas_players = {} diff --git a/settingtypes.txt b/settingtypes.txt index d0c30d5..22572b8 100644 --- a/settingtypes.txt +++ b/settingtypes.txt @@ -1,2 +1,9 @@ # Allow PvP by default. -pvp_areas_enable_pvp (PvP by Default) bool false +pvp_areas.enable_pvp (PvP by default) bool false + +# When not enabled PvP Control areas are kill zones. +pvp_areas.safemode (PvP Control areas are safe zones) bool false + +# If ShadowNinja's `areas` mod is also present with HUD registration feature, +# this label will be displayed anywhere a PvP Control area has been set. +pvp_areas.label (Show PvP area labels) string Defined area.