From d87d2e2bd0feb64a581e0447413a24b412ec6293 Mon Sep 17 00:00:00 2001 From: tibs Date: Thu, 18 Aug 2022 23:31:19 -0400 Subject: [PATCH] Increase water cauldron block entity compatibility --- ...ckMixin.java => AbstractCauldronBlockMixin.java} | 13 +++++++++---- src/main/resources/cauldron-dyeing.accesswidener | 2 ++ src/main/resources/cauldron-dyeing.mixins.json | 4 ++-- 3 files changed, 13 insertions(+), 6 deletions(-) rename src/main/java/me/tibinonest/mods/cauldron_dyeing/mixin/{LeveledCauldronBlockMixin.java => AbstractCauldronBlockMixin.java} (54%) diff --git a/src/main/java/me/tibinonest/mods/cauldron_dyeing/mixin/LeveledCauldronBlockMixin.java b/src/main/java/me/tibinonest/mods/cauldron_dyeing/mixin/AbstractCauldronBlockMixin.java similarity index 54% rename from src/main/java/me/tibinonest/mods/cauldron_dyeing/mixin/LeveledCauldronBlockMixin.java rename to src/main/java/me/tibinonest/mods/cauldron_dyeing/mixin/AbstractCauldronBlockMixin.java index 048509a..e9d1349 100644 --- a/src/main/java/me/tibinonest/mods/cauldron_dyeing/mixin/LeveledCauldronBlockMixin.java +++ b/src/main/java/me/tibinonest/mods/cauldron_dyeing/mixin/AbstractCauldronBlockMixin.java @@ -1,19 +1,24 @@ package me.tibinonest.mods.cauldron_dyeing.mixin; import me.tibinonest.mods.cauldron_dyeing.block.WaterCauldronBlockEntity; +import net.minecraft.block.AbstractCauldronBlock; import net.minecraft.block.BlockEntityProvider; import net.minecraft.block.BlockState; -import net.minecraft.block.LeveledCauldronBlock; import net.minecraft.block.entity.BlockEntity; +import net.minecraft.fluid.Fluids; import net.minecraft.util.math.BlockPos; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; -@Mixin(LeveledCauldronBlock.class) -public class LeveledCauldronBlockMixin implements BlockEntityProvider { +@Mixin(AbstractCauldronBlock.class) +public class AbstractCauldronBlockMixin implements BlockEntityProvider { @Nullable @Override public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { - return state.getBlock().getLootTableId().getPath().equals("blocks/water_cauldron") ? new WaterCauldronBlockEntity(pos, state) : null; + if (state.getBlock() instanceof AbstractCauldronBlock cauldron && cauldron.canBeFilledByDripstone(Fluids.WATER)) { + return new WaterCauldronBlockEntity(pos, state); + } + + return null; } } diff --git a/src/main/resources/cauldron-dyeing.accesswidener b/src/main/resources/cauldron-dyeing.accesswidener index a994c4d..babbc75 100644 --- a/src/main/resources/cauldron-dyeing.accesswidener +++ b/src/main/resources/cauldron-dyeing.accesswidener @@ -1,3 +1,5 @@ accessWidener v1 named +accessible method net/minecraft/block/AbstractCauldronBlock canBeFilledByDripstone (Lnet/minecraft/fluid/Fluid;)Z + accessible field net/minecraft/item/DyeItem DYES Ljava/util/Map; diff --git a/src/main/resources/cauldron-dyeing.mixins.json b/src/main/resources/cauldron-dyeing.mixins.json index 133184d..8e1946a 100644 --- a/src/main/resources/cauldron-dyeing.mixins.json +++ b/src/main/resources/cauldron-dyeing.mixins.json @@ -3,8 +3,8 @@ "required": true, "compatibilityLevel": "JAVA_17", "mixins": [ - "CauldronBehaviorMixin", - "LeveledCauldronBlockMixin" + "AbstractCauldronBlockMixin", + "CauldronBehaviorMixin" ], "client": [ "BiomeColorsMixin",