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() {