Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 44 additions & 2 deletions src/main/java/gregtech/api/recipes/RecipeBuilder.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package gregtech.api.recipes;

import gregtech.api.GTValues;
import gregtech.api.fluids.store.FluidStorageKey;
import gregtech.api.items.metaitem.MetaItem;
import gregtech.api.metatileentity.MetaTileEntity;
import gregtech.api.metatileentity.multiblock.CleanroomType;
Expand Down Expand Up @@ -260,6 +261,10 @@ public R input(Block block, int count) {
return input(new GTRecipeItemInput(new ItemStack(block, count)));
}

public R input(Block block, int count, int meta) {
return input(new GTRecipeItemInput(new ItemStack(block, count, meta)));
}

public R input(Block block, int count, @SuppressWarnings("unused") boolean wild) {
return input(new GTRecipeItemInput(new ItemStack(block, count, GTValues.W)));
}
Expand Down Expand Up @@ -516,6 +521,10 @@ public R output(Block item, int count) {
return outputs(new ItemStack(item, count));
}

public R output(Block item, int count, int meta) {
return outputs(new ItemStack(item, count, meta));
}

public R output(MetaItem<?>.MetaValueItem item, int count) {
return outputs(item.getStackForm(count));
}
Expand Down Expand Up @@ -555,6 +564,14 @@ public R clearOutputs() {
return (R) this;
}

public R fluidInput(@NotNull Fluid fluid) {
return fluidInputs(new GTRecipeFluidInput(fluid, 1));
}

public R fluidInput(@NotNull Fluid fluid, int amount) {
return fluidInputs(new GTRecipeFluidInput(fluid, amount));
}

public R fluidInputs(Collection<GTRecipeInput> fluidIngredients) {
this.fluidInputs.addAll(fluidIngredients);
return (R) this;
Expand All @@ -569,20 +586,29 @@ public R fluidInputs(FluidStack input) {
if (input != null && input.amount > 0) {
this.fluidInputs.add(new GTRecipeFluidInput(input));
} else if (input != null) {
GTLog.logger.error("Fluid Input count cannot be less than 0. Actual: {}.", input.amount, new Throwable());
GTLog.logger.error("Fluid Input count cannot be less than 1. Actual: {}.", input.amount,
new IllegalArgumentException());
} else {
GTLog.logger.error("FluidStack cannot be null.");
}
return (R) this;
}

public R fluidInputs(@NotNull Material material, int amount) {
return fluidInputs(material.getFluid(amount));
}

public R fluidInputs(@NotNull Material material, @NotNull FluidStorageKey storageKey, int amount) {
return fluidInputs(material.getFluid(storageKey, amount));
}

public R fluidInputs(FluidStack... fluidStacks) {
ArrayList<GTRecipeInput> fluidIngredients = new ArrayList<>();
for (FluidStack fluidStack : fluidStacks) {
if (fluidStack != null && fluidStack.amount > 0) {
fluidIngredients.add(new GTRecipeFluidInput(fluidStack));
} else if (fluidStack != null) {
GTLog.logger.error("Fluid Input count cannot be less than 0. Actual: {}.", fluidStack.amount,
GTLog.logger.error("Fluid Input count cannot be less than 1. Actual: {}.", fluidStack.amount,
new Throwable());
} else {
GTLog.logger.error("FluidStack cannot be null.");
Expand All @@ -597,13 +623,29 @@ public R clearFluidInputs() {
return (R) this;
}

public R fluidOutputs(@NotNull Fluid fluid) {
return fluidOutputs(new FluidStack(fluid, 1));
}

public R fluidOutputs(@NotNull Fluid fluid, int amount) {
return fluidOutputs(new FluidStack(fluid, amount));
}

public R fluidOutputs(FluidStack output) {
if (output != null && output.amount > 0) {
this.fluidOutputs.add(output);
}
return (R) this;
}

public R fluidOutputs(@NotNull Material material, int amount) {
return fluidOutputs(material.getFluid(amount));
}

public R fluidOutputs(@NotNull Material material, @NotNull FluidStorageKey storageKey, int amount) {
return fluidOutputs(material.getFluid(storageKey, amount));
}

public R fluidOutputs(FluidStack... outputs) {
return fluidOutputs(Arrays.asList(outputs));
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
package gregtech.api.recipes.builders;

import gregtech.api.items.metaitem.MetaItem;
import gregtech.api.items.metaitem.stats.IDataItem;
import gregtech.api.metatileentity.MetaTileEntity;
import gregtech.api.recipes.Recipe;
import gregtech.api.recipes.RecipeBuilder;
import gregtech.api.recipes.RecipeMap;
import gregtech.api.recipes.properties.impl.ResearchProperty;
import gregtech.api.recipes.properties.impl.ResearchPropertyData;
import gregtech.api.unification.material.Material;
import gregtech.api.unification.ore.OrePrefix;
import gregtech.api.util.AssemblyLineManager;
import gregtech.api.util.EnumValidationResult;
import gregtech.api.util.GTLog;
import gregtech.common.ConfigHolder;

import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;

import org.jetbrains.annotations.NotNull;
Expand Down Expand Up @@ -126,7 +131,66 @@ public AssemblyLineRecipeBuilder scannerResearch(UnaryOperator<ResearchRecipeBui
* @return this
*/
public AssemblyLineRecipeBuilder scannerResearch(@NotNull ItemStack researchStack) {
return scannerResearch(b -> new ResearchRecipeBuilder.ScannerRecipeBuilder().researchStack(researchStack));
return scannerResearch(b -> b.researchStack(researchStack));
}

public AssemblyLineRecipeBuilder scannerResearch(@NotNull MetaItem<?>.MetaValueItem metaItem) {
return scannerResearch(b -> b.researchStack(metaItem));
}

public AssemblyLineRecipeBuilder scannerResearch(@NotNull MetaItem<?>.MetaValueItem metaItem, int amount) {
return scannerResearch(b -> b.researchStack(metaItem, amount));
}

public AssemblyLineRecipeBuilder scannerResearch(@NotNull MetaItem<?>.MetaValueItem metaItem, int amount,
boolean ignoreNBT) {
return scannerResearch(b -> b.researchStack(metaItem, amount, ignoreNBT));
}

public AssemblyLineRecipeBuilder scannerResearch(@NotNull MetaTileEntity mte) {
return scannerResearch(b -> b.researchStack(mte));
}

public AssemblyLineRecipeBuilder scannerResearch(@NotNull MetaTileEntity mte, int amount) {
return scannerResearch(b -> b.researchStack(mte, amount));
}

public AssemblyLineRecipeBuilder scannerResearch(@NotNull MetaTileEntity mte, int amount, boolean ignoreNBT) {
return scannerResearch(b -> b.researchStack(mte, amount, ignoreNBT));
}

public AssemblyLineRecipeBuilder scannerResearch(@NotNull OrePrefix prefix, @NotNull Material material) {
return scannerResearch(b -> b.researchStack(prefix, material));
}

public AssemblyLineRecipeBuilder scannerResearch(@NotNull OrePrefix prefix, @NotNull Material material,
int amount) {
return scannerResearch(b -> b.researchStack(prefix, material, amount));
}

public AssemblyLineRecipeBuilder scannerResearch(@NotNull OrePrefix prefix, @NotNull Material material, int amount,
boolean ignoreNBT) {
return scannerResearch(b -> b.researchStack(prefix, material, amount, ignoreNBT));
}

public AssemblyLineRecipeBuilder scannerResearch(@NotNull Block block) {
return scannerResearch(b -> b.researchStack(block));
}

public AssemblyLineRecipeBuilder scannerResearch(@NotNull Block block, int amount) {
return scannerResearch(b -> b.researchStack(block, amount));
}

public AssemblyLineRecipeBuilder scannerResearch(@NotNull Block block, int amount, int meta) {
return scannerResearch(b -> b.researchStack(block, amount, meta));
}

public AssemblyLineRecipeBuilder scannerResearch(@NotNull Block block, int amount, boolean ignoreNBT) {
return scannerResearch(b -> b.researchStack(block, amount, ignoreNBT));
}

public AssemblyLineRecipeBuilder scannerResearch(@NotNull Block block, int amount, int meta, boolean ignoreNBT) {
return scannerResearch(b -> b.researchStack(block, amount, meta, ignoreNBT));
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,14 @@
import gregtech.api.items.metaitem.MetaItem;
import gregtech.api.items.metaitem.stats.IDataItem;
import gregtech.api.items.metaitem.stats.IItemBehaviour;
import gregtech.api.metatileentity.MetaTileEntity;
import gregtech.api.unification.OreDictUnifier;
import gregtech.api.unification.material.Material;
import gregtech.api.unification.ore.OrePrefix;
import gregtech.api.util.AssemblyLineManager;
import gregtech.api.util.GTStringUtils;

import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;

import org.jetbrains.annotations.NotNull;
Expand All @@ -24,6 +29,7 @@ public T researchStack(@NotNull ItemStack researchStack) {
this.researchStack = researchStack;
this.ignoreNBT = true;
}
// noinspection unchecked
return (T) this;
}

Expand All @@ -32,23 +38,83 @@ public T researchStack(@NotNull ItemStack researchStack, boolean ignoreNBT) {
this.researchStack = researchStack;
this.ignoreNBT = ignoreNBT;
}
// noinspection unchecked
return (T) this;
}

public T researchStack(@NotNull MetaItem<?>.MetaValueItem metaItem) {
return researchStack(metaItem.getStackForm());
}

public T researchStack(@NotNull MetaItem<?>.MetaValueItem metaItem, int amount) {
return researchStack(metaItem.getStackForm(amount));
}

public T researchStack(@NotNull MetaItem<?>.MetaValueItem metaItem, int amount, boolean ignoreNBT) {
return researchStack(metaItem.getStackForm(amount), ignoreNBT);
}

public T researchStack(@NotNull MetaTileEntity mte) {
return researchStack(mte.getStackForm());
}

public T researchStack(@NotNull MetaTileEntity mte, int amount) {
return researchStack(mte.getStackForm(amount));
}

public T researchStack(@NotNull MetaTileEntity mte, int amount, boolean ignoreNBT) {
return researchStack(mte.getStackForm(amount), ignoreNBT);
}

public T researchStack(@NotNull OrePrefix prefix, @NotNull Material material) {
return researchStack(OreDictUnifier.get(prefix, material));
}

public T researchStack(@NotNull OrePrefix prefix, @NotNull Material material, int amount) {
return researchStack(OreDictUnifier.get(prefix, material, amount));
}

public T researchStack(@NotNull OrePrefix prefix, @NotNull Material material, int amount, boolean ignoreNBT) {
return researchStack(OreDictUnifier.get(prefix, material, amount), ignoreNBT);
}

public T researchStack(@NotNull Block block) {
return researchStack(new ItemStack(block));
}

public T researchStack(@NotNull Block block, int amount) {
return researchStack(new ItemStack(block, amount));
}

public T researchStack(@NotNull Block block, int amount, int meta) {
return researchStack(new ItemStack(block, amount, meta));
}

public T researchStack(@NotNull Block block, int amount, boolean ignoreNBT) {
return researchStack(new ItemStack(block, amount), ignoreNBT);
}

public T researchStack(@NotNull Block block, int amount, int meta, boolean ignoreNBT) {
return researchStack(new ItemStack(block, amount, meta), ignoreNBT);
}

public T dataStack(@NotNull ItemStack dataStack) {
if (!dataStack.isEmpty()) {
this.dataStack = dataStack;
}
// noinspection unchecked
return (T) this;
}

public T researchId(String researchId) {
this.researchId = researchId;
// noinspection unchecked
return (T) this;
}

public T EUt(long eut) {
this.eut = eut;
// noinspection unchecked
return (T) this;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package gregtech.loaders.recipe;

import gregtech.api.unification.OreDictUnifier;
import gregtech.api.unification.material.MarkerMaterials.Tier;

import static gregtech.api.GTValues.*;
Expand Down Expand Up @@ -28,7 +27,7 @@ public static void init() {
.fluidInputs(NiobiumTitanium.getFluid(L * 8))
.outputs(FUSION_REACTOR[0].getStackForm())
.scannerResearch(b -> b
.researchStack(OreDictUnifier.get(wireGtSingle, IndiumTinBariumTitaniumCuprate))
.researchStack(wireGtSingle, IndiumTinBariumTitaniumCuprate)
.duration(1200)
.EUt(VA[IV]))
.duration(800).EUt(VA[LuV]).buildAndRegister();
Expand All @@ -46,7 +45,7 @@ public static void init() {
.fluidInputs(VanadiumGallium.getFluid(L * 8))
.outputs(FUSION_REACTOR[1].getStackForm())
.stationResearch(b -> b
.researchStack(FUSION_REACTOR[0].getStackForm())
.researchStack(FUSION_REACTOR[0])
.CWUt(16)
.EUt(VA[ZPM]))
.duration(1000).EUt(61440).buildAndRegister();
Expand All @@ -64,7 +63,7 @@ public static void init() {
.fluidInputs(YttriumBariumCuprate.getFluid(L * 8))
.outputs(FUSION_REACTOR[2].getStackForm())
.stationResearch(b -> b
.researchStack(FUSION_REACTOR[1].getStackForm())
.researchStack(FUSION_REACTOR[1])
.CWUt(96)
.EUt(VA[UV]))
.duration(1000).EUt(VA[ZPM]).buildAndRegister();
Expand Down
8 changes: 4 additions & 4 deletions src/main/java/gregtech/loaders/recipe/BatteryRecipes.java
Original file line number Diff line number Diff line change
Expand Up @@ -360,7 +360,7 @@ private static void gemBatteries() {
.input(bolt, Naquadah, 16)
.fluidInputs(SolderingAlloy.getFluid(L * 5))
.output(ENERGY_LAPOTRONIC_ORB_CLUSTER)
.scannerResearch(ENERGY_LAPOTRONIC_ORB.getStackForm())
.scannerResearch(ENERGY_LAPOTRONIC_ORB)
.buildAndRegister();

// Energy Module
Expand All @@ -381,7 +381,7 @@ private static void gemBatteries() {
.fluidInputs(SolderingAlloy.getFluid(L * 10))
.output(ENERGY_MODULE)
.stationResearch(b -> b
.researchStack(ENERGY_LAPOTRONIC_ORB_CLUSTER.getStackForm())
.researchStack(ENERGY_LAPOTRONIC_ORB_CLUSTER)
.CWUt(16))
.buildAndRegister();

Expand All @@ -404,7 +404,7 @@ private static void gemBatteries() {
.fluidInputs(Polybenzimidazole.getFluid(L * 4))
.output(ENERGY_CLUSTER)
.stationResearch(b -> b
.researchStack(ENERGY_MODULE.getStackForm())
.researchStack(ENERGY_MODULE)
.CWUt(96)
.EUt(VA[ZPM]))
.buildAndRegister();
Expand All @@ -429,7 +429,7 @@ private static void gemBatteries() {
.fluidInputs(Naquadria.getFluid(L * 18))
.output(ULTIMATE_BATTERY)
.stationResearch(b -> b
.researchStack(ENERGY_CLUSTER.getStackForm())
.researchStack(ENERGY_CLUSTER)
.CWUt(144)
.EUt(VA[UHV]))
.buildAndRegister();
Expand Down
Loading
Loading