diff --git a/src/main/java/com/simibubi/create/content/schematics/requirement/ItemRequirement.java b/src/main/java/com/simibubi/create/content/schematics/requirement/ItemRequirement.java index 472e880fac..b73bfa25e1 100644 --- a/src/main/java/com/simibubi/create/content/schematics/requirement/ItemRequirement.java +++ b/src/main/java/com/simibubi/create/content/schematics/requirement/ItemRequirement.java @@ -14,6 +14,7 @@ import com.simibubi.create.api.schematic.requirement.SpecialEntityItemRequirement; import com.simibubi.create.compat.framedblocks.FramedBlocksInSchematics; import com.simibubi.create.foundation.data.recipe.Mods; +import com.simibubi.create.foundation.mixin.accessor.ItemFrameAccessor; import net.createmod.catnip.nbt.NBTProcessors; import net.minecraft.world.entity.Entity; @@ -141,10 +142,10 @@ public static ItemRequirement of(Entity entity) { } if (entity instanceof ItemFrame itemFrame) { - ItemStack frame = new ItemStack(Items.ITEM_FRAME); + ItemStack frame = ((ItemFrameAccessor) itemFrame).create$getFrameItemStack(); ItemStack displayedItem = NBTProcessors.withUnsafeNBTDiscarded(itemFrame.getItem()); if (displayedItem.isEmpty()) - return new ItemRequirement(ItemUseType.CONSUME, Items.ITEM_FRAME); + return new ItemRequirement(ItemUseType.CONSUME, frame); return new ItemRequirement(List.of(new ItemRequirement.StackRequirement(frame, ItemUseType.CONSUME), new ItemRequirement.StrictNbtStackRequirement(displayedItem, ItemUseType.CONSUME))); } diff --git a/src/main/java/com/simibubi/create/foundation/mixin/accessor/ItemFrameAccessor.java b/src/main/java/com/simibubi/create/foundation/mixin/accessor/ItemFrameAccessor.java new file mode 100644 index 0000000000..6feedcc05c --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/mixin/accessor/ItemFrameAccessor.java @@ -0,0 +1,13 @@ +package com.simibubi.create.foundation.mixin.accessor; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Invoker; + +import net.minecraft.world.entity.decoration.ItemFrame; +import net.minecraft.world.item.ItemStack; + +@Mixin(ItemFrame.class) +public interface ItemFrameAccessor { + @Invoker("getFrameItemStack") + ItemStack create$getFrameItemStack(); +} diff --git a/src/main/resources/create.mixins.json b/src/main/resources/create.mixins.json index 3fec736793..f3c4022b48 100644 --- a/src/main/resources/create.mixins.json +++ b/src/main/resources/create.mixins.json @@ -34,6 +34,7 @@ "accessor.FlowingFluidAccessor", "accessor.FluidInteractionRegistryAccessor", "accessor.GameTestHelperAccessor", + "accessor.ItemFrameAccessor", "accessor.ItemModelGeneratorsAccessor", "accessor.LivingEntityAccessor", "accessor.MobEffectInstanceAccessor",