From a0580f9f20fd63eba87c0b64eb381164c0a3d6aa Mon Sep 17 00:00:00 2001
From: blut <stuff@waifu.club>
Date: Mon, 3 Feb 2025 14:32:10 +0100
Subject: [PATCH] mesecons_gamecompat: Fix Mineclonia support

Fix node aliases
Synchronize unmovable_by_piston (node group)
Synchronize _mcl_pistons_unmovable (entity definition)
Use mcl_redstone_torch:redstoneblock (doesn't seem to interfere with the redstone functionality)
Automatic bed and door mvps stopper registration
---
 mesecons_gamecompat/compat_mcla.lua | 44 ++++++++++++++++++++++++++---
 1 file changed, 40 insertions(+), 4 deletions(-)

diff --git a/mesecons_gamecompat/compat_mcla.lua b/mesecons_gamecompat/compat_mcla.lua
index 0d1b315..384dbc6 100644
--- a/mesecons_gamecompat/compat_mcla.lua
+++ b/mesecons_gamecompat/compat_mcla.lua
@@ -7,13 +7,13 @@ minetest.register_alias("mesecons_gamecompat:coalblock", "mcl_core:coalblock")
 minetest.register_alias("mesecons_gamecompat:cobble", "mcl_core:cobble")
 minetest.register_alias("mesecons_gamecompat:glass", "mcl_core:glass")
 minetest.register_alias("mesecons_gamecompat:lava_source", "mcl_core:lava_source")
-minetest.register_alias("mesecons_gamecompat:mese", "mesecons:redstoneblock")
-minetest.register_alias("mesecons_gamecompat:mese_crystal", "mesecoms:redstone")
-minetest.register_alias("mesecons_gamecompat:mese_crystal_fragment", "mesecons:redstone")
+minetest.register_alias("mesecons_gamecompat:mese", "mcl_redstone_torch:redstoneblock")
+minetest.register_alias("mesecons_gamecompat:mese_crystal", "mcl_redstone:redstone")
+minetest.register_alias("mesecons_gamecompat:mese_crystal_fragment", "mcl_redstone:redstone")
 minetest.register_alias("mesecons_gamecompat:obsidian_glass", "mcl_core:glass")
 minetest.register_alias("mesecons_gamecompat:stone", "mcl_core:stone")
 minetest.register_alias("mesecons_gamecompat:steel_ingot", "mcl_core:iron_ingot")
-minetest.register_alias("mesecons_gamecompat:steelblock", "mcl_core:steelblock")
+minetest.register_alias("mesecons_gamecompat:steelblock", "mcl_core:ironblock")
 minetest.register_alias("mesecons_gamecompat:torch", "mcl_torches:torch")
 
 if minetest.get_modpath("mcl_dyes") then
@@ -42,6 +42,42 @@ end
 
 mesecon.texture.steel_block = "default_steel_block.png"
 
+if minetest.get_modpath("mesecons_mvps") then
+	for k,v in pairs(core.registered_nodes) do
+		local is_stopper = mesecon.mvps_stoppers[k]
+		if v.groups and v.groups.unmovable_by_piston then
+			mesecon.register_mvps_stopper(k)
+		end
+		if is_stopper then
+			local groups = table.copy(v.groups or {})
+			groups.unmovable_by_piston = 1
+			v.groups = groups
+			core.register_node(":"..k, v)
+		end
+	end
+	for k,v in pairs(core.registered_entities) do
+		local is_unmov = mesecon.mvps_unmov[k]
+		if v._mcl_pistons_unmovable then
+			mesecon.register_mvps_unmov(k)
+		end
+		if is_unmov then
+			v._mcl_pistons_unmovable = true
+			core.register_entity(":"..k, v)
+		end
+	end
+
+	core.register_on_mods_loaded(function()
+		for _,v in pairs(core.registered_nodes) do
+			if v.groups and v.groups.bed then
+				mesecon.register_mvps_stopper(v.name)
+			end
+			if v.groups and v.groups.door then
+				mesecon.register_mvps_stopper(v.name)
+			end
+		end
+	end)
+end
+
 core.register_craft({
 	output = "mesecons:wire_00000000_off",
 	recipe = {{"mcl_redstone:redstone"}}