Show area owners on the hud (inspired by landrush)
This commit is contained in:
parent
17b32663b7
commit
0c20a1b616
@ -67,9 +67,6 @@ Chat commands
|
|||||||
For example:
|
For example:
|
||||||
/find_areas [Cc]astle To find castles.
|
/find_areas [Cc]astle To find castles.
|
||||||
|
|
||||||
* /list\_owners
|
|
||||||
Lists the owners of your position.
|
|
||||||
|
|
||||||
* /remove\_area <ID>
|
* /remove\_area <ID>
|
||||||
Removes a area that you own. Any sub-areas of that area are made sub-areas
|
Removes a area that you own. Any sub-areas of that area are made sub-areas
|
||||||
of the removed area's parent, if it exists. Otherwise they will have no
|
of the removed area's parent, if it exists. Otherwise they will have no
|
||||||
|
@ -169,29 +169,6 @@ minetest.register_chatcommand("rename_area", {
|
|||||||
end})
|
end})
|
||||||
|
|
||||||
|
|
||||||
minetest.register_chatcommand("list_owners", {
|
|
||||||
params = "",
|
|
||||||
description = "List the owners of your position",
|
|
||||||
privs = {},
|
|
||||||
func = function(name, param)
|
|
||||||
local player = minetest.get_player_by_name(name)
|
|
||||||
if not player then
|
|
||||||
minetest.chat_send_player(name,
|
|
||||||
"Unable to find your position.")
|
|
||||||
return
|
|
||||||
end
|
|
||||||
local pos = vector.round(player:getpos())
|
|
||||||
local owners = areas:getNodeOwners(pos)
|
|
||||||
if #owners > 0 then
|
|
||||||
minetest.chat_send_player(name,
|
|
||||||
"Owners: "..table.concat(owners, ", "))
|
|
||||||
else
|
|
||||||
minetest.chat_send_player(name,
|
|
||||||
"Your position is unowned.")
|
|
||||||
end
|
|
||||||
end})
|
|
||||||
|
|
||||||
|
|
||||||
minetest.register_chatcommand("find_areas", {
|
minetest.register_chatcommand("find_areas", {
|
||||||
params = "<regexp>",
|
params = "<regexp>",
|
||||||
description = "Find areas using a Lua regular expression",
|
description = "Find areas using a Lua regular expression",
|
||||||
|
38
hud.lua
Normal file
38
hud.lua
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
-- This is inspired by the landrush mod by Bremaweb
|
||||||
|
|
||||||
|
areas.hud = {}
|
||||||
|
|
||||||
|
minetest.register_globalstep(function(dtime)
|
||||||
|
for _, player in pairs(minetest.get_connected_players()) do
|
||||||
|
local name = player:get_player_name()
|
||||||
|
local pos = vector.round(player:getpos())
|
||||||
|
local owners = areas:getNodeOwners(pos)
|
||||||
|
local ownerString = table.concat(owners, ", ")
|
||||||
|
if not areas.hud[name] then
|
||||||
|
areas.hud[name] = {}
|
||||||
|
areas.hud[name].ownersId = player:hud_add({
|
||||||
|
hud_elem_type = "text",
|
||||||
|
name = "AreaOwners",
|
||||||
|
number = 0xFFFFFF,
|
||||||
|
position = {x=0, y=1},
|
||||||
|
offset = {x=5, y=-40},
|
||||||
|
direction = 0,
|
||||||
|
text = "Area owners: "..ownerString,
|
||||||
|
scale = {x=200, y=40},
|
||||||
|
alignment = {x=1, y=1},
|
||||||
|
})
|
||||||
|
areas.hud[name].oldOwners = ownerString
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if areas.hud[name].oldOwners ~= ownerString then
|
||||||
|
player:hud_change(areas.hud[name].ownersId, "text",
|
||||||
|
"Area owners: "..ownerString)
|
||||||
|
areas.hud[name].oldOwners = ownerString
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
minetest.register_on_leaveplayer(function(player)
|
||||||
|
areas.hud[player:get_player_name()] = nil
|
||||||
|
end)
|
||||||
|
|
1
init.lua
1
init.lua
@ -14,6 +14,7 @@ dofile(areas.modpath.."/chatcommands.lua")
|
|||||||
dofile(areas.modpath.."/pos.lua")
|
dofile(areas.modpath.."/pos.lua")
|
||||||
dofile(areas.modpath.."/interact.lua")
|
dofile(areas.modpath.."/interact.lua")
|
||||||
dofile(areas.modpath.."/legacy.lua")
|
dofile(areas.modpath.."/legacy.lua")
|
||||||
|
dofile(areas.modpath.."/hud.lua")
|
||||||
|
|
||||||
areas:load()
|
areas:load()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user