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__