From 20fa65820934f3f51bc9ce226b42464efb33c6b5 Mon Sep 17 00:00:00 2001 From: argyle Date: Mon, 28 Jan 2019 02:14:12 -0500 Subject: [PATCH] Crash fix. Crashes intermittently while digging burning trees(?) Indexing a nil value in init.lua, first at 207 and again at 211. --- init.lua | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/init.lua b/init.lua index 2fc41b9..8d41d19 100644 --- a/init.lua +++ b/init.lua @@ -201,14 +201,20 @@ local function after_dig_node(pos, oldnode, oldmetadata, digger) -- Player placed node? if oldnode.param1 ~= 0 then return end remove_steps(pos) - -- don't remove hole tree? + -- don't remove whole tree? if not digger or digger:get_player_control().sneak then return end + -- Get tree parameters + local height_min = 3 + local radius = 0 + local registered_tree = lTrees[oldnode.name] + if registered_tree then + height_min = registered_tree.height_min or height_min + radius = registered_tree.radius or radius + end -- Or root nodes? - local height_min = lTrees[oldnode.name].height_min or 3 local test_pos = {x=pos.x, y=pos.y+height_min-1, z=pos.z} if minetest.get_node(test_pos).name ~= oldnode.name then return end -- Fell the tree - local radius = lTrees[oldnode.name].radius or 0 local num_nodes = remove_tree(pos, radius, oldnode.name) add_to_inventory(digger, oldnode.name, num_nodes, pos) add_wear(digger, oldnode, num_nodes)