Fix crash on non existent xp-hud due to gamemode
This commit is contained in:
parent
ff6af32ddf
commit
1127231ca9
|
@ -156,33 +156,7 @@ function mcl_experience.throw_xp(pos, total_xp)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function mcl_experience.update(player)
|
local function setup_hud(player)
|
||||||
local xp = mcl_experience.get_xp(player)
|
|
||||||
local cache = caches[player]
|
|
||||||
|
|
||||||
cache.level = xp_to_level(xp)
|
|
||||||
|
|
||||||
if not minetest.is_creative_enabled(player:get_player_name()) then
|
|
||||||
player:hud_change(hud_bars[player], "text", "mcl_experience_bar_background.png^[lowpart:"
|
|
||||||
.. math.floor(math.floor(xp_to_bar(xp, cache.level) * 18) / 18 * 100)
|
|
||||||
.. ":mcl_experience_bar.png^[transformR270"
|
|
||||||
)
|
|
||||||
|
|
||||||
if cache.level == 0 then
|
|
||||||
player:hud_change(hud_levels[player], "text", "")
|
|
||||||
else
|
|
||||||
player:hud_change(hud_levels[player], "text", tostring(cache.level))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function mcl_experience.register_on_add_xp(func, priority)
|
|
||||||
table.insert(mcl_experience.on_add_xp, {func = func, priority = priority or 0})
|
|
||||||
end
|
|
||||||
|
|
||||||
-- callbacks
|
|
||||||
|
|
||||||
minetest.register_on_joinplayer(function(player)
|
|
||||||
caches[player] = {
|
caches[player] = {
|
||||||
last_time = get_time(),
|
last_time = get_time(),
|
||||||
}
|
}
|
||||||
|
@ -205,7 +179,39 @@ minetest.register_on_joinplayer(function(player)
|
||||||
z_index = 12,
|
z_index = 12,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function mcl_experience.update(player)
|
||||||
|
local xp = mcl_experience.get_xp(player)
|
||||||
|
local cache = caches[player]
|
||||||
|
|
||||||
|
cache.level = xp_to_level(xp)
|
||||||
|
|
||||||
|
if not minetest.is_creative_enabled(player:get_player_name()) then
|
||||||
|
if not hud_bars[player] then
|
||||||
|
setup_hud(player)
|
||||||
|
end
|
||||||
|
player:hud_change(hud_bars[player], "text", "mcl_experience_bar_background.png^[lowpart:"
|
||||||
|
.. math.floor(math.floor(xp_to_bar(xp, cache.level) * 18) / 18 * 100)
|
||||||
|
.. ":mcl_experience_bar.png^[transformR270"
|
||||||
|
)
|
||||||
|
|
||||||
|
if cache.level == 0 then
|
||||||
|
player:hud_change(hud_levels[player], "text", "")
|
||||||
|
else
|
||||||
|
player:hud_change(hud_levels[player], "text", tostring(cache.level))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function mcl_experience.register_on_add_xp(func, priority)
|
||||||
|
table.insert(mcl_experience.on_add_xp, {func = func, priority = priority or 0})
|
||||||
|
end
|
||||||
|
|
||||||
|
-- callbacks
|
||||||
|
|
||||||
|
minetest.register_on_joinplayer(function(player)
|
||||||
|
setup_hud(player)
|
||||||
mcl_experience.update(player)
|
mcl_experience.update(player)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user