53 lines
1.0 KiB
Lua
53 lines
1.0 KiB
Lua
--[[
|
|
|
|
TechAge
|
|
=======
|
|
|
|
Copyright (C) 2019 Joachim Stolberg
|
|
|
|
AGPL v3
|
|
See LICENSE.txt for more information
|
|
|
|
Keep only one formspec active per player
|
|
|
|
]]--
|
|
|
|
local P2S = minetest.pos_to_string
|
|
|
|
local ActiveFormspecs = {}
|
|
local ActivePlayer = {}
|
|
|
|
|
|
function techage.is_activeformspec(pos)
|
|
return ActiveFormspecs[P2S(pos)]
|
|
end
|
|
|
|
function techage.set_activeformspec(pos, player)
|
|
local name = player and player:get_player_name()
|
|
if name then
|
|
if ActivePlayer[name] then
|
|
ActiveFormspecs[ActivePlayer[name]] = nil
|
|
end
|
|
ActivePlayer[name] = P2S(pos)
|
|
ActiveFormspecs[P2S(pos)] = true
|
|
end
|
|
end
|
|
|
|
function techage.reset_activeformspec(pos, player)
|
|
local name = player and player:get_player_name()
|
|
if name then
|
|
if ActivePlayer[name] then
|
|
ActiveFormspecs[ActivePlayer[name]] = nil
|
|
ActivePlayer[name] = nil
|
|
end
|
|
end
|
|
end
|
|
|
|
minetest.register_on_leaveplayer(function(player)
|
|
local name = player:get_player_name()
|
|
if ActivePlayer[name] then
|
|
ActiveFormspecs[ActivePlayer[name]] = nil
|
|
ActivePlayer[name] = nil
|
|
end
|
|
end)
|