1
0
mirror of https://repo.or.cz/minetest_hudbars.git synced 2025-06-29 23:10:32 +02:00

18 Commits

Author SHA1 Message Date
28dcf8af65 Merge remote-tracking branch 'upstream/master' into nalc-1.2-dev 2020-06-16 22:33:04 +02:00
a250d2a350 Add z-index to HUD elements 2020-04-07 01:06:49 +02:00
7993feac07 Version 2.2.2 2020-03-13 18:11:13 +01:00
b19b5f090a Fix another crash 2020-03-13 18:10:52 +01:00
9a8a3f0f8c Version 2.2.1 2020-03-13 07:55:01 +01:00
2eb2df946b Add nil check in hb.change_hudbar 2020-03-13 07:53:24 +01:00
c4ddef312e Merge remote-tracking branch 'upstream/master' into nalc-1.2-dev 2020-02-16 18:04:10 +01:00
2ffcd94dd6 Version 2.2.0 2020-02-04 22:11:43 +01:00
8d3fa950f8 Update translation credits 2020-02-04 22:10:41 +01:00
332aa18452 Add Spanish translation 2020-02-04 22:07:34 +01:00
7f6ed309b3 Merge branch 'master' of yunohost.local:mtcontrib/minetest_hudbars into nalc-1.2-dev 2019-12-22 13:28:33 +01:00
99ebd71da7 Update credits 2019-09-17 11:21:19 +02:00
699e356609 Add Russian locale by lmk 2019-09-17 11:20:12 +02:00
8c80745ecb Version 2.1.0 2019-09-13 19:57:04 +02:00
1e3def3cfa Set bar_size to nil in progress_bar again
See the lengthy comment to learn why
2019-09-13 19:56:22 +02:00
48d9fd6a12 Allow to specify number format strings explicitly
Also, the default number format string is now "%d"
2019-09-13 19:50:23 +02:00
7cd5940c68 Merge branch 'master' into nalc-1.2 2019-05-09 22:15:22 +02:00
67ca481f7c Ajoute message de chargement du mod dans le journal "action" 2018-12-25 17:43:52 +01:00
5 changed files with 50 additions and 5 deletions

2
API.md
View File

@ -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:

View File

@ -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.2.2.
This software uses [semantic versioning](http://semver.org), as defined by version 2.0.0 of the SemVer
standard.
@ -38,6 +38,8 @@ Translations:
* Dutch: kingoscargames
* Italian: Hamlet
* Malay: muhdnurhidayat
* Russian: Imk
* Spanish: wuniversales
This program is free software. It comes without any warranty, to
the extent permitted by applicable law. You can redistribute it

View File

@ -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)
@ -183,6 +200,7 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
text = "hudbars_bar_background.png",
alignment = {x=1,y=1},
offset = { x = offset.x - 1, y = offset.y - 1 },
z_index = 0,
})
if textures.icon ~= nil then
ids.icon = player:hud_add({
@ -192,6 +210,7 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
text = textures.icon,
alignment = {x=-1,y=1},
offset = { x = offset.x - 3, y = offset.y },
z_index = 1,
})
end
elseif hb.settings.bar_type == "statbar_modern" then
@ -205,13 +224,20 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
offset = { x = offset.x, y = offset.y },
direction = 0,
size = {x=24, y=24},
z_index = 0,
})
end
end
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}
@ -225,6 +251,7 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
offset = offset,
direction = 0,
size = bar_size,
z_index = 1,
})
if hb.settings.bar_type == "progress_bar" then
ids.text = player:hud_add({
@ -235,6 +262,7 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
number = text_color,
direction = 0,
offset = { x = offset.x + 2, y = offset.y - 1},
z_index = 2,
})
end
-- Do not forget to update hb.get_hudbar_state if you add new fields to the state table
@ -293,6 +321,9 @@ function hb.change_hudbar(player, identifier, new_value, new_max_value, new_icon
local name = player:get_player_name()
local hudtable = hb.get_hudtable(identifier)
if not hudtable.hudstate[name] then
return false
end
local value_changed, max_changed = false, false
if new_value ~= nil then
@ -544,3 +575,5 @@ minetest.register_globalstep(function(dtime)
end
if timer > 4 then timer = 0 end
end)
minetest.log("action", "[hudbars] loaded.")

4
locale/hudbars.es.tr Normal file
View File

@ -0,0 +1,4 @@
# textdomain: hudbars
Health=Salud
Breath=Aliento
@1: @2/@3=@1: @2/@3

4
locale/hudbars.ru.tr Normal file
View File

@ -0,0 +1,4 @@
# textdomain: hudbars
Health=HP
Breath=дыхание
@1: @2/@3=@1: @2/@3