diff --git a/mods/ITEMS/mcl_copper/README.md b/mods/ITEMS/mcl_copper/README.md new file mode 100644 index 0000000000..6a6f2d7d2f --- /dev/null +++ b/mods/ITEMS/mcl_copper/README.md @@ -0,0 +1,7 @@ +# MineClone2 Copper + +### by NO11 + +Adds copper ore, blocks and items. + +![screenshot](./screenshot.png) diff --git a/mods/ITEMS/mcl_copper/crafting.lua b/mods/ITEMS/mcl_copper/crafting.lua new file mode 100644 index 0000000000..7b1e183c79 --- /dev/null +++ b/mods/ITEMS/mcl_copper/crafting.lua @@ -0,0 +1,76 @@ +minetest.register_craft({ + output = "mcl_copper:block_raw", + recipe = { + { "mcl_copper:raw_copper", "mcl_copper:raw_copper", "mcl_copper:raw_copper" }, + { "mcl_copper:raw_copper", "mcl_copper:raw_copper", "mcl_copper:raw_copper" }, + { "mcl_copper:raw_copper", "mcl_copper:raw_copper", "mcl_copper:raw_copper" }, + }, +}) + +minetest.register_craft({ + output = "mcl_copper:block", + recipe = { + { "mcl_copper:copper_ingot", "mcl_copper:copper_ingot" }, + { "mcl_copper:copper_ingot", "mcl_copper:copper_ingot" }, + }, +}) + +minetest.register_craft({ + output = "mcl_copper:block_cut 4", + recipe = { + { "mcl_copper:block", "mcl_copper:block" }, + { "mcl_copper:block", "mcl_copper:block" }, + }, +}) + +minetest.register_craft({ + output = "mcl_copper:block_exposed_cut 4", + recipe = { + { "mcl_copper:block_exposed", "mcl_copper:block_exposed" }, + { "mcl_copper:block_exposed", "mcl_copper:block_exposed" }, + }, +}) + +minetest.register_craft({ + output = "mcl_copper:block_oxidized_cut 4", + recipe = { + { "mcl_copper:block_oxidized", "mcl_copper:block_oxidized" }, + { "mcl_copper:block_oxidized", "mcl_copper:block_oxidized" }, + }, +}) + +minetest.register_craft({ + output = "mcl_copper:mcl_copper:block_weathered_cut 4", + recipe = { + { "mcl_copper:block_weathered", "mcl_copper:block_weathered" }, + { "mcl_copper:block_weathered", "mcl_copper:block_weathered" }, + }, +}) + +minetest.register_craft({ + output = "mcl_copper:copper_ingot 4", + recipe = { + { "mcl_copper:block" }, + }, +}) + +minetest.register_craft({ + output = "mcl_copper:raw_copper 9", + recipe = { + { "mcl_copper:block_raw" }, + }, +}) + +minetest.register_craft({ + type = "cooking", + output = "mcl_copper:copper_ingot", + recipe = "mcl_copper:raw_copper", + cooktime = 10, +}) + +minetest.register_craft({ + type = "cooking", + output = "mcl_copper:copper_ingot", + recipe = "mcl_copper:stone_with_copper", + cooktime = 10, +}) \ No newline at end of file diff --git a/mods/ITEMS/mcl_copper/functions.lua b/mods/ITEMS/mcl_copper/functions.lua new file mode 100644 index 0000000000..b6e0cb7e26 --- /dev/null +++ b/mods/ITEMS/mcl_copper/functions.lua @@ -0,0 +1,181 @@ +--local deepslate_mod = minetest.get_modpath("mcl_deepslate") + +local function register_oxidation_abm(abm_name, node_name, oxidized_variant) + minetest.register_abm({ + label = abm_name, + nodenames = {node_name}, + interval = 500, + chance = 3, + action = function(pos, node) + minetest.swap_node(pos, {name = oxidized_variant, param2 = node.param2}) + end, + }) +end + +--[[ +local stairs = { + {"stair", "exposed", "_inner", "cut_inner"}, + {"stair", "weathered", "_inner", "exposed_cut_inner"}, + {"stair", "exposed", "_outer", "cut_outer"}, + {"stair", "weathered", "_outer", "exposed_cut_outer"}, + {"stair", "oxidized", "_outer", "weathered_cut_outer"}, + {"stair", "oxidized", "_inner", "weathered_cut_inner"}, + {"slab", "exposed", "","cut"}, + {"slab", "oxidized", "","weathered_cut"}, + {"slab", "weathered", "","exposed_cut"}, + {"slab", "exposed", "_top","cut_top"}, + {"slab", "oxidized", "_top", "weathered_cut_top"}, + {"slab", "weathered", "_top","exposed_cut_top"}, + {"slab", "exposed", "_double","cut_double"}, + {"slab", "oxidized", "_double","weathered_cut_double"}, + {"slab", "weathered", "_double","exposed_cut_double"}, + {"stair", "exposed", "","cut"}, + {"stair", "oxidized", "", "weathered_cut"}, + {"stair", "weathered", "", "exposed_cut"}, +}]] + +--[[ +local function anti_oxidation_particles(pointed_thing) + local pos = pointed_thing.under + minetest.add_particlespawner({ + amount = 8, + time = 1, + minpos = {x = pos.x - 1, y = pos.y - 1, z = pos.z - 1}, + maxpos = {x = pos.x + 1, y = pos.y + 1, z = pos.z + 1}, + minvel = {x = 0, y = 0, z = 0}, + maxvel = {x = 0, y = 0, z = 0}, + minacc = {x = 0, y = 0, z = 0}, + maxacc = {x = 0, y = 0, z = 0}, + minexptime = 0.5, + maxexptime = 1, + minsize = 1, + maxsize = 2.5, + collisiondetection = false, + vertical = false, + texture = "mcl_copper_anti_oxidation_particle.png", + glow = 5, + }) +end + +local function add_wear(placer, itemstack) + if not minetest.is_creative_enabled(placer:get_player_name()) then + local tool = itemstack:get_name() + local wear = mcl_autogroup.get_wear(tool, "axey") + itemstack:add_wear(wear) + end +end + +local function anti_oxidation(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then return end + + local node = minetest.get_node(pointed_thing.under) + local noddef = minetest.registered_nodes[minetest.get_node(pointed_thing.under).name] + + if not placer:get_player_control().sneak and noddef.on_rightclick then + return minetest.item_place(itemstack, placer, pointed_thing) + end + + if minetest.is_protected(pointed_thing.under, placer:get_player_name()) then + minetest.record_protection_violation(pointed_thing.under, placer:get_player_name()) + return itemstack + end + + if noddef._mcl_stripped_variant == nil then + for _, c in pairs(stairs) do + if noddef.name == "mcl_stairs:"..c[1].."_copper_"..c[2].."_cut"..c[3] then + minetest.swap_node(pointed_thing.under, {name="mcl_stairs:"..c[1].."_copper_"..c[4], param2=node.param2}) + anti_oxidation_particles(pointed_thing) + add_wear(placer, itemstack) + end + end + if noddef._mcl_anti_oxidation_variant ~= nil then + minetest.swap_node(pointed_thing.under, {name=noddef._mcl_anti_oxidation_variant, param2=node.param2}) + anti_oxidation_particles(pointed_thing) + add_wear(placer, itemstack) + end + elseif noddef._mcl_stripped_variant ~= nil then + minetest.swap_node(pointed_thing.under, {name=noddef._mcl_stripped_variant, param2=node.param2}) + add_wear(placer, itemstack) + else + return itemstack + end + return itemstack +end + +local function register_axe_override(axe_name) + minetest.override_item("mcl_tools:axe_"..axe_name, { + on_place = anti_oxidation, + }) +end]] + +--[[ Commented out for now because there the discussion how to handle this is ongoing +local stonelike = {"mcl_core:stone", "mcl_core:diorite", "mcl_core:andesite", "mcl_core:granite"} +if not deepslate_mod then + if minetest.settings:get_bool("mcl_generate_ores", true) then + minetest.register_ore({ + ore_type = "scatter", + ore = "mcl_copper:stone_with_copper", + wherein = stonelike, + clust_scarcity = 830, + clust_num_ores = 5, + clust_size = 3, + y_min = mcl_vars.mg_overworld_min, + y_max = mcl_worlds.layer_to_y(39), + }) + minetest.register_ore({ + ore_type = "scatter", + ore = "mcl_copper:stone_with_copper", + wherein = stonelike, + clust_scarcity = 1660, + clust_num_ores = 4, + clust_size = 2, + y_min = mcl_worlds.layer_to_y(40), + y_max = mcl_worlds.layer_to_y(63), + }) + end +end +--]] +local block_oxidation = { + {"", "_exposed"}, + {"_cut", "_exposed_cut"}, + {"_exposed", "_weathered"}, + {"_exposed_cut", "_weathered_cut"}, + {"_weathered", "_oxidized"}, + {"_weathered_cut", "_oxidized_cut"} +} + +local stair_oxidation = { + {"slab", "cut", "exposed_cut"}, + {"slab", "exposed_cut", "weathered_cut"}, + {"slab", "weathered_cut", "oxidized_cut"}, + {"slab", "cut_top", "exposed_cut_top"}, + {"slab", "exposed_cut_top", "weathered_cut_top"}, + {"slab", "weathered_cut_top", "oxidized_cut_double"}, + {"slab", "cut_double", "exposed_cut_double"}, + {"slab", "exposed_cut_double", "weathered_cut_double"}, + {"slab", "weathered_cut_double", "oxidized_cut_double"}, + {"stair", "cut", "exposed_cut"}, + {"stair", "exposed_cut", "weathered_cut"}, + {"stair", "weathered_cut", "oxidized_cut"}, + {"stair", "cut_inner", "exposed_cut_inner"}, + {"stair", "exposed_cut_inner", "weathered_cut_inner"}, + {"stair", "weathered_cut_inner", "oxidized_cut_inner"}, + {"stair", "cut_outer", "exposed_cut_outer"}, + {"stair", "exposed_cut_outer", "weathered_cut_outer"}, + {"stair", "weathered_cut_outer", "oxidized_cut_outer"} +} + +for _, b in pairs(block_oxidation) do + register_oxidation_abm("Copper oxidation", "mcl_copper:block"..b[1], "mcl_copper:block"..b[2]) +end + +for _, s in pairs(stair_oxidation) do + register_oxidation_abm("Copper oxidation", "mcl_stairs:"..s[1].."_copper_"..s[2], "mcl_stairs:"..s[1].."_copper_"..s[3]) +end + +--local axes = {"wood", "stone", "iron", "gold", "diamond"} +--[[ +for _, axe in pairs(axes) do + register_axe_override(axe) +end +]] diff --git a/mods/ITEMS/mcl_copper/init.lua b/mods/ITEMS/mcl_copper/init.lua new file mode 100644 index 0000000000..ea15e58274 --- /dev/null +++ b/mods/ITEMS/mcl_copper/init.lua @@ -0,0 +1,6 @@ +local path = minetest.get_modpath("mcl_copper") + +dofile(path .. "/nodes.lua") +dofile(path .. "/items.lua") +dofile(path .. "/crafting.lua") +dofile(path .. "/functions.lua") \ No newline at end of file diff --git a/mods/ITEMS/mcl_copper/items.lua b/mods/ITEMS/mcl_copper/items.lua new file mode 100644 index 0000000000..450ec8cb38 --- /dev/null +++ b/mods/ITEMS/mcl_copper/items.lua @@ -0,0 +1,15 @@ +local S = minetest.get_translator("mcl_copper") + +minetest.register_craftitem("mcl_copper:copper_ingot", { + description = S("Copper Ingot"), + _doc_items_longdesc = S("Molten Raw Copper. It is used to craft blocks."), + inventory_image = "mcl_copper_ingot.png", + groups = { craftitem = 1 }, +}) + +minetest.register_craftitem("mcl_copper:raw_copper", { + description = S("Raw Copper"), + _doc_items_longdesc = S("Raw Copper. Mine a Copper Ore to get it."), + inventory_image = "mcl_copper_raw.png", + groups = { craftitem = 1 }, +}) \ No newline at end of file diff --git a/mods/ITEMS/mcl_copper/locale/mcl_copper.de.tr b/mods/ITEMS/mcl_copper/locale/mcl_copper.de.tr new file mode 100644 index 0000000000..cc2290e1e8 --- /dev/null +++ b/mods/ITEMS/mcl_copper/locale/mcl_copper.de.tr @@ -0,0 +1,37 @@ +# textdomain: mcl_copper +A block of copper is mostly a decorative block.=Ein Kupferblock wird meistens als dekorativer Block verwendet. +A block used for compact raw copper storage.=Ein Block für die kompakte Lagerung von Rohkupfer. +Block of Copper=Kupferblock +Block of Raw Copper=Rohkupferblock +Copper Ingot=Kupfer Barren +Copper Ore=Kupfererz +Cut copper is a decorative block.=Ein Geschnittener Kupferblock ist ein dekorativer Block. +Cut Copper=Geschnittener Kupferblock +Double Slab of Cut Copper=Doppelte Geschnittene Kupferstufe +Double Slab of Exposed Cut Copper=Doppelte Angelaufene Geschnittene Kupferstufe +Double Slab of Oxidized Cut Copper=Doppelte Oxidierte Geschnittene Kupferstufe +Double Slab of Weathered Cut Copper=Doppelte Verwitterte Geschnittene Kupferstufe +Exposed copper is a decorative block.=Ein Angelaufener Kupferblock ist ein dekorativer Block. +Exposed Copper=Angelaufener Kupferblock +Exposed cut copper is a decorative block.=Ein Angelaufener geschnittener Kupferblock ist ein dekorativer Block. +Exposed Cut Copper=Angelaufener geschnittener Kupferblock +Molten Raw Copper. It is used to craft blocks.=Geschmolzenes Rohkupfer. Es wird verwendet, um Blöcke herzustellen. +Oxidized copper is a decorative block.=Ein Oxidierter Kupferblockist ist ein dekorativer Block. +Oxidized Copper=Oxidierter Kupferblock +Oxidized cut copper is a decorative block.=Ein Oxidierter geschnittener Kupferblock ist ein dekorativer Block. +Oxidized Cut Copper=Oxidierter geschnittener Kupferblock +Raw Copper. Mine a Copper Ore to get it.=Bauen sie ein Kupfererz ab, um es zu erhalten. +Raw Copper=Rohkupfer +Slab of Cut Copper=Geschnittene Kupferstufe +Slab of Exposed Cut Copper=Angelaufene Geschnittene Kupferstufe +Slab of Oxidized Cut Copper=Oxidierte Geschnittene Kupferstufe +Slab of Weathered Cut Copper=Verwitterte Geschnittene Kupferstufe +Some copper contained in stone, it is pretty common and can be found below sea level.=Stein, in dem etwas Kupfer enthalten ist. Es ist ziemlich häufig und kann unter dem Meeresspiegel gefunden werden. +Stairs of Cut Copper=Geschnittene Kupfertreppe +Stairs of Exposed Cut Copper=Angelaufene Geschnittene Kupfertreppe +Stairs of Oxidized Cut Copper=Oxidierte Geschnittene Kupfertreppe +Stairs of Weathered Cut Copper=Verwitterte Geschnittene Kupfertreppe +Weathered copper is a decorative block.=Ein Verwitterter Kupferblock ist ein dekorativer Block. +Weathered Copper=Verwitterter Kupferblock +Weathered cut copper is a decorative block.=Ein Verwitterter geschnittener Kupferblock ist ein dekorativer Block. +Weathered Cut Copper=Verwitterter geschnittener Kupferblock diff --git a/mods/ITEMS/mcl_copper/locale/template.txt b/mods/ITEMS/mcl_copper/locale/template.txt new file mode 100644 index 0000000000..050c099ee2 --- /dev/null +++ b/mods/ITEMS/mcl_copper/locale/template.txt @@ -0,0 +1,37 @@ +# textdomain: mcl_copper +A block of copper is mostly a decorative block.= +A block used for compact raw copper storage.= +Block of Copper= +Block of Raw Copper= +Copper Ingot= +Copper Ore= +Cut copper is a decorative block.= +Cut Copper= +Double Slab of Cut Copper= +Double Slab of Exposed Cut Copper= +Double Slab of Oxidized Cut Copper= +Double Slab of Weathered Cut Copper= +Exposed copper is a decorative block.= +Exposed Copper= +Exposed cut copper is a decorative block.= +Exposed Cut Copper= +Molten Raw Copper. It is used to craft blocks.= +Oxidized copper is a decorative block.= +Oxidized Copper= +Oxidized cut copper is a decorative block.= +Oxidized Cut Copper= +Raw Copper. Mine a Copper Ore to get it.= +Raw Copper= +Slab of Cut Copper= +Slab of Exposed Cut Copper= +Slab of Oxidized Cut Copper= +Slab of Weathered Cut Copper= +Some copper contained in stone, it is pretty common and can be found below sea level.= +Stairs of Cut Copper= +Stairs of Exposed Cut Copper= +Stairs of Oxidized Cut Copper= +Stairs of Weathered Cut Copper= +Weathered copper is a decorative block.= +Weathered Copper= +Weathered cut copper is a decorative block.= +Weathered Cut Copper= diff --git a/mods/ITEMS/mcl_copper/mod.conf b/mods/ITEMS/mcl_copper/mod.conf new file mode 100644 index 0000000000..dde96263ae --- /dev/null +++ b/mods/ITEMS/mcl_copper/mod.conf @@ -0,0 +1,4 @@ +name = mcl_copper +author = NO11 +depends = mcl_core, mcl_sounds, mcl_stairs +description = Adds Copper Ore, blocks and items. diff --git a/mods/ITEMS/mcl_copper/nodes.lua b/mods/ITEMS/mcl_copper/nodes.lua new file mode 100644 index 0000000000..7b4d76d461 --- /dev/null +++ b/mods/ITEMS/mcl_copper/nodes.lua @@ -0,0 +1,177 @@ +local S = minetest.get_translator("mcl_copper") + +minetest.register_node("mcl_copper:stone_with_copper", { + description = S("Copper Ore"), + _doc_items_longdesc = S("Some copper contained in stone, it is pretty common and can be found below sea level."), + tiles = {"default_stone.png^mcl_copper_ore.png"}, + is_ground_content = true, + groups = {pickaxey = 3, building_block = 1, material_stone = 1}, + drop = "mcl_copper:raw_copper", + sounds = mcl_sounds.node_sound_stone_defaults(), + _mcl_blast_resistance = 3, + _mcl_hardness = 3, + _mcl_silk_touch_drop = true, + _mcl_fortune_drop = mcl_core.fortune_drop_ore, + +}) + +minetest.register_node("mcl_copper:block_raw", { + description = S("Block of Raw Copper"), + _doc_items_longdesc = S("A block used for compact raw copper storage."), + tiles = {"mcl_copper_block_raw.png"}, + is_ground_content = false, + groups = {pickaxey = 2, building_block = 1}, + sounds = mcl_sounds.node_sound_metal_defaults(), + _mcl_blast_resistance = 6, + _mcl_hardness = 5, +}) + +minetest.register_node("mcl_copper:block", { + description = S("Block of Copper"), + _doc_items_longdesc = S("A block of copper is mostly a decorative block."), + tiles = {"mcl_copper_block.png"}, + is_ground_content = false, + groups = {pickaxey = 2, building_block = 1}, + sounds = mcl_sounds.node_sound_metal_defaults(), + _mcl_blast_resistance = 6, + _mcl_hardness = 5, +}) + +minetest.register_node("mcl_copper:block_exposed", { + description = S("Exposed Copper"), + _doc_items_longdesc = S("Exposed copper is a decorative block."), + tiles = {"mcl_copper_exposed.png"}, + is_ground_content = false, + groups = {pickaxey = 2, building_block = 1}, + sounds = mcl_sounds.node_sound_metal_defaults(), + _mcl_blast_resistance = 6, + _mcl_hardness = 5, + _mcl_anti_oxidation_varient = "mcl_copper:block", +}) + +minetest.register_node("mcl_copper:block_oxidized", { + description = S("Oxidized Copper"), + _doc_items_longdesc = S("Oxidized copper is a decorative block."), + tiles = {"mcl_copper_oxidized.png"}, + is_ground_content = false, + groups = {pickaxey = 2, building_block = 1}, + sounds = mcl_sounds.node_sound_metal_defaults(), + _mcl_blast_resistance = 6, + _mcl_hardness = 5, + _mcl_anti_oxidation_varient = "mcl_copper:block_weathered", +}) + +minetest.register_node("mcl_copper:block_weathered", { + description = S("Weathered Copper"), + _doc_items_longdesc = S("Weathered copper is a decorative block."), + tiles = {"mcl_copper_weathered.png"}, + is_ground_content = false, + groups = {pickaxey = 2, building_block = 1}, + sounds = mcl_sounds.node_sound_metal_defaults(), + _mcl_blast_resistance = 6, + _mcl_hardness = 5, + _mcl_anti_oxidation_varient = "mcl_copper:block_exposed", +}) + +minetest.register_node("mcl_copper:block_cut", { + description = S("Cut Copper"), + _doc_items_longdesc = S("Cut copper is a decorative block."), + tiles = {"mcl_copper_block_cut.png"}, + is_ground_content = false, + groups = {pickaxey = 2, building_block = 1}, + sounds = mcl_sounds.node_sound_metal_defaults(), + _mcl_blast_resistance = 6, + _mcl_hardness = 5, +}) + +minetest.register_node("mcl_copper:block_exposed_cut", { + description = S("Exposed Cut Copper"), + _doc_items_longdesc = S("Exposed cut copper is a decorative block."), + tiles = {"mcl_copper_exposed_cut.png"}, + is_ground_content = false, + groups = {pickaxey = 2, building_block = 1}, + sounds = mcl_sounds.node_sound_metal_defaults(), + _mcl_blast_resistance = 6, + _mcl_hardness = 5, + _mcl_anti_oxidation_varient = "mcl_copper:block_cut", +}) + +minetest.register_node("mcl_copper:block_oxidized_cut", { + description = S("Oxidized Cut Copper"), + _doc_items_longdesc = S("Oxidized cut copper is a decorative block."), + tiles = {"mcl_copper_oxidized_cut.png"}, + is_ground_content = false, + groups = {pickaxey = 2, building_block = 1}, + sounds = mcl_sounds.node_sound_metal_defaults(), + _mcl_blast_resistance = 6, + _mcl_hardness = 5, + _mcl_anti_oxidation_varient = "mcl_copper:block_weathered_cut", +}) + +minetest.register_node("mcl_copper:block_weathered_cut", { + description = S("Weathered Cut Copper"), + _doc_items_longdesc = S("Weathered cut copper is a decorative block."), + tiles = {"mcl_copper_weathered_cut.png"}, + is_ground_content = false, + groups = {pickaxey = 2, building_block = 1}, + sounds = mcl_sounds.node_sound_metal_defaults(), + _mcl_blast_resistance = 6, + _mcl_hardness = 5, + _mcl_anti_oxidation_varient = "mcl_copper:block_exposed_cut", +}) + +mcl_stairs.register_slab("copper_cut", "mcl_copper:block_cut", + {pickaxey = 2}, + {"mcl_copper_block_cut.png", "mcl_copper_block_cut.png", "mcl_copper_block_cut.png"}, + S("Slab of Cut Copper"), + nil, nil, nil, + S("Double Slab of Cut Copper")) + +mcl_stairs.register_slab("copper_exposed_cut", "mcl_copper:block_exposed_cut", + {pickaxey = 2}, + {"mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png"}, + S("Slab of Exposed Cut Copper"), + nil, nil, nil, + S("Double Slab of Exposed Cut Copper")) + +mcl_stairs.register_slab("copper_oxidized_cut", "mcl_copper:block_oxidized_cut", + {pickaxey = 2}, + {"mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png"}, + S("Slab of Oxidized Cut Copper"), + nil, nil, nil, + S("Double Slab of Oxidized Cut Copper")) + +mcl_stairs.register_slab("copper_weathered_cut", "mcl_copper:block_weathered_cut", + {pickaxey = 2}, + {"mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png"}, + S("Slab of Weathered Cut Copper"), + nil, nil, nil, + S("Double Slab of Weathered Cut Copper")) + +mcl_stairs.register_stair("copper_cut", "mcl_copper:block_cut", + {pickaxey = 2}, + {"mcl_copper_block_cut.png", "mcl_copper_block_cut.png", "mcl_copper_block_cut.png", "mcl_copper_block_cut.png", "mcl_copper_block_cut.png", "mcl_copper_block_cut.png"}, + S("Stairs of Cut Copper"), + nil, 6, nil, + "woodlike") + +mcl_stairs.register_stair("copper_exposed_cut", "mcl_copper:block_exposed_cut", + {pickaxey = 2}, + {"mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png"}, + S("Stairs of Exposed Cut Copper"), + nil, 6, nil, + "woodlike") + +mcl_stairs.register_stair("copper_oxidized_cut", "mcl_copper:block_oxidized_cut", + {pickaxey = 2}, + {"mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png"}, + S("Stairs of Oxidized Cut Copper"), + nil, 6, nil, + "woodlike") + +mcl_stairs.register_stair("copper_weathered_cut", "mcl_copper:block_weathered_cut", + {pickaxey = 2}, + {"mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png"}, + S("Stairs of Weathered Cut Copper"), + nil, 6, nil, + "woodlike") \ No newline at end of file diff --git a/mods/ITEMS/mcl_copper/screenshot.png b/mods/ITEMS/mcl_copper/screenshot.png new file mode 100644 index 0000000000..032d45fb17 Binary files /dev/null and b/mods/ITEMS/mcl_copper/screenshot.png differ diff --git a/mods/ITEMS/mcl_copper/textures/mcl_copper_anti_oxidation_particle.png b/mods/ITEMS/mcl_copper/textures/mcl_copper_anti_oxidation_particle.png new file mode 100644 index 0000000000..c7192df0eb Binary files /dev/null and b/mods/ITEMS/mcl_copper/textures/mcl_copper_anti_oxidation_particle.png differ diff --git a/mods/ITEMS/mcl_copper/textures/mcl_copper_block.png b/mods/ITEMS/mcl_copper/textures/mcl_copper_block.png new file mode 100644 index 0000000000..31e0853abd Binary files /dev/null and b/mods/ITEMS/mcl_copper/textures/mcl_copper_block.png differ diff --git a/mods/ITEMS/mcl_copper/textures/mcl_copper_block_cut.png b/mods/ITEMS/mcl_copper/textures/mcl_copper_block_cut.png new file mode 100644 index 0000000000..5f92b46934 Binary files /dev/null and b/mods/ITEMS/mcl_copper/textures/mcl_copper_block_cut.png differ diff --git a/mods/ITEMS/mcl_copper/textures/mcl_copper_block_raw.png b/mods/ITEMS/mcl_copper/textures/mcl_copper_block_raw.png new file mode 100644 index 0000000000..88404601e3 Binary files /dev/null and b/mods/ITEMS/mcl_copper/textures/mcl_copper_block_raw.png differ diff --git a/mods/ITEMS/mcl_copper/textures/mcl_copper_exposed.png b/mods/ITEMS/mcl_copper/textures/mcl_copper_exposed.png new file mode 100644 index 0000000000..0dc2a6d879 Binary files /dev/null and b/mods/ITEMS/mcl_copper/textures/mcl_copper_exposed.png differ diff --git a/mods/ITEMS/mcl_copper/textures/mcl_copper_exposed_cut.png b/mods/ITEMS/mcl_copper/textures/mcl_copper_exposed_cut.png new file mode 100644 index 0000000000..6c4a5e7dda Binary files /dev/null and b/mods/ITEMS/mcl_copper/textures/mcl_copper_exposed_cut.png differ diff --git a/mods/ITEMS/mcl_copper/textures/mcl_copper_ingot.png b/mods/ITEMS/mcl_copper/textures/mcl_copper_ingot.png new file mode 100644 index 0000000000..b75e9b9c97 Binary files /dev/null and b/mods/ITEMS/mcl_copper/textures/mcl_copper_ingot.png differ diff --git a/mods/ITEMS/mcl_copper/textures/mcl_copper_ore.png b/mods/ITEMS/mcl_copper/textures/mcl_copper_ore.png new file mode 100644 index 0000000000..3ad14fb994 Binary files /dev/null and b/mods/ITEMS/mcl_copper/textures/mcl_copper_ore.png differ diff --git a/mods/ITEMS/mcl_copper/textures/mcl_copper_oxidized.png b/mods/ITEMS/mcl_copper/textures/mcl_copper_oxidized.png new file mode 100644 index 0000000000..5bea2569e1 Binary files /dev/null and b/mods/ITEMS/mcl_copper/textures/mcl_copper_oxidized.png differ diff --git a/mods/ITEMS/mcl_copper/textures/mcl_copper_oxidized_cut.png b/mods/ITEMS/mcl_copper/textures/mcl_copper_oxidized_cut.png new file mode 100644 index 0000000000..f28af71c37 Binary files /dev/null and b/mods/ITEMS/mcl_copper/textures/mcl_copper_oxidized_cut.png differ diff --git a/mods/ITEMS/mcl_copper/textures/mcl_copper_raw.png b/mods/ITEMS/mcl_copper/textures/mcl_copper_raw.png new file mode 100644 index 0000000000..fda0f886df Binary files /dev/null and b/mods/ITEMS/mcl_copper/textures/mcl_copper_raw.png differ diff --git a/mods/ITEMS/mcl_copper/textures/mcl_copper_weathered.png b/mods/ITEMS/mcl_copper/textures/mcl_copper_weathered.png new file mode 100644 index 0000000000..75b352133f Binary files /dev/null and b/mods/ITEMS/mcl_copper/textures/mcl_copper_weathered.png differ diff --git a/mods/ITEMS/mcl_copper/textures/mcl_copper_weathered_cut.png b/mods/ITEMS/mcl_copper/textures/mcl_copper_weathered_cut.png new file mode 100644 index 0000000000..306329eb77 Binary files /dev/null and b/mods/ITEMS/mcl_copper/textures/mcl_copper_weathered_cut.png differ diff --git a/mods/ITEMS/mcl_deepslate/README.md b/mods/ITEMS/mcl_deepslate/README.md new file mode 100644 index 0000000000..398e703616 --- /dev/null +++ b/mods/ITEMS/mcl_deepslate/README.md @@ -0,0 +1,15 @@ +# Mineclone2 New Ores and Deepslate +by NO11 + +This mod adds Deepslate to the Minetest game Mineclone2, which Minecraft adds in version 1.17. +Find new ores or build something from the 30 new blocks! Deepslate is generated directly above the lava layer in overworld. + +Important: You need my "Mineclone2 Raw Ores" mod for this mod to work! +All other dependencies are automatically in the mineclone2 game. +Optionally use "Mineclone2 Copper" to get the deepslate copper ore as well. + + +You can find all craft recipes for deepslate blocks here: https://minecraft.fandom.com/wiki/Deepslate_(disambiguation) +(just click on the respective block) + +Textures are from Pixel Perfection! diff --git a/mods/ITEMS/mcl_deepslate/init.lua b/mods/ITEMS/mcl_deepslate/init.lua new file mode 100644 index 0000000000..33abc7f68b --- /dev/null +++ b/mods/ITEMS/mcl_deepslate/init.lua @@ -0,0 +1,440 @@ +local modname = minetest.get_current_modname() +local S = minetest.get_translator(modname) + +--local layer_max = mcl_worlds.layer_to_y(16) +--local layer_min = mcl_vars.mg_overworld_min + +local copper_mod = minetest.get_modpath("mcl_copper") + +local cobble = "mcl_deepslate:deepslate_cobbled" +local stick = "mcl_core:stick" + +--[[ +local mountains = { + "ExtremeHills", "ExtremeHills_beach", "ExtremeHills_ocean", "ExtremeHills_deep_ocean", "ExtremeHills_underground", + "ExtremeHills+", "ExtremeHills+_ocean", "ExtremeHills+_deep_ocean", "ExtremeHills+_underground", + "ExtremeHillsM", "ExtremeHillsM_ocean", "ExtremeHillsM_deep_ocean", "ExtremeHillsM_underground", +} +]] + +minetest.register_node("mcl_deepslate:deepslate", { + description = S("Deepslate"), + _doc_items_longdesc = S("Deepslate is a stone type found deep underground in the Overworld that functions similar to regular stone but is harder than the stone."), + _doc_items_hidden = false, + tiles = { "mcl_deepslate_top.png", "mcl_deepslate_top.png", "mcl_deepslate.png" }, + paramtype2 = "facedir", + is_ground_content = true, + on_place = mcl_util.rotate_axis, + groups = { pickaxey = 1, stone = 1, building_block = 1, material_stone = 1 }, + drop = cobble, + sounds = mcl_sounds.node_sound_stone_defaults(), + on_rotate = screwdriver.rotate_3way, + _mcl_blast_resistance = 6, + _mcl_hardness = 3, + _mcl_silk_touch_drop = true, +}) + +local function spawn_silverfish(pos, oldnode, oldmetadata, digger) + if not minetest.is_creative_enabled("") then + minetest.add_entity(pos, "mobs_mc:silverfish") + end +end + +minetest.register_node("mcl_deepslate:infested_deepslate", { + description = S("Infested Deepslate"), + _doc_items_longdesc = S("An infested block is a block from which a silverfish will pop out when it is broken. It looks identical to its normal counterpart."), + _tt_help = S("Hides a silverfish"), + tiles = { "mcl_deepslate_top.png", "mcl_deepslate_top.png", "mcl_deepslate.png" }, + is_ground_content = true, + groups = { dig_immediate = 3, spawns_silverfish = 1, deco_block = 1 }, + drop = "", + sounds = mcl_sounds.node_sound_stone_defaults(), + after_dig_node = spawn_silverfish, + _mcl_hardness = 0, + _mcl_blast_resistance = 0.5, +}) + +minetest.register_node("mcl_deepslate:tuff", { + description = S("Tuff"), + _doc_items_longdesc = S("Tuff is an ornamental rock formed from volcanic ash, occurring in underground blobs below Y=16."), + _doc_items_hidden = false, + tiles = { "mcl_deepslate_tuff.png" }, + groups = { pickaxey = 1, deco_block = 1 }, + sounds = mcl_sounds.node_sound_stone_defaults(), + _mcl_blast_resistance = 6, + _mcl_hardness = 1.5, + _mcl_silk_touch_drop = true, +}) + +local function register_deepslate_ore(desc, drop, cooked, pick, xp) + local item = desc:lower() + local item_string + if item == "lapis lazuli" then + item_string = "lapis" + else + item_string = item + end + local nodename = "mcl_deepslate:deepslate_with_"..item_string + minetest.register_node(nodename, { + description = S("Deepslate "..desc.." Ore"), + _doc_items_longdesc = S("Deepslate "..item.." ore is a variant of "..item.." ore that can generate in deepslate and tuff blobs."), + _doc_items_hidden = false, + tiles = { "mcl_deepslate_"..item_string.."_ore.png" }, + is_ground_content = true, + stack_max = 64, + groups = { pickaxey = pick, building_block = 1, material_stone = 1, xp = xp }, + drop = drop, + sounds = mcl_sounds.node_sound_stone_defaults(), + _mcl_blast_resistance = 3, + _mcl_hardness = 4.5, + _mcl_silk_touch_drop = true, + _mcl_fortune_drop = mcl_core.fortune_drop_ore, + }) + + minetest.register_craft({ + type = "cooking", + output = cooked, + recipe = nodename, + cooktime = 10, + }) +end + +local lapis_drops = { + max_items = 1, items = { + { items = { "mcl_dye:blue 8" }, rarity = 5 }, + { items = { "mcl_dye:blue 7" }, rarity = 5 }, + { items = { "mcl_dye:blue 6" }, rarity = 5 }, + { items = { "mcl_dye:blue 5" }, rarity = 5 }, + { items = { "mcl_dye:blue 4" } } + } +} + +local deepslate_ores = { + { "Coal", "mcl_core:coal_lump", "mcl_core:coal_lump", 1, 1 }, + { "Iron", "mcl_raw_ores:raw_iron", "mcl_core:iron_ingot", 3, 0 }, + { "Gold", "mcl_raw_ores:raw_gold", "mcl_core:gold_ingot", 4, 0 }, + { "Emerald", "mcl_core:emerald", "mcl_core:emerald", 4, 6 }, + { "Diamond", "mcl_core:diamond", "mcl_core:diamond", 4, 4 }, + { "Lapis Lazuli", lapis_drops, "mcl_dye:blue", 3, 6 }, +} + +for _, p in pairs(deepslate_ores) do + register_deepslate_ore(p[1], p[2], p[3], p[4], p[5]) +end + +if copper_mod then + register_deepslate_ore("Copper", "mcl_copper:raw_copper", "mcl_copper:copper_ingot", 4, 4) +end + +local redstone_timer = 68.28 + +local function redstone_ore_activate(pos) + minetest.swap_node(pos, { name = "mcl_deepslate:deepslate_with_redstone_lit" }) + local t = minetest.get_node_timer(pos) + t:start(redstone_timer) +end + +local function redstone_ore_reactivate(pos) + local t = minetest.get_node_timer(pos) + t:start(redstone_timer) +end + +minetest.register_node("mcl_deepslate:deepslate_with_redstone", { + description = S("Deepslate Redstone Ore"), + _doc_items_longdesc = S("Deepslate redstone ore is a variant of redstone ore that can generate in deepslate and tuff blobs."), + tiles = { "mcl_deepslate_redstone_ore.png" }, + is_ground_content = true, + groups = { pickaxey = 4, building_block = 1, material_stone = 1, xp = 7 }, + drop = { + items = { + max_items = 1, + { items = { "mesecons:redstone 4" }, rarity = 2 }, + { items = { "mesecons:redstone 5" } }, + } + }, + sounds = mcl_sounds.node_sound_stone_defaults(), + on_punch = redstone_ore_activate, + on_walk_over = redstone_ore_activate, + _mcl_blast_resistance = 3, + _mcl_hardness = 4.5, + _mcl_silk_touch_drop = true, + _mcl_fortune_drop = { + discrete_uniform_distribution = true, + items = { "mesecons:redstone" }, + min_count = 4, + max_count = 5, + } +}) + +minetest.register_node("mcl_deepslate:deepslate_with_redstone_lit", { + description = S("Lit Deepslate Redstone Ore"), + _doc_items_create_entry = false, + tiles = { "mcl_deepslate_redstone_ore.png" }, + paramtype = "light", + light_source = 9, + is_ground_content = true, + groups = { pickaxey = 4, not_in_creative_inventory = 1, material_stone = 1, xp = 7 }, + drop = { + items = { + max_items = 1, + { items = { "mesecons:redstone 4" }, rarity = 2 }, + { items = { "mesecons:redstone 5" } }, + } + }, + sounds = mcl_sounds.node_sound_stone_defaults(), + on_punch = redstone_ore_reactivate, + on_walk_over = redstone_ore_reactivate, -- Uses walkover mod + on_timer = function(pos, _) + minetest.swap_node(pos, { name = "mcl_deepslate:deepslate_with_redstone" }) + end, + _mcl_blast_resistance = 3, + _mcl_hardness = 4.5, + _mcl_silk_touch_drop = { "mcl_deepslate:deepslate_with_redstone" }, + _mcl_fortune_drop = { + discrete_uniform_distribution = true, + items = { "mesecons:redstone" }, + min_count = 4, + max_count = 5, + }, +}) + +minetest.register_craft({ + type = "cooking", + output = "mesecons:redstone", + recipe = "mcl_deepslate:deepslate_with_redstone", + cooktime = 10, +}) + +--[[ Commented out for now because there the discussion how to handle this is ongoing +minetest.register_ore({ + ore_type = "blob", + ore = "mcl_deepslate:deepslate", + wherein = { "mcl_core:stone" }, + clust_scarcity = 200, + clust_num_ores = 100, + clust_size = 10, + y_min = layer_min, + y_max = layer_max, + noise_params = { + offset = 0, + scale = 1, + spread = { x = 250, y = 250, z = 250 }, + seed = 12345, + octaves = 3, + persist = 0.6, + lacunarity = 2, + flags = "defaults", + } +}) + +minetest.register_ore({ + ore_type = "blob", + ore = "mcl_deepslate:tuff", + wherein = { "mcl_core:stone", "mcl_core:diorite", "mcl_core:andesite", "mcl_core:granite", "mcl_deepslate:deepslate" }, + clust_scarcity = 10*10*10, + clust_num_ores = 58, + clust_size = 7, + y_min = layer_min, + y_max = layer_max, + noise_params = { + offset = 0, + scale = 1, + spread = {x=250, y=250, z=250}, + seed = 12345, + octaves = 3, + persist = 0.6, + lacunarity = 2, + flags = "defaults", + } +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "mcl_deepslate:infested_deepslate", + wherein = "mcl_deepslate:deepslate", + clust_scarcity = 26 * 26 * 26, + clust_num_ores = 3, + clust_size = 2, + y_min = layer_min, + y_max = layer_max, + biomes = mountains, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "mcl_core:water_source", + wherein = "mcl_deepslate:deepslate", + clust_scarcity = 9000, + clust_num_ores = 1, + clust_size = 1, + y_min = mcl_worlds.layer_to_y(5), + y_max = layer_max, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "mcl_core:lava_source", + wherein = "mcl_deepslate:deepslate", + clust_scarcity = 2000, + clust_num_ores = 1, + clust_size = 1, + y_min = mcl_worlds.layer_to_y(1), + y_max = mcl_worlds.layer_to_y(10), +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "mcl_core:lava_source", + wherein = "mcl_deepslate:deepslate", + clust_scarcity = 9000, + clust_num_ores = 1, + clust_size = 1, + y_min = mcl_worlds.layer_to_y(11), + y_max = layer_max, +}) + + +if minetest.settings:get_bool("mcl_generate_ores", true) then + local stonelike = { "mcl_core:stone", "mcl_core:diorite", "mcl_core:andesite", "mcl_core:granite" } + local function register_ore_mg(ore, scarcity, num, size, y_min, y_max, biomes) + biomes = biomes or "" + minetest.register_ore({ + ore_type = "scatter", + ore = ore, + wherein = { "mcl_deepslate:deepslate", "mcl_deepslate:tuff" }, + clust_scarcity = scarcity, + clust_num_ores = num, + clust_size = size, + y_min = y_min, + y_max = y_max, + biomes = biomes, + }) + end + local ore_mapgen = { + { "coal", 1575, 5, 3, layer_min, layer_max }, + { "coal", 1530, 8, 3, layer_min, layer_max }, + { "coal", 1500, 12, 3, layer_min, layer_max }, + { "iron", 830, 5, 3, layer_min, layer_max }, + { "gold", 4775, 5, 3, layer_min, layer_max }, + { "gold", 6560, 7, 3, layer_min, layer_max }, + { "diamond", 10000, 4, 3, layer_min, mcl_worlds.layer_to_y(12) }, + { "diamond", 5000, 2, 3, layer_min, mcl_worlds.layer_to_y(12) }, + { "diamond", 10000, 8, 3, layer_min, mcl_worlds.layer_to_y(12) }, + { "diamond", 20000, 1, 1, mcl_worlds.layer_to_y(13), mcl_worlds.layer_to_y(15) }, + { "diamond", 20000, 2, 2, mcl_worlds.layer_to_y(13), mcl_worlds.layer_to_y(15) }, + { "redstone", 500, 4, 3, layer_min, mcl_worlds.layer_to_y(13) }, + { "redstone", 800, 7, 4, layer_min, mcl_worlds.layer_to_y(13) }, + { "redstone", 1000, 4, 3, mcl_worlds.layer_to_y(13), mcl_worlds.layer_to_y(15) }, + { "redstone", 1600, 7, 4, mcl_worlds.layer_to_y(13), mcl_worlds.layer_to_y(15) }, + { "lapis", 10000, 7, 4, mcl_worlds.layer_to_y(14), layer_max }, + { "lapis", 12000, 6, 3, mcl_worlds.layer_to_y(10), mcl_worlds.layer_to_y(13) }, + { "lapis", 14000, 5, 3, mcl_worlds.layer_to_y(6), mcl_worlds.layer_to_y(9) }, + { "lapis", 16000, 4, 3, mcl_worlds.layer_to_y(2), mcl_worlds.layer_to_y(5) }, + { "lapis", 18000, 3, 2, mcl_worlds.layer_to_y(0), mcl_worlds.layer_to_y(2) }, + } + for _, o in pairs(ore_mapgen) do + register_ore_mg("mcl_deepslate:deepslate_with_"..o[1], o[2], o[3], o[4], o[5], o[6]) + end + if minetest.get_mapgen_setting("mg_name") == "v6" then + register_ore_mg("mcl_deepslate:deepslate_with_emerald", 14340, 1, 1, layer_min, layer_max) + else + register_ore_mg("mcl_deepslate:deepslate_with_emerald", 16384, 1, 1, mcl_worlds.layer_to_y(4), layer_max, mountains) + end + if copper_mod then + register_ore_mg("mcl_deepslate:deepslate_with_copper", 830, 5, 3, layer_min, layer_max) + minetest.register_ore({ + ore_type = "scatter", + ore = "mcl_copper:stone_with_copper", + wherein = stonelike, + clust_scarcity = 830, + clust_num_ores = 5, + clust_size = 3, + y_min = mcl_vars.mg_overworld_min, + y_max = mcl_worlds.layer_to_y(39), + }) + minetest.register_ore({ + ore_type = "scatter", + ore = "mcl_copper:stone_with_copper", + wherein = stonelike, + clust_scarcity = 1660, + clust_num_ores = 4, + clust_size = 2, + y_min = mcl_worlds.layer_to_y(40), + y_max = mcl_worlds.layer_to_y(63), + }) + end +end +--]] +local function register_deepslate_variant(item, desc, longdesc) + local texture = desc:lower():gsub("% ", "_") + local def = { + description = S(desc), + _doc_items_longdesc = S(longdesc), + _doc_items_hidden = false, + tiles = { "mcl_"..texture..".png" }, + groups = { pickaxey = 1, building_block = 1, material_stone = 1 }, + sounds = mcl_sounds.node_sound_stone_defaults(), + _mcl_blast_resistance = 6, + _mcl_hardness = 3.5, + _mcl_silk_touch_drop = true, + } + if item == "cobbled" then + def.groups.cobble = 1 + end + minetest.register_node("mcl_deepslate:deepslate_"..item, def) + + if item == "bricks" or item == "tiles" then + def.description = S("Cracked "..desc) + def._doc_items_longdesc = S("Cracked "..desc:lower().." are a cracked variant.") + def.tiles = { "mcl_cracked_"..texture..".png" } + minetest.register_node("mcl_deepslate:deepslate_"..item.."_cracked", def) + end + if item ~= "chiseled" then + mcl_stairs.register_stair_and_slab_simple("deepslate_"..item, "mcl_deepslate:deepslate_"..item, S(desc.." Stairs"), S(desc.." Slab"), S("Double "..desc.." Slab")) + mcl_walls.register_wall("mcl_deepslate:deepslate"..item.."wall", S(desc.." Wall"), "mcl_deepslate:deepslate_"..item) + end +end + +local deepslate_variants = { + { "cobbled", "Cobbled Deepslate", "Cobbled deepslate is a stone variant that functions similar to cobblestone or blackstone." }, + { "polished", "Polished Deepslate", "Polished deepslate is the stone-like polished version of deepslate." }, + { "bricks", "Deepslate Bricks", "Deepslate bricks are the brick version of deepslate." }, + { "tiles", "Deepslate Tiles", "Deepslate tiles are a decorative variant of deepslate." }, + { "chiseled", "Chiseled Deepslate", "Chiseled deepslate is the chiseled version of deepslate." }, +} + +for _, dv in pairs(deepslate_variants) do + register_deepslate_variant(dv[1], dv[2], dv[3]) +end + +for i = 1, 3 do + local s = "mcl_deepslate:deepslate_"..deepslate_variants[i][1] + minetest.register_craft({ + output = "mcl_deepslate:deepslate_"..deepslate_variants[i+1][1].." 4", + recipe = { { s, s }, { s, s } } + }) +end + +for _, p in pairs({ "bricks", "tiles" }) do + minetest.register_craft({ + type = "cooking", + output = "mcl_deepslate:deepslate_"..p.."_cracked", + recipe = "mcl_deepslate:deepslate_"..p, + cooktime = 10, + }) +end + +minetest.register_craft({ + type = "cooking", + output = "mcl_deepslate:deepslate", + recipe = cobble, + cooktime = 10, +}) + +minetest.register_craft({ + output = "mcl_deepslate:deepslate_chiseled", + recipe = { + { "mcl_stairs:slab_deepslate_cobbled" }, + { "mcl_stairs:slab_deepslate_cobbled" }, + }, +}) diff --git a/mods/ITEMS/mcl_deepslate/locale/mcl_deepslate.de.tr b/mods/ITEMS/mcl_deepslate/locale/mcl_deepslate.de.tr new file mode 100644 index 0000000000..35cf86869b --- /dev/null +++ b/mods/ITEMS/mcl_deepslate/locale/mcl_deepslate.de.tr @@ -0,0 +1,53 @@ +# textdomain: mcl_deepslate +An infested block is a block from which a silverfish will pop out when it is broken. It looks identical to its normal counterpart.=Ein befallener Block ist ein Block, aus dem ein Silberfisch herausspringt, wenn er abgebaut wird. Er sieht genauso aus wie sein normales Gegenstück. +Chiseled deepslate is the chiseled version of deepslate.=Gemeißelter Tiefenschiefer ist die behauene Version von Tiefenschiefer. +Chiseled Deepslate=Gemeißelter Tiefenschiefer +Cobbled deepslate is a stone variant that functions similar to cobblestone or blackstone.=Bruchtiefenschiefer funktioniert ähnlich wie Bruchstein, hat jedoch eine längere Abbauzeit. +Cobbled Deepslate Slab=Bruchtiefenschieferstufe +Cobbled Deepslate Stairs=Bruchtiefenschiefertreppe +Cobbled Deepslate Wall=Bruchtiefenschiefermauer +Cobbled Deepslate=Bruchtiefenschiefer +Cracked Deepslate Bricks=Rissige Tiefenschieferziegel +Cracked Deepslate Tiles=Rissige Tiefenschieferfliesen +Deepslate bricks are the brick version of deepslate.=Tiefenschieferziegel ist eine Variante des Tiefenschiefers. Er kann als dekorativer Block verwendet werden. +Deepslate Bricks Slab=Tiefenschieferziegelstufe +Deepslate Bricks Stairs=Tiefenschieferziegeltreppe +Deepslate Bricks Wall=Tiefenschieferziegelmauer +Deepslate Bricks=Tiefenschieferziegel +Deepslate coal ore is a variant of coal ore that can generate in deepslate and tuff blobs.=Tiefenschiefer-Steinkohle ist eine Variante von Steinkohle, die in Tiefenschiefer und Tuff generiert werden kann. +Deepslate Coal Ore=Tiefenschiefer-Steinkohle +Deepslate copper ore is a variant of copper ore that can generate in deepslate and tuff blobs.=Tiefenschiefer-Kupfererz ist eine Variante von Kupfererz, die in Tiefenschiefer und Tuff generiert werden kann. +Deepslate Copper Ore=Tiefenschiefer-Kupfererz +Deepslate diamond ore is a variant of diamond ore that can generate in deepslate and tuff blobs.=Tiefenschiefer-Diamanterz ist eine Variante von Diamanterz, die in Tiefenschiefer und Tuff generiert werden kann. +Deepslate Diamond Ore=Tiefenschiefer-Diamanterz +Deepslate emerald ore is a variant of emerald ore that can generate in deepslate and tuff blobs.=Tiefenschiefer-Smaragderz ist eine Variante von Smaragderz, die in Tiefenschiefer und Tuff generiert werden kann. +Deepslate Emerald Ore=Tiefenschiefer-Smaragderz +Deepslate gold ore is a variant of gold ore that can generate in deepslate and tuff blobs.=Tiefenschiefer-Golderz ist eine Variante von Golderz, die in Tiefenschiefer und Tuff generiert werden kann. +Deepslate Gold Ore=Tiefenschiefer-Golderz +Deepslate iron ore is a variant of iron ore that can generate in deepslate and tuff blobs.=Tiefenschiefer-Eisenerz ist eine Variante von Eisenerz, die in Tiefenschiefer und Tuff generiert werden kann. +Deepslate Iron Ore=Tiefenschiefer-Eisenerz +Deepslate is a stone type found deep underground in the Overworld that functions similar to regular stone but is harder than the stone.=Tiefenschiefer ist eine Gesteinsart. Er kann als dekorativer Block verwendet und in viele Varianten weiterverarbeitet werden. +Deepslate Lapis Lazuli Ore=Tiefenschiefer-Lapislazulierz +Deepslate lapis ore is a variant of lapis ore that can generate in deepslate and tuff blobs.=Tiefenschiefer-Lapislazulierz ist eine Variante von Lapislazulierz, die in Tiefenschiefer und Tuff generiert werden kann. +Deepslate redstone ore is a variant of redstone ore that can generate in deepslate and tuff blobs.=Tiefenschiefer-Redstone-Erz ist eine Variante von Redstone-Erz, die in Tiefenschiefer und Tuff generiert werden kann. +Deepslate Redstone Ore=Tiefenschiefer-Redstone-Erz +Deepslate tiles are a decorative variant of deepslate.=Tiefenschieferfliesen ist eine Variante des Tiefenschiefers. Der Block kann als dekorativer Block verwendet werden. +Deepslate Tiles Slab=Tiefenschieferfliesenstufe +Deepslate Tiles Stairs=Tiefenschieferfliesentreppe +Deepslate Tiles Wall=Tiefenschieferfliesenmauer +Deepslate Tiles=Tiefenschieferfliesen +Deepslate=Tiefenschiefer +Double Cobbled Deepslate Slab=Doppelte Bruchtiefenschieferstufe +Double Deepslate Bricks Slab=Doppelte Tiefenschieferziegelstufe +Double Deepslate Tiles Slab=Doppelte Tiefenschieferfliesenstufe +Double Polished Deepslate Slab=Doppelte Polierte Tiefenschieferstufe +Hides a silverfish=Versteckt einen Silberfisch +Infested Deepslate=Befallener Tiefenschiefer +Lit Deepslate Redstone Ore=Leuchtendes Tiefschiefer-Redstone-Erz +Polished deepslate is the stone-like polished version of deepslate.=Polierter Tiefenschiefer ist eine Variante des Tiefenschiefers. Er kann als dekorativer Block verwendet werden. +Polished Deepslate Slab=Polierte Tiefenschieferstufe +Polished Deepslate Stairs=Polierte Tiefenschiefertreppe +Polished Deepslate Wall=Polierte Tiefenschiefermauer +Polished Deepslate=Polierter Tiefenschiefer +Tuff=Tuffstein +Tuff is an ornamental rock formed from volcanic ash, occurring in underground blobs below Y=16.=Der Tuffstein ist ein grauer, vulkanischer Block. diff --git a/mods/ITEMS/mcl_deepslate/locale/template.txt b/mods/ITEMS/mcl_deepslate/locale/template.txt new file mode 100644 index 0000000000..44da92c66b --- /dev/null +++ b/mods/ITEMS/mcl_deepslate/locale/template.txt @@ -0,0 +1,53 @@ +# textdomain: mcl_deepslate +An infested block is a block from which a silverfish will pop out when it is broken. It looks identical to its normal counterpart.= +Chiseled deepslate is the chiseled version of deepslate.= +Chiseled Deepslate= +Cobbled deepslate is a stone variant that functions similar to cobblestone or blackstone.= +Cobbled Deepslate Slab= +Cobbled Deepslate Stairs= +Cobbled Deepslate Wall= +Cobbled Deepslate= +Cracked Deepslate Bricks= +Cracked Deepslate Tiles= +Deepslate bricks are the brick version of deepslate.= +Deepslate Bricks Slab= +Deepslate Bricks Stairs= +Deepslate Bricks Wall= +Deepslate Bricks= +Deepslate coal ore is a variant of coal ore that can generate in deepslate and tuff blobs.= +Deepslate Coal Ore= +Deepslate copper ore is a variant of copper ore that can generate in deepslate and tuff blobs.= +Deepslate Copper Ore= +Deepslate diamond ore is a variant of diamond ore that can generate in deepslate and tuff blobs.= +Deepslate Diamond Ore= +Deepslate emerald ore is a variant of emerald ore that can generate in deepslate and tuff blobs.= +Deepslate Emerald Ore= +Deepslate gold ore is a variant of gold ore that can generate in deepslate and tuff blobs.= +Deepslate Gold Ore= +Deepslate iron ore is a variant of iron ore that can generate in deepslate and tuff blobs.= +Deepslate Iron Ore= +Deepslate is a stone type found deep underground in the Overworld that functions similar to regular stone but is harder than the stone.= +Deepslate Lapis Lazuli Ore= +Deepslate lapis ore is a variant of lapis ore that can generate in deepslate and tuff blobs.= +Deepslate redstone ore is a variant of redstone ore that can generate in deepslate and tuff blobs.= +Deepslate Redstone Ore= +Deepslate tiles are a decorative variant of deepslate.= +Deepslate Tiles Slab= +Deepslate Tiles Stairs= +Deepslate Tiles Wall= +Deepslate Tiles= +Deepslate= +Double Cobbled Deepslate Slab= +Double Deepslate Bricks Slab= +Double Deepslate Tiles Slab= +Double Polished Deepslate Slab= +Hides a silverfish= +Infested Deepslate= +Lit Deepslate Redstone Ore= +Polished deepslate is the stone-like polished version of deepslate.= +Polished Deepslate Slab= +Polished Deepslate Stairs= +Polished Deepslate Wall= +Polished Deepslate= +Tuff= +Tuff is an ornamental rock formed from volcanic ash, occurring in underground blobs below Y=16.= diff --git a/mods/ITEMS/mcl_deepslate/mod.conf b/mods/ITEMS/mcl_deepslate/mod.conf new file mode 100644 index 0000000000..7e9a44cfc6 --- /dev/null +++ b/mods/ITEMS/mcl_deepslate/mod.conf @@ -0,0 +1,4 @@ +name = mcl_deepslate +author = NO11 +depends = mcl_raw_ores, mcl_core, mcl_sounds, mcl_dye, mcl_util, screwdriver, mobs_mc, walkover, mcl_walls, mcl_stairs, mcl_brewing, mcl_mobitems, mcl_furnaces, mcl_farming, mcl_worlds +optional_depends = mcl_copper diff --git a/mods/ITEMS/mcl_deepslate/textures/mcl_chiseled_deepslate.png b/mods/ITEMS/mcl_deepslate/textures/mcl_chiseled_deepslate.png new file mode 100644 index 0000000000..19955d5787 Binary files /dev/null and b/mods/ITEMS/mcl_deepslate/textures/mcl_chiseled_deepslate.png differ diff --git a/mods/ITEMS/mcl_deepslate/textures/mcl_cobbled_deepslate.png b/mods/ITEMS/mcl_deepslate/textures/mcl_cobbled_deepslate.png new file mode 100644 index 0000000000..67dcd172cd Binary files /dev/null and b/mods/ITEMS/mcl_deepslate/textures/mcl_cobbled_deepslate.png differ diff --git a/mods/ITEMS/mcl_deepslate/textures/mcl_cracked_deepslate_bricks.png b/mods/ITEMS/mcl_deepslate/textures/mcl_cracked_deepslate_bricks.png new file mode 100644 index 0000000000..a2cf287ebf Binary files /dev/null and b/mods/ITEMS/mcl_deepslate/textures/mcl_cracked_deepslate_bricks.png differ diff --git a/mods/ITEMS/mcl_deepslate/textures/mcl_cracked_deepslate_tiles.png b/mods/ITEMS/mcl_deepslate/textures/mcl_cracked_deepslate_tiles.png new file mode 100644 index 0000000000..c62f36d926 Binary files /dev/null and b/mods/ITEMS/mcl_deepslate/textures/mcl_cracked_deepslate_tiles.png differ diff --git a/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate.png b/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate.png new file mode 100644 index 0000000000..68cd507d64 Binary files /dev/null and b/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate.png differ diff --git a/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_bricks.png b/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_bricks.png new file mode 100644 index 0000000000..b6ef3b4bd7 Binary files /dev/null and b/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_bricks.png differ diff --git a/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_coal_ore.png b/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_coal_ore.png new file mode 100644 index 0000000000..ae42a31861 Binary files /dev/null and b/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_coal_ore.png differ diff --git a/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_copper_ore.png b/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_copper_ore.png new file mode 100644 index 0000000000..140adbc0a7 Binary files /dev/null and b/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_copper_ore.png differ diff --git a/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_diamond_ore.png b/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_diamond_ore.png new file mode 100644 index 0000000000..67afa14fe5 Binary files /dev/null and b/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_diamond_ore.png differ diff --git a/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_emerald_ore.png b/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_emerald_ore.png new file mode 100644 index 0000000000..3041551c97 Binary files /dev/null and b/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_emerald_ore.png differ diff --git a/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_gold_ore.png b/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_gold_ore.png new file mode 100644 index 0000000000..1cf0c81539 Binary files /dev/null and b/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_gold_ore.png differ diff --git a/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_iron_ore.png b/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_iron_ore.png new file mode 100644 index 0000000000..4e94d6a80f Binary files /dev/null and b/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_iron_ore.png differ diff --git a/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_lapis_ore.png b/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_lapis_ore.png new file mode 100644 index 0000000000..31781c1c62 Binary files /dev/null and b/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_lapis_ore.png differ diff --git a/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_redstone_ore.png b/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_redstone_ore.png new file mode 100644 index 0000000000..3b979ed515 Binary files /dev/null and b/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_redstone_ore.png differ diff --git a/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_tiles.png b/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_tiles.png new file mode 100644 index 0000000000..43fe0f319a Binary files /dev/null and b/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_tiles.png differ diff --git a/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_top.png b/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_top.png new file mode 100644 index 0000000000..9e66d7b9a3 Binary files /dev/null and b/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_top.png differ diff --git a/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_tuff.png b/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_tuff.png new file mode 100644 index 0000000000..f1c8fc2a11 Binary files /dev/null and b/mods/ITEMS/mcl_deepslate/textures/mcl_deepslate_tuff.png differ diff --git a/mods/ITEMS/mcl_deepslate/textures/mcl_polished_deepslate.png b/mods/ITEMS/mcl_deepslate/textures/mcl_polished_deepslate.png new file mode 100644 index 0000000000..cfbc9c4189 Binary files /dev/null and b/mods/ITEMS/mcl_deepslate/textures/mcl_polished_deepslate.png differ diff --git a/mods/ITEMS/mcl_raw_ores/init.lua b/mods/ITEMS/mcl_raw_ores/init.lua new file mode 100644 index 0000000000..12ca8d2221 --- /dev/null +++ b/mods/ITEMS/mcl_raw_ores/init.lua @@ -0,0 +1,50 @@ +local function register_raw_ore(description, n) + local ore = description:lower() + local n = n or "" + local raw_ingot = "mcl_raw_ores:raw_"..ore + local texture = "mcl_raw_ores_raw_"..ore + + minetest.register_craftitem(raw_ingot, { + description = ("Raw "..description), + _doc_items_longdesc = ("Raw "..ore..". Mine a"..n.." "..ore.." ore to get it."), + inventory_image = texture..".png", + groups = { craftitem = 1 }, + }) + + minetest.register_node(raw_ingot.."_block", { + description = ("Block of Raw "..description), + _doc_items_longdesc = ("A block of raw "..ore.." is mostly a decorative block but also useful as a compact storage of raw "..ore.."."), + tiles = { texture.."_block.png" }, + is_ground_content = false, + groups = { pickaxey = 2, building_block = 1 }, + sounds = mcl_sounds.node_sound_metal_defaults(), + _mcl_blast_resistance = 6, + _mcl_hardness = 5, + }) + + minetest.register_craft({ + output = raw_ingot.."_block", + recipe = { + { raw_ingot, raw_ingot, raw_ingot }, + { raw_ingot, raw_ingot, raw_ingot }, + { raw_ingot, raw_ingot, raw_ingot }, + }, + }) + + minetest.register_craft({ + type = "cooking", + output = "mcl_core:"..ore.."_ingot", + recipe = raw_ingot, + cooktime = 10, + }) + + minetest.register_craft({ + output = raw_ingot.." 9", + recipe = { + { raw_ingot.."_block" }, + }, + }) +end + +register_raw_ore("Iron", "n") +register_raw_ore("Gold") diff --git a/mods/ITEMS/mcl_raw_ores/mod.conf b/mods/ITEMS/mcl_raw_ores/mod.conf new file mode 100644 index 0000000000..a3ee955c7a --- /dev/null +++ b/mods/ITEMS/mcl_raw_ores/mod.conf @@ -0,0 +1,4 @@ +name = mcl_raw_ores +author = NO11 +depends = mcl_core +description = Adds raw iron and raw gold. \ No newline at end of file diff --git a/mods/ITEMS/mcl_raw_ores/textures/mcl_raw_ores_raw_gold.png b/mods/ITEMS/mcl_raw_ores/textures/mcl_raw_ores_raw_gold.png new file mode 100644 index 0000000000..9b3e14e883 Binary files /dev/null and b/mods/ITEMS/mcl_raw_ores/textures/mcl_raw_ores_raw_gold.png differ diff --git a/mods/ITEMS/mcl_raw_ores/textures/mcl_raw_ores_raw_gold_block.png b/mods/ITEMS/mcl_raw_ores/textures/mcl_raw_ores_raw_gold_block.png new file mode 100644 index 0000000000..71e8767b3f Binary files /dev/null and b/mods/ITEMS/mcl_raw_ores/textures/mcl_raw_ores_raw_gold_block.png differ diff --git a/mods/ITEMS/mcl_raw_ores/textures/mcl_raw_ores_raw_iron.png b/mods/ITEMS/mcl_raw_ores/textures/mcl_raw_ores_raw_iron.png new file mode 100644 index 0000000000..73076a67e0 Binary files /dev/null and b/mods/ITEMS/mcl_raw_ores/textures/mcl_raw_ores_raw_iron.png differ diff --git a/mods/ITEMS/mcl_raw_ores/textures/mcl_raw_ores_raw_iron_block.png b/mods/ITEMS/mcl_raw_ores/textures/mcl_raw_ores_raw_iron_block.png new file mode 100644 index 0000000000..f8b10745d7 Binary files /dev/null and b/mods/ITEMS/mcl_raw_ores/textures/mcl_raw_ores_raw_iron_block.png differ