[Changes] Allow ItemStacks with NBT-Data as recipe results in Builders

This commit is contained in:
Frank 2023-04-29 14:21:58 +02:00
parent 093f3465fb
commit fe404d1aa4
4 changed files with 58 additions and 20 deletions

View file

@ -33,12 +33,15 @@ public abstract class AbstractBaseRecipeBuilder<T extends AbstractBaseRecipeBuil
protected boolean alright;
protected AbstractBaseRecipeBuilder(ResourceLocation id, ItemStack output) {
this.id = id;
this.output = output;
this.category = RecipeCategory.MISC;
this.alright = RecipeHelper.exists(output.getItem());
}
protected AbstractBaseRecipeBuilder(ResourceLocation id, ItemLike output) {
this.id = id;
this.output = new ItemStack(output, 1);
this.category = RecipeCategory.MISC;
this.alright = RecipeHelper.exists(output);
this(id, new ItemStack(output, 1));
}
public T setCategory(RecipeCategory category) {

View file

@ -6,6 +6,7 @@ import org.betterx.bclib.util.RecipeHelper;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.TagKey;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.crafting.Ingredient;
import net.minecraft.world.level.ItemLike;
@ -13,9 +14,12 @@ public abstract class AbstractSimpleRecipeBuilder<T extends AbstractSimpleRecipe
protected Ingredient primaryInput;
protected AbstractSimpleRecipeBuilder(ResourceLocation id, ItemLike output) {
super(id, output);
this(id, new ItemStack(output, 1));
}
protected AbstractSimpleRecipeBuilder(ResourceLocation id, ItemStack stack) {
super(id, stack);
}
public T setPrimaryInput(ItemLike... inputs) {
for (ItemLike item : inputs) {

View file

@ -12,6 +12,7 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.TagKey;
import net.minecraft.world.Container;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.crafting.Recipe;
import net.minecraft.world.item.crafting.RecipeSerializer;
import net.minecraft.world.level.ItemLike;
@ -26,6 +27,10 @@ public abstract class AbstractSingleInputRecipeBuilder<T extends AbstractSingleI
protected AbstractSingleInputRecipeBuilder(ResourceLocation id, ItemLike output) {
this(id, new ItemStack(output, 1));
}
protected AbstractSingleInputRecipeBuilder(ResourceLocation id, ItemStack output) {
super(id, output);
this.advancement = Advancement.Builder.advancement();
}
@ -56,7 +61,7 @@ public abstract class AbstractSingleInputRecipeBuilder<T extends AbstractSingleI
protected abstract RecipeSerializer<R> getSerializer();
protected void serializeRecipeData(JsonObject root) {
root.add("input", primaryInput.toJson());
root.add("input", ItemUtil.toJsonIngredientWithNBT(primaryInput));
if (group != null && !group.isEmpty()) {
root.addProperty("group", group);