Add check for unknown nodes.

* Check if node has a definition table before attempting to evaluate its
  attributes.  By application of De Morgan's law, the compound logic
  expression can be rewritten so that the existence of the table is
  checked before all following attribute references.
This commit is contained in:
kabou 2022-03-09 15:14:22 +01:00
parent 6a69f49fa0
commit 1326b9e7e7

View File

@ -179,7 +179,7 @@ function mcl_structures.generate_igloo(pos, rotation, pr)
real_depth = real_depth + 1 real_depth = real_depth + 1
local node = minetest.get_node({x=tpos.x,y=tpos.y-y,z=tpos.z}) local node = minetest.get_node({x=tpos.x,y=tpos.y-y,z=tpos.z})
local def = minetest.registered_nodes[node.name] local def = minetest.registered_nodes[node.name]
if (not def) or (not def.walkable) or (def.liquidtype ~= "none") or (not def.is_ground_content) then if not (def and def.walkable and def.liquidtype == "none" and def.is_ground_content) then
bpos.y = tpos.y-y+1 bpos.y = tpos.y-y+1
break break
end end