From f6d660d40f3b8f6ff005efbcce349a0882792da4 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Wed, 4 Feb 2015 02:18:22 +0100 Subject: [PATCH] Use max. 160 pixel wide bars to represent stats --- init.lua | 31 ++++++++++--------------------- textures/hud_air_fg.png | Bin 579 -> 0 bytes textures/hud_heart_bg.png | Bin 302 -> 0 bytes textures/hud_heart_fg.png | Bin 369 -> 0 bytes textures/hudbars_bar_breath.png | Bin 0 -> 80 bytes textures/hudbars_bar_health.png | Bin 0 -> 80 bytes textures/hudbars_icon_breath.png | Bin 0 -> 544 bytes textures/hudbars_icon_health.png | Bin 0 -> 321 bytes 8 files changed, 10 insertions(+), 21 deletions(-) delete mode 100644 textures/hud_air_fg.png delete mode 100644 textures/hud_heart_bg.png delete mode 100644 textures/hud_heart_fg.png create mode 100644 textures/hudbars_bar_breath.png create mode 100644 textures/hudbars_bar_health.png create mode 100644 textures/hudbars_icon_breath.png create mode 100644 textures/hudbars_icon_health.png diff --git a/init.lua b/init.lua index 19e9ade..036ccad 100644 --- a/init.lua +++ b/init.lua @@ -11,7 +11,7 @@ local air_hud = {} -- default settings HUD_SCALEABLE = false -HUD_SIZE = "" +HUD_BARLENGTH = 160 -- statbar positions HUD_HEALTH_POS = {x=0.5,y=0.9} @@ -22,7 +22,6 @@ HUD_AIR_OFFSET = {x=15,y=2} -- dirty way to check for new statbars if dump(minetest.hud_replace_builtin) ~= "nil" then HUD_SCALEABLE = true - HUD_SIZE = {x=24, y=24} HUD_HEALTH_POS = {x=0.5,y=1} HUD_HEALTH_OFFSET = {x=-262, y=-87} HUD_AIR_POS = {x=0.5,y=1} @@ -31,7 +30,9 @@ end HUD_TICK = 0.1 - +function hud.value_to_barlength(value, max) + return math.ceil((value/max) * HUD_BARLENGTH) +end --load custom settings local set = io.open(minetest.get_modpath("hudbars").."/hud.conf", "r") @@ -56,21 +57,11 @@ local function custom_hud(player) if minetest.setting_getbool("enable_damage") then --health - player:hud_add({ - hud_elem_type = "statbar", - position = HUD_HEALTH_POS, - size = HUD_SIZE, - text = "hud_heart_bg.png", - number = 20, - alignment = {x=-1,y=-1}, - offset = HUD_HEALTH_OFFSET, - }) health_hud[name] = player:hud_add({ hud_elem_type = "statbar", position = HUD_HEALTH_POS, - size = HUD_SIZE, - text = "hud_heart_fg.png", - number = player:get_hp(), + text = "hudbars_bar_health.png", + number = hud.value_to_barlength(player:get_hp(), 20), alignment = {x=-1,y=-1}, offset = HUD_HEALTH_OFFSET, }) @@ -79,9 +70,8 @@ local function custom_hud(player) air_hud[name] = player:hud_add({ hud_elem_type = "statbar", position = HUD_AIR_POS, - size = HUD_SIZE, - text = "hud_air_fg.png", - number = 0, + text = "hudbars_bar_breath.png", + number = hud.value_to_barlength(math.min(player:get_breath(), 10), 10), alignment = {x=-1,y=-1}, offset = HUD_AIR_OFFSET, }) @@ -98,15 +88,14 @@ local function update_hud(player) if player:get_breath() ~= air then air = player:get_breath() hud.air[name] = air - if air > 10 then air = 0 end - player:hud_change(air_hud[name], "number", air*2) + player:hud_change(air_hud[name], "number", hud.value_to_barlength(math.min(air, 10), 10)) end --health local hp = tonumber(hud.health[name]) if player:get_hp() ~= hp then hp = player:get_hp() hud.health[name] = hp - player:hud_change(health_hud[name], "number", hp) + player:hud_change(health_hud[name], "number", hud.value_to_barlength(hp, 20)) end end diff --git a/textures/hud_air_fg.png b/textures/hud_air_fg.png deleted file mode 100644 index b62c9b02f7f95fb61becb97a8ad79e81a2328ff6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 579 zcmV-J0=)f+P)G&XICSPKg*(jAuFW#{L?*nllW(@CD& zJWnQh-(dhS$AJOB7)-`K9@=cWM|L}VXZ8U*Wx3BzPEE77Zcm^3`<}sMJRA_((!}?s zRLbs2@D^%#mf~?Qw1pe?WcK1!?%dEojdUWPcoFrsf|V$BxH)Qh9inp|Hq>zZTN~EU z4lYl+uN)bu6Eg9I--o1XaJpbd&vCk7ejmqtu0k-oyp0RjpPcOrs9jB073ET+t@g=I z7tFn+^O|pYb00UKreF324G^Bq}I$2(($f0aAtH&cMuSW$}San zxH)PWB>!P;w@v(?d5nyWj~@gYqQWj_YY2wu+^_)W!Az=5q4-O1L!u~$ z2gv}CSkt&q+#qjAa7PoYpHXvr!DF4897(MO7P*rI!Qp00LYedI~_t02AG zZlTDFXvhjGLg(brRW_K6jN^sx(n27H$DSw_-^7r}tz*FxIR8(7;eR=H;1?=BX(~z| R!KnZM002ovPDHLkV1iLN40Heh diff --git a/textures/hud_heart_bg.png b/textures/hud_heart_bg.png deleted file mode 100644 index e2be2768e569748d3d19bc3fd02e8bf36f5bfa03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMpx^^f z7srr_IY%!Wt~#P1z?SfSf|H6XhjMUF(nP1G4)!fyTJAl$uhp1yZF~OBr0&d?|HUb8 ztPZuo@vZs}>wN_UXGosmQF2=E`}Nk9O*$K{HO*YO)ouM-J^{g`9*w07rZh*az&zt8kNnXyH@^QZnikZw^;`Xc6*GSF+1Ni!UT}Sx6G#5x+uIUj zuU|i4bH2W8VsTr?o_U81jRYl`&h7jt!GA!4`TbwrH+$O+pWW$IEKpEtnqypauHank yq5Q_U*_Wc6T@;kkZ_6{ftDiULZ=C=482iEurpGBS}O-RCt`llc8?HP!xv$ph*=1L2?5Ls&##X>MQmJBQ--VO&?%# zu4)-(;Sq{sj*9s`!US$&leqg$^g>#oAqxWWo0I#0=RY~;3eYvW%G?4}VXi`A=~YNn zVXi97^(67?>-WBX0w^TDBnSeWF>I$(-i+ZT2-rycNFcG1xRW>mEWMd1f+PWJc~26) zqX-uS^;3yopXNNknA)7CkY%_u#U%;Om;(Sm%GnXN<1ttZSq6(m4Y3y2?_UN~VXlwC z0M|%Bn&RRZ*Xte3pAyeqfJce#WKzer78l2@&O3>+YYY38l@e|^#EnL+&Pc2zW|sgD z66=O(ueHRyaT}e0D$F(aQFmUeBlAT-73P|GNZE+}FTj4ByDTRY^l5aAT$?uzY3xI#ZsIJ_;W#YNbW_e+^ zQ$u6VsDa@pRR6#T^RkQ7OwWa>NW|~s%9zja*h?$`moWiC!W^aOB)Bc|2qEOB#^5bwYXch*5=&I&e$@9oFEUZ@R1=B4Av*kyg^)fz%waL@M znyw?3=eg~Qf{G~LZMeqdE`Q0FF2I#3A(Bwtp4x%^UA8{DoT$y5+vhSxf{Lu7=|kF} zC2KHSf-SU%>3C6E_(qe!FHZctRY8{K!O98>oYdMxaKgll`}&kOjF-+3WFqh^FPzVR5gY<4K4~g(SU~~+0000dL3vsfmRFOJP)i*xeHEY5*2VF)ZFa?!y$~Pu{Px{5DB^a2>VI} znyh9_r&kGU%jMDqdNG?q0Tyha(;5v}Hv7}OC7&_DKwDI+l4!D;|4crUdF(4F6#9V` zi?CAZce1k}oiss@(UKsdj|-e$FgYf8{lD=7v!7JP TVw+*X00000NkvXXu0mjfWm1X4 literal 0 HcmV?d00001