Skip to content

Commit 8911f99

Browse files
authored
Create recipes using a RecipeBuilder in more situations (#202)
* add more ability to add aspects to infusion and crucible * add lens to Atomic Reconstructor Recipe Builder * convert complex add methods to use builder * make Crucible Recipe Builder register method create recipe * adjust Elven Trade add shorthand methods
1 parent e8a7443 commit 8911f99

36 files changed

+148
-311
lines changed

src/main/java/com/cleanroommc/groovyscript/compat/mods/actuallyadditions/AtomicReconstructor.java

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import de.ellpeck.actuallyadditions.api.lens.Lens;
1414
import de.ellpeck.actuallyadditions.api.recipe.LensConversionRecipe;
1515
import net.minecraft.item.ItemStack;
16-
import net.minecraft.item.crafting.Ingredient;
1716
import org.jetbrains.annotations.Nullable;
1817

1918
@RegistryDescription
@@ -35,10 +34,13 @@ public void onReload() {
3534
ActuallyAdditionsAPI.RECONSTRUCTOR_LENS_CONVERSION_RECIPES.addAll(restoreFromBackup());
3635
}
3736

38-
public LensConversionRecipe add(Ingredient input, ItemStack output, int energy, Lens type) {
39-
LensConversionRecipe recipe = new LensConversionRecipe(input, output, energy, type);
40-
add(recipe);
41-
return recipe;
37+
public LensConversionRecipe add(IIngredient input, ItemStack output, int energy, Lens type) {
38+
return recipeBuilder()
39+
.type(type)
40+
.energy(energy)
41+
.input(input)
42+
.output(output)
43+
.register();
4244
}
4345

4446
public void add(LensConversionRecipe recipe) {
@@ -94,6 +96,8 @@ public static class RecipeBuilder extends AbstractRecipeBuilder<LensConversionRe
9496

9597
@Property(defaultValue = "1", valid = @Comp(type = Comp.Type.GT, value = "0"))
9698
private int energyUse = 1;
99+
@Property(defaultValue = "ActuallyAdditionsAPI.lensDefaultConversion", valid = @Comp(value = "null", type = Comp.Type.NOT))
100+
private Lens type = ActuallyAdditionsAPI.lensDefaultConversion;
97101

98102
@RecipeBuilderMethodDescription
99103
public RecipeBuilder energyUse(int energyUse) {
@@ -107,6 +111,12 @@ public RecipeBuilder energy(int energy) {
107111
return this;
108112
}
109113

114+
@RecipeBuilderMethodDescription
115+
public RecipeBuilder type(Lens type) {
116+
this.type = type;
117+
return this;
118+
}
119+
110120
@Override
111121
public String getErrorMsg() {
112122
return "Error adding Actually Additions Atomic Reconstructor recipe";
@@ -117,13 +127,14 @@ public void validate(GroovyLog.Msg msg) {
117127
validateItems(msg, 1, 1, 1, 1);
118128
validateFluids(msg);
119129
msg.add(energyUse <= 0, "energyUse must be an integer greater than 0, yet it was {}", energyUse);
130+
msg.add(type == null, "type must not be null!");
120131
}
121132

122133
@Override
123134
@RecipeBuilderRegistrationMethod
124135
public @Nullable LensConversionRecipe register() {
125136
if (!validate()) return null;
126-
LensConversionRecipe recipe = new LensConversionRecipe(input.get(0).toMcIngredient(), output.get(0), energyUse, ActuallyAdditionsAPI.lensDefaultConversion);
137+
LensConversionRecipe recipe = new LensConversionRecipe(input.get(0).toMcIngredient(), output.get(0), energyUse, type);
127138
ModSupport.ACTUALLY_ADDITIONS.get().atomicReconstructor.add(recipe);
128139
return recipe;
129140
}

src/main/java/com/cleanroommc/groovyscript/compat/mods/alchemistry/Atomizer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public RecipeBuilder recipeBuilder() {
3333

3434
@MethodDescription(type = MethodDescription.Type.ADDITION)
3535
public AtomizerRecipe add(FluidStack input, ItemStack output) {
36-
return new RecipeBuilder().fluidInput(input).output(output).register();
36+
return recipeBuilder().fluidInput(input).output(output).register();
3737
}
3838

3939
public AtomizerRecipe add(AtomizerRecipe recipe) {

src/main/java/com/cleanroommc/groovyscript/compat/mods/alchemistry/Evaporator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public RecipeBuilder recipeBuilder() {
3232

3333
@MethodDescription(type = MethodDescription.Type.ADDITION)
3434
public EvaporatorRecipe add(FluidStack input, ItemStack output) {
35-
return new RecipeBuilder().fluidInput(input).output(output).register();
35+
return recipeBuilder().fluidInput(input).output(output).register();
3636
}
3737

3838
public EvaporatorRecipe add(EvaporatorRecipe recipe) {

src/main/java/com/cleanroommc/groovyscript/compat/mods/alchemistry/Liquifier.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public RecipeBuilder recipeBuilder() {
3232

3333
@MethodDescription(type = MethodDescription.Type.ADDITION)
3434
public LiquifierRecipe add(IIngredient input, FluidStack output) {
35-
return new RecipeBuilder().input(input).fluidOutput(output).register();
35+
return recipeBuilder().input(input).fluidOutput(output).register();
3636
}
3737

3838
public LiquifierRecipe add(LiquifierRecipe recipe) {

src/main/java/com/cleanroommc/groovyscript/compat/mods/bloodmagic/AlchemyArray.java

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import com.cleanroommc.groovyscript.helper.recipe.AbstractRecipeBuilder;
1414
import com.cleanroommc.groovyscript.registry.VirtualizedRegistry;
1515
import net.minecraft.item.ItemStack;
16-
import net.minecraft.item.crafting.Ingredient;
1716
import net.minecraft.util.ResourceLocation;
1817
import org.jetbrains.annotations.Nullable;
1918

@@ -36,22 +35,27 @@ public void onReload() {
3635
}
3736

3837
@MethodDescription(description = "groovyscript.wiki.bloodmagic.alchemy_array.add0", type = MethodDescription.Type.ADDITION)
39-
public RecipeAlchemyArray add(Ingredient input, Ingredient catalyst, ItemStack output) {
40-
RecipeAlchemyArray recipe = new RecipeAlchemyArray(input, catalyst, output, null);
41-
add(recipe);
42-
return recipe;
38+
public RecipeAlchemyArray add(IIngredient input, IIngredient catalyst, ItemStack output) {
39+
return recipeBuilder()
40+
.catalyst(catalyst)
41+
.input(input)
42+
.output(output)
43+
.register();
4344
}
4445

4546
@MethodDescription(description = "groovyscript.wiki.bloodmagic.alchemy_array.add1", type = MethodDescription.Type.ADDITION)
46-
public RecipeAlchemyArray add(Ingredient input, Ingredient catalyst, ItemStack output, String circleTexture) {
47+
public RecipeAlchemyArray add(IIngredient input, IIngredient catalyst, ItemStack output, String circleTexture) {
4748
return add(input, catalyst, output, new ResourceLocation(circleTexture));
4849
}
4950

5051
@MethodDescription(description = "groovyscript.wiki.bloodmagic.alchemy_array.add1", type = MethodDescription.Type.ADDITION)
51-
public RecipeAlchemyArray add(Ingredient input, Ingredient catalyst, ItemStack output, ResourceLocation circleTexture) {
52-
RecipeAlchemyArray recipe = new RecipeAlchemyArray(input, catalyst, output, circleTexture);
53-
add(recipe);
54-
return recipe;
52+
public RecipeAlchemyArray add(IIngredient input, IIngredient catalyst, ItemStack output, ResourceLocation circleTexture) {
53+
return recipeBuilder()
54+
.catalyst(catalyst)
55+
.texture(circleTexture)
56+
.input(input)
57+
.output(output)
58+
.register();
5559
}
5660

5761
public void add(RecipeAlchemyArray recipe) {

src/main/java/com/cleanroommc/groovyscript/compat/mods/bloodmagic/BloodAltar.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import com.cleanroommc.groovyscript.helper.recipe.AbstractRecipeBuilder;
1515
import com.cleanroommc.groovyscript.registry.VirtualizedRegistry;
1616
import net.minecraft.item.ItemStack;
17-
import net.minecraft.item.crafting.Ingredient;
1817
import org.jetbrains.annotations.Nullable;
1918

2019
@RegistryDescription(
@@ -44,10 +43,14 @@ public void onReload() {
4443
}
4544

4645
@MethodDescription(type = MethodDescription.Type.ADDITION)
47-
public RecipeBloodAltar add(Ingredient input, ItemStack output, int minimumTier, int syphon, int consumeRate, int drainRate) {
48-
RecipeBloodAltar recipe = new RecipeBloodAltar(input, output, minimumTier, syphon, consumeRate, drainRate);
49-
add(recipe);
50-
return recipe;
46+
public RecipeBloodAltar add(IIngredient input, ItemStack output, int minimumTier, int syphon, int consumeRate, int drainRate) {
47+
return recipeBuilder()
48+
.minimumTier(minimumTier)
49+
.consumeRate(consumeRate)
50+
.drainRate(drainRate)
51+
.input(input)
52+
.output(output)
53+
.register();
5154
}
5255

5356
public void add(RecipeBloodAltar recipe) {

src/main/java/com/cleanroommc/groovyscript/compat/mods/bloodmagic/TartaricForge.java

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import net.minecraft.util.NonNullList;
1818
import org.jetbrains.annotations.Nullable;
1919

20+
import java.util.Collection;
2021
import java.util.Collections;
2122

2223
@RegistryDescription
@@ -38,21 +39,13 @@ public void onReload() {
3839
}
3940

4041
@MethodDescription(type = MethodDescription.Type.ADDITION)
41-
public RecipeTartaricForge add(NonNullList<Ingredient> input, ItemStack output, double minimumSouls, double soulDrain) {
42-
double minimum;
43-
if (minimumSouls < soulDrain) {
44-
GroovyLog.msg("Warning creating Blood Magic Tartaric Forge recipe")
45-
.add("minimumSouls should be greater than soulDrain, yet minimumSouls was {} and soulDrain was {}", minimumSouls, soulDrain)
46-
.add("set minimumSouls equal to soulDrain")
47-
.warn()
48-
.post();
49-
minimum = soulDrain;
50-
} else {
51-
minimum = minimumSouls;
52-
}
53-
RecipeTartaricForge recipe = new RecipeTartaricForge(input, output, minimum, soulDrain);
54-
add(recipe);
55-
return recipe;
42+
public RecipeTartaricForge add(Collection<IIngredient> input, ItemStack output, double minimumSouls, double soulDrain) {
43+
return recipeBuilder()
44+
.soulDrain(soulDrain)
45+
.minimumSouls(minimumSouls)
46+
.output(output)
47+
.input(input)
48+
.register();
5649
}
5750

5851
public void add(RecipeTartaricForge recipe) {

src/main/java/com/cleanroommc/groovyscript/compat/mods/botania/Apothecary.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ public void onReload() {
3939

4040
@MethodDescription(type = MethodDescription.Type.ADDITION)
4141
public RecipePetals add(ItemStack output, IIngredient... inputs) {
42-
RecipePetals recipe = new RecipePetals(output, Arrays.stream(inputs).map(i -> i instanceof OreDictIngredient ? ((OreDictIngredient) i).getOreDict()
43-
: i.getMatchingStacks()[0]).toArray());
44-
add(recipe);
45-
return recipe;
42+
return recipeBuilder()
43+
.output(output)
44+
.input(inputs)
45+
.register();
4646
}
4747

4848
public void add(RecipePetals recipe) {

src/main/java/com/cleanroommc/groovyscript/compat/mods/botania/ElvenTrade.java

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import vazkii.botania.api.recipe.RecipeElvenTrade;
1515

1616
import java.util.Arrays;
17+
import java.util.Collection;
1718
import java.util.List;
1819

1920
@RegistryDescription
@@ -37,15 +38,23 @@ protected Object[] convertIngredients(IIngredient[] inputs) {
3738
}
3839

3940
@MethodDescription(type = MethodDescription.Type.ADDITION)
40-
public RecipeElvenTrade add(ItemStack[] outputs, IIngredient[] inputs) {
41-
RecipeElvenTrade recipe = new RecipeElvenTrade(outputs, convertIngredients(inputs));
42-
add(recipe);
43-
return recipe;
41+
public RecipeElvenTrade add(ItemStack[] outputs, IIngredient... inputs) {
42+
return recipeBuilder().input(inputs).output(outputs).register();
4443
}
4544

4645
@MethodDescription(type = MethodDescription.Type.ADDITION)
47-
public RecipeElvenTrade add(ItemStack output, IIngredient[] inputs) {
48-
return add(new ItemStack[]{output}, inputs);
46+
public RecipeElvenTrade add(Collection<ItemStack> outputs, Collection<IIngredient> inputs) {
47+
return recipeBuilder().input(inputs).output(outputs).register();
48+
}
49+
50+
@MethodDescription(type = MethodDescription.Type.ADDITION)
51+
public RecipeElvenTrade add(ItemStack output, IIngredient... inputs) {
52+
return recipeBuilder().input(inputs).output(output).register();
53+
}
54+
55+
@MethodDescription(type = MethodDescription.Type.ADDITION)
56+
public RecipeElvenTrade add(ItemStack output, Collection<IIngredient> inputs) {
57+
return recipeBuilder().input(inputs).output(output).register();
4958
}
5059

5160
public void add(RecipeElvenTrade recipe) {

src/main/java/com/cleanroommc/groovyscript/compat/mods/botania/Lexicon.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -251,14 +251,12 @@ public void onReload() {
251251

252252
@MethodDescription(type = MethodDescription.Type.ADDITION)
253253
public LexiconEntry add(String name, LexiconCategory category) {
254-
LexiconEntry entry = new LexiconEntry(name, category);
255-
add(entry);
256-
return entry;
254+
return entryBuilder().name(name).category(category).register();
257255
}
258256

259257
@MethodDescription(type = MethodDescription.Type.ADDITION)
260258
public LexiconEntry add(String name, String category) {
261-
return add(name, Botania.getCategory(category));
259+
return entryBuilder().name(name).category(category).register();
262260
}
263261

264262
public void add(LexiconEntry entry) {

0 commit comments

Comments
 (0)