diff --git a/common/build.gradle b/common/build.gradle index aee5ca3e4..99760be7d 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -17,7 +17,7 @@ dependencies { modCompileOnly("net.fabricmc.fabric-api:fabric-api:${fabric_api_version}") modCompileOnly("mezz.jei:jei-${minecraft_version}-common-api:${jei_common_version}") - modCompileOnly("curse.maven:additional-placements-930469:${additionalplacements_curse_id}") + modCompileOnly("curse.maven:additional-placements-fabric-930469:${additionalplacements_fabric_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}") diff --git a/common/src/main/java/com/copycatsplus/copycats/compat/AdditionalPlacementsCompat.java b/common/src/main/java/com/copycatsplus/copycats/compat/AdditionalPlacementsCompat.java new file mode 100644 index 000000000..a29c5085e --- /dev/null +++ b/common/src/main/java/com/copycatsplus/copycats/compat/AdditionalPlacementsCompat.java @@ -0,0 +1,16 @@ +package com.copycatsplus.copycats.compat; + +import com.copycatsplus.copycats.foundation.copycat.ICopycatBlock; +import com.firemerald.additionalplacements.generation.IBlockBlacklister; +import com.firemerald.additionalplacements.generation.RegistrationInitializer; +import net.minecraft.world.level.block.Block; + +import java.util.function.Consumer; + +public class AdditionalPlacementsCompat implements RegistrationInitializer { + + @Override + public void addGlobalBlacklisters(Consumer> register) { + register.accept((t, rl) -> t instanceof ICopycatBlock); + } +} diff --git a/common/src/main/java/com/copycatsplus/copycats/mixin/compat/additionalplacements/ConfigCommonMixin.java b/common/src/main/java/com/copycatsplus/copycats/mixin/compat/additionalplacements/ConfigCommonMixin.java deleted file mode 100644 index 34b49bace..000000000 --- a/common/src/main/java/com/copycatsplus/copycats/mixin/compat/additionalplacements/ConfigCommonMixin.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.copycatsplus.copycats.mixin.compat.additionalplacements; - -import com.copycatsplus.copycats.Copycats; -import com.copycatsplus.copycats.compat.Mods; -import com.copycatsplus.copycats.foundation.annotation.ModMixin; -import com.firemerald.additionalplacements.common.ConfigCommon; -import net.minecraft.resources.ResourceLocation; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Pseudo; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; - -/** - * Prevent AdditionalPlacements from adding extra states to our mod blocks. - *

- * Will appear to error but works and builds fine. - */ -@ModMixin(requiredMods = Mods.ADDITIONAL_PLACEMENTS) -@Pseudo -@Mixin(value = {ConfigCommon.class}) -public class ConfigCommonMixin { - - @Inject( - at = @At("HEAD"), - method = "isValidForGeneration(Lnet/minecraft/resources/ResourceLocation;)Z", - cancellable = true, - require = 0 - ) - private void copycats$disableModCompat(ResourceLocation blockName, CallbackInfoReturnable cir) { - if (blockName.getNamespace().equalsIgnoreCase(Copycats.MODID)) { - cir.setReturnValue(false); - } - } -} diff --git a/common/src/main/java/com/copycatsplus/copycats/mixin/compat/additionalplacements/PlacementBlockMixin.java b/common/src/main/java/com/copycatsplus/copycats/mixin/compat/additionalplacements/PlacementBlockMixin.java deleted file mode 100644 index 3af03660c..000000000 --- a/common/src/main/java/com/copycatsplus/copycats/mixin/compat/additionalplacements/PlacementBlockMixin.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.copycatsplus.copycats.mixin.compat.additionalplacements; - -import com.copycatsplus.copycats.compat.Mods; -import com.copycatsplus.copycats.foundation.annotation.ModMixin; -import com.copycatsplus.copycats.foundation.copycat.ICopycatBlock; -import com.firemerald.additionalplacements.block.AdditionalPlacementBlock; -import net.minecraft.world.level.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; - -/** - * Always report that our blocks have no extra states added by AdditionalPlacements. - */ -@ModMixin(requiredMods = Mods.ADDITIONAL_PLACEMENTS) -@Mixin( - value = { - AdditionalPlacementBlock.class, - CarpetBlock.class, - PressurePlateBlock.class, - SlabBlock.class, - StairBlock.class, - WeightedPressurePlateBlock.class - }, - priority = 1100, - remap = false -) -public class PlacementBlockMixin { - @Inject( - at = @At("HEAD"), - method = "hasAdditionalStates()Z", - cancellable = true, - require = 0 - ) - private void forCopycatBlocks(CallbackInfoReturnable cir) { - Block block = ((Block) (Object) this); - if (block instanceof ICopycatBlock) - cir.setReturnValue(false); - } -} diff --git a/common/src/main/resources/copycats-common.mixins.json b/common/src/main/resources/copycats-common.mixins.json index df6a55312..adeed6394 100644 --- a/common/src/main/resources/copycats-common.mixins.json +++ b/common/src/main/resources/copycats-common.mixins.json @@ -5,8 +5,6 @@ "plugin": "com.copycatsplus.copycats.mixin.MixinPlugin", "compatibilityLevel": "JAVA_17", "mixins": [ - "compat.additionalplacements.ConfigCommonMixin", - "compat.additionalplacements.PlacementBlockMixin", "compat.diagonalfences.FenceBlockMixin", "compat.radium.PathNodeDefaultsMixin", "compat.rubidium.BlockOcclusionCacheMixin", diff --git a/fabric/build.gradle b/fabric/build.gradle index f0c234eed..fee2de606 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -61,6 +61,7 @@ dependencies { 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}") + modImplementation("curse.maven:additional-placements-fabric-930469:${additionalplacements_fabric_curse_id}") annotationProcessor(implementation(include("io.github.llamalad7:mixinextras-fabric:${mixin_extras_version}"))) diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index e5fd7a0e6..25b127e40 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -2,24 +2,31 @@ "schemaVersion": 1, "id": "copycats", "version": "${version}", - "name": "${mod_name}", "description": "${mod_description}", - "authors": ["${mod_authors}"], + "authors": [ + "${mod_authors}" + ], "contact": {}, - "license": "${mod_license}", "icon": "copycats_icon.png", - "environment": "*", "entrypoints": { "main": [ "com.copycatsplus.copycats.fabric.CopycatsImpl" ], - "client": ["com.copycatsplus.copycats.fabric.CopycatsClientImpl" + "client": [ + "com.copycatsplus.copycats.fabric.CopycatsClientImpl" + ], + "fabric-datagen": [ + "com.copycatsplus.copycats.datagen.fabric.CCDatagenImpl" + ], + "jei_mod_plugin": [ + "com.copycatsplus.copycats.compat.CopycatsJEI" ], - "fabric-datagen": ["com.copycatsplus.copycats.datagen.fabric.CCDatagenImpl"], - "jei_mod_plugin": ["com.copycatsplus.copycats.compat.CopycatsJEI"] + "additional-placements-generators": [ + "com.copycatsplus.copycats.compat.AdditionalPlacementsCompat" + ] }, "mixins": [ "copycats-fabric.mixins.json", diff --git a/forge/src/main/java/com/copycatsplus/copycats/compat/forge/AdditionalPlacementsCompatForge.java b/forge/src/main/java/com/copycatsplus/copycats/compat/forge/AdditionalPlacementsCompatForge.java new file mode 100644 index 000000000..5293349e6 --- /dev/null +++ b/forge/src/main/java/com/copycatsplus/copycats/compat/forge/AdditionalPlacementsCompatForge.java @@ -0,0 +1,10 @@ +package com.copycatsplus.copycats.compat.forge; + +import com.copycatsplus.copycats.compat.AdditionalPlacementsCompat; +import com.firemerald.additionalplacements.generation.Registration; + +public class AdditionalPlacementsCompatForge { + public static void register() { + Registration.addRegistration(new AdditionalPlacementsCompat()); + } +} diff --git a/forge/src/main/java/com/copycatsplus/copycats/forge/CopycatsImpl.java b/forge/src/main/java/com/copycatsplus/copycats/forge/CopycatsImpl.java index 037f99ee5..e56df69aa 100644 --- a/forge/src/main/java/com/copycatsplus/copycats/forge/CopycatsImpl.java +++ b/forge/src/main/java/com/copycatsplus/copycats/forge/CopycatsImpl.java @@ -1,6 +1,8 @@ package com.copycatsplus.copycats.forge; import com.copycatsplus.copycats.Copycats; +import com.copycatsplus.copycats.compat.Mods; +import com.copycatsplus.copycats.compat.forge.AdditionalPlacementsCompatForge; import com.copycatsplus.copycats.datagen.forge.CCDatagenImpl; import com.copycatsplus.copycats.datagen.recipes.forge.CCCraftingConditions; import com.copycatsplus.copycats.foundation.copycat.CopycatMaterialStore; @@ -32,6 +34,7 @@ public CopycatsImpl() { Platform.Environment.CLIENT.runIfCurrent(() -> CopycatsClientImpl::init); bus.addListener(EventPriority.LOWEST, CCDatagenImpl::gatherData); + Mods.ADDITIONAL_PLACEMENTS.executeIfInstalled(() -> AdditionalPlacementsCompatForge::register); } private void serverStarting(ServerStartingEvent event) { diff --git a/gradle.properties b/gradle.properties index f772111c0..e8653f00d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -27,7 +27,6 @@ doDryRun=false mixin_extras_version=0.3.2 jei_common_version=15.3.0.4 embeddium_curse_id=5522040 -additionalplacements_curse_id=4828059 #Forge Properties create_forge_version=0.5.1.j-55 @@ -38,7 +37,7 @@ flywheel_forge_version=0.6.11-13 # JEI 10+ seems to have issues on Forge, so the versions must be different for now. # 1.19 edit: no version < 11 exists, so use that jei_forge_version=15.3.0.4 embeddium_forge_curse_id=5681725 -additionalplacements_forge_curse_id=5867256 +additionalplacements_forge_curse_id=6057797 double_slabs_forge_curse_id=3873442 jade_forge_curse_id=5390389 athena_forge_curse_id=5176879 @@ -62,4 +61,5 @@ 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 moonlight_curse_fabric_id=5975796 -vertical_slabs_curse_fabric_id=5691542 \ No newline at end of file +vertical_slabs_curse_fabric_id=5691542 +additionalplacements_fabric_curse_id=6057817 \ No newline at end of file