mirror of
https://github.com/Ellpeck/ActuallyAdditions.git
synced 2024-11-26 08:48:34 +01:00
feat: added wrapper for builders in recipes
This commit is contained in:
parent
354a118a1f
commit
8edd6de4d2
1 changed files with 131 additions and 65 deletions
|
@ -6,10 +6,12 @@ import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks;
|
||||||
import de.ellpeck.actuallyadditions.mod.items.ActuallyItems;
|
import de.ellpeck.actuallyadditions.mod.items.ActuallyItems;
|
||||||
import net.minecraft.data.*;
|
import net.minecraft.data.*;
|
||||||
import net.minecraft.item.Items;
|
import net.minecraft.item.Items;
|
||||||
|
import net.minecraft.util.IItemProvider;
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
import net.minecraftforge.common.Tags;
|
import net.minecraftforge.common.Tags;
|
||||||
|
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
public class BlockRecipeGenerator extends RecipeProvider {
|
public class BlockRecipeGenerator extends RecipeProvider {
|
||||||
|
@ -20,23 +22,15 @@ public class BlockRecipeGenerator extends RecipeProvider {
|
||||||
@Override
|
@Override
|
||||||
protected void registerRecipes(Consumer<IFinishedRecipe> consumer) {
|
protected void registerRecipes(Consumer<IFinishedRecipe> consumer) {
|
||||||
//Battery Box
|
//Battery Box
|
||||||
ShapelessRecipeBuilder.shapelessRecipe(ActuallyBlocks.BATTERY_BOX.get())
|
Recipe.shapeless(ActuallyBlocks.BATTERY_BOX.get()).ingredients(ActuallyBlocks.ENERGIZER.get(), ActuallyBlocks.ENERVATOR.get(), ActuallyItems.COIL.get()).build(consumer);
|
||||||
.addIngredient(ActuallyBlocks.ENERGIZER.get())
|
|
||||||
.addIngredient(ActuallyBlocks.ENERVATOR.get())
|
|
||||||
.addIngredient(ActuallyItems.COIL.get())
|
|
||||||
.addCriterion("", hasItem(Items.AIR))
|
|
||||||
.build(consumer, new ResourceLocation(ActuallyAdditions.MODID, "battery_box"));
|
|
||||||
|
|
||||||
//Farmer
|
//Farmer
|
||||||
ShapedRecipeBuilder.shapedRecipe(ActuallyBlocks.FARMER.get())
|
Recipe.shaped(ActuallyBlocks.FARMER.get())
|
||||||
.patternLine("ISI")
|
.pattern("ISI", "SCS", "ISI")
|
||||||
.patternLine("SCS")
|
|
||||||
.patternLine("ISI")
|
|
||||||
.key('I', ActuallyBlocks.CRYSTAL_ENORI.get())
|
.key('I', ActuallyBlocks.CRYSTAL_ENORI.get())
|
||||||
.key('C', ActuallyBlocks.IRON_CASING.get())
|
.key('C', ActuallyBlocks.IRON_CASING.get())
|
||||||
.key('S', Tags.Items.SEEDS)
|
.key('S', Tags.Items.SEEDS)
|
||||||
.addCriterion("", hasItem(Items.AIR))
|
.build(consumer);
|
||||||
.build(consumer, new ResourceLocation(ActuallyAdditions.MODID, "farmer"));
|
|
||||||
|
|
||||||
//Empowerer
|
//Empowerer
|
||||||
ShapedRecipeBuilder.shapedRecipe(ActuallyBlocks.EMPOWERER.get())
|
ShapedRecipeBuilder.shapedRecipe(ActuallyBlocks.EMPOWERER.get())
|
||||||
|
@ -108,4 +102,76 @@ public class BlockRecipeGenerator extends RecipeProvider {
|
||||||
protected void saveRecipeAdvancement(DirectoryCache cache, JsonObject cache2, Path advancementJson) {
|
protected void saveRecipeAdvancement(DirectoryCache cache, JsonObject cache2, Path advancementJson) {
|
||||||
//Nope...
|
//Nope...
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class Recipe {
|
||||||
|
public static Shapeless shapeless(IItemProvider result) {
|
||||||
|
return new Shapeless(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Shaped shaped(IItemProvider result) {
|
||||||
|
return new Shaped(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class Shapeless extends ShapelessRecipeBuilder {
|
||||||
|
public Shapeless(IItemProvider result) {
|
||||||
|
this(result, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Shapeless(IItemProvider result, int countIn) {
|
||||||
|
super(result, countIn);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Shapeless ingredients(IItemProvider... ingredients) {
|
||||||
|
Arrays.asList(ingredients).forEach(this::addIngredient);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void build(Consumer<IFinishedRecipe> consumer) {
|
||||||
|
this.addCriterion("has_book", hasItem(ActuallyItems.ITEM_BOOKLET.get()));
|
||||||
|
super.build(consumer);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void build(Consumer<IFinishedRecipe> consumer, ResourceLocation location) {
|
||||||
|
this.addCriterion("has_book", hasItem(ActuallyItems.ITEM_BOOKLET.get()));
|
||||||
|
super.build(consumer, location);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class Shaped extends ShapedRecipeBuilder {
|
||||||
|
public Shaped(IItemProvider resultIn) {
|
||||||
|
this(resultIn, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Shaped(IItemProvider resultIn, int countIn) {
|
||||||
|
super(resultIn, countIn);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Shaped pattern(String line1, String line2, String line3) {
|
||||||
|
this.patternLine(line1);
|
||||||
|
this.patternLine(line2);
|
||||||
|
this.patternLine(line3);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Shaped pattern(String line1, String line2) {
|
||||||
|
this.patternLine(line1);
|
||||||
|
this.patternLine(line2);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void build(Consumer<IFinishedRecipe> consumerIn) {
|
||||||
|
this.addCriterion("has_book", hasItem(ActuallyItems.ITEM_BOOKLET.get()));
|
||||||
|
super.build(consumerIn);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void build(Consumer<IFinishedRecipe> consumerIn, ResourceLocation id) {
|
||||||
|
this.addCriterion("has_book", hasItem(ActuallyItems.ITEM_BOOKLET.get()));
|
||||||
|
super.build(consumerIn, id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue