Upgrade hudbars to 2.3.2

This commit is contained in:
Wuzzy 2020-07-23 23:06:10 +02:00
parent a430772c16
commit 49d5e49999
2 changed files with 19 additions and 21 deletions

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 2.1.0. The current version is 2.3.2.
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.
@ -39,6 +40,7 @@ Translations:
* Italian: Hamlet * Italian: Hamlet
* Malay: muhdnurhidayat * Malay: muhdnurhidayat
* Russian: Imk * 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

@ -213,22 +213,8 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
z_index = 1, z_index = 1,
}) })
end 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},
z_index = 0,
})
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, -- NOTE: Intentionally set to nil. For some reason, on some systems,
@ -240,13 +226,20 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
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
local text2
if hb.settings.bar_type == "statbar_modern" then
text2 = bgicon
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 = text2,
number = barnumber, number = barnumber,
item = bgiconnumber,
alignment = {x=-1,y=-1}, alignment = {x=-1,y=-1},
offset = offset, offset = offset,
direction = 0, direction = 0,
@ -321,6 +314,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
@ -418,10 +414,9 @@ function hb.hide_hudbar(player, identifier)
end end
player:hud_change(hudtable.hudids[name].bg, "scale", {x=0,y=0}) player:hud_change(hudtable.hudids[name].bg, "scale", {x=0,y=0})
player:hud_change(hudtable.hudids[name].text, "text", "") 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].bar, "number", 0)
player:hud_change(hudtable.hudids[name].bar, "item", 0)
hudtable.hudstate[name].hidden = true hudtable.hudstate[name].hidden = true
return true return true
end end
@ -442,9 +437,10 @@ function hb.unhide_hudbar(player, identifier)
end end
player:hud_change(hudtable.hudids[name].text, "text", make_label(hudtable.format_string, hudtable.format_string_config, hudtable.label, value, max)) 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 elseif hb.settings.bar_type == "statbar_modern" then
player:hud_change(hudtable.hudids[name].bg, "number", hb.settings.statbar_length) 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, "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 hudtable.hudstate[name].hidden = false
return true return true
end end
@ -500,7 +496,7 @@ local function custom_hud(player)
local breath_max = player:get_properties().breath_max local breath_max = player:get_properties().breath_max
local hide_breath local hide_breath
if breath >= breath_max 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, breath_max-1), breath_max-1, hide_breath or hide) hb.init_hudbar(player, "breath", math.min(breath, breath_max), breath_max, hide_breath or hide)
end end
end end
@ -524,7 +520,7 @@ local function update_hud(player)
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, breath_max-1), breath_max-1) hb.change_hudbar(player, "breath", math.min(breath, breath_max), breath_max)
end end
--health --health
update_health(player) update_health(player)