diff --git a/kubejs/assets/tfg/textures/item/btx/catalyser_zsm.png b/kubejs/assets/tfg/textures/item/btx/catalyser_zsm.png new file mode 100644 index 000000000..f8d93fddb Binary files /dev/null and b/kubejs/assets/tfg/textures/item/btx/catalyser_zsm.png differ diff --git a/kubejs/assets/tfg/textures/item/btx/loaded_resin.png b/kubejs/assets/tfg/textures/item/btx/loaded_resin.png new file mode 100644 index 000000000..cebb88752 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/btx/loaded_resin.png differ diff --git a/kubejs/assets/tfg/textures/item/btx/used_catalyser.png b/kubejs/assets/tfg/textures/item/btx/used_catalyser.png new file mode 100644 index 000000000..571b23671 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/btx/used_catalyser.png differ diff --git a/kubejs/server_scripts/tfg/powergen/recipes.early_gas.js b/kubejs/server_scripts/tfg/powergen/recipes.early_gas.js index 86794748d..83a09663c 100644 --- a/kubejs/server_scripts/tfg/powergen/recipes.early_gas.js +++ b/kubejs/server_scripts/tfg/powergen/recipes.early_gas.js @@ -70,7 +70,7 @@ function registerTFGEarlyGasRecipes(event) { .itemInputs(Item.of('minecraft:charcoal', 40)) .inputFluids(Fluid.of('gtceu:creosote', 4000)) .outputFluids(Fluid.of('gtceu:coal_tar', 500), Fluid.of('tfg:syngas', 4400), Fluid.of('tfg:raw_aromatic_mix', 4000)) - .duration(20*150) + .duration(20*64) .circuit(1) .EUt(GTValues.VHA[GTValues.MV]) @@ -81,7 +81,7 @@ function registerTFGEarlyGasRecipes(event) { .chancedFluidInput(Fluid.of('gtceu:hydrogen', 1), 1000, 0) .perTick(false) .outputFluids(Fluid.of('gtceu:coal_tar', 500), Fluid.of('tfg:syngas', 4400), Fluid.of('tfg:raw_aromatic_mix', 4000)) - .duration(20*50) + .duration(20*32) .circuit(2) .EUt(GTValues.VHA[GTValues.MV]) @@ -91,7 +91,7 @@ function registerTFGEarlyGasRecipes(event) { .itemInputs(Item.of('minecraft:coal', 10)) .inputFluids(Fluid.of('gtceu:creosote', 4000)) .outputFluids(Fluid.of('gtceu:coal_tar', 1000), Fluid.of('tfg:syngas', 6400), Fluid.of('tfg:raw_aromatic_mix', 4000)) - .duration(20*150) + .duration(20*64) .circuit(1) .EUt(GTValues.VHA[GTValues.MV]) @@ -102,7 +102,7 @@ function registerTFGEarlyGasRecipes(event) { .chancedFluidInput(Fluid.of('gtceu:hydrogen', 1), 1000, 0) .perTick(false) .outputFluids(Fluid.of('gtceu:coal_tar', 1000), Fluid.of('tfg:syngas', 6400), Fluid.of('tfg:raw_aromatic_mix', 4000)) - .duration(20*50) + .duration(20*32) .circuit(2) .EUt(GTValues.VHA[GTValues.MV]) @@ -112,7 +112,7 @@ function registerTFGEarlyGasRecipes(event) { .itemInputs(Item.of('gtceu:coke_gem', 8)) .inputFluids(Fluid.of('gtceu:creosote', 4000)) .outputFluids(Fluid.of('gtceu:coal_tar', 2000), Fluid.of('tfg:syngas', 12800), Fluid.of('tfg:raw_aromatic_mix', 4000)) - .duration(20*150) + .duration(20*64) .circuit(1) .EUt(GTValues.VHA[GTValues.MV]) @@ -123,7 +123,7 @@ function registerTFGEarlyGasRecipes(event) { .chancedFluidInput(Fluid.of('gtceu:hydrogen', 1), 1000, 0) .perTick(false) .outputFluids(Fluid.of('gtceu:coal_tar', 2000), Fluid.of('tfg:syngas', 12800), Fluid.of('tfg:raw_aromatic_mix', 4000)) - .duration(20*50) + .duration(20*32) .circuit(2) .EUt(GTValues.VHA[GTValues.MV]) @@ -133,7 +133,7 @@ function registerTFGEarlyGasRecipes(event) { .itemInputs(Item.of('beneath:cursecoal', 5)) .inputFluids(Fluid.of('gtceu:creosote', 4000)) .outputFluids(Fluid.of('gtceu:coal_tar', 2000), Fluid.of('tfg:syngas', 12800), Fluid.of('tfg:raw_aromatic_mix', 4000)) - .duration(20*150) + .duration(20*64) .circuit(1) .EUt(GTValues.VHA[GTValues.MV]) @@ -144,7 +144,7 @@ function registerTFGEarlyGasRecipes(event) { .chancedFluidInput(Fluid.of('gtceu:hydrogen', 1), 1000, 0) .perTick(false) .outputFluids(Fluid.of('gtceu:coal_tar', 2000), Fluid.of('tfg:syngas', 12800), Fluid.of('tfg:raw_aromatic_mix', 4000)) - .duration(20*50) + .duration(20*32) .circuit(2) .EUt(GTValues.VHA[GTValues.MV]) @@ -198,8 +198,6 @@ function registerTFGEarlyGasRecipes(event) { //#endregion - //#region Rebalance Fuel - // Increase Pyrolyse Oven duration event.forEachRecipe({ id: /gtceu:pyrolyse_oven\/(log_to_creosote|log_to_creosote_nitrogen)/ }, recipe => { @@ -212,7 +210,7 @@ function registerTFGEarlyGasRecipes(event) { recipe.set("duration", newDuration*2) }) - //#region New Power Generation + //#region Power Gen // Add Syngas @@ -228,10 +226,143 @@ function registerTFGEarlyGasRecipes(event) { .EUt(-(32)) .duration(20*0.6) + // BTX Fuel + + event.recipes.gtceu.gas_turbine('tfg:btx_fuel') // Gas Turbine + .inputFluids(Fluid.of('tfg:btx_fuel', 1)) + .EUt(-(32)) + .duration(20*2.6) + //#endregion // Process Syngas + event.recipes.gtceu.chemical_reactor('tfg:electrolyze_syngas') + .notConsumable(Item.of('gtceu:copper_dust', 1)) + .inputFluids(Fluid.of('tfg:syngas', 1000)) + .outputFluids(Fluid.of('gtceu:methanol', 4000), Fluid.of('minecraft:water', 2000)) + .duration(20*12) + .EUt(GTValues.VA[GTValues.MV]) + + //#region BTX Fuel + + // ZSM - 5 + + event.recipes.gtceu.chemical_reactor('tfg:sodium_silicate') + .itemInputs(Item.of('#forge:dusts/nether_quartz')) + .inputFluids(Fluid.of('tfc:lye', 1000)) + .outputFluids(Fluid.of('tfg:sodium_silicate', 1000)) + .duration(20*26) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.chemical_reactor('tfg:sodium_aluminum') + .itemInputs(Item.of('#forge:dusts/aluminium')) + .inputFluids(Fluid.of('tfc:lye', 1000)) + .itemOutputs(Item.of('#forge:dusts/sodium_aluminium', 1)) + .duration(20*26) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.chemical_reactor('tfg:tpaoh') + .itemInputs(Item.of('2x #forge:dusts/sodium')) + .inputFluids(Fluid.of('gtceu:ammonia', 1000), Fluid.of('gtceu:ethanol', 1000)) + .outputFluids(Fluid.of('tfg:tpaoh', 1000)) + .duration(20*8) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.chemical_reactor('tfg:zsm_5_gel') + .itemInputs(Item.of('#forge:dusts/sodium_aluminium')) + .inputFluids(Fluid.of('tfg:tpaoh', 12000)) + .inputFluids(Fluid.of('tfg:sodium_silicate', 5000)) + .outputFluids(Fluid.of('tfg:zsm5_gel', 1000)) + .duration(20*16) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.chemical_reactor('tfg:catalyser_zsm') + .itemInputs(Item.of('#forge:dusts/platinum'), Item.of('10x #forge:dusts/rhenium')) + .inputFluids(Fluid.of('gtceu:hydrogen', 1000)) + .inputFluids(Fluid.of('tfg:zsm5_gel', 1000)) + .itemOutputs(Item.of('tfg:catalyser_tt_re_zsm', 1)) + .duration(20*60) + .EUt(GTValues.VA[GTValues.HV]) + + // BTX + + event.recipes.gtceu.distillation_tower('tfg:methanol_distil_propylene') + .inputFluids(Fluid.of('gtceu:methanol', 6000)) + .outputFluids(Fluid.of('gtceu:hydrogen', 10000), Fluid.of('gtceu:oxygen', 6000), Fluid.of('gtceu:methane', 1000), Fluid.of('gtceu:ethylene', 1000), Fluid.of('tfg:propylene', 1000)) + .duration(20*30) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.cracker('tfg:crude_mixed_gas') + .itemInputs(Item.of('tfg:catalyser_tt_re_zsm')) + .inputFluids(Fluid.of('tfg:reformate_gas', 8000)) + .inputFluids(Fluid.of('tfg:propylene', 2000)) + .outputFluids(Fluid.of('tfg:crude_mixed_gas', 10000)) + .duration(20*240) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.large_chemical_reactor('tfg:btx_fuel') + .inputFluids(Fluid.of('tfg:crude_mixed_gas', 10000)) + .inputFluids(Fluid.of('gtceu:benzene', 20000)) + .inputFluids(Fluid.of('gtceu:toluene', 6000)) + .inputFluids(Fluid.of('gtceu:dimethylbenzene', 12000)) + .itemOutputs(Item.of('tfg:used_catalyser', 1)) + .outputFluids(Fluid.of('tfg:btx_fuel', 48000)) + .duration(20*6) + .EUt(GTValues.VA[GTValues.IV]) + + // Loop + + event.recipes.gtceu.macerator('tfg:catalyser_power') + .itemInputs(Item.of('tfg:used_catalyser', 1)) + .itemOutputs(Item.of('tfg:catalyser_powder_dust', 1), Item.of('gtceu:platinum_dust', 1)) + .duration(20*30) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.chemical_reactor('tfg:clean_powder') + .itemInputs(Item.of('tfg:catalyser_powder_dust', 1)) + .inputFluids(Fluid.of('gtceu:hydrogen_peroxide', 2000)) + .itemOutputs(Item.of('tfg:clean_powder_dust', 1), Item.of('gtceu:sodium_dust', 1)) + .duration(20*14) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.coal_liquefaction_tower('tfg:leachate') + .itemInputs(Item.of('tfg:clean_powder_dust', 1)) + .inputFluids(Fluid.of('gtceu:diluted_hydrochloric_acid', 1000)) + .outputFluids(Fluid.of('tfg:leachate', 1000)) + .duration(20*45) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.centrifuge('tfg:metal_rich_solution') + .inputFluids(Fluid.of('tfg:leachate', 1000)) + .itemOutputs(Item.of('gtceu:nether_quartz_dust', 2), Item.of('gtceu:aluminium_dust', 1)) + .outputFluids(Fluid.of('tfg:metal_rich_solution', 1000)) + .duration(20*45) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.mixer('tfg:aciditic_waste') + .itemInputs(Item.of('gtceu:reinforced_epoxy_resin_plate', 1)) + .inputFluids(Fluid.of('tfg:metal_rich_solution', 100), Fluid.of('gtceu:glue', 100)) + .outputFluids(Fluid.of('tfg:aciditic_waste', 100)) + .itemOutputs(Item.of('tfg:loaded_resin', 1)) + .duration(20*15) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.distillery('tfg:rhenium_dust') + .inputFluids(Fluid.of('gtceu:sulfuric_acid', 100)) + .itemInputs(Item.of('tfg:loaded_resin', 1)) + .itemOutputs(Item.of('gtceu:rhenium_dust', 1)) + .duration(20*8) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.electrolyzer('tfg:aciditic_waste_electrolyzing') + .inputFluids(Fluid.of('tfg:aciditic_waste', 1000)) + .outputFluids(Fluid.of('gtceu:ammonia', 500)) + .outputFluids(Fluid.of('gtceu:ethanol', 500)) + .duration(20*4) + .EUt(GTValues.VA[GTValues.HV]) + + } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/recipes.miscellaneous.js b/kubejs/server_scripts/tfg/recipes.miscellaneous.js index 65cb9248a..3499e2494 100644 --- a/kubejs/server_scripts/tfg/recipes.miscellaneous.js +++ b/kubejs/server_scripts/tfg/recipes.miscellaneous.js @@ -99,7 +99,7 @@ function registerTFGMiscellaneousRecipes(event) { // Replace bronze drums & crates with a tag containing the 3 different bronzes // NOTE: A better way to do this would be to overwrite GTCraftingComponents.CRATE and GTCraftingComponents.DRUM in crafting_components.js, but tags seem to get populated after the recipes get registed, so... event.replaceInput({ input: 'gtceu:bronze_crate' }, 'gtceu:bronze_crate', '#tfg:any_bronze_crate') - event.replaceInput({ input: 'gtceu:bronze_drum' }, 'gtceu:bronze_drum', '#tfg:any_bronze_drum') + event.replaceInput({ input: 'gtceu:bronze_drum' , not: { id: 'gtceu:shapeless/drum_nbt_bronze' }}, 'gtceu:bronze_drum', '#tfg:any_bronze_drum') //#region RNR Paving Cart const rubber_types = [ diff --git a/kubejs/startup_scripts/gtceu/machines.js b/kubejs/startup_scripts/gtceu/machines.js index 6bef61a11..7f2d2099f 100644 --- a/kubejs/startup_scripts/gtceu/machines.js +++ b/kubejs/startup_scripts/gtceu/machines.js @@ -456,7 +456,7 @@ const registerGTCEuMachines = (event) => { .machine((holder) => new CoilWorkableElectricMultiblockMachine(holder)) .rotationState(RotationState.NON_Y_AXIS) .recipeType('coal_liquefaction_tower') - .recipeModifiers([(machine, recipe) => GTRecipeModifiers.crackerOverclock(machine, recipe), GTRecipeModifiers.BATCH_MODE]) + .recipeModifiers([(machine, recipe) => GTRecipeModifiers.pyrolyseOvenOverclock(machine, recipe), GTRecipeModifiers.BATCH_MODE]) .appearanceBlock(() => Block.getBlock('gtceu:solid_machine_casing')) .pattern(definition => FactoryBlockPattern.start() .aisle('CCC', 'D D', 'D D', 'DED', 'DED', 'BBB') diff --git a/kubejs/startup_scripts/tfg/items.js b/kubejs/startup_scripts/tfg/items.js index 7bc0fe3e8..a3c941093 100644 --- a/kubejs/startup_scripts/tfg/items.js +++ b/kubejs/startup_scripts/tfg/items.js @@ -68,4 +68,18 @@ const registerTFGItems = (event) => { event.create('gtceu:refined_rose_quartz_ore').texture('tfg:item/deprecated') event.create('gtceu:rose_quartz_lens').texture('tfg:item/deprecated') event.create('gtceu:rose_quartz_plate').texture('tfg:item/deprecated') + + // Add item for BTX Fuel + + event.create('tfg:catalyser_pt_re_zsm') + .translationKey('item.tfg.catalyser_pt_re_zsm') + .texture('tfg:item/btx/catalyser_zsm') + + event.create('tfg:used_catalyser') + .translationKey('item.tfg.used_catalyser') + .texture('tfg:item/btx/used_catalyser') + + event.create('tfg:loaded_resin') + .translationKey('item.tfg.loaded_resin') + .texture('tfg:item/btx/loaded_resin') } diff --git a/kubejs/startup_scripts/tfg/materials.power_rework.js b/kubejs/startup_scripts/tfg/materials.power_rework.js index 7c062d24b..30e215278 100644 --- a/kubejs/startup_scripts/tfg/materials.power_rework.js +++ b/kubejs/startup_scripts/tfg/materials.power_rework.js @@ -52,4 +52,90 @@ const registerTFGPowerReworkMaterials = (event) => { .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(540)) .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + //#region Materials for BTX + + // Propylene + event.create('tfg:propylene') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(350)) + .components('3x carbon', '6x hydrogen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xffb347) + .secondaryColor(0xffe0b2) + + // Crude Mixed Gas + event.create('tfg:crude_mixed_gas') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(500)) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0x9bb6c9) + .secondaryColor(0xd7e7ef) + + // Sodium Silicate + event.create('tfg:sodium_silicate') + .liquid(new GTFluidBuilder().temperature(293)) + .components('1x sodium', '1x silicon', '4x oxygen', '4x hydrogen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xcce0f0) + .secondaryColor(0xa9c6db) + + // Sodium Aluminium + event.create('tfg:sodium_aluminium') + .dust() + .components('2x sodium', '1x aluminium', '2x oxygen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .iconSet(GTMaterialIconSet.FLINT) + .color(0xf0e68c) + .secondaryColor(0xded7a8) + + // TPAOH + event.create('tfg:tpaoh') + .liquid(new GTFluidBuilder().temperature(293)) + .components('2x carbon', '9x hydrogen', '1x nitrogen', '1x oxygen', '2x sodium') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xffd8b1) + .secondaryColor(0xe6b88f) + + // ZSM-5 Gel + event.create('tfg:zsm5_gel') + .liquid(new GTFluidBuilder().temperature(323)) + .components('24x carbon', '128x hydrogen', '12x nitrogen', '5x silicon', '1x aluminium', '34x oxygen', '31x sodium') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xf2e8d6) + .secondaryColor(0xd0c4b0) + + // Catalyser Powder + event.create('tfg:catalyser_powder') + .dust() + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .iconSet(GTMaterialIconSet.FLINT) + .color(0x7f7f7f) + .secondaryColor(0xcfcfcf) + + // Clean Powder + event.create('tfg:clean_powder') + .dust() + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .iconSet(GTMaterialIconSet.FLINT) + .color(0xffffff) + .secondaryColor(0xdfe6e6) + + // Leachate + event.create('tfg:leachate') + .liquid(new GTFluidBuilder().temperature(298)) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xbfd6d0) + .secondaryColor(0x8fbdb0) + + // Metal Rich Solution + event.create('tfg:metal_rich_solution') + .liquid(new GTFluidBuilder().temperature(298)) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xb56f5a) + .secondaryColor(0xd9b0a3) + + // Aciditic Waste + event.create('tfg:aciditic_waste') + .liquid(new GTFluidBuilder().attribute(GTFluidAttributes.ACID)) + .color(0x9df2b4) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + }