diff --git a/kubejs/assets/tfg/blockstates/ostrum_linear_accelerator.json b/kubejs/assets/tfg/blockstates/ostrum_linear_accelerator.json new file mode 100644 index 000000000..5c213dc91 --- /dev/null +++ b/kubejs/assets/tfg/blockstates/ostrum_linear_accelerator.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "tfg:block/machines/ostrum_linear_accelerator", + "y": 90 + }, + "facing=north": { + "model": "tfg:block/machines/ostrum_linear_accelerator" + }, + "facing=south": { + "model": "tfg:block/machines/ostrum_linear_accelerator", + "y": 180 + }, + "facing=west": { + "model": "tfg:block/machines/ostrum_linear_accelerator", + "y": 270 + } + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/machines/ostrum_linear_accelerator.json b/kubejs/assets/tfg/models/block/machines/ostrum_linear_accelerator.json new file mode 100644 index 000000000..aed8c8b02 --- /dev/null +++ b/kubejs/assets/tfg/models/block/machines/ostrum_linear_accelerator.json @@ -0,0 +1,90 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "tfg:ostrum_linear_accelerator", + "texture_overrides": { + "all": "tfg:block/casings/machine_casing_mars" + }, + "variants": { + "is_formed=false,recipe_logic_status=idle": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_mars", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_emissive" + } + } + }, + "is_formed=false,recipe_logic_status=suspend": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_mars", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_paused", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_paused_emissive" + } + } + }, + "is_formed=false,recipe_logic_status=waiting": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_mars", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active_emissive" + } + } + }, + "is_formed=false,recipe_logic_status=working": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_mars", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active_emissive" + } + } + }, + "is_formed=true,recipe_logic_status=idle": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_mars", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_emissive" + } + } + }, + "is_formed=true,recipe_logic_status=suspend": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_mars", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_paused", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_paused_emissive" + } + } + }, + "is_formed=true,recipe_logic_status=waiting": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_mars", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active_emissive" + } + } + }, + "is_formed=true,recipe_logic_status=working": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_mars", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active_emissive" + } + } + } + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/item/ostrum_linear_accelerator.json b/kubejs/assets/tfg/models/item/ostrum_linear_accelerator.json new file mode 100644 index 000000000..88514629b --- /dev/null +++ b/kubejs/assets/tfg/models/item/ostrum_linear_accelerator.json @@ -0,0 +1,3 @@ +{ + "parent": "tfg:block/machines/ostrum_linear_accelerator" +} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.reformate_gas.png b/kubejs/assets/tfg/textures/block/fluids/fluid.reformate_gas.png new file mode 100644 index 000000000..115a2347d Binary files /dev/null and b/kubejs/assets/tfg/textures/block/fluids/fluid.reformate_gas.png differ diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.reformate_gas.png.mcmeta b/kubejs/assets/tfg/textures/block/fluids/fluid.reformate_gas.png.mcmeta new file mode 100644 index 000000000..c5d457f93 --- /dev/null +++ b/kubejs/assets/tfg/textures/block/fluids/fluid.reformate_gas.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 1 + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.syngas.png b/kubejs/assets/tfg/textures/block/fluids/fluid.syngas.png new file mode 100644 index 000000000..aa275d6cf Binary files /dev/null and b/kubejs/assets/tfg/textures/block/fluids/fluid.syngas.png differ diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.syngas.png.mcmeta b/kubejs/assets/tfg/textures/block/fluids/fluid.syngas.png.mcmeta new file mode 100644 index 000000000..c5d457f93 --- /dev/null +++ b/kubejs/assets/tfg/textures/block/fluids/fluid.syngas.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 1 + } +} \ No newline at end of file diff --git a/kubejs/server_scripts/gregtech/recipes.js b/kubejs/server_scripts/gregtech/recipes.js index b289ec1b2..b40802279 100644 --- a/kubejs/server_scripts/gregtech/recipes.js +++ b/kubejs/server_scripts/gregtech/recipes.js @@ -1826,65 +1826,4 @@ const registerGTCEURecipes = (event) => { event.replaceInput( {output: 'gtceu:nano_saber'}, 'gtceu:ruridit_plate', '#forge:plates/ostrum_iodide' ) - // Change - - // The 9x buff for large boiler recipes above does not apply to this for some reason, so it gets 3x duration for an effective 1/3 reduction instead - - event.forEachRecipe({ id: /gtceu:large_boiler\/(minecraft_ladder|gtceu_wood_frame)/ }, recipe => { - var newDuration = recipe.get("duration") - recipe.set("duration", newDuration*3) - }) - - event.forEachRecipe({ id: /gtceu:steam_boiler\/(minecraft_ladder|gtceu_wood_frame)/ }, recipe => { - var newDuration = recipe.get("duration") - recipe.set("duration", newDuration/3) - }) - - // Allow oil in small boilers - - event.remove({ id: "gtceu:large_boiler/gtceu_oil" }) - event.remove({ id: "gtceu:large_boiler/gtceu_oil_heavy" }) - event.remove({ id: "gtceu:large_boiler/gtceu_fish_oil" }) - // This generates both a small boiler and large boiler recipe. Remove it above to avoid a duplicate - event.recipes.gtceu.steam_boiler('tfg:oil') - .inputFluids(Fluid.of('gtceu:oil', 200)) - .duration(200) - .dimension('minecraft:overworld') - - event.recipes.gtceu.steam_boiler('tfg:heavy_oil') - .inputFluids(Fluid.of('gtceu:oil_heavy', 32)) - .duration(200) - .dimension('minecraft:overworld') - - event.recipes.gtceu.steam_boiler('tfg:fish_oil') - .inputFluids(Fluid.of('gtceu:fish_oil', 160)) - .duration(200) - .dimension('minecraft:overworld') - - // These aren't in base GT, but they have the same stats as oil - event.recipes.gtceu.steam_boiler('tfg:raw_oil') - .inputFluids(Fluid.of('gtceu:oil_medium', 200)) - .duration(200) - .dimension('minecraft:overworld') - - event.recipes.gtceu.steam_boiler('tfg:light_oil') - .inputFluids(Fluid.of('gtceu:oil_light', 200)) - .duration(200) - .dimension('minecraft:overworld') - - // Same stats as fish oil - event.recipes.gtceu.steam_boiler('tfg:olive_oil') - .inputFluids(Fluid.of('tfc:olive_oil', 160)) - .duration(200) - .dimension('minecraft:overworld') - - event.recipes.gtceu.steam_boiler('tfg:seed_oil') - .inputFluids(Fluid.of('gtceu:seed_oil', 160)) - .duration(200) - .dimension('minecraft:overworld') - - event.recipes.gtceu.steam_boiler('tfg:soybean_oil') - .inputFluids(Fluid.of('firmalife:soybean_oil', 160)) - .duration(200) - .dimension('minecraft:overworld') } diff --git a/kubejs/server_scripts/gregtech/recipes.machines.js b/kubejs/server_scripts/gregtech/recipes.machines.js index 78e59b039..39b786f03 100644 --- a/kubejs/server_scripts/gregtech/recipes.machines.js +++ b/kubejs/server_scripts/gregtech/recipes.machines.js @@ -1119,7 +1119,7 @@ function registerGTCEuMachineRecipes(event) { // Multiblock - event.shaped('gtceu:ostrum_linear_accelerator', [ + event.shaped('tfg:ostrum_linear_accelerator', [ 'USU', 'WZW', 'PTP' @@ -1131,7 +1131,7 @@ function registerGTCEuMachineRecipes(event) { T: '#forge:single_cables/platinum', P: 'gtceu:iv_electric_pump' } - ).id('gtceu:shaped/ostrum_linear_accelerator') + ).id('tfg:shaped/ostrum_linear_accelerator') event.recipes.gtceu.assembler('tfg:ostrum_harvester') .itemInputs( diff --git a/kubejs/server_scripts/tfg/early_power.js b/kubejs/server_scripts/tfg/early_power.js new file mode 100644 index 000000000..da5dfcefb --- /dev/null +++ b/kubejs/server_scripts/tfg/early_power.js @@ -0,0 +1,264 @@ +// priority: 0 + +function registerTFGEarlyPower(event) { + + const $ChanceLogic = Java.loadClass('com.gregtechceu.gtceu.api.recipe.chance.logic.ChanceLogic') + + // New Fuels + + // Syngas + + event.custom({ + type: 'vintageimprovements:vacuumizing', + ingredients: [{ item: 'minecraft:charcoal' }, { fluid: 'gtceu:creosote', amount: 250 }], + results: [{ fluid: 'tfg:syngas', amount: 100 }], + heatRequirement: "heated", + processingTime: 750 + }).id('tfg:vi/vacuumizing/syngas_from_charcoal') + + event.custom({ + type: 'vintageimprovements:vacuumizing', + ingredients: [{ item: 'minecraft:coal' }, { fluid: 'gtceu:creosote', amount: 250 }], + results: [{ fluid: 'tfg:syngas', amount: 200 }], + heatRequirement: "heated", + processingTime: 750 + }).id('tfg:vi/vacuumizing/syngas_from_coal') + + event.custom({ + type: 'vintageimprovements:vacuumizing', + ingredients: [{ item: 'gtceu:coke_gem' }, { fluid: 'gtceu:creosote', amount: 250 }], + results: [{ fluid: 'tfg:syngas', amount: 400 }], + heatRequirement: "heated", + processingTime: 750 + }).id('tfg:vi/vacuumizing/syngas_from_coke') + + event.custom({ + type: 'vintageimprovements:vacuumizing', + ingredients: [{ item: 'beneath:cursecoal' }, { fluid: 'gtceu:creosote', amount: 250 }], + results: [{ fluid: 'tfg:syngas', amount: 400 }], + heatRequirement: "heated", + processingTime: 750 + }).id('tfg:vi/vacuumizing/syngas_from_anthracite') + + //#region Reformate Gas + + // Charcoal + + event.recipes.gtceu.coal_liquefaction_tower('tfg:raw_aromatic_mix_charcoal') + .itemInputs(Item.of('minecraft:charcoal', 24)) + .inputFluids(Fluid.of('gtceu:creosote', 1000)) + .outputFluids(Fluid.of('gtceu:coal_tar', 500), Fluid.of('tfg:syngas', 3200), Fluid.of('tfg:raw_aromatic_mix', 1000)) + .duration(20*600) + .circuit(1) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.coal_liquefaction_tower('tfg:raw_aromatic_mix_charcoal_hydrogen') + .itemInputs(Item.of('minecraft:charcoal', 24)) + .inputFluids(Fluid.of('gtceu:creosote', 1000)) + .perTick(true) + .chancedFluidInput(Fluid.of('gtceu:hydrogen', 1), 1000, 0) + .perTick(false) + .outputFluids(Fluid.of('gtceu:coal_tar', 500), Fluid.of('tfg:syngas', 3200), Fluid.of('tfg:raw_aromatic_mix', 1000)) + .duration(20*200) + .circuit(2) + .EUt(GTValues.VHA[GTValues.LV]) + + // Coal + + event.recipes.gtceu.coal_liquefaction_tower('tfg:raw_aromatic_mix_coal') + .itemInputs(Item.of('minecraft:coal', 10)) + .inputFluids(Fluid.of('gtceu:creosote', 1000)) + .outputFluids(Fluid.of('gtceu:coal_tar', 1000), Fluid.of('tfg:syngas', 6400), Fluid.of('tfg:raw_aromatic_mix', 1000)) + .duration(20*600) + .circuit(1) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.coal_liquefaction_tower('tfg:raw_aromatic_mix_coal_hydrogen') + .itemInputs(Item.of('minecraft:coal', 10)) + .inputFluids(Fluid.of('gtceu:creosote', 1000)) + .perTick(true) + .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', 1000)) + .duration(20*200) + .circuit(2) + .EUt(GTValues.VHA[GTValues.LV]) + + // Coke + + event.recipes.gtceu.coal_liquefaction_tower('tfg:raw_aromatic_mix_coke') + .itemInputs(Item.of('gtceu:coke_gem', 5)) + .inputFluids(Fluid.of('gtceu:creosote', 1000)) + .outputFluids(Fluid.of('gtceu:coal_tar', 2000), Fluid.of('tfg:syngas', 12800), Fluid.of('tfg:raw_aromatic_mix', 1000)) + .duration(20*600) + .circuit(1) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.coal_liquefaction_tower('tfg:raw_aromatic_mix_coke_hydrogen') + .itemInputs(Item.of('gtceu:coke_gem', 5)) + .inputFluids(Fluid.of('gtceu:creosote', 1000)) + .perTick(true) + .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', 1000)) + .duration(20*200) + .circuit(2) + .EUt(GTValues.VHA[GTValues.LV]) + + // Anthracite + + event.recipes.gtceu.coal_liquefaction_tower('tfg:raw_aromatic_mix_anthracite') + .itemInputs(Item.of('beneath:cursecoal', 5)) + .inputFluids(Fluid.of('gtceu:creosote', 1000)) + .outputFluids(Fluid.of('gtceu:coal_tar', 2000), Fluid.of('tfg:syngas', 12800), Fluid.of('tfg:raw_aromatic_mix', 1000)) + .duration(20*600) + .circuit(1) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.coal_liquefaction_tower('tfg:raw_aromatic_mix_anthracite_hydrogen') + .itemInputs(Item.of('beneath:cursecoal', 5)) + .inputFluids(Fluid.of('gtceu:creosote', 1000)) + .perTick(true) + .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', 1000)) + .duration(20*200) + .circuit(2) + .EUt(GTValues.VHA[GTValues.LV]) + + // Aromatic Processing + + event.recipes.gtceu.chemical_reactor('tfg:aromatic_feedstock') + .inputFluids(Fluid.of('tfg:raw_aromatic_mix', 1000), Fluid.of('gtceu:benzene', 525), Fluid.of('gtceu:steam', 1000)) + .outputFluids(Fluid.of('tfg:aromatic_feedstock', 1000)) + .duration(20*30) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.chemical_reactor('tfg:reformed_aromatic_feedstock') + .chancedInput(Item.of('gtceu:tiny_rhenium_dust'), 100, 0) // 1% chance + .inputFluids(Fluid.of('tfg:aromatic_feedstock', 1000)) + .outputFluids(Fluid.of('tfg:reformed_aromatic_feedstock', 1000)) + .duration(20*18) + .EUt(GTValues.VA[GTValues.MV]) + + // Reformate Gas Alternative Step + + event.recipes.gtceu.cracker('tfg:reformate_gas_cracker') + .inputFluids(Fluid.of('tfg:reformed_aromatic_feedstock', 1000), Fluid.of('gtceu:steam', 2000)) + .outputFluids(Fluid.of('tfg:reformate_gas', 2000)) + .outputFluids(Fluid.of('tfg:cracker_off_gas', 1000)) + .duration(20*60) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.chemical_reactor('tfg:reformate_gas') + .inputFluids(Fluid.of('tfg:reformed_aromatic_feedstock', 1000), Fluid.of('gtceu:steam', 1000)) + .outputFluids(Fluid.of('tfg:reformate_gas', 2000)) + .duration(20*60) + .EUt(GTValues.VA[GTValues.MV]) + + // Recycling + + event.recipes.gtceu.electrolyzer('tfg:cracker_off_gas_recycling') + .inputFluids(Fluid.of('tfg:cracker_off_gas', 1000)) + .outputFluids(Fluid.of('gtceu:carbon_dioxide', 500), Fluid.of('gtceu:hydrogen', 500)) + .chancedOutput(Item.of('gtceu:tiny_rhenium_dust'), 100, 0) // 1% chance + .duration(20*4.5) + .EUt(GTValues.VA[GTValues.HV]) + + // Modify Recipe to balance new line + + event.remove({ id: 'gtceu:extractor/charcoal_extraction' }) + event.recipes.gtceu.extractor('tfg:charcoal_extraction') + .itemInputs(Item.of('minecraft:charcoal')) + .outputFluids(Fluid.of('gtceu:wood_tar', 100)) + .duration(20*6.4) + .EUt(GTValues.VA[GTValues.MV]) + + //#endregion + + //#region Rebalance Fuel + + // Change + + // The 9x buff for large boiler recipes above does not apply to this for some reason, so it gets 3x duration for an effective 1/3 reduction instead + + event.forEachRecipe({ id: /gtceu:large_boiler\/(minecraft_ladder|gtceu_wood_frame)/ }, recipe => { + var newDuration = recipe.get("duration") + recipe.set("duration", newDuration*3) + }) + + event.forEachRecipe({ id: /gtceu:steam_boiler\/(minecraft_ladder|gtceu_wood_frame)/ }, recipe => { + var newDuration = recipe.get("duration") + recipe.set("duration", newDuration/3) + }) + + // Allow oil in small boilers + + event.remove({ id: "gtceu:large_boiler/gtceu_oil" }) + event.remove({ id: "gtceu:large_boiler/gtceu_oil_heavy" }) + event.remove({ id: "gtceu:large_boiler/gtceu_fish_oil" }) + // This generates both a small boiler and large boiler recipe. Remove it above to avoid a duplicate + event.recipes.gtceu.steam_boiler('tfg:oil') + .inputFluids(Fluid.of('gtceu:oil', 200)) + .duration(200) + .dimension('minecraft:overworld') + + event.recipes.gtceu.steam_boiler('tfg:heavy_oil') + .inputFluids(Fluid.of('gtceu:oil_heavy', 32)) + .duration(200) + .dimension('minecraft:overworld') + + event.recipes.gtceu.steam_boiler('tfg:fish_oil') + .inputFluids(Fluid.of('gtceu:fish_oil', 160)) + .duration(200) + .dimension('minecraft:overworld') + + // These aren't in base GT, but they have the same stats as oil + event.recipes.gtceu.steam_boiler('tfg:raw_oil') + .inputFluids(Fluid.of('gtceu:oil_medium', 200)) + .duration(200) + .dimension('minecraft:overworld') + + event.recipes.gtceu.steam_boiler('tfg:light_oil') + .inputFluids(Fluid.of('gtceu:oil_light', 200)) + .duration(200) + .dimension('minecraft:overworld') + + // Same stats as fish oil + event.recipes.gtceu.steam_boiler('tfg:olive_oil') + .inputFluids(Fluid.of('tfc:olive_oil', 160)) + .duration(200) + .dimension('minecraft:overworld') + + event.recipes.gtceu.steam_boiler('tfg:seed_oil') + .inputFluids(Fluid.of('gtceu:seed_oil', 160)) + .duration(200) + .dimension('minecraft:overworld') + + event.recipes.gtceu.steam_boiler('tfg:soybean_oil') + .inputFluids(Fluid.of('firmalife:soybean_oil', 160)) + .duration(200) + .dimension('minecraft:overworld') + + //#region New Power Generation + + // Add Syngas + + event.recipes.gtceu.steam_boiler('tfg:syngas') // Small Boiler and Large Boiler divided by 4 + .inputFluids(Fluid.of('tfg:syngas', 100)) + .duration(40*20*4) + .dimension('minecraft:overworld') + + event.recipes.gtceu.gas_turbine('tfg:syngas') // Gas Turbine + .inputFluids(Fluid.of('tfg:syngas', 1)) + .EUt(-(32)) + .duration(20*0.2) + + // Reformate Gas + + event.recipes.gtceu.gas_turbine('tfg:reformate_gas') // Gas Turbine + .inputFluids(Fluid.of('tfg:reformate_gas', 1)) + .EUt(-(32)) + .duration(20*1) + +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/nuclear/recipes.nuclear.js b/kubejs/server_scripts/tfg/nuclear/recipes.nuclear.js index 7791089f8..29df43882 100644 --- a/kubejs/server_scripts/tfg/nuclear/recipes.nuclear.js +++ b/kubejs/server_scripts/tfg/nuclear/recipes.nuclear.js @@ -56,14 +56,14 @@ function registerTFGNuclearRecipes(event) { .duration(20*600) .EUt(GTValues.VA[GTValues.EV]) .dimension('ad_astra:mars') - +/* event.recipes.gtceu.nuclear_fuel_factory('tfg:tbu_232_rod') .inputFluids(Fluid.of('gtceu:nuclear_waste', 32000)) .itemInputs('2x #forge:rods/thorium_232', 'tfg:empty_rod') .itemOutputs('tfg:tbu_232_rod') .duration(20*300) .EUt(GTValues.V[GTValues.IV]) - +*/ event.recipes.gtceu.assembler('tfg:empty_rod') .itemInputs('3x gtceu:cobalt_large_restrictive_item_pipe', '3x gtceu:lead_huge_fluid_pipe') .itemOutputs('tfg:empty_rod') @@ -181,20 +181,32 @@ function registerTFGNuclearRecipes(event) { event.recipes.gtceu.heat_exchanger('uranium_steam') .perTick(true) .inputFluids(Fluid.of('minecraft:water', 10)) - .inputFluids(Fluid.of('gtceu:radioactive_steam', 10)) + .inputFluids(Fluid.of('gtceu:radioactive_steam', 1600)) .inputFluids(Fluid.of('gtceu:ammonium_formate', 10)) - .outputFluids(Fluid.of('gtceu:dense_steam', 10)) + .outputFluids(Fluid.of('gtceu:dense_steam', 1600)) .outputFluids(Fluid.of('gtceu:formamide', 10)) .perTick(false) .duration(20*5) .EUt(1) + .circuit(1) + .dimension('ad_astra:mars') + + event.recipes.gtceu.heat_exchanger('uranium_steam_power_only') + .perTick(true) + .inputFluids(Fluid.of('minecraft:water', 10)) + .inputFluids(Fluid.of('gtceu:radioactive_steam', 1600)) + .outputFluids(Fluid.of('gtceu:dense_steam', 1600)) + .perTick(false) + .duration(20*5) + .EUt(1) + .circuit(2) .dimension('ad_astra:mars') event.recipes.gtceu.heat_exchanger('plutonium_steam') .perTick(true) .inputFluids(Fluid.of('minecraft:water', 10)) - .inputFluids(Fluid.of('gtceu:irradiated_steam', 10)) - .outputFluids(Fluid.of('gtceu:dense_steam', 10)) + .inputFluids(Fluid.of('gtceu:irradiated_steam', 1600)) + .outputFluids(Fluid.of('gtceu:dense_steam', 1600)) .perTick(false) .duration(20*5) .EUt(1) @@ -229,7 +241,7 @@ function registerTFGNuclearRecipes(event) { .notConsumable(Item.of('tfg:thorium_rod')) .perTick(true) .inputFluids(Fluid.of('tfg:heavy_water', 2)) - .outputFluids(Fluid.of('gtceu:dense_steam', 2)) + .outputFluids(Fluid.of('gtceu:dense_steam', 480)) .perTick(false) .dimension('ad_astra:mars') .addData("coolant_heat_per_tick", 1) @@ -248,7 +260,7 @@ function registerTFGNuclearRecipes(event) { .notConsumable(Item.of('tfg:uranium_rod')) .perTick(true) .inputFluids(Fluid.of('tfg:heavy_water', 20)) - .outputFluids(Fluid.of('gtceu:radioactive_steam', 10)) + .outputFluids(Fluid.of('gtceu:radioactive_steam', 1600)) .perTick(false) .addData("coolant_heat_per_tick", 1) .duration(1) @@ -267,7 +279,7 @@ function registerTFGNuclearRecipes(event) { .notConsumable(Item.of('tfg:plutonium_rod')) .perTick(true) .inputFluids(Fluid.of('tfg:heavy_water', 25)) - .outputFluids(Fluid.of('gtceu:irradiated_steam', 40)) + .outputFluids(Fluid.of('gtceu:irradiated_steam', 6400)) .perTick(false) .addData("coolant_heat_per_tick", 1) .duration(1) @@ -435,7 +447,7 @@ function registerTFGNuclearRecipes(event) { //#region Power Generation event.recipes.gtceu.nuclear_turbine('dense_steam') - .inputFluids(Fluid.of('gtceu:dense_steam', 1)) + .inputFluids(Fluid.of('gtceu:dense_steam', 160)) .EUt(-(32)) .duration(20*1.5) diff --git a/kubejs/server_scripts/tfg/nuclear/recipes.ostrum.js b/kubejs/server_scripts/tfg/nuclear/recipes.ostrum.js new file mode 100644 index 000000000..779b382ad --- /dev/null +++ b/kubejs/server_scripts/tfg/nuclear/recipes.ostrum.js @@ -0,0 +1,83 @@ + // priority: 0 + +function registerTFGNOstrumRecipes(event) { + + var $HeatRecipeCapability = Java.loadClass("fi.dea.mc.deafission.common.data.recipe.HeatRecipeCapability"); + var $HeatIngredient = Java.loadClass("fi.dea.mc.deafission.common.data.recipe.HeatIngredient"); + const $ChanceLogic = Java.loadClass('com.gregtechceu.gtceu.api.recipe.chance.logic.ChanceLogic') + + // Ostrum Linear Accelerator Recipes + + // .input($HeatRecipeCapability.CAP, new $HeatIngredient(X, Y)) where X is Minimal Temperature to run and where Y is HU consummed per craft +/* + event.recipes.gtceu.ostrum_linear_accelerator('tfg:ostrum_transformation') + .inputFluids('gtceu:residual_radioactive_concoction 100') + .itemInputs('32x #forge:dusts/ostrum') + .chancedFluidOutputLogic($ChanceLogic.XOR) + .chancedFluidOutput('gtceu:lightweight_ostrum_vapor', 6000, 0) + .chancedFluidOutput('gtceu:ostrum_vapor', 3000, 0) + .chancedFluidOutput('gtceu:dense_ostrum_vapor', 1000, 0) + .dimension('ad_astra:mars') + .duration(20 * 5) + .EUt(GTValues.VA[GTValues.EV]); + + event.recipes.gtceu.ostrum_linear_accelerator('tfg:lightweight_ostrum_vapor_t1') + .perTick(true) + .inputFluids('gtceu:residual_radioactive_concoction 1') + .perTick(false) + .inputFluids(Fluid.of('gtceu:lightweight_ostrum_vapor',1000)) + .inputFluids(Fluid.of('gtceu:radon', 10)) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/thorium'), 1, 10) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/silver'), 1, 10) + .itemOutputsRanged(Item.of('gtceu:dusty_raw_tricalcium_phosphate'), 1, 10) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/bauxite'), 1, 10) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/lead'), 1, 10) + //.input($HeatRecipeCapability.CAP, new $HeatIngredient(100, 500)) + .dimension('ad_astra:mars') + .duration(20 * 20) + .circuit(1); + + event.recipes.gtceu.ostrum_linear_accelerator('tfg:lightweight_ostrum_vapor_t2') + .perTick(true) + .inputFluids('gtceu:residual_radioactive_concoction 1') + .inputFluids(Fluid.of('tfg:semiheavy_water', 1)) + .perTick(false) + .inputFluids(Fluid.of('gtceu:lightweight_ostrum_vapor',1000)) + .inputFluids(Fluid.of('gtceu:radon', 10)) + .inputFluids(Fluid.of('gtceu:krypton', 10)) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/thorium'), 10, 20) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/silver'), 1, 10) + .itemOutputsRanged(Item.of('gtceu:dusty_raw_tricalcium_phosphate'), 1, 10) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/bauxite'), 1, 10) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/lead'), 1, 10) + .itemOutputsRanged(Item.of('gtceu:dusty_raw_pitchblende'), 1, 10) + //.input($HeatRecipeCapability.CAP, new $HeatIngredient(100, 500)) + .dimension('ad_astra:mars') + .duration(20 * 20) + .EUt(GTValues.VA[GTValues.IV]) + .circuit(2); + + event.recipes.gtceu.ostrum_linear_accelerator('tfg:lightweight_ostrum_vapor_t3') + .perTick(true) + .inputFluids('gtceu:residual_radioactive_concoction 1') + .inputFluids(Fluid.of('tfg:semiheavy_water', 1)) + .perTick(false) + .inputFluids(Fluid.of('gtceu:lightweight_ostrum_vapor',1000)) + .inputFluids(Fluid.of('gtceu:radon', 10)) + .inputFluids(Fluid.of('gtceu:krypton', 10)) + .inputFluids(Fluid.of('gtceu:tritiated_water', 10)) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/thorium'), 10, 20) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/silver'), 1, 10) + .itemOutputsRanged(Item.of('gtceu:dusty_raw_tricalcium_phosphate'), 1, 10) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/bauxite'), 1, 10) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/lead'), 10, 10) + .itemOutputsRanged(Item.of('gtceu:dusty_raw_pitchblende'), 10, 20) + .input($HeatRecipeCapability.CAP, new $HeatIngredient(100, 500)) + .dimension('ad_astra:mars') + .duration(20 * 20) + .EUt(GTValues.VA[GTValues.IV]) + .circuit(3); +*/ + //#endregion + +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/recipes.js b/kubejs/server_scripts/tfg/recipes.js index 7f37614ce..858f97f91 100644 --- a/kubejs/server_scripts/tfg/recipes.js +++ b/kubejs/server_scripts/tfg/recipes.js @@ -9,6 +9,7 @@ const registerTFGRecipes = (event) => { registerTFGPapermakingRecipes(event) registerTFGRockRecipes(event) registerTFGCollapseRecipes(event) + registerTFGEarlyPower(event) registerTFGMoldRecipes(event) registerTFGMedicineRecipes(event) registerTFGMiscellaneousRecipes(event) @@ -20,6 +21,7 @@ const registerTFGRecipes = (event) => { registerTFGStoneDustRecipes(event) registerTFGNuclearRecipes(event) registerTFGNuclearComponentsRecipes(event) + registerTFGNOstrumRecipes(event) registerTFGBiochemRecipes(event) registerTFGSpaceOres(event) } diff --git a/kubejs/server_scripts/tfg/recipes.space_ores.js b/kubejs/server_scripts/tfg/recipes.space_ores.js index 80a2a5ffe..72ab73e03 100644 --- a/kubejs/server_scripts/tfg/recipes.space_ores.js +++ b/kubejs/server_scripts/tfg/recipes.space_ores.js @@ -153,55 +153,6 @@ function registerTFGSpaceOres(event) { .duration(20 * 30) .EUt(GTValues.VA[GTValues.LV]); - - // Ostrum Linear Accelerator Recipes - - event.recipes.gtceu.ostrum_linear_accelerator('tfg:ostrum_transformation') - .inputFluids('gtceu:residual_radioactive_concoction 100') - .itemInputs('32x #forge:dusts/ostrum') - .chancedFluidOutputLogic($ChanceLogic.XOR) - .chancedFluidOutput('gtceu:lightweight_ostrum_vapor', 6000, 0) - .chancedFluidOutput('gtceu:ostrum_vapor', 3000, 0) - .chancedFluidOutput('gtceu:dense_ostrum_vapor', 1000, 0) - .dimension('ad_astra:mars') - .duration(20 * 5) - .EUt(GTValues.VA[GTValues.EV]); - - event.recipes.gtceu.ostrum_linear_accelerator('tfg:lightweight_ostrum') - .inputFluids('gtceu:lightweight_ostrum_vapor 1000') - .inputFluids('gtceu:residual_radioactive_concoction 100') - .inputFluids(Fluid.of('tfg:heavy_water', 1000)) - .itemOutputsRanged('#forge:dusty_raw_materials/pitchblende', 1, 10) - .itemOutputsRanged('#forge:dusty_raw_materials/silver', 1, 10) - .itemOutputsRanged('#forge:dusty_raw_materials/tricalcium_phosphate', 1, 10) - .dimension('ad_astra:mars') - .duration(20 * 5) - .EUt(GTValues.VA[GTValues.IV]); - - event.recipes.gtceu.ostrum_linear_accelerator('tfg:ostrum') - .inputFluids('gtceu:ostrum_vapor 1000') - .inputFluids('gtceu:residual_radioactive_concoction 100') - .inputFluids(Fluid.of('gtceu:radon', 100)) - .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/bauxite'), 1, 10) - .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/lead'), 1, 10) - .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/beryllium'), 1, 10) - .dimension('ad_astra:mars') - .duration(20 * 5) - .EUt(GTValues.VA[GTValues.IV]); - - event.recipes.gtceu.ostrum_linear_accelerator('tfg:dense_ostrum') - .inputFluids('gtceu:dense_ostrum_vapor 1000') - .inputFluids('gtceu:residual_radioactive_concoction 100') - .inputFluids(Fluid.of('gtceu:tritiated_water', 500)) - .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/thorium'), 1, 10) - .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/uraninite'), 1, 10) - .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/hematite'), 1, 10) - .dimension('ad_astra:mars') - .duration(20 * 5) - .EUt(GTValues.VA[GTValues.IV]); - - //#endregion - // #region Zirconium event.recipes.gtceu.chemical_reactor('tfg:silicon_tetrachloride') diff --git a/kubejs/startup_scripts/gtceu/machines.js b/kubejs/startup_scripts/gtceu/machines.js index 45e7d1b21..855fb2722 100644 --- a/kubejs/startup_scripts/gtceu/machines.js +++ b/kubejs/startup_scripts/gtceu/machines.js @@ -270,8 +270,8 @@ const registerGTCEuMachines = (event) => { .recipeType('nuclear_fuel_factory') .recipeModifiers( [ - GTRecipeModifiers.PARALLEL_HATCH, - (machine, recipe) => GTRecipeModifiers.pyrolyseOvenOverclock(machine, recipe), + GTRecipeModifiers.PARALLEL_HATCH, + (machine, recipe) => GTRecipeModifiers.pyrolyseOvenOverclock(machine, recipe), GTRecipeModifiers.BATCH_MODE ] ) @@ -451,7 +451,7 @@ const registerGTCEuMachines = (event) => { event.create('ostrum_linear_accelerator', 'multiblock') .rotationState(RotationState.NON_Y_AXIS) - .recipeType('ostrum_linear_accelerator') + .recipeType('dummy_recipe') .recipeModifiers([GTRecipeModifiers.PARALLEL_HATCH, GTRecipeModifiers.OC_NON_PERFECT, GTRecipeModifiers.BATCH_MODE]) .appearanceBlock(() => Block.getBlock('tfg:casings/machine_casing_mars')) .pattern(definition => FactoryBlockPattern.start() @@ -502,4 +502,39 @@ const registerGTCEuMachines = (event) => { 'tfg:block/casings/machine_casing_mars', 'gtceu:block/machines/thermal_centrifuge') -} + //#region Power Rework + + // Coal Liquefaction Tower + + event.create('coal_liquefaction_tower', 'multiblock') + .machine((holder) => new CoilWorkableElectricMultiblockMachine(holder)) + .rotationState(RotationState.NON_Y_AXIS) + .recipeType('coal_liquefaction_tower') + .recipeModifiers([(machine, recipe) => GTRecipeModifiers.crackerOverclock(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') + .aisle('CCC', ' Y ', ' E ', 'E#E', 'EEE', 'BMB') + .aisle('CXC', 'D D', 'D D', 'DED', 'DED', 'BBB' ) + .where('X', Predicates.controller(Predicates.blocks(definition.get()))) + .where('A', Predicates.blocks('gtceu:secure_maceration_casing')) + .where('B', Predicates.blocks('gtceu:solid_machine_casing').setMinGlobalLimited(4) + .or(Predicates.abilities(PartAbility.IMPORT_FLUIDS).setPreviewCount(2)) + .or(Predicates.abilities(PartAbility.IMPORT_ITEMS).setPreviewCount(1))) + .where('C', Predicates.blocks('gtceu:solid_machine_casing') + .or(Predicates.abilities(PartAbility.EXPORT_FLUIDS).setPreviewCount(2)) + .or(Predicates.abilities(PartAbility.INPUT_ENERGY).setMinGlobalLimited(1).setMaxGlobalLimited(2).setPreviewCount(1)) + .or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1).setPreviewCount(1))) + .where('D', Predicates.blocks('create:metal_girder')) + .where('E', Predicates.blocks('gtceu:steam_machine_casing')) + .where('Y', Predicates.heatingCoils()) + .where('M', Predicates.abilities(PartAbility.MUFFLER).setExactLimit(1)) + .where('#', Predicates.air()) + .where(' ', Predicates.any()) + .build() + ) + .workableCasingModel( + 'gtceu:block/casings/solid/machine_casing_solid_steel', + 'gtceu:block/multiblock/distillation_tower') + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/gtceu/recipe_types.js b/kubejs/startup_scripts/gtceu/recipe_types.js index 4550c419c..7f345b855 100644 --- a/kubejs/startup_scripts/gtceu/recipe_types.js +++ b/kubejs/startup_scripts/gtceu/recipe_types.js @@ -39,10 +39,11 @@ const registerGTCEuRecipeTypes = (event) => { event.create('heat_exchanger') .category('heat_exchanger') .setEUIO('in') - .setMaxIOSize(0, 0, 4, 4) + .setMaxIOSize(1, 0, 3, 3) .setSlotOverlay(false, false, GuiTextures.ATOMIC_OVERLAY_1) .setProgressBar(GuiTextures.PROGRESS_BAR_GAS_COLLECTOR, FillDirection.LEFT_TO_RIGHT) .setSound(GTSoundEntries.TURBINE) + /* Just keeping it in case we got mod issues event.create('fission_reactor') .category('fission_reactor') @@ -68,12 +69,20 @@ const registerGTCEuRecipeTypes = (event) => { .setProgressBar(GuiTextures.PROGRESS_BAR_GAS_COLLECTOR, FillDirection.LEFT_TO_RIGHT) .setSound(GTSoundEntries.TURBINE) - event.create('ostrum_linear_accelerator') - .category('ostrum_linear_accelerator') + event.create('dummy_recipe') + .category('dumme_recipe') .setEUIO('in') .setMaxIOSize(1, 3, 3, 3) .setSlotOverlay(false, false, GuiTextures.EXTRACTOR_OVERLAY) .setProgressBar(GuiTextures.PROGRESS_BAR_EXTRACT, FillDirection.LEFT_TO_RIGHT) .setSound(GTSoundEntries.BATH) -} + event.create('coal_liquefaction_tower') + .category('coal_liquefaction_tower') + .setEUIO('in') + .setMaxIOSize(2, 0, 3, 3) + .setSlotOverlay(false, false, GuiTextures.HEATING_OVERLAY_1) + .setProgressBar(GuiTextures.PROGRESS_BAR_DISTILLATION_TOWER, FillDirection.LEFT_TO_RIGHT) + .setSound(GTSoundEntries.COMBUSTION) + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/main_startup_script.js b/kubejs/startup_scripts/main_startup_script.js index 8cbdb2757..27c4287d5 100644 --- a/kubejs/startup_scripts/main_startup_script.js +++ b/kubejs/startup_scripts/main_startup_script.js @@ -60,6 +60,7 @@ GTCEuStartupEvents.registry('gtceu:material', event => { registerTFGMaterials(event) registerTFGNuclearMaterials(event) registerTFGBiolineMaterials(event) + registerTFGPowerReworkMaterials(event) }) GTCEuStartupEvents.registry('gtceu:material_icon_set', event => { diff --git a/kubejs/startup_scripts/tfg/materials.js b/kubejs/startup_scripts/tfg/materials.js index 27a1e6339..604dc83df 100644 --- a/kubejs/startup_scripts/tfg/materials.js +++ b/kubejs/startup_scripts/tfg/materials.js @@ -437,12 +437,12 @@ const registerTFGMaterials = (event) => { .components('2x hydrogen', '12x tungsten', '42x oxygen') .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - event.create('tfg:ammonium_tungstate') - .dust() - .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES, GTMaterialFlags.DISABLE_DECOMPOSITION) - .iconSet(GTMaterialIconSet.DULL) - .components('10x ammonia', '1x tfg:tungstate') - .color('0xfafafa') + event.create('tfg:ammonium_tungstate') + .dust() + .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES, GTMaterialFlags.DISABLE_DECOMPOSITION) + .iconSet(GTMaterialIconSet.DULL) + .components('10x ammonia', '2x hydrogen', '12x tungsten', '42x oxygen') + .color('0xfafafa') event.create('tfg:apt') .gem() @@ -495,6 +495,7 @@ const registerTFGMaterials = (event) => { GTMaterialFlags.EXCLUDE_BLOCK_CRAFTING_BY_HAND_RECIPES, GTMaterialFlags.GENERATE_GEAR ) + .fluidPipeProperties(4250, 1700, true, false, false, false) // #endregion diff --git a/kubejs/startup_scripts/tfg/materials.power_rework.js b/kubejs/startup_scripts/tfg/materials.power_rework.js new file mode 100644 index 000000000..bace22a6d --- /dev/null +++ b/kubejs/startup_scripts/tfg/materials.power_rework.js @@ -0,0 +1,54 @@ + // priority: 0 +"use strict"; + +const registerTFGPowerReworkMaterials = (event) => { + +// Syngas +event.create('tfg:syngas') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(650)) + .components('11x carbon', '20x hydrogen', '12x oxygen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0x7da6c2) + .secondaryColor(0xcfe3ee) + +// Raw Aromatic Mix +event.create('tfg:raw_aromatic_mix') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(420)) + .components('137x carbon', '154x hydrogen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0x8a4b3d) + .secondaryColor(0xd8b6ac) + +// Aromatic Feedstock +event.create('tfg:aromatic_feedstock') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(450)) + .components('67x carbon', '74x hydrogen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0x915c2f) + .secondaryColor(0xe2c49b) + +// Reformed Aromatic Feedstock +event.create('tfg:reformed_aromatic_feedstock') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(500)) + .components('133x carbon', '146x hydrogen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0x4e6b83) + .secondaryColor(0xbacdde) + +// Reformate Gas +event.create('tfg:reformate_gas') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(540)) + .components('13x carbon', '63x hydrogen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0x6c7f4e) + .secondaryColor(0xc7d8b1) + +// Cracker Off-Gas +event.create('tfg:cracker_off_gas') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(480)) + .components('31x carbon', '128x hydrogen', '2x oxygen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xa36f2a) + .secondaryColor(0xecd8ae) + +}