diff --git a/config/betterquesting/DefaultQuests.json b/config/betterquesting/DefaultQuests.json index ba1452671..612805c2b 100644 --- a/config/betterquesting/DefaultQuests.json +++ b/config/betterquesting/DefaultQuests.json @@ -13366,7 +13366,7 @@ "properties:10": { "betterquesting:10": { "autoclaim:1": 0, - "desc:8": "§6Aluminum Hydroxide §r§rcan be reduced to Alumina in an Electric Blast Furnace. Later on, Alumina can be reduced directly to Aluminium for a small price of 960 EU/t.", + "desc:8": "§6Aluminum Hydroxide §r§rcan be reduced to Alumina in an Electric Blast Furnace.", "globalshare:1": 0, "icon:10": { "Count:3": 1, diff --git a/groovy/globals/CarbonGlobals.groovy b/groovy/globals/CarbonGlobals.groovy new file mode 100644 index 000000000..d5afdcd44 --- /dev/null +++ b/groovy/globals/CarbonGlobals.groovy @@ -0,0 +1,110 @@ +import groovy.transform.TupleConstructor + +class CarbonGlobals { + + public static void main (String[] args) {} + + // Anthracite coal value, so most recipes would require + // equal amount of carbon/coke/anthracite and 2x coal + static final int UNIVERSAL_COAL_EQUIVALENT = 90 + + trait Combustible { + int duration + } + + trait HighPurityCombustible extends Combustible {} + + trait Pyrolyzable { + String pyrolysis_product + } + + // Get number of items which would contatin %required% amount of + // material if single item has %provider% amount + // E.g. for 90 carbon this would yield 1 for dustCarbon or + // dustAnthracite and 2 for dustCharcoal or gemLigniteCoke + static int num_item_by_provider(int required, int provider) { + int result = required.intdiv(provider) + if (required % provider > 0) { + result += 1 + } + return result + } + + @TupleConstructor + public static class CarbonSource { + String name + int carbon + String byproduct + + public int num_items_by_carbon(int required_carbon) { + return num_item_by_provider(required_carbon, this.carbon) + } + + // Return the number of CarbonSource items with summary carbon content + // equal to carbon content of %required_carbon_items% anthracite items + public int equivalent(int required_carbon_items) { + return num_item_by_provider(required_carbon_items * UNIVERSAL_COAL_EQUIVALENT, this.carbon) + } + } + + public static sources = [ + new CarbonSource('dustCarbon', 100, 'dustTinyAsh').withTraits(HighPurityCombustible).tap { + duration = 1 + }, + new CarbonSource('gemCoke', 100, 'dustTinyAsh').withTraits(Combustible, Pyrolyzable).tap { + duration = 2 + pyrolysis_product = 'dustCarbon' + }, + new CarbonSource('dustCoke', 100, 'dustTinyAsh').withTraits(HighPurityCombustible, Pyrolyzable).tap { + duration = 2 + pyrolysis_product = 'dustCarbon' + }, + new CarbonSource('gemAnthracite', 90, 'dustTinyAsh').withTraits(Combustible, Pyrolyzable).tap { + duration = 2 + pyrolysis_product = 'gemCoke' + }, + new CarbonSource('dustAnthracite', 90, 'dustTinyAsh').withTraits(Combustible, Pyrolyzable).tap { + duration = 2 + pyrolysis_product = 'dustCoke' + }, + new CarbonSource('gemLigniteCoke', 75, 'dustTinyAsh').withTraits(Combustible, Pyrolyzable).tap { + duration = 3 + pyrolysis_product = 'dustCarbon' + }, + new CarbonSource('dustLigniteCoke', 75, 'dustTinyAsh').withTraits(Combustible, Pyrolyzable).tap { + duration = 3 + pyrolysis_product = 'dustCarbon' + }, + new CarbonSource('gemCoal', 75, 'dustTinyDarkAsh').withTraits(Combustible, Pyrolyzable).tap { + duration = 4 + pyrolysis_product = 'gemCoke' + }, + new CarbonSource('dustCoal', 75, 'dustTinyDarkAsh').withTraits(Combustible, Pyrolyzable).tap { + duration = 4 + pyrolysis_product = 'dustCoke' + }, + new CarbonSource('gemCharcoal', 60, 'dustTinyDarkAsh').withTraits(Combustible, Pyrolyzable).tap { + duration = 4 + pyrolysis_product = 'gemCoke' + }, + new CarbonSource('dustCharcoal', 60, 'dustTinyDarkAsh').withTraits(Combustible, Pyrolyzable).tap { + duration = 4 + pyrolysis_product = 'dustCoke' + }, + new CarbonSource('gemLignite', 25, 'dustTinyAsh').withTraits(Pyrolyzable).tap { + pyrolysis_product = 'gemLigniteCoke' + }, + new CarbonSource('dustLignite', 25, 'dustTinyAsh').withTraits(Pyrolyzable).tap { + pyrolysis_product = 'dustLigniteCoke' + } + ] + + static Map sourcesMap = sources.collectEntries{[it.name, it]} + public static def byName(String name) {sourcesMap[name] } + public static List byNames(List names) { sourcesMap.subMap(names)*.value } + + public static List combustibles() { sources.grep(Combustible) } + public static List highPurityCombustibles() { sources.grep(HighPurityCombustible) } + public static List dusts() { sources.grep { it.name.startsWith('dust') } } + +} \ No newline at end of file diff --git a/groovy/globals/Globals.groovy b/groovy/globals/Globals.groovy index d242db780..ca37544dc 100644 --- a/groovy/globals/Globals.groovy +++ b/groovy/globals/Globals.groovy @@ -32,36 +32,6 @@ class Globals { "biomesoplenty" ] - public static class Combustible { - String name - String byproduct - int amount_required - int duration - Combustible(name, amount_required, duration, byproduct) { - this.name = name - this.amount_required = amount_required - this.duration = duration - this.byproduct = byproduct - } - } - - public static combustibles = [ - new Combustible('gemCoke', 1, 3, 'dustTinyAsh'), - new Combustible('dustCoke', 1, 3, 'dustTinyAsh'), - new Combustible('gemAnthracite', 1, 2, 'dustTinyAsh'), - new Combustible('dustAnthracite', 1, 2, 'dustTinyAsh'), - new Combustible('gemCoal', 2, 4, 'dustTinyDarkAsh'), - new Combustible('dustCoal', 2, 4, 'dustTinyDarkAsh'), - new Combustible('gemCharcoal', 2, 4, 'dustTinyDarkAsh'), - new Combustible('dustCharcoal', 2, 4, 'dustTinyDarkAsh'), - new Combustible('dustCarbon', 1, 1, 'dustTinyAsh') - ] - - public static highPurityCombustibles = [ - new Combustible('dustCoke', 1, 2, 'dustTinyAsh'), - new Combustible('dustCarbon', 1, 1, 'dustTinyAsh') - ] - public static class InertGas { String name int amount_required diff --git a/groovy/material/OreMaterials.groovy b/groovy/material/OreMaterials.groovy index 05c54e3fd..df0d8c136 100644 --- a/groovy/material/OreMaterials.groovy +++ b/groovy/material/OreMaterials.groovy @@ -273,7 +273,7 @@ public class OreMaterials{ .build(); Lignite = new Material.Builder(7033, SuSyUtility.susyId('lignite')) - .gem(1, 1200).ore(2, 1) + .gem(1, 600).ore(2, 1) .color(0x644646).iconSet(LIGNITE) .components(Carbon, 1) .flags(FLAMMABLE, NO_SMELTING, NO_SMASHING, MORTAR_GRINDABLE) @@ -563,5 +563,13 @@ public class OreMaterials{ .components(Platinum, 1) .colorAverage() .build(); + + LigniteCoke = new Material.Builder(7075, SuSyUtility.susyId('lignite_coke')) + .gem(1, 1200) + .color(0x8f7070).iconSet(LIGNITE) + .components(Carbon, 1) + .flags(FLAMMABLE, NO_SMELTING, NO_SMASHING, MORTAR_GRINDABLE) + .build(); + } } \ No newline at end of file diff --git a/groovy/material/SuSyMaterials.groovy b/groovy/material/SuSyMaterials.groovy index 27ac7fcf6..1eeece118 100644 --- a/groovy/material/SuSyMaterials.groovy +++ b/groovy/material/SuSyMaterials.groovy @@ -65,6 +65,7 @@ class SuSyMaterials { public static Material Crookesite; public static Material Dilithium; public static Material Lignite; + public static Material LigniteCoke; public static Material Anthracite; public static Material Acanthite; public static Material Phosphorite; diff --git a/groovy/postInit/chemistry/ChemistryOverhaul.groovy b/groovy/postInit/chemistry/ChemistryOverhaul.groovy index 821be2f46..fa767ddbd 100755 --- a/groovy/postInit/chemistry/ChemistryOverhaul.groovy +++ b/groovy/postInit/chemistry/ChemistryOverhaul.groovy @@ -1,4 +1,5 @@ import static globals.Globals.* +import static globals.CarbonGlobals.* import static gregtech.api.unification.material.Materials.*; import gregtech.api.unification.material.MarkerMaterials; @@ -42,26 +43,6 @@ VACUUM_DT = recipemap('vacuum_distillation') CRACKER = recipemap('cracker') FLUID_HEATER = recipemap('fluid_heater') -def COAL_SOURCES = [ - "dustCarbon", - "gemCoal", - "dustCoal", - "gemCharcoal", - "dustCoke", - "gemCoke", - "dustCharcoal", - "gemAnthracite", - "dustAnthracite" -] - -def CARBON_DUSTS = [ - "dustCarbon", - "dustCoal", - "dustCoke", - "dustCharcoal", - "dustAnthracite" -] - ASSEMBLER.recipeBuilder() .inputs(ore('stickIron') * 4) .inputs(ore('pipeTinyFluidSteel') * 4) @@ -172,40 +153,41 @@ DISTILLERY.recipeBuilder() .buildAndRegister() // Carbon Monoxide roaster - -for (coal_source in COAL_SOURCES) { +// TODO: set output according to carbon amount? +for (carbon in CarbonGlobals.sources) { ROASTER.recipeBuilder() - .fluidInputs(fluid('oxygen') * 1000) - .inputs(ore(coal_source)) - .circuitMeta(1) - .fluidOutputs(fluid('carbon_monoxide') * 1000) - .duration(80) - .EUt(7) - .buildAndRegister() + .fluidInputs(fluid('oxygen') * 1000) + .inputs(ore(carbon.name) * carbon.equivalent(1)) + .circuitMeta(1) + .fluidOutputs(fluid('carbon_monoxide') * 1000) + .duration(80) + .EUt(7) + .buildAndRegister() } // Carbon Dioxide roaster -for (coal_source in COAL_SOURCES) { +// TODO: set output according to carbon amount? +for (carbon in CarbonGlobals.sources) { ROASTER.recipeBuilder() - .fluidInputs(fluid('oxygen') * 2000) - .inputs(ore(coal_source)) - .circuitMeta(2) - .fluidOutputs(fluid('carbon_dioxide') * 1000) - .duration(40) - .EUt(7) - .buildAndRegister() + .fluidInputs(fluid('oxygen') * 2000) + .inputs(ore(carbon.name) * carbon.equivalent(1)) + .circuitMeta(2) + .fluidOutputs(fluid('carbon_dioxide') * 1000) + .duration(40) + .EUt(7) + .buildAndRegister() } //CARBON DISULFIDE -for (coal_source in COAL_SOURCES) { +for (carbon in CarbonGlobals.sources) { ROASTER.recipeBuilder() - .inputs(ore(coal_source)) - .inputs(ore('dustSulfur') * 2) - .fluidOutputs(fluid('carbon_disulfide') * 1000) - .duration(100) - .EUt(60) - .buildAndRegister() + .inputs(ore(carbon.name) * carbon.equivalent(1)) + .inputs(ore('dustSulfur') * 2) + .fluidOutputs(fluid('carbon_disulfide') * 1000) + .duration(100) + .EUt(60) + .buildAndRegister() } @@ -2051,10 +2033,10 @@ DRYER.recipeBuilder() //acetylene -for (carbon in COAL_SOURCES) { +for (carbon in CarbonGlobals.sources) { EBF.recipeBuilder() .inputs(ore('dustQuicklime') * 2) - .inputs(ore(carbon) * 3) + .inputs(ore(carbon.name) * carbon.equivalent(3)) .outputs(metaitem('dustCalciumCarbide') * 3) .fluidOutputs(fluid('carbon_monoxide') * 1000) .blastFurnaceTemp(2473) @@ -2385,10 +2367,10 @@ ROASTER.recipeBuilder() //Silicon & Graphite -for (carbon in CARBON_DUSTS) { +for (carbon in CarbonGlobals.dusts()) { ARC_FURNACE.recipeBuilder() .inputs(ore('dustSiliconDioxide') * 3) - .inputs(ore(carbon) * 1) + .inputs(ore(carbon.name) * carbon.equivalent(2)) .outputs(metaitem('dustSilicon')) .circuitMeta(1) .fluidOutputs(fluid('carbon_monoxide') * 2000) @@ -2398,7 +2380,7 @@ for (carbon in CARBON_DUSTS) { ARC_FURNACE.recipeBuilder() .inputs(ore('dustQuartzite') * 3) - .inputs(ore(carbon) * 1) + .inputs(ore(carbon.name) * carbon.equivalent(2)) .outputs(metaitem('dustSilicon')) .fluidOutputs(fluid('carbon_monoxide') * 2000) .EUt(30) @@ -2407,7 +2389,7 @@ for (carbon in CARBON_DUSTS) { ARC_FURNACE.recipeBuilder() .inputs(ore('dustCertusQuartz') * 3) - .inputs(ore(carbon) * 2) + .inputs(ore(carbon.name) * carbon.equivalent(2)) .outputs(metaitem('dustSilicon')) .fluidOutputs(fluid('carbon_monoxide') * 2000) .EUt(30) @@ -2416,7 +2398,7 @@ for (carbon in CARBON_DUSTS) { ARC_FURNACE.recipeBuilder() .inputs(ore('dustNetherQuartz') * 3) - .inputs(ore(carbon) * 2) + .inputs(ore(carbon.name) * carbon.equivalent(2)) .outputs(metaitem('dustSilicon')) .fluidOutputs(fluid('carbon_monoxide') * 2000) .EUt(30) @@ -2425,7 +2407,7 @@ for (carbon in CARBON_DUSTS) { ARC_FURNACE.recipeBuilder() .inputs(ore('dustSiliconDioxide') * 3) - .inputs(ore(carbon) * 3) + .inputs(ore(carbon.name) * carbon.equivalent(3)) .circuitMeta(2) .outputs(metaitem('dustSiliconCarbide') * 2) .fluidOutputs(fluid('carbon_monoxide') * 2000) diff --git a/groovy/postInit/chemistry/StainlessSteelChain.groovy b/groovy/postInit/chemistry/StainlessSteelChain.groovy index bfea6f357..8cde89a67 100644 --- a/groovy/postInit/chemistry/StainlessSteelChain.groovy +++ b/groovy/postInit/chemistry/StainlessSteelChain.groovy @@ -1,4 +1,5 @@ import static globals.Globals.* +import static globals.CarbonGlobals.* import static gregtech.api.unification.material.Materials.*; import gregtech.api.unification.material.MarkerMaterials; @@ -81,11 +82,11 @@ EBF.recipeBuilder() // .EUt(Globals.voltAmps[3]) // .buildAndRegister() -for (highPurityCombustible in Globals.highPurityCombustibles) { +for (highPurityCombustible in CarbonGlobals.highPurityCombustibles()) { EBF.recipeBuilder() .inputs(ore('dustSiliconDioxide') * 3) .inputs(ore('dustIron') * 3) - .inputs(ore(highPurityCombustible.name) * 2) + .inputs(ore(highPurityCombustible.name) * highPurityCombustible.equivalent(2)) .outputs(metaitem('dustFerrosilicon') * 4) .fluidOutputs(fluid('carbon_monoxide') * 2000) .blastFurnaceTemp(1400) diff --git a/groovy/postInit/chemistry/elements/AluminiumChain.groovy b/groovy/postInit/chemistry/elements/AluminiumChain.groovy index cb71e1165..2b33461ad 100644 --- a/groovy/postInit/chemistry/elements/AluminiumChain.groovy +++ b/groovy/postInit/chemistry/elements/AluminiumChain.groovy @@ -1,4 +1,5 @@ import static globals.Globals.* +import static globals.CarbonGlobals.* ROASTER = recipemap('roaster') CENTRIFUGE = recipemap('centrifuge') @@ -112,21 +113,6 @@ ELECTROLYTIC_CELL.recipeBuilder() .EUt(40) .buildAndRegister() -// EBF -def combustibles = Globals.combustibles - -for (combustible in combustibles) { - EBF.recipeBuilder() - .inputs(ore('dustAlumina') * 10) - .inputs(ore(combustible.name) * combustible.amount_required * 3) - .fluidOutputs(fluid('carbon_dioxide') * 3000) - .outputs(metaitem('ingotAluminium') * 4) - .blastFurnaceTemp(1200) - .duration(60) - .EUt(Globals.voltAmps[3] * 2) - .buildAndRegister() -} - // Production of cryolite ROASTER.recipeBuilder() diff --git a/groovy/postInit/chemistry/elements/BismuthChain.groovy b/groovy/postInit/chemistry/elements/BismuthChain.groovy index 9c5e35dac..3ede10f36 100644 --- a/groovy/postInit/chemistry/elements/BismuthChain.groovy +++ b/groovy/postInit/chemistry/elements/BismuthChain.groovy @@ -1,4 +1,5 @@ import static globals.Globals.* +import static globals.CarbonGlobals.* ROASTER = recipemap('roaster') BR = recipemap('batch_reactor') @@ -16,10 +17,10 @@ ROASTER.recipeBuilder() .duration(120) .buildAndRegister() -for (highPurityCombustible in Globals.highPurityCombustibles) { +for (highPurityCombustible in CarbonGlobals.highPurityCombustibles()) { ROASTER.recipeBuilder() .inputs(ore('dustBismuthIiiOxide') * 5) - .inputs(ore(highPurityCombustible.name) * 3) + .inputs(ore(highPurityCombustible.name) * highPurityCombustible.equivalent(3)) .outputs(metaitem('dustBismuth') * 2) .fluidOutputs(fluid('carbon_monoxide') * 3000) .EUt(120) diff --git a/groovy/postInit/chemistry/elements/CobaltChain.groovy b/groovy/postInit/chemistry/elements/CobaltChain.groovy index a74344428..451105aa8 100644 --- a/groovy/postInit/chemistry/elements/CobaltChain.groovy +++ b/groovy/postInit/chemistry/elements/CobaltChain.groovy @@ -1,13 +1,12 @@ import static globals.Globals.* +import static globals.CarbonGlobals.* ROASTER = recipemap('roaster') -def combustibles = Globals.combustibles - -for (combustible in combustibles) { +for (combustible in CarbonGlobals.combustibles()) { ROASTER.recipeBuilder() .inputs(ore('dustCobaltOxide') * 2) - .inputs(ore(combustible.name) * (combustible.amount_required)) + .inputs(ore(combustible.name) * combustible.equivalent(1)) .outputs(metaitem('dustCobalt')) .fluidOutputs(fluid('carbon_monoxide') * 1000) .duration(120) diff --git a/groovy/postInit/chemistry/elements/HafniumChain.groovy b/groovy/postInit/chemistry/elements/HafniumChain.groovy index f7998900b..ee681b68f 100644 --- a/groovy/postInit/chemistry/elements/HafniumChain.groovy +++ b/groovy/postInit/chemistry/elements/HafniumChain.groovy @@ -1,4 +1,5 @@ import static globals.Globals.* +import static globals.CarbonGlobals.* MIXER = recipemap('mixer') FF = recipemap('froth_flotation') @@ -38,10 +39,10 @@ ROASTER.recipeBuilder() .duration(20) .buildAndRegister() -for (highPurityCombustible in Globals.highPurityCombustibles) { +for (highPurityCombustible in CarbonGlobals.highPurityCombustibles()) { FLUIDIZED_BED_REACTOR.recipeBuilder() .inputs(ore('dustHafniumDioxide')) - .inputs(ore(highPurityCombustible.name) * 2) + .inputs(ore(highPurityCombustible.name) * highPurityCombustible.equivalent(2)) .fluidInputs(fluid('chlorine') * 4000) .outputs(metaitem('dustImpureHafniumTetrachloride') * 5) .fluidOutputs(fluid('carbon_monoxide') * 2000) diff --git a/groovy/postInit/chemistry/elements/IronChain.groovy b/groovy/postInit/chemistry/elements/IronChain.groovy index 52bd0ab15..49110e2ec 100755 --- a/groovy/postInit/chemistry/elements/IronChain.groovy +++ b/groovy/postInit/chemistry/elements/IronChain.groovy @@ -1,4 +1,5 @@ import static globals.Globals.* +import static globals.CarbonGlobals.* class Blastable { String name @@ -54,25 +55,25 @@ def reductants = [ new Reductant('hydrogen', 'steam', 2, 1) ] -def combustibles = Globals.combustibles +def combustibles = CarbonGlobals.combustibles() for (blastable in blastables) { for (combustible in combustibles) { //BESSEMER PROCESS PBF_RECIPES.recipeBuilder() .inputs(ore(blastable.name) * blastable.amount_required) - .inputs(ore(combustible.name) * (combustible.amount_required * blastable.reductant_required)) + .inputs(ore(combustible.name) * (combustible.equivalent(1) * blastable.reductant_required)) .outputs(metaitem('ingotPigIron') * blastable.amount_produced) - .outputs(metaitem(combustible.byproduct) * (combustible.amount_required * blastable.reductant_required)) + .outputs(metaitem(combustible.byproduct) * (combustible.equivalent(1) * blastable.reductant_required)) .duration((int) (combustible.duration * blastable.amount_produced * blastable.duration)) .buildAndRegister() //MODERN BLAST FURNACE EBF_RECIPES.recipeBuilder() .inputs(ore(blastable.name) * blastable.amount_required) - .inputs(ore(combustible.name) * (combustible.amount_required * blastable.reductant_required)) + .inputs(ore(combustible.name) * (combustible.equivalent(1) * blastable.reductant_required)) .outputs(metaitem('ingotPigIron') * blastable.amount_produced) - .outputs(metaitem(combustible.byproduct) * (combustible.amount_required * blastable.reductant_required)) + .outputs(metaitem(combustible.byproduct) * (combustible.equivalent(1) * blastable.reductant_required)) .duration((int) (combustible.duration * blastable.amount_produced * blastable.duration / 2)) .blastFurnaceTemp(1750) .EUt(Globals.voltAmps[1]) @@ -172,17 +173,17 @@ EBF_RECIPES.recipeBuilder() for (combustible in combustibles) { PBF_RECIPES.recipeBuilder() .inputs(item('minecraft:iron_ingot')) - .inputs(ore(combustible.name) * combustible.amount_required) + .inputs(ore(combustible.name) * combustible.equivalent(1)) .outputs(metaitem('ingotSteel')) - .outputs(metaitem(combustible.byproduct) * combustible.amount_required) + .outputs(metaitem(combustible.byproduct) * combustible.equivalent(1)) .duration(combustible.duration * 120) .buildAndRegister() PBF_RECIPES.recipeBuilder() .inputs(ore('ingotWroughtIron')) - .inputs(ore(combustible.name) * combustible.amount_required) + .inputs(ore(combustible.name) * combustible.equivalent(1)) .outputs(metaitem('ingotSteel')) - .outputs(metaitem(combustible.byproduct) * combustible.amount_required) + .outputs(metaitem(combustible.byproduct) * combustible.equivalent(1)) .duration(combustible.duration * 60) .buildAndRegister() } diff --git a/groovy/postInit/chemistry/elements/LeadChain.groovy b/groovy/postInit/chemistry/elements/LeadChain.groovy index 4f300bf3d..0aba57d7d 100644 --- a/groovy/postInit/chemistry/elements/LeadChain.groovy +++ b/groovy/postInit/chemistry/elements/LeadChain.groovy @@ -1,4 +1,5 @@ import static globals.Globals.* +import static globals.CarbonGlobals.* import static globals.SinteringGlobals.* FLUID_SOLIDIFIER = recipemap('fluid_solidifier') @@ -17,16 +18,6 @@ SIFTER = recipemap('sifter') ROTARY_KILN = recipemap('rotary_kiln') CLARIFIER = recipemap('clarifier') -def COAL_SOURCES = [ - "dustCarbon", - "gemCoal", - "dustCoal", - "gemCharcoal", - "dustCoke", - "gemCoke", - "dustCharcoal" -] - //REMOVAL mods.gregtech.electric_blast_furnace.removeByInput(120, [metaitem('dustGalena')], [fluid('oxygen') * 3000]) // Bismuth Dust * 3 @@ -173,12 +164,12 @@ for (fuel in rotary_kiln_fuels) { } //SINTER-ROAST PROCESS (UNIVERSAL, 200%) -def combustibles = Globals.combustibles +def combustibles = CarbonGlobals.combustibles() for (combustible in combustibles) { EBF.recipeBuilder() .inputs(ore('dustSinteredLeadConcentrate') * 2) - .inputs(ore(combustible.name) * (combustible.amount_required)) + .inputs(ore(combustible.name) * combustible.equivalent(1)) .inputs(ore('dustTinyCalcite')) .outputs(metaitem('ingotCrudeLead') * 2) .outputs(metaitem(combustible.byproduct)) @@ -308,10 +299,10 @@ BR.recipeBuilder() .duration(200) .buildAndRegister() -for (coal_source in COAL_SOURCES) { +for (carbon in CarbonGlobals.sources) { ROASTER.recipeBuilder() .inputs(ore('dustAntimonyVOxide') * 7) - .inputs(ore(coal_source) * 5) + .inputs(ore(carbon.name) * carbon.equivalent(5)) .outputs(metaitem('dustAntimony') * 2) .fluidOutputs(fluid('carbon_monoxide') * 5000) .EUt(120) @@ -320,20 +311,22 @@ for (coal_source in COAL_SOURCES) { ROASTER.recipeBuilder() .inputs(ore('dustTinIvOxide') * 3) - .inputs(ore(coal_source) * 2) + .inputs(ore(carbon.name) * carbon.equivalent(2)) .outputs(metaitem('dustTin')) .fluidOutputs(fluid('carbon_monoxide') * 2000) .EUt(120) .duration(200) .buildAndRegister() - ROASTER.recipeBuilder() - .inputs(ore('dustLithargeSlag') * 10) - .inputs(ore(coal_source) * 23) - .outputs(metaitem('ingotBettsCrudeLead') * 10) - .EUt(Globals.voltAmps[3]) - .duration(400) - .buildAndRegister() + if (carbon.equivalent(23) <= 64) { + ROASTER.recipeBuilder() + .inputs(ore('dustLithargeSlag') * 10) + .inputs(ore(carbon.name) * carbon.equivalent(23)) + .outputs(metaitem('ingotBettsCrudeLead') * 10) + .EUt(Globals.voltAmps[3]) + .duration(400) + .buildAndRegister() + } } // Lead Dust * 1 diff --git a/groovy/postInit/chemistry/elements/MagnesiumChain.groovy b/groovy/postInit/chemistry/elements/MagnesiumChain.groovy index edb9efac2..4801b1954 100644 --- a/groovy/postInit/chemistry/elements/MagnesiumChain.groovy +++ b/groovy/postInit/chemistry/elements/MagnesiumChain.groovy @@ -1,4 +1,5 @@ import static globals.Globals.* +import static globals.CarbonGlobals.* ROASTER = recipemap('roaster') EBF = recipemap('electric_blast_furnace') @@ -40,19 +41,17 @@ EBF.recipeBuilder() .blastFurnaceTemp(1370) .buildAndRegister() -for (combustible in Globals.combustibles) { - - EBF.recipeBuilder() - .inputs(ore('dustMagnesia') * 2) - .inputs(ore(combustible.name) * combustible.amount_required) - .outputs(metaitem('dustMagnesium')) - .outputs(metaitem(combustible.byproduct) * combustible.amount_required) - .fluidOutputs(fluid('carbon_monoxide') * 1000) - .EUt(120) - .duration(20 * combustible.duration) - .blastFurnaceTemp(2500) - .buildAndRegister() - +for (combustible in CarbonGlobals.combustibles()) { + EBF.recipeBuilder() + .inputs(ore('dustMagnesia') * 2) + .inputs(ore(combustible.name) * combustible.equivalent(1)) + .outputs(metaitem('dustMagnesium')) + .outputs(metaitem(combustible.byproduct) * combustible.equivalent(1)) + .fluidOutputs(fluid('carbon_monoxide') * 1000) + .EUt(120) + .duration(20 * combustible.duration) + .blastFurnaceTemp(2500) + .buildAndRegister() } ROASTER.recipeBuilder() @@ -64,12 +63,10 @@ ROASTER.recipeBuilder() .buildAndRegister() //IG FARBEN CHLORINATION -def combustibles = Globals.combustibles - -for (combustible in combustibles) { -REACTION_FURNACE.recipeBuilder() +for (combustible in CarbonGlobals.combustibles()) { + REACTION_FURNACE.recipeBuilder() .inputs(ore('dustMagnesia') * 2) - .inputs(ore(combustible.name) * (combustible.amount_required)) + .inputs(ore(combustible.name) * combustible.equivalent(1)) .fluidInputs(fluid('chlorine') * 2000) .outputs(metaitem('dustMagnesiumChloride') * 3) .outputs(metaitem(combustible.byproduct)) diff --git a/groovy/postInit/chemistry/elements/ManganeseChain.groovy b/groovy/postInit/chemistry/elements/ManganeseChain.groovy index f1292ca0e..a26d6448a 100644 --- a/groovy/postInit/chemistry/elements/ManganeseChain.groovy +++ b/groovy/postInit/chemistry/elements/ManganeseChain.groovy @@ -6,6 +6,7 @@ import gregtech.api.unification.ore.OrePrefix; import static gregtech.api.unification.material.Materials.*; import static globals.Globals.* +import static globals.CarbonGlobals.* EBF = recipemap('electric_blast_furnace') ROASTER = recipemap('roaster') @@ -15,10 +16,10 @@ ELECTROLYTIC_CELL = recipemap('electrolytic_cell') //PYROMETALLUGRICAL METHODS (75%) -for (combustible in Globals.combustibles) { +for (combustible in CarbonGlobals.combustibles()) { EBF.recipeBuilder() .inputs(ore('dustPyrolusite')) - .inputs(ore(combustible.name) * combustible.amount_required * 2) + .inputs(ore(combustible.name) * combustible.equivalent(2)) .inputs(ore('dustTinyCalcite')) .chancedOutput(metaitem('dustManganese'), 7500, 0) .fluidOutputs(fluid('carbon_dioxide') * 1000) @@ -36,10 +37,10 @@ ROASTER.recipeBuilder() .EUt(Globals.voltAmps[1]) .buildAndRegister() -for (highPurityCombustible in Globals.highPurityCombustibles) { +for (highPurityCombustible in CarbonGlobals.highPurityCombustibles()) { ROASTER.recipeBuilder() .inputs(ore('dustManganeseIiOxide') * 2) - .inputs(ore(highPurityCombustible.name) * 1) + .inputs(ore(highPurityCombustible.name) * highPurityCombustible.equivalent(1)) .chancedOutput(metaitem('dustManganese'), 8500, 0) .chancedOutput(metaitem(highPurityCombustible.byproduct), 1000, 0) .fluidOutputs(fluid('carbon_monoxide') * 1000) diff --git a/groovy/postInit/chemistry/elements/NickelChain.groovy b/groovy/postInit/chemistry/elements/NickelChain.groovy index a53ecd689..9fef4c3bf 100644 --- a/groovy/postInit/chemistry/elements/NickelChain.groovy +++ b/groovy/postInit/chemistry/elements/NickelChain.groovy @@ -1,4 +1,5 @@ import static globals.Globals.* +import static globals.CarbonGlobals.* PRIMITIVEBLASTFURNACE = recipemap('primitive_blast_furnace') EBF = recipemap('electric_blast_furnace') @@ -19,34 +20,34 @@ EBF.recipeBuilder() .duration(40) .buildAndRegister() -for (combustible in Globals.combustibles) { +for (combustible in CarbonGlobals.combustibles()) { PRIMITIVEBLASTFURNACE.recipeBuilder() .inputs(ore('dustNickel')) - .inputs(ore(combustible.name) * (combustible.amount_required)) + .inputs(ore(combustible.name) * combustible.equivalent(1)) .outputs(metaitem('ingotNickel')) - .outputs(metaitem(combustible.byproduct) * (combustible.amount_required)) + .outputs(metaitem(combustible.byproduct) * combustible.equivalent(1)) .duration(250) .buildAndRegister() PRIMITIVEBLASTFURNACE.recipeBuilder() .inputs(ore('dustGarnierite')) - .inputs(ore(combustible.name) * (combustible.amount_required)) + .inputs(ore(combustible.name) * combustible.equivalent(1)) .outputs(metaitem('ingotNickel')) - .outputs(metaitem(combustible.byproduct) * (combustible.amount_required)) + .outputs(metaitem(combustible.byproduct) * combustible.equivalent(1)) .duration(250) .buildAndRegister() PRIMITIVEBLASTFURNACE.recipeBuilder() .inputs(ore('dustPentlandite')) - .inputs(ore(combustible.name) * (combustible.amount_required) * 4) + .inputs(ore(combustible.name) * combustible.equivalent(4)) .outputs(metaitem('ingotNickel')) - .outputs(metaitem(combustible.byproduct) * (combustible.amount_required) * 4) + .outputs(metaitem(combustible.byproduct) * combustible.equivalent(4)) .duration(250) .buildAndRegister() EBF.recipeBuilder() .inputs(ore('dustGarnierite')) - .inputs(ore(combustible.name) * (combustible.amount_required)) + .inputs(ore(combustible.name) * combustible.equivalent(1)) .outputs(metaitem('ingotNickel')) .fluidOutputs(fluid('carbon_monoxide') * 1000) .EUt(30) diff --git a/groovy/postInit/chemistry/elements/TinChain.groovy b/groovy/postInit/chemistry/elements/TinChain.groovy index bb7cdfd90..076106313 100644 --- a/groovy/postInit/chemistry/elements/TinChain.groovy +++ b/groovy/postInit/chemistry/elements/TinChain.groovy @@ -1,4 +1,5 @@ import static globals.Globals.* +import static globals.CarbonGlobals.* AUTOCLAVE = recipemap('autoclave') ROASTER = recipemap('roaster') @@ -69,12 +70,10 @@ CHEMICAL_BATH.recipeBuilder() .buildAndRegister() //SMELTING -def combustibles = Globals.combustibles - -for (combustible in combustibles) { +for (combustible in CarbonGlobals.combustibles()) { REACTION_FURNACE.recipeBuilder() .inputs(ore('dustCassiteriteConcentrate')) - .inputs(ore(combustible.name) * (combustible.amount_required) * 2) + .inputs(ore(combustible.name) * combustible.equivalent(2)) .outputs(metaitem(combustible.byproduct)) .fluidOutputs(fluid('crude_tin') * 190) .fluidOutputs(fluid('tin_dross') * 25) @@ -85,7 +84,7 @@ for (combustible in combustibles) { REACTION_FURNACE.recipeBuilder() .inputs(ore('dustLeachedCassiteriteConcentrate')) - .inputs(ore(combustible.name) * (combustible.amount_required) * 2) + .inputs(ore(combustible.name) * combustible.equivalent(2)) .outputs(metaitem(combustible.byproduct)) .fluidOutputs(fluid('crude_tin') * 190) .fluidOutputs(fluid('tin_dross') * 25) diff --git a/groovy/postInit/chemistry/elements/TitaniumChain.groovy b/groovy/postInit/chemistry/elements/TitaniumChain.groovy index f8f2e53fc..7e3b90ad6 100644 --- a/groovy/postInit/chemistry/elements/TitaniumChain.groovy +++ b/groovy/postInit/chemistry/elements/TitaniumChain.groovy @@ -1,4 +1,5 @@ import static globals.Globals.* +import static globals.CarbonGlobals.* MIXER = recipemap('mixer') FF = recipemap('froth_flotation') @@ -119,11 +120,11 @@ BR.recipeBuilder() // Chloride Ilmenite Process -for (highPurityCombustible in highPurityCombustibles) { +for (highPurityCombustible in CarbonGlobals.highPurityCombustibles()) { FLUIDIZED_BED_REACTOR.recipeBuilder() .fluidInputs(fluid('chlorine') * 3000) .inputs(ore('dustIlmenite')) - .inputs(ore(highPurityCombustible.name)) + .inputs(ore(highPurityCombustible.name) * highPurityCombustible.equivalent(1)) .chancedOutput(metaitem(highPurityCombustible.byproduct), 1000, 0) .fluidOutputs(fluid('gaseous_iron_iii_chloride') * 120) .fluidOutputs(fluid('carbon_monoxide') * 1000) @@ -135,7 +136,7 @@ for (highPurityCombustible in highPurityCombustibles) { FLUIDIZED_BED_REACTOR.recipeBuilder() .fluidInputs(fluid('chlorine') * 2000) .inputs(ore('dustPerovskite')) - .inputs(ore(highPurityCombustible.name)) + .inputs(ore(highPurityCombustible.name) * highPurityCombustible.equivalent(1)) .chancedOutput(metaitem(highPurityCombustible.byproduct), 1000, 0) .fluidOutputs(fluid('calcium_chloride') * 432) .fluidOutputs(fluid('carbon_monoxide') * 1000) @@ -146,7 +147,7 @@ for (highPurityCombustible in highPurityCombustibles) { FLUIDIZED_BED_REACTOR.recipeBuilder() .inputs(ore('dustRutile') * 3) - .inputs(ore(highPurityCombustible.name) * 2) + .inputs(ore(highPurityCombustible.name) * highPurityCombustible.equivalent(2)) .fluidInputs(fluid('chlorine') * 4000) .chancedOutput(metaitem(highPurityCombustible.byproduct), 1000, 0) .fluidOutputs(fluid('gaseous_titanium_tetrachloride') * 1000) diff --git a/groovy/postInit/chemistry/elements/ZincChain.groovy b/groovy/postInit/chemistry/elements/ZincChain.groovy index 7421ef997..0f151084f 100755 --- a/groovy/postInit/chemistry/elements/ZincChain.groovy +++ b/groovy/postInit/chemistry/elements/ZincChain.groovy @@ -1,4 +1,5 @@ import static globals.Globals.* +import static globals.CarbonGlobals.* FLOTATION = recipemap('froth_flotation') CLARIFIER = recipemap('clarifier') @@ -141,10 +142,10 @@ FLUIDIZEDBR.recipeBuilder() .duration(200) .buildAndRegister() -for (combustible in Globals.combustibles) { +for (combustible in CarbonGlobals.combustibles()) { ROASTER.recipeBuilder() .inputs(ore('dustZincite') * 2) - .inputs(ore(combustible.name) * combustible.amount_required) + .inputs(ore(combustible.name) * combustible.equivalent(1)) .outputs(metaitem(combustible.byproduct)) .fluidOutputs(fluid('crude_zinc') * 216) .fluidOutputs(fluid('carbon_monoxide') * 1000) @@ -153,10 +154,10 @@ for (combustible in Globals.combustibles) { .buildAndRegister() } -for (highPurityCombustible in Globals.highPurityCombustibles) { +for (highPurityCombustible in CarbonGlobals.highPurityCombustibles()) { ROASTER.recipeBuilder() .inputs(ore('dustZincOxide') * 2) - .inputs(ore(highPurityCombustible.name) * highPurityCombustible.amount_required) + .inputs(ore(highPurityCombustible.name) * highPurityCombustible.equivalent(1)) .outputs(metaitem('dustZinc')) .fluidOutputs(fluid('carbon_monoxide') * 1000) .EUt(30) diff --git a/groovy/postInit/chemistry/elements/ZirconiumChain.groovy b/groovy/postInit/chemistry/elements/ZirconiumChain.groovy index 424c472d9..2c442246e 100644 --- a/groovy/postInit/chemistry/elements/ZirconiumChain.groovy +++ b/groovy/postInit/chemistry/elements/ZirconiumChain.groovy @@ -1,4 +1,5 @@ import static globals.Globals.* +import static globals.CarbonGlobals.* MIXER = recipemap('mixer') FF = recipemap('froth_flotation') @@ -81,10 +82,10 @@ ADVANCED_ARC_FURNACE.recipeBuilder() .buildAndRegister() // Carbochlorination (100%) -for (highPurityCombustible in Globals.highPurityCombustibles) { +for (highPurityCombustible in CarbonGlobals.highPurityCombustibles()) { FLUIDIZED_BED_REACTOR.recipeBuilder() .inputs(ore('dustZirconConcentrate')) - .inputs(ore(highPurityCombustible.name) * 4) + .inputs(ore(highPurityCombustible.name) * highPurityCombustible.equivalent(4)) .fluidInputs(fluid('chlorine') * 8000) .outputs(metaitem('dustImpureZirconiumTetrachloride') * 5) .chancedOutput(metaitem(highPurityCombustible.byproduct), 1000, 0) @@ -142,10 +143,10 @@ BR.recipeBuilder() .buildAndRegister() // Carbochlorination (100%) -for (highPurityCombustible in Globals.highPurityCombustibles) { +for (highPurityCombustible in CarbonGlobals.highPurityCombustibles()) { FLUIDIZED_BED_REACTOR.recipeBuilder() .inputs(ore('dustBaddeleyite')) - .inputs(ore(highPurityCombustible.name) * 2) + .inputs(ore(highPurityCombustible.name) * highPurityCombustible.equivalent(2)) .fluidInputs(fluid('chlorine') * 4000) .outputs(metaitem('dustImpureZirconiumTetrachloride') * 5) .chancedOutput(metaitem(highPurityCombustible.byproduct), 1000, 0) @@ -202,10 +203,10 @@ BR.recipeBuilder() .duration(20) .buildAndRegister() -for (highPurityCombustible in Globals.highPurityCombustibles) { +for (highPurityCombustible in CarbonGlobals.highPurityCombustibles()) { FLUIDIZED_BED_REACTOR.recipeBuilder() .inputs(ore('dustZirconiumDioxide')) - .inputs(ore(highPurityCombustible.name) * 2) + .inputs(ore(highPurityCombustible.name) * highPurityCombustible.equivalent(2)) .fluidInputs(fluid('chlorine') * 4000) .outputs(metaitem('dustZirconiumTetrachloride') * 5) .fluidOutputs(fluid('carbon_monoxide') * 2000) diff --git a/groovy/postInit/chemistry/organic_chemistry/CoalPyrolysisChain.groovy b/groovy/postInit/chemistry/organic_chemistry/CoalPyrolysisChain.groovy index 04e9e4317..171e1ed91 100644 --- a/groovy/postInit/chemistry/organic_chemistry/CoalPyrolysisChain.groovy +++ b/groovy/postInit/chemistry/organic_chemistry/CoalPyrolysisChain.groovy @@ -1,4 +1,5 @@ import static globals.Globals.* +import static globals.CarbonGlobals.* import gregtech.api.recipes.ModHandler; import gregtech.api.unification.material.Materials; @@ -12,41 +13,68 @@ def MIXER = recipemap('mixer'); def CSTR = recipemap('continuous_stirred_tank_reactor'); def DISTILLERY = recipemap('distillery'); -PYROLYSE_OVEN.recipeBuilder() - .inputs(item('minecraft:coal', 1) * 16) - .outputs(metaitem('gemCoke') * 12) +CarbonGlobals.byNames(['dustCoal', 'gemCoal', 'dustCharcoal', 'gemCharcoal']).each { input -> + int CARBON_PROCESSED = 1200 + def output = CarbonGlobals.byName(input.pyrolysis_product) + PYROLYSE_OVEN.recipeBuilder() + .inputs(ore(input.name) * input.num_items_by_carbon(CARBON_PROCESSED)) + .outputs(metaitem(output.name) * output.num_items_by_carbon(CARBON_PROCESSED)) .fluidOutputs(fluid('coal_gas') * 2500) .fluidOutputs(fluid('coal_tar') * 2500) .duration(320) .EUt(60) .buildAndRegister() +} -PYROLYSE_OVEN.recipeBuilder() - .inputs(item('minecraft:coal') * 16) - .outputs(metaitem('gemCoke') * 12) - .fluidOutputs(fluid('coal_gas') * 2500) - .fluidOutputs(fluid('coal_tar') * 2500) +CarbonGlobals.byNames(['dustAnthracite', 'gemAnthracite']).each { input -> + int CARBON_PROCESSED = 1400 + def output = CarbonGlobals.byName(input.pyrolysis_product) + PYROLYSE_OVEN.recipeBuilder() + .inputs(ore(input.name) * input.num_items_by_carbon(CARBON_PROCESSED)) + .outputs(metaitem(output.name) * output.num_items_by_carbon(CARBON_PROCESSED)) + .fluidOutputs(fluid('coal_gas') * 3200) + .fluidOutputs(fluid('coal_tar') * 3200) .duration(320) .EUt(60) .buildAndRegister() - -PYROLYSE_OVEN.recipeBuilder() - .inputs(ore('gemAnthracite') * 16) - .outputs(metaitem('gemCoke') * 14) - .fluidOutputs(fluid('coal_gas') * 3200) - .fluidOutputs(fluid('coal_tar') * 3200) +} + +CarbonGlobals.byNames(['dustLignite', 'gemLignite']).each { input -> + int CARBON_PROCESSED = 400 + def output = CarbonGlobals.byName(input.pyrolysis_product) + PYROLYSE_OVEN.recipeBuilder() + .inputs(ore(input.name) * input.num_items_by_carbon(CARBON_PROCESSED)) + .outputs(metaitem(output.name) * output.num_items_by_carbon(CARBON_PROCESSED)) + .fluidOutputs(fluid('creosote') * 1600) + .fluidOutputs(fluid('syngas') * 2000) .duration(320) .EUt(60) .buildAndRegister() +} -PYROLYSE_OVEN.recipeBuilder() - .inputs(ore('gemCoke') * 16) - .outputs(metaitem('dustCarbon') * 12) +CarbonGlobals.byNames(['dustCoke', 'gemCoke']).each { input -> + def output = CarbonGlobals.byName(input.pyrolysis_product) + PYROLYSE_OVEN.recipeBuilder() + .inputs(ore(input.name) * 16) + .outputs(metaitem(output.name) * 12) .fluidInputs(fluid('steam') * 15000) .fluidOutputs(fluid('syngas') * 12000) .duration(320) .EUt(60) .buildAndRegister() +} + +CarbonGlobals.byNames(['dustLigniteCoke', 'gemLigniteCoke']).each { input -> + def output = CarbonGlobals.byName(input.pyrolysis_product) + PYROLYSE_OVEN.recipeBuilder() + .inputs(ore(input.name) * 16) + .outputs(metaitem(output.name) * 9) + .fluidInputs(fluid('steam') * 15000) + .fluidOutputs(fluid('syngas') * 12000) + .duration(320) + .EUt(60) + .buildAndRegister() +} CENTRIFUGE.recipeBuilder() .fluidInputs(fluid('coal_gas') * 10000) @@ -178,4 +206,19 @@ DISTILLATION_TOWER.recipeBuilder() .fluidOutputs(fluid('naphthalene_oil') * 200) .duration(200) .EUt(48) + .buildAndRegister() + +// Centrifuging Lignite to Carbon +CENTRIFUGE.recipeBuilder() + .inputs(ore('dustLignite')) + .chancedOutput(metaitem('dustCarbon'), 2500, 0) + .duration(80) + .EUt(30) + .buildAndRegister() + +CENTRIFUGE.recipeBuilder() + .inputs(ore('dustLigniteCoke')) + .chancedOutput(metaitem('dustCarbon'), 7500, 0) + .duration(80) + .EUt(30) .buildAndRegister() \ No newline at end of file diff --git a/groovy/runConfig.json b/groovy/runConfig.json index 3969f9ca4..66dafcfd3 100644 --- a/groovy/runConfig.json +++ b/groovy/runConfig.json @@ -12,8 +12,7 @@ "classes/IQuenchingFluid.groovy", "classes/IRefrigerant.groovy", "classes/IWorkingFluid.groovy", - "globals/SinteringGlobals.groovy", - "globals/Globals.groovy", + "globals/", "material/" ], "loaders": { diff --git a/resources/langfiles/lang/en_us.lang b/resources/langfiles/lang/en_us.lang index bbad31ee5..013ca6008 100644 --- a/resources/langfiles/lang/en_us.lang +++ b/resources/langfiles/lang/en_us.lang @@ -1118,6 +1118,7 @@ susy.material.hutchinsonite=Hutchinsonite susy.material.crookesite=Crookesite susy.material.dilithium=Dilithium susy.material.lignite=Lignite +susy.material.lignite_coke=Lignite Coke susy.material.anthracite=Anthracite susy.material.phosphorite=Phosphorite susy.material.sperrylite=Sperrylite