diff options
author | TenPlus1 <kinsellaja@yahoo.com> | 2017-11-11 12:50:50 +0000 |
---|---|---|
committer | TenPlus1 <kinsellaja@yahoo.com> | 2017-11-11 12:50:50 +0000 |
commit | 974a024171529ec14d08e5d6b87bb995627a978f (patch) | |
tree | bc2b829e501dd3cccf820b7e6bc4a012d609ef1a | |
parent | 8f02711af43c1b438fea56a270e67985220d394e (diff) |
Added HUD text to show protected areas
-rw-r--r-- | README.md | 1 | ||||
-rw-r--r-- | hud.lua | 60 | ||||
-rw-r--r-- | init.lua | 1 |
3 files changed, 62 insertions, 0 deletions
@@ -52,6 +52,7 @@ Change log: It can also place vertically (up and down) as well. New protector recipe added. - 2.3 - Localise many of the protector functions and tidy code. - 2.4 - Update to newer functions, Minetest 0.4.16 needed to run now. +- 2.5 - Added HUD text to show when player is inside a protected area (updates every 5 seconds) Lucky Blocks: 10 @@ -0,0 +1,60 @@ + +local radius = (tonumber(minetest.setting_get("protector_radius")) or 5) +local hud = {} +local hud_timer = 0 + +minetest.register_globalstep(function(dtime) + + hud_timer = hud_timer + dtime + if hud_timer < 5 then + return + end + hud_timer = 0 + + for _, player in pairs(minetest.get_connected_players()) do + + local name = player:get_player_name() + local pos = vector.round(player:getpos()) + local hud_text = "You can build here" + + local protectors = minetest.find_nodes_in_area( + {x=pos.x -radius , y=pos.y -radius , z=pos.z -radius}, + {x=pos.x +radius , y=pos.y +radius , z=pos.z +radius}, + {"protector:protect","protector:protect2"}) + + if #protectors > 0 then + local npos = protectors[1] + local meta = minetest.get_meta(npos) + local nodeowner = meta:get_string("owner") + + hud_text = "Owned by: " .. nodeowner + end + + if not hud[name] then + + hud[name] = {} + + hud[name].id = player:hud_add({ + hud_elem_type = "text", + name = "Protector Area", + number = 0xFFFF22, + position = {x=0, y=0.95}, + offset = {x=8, y=-8}, + text = hud_text, + scale = {x=200, y=60}, + alignment = {x=1, y=-1}, + }) + + return + + else + + player:hud_change(hud[name].id, "text", hud_text) + end + end +end) + +minetest.register_on_leaveplayer(function(player) + hud[player:get_player_name()] = nil +end) + @@ -624,6 +624,7 @@ dofile(path .. "/doors_chest.lua") dofile(path .. "/pvp.lua") dofile(path .. "/admin.lua") dofile(path .. "/tool.lua") +dofile(path .. "/hud.lua") dofile(path .. "/lucky_block.lua") |