From bb55851b36b3731f4cf555f67c50f0df5c739e99 Mon Sep 17 00:00:00 2001 From: sys4-fr Date: Fri, 7 Sep 2018 22:41:38 +0200 Subject: [PATCH] Version MFF. --- API.md | 40 +++++--- README.txt | 0 changelog.txt | 17 ++++ depends.txt | 2 + description.txt | 1 + hudbars.conf | 10 ++ init.lua | 142 ++++++++++++++++------------ locale/de.txt | 3 + locale/template.txt | 5 + mod.conf | 1 + screenshot.png | Bin 0 -> 5477 bytes settingtypes.txt | 98 +++++++++++++++++++ textures/hudbars_bar_background.png | Bin 140 -> 113 bytes textures/hudbars_bar_breath.png | Bin textures/hudbars_bar_health.png | Bin textures/hudbars_bgicon_breath.png | Bin 0 -> 811 bytes textures/hudbars_bgicon_health.png | Bin 302 -> 247 bytes textures/hudbars_icon_breath.png | Bin textures/hudbars_icon_health.png | Bin 19 files changed, 250 insertions(+), 69 deletions(-) mode change 100644 => 100755 API.md mode change 100644 => 100755 README.txt mode change 100644 => 100755 changelog.txt mode change 100644 => 100755 depends.txt create mode 100644 description.txt create mode 100755 hudbars.conf create mode 100644 locale/de.txt create mode 100644 locale/template.txt create mode 100644 mod.conf create mode 100644 screenshot.png create mode 100644 settingtypes.txt mode change 100644 => 100755 textures/hudbars_bar_background.png mode change 100644 => 100755 textures/hudbars_bar_breath.png mode change 100644 => 100755 textures/hudbars_bar_health.png create mode 100644 textures/hudbars_bgicon_breath.png mode change 100644 => 100755 textures/hudbars_bgicon_health.png mode change 100644 => 100755 textures/hudbars_icon_breath.png mode change 100644 => 100755 textures/hudbars_icon_health.png diff --git a/API.md b/API.md old mode 100644 new mode 100755 index d18f05b..8dd8f0e --- a/API.md +++ b/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/README.txt b/README.txt old mode 100644 new mode 100755 diff --git a/changelog.txt b/changelog.txt old mode 100644 new mode 100755 index 3c4f0bc..8edab4e --- a/changelog.txt +++ b/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/depends.txt b/depends.txt old mode 100644 new mode 100755 index e69de29..9207dab --- a/depends.txt +++ b/depends.txt @@ -0,0 +1,2 @@ +default +intllib? diff --git a/description.txt b/description.txt new file mode 100644 index 0000000..9e10e89 --- /dev/null +++ b/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/hudbars.conf b/hudbars.conf new file mode 100755 index 0000000..af83d69 --- /dev/null +++ b/hudbars.conf @@ -0,0 +1,10 @@ +-- if custom==true, use custom position +-- X 0=left, 1=right +--Y 0,1,2 = down--> up +hb.settings.custom.custom = true +hb.settings.custom.health = { x = 0, y = 0 } +hb.settings.custom.satiation = { x = 0, y = 1 } +hb.settings.custom.sprint = { x = 1, y = 1 } +hb.settings.custom.mana = { x = 1, y = 0 } +hb.settings.custom.armor = { x = 1, y = 2 } +hb.settings.custom.breath = { x = 0, y = 2 } diff --git a/init.lua b/init.lua index 7a30096..11138fb 100644 --- a/init.lua +++ b/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 = {} @@ -59,23 +67,12 @@ hb.settings.start_offset_left.y = hb.load_setting("hudbars_start_offset_left_y", 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 = hb.load_setting("hudbars_tick", "number", 24) -hb.settings.tick = hb.load_setting("hudbars_tick", "number", 0.1) +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) ---[[ -- 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. - 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. - This is the default. - stack_up: The HUD bars are stacked vertically, going upwards. - stack_down: The HUD bars are stacked vertically, going downwards. -]] - -- 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"}) @@ -95,7 +92,7 @@ else end -- Table which contains all players with active default HUD bars (only for internal use) -hb.players = {} +--hb.players = {} function hb.value_to_barlength(value, max) if max == 0 then @@ -167,7 +164,7 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta end 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) @@ -177,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 @@ -186,10 +183,12 @@ 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 if hb.settings.bar_type == "progress_bar" then @@ -216,9 +215,8 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta ids.bg = player:hud_add({ hud_elem_type = "statbar", position = pos, - scale = bgscale, text = textures.bgicon, - number = hb.settings.statbar_length, + number = bgiconnumber, alignment = {x=-1,y=-1}, offset = { x = offset.x, y = offset.y }, }) @@ -237,6 +235,7 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta number = barnumber, alignment = {x=-1,y=-1}, offset = offset, + size = "", }) if hb.settings.bar_type == "progress_bar" then ids.text = player:hud_add({ @@ -246,7 +245,7 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta alignment = {x=1,y=1}, number = text_color, direction = 0, - offset = { x = offset.x + 2, y = offset.y }, + 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 @@ -283,7 +282,7 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta hudtable.default_start_max = default_start_max hb.hudbars_count= hb.hudbars_count + 1 - + hb.hudtables[identifier] = hudtable end @@ -292,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 @@ -301,21 +300,52 @@ function hb.change_hudbar(player, identifier, new_value, new_max_value) local hudtable = hb.get_hudtable(identifier) local value_changed, max_changed = false, false - if new_value ~= nil then - if new_value ~= hudtable.hudstate[name].value then - hudtable.hudstate[name].value = new_value - value_changed = true - end - else - new_value = hudtable.hudstate[name].value - end if new_max_value ~= nil then if new_max_value ~= hudtable.hudstate[name].max then hudtable.hudstate[name].max = new_max_value max_changed = true end else - new_max_value = hudtable.hudstate[name].max + new_max_value = (hudtable.hudstate[name] or {max = 0}).max + end + + if new_value ~= nil and hudtable.hudstate[name] then + if new_value ~= hudtable.hudstate[name].value then + if new_value > new_max_value then + new_value = new_max_value + end + hudtable.hudstate[name].value = new_value + value_changed = true + end + 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 = @@ -367,6 +397,8 @@ 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) hudtable.hudstate[name].hidden = true @@ -388,6 +420,8 @@ function hb.unhide_hudbar(player, identifier) 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)) hudtable.hudstate[name].hidden = false @@ -409,8 +443,8 @@ end --register built-in HUD bars 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) + 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) @@ -437,7 +471,6 @@ local function custom_hud(player) end end - -- update built-in HUD bars local function update_hud(player) if minetest.setting_getbool("enable_damage") then @@ -462,30 +495,23 @@ local function update_hud(player) end end -minetest.register_on_joinplayer(function(player) - hide_builtin(player) - custom_hud(player) - hb.players[player:get_player_name()] = player -end) - -minetest.register_on_leaveplayer(function(player) - hb.players[player:get_player_name()] = nil -end) - -local main_timer = 0 -local timer = 0 -minetest.register_globalstep(function(dtime) - main_timer = main_timer + 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 - -- 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 +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 - if timer > 4 then timer = 0 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) end) + +minetest.after(0, hb_step) diff --git a/locale/de.txt b/locale/de.txt new file mode 100644 index 0000000..578764e --- /dev/null +++ b/locale/de.txt @@ -0,0 +1,3 @@ +Health = Leben +Breath = Atem +%s: %d/%d = %s: %d/%d diff --git a/locale/template.txt b/locale/template.txt new file mode 100644 index 0000000..0a26b8f --- /dev/null +++ b/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/mod.conf b/mod.conf new file mode 100644 index 0000000..add28e6 --- /dev/null +++ b/mod.conf @@ -0,0 +1 @@ +name = hudbars diff --git a/screenshot.png b/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/settingtypes.txt b/settingtypes.txt new file mode 100644 index 0000000..5779063 --- /dev/null +++ b/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/textures/hudbars_bar_background.png b/textures/hudbars_bar_background.png old mode 100644 new mode 100755 index cbc6c3f519956fab4bbe266ef26428e4ed8bb66c..9a9513b081e50ee6a2a7e63b809d19de76444956 GIT binary patch delta 95 zcmeBSESw+_$;iyW!0_nXbX_3D7T^=&nxCH!WU4%3?gUbdB|(0{_TL)5MguvLo-U3d u65+`|`dMWXG7=83@GV{xB79Wp6+_W`)5!fE@`r$m7(8A5T-G@yGywn;H60WH delta 122 zcmXTyVVodQ!okMCz;MHYH4jJyd%8G=WZZju%TVxufdI3krEo&xmxy^2XC9TgbK|HU z%h{Px#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/textures/hudbars_bgicon_health.png b/textures/hudbars_bgicon_health.png old mode 100644 new mode 100755 index e2be2768e569748d3d19bc3fd02e8bf36f5bfa03..8c1ddad58b51cae067046809a525478368afbacf GIT binary patch delta 230 zcmZ3-^qp~nWIZzj1A~Sxe=v};5AX?beb6=O|NsBO!ouR>;*ye*($doM^74v`ipt8$ zDk>^!YHC_qTH4y$IyyRfdU{4iMrLMa78Vv(R#rAPHgWdi`+{j0w`p#&HZr%6ph+ e2!42f+nU*tZGF;j(XBum89ZJ6T-G@yGywps|4Eeq delta 286 zcmV+(0pb4l0j>g&8Gi-<001BJ|6u?C010qNS#tmY4#NNd4#NS*Z>VGd007`gL_t(| zoW;{Is>C1=24L@yLL@~9BU6lGkwSuq2ekBr-sImZfo#^dZ`optX@viCWJU!*eN$hB zFF>zN5fPXf%nTwzuTAyZ)UqtF)`FR#wMMV)4iFJyj3}j`lz)O4BZvq@gb)H!N+_iu zgn((9a08h63?IeJ*!TT%mQsSX_J6>rnE4JoKjCAb*QP=UZ^PTRVO`hPz&y`?c9C<2 zh`gS{F)|Su0?xVd7!SZ01MmGU?7fFE=G=`Ta3CUroHKIHaL!%AZ-HK$(pp1AAR=em k9|1=v&o>W&pBMec2cc*}sfg(j#sB~S07*qoM6N<$f(JQ#MF0Q* diff --git a/textures/hudbars_icon_breath.png b/textures/hudbars_icon_breath.png old mode 100644 new mode 100755 diff --git a/textures/hudbars_icon_health.png b/textures/hudbars_icon_health.png old mode 100644 new mode 100755