aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGenAssembler.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGenAssembler.java')
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGenAssembler.java85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGenAssembler.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGenAssembler.java
new file mode 100644
index 0000000000..64ce9d1c42
--- /dev/null
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGenAssembler.java
@@ -0,0 +1,85 @@
+package gtPlusPlus.xmod.gregtech.loaders;
+
+import static gregtech.api.recipe.RecipeMaps.assemblerRecipes;
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import net.minecraft.item.ItemStack;
+
+import gregtech.api.enums.GTValues;
+import gregtech.api.util.GTUtility;
+import gtPlusPlus.api.interfaces.RunnableWithInfo;
+import gtPlusPlus.core.material.Material;
+import gtPlusPlus.core.material.MaterialGenerator;
+import gtPlusPlus.core.util.minecraft.FluidUtils;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+
+public class RecipeGenAssembler extends RecipeGenBase {
+
+ public static final Set<RunnableWithInfo<Material>> mRecipeGenMap = new HashSet<>();
+
+ static {
+ MaterialGenerator.mRecipeMapsToGenerate.put(mRecipeGenMap);
+ }
+
+ public RecipeGenAssembler(final Material M) {
+ this.toGenerate = M;
+ mRecipeGenMap.add(this);
+ }
+
+ @Override
+ public void run() {
+ generateRecipes(this.toGenerate);
+ }
+
+ private void generateRecipes(final Material material) {
+
+ // Frame Box
+ if (ItemUtils.checkForInvalidItems(new ItemStack[] { material.getRod(1), material.getFrameBox(1) })) {
+ GTValues.RA.stdBuilder()
+ .itemInputs(material.getRod(4), GTUtility.getIntegratedCircuit(4))
+ .itemOutputs(material.getFrameBox(1))
+ .duration(3 * SECONDS)
+ .eut(material.vVoltageMultiplier)
+ .addTo(assemblerRecipes);
+ }
+
+ // Rotor
+ if (ItemUtils
+ .checkForInvalidItems(new ItemStack[] { material.getPlate(1), material.getRing(1), material.getRotor(1) }))
+ addAssemblerRecipe(
+ material.getPlate(4),
+ material.getRing(1),
+ material.getRotor(1),
+ 240,
+ material.vVoltageMultiplier);
+ }
+
+ @Deprecated
+ private static void addAssemblerRecipe(final ItemStack input1, final ItemStack input2, final ItemStack output1,
+ final int seconds, final int euCost) {
+ GTValues.RA.stdBuilder()
+ .itemInputs(input1, input2)
+ .itemOutputs(output1)
+ .fluidInputs(FluidUtils.getFluidStack("molten.solderingalloy", 16))
+ .duration(seconds)
+ .eut(euCost)
+ .addTo(assemblerRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(input1, input2)
+ .itemOutputs(output1)
+ .fluidInputs(FluidUtils.getFluidStack("molten.tin", 32))
+ .duration(seconds)
+ .eut(euCost)
+ .addTo(assemblerRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(input1, input2)
+ .itemOutputs(output1)
+ .fluidInputs(FluidUtils.getFluidStack("molten.lead", 48))
+ .duration(seconds)
+ .eut(euCost)
+ .addTo(assemblerRecipes);
+ }
+}