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 |
|