From 478407f0a3134bf82837af6ed8cacf12406a49ef Mon Sep 17 00:00:00 2001 From: RealBadAngel Date: Wed, 6 Feb 2013 15:34:01 +0100 Subject: [PATCH] Nore's frames code with nodebox frames --- technic/frames.lua | 430 +++++++++++++++++++++++++++++ technic/init.lua | 2 + technic/textures/technic_frame.png | Bin 0 -> 32199 bytes 3 files changed, 432 insertions(+) create mode 100644 technic/frames.lua create mode 100644 technic/textures/technic_frame.png diff --git a/technic/frames.lua b/technic/frames.lua new file mode 100644 index 0000000..f149409 --- /dev/null +++ b/technic/frames.lua @@ -0,0 +1,430 @@ + minetest.register_node("technic:wall", { + description = description, + drawtype = "nodebox", + tiles = {"default_wood.png"}, + paramtype = "light", + --paramtype2 = "facedir", + sunlight_propagates = true, + is_ground_content = true, + node_box = { + type = "fixed", + --fixed = {-0.5, -0.5, 0.25, 0.5, 0.5, 0.5}, + fixed={ + {-0.5, -0.5, -0.5, -0.4, 0.5, -0.4}, + {-0.4, -0.5, 0.3, -0.3, 0.5, 0.4}, + {0.3, -0.5, 0.3, 0.4, 0.5,0.4}, + {0.3, -0.5, -0.3, 0.4, 0.5,-0.4}, + {-0.3, -0.35, -0.3, 0.3, -0.2,-0.25}, + {-0.3, 0.2, -0.3, 0.3, 0.35,-0.25}, + {-0.3, -0.35, 0.25, 0.3, -0.2,0.3}, + {-0.3, 0.2, 0.25, 0.3, 0.35,0.3}, + {-0.3, -0.35, -0.25, -0.25, -0.2,0.25}, + {-0.3, 0.2, -0.25, -0.25, 0.35,0.25}, + {0.25, -0.35, -0.25, 0.3, -0.2,0.25}, + {0.25, 0.2, -0.25, 0.3, 0.35,0.25}, + },}, + sounds = default.node_sound_stone_defaults(), + }) + +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 + local t=(-0.5-ppos.x)/pvect.x + local y_int=ppos.y+t*pvect.y + local z_int=ppos.z+t*pvect.z + if y_int>-0.4 and y_int<0.4 and z_int>-0.4 and z_int<0.4 then return 1 end + elseif pvect.x<0 then + local t=(0.5-ppos.x)/pvect.x + local y_int=ppos.y+t*pvect.y + local z_int=ppos.z+t*pvect.z + if y_int>-0.4 and y_int<0.4 and z_int>-0.4 and z_int<0.4 then return 2 end + end + if pvect.y>0 then + local t=(-0.5-ppos.y)/pvect.y + local x_int=ppos.x+t*pvect.x + local z_int=ppos.z+t*pvect.z + if x_int>-0.4 and x_int<0.4 and z_int>-0.4 and z_int<0.4 then return 3 end + elseif pvect.y<0 then + local t=(0.5-ppos.y)/pvect.y + local x_int=ppos.x+t*pvect.x + local z_int=ppos.z+t*pvect.z + if x_int>-0.4 and x_int<0.4 and z_int>-0.4 and z_int<0.4 then return 4 end + end + if pvect.z>0 then + local t=(-0.5-ppos.z)/pvect.z + local x_int=ppos.x+t*pvect.x + local y_int=ppos.y+t*pvect.y + if x_int>-0.4 and x_int<0.4 and y_int>-0.4 and y_int<0.4 then return 5 end + elseif pvect.z<0 then + local t=(0.5-ppos.z)/pvect.z + local x_int=ppos.x+t*pvect.x + local y_int=ppos.y+t*pvect.y + if x_int>-0.4 and x_int<0.4 and y_int>-0.4 and y_int<0.4 then return 6 end + end +end + + +for xm=0,1 do +for xp=0,1 do +for ym=0,1 do +for yp=0,1 do +for zm=0,1 do +for zp=0,1 do + +local a=8/16 +local b=7/16 +local nodeboxes= { + { -a, -a, -a, -b, a, -b }, + { -a, -a, b, -b, a, a }, + { b, -a, b, a, a, a }, + { b, -a, -a, a, a, -b }, + + { -b, b, -a, b, a, -b }, + { -b, -a, -a, b, -b, -b }, + + { -b, b, b, b, a, a }, + { -b, -a, b, b, -b, a }, + + { b, b, -b, a, a, b }, + { b, -a, -b, a, -b, b }, + + { -a, b, -b, -b, a, b }, + { -a, -a, -b, -b, -b, b }, + } + + if yp==0 then + table.insert(nodeboxes, {-b,b,-b, b,a,b}) + end + if ym==0 then + table.insert(nodeboxes, {-b,-a,-b, b,-b,b}) + end + if xp==0 then + table.insert(nodeboxes, {b,b,b,a,-b,-b}) + end + if xm==0 then + table.insert(nodeboxes, {-a,-b,-b,-b,b,b}) + end + if zp==0 then + table.insert(nodeboxes, {-b,-b,b, b,b,a}) + end + if zm==0 then + table.insert(nodeboxes, {-b,-b,-a, b,b,-b}) + end + + local nameext=tostring(xm)..tostring(xp)..tostring(ym)..tostring(yp)..tostring(zm)..tostring(zp) + local groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2} + if nameext~="111111" then groups.not_in_creative_inventory=1 end + + + minetest.register_node("technic:frame_"..nameext,{ + description = "Frame", + tiles = {"technic_frame.png"}, + groups=groups, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed=nodeboxes, + }, + paramtype = "light", + frame=1, + drop="technic:frame_111111", + frame_connect_all=function(pos) + local nodename=minetest.env:get_node(pos).name + l2={} + l1={{x=-1,y=0,z=0},{x=1,y=0,z=0},{x=0,y=-1,z=0},{x=0,y=1,z=0},{x=0,y=0,z=-1},{x=0,y=0,z=1}} + for i,dir in ipairs(l1) do + if string.sub(nodename,-7+i,-7+i)=="1" then + l2[#(l2)+1]=dir + end + end + return l2 + end, + on_punch=function(pos,node,puncher) + local ppos=puncher:getpos() + local pvect=puncher:get_look_dir() + local pface=get_face(pos,ppos,pvect) + if pface==nil then return end + local nodename=node.name + local newstate=tostring(1-tonumber(string.sub(nodename,-7+pface,-7+pface))) + if pface<=5 then + nodename=string.sub(nodename,1,-7+pface-1)..newstate..string.sub(nodename,-7+pface+1) + else + nodename=string.sub(nodename,1,-2)..newstate + end + node.name=nodename + minetest.env:set_node(pos,node) + end + }) + +end +end +end +end +end +end + + +function frame_motor1_on(pos,node) + local npos={x=pos.x,y=pos.y+1,z=pos.z} + local nnode=minetest.env:get_node(npos) + if node.param2==0 then + dir={x=1,y=0,z=0} + elseif node.param2==1 then + dir={x=0,y=0,z=-1} + elseif node.param2==2 then + dir={x=-1,y=0,z=0} + else + dir={x=0,y=0,z=1} + end + if minetest.registered_nodes[nnode.name].frame==1 then + local connected_nodes=get_connected_nodes(npos) + move_nodes_vect(connected_nodes,dir) + end +end + +function frame_motor2_on(pos,node) + local npos={x=pos.x,y=pos.y-1,z=pos.z} + local nnode=minetest.env:get_node(npos) + if node.param2==0 then + dir={x=1,y=0,z=0} + elseif node.param2==1 then + dir={x=0,y=0,z=-1} + elseif node.param2==2 then + dir={x=-1,y=0,z=0} + else + dir={x=0,y=0,z=1} + end + if minetest.registered_nodes[nnode.name].frame==1 then + local connected_nodes=get_connected_nodes(npos) + move_nodes_vect(connected_nodes,dir) + end +end + +function frame_motor3_on(pos,node) + local npos={x=pos.x,y=pos.y,z=pos.z} + if node.param2==0 then + dir={x=1,y=0,z=0} + npos.z=npos.z-1 + elseif node.param2==1 then + dir={x=0,y=0,z=-1} + npos.x=npos.x-1 + elseif node.param2==2 then + dir={x=-1,y=0,z=0} + npos.z=npos.z+1 + else + dir={x=0,y=0,z=1} + npos.x=npos.x+1 + end + local nnode=minetest.env:get_node(npos) + if minetest.registered_nodes[nnode.name].frame==1 then + local connected_nodes=get_connected_nodes(npos) + move_nodes_vect(connected_nodes,dir) + end +end + +function frame_motor4_on(pos,node) + local npos={x=pos.x,y=pos.y,z=pos.z} + if node.param2==0 then + dir={x=-1,y=0,z=0} + npos.z=npos.z-1 + elseif node.param2==1 then + dir={x=0,y=0,z=1} + npos.x=npos.x-1 + elseif node.param2==2 then + dir={x=1,y=0,z=0} + npos.z=npos.z+1 + else + dir={x=0,y=0,z=-1} + npos.x=npos.x+1 + end + local nnode=minetest.env:get_node(npos) + if minetest.registered_nodes[nnode.name].frame==1 then + local connected_nodes=get_connected_nodes(npos) + move_nodes_vect(connected_nodes,dir) + end +end + +function frame_motor5_on(pos,node) + local npos={x=pos.x,y=pos.y,z=pos.z} + if node.param2==0 then + npos.z=npos.z-1 + elseif node.param2==1 then + npos.x=npos.x-1 + elseif node.param2==2 then + npos.z=npos.z+1 + else + npos.x=npos.x+1 + end + dir={x=0,y=1,z=0} + local nnode=minetest.env:get_node(npos) + if minetest.registered_nodes[nnode.name].frame==1 then + local connected_nodes=get_connected_nodes(npos) + move_nodes_vect(connected_nodes,dir) + end +end + +function frame_motor6_on(pos,node) + local npos={x=pos.x,y=pos.y,z=pos.z} + if node.param2==0 then + npos.z=npos.z-1 + elseif node.param2==1 then + npos.x=npos.x-1 + elseif node.param2==2 then + npos.z=npos.z+1 + else + npos.x=npos.x+1 + end + dir={x=0,y=-1,z=0} + local nnode=minetest.env:get_node(npos) + if minetest.registered_nodes[nnode.name].frame==1 then + local connected_nodes=get_connected_nodes(npos) + move_nodes_vect(connected_nodes,dir) + end +end + + +minetest.register_node("technic:frame_motor1",{ + description = "Frame motor 1", + tiles = {"pipeworks_filter_top.png", "technic_lv_cable.png", "technic_lv_cable.png", + "technic_lv_cable.png", "technic_lv_cable.png", "technic_lv_cable.png"}, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,mesecon=2}, + paramtype2 = "facedir", + mesecons={effector={action_on=frame_motor1_on}}, + frames_can_connect=function(pos,dir) + return dir.y~=-1 + end +}) + +minetest.register_node("technic:frame_motor2",{ + description = "Frame motor 2", + tiles = {"technic_lv_cable.png", "pipeworks_filter_top.png", "technic_lv_cable.png", + "technic_lv_cable.png", "technic_lv_cable.png", "technic_lv_cable.png"}, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,mesecon=2}, + paramtype2 = "facedir", + mesecons={effector={action_on=frame_motor2_on}}, + frames_can_connect=function(pos,dir) + return dir.y~=1 + end +}) + +minetest.register_node("technic:frame_motor3",{ + description = "Frame motor 3", + tiles = {"technic_lv_cable.png", "technic_lv_cable.png", "technic_lv_cable.png", + "technic_lv_cable.png", "technic_lv_cable.png", "pipeworks_filter_top.png"}, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,mesecon=2}, + paramtype2 = "facedir", + mesecons={effector={action_on=frame_motor3_on}}, + frames_can_connect=function(pos,dir) + local node=minetest.env:get_node(pos) + if node.param2==0 then return dir.z~=1 + elseif node.param2==1 then return dir.x~=1 + elseif node.param2==2 then return dir.z~=-1 + else return dir.x~=-1 end + end +}) + +minetest.register_node("technic:frame_motor4",{ + description = "Frame motor 4", + tiles = {"technic_lv_cable.png", "technic_lv_cable.png", "technic_lv_cable.png", + "technic_lv_cable.png", "technic_lv_cable.png", "pipeworks_filter_top.png"}, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,mesecon=2}, + paramtype2 = "facedir", + mesecons={effector={action_on=frame_motor4_on}}, + frames_can_connect=function(pos,dir) + local node=minetest.env:get_node(pos) + if node.param2==0 then return dir.z~=1 + elseif node.param2==1 then return dir.x~=1 + elseif node.param2==2 then return dir.z~=-1 + else return dir.x~=-1 end + end +}) + +minetest.register_node("technic:frame_motor5",{ + description = "Frame motor 5", + tiles = {"technic_lv_cable.png", "technic_lv_cable.png", "technic_lv_cable.png", + "technic_lv_cable.png", "technic_lv_cable.png", "pipeworks_filter_top.png"}, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,mesecon=2}, + paramtype2 = "facedir", + mesecons={effector={action_on=frame_motor5_on}}, + frames_can_connect=function(pos,dir) + local node=minetest.env:get_node(pos) + if node.param2==0 then return dir.z~=1 + elseif node.param2==1 then return dir.x~=1 + elseif node.param2==2 then return dir.z~=-1 + else return dir.x~=-1 end + end +}) + +minetest.register_node("technic:frame_motor6",{ + description = "Frame motor 6", + tiles = {"technic_lv_cable.png", "technic_lv_cable.png", "technic_lv_cable.png", + "technic_lv_cable.png", "technic_lv_cable.png", "pipeworks_filter_top.png"}, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,mesecon=2}, + paramtype2 = "facedir", + mesecons={effector={action_on=frame_motor6_on}}, + frames_can_connect=function(pos,dir) + local node=minetest.env:get_node(pos) + if node.param2==0 then return dir.z~=1 + elseif node.param2==1 then return dir.x~=1 + elseif node.param2==2 then return dir.z~=-1 + else return dir.x~=-1 end + end +}) + + + + +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 + end + nodelist={} + for _,pos in ipairs(poslist) do + 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 + for _,n in ipairs(nodelist) do + local npos=addVect(n.pos,vect) + minetest.env:set_node(npos,n.node) + local meta=minetest.env:get_meta(npos) + meta:from_table(n.meta) + end +end + +function get_connected_nodes(pos) + c={pos} + local nodename=minetest.env:get_node(pos).name + connected(pos,c,minetest.registered_nodes[nodename].frame_connect_all(pos)) + return c +end + +function addVect(pos,vect) + return {x=pos.x+vect.x,y=pos.y+vect.y,z=pos.z+vect.z} +end + +function pos_in_list(l,pos) + for _,p in ipairs(l) do + if p.x==pos.x and p.y==pos.y and p.z==pos.z then return true end + end + return false +end + +function connected(pos,c,adj) + for _,vect in ipairs(adj) do + local pos1=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 + minetest.registered_nodes[nodename].frames_can_connect(pos1,vect)) then + c[#(c)+1]=pos1 + if minetest.registered_nodes[nodename].frame==1 then + local adj=minetest.registered_nodes[nodename].frame_connect_all(pos1) + connected(pos1,c,adj) + end + end + end +end + diff --git a/technic/init.lua b/technic/init.lua index 249757a..0706b0f 100644 --- a/technic/init.lua +++ b/technic/init.lua @@ -57,6 +57,8 @@ dofile(modpath.."/injector.lua") dofile(modpath.."/node_breaker.lua") dofile(modpath.."/deployer.lua") dofile(modpath.."/constructor.lua") +dofile(modpath.."/frames.lua") + if enable_item_drop then dofile(modpath.."/item_drop.lua") end if enable_item_pickup then dofile(modpath.."/item_pickup.lua") end diff --git a/technic/textures/technic_frame.png b/technic/textures/technic_frame.png new file mode 100644 index 0000000000000000000000000000000000000000..49981202b43868f83fc118f3fd5c9d78ad999f4a GIT binary patch literal 32199 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