Add check for unknown nodes.
* Check if node has a definition table before attempting to evaluate attributes. * Define local variable to cache multiple accesses to `registered_nodes[]` and improve readability. * Reduce redundant `== false` condition check.new_mapgen_api
parent
52333cea0f
commit
b9c2c3bd0a
|
@ -50,8 +50,10 @@ mobs_mc.make_owner_teleport_function = function(dist, teleport_check_interval)
|
||||||
local telepos_below = {x=telepos.x, y=telepos.y-1, z=telepos.z}
|
local telepos_below = {x=telepos.x, y=telepos.y-1, z=telepos.z}
|
||||||
table.remove(check_offsets, r)
|
table.remove(check_offsets, r)
|
||||||
-- Long story short, spawn on a platform
|
-- Long story short, spawn on a platform
|
||||||
if minetest.registered_nodes[minetest.get_node(telepos).name].walkable == false and
|
local trynode = minetest.registered_nodes[minetest.get_node(telepos).name]
|
||||||
minetest.registered_nodes[minetest.get_node(telepos_below).name].walkable == true then
|
local trybelownode = minetest.registered_nodes[minetest.get_node(telepos_below).name]
|
||||||
|
if trynode and not trynode.walkable and
|
||||||
|
trybelownode and trybelownode.walkable then
|
||||||
-- Correct position found! Let's teleport.
|
-- Correct position found! Let's teleport.
|
||||||
self.object:set_pos(telepos)
|
self.object:set_pos(telepos)
|
||||||
return
|
return
|
||||||
|
|
Loading…
Reference in New Issue