mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2026-11-12 23:54:53 +09:00
Show only statistics on the readme data tab
The tab listed the legacy player data, its required, settings and misc groups and the data saving preference. None of that is synced or relevant any more, so the tab is now Statistics and lists the totals from exp_statistics in display order. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
237200e6c8
commit
27456e368c
4 files changed
+13
-178
No files matched your search
@@ -7,11 +7,9 @@ local Gui = require("modules/exp_gui")
|
||||
local Roles = require("modules/exp_roles")
|
||||
local Commands = require("modules/exp_commands")
|
||||
local ExpStatistics = require("modules/exp_statistics")
|
||||
local PlayerData = require("modules.exp_legacy.expcore.player_data")
|
||||
local ExpServerList = require("modules/exp_server_list")
|
||||
local community = require("modules/exp_scenario/config/community_details").config
|
||||
|
||||
local format_number = require("util").format_number
|
||||
local format_time = ExpUtil.format_time_factory_locale{ format = "long", days = true, hours = true, minutes = true }
|
||||
|
||||
local frame_width = 595
|
||||
@@ -458,75 +456,14 @@ define_tab(
|
||||
end) --[[@as any]]
|
||||
)
|
||||
|
||||
--- @class (exact) ExpGui_Readme.elements.readme_data.param table
|
||||
--- @field scroll_pane LuaGuiElement
|
||||
--- @field player LuaPlayer
|
||||
--- @field player_name string
|
||||
--- @field children table
|
||||
--- @field title LocalisedString
|
||||
--- @field locale_prefix string
|
||||
--- @field default_stringify fun(value: any): string
|
||||
--- @field columns number
|
||||
--- @field title_width number
|
||||
--- @field column_width number
|
||||
--- @field extra_rows fun(data_table: LuaGuiElement)?
|
||||
|
||||
--- Render a player data category
|
||||
--- @param opts ExpGui_Readme.elements.readme_data.param
|
||||
local function render_data_category(opts)
|
||||
local data_table = Elements.title_table(opts.scroll_pane, opts.title_width, opts.title, opts.columns)
|
||||
|
||||
if opts.extra_rows then
|
||||
opts.extra_rows(data_table)
|
||||
end
|
||||
|
||||
for name, child in pairs(opts.children) do
|
||||
local metadata = child.metadata
|
||||
|
||||
if not metadata.permission or Roles.player_has_permission(opts.player, metadata.permission) then
|
||||
local value = child:get(opts.player_name)
|
||||
|
||||
if value ~= nil or metadata.show_always then
|
||||
if metadata.stringify_short then
|
||||
value = metadata.stringify_short(value)
|
||||
elseif metadata.stringify then
|
||||
value = metadata.stringify(value)
|
||||
else
|
||||
value = opts.default_stringify(value)
|
||||
end
|
||||
|
||||
local tooltip = metadata.tooltip or { opts.locale_prefix .. name .. "-tooltip" }
|
||||
Gui.elements.centered_label(
|
||||
data_table, 150,
|
||||
metadata.name or { opts.locale_prefix .. name },
|
||||
tooltip
|
||||
)
|
||||
|
||||
Gui.elements.centered_label(
|
||||
data_table, opts.column_width,
|
||||
{ "exp-gui_readme.data-format", value, metadata.unit or "" },
|
||||
metadata.value_tooltip or { "?", { opts.locale_prefix .. name .. "-value-tooltip" }, tooltip }
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--- Content area for the player data tab
|
||||
--- Content area for the statistics tab
|
||||
define_tab(
|
||||
{ "exp-gui_readme.data-tab" },
|
||||
{ "exp-gui_readme.data-tooltip" },
|
||||
Gui.define("readme/data")
|
||||
:draw(function(_, parent)
|
||||
local container = parent.add{ type = "flow", direction = "vertical" }
|
||||
|
||||
local player = Gui.get_player(parent)
|
||||
local player_name = player.name
|
||||
|
||||
local enum = PlayerData.PreferenceEnum
|
||||
local preference = PlayerData.DataSavingPreference:get(player_name)
|
||||
local preference_meta = PlayerData.DataSavingPreference.metadata
|
||||
preference = enum[preference]
|
||||
local player_name = Gui.get_player(parent).name
|
||||
|
||||
Gui.elements.title_label(container, title_width, { "exp-gui_readme.data-tab" })
|
||||
Gui.elements.centered_label(container, frame_width, { "exp-gui_readme.data-general" })
|
||||
@@ -534,98 +471,12 @@ define_tab(
|
||||
container.add{ type = "flow" }
|
||||
|
||||
local scroll_pane = Elements.title_table_scroll(container)
|
||||
|
||||
render_data_category{
|
||||
scroll_pane = scroll_pane,
|
||||
player = player,
|
||||
player_name = player_name,
|
||||
children = PlayerData.Required.children,
|
||||
title = { "exp-gui_readme.data-required" },
|
||||
locale_prefix = "exp-required.",
|
||||
columns = 2,
|
||||
title_width = 250,
|
||||
column_width = 420,
|
||||
default_stringify = tostring,
|
||||
extra_rows = function(required)
|
||||
Gui.elements.centered_label(required, 150, preference_meta.name, preference_meta.tooltip)
|
||||
Gui.elements.centered_label(required, 420, { "expcore-data.preference-" .. enum[preference] }, preference_meta.value_tooltip)
|
||||
end,
|
||||
}
|
||||
|
||||
if preference <= enum.Settings then
|
||||
render_data_category{
|
||||
scroll_pane = scroll_pane,
|
||||
player = player,
|
||||
player_name = player_name,
|
||||
children = PlayerData.Settings.children,
|
||||
title = { "exp-gui_readme.data-settings" },
|
||||
locale_prefix = "exp-settings.",
|
||||
columns = 2,
|
||||
title_width = 255,
|
||||
column_width = 420,
|
||||
default_stringify = function(value)
|
||||
return tostring(value or "None set")
|
||||
end,
|
||||
}
|
||||
end
|
||||
|
||||
if preference <= enum.Statistics then
|
||||
render_data_category{
|
||||
scroll_pane = scroll_pane,
|
||||
player = player,
|
||||
player_name = player_name,
|
||||
children = PlayerData.Statistics.children,
|
||||
title = { "exp-gui_readme.data-statistics" },
|
||||
locale_prefix = "exp-statistics.",
|
||||
columns = 4,
|
||||
title_width = 250,
|
||||
column_width = 130,
|
||||
default_stringify = function(value)
|
||||
return format_number(value or 0, false)
|
||||
end,
|
||||
extra_rows = function(statistics)
|
||||
for _, name in ipairs(ExpStatistics.display_order) do
|
||||
local value = ExpStatistics.format(name, ExpStatistics.get(player_name, name))
|
||||
local tooltip = { "exp-statistics." .. name .. "-tooltip" }
|
||||
Gui.elements.centered_label(statistics, 150, { "exp-statistics." .. name }, tooltip)
|
||||
Gui.elements.centered_label(statistics, 130, { "exp-gui_readme.data-format", value, ExpStatistics.units[name] or "" }, tooltip)
|
||||
end
|
||||
end,
|
||||
}
|
||||
end
|
||||
|
||||
local skip = {
|
||||
DataSavingPreference = true,
|
||||
Settings = true,
|
||||
Statistics = true,
|
||||
Required = true,
|
||||
}
|
||||
|
||||
local count = 0
|
||||
for _ in pairs(PlayerData.All.children) do
|
||||
count = count + 1
|
||||
end
|
||||
|
||||
if preference <= enum.All and count > 4 then
|
||||
local misc = {}
|
||||
for name, child in pairs(PlayerData.All.children) do
|
||||
if not skip[name] then
|
||||
misc[name] = child
|
||||
end
|
||||
end
|
||||
|
||||
render_data_category{
|
||||
scroll_pane = scroll_pane,
|
||||
player = player,
|
||||
player_name = player_name,
|
||||
children = misc,
|
||||
title = { "exp-gui_readme.data-misc" },
|
||||
locale_prefix = "",
|
||||
columns = 2,
|
||||
title_width = 232,
|
||||
column_width = 420,
|
||||
default_stringify = tostring,
|
||||
}
|
||||
local statistics = Elements.title_table(scroll_pane, 250, { "exp-gui_readme.data-tab" }, 4)
|
||||
for _, name in ipairs(ExpStatistics.display_order) do
|
||||
local value = ExpStatistics.format(name, ExpStatistics.get(player_name, name))
|
||||
local tooltip = { "exp-statistics." .. name .. "-tooltip" }
|
||||
Gui.elements.centered_label(statistics, 150, { "exp-statistics." .. name }, tooltip)
|
||||
Gui.elements.centered_label(statistics, 130, { "exp-gui_readme.data-format", value, ExpStatistics.units[name] or "" }, tooltip)
|
||||
end
|
||||
|
||||
return container
|
||||
|
||||
@@ -365,13 +365,9 @@ backers-board=Board Members and Senior Backers
|
||||
backers-staff=Staff Members
|
||||
backers-backers=Sponsors and Supporters
|
||||
backers-active=Active Players
|
||||
data-tab=Data
|
||||
data-tooltip=All of your stored player data
|
||||
data-general=Our servers will save your player data so that we can sync it between servers. All of your data can be found below. If you wish to save a copy locally then use /save-data. If you want to change what data is saved then use /set-preference.
|
||||
data-required=Required
|
||||
data-settings=Settings
|
||||
data-statistics=Statistics
|
||||
data-misc=Miscellaneous
|
||||
data-tab=Statistics
|
||||
data-tooltip=Your statistics from all of our servers
|
||||
data-general=These are your statistics from every one of our servers. They are saved when you leave and every 5 minutes.
|
||||
data-format=__1____2__
|
||||
|
||||
[exp-gui_research-milestones]
|
||||
|
||||
@@ -355,13 +355,7 @@ backers-board=議員
|
||||
backers-staff=職員
|
||||
backers-backers=支持者
|
||||
backers-active=活躍玩家
|
||||
data-tab=資料
|
||||
data-tooltip=所有已存資料
|
||||
data-general=資料會自動存到各個服務器中。 你也可以用 /save-data 存一份副本。 也可用 /set-preference 來更改喜好。
|
||||
data-settings=設定
|
||||
data-statistics=數據
|
||||
data-required=需要
|
||||
data-misc=雜項
|
||||
data-tab=數據
|
||||
data-format=__1____2__
|
||||
welcome-title = Welcome to __1__
|
||||
|
||||
|
||||
@@ -355,13 +355,7 @@ backers-board=議員
|
||||
backers-staff=職員
|
||||
backers-backers=支持者
|
||||
backers-active=活躍玩家
|
||||
data-tab=資料
|
||||
data-tooltip=所有已存資料
|
||||
data-general=資料會自動存到各個服務器中。 你也可以用 /save-data 存一份副本。 也可用 /set-preference 來更改喜好。
|
||||
data-settings=設定
|
||||
data-statistics=數據
|
||||
data-required=需要
|
||||
data-misc=雜項
|
||||
data-tab=數據
|
||||
data-format=__1____2__
|
||||
welcome-title = Welcome to __1__
|
||||
|
||||
|
||||
Reference in new issue
Block a user