]> git.lizzy.rs Git - crafter_client.git/blob - sleeping.lua
Update README.md
[crafter_client.git] / sleeping.lua
1 local minetest,name = minetest,minetest.localplayer:get_name()
2 local sleep_channel = minetest.mod_channel_join(name..":sleep_channel")
3 local sleeping = 0
4 local sleep_fade = 0
5 local sleep_id = nil
6
7 minetest.register_on_modchannel_message(function(channel_name, sender, message)
8         if sender == "" and channel_name == name..":sleep_channel" then
9         sleeping = tonumber(message)
10         end
11 end)
12
13
14
15 minetest.register_globalstep(function(dtime)
16     if sleeping == 0 and sleep_fade == 0 then
17         if sleep_id then
18             sleep_id = nil
19         end
20         return
21     elseif sleeping == 1 and sleep_fade < 255 then
22         if not sleep_id then
23             sleep_id = minetest.localplayer:hud_add({
24                 hud_elem_type = "image", -- see HUD element types, default "text"
25                 position = {x=0.5, y=0.5},
26                 name = "",    -- default ""
27                 scale = {x=-100, y=-100}, -- default {x=0,y=0}
28                 text = "sleep.png^[opacity:"..sleep_fade,
29             })
30         else
31             sleep_fade = sleep_fade + (dtime*100)
32             if sleep_fade >= 255 then
33                 sleep_fade = 255
34                 sleep_channel:send_all("true")
35             end
36             minetest.localplayer:hud_change(sleep_id, "text", "sleep.png^[opacity:"..sleep_fade)
37         end
38     elseif sleeping == 0 and sleep_fade > 0 then
39         if sleep_id then
40             sleep_fade = sleep_fade - (dtime*500)
41             if sleep_fade < 0 then
42                 sleep_fade = 0
43             end
44             minetest.localplayer:hud_change(sleep_id, "text", "sleep.png^[opacity:"..sleep_fade)
45             if sleep_fade == 0 then
46                 minetest.localplayer:hud_remove(sleep_id)
47                 sleep_id = nil
48             end
49         end
50     end
51 end)