This commit is contained in:
Pyritie 2025-08-07 13:01:29 +01:00
commit bfaad34f2d
473 changed files with 8159 additions and 6681 deletions

View file

@ -44,12 +44,18 @@ const registerTFGItemSize = (event) => {
event.itemSize('tfg:trowel', 'large', 'medium', 'trowel')
event.itemSize('tfg:railgun_ammo_shell', 'large', 'heavy', 'trowel')
event.itemSize('tfg:harvest_basket', 'large', 'medium', 'harvest_basket')
event.itemSize('tfg:aluminium_harvest_basket', 'large', 'medium', 'aluminium_harvest_basket')
event.itemSize('tfg:rapeseed_product', 'small', 'light', 'rapeseed_product')
event.itemSize('tfg:sunflower_product', 'small', 'light', 'sunflower_product')
event.itemSize('betterend:amber_roots', 'small', 'light', 'amber_roots')
event.itemSize('betterend:amber_root_product', 'small', 'light', 'amber_roots')
event.itemSize('betterend:blossom_berry_product', 'small', 'light', 'amber_roots')
event.itemSize('betterend:cave_pumpkin', 'small', 'light', 'amber_roots')
event.itemSize('betterend:chorus_mushroom_product', 'small', 'light', 'amber_roots')
event.itemSize('betterend:shadow_berry_product', 'small', 'light', 'amber_roots')
}
@ -436,7 +442,7 @@ const registerTFGFLPlanters = (event) => {
0.15,
'betterend:bolux_mushroom_seeds',
'betterend:bolux_mushroom_product',
'phosphorus',
'phosphorous',
[
// TODO: all
'betterend:block/bolux_mushroom_greenhouse_0',
@ -455,7 +461,7 @@ const registerTFGFLPlanters = (event) => {
0.15,
'betterend:chorus_mushroom_seeds',
'betterend:chorus_mushroom_product',
'phosphorus',
'phosphorous',
[
'betterend:block/chorus_mushroom_0',
'betterend:block/chorus_mushroom_1',
@ -473,7 +479,7 @@ const registerTFGFLPlanters = (event) => {
0.15,
'betterend:cave_pumpkin_seeds',
'betterend:cave_pumpkin',
'phosphorus',
'phosphorous',
[
// TODO: all
'betterend:block/cave_pumpkin_greenhouse_0',

View file

@ -1,6 +1,36 @@
// priority: 0
"use strict";
const $HeightMap = Java.loadClass("net.minecraft.world.level.levelgen.Heightmap")
const ROCK_LAYER_HEIGHT = 40;
// Bare minimum
TFCEvents.createChunkDataProvider('moon', event => {
var aquifer = [];
let i = 0;
while (i < 16) {
aquifer.push(32);
i++;
}
var heights = [];
for (let x = 0 ; x < 16 ; x++) {
for (let z = 0 ; z < 16 ; z++) {
heights[x + 16 * z] = 80;
}
}
event.partial((data, chunk) => {
data.generatePartial(0, 0, 0, 0, 0)
})
event.full((data, chunk) => {
data.generateFull(heights, aquifer)
})
event.rocks((x, y, z, surfaceY, cache, rockLayers) => {
return rockLayers.sampleAtLayer(0, 0)
})
})
TFCEvents.createChunkDataProvider('mars', event => {
const rain = TFC.misc.lerpFloatLayer(0, 0, 0, 0);
@ -14,15 +44,14 @@ TFCEvents.createChunkDataProvider('mars', event => {
.affine(6, 12)
.scaled(6, 18, 0, 1)
// Precompute the surface & aquifer heights as constants as this is nether and does not realistically change
let heights = [];
const rockNoise = TFC.misc.newOpenSimplex2D(event.worldSeed + 8008135)
.octaves(3)
.scaled(0x80000000, 0x7fffffff) // Integer.MIN_VALUE to Integer.MAX_VALUE
.spread(0.00001) // spread it out so the vaiance is small
// Precompute the aquifer heights as constants as this is not used
var aquifer = [];
let i = 0;
while (i < 256) {
heights.push(127);
i++;
}
let aquifer = [];
i = 0;
while (i < 16) {
aquifer.push(32);
i++;
@ -49,10 +78,16 @@ TFCEvents.createChunkDataProvider('mars', event => {
});
event.full((data, chunk) => {
let heights = [];
for (let z = 0; z < 16; z++) {
for (let x = 0; x < 16; x++) {
heights[x + 16 * z] = chunk.getHeight($HeightMap.Types.OCEAN_FLOOR_WG, x, z);
}
}
data.generateFull(heights, aquifer);
});
event.rocks((x, y, z, surfaceY, cache, rockLayers) => {
return rockLayers.sampleAtLayer(0, 0);
return rockLayers.sampleAtLayer(rockNoise.noise(x, z), (surfaceY - y) / ROCK_LAYER_HEIGHT);
});
})

View file

@ -134,11 +134,14 @@ function registerTFGFoodRecipes(event) {
itemOutputProvider: TFC.isp.of(`2x tfc:food/${grain}_flour`).copyOldestFood()
})
event.recipes.tfc.advanced_shapeless_crafting(
event.recipes.tfc.advanced_shaped_crafting(
TFC.isp.of(`tfc:food/${grain}_flour`).copyFood(), [
TFC.ingredient.notRotten(`tfc:food/${grain}_grain`),
'#forge:tools/mortars'
]).id(`tfg:mortar/${grain}_flour`)
'A',
'B'
], {
A: TFC.ingredient.notRotten(`tfc:food/${grain}_grain`),
B: '#forge:tools/mortars'
}, 0, 0).id(`tfg:mortar/${grain}_flour`)
// Flatbread dough
processorRecipe(`${grain}_flatbread_dough`, 300, 8, {
@ -511,23 +514,23 @@ function registerTFGFoodRecipes(event) {
itemOutputProvider: TFC.isp.of(`4x firmalife:food/masa_flour`).copyOldestFood()
})
event.recipes.tfc.advanced_shapeless_crafting(
TFC.isp.of(`4x firmalife:food/masa_flour`).copyFood(), [
TFC.ingredient.notRotten(`firmalife:food/nixtamal`),
'#forge:tools/mortars'
]).id(`tfg:mortar/masa_flour`)
event.recipes.tfc.advanced_shaped_crafting(
TFC.isp.of(`4x firmalife:food/masa_flour`).copyFood(), ['A', 'B'], {
A: TFC.ingredient.notRotten(`firmalife:food/nixtamal`),
B: '#forge:tools/mortars'
}, 0, 0).id(`tfg:mortar/masa_flour`)
event.recipes.tfc.advanced_shapeless_crafting(
TFC.isp.of(`4x firmalife:food/soybean_paste`).copyFood(), [
TFC.ingredient.notRotten(`firmalife:food/dehydrated_soybeans`),
'#forge:tools/mortars'
]).id(`tfg:mortar/soybean_paste`)
event.recipes.tfc.advanced_shaped_crafting(
TFC.isp.of(`4x firmalife:food/soybean_paste`).copyFood(), ['A', 'B'], {
A: TFC.ingredient.notRotten(`firmalife:food/dehydrated_soybeans`),
B: '#forge:tools/mortars'
}, 0, 0).id(`tfg:mortar/soybean_paste`)
event.recipes.tfc.advanced_shapeless_crafting(
TFC.isp.of(`2x tfc:olive_paste`).copyFood(), [
TFC.ingredient.notRotten(`tfc:food/olive`),
'#forge:tools/mortars'
]).id(`tfg:mortar/olive_paste`)
event.recipes.tfc.advanced_shaped_crafting(
TFC.isp.of(`2x tfc:olive_paste`).copyFood(), ['A', 'B'], {
A: TFC.ingredient.notRotten(`tfc:food/olive`),
B: '#forge:tools/mortars'
}, 0, 0).id(`tfg:mortar/olive_paste`)
processorRecipe('firmalife_masa', 300, 2, {
circuit: 3,
@ -560,6 +563,7 @@ function registerTFGFoodRecipes(event) {
itemInputs: ['tfc:food/olive'],
itemOutputs: ['2x tfc:olive_paste'],
itemOutputProvider: TFC.isp.of('2x tfc:olive_paste'),
circuit: 3
})
processorRecipe("soybean_paste", 60, 8, {
@ -714,7 +718,7 @@ function registerTFGFoodRecipes(event) {
circuit: 10,
itemInputs: ['#tfc:foods/fruits'],
fluidInputs: ['#tfg:clean_water 100'],
fluidOutputs: [Fluid.of('firmalife:yeast_starter', 600)],
fluidOutputs: [Fluid.of('firmalife:yeast_starter', 100)],
})
processorRecipe("cocoa_dust", 100, 4, {
@ -869,7 +873,7 @@ function registerTFGFoodRecipes(event) {
.itemOutput('tfg:food/ice_soup')
.id('tfg:pot/ice_soup')
event.shapeless('4x tfc:powder/salt', ['#forge:dusts/salt', '#forge:tools/mortars'])
event.shaped('4x tfc:powder/salt', ['A', 'B'], {A: '#forge:dusts/salt', B: '#forge:tools/mortars'})
.id(`tfg:mortar/salt`)
//#endregion
@ -943,6 +947,17 @@ function registerTFGFoodRecipes(event) {
.circuit(7)
.EUt(GTValues.VA[GTValues.LV])
event.shaped('tfg:electric_greenhouse', [
'ABA',
'CDC',
'BCB'
], {
A: '#gtceu:circuits/mv',
B: '#forge:single_cables/copper',
C: 'tfc:compost',
D: 'gtceu:steel_machine_casing'
}).id('tfg:shaped/electric_greenhouse')
// Tweaks to the machine crafts that are more annoying to do in java
event.replaceInput({id: 'gtceu:shaped/lv_food_processor'}, 'gtceu:lv_electric_piston', 'gtceu:steel_whisk')
event.replaceInput({id: 'gtceu:shaped/mv_food_processor'}, 'gtceu:mv_electric_piston', 'gtceu:aluminium_whisk')

View file

@ -43,6 +43,13 @@ function registerTFGMiscellaneousRecipes(event) {
event.recipes.tfc.pot('tfc:powder/charcoal', Fluid.of('tfg:conifer_pitch', 1000), 1200, 300)
.itemOutput('tfg:conifer_rosin')
.id('tfg:pot/conifer_pitch_to_rosin')
event.recipes.gtceu.fluid_solidifier('tfg:pitch_to_rosin')
.inputFluids(Fluid.of('tfg:conifer_pitch', 1000))
.itemInputs('tfc:powder/charcoal')
.itemOutputs('tfg:conifer_rosin')
.duration(20*24)
.EUt(GTValues.VA[GTValues.LV])
// Decorative Vases
global.MINECRAFT_DYE_NAMES.forEach(color => {
@ -990,6 +997,7 @@ function registerTFGMiscellaneousRecipes(event) {
.EUt(GTValues.VA[GTValues.EV])
//endregion
//#region Casings
global.GTCEU_SUPERCONDUCTORS.forEach((type, index) => {
const multiplier = index + 1
@ -1000,7 +1008,7 @@ function registerTFGMiscellaneousRecipes(event) {
ChemicalHelper.get(TagPrefix.rod, GTMaterials.SteelMagnetic, 1),
ChemicalHelper.get(TagPrefix.wireFine, GTMaterials[type.materialId], 4)
)
.inputFluids(Fluid.of('gtceu:silicone_rubber', 144))
.inputFluids(Fluid.of('gtceu:epoxy', 144))
.itemOutputs(Item.of('tfg:superconductor_coil_small', 4 * multiplier))
.circuit(4)
.duration(400)
@ -1012,7 +1020,7 @@ function registerTFGMiscellaneousRecipes(event) {
ChemicalHelper.get(TagPrefix.rod, GTMaterials.Steel, 2),
ChemicalHelper.get(TagPrefix.rod, GTMaterials.SteelMagnetic, 1),
ChemicalHelper.get(TagPrefix.wireGtSingle, GTMaterials[type.materialId], 4))
.inputFluids(Fluid.of('gtceu:silicone_rubber', 144))
.inputFluids(Fluid.of('gtceu:epoxy', 144))
.itemOutputs(Item.of('tfg:superconductor_coil_large', 4 * multiplier))
.circuit(7)
.duration(600)
@ -1031,6 +1039,18 @@ function registerTFGMiscellaneousRecipes(event) {
.circuit(4)
.duration(800)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.assembler('tfg:assembler/machine_casing_aluminium_plated_steel')
.itemInputs(
ChemicalHelper.get(TagPrefix.plate, GTMaterials.Aluminium, 6),
ChemicalHelper.get(TagPrefix.frameGt, GTMaterials.Steel, 1),
)
.inputFluids(Fluid.of('gtceu:silicon', 72))
.itemOutputs('2x tfg:machine_casing_aluminium_plated_steel')
.circuit(6)
.duration(20 * (2.5))
.EUt(GTValues.VH[GTValues.LV])
//#endregion
//region ammonia borane
event.recipes.gtceu.chemical_reactor('tfg:sodium_hydride_synthesis')
@ -1137,57 +1157,130 @@ function registerTFGMiscellaneousRecipes(event) {
//Tier 3 insulation
event.recipes.gtceu.forming_press('tfg:mli_shielding')
.itemInputs('4x #forge:dusts/ammonia_borane', '2x tfg:aes_polyurethane', '4x gtceu:carbon_fiber_plate')
.itemInputs('4x #forge:plates/ammonia_borane', '2x tfg:aes_polyurethane', '4x gtceu:carbon_fiber_plate')
.itemOutputs('tfg:mli_shielding')
.duration(100)
.EUt(GTValues.VA[GTValues.IV])
//endregion
// Universal compost
const COMPOST_COLORS = ['browns', 'greens'];
COMPOST_COLORS.forEach(color => {
//#region Universal compost
//Greens
// Lows via crafting with mortar
event.shapeless(Item.of(`tfg:universal_compost_${color}`, 1), [
Ingredient.of([`#tfc:compost_${color}_low`]).subtract([`tfg:universal_compost_${color}`]),
'#forge:tools/mortars'
])
.id(`tfg:shapeless/universal_compost_${color}_low`)
event.shaped(Item.of('tfg:universal_compost_greens', 1), [
'AB'
], {
A: Ingredient.of(['#tfc:compost_greens_low']).subtract(['tfg:universal_compost_greens']),
B: '#forge:tools/mortars'
}).id('tfg:shaped/universal_compost_greens_from_low')
// Mediums via crafting with mortar
event.shapeless(Item.of(`tfg:universal_compost_${color}`, 2), [
`#tfc:compost_${color}`,
'#forge:tools/mortars'
])
.id(`tfg:shapeless/universal_compost_${color}_medium`)
event.shaped(Item.of('tfg:universal_compost_greens', 2), [
'AB'
], {
A: '#tfc:compost_greens',
B: '#forge:tools/mortars'
}).id('tfg:shaped/universal_compost_greens_from_medium')
// Highs via crafting with mortar
event.shapeless(Item.of(`tfg:universal_compost_${color}`, 4), [
`#tfc:compost_${color}_high`,
'#forge:tools/mortars'
])
.id(`tfg:shapeless/universal_compost_${color}_high`)
event.shaped(Item.of('tfg:universal_compost_greens', 4), [
'AB'
], {
A: '#tfc:compost_greens_high',
B: '#forge:tools/mortars'
}).id('tfg:shaped/universal_compost_greens_from_high')
// Filters
const greens_low = Ingredient.of('#tfc:compost_greens_low')
const browns_low = Ingredient.of('#tfc:compost_browns_low').itemIds
const greens_medium = Ingredient.of('#tfc:compost_greens')
const browns_medium = Ingredient.of('#tfc:compost_browns').itemIds
const greens_high = Ingredient.of('#tfc:compost_greens_high')
const browns_high = Ingredient.of('#tfc:compost_browns_high').itemIds
let low_filtered = greens_low
let medium_filtered = greens_medium
let high_filtered = greens_high
browns_low.forEach(item => {
low_filtered = low_filtered.subtract(item)
low_filtered = low_filtered.subtract('tfg:universal_compost_greens')
})
browns_medium.forEach(item => {
medium_filtered = medium_filtered.subtract(item)
})
browns_high.forEach(item => {
high_filtered = high_filtered.subtract(item)
})
// Lows via forge hammer
event.recipes.gtceu.forge_hammer(`tfg:universal_compost_${color}_low`)
.itemInputs(Ingredient.of(`#tfc:compost_${color}_low`).subtract(`tfg:universal_compost_${color}`))
.itemOutputs(`tfg:universal_compost_${color}`)
event.recipes.gtceu.forge_hammer('tfg:universal_compost_greens_low')
.itemInputs(low_filtered)
.itemOutputs('tfg:universal_compost_greens')
.duration(20)
.EUt(8)
// Mediums via forge hammer
event.recipes.gtceu.forge_hammer(`tfg:universal_compost_${color}_medium`)
.itemInputs(`#tfc:compost_${color}`)
.itemOutputs(Item.of(`tfg:universal_compost_${color}`, 2))
event.recipes.gtceu.forge_hammer('tfg:universal_compost_greens_medium')
.itemInputs(medium_filtered)
.itemOutputs(Item.of('tfg:universal_compost_greens', 2))
.duration(20)
.EUt(8)
// Highs via forge hammer
event.recipes.gtceu.forge_hammer(`tfg:universal_compost_${color}_high`)
.itemInputs(`#tfc:compost_${color}_high`)
.itemOutputs(Item.of(`tfg:universal_compost_${color}`, 4))
event.recipes.gtceu.forge_hammer('tfg:universal_compost_greens_high')
.itemInputs(high_filtered)
.itemOutputs(Item.of('tfg:universal_compost_greens', 4))
.duration(20)
.EUt(8)
})
//Browns
// Lows via crafting with mortar
event.shaped(Item.of('tfg:universal_compost_browns', 1), [
'BA'
], {
A: Ingredient.of(['#tfc:compost_browns_low']).subtract(['tfg:universal_compost_browns']),
B: '#forge:tools/mortars'
}).id('tfg:shaped/universal_compost_browns_from_low')
// Mediums via crafting with mortar
event.shaped(Item.of('tfg:universal_compost_browns', 2), [
'BA'
], {
A: '#tfc:compost_browns',
B: '#forge:tools/mortars'
}).id('tfg:shaped/universal_compost_browns_from_medium')
// Highs via crafting with mortar
event.shaped(Item.of('tfg:universal_compost_browns', 4), [
'BA'
], {
A: '#tfc:compost_browns_high',
B: '#forge:tools/mortars'
}).id('tfg:shaped/universal_compost_browns_from_high')
// Lows via forge hammer
event.recipes.gtceu.forge_hammer('tfg:universal_compost_browns_low')
.itemInputs('#tfc:compost_browns_low')
.itemOutputs('tfg:universal_compost_browns')
.duration(20)
.EUt(8)
// Mediums via forge hammer
event.recipes.gtceu.forge_hammer('tfg:universal_compost_browns_medium')
.itemInputs('#tfc:compost_browns')
.itemOutputs(Item.of('tfg:universal_compost_browns', 2))
.duration(20)
.EUt(8)
// Highs via forge hammer
event.recipes.gtceu.forge_hammer('tfg:universal_compost_browns_high')
.itemInputs('#tfc:compost_browns_high')
.itemOutputs(Item.of('tfg:universal_compost_browns', 4))
.duration(20)
.EUt(8)
//#endregion
// Etching Tip
event.recipes.tfc.damage_inputs_shapeless_crafting(event.recipes.minecraft.crafting_shapeless('tfg:etching_diamond_tip',[

View file

@ -95,6 +95,53 @@ function registerTFGSpaceRecipes(event) {
.addDataString("fluidA", "minecraft:lava")
.outputFluids(Fluid.of("minecraft:lava", 1000))
event.recipes.gtceu.aqueous_accumulator('water_moon')
.circuit(aaCircuit++)
.dimension('ad_astra:moon')
.duration(20*5)
.EUt(GTValues.VHA[GTValues.MV])
.addDataString("fluidA", "minecraft:water")
.outputFluids(Fluid.of("minecraft:water", 1000))
event.recipes.gtceu.aqueous_accumulator('sea_water_moon')
.circuit(aaCircuit++)
.dimension('ad_astra:moon')
.duration(20*5)
.EUt(GTValues.VA[GTValues.MV])
.addDataString("fluidA", "tfc:salt_water")
.outputFluids(Fluid.of("tfc:salt_water", 1000))
event.recipes.gtceu.aqueous_accumulator('water_orbit')
.circuit(aaCircuit++)
.dimension('ad_astra:earth_orbit')
.dimension('ad_astra:moon_orbit')
.dimension('ad_astra:mars_orbit')
.dimension('ad_astra:venus_orbit')
.dimension('ad_astra:mercury_orbit')
.duration(20*5)
.EUt(GTValues.VHA[GTValues.MV])
.addDataString("fluidA", "minecraft:water")
.outputFluids(Fluid.of("minecraft:water", 1000))
event.recipes.gtceu.aqueous_accumulator('sea_water_orbit')
.circuit(aaCircuit)
.dimension('ad_astra:earth_orbit')
.dimension('ad_astra:moon_orbit')
.dimension('ad_astra:mars_orbit')
.dimension('ad_astra:venus_orbit')
.dimension('ad_astra:mercury_orbit')
.duration(20*5)
.EUt(GTValues.VA[GTValues.MV])
.addDataString("fluidA", "tfc:salt_water")
.outputFluids(Fluid.of("tfc:salt_water", 1000))
event.recipes.gtceu.aqueous_accumulator('semiheavy_water_mars')
.dimension('ad_astra:mars')
.duration(20)
.EUt(GTValues.VHA[GTValues.ULV])
.addDataString("fluidA", "tfg:semiheavy_ammoniacal_water")
.outputFluids(Fluid.of("tfg:semiheavy_ammoniacal_water", 1000))
// Plants - Can't use the default builder here because fertiliser is much harder to get on the moon,
// and we're using helium-3 as the fertiliser
@ -214,4 +261,84 @@ function registerTFGSpaceRecipes(event) {
.duration(300)
.EUt(GTValues.VA[GTValues.EV])
.cleanroom(CleanroomType.CLEANROOM)
// Railgun stuff
event.recipes.gtceu.assembler('tfg:railgun_ammo_basic')
.itemInputs('#forge:double_plates/steel', '2x #forge:rods/magnetic_iron', '2x #forge:fine_wires/annealed_copper')
.inputFluids('gtceu:rocket_fuel 250')
.itemOutputs('tfg:railgun_ammo_shell')
.duration(20 * 10)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.assembler('tfg:railgun_ammo_advanced')
.itemInputs('#forge:double_plates/titanium', '2x #forge:rods/magnetic_steel', '2x #forge:fine_wires/gold')
.inputFluids('gtceu:rocket_fuel 250')
.itemOutputs('4x tfg:railgun_ammo_shell')
.duration(20 * 10)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.assembler('tfg:railgun_ammo_best')
.itemInputs('#forge:double_plates/tungsten', '2x #forge:rods/magnetic_neodymium', '2x #forge:fine_wires/aluminium')
.inputFluids('gtceu:rocket_fuel 250')
.itemOutputs('8x tfg:railgun_ammo_shell')
.duration(20 * 10)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.assembler('tfg:railgun_ammo_moon')
.itemInputs('#forge:double_plates/steel', '2x ae2:charged_certus_quartz_crystal', '2x ae2:quartz_fiber')
.inputFluids('gtceu:rocket_fuel 250')
.itemOutputs('4x tfg:railgun_ammo_shell')
.dimension('ad_astra:moon')
.duration(20 * 10)
.EUt(GTValues.VA[GTValues.MV])
event.shaped('tfg:railgun_ammo_loader', [
'RMR',
'MBM',
'CCC'
], {
B: 'gtceu:mv_input_bus',
R: 'gtceu:mv_robot_arm',
M: 'gtceu:mv_electric_motor',
C: '#forge:single_cables/annealed_copper'
}).id('tfg:shaped/railgun_ammo_loader')
event.shaped('tfg:interplanetary_logistics_monitor', [
'CDC',
'SHE',
'WCW'
], {
C: '#gtceu:circuits/hv',
D: 'gtceu:computer_monitor_cover',
S: 'gtceu:hv_sensor',
H: 'gtceu:hv_machine_hull',
E: 'gtceu:hv_emitter',
W: '#forge:single_cables/silver'
}).id('tfg:shaped/interplanetary_logistics_monitor')
event.shaped('tfg:interplanetary_item_launcher', [
'NSN',
'CHC',
'NEN'
], {
C: '#gtceu:circuits/iv',
S: 'gtceu:hv_sensor',
E: 'gtceu:hv_emitter',
H: 'gtceu:ev_machine_hull',
N: '#forge:plates/hsla_steel'
}).id('tfg:shaped/interplanetary_item_launcher')
event.shaped('tfg:interplanetary_item_receiver', [
'CSC',
'WHW',
'CSC'
], {
C: '#gtceu:circuits/mv',
S: 'gtceu:mv_sensor',
W: '#forge:double_cables/copper',
H: 'gtceu:mv_machine_hull'
}).id('tfg:shaped/interplanetary_item_receiver')
// the railgun inputs and outputs are in tfg-core
}

View file

@ -47,7 +47,7 @@ function registerTFGSupportRecipes(event) {
}).id('tfg:shaped/light_concrete_support'))
event.recipes.gtceu.assembler('tfg:gtceu/assembler/light_concrete_support')
.circuit(4)
.circuit(11)
.inputFluids(Fluid.of('gtceu:concrete', 36))
.itemOutputs('8x tfg:light_concrete_support')
.itemInputs('3x gtceu:light_concrete')
@ -66,7 +66,7 @@ function registerTFGSupportRecipes(event) {
}).id('tfg:shaped/dark_concrete_support'))
event.recipes.gtceu.assembler('tfg:gtceu/assembler/dark_concrete_support')
.circuit(4)
.circuit(11)
.inputFluids(Fluid.of('gtceu:concrete', 36))
.itemOutputs('8x tfg:dark_concrete_support')
.itemInputs('3x gtceu:dark_concrete')
@ -98,7 +98,7 @@ function registerTFGSupportRecipes(event) {
}).id(`tfg:shaped/mossy/${stone}_support`))
event.recipes.gtceu.assembler(`tfg:gtceu/assembler/${stone}_support`)
.circuit(4)
.circuit(11)
.inputFluids(Fluid.of('gtceu:concrete', 36))
.itemOutputs(`8x tfg:${stone}_support`)
.itemInputs(`3x tfc:rock/loose/${stone}`)
@ -106,7 +106,7 @@ function registerTFGSupportRecipes(event) {
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.assembler(`tfg:gtceu/assembler/mossy/${stone}_support`)
.circuit(4)
.circuit(11)
.inputFluids(Fluid.of('gtceu:concrete', 36))
.itemOutputs(`8x tfg:${stone}_support`)
.itemInputs(`3x tfc:rock/mossy_loose/${stone}`)
@ -126,7 +126,7 @@ function registerTFGSupportRecipes(event) {
}).id('tfg:shaped/travertine_support'))
event.recipes.gtceu.assembler('tfg:gtceu/assembler/travertine_support')
.circuit(4)
.circuit(11)
.inputFluids(Fluid.of('gtceu:concrete', 36))
.itemOutputs('8x tfg:travertine_support')
.itemInputs('3x tfg:loose/dripstone')
@ -145,7 +145,7 @@ function registerTFGSupportRecipes(event) {
}).id('tfg:shaped/migmatite_support'))
event.recipes.gtceu.assembler('tfg:gtceu/assembler/migmatite_support')
.circuit(4)
.circuit(11)
.inputFluids(Fluid.of('gtceu:concrete', 36))
.itemOutputs('8x tfg:migmatite_support')
.itemInputs('3x tfg:loose/deepslate')
@ -164,7 +164,7 @@ function registerTFGSupportRecipes(event) {
}).id('tfg:shaped/pyroxenite_support'))
event.recipes.gtceu.assembler('tfg:gtceu/assembler/pyroxenite_support')
.circuit(4)
.circuit(11)
.inputFluids(Fluid.of('gtceu:concrete', 36))
.itemOutputs('8x tfg:pyroxenite_support')
.itemInputs('3x beneath:blackstone_pebble')
@ -182,7 +182,7 @@ function registerTFGSupportRecipes(event) {
}).id('tfg:shaped/rebar_support')
event.recipes.gtceu.assembler('tfg:gtceu/assembler/rebar_support')
.circuit(4)
.circuit(11)
.itemOutputs('8x tfg:rebar_support')
.itemInputs(ChemicalHelper.get(TagPrefix.rod, GTMaterials.Steel, 2), ChemicalHelper.get(TagPrefix.wireFine, GTMaterials.Steel, 1))
.duration(100)
@ -199,7 +199,7 @@ function registerTFGSupportRecipes(event) {
.id('tfg:anvil/steel_support')
event.recipes.gtceu.assembler('tfg:gtceu/assembler/steel_support')
.circuit(4)
.circuit(11)
.itemOutputs('4x tfg:steel_support')
.itemInputs('2x #forge:double_ingots/steel')
.duration(100)
@ -229,4 +229,4 @@ function registerTFGSupportRecipes(event) {
.duration(GTMaterials.Steel.getMass() * 2)
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
}
}

View file

@ -191,9 +191,6 @@ const registerTFGItemTags = (event) => {
event.add('tfg:any_iron_double_ingot', '#forge:double_ingots/iron')
event.add('tfg:any_iron_double_ingot', '#forge:double_ingots/wrought_iron')
event.add('tfg:any_iron_plate', '#forge:double_plates/iron')
event.add('tfg:any_iron_plate', '#forge:double_plates/wrought_iron')
event.add('tfg:any_bronze_frame', '#forge:frames/bronze')
event.add('tfg:any_bronze_frame', '#forge:frames/bismuth_bronze')
event.add('tfg:any_bronze_frame', '#forge:frames/black_bronze')
@ -243,6 +240,34 @@ const registerTFGItemTags = (event) => {
event.add('tfg:foods/usable_in_meal_bag', 'tfc:food/boiled_egg');
//#endregion
//#region Blacklisted from the railgun
event.add('tfg:cannot_launch_in_railgun', '#tfc:vessels')
event.add('tfg:cannot_launch_in_railgun', '#tfc:large_vessels')
event.add('tfg:cannot_launch_in_railgun', 'ae2:item_storage_cell_1k')
event.add('tfg:cannot_launch_in_railgun', 'ae2:item_storage_cell_4k')
event.add('tfg:cannot_launch_in_railgun', 'ae2:item_storage_cell_16k')
event.add('tfg:cannot_launch_in_railgun', 'ae2:item_storage_cell_64k')
event.add('tfg:cannot_launch_in_railgun', 'ae2:item_storage_cell_256k')
event.add('tfg:cannot_launch_in_railgun', 'ae2:fluid_storage_cell_1k')
event.add('tfg:cannot_launch_in_railgun', 'ae2:fluid_storage_cell_4k')
event.add('tfg:cannot_launch_in_railgun', 'ae2:fluid_storage_cell_16k')
event.add('tfg:cannot_launch_in_railgun', 'ae2:fluid_storage_cell_64k')
event.add('tfg:cannot_launch_in_railgun', 'ae2:fluid_storage_cell_256k')
event.add('tfg:cannot_launch_in_railgun', 'ae2:spatial_storage_cell_2')
event.add('tfg:cannot_launch_in_railgun', 'ae2:spatial_storage_cell_16')
event.add('tfg:cannot_launch_in_railgun', 'ae2:spatial_storage_cell_128')
event.add('tfg:cannot_launch_in_railgun', 'megacells:item_storage_cell_1m')
event.add('tfg:cannot_launch_in_railgun', 'megacells:item_storage_cell_4m')
event.add('tfg:cannot_launch_in_railgun', 'megacells:item_storage_cell_16m')
event.add('tfg:cannot_launch_in_railgun', 'megacells:item_storage_cell_64m')
event.add('tfg:cannot_launch_in_railgun', 'megacells:fluid_storage_cell_1m')
event.add('tfg:cannot_launch_in_railgun', 'megacells:fluid_storage_cell_4m')
event.add('tfg:cannot_launch_in_railgun', 'megacells:fluid_storage_cell_16m')
event.add('tfg:cannot_launch_in_railgun', 'megacells:fluid_storage_cell_64m')
event.add('tfg:cannot_launch_in_railgun', 'create:minecart_contraption')
event.add('tfg:cannot_launch_in_railgun', 'tfg:railgun_ammo_shell')
//#endregion
// #region Space blocks
event.add('tfg:moon_plants', 'tfg:lunar_roots')
event.add('tfg:moon_plants', 'tfg:lunar_sprouts')
@ -415,6 +440,11 @@ const registerTFGBlockTags = (event) => {
event.add('tfg:harvester_harvestable', '#tfc:fruit_tree_leaves')
event.add('tfg:harvester_harvestable', '#tfc:berry_bushes')
event.add('tfg:harvester_harvestable', '#tfc:any_spreading_bush')
event.add('tfg:harvester_harvestable', '#firmalife:grape_strings')
event.add('tfg:harvester_harvestable', '#firmalife:grape_trellis_posts_plant')
//added for QOL but doesnt harvest anything
event.add('tfg:harvester_harvestable', 'firmalife:grape_fluff_red')
event.add('tfg:harvester_harvestable', 'firmalife:grape_fluff_white')
event.add('minecraft:mineable/pickaxe', 'tfg:superconductor_coil_large')
event.add('minecraft:mineable/pickaxe', 'tfg:superconductor_coil_small')