local S = minetest.get_translator("mcl_blackstone") local N = function(s) return s end local LIGHT_TORCH = 10 stairs = {} --nodes local mod_screwdriver = minetest.get_modpath("screwdriver") ~= nil local on_rotate if mod_screwdriver then on_rotate = screwdriver.rotate_3way end local alldirs = { vector.new(1,0,0), vector.new(0,1,0), vector.new(0,0,1), vector.new(-1,0,0), vector.new(0,-1,0), vector.new(0,0,-1) } --Blocks minetest.register_node("mcl_blackstone:blackstone", { description = S("Blackstone"), tiles = {"mcl_blackstone.png"}, sounds = mcl_sounds.node_sound_stone_defaults(), is_ground_content = false, groups = {cracky = 3, pickaxey=2, material_stone=1}, _mcl_blast_resistance = 2, _mcl_hardness = 2, }) minetest.register_node("mcl_blackstone:blackstone_gilded", { description = S("Gilded Blackstone"), tiles = {"mcl_blackstone.png^mcl_blackstone_gilded_side.png"}, sounds = mcl_sounds.node_sound_stone_defaults(), is_ground_content = false, groups = {cracky = 3, pickaxey=2, material_stone=1, xp=1}, drop = { max_items = 1, items = { {items = {'mcl_core:gold_nugget 2'},rarity = 5}, {items = {'mcl_core:gold_nugget 3'},rarity = 5}, {items = {'mcl_core:gold_nugget 4'},rarity = 5}, {items = {'mcl_core:gold_nugget 5'},rarity = 5}, {items = {'mcl_blackstone:blackstone_gilded'}, rarity = 8}, } }, _mcl_blast_resistance = 2, _mcl_hardness = 2, _mcl_silk_touch_drop = true, _mcl_fortune_drop = mcl_core.fortune_drop_ore, }) minetest.register_node("mcl_blackstone:nether_gold", { description = S("Nether Gold Ore"), tiles = {"mcl_nether_netherrack.png^mcl_blackstone_gilded_side.png"}, sounds = mcl_sounds.node_sound_stone_defaults(), is_ground_content = false, groups = {cracky = 3, pickaxey=2, material_stone=1, xp=1}, drop = { max_items = 1, items = { {items = {'mcl_core:gold_nugget 2'},rarity = 5}, {items = {'mcl_core:gold_nugget 3'},rarity = 5}, {items = {'mcl_core:gold_nugget 4'},rarity = 5}, {items = {'mcl_core:gold_nugget 5'},rarity = 5}, {items = {'mcl_blackstone:nether_gold'}, rarity = 8}, } }, _mcl_blast_resistance = 2, _mcl_hardness = 2, _mcl_silk_touch_drop = true, _mcl_fortune_drop = mcl_core.fortune_drop_ore, }) minetest.register_node("mcl_blackstone:basalt_polished", { description = S("Polished Basalt"), tiles = {"mcl_blackstone_basalt_top_polished.png", "mcl_blackstone_basalt_top_polished.png", "mcl_blackstone_basalt_side_polished.png"}, sounds = mcl_sounds.node_sound_stone_defaults(), paramtype2 = "facedir", on_place = mcl_util.rotate_axis, on_rotate = on_rotate, is_ground_content = false, groups = {cracky = 3, pickaxey=2, material_stone=1}, _mcl_blast_resistance = 2, _mcl_hardness = 2, }) minetest.register_node("mcl_blackstone:basalt", { description = S("Basalt"), tiles = {"mcl_blackstone_basalt_top.png", "mcl_blackstone_basalt_top.png", "mcl_blackstone_basalt_side.png"}, sounds = mcl_sounds.node_sound_stone_defaults(), paramtype2 = "facedir", on_place = mcl_util.rotate_axis, on_rotate = on_rotate, is_ground_content = false, groups = {cracky = 3, pickaxey=2, material_stone=1}, _mcl_blast_resistance = 2, _mcl_hardness = 2, }) minetest.register_node("mcl_blackstone:blackstone_polished", { description = S("Polished Blackstone"), tiles = {"mcl_blackstone_polished.png"}, sounds = mcl_sounds.node_sound_stone_defaults(), is_ground_content = false, groups = {cracky = 3, pickaxey=2, material_stone=1}, _mcl_blast_resistance = 2, _mcl_hardness = 2, }) minetest.register_node("mcl_blackstone:blackstone_chiseled_polished", { description = S("Chiseled Polished Blackstone"), tiles = {"mcl_blackstone_chiseled_polished.png"}, sounds = mcl_sounds.node_sound_stone_defaults(), is_ground_content = false, groups = {cracky = 3, pickaxey=2, material_stone=1}, _mcl_blast_resistance = 2, _mcl_hardness = 2, }) minetest.register_node("mcl_blackstone:blackstone_brick_polished", { description = S("Polished Blackstone Bricks"), tiles = {"mcl_blackstone_polished_bricks.png"}, sounds = mcl_sounds.node_sound_stone_defaults(), is_ground_content = false, groups = {cracky = 3, pickaxey=2, material_stone=1}, _mcl_blast_resistance = 2, _mcl_hardness = 2, }) minetest.register_node("mcl_blackstone:quartz_brick", { description = S("Quartz Bricks"), tiles = {"mcl_backstone_quartz_bricks.png"}, sounds = mcl_sounds.node_sound_stone_defaults(), is_ground_content = false, sounds = mcl_sounds.node_sound_stone_defaults(), groups = {cracky = 3, pickaxey=2, material_stone=1}, _mcl_blast_resistance = 2, _mcl_hardness = 2, }) minetest.register_node("mcl_blackstone:soul_soil", { description = S("Soul Soil"), tiles = {"mcl_blackstone_soul_soil.png"}, is_ground_content = false, sounds = mcl_sounds.node_sound_sand_defaults(), groups = {cracky = 3, handy=1, shovely=1}, _mcl_blast_resistance = 0.5, _mcl_hardness = 0.5, }) minetest.register_node("mcl_blackstone:soul_fire", { description = S("Eternal Soul Fire"), _doc_items_longdesc = minetest.registered_nodes["mcl_fire:eternal_fire"]._doc_items_longdesc , drawtype = "firelike", tiles = { { name = "soul_fire_basic_flame_animated.png", animation = { type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 1 }, }, }, inventory_image = "soul_fire_basic_flame.png", paramtype = "light", light_source = 10, walkable = false, buildable_to = true, sunlight_propagates = true, damage_per_second = 2, _mcl_node_death_message = minetest.registered_nodes["mcl_fire:fire"]._mcl_node_death_message, groups = {fire = 1, dig_immediate = 3, not_in_creative_inventory = 1, dig_by_piston = 1, destroys_items = 1, set_on_fire=8}, floodable = true, on_flood = function(pos, oldnode, newnode) if minetest.get_item_group(newnode.name, "water") ~= 0 then minetest.sound_play("fire_extinguish_flame", {pos = pos, gain = 0.25, max_hear_distance = 16}, true) end end, on_construct=function(pos) local under = minetest.get_node(vector.offset(pos,0,-1,0)).name if under ~= "mcl_nether:soul_sand" and under ~= "mcl_blackstone:soul_soil" then minetest.swap_node(pos, {name = "air"}) end end }) local old_onconstruct=minetest.registered_nodes["mcl_fire:fire"].on_construct minetest.registered_nodes["mcl_fire:fire"].on_construct=function(pos) local under = minetest.get_node(vector.offset(pos,0,-1,0)).name if under == "mcl_nether:soul_sand" or under == "mcl_blackstone:soul_soil" then minetest.swap_node(pos, {name = "mcl_blackstone:soul_fire"}) end old_onconstruct(pos) end --slabs/stairs mcl_stairs.register_stair_and_slab_simple("blackstone", "mcl_blackstone:blackstone", "Blackstone Stair", "Blackstone Slab", "Double Blackstone Slab") mcl_stairs.register_stair_and_slab_simple("blackstone_polished", "mcl_blackstone:blackstone_polished", "Polished Blackstone Stair", "Polished Blackstone Slab", "Polished Double Blackstone Slab") mcl_stairs.register_stair_and_slab_simple("blackstone_chiseled_polished", "mcl_blackstone:blackstone_chiseled_polished", "Polished Chiseled Blackstone Stair", "Chiseled Polished Blackstone Slab", "Double Polished Chiseled Blackstone Slab") mcl_stairs.register_stair_and_slab_simple("blackstone_brick_polished", "mcl_blackstone:blackstone_brick_polished", "Polished Blackstone Brick Stair", "Polished Blackstone Brick Slab", "Double Polished Blackstone Brick Slab") --Wall mcl_walls.register_wall("mcl_blackstone:wall", S("Blackstone Wall"), "mcl_blackstone:blackstone") --lavacooling minetest.register_abm({ label = "Lava cooling (basalt)", nodenames = {"group:lava"}, neighbors = {"mcl_core:ice"}, interval = 1, chance = 1, action = function(pos, node, active_object_count, active_object_count_wider) local water = minetest.find_nodes_in_area({x=pos.x-1, y=pos.y-1, z=pos.z-1}, {x=pos.x+1, y=pos.y+1, z=pos.z+1}, "mcl_core:ice") local lavatype = minetest.registered_nodes[node.name].liquidtype for w=1, #water do local waternode = minetest.get_node(water[w]) local watertype = minetest.registered_nodes[waternode.name].liquidtype if water[w].y < pos.y and water[w].x == pos.x and water[w].z == pos.z then minetest.set_node(water[w], {name="mcl_blackstone:basalt"}) elseif lavatype == "flowing" and water[w].y == pos.y and (water[w].x == pos.x or water[w].z == pos.z) then minetest.set_node(pos, {name="mcl_blackstone:basalt"}) elseif lavatype == "flowing" and water[w].y > pos.y and water[w].x == pos.x and water[w].z == pos.z then minetest.set_node(pos, {name="mcl_blackstone:basalt"}) end end end, }) minetest.register_abm({ label = "Lava cooling (blackstone)", nodenames = {"group:lava"}, neighbors = {"mcl_core:packed_ice"}, interval = 1, chance = 1, action = function(pos, node, active_object_count, active_object_count_wider) local water = minetest.find_nodes_in_area({x=pos.x-1, y=pos.y-1, z=pos.z-1}, {x=pos.x+1, y=pos.y+1, z=pos.z+1}, "mcl_core:packed_ice") local lavatype = minetest.registered_nodes[node.name].liquidtype for w=1, #water do local waternode = minetest.get_node(water[w]) local watertype = minetest.registered_nodes[waternode.name].liquidtype if water[w].y < pos.y and water[w].x == pos.x and water[w].z == pos.z then minetest.set_node(water[w], {name="mcl_blackstone:blackstone"}) elseif lavatype == "flowing" and water[w].y == pos.y and (water[w].x == pos.x or water[w].z == pos.z) then minetest.set_node(pos, {name="mcl_blackstone:blackstone"}) elseif lavatype == "flowing" and water[w].y > pos.y and water[w].x == pos.x and water[w].z == pos.z then minetest.set_node(pos, {name="mcl_blackstone:blackstone"}) end end end, }) --crafting minetest.register_craft({ output = 'mcl_blackstone:blackstone_polished 4', recipe = { {'mcl_blackstone:blackstone','mcl_blackstone:blackstone'}, {'mcl_blackstone:blackstone','mcl_blackstone:blackstone'}, } }) minetest.register_craft({ output = 'mcl_blackstone:basalt_polished 4', recipe = { {'mcl_blackstone:basalt','mcl_blackstone:basalt'}, {'mcl_blackstone:basalt','mcl_blackstone:basalt'}, } }) minetest.register_craft({ output = 'mcl_blackstone:blackstone_chiseled_polished 2', recipe = { {'mcl_blackstone:blackstone_polished'}, {'mcl_blackstone:blackstone_polished'}, } }) minetest.register_craft({ output = 'mcl_blackstone:blackstone_brick_polished 4', recipe = { {'mcl_blackstone:blackstone_polished','mcl_blackstone:blackstone_polished'}, {'mcl_blackstone:blackstone_polished','mcl_blackstone:blackstone_polished'}, } }) minetest.register_craft({ output = 'mcl_tools:pick_stone', recipe = { {'mcl_blackstone:blackstone', 'mcl_blackstone:blackstone', 'mcl_blackstone:blackstone'}, {'', 'mcl_core:stick', ''}, {'', 'mcl_core:stick', ''}, } }) minetest.register_craft({ output = 'mcl_tools:axe_stone', recipe = { {'mcl_blackstone:blackstone', 'mcl_blackstone:blackstone'}, {'mcl_blackstone:blackstone', 'mcl_core:stick'}, {'', 'mcl_core:stick'}, } }) minetest.register_craft({ output = 'mcl_tools:axe_stone', recipe = { {'mcl_blackstone:blackstone', 'mcl_blackstone:blackstone'}, {'mcl_core:stick', 'mcl_blackstone:blackstone'}, {'', 'mcl_core:stick'}, } }) minetest.register_craft({ output = 'mcl_tools:shovel_stone', recipe = { {'mcl_blackstone:blackstone'}, {'mcl_core:stick'}, {'mcl_core:stick'}, } }) minetest.register_craft({ output = 'mcl_tools:sword_stone', recipe = { {'mcl_blackstone:blackstone'}, {'mcl_blackstone:blackstone'}, {'mcl_core:stick'}, } }) minetest.register_craft({ output = "mcl_farming:hoe_stone", recipe = { {"mcl_blackstone:blackstone", "mcl_blackstone:blackstone"}, {"", "mcl_core:stick"}, {"", "mcl_core:stick"} } }) minetest.register_craft({ output = "mcl_farming:hoe_stone", recipe = { {"mcl_blackstone:blackstone", "mcl_blackstone:blackstone"}, {"mcl_core:stick", ""}, {"mcl_core:stick", ""} } }) minetest.register_craft({ output = "mcl_furnaces:furnace", recipe = { {"mcl_blackstone:blackstone", "mcl_blackstone:blackstone", "mcl_blackstone:blackstone"}, {"mcl_blackstone:blackstone", "", "mcl_blackstone:blackstone"}, {"mcl_blackstone:blackstone", "mcl_blackstone:blackstone", "mcl_blackstone:blackstone"} } }) minetest.register_craft({ output = 'mcl_blackstone:quartz_brick 4', recipe = { {'mcl_nether:quartz_block','mcl_nether:quartz_block'}, {'mcl_nether:quartz_block','mcl_nether:quartz_block'}, } }) minetest.register_craft({ type = "cooking", output = 'mcl_core:gold_ingot', recipe = 'mcl_blackstone:nether_gold', cooktime = 10, }) minetest.register_craft({ type = "cooking", output = 'mcl_core:gold_ingot', recipe = 'mcl_blackstone:blackstone_gilded', cooktime = 10, }) minetest.register_craft({ type = "cooking", output = 'mcl_nether:quartz_smooth', recipe = 'mcl_nether:quartz_block', cooktime = 10, }) --[[ Commented out for now because there the discussion how to handle this is ongoing] --Generating local specialstones = { "mcl_blackstone:blackstone", "mcl_blackstone:basalt", "mcl_blackstone:soul_soil" } for s=1, #specialstones do local node = specialstones[s] minetest.register_ore({ ore_type = "blob", ore = node, wherein = {"mcl_nether:netherrack"}, clust_scarcity = 830, clust_num_ores = 28, clust_size = 3, y_min = mcl_vars.mg_nether_min, y_max = mcl_vars.mg_nether_max, }) minetest.register_ore({ ore_type = "blob", ore = node, wherein = {"mcl_nether:netherrack"}, clust_scarcity = 8*8*8, clust_num_ores = 40, clust_size = 5, y_min = mcl_vars.mg_nether_min, y_max = mcl_vars.mg_nether_max, }) end if minetest.settings:get_bool("mcl_generate_ores", true) then minetest.register_ore({ ore_type = "scatter", ore = "mcl_blackstone:blackstone_gilded", wherein = "mcl_blackstone:blackstone", clust_scarcity = 4775, clust_num_ores = 2, clust_size = 2, y_min = mcl_vars.mg_nether_min, y_max = mcl_vars.mg_nether_max, }) minetest.register_ore({ ore_type = "scatter", ore = "mcl_blackstone:nether_gold", wherein = "mcl_nether:netherrack", clust_scarcity = 830, clust_num_ores = 5, clust_size = 3, y_min = mcl_vars.mg_nether_min, y_max = mcl_vars.mg_nether_max, }) minetest.register_ore({ ore_type = "scatter", ore = "mcl_blackstone:nether_gold", wherein = "mcl_nether:netherrack", clust_scarcity = 1660, clust_num_ores = 4, clust_size = 2, y_min = mcl_vars.mg_nether_min, y_max = mcl_vars.mg_nether_max, }) end --]] --soul torch mcl_torches.register_torch({ name="soul_torch", description=S("Soul Torch"), doc_items_longdesc = S("Torches are light sources which can be placed at the side or on the top of most blocks."), doc_items_hidden = false, icon="soul_torch_on_floor.png", tiles = {{ name = "soul_torch_on_floor_animated.png", animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3} }}, light = 12, --soul torches are a bit dimmer than normal torches groups = {dig_immediate = 3, deco_block = 1}, sounds = mcl_sounds.node_sound_wood_defaults(), particles = true, }) minetest.register_craft({ output = "mcl_blackstone:soul_torch 4", recipe = { {"group:coal"}, { "mcl_nether:soul_sand" }, { "mcl_core:stick" }, } })