From b7f8af4365d3988d3546964118f51a0efaf3ee68 Mon Sep 17 00:00:00 2001 From: JoseDouglas26 Date: Fri, 14 Jun 2024 11:08:54 -0300 Subject: [PATCH] Ore migration --- mods/CORE/voxelibre/init.lua | 7 +- mods/ITEMS/mcl_copper/init.lua | 5 -- mods/ITEMS/mcl_copper/nodes.lua | 15 ---- mods/ITEMS/mcl_core/nodes_base.lua | 14 ---- mods/ITEMS/mcl_deepslate/init.lua | 5 -- mods/MAPGEN/mcl_mapgen_core/init.lua | 2 +- mods/MAPGEN/mcl_mapgen_core/ores.lua | 64 +++++++++--------- mods/blocks/natural/mineral.lua | 45 ++++++++++++ textures/ingredients/ingredients_coal.png | Bin 0 -> 328 bytes .../ingredients/ingredients_raw_copper.png | Bin 0 -> 7948 bytes textures/ingredients/ingredients_raw_gold.png | Bin 0 -> 6528 bytes textures/ingredients/ingredients_raw_iron.png | Bin 0 -> 6942 bytes textures/natural/natural_coal_ore.png | Bin 0 -> 688 bytes textures/natural/natural_copper_ore.png | Bin 0 -> 7978 bytes .../natural/natural_deepslate_coal_ore.png | Bin 0 -> 6760 bytes .../natural/natural_deepslate_copper_ore.png | Bin 0 -> 8134 bytes 16 files changed, 84 insertions(+), 73 deletions(-) create mode 100644 mods/blocks/natural/mineral.lua create mode 100644 textures/ingredients/ingredients_coal.png create mode 100644 textures/ingredients/ingredients_raw_copper.png create mode 100644 textures/ingredients/ingredients_raw_gold.png create mode 100644 textures/ingredients/ingredients_raw_iron.png create mode 100644 textures/natural/natural_coal_ore.png create mode 100644 textures/natural/natural_copper_ore.png create mode 100644 textures/natural/natural_deepslate_coal_ore.png create mode 100644 textures/natural/natural_deepslate_copper_ore.png diff --git a/mods/CORE/voxelibre/init.lua b/mods/CORE/voxelibre/init.lua index bb557be79..b4e8e0025 100644 --- a/mods/CORE/voxelibre/init.lua +++ b/mods/CORE/voxelibre/init.lua @@ -23,9 +23,14 @@ end _G.table.copy = table.copy _G.table.merge = table.merge +---comment +---@param string string +---@param position integer +---@param substring string +---@return string function string.insert(string, position, substring) if position < 1 or position > #string + 1 then - return + return string end local part1 = string.sub(string, 1, position - 1) diff --git a/mods/ITEMS/mcl_copper/init.lua b/mods/ITEMS/mcl_copper/init.lua index 7d597ee2a..e69de29bb 100644 --- a/mods/ITEMS/mcl_copper/init.lua +++ b/mods/ITEMS/mcl_copper/init.lua @@ -1,5 +0,0 @@ -local path = minetest.get_modpath("mcl_copper") -- Getting mcl_copper mod path - -mcl_copper = {} -- Initializing global variable mcl_copper. - -dofile(path .. "/nodes.lua") diff --git a/mods/ITEMS/mcl_copper/nodes.lua b/mods/ITEMS/mcl_copper/nodes.lua index ffa688377..e69de29bb 100644 --- a/mods/ITEMS/mcl_copper/nodes.lua +++ b/mods/ITEMS/mcl_copper/nodes.lua @@ -1,15 +0,0 @@ -local S = minetest.get_translator("mcl_copper") - --- Registering specific blocks. -minetest.register_node("mcl_copper:stone_with_copper", { - description = S("Copper Ore"), - tiles = {"default_stone.png^mcl_copper_ore.png"}, - is_ground_content = true, - groups = {pickaxey = 3, building_block = 1, material_stone = 1, blast_furnace_smeltable=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, -}) diff --git a/mods/ITEMS/mcl_core/nodes_base.lua b/mods/ITEMS/mcl_core/nodes_base.lua index d474e52a0..35a161238 100644 --- a/mods/ITEMS/mcl_core/nodes_base.lua +++ b/mods/ITEMS/mcl_core/nodes_base.lua @@ -20,20 +20,6 @@ mcl_core.fortune_drop_ore = { multiply = true, } -minetest.register_node("mcl_core:stone_with_coal", { - description = S("Coal Ore"), - tiles = {"mcl_core_coal_ore.png"}, - is_ground_content = true, - stack_max = 64, - groups = {pickaxey=1, building_block=1, material_stone=1, xp=1, blast_furnace_smeltable=1}, - drop = "mcl_core:coal_lump", - 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_core:stone_with_iron", { description = S("Iron Ore"), tiles = {"mcl_core_iron_ore.png"}, diff --git a/mods/ITEMS/mcl_deepslate/init.lua b/mods/ITEMS/mcl_deepslate/init.lua index 4a87c0ed6..a0bd36873 100644 --- a/mods/ITEMS/mcl_deepslate/init.lua +++ b/mods/ITEMS/mcl_deepslate/init.lua @@ -69,7 +69,6 @@ local lapis_drops = { } 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 }, @@ -81,10 +80,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", 3, 4) -end - local redstone_timer = 68.28 local function redstone_ore_activate(pos, node, puncher, pointed_thing) diff --git a/mods/MAPGEN/mcl_mapgen_core/init.lua b/mods/MAPGEN/mcl_mapgen_core/init.lua index 49538aff7..2fddd5698 100644 --- a/mods/MAPGEN/mcl_mapgen_core/init.lua +++ b/mods/MAPGEN/mcl_mapgen_core/init.lua @@ -33,7 +33,7 @@ minetest.register_alias("mapgen_lava_source", "air") -- Built-in lava generator minetest.register_alias("mapgen_cobble", "mcl_core:cobble") minetest.register_alias("mapgen_mossycobble", "mcl_core:mossycobble") minetest.register_alias("mapgen_junglegrass", "mcl_flowers:fern") -minetest.register_alias("mapgen_stone_with_coal", "mcl_core:stone_with_coal") +minetest.register_alias("mapgen_stone_with_coal", "blocks:coal_ore") minetest.register_alias("mapgen_stone_with_iron", "mcl_core:stone_with_iron") minetest.register_alias("mapgen_desert_sand", "mcl_core:sand") minetest.register_alias("mapgen_desert_stone", "mcl_core:sandstone") diff --git a/mods/MAPGEN/mcl_mapgen_core/ores.lua b/mods/MAPGEN/mcl_mapgen_core/ores.lua index 89c27ec76..af8cc72c8 100644 --- a/mods/MAPGEN/mcl_mapgen_core/ores.lua +++ b/mods/MAPGEN/mcl_mapgen_core/ores.lua @@ -228,7 +228,7 @@ if minetest.settings:get_bool("mcl_generate_ores", true) then -- Common spawn minetest.register_ore({ ore_type = "scatter", - ore = "mcl_core:stone_with_coal", + ore = "blocks:coal_ore", wherein = stonelike, clust_scarcity = 525*3, clust_num_ores = 5, @@ -238,7 +238,7 @@ if minetest.settings:get_bool("mcl_generate_ores", true) then }) minetest.register_ore({ ore_type = "scatter", - ore = "mcl_core:stone_with_coal", + ore = "blocks:coal_ore", wherein = stonelike, clust_scarcity = 510*3, clust_num_ores = 8, @@ -248,7 +248,7 @@ if minetest.settings:get_bool("mcl_generate_ores", true) then }) minetest.register_ore({ ore_type = "scatter", - ore = "mcl_core:stone_with_coal", + ore = "blocks:coal_ore", wherein = stonelike, clust_scarcity = 500*3, clust_num_ores = 12, @@ -260,7 +260,7 @@ if minetest.settings:get_bool("mcl_generate_ores", true) then -- Medium-rare spawn minetest.register_ore({ ore_type = "scatter", - ore = "mcl_core:stone_with_coal", + ore = "blocks:coal_ore", wherein = stonelike, clust_scarcity = 550*3, clust_num_ores = 4, @@ -270,7 +270,7 @@ if minetest.settings:get_bool("mcl_generate_ores", true) then }) minetest.register_ore({ ore_type = "scatter", - ore = "mcl_core:stone_with_coal", + ore = "blocks:coal_ore", wherein = stonelike, clust_scarcity = 525*3, clust_num_ores = 6, @@ -280,7 +280,7 @@ if minetest.settings:get_bool("mcl_generate_ores", true) then }) minetest.register_ore({ ore_type = "scatter", - ore = "mcl_core:stone_with_coal", + ore = "blocks:coal_ore", wherein = stonelike, clust_scarcity = 500*3, clust_num_ores = 8, @@ -292,7 +292,7 @@ if minetest.settings:get_bool("mcl_generate_ores", true) then -- Rare spawn minetest.register_ore({ ore_type = "scatter", - ore = "mcl_core:stone_with_coal", + ore = "blocks:coal_ore", wherein = stonelike, clust_scarcity = 600*3, clust_num_ores = 3, @@ -302,7 +302,7 @@ if minetest.settings:get_bool("mcl_generate_ores", true) then }) minetest.register_ore({ ore_type = "scatter", - ore = "mcl_core:stone_with_coal", + ore = "blocks:coal_ore", wherein = stonelike, clust_scarcity = 550*3, clust_num_ores = 4, @@ -312,7 +312,7 @@ if minetest.settings:get_bool("mcl_generate_ores", true) then }) minetest.register_ore({ ore_type = "scatter", - ore = "mcl_core:stone_with_coal", + ore = "blocks:coal_ore", wherein = stonelike, clust_scarcity = 500*3, clust_num_ores = 5, @@ -690,37 +690,37 @@ if minetest.settings:get_bool("mcl_generate_ores", true) then { "coal", 1575, 5, 3, deepslate_min, deepslate_max }, { "coal", 1530, 8, 3, deepslate_min, deepslate_max }, { "coal", 1500, 12, 3, deepslate_min, deepslate_max }, - { "iron", 830, 5, 3, deepslate_min, deepslate_max }, - { "gold", 4775, 5, 3, deepslate_min, deepslate_max }, - { "gold", 6560, 7, 3, deepslate_min, deepslate_max }, - { "diamond", 10000, 4, 3, deepslate_min, mcl_worlds.layer_to_y(12) }, - { "diamond", 5000, 2, 3, deepslate_min, mcl_worlds.layer_to_y(12) }, - { "diamond", 10000, 8, 3, deepslate_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, deepslate_min, mcl_worlds.layer_to_y(13) }, - { "redstone", 800, 7, 4, deepslate_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), deepslate_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) }, + --{ "iron", 830, 5, 3, deepslate_min, deepslate_max }, + --{ "gold", 4775, 5, 3, deepslate_min, deepslate_max }, + --{ "gold", 6560, 7, 3, deepslate_min, deepslate_max }, + --{ "diamond", 10000, 4, 3, deepslate_min, mcl_worlds.layer_to_y(12) }, + --{ "diamond", 5000, 2, 3, deepslate_min, mcl_worlds.layer_to_y(12) }, + --{ "diamond", 10000, 8, 3, deepslate_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, deepslate_min, mcl_worlds.layer_to_y(13) }, + --{ "redstone", 800, 7, 4, deepslate_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), deepslate_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]) + register_ore_mg("blocks:deepslate_"..o[1].."_ore", 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, deepslate_min, deepslate_max) + --register_ore_mg("mcl_deepslate:deepslate_with_emerald", 14340, 1, 1, deepslate_min, deepslate_max) else - register_ore_mg("mcl_deepslate:deepslate_with_emerald", 16384, 1, 1, mcl_worlds.layer_to_y(4), deepslate_max, mountains) + --register_ore_mg("mcl_deepslate:deepslate_with_emerald", 16384, 1, 1, mcl_worlds.layer_to_y(4), deepslate_max, mountains) end if copper_mod then - register_ore_mg("mcl_deepslate:deepslate_with_copper", 830, 5, 3, deepslate_min, deepslate_max) + register_ore_mg("blocks:deepslate_copper_ore", 830, 5, 3, deepslate_min, deepslate_max) minetest.register_ore({ ore_type = "scatter", - ore = "mcl_copper:stone_with_copper", + ore = "blocks:copper_ore", wherein = stonelike, clust_scarcity = 830, clust_num_ores = 5, @@ -730,7 +730,7 @@ if minetest.settings:get_bool("mcl_generate_ores", true) then }) minetest.register_ore({ ore_type = "scatter", - ore = "mcl_copper:stone_with_copper", + ore = "blocks:copper_ore", wherein = stonelike, clust_scarcity = 1660, clust_num_ores = 4, diff --git a/mods/blocks/natural/mineral.lua b/mods/blocks/natural/mineral.lua new file mode 100644 index 000000000..b46e71c6a --- /dev/null +++ b/mods/blocks/natural/mineral.lua @@ -0,0 +1,45 @@ +local common_defs = { + deepslate = { + _mcl_blast_resistance = 3, + _mcl_hardness = 4.5, + _mcl_silk_touch_drop = true, + groups = {natural_blocks = 1}, + sounds = mcl_sounds.node_sound_stone_defaults() + }, + stone = { + _mcl_blast_resistance = 3, + _mcl_hardness = 3, + _mcl_silk_touch_drop = true, + groups = {natural_blocks = 1}, + sounds = mcl_sounds.node_sound_stone_defaults() + } +} + +local overworld_ores = { + ["coal"] = { + drop = "items:coal", + groups = {coal_ores = 1, pickaxey = 1} + }, + ["copper"] = { + drop = { + items = { + {items = {"items:raw_copper 5"}, rarity = 4}, + {items = {"items:raw_copper 4"}, rarity = 4}, + {items = {"items:raw_copper 3"}, rarity = 4}, + {items = {"items:raw_copper 2"}} + }, + max_items = 1 + }, + groups = {copper_ores = 1, pickaxey = 3} + } +} + +for identifier, definitions in pairs(overworld_ores) do + identifier = identifier.."_ore" + + voxelibre.register_block(identifier, table.merge(common_defs.stone, definitions)) + + identifier = "deepslate_"..identifier + + voxelibre.register_block(identifier, table.merge(common_defs.deepslate, definitions)) +end diff --git a/textures/ingredients/ingredients_coal.png b/textures/ingredients/ingredients_coal.png new file mode 100644 index 0000000000000000000000000000000000000000..846f77553c16cd65677b855fd3b3ea4fe9b0d0fe GIT binary patch literal 328 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85sEXfiUAMr;P`Ig6t)pzOL*~*aR4KdA1*MKMxc-;pyTSVsU!! zr!Ikm~+{KBn{x}vwI960oIXM+aos-O#MjjfCcZ`cdwv8y^dPFyOYYRGV4&%F(= zm%UA!wBW&%rNR|&*fVnHq=W{fXfifT;);@HH_v^3WOeM0Sbc^E3e{O0aXHCTjtF@2 zc$jv+InEz<@YuGw9}?|P`UH3%-S_^T{ks1PZ(P#3(O*(;)BM2y;QhAD?GKpa?q<1r TG!~@;{lwtu>gTe~DWM4fA2)%& literal 0 HcmV?d00001 diff --git a/textures/ingredients/ingredients_raw_copper.png b/textures/ingredients/ingredients_raw_copper.png new file mode 100644 index 0000000000000000000000000000000000000000..73eb5cd0ee2bae8c70badff2d11072f5854ac915 GIT binary patch literal 7948 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