From 38f74c845195e5661c690ebc9049e8a5267d2b75 Mon Sep 17 00:00:00 2001 From: taikedz Date: Fri, 29 Oct 2021 17:15:09 +0100 Subject: [PATCH] Fix to workaround #13 when a node seems undefined --- init.lua | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/init.lua b/init.lua index 911b8cd..9b04200 100644 --- a/init.lua +++ b/init.lua @@ -90,15 +90,22 @@ function rspawn:newspawn(pos, radius) under = minetest.registered_nodes[under] over = minetest.registered_nodes[over] - if under.walkable - and not over.walkable - and not minetest.is_protected(anode, "") - and not (under.groups and under.groups.leaves ) -- no spawning on treetops! - and daylight_above(7, anode) then - if under.buildable_to then - validnodes[#validnodes+1] = {x=anode.x, y=anode.y-1, z=anode.z} - else - validnodes[#validnodes+1] = anode + if under == nil or over == nil then + -- `under` or `over` could be nil if a mod that defined that node was removed. + -- Not something this mod can resolve, and so we just ignore it. + rspawn:debug("Found an undefined node around "..minetest.pos_to_string(anode)) + + else + if under.walkable + and not over.walkable + and not minetest.is_protected(anode, "") + and not (under.groups and under.groups.leaves ) -- no spawning on treetops! + and daylight_above(7, anode) then + if under.buildable_to then + validnodes[#validnodes+1] = {x=anode.x, y=anode.y-1, z=anode.z} + else + validnodes[#validnodes+1] = anode + end end end end