diff --git a/src/main/java/gregicality/science/api/unification/materials/GCYSMaterials.java b/src/main/java/gregicality/science/api/unification/materials/GCYSMaterials.java index b6486d92..cb88f893 100644 --- a/src/main/java/gregicality/science/api/unification/materials/GCYSMaterials.java +++ b/src/main/java/gregicality/science/api/unification/materials/GCYSMaterials.java @@ -210,7 +210,7 @@ public class GCYSMaterials { public static Material Tetrabromoethane; public static Material TerephthalicAcid; public static Material TerephthaloylChloride; - public static Material Butanediol; + public static Material Butane12diol; public static Material GammaButyrolactone; public static Material NMethylPyrrolidone; public static Material Kevlar; @@ -244,6 +244,12 @@ public class GCYSMaterials { public static Material PedotPSS; public static Material PedotTMA; + public static Material Butane14diol; + public static Material Butane23diol; + public static Material But1ene; + public static Material But2ene; + public static Material Isobutene; + // Unknown Composition Materials public static Material RareEarthHydroxidesSolution; @@ -295,6 +301,8 @@ public class GCYSMaterials { public static Material MediumHyperFuel; public static Material HeavyHyperFuel; + public static Material ButeneOxidesMixture; + /** * 3100 - 19999 diff --git a/src/main/java/gregicality/science/api/unification/materials/GCYSOrganicChemistryMaterials.java b/src/main/java/gregicality/science/api/unification/materials/GCYSOrganicChemistryMaterials.java index ae4ccd03..7a465dee 100644 --- a/src/main/java/gregicality/science/api/unification/materials/GCYSOrganicChemistryMaterials.java +++ b/src/main/java/gregicality/science/api/unification/materials/GCYSOrganicChemistryMaterials.java @@ -318,7 +318,7 @@ public static void init() { .build() .setFormula("C6H4(COCl)2", true); - Butanediol = new Material.Builder(15047, "butanediol") + Butane12diol = new Material.Builder(15047, "butane_12_diol") .fluid() .color(0xAAC4DA) .flags(DISABLE_DECOMPOSITION) @@ -543,5 +543,39 @@ public static void init() { .components(Edot, 1, PMMA, 2) .cableProperties(V[UEV], 8, 6) .build(); + + // FREE ID 15079 - 15090 + + Butane14diol = new Material.Builder(15091, "butane_14_diol") + .fluid() + .color(0xAAC4DA) + .components(Carbon, 4, Hydrogen, 10, Oxygen, 2) + .build() + .setFormula("C4H8(OH)2", true); + + Butane23diol = new Material.Builder(15092, "butane_23_diol") + .fluid() + .color(0xAAC4DA) + .components(Carbon, 4, Hydrogen, 10, Oxygen, 2) + .build() + .setFormula("C4H8(OH)2", true); + + But1ene = new Material.Builder(15093, "but_1_ene") + .fluid(FluidTypes.GAS) + .color(0xCF5005) + .components(Carbon, 4, Hydrogen, 8) + .build(); + + But2ene = new Material.Builder(15094, "but_2_ene") + .fluid(FluidTypes.GAS) + .color(0xCF5005) + .components(Carbon, 4, Hydrogen, 8) + .build(); + + Isobutene = new Material.Builder(15095, "isobutene") + .fluid(FluidTypes.GAS) + .color(0xCF5005) + .components(Carbon, 4, Hydrogen, 8) + .build(); } } diff --git a/src/main/java/gregicality/science/api/unification/materials/GCYSUnknownCompositionMaterials.java b/src/main/java/gregicality/science/api/unification/materials/GCYSUnknownCompositionMaterials.java index 92318abd..9af28fa9 100644 --- a/src/main/java/gregicality/science/api/unification/materials/GCYSUnknownCompositionMaterials.java +++ b/src/main/java/gregicality/science/api/unification/materials/GCYSUnknownCompositionMaterials.java @@ -128,5 +128,9 @@ public static void init() { MediumHyperFuel = new Material.Builder(18055, "medium_hyper_fuel").fluid().color(0xDC0A0A).build(); HeavyHyperFuel = new Material.Builder(18056, "heavy_hyper_fuel").fluid().color(0x1E5064).build(); + + // FREE ID 18057 - 18067 + + ButeneOxidesMixture = new Material.Builder(18068, "butene_oxides_mixture").fluid().color(0xC1DEF7).build(); } } diff --git a/src/main/java/gregicality/science/common/GCYSConfigHolder.java b/src/main/java/gregicality/science/common/GCYSConfigHolder.java index ae344581..a7025ad6 100644 --- a/src/main/java/gregicality/science/common/GCYSConfigHolder.java +++ b/src/main/java/gregicality/science/common/GCYSConfigHolder.java @@ -36,6 +36,9 @@ public static class ChainOverrides { @Config.Comment({"Disables electrolysis of Molybdenite, Powellite, and Wulfenite, requiring Gregicality's processes for Molybdenum.", "Default: true"}) public boolean disableMolybdenumProcessing = true; + + @Config.Comment({"Disables production of Ethyl Tert-Butyl Ether, requiring Gregicality's process.", "Default: true"}) + public boolean disableETBEProcessing = true; } public static class CircuitOverrides { diff --git a/src/main/java/gregicality/science/loaders/recipe/GCYSRecipeLoader.java b/src/main/java/gregicality/science/loaders/recipe/GCYSRecipeLoader.java index dccaa7df..063a69c7 100644 --- a/src/main/java/gregicality/science/loaders/recipe/GCYSRecipeLoader.java +++ b/src/main/java/gregicality/science/loaders/recipe/GCYSRecipeLoader.java @@ -51,6 +51,7 @@ private static void initChains() { FantasyMaterials.init(); SimpleMaterials.init(); PedotChain.init(); + C4Chains.init(); } private static void initOreProcessing() { diff --git a/src/main/java/gregicality/science/loaders/recipe/chain/C4Chains.java b/src/main/java/gregicality/science/loaders/recipe/chain/C4Chains.java new file mode 100644 index 00000000..3be06fca --- /dev/null +++ b/src/main/java/gregicality/science/loaders/recipe/chain/C4Chains.java @@ -0,0 +1,128 @@ +package gregicality.science.loaders.recipe.chain; + +import gregicality.science.common.GCYSConfigHolder; +import gregtech.api.recipes.GTRecipeHandler; +import gregtech.api.recipes.ingredients.IntCircuitIngredient; +import gregtech.api.unification.ore.OrePrefix; + +import static gregicality.science.api.recipes.GCYSRecipeMaps.*; +import static gregicality.science.api.unification.materials.GCYSMaterials.*; +import static gregtech.api.GTValues.*; +import static gregtech.api.recipes.RecipeMaps.*; +import static gregtech.api.unification.material.Materials.*; +import static gregtech.api.unification.ore.OrePrefix.*; + +public class C4Chains { + public static void init() { + butenes(); + butane_12_23_diol(); + butane_14_diol(); + butadiene(); + new_etbe(); + } + + private static void butenes() { + // Arbitrary output ratios + DISTILLATION_RECIPES.recipeBuilder() + .fluidInputs(Butene.getFluid(1000)) + .fluidOutputs(But1ene.getFluid(250)) + .fluidOutputs(But2ene.getFluid(500)) + .fluidOutputs(Isobutene.getFluid(250)) + .duration(160).EUt(2400) + .buildAndRegister(); + } + + private static void butane_14_diol() { + // C2H2 + H2CO -> HO-CH2-C#C-CH2-OH; HO-CH2-C#C-CH2-OH + 4H -> HO-C4H8-OH + BURNER_REACTOR_RECIPES.recipeBuilder() + .fluidInputs(Acetylene.getFluid(1000)) + .fluidInputs(Formaldehyde.getFluid(2000)) + .fluidInputs(Hydrogen.getFluid(4000)) + .notConsumable(plate, Nickel) //TODO Raney nickel + .fluidOutputs(Butane14diol.getFluid(1000)) + .pressure(3E8).temperature(360) + .duration(400).EUt(VA[HV]).buildAndRegister(); + } + + private static void butane_12_23_diol() { + // C4H8 + H2O + O (OsO4 cat.) -> C4H10O2 + CHEMICAL_RECIPES.recipeBuilder() + .fluidInputs(But1ene.getFluid(1000)) + .fluidInputs(Water.getFluid(1000)) + .fluidInputs(Oxygen.getFluid(1000)) + .notConsumable(dust, OsmiumTetroxide) // TODO Upjohn/Sharpless dihydroxylation + .fluidOutputs(Butane12diol.getFluid(1000)) + .duration(300).EUt(VA[EV]).buildAndRegister(); + + // C4H8 + H2O + O (OsO4 cat.) -> C4H10O2 + CHEMICAL_RECIPES.recipeBuilder() + .fluidInputs(But2ene.getFluid(1000)) + .fluidInputs(Water.getFluid(1000)) + .fluidInputs(Oxygen.getFluid(1000)) + .notConsumable(dust, OsmiumTetroxide) // TODO Upjohn/Sharpless dihydroxylation + .fluidOutputs(Butane23diol.getFluid(1000)) + .duration(300).EUt(VA[EV]).buildAndRegister(); + + // C4H8 + Cl/H2O + NaOH -> C4H8O + NaCl (55% trans-2,3-butene oxide, 30% cis-2,3-butene oxide, and 15% 1,2-butene oxide) + CHEMICAL_RECIPES.recipeBuilder() + .fluidInputs(Butene.getFluid(1000)) + .fluidInputs(Chlorine.getFluid(1000)) + .fluidInputs(Water.getFluid(1000)) // TODO sequential reactor? + .input(dust, SodiumHydroxide) + .fluidOutputs(ButeneOxidesMixture.getFluid(1000)) + .output(dust, Salt, 2) + .duration(400).EUt(VA[EV]).buildAndRegister(); + + // C4H8 + HOCl -> C4H8O + HCl (55% trans-2,3-butene oxide, 30% cis-2,3-butene oxide, and 15% 1,2-butene oxide) + CHEMICAL_RECIPES.recipeBuilder() + .fluidInputs(Butene.getFluid(1000)) + .fluidInputs(HypochlorousAcid.getFluid(1000)) + .fluidOutputs(ButeneOxidesMixture.getFluid(1000)) + .fluidOutputs(HydrochloricAcid.getFluid(1000)) + .duration(400).EUt(VA[EV]).buildAndRegister(); + + // C4H8O + H2O -> C4H10O2 (Large excess of H2O) + BURNER_REACTOR_RECIPES.recipeBuilder() + .fluidInputs(ButeneOxidesMixture.getFluid(1000)) + .fluidInputs(Water.getFluid(8000)) + .fluidOutputs(Butane23diol.getFluid(850)) + .fluidOutputs(Butane12diol.getFluid(150)) + .pressure(5_000_000).temperature(450) + .duration(300).EUt(VA[EV]).buildAndRegister(); + } + + private static void butadiene() { + // C4H10O2 (Al2O3 cat.) -> C4H6 + 2 H2O + BURNER_REACTOR_RECIPES.recipeBuilder() + .fluidInputs(Butane14diol.getFluid(1000)) + .notConsumable(dust, Alumina) + .fluidOutputs(Butadiene.getFluid(1000)) + .fluidOutputs(Steam.getFluid(2000)) // TODO Superheated Steam + .temperature(625) + .duration(150).EUt(VA[HV]).buildAndRegister(); + + // C4H10O2 (Al2O3 cat.) -> C4H6 + 2 H2O + BURNER_REACTOR_RECIPES.recipeBuilder() + .fluidInputs(Butane23diol.getFluid(1000)) + .notConsumable(dust, Alumina) + .fluidOutputs(Butadiene.getFluid(1000)) + .fluidOutputs(Steam.getFluid(2000)) // TODO Superheated Steam + .temperature(625) + .duration(150).EUt(VA[HV]).buildAndRegister(); + } + + public static void new_etbe() { + if (GCYSConfigHolder.chainOverrides.disableETBEProcessing) { + GTRecipeHandler.removeRecipesByInputs(CHEMICAL_RECIPES, Ethanol.getFluid(1000), Butene.getFluid(1000)); + GTRecipeHandler.removeRecipesByInputs(LARGE_CHEMICAL_RECIPES, Ethanol.getFluid(1000), Butene.getFluid(1000)); // TODO remove once CR recipe removal issue gets fixed + } + + BURNER_REACTOR_RECIPES.recipeBuilder() + .fluidInputs(Ethanol.getFluid(1000)) + .fluidInputs(Isobutene.getFluid(1000)) + .fluidInputs(SulfuricAcid.getFluid(50)) + .fluidOutputs(EthylTertButylEther.getFluid(1000)) + .pressure(1_000_000).temperature(350) + .duration(400).EUt(VA[HV]).buildAndRegister(); + } +} diff --git a/src/main/java/gregicality/science/loaders/recipe/chain/KevlarChain.java b/src/main/java/gregicality/science/loaders/recipe/chain/KevlarChain.java index 29cb2b2d..825469f2 100644 --- a/src/main/java/gregicality/science/loaders/recipe/chain/KevlarChain.java +++ b/src/main/java/gregicality/science/loaders/recipe/chain/KevlarChain.java @@ -57,21 +57,10 @@ public static void init() { .EUt(240) .buildAndRegister(); - // C4H8 + HClO + H2O -> C4H10O2 + HCl - CHEMICAL_RECIPES.recipeBuilder() - .fluidInputs(Butene.getFluid(1000)) - .fluidInputs(HypochlorousAcid.getFluid(1000)) - .fluidInputs(Water.getFluid(1000)) - .fluidOutputs(Butanediol.getFluid(1000)) - .fluidOutputs(HydrochloricAcid.getFluid(1000)) - .duration(60) - .EUt(VA[HV]) - .buildAndRegister(); - // C4H10O2 -> C4H6O2 + 4H (4H lost) BREWING_RECIPES.recipeBuilder() .input(dust, Copper) - .fluidInputs(Butanediol.getFluid(1000)) + .fluidInputs(Butane14diol.getFluid(1000)) .fluidOutputs(GammaButyrolactone.getFluid(1000)) .duration(120) .EUt(VA[EV]) diff --git a/src/main/java/gregicality/science/loaders/recipe/chain/PedotChain.java b/src/main/java/gregicality/science/loaders/recipe/chain/PedotChain.java index 9b3a76a3..f58dd103 100644 --- a/src/main/java/gregicality/science/loaders/recipe/chain/PedotChain.java +++ b/src/main/java/gregicality/science/loaders/recipe/chain/PedotChain.java @@ -18,7 +18,7 @@ public static void init() { private static void edot() { //C4H10O2 -> C4H6O2 + 4H ELECTROLYZER_RECIPES.recipeBuilder() - .fluidInputs(Butanediol.getFluid(1000)) + .fluidInputs(Butane23diol.getFluid(1000)) .fluidOutputs(Diacetyl.getFluid(1000)) .fluidOutputs(Hydrogen.getFluid(4000)) .duration(80).EUt(VA[MV]).buildAndRegister(); diff --git a/src/main/java/gregicality/science/loaders/recipe/chain/PhotoresistivesChain.java b/src/main/java/gregicality/science/loaders/recipe/chain/PhotoresistivesChain.java index b0f055f3..5e7937c8 100644 --- a/src/main/java/gregicality/science/loaders/recipe/chain/PhotoresistivesChain.java +++ b/src/main/java/gregicality/science/loaders/recipe/chain/PhotoresistivesChain.java @@ -19,7 +19,7 @@ public static void init() { private static void grignardReagent() { // C4H10O2 -> C4H8O + H2O CHEMICAL_RECIPES.recipeBuilder() - .fluidInputs(Butanediol.getFluid(1000)) + .fluidInputs(Butane14diol.getFluid(1000)) .fluidInputs(SulfuricAcid.getFluid(1000)) .fluidOutputs(Tetrahydrofuran.getFluid(1000)) .fluidOutputs(DilutedSulfuricAcid.getFluid(1500)) diff --git a/src/main/resources/assets/gcys/lang/en_us.lang b/src/main/resources/assets/gcys/lang/en_us.lang index be54f430..09106eba 100644 --- a/src/main/resources/assets/gcys/lang/en_us.lang +++ b/src/main/resources/assets/gcys/lang/en_us.lang @@ -222,7 +222,7 @@ material.bistrichloromethylbenzene=1,4-Bis(trichloromethyl)benzene material.tetrabromoethane=Tetrabromoethane material.terephthalic_acid=Terephthalic Acid material.terephthaloyl_chloride=Terephthaloyl Chloride -material.butanediol=Butanediol +material.butane_12_diol=1,2-Butanediol material.gamma_butyrolactone=Gamma-Butyrolactone material.n_methyl_pyrrolidone=N-Methyl-2-Pyrrolidone material.kevlar=Kevlar @@ -257,6 +257,13 @@ material.polystyrene_sulfonate=Polystyrene Sulfonate material.pedot_pss=PEDOT:PSS material.pedot_tma=PEDOT-TMA +material.but_1_ene=1-Butene +material.but_2_ene=2-Butene +material.isobutene=Isobutene +material.butane_13_diol=1,3-Butanediol +material.butane_14_diol=1,4-Butanediol +material.butane_23_diol=2,3-Butanediol + # Unknown Composition Materials material.rare_earth_hydroxides_solution=Rare Earth Hydroxides Solution @@ -311,6 +318,8 @@ material.light_hyper_fuel=Light Hyper Fuel material.medium_hyper_fuel=Medium Hyper Fuel material.heavy_hyper_fuel=Heavy Hyper Fuel +material.butene_oxides_mixture=Butene Oxides Mixture + # Tricorder Info behavior.tricorder.current_pressure=Current Pressure: %s Pa