User Tools

Site Tools


tutorial:recipe_type

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tutorial:recipe_type [2021/02/17 02:13] themovieayttutorial:recipe_type [2021/12/01 11:46] (current) – added commentary that RecipeSerializer is missing ayutac
Line 4: Line 4:
  
 You can find and learn how to make other recipe types. You can find and learn how to make other recipe types.
 +[[tutorial:cooking_recipe_type|Creating a custom cooking recipe type]]
  
 ===== Adding the Block ===== ===== Adding the Block =====
Line 12: Line 12:
 public class TestRecipeBlock extends Block { public class TestRecipeBlock extends Block {
  private static final Text TITLE = new TranslatableText("container.test_crafting");  private static final Text TITLE = new TranslatableText("container.test_crafting");
- public SpiritpowerCrafterBlock(Settings settings) {+ public TestRecipeBlock(Settings settings) {
  super(settings);  super(settings);
  }  }
Line 43: Line 43:
  @Override  @Override
  public void onInitialize() {    public void onInitialize() {  
-    //Wait i gotta take a break hold on..+    // Resuming later...
     }     }
 } }
Line 90: Line 90:
  return this.id;  return this.id;
  }  }
- + //[...]
- @Override +
- public boolean matches(CraftingInventory inv, World world) { +
- return false; +
-+
- +
- @Override +
- public ItemStack craft(CraftingInventory inv) { +
- return null; +
-+
- +
- @Override +
- public boolean fits(int width, int height) { +
- return false; +
-+
- +
- @Override +
- public RecipeSerializer<?> getSerializer() { +
- return null; +
-+
- +
- @Override +
- public RecipeType<?> getType() { +
- return null; +
- }+
 } }
 </code> </code>
Line 126: Line 102:
  public ItemStack craft(CraftingInventory inv) {  public ItemStack craft(CraftingInventory inv) {
  return this.getOutput().copy();  return this.getOutput().copy();
 + }
 +
 + @Override
 + public boolean fits(int width, int height) {
 + return true;
  }  }
 } }
Line 137: Line 118:
  @Override   @Override 
  public boolean matches(CraftingInventory inv, World world) {  public boolean matches(CraftingInventory inv, World world) {
- if(inv.getInvSize(0 < 2) return false; + if(inv.size(0< 2) return false; 
- return inputA.test(inventory.getInvStack(0)) && inputB.test(inventory.getInvStack(1));+ return inputA.test(inventory.getStack(0)) && inputB.test(inventory.getStack(1));
  }  }
 } }
Line 148: Line 129:
 public class TestRecipe implements Recipe<CraftingInventory> { public class TestRecipe implements Recipe<CraftingInventory> {
  //[...]  //[...]
- public static Type implements RecipeType<TestRecipe> {+ public static class Type implements RecipeType<TestRecipe> {
  private Type() {}  private Type() {}
  public static final Type INSTANCE = new Type();  public static final Type INSTANCE = new Type();
  public static final String ID = "test_recipe";  public static final String ID = "test_recipe";
 + }
 + @Override
 + pubilc RecipeType<?> getType() {
 + return Type.INSTANCE;
  }  }
 } }
 </code> </code>
 +
 +What's still missing is the RecipeSerializer, for now try to figure it out using the SOURCE link below.
 +
 SOURCE: SOURCE:
 [[https://github.com/natanfudge/fabric-docs/blob/master/newdocs/Modding-Tutorials/Crafting-Recipes/defining-custom-crafting-recipes.md|Defining Custom Crafting Recipes]] [[https://github.com/natanfudge/fabric-docs/blob/master/newdocs/Modding-Tutorials/Crafting-Recipes/defining-custom-crafting-recipes.md|Defining Custom Crafting Recipes]]
  
tutorial/recipe_type.1613527992.txt.gz · Last modified: 2021/02/17 02:13 by themovieayt