Partially fix bad player counting of trapped chest

This commit is contained in:
Wuzzy 2018-01-26 23:43:33 +01:00
parent b1fcbbf68f
commit 2400ca5be0
1 changed files with 11 additions and 7 deletions

View File

@ -5,13 +5,16 @@ if minetest.get_modpath("screwdriver") then
end end
-- This is a helper function to register both chests and trapped chests. Trapped chests will make use of the additional parameters -- This is a helper function to register both chests and trapped chests. Trapped chests will make use of the additional parameters
local register_chest = function(basename, desc, longdesc, usagehelp, tiles_table, hidden, mesecons, on_rightclick_addendum, on_rightclick_addendum_left, on_rightclick_addendum_right, drop) local register_chest = function(basename, desc, longdesc, usagehelp, tiles_table, hidden, mesecons, on_rightclick_addendum, on_rightclick_addendum_left, on_rightclick_addendum_right, drop, formspec_basename)
if not drop then if not drop then
drop = "mcl_chests:"..basename drop = "mcl_chests:"..basename
else else
drop = "mcl_chests:"..drop drop = "mcl_chests:"..drop
end end
if not formspec_basename then
formspec_basename = basename
end
minetest.register_node("mcl_chests:"..basename, { minetest.register_node("mcl_chests:"..basename, {
description = desc, description = desc,
@ -97,7 +100,7 @@ minetest.register_node("mcl_chests:"..basename, {
on_rightclick = function(pos, node, clicker) on_rightclick = function(pos, node, clicker)
minetest.show_formspec(clicker:get_player_name(), minetest.show_formspec(clicker:get_player_name(),
"mcl_chests:"..basename.."_"..pos.x.."_"..pos.y.."_"..pos.z, "mcl_chests:"..formspec_basename.."_"..pos.x.."_"..pos.y.."_"..pos.z,
"size[9,8.75]".. "size[9,8.75]"..
mcl_vars.inventory_header.. mcl_vars.inventory_header..
"background[-0.19,-0.25;9.41,10.48;mcl_chests_inventory_chest.png]".. "background[-0.19,-0.25;9.41,10.48;mcl_chests_inventory_chest.png]"..
@ -116,7 +119,7 @@ minetest.register_node("mcl_chests:"..basename, {
on_destruct = function(pos) on_destruct = function(pos)
local players = minetest.get_connected_players() local players = minetest.get_connected_players()
for p=1, #players do for p=1, #players do
minetest.close_formspec(players[p]:get_player_name(), "mcl_chests:"..basename.."_"..pos.x.."_"..pos.y.."_"..pos.z) minetest.close_formspec(players[p]:get_player_name(), "mcl_chests:"..formspec_basename.."_"..pos.x.."_"..pos.y.."_"..pos.z)
end end
end, end,
mesecons = mesecons, mesecons = mesecons,
@ -138,7 +141,7 @@ minetest.register_node("mcl_chests:"..basename.."_left", {
local players = minetest.get_connected_players() local players = minetest.get_connected_players()
for p=1, #players do for p=1, #players do
minetest.close_formspec(players[p]:get_player_name(), "mcl_chests:"..basename.."_"..pos.x.."_"..pos.y.."_"..pos.z) minetest.close_formspec(players[p]:get_player_name(), "mcl_chests:"..formspec_basename.."_"..pos.x.."_"..pos.y.."_"..pos.z)
end end
local param2 = n.param2 local param2 = n.param2
@ -212,7 +215,7 @@ minetest.register_node("mcl_chests:"..basename.."_left", {
local pos_other = mcl_util.get_double_container_neighbor_pos(pos, node.param2, "left") local pos_other = mcl_util.get_double_container_neighbor_pos(pos, node.param2, "left")
minetest.show_formspec(clicker:get_player_name(), minetest.show_formspec(clicker:get_player_name(),
"mcl_chests:"..basename.."_"..pos.x.."_"..pos.y.."_"..pos.z, "mcl_chests:"..formspec_basename.."_"..pos.x.."_"..pos.y.."_"..pos.z,
"size[9,11.5]".. "size[9,11.5]"..
"background[-0.19,-0.25;9.41,12.5;mcl_chests_inventory_chest_large.png]".. "background[-0.19,-0.25;9.41,12.5;mcl_chests_inventory_chest_large.png]"..
mcl_vars.inventory_header.. mcl_vars.inventory_header..
@ -252,7 +255,7 @@ minetest.register_node("mcl_chests:"..basename.."_right", {
local players = minetest.get_connected_players() local players = minetest.get_connected_players()
for p=1, #players do for p=1, #players do
minetest.close_formspec(players[p]:get_player_name(), "mcl_chests:"..basename.."_"..pos.x.."_"..pos.y.."_"..pos.z) minetest.close_formspec(players[p]:get_player_name(), "mcl_chests:"..formspec_basename.."_"..pos.x.."_"..pos.y.."_"..pos.z)
end end
local param2 = n.param2 local param2 = n.param2
@ -326,7 +329,7 @@ minetest.register_node("mcl_chests:"..basename.."_right", {
local pos_other = mcl_util.get_double_container_neighbor_pos(pos, node.param2, "right") local pos_other = mcl_util.get_double_container_neighbor_pos(pos, node.param2, "right")
minetest.show_formspec(clicker:get_player_name(), minetest.show_formspec(clicker:get_player_name(),
"mcl_chests:"..basename.."_"..pos.x.."_"..pos.y.."_"..pos.z, "mcl_chests:"..formspec_basename.."_"..pos.x.."_"..pos.y.."_"..pos.z,
"size[9,11.5]".. "size[9,11.5]"..
"background[-0.19,-0.25;9.41,12.5;mcl_chests_inventory_chest_large.png]".. "background[-0.19,-0.25;9.41,12.5;mcl_chests_inventory_chest_large.png]"..
@ -458,6 +461,7 @@ register_chest("trapped_chest_on",
players = players + 1 players = players + 1
meta:set_int("players", players) meta:set_int("players", players)
end, end,
"trapped_chest",
"trapped_chest" "trapped_chest"
) )