From 49d5e49999bcef5bdb3b030afac3252eea57876b Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Thu, 23 Jul 2020 23:06:10 +0200 Subject: [PATCH] Upgrade hudbars to 2.3.2 --- mods/HUD/hudbars/README.md | 4 +++- mods/HUD/hudbars/init.lua | 36 ++++++++++++++++-------------------- 2 files changed, 19 insertions(+), 21 deletions(-) diff --git a/mods/HUD/hudbars/README.md b/mods/HUD/hudbars/README.md index afe7f4484a..8e17edad75 100644 --- a/mods/HUD/hudbars/README.md +++ b/mods/HUD/hudbars/README.md @@ -11,7 +11,8 @@ this mod will place them accordingly. position should be displayed correctly on every screen size. ## 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 standard. @@ -39,6 +40,7 @@ Translations: * 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 diff --git a/mods/HUD/hudbars/init.lua b/mods/HUD/hudbars/init.lua index 9c7708bdd6..6ddd4a03bf 100644 --- a/mods/HUD/hudbars/init.lua +++ b/mods/HUD/hudbars/init.lua @@ -213,22 +213,8 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta 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}, - z_index = 0, - }) - end end - local bar_image, bar_size + local bar_image, bgicon, bar_size if hb.settings.bar_type == "progress_bar" then bar_image = textures.bar -- 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 elseif hb.settings.bar_type == "statbar_classic" or hb.settings.bar_type == "statbar_modern" then bar_image = textures.icon + bgicon = textures.bgicon bar_size = {x=24, y=24} end + local text2 + if hb.settings.bar_type == "statbar_modern" then + text2 = bgicon + end ids.bar = player:hud_add({ hud_elem_type = "statbar", position = pos, text = bar_image, + text2 = text2, number = barnumber, + item = bgiconnumber, alignment = {x=-1,y=-1}, offset = offset, 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 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 @@ -418,10 +414,9 @@ function hb.hide_hudbar(player, identifier) 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 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 end @@ -442,9 +437,10 @@ function hb.unhide_hudbar(player, identifier) 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].bg, "number", hb.settings.statbar_length) + player:hud_change(hudtable.hudids[name].bar, "scale", {x=1,y=1}) 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 end @@ -500,7 +496,7 @@ local function custom_hud(player) local breath_max = player:get_properties().breath_max local hide_breath 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 @@ -524,7 +520,7 @@ local function update_hud(player) hb.hide_hudbar(player, "breath") else 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 --health update_health(player)