From ed100e386f9697361ba1f1b5eeff97ad5f3ab091 Mon Sep 17 00:00:00 2001 From: trainvoi Date: Wed, 11 Oct 2023 02:24:27 -0400 Subject: [PATCH 1/3] Bauxite Rework + Scandium production from Red Mud will do scandium from thortveitite later --- .../UnknownCompositionMaterials.groovy | 4 +- .../chemistry/elements/AluminiumChain.groovy | 95 ++++++++++--- .../chemistry/elements/ScandiumChain.groovy | 127 ++++++++++++++++++ groovy/preInit/RegisterMetaItems.groovy | 5 +- resources/langfiles/lang/en_us.lang | 4 +- 5 files changed, 207 insertions(+), 28 deletions(-) create mode 100644 groovy/postInit/chemistry/elements/ScandiumChain.groovy diff --git a/groovy/material/UnknownCompositionMaterials.groovy b/groovy/material/UnknownCompositionMaterials.groovy index dafc0e6a6..be16afad0 100644 --- a/groovy/material/UnknownCompositionMaterials.groovy +++ b/groovy/material/UnknownCompositionMaterials.groovy @@ -96,7 +96,7 @@ public class UnknownCompositionMaterials { .build(); RedMud = new Material.Builder(4013, SuSyUtility.susyId('red_mud')) - .fluid() + .fluid().dust() .color(0x913f2d) .build(); @@ -111,7 +111,7 @@ public class UnknownCompositionMaterials { .build(); ConcentratedRedMud = new Material.Builder(4016, SuSyUtility.susyId('concentrated_red_mud')) - .fluid() + .fluid().dust() .color(0x824133) .build(); diff --git a/groovy/postInit/chemistry/elements/AluminiumChain.groovy b/groovy/postInit/chemistry/elements/AluminiumChain.groovy index 94fed050a..66dabfb09 100644 --- a/groovy/postInit/chemistry/elements/AluminiumChain.groovy +++ b/groovy/postInit/chemistry/elements/AluminiumChain.groovy @@ -12,6 +12,9 @@ DISTILLERY = recipemap('distillery') EMSEPARATOR = recipemap('electromagnetic_separator') ELECTROLYZER = recipemap('electrolyzer') CRYSTALLIZER = recipemap('crystallizer') +DRYER = recipemap('dryer') +MIXER = recipemap('mixer') +COMPRESSOR = recipemap('compressor') // Aluminium Nugget * 3 mods.gregtech.electric_blast_furnace.removeByInput(100, [metaitem('dustRuby')], null) @@ -150,32 +153,87 @@ ROASTER.recipeBuilder() // Red mud processing +DRYER.recipeBuilder() +.fluidInputs(fluid('red_mud') * 1000) +.notConsumable(metaitem('item_filter')) +.outputs(metaitem('dustRed_mud')) +.fluidOutputs(fluid('water') * 1000) +.duration(300) +.EUt(64) +.buildAndRegister() + +def alkalineAdditives = [ + metaitem('dustSodaAsh'), + metaitem('dustSodiumSulfate'), + //metaitem('dustPotassiumCarbonate'), + //metaitem('dustPotassiumSulfate'), +]; +for (a in alkalineAdditives) { +MIXER.recipeBuilder() + .inputs(a) + .inputs(dustRed_mud) + .outputs(metaitem('dustAlkalineRedMudMixture') * 2) //need to be registered + .EUt(16) + .duration(5) + .buildAndRegister() +} +COMPRESSOR.recipeBuilder() //maybe an extruder +.inputs(ore('dustAlkalineRedMudMixture')) +.notConsumable(metaitem('shape.mold.nugget')) +.outputs(metaitem('nuggetAlkalineRedMudMixture') * 9) +.duration(240) +.EUt(24) +.buildAndRegister() + +for (combustible in Globals.combustibles) { + EBF.recipeBuilder() + .inputs(ore('nuggetAlkalineRedMudMixture') * 9) + .inputs(ore(combustible.name) * combustible.amount_required) + .outputs(metaitem(combustible.byproduct)) + .outputs(metaitem('nuggetRoastedAlkalineRedMudMixture') * 9) //need to be registered + .fluidOutputs(fluid('carbon_monoxide') * 1000) + .EUt(30) + .duration(300 * combustible.duration) + .buildAndRegister() +} +BR.recipeBuilder() + .inputs(ore('dustRoastedAlkalineRedMudMixture')) + .fluidInputs(fluid('water') * 1000) + .fluidOutputs(fluid('sodium_aluminate_solution') * 1000) + /*note: Al2O3 in red mud is 6-43%, so someone will have to balance the amount of NaAlO2 produced. + The sodium comes from the sodium salt + residue NaOH, since IRL NaOH recovery in bauxite recovery isn't 100% */ + .outputs(metaitem('dustConcentratedRedMud')) + .EUt(Globals.voltAmps[2]) + .duration(200) + .buildAndRegister() + EMSEPARATOR.recipeBuilder() -.fluidInputs(fluid('red_mud') * 2000) -.chancedOutput(metaitem('dustIronIiiOxide'), 5000, 0) -.fluidOutputs(fluid('concentrated_red_mud') * 1000) +.inputs(ore('dustConcentratedRedMud')) +.chancedOutput(metaitem('dustMagnetite'), 2500, 0) +.chancedOutput(metaitem('dustIron'), 2500, 0) +.outputs(metaitem('red_mud_residue')) .duration(200) .EUt(96) .buildAndRegister() -EBF.recipeBuilder() -.fluidInputs(fluid('concentrated_red_mud') * 2000) -.outputs(ore('ingotIron').first()) -.outputs(metaitem('red_mud_slag')) -.blastFurnaceTemp(1600) -.duration(300) -.EUt(Globals.voltAmps[2] * 2) -.buildAndRegister() - CENTRIFUGE.recipeBuilder() -.fluidInputs(fluid('sulfuric_acid') * 250) -.inputs(metaitem('red_mud_slag')) +.fluidInputs(fluid('sulfuric_acid') * 1000) +.inputs(metaitem('red_mud_residue')) .outputs(metaitem('dustTinyRutile') * 3) -.outputs(metaitem('leached_red_mud_slag')) +.fluidOutputs(fluid('leached_red_mud_residue') * 1000) //for scandium and REE chain //need to be registered .duration(100) .EUt(Globals.voltAmps[3]) .buildAndRegister() +/* CENTRIFUGE.recipeBuilder() +.fluidInputs(fluid('hydrochloric_acid') * 1000) +.inputs(metaitem('red_mud_residue')) +.outputs(metaitem('dustTinyRutile') * 3) +.fluidOutputs(fluid('leached_red_mud_residue') * 1000) //for scandium and REE chain //need to be registered +.duration(100) +.EUt(Globals.voltAmps[3]) +.buildAndRegister() */ + BR.recipeBuilder() .fluidInputs(fluid('sulfuric_acid') * 3000) .inputs(ore('dustAluminiumHydroxide') * 14) @@ -210,11 +268,4 @@ ROASTER.recipeBuilder() .EUt(120) .buildAndRegister() -// CENTRIFUGE.recipeBuilder() -// .fluidInputs(fluid('hydrochloric_acid') * 500) -// .inputs(metaitem('leached_red_mud_slag')) -// .fluidOutputs(fluid('acidic_ree_solution') * 500) -// .duration(100) -// .EUt(Globals.voltAmps[4]) -// .buildAndRegister() diff --git a/groovy/postInit/chemistry/elements/ScandiumChain.groovy b/groovy/postInit/chemistry/elements/ScandiumChain.groovy new file mode 100644 index 000000000..7706cd919 --- /dev/null +++ b/groovy/postInit/chemistry/elements/ScandiumChain.groovy @@ -0,0 +1,127 @@ +import static globals.Globals.* + +BR = recipemap('batch_reactor') +ROASTER = recipemap('roaster') +CENTRIFUGE = recipemap('centrifuge') +CRYSTALLIZER = recipemap('crystallizer') +//source: https://link.springer.com/article/10.1007/s12598-016-0805-5 + +CENTRIFUGE.recipeBuilder() //seperation of Zr, Ti + .fluidInputs(fluid('leached_red_mud_residue') * 1000) + .fluidInputs(fluid('primene_jmt') * 100) //16-dimethylheptadecan-1-amine + //someone has to balance the stoik + //source: https://www.sciencedirect.com/science/article/pii/S1383586613000774 + //is the primene even recoverable? + .fluidOutputs(fluid('purified_leached_red_mud') * 1000) //need to be registered + .fluidOutputs(fluid('wastewater') * 1000) //contains Zr, Ti + .EUt(Globals.voltAmps[2]) + .duration(400) + .buildAndRegister() + +CRYSTALLIZER.recipeBuilder() //impurity removal + .fluidInputs(fluid('purified_leached_red_mud') * 1000) + .fluidInputs(fluid('UraniumVanadiumExtractionMixture') * 100) //cyanex 572 + .fluidOutputs(fluid('organic_loaded_something') * 1000) //need to be registered and renamed + .fluidOutputs(fluid('wastewater') * 1000) + .EUt(Globals.voltAmps[2]) + .duration(100) + .buildAndRegister() + +BR.recipeBuilder() //scrubbing Fe, Ti + .fluidInputs(fluid('organic_loaded_something') * 1000) + .fluidInputs(fluid('SodiumPhosphateSolution') * 100) + .fluidInputs(fluid('hydrogen_peroxide') * 100) //source: https://www.sciencedirect.com/science/article/pii/S0304386X17304437 + .fluidOutputs(fluid('scrubbed_organic_loaded_something') * 1000) //need to be registered and renamed + .fluidOutputs(fluid('wastewater') * 1000) + .EUt(Globals.voltAmps[2]) + .duration(300) + .buildAndRegister() + +BR.recipeBuilder() //stripping + .fluidInputs(fluid('scrubbed_organic_loaded_something') * 1000) + .fluidInputs(fluid('SodiumHydroxideSolution') * 1000) //should be in excess + .fluidOutputs(fluid('ImpureSodiumScandateSolution') * 1000) //need to be registered and renamed + .EUt(Globals.voltAmps[2]) + .duration(300) + .buildAndRegister() + +CRYSTALLIZER.recipeBuilder() + .fluidInputs(fluid('ImpureSodiumScandateSolution') * 1000) + .fluidInputs(fluid('water') * 1000) + .outputs(ore('dustImpureScandiumHydroxide') * 6) //chancedOutput? + .fluidOutputs(fluid('DilutedSodiumHydroxideSolution') * 1000) + .EUt(Globals.voltAmps[2]) + .duration(300) + .buildAndRegister() + +BR.recipeBuilder() //removing Fe, Al, Ti residue from Sc(OH)3 + .fluidInputs(fluid('ImpureSodiumScandateSolution') * 1000) + .fluidInputs(fluid('sulfuric_acid') * 1000) + .fluidOutputs(fluid('ImpureScandiumSulfateSolution') * 1000) //need to be registered + .EUt(Globals.voltAmps[2]) + .duration(300) + .buildAndRegister() + +BR.recipeBuilder() //removing Fe, Al, Ti residue from Sc(OH)3 + .fluidInputs(fluid('ImpureSodiumScandateSolution') * 1000) + .fluidInputs(fluid('hydrochloric_acid') * 1000) + .fluidOutputs(fluid('ImpureScandiumChlorideSolution') * 1000) //need to be registered + .EUt(Globals.voltAmps[2]) + .duration(300) + .buildAndRegister() + +BR.recipeBuilder() + .fluidInputs(fluid('ImpureScandiumSulfateSolution') * 1000) + .inputs(ore('dustOxalicAcid') * 6) + .outputs(ore('dustScandiumOxalate') * 18) //need to be registered + .fluidOutputs(fluid('wastewater') * 1000) + .EUt(Globals.voltAmps[2]) + .duration(300) + .buildAndRegister() + +BR.recipeBuilder() + .fluidInputs(fluid('ImpureScandiumChlorideSolution') * 1000) + .inputs(ore('dustOxalicAcid') * 6) + .outputs(ore('dustScandiumOxalate') * 18) //need to be registered + .fluidOutputs(fluid('wastewater') * 1000) + .EUt(Globals.voltAmps[2]) + .duration(300) + .buildAndRegister() + +ROASTER.recipeBuilder() + .inputs(ore('dustScandiumOxalate') * 18) + .outputs(metaitem('dustScandiumOxide') * 5) //need to be registered + .fluidOutputs(fluid('carbon_monoxide') * 3000) + .fluidOutputs(fluid('carbon_dioxide') * 3000) + .EUt(Globals.voltAmps[2]) + .duration(200) + .buildAndRegister() + +ROASTER.recipeBuilder() + .inputs(ore('dustScandiumOxide') * 5) + .fluidInputs(fluid('hydrogen_fluoride') * 6000) + .outputs(metaitem('dustScandiumFluoride') * 8) //need to be registered + .fluidOutputs(fluid('steam') * 3000) + .EUt(Globals.voltAmps[2]) + .duration(200) + .buildAndRegister() + + +REACTION_FURNACE.recipeBuilder() + .inputs(ore('dustMagnesium') * 3) + .inputs(ore('dustScandiumFluoride') * 8) + .outputs(metaitem('dustScandium') * 2) + .outputs(metaitem('dustMagnesiumFluoride') * 9) + .EUt(Globals.voltAmps[2]) + .duration(100) + .buildAndRegister() + +//it should be faster to use calcium +REACTION_FURNACE.recipeBuilder() + .inputs(ore('dustCalcium') * 3) + .inputs(ore('dustScandiumFluoride') * 8) + .outputs(metaitem('dustScandium') * 2) + .outputs(metaitem('dustFluorite') * 9) + .EUt(Globals.voltAmps[2]) + .duration(100) + .buildAndRegister() \ No newline at end of file diff --git a/groovy/preInit/RegisterMetaItems.groovy b/groovy/preInit/RegisterMetaItems.groovy index d929217ec..2d2ad824d 100644 --- a/groovy/preInit/RegisterMetaItems.groovy +++ b/groovy/preInit/RegisterMetaItems.groovy @@ -48,8 +48,9 @@ eventManager.listen { customMetaItems.addItem(158, "paraffin_wax"); customMetaItems.addItem(159, "spent_cracking_catalyst"); - customMetaItems.addItem(160, "red_mud_slag"); - customMetaItems.addItem(161, "leached_red_mud_slag"); + customMetaItems.addItem(160, "red_mud_residue"); + + customMetaItems.addItem(161, "leached_red_mud_residue"); customMetaItems.addItem(162, "pitch_binder"); customMetaItems.addItem(163, "raw_electrode"); diff --git a/resources/langfiles/lang/en_us.lang b/resources/langfiles/lang/en_us.lang index 608d4cdc7..f8ddd9944 100644 --- a/resources/langfiles/lang/en_us.lang +++ b/resources/langfiles/lang/en_us.lang @@ -2071,8 +2071,8 @@ metaitem.bituminous_residue.name=Bituminous Residue metaitem.paraffin_wax.name=Paraffin Wax metaitem.spent_cracking_catalyst.name=Spent Cracking Catalyst metaitem.cracking_catalyst.name=Cracking Catalyst -metaitem.red_mud_slag.name=Red Mud Slag -metaitem.leached_red_mud_slag.name=Leached Red Mud Slag +metaitem.red_mud_residue.name=Red Mud Residue +metaitem.leached_red_mud_residue.name=Leached Red Mud Residue metaitem.pitch_binder.name=Pitch Binder metaitem.raw_electrode.name=Raw Electrode metaitem.graphite_electrode.name=Graphite Electrode From 94d08581093babbdbb9ddb3d9914b10c1d7107d3 Mon Sep 17 00:00:00 2001 From: trainvoi Date: Wed, 11 Oct 2023 19:10:37 -0400 Subject: [PATCH 2/3] update --- groovy/material/FirstDegreeMaterials.groovy | 29 +++ groovy/material/SecondDegreeMaterials.groovy | 15 +- groovy/material/SuSyMaterials.groovy | 17 ++ .../UnknownCompositionMaterials.groovy | 60 ++++++ groovy/postInit/chemistry/MiscRecipes.groovy | 175 ++++++++++++++++++ .../chemistry/elements/AluminiumChain.groovy | 33 ++-- .../chemistry/elements/ScandiumChain.groovy | 78 +++++--- groovy/preInit/RegisterMetaItems.groovy | 6 +- ...d_slag.png => leached_red_mud_residue.png} | Bin .../{red_mud_slag.png => red_mud_residue.png} | Bin resources/langfiles/lang/en_us.lang | 16 ++ 11 files changed, 376 insertions(+), 53 deletions(-) create mode 100644 groovy/postInit/chemistry/MiscRecipes.groovy rename resources/gregtech/textures/items/metaitems/{leached_red_mud_slag.png => leached_red_mud_residue.png} (100%) rename resources/gregtech/textures/items/metaitems/{red_mud_slag.png => red_mud_residue.png} (100%) diff --git a/groovy/material/FirstDegreeMaterials.groovy b/groovy/material/FirstDegreeMaterials.groovy index 68bc4f941..b52f41f52 100644 --- a/groovy/material/FirstDegreeMaterials.groovy +++ b/groovy/material/FirstDegreeMaterials.groovy @@ -3309,5 +3309,34 @@ public class FirstDegreeMaterials{ .build(); UraniumTetrafluoride.setFormula("UF4", true) + .color(0xC7C0CB) + .components(Hydrogen, 8, Silicon, 8, Oxygen, 12) + .build() + + ScandiumOxalate = new Material.Builder(8589, SuSyUtility.susyId("scandium_oxalate")) + .dust() + .components(Scandium, 2, Carbon, 6, Oxygen, 12) + .colorAverage() + .build() + .setFormula('(Sc2(C2O4)3)', true); + + ScandiumOxide = new Material.Builder(8590, SuSyUtility.susyId("scandium_oxide")) + .dust() + .components(Scandium, 2, Oxygen, 3) + .colorAverage() + .build() + + ScandiumFluoride = new Material.Builder(8591, SuSyUtility.susyId("scandium_fluoride")) + .dust() + .components(Scandium, 1, Fluorine, 3) + .colorAverage() + .build() + + SodiumPhosphate = new Material.Builder(8592, SuSyUtility.susyId('sodium_phosphate')) + .dust() + .colorAverage() + .components(Sodium, 3, Phosphorus, 1, Oxygen, 4) + .build() + SodiumPhosphate.setFormula("Na3PO4", true) } } diff --git a/groovy/material/SecondDegreeMaterials.groovy b/groovy/material/SecondDegreeMaterials.groovy index 1ec51d18c..5310b9e4f 100644 --- a/groovy/material/SecondDegreeMaterials.groovy +++ b/groovy/material/SecondDegreeMaterials.groovy @@ -294,9 +294,8 @@ public class SecondDegreeMaterials { .fluid() .components(SodiumCyanide, 1, SodiumHydroxide, 1, Sodium, 27, Gold, 27, Carbon, 54, Nitrogen, 54, Water, 27) .color(0xbbcc64) - .build(); - - GoldEluteSolution.setFormula('(NaCN)(NaOH)(Na[Au(CN)2])27(H2O)27', true) + .build() + GoldEluteSolution.setFormula('(NaCN)(NaOH)(Na[Au(CN)2])27(H2O)27', true) PotassiumCarbonateSolution = new Material.Builder(13046, SuSyUtility.susyId('potassium_carbonate_solution')) .fluid() @@ -651,6 +650,16 @@ public class SecondDegreeMaterials { .dust() .components(PalladiumChloride, 1, Alumina, 1) .flags(GENERATE_CATALYST_BED) + + SodiumPhosphateSolution = new Material.Builder(13105, SuSyUtility.susyId("sodium_phosphate_solution")) + .fluid() + .components(SodiumPhosphate, 1, Water, 1) + .colorAverage() + .build(); + + DilutedSodiumPhosphateSolution = new Material.Builder(13106, SuSyUtility.susyId("diluted_sodium_phosphate_solution")) + .fluid() + .components(SodiumPhosphate, 1, Water, 3) .colorAverage() .build(); } diff --git a/groovy/material/SuSyMaterials.groovy b/groovy/material/SuSyMaterials.groovy index a5176e18e..d5f784bd0 100644 --- a/groovy/material/SuSyMaterials.groovy +++ b/groovy/material/SuSyMaterials.groovy @@ -485,6 +485,17 @@ class SuSyMaterials { public static Material SpandexPolymerizationMix; public static Material AcrylicPhotoemulsion; public static Material TreatedCollagen; + public static Material AlkalineSaltRedMudMixture; + public static Material RoastedAlkalineSaltRedMudMixture; + public static Material LeachedRedMudResidue; + public static Material OrganicLoadedRedMudMixture; + public static Material ScrubbedOrganicLoadedRedMudMixture; + public static Material PrimeneJmt; + public static Material PurifiedLeachedRedMud; + public static Material ImpureSodiumScandateSolution; + public static Material ImpureScandiumHydroxide; + public static Material ImpureScandiumChlorideSolution; + public static Material ImpureScandiumSulfateSolution; // Petrochem Materials @@ -1024,6 +1035,10 @@ class SuSyMaterials { public static Material GelatinSolution; public static Material UraniumDioxide; public static Material UraniumTetrafluoride; + public static Material SodiumPhosphate; + public static Material ScandiumOxalate; + public static Material ScandiumOxide; + public static Material ScandiumFluoride; // Second Degree Materials @@ -1129,6 +1144,8 @@ class SuSyMaterials { public static Material ManganeseIIChlorideSolution; public static Material DilutedManganeseIIChlorideSolution; public static Material SupportedPalladium; + public static Material SodiumPhosphateSolution; + public static Material DilutedSodiumPhosphateSolution; // Organic Chemistry Materials diff --git a/groovy/material/UnknownCompositionMaterials.groovy b/groovy/material/UnknownCompositionMaterials.groovy index be16afad0..222430ac0 100644 --- a/groovy/material/UnknownCompositionMaterials.groovy +++ b/groovy/material/UnknownCompositionMaterials.groovy @@ -97,6 +97,7 @@ public class UnknownCompositionMaterials { RedMud = new Material.Builder(4013, SuSyUtility.susyId('red_mud')) .fluid().dust() + .fluidTemp(293) .color(0x913f2d) .build(); @@ -1830,5 +1831,64 @@ public class UnknownCompositionMaterials { .components(HydrochloricAcid, 9, HydrofluoricAcid, 9, AceticAcid, 2) .color(0x3e7d68) .build(); + + AlkalineSaltRedMudMixture = new Material.Builder(4401, SuSyUtility.susyId("alkaline_salt_red_mud_mixture")) + .ingot().dust() + .color(0xbd8b81) + .build() + + RoastedAlkalineSaltRedMudMixture = new Material.Builder(4402, SuSyUtility.susyId("roasted_alkaline_salt_red_mud_mixture")) + .ingot().dust() + .color(0x57251b) + .build() + + LeachedRedMudResidue = new Material.Builder(4403, SuSyUtility.susyId("leached_red_mud_residue")) + .fluid() + .color(0x743224) + .build() + + OrganicLoadedRedMudMixture = new Material.Builder(4404, SuSyUtility.susyId("organic_loaded_red_mud_mixture")) + .fluid() + .color(0x814639) + .build() + + ScrubbedOrganicLoadedRedMudMixture = new Material.Builder(4405, SuSyUtility.susyId("scrubbed_organic_loaded_red_mud_mixture")) + .fluid() + .color(0x743224) + .build() + + PrimeneJmt = new Material.Builder(4406, SuSyUtility.susyId("primene_jmt")) + .fluid() + .color(0xb7776b) + .build() + + PurifiedLeachedRedMud = new Material.Builder(4407, SuSyUtility.susyId("purified_leached_red_mud")) + .fluid() + .color(0x99584b) + .build() + + ImpureSodiumScandateSolution = new Material.Builder(4408, SuSyUtility.susyId("impure_sodium_scandate_solution")) + .fluid() + .colorAverage() + .build() + .setFormula('(Na3(Sc(OH)6)(?))', true) + + ImpureScandiumHydroxide = new Material.Builder(4409, SuSyUtility.susyId("impure_scandium_hydroxide")) + .dust() + .colorAverage() + .build() + .setFormula('(Sc(OH)3)(?)', true) + + ImpureScandiumChlorideSolution = new Material.Builder(4410, SuSyUtility.susyId("impure_scandium_chloride_solution")) + .fluid() + .colorAverage() + .build() + .setFormula('(ScCl)3)(?)', true) + + ImpureScandiumSulfateSolution = new Material.Builder(44011, SuSyUtility.susyId("impure_scandium_sulfate_solution")) + .fluid() + .colorAverage() + .build() + .setFormula('(Sc2(SO4)3)(?)', true) } } diff --git a/groovy/postInit/chemistry/MiscRecipes.groovy b/groovy/postInit/chemistry/MiscRecipes.groovy new file mode 100644 index 000000000..b7e22185e --- /dev/null +++ b/groovy/postInit/chemistry/MiscRecipes.groovy @@ -0,0 +1,175 @@ +import static globals.Globals.* + +import static gregtech.api.unification.material.Materials.*; +import gregtech.api.unification.material.MarkerMaterials; + +VACUUM_FREEZER = recipemap('vacuum_freezer') +CSTR = recipemap('continuous_stirred_tank_reactor') +TBR = recipemap('trickle_bed_reactor') +FBR = recipemap('fixed_bed_reactor') +BCR = recipemap('bubble_column_reactor') +BR = recipemap('batch_reactor') +POLYMERIZATION = recipemap('polymerization_tank') +FLUIDIZEDBR = recipemap('fluidized_bed_reactor') +DISTILLATION_TOWER = recipemap('distillation_tower') +DISTILLERY = recipemap('distillery') +ROASTER = recipemap('roaster') +MIXER = recipemap('mixer') +DRYER = recipemap('dryer') +SIFTER = recipemap('sifter') +CENTRIFUGE = recipemap('centrifuge') +PYROLYSE = recipemap('pyrolyse_oven') +LCR = recipemap('large_chemical_reactor') +EBF = recipemap('electric_blast_furnace') +VULCANIZER = recipemap('vulcanizing_press') +ALLOY_SMELTER = recipemap('alloy_smelter') +ARC_FURNACE = recipemap('arc_furnace') +AUTOCLAVE = recipemap('autoclave') +COMPRESSOR = recipemap('compressor') +ASSEMBLER = recipemap('assembler') +ELECTROLYZER = recipemap('electrolyzer') +ELECTROLYTIC_CELL = recipemap('electrolytic_cell') +REACTION_FURNACE = recipemap('reaction_furnace') +ELECTROMAGNETIC_SEPARATOR = recipemap('electromagnetic_separator') +PSA = recipemap('pressure_swing_adsorption') +CHEMICAL_BATH = recipemap('chemical_bath') +ION_EXCHANGE = recipemap('ion_exchange_column') +FLUID_EXTRACTOR = recipemap('extractor') +TUBE_FURNACE = recipemap('tube_furnace') +SINTERING_OVEN = recipemap('sintering_oven') +VACUUM_DT = recipemap('vacuum_distillation') +CRACKER = recipemap('cracker') +FLUID_HEATER = recipemap('fluid_heater') + +// Useful reactions + +BR.recipeBuilder() +.inputs(ore('dustPotassiumHydroxide') * 3) +.fluidInputs(fluid('hydrochloric_acid')* 1000) +.fluidOutputs(fluid('diluted_rock_salt_solution') * 2000) +.EUt(30) +.duration(160) +.buildAndRegister() + +DISTILLATION_TOWER.recipeBuilder() +.fluidInputs(fluid('diluted_rock_salt_solution') * 2000) +.fluidOutputs(fluid('potassium_chloride_solution') * 1000) +.fluidOutputs(fluid('water') * 1000) +.EUt(16) +.duration(60) +.buildAndRegister() + +DISTILLERY.recipeBuilder() +.fluidInputs(fluid('potassium_chloride_solution') * 1000) +.fluidOutputs(fluid('water') * 1000) +.outputs(metaitem('dustRockSalt') * 2) +.EUt(16) +.duration(60) +.buildAndRegister() + +CSTR.recipeBuilder() +.fluidInputs(fluid('potassium_hydroxide_solution') * 100) +.fluidInputs(fluid('carbon_dioxide') * 50) +.fluidOutputs(fluid('diluted_potassium_carbonate_solution') * 150) +.EUt(30) +.duration(15) +.buildAndRegister() + +DISTILLERY.recipeBuilder() +.fluidInputs(fluid('diluted_potassium_carbonate_solution') * 3000) +.outputs(metaitem('dustPotassiumCarbonate') * 6) +.fluidOutputs(fluid('water') * 3000) +.EUt(30) +.duration(400) +.buildAndRegister() + +BR.recipeBuilder() +.fluidInputs(fluid('ammonium_chloride_solution') * 2000) +.inputs(ore('dustCalciumHydroxide') * 5) +.fluidOutputs(fluid('ammonia') * 2000) +.fluidOutputs(fluid('diluted_calcium_chloride_solution') * 2000) +.EUt(30) +.duration(360) +.buildAndRegister() + +DISTILLERY.recipeBuilder() +.fluidInputs(fluid('diluted_calcium_chloride_solution') * 2000) +.fluidOutputs(fluid('water') * 2000) +.outputs(metaitem('dustCalciumChloride') * 3) +.EUt(30) +.duration(100) +.buildAndRegister() + +BR.recipeBuilder() +.fluidInputs(fluid('potassium_carbonate_solution') * 1000) +.fluidInputs(fluid('water') * 1000) +.inputs(ore('dustCalciumHydroxide') * 5) +.fluidOutputs(fluid('potassium_hydroxide_solution') * 2000) +.outputs(metaitem('dustCalcite') * 5) +.EUt(30) +.duration(200) +.buildAndRegister() + +BCR.recipeBuilder() + .fluidInputs(fluid('sodium_hydroxide_solution') * 50) + .fluidInputs(fluid('hydrogen_chloride') * 50) + .fluidOutputs(fluid('salt_water') * 100) + .duration(10) + .EUt(Globals.voltAmps[1]) + .buildAndRegister() + +BR.recipeBuilder() + .inputs(ore('dustQuicklime') * 2) + .fluidInputs(fluid('hydrogen_chloride') * 2000) + .fluidOutputs(fluid('calcium_chloride_solution') * 1000) + .duration(100) + .EUt(16) + .buildAndRegister() + +BR.recipeBuilder() + .inputs(ore('dustCalciumHydroxide') * 5) + .fluidInputs(fluid('hydrogen_chloride') * 2000) + .fluidOutputs(fluid('diluted_calcium_chloride_solution') * 2000) + .duration(100) + .EUt(16) + .buildAndRegister() + +ROASTER.recipeBuilder() + .inputs(ore('dustCalcium')) + .fluidInputs(fluid('oxygen') * 1000) + .outputs(metaitem('dustQuicklime') * 2) + .duration(60) + .EUt(30) + .buildAndRegister() + +BR.recipeBuilder() + .fluidInputs(fluid('phosphoric_acid') * 1000) + .inputs(ore('dustSodiumHydroxide') * 12) + .fluidOutputs(fluid('diluted_sodium_phosphate_solution') * 1000) + .EUt(16) + .duration(200) + .buildAndRegister() + +DISTILLERY.recipeBuilder() + .fluidInputs(fluid('diluted_sodium_phosphate_solution') * 1000) + .outputs(metaitem('dustSodiumPhosphate') * 8) + .fluidOutputs(fluid('water') * 3000) + .EUt(30) + .duration(100) + .buildAndRegister() + +DISTILLERY.recipeBuilder() + .fluidInputs(fluid('sodium_phosphate_solution') * 1000) + .outputs(metaitem('dustSodiumPhosphate') * 8) + .fluidOutputs(fluid('water') * 1000) + .EUt(30) + .duration(160) + .buildAndRegister() + +MIXER.recipeBuilder() + .fluidInputs(fluid('water') * 1000) + .inputs(ore('dustSodiumPhosphate') * 8) + .fluidOutputs(fluid('sodium_phosphate_solution') * 1000) + .duration(100) + .EUt(7) + .buildAndRegister() \ No newline at end of file diff --git a/groovy/postInit/chemistry/elements/AluminiumChain.groovy b/groovy/postInit/chemistry/elements/AluminiumChain.groovy index 66dabfb09..3301dd383 100644 --- a/groovy/postInit/chemistry/elements/AluminiumChain.groovy +++ b/groovy/postInit/chemistry/elements/AluminiumChain.groovy @@ -14,7 +14,7 @@ ELECTROLYZER = recipemap('electrolyzer') CRYSTALLIZER = recipemap('crystallizer') DRYER = recipemap('dryer') MIXER = recipemap('mixer') -COMPRESSOR = recipemap('compressor') +FORMINGPRESS = recipemap('forming_press') // Aluminium Nugget * 3 mods.gregtech.electric_blast_furnace.removeByInput(100, [metaitem('dustRuby')], null) @@ -156,48 +156,47 @@ ROASTER.recipeBuilder() DRYER.recipeBuilder() .fluidInputs(fluid('red_mud') * 1000) .notConsumable(metaitem('item_filter')) -.outputs(metaitem('dustRed_mud')) +.outputs(metaitem('dustRedMud')) .fluidOutputs(fluid('water') * 1000) .duration(300) .EUt(64) .buildAndRegister() -def alkalineAdditives = [ +def lixivant = [ metaitem('dustSodaAsh'), metaitem('dustSodiumSulfate'), //metaitem('dustPotassiumCarbonate'), //metaitem('dustPotassiumSulfate'), ]; -for (a in alkalineAdditives) { +for (a in lixivant) { MIXER.recipeBuilder() .inputs(a) - .inputs(dustRed_mud) - .outputs(metaitem('dustAlkalineRedMudMixture') * 2) //need to be registered + .inputs(metaitem('dustRedMud')) + .outputs(metaitem('dustAlkalineSaltRedMudMixture') * 2) .EUt(16) - .duration(5) + .duration(100) .buildAndRegister() } -COMPRESSOR.recipeBuilder() //maybe an extruder -.inputs(ore('dustAlkalineRedMudMixture')) +FORMINGPRESS.recipeBuilder() //maybe an extruder +.inputs(ore('dustAlkalineSaltRedMudMixture')) .notConsumable(metaitem('shape.mold.nugget')) -.outputs(metaitem('nuggetAlkalineRedMudMixture') * 9) +.outputs(metaitem('nuggetAlkalineSaltRedMudMixture') * 9) .duration(240) .EUt(24) .buildAndRegister() for (combustible in Globals.combustibles) { EBF.recipeBuilder() - .inputs(ore('nuggetAlkalineRedMudMixture') * 9) + .inputs(ore('nuggetAlkalineSaltRedMudMixture') * 18) .inputs(ore(combustible.name) * combustible.amount_required) - .outputs(metaitem(combustible.byproduct)) - .outputs(metaitem('nuggetRoastedAlkalineRedMudMixture') * 9) //need to be registered + .outputs(metaitem('nuggetRoastedAlkalineSaltRedMudMixture') * 9) .fluidOutputs(fluid('carbon_monoxide') * 1000) .EUt(30) - .duration(300 * combustible.duration) + .duration(200 * combustible.duration) .buildAndRegister() } BR.recipeBuilder() - .inputs(ore('dustRoastedAlkalineRedMudMixture')) + .inputs(ore('dustRoastedAlkalineSaltRedMudMixture')) .fluidInputs(fluid('water') * 1000) .fluidOutputs(fluid('sodium_aluminate_solution') * 1000) /*note: Al2O3 in red mud is 6-43%, so someone will have to balance the amount of NaAlO2 produced. @@ -220,7 +219,7 @@ CENTRIFUGE.recipeBuilder() .fluidInputs(fluid('sulfuric_acid') * 1000) .inputs(metaitem('red_mud_residue')) .outputs(metaitem('dustTinyRutile') * 3) -.fluidOutputs(fluid('leached_red_mud_residue') * 1000) //for scandium and REE chain //need to be registered +.fluidOutputs(fluid('leached_red_mud_residue') * 1000) //for scandium and REE chain .duration(100) .EUt(Globals.voltAmps[3]) .buildAndRegister() @@ -229,7 +228,7 @@ CENTRIFUGE.recipeBuilder() .fluidInputs(fluid('hydrochloric_acid') * 1000) .inputs(metaitem('red_mud_residue')) .outputs(metaitem('dustTinyRutile') * 3) -.fluidOutputs(fluid('leached_red_mud_residue') * 1000) //for scandium and REE chain //need to be registered +.fluidOutputs(fluid('leached_red_mud_residue') * 1000) //for scandium and REE chain .duration(100) .EUt(Globals.voltAmps[3]) .buildAndRegister() */ diff --git a/groovy/postInit/chemistry/elements/ScandiumChain.groovy b/groovy/postInit/chemistry/elements/ScandiumChain.groovy index 7706cd919..0dc3889f6 100644 --- a/groovy/postInit/chemistry/elements/ScandiumChain.groovy +++ b/groovy/postInit/chemistry/elements/ScandiumChain.groovy @@ -4,15 +4,23 @@ BR = recipemap('batch_reactor') ROASTER = recipemap('roaster') CENTRIFUGE = recipemap('centrifuge') CRYSTALLIZER = recipemap('crystallizer') +CSTR = recipemap('continuous_stirred_tank_reactor') +REACTION_FURNACE = recipemap('reaction_furnace') //source: https://link.springer.com/article/10.1007/s12598-016-0805-5 + +// Red Mud * 144 +mods.gregtech.extractor.removeByInput(30, [metaitem('dustRedMud')], null) +// Concentrated Red Mud * 144 +mods.gregtech.extractor.removeByInput(30, [metaitem('dustConcentratedRedMud')], null) + CENTRIFUGE.recipeBuilder() //seperation of Zr, Ti .fluidInputs(fluid('leached_red_mud_residue') * 1000) .fluidInputs(fluid('primene_jmt') * 100) //16-dimethylheptadecan-1-amine //someone has to balance the stoik //source: https://www.sciencedirect.com/science/article/pii/S1383586613000774 //is the primene even recoverable? - .fluidOutputs(fluid('purified_leached_red_mud') * 1000) //need to be registered + .fluidOutputs(fluid('purified_leached_red_mud') * 1000) .fluidOutputs(fluid('wastewater') * 1000) //contains Zr, Ti .EUt(Globals.voltAmps[2]) .duration(400) @@ -20,77 +28,88 @@ CENTRIFUGE.recipeBuilder() //seperation of Zr, Ti CRYSTALLIZER.recipeBuilder() //impurity removal .fluidInputs(fluid('purified_leached_red_mud') * 1000) - .fluidInputs(fluid('UraniumVanadiumExtractionMixture') * 100) //cyanex 572 - .fluidOutputs(fluid('organic_loaded_something') * 1000) //need to be registered and renamed + .fluidInputs(fluid('uranium_vanadium_extraction_mixture') * 100) //cyanex 572 + .fluidOutputs(fluid('organic_loaded_red_mud_mixture') * 1000) .fluidOutputs(fluid('wastewater') * 1000) .EUt(Globals.voltAmps[2]) .duration(100) .buildAndRegister() BR.recipeBuilder() //scrubbing Fe, Ti - .fluidInputs(fluid('organic_loaded_something') * 1000) - .fluidInputs(fluid('SodiumPhosphateSolution') * 100) - .fluidInputs(fluid('hydrogen_peroxide') * 100) //source: https://www.sciencedirect.com/science/article/pii/S0304386X17304437 - .fluidOutputs(fluid('scrubbed_organic_loaded_something') * 1000) //need to be registered and renamed + .fluidInputs(fluid('organic_loaded_red_mud_mixture') * 1000) + .fluidInputs(fluid('sodium_phosphate_solution') * 1000) + .fluidInputs(fluid('hydrogen_peroxide') * 1000) //source: https://www.sciencedirect.com/science/article/pii/S0304386X17304437 + .fluidOutputs(fluid('scrubbed_organic_loaded_red_mud_mixture') * 1000) .fluidOutputs(fluid('wastewater') * 1000) .EUt(Globals.voltAmps[2]) .duration(300) .buildAndRegister() +BR.recipeBuilder() //scrubbing Fe, Ti but with less efficiency + .fluidInputs(fluid('organic_loaded_red_mud_mixture') * 1000) + .fluidInputs(fluid('sulfuric_acid') * 1000) + .fluidInputs(fluid('hydrogen_peroxide') * 1000) //source: https://www.sciencedirect.com/science/article/pii/S0304386X17304437 + .fluidOutputs(fluid('scrubbed_organic_loaded_red_mud_mixture') * 1000) + .fluidOutputs(fluid('acidic_wastewater') * 1000) + .EUt(Globals.voltAmps[2]) + .duration(300) + .buildAndRegister() + BR.recipeBuilder() //stripping - .fluidInputs(fluid('scrubbed_organic_loaded_something') * 1000) - .fluidInputs(fluid('SodiumHydroxideSolution') * 1000) //should be in excess - .fluidOutputs(fluid('ImpureSodiumScandateSolution') * 1000) //need to be registered and renamed + .fluidInputs(fluid('scrubbed_organic_loaded_red_mud_mixture') * 1000) + .fluidInputs(fluid('sodium_hydroxide_solution') * 1000) //should be in excess + .fluidOutputs(fluid('uranium_vanadium_extraction_mixture') * 100) //cyanex 572 + .fluidOutputs(fluid('impure_sodium_scandate_solution') * 1000) .EUt(Globals.voltAmps[2]) .duration(300) .buildAndRegister() CRYSTALLIZER.recipeBuilder() - .fluidInputs(fluid('ImpureSodiumScandateSolution') * 1000) + .fluidInputs(fluid('impure_sodium_scandate_solution') * 1000) .fluidInputs(fluid('water') * 1000) - .outputs(ore('dustImpureScandiumHydroxide') * 6) //chancedOutput? - .fluidOutputs(fluid('DilutedSodiumHydroxideSolution') * 1000) + .chancedOutput(metaitem('dustImpureScandiumHydroxide') * 6, 1000, 0) //chancedOutput? + .fluidOutputs(fluid('diluted_sodium_hydroxide_solution') * 2000) .EUt(Globals.voltAmps[2]) .duration(300) .buildAndRegister() BR.recipeBuilder() //removing Fe, Al, Ti residue from Sc(OH)3 - .fluidInputs(fluid('ImpureSodiumScandateSolution') * 1000) - .fluidInputs(fluid('sulfuric_acid') * 1000) - .fluidOutputs(fluid('ImpureScandiumSulfateSolution') * 1000) //need to be registered + .inputs(ore('dustImpureScandiumHydroxide') * 12) + .fluidInputs(fluid('sulfuric_acid') * 3000) + .fluidOutputs(fluid('impure_scandium_sulfate_solution') * 3000) .EUt(Globals.voltAmps[2]) .duration(300) .buildAndRegister() BR.recipeBuilder() //removing Fe, Al, Ti residue from Sc(OH)3 - .fluidInputs(fluid('ImpureSodiumScandateSolution') * 1000) - .fluidInputs(fluid('hydrochloric_acid') * 1000) - .fluidOutputs(fluid('ImpureScandiumChlorideSolution') * 1000) //need to be registered + .inputs(ore('dustImpureScandiumHydroxide') * 6) + .fluidInputs(fluid('hydrochloric_acid') * 3000) + .fluidOutputs(fluid('impure_scandium_chloride_solution') * 3000) .EUt(Globals.voltAmps[2]) .duration(300) .buildAndRegister() BR.recipeBuilder() - .fluidInputs(fluid('ImpureScandiumSulfateSolution') * 1000) + .fluidInputs(fluid('impure_scandium_sulfate_solution') * 3000) .inputs(ore('dustOxalicAcid') * 6) - .outputs(ore('dustScandiumOxalate') * 18) //need to be registered - .fluidOutputs(fluid('wastewater') * 1000) + .outputs(metaitem('dustScandiumOxalate') * 18) + .fluidOutputs(fluid('acidic_wastewater') * 3000) //contains trace amount of Fe, Al, Ti .EUt(Globals.voltAmps[2]) .duration(300) .buildAndRegister() BR.recipeBuilder() - .fluidInputs(fluid('ImpureScandiumChlorideSolution') * 1000) + .fluidInputs(fluid('impure_scandium_chloride_solution') * 6000) .inputs(ore('dustOxalicAcid') * 6) - .outputs(ore('dustScandiumOxalate') * 18) //need to be registered - .fluidOutputs(fluid('wastewater') * 1000) + .outputs(metaitem('dustScandiumOxalate') * 18) + .fluidOutputs(fluid('acidic_wastewater') * 6000) //contains trace amount of Fe, Al, Ti .EUt(Globals.voltAmps[2]) .duration(300) .buildAndRegister() ROASTER.recipeBuilder() .inputs(ore('dustScandiumOxalate') * 18) - .outputs(metaitem('dustScandiumOxide') * 5) //need to be registered + .outputs(metaitem('dustScandiumOxide') * 5) .fluidOutputs(fluid('carbon_monoxide') * 3000) .fluidOutputs(fluid('carbon_dioxide') * 3000) .EUt(Globals.voltAmps[2]) @@ -100,12 +119,11 @@ ROASTER.recipeBuilder() ROASTER.recipeBuilder() .inputs(ore('dustScandiumOxide') * 5) .fluidInputs(fluid('hydrogen_fluoride') * 6000) - .outputs(metaitem('dustScandiumFluoride') * 8) //need to be registered + .outputs(metaitem('dustScandiumFluoride') * 8) .fluidOutputs(fluid('steam') * 3000) .EUt(Globals.voltAmps[2]) .duration(200) .buildAndRegister() - REACTION_FURNACE.recipeBuilder() .inputs(ore('dustMagnesium') * 3) @@ -113,7 +131,7 @@ REACTION_FURNACE.recipeBuilder() .outputs(metaitem('dustScandium') * 2) .outputs(metaitem('dustMagnesiumFluoride') * 9) .EUt(Globals.voltAmps[2]) - .duration(100) + .duration(400) .buildAndRegister() //it should be faster to use calcium @@ -123,5 +141,5 @@ REACTION_FURNACE.recipeBuilder() .outputs(metaitem('dustScandium') * 2) .outputs(metaitem('dustFluorite') * 9) .EUt(Globals.voltAmps[2]) - .duration(100) + .duration(200) .buildAndRegister() \ No newline at end of file diff --git a/groovy/preInit/RegisterMetaItems.groovy b/groovy/preInit/RegisterMetaItems.groovy index 2d2ad824d..69ed4a877 100644 --- a/groovy/preInit/RegisterMetaItems.groovy +++ b/groovy/preInit/RegisterMetaItems.groovy @@ -47,10 +47,10 @@ eventManager.listen { customMetaItems.addItem(157, "bituminous_residue"); customMetaItems.addItem(158, "paraffin_wax"); customMetaItems.addItem(159, "spent_cracking_catalyst"); + + customMetaItems.addItem(160, "red_mud_residue"); - customMetaItems.addItem(160, "red_mud_residue"); - - customMetaItems.addItem(161, "leached_red_mud_residue"); + customMetaItems.addItem(161, "leached_red_mud_residue"); #unused customMetaItems.addItem(162, "pitch_binder"); customMetaItems.addItem(163, "raw_electrode"); diff --git a/resources/gregtech/textures/items/metaitems/leached_red_mud_slag.png b/resources/gregtech/textures/items/metaitems/leached_red_mud_residue.png similarity index 100% rename from resources/gregtech/textures/items/metaitems/leached_red_mud_slag.png rename to resources/gregtech/textures/items/metaitems/leached_red_mud_residue.png diff --git a/resources/gregtech/textures/items/metaitems/red_mud_slag.png b/resources/gregtech/textures/items/metaitems/red_mud_residue.png similarity index 100% rename from resources/gregtech/textures/items/metaitems/red_mud_slag.png rename to resources/gregtech/textures/items/metaitems/red_mud_residue.png diff --git a/resources/langfiles/lang/en_us.lang b/resources/langfiles/lang/en_us.lang index f8ddd9944..193842d71 100644 --- a/resources/langfiles/lang/en_us.lang +++ b/resources/langfiles/lang/en_us.lang @@ -1891,6 +1891,22 @@ susy.material.treated_collagen=Treated Collagen susy.material.gelatin_solution=Gelatin Solution susy.material.uranium_dioxide=Uranium Dioxide susy.material.uranium_tetrafluoride=Uranium Tetrafluoride +susy.material.alkaline_salt_red_mud_mixture=Alkaline Salt-Red Mud Mixture +susy.material.roasted_alkaline_salt_red_mud_mixture=Roasted Alkaline Salt-Red Mud Mixture +susy.material.leached_red_mud_residue=Leached Red Mud Residue +susy.material.organic_loaded_red_mud_mixture=Organic-Loaded Red Mud Mixture +susy.material.scrubbed_organic_loaded_red_mud_mixture=Scrubbed Organic-Loaded Red Mud Mixture +susy.material.primene_jmt=Primene Jmt +susy.material.purified_leached_red_mud=Purified Leached Red Mud +susy.material.impure_sodium_scandate_solution=Impure Sodium Scandate Solution +susy.material.impure_scandium_hydroxide=Impure Scandium Hydroxide +susy.material.impure_scandium_chloride_solution=Impure Scandium Chloride Solution +susy.material.impure_scandium_sulfate_solution=Impure Scandium Sulfate Solution +susy.material.scandium_oxide=Scandium Oxide +susy.material.scandium_fluoride=Scandium Fluoride +susy.material.sodium_phosphate=Sodium Phosphate +susy.material.sodium_phosphate_solution=Sodium Phosphate Solution +susy.material.diluted_sodium_phosphate_solution=Diluted Sodium Phosphate Solution # Isotopes From 88fb4a31a36166a26fbb0d42748fa31ae5301c5c Mon Sep 17 00:00:00 2001 From: trainvoi Date: Fri, 5 Jan 2024 12:29:10 -0500 Subject: [PATCH 3/3] Some patches to material registration --- groovy/material/FirstDegreeMaterials.groovy | 10 +++------- groovy/material/SecondDegreeMaterials.groovy | 5 +++-- .../UnknownCompositionMaterials.groovy | 18 +++++++++--------- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/groovy/material/FirstDegreeMaterials.groovy b/groovy/material/FirstDegreeMaterials.groovy index b52f41f52..588efa70d 100644 --- a/groovy/material/FirstDegreeMaterials.groovy +++ b/groovy/material/FirstDegreeMaterials.groovy @@ -3309,16 +3309,13 @@ public class FirstDegreeMaterials{ .build(); UraniumTetrafluoride.setFormula("UF4", true) - .color(0xC7C0CB) - .components(Hydrogen, 8, Silicon, 8, Oxygen, 12) - .build() ScandiumOxalate = new Material.Builder(8589, SuSyUtility.susyId("scandium_oxalate")) .dust() .components(Scandium, 2, Carbon, 6, Oxygen, 12) .colorAverage() - .build() - .setFormula('(Sc2(C2O4)3)', true); + .build(); + ScandiumOxalate.setFormula('(Sc2(C2O4)3)', true) ScandiumOxide = new Material.Builder(8590, SuSyUtility.susyId("scandium_oxide")) .dust() @@ -3336,7 +3333,6 @@ public class FirstDegreeMaterials{ .dust() .colorAverage() .components(Sodium, 3, Phosphorus, 1, Oxygen, 4) - .build() - SodiumPhosphate.setFormula("Na3PO4", true) + .build(); } } diff --git a/groovy/material/SecondDegreeMaterials.groovy b/groovy/material/SecondDegreeMaterials.groovy index 5310b9e4f..3c755ba05 100644 --- a/groovy/material/SecondDegreeMaterials.groovy +++ b/groovy/material/SecondDegreeMaterials.groovy @@ -294,8 +294,9 @@ public class SecondDegreeMaterials { .fluid() .components(SodiumCyanide, 1, SodiumHydroxide, 1, Sodium, 27, Gold, 27, Carbon, 54, Nitrogen, 54, Water, 27) .color(0xbbcc64) - .build() - GoldEluteSolution.setFormula('(NaCN)(NaOH)(Na[Au(CN)2])27(H2O)27', true) + .build(); + + GoldEluteSolution.setFormula('(NaCN)(NaOH)(Na[Au(CN)2])27(H2O)27', true) PotassiumCarbonateSolution = new Material.Builder(13046, SuSyUtility.susyId('potassium_carbonate_solution')) .fluid() diff --git a/groovy/material/UnknownCompositionMaterials.groovy b/groovy/material/UnknownCompositionMaterials.groovy index 222430ac0..cfb0fab5c 100644 --- a/groovy/material/UnknownCompositionMaterials.groovy +++ b/groovy/material/UnknownCompositionMaterials.groovy @@ -97,7 +97,7 @@ public class UnknownCompositionMaterials { RedMud = new Material.Builder(4013, SuSyUtility.susyId('red_mud')) .fluid().dust() - .fluidTemp(293) + .fluidTemp(293) .color(0x913f2d) .build(); @@ -1870,25 +1870,25 @@ public class UnknownCompositionMaterials { ImpureSodiumScandateSolution = new Material.Builder(4408, SuSyUtility.susyId("impure_sodium_scandate_solution")) .fluid() .colorAverage() - .build() - .setFormula('(Na3(Sc(OH)6)(?))', true) + .build(); + ImpureSodiumScandateSolution.setFormula('(Na3(Sc(OH)6)(?))', true) ImpureScandiumHydroxide = new Material.Builder(4409, SuSyUtility.susyId("impure_scandium_hydroxide")) .dust() .colorAverage() - .build() - .setFormula('(Sc(OH)3)(?)', true) + .build(); + ImpureScandiumHydroxide.setFormula('(Sc(OH)3)(?)', true) ImpureScandiumChlorideSolution = new Material.Builder(4410, SuSyUtility.susyId("impure_scandium_chloride_solution")) .fluid() .colorAverage() - .build() - .setFormula('(ScCl)3)(?)', true) + .build(); + ImpureScandiumChlorideSolution.setFormula('(ScCl)3)(?)', true) ImpureScandiumSulfateSolution = new Material.Builder(44011, SuSyUtility.susyId("impure_scandium_sulfate_solution")) .fluid() .colorAverage() - .build() - .setFormula('(Sc2(SO4)3)(?)', true) + .build(); + ImpureScandiumSulfateSolution.setFormula('(Sc2(SO4)3)(?)', true) } }