mirror of
https://repo.or.cz/minetest_hudbars.git
synced 2024-12-18 03:16:56 +01:00
Refactor settings
This commit is contained in:
parent
65c8702e64
commit
197fc56145
@ -19,7 +19,9 @@ the number.
|
|||||||
|
|
||||||
Furthermore, it enables other mods to add their own custom bars to the HUD, this mod will place them accordingly.
|
Furthermore, it enables other mods to add their own custom bars to the HUD, this mod will place them accordingly.
|
||||||
|
|
||||||
You can create a “hudbars.conf” file to customize the positions of the health and breath bars. Take a look at “hudbars.conf.example” to get more infos.
|
You can create a “hudbars.conf” file to customize the positions of the health and breath bars. Take a look at “hudbars.conf.example”
|
||||||
|
to get more infos. The lines starting with “--” are comments, remove the two dashes to activate a setting. Settings which are not
|
||||||
|
set will use a default value instead.
|
||||||
|
|
||||||
|
|
||||||
IMPORTANT:
|
IMPORTANT:
|
||||||
|
@ -1,20 +1,24 @@
|
|||||||
--##HUD bars example config file##
|
-- HUD bars example config file
|
||||||
------------------------------------
|
-------------------------------
|
||||||
-- This example moves the health bar in the top left corner and the hunger bar in the top right corner
|
-- Currently you can customize the starting position of the first bottom two HUD bars
|
||||||
|
-- and the vertical margin. That's all.
|
||||||
|
-- Remove the two dashes to activate a setting. Lua syntax is used.
|
||||||
|
-- The examples are all equal to the mod defaults
|
||||||
|
-------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
--!NOTICE!--
|
-- Vertical space between two HUD bars
|
||||||
-- >>if damage is disabled neither health bar nor breath bar is shown
|
-- hb.settings.vmargin = 24
|
||||||
|
|
||||||
--
|
-- Pos of the first HUD bar the the left (“pos”, as in hud definition of hud_add of Minetest Lua API)
|
||||||
-- health bar
|
-- hb.settings.pos_left = { x=0.5, y=1 }
|
||||||
--
|
|
||||||
HUD_HEALTH_POS = {x=0,y=0} --min 0, max 1
|
|
||||||
HUD_HEALTH_OFFSET = {x=5,y=30} --offset in pixel
|
|
||||||
|
|
||||||
--
|
-- Pos of the first HUD bar the the right
|
||||||
-- breath bar
|
-- hb.settings.pos_right= { x = 0.5, y = 1 }
|
||||||
--
|
|
||||||
HUD_AIR_POS = {x=0.5,y=1} --min 0, max 1
|
-- Offset of the first HUD bar to the left (“offset”, as in HUD definition)
|
||||||
HUD_AIR_OFFSET = {x=15,y=-75} --offset in pixel
|
-- hb.settings.start_offset_left = { x = -175, y = -70 }
|
||||||
|
|
||||||
|
-- Offset of the first HUD bar to the right
|
||||||
|
-- hb.settings_start_offset_right = { x = 15, y = -70 }
|
||||||
|
|
||||||
|
34
init.lua
34
init.lua
@ -5,23 +5,25 @@ hb.hudtables = {}
|
|||||||
-- number of registered HUD bars
|
-- number of registered HUD bars
|
||||||
hb.hudbars_count = 0
|
hb.hudbars_count = 0
|
||||||
|
|
||||||
|
hb.settings = {}
|
||||||
|
|
||||||
-- default settings
|
-- default settings
|
||||||
HUD_BARLENGTH = 160
|
hb.settings.max_bar_length = 160
|
||||||
|
|
||||||
-- statbar positions
|
-- statbar positions
|
||||||
HUD_START_OFFSET_LEFT = { x = -175, y = -70 }
|
hb.settings.pos_left = { x=0.5, y=1 }
|
||||||
HUD_START_OFFSET_RIGHT = { x = 15, y = -70 }
|
hb.settings.pos_right= { x = 0.5, y = 1 }
|
||||||
HUD_POS_LEFT = { x=0.5, y=1 }
|
hb.settings.start_offset_left = { x = -175, y = -70 }
|
||||||
HUD_POS_RIGHT = { x = 0.5, y = 1 }
|
hb.settings.start_offset_right = { x = 15, y = -70 }
|
||||||
|
|
||||||
HUD_VMARGIN = 24
|
hb.settings.vmargin = 24
|
||||||
HUD_TICK = 0.1
|
hb.settings.tick = 0.1
|
||||||
|
|
||||||
function hb.value_to_barlength(value, max)
|
function hb.value_to_barlength(value, max)
|
||||||
if max == 0 then
|
if max == 0 then
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
return math.ceil((value/max) * HUD_BARLENGTH)
|
return math.ceil((value/max) * hb.settings.max_bar_length)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -33,16 +35,16 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
|
|||||||
local hudtable = {}
|
local hudtable = {}
|
||||||
local pos, offset
|
local pos, offset
|
||||||
if hb.hudbars_count % 2 == 0 then
|
if hb.hudbars_count % 2 == 0 then
|
||||||
pos = HUD_POS_LEFT
|
pos = hb.settings.pos_left
|
||||||
offset = {
|
offset = {
|
||||||
x = HUD_START_OFFSET_LEFT.x,
|
x = hb.settings.start_offset_left.x,
|
||||||
y = HUD_START_OFFSET_LEFT.y - HUD_VMARGIN * math.floor(hb.hudbars_count/2)
|
y = hb.settings.start_offset_left.y - hb.settings.vmargin * math.floor(hb.hudbars_count/2)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
pos = HUD_POS_RIGHT
|
pos = hb.settings.pos_right
|
||||||
offset = {
|
offset = {
|
||||||
x = HUD_START_OFFSET_RIGHT.x,
|
x = hb.settings.start_offset_right.x,
|
||||||
y = HUD_START_OFFSET_RIGHT.y - HUD_VMARGIN * math.floor((hb.hudbars_count-1)/2)
|
y = hb.settings.start_offset_right.y - hb.settings.vmargin * math.floor((hb.hudbars_count-1)/2)
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
if format_string == nil then
|
if format_string == nil then
|
||||||
@ -308,8 +310,8 @@ minetest.after(2.5, function()
|
|||||||
main_timer = main_timer + dtime
|
main_timer = main_timer + dtime
|
||||||
timer = timer + dtime
|
timer = timer + dtime
|
||||||
timer2 = timer2 + dtime
|
timer2 = timer2 + dtime
|
||||||
if main_timer > HUD_TICK or timer > 4 then
|
if main_timer > hb.settings.tick or timer > 4 then
|
||||||
if main_timer > HUD_TICK then main_timer = 0 end
|
if main_timer > hb.settings.tick then main_timer = 0 end
|
||||||
for _,player in ipairs(minetest.get_connected_players()) do
|
for _,player in ipairs(minetest.get_connected_players()) do
|
||||||
-- only proceed if damage is enabled
|
-- only proceed if damage is enabled
|
||||||
if minetest.setting_getbool("enable_damage") then
|
if minetest.setting_getbool("enable_damage") then
|
||||||
|
Loading…
Reference in New Issue
Block a user