| | |
| | | |
| | | technic.cables = {} |
| | | local S = technic.getter |
| | | |
| | | technic.cables = {} |
| | | |
| | | function technic.register_cable(tier, size) |
| | | local ltier = string.lower(tier) |
| | |
| | | end |
| | | |
| | | minetest.register_node("technic:"..ltier.."_cable"..id, { |
| | | description = tier.." Cable", |
| | | description = S("%s Cable"):format(tier), |
| | | tiles = {"technic_"..ltier.."_cable.png"}, |
| | | inventory_image = "technic_"..ltier.."_cable_wield.png", |
| | | wield_image = "technic_"..ltier.."_cable_wield.png", |
| | |
| | | type = "fixed", |
| | | fixed = technic.gen_cable_nodebox(x1, y1, z1, x2, y2, z2, size) |
| | | }, |
| | | on_construct = function() |
| | | technic.networks = {} |
| | | end, |
| | | on_destruct = function() |
| | | technic.networks = {} |
| | | end, |
| | | after_place_node = function(pos) |
| | | local node = minetest.get_node(pos) |
| | | technic.update_cables(pos, technic.get_cable_tier(node.name)) |
| | |
| | | end |
| | | end |
| | | |
| | | |
| | | minetest.register_on_placenode(function(pos, node) |
| | | for tier, machine_list in pairs(technic.machines) do |
| | | for machine_name, _ in pairs(machine_list) do |
| | | if node.name == machine_name then |
| | | technic.update_cables(pos, tier, true) |
| | | technic.networks = {} |
| | | return |
| | | end |
| | | if machine_list[node.name] ~= nil then |
| | | technic.update_cables(pos, tier, true) |
| | | technic.networks = {} |
| | | end |
| | | end |
| | | end) |
| | |
| | | |
| | | minetest.register_on_dignode(function(pos, node) |
| | | for tier, machine_list in pairs(technic.machines) do |
| | | for machine_name, _ in pairs(machine_list) do |
| | | if node.name == machine_name then |
| | | technic.update_cables(pos, tier, true) |
| | | technic.networks = {} |
| | | return |
| | | end |
| | | if machine_list[node.name] ~= nil then |
| | | technic.update_cables(pos, tier, true) |
| | | technic.networks = {} |
| | | end |
| | | end |
| | | end) |
| | | |
| | | |
| | | function technic.get_cable_id(links) |
| | | return (links[6] * 1) + (links[5] * 2) |
| | |
| | | function technic.cables_should_connect(pos1, pos2, tier) |
| | | local name = minetest.get_node(pos2).name |
| | | |
| | | if technic.is_tier_cable(name, tier) then |
| | | if name == "technic:switching_station" then |
| | | return pos2.y == pos1.y + 1 and "machine" or false |
| | | elseif name == "technic:supply_converter" then |
| | | return math.abs(pos2.y - pos1.y) == 1 and "machine" or false |
| | | elseif technic.is_tier_cable(name, tier) then |
| | | return "cable" |
| | | elseif technic.machines[tier][name] then |
| | | return "machine" |
| | |
| | | local box_center = {-size, -size, -size, size, size, size} |
| | | local box_y1 = {-size, -size, -size, size, 0.5, size} -- y+ |
| | | local box_x1 = {-size, -size, -size, 0.5, size, size} -- x+ |
| | | local box_z1 = {-size, -size, size, size, size, 0.5} -- z+ |
| | | local box_z1 = {-size, -size, size, size, size, 0.5} -- z+ |
| | | local box_z2 = {-size, -size, -0.5, size, size, size} -- z- |
| | | local box_y2 = {-size, -0.5, -size, size, size, size} -- y- |
| | | local box_x2 = {-0.5, -size, -size, size, size, size} -- x- |