Rework Early Game Fuel (#2309)

* Add materials and multiblock

* try to fix conflict

* Fix conflict

* Fix conflict

* Rework tungsten line (#5)

* fix materials

* Update Ostrum to core

* Fix conflict

* fix conflict

* Fix fucking conflict

* Upload more changes

* Add more things

* Introduce new gas fuel

* Add Anthracite

* Add Syngas early game and more modifications

* More fixes

* Add textures to fluid
This commit is contained in:
TomPlop 2025-12-01 08:42:45 -05:00 committed by GitHub
parent 9b80745869
commit 72ae40a2b4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
19 changed files with 609 additions and 136 deletions

View file

@ -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
}
}
}

View file

@ -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"
}
}
}
}
}

View file

@ -0,0 +1,3 @@
{
"parent": "tfg:block/machines/ostrum_linear_accelerator"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View file

@ -0,0 +1,5 @@
{
"animation": {
"frametime": 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View file

@ -0,0 +1,5 @@
{
"animation": {
"frametime": 1
}
}

View file

@ -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')
}

View file

@ -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(

View file

@ -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)
}

View file

@ -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)

View file

@ -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
}

View file

@ -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)
}

View file

@ -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')

View file

@ -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')
}

View file

@ -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)
}

View file

@ -60,6 +60,7 @@ GTCEuStartupEvents.registry('gtceu:material', event => {
registerTFGMaterials(event)
registerTFGNuclearMaterials(event)
registerTFGBiolineMaterials(event)
registerTFGPowerReworkMaterials(event)
})
GTCEuStartupEvents.registry('gtceu:material_icon_set', event => {

View file

@ -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

View file

@ -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)
}