veikk0
2016-03-30 2258adb2a9b2ec223ea3614a39ecbd59d2d6c948
commit | author | age
ee0765 1
be2f30 2 local S = technic.getter
ee0765 3
83c649 4 local cable_tier = {}
S 5
6 function technic.is_tier_cable(name, tier)
7     return cable_tier[name] == tier
8 end
9
10 function technic.get_cable_tier(name)
11     return cable_tier[name]
12 end
13
14 local function clear_networks()
15     technic.networks = {}
16 end
ee0765 17
S 18 function technic.register_cable(tier, size)
19     local ltier = string.lower(tier)
83c649 20     cable_tier["technic:"..ltier.."_cable"] = tier
ee0765 21
83c649 22     local groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2}
ee0765 23
83c649 24     local node_box = {
S 25         type = "connected",
26         fixed          = {-size, -size, -size, size,  size, size},
27         connect_top    = {-size, -size, -size, size,  0.5,  size}, -- y+
28         connect_bottom = {-size, -0.5,  -size, size,  size, size}, -- y-
29         connect_front  = {-size, -size, -0.5,  size,  size, size}, -- z-
30         connect_back   = {-size, -size,  size, size,  size, 0.5 }, -- z+
31         connect_left   = {-0.5,  -size, -size, size,  size, size}, -- x-
32         connect_right  = {-size, -size, -size, 0.5,   size, size}, -- x+
33     }
ee0765 34
83c649 35     minetest.register_node("technic:"..ltier.."_cable", {
S 36         description = S("%s Cable"):format(tier),
37         tiles = {"technic_"..ltier.."_cable.png"},
38         inventory_image = "technic_"..ltier.."_cable_wield.png",
39         wield_image = "technic_"..ltier.."_cable_wield.png",
40         groups = groups,
41         sounds = default.node_sound_wood_defaults(),
42         drop = "technic:"..ltier.."_cable",
43         paramtype = "light",
44         sunlight_propagates = true,
45         drawtype = "nodebox",
46         node_box = node_box,
47         connects_to = {"technic:"..ltier.."_cable",
48             "group:technic_"..ltier, "group:technic_all_tiers"},
49         on_construct = clear_networks,
50         on_destruct = clear_networks,
51     })
ee0765 52 end
S 53
83c649 54
S 55 local function clear_nets_if_machine(pos, node)
ee0765 56     for tier, machine_list in pairs(technic.machines) do
18cae7 57         if machine_list[node.name] ~= nil then
83c649 58             return clear_networks()
ee0765 59         end
S 60     end
61 end
62
83c649 63 minetest.register_on_placenode(clear_nets_if_machine)
S 64 minetest.register_on_dignode(clear_nets_if_machine)
ee0765 65