Compare commits

...

71 Commits

Author SHA1 Message Date
0edeb5599e backguard compatibility of hp_max in older clients, (missing breath_max)
* honoring customizations of hp_max its not so valid in older
  clients becouse of a bug in older lients of hardcoded healt player
  at f7d50a8078
  long time ago user requested https://github.com/minetest/minetest/issues/2246
  the value was hardcoded into engine and do not allow to be
  customized by mods until the commit above, this patch
  takes that into consideration and set the value to 20.
* NOTE: as side effect if you started a server that support
  hp_max modification and try to connect using a older client,
  client will perfectly supports the already configured healt
  from client, but will start at 20 initialy, of course with
  max_hp supported over the value of 20
2023-07-18 23:07:28 -04:00
c219b708f8 not hardcoded the hb.init_hudbar max values, real fix of get_properties when join players
* real fix for missing format_string_config.textdomain
  fixed https://codeberg.org/Wuzzy/minetest_hudbars/issues/8
* fix the backguard compatibility for format_string_config.format_string
  due commit 29c1a3c31ce870cf6e0dd7782dc276254b7d3846
* add configuration settings for hp_max of player and breath_max
  that really honors the configuration of customization of hp_max
* do not hardcoded hp_max neither breath_max and honor customizations
* real fix for commit 20843d95cec0fb18516bc3c3ee456254a381ad5b
  set alternate honored max values before get_properties when join players
  this finally fixed this is a merge of Wuzzy/minetest_hudbars#5
  and final fix for https://codeberg.org/Wuzzy/minetest_hudbars/issues/4
* increase default ticks of updates for hud bar, to avoid performance
  issues in low end devices
2023-07-17 00:35:34 -04:00
47615b8422 fix backgroun textures optimization for alpha transparency 2023-07-16 22:29:40 -04:00
3e73d3fa50 Merge branch 'nil_check_hudbar_state' of fluxionary for hudbar state checks
* another fix for https://codeberg.org/Wuzzy/minetest_hudbars/issues/4
  based on separate callbacks, when we have several mods that rely on
* this solves and close https://codeberg.org/Wuzzy/minetest_hudbars/issues/4
  but will need https://codeberg.org/Wuzzy/minetest_hudbars/pulls/7 also.
* this must be use in join with commit 20843d95cec0fb18516bc3c3ee456254a381ad5b
  of this repository that is a backport of my own fork at @mckaygerhard
2023-06-21 12:45:36 -04:00
flux
881564d441
get_hudbar_state: return nil if not initialized 2023-06-20 12:42:50 -07:00
facc2cffb8 agressive optimizations for textures
* adapt fork changes from Niklp/minetest_hudbars
* backported ce8239ba09 (diff-748679858024f66ba27ffe19be82b13c951ef82f)
2023-06-20 00:36:21 -04:00
737bc5ae0f update information for engines any version, adde complete good readme 2023-06-20 00:20:30 -04:00
29c1a3c31c backguard compatibility for 0.4.16+ engines and 5.2+ and beyond
* boilerplace the minetest translation and only use format
  when is available to translate it
* uses Use MT native support for "background icons" only
  when available and if valid
2023-06-20 00:02:42 -04:00
20843d95ce workaround in rare cases for get_properties when join players
* sometimes `player:get_properties().something` returns `nil`
  if you called inside `minetest.register_on_joinplayer()`, so
  it triggers an "attempt to index a nil value" error when called
* considering the following reports:
  the second bug is pretty super common, still in 5.5 version of
  engine minetest, of course its mod update issue but still valid
    * https://github.com/minetest/minetest/issues/12350
    * https://github.com/minetest/minetest/issues/13343
    * https://codeberg.org/Wuzzy/minetest_hudbars/issues/4
* this is a merge of https://codeberg.org/Wuzzy/minetest_hudbars/pulls/5
2023-06-19 23:45:12 -04:00
Wuzzy
965a67a9c1 Version 2.3.4 2023-03-09 12:53:17 +01:00
Wuzzy
4876bbbb00 Fix error message when reducing max. player hp 2023-03-09 12:52:18 +01:00
Wuzzy
dd2a9a008d Add mailmap for Wuzzy 2022-08-01 13:57:41 +02:00
Wuzzy
812b2538ff Version 2.3.3 2021-07-08 15:43:14 +02:00
Wuzzy
906f7876f7 Version 2.3.2 2021-07-08 15:42:11 +02:00
Wuzzy
a44de6230b Fix massive hud_change spam (hide/unhide) 2021-07-08 15:34:50 +02:00
Wuzzy
0684bac45b Version 2.3.1 2020-07-11 03:41:09 +02:00
Wuzzy
183d727635 Revert "12×12 textures, compress textures"
This reverts commit 746945dd0f00903614e24dc916a832ec4cb9ea19.
2020-07-11 03:38:16 +02:00
Wuzzy
f1001432eb Revert "Tweak breath icons"
This reverts commit 5d65623d90f45049da07964c1cdd01412a9f1fdc.
2020-07-11 03:38:14 +02:00
Wuzzy
a41453964a Version 2.3.0 2020-07-11 03:28:39 +02:00
Wuzzy
5d65623d90 Tweak breath icons 2020-07-11 03:28:01 +02:00
Wuzzy
f6d539249e More bg icon cleanup 2020-07-11 03:25:35 +02:00
Wuzzy
746945dd0f 12×12 textures, compress textures 2020-07-11 03:09:14 +02:00
Wuzzy
37eff8b2d2 Fix breath bar that was broken by MT 5.3.0 2020-07-11 02:59:12 +02:00
Wuzzy
844fff43de Use MT native support for "background icons" 2020-07-11 02:57:23 +02:00
Wuzzy
a250d2a350 Add z-index to HUD elements 2020-04-07 01:06:49 +02:00
Wuzzy
7993feac07 Version 2.2.2 2020-03-13 18:11:13 +01:00
Wuzzy
b19b5f090a Fix another crash 2020-03-13 18:10:52 +01:00
Wuzzy
9a8a3f0f8c Version 2.2.1 2020-03-13 07:55:01 +01:00
Wuzzy
2eb2df946b Add nil check in hb.change_hudbar 2020-03-13 07:53:24 +01:00
Wuzzy
2ffcd94dd6 Version 2.2.0 2020-02-04 22:11:43 +01:00
Wuzzy
8d3fa950f8 Update translation credits 2020-02-04 22:10:41 +01:00
wuniversales
332aa18452 Add Spanish translation 2020-02-04 22:07:34 +01:00
Wuzzy
99ebd71da7 Update credits 2019-09-17 11:21:19 +02:00
Wuzzy
699e356609 Add Russian locale by lmk 2019-09-17 11:20:12 +02:00
Wuzzy
8c80745ecb Version 2.1.0 2019-09-13 19:57:04 +02:00
Wuzzy
1e3def3cfa Set bar_size to nil in progress_bar again
See the lengthy comment to learn why
2019-09-13 19:56:22 +02:00
Wuzzy
48d9fd6a12 Allow to specify number format strings explicitly
Also, the default number format string is now "%d"
2019-09-13 19:50:23 +02:00
Wuzzy
085a2aa901 Version 2.0.0 2019-04-01 12:55:40 +02:00
Wuzzy
14a535de0d Update API documentation 2019-04-01 12:38:07 +02:00
Wuzzy
afb0242b3b Restructure format_string_config 2019-04-01 12:23:54 +02:00
Wuzzy
915fab08e2 Always send update when changing hide state
This fixes a problem in hbarmor not getting the correct hide state initially.
2019-04-01 12:17:21 +02:00
Wuzzy
895fcae716 Better support for translatable format string 2019-04-01 11:49:30 +02:00
Wuzzy
07b9f766d2 Make format string params changable 2019-03-30 14:57:39 +01:00
Wuzzy
a3fede159b Support custom hp_max/breath_max 2019-03-30 13:56:17 +01:00
Wuzzy
5710667766 Fix translation of format string 2019-03-20 13:38:31 +01:00
Wuzzy
1568d1f418 Add explicit progress bar size 2019-03-20 13:35:36 +01:00
Wuzzy
8b577c7424 Move description into mod.conf 2019-03-20 13:31:27 +01:00
Wuzzy
8d2d2d6070 Remove old changelog 2019-03-20 13:31:00 +01:00
Wuzzy
94b9c545da Move away from intllib in favor of MT 5.0.0 2019-03-20 13:30:28 +01:00
Wuzzy
ba21f47489 Version 1.11.0 2018-02-05 21:24:53 +01:00
Wuzzy
90688e4d45 Add Malay locale by muhdnurhidayat 2018-02-05 21:23:31 +01:00
Wuzzy
bec8afed8b Version 1.10.0, update credits 2017-09-18 17:49:48 +02:00
Wuzzy
b5e84b2b50 Add Dutch locale by kingoscargames 2017-09-18 16:31:17 +02:00
Wuzzy
99cdbddc64 Add Italian locale by Hamlet 2017-09-18 16:31:03 +02:00
Wuzzy
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
Wuzzy
1e522e2896 Use MIT License 2017-09-18 16:17:42 +02:00
Wuzzy
aa5fef1298 Replace deprecated intllib call:
- 'Getter' with 'make_gettext_pair' if available

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

2
.mailmap Normal file
View File

@ -0,0 +1,2 @@
Wuzzy <Wuzzy@disroot.org> <Wuzzy2@mail.ru>
Wuzzy <Wuzzy@disroot.org> <almikes@aol.com>

29
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
This API allows you to add, change, hide and unhide custom HUD bars for this mod.
@ -45,7 +45,7 @@ a vertical gradient.
### Icon
A 16×16 image shown left of the HUD bar. This is optional.
### `hb.register_hudbar(identifier, text_color, label, textures, default_start_value, default_start_max, default_start_hidden, format_string)`
### `hb.register_hudbar(identifier, text_color, label, textures, default_start_value, default_start_max, default_start_hidden, format_string, format_string_config)`
This function registers a new custom HUD bar definition to the HUD bars mod, so it can be later used to be displayed, changed, hidden
and unhidden on a per-player basis.
Note this does not yet display the HUD bar.
@ -66,7 +66,21 @@ for more information.
* `default_start_value`: If this HUD bar is added to a player, and no initial value is specified, this value will be used as initial current value
* `default_max_value`: If this HUD bar is added to a player, and no initial maximum value is specified, this value will be used as initial maximum value
* `default_start_hidden`: The HUD bar will be initially start hidden by default when added to a player. Use `hb.unhide_hudbar` to unhide it.
* `format_string`: This is optional; You can specify an alternative format string display the final text on the HUD bar. The default format string is “`%s: %d/%d`” (in this order: Label, current value, maximum value). See also the Lua documentation of `string.format`.
* `format_string`: Optional; You can specify an alternative format string to use for the final text on the HUD bar. The default format string is “`@1: @2/@3`” (The “@” numbers are placeholders that have a meaning in this order: @1 = Label, @2 = current value, @3 = maximum value). Do *not* use minetest.translator on this string, the string will be translated by `hudbars`, but you still must put this string into the translation catalogue file.
* `format_string_config`: Required if `format_string` is set. This allows to change which parameters to use in the format string. It's a table with these fields:
* `textdomain`: Text domain of the format string, used by `minetest.translate` if missing or set to `nil` will use `minetest.get_translator`
* `order`: Table that contains the order of the placeholders. It's also possible to remove placeholders. Default order: `{ "label", "value", "max_value" }`
* `format_value`: Format string to apply when displaying `value`. Syntax is same as in `string.format`. Default: `"%d"`
* `format_max_value`: Same as `format_value` but is applied to `max_value`
#### Example
Example (mostly) from `hbarmor` mod:
```
hb.register_hudbar("armor", 0xFFFFFF, minetest.translator("hbarmor", "Armor"), { icon = "hbarmor_icon.png", bgicon = "hbarmor_bgicon.png", bar = "hbarmor_bar.png" }, 0, 100, hbarmor.autohide, N("@1: @2%"), { order = { "label", "value" }, textdomain = "hbarmor" } )
```
Displays an armor HUD bar with a label of the form „Armor: 53%“. (`N` is a dummy function that returns its argument, used to make the string visible for translator scripts.)
#### Return value
Always `nil`.
@ -170,10 +184,10 @@ Makes a previously hidden HUD bar visible again to a player.
## 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)`
Returns the current state of the active player's HUD bar.
Returns the current state of the active player's HUD bar. Will return `nil` if the hudbar is not initialized.
#### Parameters
* `player`: `ObjectRef` of the player to which the HUD bar belongs to
@ -191,3 +205,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.
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

@ -1,55 +1,101 @@
# HUD bars
# minetest HUD bars
HUD mod to display as bars and API for
## Information
--------------
## Description
This mod changes the HUD of Minetest. It replaces the default health and breath
symbols by horizontal colored bars with text showing the number.
symbols by horizontal colored bars with text showing the number (or more configured one).
Furthermore, it enables other mods to add their own custom bars to the HUD,
this mod will place them accordingly.
**Important**: Keep in mind if running a server with this mod, that the custom
position should be displayed correctly on every screen size.
![](screenshot.png)
## Current version
The current version is 1.6.1.
## TEchnical info
-----------------
This software uses [semantic versioning](http://semver.org), as defined by version 2.0.0 of the SemVer
standard.
> **Warning** Keep in mind if running a server with this mod,
that the custom position should be displayed correctly on every screen size.
#### Dependencies
There's no depends
#### Current version
The current version is 2.3.4.0 its a plus fork from original cos current
minetest most close mods developers are not so open to support already working servers.
It works for Minetest 0.4.17+ (maybe 0.4.16 too) or later.
#### Settings
## Settings
This mod can be configured quite a bit. You can change HUD bar appearance, offsets, ordering, and more.
Use the advanced settings menu in Minetest for detailed configuration.
## API
| configuration name | Description | type | values, min/default/max |
| ---------------------------- | ------------------------------------- | ---- | ------------------------ |
| hudbars_bar_type | HUD bars style | enum | progress_bar progress_bar,statbar_classic,statbar_modern |
| hudbars_autohide_breath | Automatically hide breath indicators | bool | true |
| hudbars_alignment_pattern | HUD bars alignment pattern | enum | zigzag zigzag,stack_up,stack_down |
| hudbars_sorting | HUD bars order | string | breath=1, health=0 |
| hudbars_pos_left_x | Left HUD bar screen x position | float | 0.5 0.0 1.0 |
| hudbars_pos_left_y | Left HUD bar screen y position | float | 1.0 0.0 1.0 |
| hudbars_pos_right_x | Right HUD bar screen x position | float | 0.5 0.0 1.0 |
| hudbars_pos_right_y | Right HUD bar screen y position | float | 1.0 0.0 1.0 |
| hudbars_start_offset_left_x | Left HUD bar x offset | int | -175 |
| hudbars_start_offset_left_y | Left HUD bar y offset | int | -86 |
| hudbars_start_offset_right_x | Right HUD bar x offset | int | 15 |
| hudbars_start_offset_right_y | Right HUD bar y offset | int | -86 |
| hudbars_start_statbar_offset_left_x | Left HUD statbar x offset | int | -265 |
| hudbars_start_statbar_offset_left_y | Left HUD statbar y offset | int | -90 |
| hudbars_start_statbar_offset_right_x | Right HUD statbar x offset | int | 25 |
| hudbars_start_statbar_offset_right_y | Right HUD statbar y offset | int | -90 |
| hudbars_vmargin | Vertical distance between HUD bars | int | 24 0 |
| hudbars_tick | Default HUD bars update interval | float | 0.1 0.0 4.0 |
#### API
The API is used to add your own custom HUD bars.
Documentation for the API of this mod can be found in `API.md`.
Documentation for the API of this mod can be found in [`API.md`.](API.md)
## Legal
### License of source code
#### License of source code
Author: Wuzzy (2015)
Also: This mod was forked from the “Better HUD” [hud] mod by BlockMen.
Translations:
* German: Wuzzy
* Portuguese: BrunoMine
* Turkish: admicos
* Dutch: kingoscargames
* Italian: Hamlet
* Malay: muhdnurhidayat
* Russian: Imk
* Spanish: wuniversales
This program is free software. It comes without any warranty, to
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
To Public License (WTFPL), version 2, as published by Sam Hocevar.
and/or modify it under the terms of the MIT License.
### Licenses of textures
#### Licenses of textures
* `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_icon_breath.png`—kaeza (WTFPL), modified by BlockMen, modified again by Wuzzy
* `hudbars_bgicon_breath.png`—based on previous image, edited by Wuzzy (WTFPL)
* `hudbars_bar_health.png`—Wuzzy (WTFPL)
* `hudbars_bar_breath.png`—Wuzzy (WTFPL)
* `hudbars_bar_background.png`—Wuzzy (WTFPL)
* `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 (MIT License)
* `hudbars_bar_health.png`—Wuzzy (MIT License)
* `hudbars_bar_breath.png`—Wuzzy (MIT License)
* `hudbars_bar_background.png`—Wuzzy (MIT License)
### License references
#### License references
* [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)

View File

@ -1,92 +0,0 @@
Note: This software uses semantic versioning,
as of version 2.0.0 of the standard <http://semver.org/>.
0.1.0
-----
- Initial release, forked from mod “Better HUD” [hud].
0.2.0
-----
- Add API documentation
0.3.0
-----
- Rename main table from “hud” to “hb” (affects function names!)
- Arguments 3-4 of hb.change_hudbar can be nil for values which should not change
- Add proper function hb.init_hudbar, replaces odd call to hud.hudtables[identifier].add_all
- Update API documentation and fix mistakes
- Use “hudbars.conf” instead of “hud.conf”
0.4.0
-----
- New function: hb.get_hudbar_state to get information about the state of an active HUD bar, such as values, whether it is hidden, etc.
- hb.change_hudbar has been optimized to call hud_change fewer times, which is hopefully good for networking
- Rename hb.register_hudbar parameter “start_hide” to “start_hidden”
- start_hidden parameter now finally works
- Do not affect other HUD flags (crosshair, wielditem, etc.) when starting mod
- Show error message when trying to call hb.init_hudbar or hb.change_hudbar with bad values
- Update documentation
- Lots of refactoring
- Health and breath bar now use API
1.0.0
-----
- Add new parameter start_hidden to hb.init_hudbar, specified whether HUD bar is hidden on start
- Copy-editing of API.md and README.txt
- Internal: Fix add_all weirdness
1.0.1
-----
- Fix race condition causing crash at start of server
1.0.2
-----
- Fix other HUD elements disappearing for rejoining players
- Remove pointless delays for initializing the HUD for new or rejoining players
1.0.3
-----
- Adjust default HUD bars position for Minetest 0.4.12
1.1.0
-----
- Add boolean minetest.conf setting support (hudbars_autohide_breathbar) to control whether the breath bar is automatically hidden when full (default: yes)
1.2.0
-----
- New setting: hudbars_sorting. You can now manually sort all the HUD bars. Useful if you don't like automatic order
- New setting: hudbars_bar_type. You now can change the appearance of the HUD bars.
- New HUD bar types, slightly experimental: Classic statbars and modern [hud]-style statbars
- New experimental/unfinished setting: hudbars_alignment_pattern: You can now make the HUD bars stack vertically instead of the current zig-zag pattern. Note you probably need to change source code to productively use this feature
- Various position-related HUD bar settings (see README.txt)
- Remove hudbars.conf support and hudbars.conf.example (was never officially supported anyways)
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
1.5.0
-----
- Portuguese translation by BrunoMine
1.5.1
-----
- Fix critical bug: Mod does not work with both intllib and mod security enabled
- Update screenshot to use new 3:2 aspect ratio

57
default_settings.lua Normal file
View File

@ -0,0 +1,57 @@
-- (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
hb.settings.hp_player_maximun = hb.load_setting("hudbars_hp_player_maximun", "number", 20)
hb.settings.br_player_maximun = hb.load_setting("hudbars_br_player_maximun", "number", 10)
if minetest.has_feature("object_use_texture_alpha") then
core.PLAYER_MAX_HP_DEFAULT = hb.settings.hp_player_maximun
else
core.PLAYER_MAX_HP = hb.settings.hp_player_maximun
end

View File

@ -1 +1 @@
intllib?
intllib?

View File

@ -1 +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.
HUD mod to display as bars and API for

269
init.lua
View File

@ -1,10 +1,29 @@
local S
if (minetest.get_modpath("intllib")) then
S = intllib.Getter()
-- Intllib
if minetest.get_translator ~= nil then
S = minetest.get_translator("hudbars") -- 5.x translation function
else
S = function ( s ) return s end
if minetest.get_modpath("intllib") then
dofile(minetest.get_modpath("intllib") .. "/init.lua")
if intllib.make_gettext_pair then
gettext, ngettext = intllib.make_gettext_pair() -- new gettext method
else
gettext = intllib.Getter() -- old text file method
end
S = gettext
else -- boilerplate function
S = function(str, ...)
local args = {...}
return str:gsub("@%d+", function(match)
return args[tonumber(match:sub(2))]
end)
end
end
end
local N = function(s) return s end
hb = {}
hb.hudtables = {}
@ -20,11 +39,11 @@ hb.settings = {}
function hb.load_setting(sname, stype, defaultval, valid_values)
local sval
if stype == "string" then
sval = minetest.setting_get(sname)
sval = minetest.settings:get(sname)
elseif stype == "bool" then
sval = minetest.setting_getbool(sname)
sval = minetest.settings:get_bool(sname)
elseif stype == "number" then
sval = tonumber(minetest.setting_get(sname))
sval = tonumber(minetest.settings:get(sname))
end
if sval ~= nil then
if valid_values ~= nil then
@ -48,58 +67,55 @@ function hb.load_setting(sname, stype, defaultval, valid_values)
end
end
-- (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", -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
-- Load default settings
dofile(minetest.get_modpath("hudbars").."/default_settings.lua")
local function player_exists(player)
return player ~= nil and player:is_player()
end
local function checksupportmax(player)
local statusinfo = minetest.get_server_status()
if string.find(statusinfo,"0.4.1") and not string.find(statusinfo,"0.4.18") and not string.find(statusinfo,"0.4.17.5") then
hb.settings.hp_player_maximun = 20
hb.settings.br_player_maximun = 10
if player_exists(player) then
player:set_properties({hp_max = 20})
else
minetest.log("error","[hudbars] WARNING! minetest version do not support customization of hp_max healt player values")
end
end
end
local function make_label(format_string, format_string_config, label, start_value, max_value)
local params = {}
local order = format_string_config.order
for o=1, #order do
if order[o] == "label" then
table.insert(params, label)
elseif order[o] == "value" then
if format_string_config.format_value then
table.insert(params, string.format(format_string_config.format_value, start_value))
else
table.insert(params, start_value)
end
elseif order[o] == "max_value" then
if format_string_config.format_max_value then
table.insert(params, string.format(format_string_config.format_max_value, max_value))
else
table.insert(params, max_value)
end
end
end
local ret
if format_string_config.textdomain and minetest.translate ~= nil then
ret = minetest.translate(format_string_config.textdomain, format_string, unpack(params))
else
ret = S(format_string, unpack(params))
end
return ret
end
-- Table which contains all players with active default HUD bars (only for internal use)
hb.players = {}
@ -139,7 +155,8 @@ function hb.get_hudbar_position_index(identifier)
end
end
function hb.register_hudbar(identifier, text_color, label, textures, default_start_value, default_start_max, default_start_hidden, format_string)
function hb.register_hudbar(identifier, text_color, label, textures, default_start_value, default_start_max, default_start_hidden, format_string, format_string_config)
checksupportmax()
minetest.log("action", "hb.register_hudbar: "..tostring(identifier))
local hudtable = {}
local pos, offset
@ -173,7 +190,19 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
end
end
if format_string == nil then
format_string = S("%s: %d/%d")
format_string = N("@1: @2/@3")
end
if format_string_config == nil then
format_string_config = {}
end
if format_string_config.order == nil then
format_string_config.order = { "label", "value", "max_value" }
end
if format_string_config.format_value == nil then
format_string_config.format_value = "%02d"
end
if format_string_config.format_max_value == nil then
format_string_config.format_max_value = "%02d"
end
hudtable.add_all = function(player, hudtable, start_value, start_max, start_hidden)
@ -198,7 +227,7 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
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)
text = make_label(format_string, format_string_config, label, start_value, start_max)
end
if hb.settings.bar_type == "progress_bar" then
ids.bg = player:hud_add({
@ -208,6 +237,7 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
text = "hudbars_bar_background.png",
alignment = {x=1,y=1},
offset = { x = offset.x - 1, y = offset.y - 1 },
z_index = 0,
})
if textures.icon ~= nil then
ids.icon = player:hud_add({
@ -217,6 +247,7 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
text = textures.icon,
alignment = {x=-1,y=1},
offset = { x = offset.x - 3, y = offset.y },
z_index = 1,
})
end
elseif hb.settings.bar_type == "statbar_modern" then
@ -230,26 +261,37 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
offset = { x = offset.x, y = offset.y },
direction = 0,
size = {x=24, y=24},
z_index = 0,
})
end
end
local bar_image, bar_size
local bar_image, bgicon, bar_size
if hb.settings.bar_type == "progress_bar" then
bar_image = textures.bar
-- NOTE: Intentionally set to nil. For some reason, on some systems,
-- the progress bar is displaced when the bar_size is set explicitly here.
-- On the other hand, setting this to nil is deprecated in MT 5.0.0 due to
-- a debug log warning, but nothing is explained in lua_api.txt.
-- This section is a potential bug magnet, please watch with care!
-- The size of the bar image is expected to be exactly 2×16 pixels.
bar_size = nil
elseif hb.settings.bar_type == "statbar_classic" or hb.settings.bar_type == "statbar_modern" then
bar_image = textures.icon
if textures.bgicon then bgicon = textures.bgicon end
bar_size = {x=24, y=24}
end
ids.bar = player:hud_add({
hud_elem_type = "statbar",
position = pos,
text = bar_image,
text2 = bgicon,
number = barnumber,
item = bgiconnumber,
alignment = {x=-1,y=-1},
offset = offset,
direction = 0,
size = bar_size,
z_index = 1,
})
if hb.settings.bar_type == "progress_bar" then
ids.text = player:hud_add({
@ -260,6 +302,7 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
number = text_color,
direction = 0,
offset = { x = offset.x + 2, y = offset.y - 1},
z_index = 2,
})
end
-- Do not forget to update hb.get_hudbar_state if you add new fields to the state table
@ -288,6 +331,7 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
hudtable.identifier = identifier
hudtable.format_string = format_string
hudtable.format_string_config = format_string_config
hudtable.label = label
hudtable.hudids = {}
hudtable.hudstate = {}
@ -301,6 +345,7 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
end
function hb.init_hudbar(player, identifier, start_value, start_max, start_hidden)
checksupportmax(player)
if not player_exists(player) then return false end
local hudtable = hb.get_hudtable(identifier)
hb.hudtables[identifier].add_all(player, hudtable, start_value, start_max, start_hidden)
@ -317,6 +362,9 @@ function hb.change_hudbar(player, identifier, new_value, new_max_value, new_icon
local name = player:get_player_name()
local hudtable = hb.get_hudtable(identifier)
if not hudtable.hudstate[name] then
return false
end
local value_changed, max_changed = false, false
if new_value ~= nil then
@ -348,7 +396,7 @@ function hb.change_hudbar(player, identifier, new_value, new_max_value, new_icon
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)
local new_text = make_label(hudtable.format_string, hudtable.format_string_config, 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
@ -392,7 +440,7 @@ function hb.change_hudbar(player, identifier, new_value, new_max_value, new_icon
end
if hb.settings.bar_type == "progress_bar" then
local new_text = string.format(hudtable.format_string, hudtable.label, new_value, new_max_value)
local new_text = make_label(hudtable.format_string, hudtable.format_string_config, 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
@ -408,19 +456,17 @@ function hb.hide_hudbar(player, identifier)
local name = player:get_player_name()
local hudtable = hb.get_hudtable(identifier)
if hudtable == nil then return false end
if(hudtable.hudstate[name].hidden == false) then
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)
if hudtable.hudstate[name].hidden == true then return true end
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].bar, "number", 0)
hudtable.hudstate[name].hidden = true
player:hud_change(hudtable.hudids[name].bg, "scale", {x=0,y=0})
player:hud_change(hudtable.hudids[name].text, "text", "")
end
player:hud_change(hudtable.hudids[name].bar, "number", 0)
player:hud_change(hudtable.hudids[name].bar, "item", 0)
hudtable.hudstate[name].hidden = true
return true
end
@ -429,29 +475,30 @@ function hb.unhide_hudbar(player, identifier)
local name = player:get_player_name()
local hudtable = hb.get_hudtable(identifier)
if hudtable == nil then return false end
if(hudtable.hudstate[name].hidden) then
local value = hudtable.hudstate[name].value
local max = hudtable.hudstate[name].max
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)
if hudtable.hudstate[name].hidden == false then return true end
local value = hudtable.hudstate[name].value
local max = hudtable.hudstate[name].max
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
player:hud_change(hudtable.hudids[name].bar, "number", hb.value_to_barlength(value, max))
hudtable.hudstate[name].hidden = false
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", make_label(hudtable.format_string, hudtable.format_string_config, hudtable.label, value, max))
elseif hb.settings.bar_type == "statbar_modern" then
player:hud_change(hudtable.hudids[name].bar, "scale", {x=1,y=1})
end
player:hud_change(hudtable.hudids[name].bar, "number", hb.value_to_barlength(value, max))
player:hud_change(hudtable.hudids[name].bar, "item", hb.value_to_barlength(max, max))
hudtable.hudstate[name].hidden = false
return true
end
function hb.get_hudbar_state(player, identifier)
if not player_exists(player) then return nil end
local ref = hb.get_hudtable(identifier).hudstate[player:get_player_name()]
if not ref then return nil end
-- Do not forget to update this chunk of code in case the state changes
local copy = {
hidden = ref.hidden,
@ -463,10 +510,18 @@ function hb.get_hudbar_state(player, identifier)
return copy
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
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)
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" }, hb.settings.hp_player_maximun, hb.settings.hp_player_maximun, false)
hb.register_hudbar("breath", 0xFFFFFF, S("Breath"), { bar = "hudbars_bar_breath.png", icon = "hudbars_icon_breath.png", bgicon = "hudbars_bgicon_breath.png" }, hb.settings.br_player_maximun, hb.settings.br_player_maximun, true)
end
local function hide_builtin(player)
@ -478,50 +533,66 @@ end
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
if minetest.setting_getbool("enable_damage") then
if minetest.settings:get_bool("enable_damage") then
hide = false
else
hide = true
end
hb.init_hudbar(player, "health", player:get_hp(), nil, hide)
local hp = player:get_hp()
local hp_max = hb.settings.hp_player_maximun
hb.init_hudbar(player, "health", math.min(hp, hp_max), hp_max, hide)
local breath = player:get_breath()
local breath_max = hb.settings.br_player_maximun
local hide_breath
if breath == 11 and hb.settings.autohide_breath == true then hide_breath = true else hide_breath = false end
hb.init_hudbar(player, "breath", math.min(breath, 10), nil, hide_breath or hide)
-- real honoring to configuration of max hp custom heal and breath
if player:get_properties().hp_max then player:set_properties({hp_max = hb.settings.hp_player_maximun}) end
if player:get_properties().breath_max then player:set_properties({breath_max = hb.settings.br_player_maximun}) end
-- workaround bug https://github.com/minetest/minetest/issues/12350
if breath >= breath_max and hb.settings.autohide_breath == true then hide_breath = true else hide_breath = false end
hb.init_hudbar(player, "breath", math.min(breath, breath_max), breath_max, hide_breath or hide)
end
end
local function update_health(player)
hb.change_hudbar(player, "health", player:get_hp())
local hp_max = hb.settings.hp_player_maximun
local hp = math.min(player:get_hp(), hp_max)
hb.change_hudbar(player, "health", hp, hp_max)
end
-- update built-in HUD bars
local function update_hud(player)
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
hb.unhide_hudbar(player, "health")
end
--air
local breath_max = player:get_properties().breath_max or hb.settings.br_player_maximun
-- workaround bug https://github.com/minetest/minetest/issues/12350
local breath = player:get_breath()
if breath == 11 and hb.settings.autohide_breath == true then
if breath >= breath_max 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))
hb.change_hudbar(player, "breath", math.min(breath, breath_max), breath_max)
end
--health
update_health(player)
elseif hb.settings.forceload_default_hudbars then
update_health(player)
hb.hide_hudbar(player, "health")
hb.hide_hudbar(player, "breath")
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)
update_health(player)
@ -546,7 +617,7 @@ minetest.register_globalstep(function(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
if minetest.settings:get_bool("enable_damage") or hb.settings.forceload_default_hudbars then
for _, player in pairs(hb.players) do
-- update all hud elements
update_hud(player)

View File

@ -1,3 +0,0 @@
Health = Leben
Breath = Atem
%s: %d/%d = %s: %d/%d

4
locale/hudbars.de.tr Normal file
View File

@ -0,0 +1,4 @@
# textdomain: hudbars
Health=Leben
Breath=Atem
@1: @2/@3=@1: @2/@3

4
locale/hudbars.es.tr Normal file
View File

@ -0,0 +1,4 @@
# textdomain: hudbars
Health=Salud
Breath=Aliento
@1: @2/@3=@1: @2/@3

6
locale/hudbars.it.tr Normal file
View File

@ -0,0 +1,6 @@
# textdomain: hudbars
Health=Salute
Breath=Ossigeno
# Default format string for progress bar-style HUD bars, e.g. “Health 5/20”
@1: @2/@3=@1: @2/@3

4
locale/hudbars.ms.tr Normal file
View File

@ -0,0 +1,4 @@
# textdomain: hudbars
Health=Kesihatan
Breath=Nafas
@1: @2/@3=@1: @2/@3

6
locale/hudbars.nl.tr Normal file
View File

@ -0,0 +1,6 @@
# textdomain: hudbars
Health=Gezondheid
Breath=Adem
# Default format string for progress bar-style HUD bars, e.g. “Health 5/20”
@1: @2/@3=@1: @2/@3

View File

@ -1,5 +1,6 @@
Health = Saude
Breath = Folego
# textdomain: hudbars
Health=Saude
Breath=Folego
# Formato de string padrão para progresso bar-style de barras do HUD, por exemplo “Saude 5/20”
%s: %d/%d
@1: @2/@3=@1: @2/@3

4
locale/hudbars.ru.tr Normal file
View File

@ -0,0 +1,4 @@
# textdomain: hudbars
Health=HP
Breath=дыхание
@1: @2/@3=@1: @2/@3

4
locale/hudbars.tr.tr Normal file
View File

@ -0,0 +1,4 @@
# textdomain: hudbars
Health=Can
Breath=Nefes
@1: @2/@3=@1: @2/@3

View File

@ -1,5 +1,6 @@
Health
Breath
# textdomain: hudbars
Health=
Breath=
# Default format string for progress bar-style HUD bars, e.g. “Health 5/20”
%s: %d/%d
@1: @2/@3=

View File

@ -1 +1,2 @@
name = hudbars
description = HUD mod to display as bars and API for

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.
# For the zig-zag alignment pattern, this is for the left HUD statbars.
# 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.
# Only used for the zig-zag alignment pattern.
# 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.
# Only used for the zig-zag alignment pattern.
# 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.
hudbars_vmargin (Vertical distance between HUD bars) int 24 0
@ -116,4 +116,12 @@ hudbars_vmargin (Vertical distance between HUD bars) int 24 0
# 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
hudbars_tick (Default HUD bars update interval) float 0.3 0.0 4.0
[player values defaults]
# set a default value for max hp healt of player, if you customized and need on older engines
hudbars_hp_player_maximun (maximun value of heal of player) int 20
# set a default value for max breath of player, if you customized and need on older engines
hudbars_br_player_maximun (maximun value of braeth of player) int 10

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 B

After

Width:  |  Height:  |  Size: 113 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 811 B

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 818 B

After

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 321 B

After

Width:  |  Height:  |  Size: 172 B