Add basic message framework
parent
824a453aaf
commit
7cdf854936
|
@ -90,15 +90,15 @@ function lzr_levels.start_level(level)
|
|||
reset_inventory(player)
|
||||
player:set_pos({x=5,y=2,z=5})
|
||||
lzr_levels.prepare_and_build_level(level)
|
||||
lzr_messages.show_message(player, S("Level @1", level), 3)
|
||||
end
|
||||
|
||||
function lzr_levels.next_level()
|
||||
local player = get_singleplayer()
|
||||
current_level = current_level + 1
|
||||
if current_level > 10 then
|
||||
minetest.chat_send_player("singleplayer", S("Yarrrr! You finished the last level!"))
|
||||
lzr_messages.show_message(player, S("Final level completed!"), 5)
|
||||
else
|
||||
minetest.chat_send_player("singleplayer", S("Yarr! Level @1 completed!", current_level - 1))
|
||||
lzr_levels.start_level(current_level)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -0,0 +1,49 @@
|
|||
lzr_messages = {}
|
||||
|
||||
local message_handles = {}
|
||||
local message_timers = {}
|
||||
|
||||
function lzr_messages.show_message(player, text, duration)
|
||||
local playername = player:get_player_name()
|
||||
local id
|
||||
if message_handles[playername] then
|
||||
id = message_handles[playername]
|
||||
player:hud_change(id, "text", text)
|
||||
else
|
||||
id = player:hud_add({
|
||||
hud_elem_type = "text",
|
||||
position = { x = 0.5, y = 0.5 },
|
||||
name = "message",
|
||||
text = text,
|
||||
number = 0xFFFFFF,
|
||||
alignment = { x = 0, y = -1 },
|
||||
offset = { x = 0, y = -32 },
|
||||
scale = { x = 100, y = 100 },
|
||||
size = { x = 3, y = 3 },
|
||||
z_index = 0,
|
||||
})
|
||||
end
|
||||
message_handles[playername] = id
|
||||
message_timers[playername] = duration
|
||||
return id
|
||||
end
|
||||
|
||||
minetest.register_on_leaveplayer(function(player)
|
||||
message_handles[player:get_player_name()] = nil
|
||||
message_timers[player:get_player_name()] = nil
|
||||
end)
|
||||
|
||||
minetest.register_globalstep(function(dtime)
|
||||
local players = minetest.get_connected_players()
|
||||
for p=1, #players do
|
||||
local name = players[p]:get_player_name()
|
||||
if message_timers[name] then
|
||||
message_timers[name] = message_timers[name] - dtime
|
||||
if message_timers[name] <= 0 then
|
||||
players[p]:hud_remove(message_handles[name])
|
||||
message_handles[name] = nil
|
||||
message_timers[name] = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
Loading…
Reference in New Issue