diff --git a/.gitignore b/.gitignore index 1c3165d2a..277bd0b56 100644 --- a/.gitignore +++ b/.gitignore @@ -93,3 +93,7 @@ visualores/ *__pycache__* servers.dat + +.idea/material_theme_project_new.xml +.idea/discord.xml +.idea/workspace.xml \ No newline at end of file diff --git a/groovy/classes/ChangeFlags.groovy b/groovy/classes/ChangeFlags.groovy index e36ce7c70..b1edefdaf 100644 --- a/groovy/classes/ChangeFlags.groovy +++ b/groovy/classes/ChangeFlags.groovy @@ -85,6 +85,8 @@ class ChangeFlags { setupFluidType(Iodine, FluidStorageKeys.GAS, 460) setupFluidType(Chlorine, FluidStorageKeys.PLASMA) setupFluidType(Selenium, FluidStorageKeys.LIQUID, 494) + setupFluidType(OsmiumTetroxide, FluidStorageKeys.GAS, 404) + OsmiumTetroxide.addFlags("NO_UNIFICATION") //setupFluidType(Iron3Chloride, FluidStorageKeys.GAS, 590) setupFluidType(CarbonDioxide, SusyFluidStorageKeys.SUPERCRITICAL, 304) @@ -204,6 +206,8 @@ class ChangeFlags { setupSlurries(Sphalerite) setupSlurries(Pollucite) setupSlurries(Arsenopyrite) + Pentlandite.addFlags("generate_sifted", "generate_flotated"); + setupSlurries(Pentlandite) setupFluidType(PolyvinylAcetate, FluidStorageKeys.LIQUID, 385) diff --git a/groovy/material/FirstDegreeMaterials.groovy b/groovy/material/FirstDegreeMaterials.groovy index 80d3e274b..dc43a2d21 100644 --- a/groovy/material/FirstDegreeMaterials.groovy +++ b/groovy/material/FirstDegreeMaterials.groovy @@ -736,7 +736,7 @@ public class FirstDegreeMaterials { HexachloroiridicAcid = new Material.Builder(8197, SuSyUtility.susyId('hexachloroiridic_acid')) .dust() .iconSet(SHINY) - .components(Chlorine * 6, Hydrogen * 2, Iridium) + .components(Hydrogen * 2, Iridium, Chlorine * 6) .colorAverage() .build() @@ -1453,7 +1453,7 @@ public class FirstDegreeMaterials { IronSulfate = new Material.Builder(8310, SuSyUtility.susyId('iron_sulfate')) .dust() .components(Iron, Sulfur, Oxygen * 4) - .colorAverage() + .color(0x42f578) .build(); RoastedPetalite = new Material.Builder(8311, SuSyUtility.susyId('roasted_petalite')) @@ -1777,6 +1777,7 @@ public class FirstDegreeMaterials { .colorAverage() .build(); + ImpureCobaltOxide = new Material.Builder(8360, SuSyUtility.susyId('impure_cobalt_oxide')) .dust() .components(CobaltOxide) @@ -2609,7 +2610,19 @@ public class FirstDegreeMaterials { .build() .setFormula("(?)(Mn(NO3)2)(H2O)", true) - //FREE IDs: 8484-8485 + SeleniumDioxide = new Material.Builder(8484, SuSyUtility.susyId("selenium_dioxide")) + .dust() + .components(Selenium * 1, Oxygen * 2) + .colorAverage() + .build(); + + DilutePotassiumAcetateSolution = new Material.Builder(8485, SuSyUtility.susyId('dilute_potassium_acetate_solution')) + .dust() + .components(Potassium * 2, Carbon * 4, Hydrogen * 6, Oxygen * 4, Water * 5) + .colorAverage() + .build(); + + DilutePotassiumAcetateSolution.setFormula("(CH3COOK)2(H2O)5", true) UltramaficTailingSlurry = new Material.Builder(8486, SuSyUtility.susyId('ultramafic_tailing_slurry')) .liquid() @@ -3575,12 +3588,6 @@ public class FirstDegreeMaterials { .color(0xbb7694) .build() - CobaltSulfateSolution = new Material.Builder(8637, SuSyUtility.susyId('cobalt_sulfate_solution')) - .liquid() - .components(CobaltSulfate * 1, Water * 1) - .colorAverage() - .build() - // 8638: Co3O4 LithiumNitrate = new Material.Builder(8639, SuSyUtility.susyId('lithium_nitrate')) @@ -3594,5 +3601,32 @@ public class FirstDegreeMaterials { .components(LithiumNitrate * 2, Water * 1) .colorAverage() .build() + + // FREE IDs: 8641-8649 + + AmmoniumHexachlororhodate = new Material.Builder(8650, SuSyUtility.susyId('ammonium_hexachlororhodate')) + .dust() + .components(Nitrogen * 3, Hydrogen * 12, Rhodium * 1, Chlorine * 6) + .colorAverage() + .build(); + + AmmoniumHexachlororhodate.setFormula('(NH4)3(RhCl6)', true); + + AmmoniumHexachloroiridate = new Material.Builder(8651, SuSyUtility.susyId('ammonium_hexachloroiridate')) + .dust() + .components(Nitrogen * 3, Hydrogen * 12, Iridium * 1, Chlorine * 6) + .colorAverage() + .build(); + + AmmoniumHexachloroiridate.setFormula('(NH4)2(IrCl6)', true); + + PotassiumAcetateSolution = new Material.Builder(8652, SuSyUtility.susyId('potassium_acetate_solution')) + .dust() + .components(Potassium, Carbon * 2, Hydrogen * 3, Oxygen * 2, Water * 2) + .colorAverage() + .build(); + + PotassiumAcetateSolution.setFormula("(CH3COOK)(H2O)", true) + } } diff --git a/groovy/material/OrganicChemistryMaterials.groovy b/groovy/material/OrganicChemistryMaterials.groovy index 6f4515059..acf7b5d4a 100644 --- a/groovy/material/OrganicChemistryMaterials.groovy +++ b/groovy/material/OrganicChemistryMaterials.groovy @@ -173,6 +173,7 @@ public class OrganicChemistryMaterials { .components(Chloromethane * 1, Water * 1) .colorAverage() .build(); + OneTwoDichloroethylene = new Material.Builder(15025, SuSyUtility.susyId('one_two_dichloroethylene')) .liquid() @@ -249,7 +250,11 @@ public class OrganicChemistryMaterials { .colorAverage() .build(); - //FREE ID: 15038 + Diisobutylene = new Material.Builder(15038, SuSyUtility.susyId('diisobutylene')) + .fluid() + .components(Carbon * 8, Hydrogen * 16) + .color(0xa79781) + .build(); MethylAcetateSolution = new Material.Builder(15039, SuSyUtility.susyId('methyl_acetate_solution')) .liquid(new FluidBuilder().attribute(FluidAttributes.ACID)) @@ -280,7 +285,11 @@ public class OrganicChemistryMaterials { .colorAverage() .build(); - //FREE ID: 15044 + SodiumHypophosphiteSolution = new Material.Builder(15044, SuSyUtility.susyId('sodium_hypophosphite_solution')) + .fluid() + .components(SodiumHypophosphite * 1, AceticAcid * 1) + .colorAverage() + .build(); DichlorobenzidineSolution = new Material.Builder(15045, SuSyUtility.susyId('dichlorobenzidine_solution')) .liquid() @@ -2601,5 +2610,45 @@ public class OrganicChemistryMaterials { .components(Butadiene * 3, Styrene * 1) .color(0x3b2d2b) .build(); + + TrimethylpentylphosphinicAcid = new Material.Builder(15414, SuSyUtility.susyId('trimethylpentylphosphinic_acid')) + .fluid() + .components(Carbon * 16, Hydrogen * 35, Oxygen * 2, Phosphorus * 1) + .colorAverage() + .build() + + OneHexanethiol = new Material.Builder(15415, SuSyUtility.susyId('one_hexanethiol')) + .fluid() + .components(Carbon * 6, Hydrogen * 14, Sulfur * 1) + .colorAverage() + .build() + + OneBromohexane = new Material.Builder(15416, SuSyUtility.susyId('one_bromohexane')) + .fluid() + .components(Carbon * 6, Hydrogen * 13, Bromine * 1) + .colorAverage() + .build() + + DiNHexylsulfide = new Material.Builder(15417, SuSyUtility.susyId('di_n_hexyl_sulfide')) + .fluid() + .components(Carbon * 12, Hydrogen * 26, Sulfur * 1) + .colorAverage() + .build() + + Triisobutylene = new Material.Builder(15418, SuSyUtility.susyId('triisobutylene')) + .fluid() + .components(Carbon * 12, Hydrogen * 24) + .color(0xb9ac9a) + .build(); + + CobaltExtractionMixture = new Material.Builder(15419, SuSyUtility.susyId("cobalt_extraction_mixture")) + .fluid() + .components(TrimethylpentylphosphinicAcid * 1, OrthoXylene * 1) + .colorAverage() + .build(); + + CobaltExtractionMixture.setFormula("(C8H10)(C16H35O2P)", true) + + } } diff --git a/groovy/material/SecondDegreeMaterials.groovy b/groovy/material/SecondDegreeMaterials.groovy index 81de52526..fe064d91b 100644 --- a/groovy/material/SecondDegreeMaterials.groovy +++ b/groovy/material/SecondDegreeMaterials.groovy @@ -714,7 +714,7 @@ public class SecondDegreeMaterials { .components(Iron * 8, Zinc * 1) .colorAverage() .build(); - + ImpureLithiumCarbonateSolution = new Material.Builder(13115, SuSyUtility.susyId("impure_lithium_carbonate_solution")) .liquid() .components(Carbon * 2, Lithium * 2, Oxygen * 3, Water) @@ -749,5 +749,65 @@ public class SecondDegreeMaterials { .color(0x003c74) .build() .setFormula("(H)8(CO2)", true); + + HexachloroiridicAcidSolution = new Material.Builder(13130, SuSyUtility.susyId('hexachloroiridic_acid_solution')) + .liquid(new FluidBuilder().attribute(FluidAttributes.ACID)) + .components(HexachloroiridicAcid * 1, Water * 1) + .colorAverage() + .build(); + + HexachlororhodicAcidSolution = new Material.Builder(13131, SuSyUtility.susyId('hexachlororhodic_acid_solution')) + .liquid(new FluidBuilder().attribute(FluidAttributes.ACID)) + .components(Hydrogen * 3, Rhodium * 1, Chlorine * 6, Water * 1) + .colorAverage() + .build(); + + HexachlororuthenicAcidSolution = new Material.Builder(13132, SuSyUtility.susyId('hexachlororuthenic_acid_solution')) + .liquid(new FluidBuilder().attribute(FluidAttributes.ACID)) + .components(Hydrogen * 2, Ruthenium * 1, Chlorine * 6, Water * 1) + .colorAverage() + .build(); + + HexachlororuthenicAcidSolution.setFormula('(H2RuCl6)2(H2O)35', true) + + AmmoniumHexachlororuthenateSolution = new Material.Builder(13133, SuSyUtility.susyId('ammonium_hexachlororuthenate_solution')) + .liquid(new FluidBuilder()) + .components(Nitrogen * 2, Hydrogen * 8, Ruthenium * 1, Chlorine * 6, Water * 1) + .colorAverage() + .build(); + + AmmoniumHexachlororuthenateSolution.setFormula('((NH4)2[RuCl6])2(H2O)35', true) + + TetraamminepalladiumDichloride = new Material.Builder(13134, SuSyUtility.susyId('tetraamminepalladium_dichloride')) + .liquid() + .components(Ammonia * 4, Palladium * 1, Chlorine * 2, Water * 1) + .colorAverage() + .build(); + + TetraamminepalladiumDichloride.setFormula('Pd(NH3)4Cl2(H2O)', true) + + PotassiumPersulfateSolution = new Material.Builder(13135, SuSyUtility.susyId('potassium_persulfate_solution')) + .fluid() + .components(PotassiumPersulfate * 1, Water * 1) + .colorAverage() + .build(); + + PotassiumPersulfateSolution.setFormula("(K2S2O8)(H2O)", true) + + PotassiumOsmateSolution = new Material.Builder(13136, SuSyUtility.susyId('potassium_osmate_solution')) + .fluid() + .components(Potassium * 2, Osmium * 1, Oxygen * 7, Hydrogen * 6) + .color(0xbf21a0) + .build(); + + PotassiumOsmateSolution.setFormula("(K2[OsO2(OH)4])(H2O)", true) + + CobaltSulfateSolution = new Material.Builder(13137, SuSyUtility.susyId("cobalt_sulfate_solution")) + .fluid() + .components(Cobalt * 1, Sulfur * 1, Oxygen * 4, Water * 1) + .colorAverage() + .build(); + + CobaltSulfateSolution.setFormula("(CoSO4)(H2O)", true) } } diff --git a/groovy/material/SuSyMaterials.groovy b/groovy/material/SuSyMaterials.groovy index 0d987a8e2..5c9dfe65a 100644 --- a/groovy/material/SuSyMaterials.groovy +++ b/groovy/material/SuSyMaterials.groovy @@ -525,10 +525,51 @@ class SuSyMaterials { public static Material SourWater; public static Material TypeYZeoliteSolution; public static Material TypeYZeolite; + public static Material GreenMatte; + public static Material WhiteMatte; + public static Material AcidicNickelCopperSulfateSolution; + public static Material OxidizedPGMLeach; + public static Material ImpureNickelSulfate; + public static Material CopperRichPGMSolids; + public static Material PGMCopperLeachSlurry; + public static Material PGMFreeCopperLeach; + public static Material PGMConcentrate; + public static Material SulfidicCopperLeach; + public static Material SeleniumFreeCopperLeach; + public static Material CopperSelenidePrecipitate; + public static Material SeleniumFreeCalcine; + public static Material NickelExtractionMixture; + public static Material NickelCobaltSulfate; + public static Material IronSulfateMotherLiquor; + public static Material NickelCobaltSulfateSolution; + public static Material CobaltExtractionMixture; + public static Material CobaltExtract; + public static Material CrudeTrimethylpentylphosphinicAcid; + public static Material AlkalineTrimethylpentylphosphinicAcid; + public static Material AcidifiedTrimethylpentylphosphinicAcid; + public static Material DehydratedTrimethylpentylphosphinicAcid; + public static Material OsmiumRutheniumFreePGMSolution; + public static Material SilverFreePGMSolution; + public static Material GoldFreePGMSolution; + public static Material ReducedGoldFreePGMSolution; + public static Material GoldExtract; + public static Material PlatinumFreePGMSolution; + public static Material PalladiumFreePGMSolution; + public static Material ChlorinatedPGMSolution; + public static Material ChlorateTreatedPGMSolution; + public static Material ScrubbedGoldExtract; + public static Material ChlorinatedPGMConcentrate; + public static Material PalladiumExtract; + public static Material RhodiumIridiumSolution; + public static Material RhodiumIridiumExtractionMixture; public static Material CobaltMatte; public static Material OrthoCresylicAcidMixture; public static Material CresolNovolacsOligomer; public static Material EpoxyCresolNovolacs; + public static Material OsmiumRutheniumTetroxideMixture; + public static Material OsmiumRutheniumSolution; + public static Material ChlorinatedRhodiumIridiumSolution; + public static Material OrganicIridiumSolution; public static Material DeacidifiedLipid; public static Material GlycerolMethanolSolution; public static Material GlycerolEthanolSolution; @@ -1215,6 +1256,8 @@ class SuSyMaterials { public static Material PotassiumPermanganate; public static Material LeadFreeSolder; public static Material CryogenicSolder; + public static Material SeleniumDioxide; + public static Material CobaltSulfateSolution; public static Material Kovar; public static Material ImpureLithiumCarbonate; public static Material WashedGraphene; @@ -1232,9 +1275,10 @@ class SuSyMaterials { public static Material HSLAEightyX; public static Material FoodGradeStainlessSteel; public static Material CobaltSulfate; - public static Material CobaltSulfateSolution; public static Material LithiumNitrate; public static Material LithiumNitrateSolution; + public static Material AmmoniumHexachlororhodate; + public static Material AmmoniumHexachloroiridate; // HP Materials @@ -1428,6 +1472,14 @@ class SuSyMaterials { public static Material LithiumCarbonateSolution; public static Material AcidicArgonHydrogenMixture; public static Material AmmoniacalArgonHydrogenMixture; + public static Material PotassiumPersulfateSolution; + public static Material PotassiumOsmateSolution; + public static Material HexachloroiridicAcidSolution; + public static Material HexachlororhodicAcidSolution; + public static Material HexachlororuthenicAcidSolution; + public static Material AmmoniumHexachlororuthenateSolution; + public static Material TetraamminepalladiumDichloride; + // Organic Chemistry Materials @@ -1546,7 +1598,7 @@ class SuSyMaterials { public static Material Durene; public static Material PyromelliticDianhydride; public static Material FourFourOxydianiline; - public static Material FourFourOxydianilineSlurry + public static Material FourFourOxydianilineSlurry; public static Material KaptonK; public static Material KaptonE; public static Material BiphenylTetracarboxylicAcidDianhydride; @@ -1841,6 +1893,14 @@ class SuSyMaterials { public static Material CompoundedStyreneButadieneRubber; public static Material TwoSixXylenol; public static Material TwoFourFiveXylenolMixture; + public static Material TrimethylpentylphosphinicAcid; + public static Material Diisobutylene; + public static Material TriIsobutylene; + public static Material DiisobutyleneMixture; + public static Material SodiumHypophosphiteSolution; + public static Material OneHexanethiol; + public static Material OneBromohexane; + public static Material DiNHexylsulfide; // Third Degree Materials diff --git a/groovy/material/UnknownCompositionMaterials.groovy b/groovy/material/UnknownCompositionMaterials.groovy index 2a60a5e1a..3b64850f4 100644 --- a/groovy/material/UnknownCompositionMaterials.groovy +++ b/groovy/material/UnknownCompositionMaterials.groovy @@ -2003,6 +2003,201 @@ public class UnknownCompositionMaterials { .liquid() .color(0xc8cca1) .build(); + + + AcidicNickelCopperSulfateSolution = new Material.Builder(4427, SuSyUtility.susyId("acidic_nickel_copper_sulfate_solution")) + .fluid() + .color(0x502d0a) + .build(); + + OxidizedPGMLeach = new Material.Builder(4428, SuSyUtility.susyId("oxidized_pgm_leach")) + .fluid() + .color(0x1b261d) + .build(); + + ImpureNickelSulfate = new Material.Builder(4429, SuSyUtility.susyId("impure_nickel_sulfate")) + .fluid() + .color(0x1b4a1f) + .build(); + + CopperRichPGMSolids = new Material.Builder(4430, SuSyUtility.susyId("copper_rich_pgm_solids")) + .dust() + .color(0x374529) + .build(); + + PGMCopperLeachSlurry = new Material.Builder(4431, SuSyUtility.susyId("pgm_copper_leach_slurry")) + .fluid() + .color(0x334520) + .build(); + + PGMFreeCopperLeach = new Material.Builder(4432, SuSyUtility.susyId("pgm_free_copper_leach")) + .fluid() + .color(0xb35f1b) + .build(); + + PGMConcentrate = new Material.Builder(4433, SuSyUtility.susyId("pgm_concentrate")) + .dust() + .color(0xe60e0e) + .iconSet(SHINY) + .build(); + + SulfidicCopperLeach = new Material.Builder(4434, SuSyUtility.susyId("sulfidic_copper_leach")) + .fluid() + .color(0xb3562b) + .build(); + + CopperSelenidePrecipitate = new Material.Builder(4435, SuSyUtility.susyId("copper_selenide_precipitate")) + .dust() + .color(0xafc474) + .build(); + + SeleniumFreeCopperLeach = new Material.Builder(4436, SuSyUtility.susyId("selenium_free_copper_leach")) + .fluid() + .color(0xf57242) + .build(); + + SeleniumFreeCalcine = new Material.Builder(4437, SuSyUtility.susyId("selenium_free_calcine")) + .dust() + .color(0xe60e0e) + .build(); + + NickelCobaltSulfate = new Material.Builder(4438, SuSyUtility.susyId("nickel_cobalt_sulfate")) + .dust() + .color(0x48852c) + //.components(Nickel * 1, Cobalt * 1, Sulfur, Oxygen * 4) + .build(); + + NickelCobaltSulfateSolution = new Material.Builder(4439, SuSyUtility.susyId("nickel_cobalt_sulfate_solution")) + .fluid() + .color(0x48852c) + .build(); + + IronSulfateMotherLiquor = new Material.Builder(4440, SuSyUtility.susyId("iron_sulfate_mother_liquor")) + .fluid() + .color(0x42f578) + .build(); + + CobaltExtract = new Material.Builder(4442, SuSyUtility.susyId("cobalt_extract")) + .fluid() + .color(0x5e8e8e) + .build(); + + CrudeTrimethylpentylphosphinicAcid = new Material.Builder(4443, SuSyUtility.susyId("crude_trimethylpentylphosphinic_acid")) + .fluid() + .color(0xc4a335) + .build(); + + AlkalineTrimethylpentylphosphinicAcid = new Material.Builder(4444, SuSyUtility.susyId("alkaline_trimethylpentylphosphinic_acid")) + .fluid() + .color(0x360e0e) + .build(); + + AcidifiedTrimethylpentylphosphinicAcid = new Material.Builder(4445, SuSyUtility.susyId("acidified_trimethylpentylphosphinic_acid")) + .fluid() + .color(0x663e1e) + .build(); + + DehydratedTrimethylpentylphosphinicAcid = new Material.Builder(4446, SuSyUtility.susyId("dehydrated_trimethylpentylphosphinic_acid")) + .fluid() + .color(0x663e00) + .build(); + + OsmiumRutheniumFreePGMSolution = new Material.Builder(4447, SuSyUtility.susyId("os_ru_free_pgm_solution")) + .fluid() + .color(0xe0dcb6) + .build(); + + SilverFreePGMSolution = new Material.Builder(4448, SuSyUtility.susyId("silver_free_pgm_solution")) + .fluid() + .color(0xa3a18b) + .build(); + + GoldFreePGMSolution = new Material.Builder(4449, SuSyUtility.susyId("gold_free_pgm_solution")) + .fluid() + .color(0x82806b) + .build(); + + GoldExtract = new Material.Builder(4450, SuSyUtility.susyId("gold_extract")) + .fluid() + .color(0xe3d76b) + .build(); + + ScrubbedGoldExtract = new Material.Builder(4451, SuSyUtility.susyId("scrubbed_gold_extract")) + .fluid() + .color(0xf5e65f) + .build(); + + PlatinumFreePGMSolution = new Material.Builder(4452, SuSyUtility.susyId("platinum_free_pgm_solution")) + .fluid() + .color(0xbfb984) + .build(); + + ChlorinatedRhodiumIridiumSolution = new Material.Builder(4453, SuSyUtility.susyId("chlorinated_rh_ir_solution")) + .fluid() + .color(0xa39bb8) + .build(); + + ChlorateTreatedPGMSolution = new Material.Builder(4454, SuSyUtility.susyId("chlorate_treated_pgm_solution")) + .fluid() + .color(0xccc9a9) + .build(); + + OrganicIridiumSolution = new Material.Builder(4455, SuSyUtility.susyId("organic_iridium_solution")) + .fluid() + .color(0x8e8e8e) + .build(); + + // FREE ID: 4456 + + PalladiumExtract = new Material.Builder(4457, SuSyUtility.susyId("palladium_extract")) + .fluid() + .color(0xaba07e) + .build(); + + DiisobutyleneMixture = new Material.Builder(4458, SuSyUtility.susyId('diisobutylene_mixture')) + .fluid() + .color(0x5d503e) + .build(); + + GreenMatte = new Material.Builder(4459, SuSyUtility.susyId("green_matte")) + .dust() + .color(0xa18922) + .iconSet(DULL) + .build(); + + WhiteMatte = new Material.Builder(4460, SuSyUtility.susyId("white_matte")) + .dust() + .color(0xd1bf71) + .iconSet(DULL) + .build(); + + // FREE IDs: 4461-4469 + + RhodiumIridiumSolution = new Material.Builder(4470, SuSyUtility.susyId("rh_ir_solution")) + .fluid() + .color(0x9177a1) + .build(); + + RhodiumIridiumExtractionMixture = new Material.Builder(4471, SuSyUtility.susyId("rh_ir_extraction_mixture")) + .fluid() + .color(0xb3abb8) + .build(); + + OsmiumRutheniumTetroxideMixture = new Material.Builder(4472, SuSyUtility.susyId("os_ru_tetroxide_mixture")) + .gas() + .color(0x8e8e8e) + .build(); + + OsmiumRutheniumSolution = new Material.Builder(4473, SuSyUtility.susyId("os_ru_solution")) + .fluid() + .color(0x7e8e8e) + .build(); + + ReducedGoldFreePGMSolution = new Material.Builder(4474, SuSyUtility.susyId("reduced_gold_free_pgm_solution")) + .fluid() + .color(0x82806b) + .build(); + // Skipped IDs : 4426-4499 for gtl & plat chain diff --git a/groovy/postInit/chemistry/inorganic_chemistry/elements/d_block/group10/MatteChain.groovy b/groovy/postInit/chemistry/inorganic_chemistry/elements/d_block/group10/MatteChain.groovy new file mode 100644 index 000000000..16d5cbf97 --- /dev/null +++ b/groovy/postInit/chemistry/inorganic_chemistry/elements/d_block/group10/MatteChain.groovy @@ -0,0 +1,358 @@ +import globals.Globals; + +BR = recipemap('batch_reactor') +CSTR = recipemap('continuous_stirred_tank_reactor') +DISTILLERY = recipemap('distillery') +DISTILLATION_TOWER = recipemap('distillation_tower') +ROASTER = recipemap('roaster') +MACERATOR = recipemap('macerator') +SIFTER = recipemap('sifter') +CRYSTALLIZER = recipemap('crystallizer') +REACTION_FURNACE = recipemap('reaction_furnace') +GRAVITY_SEPARATOR = recipemap('gravity_separator') +FF = recipemap('froth_flotation') +CLARIFIER = recipemap('clarifier') +MIXER = recipemap('mixer') +EBF = recipemap('electric_blast_furnace') +ELECTROMAGNETIC_SEPARATOR = recipemap('electromagnetic_separator') +AUTOCLAVE = recipemap('autoclave') +ELECTROLYTIC_CELL = recipemap('electrolytic_cell') +SIFTER = recipemap('sifter') +DRYER = recipemap('dryer') +VACUUM_DT = recipemap('vacuum_distillation') +BCR = recipemap('bubble_column_reactor') +SIEVE_DT = recipemap('sieve_distillation') +PHASE_SEPARATOR = recipemap('phase_separator') +VACUUM_CHAMBER = recipemap('vacuum_chamber') + +//MODERN SEPARATION PROCESSES +GRAVITY_SEPARATOR.recipeBuilder() + .inputs(ore('dustPentlandite')) + .outputs(metaitem('dustSiftedPentlandite')) + .chancedOutput(metaitem('dustUltramaficTailings'), 2500, 0) + .EUt(Globals.voltAmps[1]) + .duration(40) + .buildAndRegister() + +MIXER.recipeBuilder() + .inputs(ore('dustSiftedPentlandite') * 8) + .fluidInputs(fluid('distilled_water') * 2000) + .fluidOutputs(fluid('impure_pentlandite_slurry') * 2000) + .EUt(Globals.voltAmps[3]) + .duration(80) + .buildAndRegister() + +FF.recipeBuilder() + .fluidInputs(fluid('impure_pentlandite_slurry') * 2000) + .notConsumable(fluid('sodium_isobutyl_xanthate') * 100) + .notConsumable(fluid('copper_sulfate_solution') * 100) + .notConsumable(fluid('cresol') * 100) + .fluidOutputs(fluid('pentlandite_slurry') * 1000) + .fluidOutputs(fluid('ultramafic_tailing_slurry') * 1000) + .EUt(Globals.voltAmps[3]) + .duration(80) + .buildAndRegister() + +CLARIFIER.recipeBuilder() + .fluidInputs(fluid('pentlandite_slurry') * 1000) + .outputs(metaitem('dustFlotatedPentlandite') * 16) + .fluidOutputs(fluid('wastewater') * 1000) + .duration(20) + .EUt(Globals.voltAmps[1]) + .buildAndRegister() + +//The pelletized material is smelted in a shaft furnace to form a +//copper – nickel matte. Oxygen is then blown into the converter +//to oxidize the iron sulfide selectively to iron oxide, +//which forms a slag. +EBF.recipeBuilder() + .inputs(ore('dustFlotatedPentlandite') * 8) + .outputs(metaitem('dustGreenMatte') * 8) + .duration(20) + .blastFurnaceTemp(2700) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +EBF.recipeBuilder() + .inputs(ore('dustGreenMatte') * 8) + .fluidInputs(fluid('oxygen') * 4000) + .outputs(metaitem('white_matte') * 8) + .outputs(metaitem('dustIronIiiOxide') * 2) + .fluidOutputs(fluid('sulfur_dioxide') * 2000) + .duration(200) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +MACERATOR.recipeBuilder() + .inputs(metaitem('white_matte')) + .outputs(metaitem('dustWhiteMatte')) + .duration(100) + .EUt(2) + .buildAndRegister() + +//method described in https://patentimages.storage.googleapis.com/2b/70/5a/cbb5549831857c/US4571262.pdf + +//atmospheric leach +BR.recipeBuilder() + .inputs(ore('dustWhiteMatte') * 2) + .fluidInputs(fluid('air') * 9750) + .fluidInputs(fluid('sulfuric_acid') * 1000) + .fluidOutputs(fluid('oxidized_pgm_leach') * 1000) + .duration(200) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +BR.recipeBuilder() + .inputs(ore('dustWhiteMatte')) + .fluidInputs(fluid('air') * 9750) + .fluidInputs(fluid('acidic_nickel_copper_sulfate_solution') * 1000) + .fluidOutputs(fluid('oxidized_pgm_leach') * 1000) + .duration(200) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +SIFTER.recipeBuilder() + .fluidInputs(fluid('oxidized_pgm_leach') * 1000) + .notConsumable(metaitem('item_filter')) + .fluidOutputs(fluid('impure_nickel_sulfate') * 1000) + .outputs(metaitem('dustCopperRichPgmSolids')) + .duration(200) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +//pressure leach +AUTOCLAVE.recipeBuilder() + .fluidInputs(fluid('sulfuric_acid') * 1000) + .fluidInputs(fluid('oxygen') * 1000) + .inputs(ore('dustCopperRichPgmSolids')) + .fluidOutputs(fluid('pgm_copper_leach_slurry') * 1000) + .duration(200) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +AUTOCLAVE.recipeBuilder() + .fluidInputs(fluid('sulfuric_acid') * 1500) + .fluidInputs(fluid('oxygen') * 1500) + .inputs(ore('dustSeleniumFreeCalcine')) + .fluidOutputs(fluid('pgm_copper_leach_slurry') * 1500) + .duration(200) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +SIFTER.recipeBuilder() + .fluidInputs(fluid('pgm_copper_leach_slurry') * 1000) + .notConsumable(metaitem('item_filter')) + .fluidOutputs(fluid('pgm_free_copper_leach') * 1000) + .outputs(metaitem('dustPgmConcentrate')) + .duration(200) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +//selenium extraction +CSTR.recipeBuilder() + .fluidInputs(fluid('pgm_free_copper_leach') * 50) + .fluidInputs(fluid('sulfur_dioxide') * 50) + .fluidOutputs(fluid('sulfidic_copper_leach') * 50) + .duration(50) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +SIFTER.recipeBuilder() + .fluidInputs(fluid('sulfidic_copper_leach') * 1000) + .notConsumable(metaitem('item_filter')) + .fluidOutputs(fluid('selenium_free_copper_leach') * 1000) + .outputs(metaitem('dustCopperSelenidePrecipitate')) + .duration(200) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +ROASTER.recipeBuilder() + .inputs(ore('dustCopperSelenidePrecipitate')) + .fluidInputs(fluid('air') * 2000) + .chancedOutput(metaitem('dustSeleniumDioxide'), 2000, 0) + .outputs(metaitem('dustSeleniumFreeCalcine')) + .duration(300) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +ROASTER.recipeBuilder() + .inputs(ore('dustCopperSelenidePrecipitate')) + .fluidInputs(fluid('oxygen') * 419) + .chancedOutput(metaitem('dustSeleniumDioxide'), 2095, 0) + .outputs(metaitem('dustSeleniumFreeCalcine')) + .duration(200) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +//copper electrowinning +ELECTROLYTIC_CELL.recipeBuilder() + .fluidInputs(fluid('selenium_free_copper_leach') * 1000) + .inputs(ore('plateCopper')) + .notConsumable(ore('plateStainlessSteel')) + .fluidInputs(fluid('sulfuric_acid') * 1000) + .fluidOutputs(fluid('acidic_nickel_copper_sulfate_solution') * 2000) + .outputs(metaitem('dustCopper') * 2) + .duration(200) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +//cyanex production + +BR.recipeBuilder() + .inputs(ore('dustSodiumHypophosphite') * 3) + .fluidInputs(fluid('acetic_acid') * 1000) + .fluidOutputs(fluid('sodium_hypophosphite_solution') * 1000) //material + .duration(20) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +//diisobutylene production +// https://patents.google.com/patent/US7414164B2/en +// mostly from this patent: https://patents.google.com/patent/US5877372A/en +BR.recipeBuilder() + //.notConsumable(ore('dustAluminiumSilicate')) + .notConsumable(metaitem('beads.ag_fifty_w_x_eight')) + //dry sulfonic acid ion exchange resin like Amberlyst 15 or zeolite-based catalysts + .notConsumable(fluid('tert_butyl_alcohol') * 100) //1 to 30 wt % + .notConsumable(fluid('isooctane') * 100) //diluent, 90% isooctane and 10% isododecane/2,2,4,4,6 pentamethyl heptane + .fluidInputs(fluid('isobutylene') * 1000) + .fluidOutputs(fluid('diisobutylene_mixture') * 1000) + .duration(200) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +DISTILLATION_TOWER.recipeBuilder() //90% yield converted to diisobutytlene? + .fluidInputs(fluid('diisobutylene_mixture') * 1000) + .fluidOutputs(fluid('isobutylene') * 90) + .fluidOutputs(fluid('diisobutylene') * 400) + .fluidOutputs(fluid('triisobutylene') * 20) +// ↓ this is not doable currently due to DT input restrictions +// .notConsumable(fluid('tert_butyl_alcohol') * 50) //not all tBuOH and isobutent reacts in the dimerization process + .duration(800) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +//source for trimethylpentylphosphinic acid WO2013083047A1 +BR.recipeBuilder() + .notConsumable(metaitem('emitter.lv')) + .fluidInputs(fluid('sodium_hypophosphite_solution') * 1000) + .fluidInputs(fluid('acetone') * 100) + .fluidInputs(fluid('diisobutylene') * 500) //material + .fluidOutputs(fluid('crude_trimethylpentylphosphinic_acid') * 1000) //material + .duration(100) + .EUt(Globals.voltAmps[2]) + .buildAndRegister(); + + +CENTRIFUGE.recipeBuilder() + .fluidInputs(fluid('crude_trimethylpentylphosphinic_acid') * 1000) + .fluidInputs(fluid('sodium_hydroxide_solution') * 1000) + .fluidOutputs(fluid('alkaline_trimethylpentylphosphinic_acid') * 1000) //material + .fluidOutputs(fluid('diluted_sodium_hydroxide_solution') * 1000) + .duration(100) + .EUt(Globals.voltAmps[2]) + .buildAndRegister(); + +MIXER.recipeBuilder() + .fluidInputs(fluid('alkaline_trimethylpentylphosphinic_acid') * 1000) + .fluidInputs(fluid('sulfuric_acid') * 1000) + .fluidOutputs(fluid('acidified_trimethylpentylphosphinic_acid') * 1000) //material + .fluidOutputs(fluid('diluted_sulfuric_acid') * 1000) + .duration(100) + .EUt(Globals.voltAmps[2]) + .buildAndRegister(); + +DRYER.recipeBuilder() + .fluidInputs(fluid('acidified_trimethylpentylphosphinic_acid') * 1000) + .fluidOutputs(fluid('dehydrated_trimethylpentylphosphinic_acid') * 1000) //material + .EUt(Globals.voltAmps[2]) + .duration(600) + .buildAndRegister() + +VACUUM_DT.recipeBuilder() + .fluidInputs(fluid('dehydrated_trimethylpentylphosphinic_acid') * 1000) + .fluidOutputs(fluid('trimethylpentylphosphinic_acid') * 1000) //new material + .duration(120) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +MIXER.recipeBuilder() + .fluidInputs(fluid('trimethylpentylphosphinic_acid') * 1000) + .fluidInputs(fluid('ortho_xylene') * 1000) + .fluidOutputs(fluid('cobalt_extraction_mixture') * 1000) + .duration(120) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() +//end cyanex chain + + +//input the impure nickel sulfate solution into a crystallizer +//it should make a mixture of cobalt and nickel sulfate dusts and a mother liquor of iron ii sulfate solution +//then redissolve and extract with cyanex + +// crystallisation step makes a nickel-cobalt solution and leaves behind an iron sulfate mother liquor +CRYSTALLIZER.recipeBuilder() + .fluidInputs(fluid('dense_steam') * 1000) + .fluidInputs(fluid('impure_nickel_sulfate') * 1000) + .fluidOutputs(fluid('iron_sulfate_mother_liquor') * 1000) + .outputs(metaitem('dustNickelCobaltSulfate') * 6) + .duration(400) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +DISTILLERY.recipeBuilder() + .fluidInputs(fluid('iron_sulfate_mother_liquor') * 1000) + .fluidOutputs(fluid('water') * 1000) + .outputs(metaitem('dustIronSulfate') * 7) + .duration(80) + .EUt(Globals.voltAmps[1]) + .buildAndRegister() + +MIXER.recipeBuilder() + .inputs(ore('dustNickelCobaltSulfate') * 6) + .fluidInputs(fluid('water') * 1000) + .fluidOutputs(fluid('nickel_cobalt_sulfate_solution') * 1000) + .duration(20) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +// cyanex-272 extractant makes cobalt sulfate leaving behind nickel sulfate solution +CENTRIFUGE.recipeBuilder() + .fluidInputs(fluid('cobalt_extraction_mixture') * 1000) + .fluidInputs(fluid('nickel_cobalt_sulfate_solution') * 1000) + .fluidOutputs(fluid('cobalt_extract') * 1200) + .fluidOutputs(fluid('nickel_sulfate_solution') * 800) + .duration(200) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +CENTRIFUGE.recipeBuilder() + .fluidInputs(fluid('cobalt_extract') * 1200) + .fluidInputs(fluid('diluted_sulfuric_acid') * 10) + .fluidOutputs(fluid('cobalt_extraction_mixture') * 1000) + .fluidOutputs(fluid('cobalt_sulfate_solution') * 200) + .duration(200) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + + +// Possible improvements for Pre-PGM Proc: + +// method described in original paper (renner 2001) + +// ELECTROMAGNETIC_SEPARATOR.recipeBuilder() +// .inputs(ore('dustWhiteMatte')) +// .outputs(metaitem('pgm_RichMatte')) +// .outputs(metaitem('pgm_FreeMatte')) +// .duration(20) +// .EUt(Globals.voltAmps[2]) +// .buildAndRegister() + +// AUTOCLAVE.recipeBuilder() +// .inputs(ore('pgm_RichMatte')) +// .fluidInputs(fluid('oxygen')) +// .fluidInputs(fluid('sulfuric_acid')) +// .outputs(fluid('dustPgm_concentrate')) +// .fluidOutputs(fluid('')) +// .duration(200) +// .EUt(Globals.voltAmps[2]) diff --git a/groovy/postInit/chemistry/inorganic_chemistry/elements/d_block/group10/PlatinumGroupChain.groovy b/groovy/postInit/chemistry/inorganic_chemistry/elements/d_block/group10/PlatinumGroupChain.groovy index 8e5ebe6f0..1d35dd432 100644 --- a/groovy/postInit/chemistry/inorganic_chemistry/elements/d_block/group10/PlatinumGroupChain.groovy +++ b/groovy/postInit/chemistry/inorganic_chemistry/elements/d_block/group10/PlatinumGroupChain.groovy @@ -1,4 +1,4 @@ -import globals.Globals +import globals.Globals; BR = recipemap('batch_reactor') CSTR = recipemap('continuous_stirred_tank_reactor') @@ -9,117 +9,582 @@ MACERATOR = recipemap('macerator') SIFTER = recipemap('sifter') CRYSTALLIZER = recipemap('crystallizer') REACTION_FURNACE = recipemap('reaction_furnace') +GRAVITY_SEPARATOR = recipemap('gravity_separator') +FF = recipemap('froth_flotation') +CLARIFIER = recipemap('clarifier') +MIXER = recipemap('mixer') +EBF = recipemap('electric_blast_furnace') +ELECTROMAGNETIC_SEPARATOR = recipemap('electromagnetic_separator') +AUTOCLAVE = recipemap('autoclave') +ELECTROLYTIC_CELL = recipemap('electrolytic_cell') +SIFTER = recipemap('sifter') +DRYER = recipemap('dryer') +VACUUM_DT = recipemap('vacuum_distillation') +BCR = recipemap('bubble_column_reactor') +SIEVE_DT = recipemap('sieve_distillation') +PHASE_SEPARATOR = recipemap('phase_separator') +VACUUM_CHAMBER = recipemap('vacuum_chamber') //LOW YIELD CHAIN FROM SECONDARY ORES MACERATOR.recipeBuilder() - .inputs(item('susy:resource_block', 10)) - .outputs(metaitem('dustAlluvialPgmSand') * 9) - .duration(160) - .EUt(30) - .buildAndRegister() + .inputs(item('susy:resource_block', 10)) + .outputs(metaitem('dustAlluvialPgmSand') * 9) + .duration(160) + .EUt(30) + .buildAndRegister() SIFTER.recipeBuilder() - .inputs(ore('dustAlluvialPgmSand')) - .outputs(metaitem('nuggetAlluvialPgm') * 4) - .outputs(metaitem('dustNetherQuartz') * 3) - .duration(160) - .EUt(30) - .buildAndRegister() + .inputs(ore('dustAlluvialPgmSand')) + .outputs(metaitem('nuggetAlluvialPgm') * 4) + .outputs(metaitem('dustNetherQuartz') * 3) + .duration(160) + .EUt(30) + .buildAndRegister() BR.recipeBuilder() - .inputs(ore('dustAlluvialPgm') * 2) - .fluidInputs(fluid('aqua_regia') * 12000) - .fluidInputs(fluid('nitric_acid') * 1000) - .fluidOutputs(fluid('alluvial_pgm_solution') * 5000) - .fluidOutputs(fluid('hydrogen') * 1000) - .fluidOutputs(fluid('nitrogen_dioxide') * 5000) - .duration(120) - .EUt(Globals.voltAmps[2]) - .buildAndRegister() + .inputs(ore('dustAlluvialPgm') * 2) + .fluidInputs(fluid('aqua_regia') * 12000) + .fluidInputs(fluid('nitric_acid') * 1000) + .fluidOutputs(fluid('alluvial_pgm_solution') * 5000) + .fluidOutputs(fluid('hydrogen') * 1000) + .fluidOutputs(fluid('nitrogen_dioxide') * 5000) + .duration(120) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() BR.recipeBuilder() - .inputs(ore('dustAnyPurityZinc')) - .fluidInputs(fluid('alluvial_pgm_solution') * 10000) - .outputs(metaitem('dustIronIiChloride') * 3) - .fluidOutputs(fluid('cemented_alluvial_pgm_solution') * 10000) - .duration(240) - .EUt(Globals.voltAmps[2]) - .buildAndRegister() + .inputs(ore('dustAnyPurityZinc')) + .fluidInputs(fluid('alluvial_pgm_solution') * 10000) + .outputs(metaitem('dustIronIiChloride') * 3) + .fluidOutputs(fluid('cemented_alluvial_pgm_solution') * 10000) + .duration(240) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() CRYSTALLIZER.recipeBuilder() // 2 H2PtCl6 + 4 NH4Cl --> 2 (NH4)2PtCl6 + 4 HCl - .circuitMeta(1) - .fluidInputs(fluid('cemented_alluvial_pgm_solution') * 10000) // 67% (NH4)2Pt, 33% H2PdCl4 - .fluidInputs(fluid('ammonium_chloride_solution') * 4000) - .chancedOutput(metaitem('dustAmmoniumHexachloroplatinate') * 34, 7500, 0) - .fluidOutputs(fluid('alluvial_platinum_mother_liquor') * 14000) - .duration(240) - .EUt(Globals.voltAmps[2]) - .buildAndRegister() + .circuitMeta(1) + .fluidInputs(fluid('cemented_alluvial_pgm_solution') * 10000) // 67% (NH4)2Pt, 33% H2PdCl4 + .fluidInputs(fluid('ammonium_chloride_solution') * 4000) + .chancedOutput(metaitem('dustAmmoniumHexachloroplatinate') * 34, 7500, 0) + .fluidOutputs(fluid('alluvial_platinum_mother_liquor') * 14000) + .duration(240) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() DISTILLATION_TOWER.recipeBuilder() - .fluidInputs(fluid('alluvial_platinum_mother_liquor') * 14000) - .chancedOutput(metaitem('dustZincChloride') * 3, 9000, 0) - .fluidOutputs(fluid('ammonium_chloride_solution') * 1000) - .fluidOutputs(fluid('water') * 13000) - .fluidOutputs(fluid('hydrogen_chloride') * 4000) - .duration(240) - .EUt(Globals.voltAmps[2]) - .buildAndRegister() + .fluidInputs(fluid('alluvial_platinum_mother_liquor') * 14000) + .chancedOutput(metaitem('dustZincChloride') * 3, 9000, 0) + .fluidOutputs(fluid('ammonium_chloride_solution') * 1000) + .fluidOutputs(fluid('water') * 13000) + .fluidOutputs(fluid('hydrogen_chloride') * 4000) + .duration(240) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() REACTION_FURNACE.recipeBuilder() - .inputs(ore('dustAmmoniumHexachloroplatinate') * 17) - .fluidInputs(fluid('hydrogen') * 4000) - .outputs(metaitem('sponge.platinum')) - .fluidOutputs(fluid('ammonia') * 2000) - .fluidOutputs(fluid('hydrogen_chloride') * 6000) - .duration(240) - .EUt(Globals.voltAmps[2]) - .buildAndRegister() + .inputs(ore('dustAmmoniumHexachloroplatinate') * 17) + .fluidInputs(fluid('hydrogen') * 4000) + .outputs(metaitem('sponge.platinum')) + .fluidOutputs(fluid('ammonia') * 2000) + .fluidOutputs(fluid('hydrogen_chloride') * 6000) + .duration(240) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() MACERATOR.recipeBuilder() - .inputs(metaitem('sponge.platinum')) - .outputs(metaitem('dustPlatinum')) - .duration(240) - .EUt(Globals.voltAmps[2]) - .buildAndRegister() + .inputs(metaitem('sponge.platinum')) + .outputs(metaitem('dustPlatinum')) + .duration(240) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() BR.recipeBuilder() - .notConsumable(ore('springCupronickel')) - .fluidInputs(fluid('alluvial_platinum_mother_liquor') * 14000) - .fluidOutputs(fluid('alluvial_divalent_palladium_solution') * 14000) - .fluidOutputs(fluid('chlorine') * 50) - .duration(120) - .EUt(Globals.voltAmps[2]) - .buildAndRegister() + .notConsumable(ore('springCupronickel')) + .fluidInputs(fluid('alluvial_platinum_mother_liquor') * 14000) + .fluidOutputs(fluid('alluvial_divalent_palladium_solution') * 14000) + .fluidOutputs(fluid('chlorine') * 50) + .duration(120) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() CRYSTALLIZER.recipeBuilder() - .fluidInputs(fluid('ammonia_solution') * 1000) - .fluidInputs(fluid('alluvial_divalent_palladium_solution') * 7000) //(H2PdCl4)(ZnCl2)(HCl)4(H2O)14 - .chancedOutput(metaitem('dustDiamminedichloropalladium') * 11, 3750, 0) - .fluidOutputs(fluid('alluvial_palladium_mother_liquor') * 8000) //(NH4Cl)2(ZnCl2)(HCl)4(H2O)16 - .duration(60) - .EUt(Globals.voltAmps[2]) - .buildAndRegister() + .fluidInputs(fluid('ammonia_solution') * 2000) + .fluidInputs(fluid('alluvial_divalent_palladium_solution') * 14000) //(H2PdCl4)(ZnCl2)(HCl)4(H2O)14 + .chancedOutput(metaitem('dustDiamminedichloropalladium') * 11, 7500, 0) + .fluidOutputs(fluid('alluvial_palladium_mother_liquor') * 16000) //(NH4Cl)2(ZnCl2)(HCl)4(H2O)16 + .duration(120) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +REACTION_FURNACE.recipeBuilder() + .inputs(ore('dustDiamminedichloropalladium') * 11) + .fluidInputs(fluid('hydrogen') * 4000) + .outputs(metaitem('dustPalladium')) + .fluidOutputs(fluid('ammonia') * 2000) + .fluidOutputs(fluid('hydrogen_chloride') * 2000) + .duration(240) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +DISTILLATION_TOWER.recipeBuilder() + .fluidInputs(fluid('alluvial_palladium_mother_liquor') * 16000) + .chancedOutput(metaitem('dustZincChloride') * 3, 9500, 0) + .fluidOutputs(fluid('ammonium_chloride_solution') * 2000) + .fluidOutputs(fluid('water') * 14000) + .fluidOutputs(fluid('hydrogen_chloride') * 4000) + .duration(240) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +// PGM PROCESSING Tier 2 + +//Hydrochloric Acid solution +//Output: Solution Pt,Rh,Ir,Au,Ag +BCR.recipeBuilder() + .fluidInputs(fluid('chlorine') * 1000) + .fluidInputs(fluid('hydrochloric_acid') * 1000) + .fluidInputs(fluid('chlorinated_pgm_concentrate') * 1000) + .fluidOutputs(fluid('pgm_solution') * 1000) + .duration(200) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +//OSMIUM + +//a. contacting the mixture with an oxidizing solution (NaClO3) to form a volatile RuO4/OsO4 vapor; +//In acidic media, osmium is oxidized by peroxodisulfate to form OsO4 +//b. bubbling the OsO4 vapor through a KOH trapping solution to form an amount of K2[OsO4(OH)2] +//dissolved in the KOH trapping solution; +//c. contacting the dissolved K2[OsO4(OH)2] with a reducing agent (ethanol) to form an Os precipitate +//d. separating the Os precipitate from the KOH trapping solution +//adsorb oso4 distillate into koh solution (buble column) +//precipitate with ethanol + +// 8% ruthenium and 1% osmium +CSTR.recipeBuilder() + .fluidInputs(fluid('pgm_solution') * 100) + .fluidInputs(fluid('sodium_chlorate_solution') * 9) + .fluidOutputs(fluid('chlorate_treated_pgm_solution') * 100) + .duration(20) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +VACUUM_CHAMBER.recipeBuilder() + .fluidInputs(fluid('chlorate_treated_pgm_solution') * 1000) + .fluidOutputs(fluid('os_ru_tetroxide_mixture') * 90) + .fluidOutputs(fluid('os_ru_free_pgm_solution') * 910) + .duration(20) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() +// OsO4 + 8RuO4 + 98HCl(H2O) -> H2OsCl6 + 8H3RuCl6 + 134H2O + 22Cl2 +// All of the fun byproducts are pretended to just stay in the Ru solution +// Also technically we should have hexachlororuthenic(III, IV) acid, but that's too complicated, so it's just Ru(IV) +CSTR.recipeBuilder() + .fluidInputs(fluid('os_ru_tetroxide_mixture') * 9) + .fluidInputs(fluid('hydrochloric_acid') * 98) + .fluidOutputs(fluid('os_ru_solution') * 143) + .fluidOutputs(fluid('chlorine') * 22) + .duration(6) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +// Distill out with hydrogen peroxide +// Base: H2OsCl6 + 5H2O2 -> OsO4 + 3Cl2 + 6H2O +// H2OsCl6 + 8H3RuCl6 + 134H2O + 5H2O2 -> OsO4 + 8H3RuCl6 + 140H2O + 3Cl2 +DISTILLATION_TOWER.recipeBuilder() + .fluidInputs(fluid('os_ru_solution') * 1430) + .fluidInputs(fluid('hydrogen_peroxide_solution') * 50) + .fluidOutputs(fluid('hexachlororuthenic_acid_solution') * 1480) + .fluidOutputs(fluid('osmium_tetroxide') * 10) + .fluidOutputs(fluid('chlorine') * 30) + .duration(200) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +// 8H2RuCl6 + 140H2O + 16NH3 -> 8(NH4)2RuCl6 + 140H2O +// (Planet, is this correct?) +BCR.recipeBuilder() + .fluidInputs(fluid('hexachlororuthenic_acid_solution') * 1480) + .fluidInputs(fluid('ammonia') * 160) + .fluidOutputs(fluid('ammonium_hexachlororuthenate_solution') * 1480) + .duration(60) + .EUt(Globals.voltAmps[1]) + .buildAndRegister() + +// 8(NH4)2RuCl6 + 140H2O + 32H -> 16NH4Cl + 8Ru + 140H2O + 32HCl +// 2(NH4)2RuCl6 + 35H2O + 8H -> 4NH4Cl + 2Ru + 35H2O + 8HCl +// The input is 370 REACTION_FURNACE.recipeBuilder() - .inputs(ore('dustDiamminedichloropalladium') * 11) - .fluidInputs(fluid('hydrogen') * 4000) - .outputs(metaitem('dustPalladium')) - .fluidOutputs(fluid('ammonia') * 2000) - .fluidOutputs(fluid('hydrogen_chloride') * 2000) - .duration(240) - .EUt(Globals.voltAmps[2]) - .buildAndRegister() + .fluidInputs(fluid('ammonium_hexachlororuthenate_solution') * 370) + .fluidInputs(fluid('hydrogen') * 80) + .chancedOutput(metaitem('sponge.ruthenium') * 2, 100, 0) + .chancedOutput(metaitem('dustAmmoniumChloride') * 24, 100, 0) + .fluidOutputs(fluid('dense_steam') * 350) + .fluidOutputs(fluid('hydrogen_chloride') * 80) + .duration(500) + .EUt(Globals.voltAmps[3]) + +MACERATOR.recipeBuilder() + .inputs(metaitem('sponge.ruthenium')) + .outputs(metaitem('dustRuthenium')) + .duration(240) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +//2OsO4 + C2H5OH + 5KOH -> CH3CO2K + 2K2[OsO2(OH)4] +BCR.recipeBuilder() + .fluidInputs(fluid('osmium_tetroxide') * 2000) + .fluidInputs(fluid('potassium_hydroxide_solution') * 5000) + .fluidInputs(fluid('ethanol') * 1000) + .outputs(metaitem('dustPotassiumOsmate') * 26) + .fluidOutputs(fluid('dilute_potassium_acetate_solution') * 5000) + .duration(20) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +DISTILLATION_TOWER.recipeBuilder() + .fluidInputs(fluid('dilute_potassium_acetate_solution') * 5000) + .fluidOutputs(fluid('potassium_acetate_solution') * 2000) + .fluidOutputs(fluid('water') * 3000) + .duration(20) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + + +// 2CH3COOK + 2H2O → C2H6 + 2CO2 + 2KOH + H2 +ELECTROLYTIC_CELL.recipeBuilder() + .notConsumable(ore('rodPlatinum') * 2) + .fluidInputs(fluid('potassium_acetate_solution') * 2000) + .fluidInputs(fluid('water') * 2000) + .fluidOutputs(fluid('ethane') * 1000) + .fluidOutputs(fluid('carbon_dioxide') * 2000) + .fluidOutputs(fluid('potassium_hydroxide_solution') * 2000) + .fluidOutputs(fluid('hydrogen') * 2000) + .EUt(Globals.voltAmps[2]) + .duration(100) + .buildAndRegister() + +//K2[OsO2(OH)4] + 3H2 → Os + 2KOH + 4H2O +ROASTER.recipeBuilder() + .fluidInputs(fluid('potassium_osmate_solution') * 1000) + .fluidInputs(fluid('hydrogen') * 3000) + .outputs(metaitem('sponge.osmium')) + .fluidOutputs(fluid('potassium_hydroxide_solution') * 2000) + .fluidOutputs(fluid('water') * 4000) + .duration(20) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +MACERATOR.recipeBuilder() + .inputs(metaitem('sponge.osmium')) + .outputs(metaitem('dustOsmium')) + .duration(240) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +//SILVER + +//Distillative removal of HCl +//Dilution with water +//Output: AgCl precipitate +//Output: Solution Pt,Pd,Rh,Ir,Au DISTILLATION_TOWER.recipeBuilder() - .fluidInputs(fluid('alluvial_palladium_mother_liquor') * 16000) - .chancedOutput(metaitem('dustZincChloride') * 3, 9500, 0) - .fluidOutputs(fluid('ammonium_chloride_solution') * 2000) - .fluidOutputs(fluid('water') * 14000) - .fluidOutputs(fluid('hydrogen_chloride') * 4000) - .duration(240) - .EUt(Globals.voltAmps[2]) - .buildAndRegister() - -//MODERN SEPARATION PROCESSES + .fluidInputs(fluid('os_ru_free_pgm_solution') * 910) + .outputs(metaitem('dustSilverChloride') * 2) + .fluidOutputs(fluid('silver_free_pgm_solution') * 890) + .fluidOutputs(fluid('hydrogen_chloride')) + .duration(100) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +//GOLD + +//Liquid-liquid extraction +//stripping +//Output: H(AuCl4) extract +//Output: Raffinate Pt,Pd,Rh,Ir,Ru + +//extraction with dibutyl carbitol +CENTRIFUGE.recipeBuilder() + .fluidInputs(fluid('silver_free_pgm_solution') * 890) + .fluidInputs(fluid('dibutyl_carbitol') * 10) + .fluidOutputs(fluid('gold_extract') * 10) + .fluidOutputs(fluid('gold_free_pgm_solution') * 880) + .duration(100) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +//scrubbing gold extract +CENTRIFUGE.recipeBuilder() + .fluidInputs(fluid('gold_extract') * 1000) + .notConsumable(fluid('diluted_hydrochloric_acid')) + .fluidOutputs(fluid('scrubbed_gold_extract') * 1000) + .EUt(240) + .duration(120) + .buildAndRegister() + +//stripping with oxalic acid +//2HAuCl4 + 3C2H2O4 -> 2Au + 8HCl + 6CO2 +CENTRIFUGE.recipeBuilder() + .fluidInputs(fluid('scrubbed_gold_extract') * 2000) + .fluidInputs(fluid('oxalic_acid_solution') * 3000) + .fluidOutputs(fluid('dibutyl_carbitol') * 1000) + .fluidOutputs(fluid('hydrogen_chloride') * 8000) + .fluidOutputs(fluid('carbon_dioxide') * 6000) + .outputs(metaitem('dustGold') * 2) //needs to be calcinated + .EUt(240) + .duration(120) + .buildAndRegister() + + +//PLATINUM + +//Oxidation with Cl2 +//Reduction of Ir(IV) to Ir(III) +//Precipitation with NH4Cl +//Output: (NH4)2(PtCl6) precipitate +//Output: Solution Pd,Rh,Ir + +//solution + cl2 + h2c2o4*h2o -> solution with shit + co2 +//solution with shit + nh4cl*h2o -> (nh4)2[ptcl6] + platinum-free pgm solution +//(NH4)2[PtCl6] + 2H2 --350*c-> Pt + 2NH4Cl + 4HCl + +BR.recipeBuilder() + .fluidInputs(fluid('gold_free_pgm_solution') * 880) + .fluidInputs(fluid('oxalic_acid_solution') * 10) + .fluidOutputs(fluid('reduced_gold_free_pgm_solution') * 880) + .fluidOutputs(fluid('carbon_dioxide') * 20) + .duration(20) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +BR.recipeBuilder() + .fluidInputs(fluid('reduced_gold_free_pgm_solution') * 880) + .fluidInputs(fluid('ammonium_chloride_solution') * 1140) + .fluidOutputs(fluid('platinum_free_pgm_solution') * 310) + .chancedOutput(metaitem('dustAmmoniumHexachloroplatinate') * 17, 6064, 0) // The chance is 57 / 94 + .duration(20) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +//DNHS SYNTHESIS +//C6H12 + H2S --UV-> C6H14S +//C6H12 + HBr --UV, H2O2-> C6H13BRr +//C6H14S + C6H13Br -> C12H26S + HBr + +BR.recipeBuilder() + .notConsumable(metaitem('carbon_arc_lamp')) + .fluidInputs(fluid('one_hexene') * 50) + .fluidInputs(fluid('hydrogen_sulfide') * 50) + .fluidOutputs(fluid('one_hexanethiol') * 50) + .duration(20) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +BR.recipeBuilder() + .notConsumable(metaitem('carbon_arc_lamp')) + .fluidInputs(fluid('one_hexene') * 50) + .fluidInputs(fluid('hydrobromic_acid') * 50) + .fluidOutputs(fluid('one_bromohexane') * 50) + .duration(20) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +CSTR.recipeBuilder() + .fluidInputs(fluid('one_hexanethiol') * 50) + .fluidInputs(fluid('one_bromohexane') * 50) + .fluidOutputs(fluid('hydrobromic_acid') * 50) + .fluidOutputs(fluid('di_n_hexyl_sulfide') * 50) + .duration(20) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + + +//PALLADIUM + +//Solvent extraction with DNHS +//Stripping with NH3(aq) +//Output: (Pd(NH3)4)Cl2 extract +//Output: Solution Ir,Rh + +//Solution + di-n-hexyl-sulfide -> palladium extract + palladium-free pgm solution +//Extractant + (NH3)(H2O) -> (Pd(NH3)4)Cl2) +//(Pd(NH3)4)Cl2) + 2HCl -> (Pd(NH3)2)Cl2) + 2NH4Cl +//3[(Pd(NH3)2)Cl2)] -(inert atmosphere)-> 3Pd + 4NH4Cl + 2HCl + N2 + +CENTRIFUGE.recipeBuilder() + .fluidInputs(fluid('platinum_free_pgm_solution') * 310) + .fluidInputs(fluid('di_n_hexyl_sulfide') * 250) + .fluidOutputs(fluid('palladium_extract') * 500) + .fluidOutputs(fluid('rh_ir_solution') * 60) + .duration(100) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +CENTRIFUGE.recipeBuilder() + .fluidInputs(fluid('palladium_extract') * 2000) + .fluidInputs(fluid('ammonia_solution') * 1000) + .fluidOutputs(fluid('di_n_hexyl_sulfide') * 1000) + .fluidOutputs(fluid('tetraamminepalladium_dichloride') * 1000) + .duration(100) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +// Pd(NH3)4Cl2(H2O) + 2HCl + H2O -> 2NH4Cl(H2O) + Pd(NH3)2Cl2 +BR.recipeBuilder() + .fluidInputs(fluid('tetraamminepalladium_dichloride') * 1000) + .fluidInputs(fluid('hydrogen_chloride') * 2000) + .fluidInputs(fluid('water') * 1000) + .fluidOutputs(fluid('ammonium_chloride_solution') * 2000) + .outputs(metaitem('dustDiamminedichloropalladium') * 11) + .duration(20) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +//IRIDIUM + +//Oxidation with Cl2 +//Solvent extraction with TBP +//Stripping with H2O +//Output: H2(IrCl6) extract +//Output: Solution Rh + +// 2H3(IrCl6) + Cl2 + 2H2O + 2TBP -> 2H2(IrCl6)(TBP) + 2HCl(H2O) (Iridium solution) +// + +BCR.recipeBuilder() + .fluidInputs(fluid('chlorine') * 5) + .fluidInputs(fluid('rh_ir_solution') * 60) + .fluidOutputs(fluid('chlorinated_rh_ir_solution') * 60) + .duration(100) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +MIXER.recipeBuilder() + .fluidInputs(fluid('tributyl_phosphate') * 10) + .fluidInputs(fluid('chlorinated_rh_ir_solution') * 60) + .fluidOutputs(fluid('rh_ir_extraction_mixture') * 70) + .duration(20) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +PHASE_SEPARATOR.recipeBuilder() + .fluidInputs(fluid('rh_ir_extraction_mixture') * 70) + .fluidOutputs(fluid('hexachlororhodic_acid_solution') * 50) + .fluidOutputs(fluid('organic_iridium_solution') * 20) + .duration(80) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +// H2(IrCl6)(TBP) + HCl(H2O)(H2O) -> +PHASE_SEPARATOR.recipeBuilder() + .fluidInputs(fluid('organic_iridium_solution') * 200) + .fluidInputs(fluid('dilute_hydrochloric_acid') * 200) + .fluidOutputs(fluid('hexachloroirodic_acid_solution') * 100) + .fluidOutputs(fluid('tributyl_phosphate') * 100) + .duration(80) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +//H2(IrCl6)(TBP) + 2NH4Cl -> (NH3)2(IrCl6) + 2HCl + +CRYSTALLIZER.recipeBuilder() + .fluidInputs(fluid('hexachloroiridic_acid_solution') * 1000) + .fluidInputs(fluid('ammonium_chloride_solution') * 2000) + .outputs(metaitem('dustAmmoniumHexachloroiridate') * 21) + .fluidOutputs(fluid('hydrochloric_acid') * 2000) + .duration(200) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +REACTION_FURNACE.recipeBuilder() + .inputs(ore('dustAmmoniumHexachloroiridate') * 21) + .fluidInputs(fluid('hydrogen') * 4000) + .outputs(metaitem('sponge.iridium')) + .outputs(metaitem('dustAmmoniumChloride') * 24) + .fluidOutputs(fluid('hydrogen_chloride') * 2000) + .duration(240) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +MACERATOR.recipeBuilder() + .inputs(metaitem('sponge.iridium')) + .outputs(metaitem('dustIridium')) + .duration(240) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + + + +//RHODIUM + +//Crystallization +//Output: (NH4)3(RhCl6) crystals + +CRYSTALLIZER.recipeBuilder() + .fluidInputs(fluid('hexachlororhodic_acid_solution') * 1000) + .inputs(ore('dustAmmoniumChloride') * 18) + .outputs(metaitem('dustAmmoniumHexachlororhodate') * 21) + .fluidOutputs(fluid('hydrochloric_acid') * 4000) + .duration(200) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +// H3IrCl6 + 3NH4Cl -> (NH4)3(IrCl6) + 3HCl + excess HCl solvent? +REACTION_FURNACE.recipeBuilder() + .inputs(ore('dustAmmoniumHexachlororhodate') * 21) + .fluidInputs(fluid('hydrogen') * 3000) + .outputs(metaitem('sponge.rhodium')) + .outputs(metaitem('dustAmmoniumChloride') * 18) + .fluidOutputs(fluid('hydrogen_chloride') * 3000) + .duration(240) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +MACERATOR.recipeBuilder() + .inputs(metaitem('sponge.rhodium')) + .outputs(metaitem('dustRhodium')) + .duration(240) + .EUt(Globals.voltAmps[2]) + .buildAndRegister() + +// PGM PROCESSING Tier 3 + +//Begin with HCl solution of Pt,Pd,Rh,Ir,Au,Ag,Ru + +//Distillative removal of HCl +//Dilution with water +//Output: AgCl precipitate +//Output: Solution Pt,Pd,Rh,Ir,Au,Ru + +//Solvent Extraction with MIBK +//Reduction +//Output: Au precipitate +//Output: Solution Pt,Pd,Rh,Ir,Ru + +//Solvent Extraction with oxime +//Stripping +//Output: H2(PdCl4) Solution +//Output: Solution Pt,Rh,Ir,Ru + +//Solvent Extraction with amine +//Stripping +//Output: H2(PtCl6) Solution +//Output: Solution Ir,Rh,RU + +//Removal of NH4+ +//Oxidative Distillation +//Output: RuO4 distillate +//Output: Solution Ru,Ir + +//Amine Extraction +//Stripping +//Output: H2(IrCl6) Solution +//Output: Solution Rh + +//Ion Exchange +//Elution +//Output: H3(RhCl6) Solution diff --git a/groovy/postInit/chemistry/organic_chemistry/Extractants.groovy b/groovy/postInit/chemistry/organic_chemistry/Extractants.groovy index c6893e6a5..f9248e3b4 100755 --- a/groovy/postInit/chemistry/organic_chemistry/Extractants.groovy +++ b/groovy/postInit/chemistry/organic_chemistry/Extractants.groovy @@ -488,6 +488,8 @@ BR.recipeBuilder() .EUt(120) .buildAndRegister() + + //D2EHPA CENTRIFUGE.recipeBuilder() .fluidInputs(fluid('sodium_hydroxide_solution') * 1000) @@ -835,4 +837,12 @@ CHEMICAL_BATH.recipeBuilder() .outputs(metaitem('beads.rhenium_ion_exchange')) .EUt(120) .duration(200) - .buildAndRegister() \ No newline at end of file + .buildAndRegister() + +MIXER.recipeBuilder() + .fluidInputs(fluid('water') * 1000) + .fluidInputs(fluid('hydrogen_peroxide') * 1000) + .fluidOutputs(fluid('hydrogen_peroxide_solution') * 1000) + .EUt(7) + .duration(40) + .buildAndRegister() diff --git a/groovy/preInit/RegisterMetaItems.groovy b/groovy/preInit/RegisterMetaItems.groovy index d28d5e829..8c401ee7b 100644 --- a/groovy/preInit/RegisterMetaItems.groovy +++ b/groovy/preInit/RegisterMetaItems.groovy @@ -100,7 +100,9 @@ eventManager.listen { customMetaItems.addItem(201, "vti_rich_pig_iron"); customMetaItems.addItem(202, "vt_slag"); - customMetaItems.addItem(210, "bound_leather") + customMetaItems.addItem(203, "white_matte") + + customMetaItems.addItem(210, "bound_leather") customMetaItems.addItem(212, "drone.lv").setMaxStackSize(1).addComponents(ElectricStats.createRechargeableBattery(10000, GTValues.LV)).setModelAmount(8).setCreativeTabs(GregTechAPI.TAB_GREGTECH_TOOLS); customMetaItems.addItem(213, "glass_fibers") @@ -290,6 +292,10 @@ eventManager.listen { customMetaItems.addItem(6206, "sponge.platinum") customMetaItems.addItem(6207, "sponge.cadmium") customMetaItems.addItem(6208, "sponge.indium") + customMetaItems.addItem(6209, "sponge.osmium") + customMetaItems.addItem(6210, "sponge.ruthenium") + customMetaItems.addItem(6211, "sponge.rhodium") + customMetaItems.addItem(6212, "sponge.iridium") // Anode slimes 6300-6400 customMetaItems.addItem(6300, "anode_slime.gold") diff --git a/resources/gregtech/models/item/metaitems/sponge.iridium.json b/resources/gregtech/models/item/metaitems/sponge.iridium.json new file mode 100644 index 000000000..d6516cb15 --- /dev/null +++ b/resources/gregtech/models/item/metaitems/sponge.iridium.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "gregtech:items/metaitems/sponge.iridium" + } +} diff --git a/resources/gregtech/models/item/metaitems/sponge.osmium.json b/resources/gregtech/models/item/metaitems/sponge.osmium.json new file mode 100644 index 000000000..7ec13f4dd --- /dev/null +++ b/resources/gregtech/models/item/metaitems/sponge.osmium.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "gregtech:items/metaitems/sponge.osmium" + } +} \ No newline at end of file diff --git a/resources/gregtech/models/item/metaitems/sponge.rhodium.json b/resources/gregtech/models/item/metaitems/sponge.rhodium.json new file mode 100644 index 000000000..befd77364 --- /dev/null +++ b/resources/gregtech/models/item/metaitems/sponge.rhodium.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "gregtech:items/metaitems/sponge.rhodium" + } +} diff --git a/resources/gregtech/models/item/metaitems/sponge.ruthenium.json b/resources/gregtech/models/item/metaitems/sponge.ruthenium.json new file mode 100644 index 000000000..f158de697 --- /dev/null +++ b/resources/gregtech/models/item/metaitems/sponge.ruthenium.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "gregtech:items/metaitems/sponge.ruthenium" + } +} diff --git a/resources/gregtech/models/item/metaitems/white_matte.json b/resources/gregtech/models/item/metaitems/white_matte.json new file mode 100644 index 000000000..39ca31cd9 --- /dev/null +++ b/resources/gregtech/models/item/metaitems/white_matte.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/metaitems/white_matte" + } + } \ No newline at end of file diff --git a/resources/gregtech/textures/items/metaitems/sponge.iridium.png b/resources/gregtech/textures/items/metaitems/sponge.iridium.png new file mode 100644 index 000000000..095ededa2 Binary files /dev/null and b/resources/gregtech/textures/items/metaitems/sponge.iridium.png differ diff --git a/resources/gregtech/textures/items/metaitems/sponge.osmium.png b/resources/gregtech/textures/items/metaitems/sponge.osmium.png new file mode 100644 index 000000000..f9224b945 Binary files /dev/null and b/resources/gregtech/textures/items/metaitems/sponge.osmium.png differ diff --git a/resources/gregtech/textures/items/metaitems/sponge.rhodium.png b/resources/gregtech/textures/items/metaitems/sponge.rhodium.png new file mode 100644 index 000000000..87018bbce Binary files /dev/null and b/resources/gregtech/textures/items/metaitems/sponge.rhodium.png differ diff --git a/resources/gregtech/textures/items/metaitems/sponge.ruthenium.png b/resources/gregtech/textures/items/metaitems/sponge.ruthenium.png new file mode 100644 index 000000000..2ddbb7065 Binary files /dev/null and b/resources/gregtech/textures/items/metaitems/sponge.ruthenium.png differ diff --git a/resources/gregtech/textures/items/metaitems/white_matte.png b/resources/gregtech/textures/items/metaitems/white_matte.png new file mode 100644 index 000000000..dd679d707 Binary files /dev/null and b/resources/gregtech/textures/items/metaitems/white_matte.png differ diff --git a/resources/langfiles/lang/en_us.lang b/resources/langfiles/lang/en_us.lang index 580ac2c34..789bea0c5 100644 --- a/resources/langfiles/lang/en_us.lang +++ b/resources/langfiles/lang/en_us.lang @@ -2106,6 +2106,66 @@ susy.material.two_six_xylenol=2,6-Xylenol susy.material.two_four_five_xylenol_mixture=2,4/5-Xylenol Mixture susy.material.cresol_novolacs_oligomer=Cresol Novolacs Oligomer susy.material.epoxy_cresol_novolacs=Epoxy Cresol Novolacs (ECN) + +# Platinum Group Metals Chain +susy.material.copper_rich_pgm_solids=Copper-Rich PGM Solids +susy.material.pgm_concentrate=PGM Concentrate +susy.material.copper_selenide_precipitate=Copper Selenide Precipitate +susy.material.selenium_free_calcine=Selenium-Free Calcine +susy.material.nickel_cobalt_sulfate=Nickel-Cobalt Sulfate +susy.material.green_matte=Green Matte +susy.material.white_matte=White Matte +susy.material.selenium_dioxide=Selenium Dioxide +susy.material.ammonium_hexachlororhodate=Ammonium Hexachlororhodate(IV) +susy.material.ammonium_hexachloroiridate=Ammonium Hexachloroiridate(IV) +susy.material.acidic_nickel_copper_sulfate_solution=Acidic Nickel-Copper Sulfate Solution +susy.material.oxidized_pgm_leach=Oxidized PGM Leach +susy.material.impure_nickel_sulfate=Impure Nickel Sulfate +susy.material.pgm_copper_leach_slurry=PGM Copper Leach Slurry +susy.material.pgm_free_copper_leach=PGM-Free Copper Leach +susy.material.sulfidic_copper_leach=Sulfidic Copper Leach +susy.material.selenium_free_copper_leach=Selenium-Free Copper Leach +susy.material.nickel_cobalt_sulfate_solution=Nickel-Cobalt Sulfate Solution +susy.material.iron_sulfate_mother_liquor=Iron Sulfate Mother Liquor +susy.material.cobalt_extract=Cobalt Extract +susy.material.crude_trimethylpentylphosphinic_acid=Crude Trimethylpenthylphosphinic Acid +susy.material.alkaline_trimethylpentylphosphinic_acid=Alkaline Trimethylpenthylphosphinic Acid +susy.material.acidified_trimethylpentylphosphinic_acid=Acidified Trimethylpenthylphosphinic Acid +susy.material.dehydrated_trimethylpentylphosphinic_acid=Dehydrated Trimethylpenthylphosphinic Acid +susy.material.os_ru_free_pgm_solution=Osmium-Ruthenium-Free PGM Solution +susy.material.silver_free_pgm_solution=Silver-Free PGM Solution +susy.material.gold_free_pgm_solution=Gold-Free PGM Solution +susy.material.gold_extract=Gold Extract +susy.material.scrubbed_gold_extract=Scrubbed Gold Extract +susy.material.platinum_free_pgm_solution=Platinum-Free PGM Solution +susy.material.chlorate_treated_pgm_solution=Chlorate-Treated PGM Solution +susy.material.chlorinated_pgm_concentrate=Chlorinated PGM Concentrate +susy.material.palladium_extract=Palladium Extract +susy.material.diisobutylene_mixture=Diisobutylene Mixture +susy.material.rh_ir_solution=Rhodium-Iridium Solution +susy.material.chlorinated_rh_ir_solution=Chlorinated Rhodium-Iridium Solution +susy.material.rh_ir_extraction_mixture=Rhodium-Iridium Extraction Mixture +susy.material.organic_iridium_solution=Organic Iridium Solution +susy.material.os_ru_tetroxide_mixture=Osmium-Ruthenium Tetroxide Mixture +susy.material.os_ru_solution=Osmium-Ruthenium Solution +susy.material.reduced_gold_free_pgm_solution=Reduced Gold-Free PGM Solution +susy.material.hexachloroiridic_acid_solution=Hexachloroiridic(IV) Acid Solution +susy.material.hexachlororhodic_acid_solution=Hexachlororhodic(III) Acid Solution +susy.material.hexachlororuthenic_acid_solution=Hydrogen Hexachlororuthenate(IV) Solution +susy.material.ammonium_hexachlororuthenate_solution=Ammonium Hexachlororuthenate(IV) Solution +susy.material.tetraamminepalladium_dichloride=Tetraamminepalladium Dichloride +susy.material.potassium_persulfate_solution=Potassium Persulfate Solution +susy.material.potassium_osmate_solution=Potassium Osmate Solution +susy.material.diisobutylene=Diisobutylene +susy.material.sodium_hypophosphite_solution=Sodium Hypophosphite Solution +susy.material.trimethylpentylphosphinic_acid=Trimethylpentylphosphinic Acid +susy.material.one_hexanethiol=1-Hexanethiol +susy.material.one_bromohexane=1-Bromohexane +susy.material.di_n_hexyl_sulfide=Di-n-hexyl Sulfide +susy.material.triisobutylene=Triisobutylene +susy.material.cobalt_extraction_mixture=Cobalt Extraction Mixture + +# Biofuel Chain susy.material.ltft_catalyst_solution=Low Temperature Fischer Tropsch Catalyst Solution susy.material.ltft_catalyst=Low Temperature Fischer Tropsch Catalyst susy.material.htft_catalyst=High Temperature Fischer Tropsch Catalyst @@ -2514,6 +2574,11 @@ metaitem.sponge.hafnium.name=Hafnium Sponge metaitem.sponge.hafnium.crude.name=Crude Hafnium Sponge metaitem.sponge.cadmium.name=Cadmium Sponge metaitem.sponge.indium.name=Indium Sponge +metaitem.sponge.osmium.name=Osmium Sponge +metaitem.sponge.ruthenium.name=Ruthenium Sponge +metaitem.sponge.iridium.name=Iridium Sponge +metaitem.sponge.rhodium.name=Rhodium Sponge + metaitem.drone.lv.name=Basic Drone