local old_itc = technic.is_tier_cable local old_gct = technic.get_cable_tier technic.is_tier_cable = function(name,tier) local itcresult = old_itc(name,tier) if itcresult then return itcresult elseif minetest.registered_nodes[name] and minetest.registered_nodes[name]._origcable then return old_itc(minetest.registered_nodes[name]._origcable,tier) end end technic.get_cable_tier = function(name) local gctresult = old_gct(name) if gctresult then return gctresult elseif minetest.registered_nodes[name] and minetest.registered_nodes[name]._origcable then return old_gct(minetest.registered_nodes[name]._origcable) end end local cables = { ["technic:lv_cable"] = "technic_adminnodes:lv_cable_admin", ["technic:mv_cable"] = "technic_adminnodes:mv_cable_admin", ["technic:hv_cable"] = "technic_adminnodes:hv_cable_admin", } for oldname,newname in pairs(cables) do local def = table.copy(minetest.registered_nodes[oldname]) for group in pairs(def.groups) do if not string.find(group,"technic") then def.groups[group] = nil end end for face,img in ipairs(def.tiles) do def.tiles[face] = img.."^[resize:64x64^(technic_adminnodes_cable_overlay.png^[opacity:128)" end def.groups.not_in_creative_inventory = 1 def.drop = "" def.mod_origin = nil def.description = "Unbreakable "..def.description def.name = nil def._origcable = oldname def.inventory_image = "[combine:32x32:0,0="..def.inventory_image..":15,15=(basic_materials_padlock.png\\^[resize\\:16x16)" minetest.register_node(newname,def) end for _,tier in ipairs({"lv","mv","hv",}) do local metafieldname = string.upper(tier).."_EU_supply" minetest.register_node("technic_adminnodes:generator_"..tier,{ description = "Magical "..string.upper(tier).." Power Supply", paramtype2 = "facedir", on_rotate = minetest.global_exists("screwdriver") and screwdriver.rotate_simple, groups = { not_in_creative_inventory = 1, technic_machine = 1, ["technic_"..tier] = 1, }, tiles = { "technic_"..tier.."_generator_top.png", "technic_machine_bottom.png", "technic_"..tier.."_generator_side.png", "technic_"..tier.."_generator_side.png", "technic_"..tier.."_generator_side.png", "technic_"..tier.."_generator_front.png^technic_adminnodes_generator_overlay.png", }, on_construct = function(pos) local meta = minetest.get_meta(pos) local default = 1000 meta:set_int("amount",default) meta:set_string("infotext","Magical "..string.upper(tier).." Power Supply Has No Network") meta:set_string("formspec","field[amount;EU to generate;${amount}") end, technic_run = function(pos) local meta = minetest.get_meta(pos) local amount = meta:get_int("amount") meta:set_int(string.upper(tier).."_EU_supply",amount) meta:set_string("infotext","Magical "..string.upper(tier).." Power Supply, producing "..technic.EU_string(amount)) end, connect_sides = { "bottom", "back", "left", "right", }, on_receive_fields = function(pos,formname,fields,sender) local name = sender:get_player_name() if minetest.is_protected(pos,name) and not minetest.check_player_privs(name,{protection_bypass=true}) then minetest.record_protection_violation(pos,name) return end local meta = minetest.get_meta(pos) if tonumber(fields.amount) then local newamount = math.min(10^9,math.max(0,math.floor(tonumber(fields.amount)))) meta:set_int("amount",newamount) meta:set_string("infotext","Magical "..string.upper(tier).." Power Supply, producing "..technic.EU_string(newamount)) end end, }) technic.register_machine(string.upper(tier),"technic_adminnodes:generator_"..tier,technic.producer) end