2016-08-08 08:39:07 -07:00

147 lines
5.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 tab_info.lua
--! @brief settings gui for mobf
--! @copyright Sapier
--! @author Sapier
--! @date 2014-05-30
--
-- Contact sapier a t gmx net
--------------------------------------------------------------------------------
-------------------------------------------------------------------------------
local function get_formspec(tabview, name, tabdata)
local adv_stats = nil
if mobf_rtd.have_adv_spawning then
adv_stats = adv_spawning.get_statistics()
end
local mobs_offline = spawning.total_offline_mobs()
local statistics = mobf_get_statistics()
local retval =
"label[0.75,1.25;Timesource:]" ..
"label[2.75,1.25;" .. mobf_fixed_size_string(mobf_rtd.timesource,30) .. "]"
if mobf_rtd.have_adv_spawning then
retval = retval ..
"label[0.75,2.25;Mobs spawned by adv_spawning this session:]" ..
"label[6,2.25;" .. string.format("%10d",adv_stats.session.entities_created) .. "]"
end
retval = retval ..
mobf_settings.printfac("Type",{current="cur count",maxabs="",max="max count"},3,"%s") ..
"box[0.75,3.5;6.75,0.05;#FFFFFF]" ..
mobf_settings.printfac("Active mobs",statistics.data.mobs,3.5,"%6d") ..
mobf_settings.printfac("Offline mobs",{current=mobs_offline,maxabs="",max=-1},4,"%6d") ..
mobf_settings.printfac("Jobs in queue",statistics.data.queue,4.5,"%6d") ..
"label[0.75,6.0;Daytime:]" ..
"label[2.5,6.0;" .. string.format("%5d",minetest.get_timeofday()*24000) .. "]"
return retval
end
-------------------------------------------------------------------------------
mobf_settings_tab_info_sub = {
name = "info",
caption = fgettext("Generic"),
cbf_formspec = get_formspec
}
---------------------------------------------------------------------------------
local function get_formspec(tabview, name, tabdata)
local adv_stats = nil
if mobf_rtd.have_adv_spawning then
adv_stats = adv_spawning.get_statistics()
end
local statistics = mobf_get_statistics()
local retval =
mobf_settings.printfac("Facility",
{
current = "Current",
maxabs = "Abs.Max (ms)",
max = "Maximum"
},
"0.5","%s") ..
"box[0.75,1;6.75,0.05;#FFFFFF]" ..
mobf_settings.printfac("Total", statistics.data.total, "1", "%2.2f%%") ..
mobf_settings.printfac("Onstep", statistics.data.onstep, "1.5", "%2.2f%%") ..
mobf_settings.printfac("Job processing", statistics.data.queue_load, "2", "%2.2f%%") ..
mobf_settings.printfac("ABM", statistics.data.abm, "2.5", "%.2f%%") ..
mobf_settings.printfac("MapGen", statistics.data.mapgen, "3", "%2.2f%%") ..
mobf_settings.printfac("Spawn onstep", statistics.data.spawn_onstep,"3.5", "%2.2f%%") ..
mobf_settings.printfac("Activate", statistics.data.activate, "4", "%2.2f%%") ..
mobf_settings.printfac("User 1", statistics.data.user_1, "7", "%2.2f%%") ..
mobf_settings.printfac("User 2", statistics.data.user_2, "7.5", "%2.2f%%") ..
mobf_settings.printfac("User 3", statistics.data.user_3, "8", "%2.2f%%")
if mobf_rtd.have_adv_spawning then
retval = retval ..
mobf_settings.printfac("Adv.Spawning",
{
current = adv_stats.load.cur,
maxabs = adv_stats.step.max,
max = adv_stats.load.max
},
"4.5","%2.2f%%")
end
return retval
end
-------------------------------------------------------------------------------
mobf_settings_tab_statistics = {
name = "statistics",
caption = fgettext("Statistics"),
cbf_formspec = get_formspec
}
-------------------------------------------------------------------------------
local function init_tab(type, from, to, tabview)
if (to == "info_top") then
local tabdata = tabview:get_tabdata("info_top")
assert(tabdata ~= nil)
if tabdata.subtabview == nil then
tabdata.subtabview = tabview_create("infoview",
{x=8,y=8},{x=0,y=0.75}, tabview.parent_ui)
tabdata.subtabview:add(mobf_settings_tab_info_sub)
if core.world_setting_get("mobf_enable_statistics") then
tabdata.subtabview:add(mobf_settings_tab_statistics)
end
tabdata.subtabview:set_parent(tabview)
end
tabdata.subtabview:show()
elseif (from == "info_top") then
local tabdata = tabview:get_tabdata("info_top")
assert(tabdata ~= nil)
if tabdata.subtabview ~= nil then
tabdata.subtabview:hide()
end
end
end
-------------------------------------------------------------------------------
local function get_formspec_tab(tabview, name, tabdata)
return ""
end
-------------------------------------------------------------------------------
local function btn_handler_tab(tabview, fields, tabname, tabdata)
return false
end
-------------------------------------------------------------------------------
mobf_settings_tab_info = {
name = "info_top",
caption = fgettext("Info"),
cbf_button_handler = btn_handler_tab,
cbf_formspec = get_formspec_tab,
on_change = init_tab
}