From 00c8c53a5713a2c78dff4619f027834deda60821 Mon Sep 17 00:00:00 2001 From: cora Date: Wed, 31 Aug 2022 02:22:42 +0200 Subject: [PATCH] Enable deepslate and copper generation --- mods/ITEMS/mcl_deepslate/init.lua | 196 ++------------------------- mods/MAPGEN/mcl_mapgen_core/mod.conf | 4 +- mods/MAPGEN/mcl_mapgen_core/ores.lua | 175 ++++++++++++++++++++++++ settingtypes.txt | 3 + 4 files changed, 192 insertions(+), 186 deletions(-) diff --git a/mods/ITEMS/mcl_deepslate/init.lua b/mods/ITEMS/mcl_deepslate/init.lua index 6b03358e29..3df4abc51d 100644 --- a/mods/ITEMS/mcl_deepslate/init.lua +++ b/mods/ITEMS/mcl_deepslate/init.lua @@ -1,21 +1,15 @@ 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", -} -]] +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:deepslate", { description = S("Deepslate"), @@ -34,12 +28,6 @@ minetest.register_node("mcl_deepslate:deepslate", { _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."), @@ -198,173 +186,6 @@ minetest.register_node("mcl_deepslate:deepslate_with_redstone_lit", { }, }) -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 = { @@ -424,6 +245,13 @@ for _, p in pairs({ "bricks", "tiles" }) do }) end +minetest.register_craft({ + type = "cooking", + output = "mesecons:redstone", + recipe = "mcl_deepslate:deepslate_with_redstone", + cooktime = 10, +}) + minetest.register_craft({ type = "cooking", output = "mcl_deepslate:deepslate", diff --git a/mods/MAPGEN/mcl_mapgen_core/mod.conf b/mods/MAPGEN/mcl_mapgen_core/mod.conf index 9f7d9ebaa2..6c001c1e3a 100644 --- a/mods/MAPGEN/mcl_mapgen_core/mod.conf +++ b/mods/MAPGEN/mcl_mapgen_core/mod.conf @@ -1,5 +1,5 @@ name = mcl_mapgen_core author = Wuzzy description = The core of the MCL2 mapgen -depends = mcl_init, mcl_core, biomeinfo, mcl_worlds, mcl_cocoas, mcl_sponges, mcl_ocean, mcl_stairs, mcl_monster_eggs, mcl_structures -optional_depends = mclx_core +depends = mcl_init, mcl_core, mcl_deepslate, biomeinfo, mcl_worlds, mcl_cocoas, mcl_sponges, mcl_ocean, mcl_stairs, mcl_monster_eggs, mcl_structures +optional_depends = mclx_core, mcl_copper diff --git a/mods/MAPGEN/mcl_mapgen_core/ores.lua b/mods/MAPGEN/mcl_mapgen_core/ores.lua index 687e0ba410..9313477e0b 100644 --- a/mods/MAPGEN/mcl_mapgen_core/ores.lua +++ b/mods/MAPGEN/mcl_mapgen_core/ores.lua @@ -1,3 +1,15 @@ + +local deepslate_max = mcl_worlds.layer_to_y(16) +local deepslate_min = mcl_vars.mg_overworld_min + +local copper_mod = minetest.get_modpath("mcl_copper") + +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", +} + -- Diorite, andesite and granite local specialstones = { "mcl_core:diorite", "mcl_core:andesite", "mcl_core:granite" } for s=1, #specialstones do @@ -91,6 +103,98 @@ minetest.register_ore({ }) +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 = deepslate_min, + y_max = deepslate_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 = deepslate_min, + y_max = deepslate_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", + } +}) + +-- DEEPSLATE +if minetest.settings:get_bool("mcl_generate_deepslate", true) then + + 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 = deepslate_min, + y_max = deepslate_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 = deepslate_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 = deepslate_max, + }) + +end + if minetest.settings:get_bool("mcl_generate_ores", true) then -- -- Coal @@ -540,6 +644,77 @@ if minetest.settings:get_bool("mcl_generate_ores", true) then y_min = mcl_worlds.layer_to_y(31), y_max = mcl_worlds.layer_to_y(32), }) + + if minetest.settings:get_bool("mcl_generate_deepslate", 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, 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) }, + } + 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, 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) + end + if copper_mod then + register_ore_mg("mcl_deepslate:deepslate_with_copper", 830, 5, 3, deepslate_min, deepslate_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 end if not superflat then diff --git a/settingtypes.txt b/settingtypes.txt index 3d0ce9c05b..cc929555c9 100644 --- a/settingtypes.txt +++ b/settingtypes.txt @@ -156,6 +156,9 @@ mcl_generate_fallen_logs (Generate fallen logs) bool false # But creating new flat worlds after changing this setting should be safe. mcl_superflat_classic (Classic superflat map generation) bool false +# If disabled, no deepslate will be generated. +mcl_generate_deepslate (Generate Deepslate) bool true + # If disabled, no ores will be generated. mcl_generate_ores (Generate Ores) bool true