Non résolu [1.16.5] Aide pour créér une recette de craft 4x4
-
Bonjour/bonsoir,
Pour mon mod je voudrais faire une recette custom de crafting 4x4, le problème que j’ai c’est avec la création de la classe de recette, je la fait étendre ShapedRecipe et passe dedans super() avec la taille de ma table de craft (4x4), et j’appelle ensuite la fonction setCraftingSize(4, 4), comme indiqué pour permettre des plus grandes recettes dans le deserializer. Cependant, lorsque je lance mon mod, les recettes ne marchent pas en en multijoueur j’obtiens une erreur : “Invalid pattern : too many rows, 3 is maximum”, ce qui montre que l’appel de setCraftingSize n’est pas pris en compte.
Au passage, j’override le méthode matches() pour qu’elle soit cohérente et marche avec ma tile entity.Voici ma classe de recette:
public class WorkbenchRecipeShaped extends ShapedRecipe { private static final int width = 4; private static final int height = 4; private final NonNullList<Ingredient> recipeItems; public WorkbenchRecipeShaped(ResourceLocation idIn, String groupIn, int recipeWidthIn, int recipeHeightIn, NonNullList<Ingredient> recipeItemsIn, ItemStack recipeOutputIn) { super(idIn, groupIn, width, height, recipeItemsIn, recipeOutputIn); recipeItems = recipeItemsIn; setCraftingSize(width, height); } @Override public boolean matches(CraftingInventory inv, World worldIn) { if (inv.isEmpty()) return false; for (int col = 0 ; col < inv.getWidth() ; col++) { for (int raw = 0 ; raw < inv.getHeight() ; raw++) { Ingredient ingredient = recipeItems.get(raw + col * inv.getWidth()); if (!ingredient.test(inv.getStackInSlot(raw + col * inv.getWidth() + 1))) return false; } } return true; } }
Et le bout de méthode qui me permet de prendre en compte l’inventaire:
if (gridValid() && isMoving && !waitingForTakeStack && items.get(0).getCount() >= 10) { this.items.set(17, getRecipe().getRecipeOutput()); this.waitingForTakeStack = true; }
private boolean gridValid() { assert world != null; if (getRecipe() == null) return false; return getRecipe().matches(this.inv, world); }
Merci de votre aide, et si quelqu’un à déjà fait des tabes de crafts custom j’aimerais bien un petit coup de main svp. Merci