Added fallback to LegacyUpgradeRecipeBuilder when no template was specified in SmithingRecipeBuilder

This commit is contained in:
Frank 2023-05-17 14:42:40 +02:00
parent f5c2113ca0
commit e66adaf187

View file

@ -3,6 +3,7 @@ package org.betterx.bclib.recipes;
import org.betterx.bclib.BCLib; import org.betterx.bclib.BCLib;
import net.minecraft.data.recipes.FinishedRecipe; import net.minecraft.data.recipes.FinishedRecipe;
import net.minecraft.data.recipes.LegacyUpgradeRecipeBuilder;
import net.minecraft.data.recipes.SmithingTransformRecipeBuilder; import net.minecraft.data.recipes.SmithingTransformRecipeBuilder;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.TagKey; import net.minecraft.tags.TagKey;
@ -67,30 +68,35 @@ public class SmithingRecipeBuilder extends AbstractUnlockableRecipeBuilder<Smith
); );
return false; return false;
} }
if (template == null) {
BCLib.LOGGER.warning(
"Smithing Recipes need a template. Recipe {} will be ignored!",
id
);
return false;
}
return super.checkRecipe(); return super.checkRecipe();
} }
@Override @Override
protected void buildRecipe(Consumer<FinishedRecipe> cc) { protected void buildRecipe(Consumer<FinishedRecipe> cc) {
final SmithingTransformRecipeBuilder builder = SmithingTransformRecipeBuilder.smithing( if (template == null) {
Ingredient.of(template), final LegacyUpgradeRecipeBuilder builder = LegacyUpgradeRecipeBuilder.smithing(
primaryInput, primaryInput,
addon, addon,
category, category,
output.getItem() output.getItem()
); );
for (var item : unlocks.entrySet()) {
builder.unlocks(item.getKey(), item.getValue());
}
builder.save(cc, id);
} else {
final SmithingTransformRecipeBuilder builder = SmithingTransformRecipeBuilder.smithing(
Ingredient.of(template),
primaryInput,
addon,
category,
output.getItem()
);
for (var item : unlocks.entrySet()) { for (var item : unlocks.entrySet()) {
builder.unlocks(item.getKey(), item.getValue()); builder.unlocks(item.getKey(), item.getValue());
}
builder.save(cc, id);
} }
builder.save(cc, id);
} }
} }