local S = meseconductors.gettext function meseconductors:register_wire_block(mod, node) if minetest.get_modpath(mod) then local offstate = "meseconductors:"..mod.."_"..node local onstate = "meseconductors:"..mod.."_"..node.."_on" local description = minetest.registered_nodes[mod ..":"..node].description .. " (conductable)" local description_on = minetest.registered_nodes[mod ..":"..node].description .. " (conductable - on - NICI)" local textures2 = minetest.registered_nodes[mod ..":"..node].tiles local groups = table.copy(minetest.registered_nodes[mod ..":"..node].groups) if not meseconductors.use_creative_inventory then groups["not_in_creative_inventory"] = 1 end local drawtype = minetest.registered_nodes[mod ..":"..node].drawtype local paramtype = minetest.registered_nodes[mod ..":"..node].paramtype local sounds = minetest.registered_nodes[mod ..":"..node].sounds local sunlight_propagates = minetest.registered_nodes[mod ..":"..node].sunlight_propagates local light_source = minetest.registered_nodes[mod ..":"..node].light_source local mesewire_rules = { {x = 1, y = 0, z = 0}, {x =-1, y = 0, z = 0}, {x = 0, y = 1, z = 0}, {x = 0, y =-1, z = 0}, {x = 0, y = 0, z = 1}, {x = 0, y = 0, z =-1}, } minetest.register_node(offstate, { tiles = textures2, description = description, drawtype = drawtype, paramtype = paramtype, sounds = sounds, sunlight_propagates = sunlight_propagates, light_source = light_source, mesecons = {conductor = { state = "off", onstate = "meseconductors:"..mod.."_"..node.."_on", rules = mesewire_rules }}, groups = groups, }) local textures_on = table.copy(textures2) if meseconductors.highlight_conducting then for i = 1, #textures_on, 1 do local t = textures_on[i] minetest.log("error", "type " .. type(t)) if type(t) == "string" then textures_on[i] = t .."^[brighten" else textures_on[i] = textures2[i] end end end local groups_on = table.copy(groups) --table.insert(groups_on, 1, not_in_creative_inventory) groups_on["not_in_creative_inventory"] = 1 minetest.register_node(onstate, { tiles = textures_on, drop = offstate, description = description_on, drawtype = drawtype, paramtype = paramtype, sounds = sounds, sunlight_propagates = sunlight_propagates, light_source = light_source, mesecons = {conductor = { state = "on", offstate = "meseconductors:"..mod.."_"..node, rules = mesewire_rules }}, groups = groups_on, --groups = {cracky=2,not_in_creative_inventory=1, mesecon = 2}, }) end end local default_nodes = { "wood", "tree", "dirt", "cobble", "desert_cobble", "sand", "desert_sand", "stone", "desert_stone","goldblock", "diamondblock", "jungletree","junglewood", "mossycobble", "obsidian", "obsidian_glass", "glass", "sandstone", "sandstonebrick", "stonebrick", "pine_tree", "pine_wood", "acacia_tree", "acacia_wood", "brick", "cactus", "aspen_tree", "aspen_wood", "snowblock", "gravel", "copperblock", "obsidianbrick", "stone_block", "desert_stone_block", "obsidian_block", "sandstone_block", "dirt_with_grass", "dirt_with_snow", "dirt_with_dry_grass", "clay"} for i in ipairs(default_nodes) do local node = default_nodes[i] meseconductors:register_wire_block( "default", node) end if meseconductors.use_moreblocks then local moreblocks_nodes = { "super_glow_glass", "glow_glass", "iron_stone_bricks", "grey_bricks", "clean_glass", "cactus_brick", "stone_tile", "split_stone_tile", "wood_tile", "wood_tile_full", "cactus_checker", "circle_stone_bricks", "coal_checker", "coal_glass", "coal_stone", "coal_stone_bricks", "iron_checker", "iron_glass", "iron_stone", "plankstone", "split_stone_tile_alt"} for i in ipairs(moreblocks_nodes) do local node = moreblocks_nodes[i] meseconductors:register_wire_block( "moreblocks", node) end end if meseconductors.use_building_blocks then local building_blocks_nodes = { "Adobe", "hardwood", "Tar", "grate", "Marble", "woodglass", "smoothglass"} for i in ipairs(building_blocks_nodes) do local node = building_blocks_nodes[i] meseconductors:register_wire_block( "building_blocks", node) end end if meseconductors.use_quartz then local quartz_nodes = { "block", "chiseled", "pillar" } for i in ipairs(quartz_nodes) do local node = quartz_nodes[i] meseconductors:register_wire_block( "quartz", node) end end if meseconductors.use_glooptest then local glooptest_nodes = { "crystal_glass", "reinforced_crystal_glass", "akalin_crystal_glass", "alatro_crystal_glass", "arol_crystal_glass", "talinite_crystal_glass" } for i in ipairs(glooptest_nodes) do local node = glooptest_nodes[i] meseconductors:register_wire_block( "glooptest", node) end end if meseconductors.use_gloopblocks then local gloopblocks_nodes = { "rainbow_block", "cement", "pavement", "stone_mossy"} for i in ipairs(gloopblocks_nodes) do local node = gloopblocks_nodes[i] meseconductors:register_wire_block( "gloopblocks", node) end end if meseconductors.use_moretrees then local moretrees_nodes = { "beech", "apple_tree", "oak", "sequoia", "birch", "palm", "spruce", "willow", "rubber_tree"} for i in ipairs(moretrees_nodes) do local node = moretrees_nodes[i] meseconductors:register_wire_block( "moretrees", node .. "_trunk") meseconductors:register_wire_block( "moretrees", node .. "_planks") end end if meseconductors.use_technic then local technic_nodes = { "brass_block", "carbon_steel_block", "cast_iron_block", "chromium_block", "concrete", "granite", "lead_block", "marble", "marble_bricks", "zinc_block"} for i in ipairs(technic_nodes) do local node = technic_nodes[i] meseconductors:register_wire_block( "technic", node) end -- not working --meseconductors:register_wire_block( -- "moretrees", -- "rubber_tree_trunk") end if meseconductors.use_ethereal then local ethereal_nodes = { "bamboo_dirt", "banana_trunk", "banana_wood", "birch_trunk", "birch_wood", "bush", "cold_dirt", "crystal_block", "crystal_dirt", "crystal_moss", "dry_dirt", "fiery_dirt", "fiery_moss", "frost_tree", "frost_wood", "gray_dirt", "gray_moss", "green_moss", "grove_dirt", "icebrick", "jungle_dirt", "mushroom", "mushroom_dirt", "mushroom_moss", "mushroom_pore", "mushroom_trunk", "palm_trunk", "palm_wood", "prairie_dirt", "redwood_trunk", "redwood_wood", "scorched_tree", "snowbrick", "willow_trunk", "willow_wood", "yellow_trunk", "yellow_wood"} for i in ipairs(ethereal_nodes) do local node = ethereal_nodes[i] meseconductors:register_wire_block( "ethereal", node) end end if meseconductors.use_moreores then local moreores_nodes = { "silver_block", "tin_block", "mithril_block"} for i in ipairs(moreores_nodes) do local node = moreores_nodes[i] meseconductors:register_wire_block( "moreores", node) end end if meseconductors.use_castle then local castle_nodes = { "pavement_brick", "dungeon_stone", "rubble", "stonewall", "stonewall_corner"} for i in ipairs(castle_nodes) do local node = castle_nodes[i] meseconductors:register_wire_block( "castle", node) end end