From c687e8cb7b9e624474353b0cc10acc5db14192f8 Mon Sep 17 00:00:00 2001 From: Jordan Snelling <jordach.snelling@gmail.com> Date: Thu, 27 Jun 2013 09:40:03 +0200 Subject: [PATCH] Merge pull request #36 from ObKo/blocks --- technic/frames.lua | 26 +++++++++++++++++--------- 1 files changed, 17 insertions(+), 9 deletions(-) diff --git a/technic/frames.lua b/technic/frames.lua index 0e095bd..7d141dc 100644 --- a/technic/frames.lua +++ b/technic/frames.lua @@ -1,3 +1,5 @@ +frames={} + function get_face(pos,ppos,pvect) ppos={x=ppos.x-pos.x,y=ppos.y-pos.y+1.5,z=ppos.z-pos.z} if pvect.x>0 then @@ -96,6 +98,10 @@ node_box = { 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, @@ -356,8 +362,10 @@ function move_nodes_vect(poslist,vect) for _,pos in ipairs(poslist) do - local npos=addVect(pos,vect) - if minetest.env:get_node(npos).name~="air" and not(pos_in_list(poslist,npos)) then return end + local npos=frames.addVect(pos,vect) + local name = minetest.env:get_node(npos).name + if (name~="air" and minetest.registered_nodes[name].liquidtype=="none") and not(pos_in_list(poslist,npos)) then + return end end nodelist={} for _,pos in ipairs(poslist) do @@ -372,14 +380,14 @@ end 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.start_pos=addVect(le.start_pos,vect) + obj:setpos(frames.addVect(obj:getpos(),vect)) + le=obj:get_luaentity() + if le and le.name == "pipeworks:tubed_item" then + le.start_pos=frames.addVect(le.start_pos,vect) end end for _,n in ipairs(nodelist) do - local npos=addVect(n.pos,vect) + local npos=frames.addVect(n.pos,vect) minetest.env:set_node(npos,n.node) local meta=minetest.env:get_meta(npos) meta:from_table(n.meta) @@ -402,7 +410,7 @@ return c end -function addVect(pos,vect) +function frames.addVect(pos,vect) return {x=pos.x+vect.x,y=pos.y+vect.y,z=pos.z+vect.z} end @@ -415,7 +423,7 @@ function connected(pos,c,adj) for _,vect in ipairs(adj) do - local pos1=addVect(pos,vect) + local pos1=frames.addVect(pos,vect) local nodename=minetest.env:get_node(pos1).name if not(pos_in_list(c,pos1)) and nodename~="air" and (minetest.registered_nodes[nodename].frames_can_connect==nil or -- Gitblit v1.8.0