From 77e12baaa600b98e897d56572a28c0eeb732d1bf Mon Sep 17 00:00:00 2001 From: XiaoMoMi <972454774@qq.com> Date: Wed, 15 Oct 2025 04:39:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9B=E8=A7=86=E8=A7=89=E6=95=88?= =?UTF-8?q?=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../default/configuration/items/cap.yml | 6 +++++- .../recipe/CustomSmithingTransformRecipe.java | 16 +++++++++++++++- .../core/item/recipe/VisualResultRecipe.java | 3 +-- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/common-files/src/main/resources/resources/default/configuration/items/cap.yml b/common-files/src/main/resources/resources/default/configuration/items/cap.yml index f682b7cc5..aaa7a88b3 100644 --- a/common-files/src/main/resources/resources/default/configuration/items/cap.yml +++ b/common-files/src/main/resources/resources/default/configuration/items/cap.yml @@ -1,12 +1,16 @@ items: default:cap: material: leather_helmet - client-bound-material: leather_horse_armor + $$<=1.21.1: + client-bound-material: leather_horse_armor data: item-name: unbreakable: true remove-components: - attribute_modifiers + $$>=1.21.2: + equippable: + slot: head model: type: minecraft:model path: minecraft:item/custom/cap diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmithingTransformRecipe.java b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmithingTransformRecipe.java index 0ad09593b..76002e6d9 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmithingTransformRecipe.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmithingTransformRecipe.java @@ -64,7 +64,7 @@ public class CustomSmithingTransformRecipe extends AbstractedFixedResultRecip } @Override - public @Nullable CustomRecipeResult visualResult() { + public CustomRecipeResult visualResult() { return this.visualResult; } @@ -117,12 +117,26 @@ public class CustomSmithingTransformRecipe extends AbstractedFixedResultRecip return RecipeType.SMITHING; } + @SuppressWarnings("unchecked") + @Override + public T assembleVisual(RecipeInput input, ItemBuildContext context) { + SmithingInput smithingInput = ((SmithingInput) input); + Item base = smithingInput.base().item(); + T result = this.visualResult().buildItemStack(context); + return createSmithingResult(base, result); + } + @SuppressWarnings("unchecked") @Override public T assemble(RecipeInput input, ItemBuildContext context) { SmithingInput smithingInput = ((SmithingInput) input); Item base = smithingInput.base().item(); T result = this.result(context); + return createSmithingResult(base, result); + } + + @SuppressWarnings("unchecked") + private T createSmithingResult(Item base, T result) { Item wrappedResult = (Item) CraftEngine.instance().itemManager().wrap(result); Item finalResult = wrappedResult; if (this.mergeComponents) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/VisualResultRecipe.java b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/VisualResultRecipe.java index c6d55b68c..3064b5ab3 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/VisualResultRecipe.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/VisualResultRecipe.java @@ -4,10 +4,9 @@ import net.momirealms.craftengine.core.item.Item; import net.momirealms.craftengine.core.item.ItemBuildContext; import net.momirealms.craftengine.core.item.recipe.input.RecipeInput; import net.momirealms.craftengine.core.item.recipe.result.CustomRecipeResult; -import org.jetbrains.annotations.Nullable; public interface VisualResultRecipe extends FixedResultRecipe { - @Nullable + CustomRecipeResult visualResult(); default boolean hasVisualResult() {