Merge branch 'dev' into feature/create-6

This commit is contained in:
Pyritie 2025-05-05 16:10:07 +01:00
commit fdebad6f76
799 changed files with 48367 additions and 35818 deletions

View file

@ -830,15 +830,15 @@ const registerAE2Recipes = (event) => {
// Wireless Crafting Terminal
event.recipes.gtceu.assembler('ae2:wireless_crafting_terminal')
.itemInputs(
'2x gtceu:hv_lithium_battery',
'2x gtceu:luv_sensor',
'gtceu:luv_emitter',
'2x #forge:rods/osmiridium',
'2x #gtceu:batteries/ev',
'2x gtceu:ev_sensor',
'gtceu:ev_emitter',
'2x #forge:rods/ultimet',
'ae2:wireless_terminal',
'ae2:crafting_terminal')
.itemOutputs('ae2:wireless_crafting_terminal')
.duration(30)
.EUt(250)
.duration(300)
.EUt(GTValues.VA[GTValues.EV])
//#region Storage Components
@ -2119,16 +2119,6 @@ const registerAE2Recipes = (event) => {
.duration(60)
.EUt(256)
//charger
event.recipes.gtceu.assembler('ae2:charger')
.itemInputs(
'gtceu:hv_battery_buffer_4x',
'4x gtceu:mercury_barium_calcium_cuprate_quadruple_wire',)
.inputFluids(Fluid.of('tfg:fluix', 476))
.itemOutputs('ae2:charger')
.duration(200)
.EUt(480)
// Fluix block
event.recipes.gtceu.fluid_solidifier('ae2:solidify_fluix_block')

View file

@ -13,30 +13,28 @@ const registerAE2WTLibRecipes = (event) => {
// Wireless Pattern Terminal
event.recipes.gtceu.assembler('ae2wtlib:wireless_pattern_encoding_terminal')
.itemInputs(
'2x gtceu:hv_lithium_battery',
'2x #gtceu:batteries/ev',
'ae2:wireless_terminal',
'ae2:pattern_encoding_terminal',
'2x gtceu:luv_sensor',
'gtceu:luv_emitter',
'2x #forge:rods/osmiridium',
)
'2x gtceu:ev_sensor',
'gtceu:ev_emitter',
'2x #forge:rods/ultimet')
.itemOutputs('ae2wtlib:wireless_pattern_encoding_terminal')
.duration(30)
.EUt(250)
.duration(300)
.EUt(GTValues.VA[GTValues.EV])
// Pattern Access Terminal
event.recipes.gtceu.assembler('ae2wtlib:wireless_pattern_access_terminal')
.itemInputs(
'2x gtceu:hv_lithium_battery',
'2x #gtceu:batteries/ev',
'ae2:wireless_terminal',
'ae2:pattern_access_terminal',
'2x gtceu:luv_sensor',
'gtceu:luv_emitter',
'2x #forge:rods/osmiridium'
)
'2x gtceu:ev_sensor',
'gtceu:ev_emitter',
'2x #forge:rods/ultimet')
.itemOutputs('ae2wtlib:wireless_pattern_access_terminal')
.duration(30)
.EUt(250)
.duration(300)
.EUt(GTValues.VA[GTValues.EV])
// Magnet Card
event.recipes.gtceu.assembler('ae2wtlib:magnet_card')
@ -44,12 +42,9 @@ const registerAE2WTLibRecipes = (event) => {
'#forge:ingots/magnetic_neodymium',
'4x #forge:rods/magnetic_neodymium',
'ae2:advanced_card',
'ae2:annihilation_plane',
'#forge:plates/redstone',
'#forge:plates/lapis',
)
'ae2:annihilation_plane')
.itemOutputs('ae2wtlib:magnet_card')
.duration(30)
.duration(300)
.EUt(250)
// Quantum Bridge Card
@ -70,4 +65,19 @@ const registerAE2WTLibRecipes = (event) => {
.itemOutputs('ae2wtlib:quantum_bridge_card')
.duration(300)
.EUt(64000)
event.remove({ output: 'ae2wtlib:wireless_universal_terminal' })
event.recipes.gtceu.assembler('ae2wtlib:wireless_universal_terminal')
.itemInputs(
'ae2:wireless_crafting_terminal',
'ae2wtlib:wireless_pattern_encoding_terminal',
'ae2wtlib:wireless_pattern_access_terminal',
'1x gtceu:iv_sensor',
'1x gtceu:iv_emitter',
'2x #forge:plates/rhodium')
.itemOutputs(Item.of('ae2wtlib:wireless_universal_terminal', '{crafting:1b, pattern_access:1b, pattern_encoding:1b}'))
.duration(300)
.EUt(GTValues.VA[GTValues.IV])
}

View file

@ -155,27 +155,45 @@ const registerAFCRecipes = (event) => {
.id("tfg:tree_tapping/ancient_douglas_fir_resin")
//#region Выход: Сырая резиновая пыль
// Removed in favor of making these output latex
// // Из бревна капока
// event.recipes.gtceu.extractor('raw_rubber_from_log')
// .itemInputs('#tfg:latex_logs')
// .itemOutputs('gtceu:raw_rubber_dust')
// .duration(300)
// .EUt(2)
// Из бревна капока
event.recipes.gtceu.extractor('raw_rubber_from_log')
.itemInputs('#tfg:latex_logs')
.itemOutputs('gtceu:raw_rubber_dust')
.duration(300)
.EUt(2)
// // Из саженца капока
// event.recipes.gtceu.extractor('raw_rubber_from_sapling')
// .itemInputs('1x #tfg:rubber_saplings')
// .itemOutputs('gtceu:raw_rubber_dust')
// .duration(300)
// .EUt(2)
// Из саженца капока
event.recipes.gtceu.extractor('raw_rubber_from_sapling')
.itemInputs('1x #tfg:rubber_saplings')
.itemOutputs('gtceu:raw_rubber_dust')
.duration(300)
.EUt(2)
// // Из листвы капока
// event.recipes.gtceu.extractor('raw_rubber_from_leaves')
// .itemInputs('16x #tfg:rubber_leaves')
// .itemOutputs('gtceu:raw_rubber_dust')
// .duration(300)
// .EUt(2)
// Из листвы капока
event.recipes.gtceu.extractor('raw_rubber_from_leaves')
.itemInputs('16x #tfg:rubber_leaves')
.itemOutputs('gtceu:raw_rubber_dust')
.duration(300)
.EUt(2)
event.recipes.gtceu.extractor('latex_from_log')
.itemInputs('4x #tfg:latex_logs')
.outputFluids(Fluid.of('tfg:latex', 1000))
.duration(600)
.EUt(20)
event.recipes.gtceu.extractor('latex_from_sapling')
.itemInputs('10x #tfg:rubber_saplings')
.outputFluids(Fluid.of('tfg:latex', 1000))
.duration(750)
.EUt(20)
event.recipes.gtceu.extractor('latex_from_leaves')
.itemInputs('20x #tfg:rubber_leaves')
.outputFluids(Fluid.of('tfg:latex', 1000))
.duration(750)
.EUt(20)
event.replaceOutput({ id: 'gtceu:centrifuge/sticky_resin_separation' }, 'gtceu:raw_rubber_dust', '3x gtceu:carbon_dust')

View file

@ -59,6 +59,9 @@ const registerAFCItemTags = (event) => {
event.add("tfg:rubber_leaves", "afc:wood/leaves/red_silk_cotton")
event.add("tfg:rubber_leaves", "afc:wood/leaves/hevea")
event.add("tfg:rubber_leaves", "afc:wood/leaves/rubber_fig")
event.add("tfg:rubber_plants", "tfc:plant/goldenrod")
event.add("tfg:rubber_plants", "tfc:plant/dandelion")
}

View file

@ -6,19 +6,21 @@ const registerComfortsRecipes = (event) => {
event.remove({ mod: "comforts" })
//Rope and Nail
event.recipes.minecraft.crafting_shapeless("comforts:rope_and_nail", ["firmaciv:rope_coil", "gtceu:wrought_iron_screw"])
event.shapeless("comforts:rope_and_nail", ["firmaciv:rope_coil", "gtceu:wrought_iron_screw"])
.id("comforts:crafting/shaped/rope_and_nail");
//sleeping bag
event.recipes.minecraft.crafting_shaped("comforts:sleeping_bag_white", [
"AAA",
"B "
], {
A: "#tfc:high_quality_cloth",
B: 'tfc:bone_needle'
});
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped("comforts:sleeping_bag_white", [
"AAA",
"B "
], {
A: "#tfc:high_quality_cloth",
B: 'tfc:bone_needle'
})
).id('comforts:shaped/sleeping_bag_white');
event.recipes.minecraft.crafting_shaped("comforts:hammock_white", [
event.shaped("comforts:hammock_white", [
"ABA",
"CCC",
"ABA"

View file

@ -3,7 +3,7 @@
const registerComputerCraftData = (event) => {
const TURTLE_TOOL_TYPES = [ GTToolType.SWORD, GTToolType.PICKAXE, GTToolType.AXE, GTToolType.SHOVEL, GTToolType.HOE ]
GTMaterialRegistry.getRegisteredMaterials().forEach(material => {
forEachMaterial(material => {
TURTLE_TOOL_TYPES.forEach(type => {
let toolStack = ToolHelper.get(type, material)

View file

@ -5,7 +5,6 @@ const registerCreateRecipes = (event) => {
// Удаление рецептов мода create
event.remove({
not: [
{ id: 'create:crafting/kinetics/adjustable_chain_gearshift' },
{ id: 'create:crafting/kinetics/cuckoo_clock' },
{ id: 'create:crafting/kinetics/mysterious_cuckoo_clock' },
{ id: 'create:crafting/kinetics/smart_chute' },
@ -169,7 +168,7 @@ const registerCreateRecipes = (event) => {
'AAA',
' B '
], {
A: '#forge:nuggets/wrought_iron',
A: '#forge:bolts/wrought_iron',
B: '#forge:plates/wrought_iron'
}).id('tfg:create/shaped/metal_bracket')
@ -182,7 +181,7 @@ const registerCreateRecipes = (event) => {
}).id('tfg:create/shaped/fluid_pipe')
event.recipes.gtceu.assembler('tfg:create/fluid_pipe')
.itemInputs('4x #forge:plates/copper')
.itemInputs('2x #forge:plates/copper')
.circuit(3)
.itemOutputs('create:fluid_pipe')
.duration(200)
@ -206,7 +205,7 @@ const registerCreateRecipes = (event) => {
}).id('tfg:create/shaped/copper_valve_handle')
event.recipes.gtceu.assembler('tfg:create/copper_valve_handle')
.itemInputs('4x #forge:plates/copper', '#forge:small_gears/wrought_iron')
.itemInputs('#forge:plates/copper', '#forge:small_gears/wrought_iron')
.circuit(6)
.itemOutputs('create:copper_valve_handle')
.duration(200)
@ -268,14 +267,14 @@ const registerCreateRecipes = (event) => {
A: '#forge:screws/wrought_iron',
B: '#forge:plates/brass',
C: '#forge:rods/black_steel',
D: '#forge:gears/steel',
D: '#forge:small_gears/steel',
E: '#forge:tools/hammers',
F: '#forge:storage_blocks/copper',
G: '#forge:tools/screwdrivers',
}).id('tfg:create/shaped/steam_engine')
event.recipes.gtceu.assembler('tfg:create/steam_engine')
.itemInputs('2x #forge:screws/wrought_iron', '#forge:plates/brass', '2x #forge:rods/red_steel', '#forge:gears/steel', '#forge:storage_blocks/copper')
.itemInputs('2x #forge:screws/wrought_iron', '#forge:plates/brass', '2x #forge:rods/black_steel', '#forge:small_gears/steel', '#forge:storage_blocks/copper')
.circuit(3)
.itemOutputs('create:steam_engine')
.duration(200)
@ -642,7 +641,7 @@ const registerCreateRecipes = (event) => {
}).id('tfg:create/shaped/item_vault')
event.recipes.gtceu.assembler('tfg:create/item_vault')
.itemInputs('3x #forge:chests/wooden', '#forge:sheets/wrought_iron', '2x #forge:screws/steel')
.itemInputs('#forge:chests/wooden', '#forge:sheets/wrought_iron', '2x #forge:screws/steel')
.circuit(3)
.itemOutputs('create:item_vault')
.duration(200)
@ -758,12 +757,12 @@ const registerCreateRecipes = (event) => {
], {
A: '#forge:tools/hammers',
B: '#forge:ingots/brass',
C: '#forge:nuggets/brass',
C: '#forge:bolts/brass',
D: '#forge:tools/files'
}).id('tfg:create/shaped/brass_hand')
event.recipes.gtceu.assembler('tfg:create/brass_hand')
.itemInputs('3x #forge:nuggets/brass', '#forge:plates/brass')
.itemInputs('3x #forge:bolts/brass', '#forge:plates/brass')
.circuit(3)
.itemOutputs('create:brass_hand')
.duration(200)
@ -849,7 +848,7 @@ const registerCreateRecipes = (event) => {
' CE'
], {
A: '#tfg:small_cogwheels',
B: 'create:andesite_casing',
B: 'gtceu:ulv_machine_casing',
C: 'create:brass_hand',
D: '#forge:tools/wrenches',
E: '#forge:tools/screwdrivers',
@ -1017,7 +1016,7 @@ const registerCreateRecipes = (event) => {
event.shaped('create:filter', [
'ABA'
], {
A: '#forge:nuggets/wrought_iron',
A: '#forge:bolts/wrought_iron',
B: '#forge:cloth'
}).id('tfg:create/shaped/filter')
@ -1025,7 +1024,7 @@ const registerCreateRecipes = (event) => {
event.shaped('create:attribute_filter', [
'ABA'
], {
A: '#forge:nuggets/brass',
A: '#forge:bolts/brass',
B: '#forge:cloth'
}).id('tfg:create/shaped/attribute_filter')
@ -1265,7 +1264,7 @@ const registerCreateRecipes = (event) => {
]).transitionalItem('create:incomplete_precision_mechanism').loops(3).id('tfg:create/sequenced_assembly/precision_mechanism')
event.recipes.gtceu.assembler('tfg:create/precision_mechanism')
.itemInputs('#forge:plates/gold', '3x #forge:small_springs/gold', '3x #forge:small_gears/brass', '3x #forge:bolts/wrought_iron')
.itemInputs('#forge:plates/gold', '2x #forge:small_springs/gold', '2x #forge:small_gears/brass', '2x #forge:bolts/wrought_iron')
.itemOutputs('create:precision_mechanism')
.duration(2000)
.EUt(20)
@ -1362,12 +1361,12 @@ const registerCreateRecipes = (event) => {
}).id('tfg:create/vertical_framed_glass')
const CREATE_FRAMED_GLASS_WINDOWS =
[
'framed_glass',
'tiled_glass',
'horizontal_framed_glass',
'vertical_framed_glass'
]
[
'framed_glass',
'tiled_glass',
'horizontal_framed_glass',
'vertical_framed_glass'
]
CREATE_FRAMED_GLASS_WINDOWS.forEach(x => {
event.shapeless(`2x create:${x}_pane`,
@ -1385,19 +1384,20 @@ const registerCreateRecipes = (event) => {
})
const CREATE_OTHER_GLASS_WINDOWS =
[
['dark_oak', 'tfc:wood/lumber/hickory'],
['mangrove', 'tfc:wood/lumber/mangrove'],
['ornate_iron', 'gtceu:wrought_iron_rod']
]
[
['dark_oak', 'tfc:wood/planks/hickory'],
['mangrove', 'tfc:wood/planks/mangrove'],
['ornate_iron', 'tfc:metal/bars/wrought_iron']
]
CREATE_OTHER_GLASS_WINDOWS.forEach(x => {
event.shaped(`2x create:${x[0]}_window`,
[
' B ',
'BAB'
' ',
'BAB',
' B '
], {
A: 'minecraft:glass',
A: '#forge:glass',
B: x[1]
}).id(`tfg:create/shaped/${x[0]}_window`)
@ -1441,7 +1441,10 @@ const registerCreateRecipes = (event) => {
]
DECO_BLOCKS.forEach(x => {
event.shapeless(x.cut, [x.base, '#tfc:chisels', '#forge:tools/files']).id(`create:shapeless/chisel_${x.cut.split(':')[1]}`)
event.recipes.tfc.damage_inputs_shapeless_crafting(
event.shapeless(x.cut, [x.base, '#tfc:chisels', '#forge:tools/files'])
).id(`create:shapeless/chisel_${x.cut.split(':')[1]}`)
event.recipes.gtceu.laser_engraver(`engrave_${x.cut.split(':')[1]}`)
.itemInputs(x.base)
@ -1450,13 +1453,13 @@ const registerCreateRecipes = (event) => {
.duration(32)
.EUt(GTValues.VA[GTValues.ULV])
event.custom({
type: 'vintageimprovements:laser_cutting',
ingredients: [{ item: x.base }],
results: [{item: x.cut }],
energy: GTValues.VA[GTValues.ULV] * 32 * 4,
maxChargeRate: GTValues.VA[GTValues.ULV] * 4
}).id(`tfg:vi/laser/create/${x.cut.split(':')[1]}`)
//event.custom({
// type: 'vintageimprovements:laser_cutting',
// ingredients: [{ item: x.base }],
// results: [{item: x.cut }],
// energy: GTValues.VA[GTValues.ULV] * 32 * 4,
// maxChargeRate: GTValues.VA[GTValues.ULV] * 4
//}).id(`tfg:vi/laser/create/${x.cut.split(':')[1]}`)
event.shaped(`2x create:layered_${x.cut.split('_')[1]}`, [
'AA'
@ -1496,7 +1499,7 @@ const registerCreateRecipes = (event) => {
], {
A: '#forge:chests/wooden',
B: '#forge:plates/brass',
C: '#forge:nuggets/brass',
C: '#forge:bolts/brass',
D: '#forge:screws',
E: '#forge:tools/screwdrivers'
}).id('tfg:create/shaped/brown_toolbox')
@ -1580,9 +1583,9 @@ const registerCreateRecipes = (event) => {
], {
A: 'create:brass_casing',
B: '#forge:small_gears/brass',
C: '#forge:gears/black_steel',
C: '#forge:small_gears/red_alloy',
D: '#forge:tools/wrenches',
E: '#forge:small_springs/gold',
E: '#forge:small_springs/steel',
F: '#tfg:shafts',
G: '#forge:tools/hammers'
}).id('tfg:create/shaped/rotation_speed_controller')

View file

@ -8,7 +8,7 @@ const registerCreateItemTags = (event) => {
event.add('c:hidden_from_recipe_viewers', item)
})
// Is this Greate's fault?
// This is greate's fault
event.remove('c:hidden_from_recipe_viewers', 'create:copper_sheet')
event.remove('c:hidden_from_recipe_viewers', 'create:brass_sheet')
event.remove('c:hidden_from_recipe_viewers', 'create:golden_sheet')
@ -18,6 +18,7 @@ const registerCreateItemTags = (event) => {
event.remove('c:hidden_from_recipe_viewers', 'create:crushed_raw_tin')
event.remove('c:hidden_from_recipe_viewers', 'create:crushed_raw_silver')
event.remove('c:hidden_from_recipe_viewers', 'create:crushed_raw_lead')
event.remove('c:hidden_from_recipe_viewers', 'create:powdered_obsidian')
// Тэги для ручек и сидушек
global.MINECRAFT_DYE_NAMES.forEach(dye => {

View file

@ -13,7 +13,7 @@ const registerCreateAdditionsRecipes = (event) => {
], {
A: 'create:precision_mechanism',
B: 'greate:steel_shaft',
C: '#forge:gears/black_steel',
C: '#forge:double_plates/black_steel',
D: '#gtceu:circuits/ulv',
E: 'gtceu:ulv_machine_hull'
}).id('tfg:create_additions/shaped/rolling_mill')
@ -81,9 +81,9 @@ const registerCreateAdditionsRecipes = (event) => {
}).id('tfg:createadditions/shaped/electric_motor')
event.shaped('createaddition:alternator', [
'ACA',
'FDB',
'ECE'
'AEA',
'CDC',
'BFB'
], {
A: '#gtceu:resistors',
B: '#gtceu:circuits/lv',

View file

@ -2,6 +2,11 @@
const registerCreateConnectedRecipes = (event) => {
global.CREATE_CONNECTED_DISABLED_ITEMS.forEach(item => {
event.remove({ input: item })
event.remove({ output: item })
})
// Remove Fluid Vessel Crafting
event.remove({ id: 'create_connected:crafting/kinetics/fluid_vessel' })
@ -50,21 +55,50 @@ const registerCreateConnectedRecipes = (event) => {
// Sequenced Pulse Generator
event.shaped('create_connected:sequenced_pulse_generator', [
'AB ',
'ACD',
'DA ',
'DCD',
'EEE'
], {
A: 'create:electron_tube',
B: '#gtceu:circuits/ulv',
C: '#forge:plates/bronze',
D: 'minecraft:redstone_torch',
E: '#forge:stone'
}).id('create_connected:crafting/kinetics/sequenced_pulse_generator')
// Shear Pin
event.recipes.gtceu.cutter('tfg:create_connected/shear_pin')
.itemInputs('#tfg:shafts')
.itemOutputs('create_connected:shear_pin')
.duration(96)
.EUt(8)
// Windows
event.shapeless(`2x create_connected:cherry_window_pane`,
[
`create_connected:cherry_window`,
'#forge:tools/saws'
])
.id(`create_connected:crafting/palettes/cherry_window_pane`)
event.recipes.gtceu.cutter(`create_connected:cherry_window_pane`)
.itemInputs(`3x create_connected:cherry_window`)
.itemOutputs(`8x create_connected:cherry_window_pane`)
.duration(40)
.EUt(7)
event.shapeless(`2x create_connected:bamboo_window_pane`,
[
`create_connected:bamboo_window`,
'#forge:tools/saws'
])
.id(`create_connected:crafting/palettes/bamboo_window_pane`)
event.recipes.gtceu.cutter(`create_connected:bamboo_window_pane`)
.itemInputs(`3x create_connected:bamboo_window`)
.itemOutputs(`8x create_connected:bamboo_window_pane`)
.duration(40)
.EUt(7)
event.shaped('create_connected:cherry_window', [
'ABA',
' A '
], {
A: 'afc:wood/planks/fig',
B: '#forge:glass'
}).id('create_connected:crafting/palettes/cherry_window')
}

View file

@ -1,11 +1,9 @@
const registerCreateConnectedItemTags = (event) => {
// Removes tags from the Cherry and Bamboo wooden panes added by Create Connected
event.removeAllTagsFrom("create_connected:cherry_window_pane")
event.add("c:hidden_from_recipe_viewers", "create_connected:cherry_window_pane")
event.removeAllTagsFrom("create_connected:bamboo_window_pane")
event.add("c:hidden_from_recipe_viewers", "create_connected:bamboo_window_pane")
event.removeAllTagsFrom('create_connected:control_chip')
event.add('c:hidden_from_recipe_viewers', 'create_connected:control_chip')
global.CREATE_CONNECTED_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
})
event.remove('minecraft:creeper_drop_music_discs', ['create_connected:music_disc_elevator', 'create_connected:music_disc_interlude'])
}

View file

@ -11,7 +11,7 @@ function registerCreateHorsePowerBlockRecipes(event) {
'CCC'
], {
A: '#forge:fences/wooden',
B: '#forge:gears/bronze',
B: '#forge:small_gears/bronze',
C: '#tfc:rock/raw',
D: '#forge:tools/hammers',
E: '#tfc:chisels'
@ -25,7 +25,7 @@ function registerCreateHorsePowerBlockRecipes(event) {
'CCC'
], {
A: '#forge:fences/wooden',
B: '#forge:gears/bismuth_bronze',
B: '#forge:small_gears/bismuth_bronze',
C: '#tfc:rock/raw',
D: '#forge:tools/hammers',
E: '#tfc:chisels'
@ -39,7 +39,7 @@ function registerCreateHorsePowerBlockRecipes(event) {
'CCC'
], {
A: '#forge:fences/wooden',
B: '#forge:gears/black_bronze',
B: '#forge:small_gears/black_bronze',
C: '#tfc:rock/raw',
D: '#forge:tools/hammers',
E: '#tfc:chisels'

View file

@ -257,4 +257,42 @@ const registerCreatedecoRecipes = (event) => {
.EUt(16)
// #region
// #region Window panes
const CREATE_DECO_GLASS_WINDOWS =
[
['andesite', '#forge:rods/tin_alloy'],
['copper', '#forge:rods/copper'],
['iron', '#forge:rods/wrought_iron'],
['industrial_iron', '#forge:rods/steel'],
['brass', '#forge:rods/brass'],
['zinc', '#forge:rods/zinc']
]
CREATE_DECO_GLASS_WINDOWS.forEach(x => {
event.shaped(`2x createdeco:${x[0]}_window`,
[
' B ',
'BAB'
], {
A: '#forge:glass',
B: x[1]
}).id(`createdeco:${x[0]}_window`)
event.shapeless(`2x createdeco:${x[0]}_window_pane`,
[
`createdeco:${x[0]}_window`,
'#forge:tools/saws'
])
.id(`createdeco:${x[0]}_window_pane`)
event.recipes.gtceu.cutter(`tfg:createdeco/${x[0]}_window_pane`)
.itemInputs(`3x createdeco:${x[0]}_window`)
.itemOutputs(`8x createdeco:${x[0]}_window_pane`)
.duration(40)
.EUt(7)
})
// #endregion
};

View file

@ -33,5 +33,15 @@ function registerDiggerHelmetRecipes(event) {
B: '#forge:string',
C: 'minecraft:bamboo',
D: 'tfc:glue'
}).id('tfg:shaped/auto_drink_modifier')
}).id('tfg:shaped/auto_drink_modifier_bamboo')
event.shaped('diggerhelmet:auto_drink_modifier', [
' A ',
'BCB',
' C '
], {
A: 'waterflasks:leather_flask',
B: '#forge:screws/wrought_iron',
C: '#forge:foils/rubber'
}).id('tfg:shaped/auto_drink_modifier_rubber')
}

View file

@ -3,5 +3,6 @@
function registerEndermanOverhaulRecipes(event) {
event.remove({ id: 'endermanoverhaul:corrupted_shield' })
event.remove({ id: 'endermanoverhaul:corrupted_blade' })
}

View file

@ -19,4 +19,44 @@ const registerEveryCompatRecipes = (event) => {
.duration(40)
.EUt(7)
})
global.AFC_WOOD_TYPES.forEach(wood =>
{
event.remove({ id: `everycomp:c/afc/${wood}_window_pane` })
event.shapeless(`2x everycomp:c/afc/${wood}_window_pane`,
[
`everycomp:c/afc/${wood}_window`,
'#forge:tools/saws'
])
.id(`tfg:everycompat/shapeless/${wood}_window_pane`)
event.recipes.gtceu.cutter(`tfg:everycompat/shapeless/${wood}_window_pane`)
.itemInputs(`3x everycomp:c/afc/${wood}_window`)
.itemOutputs(`8x everycomp:c/afc/${wood}_window_pane`)
.duration(40)
.EUt(7)
})
const DOMUM = [
'cactus',
'cactus_extra'
]
DOMUM.forEach(wood => {
event.remove({ id: `everycomp:c/domum_ornamentum/${wood}_window_pane` })
event.shapeless(`2x everycomp:c/domum_ornamentum/${wood}_window_pane`,
[
`everycomp:c/domum_ornamentum/${wood}_window`,
'#forge:tools/saws'
])
.id(`tfg:everycompat/shapeless/${wood}_window_pane`)
event.recipes.gtceu.cutter(`tfg:everycompat/shapeless/${wood}_window_pane`)
.itemInputs(`3x everycomp:c/domum_ornamentum/${wood}_window`)
.itemOutputs(`8x everycomp:c/domum_ornamentum/${wood}_window_pane`)
.duration(40)
.EUt(7)
})
}

View file

@ -111,4 +111,6 @@ const registerExposureRecipes = (event) => {
item: "exposure:developed_color_film"
}
}).id('exposure:developing_color_film')
event.replaceInput({id: 'exposure:interplanar_projector'}, 'minecraft:ender_eye', '#forge:plates/silver')
}

View file

@ -201,51 +201,37 @@ const registerExtendedAE2Recipes = (event) => {
//#region bus
//ex import bus part
event.recipes.gtceu.assembly_line('expatternprovider:ex_import_bus_part')
event.recipes.gtceu.assembler('expatternprovider:ex_import_bus_part')
.itemInputs(
'2x #forge:plates/tungsten_steel',
'8x ae2:calculation_processor',
'4x megacells:accumulation_processor',
'4x ae2:annihilation_core',
'2x ae2:import_bus',
'2x gtceu:iv_conveyor_module',
'2x gtceu:iv_electric_pump',
'gtceu:iv_robot_arm',
'4x #forge:rods/tungsten_steel',
'8x #forge:bolts/tungsten_steel',
'4x ae2:speed_card',)
.inputFluids(Fluid.of('gtceu:polybenzimidazole', 144))
'1x #forge:plates/stainless_steel',
'2x ae2:annihilation_core',
'2x gtceu:hv_robot_arm',
'1x megacells:accumulation_processor')
.inputFluids(Fluid.of('gtceu:polyvinyl_chloride', 144))
.itemOutputs('expatternprovider:ex_import_bus_part')
.circuit(2)
.duration(200)
.EUt(7680)
.cleanroom(CleanroomType.CLEANROOM)
.EUt(GTValues.VA[GTValues.HV])
//ex export bus part
event.recipes.gtceu.assembly_line('expatternprovider:ex_export_bus_part')
event.recipes.gtceu.assembler('expatternprovider:ex_export_bus_part')
.itemInputs(
'2x #forge:plates/tungsten_steel',
'8x ae2:calculation_processor',
'4x megacells:accumulation_processor',
'4x ae2:formation_core',
'2x ae2:export_bus',
'2x gtceu:iv_conveyor_module',
'2x gtceu:iv_electric_pump',
'gtceu:iv_robot_arm',
'4x #forge:rods/tungsten_steel',
'8x #forge:bolts/tungsten_steel',
'4x ae2:speed_card',)
.inputFluids(Fluid.of('gtceu:polybenzimidazole', 144))
.itemOutputs('expatternprovider:ex_export_bus_part')
.duration(200)
.EUt(7680)
.cleanroom(CleanroomType.CLEANROOM)
'1x #forge:plates/stainless_steel',
'2x ae2:formation_core',
'2x gtceu:hv_robot_arm',
'1x megacells:accumulation_processor')
.inputFluids(Fluid.of('gtceu:polyvinyl_chloride', 144))
.itemOutputs('expatternprovider:ex_export_bus_part')
.circuit(3)
.duration(200)
.EUt(GTValues.VA[GTValues.HV])
//tag export bus
event.recipes.gtceu.assembler('expatternprovider:tag_export_bus')
.itemInputs(
'expatternprovider:ex_export_bus_part',
'ae2:export_bus',
'2x ae2:logic_processor',
'gtceu:digital_interface_cover',)
'#gtceu:circuits/ulv')
.itemOutputs('expatternprovider:tag_export_bus')
.duration(100)
.EUt(480)
@ -255,7 +241,7 @@ const registerExtendedAE2Recipes = (event) => {
.itemInputs(
'ae2:storage_bus',
'2x ae2:logic_processor',
'gtceu:digital_interface_cover',)
'#gtceu:circuits/ulv')
.itemOutputs('expatternprovider:tag_storage_bus')
.duration(100)
.EUt(480)
@ -263,9 +249,9 @@ const registerExtendedAE2Recipes = (event) => {
//mod export bus
event.recipes.gtceu.assembler('expatternprovider:mod_export_bus')
.itemInputs(
'expatternprovider:ex_export_bus_part',
'ae2:export_bus',
'2x ae2:calculation_processor',
'gtceu:digital_interface_cover',)
'#gtceu:circuits/ulv')
.itemOutputs('expatternprovider:mod_export_bus')
.duration(100)
.EUt(480)
@ -275,7 +261,7 @@ const registerExtendedAE2Recipes = (event) => {
.itemInputs(
'ae2:storage_bus',
'2x ae2:calculation_processor',
'gtceu:digital_interface_cover',)
'#gtceu:circuits/ulv')
.itemOutputs('expatternprovider:mod_storage_bus')
.duration(100)
.EUt(480)
@ -283,8 +269,9 @@ const registerExtendedAE2Recipes = (event) => {
//precise export bus
event.recipes.gtceu.assembler('expatternprovider:precise_export_bus')
.itemInputs(
'expatternprovider:ex_export_bus_part',
'2x ae2:calculation_processor',)
'ae2:export_bus',
'2x ae2:engineering_processor',
'#gtceu:circuits/ulv')
.itemOutputs('expatternprovider:precise_export_bus')
.duration(100)
.EUt(480)
@ -293,7 +280,8 @@ const registerExtendedAE2Recipes = (event) => {
event.recipes.gtceu.assembler('expatternprovider:precise_storage_bus')
.itemInputs(
'ae2:storage_bus',
'2x ae2:calculation_processor',)
'2x ae2:engineering_processor',
'#gtceu:circuits/ulv')
.itemOutputs('expatternprovider:precise_storage_bus')
.duration(100)
.EUt(480)
@ -301,34 +289,20 @@ const registerExtendedAE2Recipes = (event) => {
//threshold export bus
event.recipes.gtceu.assembler('expatternprovider:threshold_export_bus')
.itemInputs(
'expatternprovider:ex_export_bus_part',
'ae2:export_bus',
'2x ae2:logic_processor',
'ae2:level_emitter',)
'ae2:level_emitter')
.itemOutputs('expatternprovider:threshold_export_bus')
.duration(100)
.EUt(480)
//#endregion
//caner
event.recipes.gtceu.assembler('expatternprovider:caner')
.itemInputs(
'#forge:frames/stainless_steel',
'expatternprovider:ingredient_buffer',
'ae2:import_bus',
'ae2:export_bus',
'2x ae2:calculation_processor')
.itemOutputs('expatternprovider:caner')
.duration(100)
.EUt(480)
//active formation plane
event.recipes.gtceu.assembler('expatternprovider:active_formation_plane')
.itemInputs(
'ae2:formation_plane',
'expatternprovider:ex_export_bus_part',
'expatternprovider:export_bus',
'2x ae2:engineering_processor')
.itemOutputs('expatternprovider:active_formation_plane')
.duration(100)
@ -349,7 +323,7 @@ const registerExtendedAE2Recipes = (event) => {
.itemInputs(
'ae2:level_emitter',
'2x minecraft:redstone_torch',
'2x ae2:calculation_processor',)
'2x ae2:calculation_processor')
.itemOutputs('expatternprovider:threshold_level_emitter')
.duration(100)
.EUt(480)
@ -383,13 +357,12 @@ const registerExtendedAE2Recipes = (event) => {
//me packing tape
event.recipes.gtceu.assembler('expatternprovider:me_packing_tape')
.itemInputs(
'#forge:rods/stainless_steel',
'8x #forge:dusts/fluix',
'4x #forge:plates/paper',)
'4x #forge:dusts/fluix',
'2x #forge:plates/paper')
.inputFluids(Fluid.of('gtceu:glue', 144))
.itemOutputs(Item.of('expatternprovider:me_packing_tape', '{Damage:0}'))
.duration(100)
.EUt(1920)
.EUt(GTValues.VA[GTValues.MV])
//ex pattern access
event.recipes.gtceu.assembler('expatternprovider:ex_pattern_access_part')
@ -527,21 +500,6 @@ const registerExtendedAE2Recipes = (event) => {
.duration(200)
.EUt(1920)
event.recipes.gtceu.assembler('expatternprovider:ex_charger')
.itemInputs(
'4x ae2:charger',
'4x ae2:storage_bus',
'ae2:cable_interface',
'4x #forge:double_wires/uranium_triplatinum',
'4x ae2:logic_processor',
'4x ae2:engineering_processor',
'2x megacells:accumulation_processor',
)
.itemOutputs('expatternprovider:ex_charger')
.duration(200)
.EUt(1920)
//#endregion
//#region Assembler Matrix

View file

@ -654,12 +654,12 @@ const registerFirmaLifeRecipes = (event) => {
//#region Sticky Resin by Vat
event.recipes.firmalife.vat()
.inputs('tfc:powder/sulfur', Fluid.of('tfg:latex', 1000))
.inputs('tfc:powder/wood_ash', Fluid.of('tfg:latex', 1000))
.outputItem('gtceu:sticky_resin')
.id('tfg:vat/latex_to_sticky_resin');
event.recipes.firmalife.vat()
.inputs('tfc:powder/sulfur', Fluid.of('tfg:conifer_pitch', 1000))
.inputs('tfc:powder/wood_ash', Fluid.of('tfg:conifer_pitch', 1000))
.outputItem('gtceu:sticky_resin')
.id('tfg:vat/conifer_pitch_to_sticky_resin');

View file

@ -30,6 +30,14 @@ const registerFirmaLifeBlockTags = (event) => {
// Удаление тегов у руд
event.removeAllTagsFrom("/tfc:ore/[^*]+/[^*]+/")
//Allows any block with the word "brick" in its id to be used as oven insulation.
//Add blacklisted words to the const with | between.
const brick_blacklist = ('drying|additionalplacements');
event.add('firmalife:oven_insulation', `/^(?=.*brick)(?!.*(${brick_blacklist})).*/`);
event.add('firmalife:oven_insulation', 'firmalife:stovetop_pot');
event.add('firmalife:oven_insulation', 'firmalife:vat');
}
const registerFirmaLifeFluidTags = (event) => {

View file

@ -11,7 +11,7 @@ function registerGreateRecipes(event) {
// #region Shafts
event.shaped('4x greate:andesite_alloy_shaft', [
event.shaped('9x greate:andesite_alloy_shaft', [
'A ',
' B'
], {
@ -19,15 +19,7 @@ function registerGreateRecipes(event) {
B: '#forge:plates/black_bronze'
}).id('greate:shaped/andesite_alloy_shaft_black_bronze')
event.shaped('6x greate:andesite_alloy_shaft', [
'A ',
' B'
], {
A: '#forge:tools/saws',
B: '#forge:plates/wrought_iron'
}).id('greate:shaped/andesite_alloy_shaft')
event.shaped('4x greate:andesite_alloy_shaft', [
event.shaped('9x greate:andesite_alloy_shaft', [
'A ',
' B'
], {
@ -35,7 +27,7 @@ function registerGreateRecipes(event) {
B: '#forge:plates/bronze'
}).id('greate:shaped/andesite_alloy_shaft_bronze')
event.shaped('4x greate:andesite_alloy_shaft', [
event.shaped('9x greate:andesite_alloy_shaft', [
'A ',
' B'
], {
@ -43,87 +35,114 @@ function registerGreateRecipes(event) {
B: '#forge:plates/bismuth_bronze'
}).id('greate:shaped/andesite_alloy_shaft_bismuth_bronze')
generateCutterRecipe(event, '#forge:plates/wrought_iron', '6x greate:andesite_alloy_shaft', 100, GTValues.VA[GTValues.ULV], 'andesite_alloy_shaft')
generateCutterRecipe(event, '#forge:plates/steel', '6x greate:steel_shaft', 100, GTValues.VA[GTValues.ULV], 'steel_shaft')
generateCutterRecipe(event, '#forge:plates/aluminium', '6x greate:aluminium_shaft', 100, GTValues.VA[GTValues.LV], 'aluminium_shaft')
generateCutterRecipe(event, '#forge:plates/stainless_steel', '6x greate:stainless_steel_shaft', 100, GTValues.VA[GTValues.MV], 'stainless_steel_shaft')
generateCutterRecipe(event, '#forge:plates/titanium', '6x greate:titanium_shaft', 100, GTValues.VA[GTValues.HV], 'titanium_shaft')
event.shaped('9x greate:steel_shaft', [
'A ',
' B'
], {
A: '#forge:tools/saws',
B: '#forge:plates/steel'
}).id('greate:shaped/steel_shaft')
event.shaped('9x greate:aluminium_shaft', [
'A ',
' B'
], {
A: '#forge:tools/saws',
B: '#forge:plates/aluminium'
}).id('greate:shaped/aluminium_shaft')
event.shaped('9x greate:stainless_steel_shaft', [
'A ',
' B'
], {
A: '#forge:tools/saws',
B: '#forge:plates/stainless_steel'
}).id('greate:shaped/stainless_steel_shaft')
event.shaped('9x greate:titanium_shaft', [
'A ',
' B'
], {
A: '#forge:tools/saws',
B: '#forge:plates/titanium'
}).id('greate:shaped/titanium_shaft')
generateCutterRecipe(event, '#forge:plates/bronze', '9x greate:andesite_alloy_shaft', 100, GTValues.VA[GTValues.ULV], 'andesite_alloy_shaft_bronze')
generateCutterRecipe(event, '#forge:plates/black_bronze', '9x greate:andesite_alloy_shaft', 100, GTValues.VA[GTValues.ULV], 'andesite_alloy_shaft_black_bronze')
generateCutterRecipe(event, '#forge:plates/bismuth_bronze', '9x greate:andesite_alloy_shaft', 100, GTValues.VA[GTValues.ULV], 'andesite_alloy_shaft_bismuth_bronze')
generateCutterRecipe(event, '#forge:plates/steel', '9x greate:steel_shaft', 100, GTValues.VA[GTValues.ULV], 'steel_shaft')
generateCutterRecipe(event, '#forge:plates/aluminium', '9x greate:aluminium_shaft', 100, GTValues.VA[GTValues.LV], 'aluminium_shaft')
generateCutterRecipe(event, '#forge:plates/stainless_steel', '9x greate:stainless_steel_shaft', 100, GTValues.VA[GTValues.MV], 'stainless_steel_shaft')
generateCutterRecipe(event, '#forge:plates/titanium', '9x greate:titanium_shaft', 100, GTValues.VA[GTValues.HV], 'titanium_shaft')
// #endregion
// #region Cogs
event.shapeless('greate:andesite_alloy_cogwheel', ['greate:andesite_alloy_shaft', '#forge:small_gears/wood', '#forge:tools/hammers'])
event.shapeless('greate:andesite_alloy_cogwheel', ['greate:andesite_alloy_shaft', '#forge:small_gears/wood'])
.id('greate:shapeless/andesite_alloy_cogwheel')
event.shapeless('greate:large_andesite_alloy_cogwheel', ['greate:andesite_alloy_shaft', '#forge:gears/wood', '#forge:tools/hammers'])
event.shapeless('greate:large_andesite_alloy_cogwheel', ['greate:andesite_alloy_shaft', '#forge:gears/wood'])
.id('greate:shapeless/large_andesite_alloy_cogwheel');
// TODO: recycling recipes for these?
event.shapeless('greate:steel_cogwheel', ['greate:steel_shaft', '#forge:small_gears/wrought_iron', '#forge:tools/wrenches'])
event.shapeless('greate:steel_cogwheel', ['greate:steel_shaft', '#forge:small_gears/wrought_iron'])
.id('greate:shapeless/steel_cogwheel')
event.shapeless('greate:large_steel_cogwheel', ['greate:steel_shaft', '#forge:gears/wrought_iron', '#forge:tools/wrenches'])
event.shapeless('greate:large_steel_cogwheel', ['greate:steel_shaft', '#forge:small_gears/wrought_iron','#forge:small_gears/wrought_iron'])
.id('greate:shapeless/large_steel_cogwheel');
event.shapeless('greate:aluminium_cogwheel', ['greate:aluminium_shaft', '#forge:small_gears/steel', '#forge:tools/wrenches'])
event.shapeless('greate:aluminium_cogwheel', ['greate:aluminium_shaft', '#forge:small_gears/steel'])
.id('greate:shapeless/aluminium_cogwheel')
event.shapeless('greate:large_aluminium_cogwheel', ['greate:aluminium_shaft', '#forge:gears/steel', '#forge:tools/wrenches'])
event.shapeless('greate:large_aluminium_cogwheel', ['greate:aluminium_shaft', '#forge:small_gears/steel', '#forge:small_gears/steel'])
.id('greate:shapeless/large_aluminium_cogwheel');
event.shapeless('greate:stainless_steel_cogwheel', ['greate:stainless_steel_shaft', '#forge:small_gears/aluminium', '#forge:tools/wrenches'])
event.shapeless('greate:stainless_steel_cogwheel', ['greate:stainless_steel_shaft', '#forge:small_gears/aluminium'])
.id('greate:shapeless/stainless_steel_cogwheel')
event.shapeless('greate:large_stainless_steel_cogwheel', ['greate:stainless_steel_shaft', '#forge:gears/aluminium', '#forge:tools/wrenches'])
event.shapeless('greate:large_stainless_steel_cogwheel', ['greate:stainless_steel_shaft', '#forge:small_gears/aluminium', '#forge:small_gears/aluminium'])
.id('greate:shapeless/large_stainless_steel_cogwheel');
event.shapeless('greate:titanium_cogwheel', ['greate:titanium_shaft', '#forge:small_gears/stainless_steel', '#forge:tools/wrenches'])
event.shapeless('greate:titanium_cogwheel', ['greate:titanium_shaft', '#forge:small_gears/stainless_steel'])
.id('greate:shapeless/titanium_cogwheel')
event.shapeless('greate:large_titanium_cogwheel', ['greate:titanium_shaft', '#forge:gears/stainless_steel', '#forge:tools/wrenches'])
event.shapeless('greate:large_titanium_cogwheel', ['greate:titanium_shaft', '#forge:small_gears/stainless_steel', '#forge:small_gears/stainless_steel'])
.id('greate:shapeless/large_titanium_cogwheel');
// #endregion
// #region Millstones
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped('greate:andesite_alloy_millstone', [
' B ',
'DCE',
' A '
], {
A: 'tfc:quern',
B: 'tfc:handstone',
C: '#forge:gears/bronze',
D: '#forge:tools/hammers',
E: '#tfc:chisels'
})
).id('greate:shaped/andesite_alloy_millstone')
event.shaped('greate:andesite_alloy_millstone', [
' B ',
'DCE',
' A '
], {
A: 'tfc:quern',
B: 'tfc:handstone',
C: '#forge:small_gears/bronze',
D: '#forge:tools/hammers',
E: '#forge:tools/saws'
}).id('greate:shaped/andesite_alloy_millstone')
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped('greate:andesite_alloy_millstone', [
' B ',
'DCE',
' A '
], {
A: 'tfc:quern',
B: 'tfc:handstone',
C: '#forge:gears/bismuth_bronze',
D: '#forge:tools/hammers',
E: '#tfc:chisels'
})
).id('greate:shaped/andesite_alloy_millstone2')
event.shaped('greate:andesite_alloy_millstone', [
' B ',
'DCE',
' A '
], {
A: 'tfc:quern',
B: 'tfc:handstone',
C: '#forge:small_gears/bismuth_bronze',
D: '#forge:tools/hammers',
E: '#forge:tools/saws'
}).id('greate:shaped/andesite_alloy_millstone2')
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped('greate:andesite_alloy_millstone', [
' B ',
'DCE',
' A '
], {
A: 'tfc:quern',
B: 'tfc:handstone',
C: '#forge:gears/black_bronze',
D: '#forge:tools/hammers',
E: '#tfc:chisels'
})
).id('greate:shaped/andesite_alloy_millstone3')
event.shaped('greate:andesite_alloy_millstone', [
' B ',
'DCE',
' A '
], {
A: 'tfc:quern',
B: 'tfc:handstone',
C: '#forge:small_gears/black_bronze',
D: '#forge:tools/hammers',
E: '#forge:tools/saws'
}).id('greate:shaped/andesite_alloy_millstone3')
event.shaped('greate:steel_millstone', [
'FBF',
@ -132,7 +151,7 @@ function registerGreateRecipes(event) {
], {
A: '#forge:smooth_stone',
B: 'gtceu:treated_wood_slab',
C: '#forge:gears/steel',
C: '#forge:small_gears/steel',
D: '#forge:tools/hammers',
E: '#forge:tools/wrenches',
F: '#forge:dusts/diamond'
@ -234,7 +253,7 @@ function registerGreateRecipes(event) {
A: '#gtceu:circuits/ulv',
B: 'gtceu:cobalt_brass_buzz_saw_blade',
C: 'greate:steel_cogwheel',
D: 'gtceu:ulv_machine_casing',
D: 'gtceu:ulv_machine_hull',
E: 'greate:steel_shaft',
F: '#forge:tools/wrenches'
}).id('greate:shaped/steel_mechanical_saw')
@ -247,7 +266,7 @@ function registerGreateRecipes(event) {
A: '#gtceu:circuits/mv',
B: 'gtceu:vanadium_steel_buzz_saw_blade',
C: 'gtceu:mv_electric_motor',
D: 'gtceu:mv_machine_casing',
D: 'gtceu:mv_machine_hull',
E: 'greate:aluminium_shaft',
F: '#forge:tools/wrenches'
}).id('greate:shaped/aluminium_mechanical_saw')
@ -262,7 +281,7 @@ function registerGreateRecipes(event) {
// A: '#gtceu:circuits/hv',
// B: 'gtceu:red_steel_buzz_saw_blade',
// C: 'gtceu:hv_electric_motor',
// D: 'gtceu:hv_machine_casing',
// D: 'gtceu:hv_machine_hull',
// E: 'greate:stainless_steel_shaft',
// F: '#forge:tools/wrenches'
// }).id('greate:shaped/stainless_steel_mechanical_saw')
@ -275,7 +294,7 @@ function registerGreateRecipes(event) {
// A: '#gtceu:circuits/ev',
// B: 'gtceu:ultimet_buzz_saw_blade',
// C: 'gtceu:ev_electric_motor',
// D: 'gtceu:ev_machine_casing',
// D: 'gtceu:ev_machine_hull',
// E: 'greate:titanium_shaft',
// F: '#forge:tools/wrenches'
//}).id('greate:shaped/titanium_mechanical_saw')
@ -300,27 +319,57 @@ function registerGreateRecipes(event) {
// #region Belt Connector
event.shaped('greate:rubber_belt_connector', [
event.shaped('3x greate:rubber_belt_connector', [
'C ',
'AAA',
'AAA',
'BDC'
'B '
], {
A: '#forge:leather',
A: '#forge:plates/rubber',
B: '#forge:tools/knives',
C: '#tfc:sewing_needles',
D: '#forge:string'
}).id('greate:shaped/rubber_belt_connector_from_leather')
C: '#forge:tools/hammers',
}).id('greate:shaped/rubber_belt_connector')
event.shaped('greate:polyethylene_belt_connector', [
event.recipes.gtceu.assembler('rubber_belt_connector')
.itemInputs('#forge:plates/rubber')
.itemOutputs('greate:rubber_belt_connector')
.circuit(11)
.duration(50)
.EUt(GTValues.VA[GTValues.LV])
event.shaped('3x greate:silicone_rubber_belt_connector', [
'C ',
'AAA',
'B '
], {
A: '#forge:plates/silicone_rubber',
B: '#forge:tools/knives',
C: '#forge:tools/hammers',
}).id('greate:shaped/silicone_rubber_belt_connector')
event.recipes.gtceu.assembler('silicone_rubber_belt_connector')
.itemInputs('#forge:plates/silicone_rubber')
.itemOutputs('greate:silicone_rubber_belt_connector')
.circuit(11)
.duration(50)
.EUt(GTValues.VA[GTValues.LV])
event.shaped('3x greate:polyethylene_belt_connector', [
'C ',
'AAA',
'B C'
'B '
], {
A: '#forge:plates/styrene_butadiene_rubber',
B: '#forge:tools/files',
B: '#forge:tools/knives',
C: '#forge:tools/hammers',
}).id('greate:shaped/polyethylene_belt_connector')
event.recipes.gtceu.assembler('polyethylene_belt_connector')
.itemInputs('#forge:plates/styrene_butadiene_rubber')
.itemOutputs('greate:rubber_polyethylene_belt_connectorbelt_connector')
.circuit(11)
.duration(50)
.EUt(GTValues.VA[GTValues.LV])
// #endregion
// #region Mixer

View file

@ -76,25 +76,25 @@ function registerGreateRecyclingRecipes(event) {
event.shapeless('#forge:small_gears/wrought_iron', ['greate:steel_cogwheel']))
event.recipes.tfc.extra_products_shapeless_crafting('greate:steel_shaft',
event.shapeless('#forge:gears/wrought_iron', ['greate:large_steel_cogwheel']))
event.shapeless('2x #forge:small_gears/wrought_iron', ['greate:large_steel_cogwheel']))
event.recipes.tfc.extra_products_shapeless_crafting('greate:aluminium_shaft',
event.shapeless('#forge:small_gears/steel', ['greate:aluminium_cogwheel']))
event.recipes.tfc.extra_products_shapeless_crafting('greate:aluminium_shaft',
event.shapeless('#forge:gears/steel', ['greate:large_aluminium_cogwheel']))
event.shapeless('2x #forge:small_gears/steel', ['greate:large_aluminium_cogwheel']))
event.recipes.tfc.extra_products_shapeless_crafting('greate:stainless_steel_shaft',
event.shapeless('#forge:small_gears/aluminium', ['greate:stainless_steel_cogwheel']))
event.recipes.tfc.extra_products_shapeless_crafting('greate:stainless_steel_shaft',
event.shapeless('#forge:gears/aluminium', ['greate:large_stainless_steel_cogwheel']))
event.shapeless('2x #forge:small_gears/aluminium', ['greate:large_stainless_steel_cogwheel']))
event.recipes.tfc.extra_products_shapeless_crafting('greate:titanium_shaft',
event.shapeless('#forge:small_gears/stainless_steel', ['greate:titanium_cogwheel']))
event.recipes.tfc.extra_products_shapeless_crafting('greate:titanium_shaft',
event.shapeless('#forge:gears/stainless_steel', ['greate:large_titanium_cogwheel']))
event.shapeless('2x #forge:small_gears/stainless_steel', ['greate:large_titanium_cogwheel']))
// #endregion
@ -482,22 +482,22 @@ function registerGreateRecyclingRecipes(event) {
event.recipes.gtceu.macerator('greate:rubber_belt_connector')
.itemInputs('greate:rubber_belt_connector')
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Rubber, 6))
.duration(GTMaterials.Rubber.getMass() * 6)
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Rubber, 1))
.duration(GTMaterials.Rubber.getMass() * 3)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.macerator('greate:silicone_rubber_belt_connector')
.itemInputs('greate:silicone_rubber_belt_connector')
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.SiliconeRubber, 6))
.duration(GTMaterials.SiliconeRubber.getMass() * 6)
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.SiliconeRubber, 1))
.duration(GTMaterials.SiliconeRubber.getMass() * 3)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.macerator('greate:polyethylene_belt_connector')
.itemInputs('greate:polyethylene_belt_connector')
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.StyreneButadieneRubber, 6))
.duration(GTMaterials.StyreneButadieneRubber.getMass() * 6)
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.StyreneButadieneRubber, 1))
.duration(GTMaterials.StyreneButadieneRubber.getMass() * 3)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])

View file

@ -15,6 +15,8 @@ function removeGreateRecipes(event) {
event.remove({ id: 'greate:shapeless/large_stainless_steel_cogwheel_from_little' })
event.remove({ id: 'greate:shapeless/large_titanium_cogwheel_from_little' })
event.remove({ id: 'greate:shaped/andesite_alloy_shaft' })
// Until we got a fix from Greate for recipes in a cleanroom
event.remove({ id: 'greate:shaped/stainless_steel_mechanical_saw' })
event.remove({ id: 'greate:shaped/titanium_mechanical_saw' })

View file

@ -1,9 +0,0 @@
PlayerEvents.tick((event) => {
const { player } = event;
if (player.age % 100 != 0) return;
if (player.legsArmorItem == 'gtceu:nanomuscle_leggings') {
player.potionEffects.add("minecraft:speed", 350, 1, true, false);
} else {
player.removeEffect("minecraft:speed");
}
});

View file

@ -21,16 +21,4 @@ global.GTCEU_ANVIL_TOOL_TYPES = [
GTToolType.KNIFE,
GTToolType.BUTCHERY_KNIFE,
// GTToolType.PLUNGER
];
global.GTCEU_TOOLTYPES_WHICH_HAS_TFC_DUPS = {
"tfc:swords" : GTToolType.SWORD,
"tfc:pickaxes" : GTToolType.PICKAXE,
"tfc:axes" : GTToolType.AXE,
"tfc:shovels" : GTToolType.SHOVEL,
"tfc:hoes" : GTToolType.HOE,
"tfc:hammers" : GTToolType.HARD_HAMMER,
"tfc:knives" : GTToolType.KNIFE,
"tfc:saws" : GTToolType.SAW,
"tfc:scythes" : GTToolType.SCYTHE
};
];

View file

@ -0,0 +1,6 @@
PlayerEvents.tick((event) => {
const { player } = event;
if (player.age % 100 == 0 && player.legsArmorItem == 'gtceu:nanomuscle_leggings') {
player.potionEffects.add("minecraft:speed", 350, 1, true, false);
}
});

View file

@ -81,7 +81,7 @@ const registerGTCEULoots = (event) => {
})
// Go through all materials
GTMaterialRegistry.getRegisteredMaterials().forEach(material => {
forEachMaterial(material => {
if (material.hasProperty(PropertyKey.ORE)) {

View file

@ -7,7 +7,7 @@
const registerGTCEURecipes = (event) => {
registerGTCEUMetalRecipes(event)
registerGTCEURecyclingRecipes(event)
registerGTCEURecyclingRecipes(event)
registerGTCEuTFCMetalsRecipes(event)
registerGTCEuMachineRecipes(event)
@ -69,15 +69,15 @@ const registerGTCEURecipes = (event) => {
//#endregion
event.recipes.gtceu.centrifuge('tfg:beets_to_sugar')
.itemInputs('5x tfc:food/beet')
.inputFluids(Fluid.of('tfc:salt_water', 1000))
.itemOutputs('3x minecraft:sugar', '3x gtceu:plant_ball', '1x #forge:dusts/salt')
.outputFluids(Fluid.of('minecraft:water', 1000))
.duration(800)
.EUt(7)
.circuit(3)
event.recipes.gtceu.centrifuge('tfg:beets_to_sugar')
.itemInputs('5x tfc:food/beet')
.inputFluids(Fluid.of('tfc:salt_water', 1000))
.itemOutputs('3x minecraft:sugar', '3x gtceu:plant_ball', '1x #forge:dusts/salt')
.outputFluids(Fluid.of('minecraft:water', 1000))
.duration(800)
.EUt(7)
.circuit(3)
event.smelting('4x tfc:powder/wood_ash', '1x #minecraft:logs_that_burn').id('tfg:wood_ash')
//#region Выход: Соленая пыль + Вода
@ -134,23 +134,30 @@ const registerGTCEURecipes = (event) => {
//#region Выход: Капля резины
// Из латекса
event.recipes.tfc.pot('tfc:powder/sulfur', Fluid.of('tfg:latex', 1000), 1200, 300)
event.recipes.tfc.pot('tfc:powder/wood_ash', Fluid.of('tfg:latex', 1000), 1200, 300)
.itemOutput('gtceu:sticky_resin')
.id('tfg:pot/sticky_resin_from_latex')
event.recipes.tfc.pot('tfc:powder/sulfur', Fluid.of('tfg:conifer_pitch', 1000), 1200, 300)
event.recipes.tfc.pot('tfc:powder/wood_ash', Fluid.of('tfg:conifer_pitch', 1000), 1200, 300)
.itemOutput('gtceu:sticky_resin')
.id('tfg:pot/sticky_resin_from_conifer_pitch')
event.recipes.gtceu.fluid_solidifier('tfg:fluid_solidifier/latex_heating')
.duration(24*20)
event.recipes.gtceu.fluid_solidifier('tfg:fluid_solidifier/latex_to_sticky_resin')
.duration(24 * 20)
.EUt(30)
.itemInputs('tfc:powder/sulfur')
.itemInputs('tfc:powder/wood_ash')
.itemOutputs('gtceu:sticky_resin')
.inputFluids(Fluid.of('tfg:latex', 1000))
event.recipes.gtceu.fluid_solidifier('tfg:fluid_solidifier/pitch_to_sticky_resin')
.duration(24 * 20)
.EUt(30)
.itemInputs('tfc:powder/wood_ash')
.itemOutputs('gtceu:sticky_resin')
.inputFluids(Fluid.of('tfg:conifer_pitch', 1000))
//#endregion
//#region Выход: Растительный шарик
// 8x Ванильная растительность -> Plant Ball (Compressor)
event.recipes.gtceu.compressor('plant_ball_from_tfc_seeds')
@ -263,44 +270,14 @@ const registerGTCEURecipes = (event) => {
//#region Выход: Цемент
generateMixerRecipe(
event,
['2x #tfg:stone_dusts', 'gtceu:marble_dust', 'gtceu:gypsum_dust'],
Fluid.of('minecraft:water', 1000),
[],
null,
Fluid.of('gtceu:concrete', 1152),
40,
16,
64,
'concrete_from_marble'
)
generateMixerRecipe(event, ['2x #tfg:stone_dusts', 'gtceu:marble_dust', 'gtceu:gypsum_dust'],
Fluid.of('minecraft:water', 1000), [], null, Fluid.of('gtceu:concrete', 1152), 40, 16, 64, 'concrete_from_marble')
generateMixerRecipe(
event,
['3x #tfg:stone_dusts', 'gtceu:clay_dust'],
Fluid.of('minecraft:water', 500),
[],
null,
Fluid.of('gtceu:concrete', 576),
20,
16,
64,
'concrete_from_clay'
)
generateMixerRecipe(event, ['3x #tfg:stone_dusts', 'gtceu:clay_dust'],
Fluid.of('minecraft:water', 500), [], null, Fluid.of('gtceu:concrete', 576), 20, 16, 64, 'concrete_from_clay')
generateMixerRecipe(
event,
['3x #tfg:stone_dusts', 'gtceu:calcite_dust', 'gtceu:gypsum_dust'],
Fluid.of('minecraft:water', 1000),
[],
null,
Fluid.of('gtceu:concrete', 1152),
40,
16,
64,
'concrete_from_calcite'
)
generateMixerRecipe(event, ['3x #tfg:stone_dusts', 'gtceu:calcite_dust', 'gtceu:gypsum_dust'],
Fluid.of('minecraft:water', 1000), [], null, Fluid.of('gtceu:concrete', 1152), 40, 16, 64, 'concrete_from_calcite')
//GT light/dark concrete recipe fix
@ -348,7 +325,7 @@ const registerGTCEURecipes = (event) => {
//#endregion
//#region GT marble
event.stonecutting('gtceu:polished_marble', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_polished_marble')
event.stonecutting('gtceu:chiseled_marble', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_chiseled_marble')
event.stonecutting('gtceu:marble_tile', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_marble_tile')
@ -462,17 +439,16 @@ const registerGTCEURecipes = (event) => {
C: 'gtceu:brick_wooden_form'
}).replaceIngredient('gtceu:brick_wooden_form', 'gtceu:brick_wooden_form').id('gtceu:shaped/compressed_coke_clay')
// Compressed Coke Clay -> Coke Oven Brick
// Coke Oven Brick
event.recipes.tfc.heating('gtceu:compressed_coke_clay', 1399)
.resultItem('gtceu:coke_oven_brick')
.id('tfg:heating/coke_oven_bricks')
// TFC FireBrick -> FireBrick dust
event.recipes.gtceu.macerator('macerate_firebrick')
.itemInputs('tfc:ceramic/fire_brick')
.itemOutputs('gtceu:fireclay_dust')
.duration(15)
.EUt(2)
event.recipes.gtceu.alloy_smelter('gtceu:coke_oven_brick')
.itemInputs('#minecraft:sand', 'minecraft:clay_ball')
.itemOutputs('gtceu:coke_oven_brick')
.duration(7.5 * 20)
.EUt(GTValues.VA[GTValues.ULV])
// Multi-Smelter
event.shaped('gtceu:multi_smelter', [
@ -499,7 +475,7 @@ const registerGTCEURecipes = (event) => {
}).id('gtceu:shaped/electric_blast_furnace')
// Клей из ТФК клея
event.recipes.gtceu.centrifuge('glue_from_tfc_glue')
event.recipes.gtceu.extractor('glue_from_tfc_glue')
.itemInputs('tfc:glue')
.outputFluids(Fluid.of('gtceu:glue', 50))
.duration(400)
@ -724,44 +700,44 @@ const registerGTCEURecipes = (event) => {
.circuit(2)
event.recipes.gtceu.coke_oven("tfg:raw_coal_to_coke")
.itemInputs('gtceu:raw_coal')
.itemOutputs('2x gtceu:coke_gem')
.outputFluids(Fluid.of('gtceu:creosote', 2000))
.duration(1710)
.itemInputs('gtceu:raw_coal')
.itemOutputs('2x gtceu:coke_gem')
.outputFluids(Fluid.of('gtceu:creosote', 2000))
.duration(1710)
event.recipes.gtceu.pyrolyse_oven("tfg:raw_coal_to_tar")
.itemInputs('6x gtceu:raw_coal')
.chancedOutput('gtceu:dark_ash_dust', 5000, 0)
.outputFluids(Fluid.of('gtceu:coal_tar', 3000))
.duration(288)
.EUt(96)
.circuit(8)
event.recipes.gtceu.pyrolyse_oven("tfg:raw_coal_to_tar")
.itemInputs('6x gtceu:raw_coal')
.chancedOutput('gtceu:dark_ash_dust', 5000, 0)
.outputFluids(Fluid.of('gtceu:coal_tar', 3000))
.duration(288)
.EUt(96)
.circuit(8)
event.recipes.gtceu.pyrolyse_oven("tfg:raw_coal_to_coke_creosote")
.itemInputs('8x gtceu:raw_coal')
.itemOutputs('16x gtceu:coke_gem')
.outputFluids(Fluid.of('gtceu:creosote', 8000))
.duration(576)
.EUt(64)
.circuit(1)
event.recipes.gtceu.pyrolyse_oven("tfg:raw_coal_to_coke_creosote")
.itemInputs('8x gtceu:raw_coal')
.itemOutputs('16x gtceu:coke_gem')
.outputFluids(Fluid.of('gtceu:creosote', 8000))
.duration(576)
.EUt(64)
.circuit(1)
event.recipes.gtceu.pyrolyse_oven("tfg:raw_coal_to_coal_gas")
.itemInputs('8x gtceu:raw_coal')
.itemOutputs('16x gtceu:coke_gem')
.inputFluids(Fluid.of('gtceu:steam'))
.outputFluids(Fluid.of('gtceu:coal_gas', 4000))
.duration(288)
.EUt(96)
.circuit(22)
event.recipes.gtceu.pyrolyse_oven("tfg:raw_coal_to_coal_gas")
.itemInputs('8x gtceu:raw_coal')
.itemOutputs('16x gtceu:coke_gem')
.inputFluids(Fluid.of('gtceu:steam'))
.outputFluids(Fluid.of('gtceu:coal_gas', 4000))
.duration(288)
.EUt(96)
.circuit(22)
event.recipes.gtceu.pyrolyse_oven("tfg:raw_coal_to_coke_creosote_nitrogen")
.itemInputs('8x gtceu:raw_coal')
.itemOutputs('16x gtceu:coke_gem')
.inputFluids(Fluid.of('gtceu:nitrogen'))
.outputFluids(Fluid.of('gtceu:creosote', 8000))
.duration(288)
.EUt(96)
.circuit(2)
event.recipes.gtceu.pyrolyse_oven("tfg:raw_coal_to_coke_creosote_nitrogen")
.itemInputs('8x gtceu:raw_coal')
.itemOutputs('16x gtceu:coke_gem')
.inputFluids(Fluid.of('gtceu:nitrogen'))
.outputFluids(Fluid.of('gtceu:creosote', 8000))
.duration(288)
.EUt(96)
.circuit(2)
// #endregion
@ -885,6 +861,33 @@ const registerGTCEURecipes = (event) => {
// #endregion
// #region Rubber Processing Line
event.recipes.firmalife.vat()
.inputs('tfc:powder/sulfur', Fluid.of('tfg:latex', 1000))
.outputFluid(Fluid.of('tfg:vulcanized_latex', 1000))
.length(300)
.temperature(300)
.id('tfg:vat/vulcanized_latex')
event.recipes.tfc.pot('tfc:powder/sulfur', Fluid.of('tfg:latex', 1000), 1200, 300)
.fluidOutput(Fluid.of('tfg:vulcanized_latex', 1000))
.id('tfg:pot/vulcanized_latex')
event.recipes.gtceu.chemical_reactor('tfg:/latex_to_vulcanized_latex')
.duration(200)
.EUt(20)
.itemInputs('tfc:powder/sulfur')
.inputFluids(Fluid.of('tfg:latex', 1000))
.outputFluids(Fluid.of('tfg:vulcanized_latex', 1000))
event.recipes.gtceu.fluid_solidifier('tfg:/vulcanized_latex_to_raw_rubber_pulp')
.duration(100)
.EUt(20)
.inputFluids(Fluid.of('tfg:vulcanized_latex', 1000))
.itemOutputs('4x gtceu:raw_rubber_dust')
// #endregion
// #region Primitive protection
event.recipes.tfc.barrel_sealed(2000)
@ -892,17 +895,6 @@ const registerGTCEURecipes = (event) => {
.inputs('tfchotornot:mittens', Fluid.of('tfc:vinegar', 1000))
.id('tfg:sealed_barrel/prepared_leather_gloves')
event.recipes.firmalife.vat()
.inputs('tfc:powder/wood_ash', Fluid.of('tfg:latex', 100))
.outputFluid(Fluid.of('tfg:vulcanized_latex', 100))
.length(300)
.temperature(300)
.id('tfg:vat/vulcanized_latex')
event.recipes.tfc.pot('tfc:powder/wood_ash', Fluid.of('tfg:latex', 100), 1200, 300)
.fluidOutput(Fluid.of('tfg:vulcanized_latex', 100))
.id('tfg:pot/vulcanized_latex')
event.recipes.firmalife.vat()
.outputItem('tfg:latex_soaked_gloves')
.inputs('tfg:prepared_leather_gloves', Fluid.of('tfg:vulcanized_latex', 1000))
@ -961,6 +953,20 @@ const registerGTCEURecipes = (event) => {
.duration(100)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.centrifuge('tfg:centrifuge_rosin')
.itemInputs('tfg:conifer_rosin')
.outputFluids(Fluid.of('gtceu:glue', 50))
.itemOutputs('2x #forge:dusts/carbon')
.chancedOutput('gtceu:plant_ball', 1000, 850)
.duration(400)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.chemical_reactor(`tfg:treat_latex_plants_into_latex`)
.itemInputs('16x #tfg:rubber_plants', 'gtceu:tiny_sodium_hydroxide_dust')
.circuit(1)
.outputFluids(Fluid.of('tfg:latex', 1000))
.duration(200)
.EUt(20)
event.recipes.createSequencedAssembly([
'gtceu:ulv_voltage_coil',
@ -976,15 +982,15 @@ const registerGTCEURecipes = (event) => {
.itemInputs('#forge:ingots/iron', '#tfc:steam_bloomery_basic_fuels')
.itemOutputs('tfc:raw_iron_bloom')
.duration(2400)
.EUt(GTValues.VEX[GTValues.ULV])
.EUt(2)
event.recipes.gtceu.steam_bloomery('steam_raw_iron_bloom_coalcoke')
.itemInputs('2x #forge:ingots/iron', '#tfc:blast_furnace_fuel')
.itemOutputs('2x tfc:raw_iron_bloom')
.duration(2400)
.EUt(GTValues.VEX[GTValues.ULV])
.EUt(2)
GTMaterialRegistry.getRegisteredMaterials().forEach(material => {
forEachMaterial(material => {
const tfcProperty = material.getProperty(TFGPropertyKey.TFC_PROPERTY)
if (tfcProperty == null)
@ -996,19 +1002,64 @@ const registerGTCEURecipes = (event) => {
.itemInputs(ChemicalHelper.get(TagPrefix.dust, material, 1), '#tfc:steam_bloomery_basic_fuels')
.itemOutputs('tfc:raw_iron_bloom')
.duration(2400)
.EUt(GTValues.VEX[GTValues.ULV])
.EUt(2)
event.recipes.gtceu.steam_bloomery(`steam_raw_iron_bloom_coalcoke_${material.getName()}`)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, material, 2), '#tfc:blast_furnace_fuel')
.itemOutputs('2x tfc:raw_iron_bloom')
.duration(2400)
.EUt(GTValues.VEX[GTValues.ULV])
.EUt(2)
}
})
//#endregion
//#region Changing tiers of decomposition recipes
event.recipes.gtceu.electrolyzer('gtceu:decomposition_electrolyzing_clay')
.itemInputs('13x #forge:dusts/clay')
.itemOutputs('2x #forge:dusts/sodium', '1x #forge:dusts/lithium', '2x #forge:dusts/aluminium', '2x #forge:dusts/silicon')
.outputFluids(Fluid.of('minecraft:water', 6000))
.duration(GTMaterials.Clay.getMass() * 13)
.EUt(GTValues.VA[GTValues.HV])
event.recipes.gtceu.centrifuge('gtceu:stone_dust_separation')
.itemInputs('gtceu:stone_dust')
.chancedOutput('#forge:dusts/quartzite', 2500, 0)
.chancedOutput('#forge:dusts/potassium_feldspar', 2500, 0)
.chancedOutput('#forge:dusts/marble', 2222, 0)
.chancedOutput('#forge:dusts/biotite', 1111, 0)
.chancedOutput('#forge:dusts/metal_mixture', 825, 80)
.chancedOutput('#forge:dusts/sodalite', 550, 55)
.duration(12 * 20)
.EUt(GTValues.VA[GTValues.HV])
//#endregion
//#region Tape
event.shaped('gtceu:basic_tape', [
' A ',
'ABA',
' A '
], {
A: 'minecraft:paper',
B: 'tfc:glue'
}).id('tfg:shaped/basic_tape_from_glue')
event.recipes.gtceu.assembler('basic_tape_from_glue')
.itemInputs('2x minecraft:paper', 'tfc:glue')
.itemOutputs('2x gtceu:basic_tape')
.duration(100)
.EUt(GTValues.VA[GTValues.ULV])
//#endregion
// TODO: Greate again...
event.shapeless('gtceu:programmed_circuit', ['minecraft:stick', '#forge:tools/wrenches'])
.id('tfg:shapeless/programmed_circuit_from_stick')
event.shapeless('gtceu:red_alloy_single_cable', ['gtceu:red_alloy_single_wire', '#forge:plates/rubber'])
.id('tfg:shapeless/red_alloy_single_cable')

View file

@ -581,6 +581,54 @@ function registerGTCEuMachineRecipes(event) {
//#endregion
//#region ULV Hatches
event.recipes.shaped('gtceu:ulv_input_bus', [
'CAC',
'CBC',
'CDC'
], {
A: '#forge:chests/wooden',
B: 'gtceu:ulv_machine_hull',
C: 'tfc:glue',
D: '#forge:tools/wrenches'
}).id('gtceu:shaped/ulv_input_bus')
event.recipes.shaped('gtceu:ulv_output_bus', [
'CDC',
'CBC',
'CAC'
], {
A: '#forge:chests/wooden',
B: 'gtceu:ulv_machine_hull',
C: 'tfc:glue',
D: '#forge:tools/wrenches'
}).id('gtceu:shaped/ulv_output_bus')
event.recipes.shaped('gtceu:ulv_input_hatch', [
'CAC',
'CBC',
'CDC'
], {
A: '#forge:glass',
B: 'gtceu:ulv_machine_hull',
C: 'tfc:glue',
D: '#forge:tools/wrenches'
}).id('gtceu:shaped/ulv_input_hatch')
event.recipes.shaped('gtceu:ulv_output_hatch', [
'CDC',
'CBC',
'CAC'
], {
A: '#forge:glass',
B: 'gtceu:ulv_machine_hull',
C: 'tfc:glue',
D: '#forge:tools/wrenches'
}).id('gtceu:shaped/ulv_output_hatch')
//#endregion
//#region Long distance pipes
event.recipes.gtceu.assembler('long_distance_item_pipe')

View file

@ -837,7 +837,7 @@ function registerGTCEUMetalRecipes(event) {
.id(`${material.getName()}_ingot_to_bars`)
}
GTMaterialRegistry.getRegisteredMaterials().forEach(material => {
forEachMaterial(material => {
const toolProperty = material.getProperty(PropertyKey.TOOL)
const ingotProperty = material.getProperty(PropertyKey.INGOT)
const oreProperty = material.getProperty(PropertyKey.ORE)

View file

@ -8,7 +8,7 @@ function registerGTCEURecyclingRecipes(event) {
.itemOutputs(
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Tantalum, 1),
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Polyethylene, 1)
)
)
.duration(GTMaterials.Tantalum.getMass() * 1)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
@ -18,7 +18,7 @@ function registerGTCEURecyclingRecipes(event) {
.itemOutputs(
ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Tantalum, 1),
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Ash, 1)
)
)
.duration(GTMaterials.Tantalum.getMass() * 1)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
@ -28,7 +28,7 @@ function registerGTCEURecyclingRecipes(event) {
.itemInputs('gtceu:capacitor')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Polyethylene, 1)
)
)
.duration(GTMaterials.Polyethylene.getMass() * 1)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
@ -37,7 +37,7 @@ function registerGTCEURecyclingRecipes(event) {
.itemInputs('gtceu:capacitor')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Ash, 1)
)
)
.duration(GTMaterials.Ash.getMass() * 1)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
@ -47,7 +47,7 @@ function registerGTCEURecyclingRecipes(event) {
.itemInputs('gtceu:empty_tier_i_battery')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Ultimet, 6)
)
)
.duration(GTMaterials.Ultimet.getMass() * 6)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
@ -56,7 +56,7 @@ function registerGTCEURecyclingRecipes(event) {
.itemInputs('gtceu:empty_tier_i_battery')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Ultimet, 6)
)
)
.duration(GTMaterials.Ultimet.getMass() * 6)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
@ -73,7 +73,7 @@ function registerGTCEURecyclingRecipes(event) {
.itemInputs('gtceu:empty_tier_ii_battery')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Ruridit, 6)
)
)
.duration(GTMaterials.Ruridit.getMass() * 6)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
@ -82,7 +82,7 @@ function registerGTCEURecyclingRecipes(event) {
.itemInputs('gtceu:empty_tier_ii_battery')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Ruridit, 6)
)
)
.duration(GTMaterials.Ruridit.getMass() * 6)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
@ -99,7 +99,7 @@ function registerGTCEURecyclingRecipes(event) {
.itemInputs('gtceu:empty_tier_iii_battery')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Neutronium, 6)
)
)
.duration(GTMaterials.Neutronium.getMass() * 6)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
@ -108,7 +108,7 @@ function registerGTCEURecyclingRecipes(event) {
.itemInputs('gtceu:empty_tier_iii_battery')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Neutronium, 6)
)
)
.duration(GTMaterials.Neutronium.getMass() * 6)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])

View file

@ -2,6 +2,9 @@
function removeGTCEURecipes(event) {
event.replaceInput({ input: 'gtceu:wood_drum' }, 'gtceu:wood_drum', 'minecraft:glass')
event.replaceInput({ input: 'minecraft:chest' }, 'minecraft:chest', '#forge:chests/wooden')
global.GTCEU_DISABLED_ITEMS.forEach(item => {
event.remove({ input: item })
event.remove({ output: item })
@ -155,6 +158,19 @@ function removeGTCEURecipes(event) {
// #endregion
// #region Nether Quartz
event.remove({ id: 'gtceu:shaped/quartz_stair_saw' })
event.remove({ id: 'gtceu:assembler/assemble_quartz_into_stair' })
event.remove({ id: 'gtceu:shaped/quartz_polish_hammer' })
event.remove({ id: 'gtceu:assembler/assemble_quartz_into_polished' })
event.remove({ id: 'gtceu:assembler/assemble_block_of_quartz_into_quartz_pillar' })
event.remove({ id: 'gtceu:shaped/smooth_quartz_stair_saw' })
event.remove({ id: 'gtceu:assembler/assemble_smooth_quartz_into_stair' })
event.remove({ id: 'gtceu:shaped/smooth_quartz_slab_saw' })
// #endregion
// #region Plant Ball
event.remove({ id: 'gtceu:compressor/plant_ball_from_wheat' })
@ -587,6 +603,8 @@ function removeGTCEURecipes(event) {
event.remove({ id: 'gtceu:shaped/shield' })
event.remove({ id: 'gtceu:shaped/pickaxe_iron' })
event.remove({ id: 'gtceu:shapeless/glass_full_dust_flint' })
event.remove({ id: 'gtceu:shaped_fluid_container/treated_wood_planks' })
event.remove({ id: 'gtceu:assembler/bell' })
@ -608,6 +626,18 @@ function removeGTCEURecipes(event) {
event.remove({ id: 'gtceu:assembler/spyglass' })
event.remove({ id: 'gtceu:chemical_reactor/ghast_tear_separation' })
event.remove({ id: 'gtceu:assembler/assemble_brick_into_stair' })
event.remove({ id: 'gtceu:assembler/assemble_brick_into_wall' })
event.remove({ id: 'gtceu:compressor/bricks' })
event.remove({ id: 'gtceu:extractor/bricks_extraction' })
event.remove({ id: 'gtceu:macerator/macerate_bricks' })
event.remove({ id: 'gtceu:macerator/macerate_brick_stairs' })
event.remove({ id: 'gtceu:macerator/macerate_brick_slab' })
event.remove({ id: 'gtceu:macerator/macerate_brick_wall' })
event.remove({ id: 'gtceu:macerator/macerate_flower_pot' })
event.remove({ id: 'gtceu:centrifuge/decomposition_centrifuging__fireclay' })
event.remove({ id: 'gtceu:smelting/sticky_resin_from_slime' })
}

View file

@ -63,6 +63,8 @@ const registerGTCEUItemTags = (event) => {
event.add('minecraft:piglin_loved', 'gtceu:poor_raw_pyrite')
event.add('minecraft:piglin_loved', 'gtceu:raw_pyrite')
event.add('minecraft:piglin_loved', 'gtceu:rich_raw_pyrite')
event.remove('forge:gems', 'gtceu:coke_gem')
}
const registerGTCEUBlockTags = (event) => {
@ -76,8 +78,19 @@ const registerGTCEUBlockTags = (event) => {
event.add('minecraft:mineable/pickaxe', '#forge:ores')
event.add('minecraft:needs_iron_tool', '#forge:ores')
// Collapse tags
event.add('tfc:can_collapse', '#forge:ores')
event.add('tfc:can_start_collapse', '#forge:ores')
event.add('tfc:can_trigger_collapse', '#forge:ores')
event.add('c:hidden_from_recipe_viewers', '#forge:ores')
event.add('tfc:can_collapse', '#forge:raw_ore_blocks')
event.add('tfc:can_start_collapse', '#forge:raw_ore_blocks')
event.add('tfc:can_trigger_collapse', '#forge:raw_ore_blocks')
event.add('c:hidden_from_recipe_viewers', '#forge:raw_ore_blocks')
// Let GT indicators be covered by snow
GTMaterialRegistry.getRegisteredMaterials().forEach(material => {
forEachMaterial(material => {
if (material.hasProperty(PropertyKey.ORE)) {
let indicator = `gtceu:${material.getName()}_indicator`;
@ -96,19 +109,6 @@ const registerGTCEUBlockTags = (event) => {
event.add('minecraft:mineable/pickaxe', bud)
}
// I LOVE KUBEJS I LOVE KUBEJS I LOVE KUBEJS
let str = `:${ChemicalHelper.get(TagPrefix.rawOreBlock, material, 1).getItem()}`;
if (material == GTMaterials.Copper || material == GTMaterials.Gold || material == GTMaterials.Iron)
str = "minecraft" + str;
else
str = "gtceu" + str;
event.add('tfc:can_collapse', str);
event.add('tfc:can_start_collapse', str);
event.add('tfc:can_trigger_collapse', str);
// Hide these from JEI
event.add('c:hidden_from_recipe_viewers', str);
}
})
}

View file

@ -64,7 +64,7 @@ function generatePlatedBlockRecipe(event, material) {
let outputMaterial = (tfcProperty == null || tfcProperty.getOutputMaterial() == null) ? material : tfcProperty.getOutputMaterial()
let plateItem = ChemicalHelper.get(TagPrefix.plate, material, 1);
let platedBlock = ChemicalHelper.get(TFGTagPrefix.blockPlated, material, 1);
let platedSlab = ChemicalHelper.get(TFGTagPrefix.slabPlated, material, 1);
let platedStair = ChemicalHelper.get(TFGTagPrefix.stairPlated, material, 1);
@ -162,4 +162,14 @@ function generatePlatedBlockRecipe(event, material) {
.duration(material.getMass())
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
}
const $MRM = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.IMaterialRegistryManager')
function forEachMaterial(iterator) {
if (GTMaterialRegistry.getPhase() === $MRM.Phase.CLOSED || GTMaterialRegistry.getPhase() === $MRM.Phase.FROZEN) {
GTMaterialRegistry.getRegisteredMaterials().forEach(material => {
iterator(material)
})
}
}

View file

@ -2,13 +2,4 @@
const registerHotOrNotRecipes = (event) => {
event.remove({ id: 'tfchotornot/heating/tong_part/cast_iron' })
event.remove({ id: 'tfchotornot/anvil/tong_part/cast_iron' })
event.remove({ id: 'tfchotornot/heating/tongs/cast_iron' })
event.remove({ id: 'tfchotornot:crafting/tongs/cast_iron' })
event.recipes.tfc.loom('tfchotornot:wool_potholder', '2x minecraft:blue_wool', 16, 'minecraft:block/white_wool')
.id('tfchotornot:loom/wool_potholder')
}

View file

@ -7,9 +7,6 @@ const registerHotOrNotItemTags = (event) => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
})
// TODO: TEMP FIX
event.add('tfchotornot:insulating', '#tfc:all_blowpipes')
}
const registerHotOrNotBlockTags = (event) => {

View file

@ -18,22 +18,15 @@ const registerMegaCellsRecipes = (event) => {
//printed accumulation circuit
event.recipes.gtceu.forming_press('megacells:printed_accumulation_processor')
.itemInputs('#forge:plates/enriched_naquadah')
.itemInputs('#forge:dense_plates/silicon')
.notConsumable('megacells:accumulation_processor_press')
.itemOutputs('megacells:printed_accumulation_processor')
.duration(20)
.EUt(1920)
// Inscrdiber Silicon Press
event.recipes.gtceu.laser_engraver('ae2:accumulation_processor_press_iron')
.itemInputs('#forge:plates/cast_iron', 'ae2:singularity')
.notConsumable('#forge:lenses/black')
.itemOutputs('megacells:accumulation_processor_press')
.duration(6000)
.EUt(1920)
event.recipes.gtceu.laser_engraver('ae2:accumulation_processor_press_wrought_iron')
.itemInputs('#forge:plates/wrought_iron', 'ae2:singularity')
// Inscriber Silicon Press
event.recipes.gtceu.laser_engraver('ae2:accumulation_processor_press')
.itemInputs('#forge:plates/naquadah')
.notConsumable('#forge:lenses/black')
.itemOutputs('megacells:accumulation_processor_press')
.duration(4000)
@ -73,7 +66,7 @@ const registerMegaCellsRecipes = (event) => {
'BBB'
], {
A: 'ae2:quartz_vibrant_glass',
B: '#forge:plates/enriched_naquadah',
B: '#forge:plates/maraging_steel_300',
C: '#forge:fine_wires/niobium_titanium',
D: '#gtceu:circuits/iv',
}).id('tfg:crafting/mega_item_cell_housing')

View file

@ -348,7 +348,7 @@ const registerMinecraftRecipes = (event) => {
C: '#tfc:rock/smooth'
}).id('tfg:shaped/comparator_nether_quartz');
event.replaceInput({id: 'gtceu:shaped/redstone_lamp' }, 'minecraft:glass_pane', '#forge:glass_panes')
event.replaceInput({ id: 'gtceu:shaped/redstone_lamp' }, 'minecraft:glass_pane', '#forge:glass_panes')
event.recipes.gtceu.assembler('redstone_lamp')
.itemInputs('1x #forge:glass', '1x minecraft:glowstone', '1x #forge:rods/red_alloy')
.itemOutputs('minecraft:redstone_lamp')
@ -793,42 +793,41 @@ const registerMinecraftRecipes = (event) => {
//#region Выход: Элитра
// Ну и херь я придумал
event.recipes.gtceu.arc_furnace('tfg:minecraft/arc_furnace/recycling/elytra')
.itemInputs(Item.of('minecraft:elytra', '{Damage:0}').strongNBT())
.itemOutputs('4x gtceu:aluminium_ingot', '2x gtceu:polycaprolactam_ingot')
.duration(224)
.EUt(GTValues.VA[GTValues.LV])
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
event.recipes.gtceu.macerator('tfg:minecraft/macerator/recycling/elytra')
.itemInputs(Item.of('minecraft:elytra', '{Damage:0}').strongNBT())
.itemOutputs('4x gtceu:aluminium_dust', '2x gtceu:polycaprolactam_dust')
.duration(224)
.EUt(GTValues.VA[GTValues.ULV])
.category(GTRecipeCategories.MACERATOR_RECYCLING)
event.recipes.gtceu.assembler('tfg:minecraft/elytra')
.itemInputs('16x #forge:foils/polycaprolactam', '16x #forge:foils/aluminium', '8x minecraft:phantom_membrane', '4x #forge:rings/aluminium', '2x #forge:rods/long/vanadium_steel', '2x #forge:small_springs/aluminium', '1x #forge:small_gears/aluminium')
.itemInputs('16x tfg:polycaprolactam_fabric', '16x #forge:foils/aluminium', '8x tfg:phantom_silk', '4x #forge:rings/aluminium', '2x #forge:rods/long/vanadium_steel', '2x #forge:small_springs/aluminium', '1x #forge:small_gears/aluminium')
.circuit(4)
.itemOutputs(Item.of('minecraft:elytra', "{Damage:0}"))
.duration(1600)
.EUt(420)
event.recipes.gtceu.assembler('tfg:minecraft/elytra2')
.itemInputs('16x #forge:foils/polycaprolactam', '16x #forge:foils/aluminium', '8x #forge:plates/ender_eye', '4x #forge:rings/aluminium', '2x #forge:rods/long/vanadium_steel', '2x #forge:small_springs/aluminium', '1x #forge:small_gears/aluminium')
.itemInputs('16x tfg:polycaprolactam_fabric', '16x #forge:foils/aluminium', '8x #forge:plates/ender_eye', '4x #forge:rings/aluminium', '2x #forge:rods/long/vanadium_steel', '2x #forge:small_springs/aluminium', '1x #forge:small_gears/aluminium')
.circuit(4)
.itemOutputs(Item.of('minecraft:elytra', "{Damage:0}"))
.duration(1600)
.EUt(420)
event.recipes.gtceu.assembler('tfg:minecraft/elytra_repairing')
.itemInputs('6x #forge:foils/polycaprolactam', Item.of('minecraft:elytra', '{Damage:2045}').strongNBT())
.itemInputs('6x tfg:polycaprolactam_fabric', Item.of('minecraft:elytra', '{Damage:2045}').strongNBT())
.circuit(4)
.itemOutputs(Item.of('minecraft:elytra', "{Damage:0}"))
.duration(1600)
.EUt(120)
event.recipes.gtceu.arc_furnace('tfg:minecraft/arc_furnace/recycling/elytra')
.itemInputs(Item.of('minecraft:elytra', '{Damage:0}').strongNBT())
.itemOutputs('4x gtceu:aluminium_ingot', '4x gtceu:tiny_ash_dust')
.duration(224)
.EUt(GTValues.VA[GTValues.LV])
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
event.recipes.gtceu.macerator('tfg:minecraft/macerator/recycling/elytra')
.itemInputs(Item.of('minecraft:elytra', '{Damage:0}').strongNBT())
.itemOutputs('4x gtceu:aluminium_dust', '4x gtceu:polycaprolactam_dust')
.duration(224)
.EUt(GTValues.VA[GTValues.ULV])
.category(GTRecipeCategories.MACERATOR_RECYCLING)
//#endregion
//#region Glowstone
@ -948,4 +947,50 @@ const registerMinecraftRecipes = (event) => {
.itemOutputs('minecraft:leather')
.EUt(7).duration(80)
//#endregion
//#region Campfire
event.shaped('minecraft:campfire', [
' A ',
'ABA',
'CDC'
], {
A: 'minecraft:blaze_rod',
B: 'minecraft:blaze_powder',
C: '#forge:ingots/blue_steel',
D: '#forge:storage_blocks/charcoal',
}).id('tfg:campfire_charcoal')
event.shaped('minecraft:campfire', [
' A ',
'ABA',
'CDC'
], {
A: 'minecraft:blaze_rod',
B: 'minecraft:blaze_powder',
C: '#forge:ingots/blue_steel',
D: '#forge:storage_blocks/coal',
}).id('tfg:campfire_coal')
//#endregion
//#region Smithing Table
event.shaped('minecraft:smithing_table', [
'C ',
'BB ',
'AA '
], {
A: '#minecraft:planks',
B: ChemicalHelper.get(TagPrefix.plate, GTMaterials.Lead, 1),
C: '#forge:tools/hammers'
}).id('minecraft:shapeless/smithing_table')
event.recipes.gtceu.assembler('minecraft:assembler/smithing_table')
.itemInputs('2x #minecraft:planks', ChemicalHelper.get(TagPrefix.plate, GTMaterials.Lead, 2))
.circuit(4)
.itemOutputs('minecraft:smithing_table')
.duration(60)
.EUt(GTValues.VA[GTValues.ULV])
//#endregion
event.smelting('tfc:glue', 'minecraft:slime_ball')
.id('tfg:smelting/slime_to_glue')
}

View file

@ -1576,6 +1576,9 @@ function removeMinecraftRecipes(event) {
//#region Выход: Стол для ковки
event.remove({ id: 'minecraft:smithing_table' })
event.remove({ id: 'tfc:crafting/vanilla/smithing_table' })
event.remove({ id: 'gtceu:shaped/smithing_table' })
event.remove({ id: 'gtceu:assembler/smithing_table' })
//#endregion

View file

@ -54,9 +54,9 @@ const registerMinecraftItemTags = (event) => {
event.add('tfc:rock/raw', 'minecraft:blackstone')
event.add('tfc:rock/raw', 'minecraft:dripstone_block')
event.add('tfc:sewing_dark_cloth', 'minecraft:phantom_membrane')
event.remove('forge:gems', 'minecraft:charcoal')
event.remove('forge:gems', 'minecraft:coal')
event.remove('minecraft:dirt', 'minecraft:moss_block')
}
const registerMinecraftBlockTags = (event) => {
@ -126,6 +126,8 @@ const registerMinecraftBlockTags = (event) => {
event.add('tfg:brick_stairs', 'minecraft:blackstone_stairs')
event.add('tfg:brick_slabs', 'minecraft:blackstone_slab')
event.add('tfg:brick_walls', 'minecraft:blackstone_wall')
event.remove('minecraft:dirt', 'minecraft:moss_block')
//#region
}

View file

@ -400,4 +400,17 @@ const registerRailWaysRecipes = (event) => {
.EUt(16)
.circuit(3)
});
event.shaped('1x railways:handcar', [
'EFE',
'BAA',
'CDC'
], {
A: '#minecraft:wooden_slabs',
B: '#create:seats',
C: 'gtceu:steel_minecart_wheels',
D: 'greate:steel_cogwheel',
E: ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.Steel, 1),
F: ChemicalHelper.get(TagPrefix.spring, GTMaterials.Steel, 1)
}).id('tfg:railways/shaped/handcar')
}

View file

@ -18,17 +18,15 @@ const registerRnrRecipes = (event) => {
.EUt(GTValues.VA[GTValues.ULV])
global.TFC_STONE_TYPES.forEach(stone => {
event.recipes.gtceu.assembler(`rnr:assembler/flagstone/${stone}`)
.itemInputs(`tfc:rock/loose/${stone}`)
event.recipes.gtceu.cutter(`rnr:assembler/flagstone/${stone}`)
.itemInputs(`tfc:brick/${stone}`)
.itemOutputs(`2x rnr:flagstone/${stone}`)
.circuit(7)
.duration(20)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.assembler(`rnr:assembler/flagstone/mossy_${stone}`)
event.recipes.gtceu.cutter(`rnr:assembler/flagstone/mossy_${stone}`)
.itemInputs(`tfc:rock/mossy_loose/${stone}`)
.itemOutputs(`2x rnr:flagstone/${stone}`)
.circuit(7)
.duration(20)
.EUt(GTValues.VA[GTValues.ULV])
});

View file

@ -54,7 +54,7 @@ const registerTFCHeats = (event) => {
if (!tool.isEmpty()) event.itemHeat(tool, heatCapacity, tfcProperty.getForgingTemp(), tfcProperty.getWeldingTemp())
}
GTMaterialRegistry.getRegisteredMaterials().forEach(material => {
forEachMaterial(material => {
let tfcProperty = material.getProperty(TFGPropertyKey.TFC_PROPERTY)
if (tfcProperty != null) {
@ -199,6 +199,15 @@ const registerTFCItemSize = (event) => {
event.itemSize('tfg:decorative_vase', 'normal', 'medium', 'decorative_vase')
event.itemSize('tfg:decorative_vase/unfired', 'normal', 'medium', 'decorative_vase/unfired')
event.itemSize('tfg:fishing_net/wood', 'large', 'medium', 'wood_fishing_net')
event.itemSize('tfg:fishing_net/brass', 'large', 'medium', 'brass_fishing_net')
event.itemSize('tfg:fishing_net/rose_gold', 'large', 'medium', 'rose_gold_fishing_net')
event.itemSize('tfg:fishing_net/sterling_silver', 'large', 'medium', 'sterling_silver_fishing_net')
event.itemSize('tfg:fishing_net/invar', 'large', 'medium', 'invar_fishing_net')
event.itemSize('tfg:fishing_net/cupronickel', 'large', 'medium', 'cupronickel_fishing_net')
event.itemSize('tfg:fishing_net/tin_alloy', 'large', 'medium', 'tin_alloy_fishing_net')
event.itemSize('tfg:fishing_net/magnalium', 'large', 'medium', 'magnalium_fishing_net')
event.itemSize('#tfc:ore_pieces', 'very_small', 'very_light', 'tfc_ores')
}
@ -257,19 +266,19 @@ const registerTFCFoodData = (event) => {
//#region registerTFCSupportData
//up, down, horizontal
const registerTFCSupportData = (event) => {
event.support('tfg:light_concrete_support', 4, 4, 8, 'light_concrete_support')
event.support('tfg:dark_concrete_support', 4, 4, 8, 'dark_concrete_support')
event.support('tfg:reinforced_light_concrete_support', 6, 6, 16, 'reinforced_light_concrete_support')
event.support('tfg:reinforced_dark_concrete_support', 6, 6, 16, 'reinforced_dark_concrete_support')
event.support('tfg:rebar_support', 4, 4, 8, 'rebar_support')
event.support('tfg:steel_support', 6, 6, 16, 'steel_support')
event.support('tfg:light_concrete_support_horizontal', 4, 4, 8, 'light_concrete_support')
event.support('tfg:dark_concrete_support_horizontal', 4, 4, 8, 'dark_concrete_support')
event.support('tfg:reinforced_light_concrete_support_horizontal', 6, 6, 16, 'reinforced_light_concrete_support')
event.support('tfg:reinforced_dark_concrete_support_horizontal', 6, 6, 16, 'reinforced_dark_concrete_support')
event.support('tfg:rebar_support_horizontal', 4, 4, 8, 'rebar_support')
event.support('tfg:steel_support_horizontal', 6, 6, 16, 'steel_support')
const other_stone = ['pyroxenite', 'migmatite', 'travertine']
const stone_types = global.TFC_STONE_TYPES.concat(other_stone)
stone_types.forEach(stone => {
event.support(`tfg:${stone}_support`, 2, 2, 4, `${stone}_support`)
event.support(`tfg:${stone}_support_horizontal`, 2, 2, 4, `${stone}_support`)
})
}
//#endregion

View file

@ -237,4 +237,79 @@ const registerTFCRecipes = (event) => {
// Brass Mechanism
event.recipes.shapeless('gtceu:small_brass_gear', [ 'tfc:brass_mechanisms' ]).id('tfg:replace_brass_mechanisms')
event.replaceInput({ input: 'tfc:brass_mechanisms' }, 'tfc:brass_mechanisms', 'gtceu:small_brass_gear')
// Fertilizers
event.recipes.gtceu.centrifuge('tfg:gtceu/centrifuge/pure_fertilizers')
.itemInputs('1x gtceu:fertilizer')
.itemOutputs('1x tfc:pure_nitrogen', '1x tfc:pure_potassium', '1x tfc:pure_phosphorus')
.duration(340)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.mixer('tfg:tfc/mixer/fertilizer')
.itemInputs('1x tfc:pure_nitrogen', '1x tfc:pure_potassium', '1x tfc:pure_phosphorus', ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Clay, 1))
.itemOutputs('1x gtceu:fertilizer')
.duration(160)
.EUt(GTValues.VA[GTValues.ULV])
//Hide Sewing
const stages = [
'raw',
'soaked',
'scraped',
'prepared',
'sheepskin'
];
const sizes = [
'small',
'medium',
'large'
];
stages.forEach((stage) => {
sizes.forEach((size, index) => {
// Find the next larger size.
const nextLarger = sizes[index + 1];
// If a larger size exists, sew the hides together.
if (nextLarger) {
event.recipes.tfc.damage_inputs_shapeless_crafting(
event.shapeless(`1x tfc:${nextLarger}_${stage}_hide`, [
`2x tfc:${size}_${stage}_hide`,
'#tfc:sewing_needles',
'#forge:string',
'tfc:glue'
]).id(`tfg:tfc/${size}_to_${nextLarger}_${stage}_hide`)
)
event.recipes.gtceu.assembler(`tfg:gtceu/assembler/${size}_to_${nextLarger}_${stage}_hide`)
.inputFluids(Fluid.of('gtceu:glue', 25))
.itemOutputs(`1x tfc:${nextLarger}_${stage}_hide`)
.itemInputs(`2x tfc:${size}_${stage}_hide`)
.duration(60)
.circuit(7)
.EUt(GTValues.VA[GTValues.ULV])
}
// Find the next smaller size.
const nextSmaller = sizes[index - 1];
// If a smaller size exists, cut the hide.
if (nextSmaller) {
event.recipes.tfc.damage_inputs_shapeless_crafting(
event.shapeless(`2x tfc:${nextSmaller}_${stage}_hide`, [
`1x tfc:${size}_${stage}_hide`,
'#forge:shears'
]).id(`tfg:tfc/${size}_to_${nextSmaller}_${stage}_hide`)
)
event.recipes.gtceu.assembler(`tfg:gtceu/assembler/${size}_to_${nextSmaller}_${stage}_hide`)
.itemOutputs(`2x tfc:${nextSmaller}_${stage}_hide`)
.itemInputs(`1x tfc:${size}_${stage}_hide`)
.duration(60)
.circuit(4)
.EUt(GTValues.VA[GTValues.ULV])
}
});
});
}

View file

@ -176,23 +176,23 @@ function registerTFCMachineRecipes(event) {
// Curdled milk
event.recipes.gtceu.fermenter('tfg:fermenter/curdled_milk')
.inputFluids(Fluid.of('minecraft:milk', 1000))
.inputFluids(Fluid.of('minecraft:milk', 2000))
.itemInputs('firmalife:rennet')
.outputFluids(Fluid.of('tfc:curdled_milk'))
.outputFluids(Fluid.of('tfc:curdled_milk', 2000))
.duration(2400)
.EUt(16)
event.recipes.gtceu.fermenter('tfg:fermenter/curdled_yak_milk')
.inputFluids(Fluid.of('firmalife:yak_milk', 1000))
.inputFluids(Fluid.of('firmalife:yak_milk', 2000))
.itemInputs('firmalife:rennet')
.outputFluids(Fluid.of('firmalife:curdled_yak_milk'))
.outputFluids(Fluid.of('firmalife:curdled_yak_milk', 2000))
.duration(2400)
.EUt(16)
event.recipes.gtceu.fermenter('tfg:fermenter/curdled_goat_milk')
.inputFluids(Fluid.of('firmalife:goat_milk', 1000))
.inputFluids(Fluid.of('firmalife:goat_milk', 2000))
.itemInputs('firmalife:rennet')
.outputFluids(Fluid.of('firmalife:curdled_goat_milk'))
.outputFluids(Fluid.of('firmalife:curdled_goat_milk', 2000))
.duration(2400)
.EUt(16)
@ -303,7 +303,7 @@ function registerTFCMachineRecipes(event) {
event.recipes.gtceu.mixer('tfg:tfc/olive_oil_water')
.inputFluids(Fluid.of('water', 200))
.itemInputs('2x tfc:olive_paste')
.itemInputs('1x tfc:olive_paste')
.outputFluids(Fluid.of('tfc:olive_oil_water', 200))
.duration(200)
.EUt(28)
@ -316,6 +316,26 @@ function registerTFCMachineRecipes(event) {
//#endregion
// Vinegar and Brine
global.TFC_ALCOHOL.forEach(alcohol => {
event.recipes.gtceu.fermenter(`tfg:tfc/vinegar/${alcohol.id.replace(':', '_')}`)
.itemInputs('#tfc:foods/fruits')
.inputFluids(Fluid.of(alcohol.id, 250))
.outputFluids(Fluid.of('tfc:vinegar', 250))
.duration(600)
.EUt(28)
})
event.recipes.gtceu.mixer('tfg:tfc/brine')
.inputFluids(Fluid.of('tfc:salt_water', 900))
.inputFluids(Fluid.of('tfc:vinegar', 100))
.outputFluids(Fluid.of('tfc:brine', 1000))
.duration(100)
.EUt(16)
//#endregion
// Lamp Glass
event.recipes.gtceu.alloy_smelter(`tfg:tfc/lamp_glass`)
.itemInputs('#tfc:glass_batches')
@ -359,6 +379,12 @@ function registerTFCMachineRecipes(event) {
.duration(50)
.EUt(2)
event.recipes.gtceu.lathe('tfc:lens')
.itemInputs('#forge:glass')
.itemOutputs('tfc:lens')
.duration(100)
.EUt(16)
// Wool Yarn
event.recipes.gtceu.macerator('macerate_wool')
.itemInputs('#minecraft:wool')
@ -370,7 +396,7 @@ function registerTFCMachineRecipes(event) {
.EUt(2)
// LimeWater + Sand -> Mortar
event.recipes.gtceu.centrifuge('mortar')
event.recipes.gtceu.mixer('mortar')
.itemInputs('#forge:sand')
.inputFluids(Fluid.of('tfc:limewater', 100))
.itemOutputs('16x tfc:mortar')
@ -383,6 +409,7 @@ function registerTFCMachineRecipes(event) {
.itemInputs('tfc:small_sheepskin_hide')
.itemOutputs('tfc:wool')
.duration(100)
.circuit(3)
.EUt(4)
// 1x Medium SheepSkin -> 1x Wool
@ -390,6 +417,7 @@ function registerTFCMachineRecipes(event) {
.itemInputs('tfc:medium_sheepskin_hide')
.itemOutputs('2x tfc:wool')
.duration(100)
.circuit(3)
.EUt(4)
// 1x Large SheepSkin -> 1x Wool
@ -397,6 +425,7 @@ function registerTFCMachineRecipes(event) {
.itemInputs('tfc:large_sheepskin_hide')
.itemOutputs('3x tfc:wool')
.duration(100)
.circuit(3)
.EUt(4)
// Wool Yarn
@ -440,4 +469,40 @@ function registerTFCMachineRecipes(event) {
// Jute Fiber
generateMixerRecipe(event, 'tfc:jute', Fluid.of('minecraft:water', 200), 'tfc:jute_fiber', null, [], 100, 4, 16, 'tfg:tfc/jute_fiber')
}
// Ceramic Recycling
event.recipes.gtceu.macerator('tfg:sherd_to_brick_dust')
.itemInputs('firmalife:pottery_sherd')
.itemOutputs('#forge:dusts/brick')
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.duration(20)
.EUt(2)
event.recipes.gtceu.macerator('tfg:ceramic_molds')
.itemInputs('#tfc:fired_molds')
.itemOutputs('2x #forge:dusts/brick')
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.duration(20)
.EUt(2)
event.recipes.gtceu.macerator('tfg:large_vessels')
.itemInputs('#tfc:fired_large_vessels')
.itemOutputs('5x #forge:dusts/brick')
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.duration(20)
.EUt(2)
event.recipes.gtceu.macerator('tfg:casting_channel')
.itemInputs('tfcchannelcasting:channel')
.itemOutputs('1x #forge:dusts/brick')
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.duration(20)
.EUt(2)
event.recipes.gtceu.macerator('tfg:mold_table')
.itemInputs('tfcchannelcasting:mold_table')
.itemOutputs('5x #forge:dusts/brick')
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.duration(20)
.EUt(2)
}

View file

@ -2,7 +2,7 @@
function registerTFCMaterialsRecipes(event) {
GTMaterialRegistry.getRegisteredMaterials().forEach(material => {
forEachMaterial(material => {
let tfcProperty = material.getProperty(TFGPropertyKey.TFC_PROPERTY)
if (tfcProperty == null) {

View file

@ -272,32 +272,7 @@ function registerTFCMetalsRecipes(event) {
.tier(5)
.id('tfc:anvil/blue_steel_ingot')
// Gears
event.recipes.tfc.anvil('gtceu:bronze_gear', '#forge:double_plates/bronze', ['punch_last', 'shrink_any', 'draw_any'])
.tier(2)
.id('tfc:anvil/bronze_gear')
event.recipes.tfc.anvil('gtceu:black_bronze_gear', '#forge:double_plates/black_bronze', ['punch_last', 'shrink_any', 'draw_any'])
.tier(2)
.id('tfc:anvil/black_bronze_gear')
event.recipes.tfc.anvil('gtceu:bismuth_bronze_gear', '#forge:double_plates/bismuth_bronze', ['punch_last', 'shrink_any', 'draw_any'])
.tier(2)
.id('tfc:anvil/bismuth_bronze_gear')
event.recipes.tfc.anvil('gtceu:wrought_iron_gear', '#forge:double_plates/wrought_iron', ['punch_last', 'shrink_any', 'draw_any'])
.tier(3)
.id('tfc:anvil/wrought_iron_gear')
event.recipes.tfc.anvil('gtceu:steel_gear', '#forge:double_plates/steel', ['punch_last', 'shrink_any', 'draw_any'])
.tier(4)
.id('tfc:anvil/steel_gear')
event.recipes.tfc.anvil('gtceu:black_steel_gear', '#forge:double_plates/black_steel', ['punch_last', 'shrink_any', 'draw_any'])
.tier(5)
.id('tfc:anvil/black_steel_gear')
event.recipes.tfc.anvil('gtceu:red_steel_gear', '#forge:double_plates/red_steel', ['punch_last', 'shrink_any', 'draw_any'])
.tier(6)
.id('tfc:anvil/red_steel_gear')
event.recipes.tfc.anvil('gtceu:blue_steel_gear', '#forge:double_plates/blue_steel', ['punch_last', 'shrink_any', 'draw_any'])
.tier(6)
.id('tfc:anvil/blue_steel_gear')
// Small Gears
event.recipes.tfc.anvil('gtceu:small_wrought_iron_gear', '#forge:ingots/wrought_iron', ['hit_last', 'shrink_second_last', 'draw_third_last'])
.tier(3)
.id('tfc:anvil/small_wrought_iron_gear')
@ -310,6 +285,12 @@ function registerTFCMetalsRecipes(event) {
event.recipes.tfc.anvil('gtceu:small_bronze_gear', '#forge:ingots/bronze', ['hit_last', 'shrink_second_last', 'draw_third_last'])
.tier(2)
.id('tfc:anvil/small_bronze_gear')
event.recipes.tfc.anvil('gtceu:small_bismuth_bronze_gear', '#forge:ingots/bismuth_bronze', ['hit_last', 'shrink_second_last', 'draw_third_last'])
.tier(2)
.id('tfc:anvil/small_bismuth_bronze_gear')
event.recipes.tfc.anvil('gtceu:small_black_bronze_gear', '#forge:ingots/black_bronze', ['hit_last', 'shrink_second_last', 'draw_third_last'])
.tier(2)
.id('tfc:anvil/small_black_bronze_gear')
// Cast iron -> Raw Iron Bloom
event.recipes.tfc.bloomery('tfc:raw_iron_bloom', 'minecraft:charcoal', Fluid.of('gtceu:iron', 144), 15000)

View file

@ -9,10 +9,9 @@ function registerTFCStoneRecipes(event) {
let smallStoneDust = ChemicalHelper.get(TagPrefix.dustSmall, stoneMaterial, 1)
// Кирпич (предмет)
event.recipes.gtceu.assembler(`tfg:tfc/${stone}_loose_to_brick`)
event.recipes.gtceu.cutter(`tfg:tfc/${stone}_loose_to_brick`)
.itemInputs(`tfc:rock/loose/${stone}`)
.itemOutputs(`tfc:brick/${stone}`)
.circuit(1)
.duration(40)
.EUt(8)

View file

@ -4,19 +4,29 @@
*
* @param {TagEvent.Item} event
*/
//#region ItemTags
const registerTFCItemTags = (event) => {
// Теги для соответствия инструментов TFC и GT
GTMaterialRegistry.getRegisteredMaterials().forEach(material => {
if (material.hasProperty(PropertyKey.TOOL)) {
for (let [key, value] of Object.entries(global.GTCEU_TOOLTYPES_WHICH_HAS_TFC_DUPS)) {
var tool = ToolHelper.get(value, material)
if (!tool.isEmpty()) event.add(key, tool.getId())
event.add('tfc:swords', '#minecraft:swords')
event.add('tfc:pickaxes', '#minecraft:pickaxes')
event.add('tfc:axes', '#minecraft:axes')
event.add('tfc:shovels', '#minecraft:shovels')
event.add('tfc:hoes', '#minecraft:hoes')
event.add('tfc:hammers', '#forge:tools/hammers')
event.add('tfc:knives', '#forge:tools/knives')
event.add('tfc:saws', '#forge:tools/saws')
event.add('tfc:scythes', '#forge:tools/scythes')
event.add('tfc:usable_on_tool_rack', `#${key}`)
}
}
})
event.add('tfc:usable_on_tool_rack', '#mincraft:swords')
event.add('tfc:usable_on_tool_rack', '#minecraft:pickaxes')
event.add('tfc:usable_on_tool_rack', '#minecraft:axes')
event.add('tfc:usable_on_tool_rack', '#minecraft:shovels')
event.add('tfc:usable_on_tool_rack', '#minecraft:hoes')
event.add('tfc:usable_on_tool_rack', '#forge:tools/hammers')
event.add('tfc:usable_on_tool_rack', '#forge:tools/knives')
event.add('tfc:usable_on_tool_rack', '#forge:tools/saws')
event.add('tfc:usable_on_tool_rack', '#forge:tools/scythes')
event.add('tfc:usable_on_tool_rack', '#forge:tools/mining_hammers')
event.add('tfc:usable_on_tool_rack', '#forge:tools/spades')
@ -29,12 +39,39 @@ const registerTFCItemTags = (event) => {
event.add('tfc:usable_on_tool_rack', '#forge:tools/plungers')
event.add('tfc:usable_on_tool_rack', '#forge:tools/mortars')
event.add('tfc:usable_on_tool_rack', '#forge:tools/mallets')
event.add('tfc:usable_on_tool_rack', 'tfc:wool_cloth')
event.add('tfc:usable_on_tool_rack', '#forge:tools/chainsaws')
event.add('tfc:usable_on_tool_rack', '#forge:tools/buzzsaws')
event.add('tfc:usable_on_tool_rack', '#forge:tools/drills')
event.add('tfc:usable_on_tool_rack', '#forge:tools/fishing_nets')
event.add('tfc:usable_on_tool_rack', '#tfc:buckets')
event.add('tfc:usable_on_tool_rack', 'buildinggadgets2:gadget_building')
event.add('tfc:usable_on_tool_rack', 'buildinggadgets2:gadget_exchanging')
event.add('tfc:usable_on_tool_rack', 'buildinggadgets2:gadget_copy_paste')
event.add('tfc:usable_on_tool_rack', 'buildinggadgets2:gadget_cut_paste')
event.add('tfc:usable_on_tool_rack', 'buildinggadgets2:gadget_destruction')
event.add('tfc:usable_on_tool_rack', 'create:super_glue')
event.add('tfc:usable_on_tool_rack', 'exposure:camera')
event.add('tfc:usable_on_tool_rack', 'measurements:tape_measure')
event.add('tfc:usable_on_tool_rack', '#chalk:chalks')
event.add('tfc:usable_on_tool_rack', 'chalk:chalk_box')
event.add('tfc:usable_on_tool_rack', 'computercraft:pocket_computer_normal')
event.add('tfc:usable_on_tool_rack', 'computercraft:pocket_computer_advanced')
event.add('tfc:usable_on_tool_rack', 'grapplemod:grapplinghook')
event.add('tfc:usable_on_tool_rack', 'grapplemod:launcheritem')
event.add('tfc:usable_on_tool_rack', 'ae2:color_applicator')
event.add('tfc:usable_on_tool_rack', 'ae2:matter_cannon')
event.add('tfc:usable_on_tool_rack', 'ae2:network_tool')
event.add('tfc:usable_on_tool_rack', 'ae2:wireless_terminal')
event.add('tfc:usable_on_tool_rack', 'ae2:wireless_crafting_terminal')
event.add('tfc:usable_on_tool_rack', 'waterflasks:leather_flask')
event.add('tfc:usable_on_tool_rack', 'waterflasks:iron_flask')
event.add('tfc:usable_on_tool_rack', 'waterflasks:red_steel_flask')
event.add('tfc:usable_on_tool_rack', 'tfc:wool_cloth')
// Ингредиенты для закваски
event.add('tfg:ferments_to_rennet', 'tfc:food/soybean')
event.add('tfg:ferments_to_rennet', 'firmalife:food/fig')
@ -43,7 +80,9 @@ const registerTFCItemTags = (event) => {
// Для складывания
event.add('tfc:pileable_ingots', '#forge:ingots')
event.add('tfc:pileable_sheets', '#forge:plates')
event.add('tfc:pileable_double_ingots', 'gtceu:tin_alloy_double_ingot')
event.add('tfc:pileable_double_ingots', 'gtceu:red_alloy_double_ingot')
// Рыба
event.add('minecraft:fishes', 'tfc:food/calamari')
event.add('minecraft:fishes', 'tfc:food/bluegill')
@ -259,7 +298,6 @@ const registerTFCItemTags = (event) => {
event.add('forge:cloth', 'tfc:burlap_cloth')
event.add('forge:cloth', 'tfc:wool_cloth')
event.add('forge:cloth', 'tfc:silk_cloth')
event.add('forge:cloth', 'minecraft:phantom_membrane')
// Piglin loved
event.add('minecraft:piglin_loved', 'tfc:ore/small_native_gold')
@ -267,7 +305,9 @@ const registerTFCItemTags = (event) => {
event.add('minecraft:piglin_loved', 'tfc:ore/normal_native_gold')
event.add('minecraft:piglin_loved', 'tfc:ore/rich_native_gold')
}
//#endregion
//#region BlockTags
const registerTFCBlockTags = (event) => {
// Теги для каменных ступенек тфк
global.TFC_STONE_TYPES.forEach(stoneTypeName => {
@ -376,8 +416,16 @@ const registerTFCBlockTags = (event) => {
event.add('minecraft:frogs_spawnable_on', 'tfc:rock/raw/gabbro')
//#endregion
//Allows any block with the word "brick" in its id to be used as bloomery and forge insulation.
//Add blacklisted words to the const with | between.
const brick_blacklist = ('drying|slab|stairs|wall|additionalplacements');
event.add('tfc:bloomery_insulation', `/^(?=.*brick)(?!.*(${brick_blacklist})).*/`);
event.add('tfc:forge_insulation', `/^(?=.*brick)(?!.*(${brick_blacklist})).*/`);
}
//#endregion
//#region FluidTags
const registerTFCFluidTags = (event) => {
// Удаление TFC металлов из возможных в форме слитка
event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/bismuth')
@ -480,12 +528,16 @@ const registerTFCFluidTags = (event) => {
event.add('c:hidden_from_recipe_viewers', 'tfc:metal/high_carbon_red_steel')
event.add('c:hidden_from_recipe_viewers', 'tfc:metal/high_carbon_blue_steel')
}
//#endregion
//#region BiomeTags
const registerTFCBiomeTags = (event) => {
event.add('tfc:kaolin_clay_spawns_in', 'tfc:rolling_hills')
}
//#endregion
//#region PlacedFeatures
const registerTFCPlacedFeatures = (event) => {
// Удаление
@ -561,3 +613,4 @@ const registerTFCPlacedFeatures = (event) => {
event.add('tfc:in_biome/underground_decoration', 'tfg:glow_lichen')
event.add('tfc:in_biome/underground_decoration', 'tfg:earth/sulfur_patch')
}
//#endregion

View file

@ -1,39 +1,39 @@
//#region Medicine
//pills & tablets
//Pills & Tablets
const pill_event = [
'haste',
'luck',
'night_vision',
'poison',
'regeneration',
'slowness',
'speed',
'water_breathing',
'weakness',
];
const pill_event = [
'haste',
'luck',
'night_vision',
'poison',
'regeneration',
'slowness',
'speed',
'water_breathing',
'weakness',
];
pill_event.forEach(pill_event => {
pill_event.forEach(pill_event => {
ItemEvents.rightClicked(event => {
const {item,server,player,player:{x,y,z,username}} = event
if (item.id != `tfg:${pill_event}_pill`) return
item.count--
player.addItemCooldown(item, 100)
player.runCommandSilent(`effect give ${username} minecraft:${pill_event} 480 0 true`)
server.runCommandSilent(`playsound minecraft:item.honey_bottle.drink player ${username} ${x} ${y} ${z} 10 1.5 1`)
});
ItemEvents.rightClicked(event => {
const {item,server,player,player:{x,y,z,username}} = event
if (item.id != `tfg:${pill_event}_pill`) return
item.count--
player.addItemCooldown(item, 100)
player.runCommandSilent(`effect give ${username} minecraft:${pill_event} 480 0 true`)
server.runCommandSilent(`playsound minecraft:item.honey_bottle.drink player ${username} ${x} ${y} ${z} 10 1.5 1`)
ItemEvents.rightClicked(event => {
const {item,server,player,player:{x,y,z,username}} = event
if (item.id != `tfg:${pill_event}_tablet`) return
item.count--
player.addItemCooldown(item, 100)
player.runCommandSilent(`effect give ${username} minecraft:${pill_event} 1800 0 true`)
server.runCommandSilent(`playsound minecraft:item.honey_bottle.drink player ${username} ${x} ${y} ${z} 10 1.5 1`)
});
});
ItemEvents.rightClicked(event => {
const {item,server,player,player:{x,y,z,username}} = event
if (item.id != `tfg:${pill_event}_tablet`) return
item.count--
player.addItemCooldown(item, 100)
player.runCommandSilent(`effect give ${username} minecraft:${pill_event} 1800 0 true`)
server.runCommandSilent(`playsound minecraft:item.honey_bottle.drink player ${username} ${x} ${y} ${z} 10 1.5 1`)
});
});
ItemEvents.rightClicked(event => {
const {item,server,player,player:{x,y,z,username}} = event
if (item.id != `tfg:antipoison_pill`) return
@ -62,26 +62,25 @@ pill_event.forEach(pill_event => {
server.runCommandSilent(`playsound minecraft:item.honey_bottle.drink player ${username} ${x} ${y} ${z} 10 1.5 1`)
});
//salvos
//salvos
const salvo_event = [
'fire_resistance',
'invisibility',
'luck',
'resistance',
];
const salvo_event = [
'fire_resistance',
'invisibility',
'luck',
'resistance',
];
salvo_event.forEach(salvo_event => {
salvo_event.forEach(salvo_event => {
ItemEvents.rightClicked(event => {
const {item,server,player,player:{x,y,z,username}} = event
if (item.id != `tfg:${salvo_event}_salvo`) return
item.count--
player.addItemCooldown(item, 100)
player.runCommandSilent(`effect give ${username} minecraft:${salvo_event} 480 0 true`)
server.runCommandSilent(`playsound minecraft:item.glow_ink_sac.use player ${username} ${x} ${y} ${z} 10 2 1`)
ItemEvents.rightClicked(event => {
const {item,server,player,player:{x,y,z,username}} = event
if (item.id != `tfg:${salvo_event}_salvo`) return
item.count--
player.addItemCooldown(item, 100)
player.runCommandSilent(`effect give ${username} minecraft:${salvo_event} 480 0 true`)
server.runCommandSilent(`playsound minecraft:item.glow_ink_sac.use player ${username} ${x} ${y} ${z} 10 2 1`)
});
});
});
ItemEvents.rightClicked(event => {
const {item,server,player,player:{x,y,z,username}} = event
@ -101,6 +100,8 @@ ItemEvents.rightClicked(event => {
server.runCommandSilent(`playsound minecraft:item.glow_ink_sac.use player ${username} ${x} ${y} ${z} 10 2 1`)
});
//#endregion
// Vase Sounds
global.MINECRAFT_DYE_NAMES.forEach(color => {
BlockEvents.rightClicked(event => {
@ -110,6 +111,7 @@ global.MINECRAFT_DYE_NAMES.forEach(color => {
}})
});
BlockEvents.rightClicked(event => {
const {block,server,player,player:{x,y,z,username}} = event
if (block.id != 'tfg:decorative_vase') {return}{
@ -117,7 +119,7 @@ BlockEvents.rightClicked(event => {
}});
/**
*
*
* @param {Internal.Player} player
* @returns {Internal.CompoundTag}
*/
@ -128,4 +130,87 @@ function getTFGPersistentDataRoot(player)
player.persistentData.put("tfg:custom_data", {});
}
return player.persistentData.getCompound("tfg:custom_data")
}
}
//#endregion
//#region Fishing Net
const fish = [
'cod',
'crappie',
'jellyfish',
'lake_trout',
'largemouth_bass',
'rainbow_trout',
'salmon',
'smallmouth_bass',
'tropical_fish',
'bluegill'
];
const shellfish = [
'lobster',
'isopod',
'crayfish'
];
//Event detects if fish is right clicked with fishing net and then teleports the mob into the void, plays some actions and gives the player the proper item.
fish.forEach(fish => {
ItemEvents.entityInteracted('#forge:tools/fishing_nets', event => {
const {item, player, server, target} = event;
if (target.type != `tfc:${fish}`) return
server.runCommandSilent(`particle minecraft:bubble_pop ${target.x} ${target.y} ${target.z} 0.5 0.5 0.5 0.00001 10`)
server.runCommandSilent(`playsound minecraft:entity.player.splash player ${player.username} ${target.x} ${target.y} ${target.z} 2 2 1`)
server.runCommandSilent(`tp ${target.uuid} ${target.x} ${target.y - 382} ${target.z}`)
event.player.give(`tfc:food/${fish}`)
player.swing()
if (player.isCreative() == false){
item.damageValue++
if (item.damageValue >= item.maxDamage) {
server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`)
item.count--
}
}
})
})
//Shellfish Exception
shellfish.forEach(shellfish => {
ItemEvents.entityInteracted('#forge:tools/fishing_nets', event => {
const {item, player, server, target} = event;
if (target.type != `tfc:${shellfish}`) return
server.runCommandSilent(`particle minecraft:bubble_pop ${target.x} ${target.y} ${target.z} 0.5 0.5 0.5 0.00001 10`)
server.runCommandSilent(`playsound minecraft:entity.player.splash player ${player.username} ${target.x} ${target.y} ${target.z} 2 2 1`)
server.runCommandSilent(`tp ${target.uuid} ${target.x} ${target.y - 382} ${target.z}`)
event.player.give('tfc:food/shellfish')
player.swing()
if (player.isCreative() == false){
item.damageValue++
if (item.damageValue >= item.maxDamage) {
server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`)
item.count--
}
}
})
})
//Pufferfish Exception
ItemEvents.entityInteracted('#forge:tools/fishing_nets', event => {
const {item, player, server, target} = event;
if (target.type != 'tfc:pufferfish') return
server.runCommandSilent(`particle minecraft:bubble_pop ${target.x} ${target.y} ${target.z} 0.5 0.5 0.5 0.00001 10`)
server.runCommandSilent(`playsound minecraft:entity.player.splash player ${player.username} ${target.x} ${target.y} ${target.z} 2 2 1`)
server.runCommandSilent(`tp ${target.uuid} ${target.x} ${target.y - 382} ${target.z}`)
event.player.give('minecraft:pufferfish')
player.swing()
if (player.isCreative() == false){
item.damageValue++
if (item.damageValue >= item.maxDamage) {
server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`)
item.count--
}
}
})
//#endregion

View file

@ -0,0 +1,209 @@
//priority: 0
//#region Assign materials
//////////////////////////////
//////////////////////////////
//Assign a new material here with the name of the material, the hex color for the name display, the item id that is used during smithing, and an index number that should be !!!unique!!!
const materials = [
//Gems
{materialName: 'almandine_tfc', nameColor: '#7b1112', itemName: 'gtceu:exquisite_almandine_gem', indexNumber: 0.11, lang_en_us: 'Almandine'},
{materialName: 'andradite_tfc', nameColor: '#c29d1e', itemName: 'gtceu:exquisite_andradite_gem', indexNumber: 0.12, lang_en_us: 'Andradite'},
{materialName: 'blue_topaz_tfc', nameColor: '#a7c1c6', itemName: 'gtceu:exquisite_blue_topaz_gem', indexNumber: 0.13, lang_en_us: 'Blue Topaz'},
{materialName: 'cinnabar_tfc', nameColor: '#c2274a', itemName: 'gtceu:exquisite_cinnabar_gem', indexNumber: 0.14, lang_en_us: 'Cinnabar'},
{materialName: 'coal_tfc', nameColor: '#2b2f32', itemName: 'gtceu:exquisite_coal_gem', indexNumber: 0.15, lang_en_us: 'Coal'},
{materialName: 'diamond_tfc', nameColor: '#98c2c6', itemName: 'gtceu:exquisite_diamond_gem', indexNumber: 0.16, lang_en_us: 'Diamond'},
{materialName: 'emerald_tfc', nameColor: '#11c254', itemName: 'gtceu:exquisite_emerald_gem', indexNumber: 0.17, lang_en_us: 'Emerald'},
{materialName: 'green_sapphire_tfc', nameColor: '#75af89', itemName: 'gtceu:exquisite_green_sapphire_gem', indexNumber: 0.18, lang_en_us: 'Green Sapphire'},
{materialName: 'grossular_tfc', nameColor: '#c28b5c', itemName: 'gtceu:exquisite_grossular_gem', indexNumber: 0.19, lang_en_us: 'Grossular'},
{materialName: 'rutile_tfc', nameColor: '#681c05', itemName: 'gtceu:exquisite_rutile_gem', indexNumber: 0.191, lang_en_us: 'Rutile'},
{materialName: 'lazurite_tfc', nameColor: '#1e29bb', itemName: 'gtceu:exquisite_lazurite_gem', indexNumber: 0.192, lang_en_us: 'Lazurite'},
{materialName: 'pyrope_tfc', nameColor: '#b11344', itemName: 'gtceu:exquisite_pyrope_gem', indexNumber: 0.193, lang_en_us: 'Pyrope'},
{materialName: 'rock_salt_tfc', nameColor: '#c2b2af', itemName: 'gtceu:exquisite_rock_salt_gem', indexNumber: 0.194, lang_en_us: 'Rock Salt'},
{materialName: 'ruby_tfc', nameColor: '#a41b0c', itemName: 'gtceu:exquisite_ruby_gem', indexNumber: 0.195, lang_en_us: 'Ruby'},
{materialName: 'salt_tfc', nameColor: '#bebec2', itemName: 'gtceu:exquisite_salt_gem', indexNumber: 0.196, lang_en_us: 'salt'},
{materialName: 'sapphire_tfc', nameColor: '#2628b0', itemName: 'gtceu:exquisite_sapphire_gem', indexNumber: 0.197, lang_en_us: 'Sapphire'},
{materialName: 'sodalite_tfc', nameColor: '#2e40c6', itemName: 'gtceu:exquisite_sodalite_gem', indexNumber: 0.198, lang_en_us: 'Sodalite'},
{materialName: 'coke_tfc', nameColor: '#424847', itemName: 'gtceu:exquisite_coke_gem', indexNumber: 0.199, lang_en_us: 'Coke'},
{materialName: 'spessartine_tfc', nameColor: '#c28017', itemName: 'gtceu:exquisite_spessartine_gem', indexNumber: 0.181, lang_en_us: 'Spessartine'},
{materialName: 'topaz_tfc', nameColor: '#b1a42d', itemName: 'gtceu:exquisite_topaz_gem', indexNumber: 0.182, lang_en_us: 'Topaz'},
{materialName: 'uvarovite_tfc', nameColor: '#22b43b', itemName: 'gtceu:exquisite_uvarovite_gem', indexNumber: 0.183, lang_en_us: 'Uvarovite'},
{materialName: 'nether_quartz_tfc', nameColor: '#bdb6b0', itemName: 'gtceu:exquisite_nether_quartz_gem', indexNumber: 0.184, lang_en_us: 'Nether Quartz'},
{materialName: 'certus_quartz_tfc', nameColor: '#8ca4c4', itemName: 'gtceu:exquisite_certus_quartz_gem', indexNumber: 0.185, lang_en_us: 'Certus Quartz'},
{materialName: 'quartzite_tfc', nameColor: '#b8bab8', itemName: 'gtceu:exquisite_quartzite_gem', indexNumber: 0.186, lang_en_us: 'Quartzite'},
{materialName: 'realgar_tfc', nameColor: '#c22e28', itemName: 'gtceu:exquisite_realgar_gem', indexNumber: 0.187, lang_en_us: 'Realgar'},
{materialName: 'malachite_tfc', nameColor: '#00b789', itemName: 'gtceu:exquisite_malachite_gem', indexNumber: 0.188, lang_en_us: 'Malachite'},
{materialName: 'glass_tfc', nameColor: '#c2c2c6', itemName: 'gtceu:exquisite_glass_gem', indexNumber: 0.189, lang_en_us: 'Glass'},
{materialName: 'olivine_tfc', nameColor: '#7fad03', itemName: 'gtceu:exquisite_olivine_gem', indexNumber: 0.171, lang_en_us: 'Olivine'},
{materialName: 'opal_tfc', nameColor: '#bdadb6', itemName: 'gtceu:exquisite_opal_gem', indexNumber: 0.172, lang_en_us: 'Opal'},
{materialName: 'amethyst_tfc', nameColor: '#9b78ba', itemName: 'gtceu:exquisite_amethyst_gem', indexNumber: 0.173, lang_en_us: 'Amethyst'},
// {materialName: 'echo_shard_tfc', nameColor: '#002123', itemName: 'gtceu:exquisite_echo_shard_gem', indexNumber: 0.174, lang_en_us: 'Echo Shard'}, // disabled
{materialName: 'lapis_tfc', nameColor: '#6581c6', itemName: 'gtceu:exquisite_lapis_gem', indexNumber: 0.175, lang_en_us: 'Lapis'},
{materialName: 'apatite_tfc', nameColor: '#059cbb', itemName: 'gtceu:exquisite_apatite_gem', indexNumber: 0.176, lang_en_us: 'Apatite'},
{materialName: 'red_garnet_tfc', nameColor: '#710910', itemName: 'gtceu:exquisite_red_garnet_gem', indexNumber: 0.177, lang_en_us: 'Red Garnet'},
{materialName: 'yellow_garnet_tfc', nameColor: '#bbc207', itemName: 'gtceu:exquisite_yellow_garnet_gem', indexNumber: 0.178, lang_en_us: 'Yellow Garnet'},
{materialName: 'monazite_tfc', nameColor: '#9eb576', itemName: 'gtceu:exquisite_monazite_gem', indexNumber: 0.179, lang_en_us: 'Monazite'},
{materialName: 'rose_quartz_tfc', nameColor: '#ba3458', itemName: 'gtceu:exquisite_rose_quartz_gem', indexNumber: 0.161, lang_en_us: 'Rose Quartz'},
{materialName: 'fluix_tfc', nameColor: '#53458d', itemName: 'tfg:exquisite_fluix_gem', indexNumber: 0.162, lang_en_us: 'Fluix'},
//Metals
{materialName: 'silver_tfc', nameColor: '#d8d8f4', itemName: 'vintageimprovements:silver_sheet', indexNumber: 0.162, lang_en_us: 'Silver'},
{materialName: 'sterling_silver_tfc', nameColor: '#eae5d3', itemName: 'gtceu:sterling_silver_plate', indexNumber: 0.163, lang_en_us: 'Sterling Silver'},
{materialName: 'gold_tfc', nameColor: '#ede65b', itemName: 'create:golden_sheet', indexNumber: 0.164, lang_en_us: 'Gold'},
{materialName: 'rose_gold_tfc', nameColor: '#eddedb', itemName: 'vintageimprovements:rose_gold_sheet', indexNumber: 0.165, lang_en_us: 'Rose Gold'},
{materialName: 'nickel_tfc', nameColor: '#bfd1ea', itemName: 'vintageimprovements:nickel_sheet', indexNumber: 0.166, lang_en_us: 'Nickel'},
{materialName: 'platinum_tfc', nameColor: '#d8cea1', itemName: 'vintageimprovements:platinum_sheet', indexNumber: 0.167, lang_en_us: 'Platinum'},
{materialName: 'titanium_tfc', nameColor: '#c496d8', itemName: 'gtceu:titanium_plate', indexNumber: 0.168, lang_en_us: 'Titanium'},
{materialName: 'bismuth_tfc', nameColor: '#607c79', itemName: 'gtceu:bismuth_plate', indexNumber: 0.169, lang_en_us: 'Bismuth'},
{materialName: 'neutronium_tfc', nameColor: '#d7d7db', itemName: 'gtceu:neutronium_plate', indexNumber: 0.151, lang_en_us: 'Neutronium'},
//Other
{materialName: 'pyrite_tfc', nameColor: '#a75e10', itemName: 'gtceu:rich_raw_pyrite', indexNumber: 0.152, lang_en_us: 'Pyrite'},
{materialName: 'redx_tfc', nameColor: '#a06156', itemName: 'morered:red_alloy_wire', indexNumber: 0.153, lang_en_us: 'RedX'}
]
/////////////////////////////
/////////////////////////////
// #region Tags
// Assigns trim_materials tag to items registered above
function registerTFGTrimTags(event) {
event.removeAll('minecraft:trim_materials')
materials.forEach(material => {
event.add('minecraft:trim_materials', material.itemName)
})
}
// #endregion
//#region Trim Item Atlas
//Automatically creates armor_trims.json file
const trimfilePath = 'kubejs/assets/minecraft/atlases/armor_trims.json';
let trimdata = JsonIO.read(trimfilePath) || {};
trimdata["sources"] = trimdata["sources"] || [];
let trimsource = trimdata["sources"].find(s => s.type === "paletted_permutations");
if (!trimsource) {
trimsource = {
type: "paletted_permutations",
textures: [
"trims/models/armor/coast",
"trims/models/armor/coast_leggings",
"trims/models/armor/sentry",
"trims/models/armor/sentry_leggings",
"trims/models/armor/dune",
"trims/models/armor/dune_leggings",
"trims/models/armor/wild",
"trims/models/armor/wild_leggings",
"trims/models/armor/ward",
"trims/models/armor/ward_leggings",
"trims/models/armor/eye",
"trims/models/armor/eye_leggings",
"trims/models/armor/vex",
"trims/models/armor/vex_leggings",
"trims/models/armor/tide",
"trims/models/armor/tide_leggings",
"trims/models/armor/snout",
"trims/models/armor/snout_leggings",
"trims/models/armor/rib",
"trims/models/armor/rib_leggings",
"trims/models/armor/spire",
"trims/models/armor/spire_leggings",
"trims/models/armor/wayfinder",
"trims/models/armor/wayfinder_leggings",
"trims/models/armor/shaper",
"trims/models/armor/shaper_leggings",
"trims/models/armor/silence",
"trims/models/armor/silence_leggings",
"trims/models/armor/raiser",
"trims/models/armor/raiser_leggings",
"trims/models/armor/host",
"trims/models/armor/host_leggings"
],
palette_key: "trims/color_palettes/trim_palette",
permutations: {}
};
trimdata["sources"].push(trimsource);
}
trimsource.permutations = trimsource.permutations || {};
materials.forEach(material => {
trimsource.permutations[material.materialName] = `tfc:color_palettes/trims/${material.materialName}`;
});
JsonIO.write(trimfilePath, trimdata);
//#endregion
//#region Trim Block Atlas
//Automatically creates blocks.json file
const blockfilePath = 'kubejs/assets/minecraft/atlases/blocks.json';
let blockdata = JsonIO.read(blockfilePath) || {};
blockdata["sources"] = blockdata["sources"] || [];
let blocksource = blockdata["sources"].find(s => s.type === "paletted_permutations");
if (!blocksource) {
blocksource = {
type: "paletted_permutations",
textures: [
"trims/items/leggings_trim",
"trims/items/chestplate_trim",
"trims/items/helmet_trim",
"trims/items/boots_trim",
"tfc:item/helmet_trim",
"tfc:item/chestplate_trim",
"tfc:item/greaves_trim",
"tfc:item/boots_trim"
],
palette_key: "trims/color_palettes/trim_palette",
permutations: {}
};
blockdata["sources"].push(blocksource);
}
blocksource.permutations = blocksource.permutations || {};
materials.forEach(material => {
blocksource.permutations[material.materialName] = `tfc:color_palettes/trims/${material.materialName}`;
});
JsonIO.write(blockfilePath, blockdata);
//#endregion
//#region Trim Material Data
//Automatically creates material.json files
materials.forEach(material => {
const trimfilepaths = [
`kubejs/data/minecraft/trim_material/${material.materialName}.json`,
`kubejs/data/tfc/trim_material/${material.materialName}.json`
];
const newtrimdata = {
asset_name: material.materialName,
description: {
color: material.nameColor,
translate: `trim_material.tfc.${material.materialName}`
},
ingredient: material.itemName,
item_model_index: material.indexNumber
};
trimfilepaths.forEach(trimfilepaths => {
const existingData = JsonIO.read(trimfilepaths);
// Only write if the file is missing or contents are different
if (JSON.stringify(existingData) !== JSON.stringify(newtrimdata)) {
JsonIO.write(trimfilepaths, newtrimdata);
}
});
});
//#endregion
//#region Lang
//en_us
//reads the existing file, inserts new key-value pair, writes info back to the file
const langfilePath = 'kubejs/assets/tfc/lang/en_us.json';
let langdata = JsonIO.read(langfilePath) || {};
materials.forEach(material => {
langdata[`trim_material.tfc.${material.materialName}`] = material.lang_en_us;
});
JsonIO.write(langfilePath, langdata);
//#endregion

View file

@ -0,0 +1,236 @@
// priority: 0
function registerTFGFishingNetsRecipes(event) {
//wood
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped('1x tfg:fishing_net/wood', [
' DC',
'GBE',
'AF '
],{
A: ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.Wood, 1),
B: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Wood, 1),
C: 'tfc:jute_net',
D: 'tfc:glue',
E: ChemicalHelper.get(TagPrefix.bolt, GTMaterials.Wood, 1),
F: '#forge:tools/knives',
G: '#tfc:sewing_needles'
}).id('tfg:shaped/fishing_net/wood'))
event.recipes.gtceu.assembler('tfg:assembler/fishing_net/wood')
.itemInputs(
ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.Wood, 1),
ChemicalHelper.get(TagPrefix.rod, GTMaterials.Wood, 1),
'1x tfc:glue',
ChemicalHelper.get(TagPrefix.bolt, GTMaterials.Wood, 1),
'1x tfc:jute_net'
)
.itemOutputs('tfg:fishing_net/wood')
.duration(100)
.circuit(4)
.EUt(GTValues.VA[GTValues.ULV])
//Brass
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped('1x tfg:fishing_net/brass', [
' DC',
'GBE',
'AF '
],{
A: ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.Brass, 1),
B: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Brass, 1),
C: '#forge:cloth',
D: ChemicalHelper.get(TagPrefix.ring, GTMaterials.Brass, 1),
E: ChemicalHelper.get(TagPrefix.screw, GTMaterials.Brass, 1),
F: '#forge:tools/wire_cutters',
G: '#tfc:sewing_needles'
}).id('tfg:shaped/fishing_net/brass'))
event.recipes.gtceu.assembler('tfg:assembler/fishing_net/brass')
.itemInputs(
ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.Brass, 1),
ChemicalHelper.get(TagPrefix.rod, GTMaterials.Brass, 1),
ChemicalHelper.get(TagPrefix.ring, GTMaterials.Brass, 1),
ChemicalHelper.get(TagPrefix.screw, GTMaterials.Brass, 1),
'1x #forge:cloth'
)
.itemOutputs('tfg:fishing_net/brass')
.duration(100)
.circuit(4)
.EUt(GTValues.VA[GTValues.ULV])
//Rose Gold
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped('1x tfg:fishing_net/rose_gold', [
' DC',
'GBE',
'AF '
],{
A: ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.RoseGold, 1),
B: ChemicalHelper.get(TagPrefix.rod, GTMaterials.RoseGold, 1),
C: '#forge:cloth',
D: ChemicalHelper.get(TagPrefix.ring, GTMaterials.RoseGold, 1),
E: ChemicalHelper.get(TagPrefix.screw, GTMaterials.RoseGold, 1),
F: '#forge:tools/wire_cutters',
G: '#tfc:sewing_needles'
}).id('tfg:shaped/fishing_net/rose_gold'))
event.recipes.gtceu.assembler('tfg:assembler/fishing_net/rose_gold')
.itemInputs(
ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.RoseGold, 1),
ChemicalHelper.get(TagPrefix.rod, GTMaterials.RoseGold, 1),
ChemicalHelper.get(TagPrefix.ring, GTMaterials.RoseGold, 1),
ChemicalHelper.get(TagPrefix.screw, GTMaterials.RoseGold, 1),
'1x #forge:cloth'
)
.itemOutputs('tfg:fishing_net/rose_gold')
.duration(100)
.circuit(4)
.EUt(GTValues.VA[GTValues.ULV])
//Sterling Silver
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped('1x tfg:fishing_net/sterling_silver', [
' DC',
'GBE',
'AF '
],{
A: ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.SterlingSilver, 1),
B: ChemicalHelper.get(TagPrefix.rod, GTMaterials.SterlingSilver, 1),
C: '#forge:cloth',
D: ChemicalHelper.get(TagPrefix.ring, GTMaterials.SterlingSilver, 1),
E: ChemicalHelper.get(TagPrefix.screw, GTMaterials.SterlingSilver, 1),
F: '#forge:tools/wire_cutters',
G: '#tfc:sewing_needles'
}).id('tfg:shaped/fishing_net/sterling_silver'))
event.recipes.gtceu.assembler('tfg:assembler/fishing_net/sterling_silver')
.itemInputs(
ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.SterlingSilver, 1),
ChemicalHelper.get(TagPrefix.rod, GTMaterials.SterlingSilver, 1),
ChemicalHelper.get(TagPrefix.ring, GTMaterials.SterlingSilver, 1),
ChemicalHelper.get(TagPrefix.screw, GTMaterials.SterlingSilver, 1),
'1x #forge:cloth'
)
.itemOutputs('tfg:fishing_net/sterling_silver')
.duration(100)
.circuit(4)
.EUt(GTValues.VA[GTValues.ULV])
//Invar
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped('1x tfg:fishing_net/invar', [
' DC',
'GBE',
'AF '
],{
A: ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.Invar, 1),
B: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Invar, 1),
C: '#forge:cloth',
D: ChemicalHelper.get(TagPrefix.ring, GTMaterials.Invar, 1),
E: ChemicalHelper.get(TagPrefix.screw, GTMaterials.Invar, 1),
F: '#forge:tools/wire_cutters',
G: '#tfc:sewing_needles'
}).id('tfg:shaped/fishing_net/invar'))
event.recipes.gtceu.assembler('tfg:assembler/fishing_net/invar')
.itemInputs(
ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.Invar, 1),
ChemicalHelper.get(TagPrefix.rod, GTMaterials.Invar, 1),
ChemicalHelper.get(TagPrefix.ring, GTMaterials.Invar, 1),
ChemicalHelper.get(TagPrefix.screw, GTMaterials.Invar, 1),
'1x #forge:cloth'
)
.itemOutputs('tfg:fishing_net/invar')
.duration(100)
.circuit(4)
.EUt(GTValues.VA[GTValues.LV])
//Cupronickel
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped('1x tfg:fishing_net/cupronickel', [
' DC',
'GBE',
'AF '
],{
A: ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.Cupronickel, 1),
B: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Cupronickel, 1),
C: '#forge:cloth',
D: ChemicalHelper.get(TagPrefix.ring, GTMaterials.Cupronickel, 1),
E: ChemicalHelper.get(TagPrefix.screw, GTMaterials.Cupronickel, 1),
F: '#forge:tools/wire_cutters',
G: '#tfc:sewing_needles'
}).id('tfg:shaped/fishing_net/cupronickel'))
event.recipes.gtceu.assembler('tfg:assembler/fishing_net/cupronickel')
.itemInputs(
ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.Cupronickel, 1),
ChemicalHelper.get(TagPrefix.rod, GTMaterials.Cupronickel, 1),
ChemicalHelper.get(TagPrefix.ring, GTMaterials.Cupronickel, 1),
ChemicalHelper.get(TagPrefix.screw, GTMaterials.Cupronickel, 1),
'1x #forge:cloth'
)
.itemOutputs('tfg:fishing_net/cupronickel')
.duration(100)
.circuit(4)
.EUt(GTValues.VA[GTValues.LV])
//Tin Alloy
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped('1x tfg:fishing_net/tin_alloy', [
' DC',
'GBE',
'AF '
],{
A: ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.TinAlloy, 1),
B: ChemicalHelper.get(TagPrefix.rod, GTMaterials.TinAlloy, 1),
C: '#forge:cloth',
D: ChemicalHelper.get(TagPrefix.ring, GTMaterials.TinAlloy, 1),
E: ChemicalHelper.get(TagPrefix.screw, GTMaterials.TinAlloy, 1),
F: '#forge:tools/wire_cutters',
G: '#tfc:sewing_needles'
}).id('tfg:shaped/fishing_net/tin_alloy'))
event.recipes.gtceu.assembler('tfg:assembler/fishing_net/tin_alloy')
.itemInputs(
ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.TinAlloy, 1),
ChemicalHelper.get(TagPrefix.rod, GTMaterials.TinAlloy, 1),
ChemicalHelper.get(TagPrefix.ring, GTMaterials.TinAlloy, 1),
ChemicalHelper.get(TagPrefix.screw, GTMaterials.TinAlloy, 1),
'1x #forge:cloth'
)
.itemOutputs('tfg:fishing_net/tin_alloy')
.duration(100)
.circuit(4)
.EUt(GTValues.VA[GTValues.LV])
//Magnalium
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped('1x tfg:fishing_net/magnalium', [
' DC',
'GBE',
'AF '
],{
A: ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.Magnalium, 1),
B: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Magnalium, 1),
C: 'tfg:polycaprolactam_fabric',
D: ChemicalHelper.get(TagPrefix.ring, GTMaterials.Magnalium, 1),
E: ChemicalHelper.get(TagPrefix.screw, GTMaterials.Magnalium, 1),
F: '#forge:tools/wire_cutters',
G: '#tfc:sewing_needles'
}).id('tfg:shaped/fishing_net/magnalium'))
event.recipes.gtceu.assembler('tfg:assembler/fishing_net/magnalium')
.itemInputs(
ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.Magnalium, 1),
ChemicalHelper.get(TagPrefix.rod, GTMaterials.Magnalium, 1),
ChemicalHelper.get(TagPrefix.ring, GTMaterials.Magnalium, 1),
ChemicalHelper.get(TagPrefix.screw, GTMaterials.Magnalium, 1),
'1x tfg:polycaprolactam_fabric'
)
.itemOutputs('tfg:fishing_net/magnalium')
.duration(100)
.circuit(4)
.EUt(GTValues.VA[GTValues.LV])
}

View file

@ -12,6 +12,6 @@ const registerTFGRecipes = (event) => {
registerTFGMedicineRecipes(event)
registerTFGMiscellaneousRecipes(event)
registerTFGSupportRecipes(event)
registerTFGFishingNetsRecipes(event)
registerTFGConvertingRecipes(event)
}

View file

@ -546,4 +546,12 @@ function registerTFGMedicineRecipes(event) {
//#endregion
//#region Paracetamol
event.recipes.firmalife.mixing_bowl()
.ingredients(['tfg:regeneration_pill', 'tfg:weakness_pill', 'tfg:antipoison_pill', 'tfg:slowness_pill'], Fluid.of('tfc:vinegar', 250))
.outputItem('4x gtceu:paracetamol_pill')
.id(`tfg:mixing_bowl/paracetamol`)
//#endregion
}

View file

@ -6,6 +6,8 @@
*/
function registerTFGMiscellaneousRecipes(event) {
event.remove({ id: 'gtceu:wiremill/string_from_polycaprolactam'})
//tfc:moss
event.replaceInput({}, 'minecraft:vine', '#tfc:moss')
@ -128,9 +130,9 @@ function registerTFGMiscellaneousRecipes(event) {
//Scaffolding Frame
event.shaped('tfg:scaffolding_frame',
[
'AAA',
' A ',
'ABA',
'AAA'
' A '
],
{
A: '#forge:rods/wood',
@ -138,7 +140,7 @@ function registerTFGMiscellaneousRecipes(event) {
}).id('tfg:shaped/scaffolding_frame');
event.recipes.gtceu.assembler('tfg:assembler/scaffolding_frame')
.itemInputs('8x #forge:rods/wood', '#forge:cloth')
.itemInputs('4x #forge:rods/wood', '#forge:cloth')
.itemOutputs('tfg:scaffolding_frame')
.duration(10)
.EUt(GTValues.VA[GTValues.ULV]);
@ -161,15 +163,18 @@ function registerTFGMiscellaneousRecipes(event) {
.EUt(GTValues.VA[GTValues.ULV]);
//Airship Balloon
event.shaped('tfg:airship_balloon', [
'ABA',
'BCB',
'ABA'
], {
A: '#forge:string',
B: 'immersive_aircraft:sail',
C: 'tfc:bone_needle'
}).id('tfg:shaped/airship_balloon')
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped('tfg:airship_balloon', [
'ABA',
'BCB',
'ABA'
], {
A: '#forge:string',
B: 'immersive_aircraft:sail',
C: 'tfc:bone_needle'
})
).id('tfg:shaped/airship_balloon')
event.recipes.gtceu.assembler('tfg:assembler/airship_balloon')
.itemInputs('4x immersive_aircraft:sail', '4x #forge:string')
.itemOutputs('tfg:airship_balloon')
@ -313,4 +318,75 @@ function registerTFGMiscellaneousRecipes(event) {
event.shapeless('8x minecraft:snow', ['minecraft:snow_block', '#forge:tools/saws'])
.id('tfg:shapeless/snow')
//Cloth & String
event.recipes.gtceu.wiremill('tfg:wiremill/phantom_thread')
.itemInputs('1x minecraft:phantom_membrane')
.itemOutputs('16x tfg:phantom_thread')
.duration(100)
.circuit(0)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.wiremill('tfg:wiremill/polycaprolactam_string')
.itemInputs(ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Polycaprolactam, 1))
.itemOutputs('32x tfg:polycaprolactam_string')
.duration(100)
.circuit(0)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.assembler('tfg:assembler/phantom_silk')
.itemInputs('16x tfg:phantom_thread')
.itemOutputs('1x tfg:phantom_silk')
.duration(100)
.circuit(0)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.assembler('tfg:assembler/polycaprolactam_fabric')
.itemInputs('16x tfg:polycaprolactam_string')
.itemOutputs('1x tfg:polycaprolactam_fabric')
.duration(100)
.circuit(0)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.chemical_bath('tfg:chemical_bath/bleaching/polycaprolactam_string')
.itemInputs('tfg:polycaprolactam_string')
.inputFluids(Fluid.of('gtceu:chlorine', 16))
.itemOutputs('minecraft:string')
.duration(80)
.EUt(GTValues.VA[GTValues.ULV])
.category(GTRecipeCategories.CHEM_DYES)
event.recipes.tfc.loom(
'1x tfg:phantom_silk',
'16x tfg:phantom_thread',
8,
'tfg:block/phantom_silk_block'
)
event.recipes.tfc.loom(
'1x tfg:polycaprolactam_fabric',
'16x tfg:polycaprolactam_string',
8,
'tfg:block/polycaprolactam_fabric_block'
)
event.recipes.tfc.damage_inputs_shapeless_crafting(
event.shapeless('16x tfg:phantom_thread', [
'minecraft:phantom_membrane',
'tfc:spindle'
]).id('tfg:shapeless/phantom_thread'))
// Universal Circuit
global.UNIVERSAL_CIRCUIT_TIERS.forEach(tier => {
event.shapeless(Item.of(`tfg:${tier}_universal_circuit`, 1), [Ingredient.of([`#gtceu:circuits/${tier}`]).subtract([`tfg:${tier}_universal_circuit`])]
).id(`universal_circuits_${tier}`);
});
// Air collector (move this to space stuff later)
event.recipes.gtceu.gas_collector('nether')
.circuit(2)
.outputFluids(Fluid.of('gtceu:air', 10000))
.dimension('minecraft:the_nether')
.duration(200)
.EUt(16)
}

View file

@ -0,0 +1,122 @@
// priority: 0
function registerGTCEURecyclingRecipes(event) {
// Tantalum Capacitor
event.recipes.gtceu.macerator('gtceu:macerator/recycling/tantulum_capacitor')
.itemInputs('gtceu:tantalum_capacitor')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Tantalum, 1),
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Polyethylene, 1)
)
.duration(GTMaterials.Tantalum.getMass() * 1)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/recycling/tantulum_capacitor')
.itemInputs('gtceu:tantalum_capacitor')
.itemOutputs(
ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Tantalum, 1),
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Ash, 1)
)
.duration(GTMaterials.Tantalum.getMass() * 1)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Capacitor
event.recipes.gtceu.macerator('gtceu:macerator/recycling/capacitor')
.itemInputs('gtceu:capacitor')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Polyethylene, 1)
)
.duration(GTMaterials.Polyethylene.getMass() * 1)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/recycling/capacitor')
.itemInputs('gtceu:capacitor')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Ash, 1)
)
.duration(GTMaterials.Ash.getMass() * 1)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Empty Tier I Capacitor
event.recipes.gtceu.macerator('gtceu:macerator/recycling/empty_tier_i_battery')
.itemInputs('gtceu:empty_tier_i_battery')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Ultimet, 6)
)
.duration(GTMaterials.Ultimet.getMass() * 6)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/recycling/empty_tier_i_battery')
.itemInputs('gtceu:empty_tier_i_battery')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Ultimet, 6)
)
.duration(GTMaterials.Ultimet.getMass() * 6)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.extractor('gtceu:extractor/recycling/empty_tier_i_battery')
.itemInputs('gtceu:empty_tier_i_battery')
.outputFluids(Fluid.of('gtceu:ultimet', 864))
.duration(GTMaterials.Ultimet.getMass() * 6)
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Empty Tier II Capacitor
event.recipes.gtceu.macerator('gtceu:macerator/recycling/empty_tier_ii_battery')
.itemInputs('gtceu:empty_tier_ii_battery')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Ruridit, 6)
)
.duration(GTMaterials.Ruridit.getMass() * 6)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/recycling/empty_tier_ii_battery')
.itemInputs('gtceu:empty_tier_ii_battery')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Ruridit, 6)
)
.duration(GTMaterials.Ruridit.getMass() * 6)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.extractor('gtceu:extractor/recycling/empty_tier_ii_battery')
.itemInputs('gtceu:empty_tier_ii_battery')
.outputFluids(Fluid.of('gtceu:ruridit', 864))
.duration(GTMaterials.Ruridit.getMass() * 6)
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Empty Tier III Capacitor
event.recipes.gtceu.macerator('gtceu:macerator/recycling/empty_tier_iii_battery')
.itemInputs('gtceu:empty_tier_iii_battery')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Neutronium, 6)
)
.duration(GTMaterials.Neutronium.getMass() * 6)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/recycling/empty_tier_iii_battery')
.itemInputs('gtceu:empty_tier_iii_battery')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Neutronium, 6)
)
.duration(GTMaterials.Neutronium.getMass() * 6)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.extractor('gtceu:extractor/recycling/empty_tier_iii_battery')
.itemInputs('gtceu:empty_tier_iii_battery')
.outputFluids(Fluid.of('gtceu:neutronium', 864))
.duration(GTMaterials.Neutronium.getMass() * 6)
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
}

View file

@ -43,10 +43,9 @@ function registerTFGRockRecipes(event) {
x.brick, [x.loose, '#tfc:chisels']
))
event.recipes.gtceu.assembler(`${x.loose}_to_${x.brick}`.replace(/:/g, '_'))
event.recipes.gtceu.cutter(`${x.loose}_to_${x.brick}`.replace(/:/g, '_'))
.itemInputs(x.loose)
.itemOutputs(x.brick)
.circuit(1)
.duration(40)
.EUt(8)
})
@ -75,13 +74,13 @@ function registerTFGRockRecipes(event) {
.duration(30)
.EUt(GTValues.VA[GTValues.ULV])
event.custom({
type: 'vintageimprovements:laser_cutting',
ingredients: [{ item: x.raw }],
results: [{item: x.polished }],
energy: GTValues.VA[GTValues.ULV] * 30 * 4,
maxChargeRate: GTValues.VA[GTValues.ULV] * 4
}).id(`tfg:vi/laser/tfg/${x.raw.replace(/:/g, '_')}_to_${x.polished.replace(/:/g, '_')}`)
//event.custom({
// type: 'vintageimprovements:laser_cutting',
// ingredients: [{ item: x.raw }],
// results: [{item: x.polished }],
// energy: GTValues.VA[GTValues.ULV] * 30 * 4,
// maxChargeRate: GTValues.VA[GTValues.ULV] * 4
//}).id(`tfg:vi/laser/tfg/${x.raw.replace(/:/g, '_')}_to_${x.polished.replace(/:/g, '_')}`)
})
// cracked bricks

View file

@ -1,4 +1,7 @@
const registerTFGItemTags = (event) => {
registerTFGTrimTags(event)
//Decorative Vases
global.MINECRAFT_DYE_NAMES.forEach(color => {
event.add('c:hidden_from_recipe_viewers', `tfg:decorative_vase/generated/${color}`)
@ -12,6 +15,16 @@ const registerTFGItemTags = (event) => {
//Knapping
event.add('tfc:any_knapping', 'minecraft:flint')
//Tools
event.add('forge:tools/fishing_nets', 'tfg:fishing_net/wood')
event.add('forge:tools/fishing_nets', 'tfg:fishing_net/brass')
event.add('forge:tools/fishing_nets', 'tfg:fishing_net/rose_gold')
event.add('forge:tools/fishing_nets', 'tfg:fishing_net/sterling_silver')
event.add('forge:tools/fishing_nets', 'tfg:fishing_net/invar')
event.add('forge:tools/fishing_nets', 'tfg:fishing_net/tin_alloy')
event.add('forge:tools/fishing_nets', 'tfg:fishing_net/cupronickel')
event.add('forge:tools/fishing_nets', 'tfg:fishing_net/magnalium')
// #region Paper from wood
event.add('tfg:hardwood_strips', 'tfg:hardwood_strip')
@ -29,9 +42,17 @@ const registerTFGItemTags = (event) => {
event.add('forge:wax', 'tfg:conifer_rosin')
event.add('tfc:fluxstone', 'tfg:loose/dripstone')
// #endregion
//#region Cloth & String
event.add('forge:cloth', 'tfg:phantom_silk')
event.add('forge:cloth', 'tfg:polycaprolactam_fabric')
event.add('tfc:sewing_light_cloth', 'tfg:phantom_silk')
event.add('tfc:sewing_dark_cloth', 'tfg:polycaprolactam_fabric')
event.add('forge:string', 'tfg:phantom_thread')
event.add('forge:string', 'tfg:polycaprolactam_string')
//#endregion
// #region Medicines
event.add('tfg:antipoison_ingredients', 'tfc:plant/blood_lily')
@ -56,23 +77,29 @@ const registerTFGItemTags = (event) => {
event.add('tfg:speed_ingredients', 'firmalife:raw_honey')
event.add('tfg:slowness_ingredients', 'tfc:plant/marigold')
event.add('tfg:slowness_ingredients', 'tfc:plant/snapdragon_red')
event.add('tfg:slowness_ingredients', 'tfc:plant/snapdragon_white')
event.add('tfg:slowness_ingredients', 'tfc:plant/snapdragon_yellow')
event.add('tfg:weakness_ingredients', 'tfc:plant/laminaria')
event.add('tfg:weakness_ingredients', 'tfc:plant/sea_palm')
event.add('tfg:weakness_ingredients', 'tfc:plant/sea_lavender')
event.add('tfg:haste_ingredients', 'minecraft:sugar')
event.add('tfg:haste_ingredients', 'afc:birch_sugar')
event.add('tfg:haste_ingredients', 'afc:maple_sugar')
event.add('tfg:haste_ingredients', '#tfg:sugars')
event.add('tfg:water_breathing_ingredients', 'tfc:powder/saltpeter')
event.add('tfg:water_breathing_ingredients', 'tfc:powder/charcoal')
event.add('tfg:night_vision_ingredients', 'tfc:food/carrot')
event.add('tfg:night_vision_ingredients', 'beneath:gleamflower')
event.add('tfg:invisibility_ingredients', 'tfc:plant/calendula')
event.add('tfg:absorption_ingredients', 'beneath:burpflower')
event.add('tfg:fire_resistance_ingredients', 'tfc:plant/cattail')
event.add('tfg:fire_resistance_ingredients', 'tfc:plant/meads_milkweed')
event.add('tfg:fire_resistance_ingredients', 'firmalife:plant/bay_laurel')
event.add('tfg:fire_resistance_ingredients', 'beneath:ghost_pepper')
event.add('tfg:resistance_ingredients', 'tfc:plant/hibiscus')
event.add('tfg:resistance_ingredients', 'gtceu:calcium_dust')
@ -81,6 +108,7 @@ const registerTFGItemTags = (event) => {
event.add('tfg:instant_health_ingredients', 'tfc:plant/artists_conk')
event.add('tfg:absorption_ingredients', 'tfc:plant/poppy')
event.add('tfg:invisibility_ingredients', 'tfc:plant/snapdragon_pink')
event.add('tfg:luck_ingredients', 'tfc:plant/goldenrod')
event.add('tfg:luck_ingredients', 'tfc:plant/heather')
@ -91,6 +119,16 @@ const registerTFGItemTags = (event) => {
event.add('immersive_aircraft:upgrades', `tfg:${value}`);
})
// #endregion
// Universal Circuits
global.UNIVERSAL_CIRCUIT_TIERS.forEach(tier => {
event.add(`gtceu:circuits/${tier}`, `tfg:${tier}_universal_circuit`);
})
// #endregion
// #region 0.7.19 -> 0.9 conversion
event.add('c:hidden_from_recipe_viewers', 'treetap:tap')

View file

@ -130,18 +130,19 @@ function registerVintageImprovementsRecipes(event) {
G: 'create:precision_mechanism'
}).id('tfg:vi/mechanical_crafting/lathe')
event.shaped('vintageimprovements:laser', [
'FBF',
'EAE',
'DCD'
], {
A: 'gtceu:ulv_machine_hull',
B: 'create:precision_mechanism',
C: 'tfc:lens',
D: 'gtceu:red_alloy_single_wire',
E: 'minecraft:piston',
F: '#gtceu:circuits/ulv'
}).id('tfg:vi/shaped/laser')
// Re-enable this thing's EMI category as well, if we end up using it
//event.shaped('vintageimprovements:laser', [
// 'FBF',
// 'EAE',
// 'DCD'
//], {
// A: 'gtceu:ulv_machine_hull',
// B: 'create:precision_mechanism',
// C: 'tfc:lens',
// D: 'gtceu:red_alloy_single_wire',
// E: 'minecraft:piston',
// F: '#gtceu:circuits/ulv'
//}).id('tfg:vi/shaped/laser')
// #endregion
@ -289,7 +290,7 @@ function registerVintageImprovementsRecipes(event) {
// #endregion
GTMaterialRegistry.getRegisteredMaterials().forEach(material => {
forEachMaterial(material => {
// #region Coiling
@ -408,7 +409,7 @@ function registerVintageImprovementsRecipes(event) {
event.custom({
type: 'vintageimprovements:pressurizing',
ingredients: [ingotItem, ingotItem, { item: 'tfc:powder/flux' }],
"heatRequirement": "heated",
heatRequirement: "heated",
results: [ChemicalHelper.get(TFGTagPrefix.ingotDouble, material, 1)],
processingTime: material.getMass() * 6 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER
}).id(`tfg:vi/pressurizing/${material.getName()}_double_ingot`)
@ -418,7 +419,7 @@ function registerVintageImprovementsRecipes(event) {
event.custom({
type: 'vintageimprovements:pressurizing',
ingredients: [plateItem, plateItem, { item: 'tfc:powder/flux' }],
"heatRequirement": "heated",
heatRequirement: "heated",
results: [ChemicalHelper.get(TagPrefix.plateDouble, material, 1)],
processingTime: material.getMass() * 6 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER
}).id(`tfg:vi/pressurizing/${material.getName()}_double_plate`)
@ -499,6 +500,8 @@ function registerVintageImprovementsRecipes(event) {
if (!(EUt <= 32)) { return }
// Skip this one
if (r.outputs.item[0].content.ingredient.item == "gtceu:nan_certificate") { return }
// Skip glass too
if (r.inputs.item[0].content.ingredient.item == "gtceu:glass_dust") { return }
let input = r.inputs.item[0].content.ingredient;
input.count = r.inputs.item[0].content.count;
@ -526,9 +529,39 @@ function registerVintageImprovementsRecipes(event) {
results: [{ fluid: 'gtceu:glue', amount: 50 }],
heatRequirement: "heated",
processingTime: 100
}).id('tfg:vi/vacuumizing/glue')
}).id('tfg:vi/vacuumizing/glue_melting')
event.custom({
type: 'vintageimprovements:vacuumizing',
ingredients: [{ item: 'gtceu:sticky_resin' }],
results: [{ fluid: 'gtceu:glue', amount: 100 }],
heatRequirement: "heated",
processingTime: 200
}).id('tfg:vi/vacuumizing/glue_from_resin')
event.custom({
type: 'vintageimprovements:vacuumizing',
ingredients: [{ item: 'tfg:conifer_rosin' }],
results: [{ fluid: 'gtceu:glue', amount: 50 }],
heatRequirement: "heated",
processingTime: 200
}).id('tfg:vi/vacuumizing/glue_from_rosin')
event.custom({
type: 'vintageimprovements:vacuumizing',
ingredients: [{ item: 'minecraft:bone_meal' }, { fluid: 'tfc:limewater', amount: 500 }],
results: [{ fluid: 'gtceu:glue', amount: 50 }],
heatRequirement: "heated",
processingTime: 100
}).id('tfg:vi/vacuumizing/glue_from_bone_meal')
event.custom({
type: 'vintageimprovements:pressurizing',
ingredients: [{ fluid: 'gtceu:glue', amount: 50 }],
results: [{ item: 'tfc:glue' }],
processingTime: 100
}).id('tfg:vi/pressurizing/glue_solidifying')
// TODO: Remove me when we upgrade Greate and can just slap rubber onto wires again
event.custom({
type: 'vintageimprovements:vacuumizing',
ingredients: [{ item: 'gtceu:rubber_dust' }],
@ -537,6 +570,34 @@ function registerVintageImprovementsRecipes(event) {
processingTime: 100
}).id('tfg:vi/vacuum/rubber')
// Vaccuming rubber wood stuff for latex
event.custom({
type: 'vintageimprovements:vacuumizing',
ingredients: [{ tag: 'tfg:latex_logs' }],
results: [{ fluid: 'tfg:latex', amount: 250 }],
processingTime: 600
}).id('tfg:vi/vacuumizing/latex_from_rubber_logs')
event.custom({
type: 'vintageimprovements:vacuumizing',
ingredients: [{ tag: 'tfg:rubber_saplings' }],
results: [{ fluid: 'tfg:latex', amount: 100 }],
processingTime: 300
}).id('tfg:vi/vacuumizing/latex_from_rubber_sapling')
event.custom({
type: 'vintageimprovements:vacuumizing',
ingredients: [{ tag: 'tfg:rubber_leaves' }],
results: [{ fluid: 'tfg:latex', amount: 50 }],
processingTime: 150
}).id('tfg:vi/vacuumizing/latex_from_rubber_leaves')
// Vulc. latex to raw rubber pulp
event.custom({
type: 'vintageimprovements:vacuumizing',
ingredients: [{ fluid: 'tfg:vulcanized_latex', amount: 250 }],
results: [{ item: 'gtceu:raw_rubber_dust'}],
processingTime: 120
}).id('tfg:vi/vacuumizing/vulcanized_latex_to_raw_rubber')
// #endregion
}