1
0
mirror of https://repo.or.cz/minetest_hudbars.git synced 2025-06-29 06:50:28 +02:00

23 Commits

Author SHA1 Message Date
67ca481f7c Ajoute message de chargement du mod dans le journal "action" 2018-12-25 17:43:52 +01:00
ba21f47489 Version 1.11.0 2018-02-05 21:24:53 +01:00
90688e4d45 Add Malay locale by muhdnurhidayat 2018-02-05 21:23:31 +01:00
bec8afed8b Version 1.10.0, update credits 2017-09-18 17:49:48 +02:00
b5e84b2b50 Add Dutch locale by kingoscargames 2017-09-18 16:31:17 +02:00
99cdbddc64 Add Italian locale by Hamlet 2017-09-18 16:31:03 +02:00
ec238287cb No longer set progress bar image size explicitly
This may fix problems with some people having the progress bar displaced.
2017-09-18 16:28:38 +02:00
1e522e2896 Use MIT License 2017-09-18 16:17:42 +02:00
aa5fef1298 Replace deprecated intllib call:
- 'Getter' with 'make_gettext_pair' if available

Thanks, AntumDeluge!
2017-07-06 03:12:07 +02:00
f19a85c537 Version 1.9.0 2017-07-02 18:56:32 +02:00
9145f492e8 Move default settings into new Lua file 2017-07-02 18:50:17 +02:00
5e06b35e79 Add hb.get_hudbar_identifiers() 2017-07-02 18:44:24 +02:00
e09eb8ab4f Use 0.4.16 settings syntax
This breaks compability with Minetest 0.4.15, 0.4.14, 0.4.13 and 0.4.12
2017-06-20 16:38:52 +02:00
bd0641af52 Update credits in README file 2017-05-29 16:20:32 +02:00
f273a9e1f3 Version 1.8.0 2017-05-29 16:18:35 +02:00
e4c8510282 Add Turkish translation 2017-05-29 16:17:31 +02:00
e5989f4c0d Version 1.7.2 2017-05-29 16:15:17 +02:00
cfebd5138d Explicitly set statbar size for progress bars 2017-05-29 16:14:40 +02:00
fa82d2df1c Version 1.7.1 2017-02-25 02:06:02 +01:00
ea58a71e17 Fix crash HP changed before player was registered 2017-02-25 02:04:15 +01:00
e11a52d8fb Version 1.7.0 2016-12-03 19:58:34 +01:00
7cf82b4e2f Move statbars 2 pixels up 2016-12-03 02:24:45 +01:00
d3e51926bc Fix README.md syntax error 2016-12-03 01:23:12 +01:00
9 changed files with 116 additions and 72 deletions

9
API.md
View File

@ -1,5 +1,5 @@
API documentation for the HUD bars mod 1.6.1 API documentation for the HUD bars mod
============================================ ======================================
## Introduction ## Introduction
This API allows you to add, change, hide and unhide custom HUD bars for this mod. This API allows you to add, change, hide and unhide custom HUD bars for this mod.
@ -170,7 +170,7 @@ Makes a previously hidden HUD bar visible again to a player.
## Reading HUD bar information ## Reading HUD bar information
It is also possible to read information about an active HUD bar. It is also possible to read information about existing HUD bars.
### `hb.get_hudbar_state(player, identifier)` ### `hb.get_hudbar_state(player, identifier)`
Returns the current state of the active player's HUD bar. Returns the current state of the active player's HUD bar.
@ -191,3 +191,6 @@ hold by the table is only true for the moment you called this function. The fiel
* `text`: The text shown on the HUD bar. This fiels is meaningless if the HUD bar is currently hidden. * `text`: The text shown on the HUD bar. This fiels is meaningless if the HUD bar is currently hidden.
If the player does not exist, returns `nil` instead. If the player does not exist, returns `nil` instead.
### `hb.get_hudbar_identifiers()`
Returns a table of all currently registered HUD bar identifiers.

View File

@ -11,7 +11,7 @@ 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 1.6.1. The current version is 1.11.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.
@ -31,25 +31,29 @@ Author: Wuzzy (2015)
Also: This mod was forked from the “Better HUD” [hud] mod by BlockMen. Also: This mod was forked from the “Better HUD” [hud] mod by BlockMen.
Translations: Translations:
* German: Wuzzy * German: Wuzzy
* Portuguese: BrunoMine * Portuguese: BrunoMine
* Turkish: admicos
* Dutch: kingoscargames
* Italian: Hamlet
* Malay: muhdnurhidayat
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
and/or modify it under the terms of the Do What The Fuck You Want and/or modify it under the terms of the MIT License.
To Public License (WTFPL), version 2, as published by Sam Hocevar.
### Licenses of textures ### Licenses of textures
* `hudbars_icon_health.png`—celeron55 (CC BY-SA 3.0), modified by BlockMen * `hudbars_icon_health.png`—celeron55 (CC BY-SA 3.0), modified by BlockMen
* `hudbars_bgicon_health.png`—celeron55 (CC BY-SA 3.0), modified by BlockMen * `hudbars_bgicon_health.png`—celeron55 (CC BY-SA 3.0), modified by BlockMen
* `hudbars_icon_breath.png`—kaeza (WTFPL), modified by BlockMen, modified again by Wuzzy * `hudbars_icon_breath.png`—kaeza (MIT License), modified by BlockMen, modified again by Wuzzy
* `hudbars_bgicon_breath.png`—based on previous image, edited by Wuzzy (WTFPL) * `hudbars_bgicon_breath.png`—based on previous image, edited by Wuzzy (MIT License)
* `hudbars_bar_health.png`—Wuzzy (WTFPL) * `hudbars_bar_health.png`—Wuzzy (MIT License)
* `hudbars_bar_breath.png`—Wuzzy (WTFPL) * `hudbars_bar_breath.png`—Wuzzy (MIT License)
* `hudbars_bar_background.png`—Wuzzy (WTFPL) * `hudbars_bar_background.png`—Wuzzy (MIT License)
### License references ### License references
* [CC-BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/) * [CC-BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/)
* [WTFPL](http://sam.zoy.org/wtfpl/COPYING) * [MIT License](https://opensource.org/licenses/MIT)

48
default_settings.lua Normal file
View File

@ -0,0 +1,48 @@
-- (Hardcoded) default settings
hb.settings.max_bar_length = 160
hb.settings.statbar_length = 20
-- Statbar positions
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.bar_type = hb.load_setting("hudbars_bar_type", "string", "progress_bar", {"progress_bar", "statbar_classic", "statbar_modern"})
if hb.settings.bar_type == "progress_bar" then
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)
else
hb.settings.start_offset_left.x = hb.load_setting("hudbars_start_statbar_offset_left_x", "number", -265)
hb.settings.start_offset_left.y = hb.load_setting("hudbars_start_statbar_offset_left_y", "number", -90)
hb.settings.start_offset_right.x = hb.load_setting("hudbars_start_statbar_offset_right_x", "number", 25)
hb.settings.start_offset_right.y = hb.load_setting("hudbars_start_statbar_offset_right_y", "number", -90)
end
hb.settings.vmargin = hb.load_setting("hudbars_vmargin", "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)
-- Misc. settings
hb.settings.alignment_pattern = hb.load_setting("hudbars_alignment_pattern", "string", "zigzag", {"zigzag", "stack_up", "stack_down"})
hb.settings.autohide_breath = hb.load_setting("hudbars_autohide_breath", "bool", true)
local sorting = minetest.settings: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

View File

@ -1,6 +1,10 @@
local S local S
if (minetest.get_modpath("intllib")) then if minetest.global_exists("intllib") then
if intllib.make_gettext_pair then
S = intllib.make_gettext_pair()
else
S = intllib.Getter() S = intllib.Getter()
end
else else
S = function ( s ) return s end S = function ( s ) return s end
end end
@ -20,11 +24,11 @@ hb.settings = {}
function hb.load_setting(sname, stype, defaultval, valid_values) function hb.load_setting(sname, stype, defaultval, valid_values)
local sval local sval
if stype == "string" then if stype == "string" then
sval = minetest.setting_get(sname) sval = minetest.settings:get(sname)
elseif stype == "bool" then elseif stype == "bool" then
sval = minetest.setting_getbool(sname) sval = minetest.settings:get_bool(sname)
elseif stype == "number" then elseif stype == "number" then
sval = tonumber(minetest.setting_get(sname)) sval = tonumber(minetest.settings:get(sname))
end end
if sval ~= nil then if sval ~= nil then
if valid_values ~= nil then if valid_values ~= nil then
@ -48,53 +52,8 @@ function hb.load_setting(sname, stype, defaultval, valid_values)
end end
end end
-- (hardcoded) default settings -- Load default settings
hb.settings.max_bar_length = 160 dofile(minetest.get_modpath("hudbars").."/default_settings.lua")
hb.settings.statbar_length = 20
-- statbar positions
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.bar_type = hb.load_setting("hudbars_bar_type", "string", "progress_bar", {"progress_bar", "statbar_classic", "statbar_modern"})
if hb.settings.bar_type == "progress_bar" then
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)
else
hb.settings.start_offset_left.x = hb.load_setting("hudbars_start_statbar_offset_left_x", "number", -265)
hb.settings.start_offset_left.y = hb.load_setting("hudbars_start_statbar_offset_left_y", "number", -88)
hb.settings.start_offset_right.x = hb.load_setting("hudbars_start_statbar_offset_right_x", "number", 25)
hb.settings.start_offset_right.y = hb.load_setting("hudbars_start_statbar_offset_right_y", "number", -88)
end
hb.settings.vmargin = hb.load_setting("hudbars_vmargin", "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)
-- Misc. settings
hb.settings.alignment_pattern = hb.load_setting("hudbars_alignment_pattern", "string", "zigzag", {"zigzag", "stack_up", "stack_down"})
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
local function player_exists(player) local function player_exists(player)
return player ~= nil and player:is_player() return player ~= nil and player:is_player()
@ -463,8 +422,16 @@ function hb.get_hudbar_state(player, identifier)
return copy return copy
end end
function hb.get_hudbar_identifiers()
local ids = {}
for id, _ in pairs(hb.hudtables) do
table.insert(ids, id)
end
return ids
end
--register built-in HUD bars --register built-in HUD bars
if minetest.setting_getbool("enable_damage") or hb.settings.forceload_default_hudbars then if minetest.settings:get_bool("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("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) 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 end
@ -478,9 +445,9 @@ end
local function custom_hud(player) local function custom_hud(player)
if minetest.setting_getbool("enable_damage") or hb.settings.forceload_default_hudbars then if minetest.settings:get_bool("enable_damage") or hb.settings.forceload_default_hudbars then
local hide local hide
if minetest.setting_getbool("enable_damage") then if minetest.settings:get_bool("enable_damage") then
hide = false hide = false
else else
hide = true hide = true
@ -500,7 +467,7 @@ end
-- update built-in HUD bars -- update built-in HUD bars
local function update_hud(player) local function update_hud(player)
if not player_exists(player) then return end if not player_exists(player) then return end
if minetest.setting_getbool("enable_damage") then if minetest.settings:get_bool("enable_damage") then
if hb.settings.forceload_default_hudbars then if hb.settings.forceload_default_hudbars then
hb.unhide_hudbar(player, "health") hb.unhide_hudbar(player, "health")
end end
@ -521,7 +488,11 @@ local function update_hud(player)
end end
end end
minetest.register_on_player_hpchange(update_health) minetest.register_on_player_hpchange(function(player)
if hb.players[player:get_player_name()] ~= nil then
update_health(player)
end
end)
minetest.register_on_respawnplayer(function(player) minetest.register_on_respawnplayer(function(player)
update_health(player) update_health(player)
@ -546,7 +517,7 @@ minetest.register_globalstep(function(dtime)
if main_timer > hb.settings.tick or timer > 4 then if main_timer > hb.settings.tick or timer > 4 then
if main_timer > hb.settings.tick then main_timer = 0 end if main_timer > hb.settings.tick then main_timer = 0 end
-- only proceed if damage is enabled -- only proceed if damage is enabled
if minetest.setting_getbool("enable_damage") or hb.settings.forceload_default_hudbars then if minetest.settings:get_bool("enable_damage") or hb.settings.forceload_default_hudbars then
for _, player in pairs(hb.players) do for _, player in pairs(hb.players) do
-- update all hud elements -- update all hud elements
update_hud(player) update_hud(player)
@ -555,3 +526,5 @@ minetest.register_globalstep(function(dtime)
end end
if timer > 4 then timer = 0 end if timer > 4 then timer = 0 end
end) end)
minetest.log("action", "[hudbars] loaded.")

5
locale/it.txt Normal file
View File

@ -0,0 +1,5 @@
Health = Salute
Breath = Ossigeno
# Default format string for progress bar-style HUD bars, e.g. “Health 5/20”
%s: %d/%d

3
locale/ms.txt Normal file
View File

@ -0,0 +1,3 @@
Health = Kesihatan
Breath = Nafas
%s: %d/%d = %s: %d/%d

5
locale/nl.txt Normal file
View File

@ -0,0 +1,5 @@
Health = Gezondheid
Breath = Adem
# Default format string for progress bar-style HUD bars, e.g. “Health 5/20”
%s: %d/%d

3
locale/tr.txt Normal file
View File

@ -0,0 +1,3 @@
Health = Can
Breath = Nefes
%s: %d/%d = %s: %d/%d

View File

@ -99,7 +99,7 @@ hudbars_start_statbar_offset_left_x (Left HUD statbar x offset) int -265
# Precise y offset in pixels from the basic screen y position of the HUD statbars. # Precise y offset in pixels from the basic screen y position of the HUD statbars.
# For the zig-zag alignment pattern, this is for the left HUD statbars. # For the zig-zag alignment pattern, this is for the left HUD statbars.
# This setting is used for the classic and modern statbar styles. # This setting is used for the classic and modern statbar styles.
hudbars_start_statbar_offset_left_y (Left HUD statbar y offset) int -88 hudbars_start_statbar_offset_left_y (Left HUD statbar y offset) int -90
# Precise x offset in pixels from the basic screen x position of the right HUD statbars. # Precise x offset in pixels from the basic screen x position of the right HUD statbars.
# Only used for the zig-zag alignment pattern. # Only used for the zig-zag alignment pattern.
# This setting is used for the classic and modern statbar styles. # This setting is used for the classic and modern statbar styles.
@ -107,7 +107,7 @@ hudbars_start_statbar_offset_right_x (Right HUD statbar x offset) int 25
# Precise y offset in pixels from the basic screen y position of the right HUD statbars. # Precise y offset in pixels from the basic screen y position of the right HUD statbars.
# Only used for the zig-zag alignment pattern. # Only used for the zig-zag alignment pattern.
# This setting is used for the classic and modern statbar styles. # This setting is used for the classic and modern statbar styles.
hudbars_start_statbar_offset_right_y (Right HUD statbar y offset) int -88 hudbars_start_statbar_offset_right_y (Right HUD statbar y offset) int -90
# The vertical distance between two HUD bars, in pixels. # The vertical distance between two HUD bars, in pixels.
hudbars_vmargin (Vertical distance between HUD bars) int 24 0 hudbars_vmargin (Vertical distance between HUD bars) int 24 0