From ae09d2076ef8a42bf4157cc59f3de79eeb937e48 Mon Sep 17 00:00:00 2001 From: crabman77 Date: Mon, 22 Aug 2016 16:10:28 +0200 Subject: [PATCH] update hudbars, remove old duplicated code/textures (now in mff_hud) --- minetest.conf | 5 + mods/hudbars/API.md | 40 +- mods/hudbars/changelog.txt | 17 + mods/hudbars/depends.txt | 2 +- mods/hudbars/description.txt | 1 + mods/hudbars/hud_legacy.lua | 9 - mods/hudbars/hudbars.conf.example | 24 -- mods/hudbars/init.lua | 403 ++++++++++++------ mods/hudbars/locale/de.txt | 3 + mods/hudbars/locale/template.txt | 5 + mods/hudbars/mod.conf | 1 + mods/hudbars/screenshot.png | Bin 0 -> 5477 bytes mods/hudbars/settingtypes.txt | 98 +++++ mods/hudbars/textures/crosshair.png | Bin 539 -> 0 bytes .../textures/hudbars_bgicon_breath.png | Bin 0 -> 811 bytes mods/hudbars/textures/hudbars_hotbar.png | Bin 142 -> 0 bytes .../textures/hudbars_hotbar_selected.png | Bin 305 -> 0 bytes mods/hudbars/textures/wieldhand.png | Bin 153 -> 0 bytes 18 files changed, 434 insertions(+), 174 deletions(-) create mode 100644 mods/hudbars/description.txt delete mode 100755 mods/hudbars/hud_legacy.lua delete mode 100755 mods/hudbars/hudbars.conf.example mode change 100755 => 100644 mods/hudbars/init.lua create mode 100644 mods/hudbars/locale/de.txt create mode 100644 mods/hudbars/locale/template.txt create mode 100644 mods/hudbars/mod.conf create mode 100644 mods/hudbars/screenshot.png create mode 100644 mods/hudbars/settingtypes.txt delete mode 100755 mods/hudbars/textures/crosshair.png create mode 100644 mods/hudbars/textures/hudbars_bgicon_breath.png delete mode 100755 mods/hudbars/textures/hudbars_hotbar.png delete mode 100755 mods/hudbars/textures/hudbars_hotbar_selected.png delete mode 100755 mods/hudbars/textures/wieldhand.png diff --git a/minetest.conf b/minetest.conf index 31364047..e4c567da 100755 --- a/minetest.conf +++ b/minetest.conf @@ -131,6 +131,11 @@ chunksize = 3 mesecon.blinky_plant_interval = 7 # Set default mana regeneration to 3 mana_default_regen = 3 +# HUDBARS +hudbars_sorting = health=0, mana=1, satiation=2, sprint=3, breath=4, armor=5 +hudbars_tick = 0.4 +hudbars_start_offset_left_y = -100 +hudbars_start_offset_right_y = -100 ### IRC CHAT ### ################ diff --git a/mods/hudbars/API.md b/mods/hudbars/API.md index d18f05b2..8dd8f0ef 100755 --- a/mods/hudbars/API.md +++ b/mods/hudbars/API.md @@ -1,4 +1,4 @@ -API documentation for the HUD bars mod 1.2.1 +API documentation for the HUD bars mod 1.4.1 ============================================ ## Introduction @@ -50,8 +50,9 @@ This function registers a new custom HUD bar definition to the HUD bars mod, so and unhidden on a per-player basis. Note this does not yet display the HUD bar. -The HUD bars will be displayed in a “first come, first serve” order. This mod does not allow fow a custom order or a way to set it -manually in a reliable way. +The HUD bars will be displayed in a “first come, first serve” order. This API does not allow fow a custom order or a way to set it +manually in a reliable way. However, you can use the setting `hudbars_sorting` for this. See the advanced setting menu in Minetest +for more information. #### Parameters @@ -99,22 +100,39 @@ Always `nil`. ## Modifying a HUD bar -After a HUD bar has been added, you can change the current and maximum value on a per-player basis. +After a HUD bar has been added, you can change the current and maximum value and other attributes on a per-player basis. You use the function `hb.change_hudbar` for this. -### `hb.change_hudbar(player, identifier, new_value, new_max_value)` -Changes the values of an initialized HUD bar for a certain player. `new_value` and `new_max_value` -can be `nil`; if one of them is `nil`, that means the value is unchanged. If both values -are `nil`, this function is a no-op. -This function also tries minimize the amount of calls to `hud_change` of the Minetest Lua API, and -therefore, network traffic. `hud_change` is only called if it is actually needed, i.e. when the -actual length of the bar or the displayed string changed, so you do not have to worry about it. +### `hb.change_hudbar(player, identifier, new_value, new_max_value, new_icon, new_bgicon, new_bar, new_label, new_text_color)` +Changes the values and the appearance of an initialized HUD bar for a certain player. `new_value` +and `new_max_value` are the most important parameters as they specify the new current and maximum new values, you do not need +to worry too much about the other parameters. + +The following parameters are less important and provided for styling the HUD bar after registration (if +this is desired). The “styling” parameters parallel the parameters of `hb.register_hudbar`. It is +recommended to not change the style of a HUD bar too often as this can be distracting or confusing +for players. + +`new_value`, `new_max_value` `new_icon`, `new_bgicon`, `new_bar`, `new_label` and `new_text_color` can be +`nil`; if one of them is `nil`, that means the value is unchanged. If all those values are `nil`, this +function is a no-op. + +This function tries to minimize the amount of calls to `hud_change` of the Minetest Lua API +(and thus, network traffic), when you only change the value and/or maximum value. In this case, +`hud_change` is only called if it is actually needed, e.g. when the actual length of the bar +or the displayed string changed, so you do not have to worry about it. There is, however, no +such network optimization for the “styling” parameters, so keep this in mind. #### Parameters * `player`: `ObjectRef` of the player to which the HUD bar belongs to * `identifier`: The identifier of the HUD bar type to change, as specified in `hb.register_hudbar`. * `new_value`: The new current value of the HUD bar * `new_max_value`: The new maximum value of the HUD bar +* `new_icon`: File name of the new icon +* `new_bgicon`: File name of the new background icon for the modern-style statbar +* `new_bar`: File name of the new bar segment image +* `new_label`: A new text label of the HUD bar. Note the format string still applies +* `new_text_color`: A 3-octet number defining the new color of the text. #### Return value Always `nil`. diff --git a/mods/hudbars/changelog.txt b/mods/hudbars/changelog.txt index 3c4f0bc3..8edab4e6 100755 --- a/mods/hudbars/changelog.txt +++ b/mods/hudbars/changelog.txt @@ -64,3 +64,20 @@ as of version 2.0.0 of the standard . 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 diff --git a/mods/hudbars/depends.txt b/mods/hudbars/depends.txt index a2fdac92..9207dab8 100755 --- a/mods/hudbars/depends.txt +++ b/mods/hudbars/depends.txt @@ -1,2 +1,2 @@ default -mff_hud? +intllib? diff --git a/mods/hudbars/description.txt b/mods/hudbars/description.txt new file mode 100644 index 00000000..9e10e894 --- /dev/null +++ b/mods/hudbars/description.txt @@ -0,0 +1 @@ +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. diff --git a/mods/hudbars/hud_legacy.lua b/mods/hudbars/hud_legacy.lua deleted file mode 100755 index bbdb9231..00000000 --- a/mods/hudbars/hud_legacy.lua +++ /dev/null @@ -1,9 +0,0 @@ --- Miscellaneous legacies from our old mod, HUD by BlockMen --- - -minetest.register_on_joinplayer(function(player) - player:hud_set_flags({crosshair = true, hotbar = true, healthbar = false, wielditem = true, breathbar = false}) - - player:hud_set_hotbar_image("hudbars_hotbar.png") - player:hud_set_hotbar_selected_image("hudbars_hotbar_selected.png") -end) diff --git a/mods/hudbars/hudbars.conf.example b/mods/hudbars/hudbars.conf.example deleted file mode 100755 index 9ca94510..00000000 --- a/mods/hudbars/hudbars.conf.example +++ /dev/null @@ -1,24 +0,0 @@ --- HUD bars example config file -------------------------------- --- Currently you can customize the starting position of the first bottom two HUD bars --- and the vertical margin. That's all. --- Remove the two dashes to activate a setting. Lua syntax is used. --- The examples are all equal to the mod defaults -------------------------------------------------------------------------------------------------------- - - --- Vertical space between two HUD bars --- hb.settings.vmargin = 24 - --- Pos of the first HUD bar the the left (“pos”, as in hud definition of hud_add of Minetest Lua API) --- hb.settings.pos_left = { x=0.5, y=1 } - --- Pos of the first HUD bar the the right --- hb.settings.pos_right= { x = 0.5, y = 1 } - --- Offset of the first HUD bar to the left (“offset”, as in HUD definition) --- hb.settings.start_offset_left = { x = -175, y = -70 } - --- Offset of the first HUD bar to the right --- hb.settings_start_offset_right = { x = 15, y = -70 } - diff --git a/mods/hudbars/init.lua b/mods/hudbars/init.lua old mode 100755 new mode 100644 index 7c48da35..11138fbb --- a/mods/hudbars/init.lua +++ b/mods/hudbars/init.lua @@ -1,3 +1,11 @@ +local S +if (minetest.get_modpath("intllib")) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) +else + S = function ( s ) return s end +end + hb = {} hb.hudtables = {} @@ -5,19 +13,83 @@ hb.hudtables = {} -- number of registered HUD bars hb.hudbars_count = 0 +-- table which records which HUD bar slots have been “registered” so far; used for automatic positioning +hb.registered_slots = {} + hb.settings = {} -hb.settings.custom = {} --MFF (crabman|19/06/15) add custom pos --- default settings + +function hb.load_setting(sname, stype, defaultval, valid_values) + local sval + if stype == "string" then + sval = minetest.setting_get(sname) + elseif stype == "bool" then + sval = minetest.setting_getbool(sname) + elseif stype == "number" then + sval = tonumber(minetest.setting_get(sname)) + end + if sval ~= nil then + if valid_values ~= nil then + local valid = false + for i=1,#valid_values do + if sval == valid_values[i] then + valid = true + end + end + if not valid then + minetest.log("error", "[hudbars] Invalid value for "..sname.."! Using default value ("..tostring(defaultval)..").") + return defaultval + else + return sval + end + else + return sval + end + else + return defaultval + end +end + +-- (hardcoded) default settings hb.settings.max_bar_length = 160 +hb.settings.statbar_length = 20 -- statbar positions -hb.settings.pos_left = { x=0.5, y=1 } -hb.settings.pos_right= { x = 0.5, y = 1 } -hb.settings.start_offset_left = { x = -175, y = -100 } -hb.settings.start_offset_right = { x = 15, y = -100 } +hb.settings.pos_left = {} +hb.settings.pos_right = {} +hb.settings.start_offset_left = {} +hb.settings.start_offset_right= {} +hb.settings.pos_left.x = hb.load_setting("hudbars_pos_left_x", "number", 0.5) +hb.settings.pos_left.y = hb.load_setting("hudbars_pos_left_y", "number", 1) +hb.settings.pos_right.x = hb.load_setting("hudbars_pos_right_x", "number", 0.5) +hb.settings.pos_right.y = hb.load_setting("hudbars_pos_right_y", "number", 1) +hb.settings.start_offset_left.x = hb.load_setting("hudbars_start_offset_left_x", "number", -175) +hb.settings.start_offset_left.y = hb.load_setting("hudbars_start_offset_left_y", "number", -86) +hb.settings.start_offset_right.x = hb.load_setting("hudbars_start_offset_right_x", "number", 15) +hb.settings.start_offset_right.y = hb.load_setting("hudbars_start_offset_right_y", "number", -86) -hb.settings.vmargin = 24 -hb.settings.tick = 0.5 +hb.settings.vmargin = hb.load_setting("hudbars_vmargin", "number", 24) +hb.settings.tick = hb.load_setting("hudbars_tick", "number", 0.4) + +-- 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) + +-- Misc. settings +hb.settings.alignment_pattern = hb.load_setting("hudbars_alignment_pattern", "string", "zigzag", {"zigzag", "stack_up", "stack_down"}) +hb.settings.bar_type = hb.load_setting("hudbars_bar_type", "string", "progress_bar", {"progress_bar", "statbar_classic", "statbar_modern"}) +hb.settings.autohide_breath = hb.load_setting("hudbars_autohide_breath", "bool", true) + +local sorting = minetest.setting_get("hudbars_sorting") +if sorting ~= nil then + hb.settings.sorting = {} + hb.settings.sorting_reverse = {} + for k,v in string.gmatch(sorting, "(%w+)=(%w+)") do + hb.settings.sorting[k] = tonumber(v) + hb.settings.sorting_reverse[tonumber(v)] = k + end +else + hb.settings.sorting = { ["health"] = 0, ["breath"] = 1 } + hb.settings.sorting_reverse = { [0] = "health", [1] = "breath" } +end -- Table which contains all players with active default HUD bars (only for internal use) --hb.players = {} @@ -26,7 +98,17 @@ function hb.value_to_barlength(value, max) if max == 0 then return 0 else - return math.ceil((value/max) * hb.settings.max_bar_length) + if hb.settings.bar_type == "progress_bar" then + local x + if value < 0 then x=-0.5 else x = 0.5 end + local ret = math.modf((value/max) * hb.settings.max_bar_length + x) + return ret + else + local x + if value < 0 then x=-0.5 else x = 0.5 end + local ret = math.modf((value/max) * hb.settings.statbar_length + x) + return ret + end end end @@ -34,76 +116,55 @@ function hb.get_hudtable(identifier) return hb.hudtables[identifier] end --- Local functions - --- update built-in HUD bars -local function update_hud(player) - if minetest.setting_getbool("enable_damage") then - --air - local breath = player:get_breath() - - if breath == 11 then - hb.hide_hudbar(player, "breath") - elseif breath then - hb.unhide_hudbar(player, "breath") - hb.change_hudbar(player, "breath", math.min(breath, 10)) - end - - --health - hb.change_hudbar(player, "health", player:get_hp()) - end -end - -local function hb_step() - --for playername, player in pairs(hb.players) do --MFF (6/03/2016) removed cause server register(bug/lag?) table hb.players[""] - for _,player in ipairs(minetest.get_connected_players()) do - -- only proceed if damage is enabled - if minetest.setting_getbool("enable_damage") then - -- update all hud elements - update_hud(player) +function hb.get_hudbar_position_index(identifier) + if hb.settings.sorting[identifier] ~= nil then + return hb.settings.sorting[identifier] + else + local i = 0 + while true do + if hb.registered_slots[i] ~= true and hb.settings.sorting_reverse[i] == nil then + return i + end + i = i + 1 end end - minetest.after(hb.settings.tick, hb_step) - --minetest.chat_send_all("test") end --- end local functions - 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 - - --MFF (crabman|19/06/15)|DEBUT add custom pos - if hb.settings.custom.custom and hb.settings.custom[identifier] ~= nil then - if hb.settings.custom[identifier].x == 0 then + local index = math.floor(hb.get_hudbar_position_index(identifier)) + hb.registered_slots[index] = true + if hb.settings.alignment_pattern == "stack_up" then + pos = hb.settings.pos_left + offset = { + x = hb.settings.start_offset_left.x, + y = hb.settings.start_offset_left.y - hb.settings.vmargin * index + } + elseif hb.settings.alignment_pattern == "stack_down" then + pos = hb.settings.pos_left + offset = { + x = hb.settings.start_offset_left.x, + y = hb.settings.start_offset_left.y + hb.settings.vmargin * index + } + else + if index % 2 == 0 then pos = hb.settings.pos_left offset = { x = hb.settings.start_offset_left.x, - y = hb.settings.start_offset_left.y - hb.settings.vmargin * math.floor(hb.settings.custom[identifier].y) + y = hb.settings.start_offset_left.y - hb.settings.vmargin * (index/2) } else pos = hb.settings.pos_right offset = { x = hb.settings.start_offset_right.x, - y = hb.settings.start_offset_right.y - hb.settings.vmargin * math.floor(hb.settings.custom[identifier].y) + y = hb.settings.start_offset_right.y - hb.settings.vmargin * ((index-1)/2) } end - --MFF (crabman|19/06/15) /FIN - elseif hb.hudbars_count % 2 == 0 then - pos = hb.settings.pos_left - offset = { - x = hb.settings.start_offset_left.x, - y = hb.settings.start_offset_left.y - hb.settings.vmargin * math.floor(hb.hudbars_count/2) - } - else - pos = hb.settings.pos_right - offset = { - x = hb.settings.start_offset_right.x, - y = hb.settings.start_offset_right.y - hb.settings.vmargin * math.floor((hb.hudbars_count-1)/2) - } end if format_string == nil then - format_string = "%s: %d/%d" + format_string = S("%s: %d/%d") end hudtable.add_all = function(player, hudtable, start_value, start_max, start_hidden) @@ -113,7 +174,7 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta local ids = {} local state = {} local name = player:get_player_name() - local bgscale, iconscale, text, barnumber + local bgscale, iconscale, text, barnumber, bgiconnumber if start_max == 0 or start_hidden then bgscale = { x=0, y=0 } else @@ -122,48 +183,71 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta if start_hidden then iconscale = { x=0, y=0 } barnumber = 0 + bgiconnumber = 0 text = "" else iconscale = { x=1, y=1 } barnumber = hb.value_to_barlength(start_value, start_max) + bgiconnumber = hb.settings.statbar_length text = string.format(format_string, label, start_value, start_max) end - ids.bg = player:hud_add({ - hud_elem_type = "image", - position = pos, - scale = bgscale, - text = "hudbars_bar_background.png", - alignment = {x=1,y=1}, - offset = { x = offset.x - 1, y = offset.y - 1 }, - }) - if textures.icon ~= nil then - ids.icon = player:hud_add({ + if hb.settings.bar_type == "progress_bar" then + ids.bg = player:hud_add({ hud_elem_type = "image", position = pos, - scale = iconscale, - text = textures.icon, - alignment = {x=-1,y=1}, - offset = { x = offset.x - 3, y = offset.y }, + scale = bgscale, + text = "hudbars_bar_background.png", + alignment = {x=1,y=1}, + offset = { x = offset.x - 1, y = offset.y - 1 }, }) + if textures.icon ~= nil then + ids.icon = player:hud_add({ + hud_elem_type = "image", + position = pos, + scale = iconscale, + text = textures.icon, + alignment = {x=-1,y=1}, + offset = { x = offset.x - 3, y = offset.y }, + }) + 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 }, + }) + end + end + local bar_image + if hb.settings.bar_type == "progress_bar" then + bar_image = textures.bar + elseif hb.settings.bar_type == "statbar_classic" or hb.settings.bar_type == "statbar_modern" then + bar_image = textures.icon end ids.bar = player:hud_add({ hud_elem_type = "statbar", position = pos, - text = textures.bar, + text = bar_image, number = barnumber, alignment = {x=-1,y=-1}, offset = offset, size = "", }) - ids.text = player:hud_add({ - hud_elem_type = "text", - position = pos, - text = text, - alignment = {x=1,y=1}, - number = text_color, - direction = 0, - offset = { x = offset.x + 2, y = offset.y }, + if hb.settings.bar_type == "progress_bar" then + ids.text = player:hud_add({ + hud_elem_type = "text", + position = pos, + text = text, + alignment = {x=1,y=1}, + number = text_color, + direction = 0, + offset = { x = offset.x + 2, y = offset.y - 1}, }) + end -- Do not forget to update hb.get_hudbar_state if you add new fields to the state table state.hidden = start_hidden state.value = start_value @@ -207,8 +291,8 @@ function hb.init_hudbar(player, identifier, start_value, start_max, start_hidden hb.hudtables[identifier].add_all(player, hudtable, start_value, start_max, start_hidden) end -function hb.change_hudbar(player, identifier, new_value, new_max_value) - if new_value == nil and new_max_value == nil then +function hb.change_hudbar(player, identifier, new_value, new_max_value, new_icon, new_bgicon, new_bar, new_label, new_text_color) + if new_value == nil and new_max_value == nil and new_icon == nil and new_bgicon == nil and new_bar == nil and new_label == nil and new_text_color == nil then return end @@ -233,8 +317,35 @@ function hb.change_hudbar(player, identifier, new_value, new_max_value) hudtable.hudstate[name].value = new_value value_changed = true end - elseif hudtable.hudstate[name] then - new_value = hudtable.hudstate[name].value + else + new_value = (hudtable.hudstate[name] or {value = 0}).value + end + + if hb.settings.bar_type == "progress_bar" then + if new_icon ~= nil and hudtable.hudids[name].icon ~= nil then + player:hud_change(hudtable.hudids[name].icon, "text", new_icon) + end + if new_bgicon ~= nil and hudtable.hudids[name].bgicon ~= nil then + player:hud_change(hudtable.hudids[name].bgicon, "text", new_bgicon) + end + if new_bar ~= nil then + player:hud_change(hudtable.hudids[name].bar , "text", new_bar) + end + if new_label ~= nil then + hudtable.label = new_label + local new_text = string.format(hudtable.format_string, new_label, hudtable.hudstate[name].value, hudtable.hudstate[name].max) + player:hud_change(hudtable.hudids[name].text, "text", new_text) + end + if new_text_color ~= nil then + player:hud_change(hudtable.hudids[name].text, "number", new_text_color) + end + else + if new_icon ~= nil and hudtable.hudids[name].bar ~= nil then + player:hud_change(hudtable.hudids[name].bar, "text", new_icon) + end + if new_bgicon ~= nil and hudtable.hudids[name].bg ~= nil then + player:hud_change(hudtable.hudids[name].bg, "text", new_bgicon) + end end local main_error_text = @@ -249,8 +360,8 @@ function hb.change_hudbar(player, identifier, new_value, new_max_value) minetest.log("error", main_error_text.."new_value ("..new_value..") is smaller than 0!") end - if hudtable.hudstate[name] and hudtable.hudstate[name].hidden == false then - if max_changed then + if hudtable.hudstate[name].hidden == false then + if max_changed and hb.settings.bar_type == "progress_bar" then if hudtable.hudstate[name].max == 0 then player:hud_change(hudtable.hudids[name].bg, "scale", {x=0,y=0}) else @@ -265,10 +376,12 @@ function hb.change_hudbar(player, identifier, new_value, new_max_value) hudtable.hudstate[name].barlength = new_barlength end - local new_text = string.format(hudtable.format_string, hudtable.label, new_value, new_max_value) - if new_text ~= hudtable.hudstate[name].text then - player:hud_change(hudtable.hudids[name].text, "text", new_text) - hudtable.hudstate[name].text = new_text + if hb.settings.bar_type == "progress_bar" then + local new_text = string.format(hudtable.format_string, hudtable.label, new_value, new_max_value) + if new_text ~= hudtable.hudstate[name].text then + player:hud_change(hudtable.hudids[name].text, "text", new_text) + hudtable.hudstate[name].text = new_text + end end end end @@ -278,12 +391,16 @@ function hb.hide_hudbar(player, identifier) local name = player:get_player_name() local hudtable = hb.get_hudtable(identifier) if(hudtable.hudstate[name].hidden == false) then - if hudtable.hudids[name].icon ~= nil then - player:hud_change(hudtable.hudids[name].icon, "scale", {x=0,y=0}) + if hb.settings.bar_type == "progress_bar" then + if hudtable.hudids[name].icon ~= nil then + 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 - player:hud_change(hudtable.hudids[name].bg, "scale", {x=0,y=0}) player:hud_change(hudtable.hudids[name].bar, "number", 0) - player:hud_change(hudtable.hudids[name].text, "text", "") hudtable.hudstate[name].hidden = true end end @@ -291,18 +408,22 @@ end function hb.unhide_hudbar(player, identifier) local name = player:get_player_name() local hudtable = hb.get_hudtable(identifier) - if(hudtable.hudstate[name] and hudtable.hudstate[name].hidden) then + if(hudtable.hudstate[name].hidden) then local name = player:get_player_name() local value = hudtable.hudstate[name].value local max = hudtable.hudstate[name].max - if hudtable.hudids[name].icon ~= nil then - 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}) + if hb.settings.bar_type == "progress_bar" then + if hudtable.hudids[name].icon ~= nil then + 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 player:hud_change(hudtable.hudids[name].bar, "number", hb.value_to_barlength(value, max)) - player:hud_change(hudtable.hudids[name].text, "text", tostring(string.format(hudtable.format_string, hudtable.label, value, max))) hudtable.hudstate[name].hidden = false end end @@ -320,17 +441,10 @@ function hb.get_hudbar_state(player, identifier) return copy end ---load custom settings -local set = io.open(minetest.get_modpath("hudbars").."/hudbars.conf", "r") -if set then - dofile(minetest.get_modpath("hudbars").."/hudbars.conf") - set:close() -end - --register built-in HUD bars -if minetest.setting_getbool("enable_damage") then - hb.register_hudbar("health", 0xFFFFFF, "Health", { bar = "hudbars_bar_health.png", icon = "hudbars_icon_health.png" }, 20, 20, false) - hb.register_hudbar("breath", 0xFFFFFF, "Breath", { bar = "hudbars_bar_breath.png", icon = "hudbars_icon_breath.png" }, 10, 10, true) +if minetest.setting_getbool("enable_damage") or hb.settings.forceload_default_hudbars then + hb.register_hudbar("health", 0xFFFFFF, S("Health"), { bar = "hudbars_bar_health.png", icon = "hudbars_icon_health.png", bgicon = "hudbars_bgicon_health.png" }, 20, 20, false) + hb.register_hudbar("breath", 0xFFFFFF, S("Breath"), { bar = "hudbars_bar_breath.png", icon = "hudbars_icon_breath.png", bgicon = "hudbars_bgicon_breath.png" }, 10, 10, true) end local function hide_builtin(player) @@ -342,31 +456,62 @@ 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 then hide_breath = true else hide_breath = false end - hb.init_hudbar(player, "breath", math.min(breath, 10), nil, 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 or hide) end 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() + + if breath == 11 and hb.settings.autohide_breath == true then + hb.hide_hudbar(player, "breath") + else + hb.unhide_hudbar(player, "breath") + hb.change_hudbar(player, "breath", math.min(breath, 10)) + end + + --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 + +local function hb_step() + if minetest.setting_getbool("enable_damage") or hb.settings.forceload_default_hudbars then + for _,player in ipairs(minetest.get_connected_players()) do + -- only proceed if damage is enabled + -- update all hud elements + update_hud(player) + end + end + minetest.after(hb.settings.tick, hb_step) +end + minetest.register_on_joinplayer(function(player) local name = player:get_player_name() if not name or name == "" then return end hide_builtin(player) custom_hud(player) --- hb.players[name] = player end) minetest.after(0, hb_step) - ---[[ -minetest.register_on_leaveplayer(function(player) - hb.players[player:get_player_name()] = nil -end) ---]] - --- Our legacy -dofile(minetest.get_modpath("hudbars").."/hud_legacy.lua") diff --git a/mods/hudbars/locale/de.txt b/mods/hudbars/locale/de.txt new file mode 100644 index 00000000..578764ea --- /dev/null +++ b/mods/hudbars/locale/de.txt @@ -0,0 +1,3 @@ +Health = Leben +Breath = Atem +%s: %d/%d = %s: %d/%d diff --git a/mods/hudbars/locale/template.txt b/mods/hudbars/locale/template.txt new file mode 100644 index 00000000..0a26b8fe --- /dev/null +++ b/mods/hudbars/locale/template.txt @@ -0,0 +1,5 @@ +Health +Breath + +# Default format string for progress bar-style HUD bars, e.g. “Health 5/20” +%s: %d/%d diff --git a/mods/hudbars/mod.conf b/mods/hudbars/mod.conf new file mode 100644 index 00000000..add28e65 --- /dev/null +++ b/mods/hudbars/mod.conf @@ -0,0 +1 @@ +name = hudbars diff --git a/mods/hudbars/screenshot.png b/mods/hudbars/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..93ed93e8ddd770935f70bd69965826da28e660c1 GIT binary patch literal 5477 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 bGb{Z+E%8SiULdJx00000NkvXXu0mjfVP1ry literal 0 HcmV?d00001 diff --git a/mods/hudbars/settingtypes.txt b/mods/hudbars/settingtypes.txt new file mode 100644 index 00000000..5779063c --- /dev/null +++ b/mods/hudbars/settingtypes.txt @@ -0,0 +1,98 @@ +[Appearance] +# Specifies how the value indicators (i.e. health, breah, etc.) look. There are 3 styles +# available. You can choose between the default progress-bar-like bars and the good +# old statbars like you know from vanilla Minetest. +# These values are possible: +# - progress_bar: A horizontal progress-bar-like bar with a label, showing numerical value +# (current, maximum), and an icon. These bars usually convey the most +# information. This is the default and recommended value. +# - statbar_classic: Classic statbar, like in vanilla Minetest. Made out of up to 20 +# half-symbols. Those bars represent the vague ratio between +# the current value and the maximum value. 1 half-symbol stands for +# approximately 5% of the maximum value. +# - statbar_modern: Like the classic statbar, but also supports background images, this +# kind of statbar may be considered to be more user-friendly than the +# classic statbar. This bar type closely resembles the mod +# “Better HUD” [hud] by BlockMen. +hudbars_bar_type (HUD bars style) enum progress_bar progress_bar,statbar_classic,statbar_modern + + +# If enabled (default), the breath indicators in the HUD will be automatically hidden shortly +# after the breath has been filled up. Otherwise, the breath will always be displayed. +hudbars_autohide_breath (Automatically hide breath indicators) bool true + +# This setting changes the way the HUD bars are ordered on the display. You can choose +# between a zig-zag pattern (default) or a vertically stacked pattern. +# The following values are allowed: +# - zigzag: Starting from the left bottom, the next is right from the first, +# the next is above the first, the next is right of the third, etc. +# - stack_up: The HUD bars are stacked vertically, going upwards. +# - stack_down: The HUD bars are stacked vertically, going downwards. +hudbars_alignment_pattern (HUD bars alignment pattern) enum zigzag zigzag,stack_up,stack_down + +# This setting allows you to specify the order of the HUD bars explicitly. If left empty +# (the default), the health and breath indicators come first, additional indicators +# may appear in any order. This setting is quite technical and normal users probably do not +# need to worry about it. +# +# Syntax: +# The setting has to be specified as a comma-seperated list of key=value pairs, where a key +# refers to the identifier of a HUD bar and the value refers to the slot number of where the +# HUD bar should be placed. The slot number must be an integer greater of equal to 0. Where +# the HUD bars will be displayed exactly depends on the alignment pattern being used. +# All HUD bars to which no order value has been applied will fill in all slots which have +# not been occupied by the HUD bars specified in this setting, the slots will be filled in +# from the lowest slot number. +# Note that the order of those remaining HUD bars is not fixed, it basically just boils +# down on which mod “came” first. Don't worry, the mod will still work perfectly fine, this +# setting is entirely optional. +# The identifier for the health bar is “health” and the identifier for the breath bar is +# “breath”. For other HUD bars, you have to learn it from the mod which is supplying them. +# +# Be careful not to use slot indices twice, or else different HUD bars will be drawn over +# each other! +# +# Example: “breath=0, health=1” +# This makes the breath bar first and the health bar second, which is the opposite order +# of the default one. +hudbars_sorting (HUD bars order) string + +[Positions and offsets] +# Horizontal (x) main position of the HUD bars over the entire screen. +# 0.0 is left-most, 1.0 is right-most. +# For the zig-zag alignment pattern, this is for the left HUD bars. +hudbars_pos_left_x (Left HUD bar screen x position) float 0.5 0.0 1.0 +# Vertical (y) main position of the HUD bars over the entire screen. +# 0.0 is top, 1.0 is bottom. +# For the zig-zag alignment pattern, this is for the left HUD bars. +hudbars_pos_left_y (Left HUD bar screen y position) float 1.0 0.0 1.0 +# Horizontal (x) main position of the right HUD bars over the entire screen. +# 0.0 is left-most, 1.0 is right-most. +# Only used for the zig-zag alignment pattern. +hudbars_pos_right_x (Right HUD bar screen x position) float 0.5 0.0 1.0 +# Vertical main position (y) of the right HUD bars over the entire screen. +# 0.0 is top, 1.0 is bottom. +# Only used for the zig-zag alignment pattern. +hudbars_pos_right_y (Right HUD bar screen y position) float 1.0 0.0 1.0 + +# Precise x offset in pixels from the basic screen x position of the HUD bars. +# For the zig-zag alignment pattern, this is for the left HUD bars. +hudbars_start_offset_left_x (Left HUD bar x offset) int -175 +# Precise y offset in pixels from the basic screen y position of the HUD bars. +# For the zig-zag alignment pattern, this is for the left HUD bars. +hudbars_start_offset_left_y (Left HUD bar y offset) int -86 +# Precise x offset in pixels from the basic screen x position of the right HUD bars. +# Only used for the zig-zag alignment pattern. +hudbars_start_offset_right_x (Right HUD bar x offset) int 15 +# Precise y offset in pixels from the basic screen y position of the right HUD bars. +# Only used for the zig-zag alignment pattern. +hudbars_start_offset_right_y (Right HUD bar y offset) int -86 + +# The vertical distance between two HUD bars, in pixels. +hudbars_vmargin (Vertical distance between HUD bars) int 24 0 + +[Performance] +# The of seconds which need to pass before the server updates the default HUD bars +# (health and breath). Increase this number if you have a slow server or a slow network +# connection and experience performance problems. +hudbars_tick (Default HUD bars update interval) float 0.1 0.0 4.0 diff --git a/mods/hudbars/textures/crosshair.png b/mods/hudbars/textures/crosshair.png deleted file mode 100755 index ed328f618930cc7f22bdf21e1754b00a7d98c9d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 539 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw3=&b&bO2I^1AIbU72X#7|Nq~|SSZFtxjbC0 zEzPte%c3jGq$}5Ka*1_Wm`ZuLa#ge@P`oY6rZ>;Lzre;xizC88z9Z8Fs36QvHqA%9 zJ;SIw+cer)zBSXnJ;S6Y*UVLy%imnAC`=b@rZG^kE8C!060|NZ;-|KC69DLmmo@7R|F`2{mDFhhX=1PB3v6c9)Q zfh-*O`$tFDx3%?wz~srZXD?auV&6@V@L(#+pC`WO#vdT3AdaU z@+>VC5D9S*oWeMVJ>bXx{imKh)w{9xM-Qjr_ji5IYYLqkepft->lIXXJ7el+lpFqV z_I{g&uNo(rXA1syja<(6+5ULs3ZtZp8*F?Njudpes_1?9Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2jB<= z6D1%J!{^rk00OH?L_t(I%XO1aYm`?M#-DTU`)8&vX(~iY10_=gM`LTydy zDs9kr}T5@Tc>g=B8U`~=G&hz{;BDx?V zX8>rc5oVsK>TgMs4Dvj$(=?U;HQ3nLNUEwj&&=1E`5xX;B68b%zuWD053IFinx;Yk zu(`R}Ez9yEGk?R(cL5-ZqG!x}qN+#MS{0ESZIe49@}$%0{BEr+0s!1JO^=zsp23|? z=jGz!;-%T-EX%$x%knQGy3Ne@Rn=Q-%gJQ&r|I|moiGeHnE9tU_;UcT*4`D72SoI; zuIr(QjG6f=Gk>9~zcBObKve?(X8<4!!)LR}*4jHn^tfr7(fce89}v+k z080QOZnsnbFvgs;@Q(m?opW#Y_V((dqa!uOI3jujU^wR>1ud)qpsI)M`9f8PgTcV= z?CfxsWoNCmD|KDRWm(2V|C&cc#NK-WAOPT;LzZPXopT4qn0jq(EzGj42jJUoxBDEx z6(Tw}+geo-Fte!YTLAFh-*C>2%CdZAj2Rb2fjEvoiR1WDOI#tMui6F^B5KU>@v$r~ zFIOTmWaeu`bXi1Rt7>Mg^~RWw>bf2jMNv0Rb8VIdB6@mydiu8kp#6To$n*RyfB`dq z$;?+(^@NB%Zkpy(@BNDR{<{|bK}2?=DEcFcqWZrmZ*6Ub)9G}@7<1hi^YDF97LlLh zI6iRB6=|A!nip(uZwI5%XqkvEipW_248Q;YGasw!uSt>&^E|I+Ka$=th*wuv!>XzR pW@c(Vi=xOK9v(L1@z~9a{{h8odh1caBsu^9002ovPDHLkV1i5Ccm4nX literal 0 HcmV?d00001 diff --git a/mods/hudbars/textures/hudbars_hotbar.png b/mods/hudbars/textures/hudbars_hotbar.png deleted file mode 100755 index 490c74e6d645cfadcf87025f6c67ef9d11cb5480..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ<-i6Ox#%wdDqt@O@(Zr4 zs;R3#cVX{~9(kaUqNj^v2uF0XM>7+fxW)pZ!;;4gnhbdodDwXbnb}ro2QexJDWA99 SIQ=+KF@vY8pUXO@geCx>!5}jL diff --git a/mods/hudbars/textures/hudbars_hotbar_selected.png b/mods/hudbars/textures/hudbars_hotbar_selected.png deleted file mode 100755 index b104723e2b09c6f540f4f0bb193f5c593ecbbc32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}a)3{WD=#lEA0Hn-Kfi#0fRK=o zsHmutl9IBrvZ|`8y1Kffqob3PldG$%ySux$x3`avkFT$pPwH@w(x>T(M8eXOJX<0jy(oiCsz{W2eK9eFv7uw3zu|&((#@y zjv*Dd=AJj_YjEIk37lLUHTmGTd;g~-L^Nhpp7q!-El@4YUg4K?RsZ!iVZ#p(8o54i za=c=&DHn@mvv4FO#rwvSl<8u diff --git a/mods/hudbars/textures/wieldhand.png b/mods/hudbars/textures/wieldhand.png deleted file mode 100755 index 2307ba4ee1a3e3857bd6f985ab3b05f451843948..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`37#&FAr*|t5^EAfY;M?o|Nl33 z^Z)zzEnokis~i09{%yO*_8vWTY&Lcqe*9njxBI}4bJte>f1fv-&8X!Zn}cD%=Mn+7 zs?=8wk{fE-Zb)x8^OI3ve)o39&;NQi8aTHYGBEs}cEDa;d-)5XT@0SCelF{r5}E+e Ckv;DK