Compare commits

...

45 Commits

Author SHA1 Message Date
bri cassa 6e2173c6e3 Merge remote-tracking branch 'upstream/master' 2022-08-26 15:02:26 +02:00
Wuzzy dd2a9a008d Add mailmap for Wuzzy 2022-08-01 13:57:41 +02:00
bri cassa a7d0774ad0 Merge remote-tracking branch 'upstream/master' 2021-07-16 23:40:29 +02:00
Wuzzy 812b2538ff Version 2.3.3 2021-07-08 15:43:14 +02:00
Wuzzy 906f7876f7 Version 2.3.2 2021-07-08 15:42:11 +02:00
Wuzzy a44de6230b Fix massive hud_change spam (hide/unhide) 2021-07-08 15:34:50 +02:00
Sys Quatre 26a36dde55 Merge remote-tracking branch 'upstream/master' 2020-07-17 22:49:18 +02:00
Wuzzy 0684bac45b Version 2.3.1 2020-07-11 03:41:09 +02:00
Wuzzy 183d727635 Revert "12×12 textures, compress textures"
This reverts commit 746945dd0f.
2020-07-11 03:38:16 +02:00
Wuzzy f1001432eb Revert "Tweak breath icons"
This reverts commit 5d65623d90.
2020-07-11 03:38:14 +02:00
Wuzzy a41453964a Version 2.3.0 2020-07-11 03:28:39 +02:00
Wuzzy 5d65623d90 Tweak breath icons 2020-07-11 03:28:01 +02:00
Wuzzy f6d539249e More bg icon cleanup 2020-07-11 03:25:35 +02:00
Wuzzy 746945dd0f 12×12 textures, compress textures 2020-07-11 03:09:14 +02:00
Wuzzy 37eff8b2d2 Fix breath bar that was broken by MT 5.3.0 2020-07-11 02:59:12 +02:00
Wuzzy 844fff43de Use MT native support for "background icons" 2020-07-11 02:57:23 +02:00
Sys Quatre 28dcf8af65 Merge remote-tracking branch 'upstream/master' into nalc-1.2-dev 2020-06-16 22:33:04 +02:00
Wuzzy a250d2a350 Add z-index to HUD elements 2020-04-07 01:06:49 +02:00
Wuzzy 7993feac07 Version 2.2.2 2020-03-13 18:11:13 +01:00
Wuzzy b19b5f090a Fix another crash 2020-03-13 18:10:52 +01:00
Wuzzy 9a8a3f0f8c Version 2.2.1 2020-03-13 07:55:01 +01:00
Wuzzy 2eb2df946b Add nil check in hb.change_hudbar 2020-03-13 07:53:24 +01:00
Sys Quatre c4ddef312e Merge remote-tracking branch 'upstream/master' into nalc-1.2-dev 2020-02-16 18:04:10 +01:00
Wuzzy 2ffcd94dd6 Version 2.2.0 2020-02-04 22:11:43 +01:00
Wuzzy 8d3fa950f8 Update translation credits 2020-02-04 22:10:41 +01:00
wuniversales 332aa18452 Add Spanish translation 2020-02-04 22:07:34 +01:00
Sys Quatre 7f6ed309b3 Merge branch 'master' of yunohost.local:mtcontrib/minetest_hudbars into nalc-1.2-dev 2019-12-22 13:28:33 +01:00
Wuzzy 99ebd71da7 Update credits 2019-09-17 11:21:19 +02:00
Wuzzy 699e356609 Add Russian locale by lmk 2019-09-17 11:20:12 +02:00
Wuzzy 8c80745ecb Version 2.1.0 2019-09-13 19:57:04 +02:00
Wuzzy 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
Wuzzy 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
Sys Quatre 7cd5940c68 Merge branch 'master' into nalc-1.2 2019-05-09 22:15:22 +02:00
Wuzzy 085a2aa901 Version 2.0.0 2019-04-01 12:55:40 +02:00
Wuzzy 14a535de0d Update API documentation 2019-04-01 12:38:07 +02:00
Wuzzy afb0242b3b Restructure format_string_config 2019-04-01 12:23:54 +02:00
Wuzzy 915fab08e2 Always send update when changing hide state
This fixes a problem in hbarmor not getting the correct hide state initially.
2019-04-01 12:17:21 +02:00
Wuzzy 895fcae716 Better support for translatable format string 2019-04-01 11:49:30 +02:00
Wuzzy 07b9f766d2 Make format string params changable 2019-03-30 14:57:39 +01:00
Wuzzy a3fede159b Support custom hp_max/breath_max 2019-03-30 13:56:17 +01:00
Wuzzy 5710667766 Fix translation of format string 2019-03-20 13:38:31 +01:00
Wuzzy 1568d1f418 Add explicit progress bar size 2019-03-20 13:35:36 +01:00
Wuzzy 8b577c7424 Move description into mod.conf 2019-03-20 13:31:27 +01:00
Wuzzy 8d2d2d6070 Remove old changelog 2019-03-20 13:31:00 +01:00
Wuzzy 94b9c545da Move away from intllib in favor of MT 5.0.0 2019-03-20 13:30:28 +01:00
20 changed files with 160 additions and 179 deletions

2
.mailmap Normal file
View File

@ -0,0 +1,2 @@
Wuzzy <Wuzzy@disroot.org> <Wuzzy2@mail.ru>
Wuzzy <Wuzzy@disroot.org> <almikes@aol.com>

18
API.md
View File

@ -45,7 +45,7 @@ a vertical gradient.
### Icon ### Icon
A 16×16 image shown left of the HUD bar. This is optional. A 16×16 image shown left of the HUD bar. This is optional.
### `hb.register_hudbar(identifier, text_color, label, textures, default_start_value, default_start_max, default_start_hidden, format_string)` ### `hb.register_hudbar(identifier, text_color, label, textures, default_start_value, default_start_max, default_start_hidden, format_string, format_string_config)`
This function registers a new custom HUD bar definition to the HUD bars mod, so it can be later used to be displayed, changed, hidden This function registers a new custom HUD bar definition to the HUD bars mod, so it can be later used to be displayed, changed, hidden
and unhidden on a per-player basis. and unhidden on a per-player basis.
Note this does not yet display the HUD bar. Note this does not yet display the HUD bar.
@ -66,7 +66,21 @@ for more information.
* `default_start_value`: If this HUD bar is added to a player, and no initial value is specified, this value will be used as initial current value * `default_start_value`: If this HUD bar is added to a player, and no initial value is specified, this value will be used as initial current value
* `default_max_value`: If this HUD bar is added to a player, and no initial maximum value is specified, this value will be used as initial maximum value * `default_max_value`: If this HUD bar is added to a player, and no initial maximum value is specified, this value will be used as initial maximum value
* `default_start_hidden`: The HUD bar will be initially start hidden by default when added to a player. Use `hb.unhide_hudbar` to unhide it. * `default_start_hidden`: The HUD bar will be initially start hidden by default when added to a player. Use `hb.unhide_hudbar` to unhide it.
* `format_string`: This is optional; You can specify an alternative format string display the final text on the HUD bar. The default format string is “`%s: %d/%d`” (in this order: Label, current value, maximum value). See also the Lua documentation of `string.format`. * `format_string`: Optional; You can specify an alternative format string to use for the final text on the HUD bar. The default format string is “`@1: @2/@3`” (The “@” numbers are placeholders that have a meaning in this order: @1 = Label, @2 = current value, @3 = maximum value). Do *not* use minetest.translator on this string, the string will be translated by `hudbars`, but you still must put this string into the translation catalogue file.
* `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:
```
hb.register_hudbar("armor", 0xFFFFFF, minetest.translator("hbarmor", "Armor"), { icon = "hbarmor_icon.png", bgicon = "hbarmor_bgicon.png", bar = "hbarmor_bar.png" }, 0, 100, hbarmor.autohide, N("@1: @2%"), { order = { "label", "value" }, textdomain = "hbarmor" } )
```
Displays an armor HUD bar with a label of the form „Armor: 53%“. (`N` is a dummy function that returns its argument, used to make the string visible for translator scripts.)
#### Return value #### Return value
Always `nil`. Always `nil`.

View File

@ -11,7 +11,8 @@ this mod will place them accordingly.
position should be displayed correctly on every screen size. position should be displayed correctly on every screen size.
## Current version ## Current version
The current version is 1.11.0. The current version is 2.3.3.
It works for Minetest 5.3.0.
This software uses [semantic versioning](http://semver.org), as defined by version 2.0.0 of the SemVer This software uses [semantic versioning](http://semver.org), as defined by version 2.0.0 of the SemVer
standard. standard.
@ -38,6 +39,8 @@ Translations:
* Dutch: kingoscargames * Dutch: kingoscargames
* Italian: Hamlet * Italian: Hamlet
* Malay: muhdnurhidayat * Malay: muhdnurhidayat
* Russian: Imk
* Spanish: wuniversales
This program is free software. It comes without any warranty, to This program is free software. It comes without any warranty, to
the extent permitted by applicable law. You can redistribute it the extent permitted by applicable law. You can redistribute it

View File

@ -1,92 +0,0 @@
Note: This software uses semantic versioning,
as of version 2.0.0 of the standard <http://semver.org/>.
0.1.0
-----
- Initial release, forked from mod “Better HUD” [hud].
0.2.0
-----
- Add API documentation
0.3.0
-----
- Rename main table from “hud” to “hb” (affects function names!)
- Arguments 3-4 of hb.change_hudbar can be nil for values which should not change
- Add proper function hb.init_hudbar, replaces odd call to hud.hudtables[identifier].add_all
- Update API documentation and fix mistakes
- Use “hudbars.conf” instead of “hud.conf”
0.4.0
-----
- New function: hb.get_hudbar_state to get information about the state of an active HUD bar, such as values, whether it is hidden, etc.
- hb.change_hudbar has been optimized to call hud_change fewer times, which is hopefully good for networking
- Rename hb.register_hudbar parameter “start_hide” to “start_hidden”
- start_hidden parameter now finally works
- Do not affect other HUD flags (crosshair, wielditem, etc.) when starting mod
- Show error message when trying to call hb.init_hudbar or hb.change_hudbar with bad values
- Update documentation
- Lots of refactoring
- Health and breath bar now use API
1.0.0
-----
- Add new parameter start_hidden to hb.init_hudbar, specified whether HUD bar is hidden on start
- Copy-editing of API.md and README.txt
- Internal: Fix add_all weirdness
1.0.1
-----
- Fix race condition causing crash at start of server
1.0.2
-----
- Fix other HUD elements disappearing for rejoining players
- Remove pointless delays for initializing the HUD for new or rejoining players
1.0.3
-----
- Adjust default HUD bars position for Minetest 0.4.12
1.1.0
-----
- Add boolean minetest.conf setting support (hudbars_autohide_breathbar) to control whether the breath bar is automatically hidden when full (default: yes)
1.2.0
-----
- New setting: hudbars_sorting. You can now manually sort all the HUD bars. Useful if you don't like automatic order
- New setting: hudbars_bar_type. You now can change the appearance of the HUD bars.
- New HUD bar types, slightly experimental: Classic statbars and modern [hud]-style statbars
- New experimental/unfinished setting: hudbars_alignment_pattern: You can now make the HUD bars stack vertically instead of the current zig-zag pattern. Note you probably need to change source code to productively use this feature
- Various position-related HUD bar settings (see README.txt)
- Remove hudbars.conf support and hudbars.conf.example (was never officially supported anyways)
1.2.1
-----
- Fix crash when enable_damage is changed in mid-game
1.3.0
-----
- Make all settings avaialbe in Minetest's advanced settings menu
- Fix HUD bars overlap when both hudbars_tick and hudbars_vmargin were set
- Use Markdown syntax in readme file
- Fix some factual mistakes in readme file
- Add metadata: mod.conf, description.txt, screenshot.png
1.4.0
-----
- Allow to change HUD bar images and label after it has been registered
- Minor API.md correction
1.4.1
-----
- Fix bug in hb.change_hudbar being a no-op if new_value and new_max value are nil
1.5.0
-----
- Portuguese translation by BrunoMine
1.5.1
-----
- Fix critical bug: Mod does not work with both intllib and mod security enabled
- Update screenshot to use new 3:2 aspect ratio

View File

@ -1 +0,0 @@
intllib?

View File

@ -1 +0,0 @@
Replaces the health and breath symbols in the HUD by “progress bars” and shows exact values. Other mods can add more progress bars for custom player stats.

162
init.lua
View File

@ -1,13 +1,5 @@
local S local S = minetest.get_translator("hudbars")
if minetest.global_exists("intllib") then local N = function(s) return s end
if intllib.make_gettext_pair then
S = intllib.make_gettext_pair()
else
S = intllib.Getter()
end
else
S = function ( s ) return s end
end
hb = {} hb = {}
@ -59,6 +51,35 @@ local function player_exists(player)
return player ~= nil and player:is_player() return player ~= nil and player:is_player()
end end
local function make_label(format_string, format_string_config, label, start_value, max_value)
local params = {}
local order = format_string_config.order
for o=1, #order do
if order[o] == "label" then
table.insert(params, label)
elseif order[o] == "value" then
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
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
if format_string_config.textdomain then
ret = minetest.translate(format_string_config.textdomain, format_string, unpack(params))
else
ret = S(format_string, unpack(params))
end
return ret
end
-- Table which contains all players with active default HUD bars (only for internal use) -- Table which contains all players with active default HUD bars (only for internal use)
hb.players = {} hb.players = {}
@ -98,7 +119,7 @@ function hb.get_hudbar_position_index(identifier)
end end
end end
function hb.register_hudbar(identifier, text_color, label, textures, default_start_value, default_start_max, default_start_hidden, format_string) function hb.register_hudbar(identifier, text_color, label, textures, default_start_value, default_start_max, default_start_hidden, format_string, format_string_config)
minetest.log("action", "hb.register_hudbar: "..tostring(identifier)) minetest.log("action", "hb.register_hudbar: "..tostring(identifier))
local hudtable = {} local hudtable = {}
local pos, offset local pos, offset
@ -132,7 +153,19 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
end end
end end
if format_string == nil then if format_string == nil then
format_string = S("%s: %d/%d") format_string = N("@1: @2/@3")
end
if format_string_config == nil then
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 end
hudtable.add_all = function(player, hudtable, start_value, start_max, start_hidden) hudtable.add_all = function(player, hudtable, start_value, start_max, start_hidden)
@ -157,7 +190,7 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
iconscale = { x=1, y=1 } iconscale = { x=1, y=1 }
barnumber = hb.value_to_barlength(start_value, start_max) barnumber = hb.value_to_barlength(start_value, start_max)
bgiconnumber = hb.settings.statbar_length bgiconnumber = hb.settings.statbar_length
text = string.format(format_string, label, start_value, start_max) text = make_label(format_string, format_string_config, label, start_value, start_max)
end end
if hb.settings.bar_type == "progress_bar" then if hb.settings.bar_type == "progress_bar" then
ids.bg = player:hud_add({ ids.bg = player:hud_add({
@ -167,6 +200,7 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
text = "hudbars_bar_background.png", text = "hudbars_bar_background.png",
alignment = {x=1,y=1}, alignment = {x=1,y=1},
offset = { x = offset.x - 1, y = offset.y - 1 }, offset = { x = offset.x - 1, y = offset.y - 1 },
z_index = 0,
}) })
if textures.icon ~= nil then if textures.icon ~= nil then
ids.icon = player:hud_add({ ids.icon = player:hud_add({
@ -176,39 +210,37 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
text = textures.icon, text = textures.icon,
alignment = {x=-1,y=1}, alignment = {x=-1,y=1},
offset = { x = offset.x - 3, y = offset.y }, offset = { x = offset.x - 3, y = offset.y },
}) z_index = 1,
end
elseif hb.settings.bar_type == "statbar_modern" then
if textures.bgicon ~= nil then
ids.bg = player:hud_add({
hud_elem_type = "statbar",
position = pos,
text = textures.bgicon,
number = bgiconnumber,
alignment = {x=-1,y=-1},
offset = { x = offset.x, y = offset.y },
direction = 0,
size = {x=24, y=24},
}) })
end end
end end
local bar_image, bar_size local bar_image, bgicon, bar_size
if hb.settings.bar_type == "progress_bar" then if hb.settings.bar_type == "progress_bar" then
bar_image = textures.bar bar_image = textures.bar
-- 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 bar_size = nil
elseif hb.settings.bar_type == "statbar_classic" or hb.settings.bar_type == "statbar_modern" then elseif hb.settings.bar_type == "statbar_classic" or hb.settings.bar_type == "statbar_modern" then
bar_image = textures.icon bar_image = textures.icon
bgicon = textures.bgicon
bar_size = {x=24, y=24} bar_size = {x=24, y=24}
end end
ids.bar = player:hud_add({ ids.bar = player:hud_add({
hud_elem_type = "statbar", hud_elem_type = "statbar",
position = pos, position = pos,
text = bar_image, text = bar_image,
text2 = bgicon,
number = barnumber, number = barnumber,
item = bgiconnumber,
alignment = {x=-1,y=-1}, alignment = {x=-1,y=-1},
offset = offset, offset = offset,
direction = 0, direction = 0,
size = bar_size, size = bar_size,
z_index = 1,
}) })
if hb.settings.bar_type == "progress_bar" then if hb.settings.bar_type == "progress_bar" then
ids.text = player:hud_add({ ids.text = player:hud_add({
@ -219,6 +251,7 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
number = text_color, number = text_color,
direction = 0, direction = 0,
offset = { x = offset.x + 2, y = offset.y - 1}, offset = { x = offset.x + 2, y = offset.y - 1},
z_index = 2,
}) })
end end
-- Do not forget to update hb.get_hudbar_state if you add new fields to the state table -- Do not forget to update hb.get_hudbar_state if you add new fields to the state table
@ -247,6 +280,7 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
hudtable.identifier = identifier hudtable.identifier = identifier
hudtable.format_string = format_string hudtable.format_string = format_string
hudtable.format_string_config = format_string_config
hudtable.label = label hudtable.label = label
hudtable.hudids = {} hudtable.hudids = {}
hudtable.hudstate = {} hudtable.hudstate = {}
@ -276,6 +310,9 @@ function hb.change_hudbar(player, identifier, new_value, new_max_value, new_icon
local name = player:get_player_name() local name = player:get_player_name()
local hudtable = hb.get_hudtable(identifier) local hudtable = hb.get_hudtable(identifier)
if not hudtable.hudstate[name] then
return false
end
local value_changed, max_changed = false, false local value_changed, max_changed = false, false
if new_value ~= nil then if new_value ~= nil then
@ -307,7 +344,7 @@ function hb.change_hudbar(player, identifier, new_value, new_max_value, new_icon
end end
if new_label ~= nil then if new_label ~= nil then
hudtable.label = new_label hudtable.label = new_label
local new_text = string.format(hudtable.format_string, new_label, hudtable.hudstate[name].value, hudtable.hudstate[name].max) local new_text = make_label(hudtable.format_string, hudtable.format_string_config, new_label, hudtable.hudstate[name].value, hudtable.hudstate[name].max)
player:hud_change(hudtable.hudids[name].text, "text", new_text) player:hud_change(hudtable.hudids[name].text, "text", new_text)
end end
if new_text_color ~= nil then if new_text_color ~= nil then
@ -351,7 +388,7 @@ function hb.change_hudbar(player, identifier, new_value, new_max_value, new_icon
end end
if hb.settings.bar_type == "progress_bar" then if hb.settings.bar_type == "progress_bar" then
local new_text = string.format(hudtable.format_string, hudtable.label, new_value, new_max_value) local new_text = make_label(hudtable.format_string, hudtable.format_string_config, hudtable.label, new_value, new_max_value)
if new_text ~= hudtable.hudstate[name].text then if new_text ~= hudtable.hudstate[name].text then
player:hud_change(hudtable.hudids[name].text, "text", new_text) player:hud_change(hudtable.hudids[name].text, "text", new_text)
hudtable.hudstate[name].text = new_text hudtable.hudstate[name].text = new_text
@ -367,19 +404,17 @@ function hb.hide_hudbar(player, identifier)
local name = player:get_player_name() local name = player:get_player_name()
local hudtable = hb.get_hudtable(identifier) local hudtable = hb.get_hudtable(identifier)
if hudtable == nil then return false end if hudtable == nil then return false end
if(hudtable.hudstate[name].hidden == false) then if hudtable.hudstate[name].hidden == true then return true end
if hb.settings.bar_type == "progress_bar" then if hb.settings.bar_type == "progress_bar" then
if hudtable.hudids[name].icon ~= nil then if hudtable.hudids[name].icon ~= nil then
player:hud_change(hudtable.hudids[name].icon, "scale", {x=0,y=0}) player:hud_change(hudtable.hudids[name].icon, "scale", {x=0,y=0})
end
player:hud_change(hudtable.hudids[name].bg, "scale", {x=0,y=0})
player:hud_change(hudtable.hudids[name].text, "text", "")
elseif hb.settings.bar_type == "statbar_modern" then
player:hud_change(hudtable.hudids[name].bg, "number", 0)
end end
player:hud_change(hudtable.hudids[name].bar, "number", 0) player:hud_change(hudtable.hudids[name].bg, "scale", {x=0,y=0})
hudtable.hudstate[name].hidden = true player:hud_change(hudtable.hudids[name].text, "text", "")
end end
player:hud_change(hudtable.hudids[name].bar, "number", 0)
player:hud_change(hudtable.hudids[name].bar, "item", 0)
hudtable.hudstate[name].hidden = true
return true return true
end end
@ -388,23 +423,23 @@ function hb.unhide_hudbar(player, identifier)
local name = player:get_player_name() local name = player:get_player_name()
local hudtable = hb.get_hudtable(identifier) local hudtable = hb.get_hudtable(identifier)
if hudtable == nil then return false end if hudtable == nil then return false end
if(hudtable.hudstate[name].hidden) then if hudtable.hudstate[name].hidden == false then return true end
local value = hudtable.hudstate[name].value local value = hudtable.hudstate[name].value
local max = hudtable.hudstate[name].max local max = hudtable.hudstate[name].max
if hb.settings.bar_type == "progress_bar" then if hb.settings.bar_type == "progress_bar" then
if hudtable.hudids[name].icon ~= nil then if hudtable.hudids[name].icon ~= nil then
player:hud_change(hudtable.hudids[name].icon, "scale", {x=1,y=1}) player:hud_change(hudtable.hudids[name].icon, "scale", {x=1,y=1})
end
if hudtable.hudstate[name].max ~= 0 then
player:hud_change(hudtable.hudids[name].bg, "scale", {x=1,y=1})
end
player:hud_change(hudtable.hudids[name].text, "text", tostring(string.format(hudtable.format_string, hudtable.label, value, max)))
elseif hb.settings.bar_type == "statbar_modern" then
player:hud_change(hudtable.hudids[name].bg, "number", hb.settings.statbar_length)
end end
player:hud_change(hudtable.hudids[name].bar, "number", hb.value_to_barlength(value, max)) if hudtable.hudstate[name].max ~= 0 then
hudtable.hudstate[name].hidden = false player:hud_change(hudtable.hudids[name].bg, "scale", {x=1,y=1})
end
player:hud_change(hudtable.hudids[name].text, "text", make_label(hudtable.format_string, hudtable.format_string_config, hudtable.label, value, max))
elseif hb.settings.bar_type == "statbar_modern" then
player:hud_change(hudtable.hudids[name].bar, "scale", {x=1,y=1})
end end
player:hud_change(hudtable.hudids[name].bar, "number", hb.value_to_barlength(value, max))
player:hud_change(hudtable.hudids[name].bar, "item", hb.value_to_barlength(max, max))
hudtable.hudstate[name].hidden = false
return true return true
end end
@ -452,16 +487,20 @@ local function custom_hud(player)
else else
hide = true hide = true
end end
hb.init_hudbar(player, "health", player:get_hp(), nil, hide) local hp = player:get_hp()
local hp_max = player:get_properties().hp_max
hb.init_hudbar(player, "health", math.min(hp, hp_max), hp_max, hide)
local breath = player:get_breath() local breath = player:get_breath()
local breath_max = player:get_properties().breath_max
local hide_breath local hide_breath
if breath == 11 and hb.settings.autohide_breath == true then hide_breath = true else hide_breath = false end if breath >= breath_max and hb.settings.autohide_breath == true then hide_breath = true else hide_breath = false end
hb.init_hudbar(player, "breath", math.min(breath, 10), nil, hide_breath or hide) hb.init_hudbar(player, "breath", math.min(breath, breath_max), breath_max, hide_breath or hide)
end end
end end
local function update_health(player) local function update_health(player)
hb.change_hudbar(player, "health", player:get_hp()) local hp_max = player:get_properties().hp_max
hb.change_hudbar(player, "health", player:get_hp(), hp_max)
end end
-- update built-in HUD bars -- update built-in HUD bars
@ -472,13 +511,14 @@ local function update_hud(player)
hb.unhide_hudbar(player, "health") hb.unhide_hudbar(player, "health")
end end
--air --air
local breath_max = player:get_properties().breath_max
local breath = player:get_breath() local breath = player:get_breath()
if breath == 11 and hb.settings.autohide_breath == true then if breath >= breath_max and hb.settings.autohide_breath == true then
hb.hide_hudbar(player, "breath") hb.hide_hudbar(player, "breath")
else else
hb.unhide_hudbar(player, "breath") hb.unhide_hudbar(player, "breath")
hb.change_hudbar(player, "breath", math.min(breath, 10)) hb.change_hudbar(player, "breath", math.min(breath, breath_max), breath_max)
end end
--health --health
update_health(player) update_health(player)

View File

@ -1,3 +0,0 @@
Health = Leben
Breath = Atem
%s: %d/%d = %s: %d/%d

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

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

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

View File

@ -1,5 +1,6 @@
Health = Salute # textdomain: hudbars
Breath = Ossigeno Health=Salute
Breath=Ossigeno
# Default format string for progress bar-style HUD bars, e.g. “Health 5/20” # Default format string for progress bar-style HUD bars, e.g. “Health 5/20”
%s: %d/%d @1: @2/@3=@1: @2/@3

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

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

View File

@ -1,5 +1,6 @@
Health = Gezondheid # textdomain: hudbars
Breath = Adem Health=Gezondheid
Breath=Adem
# Default format string for progress bar-style HUD bars, e.g. “Health 5/20” # Default format string for progress bar-style HUD bars, e.g. “Health 5/20”
%s: %d/%d @1: @2/@3=@1: @2/@3

View File

@ -1,5 +1,6 @@
Health = Saude # textdomain: hudbars
Breath = Folego Health=Saude
Breath=Folego
# Formato de string padrão para progresso bar-style de barras do HUD, por exemplo “Saude 5/20” # Formato de string padrão para progresso bar-style de barras do HUD, por exemplo “Saude 5/20”
%s: %d/%d @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

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

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

View File

@ -1,3 +0,0 @@
Health = Kesihatan
Breath = Nafas
%s: %d/%d = %s: %d/%d

View File

@ -1,5 +1,6 @@
Health # textdomain: hudbars
Breath Health=
Breath=
# Default format string for progress bar-style HUD bars, e.g. “Health 5/20” # Default format string for progress bar-style HUD bars, e.g. “Health 5/20”
%s: %d/%d @1: @2/@3=

View File

@ -1,3 +0,0 @@
Health = Can
Breath = Nefes
%s: %d/%d = %s: %d/%d

View File

@ -1 +1,2 @@
name = hudbars name = hudbars
description = Replaces the health and breath symbols in the HUD by “progress bars” and shows exact values. Other mods can add more progress bars for custom player stats.