summaryrefslogtreecommitdiff
path: root/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'init.lua')
-rw-r--r--init.lua32
1 files changed, 24 insertions, 8 deletions
diff --git a/init.lua b/init.lua
index 1429a2c..7a30096 100644
--- a/init.lua
+++ b/init.lua
@@ -62,6 +62,9 @@ hb.settings.start_offset_right.y = hb.load_setting("hudbars_start_offset_right_y
hb.settings.vmargin = hb.load_setting("hudbars_tick", "number", 24)
hb.settings.tick = hb.load_setting("hudbars_tick", "number", 0.1)
+-- experimental setting: Changing this setting is not officially supported, do NOT rely on it!
+hb.settings.forceload_default_hudbars = hb.load_setting("hudbars_forceload_default_hudbars", "bool", true)
+
--[[
- hudbars_alignment_pattern: This setting changes the way the HUD bars are ordered on the display. You can choose
between a zig-zag pattern or a vertically stacked pattern.
@@ -131,6 +134,7 @@ function hb.get_hudbar_position_index(identifier)
end
function hb.register_hudbar(identifier, text_color, label, textures, default_start_value, default_start_max, default_start_hidden, format_string)
+ minetest.log("action", "hb.register_hudbar: "..tostring(identifier))
local hudtable = {}
local pos, offset
local index = math.floor(hb.get_hudbar_position_index(identifier))
@@ -404,7 +408,7 @@ function hb.get_hudbar_state(player, identifier)
end
--register built-in HUD bars
-if minetest.setting_getbool("enable_damage") then
+if minetest.setting_getbool("enable_damage") or hb.settings.forceload_default_hudbars then
hb.register_hudbar("health", 0xFFFFFF, "Health", { bar = "hudbars_bar_health.png", icon = "hudbars_icon_health.png", bgicon = "hudbars_bgicon_health.png" }, 20, 20, false)
hb.register_hudbar("breath", 0xFFFFFF, "Breath", { bar = "hudbars_bar_breath.png", icon = "hudbars_icon_breath.png" }, 10, 10, true)
end
@@ -418,12 +422,18 @@ end
local function custom_hud(player)
- if minetest.setting_getbool("enable_damage") then
- hb.init_hudbar(player, "health", player:get_hp())
+ if minetest.setting_getbool("enable_damage") or hb.settings.forceload_default_hudbars then
+ local hide
+ if minetest.setting_getbool("enable_damage") then
+ hide = false
+ else
+ hide = true
+ end
+ hb.init_hudbar(player, "health", player:get_hp(), nil, hide)
local breath = player:get_breath()
local hide_breath
if breath == 11 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)
+ hb.init_hudbar(player, "breath", math.min(breath, 10), nil, hide_breath or hide)
end
end
@@ -431,6 +441,9 @@ end
-- update built-in HUD bars
local function update_hud(player)
if minetest.setting_getbool("enable_damage") then
+ if hb.settings.forceload_default_hudbars then
+ hb.unhide_hudbar(player, "health")
+ end
--air
local breath = player:get_breath()
@@ -443,6 +456,9 @@ local function update_hud(player)
--health
hb.change_hudbar(player, "health", player:get_hp())
+ elseif hb.settings.forceload_default_hudbars then
+ hb.hide_hudbar(player, "health")
+ hb.hide_hudbar(player, "breath")
end
end
@@ -463,10 +479,10 @@ minetest.register_globalstep(function(dtime)
timer = timer + dtime
if main_timer > hb.settings.tick or timer > 4 then
if main_timer > hb.settings.tick then main_timer = 0 end
- for playername, player in pairs(hb.players) do
- -- only proceed if damage is enabled
- if minetest.setting_getbool("enable_damage") then
- -- update all hud elements
+ -- only proceed if damage is enabled
+ if minetest.setting_getbool("enable_damage") or hb.settings.forceload_default_hudbars then
+ for playername, player in pairs(hb.players) do
+ -- update all hud elements
update_hud(player)
end
end