113 lines
3.1 KiB
Lua
113 lines
3.1 KiB
Lua
--------------------------------------------------------------------------------
|
|
-- Mob Framework Settings Mod by Sapier
|
|
--
|
|
-- You may copy, use, modify or do nearly anything except removing this
|
|
-- copyright notice.
|
|
-- And of course you are NOT allowed to pretend you have written it.
|
|
--
|
|
--! @file settings_v3.lua
|
|
--! @brief settings gui for mobf
|
|
--! @copyright Sapier
|
|
--! @author Sapier
|
|
--! @date 2014-05-30
|
|
--
|
|
-- Contact sapier a t gmx net
|
|
--------------------------------------------------------------------------------
|
|
|
|
--!version
|
|
local mobf_settings_version = "1.9.0"
|
|
|
|
--!path of mod
|
|
local modpath = minetest.get_modpath("mobf_settings")
|
|
|
|
--!basepath of tools
|
|
--TODO remove included fstk once minetest is updated
|
|
--local basepath = core.get_builtin_path()
|
|
local basepath = modpath
|
|
|
|
--!unique id of ui
|
|
local unique_id = "mobf_settings"
|
|
|
|
dofile(basepath .. DIR_DELIM .. "fstk" .. DIR_DELIM .. "dialog.lua")
|
|
dofile(basepath .. DIR_DELIM .. "fstk" .. DIR_DELIM .. "tabview.lua")
|
|
dofile(basepath .. DIR_DELIM .. "fstk" .. DIR_DELIM .. "ui_mod.lua")
|
|
|
|
dofile(modpath .. DIR_DELIM .. "common.lua")
|
|
dofile(modpath .. DIR_DELIM .. "tab_main.lua")
|
|
dofile(modpath .. DIR_DELIM .. "tab_info.lua")
|
|
dofile(modpath .. DIR_DELIM .. "tab_feature_config.lua")
|
|
dofile(modpath .. DIR_DELIM .. "tab_factions.lua")
|
|
dofile(modpath .. DIR_DELIM .. "tab_mobs.lua")
|
|
dofile(modpath .. DIR_DELIM .. "tab_restore_mobs.lua")
|
|
dofile(modpath .. DIR_DELIM .. "tab_path_manager.lua")
|
|
|
|
|
|
local function is_admin(playername)
|
|
local privcheck = core.check_player_privs(playername, {mobfw_admin=true})
|
|
|
|
return privcheck or (playername == "singleplayer")
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
local function init_player_ui(playername, param)
|
|
|
|
local playerui = get_ui_by_unique_id(playername, unique_id)
|
|
|
|
if not playerui then
|
|
playerui = create_ui(playername, unique_id)
|
|
|
|
assert( playerui ~= nil)
|
|
|
|
local tv_main = tabview_create("mainview",{x=8,y=9},{x=0,y=0}, playerui)
|
|
|
|
tv_main:add(mobf_settings_tab_main)
|
|
|
|
if is_admin(playername) then
|
|
tv_main:add(mobf_settings_tab_features, { is_admin=is_admin(playername) })
|
|
tv_main:add(mobf_settings_tab_mobs, { is_admin=is_admin(playername) })
|
|
end
|
|
|
|
tv_main:add(mobf_settings_tab_info)
|
|
|
|
if mobf_rtd.factions_available then
|
|
tv_main:add(mobf_settings_tab_factions,
|
|
{
|
|
is_admin = is_admin(playername),
|
|
playername = playername
|
|
})
|
|
end
|
|
|
|
tv_main:add(mobf_settings_tab_preserve,
|
|
{
|
|
is_admin = is_admin(playername),
|
|
playername = playername
|
|
})
|
|
|
|
tv_main:add(mobf_settings_tab_paths,
|
|
{
|
|
is_admin = is_admin(playername),
|
|
playername = playername
|
|
})
|
|
end
|
|
|
|
playerui:hide()
|
|
|
|
local main_tab = playerui:find_by_name("mainview")
|
|
|
|
if not main_tab then
|
|
return
|
|
end
|
|
|
|
main_tab:show()
|
|
playerui:update()
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
minetest.register_chatcommand("mobf",
|
|
{
|
|
params = "",
|
|
description = "show mobf settings" ,
|
|
privs = {},
|
|
func = init_player_ui
|
|
})
|
|
minetest.log("action","MOD: mobf_settings mod version "..mobf_settings_version.." loaded") |