From d68787ea046b534ee92b4854bb0086753f7f40a1 Mon Sep 17 00:00:00 2001 From: teknomunk Date: Tue, 7 May 2024 10:34:31 +0000 Subject: [PATCH] Fix indestructable blocks provided by mods --- mods/CORE/_mcl_autogroup/init.lua | 37 ++++++++++++++++++++++++++++++ mods/ITEMS/mcl_core/nodes_base.lua | 2 +- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/mods/CORE/_mcl_autogroup/init.lua b/mods/CORE/_mcl_autogroup/init.lua index 884508032..328cf3da5 100644 --- a/mods/CORE/_mcl_autogroup/init.lua +++ b/mods/CORE/_mcl_autogroup/init.lua @@ -312,9 +312,45 @@ function mcl_autogroup.get_wear(toolname, diggroup) return math.ceil(65535 / uses) end +local GROUP_MAP = { + ["choppy"] = "axey", + ["oddly_breakable_by_hand"] = "handy", + ["cracky"] = "pickaxey", + ["crumbly"] = "shovely", +} + +function mcl_autogroup.mod_compatibility(groups, ndef) + local grouped = false + for name,_ in pairs(groups) do + local new_group = GROUP_MAP[name] + if new_group then + groups[new_group] = 1 + ndef.groups[new_group] = 1 + end + if mcl_autogroup.registered_diggroups[name] then + grouped = true + end + end + + if not grouped then + groups.handy = 1 + end +end + local function overwrite() + local count = 0 for nname, ndef in pairs(minetest.registered_nodes) do + count = count + 1 local newgroups = table.copy(ndef.groups) + + if not newgroups.indestructable then + ndef.diggable = true + mcl_autogroup.mod_compatibility(newgroups, ndef) + if not ndef._mcl_hardness then + ndef._mcl_hardness = 0 + end + end + if (nname ~= "ignore" and ndef.diggable) then -- Automatically assign the "solid" group for solid nodes if (ndef.walkable == nil or ndef.walkable == true) @@ -359,6 +395,7 @@ local function overwrite() }) end end + minetest.log("verbose","Total registered blocks: "..tostring(count)) for tname, tdef in pairs(minetest.registered_items) do -- Assign groupcaps for digging the registered digging groups diff --git a/mods/ITEMS/mcl_core/nodes_base.lua b/mods/ITEMS/mcl_core/nodes_base.lua index db2561082..db56314ce 100644 --- a/mods/ITEMS/mcl_core/nodes_base.lua +++ b/mods/ITEMS/mcl_core/nodes_base.lua @@ -728,7 +728,7 @@ minetest.register_node("mcl_core:bedrock", { S("In the End dimension, starting a fire on this block will create an eternal fire."), tiles = {"mcl_core_bedrock.png"}, stack_max = 64, - groups = {creative_breakable=1, building_block=1, material_stone=1}, + groups = {creative_breakable=1, building_block=1, material_stone=1, indestructable=1}, sounds = mcl_sounds.node_sound_stone_defaults(), is_ground_content = false, on_blast = function() end,