diff --git a/common/build.gradle b/common/build.gradle index ab45e7e58..aee5ca3e4 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -19,6 +19,8 @@ dependencies { modCompileOnly("curse.maven:additional-placements-930469:${additionalplacements_curse_id}") modCompileOnly("curse.maven:embeddium-908741:${embeddium_curse_id}") + modCompileOnly("curse.maven:selene-499980:${moonlight_curse_fabric_id}") + modCompileOnly("curse.maven:vertical-slabs-compat-724387:${vertical_slabs_curse_fabric_id}") annotationProcessor(implementation("io.github.llamalad7:mixinextras-common:${mixin_extras_version}")) } diff --git a/common/src/main/java/com/copycatsplus/copycats/compat/Mods.java b/common/src/main/java/com/copycatsplus/copycats/compat/Mods.java index 8e3b19117..211f54939 100644 --- a/common/src/main/java/com/copycatsplus/copycats/compat/Mods.java +++ b/common/src/main/java/com/copycatsplus/copycats/compat/Mods.java @@ -33,7 +33,8 @@ public enum Mods { ATHENA("athena"), INDIUM("indium"), STARLIGHT("starlight"), - DOUBLE_SLABS("doubleslabs"); + DOUBLE_SLABS("doubleslabs"), + VERTICAL_SLAB_COMPAT("v_slab_compat"); public final String id; public final boolean isLoaded; diff --git a/common/src/main/java/com/copycatsplus/copycats/mixin/compat/verticalslabcompat/CutBlockTypeRegistryMixin.java b/common/src/main/java/com/copycatsplus/copycats/mixin/compat/verticalslabcompat/CutBlockTypeRegistryMixin.java new file mode 100644 index 000000000..59c0cf01a --- /dev/null +++ b/common/src/main/java/com/copycatsplus/copycats/mixin/compat/verticalslabcompat/CutBlockTypeRegistryMixin.java @@ -0,0 +1,26 @@ +package com.copycatsplus.copycats.mixin.compat.verticalslabcompat; + +import com.copycatsplus.copycats.Copycats; +import com.copycatsplus.copycats.compat.Mods; +import com.copycatsplus.copycats.foundation.annotation.ModMixin; +import net.mehvahdjukaar.moonlight.api.set.BlockTypeRegistry; +import net.mehvahdjukaar.vsc.CutBlockType; +import net.mehvahdjukaar.vsc.CutBlockTypeRegistry; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.block.Block; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import java.util.Optional; + +@ModMixin(requiredMods = Mods.VERTICAL_SLAB_COMPAT) +@Mixin(value = CutBlockTypeRegistry.class, remap = false) +public class CutBlockTypeRegistryMixin { + + @Inject(method = "detectTypeFromBlock", at = @At("HEAD"), cancellable = true) + private void copycats$disableVerticalCompat(Block block, ResourceLocation baseRes, CallbackInfoReturnable> cir) { + if (baseRes.getNamespace().equals(Copycats.MODID)) cir.setReturnValue(Optional.empty()); + } +} diff --git a/common/src/main/resources/copycats-common.mixins.json b/common/src/main/resources/copycats-common.mixins.json index 5b9005ea2..b68309725 100644 --- a/common/src/main/resources/copycats-common.mixins.json +++ b/common/src/main/resources/copycats-common.mixins.json @@ -11,6 +11,7 @@ "compat.radium.PathNodeDefaultsMixin", "compat.rubidium.BlockOcclusionCacheMixin", "compat.rubidium.BlockRendererMixin", + "compat.verticalslabcompat.CutBlockTypeRegistryMixin", "copycat.VoxelShapeAccessor", "copycat.cogwheel.CogWheelBlockItemMixin", "copycat.door.BlockHelperMixin", diff --git a/fabric/build.gradle b/fabric/build.gradle index 47499ab95..f0c234eed 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -59,6 +59,8 @@ dependencies { modLocalRuntime("maven.modrinth:sodium:${sodium_fabric_version}") // modLocalRuntime("maven.modrinth:extended-cogwheels:${extended_cogwheels_fabric_version}") modLocalRuntime("curse.maven:spark-361579:${spark_fabric_curse_id}") + modCompileOnly("curse.maven:selene-499980:${moonlight_curse_fabric_id}") + modCompileOnly("curse.maven:vertical-slabs-compat-724387:${vertical_slabs_curse_fabric_id}") annotationProcessor(implementation(include("io.github.llamalad7:mixinextras-fabric:${mixin_extras_version}"))) diff --git a/forge/build.gradle b/forge/build.gradle index 727a3c8b4..52480ce5d 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -62,6 +62,8 @@ dependencies { modCompileOnly("curse.maven:double-slabs-350179:${double_slabs_forge_curse_id}") modLocalRuntime("curse.maven:spark-361579:${spark_forge_curse_id}") + modCompileOnly("curse.maven:selene-499980:${moonlight_curse_forge_id}") + modCompileOnly("curse.maven:vertical-slabs-compat-724387:${vertical_slabs_curse_forge_id}") compileOnly("io.github.llamalad7:mixinextras-common:${mixin_extras_version}") annotationProcessor(implementation(include("io.github.llamalad7:mixinextras-forge:${mixin_extras_version}"))) diff --git a/gradle.properties b/gradle.properties index e2a9a3025..f772111c0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -45,6 +45,8 @@ athena_forge_curse_id=5176879 tfmg_forge_curse_id=5505872 extended_cogwheels_forge_curse_id=5229925 spark_forge_curse_id=4738952 +moonlight_curse_forge_id=5975794 +vertical_slabs_curse_forge_id=5691543 #Fabric Properties create_fabric_version=0.5.1-f-build.1417+mc1.20.1 @@ -58,4 +60,6 @@ athena_fabric_curse_id=5176880 indium_fabric_curse_id=5493195 sodium_fabric_version=mc1.20.1-0.5.11 extended_cogwheels_fabric_version=2.1.1-1.20.1-0.5.1.f-fabric -spark_fabric_curse_id=4738953 \ No newline at end of file +spark_fabric_curse_id=4738953 +moonlight_curse_fabric_id=5975796 +vertical_slabs_curse_fabric_id=5691542 \ No newline at end of file