aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/loaders/postload
diff options
context:
space:
mode:
authorNotAPenguin <michiel.vandeginste@gmail.com>2024-09-05 22:15:33 +0200
committerGitHub <noreply@github.com>2024-09-05 22:15:33 +0200
commite9aee5637c9d77ecc21cf95d90292ccf7a654764 (patch)
tree601e7654232723d1ed3cde30dc400a1a06496be4 /src/main/java/gregtech/loaders/postload
parent91721f7b939622054f3fa0bbbc260f593a4d3ffd (diff)
downloadGT5-Unofficial-e9aee5637c9d77ecc21cf95d90292ccf7a654764.tar.gz
GT5-Unofficial-e9aee5637c9d77ecc21cf95d90292ccf7a654764.tar.bz2
GT5-Unofficial-e9aee5637c9d77ecc21cf95d90292ccf7a654764.zip
UEV+ Material Diversity (#3045)
Diffstat (limited to 'src/main/java/gregtech/loaders/postload')
-rw-r--r--src/main/java/gregtech/loaders/postload/chains/GT_PurifiedWaterRecipes.java0
-rw-r--r--src/main/java/gregtech/loaders/postload/chains/PurifiedWaterRecipes.java9
-rw-r--r--src/main/java/gregtech/loaders/postload/recipes/ChemicalBathRecipes.java54
-rw-r--r--src/main/java/gregtech/loaders/postload/recipes/CompressorRecipes.java13
-rw-r--r--src/main/java/gregtech/loaders/postload/recipes/PlasmaForgeRecipes.java46
-rw-r--r--src/main/java/gregtech/loaders/postload/recipes/VacuumFreezerRecipes.java35
6 files changed, 151 insertions, 6 deletions
diff --git a/src/main/java/gregtech/loaders/postload/chains/GT_PurifiedWaterRecipes.java b/src/main/java/gregtech/loaders/postload/chains/GT_PurifiedWaterRecipes.java
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/src/main/java/gregtech/loaders/postload/chains/GT_PurifiedWaterRecipes.java
diff --git a/src/main/java/gregtech/loaders/postload/chains/PurifiedWaterRecipes.java b/src/main/java/gregtech/loaders/postload/chains/PurifiedWaterRecipes.java
index c0d73d02b6..3cb8ac8f65 100644
--- a/src/main/java/gregtech/loaders/postload/chains/PurifiedWaterRecipes.java
+++ b/src/main/java/gregtech/loaders/postload/chains/PurifiedWaterRecipes.java
@@ -24,7 +24,6 @@ import static gregtech.api.util.GTRecipeConstants.AssemblyLine;
import static gregtech.api.util.GTRecipeConstants.COIL_HEAT;
import static gregtech.api.util.GTRecipeConstants.RESEARCH_ITEM;
import static gregtech.api.util.GTRecipeConstants.RESEARCH_TIME;
-import static gregtech.common.tileentities.machines.multi.purification.MTEPurificationUnitBaryonicPerfection.BARYONIC_MATTER_OUTPUT;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
@@ -277,7 +276,7 @@ public class PurifiedWaterRecipes {
GTOreDictUnificator.get(OrePrefixes.wireFine, Materials.CosmicNeutronium, 64),
GTOreDictUnificator.get(OrePrefixes.circuit, Materials.UHV, 16),
GTOreDictUnificator.get(OrePrefixes.circuit, Materials.UEV, 8),
- ItemList.Field_Generator_UEV.get(4))
+ ItemList.Field_Generator_UEV.get(1))
.fluidInputs(
Materials.Neutronium.getMolten(16 * 144),
Materials.Infinity.getMolten(16 * 144),
@@ -292,9 +291,7 @@ public class PurifiedWaterRecipes {
// Fake item inputs
.itemInputs(ItemList.Quark_Creation_Catalyst_Charm.get(1), ItemList.Quark_Creation_Catalyst_Strange.get(1))
.fluidInputs(Materials.Grade7PurifiedWater.getFluid(1000L))
- .fluidOutputs(
- Materials.Grade8PurifiedWater.getFluid(900L),
- Materials.StableBaryonicMatter.getFluid(BARYONIC_MATTER_OUTPUT))
+ .fluidOutputs(Materials.Grade8PurifiedWater.getFluid(900L), Materials.StableBaryonicMatter.getFluid(500))
.itemOutputs(ItemList.Quark_Creation_Catalyst_Unaligned.get(2L), Particle.getBaseParticle(Particle.UNKNOWN))
.outputChances(10000, 100)
.ignoreCollision()
@@ -307,7 +304,7 @@ public class PurifiedWaterRecipes {
// real recipe
GTValues.RA.stdBuilder()
.fluidInputs(Materials.Grade7PurifiedWater.getFluid(1000L))
- .fluidOutputs(Materials.Grade8PurifiedWater.getFluid(900L))
+ .fluidOutputs(Materials.Grade8PurifiedWater.getFluid(900L), Materials.StableBaryonicMatter.getFluid(500))
.itemOutputs(ItemList.Quark_Creation_Catalyst_Unaligned.get(2L), Particle.getBaseParticle(Particle.UNKNOWN))
.outputChances(10000, 100)
.ignoreCollision()
diff --git a/src/main/java/gregtech/loaders/postload/recipes/ChemicalBathRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/ChemicalBathRecipes.java
index e500844b37..1b889f2f37 100644
--- a/src/main/java/gregtech/loaders/postload/recipes/ChemicalBathRecipes.java
+++ b/src/main/java/gregtech/loaders/postload/recipes/ChemicalBathRecipes.java
@@ -1,5 +1,6 @@
package gregtech.loaders.postload.recipes;
+import static gregtech.api.enums.GTValues.M;
import static gregtech.api.enums.Mods.BuildCraftTransport;
import static gregtech.api.recipe.RecipeMaps.chemicalBathRecipes;
import static gregtech.api.util.GTModHandler.getModItem;
@@ -20,6 +21,7 @@ import gregtech.api.enums.GTValues;
import gregtech.api.enums.ItemList;
import gregtech.api.enums.Materials;
import gregtech.api.enums.MaterialsKevlar;
+import gregtech.api.enums.MaterialsUEVplus;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.enums.TierEU;
import gregtech.api.util.GTModHandler;
@@ -411,5 +413,57 @@ public class ChemicalBathRecipes implements Runnable {
.duration(40 * SECONDS)
.eut(8)
.addTo(chemicalBathRecipes);
+
+ this.protoHalkoniteRecipes();
+ }
+
+ private void protoHalkoniteRecipes() {
+ this.addProtoHalkonitePartRecipe(OrePrefixes.frameGt, 1);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.ingot, 1);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.plate, 1);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.plateDense, 1);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.stick, 2);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.round, 8);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.bolt, 8);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.screw, 8);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.ring, 4);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.foil, 8);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.gearGtSmall, 1);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.rotor, 1);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.stickLong, 1);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.gearGt, 1);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.wireFine, 8);
+ }
+
+ private void addProtoHalkonitePartRecipe(OrePrefixes prefix, final int multiplier) {
+
+ final int partFraction = (int) (144 * prefix.mMaterialAmount / M);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTOreDictUnificator.get(prefix, Materials.Infinity, multiplier))
+ .itemOutputs(GTOreDictUnificator.get(prefix, MaterialsUEVplus.HotProtoHalkonite, multiplier))
+ .fluidInputs(MaterialsUEVplus.MoltenProtoHalkoniteBase.getFluid((long) partFraction * multiplier))
+ .duration((int) (multiplier * (8 * SECONDS * partFraction / 144.0)))
+ .eut(TierEU.RECIPE_UEV)
+ .noOptimize()
+ .addTo(chemicalBathRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTOreDictUnificator.get(prefix, MaterialsUEVplus.Creon, multiplier))
+ .itemOutputs(GTOreDictUnificator.get(prefix, MaterialsUEVplus.HotProtoHalkonite, multiplier))
+ .fluidInputs(MaterialsUEVplus.MoltenProtoHalkoniteBase.getFluid((long) partFraction * multiplier / 2L))
+ .duration((int) (multiplier * (2 * SECONDS * partFraction / 144.0)))
+ .eut(TierEU.RECIPE_UIV)
+ .noOptimize()
+ .addTo(chemicalBathRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTOreDictUnificator.get(prefix, MaterialsUEVplus.Mellion, multiplier))
+ .itemOutputs(GTOreDictUnificator.get(prefix, MaterialsUEVplus.HotProtoHalkonite, multiplier))
+ .fluidInputs(MaterialsUEVplus.MoltenProtoHalkoniteBase.getFluid((long) partFraction * multiplier / 2L))
+ .duration((int) (multiplier * (2 * SECONDS * partFraction / 144.0)))
+ .eut(TierEU.RECIPE_UIV)
+ .noOptimize()
+ .addTo(chemicalBathRecipes);
}
}
diff --git a/src/main/java/gregtech/loaders/postload/recipes/CompressorRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/CompressorRecipes.java
index 1b6e1c0adc..8f6ba3729d 100644
--- a/src/main/java/gregtech/loaders/postload/recipes/CompressorRecipes.java
+++ b/src/main/java/gregtech/loaders/postload/recipes/CompressorRecipes.java
@@ -15,7 +15,10 @@ import bartworks.system.material.WerkstoffLoader;
import gregtech.api.enums.GTValues;
import gregtech.api.enums.ItemList;
import gregtech.api.enums.Materials;
+import gregtech.api.enums.MaterialsUEVplus;
import gregtech.api.enums.OrePrefixes;
+import gregtech.api.enums.TierEU;
+import gregtech.api.recipe.metadata.CompressionTierKey;
import gregtech.api.util.GTModHandler;
import gregtech.api.util.GTOreDictUnificator;
import mods.railcraft.common.blocks.aesthetics.cube.EnumCube;
@@ -264,6 +267,16 @@ public class CompressorRecipes implements Runnable {
.addTo(compressorRecipes);
GTValues.RA.stdBuilder()
+ .itemInputs(GTOreDictUnificator.get(OrePrefixes.plateSuperdense, Materials.Infinity, 1))
+ .fluidInputs(MaterialsUEVplus.MoltenProtoHalkoniteBase.getFluid(64 * 144))
+ .itemOutputs(GTOreDictUnificator.get(OrePrefixes.plateSuperdense, MaterialsUEVplus.HotProtoHalkonite, 1))
+ // Require stabilized black hole
+ .metadata(CompressionTierKey.INSTANCE, 2)
+ .duration(45 * SECONDS)
+ .eut(TierEU.RECIPE_UIV)
+ .addTo(compressorRecipes);
+
+ GTValues.RA.stdBuilder()
.itemInputs(WerkstoffLoader.MagnetoResonaticDust.get(OrePrefixes.gem, 9))
.itemOutputs(WerkstoffLoader.MagnetoResonaticDust.get(OrePrefixes.block, 1))
.duration(15 * SECONDS)
diff --git a/src/main/java/gregtech/loaders/postload/recipes/PlasmaForgeRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/PlasmaForgeRecipes.java
index ea3c5ff7d1..5cf731c1ed 100644
--- a/src/main/java/gregtech/loaders/postload/recipes/PlasmaForgeRecipes.java
+++ b/src/main/java/gregtech/loaders/postload/recipes/PlasmaForgeRecipes.java
@@ -9,7 +9,10 @@ import static gregtech.api.util.GTRecipeBuilder.SECONDS;
import static gregtech.api.util.GTRecipeConstants.COIL_HEAT;
import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidStack;
+import goodgenerator.items.GGMaterial;
import gregtech.api.enums.GTValues;
import gregtech.api.enums.ItemList;
import gregtech.api.enums.Materials;
@@ -69,5 +72,48 @@ public class PlasmaForgeRecipes implements Runnable {
.metadata(COIL_HEAT, 12600)
.addTo(plasmaForgeRecipes);
}
+
+ Fluid celestialTungstenPlasma = MaterialsElements.STANDALONE.CELESTIAL_TUNGSTEN.getPlasma();
+
+ // Dimensionally shifted superfluid
+
+ // First recipe using AwDr coil and super heavy radox
+ GTValues.RA.stdBuilder()
+ .itemInputs()
+ .fluidInputs(
+ Materials.StableBaryonicMatter.getFluid(250),
+ GGMaterial.metastableOganesson.getMolten(288),
+ Materials.Grade8PurifiedWater.getFluid(400),
+ new FluidStack(celestialTungstenPlasma, 32 * 144),
+ Materials.RadoxSuperHeavy.getFluid(2000),
+ MaterialsUEVplus.ExcitedDTCC.getFluid(1000))
+ .fluidOutputs(
+ MaterialsUEVplus.DimensionallyShiftedSuperfluid.getFluid(7500),
+ MaterialsUEVplus.DimensionallyTranscendentResidue.getFluid(500))
+ .duration(60 * SECONDS)
+ .eut((int) TierEU.RECIPE_UIV)
+ .metadata(COIL_HEAT, 10800)
+ .addTo(plasmaForgeRecipes);
+
+ // Better recipe, unlocks with AwDr coil and uses heavy radox, which can be produced in the QFT.
+ // This recipe takes UMV power but processes 4x input and output as the original recipe, making it a free POC
+ // over
+ // the original recipe
+ GTValues.RA.stdBuilder()
+ .itemInputs()
+ .fluidInputs(
+ Materials.StableBaryonicMatter.getFluid(1000),
+ GGMaterial.metastableOganesson.getMolten(288 * 4),
+ Materials.Grade8PurifiedWater.getFluid(1600),
+ new FluidStack(celestialTungstenPlasma, 128 * 144),
+ Materials.RadoxHeavy.getFluid(8000),
+ MaterialsUEVplus.ExcitedDTRC.getFluid(4000))
+ .fluidOutputs(
+ MaterialsUEVplus.DimensionallyShiftedSuperfluid.getFluid(30000),
+ MaterialsUEVplus.DimensionallyTranscendentResidue.getFluid(2000))
+ .duration(60 * SECONDS)
+ .eut((int) TierEU.RECIPE_UMV)
+ .metadata(COIL_HEAT, 12600)
+ .addTo(plasmaForgeRecipes);
}
}
diff --git a/src/main/java/gregtech/loaders/postload/recipes/VacuumFreezerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/VacuumFreezerRecipes.java
index 89e213c31b..89a1aefa89 100644
--- a/src/main/java/gregtech/loaders/postload/recipes/VacuumFreezerRecipes.java
+++ b/src/main/java/gregtech/loaders/postload/recipes/VacuumFreezerRecipes.java
@@ -1,5 +1,6 @@
package gregtech.loaders.postload.recipes;
+import static gregtech.api.enums.GTValues.M;
import static gregtech.api.recipe.RecipeMaps.vacuumFreezerRecipes;
import static gregtech.api.util.GTRecipeBuilder.HOURS;
import static gregtech.api.util.GTRecipeBuilder.MINUTES;
@@ -410,6 +411,24 @@ public class VacuumFreezerRecipes implements Runnable {
.eut(TierEU.RECIPE_UIV)
.addTo(vacuumFreezerRecipes);
+ // Proto-Halkonite
+ this.addProtoHalkonitePartRecipe(OrePrefixes.frameGt, 1);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.ingot, 1);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.plate, 1);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.plateDense, 1);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.stick, 2);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.round, 8);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.bolt, 8);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.screw, 8);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.ring, 4);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.foil, 8);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.gearGtSmall, 1);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.rotor, 1);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.stickLong, 1);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.gearGt, 1);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.wireFine, 8);
+ this.addProtoHalkonitePartRecipe(OrePrefixes.plateSuperdense, 1);
+
GTValues.RA.stdBuilder()
.itemInputs(GTOreDictUnificator.get(OrePrefixes.ingotHot, MaterialsUEVplus.Mellion, 9L))
.fluidInputs(MaterialsUEVplus.Creon.getPlasma(1296L))
@@ -419,4 +438,20 @@ public class VacuumFreezerRecipes implements Runnable {
.eut(TierEU.RECIPE_UMV)
.addTo(vacuumFreezerRecipes);
}
+
+ private void addProtoHalkonitePartRecipe(OrePrefixes prefix, final int multiplier) {
+ final int partFraction = (int) (144 * prefix.mMaterialAmount / M);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(GTOreDictUnificator.get(prefix, MaterialsUEVplus.HotProtoHalkonite, multiplier))
+ .itemOutputs(GTOreDictUnificator.get(prefix, MaterialsUEVplus.ProtoHalkonite, multiplier))
+ .fluidInputs(
+ MaterialsUEVplus.DimensionallyShiftedSuperfluid.getFluid((long) partFraction * multiplier),
+ Materials.SuperCoolant.getFluid(partFraction * multiplier * 10L))
+ .duration((int) (multiplier * (10 * SECONDS * partFraction / 144.0)))
+ .eut(TierEU.RECIPE_UIV)
+ .noOptimize()
+ .addTo(vacuumFreezerRecipes);
+
+ }
}