Show area owners on the hud (inspired by landrush)

This commit is contained in:
ShadowNinja 2013-09-26 10:30:36 -04:00
parent 17b32663b7
commit 0c20a1b616
4 changed files with 39 additions and 26 deletions

View File

@ -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

View File

@ -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
View 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)

View File

@ -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()