forked from VoxeLibre/VoxeLibre
Fix chest crashes when unknown nodes are above chests
This commit is contained in:
parent
3b1c55c234
commit
844cc5cb72
|
@ -526,7 +526,8 @@ local function register_chest(basename, desc, longdesc, usagehelp, tt_help, tile
|
|||
on_rightclick = function(pos, node, clicker)
|
||||
local topnode = minetest.get_node({ x = pos.x, y = pos.y + 1, z = pos.z })
|
||||
if topnode and topnode.name and minetest.registered_nodes[topnode.name] then
|
||||
if minetest.registered_nodes[topnode.name].groups.opaque == 1 then
|
||||
local nodedef = minetest.registered_nodes[topnode.name]
|
||||
if not nodedef or nodedef.groups.opaque == 1 then
|
||||
-- won't open if there is no space from the top
|
||||
return false
|
||||
end
|
||||
|
@ -882,10 +883,10 @@ local function register_chest(basename, desc, longdesc, usagehelp, tt_help, tile
|
|||
|
||||
on_rightclick = function(pos, node, clicker)
|
||||
local pos_other = mcl_util.get_double_container_neighbor_pos(pos, node.param2, "right")
|
||||
if minetest.registered_nodes[minetest.get_node(vector.offset(pos, 0, 1, 0)).name].groups.opaque == 1
|
||||
or
|
||||
minetest.registered_nodes[minetest.get_node(vector.offset(pos_other, 0, 1, 0)).name].groups.opaque
|
||||
== 1 then
|
||||
local nodedef_1 = minetest.registered_nodes[minetest.get_node(vector.offset(pos, 0, 1, 0)).name]
|
||||
local nodedef_2 = minetest.registered_nodes[minetest.get_node(vector.offset(pos_other, 0, 1, 0)).name]
|
||||
|
||||
if not node_def1 or not nodedef_2 or nodedef_1.groups.opaque == 1 or nodedef_2.groups.opaque == 1 then
|
||||
-- won't open if there is no space from the top
|
||||
return false
|
||||
end
|
||||
|
@ -1201,7 +1202,8 @@ minetest.register_node("mcl_chests:ender_chest_small", {
|
|||
"mcl_chests_enderchest", "mcl_chests_chest", "chest")
|
||||
end,
|
||||
on_rightclick = function(pos, node, clicker)
|
||||
if minetest.registered_nodes[minetest.get_node(vector.offset(pos, 0, 1, 0)).name].groups.opaque == 1 then
|
||||
local nodedef = minetest.registered_nodes[minetest.get_node(vector.offset(pos, 0, 1, 0)).name]
|
||||
if not nodedef or nodedef.groups.opaque == 1 then
|
||||
-- won't open if there is no space from the top
|
||||
return false
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue