SmallJoker
2018-07-19 fb93388f06fe87ee75aaaf04cf6edcf01a26d981
commit | author | age
f4302f 1 --Minetest 0.4.7 mod: concrete 
0ca19d 2 --(c) 2013 by RealBadAngel <mk@realbadangel.pl>
R 3
49e82a 4 local technic = rawget(_G, "technic") or {}
ee0765 5 technic.concrete_posts = {}
S 6
39c41a 7 -- Boilerplate to support localized strings if intllib mod is installed.
41a10a 8 local S = rawget(_G, "intllib") and intllib.Getter() or function(s) return s end
39c41a 9
4a993c 10 for i = 0, 31 do
S 11     minetest.register_alias("technic:concrete_post"..i,
12             "technic:concrete_post")
13 end
14 for i = 32, 63 do
15     minetest.register_alias("technic:concrete_post"..i,
16             "technic:concrete_post_with_platform")
17 end
ee0765 18
68b7bc 19 local steel_ingot
Z 20 if minetest.get_modpath("technic_worldgen") then
21     steel_ingot = "technic:carbon_steel_ingot"
22 else
23     steel_ingot = "default:steel_ingot"
24 end
25
0ca19d 26 minetest.register_craft({
f4302f 27     output = 'technic:rebar 6',
0ca19d 28     recipe = {
68b7bc 29         {'','', steel_ingot},
Z 30         {'',steel_ingot,''},
31         {steel_ingot, '', ''},
0ca19d 32     }
R 33 })
34
35 minetest.register_craft({
f4302f 36     output = 'technic:concrete 5',
0ca19d 37     recipe = {
R 38         {'default:stone','technic:rebar','default:stone'},
39         {'technic:rebar','default:stone','technic:rebar'},
40         {'default:stone','technic:rebar','default:stone'},
41     }
42 })
43
44 minetest.register_craft({
f4302f 45     output = 'technic:concrete_post_platform 6',
0ca19d 46     recipe = {
4a993c 47         {'technic:concrete','technic:concrete_post','technic:concrete'},
0ca19d 48     }
R 49 })
50
51 minetest.register_craft({
4a993c 52     output = 'technic:concrete_post 12',
0ca19d 53     recipe = {
R 54         {'default:stone','technic:rebar','default:stone'},
55         {'default:stone','technic:rebar','default:stone'},
56         {'default:stone','technic:rebar','default:stone'},
4a993c 57     }
0ca19d 58 })
R 59
6055ed 60 minetest.register_craft({
R 61     output = 'technic:blast_resistant_concrete 5',
62     recipe = {
63         {'technic:concrete','technic:composite_plate','technic:concrete'},
64         {'technic:composite_plate','technic:concrete','technic:composite_plate'},
65         {'technic:concrete','technic:composite_plate','technic:concrete'},
66     }
67 })
68
0ca19d 69 minetest.register_craftitem(":technic:rebar", {
39c41a 70     description = S("Rebar"),
0ca19d 71     inventory_image = "technic_rebar.png",
R 72 })
73
74 minetest.register_node(":technic:concrete", {
39c41a 75     description = S("Concrete Block"),
2d86ee 76     tiles = {"technic_concrete_block.png",},
ee0765 77     groups = {cracky=1, level=2, concrete=1},
6055ed 78     sounds = default.node_sound_stone_defaults(),
R 79 })
80
81 minetest.register_node(":technic:blast_resistant_concrete", {
39c41a 82     description = S("Blast-resistant Concrete Block"),
2d86ee 83     tiles = {"technic_blast_resistant_concrete_block.png",},
4a993c 84     groups = {cracky=1, level=3, concrete=1},
0ca19d 85     sounds = default.node_sound_stone_defaults(),
0c144c 86     on_blast = function(pos, intensity)
99bebc 87         if intensity > 9 then
0c144c 88             minetest.remove_node(pos)
99bebc 89             return {"technic:blast_resistant_concrete"}
0c144c 90         end
M 91     end,
0ca19d 92 })
4a993c 93
S 94
95 local box_platform = {-0.5,  0.3,  -0.5,  0.5,  0.5, 0.5}
96 local box_post     = {-0.15, -0.5, -0.15, 0.15, 0.5, 0.15}
6b8011 97 local box_front    = {-0.1,  -0.3, -0.5,  0.1,  0.3, 0}
4a993c 98 local box_back     = {-0.1,  -0.3, 0,     0.1,  0.3, 0.5}
6b8011 99 local box_left     = {-0.5,  -0.3, -0.1,  0,    0.3, 0.1}
4a993c 100 local box_right    = {0,     -0.3, -0.1,  0.5,  0.3, 0.1}
0ca19d 101
R 102 minetest.register_node(":technic:concrete_post_platform", {
39c41a 103     description = S("Concrete Post Platform"),
2d86ee 104     tiles = {"technic_concrete_block.png",},
ee0765 105     groups={cracky=1, level=2},
0ca19d 106     sounds = default.node_sound_stone_defaults(),
R 107     paramtype = "light",
108     drawtype = "nodebox", 
109     node_box = {
110         type = "fixed",
ee0765 111         fixed = {box_platform}
S 112     },
113     on_place = function (itemstack, placer, pointed_thing)
114         local node = minetest.get_node(pointed_thing.under)
4a993c 115         if node.name ~= "technic:concrete_post" then 
ee0765 116             return minetest.item_place_node(itemstack, placer, pointed_thing) 
S 117         end
4a993c 118         minetest.set_node(pointed_thing.under, {name="technic:concrete_post_with_platform"})
ee0765 119         itemstack:take_item()
S 120         placer:set_wielded_item(itemstack)
121         return itemstack
122     end,
123 })
124
125 for platform = 0, 1 do
4a993c 126     local after_dig_node = nil
S 127     if platform == 1 then
128         after_dig_node = function(pos, old_node)
129             old_node.name = "technic:concrete_post"
130             minetest.set_node(pos, old_node)
ee0765 131         end
S 132     end
133
4a993c 134     minetest.register_node(":technic:concrete_post"..(platform == 1 and "_with_platform" or ""), {
39c41a 135         description = S("Concrete Post"),
ee0765 136         tiles = {"technic_concrete_block.png"},
4a993c 137         groups = {cracky=1, level=2, concrete_post=1, not_in_creative_inventory=platform},
ee0765 138         sounds = default.node_sound_stone_defaults(),
4a993c 139         drop = (platform == 1 and "technic:concrete_post_platform" or
S 140                 "technic:concrete_post"),
ee0765 141         paramtype = "light",
S 142         sunlight_propagates = true,
4a993c 143         drawtype = "nodebox",
S 144         connects_to = {"group:concrete", "group:concrete_post"},
ee0765 145         node_box = {
4a993c 146             type = "connected",
S 147             fixed = {box_post, (platform == 1 and box_platform or nil)},
148             connect_front = box_front,
149             connect_back  = box_back,
150             connect_left  = box_left,
151             connect_right = box_right,
ee0765 152         },
S 153         after_dig_node = after_dig_node,
154     })
0defb2 155 end
ee0765 156