From 48d9fd6a12b70a1b4fa7b6c38d6c4cb5dd6c2dc0 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Fri, 13 Sep 2019 19:50:05 +0200 Subject: [PATCH 1/5] Allow to specify number format strings explicitly Also, the default number format string is now "%d" --- API.md | 2 ++ init.lua | 23 ++++++++++++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/API.md b/API.md index ec746a3..ca6144a 100644 --- a/API.md +++ b/API.md @@ -70,6 +70,8 @@ for more information. * `format_string_config`: Required if `format_string` is set. This allows to change which parameters to use in the format string. It's a table with these fields: * `textdomain`: Text domain of the format string, used by `minetest.translate` * `order`: Table that contains the order of the placeholders. It's also possible to remove placeholders. Default order: `{ "label", "value", "max_value" }` + * `format_value`: Format string to apply when displaying `value`. Syntax is same as in `string.format`. Default: `"%d"` + * `format_max_value`: Same as `format_value` but is applied to `max_value` #### Example Example (mostly) from `hbarmor` mod: diff --git a/init.lua b/init.lua index 227be16..0a02532 100644 --- a/init.lua +++ b/init.lua @@ -58,9 +58,17 @@ local function make_label(format_string, format_string_config, label, start_valu if order[o] == "label" then table.insert(params, label) elseif order[o] == "value" then - table.insert(params, start_value) + if format_string_config.format_value then + table.insert(params, string.format(format_string_config.format_value, start_value)) + else + table.insert(params, start_value) + end elseif order[o] == "max_value" then - table.insert(params, max_value) + if format_string_config.format_max_value then + table.insert(params, string.format(format_string_config.format_max_value, max_value)) + else + table.insert(params, max_value) + end end end local ret @@ -148,7 +156,16 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta format_string = N("@1: @2/@3") end if format_string_config == nil then - format_string_config = { order = { "label", "value", "max_value" } } + format_string_config = {} + end + if format_string_config.order == nil then + format_string_config.order = { "label", "value", "max_value" } + end + if format_string_config.format_value == nil then + format_string_config.format_value = "%d" + end + if format_string_config.format_max_value == nil then + format_string_config.format_max_value = "%d" end hudtable.add_all = function(player, hudtable, start_value, start_max, start_hidden) From 1e3def3cfa5467627b65e4f08f984b8faddd2474 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Fri, 13 Sep 2019 19:56:22 +0200 Subject: [PATCH 2/5] Set bar_size to nil in progress_bar again See the lengthy comment to learn why --- init.lua | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/init.lua b/init.lua index 0a02532..0f91960 100644 --- a/init.lua +++ b/init.lua @@ -228,7 +228,13 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta local bar_image, bar_size if hb.settings.bar_type == "progress_bar" then bar_image = textures.bar - bar_size = {x=2, y=16} + -- NOTE: Intentionally set to nil. For some reason, on some systems, + -- the progress bar is displaced when the bar_size is set explicitly here. + -- On the other hand, setting this to nil is deprecated in MT 5.0.0 due to + -- a debug log warning, but nothing is explained in lua_api.txt. + -- This section is a potential bug magnet, please watch with care! + -- The size of the bar image is expected to be exactly 2×16 pixels. + bar_size = nil elseif hb.settings.bar_type == "statbar_classic" or hb.settings.bar_type == "statbar_modern" then bar_image = textures.icon bar_size = {x=24, y=24} From 8c80745ecb7ccb49ad231b355b19261007e52425 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Fri, 13 Sep 2019 19:57:04 +0200 Subject: [PATCH 3/5] Version 2.1.0 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 43f3899..34ca6a1 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ this mod will place them accordingly. position should be displayed correctly on every screen size. ## Current version -The current version is 2.0.0. +The current version is 2.1.0. This software uses [semantic versioning](http://semver.org), as defined by version 2.0.0 of the SemVer standard. From 699e356609d9cbf7aec736fe2c5866bf1d1d8567 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Tue, 17 Sep 2019 11:20:12 +0200 Subject: [PATCH 4/5] Add Russian locale by lmk --- locale/hudbars.ru.tr | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 locale/hudbars.ru.tr diff --git a/locale/hudbars.ru.tr b/locale/hudbars.ru.tr new file mode 100644 index 0000000..2d278e3 --- /dev/null +++ b/locale/hudbars.ru.tr @@ -0,0 +1,4 @@ +# textdomain: hudbars +Health=HP +Breath=дыхание +@1: @2/@3=@1: @2/@3 From 99ebd71da74124ff1a32e65fabe859d3b189fbaf Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Tue, 17 Sep 2019 11:21:19 +0200 Subject: [PATCH 5/5] Update credits --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 34ca6a1..afe7f44 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,7 @@ Translations: * Dutch: kingoscargames * Italian: Hamlet * Malay: muhdnurhidayat +* Russian: Imk This program is free software. It comes without any warranty, to the extent permitted by applicable law. You can redistribute it