Created
April 14, 2024 21:57
-
-
Save celsiusqc/7b8bbd01fd60b91718d270f3de3a787f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package net.celsiusqc.create_wt.crafting.recipeTypes; | |
import java.util.List; | |
import java.util.Set; | |
import java.util.function.Supplier; | |
import com.simibubi.create.AllBlocks; | |
import com.simibubi.create.AllRecipeTypes; | |
import com.simibubi.create.compat.jei.category.sequencedAssembly.SequencedAssemblySubCategory; | |
import com.simibubi.create.content.processing.recipe.ProcessingRecipe; | |
import com.simibubi.create.content.processing.recipe.ProcessingRecipeBuilder.ProcessingRecipeParams; | |
import com.simibubi.create.content.processing.sequenced.IAssemblyRecipe; | |
import com.simibubi.create.foundation.fluid.FluidIngredient; | |
import com.simibubi.create.foundation.recipe.IRecipeTypeInfo; | |
import com.simibubi.create.foundation.utility.Components; | |
import com.simibubi.create.foundation.utility.Lang; | |
import net.minecraft.network.chat.Component; | |
import net.minecraft.world.item.crafting.Ingredient; | |
import net.minecraft.world.level.ItemLike; | |
import net.minecraft.world.level.Level; | |
import net.minecraftforge.api.distmarker.Dist; | |
import net.minecraftforge.api.distmarker.OnlyIn; | |
import net.minecraftforge.fluids.FluidStack; | |
import net.minecraftforge.items.wrapper.RecipeWrapper; | |
public class WeaponryHeadFilling extends ProcessingRecipe<RecipeWrapper> implements IAssemblyRecipe { | |
public WeaponryHeadFilling(ProcessingRecipeParams params) { | |
super(AllRecipeTypes.FILLING, params); | |
} | |
public WeaponryHeadFilling(IRecipeTypeInfo typeInfo, ProcessingRecipeParams params) { | |
super(typeInfo, params); | |
} | |
@Override | |
public boolean matches(RecipeWrapper inv, Level p_77569_2_) { | |
return ingredients.get(0) | |
.test(inv.getItem(0)); | |
} | |
@Override | |
protected int getMaxInputCount() { | |
return 1; | |
} | |
@Override | |
protected int getMaxOutputCount() { | |
return 2; | |
} | |
@Override | |
protected int getMaxFluidInputCount() { | |
return 1; | |
} | |
public FluidIngredient getRequiredFluid() { | |
if (fluidIngredients.isEmpty()) | |
throw new IllegalStateException("Weapon Head Filling Recipe: " + id.toString() + " has no fluid ingredient!"); | |
return fluidIngredients.get(0); | |
} | |
@Override | |
public void addAssemblyIngredients(List<Ingredient> list) {} | |
@Override | |
public void addAssemblyFluidIngredients(List<FluidIngredient> list) { | |
list.add(getRequiredFluid()); | |
} | |
@Override | |
@OnlyIn(Dist.CLIENT) | |
public Component getDescriptionForAssembly() { | |
List<FluidStack> matchingFluidStacks = fluidIngredients.get(0) | |
.getMatchingFluidStacks(); | |
if (matchingFluidStacks.isEmpty()) | |
return Components.literal("Invalid"); | |
return Lang.translateDirect("recipe.assembly.weaponry_head_spout_filling_fluid", | |
matchingFluidStacks.get(0).getDisplayName().getString()); | |
} | |
@Override | |
public void addRequiredMachines(Set<ItemLike> list) { | |
list.add(AllBlocks.SPOUT.get()); | |
} | |
@Override | |
public Supplier<Supplier<SequencedAssemblySubCategory>> getJEISubCategory() { | |
return () -> SequencedAssemblySubCategory.AssemblySpouting::new; | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment