From 27456e368c93f35a37154166151df19a8346c236 Mon Sep 17 00:00:00 2001 From: bbassie <17990055+bbassie@users.noreply.github.com> Date: Wed, 14 Oct 2026 22:09:05 +0000 Subject: [PATCH] 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 --- exp_scenario/module/gui/readme.lua | 165 ++------------------------- exp_scenario/module/locale/en.cfg | 10 +- exp_scenario/module/locale/zh-CN.cfg | 8 +- exp_scenario/module/locale/zh-TW.cfg | 8 +- 4 files changed, 13 insertions(+), 178 deletions(-) diff --git a/exp_scenario/module/gui/readme.lua b/exp_scenario/module/gui/readme.lua index a53838f0..6b9e15fb 100644 --- a/exp_scenario/module/gui/readme.lua +++ b/exp_scenario/module/gui/readme.lua @@ -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 diff --git a/exp_scenario/module/locale/en.cfg b/exp_scenario/module/locale/en.cfg index a1b22a40..0f3bcba3 100644 --- a/exp_scenario/module/locale/en.cfg +++ b/exp_scenario/module/locale/en.cfg @@ -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] diff --git a/exp_scenario/module/locale/zh-CN.cfg b/exp_scenario/module/locale/zh-CN.cfg index ead737cc..e6fee7d8 100644 --- a/exp_scenario/module/locale/zh-CN.cfg +++ b/exp_scenario/module/locale/zh-CN.cfg @@ -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__ diff --git a/exp_scenario/module/locale/zh-TW.cfg b/exp_scenario/module/locale/zh-TW.cfg index ead737cc..e6fee7d8 100644 --- a/exp_scenario/module/locale/zh-TW.cfg +++ b/exp_scenario/module/locale/zh-TW.cfg @@ -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__