Class ShapedRecipe

java.lang.Object
net.minecraft.recipe.ShapedRecipe
All Implemented Interfaces:
CraftingRecipe, Recipe<RecipeInputInventory>
Direct Known Subclasses:
MapExtendingRecipe

public class ShapedRecipe extends Object implements CraftingRecipe
Mappings:
Namespace Name
official cmp
intermediary net/minecraft/class_1869
named net/minecraft/recipe/ShapedRecipe
  • Field Details

    • width

      final int width
      Mappings:
      Namespace Name Mixin selector
      official a Lcmp;a:I
      intermediary field_9055 Lnet/minecraft/class_1869;field_9055:I
      named width Lnet/minecraft/recipe/ShapedRecipe;width:I
    • height

      final int height
      Mappings:
      Namespace Name Mixin selector
      official b Lcmp;b:I
      intermediary field_9054 Lnet/minecraft/class_1869;field_9054:I
      named height Lnet/minecraft/recipe/ShapedRecipe;height:I
    • ingredients

      final DefaultedList<Ingredient> ingredients
      Mappings:
      Namespace Name Mixin selector
      official c Lcmp;c:Lhn;
      intermediary field_9052 Lnet/minecraft/class_1869;field_9052:Lnet/minecraft/class_2371;
      named ingredients Lnet/minecraft/recipe/ShapedRecipe;ingredients:Lnet/minecraft/util/collection/DefaultedList;
    • result

      final ItemStack result
      Mappings:
      Namespace Name Mixin selector
      official d Lcmp;d:Lcjf;
      intermediary field_9053 Lnet/minecraft/class_1869;field_9053:Lnet/minecraft/class_1799;
      named result Lnet/minecraft/recipe/ShapedRecipe;result:Lnet/minecraft/item/ItemStack;
    • group

      final String group
      Mappings:
      Namespace Name Mixin selector
      official e Lcmp;e:Ljava/lang/String;
      intermediary field_9056 Lnet/minecraft/class_1869;field_9056:Ljava/lang/String;
      named group Lnet/minecraft/recipe/ShapedRecipe;group:Ljava/lang/String;
    • category

      final CraftingRecipeCategory category
      Mappings:
      Namespace Name Mixin selector
      official f Lcmp;f:Lcly;
      intermediary field_40256 Lnet/minecraft/class_1869;field_40256:Lnet/minecraft/class_7710;
      named category Lnet/minecraft/recipe/ShapedRecipe;category:Lnet/minecraft/recipe/book/CraftingRecipeCategory;
    • showNotification

      final boolean showNotification
      Mappings:
      Namespace Name Mixin selector
      official g Lcmp;g:Z
      intermediary field_42719 Lnet/minecraft/class_1869;field_42719:Z
      named showNotification Lnet/minecraft/recipe/ShapedRecipe;showNotification:Z
  • Constructor Details

    • ShapedRecipe

      public ShapedRecipe(String group, CraftingRecipeCategory category, int width, int height, DefaultedList<Ingredient> ingredients, ItemStack result, boolean showNotification)
      Mappings:
      Namespace Name Mixin selector
      official <init> Lcmp;<init>(Ljava/lang/String;Lcly;IILhn;Lcjf;Z)V
      intermediary <init> Lnet/minecraft/class_1869;<init>(Ljava/lang/String;Lnet/minecraft/class_7710;IILnet/minecraft/class_2371;Lnet/minecraft/class_1799;Z)V
      named <init> Lnet/minecraft/recipe/ShapedRecipe;<init>(Ljava/lang/String;Lnet/minecraft/recipe/book/CraftingRecipeCategory;IILnet/minecraft/util/collection/DefaultedList;Lnet/minecraft/item/ItemStack;Z)V
    • ShapedRecipe

      public ShapedRecipe(String group, CraftingRecipeCategory category, int width, int height, DefaultedList<Ingredient> ingredients, ItemStack result)
      Mappings:
      Namespace Name Mixin selector
      official <init> Lcmp;<init>(Ljava/lang/String;Lcly;IILhn;Lcjf;)V
      intermediary <init> Lnet/minecraft/class_1869;<init>(Ljava/lang/String;Lnet/minecraft/class_7710;IILnet/minecraft/class_2371;Lnet/minecraft/class_1799;)V
      named <init> Lnet/minecraft/recipe/ShapedRecipe;<init>(Ljava/lang/String;Lnet/minecraft/recipe/book/CraftingRecipeCategory;IILnet/minecraft/util/collection/DefaultedList;Lnet/minecraft/item/ItemStack;)V
  • Method Details

    • getSerializer

      public RecipeSerializer<?> getSerializer()
      Returns the serializer associated with this recipe.
      Specified by:
      getSerializer in interface Recipe<RecipeInputInventory>
      Returns:
      the serializer associated with this recipe
      Mappings:
      Namespace Name Mixin selector
      official an_ Lcmj;an_()Lcmm;
      intermediary method_8119 Lnet/minecraft/class_1860;method_8119()Lnet/minecraft/class_1865;
      named getSerializer Lnet/minecraft/recipe/Recipe;getSerializer()Lnet/minecraft/recipe/RecipeSerializer;
    • getGroup

      public String getGroup()
      Returns a group this recipe belongs in, or an empty string. This is only used by the recipe book.

      The group string is arbitrary, and is not rendered anywhere; in the recipe book, recipes with the same group will belong to the same cell in the grid of recipes. If the string is empty, this recipe will belong to its own cell.

      Specified by:
      getGroup in interface Recipe<RecipeInputInventory>
      Returns:
      a group this recipe belongs in, or an empty string
      Mappings:
      Namespace Name Mixin selector
      official c Lcmj;c()Ljava/lang/String;
      intermediary method_8112 Lnet/minecraft/class_1860;method_8112()Ljava/lang/String;
      named getGroup Lnet/minecraft/recipe/Recipe;getGroup()Ljava/lang/String;
    • getCategory

      public CraftingRecipeCategory getCategory()
      Specified by:
      getCategory in interface CraftingRecipe
      Mappings:
      Namespace Name Mixin selector
      official d Lclz;d()Lcly;
      intermediary method_45441 Lnet/minecraft/class_3955;method_45441()Lnet/minecraft/class_7710;
      named getCategory Lnet/minecraft/recipe/CraftingRecipe;getCategory()Lnet/minecraft/recipe/book/CraftingRecipeCategory;
    • getResult

      public ItemStack getResult(DynamicRegistryManager registryManager)
      Returns a preview of the recipe's output.

      The returned stack should not be modified. To obtain the actual output, call Recipe.craft(Inventory, DynamicRegistryManager).

      Specified by:
      getResult in interface Recipe<RecipeInputInventory>
      Returns:
      a preview of the recipe's output
      Mappings:
      Namespace Name Mixin selector
      official a Lcmj;a(Lhr;)Lcjf;
      intermediary method_8110 Lnet/minecraft/class_1860;method_8110(Lnet/minecraft/class_5455;)Lnet/minecraft/class_1799;
      named getResult Lnet/minecraft/recipe/Recipe;getResult(Lnet/minecraft/registry/DynamicRegistryManager;)Lnet/minecraft/item/ItemStack;
    • getIngredients

      public DefaultedList<Ingredient> getIngredients()
      Returns the ingredients accepted as inputs for this recipe. Used by the recipe book when displaying a ghost form of this recipe on the crafting grid as well as for previewing the possible inputs in the book itself.
      Specified by:
      getIngredients in interface Recipe<RecipeInputInventory>
      Returns:
      the ingredients accepted as inputs for this recipe
      Mappings:
      Namespace Name Mixin selector
      official a Lcmj;a()Lhn;
      intermediary method_8117 Lnet/minecraft/class_1860;method_8117()Lnet/minecraft/class_2371;
      named getIngredients Lnet/minecraft/recipe/Recipe;getIngredients()Lnet/minecraft/util/collection/DefaultedList;
    • showNotification

      public boolean showNotification()
      Specified by:
      showNotification in interface Recipe<RecipeInputInventory>
      Mappings:
      Namespace Name Mixin selector
      official h Lcmj;h()Z
      intermediary method_49188 Lnet/minecraft/class_1860;method_49188()Z
      named showNotification Lnet/minecraft/recipe/Recipe;showNotification()Z
    • fits

      public boolean fits(int width, int height)
      Returns whether this recipe will fit into the given grid size.

      This is currently only used by recipe book.

      Specified by:
      fits in interface Recipe<RecipeInputInventory>
      Parameters:
      width - the width of the input inventory
      height - the height of the input inventory
      Returns:
      whether this recipe will fit into the given grid size
      Mappings:
      Namespace Name Mixin selector
      official a Lcmj;a(II)Z
      intermediary method_8113 Lnet/minecraft/class_1860;method_8113(II)Z
      named fits Lnet/minecraft/recipe/Recipe;fits(II)Z
    • matches

      public boolean matches(RecipeInputInventory recipeInputInventory, World world)
      Description copied from interface: Recipe
      Returns whether this recipe matches the contents inside the inventory in the given world.

      The world currently is only used by the map cloning recipe to prevent duplication of explorer maps.

      Specified by:
      matches in interface Recipe<RecipeInputInventory>
      Parameters:
      recipeInputInventory - the input inventory
      world - the input world
      Returns:
      whether this recipe matches the contents inside the inventory in the given world
      Mappings:
      Namespace Name Mixin selector
      official a Lcmp;a(Lcez;Lcpv;)Z
      intermediary method_17728 Lnet/minecraft/class_1869;method_17728(Lnet/minecraft/class_8566;Lnet/minecraft/class_1937;)Z
      named matches Lnet/minecraft/recipe/ShapedRecipe;matches(Lnet/minecraft/inventory/RecipeInputInventory;Lnet/minecraft/world/World;)Z
    • matchesPattern

      private boolean matchesPattern(RecipeInputInventory inv, int offsetX, int offsetY, boolean flipped)
      Mappings:
      Namespace Name Mixin selector
      official a Lcmp;a(Lcez;IIZ)Z
      intermediary method_8161 Lnet/minecraft/class_1869;method_8161(Lnet/minecraft/class_8566;IIZ)Z
      named matchesPattern Lnet/minecraft/recipe/ShapedRecipe;matchesPattern(Lnet/minecraft/inventory/RecipeInputInventory;IIZ)Z
    • craft

      public ItemStack craft(RecipeInputInventory recipeInputInventory, DynamicRegistryManager dynamicRegistryManager)
      Description copied from interface: Recipe
      Crafts this recipe.

      This method does not perform side effects on the inventory.

      This method should return a new item stack on each call.

      Specified by:
      craft in interface Recipe<RecipeInputInventory>
      Parameters:
      recipeInputInventory - the input inventory
      Returns:
      the resulting item stack
      Mappings:
      Namespace Name Mixin selector
      official a Lcmp;a(Lcez;Lhr;)Lcjf;
      intermediary method_17727 Lnet/minecraft/class_1869;method_17727(Lnet/minecraft/class_8566;Lnet/minecraft/class_5455;)Lnet/minecraft/class_1799;
      named craft Lnet/minecraft/recipe/ShapedRecipe;craft(Lnet/minecraft/inventory/RecipeInputInventory;Lnet/minecraft/registry/DynamicRegistryManager;)Lnet/minecraft/item/ItemStack;
    • getWidth

      public int getWidth()
      Mappings:
      Namespace Name Mixin selector
      official j Lcmp;j()I
      intermediary method_8150 Lnet/minecraft/class_1869;method_8150()I
      named getWidth Lnet/minecraft/recipe/ShapedRecipe;getWidth()I
    • getHeight

      public int getHeight()
      Mappings:
      Namespace Name Mixin selector
      official k Lcmp;k()I
      intermediary method_8158 Lnet/minecraft/class_1869;method_8158()I
      named getHeight Lnet/minecraft/recipe/ShapedRecipe;getHeight()I
    • removePadding

      static String[] removePadding(List<String> pattern)
      Removes empty space from around the recipe pattern.

      Turns patterns such as:

       
       "   o"
       "   a"
       "    "
       
       
      Into:
       
       "o"
       "a"
       
       
      Returns:
      a new recipe pattern with all leading and trailing empty rows/columns removed
      Mappings:
      Namespace Name Mixin selector
      official a Lcmp;a(Ljava/util/List;)[Ljava/lang/String;
      intermediary method_8146 Lnet/minecraft/class_1869;method_8146(Ljava/util/List;)[Ljava/lang/String;
      named removePadding Lnet/minecraft/recipe/ShapedRecipe;removePadding(Ljava/util/List;)[Ljava/lang/String;
    • isEmpty

      public boolean isEmpty()
      Returns whether this recipe has no ingredient or has any empty ingredient. The recipe book uses this to ignore recipes for display.
      Specified by:
      isEmpty in interface Recipe<RecipeInputInventory>
      Returns:
      whether this recipe has no ingredient or has any empty ingredient
      Mappings:
      Namespace Name Mixin selector
      official i Lcmj;i()Z
      intermediary method_31584 Lnet/minecraft/class_1860;method_31584()Z
      named isEmpty Lnet/minecraft/recipe/Recipe;isEmpty()Z
    • findFirstSymbol

      private static int findFirstSymbol(String line)
      Mappings:
      Namespace Name Mixin selector
      official a Lcmp;a(Ljava/lang/String;)I
      intermediary method_8151 Lnet/minecraft/class_1869;method_8151(Ljava/lang/String;)I
      named findFirstSymbol Lnet/minecraft/recipe/ShapedRecipe;findFirstSymbol(Ljava/lang/String;)I
    • findLastSymbol

      private static int findLastSymbol(String pattern)
      Mappings:
      Namespace Name Mixin selector
      official b Lcmp;b(Ljava/lang/String;)I
      intermediary method_8153 Lnet/minecraft/class_1869;method_8153(Ljava/lang/String;)I
      named findLastSymbol Lnet/minecraft/recipe/ShapedRecipe;findLastSymbol(Ljava/lang/String;)I