From 5fe64ff6f140859d80e5ecc93b4ff9877dbf7b1d Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Mon, 21 Dec 2020 17:02:39 +0100 Subject: [PATCH] Better XP bar --- mods/HUD/mcl_experience/init.lua | 24 ++++++++++-------- .../textures/experience_bar.png | Bin 3745 -> 1540 bytes .../textures/experience_bar_background.png | Bin 2861 -> 1538 bytes 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/mods/HUD/mcl_experience/init.lua b/mods/HUD/mcl_experience/init.lua index 28ac779fee..eb96390500 100644 --- a/mods/HUD/mcl_experience/init.lua +++ b/mods/HUD/mcl_experience/init.lua @@ -77,6 +77,8 @@ hud_manager.add_hud = function(player,hud_name,def) size = def.size, offset = def.offset, z_index = def.z_index, + alignment = def.alignment, + scale = def.scale, }) -- create new 3d array here -- depends.txt is not needed @@ -164,14 +166,14 @@ minetest.register_on_joinplayer(function(player) hud_manager.add_hud(player,"experience_bar", { - hud_elem_type = "statbar", position = {x=0.5, y=1}, - name = "experience bar", - text = "experience_bar.png", - text2 = "experience_bar_background.png", - number = temp_pool.bar, item = 36, - direction = 0, - offset = {x = (-8 * 28) - 29, y = -(48 + 24 + 16)}, - size = { x=28, y=28 }, z_index = 11, + hud_elem_type = "image", + name = "experience bar", + text = "experience_bar_background.png^[lowpart:" .. math.floor(temp_pool.bar / 36 * 100) .. ":experience_bar.png^[transformR270", + position = {x=0.5, y=1}, + offset = {x = (-9 * 28), y = -(48 + 24 + 16 - 7)}, + scale = {x = 2.75, y = 2.75}, + alignment = { x = 1, y = 1 }, + z_index = 11, }) hud_manager.add_hud(player,"xp_level", @@ -181,7 +183,7 @@ minetest.register_on_joinplayer(function(player) number = 0xFFFFFF, offset = {x = 0, y = -(48 + 24 + 24)}, z_index = 12, - }) + }) end) function mcl_experience.xp_to_level(xp) @@ -247,7 +249,7 @@ function mcl_experience.add_experience(player, experience) end if old_bar ~= temp_pool.bar then - hud_manager.change_hud({player = player, hud_name = "experience_bar", element = "number", data = math.floor(temp_pool.bar)}) + hud_manager.change_hud({player = player, hud_name = "experience_bar", element = "text", data = "experience_bar_background.png^[lowpart:" .. math.floor(temp_pool.bar / 36 * 100) .. ":experience_bar.png^[transformR270",}) end if experience > 0 and minetest.get_us_time()/1000000 - temp_pool.last_time > 0.01 then @@ -283,7 +285,7 @@ minetest.register_on_dieplayer(function(player) temp_pool.bar, temp_pool.bar_step, temp_pool.xp_next_level = mcl_experience.xp_to_bar(temp_pool.xp, temp_pool.level) hud_manager.change_hud({player = player, hud_name = "xp_level", element = "text", data = tostring(temp_pool.level)}) - hud_manager.change_hud({player = player, hud_name = "experience_bar", element = "number", data = math.floor(temp_pool.bar)}) + hud_manager.change_hud({player = player, hud_name = "experience_bar", element = "text", data = "experience_bar_background.png^[lowpart:" .. math.floor(temp_pool.bar / 36 * 100) .. ":experience_bar.png^[transformR270",}) mcl_experience.throw_experience(player:get_pos(), xp_amount) end) diff --git a/mods/HUD/mcl_experience/textures/experience_bar.png b/mods/HUD/mcl_experience/textures/experience_bar.png index d43a03d641f48a750d8971a6724f8d9f645df5ff..19a2c029d8d47ad9b08c0f53e45a95786a98d41f 100644 GIT binary patch literal 1540 zcma)+4NMbf7{^~$DNx2&p+mlAVGfxH>y@wC0HM%Q>I&Qdiy(|%+bccS_UiQ*9}}m{ zfK(HK8HNfh+guUH#~i~%lsP5>A={h_3__T)$<&~Zsca0`=3a0zO=_~_-g|S;|M$P= zdG2|0)o7a3h2_fv0Jz9f#2Ik6hwJnj2E1Qem+Jz6-7X?22_@8O077cZYvWQbB=}z} z$owd1)K%fWa|mtPWU&Z#a4cxx2&-M#khf@`>RadKE$!=`ni^D%_Fc@$cE}dF{|Ro^To5^eTC}iDB`N?F$7;jkft0Cqto$&b-j+5Tw9N9kU4!8 zP%!`N-QU88yC&XSGS8jJIbauGTT<_1O+6=y?Irvg=c_NYaX;?A(f?s^e$5}Xw=9EX zwT@sXojFGKBF$ID($@dQTUb+55etYj5H&o_Qo~m!40IUnO=Vu51O5rOL4R{X zEMveJs;r3&RW^YBI#1SGah%UuaexbVylbzBVxq1mDj6ZO1oLtPV@D-pSlO6|xP2A;+eJ6ecq&!xsBvMaO znI=q)1H|pvGcqU!u8Lwk5BT!ketX}VTx#%X}W z2qwQ*?1nOXRhAjBLR^j;3uzsQI@Q@DdcwS-W)m7HA_D$?{&#Iq{;!uzQcD+O6b_`a zRFumPM|k0g;Dzh?5s+HHnu6998B|7$(A(~v>o=DPd4C&x5@|3|xYEo2JV)*gxd0pQd#oLPRP=u4q89{1Y=B!(iBx8!aZ0VjjD>hINf|I2MDQZpq?dHi z^YZ`o{QG4QWHU0WJPwaL*l5Fw>PVV2;50?3SF*yUX^dX!n$5BJLKoMD>){bvK1?W4 zg6l!Vk7HlwLe_7Yg}+gunlzPCM4^rbXpu@!sJUX&fDy*iwa9je1wFzvxLHjRrj>jv zgH#m}dOD0Sa?KgiM0uge6VjYVv;i{~X)!fjMB&uR+~v(R!w_&?1xO7nX4$%3DNBM1 NkV(?S9f`_{e*i2WBUbv(p_Z4=A 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