Class PressureChamberRecipeImpl

All Implemented Interfaces:
net.minecraft.world.item.crafting.Recipe<PneumaticCraftRecipe.DummyIInventory>
Direct Known Subclasses:
PressureDisenchantingRecipe, PressureEnchantingRecipe

public class PressureChamberRecipeImpl extends PressureChamberRecipe
  • Constructor Details

    • PressureChamberRecipeImpl

      public PressureChamberRecipeImpl(net.minecraft.resources.ResourceLocation id, List<net.minecraft.world.item.crafting.Ingredient> inputs, float pressureRequired, net.minecraft.world.item.ItemStack... outputs)
  • Method Details

    • getCraftingPressure

      public float getCraftingPressure(net.minecraftforge.items.IItemHandler chamberHandler, it.unimi.dsi.fastutil.ints.IntList ingredientSlots)
      Description copied from class: PressureChamberRecipe
      Returns the minimum pressure required to craft the recipe. Negative pressures are also acceptable; in this case the pressure chamber's pressure must be lower than the required pressure.
      Specified by:
      getCraftingPressure in class PressureChamberRecipe
      Parameters:
      chamberHandler - what's currently in the pressure chamber
      ingredientSlots - a list of slots in chamberHandler (as returned by PressureChamberRecipe.findIngredients(IItemHandler)) where the ingredients can be found
      Returns:
      threshold pressure
    • getCraftingPressureForDisplay

      public float getCraftingPressureForDisplay()
      Description copied from class: PressureChamberRecipe
      Get the required crafting pressure for the items specified by PressureChamberRecipe.getInputsForDisplay(), for display purposes only (e.g. for JEI)
      Specified by:
      getCraftingPressureForDisplay in class PressureChamberRecipe
    • findIngredients

      public it.unimi.dsi.fastutil.ints.IntCollection findIngredients(net.minecraftforge.items.IItemHandler chamberHandler)
      Description copied from class: PressureChamberRecipe
      When called (by the pressure chamber BE when it detects a change in the chamber contents), try to find the ingredients for this recipe in the given item handler, which represents all the items currently in the pressure chamber. You must return a collection of slot indices into the item handler which contain the matching ingredients; those indices will be passed promptly to PressureChamberRecipe.getCraftingPressure(IItemHandler, IntList) and PressureChamberRecipe.craftRecipe(IItemHandler, IntList, boolean) by the pressure chamber.

      Do not cache this list across ticks, since the chamber contents are quite likely to change in the meantime.

      Specified by:
      findIngredients in class PressureChamberRecipe
      Parameters:
      chamberHandler - what's currently in the pressure chamber
      Returns:
      if this recipe is valid, a list of slots in the item handler where the ingredients can be found; otherwise, an empty list
    • getInputsForDisplay

      public List<net.minecraft.world.item.crafting.Ingredient> getInputsForDisplay()
      Description copied from class: PressureChamberRecipe
      Get the input items for this recipe. This is primarily intended for recipe display purposes by JEI or any other recipe display mod.
      Specified by:
      getInputsForDisplay in class PressureChamberRecipe
    • getSingleResultsForDisplay

      protected List<net.minecraft.world.item.ItemStack> getSingleResultsForDisplay()
      Description copied from class: PressureChamberRecipe
      Implement if no output slots display more than one stack.
      Overrides:
      getSingleResultsForDisplay in class PressureChamberRecipe
      See Also:
    • getType

      public net.minecraft.world.item.crafting.RecipeType<?> getType()
    • getSerializer

      public net.minecraft.world.item.crafting.RecipeSerializer<?> getSerializer()
    • getGroup

      public String getGroup()
    • getToastSymbol

      public net.minecraft.world.item.ItemStack getToastSymbol()
    • isValidInputItem

      public boolean isValidInputItem(net.minecraft.world.item.ItemStack stack)
      Description copied from class: PressureChamberRecipe
      Check if the given item is a valid input item for this recipe. This should also be true even if the number of items in the given item stack is smaller than the number required by the recipe; this is testing for item type, not item count.
      Specified by:
      isValidInputItem in class PressureChamberRecipe
      Parameters:
      stack - item stack to check
      Returns:
      true if this is a valid item, false otherwise
    • craftRecipe

      @Nonnull public net.minecraft.core.NonNullList<net.minecraft.world.item.ItemStack> craftRecipe(@Nonnull net.minecraftforge.items.IItemHandler chamberHandler, it.unimi.dsi.fastutil.ints.IntList ingredientSlots, boolean simulate)
      Description copied from class: PressureChamberRecipe
      This method is called when the Pressure Chamber is ready to craft with this recipe, and will only be called when PressureChamberRecipe.findIngredients(IItemHandler) returns a non-empty list of slot numbers, i.e. the necessary items are definitely in the chamber. The implementation is responsible for removing the items that have been used from the chamberHandler. The implementation must also return the list of crafted items, for the Pressure Chamber to insert into its output item handler.
      Specified by:
      craftRecipe in class PressureChamberRecipe
      Parameters:
      chamberHandler - items in the pressure chamber; should be modified to remove recipe input items.
      ingredientSlots - slots in the chamber handler where the ingredients can be found, as returned from PressureChamberRecipe.findIngredients(IItemHandler)
      simulate - pass on to uses of chamberHandler
      Returns:
      the resulting items; these do not have to be copies, since the Pressure Chamber itself will insert copies of these items
    • write

      public void write(net.minecraft.network.FriendlyByteBuf buffer)
      Description copied from class: PneumaticCraftRecipe
      Writes this recipe to a PacketBuffer.
      Specified by:
      write in class PneumaticCraftRecipe
      Parameters:
      buffer - The buffer to write to.