aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/loaders/postload/recipes/PlasmaForgeRecipes.java
blob: 5cf731c1ed1eb5107c338a8dd54867782827d2b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
package gregtech.loaders.postload.recipes;

import static goodgenerator.loader.Loaders.huiCircuit;
import static gregtech.api.enums.Mods.Avaritia;
import static gregtech.api.enums.Mods.NewHorizonsCoreMod;
import static gregtech.api.recipe.RecipeMaps.plasmaForgeRecipes;
import static gregtech.api.util.GTModHandler.getModItem;
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;
import gregtech.api.enums.MaterialsUEVplus;
import gregtech.api.enums.TierEU;
import gtPlusPlus.core.item.ModItems;
import gtPlusPlus.core.material.MaterialsElements;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;

public class PlasmaForgeRecipes implements Runnable {

    @Override
    public void run() {
        // Giga chad trophy.
        GTValues.RA.stdBuilder()
            .itemInputs(
                ItemList.Field_Generator_UEV.get(64),
                ItemList.Field_Generator_UIV.get(64),
                ItemList.Field_Generator_UMV.get(64))
            .fluidInputs(
                MaterialsUEVplus.ExcitedDTEC.getFluid(100_000_000),
                MaterialsUEVplus.SpaceTime.getMolten(64 * 2 * 9 * 144))
            .itemOutputs(ItemList.GigaChad.get(1))
            .duration(86400 * 20 * 2)
            .eut(2_000_000_000)
            .metadata(COIL_HEAT, 13500)
            .addTo(plasmaForgeRecipes);

        // Quantum anomaly recipe bypass for UEV+. Avoids RNG.
        GTValues.RA.stdBuilder()
            .itemInputs(
                new ItemStack(ModItems.itemStandarParticleBase, 1, 24),
                getModItem(NewHorizonsCoreMod.ID, "item.ChromaticLens", 0),
                new ItemStack(huiCircuit, 0, 4))
            .fluidInputs(MaterialsUEVplus.ExcitedDTRC.getFluid(92), Materials.Duranium.getMolten(144))
            .itemOutputs(GregtechItemList.Laser_Lens_Special.get(1))
            .fluidOutputs(MaterialsUEVplus.DimensionallyTranscendentResidue.getFluid(46))
            .duration(60 * SECONDS)
            .eut((int) TierEU.RECIPE_UEV)
            .metadata(COIL_HEAT, 10800)
            .addTo(plasmaForgeRecipes);

        if (Avaritia.isModLoaded()) {
            // Six-Phased Copper
            GTValues.RA.stdBuilder()
                .itemInputs(getModItem(Avaritia.ID, "Singularity", 8, 5))
                .fluidInputs(
                    MaterialsElements.STANDALONE.CELESTIAL_TUNGSTEN.getFluidStack(72 * 144),
                    MaterialsElements.STANDALONE.ASTRAL_TITANIUM.getFluidStack(4 * 72 * 144),
                    MaterialsElements.STANDALONE.HYPOGEN.getFluidStack(36 * 144),
                    MaterialsElements.STANDALONE.CHRONOMATIC_GLASS.getFluidStack(8 * 72 * 144),
                    MaterialsElements.STANDALONE.RHUGNOR.getFluidStack(18 * 144),
                    MaterialsUEVplus.Mellion.getMolten(72 * 144))
                .fluidOutputs(MaterialsUEVplus.SixPhasedCopper.getMolten(72 * 144L))
                .duration(60 * SECONDS)
                .eut((int) TierEU.RECIPE_UMV)
                .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);
    }
}