mirror of
https://repo.or.cz/minetest_hudbars.git
synced 2025-06-29 06:50:28 +02:00
Compare commits
23 Commits
hud_replac
...
nalc-1.0
Author | SHA1 | Date | |
---|---|---|---|
67ca481f7c | |||
ba21f47489 | |||
90688e4d45 | |||
bec8afed8b | |||
b5e84b2b50 | |||
99cdbddc64 | |||
ec238287cb | |||
1e522e2896 | |||
aa5fef1298 | |||
f19a85c537 | |||
9145f492e8 | |||
5e06b35e79 | |||
e09eb8ab4f | |||
bd0641af52 | |||
f273a9e1f3 | |||
e4c8510282 | |||
e5989f4c0d | |||
cfebd5138d | |||
fa82d2df1c | |||
ea58a71e17 | |||
e11a52d8fb | |||
7cf82b4e2f | |||
d3e51926bc |
9
API.md
9
API.md
@ -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.
|
||||||
|
22
README.md
22
README.md
@ -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
48
default_settings.lua
Normal 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
|
89
init.lua
89
init.lua
@ -1,6 +1,10 @@
|
|||||||
local S
|
local S
|
||||||
if (minetest.get_modpath("intllib")) then
|
if minetest.global_exists("intllib") then
|
||||||
S = intllib.Getter()
|
if intllib.make_gettext_pair then
|
||||||
|
S = intllib.make_gettext_pair()
|
||||||
|
else
|
||||||
|
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
5
locale/it.txt
Normal 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
3
locale/ms.txt
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Health = Kesihatan
|
||||||
|
Breath = Nafas
|
||||||
|
%s: %d/%d = %s: %d/%d
|
5
locale/nl.txt
Normal file
5
locale/nl.txt
Normal 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
3
locale/tr.txt
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Health = Can
|
||||||
|
Breath = Nefes
|
||||||
|
%s: %d/%d = %s: %d/%d
|
@ -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
|
||||||
|
Reference in New Issue
Block a user