From 85f2692ef04fd11de9b21d10f67e352052eb381e Mon Sep 17 00:00:00 2001
From: RealBadAngel <mk@realbadangel.pl>
Date: Sat, 20 Apr 2013 08:14:12 +0200
Subject: [PATCH] range fix again

---
 technic/frames.lua |   18 +++++++++++++++---
 1 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/technic/frames.lua b/technic/frames.lua
index efae0e5..565a2ef 100644
--- a/technic/frames.lua
+++ b/technic/frames.lua
@@ -97,6 +97,10 @@
 			type = "fixed",
 		fixed=nodeboxes,
 		},
+		selection_box = {
+			type="fixed",
+			fixed={-0.5,-0.5,-0.5,0.5,0.5,0.5}
+		},
 		paramtype = "light",
 		frame=1,
 		drop="technic:frame_111111",
@@ -364,7 +368,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 +377,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 +387,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