| | |
| | | --Minetest 0.4.6 mod: concrete |
| | | --Minetest 0.4.7 mod: concrete |
| | | --(c) 2013 by RealBadAngel <mk@realbadangel.pl> |
| | | |
| | | minetest.register_craft({ |
| | | output = ':technic:rebar 6', |
| | | output = 'technic:rebar 6', |
| | | recipe = { |
| | | {'','', 'default:steel_ingot'}, |
| | | {'','default:steel_ingot',''}, |
| | |
| | | }) |
| | | |
| | | minetest.register_craft({ |
| | | output = ':technic:concrete 5', |
| | | output = 'technic:concrete 5', |
| | | recipe = { |
| | | {'default:stone','technic:rebar','default:stone'}, |
| | | {'technic:rebar','default:stone','technic:rebar'}, |
| | |
| | | }) |
| | | |
| | | minetest.register_craft({ |
| | | output = ':technic:concrete_post_platform 6', |
| | | output = 'technic:concrete_post_platform 6', |
| | | recipe = { |
| | | {'technic:concrete','technic:concrete_post','technic:concrete'}, |
| | | } |
| | | }) |
| | | |
| | | minetest.register_craft({ |
| | | output = ':technic:concrete_post 12', |
| | | output = 'technic:concrete_post 12', |
| | | recipe = { |
| | | {'default:stone','technic:rebar','default:stone'}, |
| | | {'default:stone','technic:rebar','default:stone'}, |
| | |
| | | local count=0 |
| | | |
| | | for x1 = 0, 1, 1 do --x- |
| | | for x2 = 0, 1, 1 do --x+ |
| | | for z1 = 0, 1, 1 do --z- |
| | | for z2 = 0, 1, 1 do --z+ |
| | | for x2 = 0, 1, 1 do --x+ |
| | | for z1 = 0, 1, 1 do --z- |
| | | for z2 = 0, 1, 1 do --z+ |
| | | |
| | | temp_x1={} temp_x2={} temp_z1={} temp_z2={} |
| | | temp_x1={} temp_x2={} temp_z1={} temp_z2={} |
| | | |
| | | if x1==1 then temp_x1=post_str_x1 end |
| | | if x2==1 then temp_x2=post_str_x2 end |
| | | if z1==1 then temp_z1=post_str_z1 end |
| | | if z2==1 then temp_z2=post_str_z2 end |
| | | if x1==1 then temp_x1=post_str_x1 end |
| | | if x2==1 then temp_x2=post_str_x2 end |
| | | if z1==1 then temp_z1=post_str_z1 end |
| | | if z2==1 then temp_z2=post_str_z2 end |
| | | |
| | | |
| | | minetest.register_node(":technic:concrete_post"..count, { |
| | |
| | | }}, |
| | | |
| | | after_dig_node = function (pos, oldnode, oldmetadata, digger) |
| | | check_post_connections (pos,0) |
| | | check_post_connections (pos,0) |
| | | end, |
| | | }) |
| | | |
| | |
| | | print(dump(x1)) |
| | | oldmetadata.fields["platform"]="0" |
| | | local rule=make_post_rule_number(x1,x2,y1,y2,z1,z2,0) |
| | | print(dump(rule)) |
| | | --print(dump(rule)) |
| | | oldnode.name="technic:concrete_post"..rule |
| | | minetest.env:set_node(pos,oldnode) |
| | | meta = minetest.env:get_meta(pos) |
| | |
| | | |
| | | pos1.x=pos1.x+1 |
| | | if minetest.env:get_meta(pos1):get_int("postlike")==1 then |
| | | x2=mode |
| | | x1=minetest.env:get_meta(pos1):get_int("x1") |
| | | y1=minetest.env:get_meta(pos1):get_int("y1") |
| | | y2=minetest.env:get_meta(pos1):get_int("y2") |
| | | z1=minetest.env:get_meta(pos1):get_int("z1") |
| | | z2=minetest.env:get_meta(pos1):get_int("z2") |
| | | platform=minetest.env:get_meta(pos1):get_int("platform") |
| | | rule=make_post_rule_number(x1,x2,y1,y2,z1,z2,platform) |
| | | hacky_swap_posts(pos1,"technic:concrete_post"..rule) |
| | | meta=minetest.env:get_meta(pos1) |
| | | meta:set_int("x2",x2) |
| | | tempx1=mode |
| | | x2=mode |
| | | x1=minetest.env:get_meta(pos1):get_int("x1") |
| | | y1=minetest.env:get_meta(pos1):get_int("y1") |
| | | y2=minetest.env:get_meta(pos1):get_int("y2") |
| | | z1=minetest.env:get_meta(pos1):get_int("z1") |
| | | z2=minetest.env:get_meta(pos1):get_int("z2") |
| | | platform=minetest.env:get_meta(pos1):get_int("platform") |
| | | rule=make_post_rule_number(x1,x2,y1,y2,z1,z2,platform) |
| | | hacky_swap_posts(pos1,"technic:concrete_post"..rule) |
| | | meta=minetest.env:get_meta(pos1) |
| | | meta:set_int("x2",x2) |
| | | tempx1=mode |
| | | end |
| | | |
| | | pos1.x=pos1.x-2 |
| | | if minetest.env:get_meta(pos1):get_int("postlike")==1 then |
| | | x1=mode |
| | | x2=minetest.env:get_meta(pos1):get_int("x2") |
| | | y1=minetest.env:get_meta(pos1):get_int("y1") |
| | | y2=minetest.env:get_meta(pos1):get_int("y2") |
| | | z1=minetest.env:get_meta(pos1):get_int("z1") |
| | | z2=minetest.env:get_meta(pos1):get_int("z2") |
| | | platform=minetest.env:get_meta(pos1):get_int("platform") |
| | | rule=make_post_rule_number(x1,x2,y1,y2,z1,z2,platform) |
| | | hacky_swap_posts(pos1,"technic:concrete_post"..rule) |
| | | meta=minetest.env:get_meta(pos1) |
| | | meta:set_int("x1",x1) |
| | | tempx2=mode |
| | | x1=mode |
| | | x2=minetest.env:get_meta(pos1):get_int("x2") |
| | | y1=minetest.env:get_meta(pos1):get_int("y1") |
| | | y2=minetest.env:get_meta(pos1):get_int("y2") |
| | | z1=minetest.env:get_meta(pos1):get_int("z1") |
| | | z2=minetest.env:get_meta(pos1):get_int("z2") |
| | | platform=minetest.env:get_meta(pos1):get_int("platform") |
| | | rule=make_post_rule_number(x1,x2,y1,y2,z1,z2,platform) |
| | | hacky_swap_posts(pos1,"technic:concrete_post"..rule) |
| | | meta=minetest.env:get_meta(pos1) |
| | | meta:set_int("x1",x1) |
| | | tempx2=mode |
| | | end |
| | | |
| | | pos1.x=pos1.x+1 |
| | | |
| | | pos1.y=pos1.y+1 |
| | | if minetest.env:get_meta(pos1):get_int("postlike")==1 then |
| | | y2=mode |
| | | x1=minetest.env:get_meta(pos1):get_int("x1") |
| | | x2=minetest.env:get_meta(pos1):get_int("x2") |
| | | y1=minetest.env:get_meta(pos1):get_int("y1") |
| | | z1=minetest.env:get_meta(pos1):get_int("z1") |
| | | z2=minetest.env:get_meta(pos1):get_int("z2") |
| | | platform=minetest.env:get_meta(pos1):get_int("platform") |
| | | rule=make_post_rule_number(x1,x2,y1,y2,z1,z2,platform) |
| | | hacky_swap_posts(pos1,"technic:concrete_post"..rule) |
| | | meta=minetest.env:get_meta(pos1) |
| | | meta:set_int("y2",y2) |
| | | tempy1=mode |
| | | y2=mode |
| | | x1=minetest.env:get_meta(pos1):get_int("x1") |
| | | x2=minetest.env:get_meta(pos1):get_int("x2") |
| | | y1=minetest.env:get_meta(pos1):get_int("y1") |
| | | z1=minetest.env:get_meta(pos1):get_int("z1") |
| | | z2=minetest.env:get_meta(pos1):get_int("z2") |
| | | platform=minetest.env:get_meta(pos1):get_int("platform") |
| | | rule=make_post_rule_number(x1,x2,y1,y2,z1,z2,platform) |
| | | hacky_swap_posts(pos1,"technic:concrete_post"..rule) |
| | | meta=minetest.env:get_meta(pos1) |
| | | meta:set_int("y2",y2) |
| | | tempy1=mode |
| | | end |
| | | |
| | | pos1.y=pos1.y-2 |
| | | if minetest.env:get_meta(pos1):get_int("postlike")==1 then |
| | | y1=mode |
| | | x1=minetest.env:get_meta(pos1):get_int("x1") |
| | | x2=minetest.env:get_meta(pos1):get_int("x2") |
| | | y2=minetest.env:get_meta(pos1):get_int("y2") |
| | | z1=minetest.env:get_meta(pos1):get_int("z1") |
| | | z2=minetest.env:get_meta(pos1):get_int("z2") |
| | | platform=minetest.env:get_meta(pos1):get_int("platform") |
| | | rule=make_post_rule_number(x1,x2,y1,y2,z1,z2,platform) |
| | | hacky_swap_posts(pos1,"technic:concrete_post"..rule) |
| | | meta=minetest.env:get_meta(pos1) |
| | | meta:set_int("y1",y1) |
| | | tempy2=mode |
| | | y1=mode |
| | | x1=minetest.env:get_meta(pos1):get_int("x1") |
| | | x2=minetest.env:get_meta(pos1):get_int("x2") |
| | | y2=minetest.env:get_meta(pos1):get_int("y2") |
| | | z1=minetest.env:get_meta(pos1):get_int("z1") |
| | | z2=minetest.env:get_meta(pos1):get_int("z2") |
| | | platform=minetest.env:get_meta(pos1):get_int("platform") |
| | | rule=make_post_rule_number(x1,x2,y1,y2,z1,z2,platform) |
| | | hacky_swap_posts(pos1,"technic:concrete_post"..rule) |
| | | meta=minetest.env:get_meta(pos1) |
| | | meta:set_int("y1",y1) |
| | | tempy2=mode |
| | | end |
| | | pos1.y=pos1.y+1 |
| | | |
| | | pos1.z=pos1.z+1 |
| | | if minetest.env:get_meta(pos1):get_int("postlike")==1 then |
| | | z2=mode |
| | | x1=minetest.env:get_meta(pos1):get_int("x1") |
| | | x2=minetest.env:get_meta(pos1):get_int("x2") |
| | | y1=minetest.env:get_meta(pos1):get_int("y1") |
| | | y2=minetest.env:get_meta(pos1):get_int("y2") |
| | | z1=minetest.env:get_meta(pos1):get_int("z1") |
| | | platform=minetest.env:get_meta(pos1):get_int("platform") |
| | | rule=make_post_rule_number(x1,x2,y1,y2,z1,z2,platform) |
| | | hacky_swap_posts(pos1,"technic:concrete_post"..rule) |
| | | meta=minetest.env:get_meta(pos1) |
| | | meta:set_int("z2",z2) |
| | | tempz1=mode |
| | | z2=mode |
| | | x1=minetest.env:get_meta(pos1):get_int("x1") |
| | | x2=minetest.env:get_meta(pos1):get_int("x2") |
| | | y1=minetest.env:get_meta(pos1):get_int("y1") |
| | | y2=minetest.env:get_meta(pos1):get_int("y2") |
| | | z1=minetest.env:get_meta(pos1):get_int("z1") |
| | | platform=minetest.env:get_meta(pos1):get_int("platform") |
| | | rule=make_post_rule_number(x1,x2,y1,y2,z1,z2,platform) |
| | | hacky_swap_posts(pos1,"technic:concrete_post"..rule) |
| | | meta=minetest.env:get_meta(pos1) |
| | | meta:set_int("z2",z2) |
| | | tempz1=mode |
| | | end |
| | | pos1.z=pos1.z-2 |
| | | |
| | | if minetest.env:get_meta(pos1):get_int("postlike")==1 then |
| | | z1=mode |
| | | x1=minetest.env:get_meta(pos1):get_int("x1") |
| | | x2=minetest.env:get_meta(pos1):get_int("x2") |
| | | y1=minetest.env:get_meta(pos1):get_int("y1") |
| | | y2=minetest.env:get_meta(pos1):get_int("y2") |
| | | z2=minetest.env:get_meta(pos1):get_int("z2") |
| | | platform=minetest.env:get_meta(pos1):get_int("platform") |
| | | rule=make_post_rule_number(x1,x2,y1,y2,z1,z2,platform) |
| | | hacky_swap_posts(pos1,"technic:concrete_post"..rule) |
| | | meta=minetest.env:get_meta(pos1) |
| | | meta:set_int("z1",z1) |
| | | tempz2=mode |
| | | z1=mode |
| | | x1=minetest.env:get_meta(pos1):get_int("x1") |
| | | x2=minetest.env:get_meta(pos1):get_int("x2") |
| | | y1=minetest.env:get_meta(pos1):get_int("y1") |
| | | y2=minetest.env:get_meta(pos1):get_int("y2") |
| | | z2=minetest.env:get_meta(pos1):get_int("z2") |
| | | platform=minetest.env:get_meta(pos1):get_int("platform") |
| | | rule=make_post_rule_number(x1,x2,y1,y2,z1,z2,platform) |
| | | hacky_swap_posts(pos1,"technic:concrete_post"..rule) |
| | | meta=minetest.env:get_meta(pos1) |
| | | meta:set_int("z1",z1) |
| | | tempz2=mode |
| | | end |
| | | pos1.z=pos1.z+1 |
| | | |
| | | if mode==1 then |
| | | meta=minetest.env:get_meta(pos) |
| | | meta:set_int("x1",tempx1) |
| | |
| | | end |
| | | |
| | | function make_post_rule_number (x1,x2,y1,y2,z1,z2,platform) |
| | | local tempy=y1+y2 |
| | | local tempx=x1+x2 |
| | | local tempz=z1+z2 |
| | | if platform==0 then |
| | | if tempy==0 and tempx==0 and tempz==0 then return 0 end |
| | | if x1==1 and x2==1 and tempz==0 and tempy==0 then return 32 end |
| | | if z1==1 and z2==1 and tempx==0 and tempy==0 then return 33 end |
| | | return z2+z1*2+x2*4+x1*8 |
| | | else |
| | | if tempy==0 and tempx==0 and tempz==0 then return 16 end |
| | | if x1==1 and x2==1 and tempz==0 and tempy==0 then return 34 end |
| | | if z1==1 and z2==1 and tempx==0 and tempy==0 then return 35 end |
| | | return z2+z1*2+x2*4+x1*8+16 |
| | | end |
| | | local tempy=y1+y2 |
| | | local tempx=x1+x2 |
| | | local tempz=z1+z2 |
| | | if platform==0 then |
| | | if tempy==0 and tempx==0 and tempz==0 then return 0 end |
| | | if x1==1 and x2==1 and tempz==0 and tempy==0 then return 32 end |
| | | if z1==1 and z2==1 and tempx==0 and tempy==0 then return 33 end |
| | | return z2+z1*2+x2*4+x1*8 |
| | | else |
| | | if tempy==0 and tempx==0 and tempz==0 then return 16 end |
| | | if x1==1 and x2==1 and tempz==0 and tempy==0 then return 34 end |
| | | if z1==1 and z2==1 and tempx==0 and tempy==0 then return 35 end |
| | | return z2+z1*2+x2*4+x1*8+16 |
| | | end |
| | | end |
| | | |
| | | function hacky_swap_posts(pos,name) |