From 985401a23d1581e71f762bdaeadfc19734fdf148 Mon Sep 17 00:00:00 2001 From: Kyle <khonkhortisan@gmail.com> Date: Fri, 22 Feb 2013 02:14:38 +0100 Subject: [PATCH] Avoid a nil index crash --- technic/frames.lua | 14 +++++++++++--- 1 files changed, 11 insertions(+), 3 deletions(-) diff --git a/technic/frames.lua b/technic/frames.lua index efae0e5..f555368 100644 --- a/technic/frames.lua +++ b/technic/frames.lua @@ -364,7 +364,6 @@ local node=minetest.env:get_node(pos) local meta=minetest.env:get_meta(pos):to_table() nodelist[#(nodelist)+1]={pos=pos,node=node,meta=meta} - minetest.env:remove_node(pos) end objects={} for _,pos in ipairs(poslist) do @@ -374,8 +373,8 @@ end for _,obj in ipairs(objects) do obj:setpos(addVect(obj:getpos(),vect)) - if obj:get_luaentity().name == "pipeworks:tubed_item" then - le=obj:get_luaentity() + le=obj:get_luaentity() + if le and le.name == "pipeworks:tubed_item" then le.start_pos=addVect(le.start_pos,vect) end end @@ -384,6 +383,15 @@ minetest.env:set_node(npos,n.node) local meta=minetest.env:get_meta(npos) meta:from_table(n.meta) + for __,pos in ipairs(poslist) do + if npos.x==pos.x and npos.y==pos.y and npos.z==pos.z then + table.remove(poslist, __) + break + end + end + end + for __,pos in ipairs(poslist) do + minetest.env:remove_node(pos) end end -- Gitblit v1.8.0