This commit is contained in:
Gustavo
2026-03-21 16:41:06 +11:00
357 changed files with 76616 additions and 67477 deletions

View File

@@ -2329,9 +2329,15 @@ const registerAE2Recipes = (event) => {
E: 'ae2:silicon_press'
}).id('tfg:shaped/not_so_mysterious_cube')
event.recipes.gtceu.macerator('sky_stone')
event.recipes.gtceu.macerator('tfg:sky_stone')
.itemInputs('#tfg:stone_types/suevite')
.itemOutputs('ae2:sky_dust')
.EUt(2)
.duration(100)
event.recipes.gtceu.macerator('tfg:sky_stone_slab')
.itemInputs('2x #tfg:stone_types/suevite')
.itemOutputs('ae2:sky_dust')
.EUt(2)
.duration(100)
}

View File

@@ -14,6 +14,9 @@ const registerAE2ItemTags = (event) => {
event.removeAll('ae2:p2p_attunements/fe_p2p_tunnel')
event.add('tfg:stone_dusts', 'ae2:sky_dust')
event.add('tfg:stone_types/suevite', 'ae2:sky_stone_block')
event.add('tfg:stone_types/suevite', 'ae2:sky_stone_stairs')
event.add('tfg:stone_types/suevite', 'ae2:sky_stone_wall')
event.add('tfg:reactant_fluix_ruby', 'gtceu:ruby_gem')
event.add('tfg:reactant_fluix_ruby', 'gtceu:armalcolite_gem')

View File

@@ -50,7 +50,7 @@ const registerCreateRecipes = (event) => {
{ id: 'create:crafting/logistics/stock_ticker_clear'},
{ id: 'create:crafting/logistics/factory_gauge_clear'},
{ output: '#create:table_cloths'}, // Gotta do this to not purge the table cloth reset recipes
{ type: 'minecraft:stonecutting' }
//{ type: 'minecraft:stonecutting' }
], mod: 'create'
})
// Make Bound Cardboard craftable with all string
@@ -1886,14 +1886,14 @@ const registerCreateRecipes = (event) => {
], {
A: 'create:precision_mechanism',
C: '#forge:screws/aluminium',
D: 'gtceu:diode',
D: '#gtceu:diodes',
E: '#gtceu:circuits/lv',
F: '#forge:plates/rose_quartz',
G: '#forge:tools/wrenches'
}).id('tfg:create/shaped/factory_gauge')
event.recipes.gtceu.assembler('create:factory_gauge')
.itemInputs('create:precision_mechanism', '2x gtceu:diode', '#forge:small_gears/red_alloy', '#gtceu:circuits/lv', '3x #forge:plates/rose_quartz')
.itemInputs('create:precision_mechanism', '2x #forge:screws/aluminium', '#gtceu:diodes', '3x #forge:plates/rose_quartz', '#gtceu:circuits/lv')
.itemOutputs('create:factory_gauge')
.duration(150)
.EUt(16)
@@ -2395,6 +2395,20 @@ const registerCreateRecipes = (event) => {
event.stonecutting("16x create:copycat_step", "#forge:ingots/zinc")
event.stonecutting("16x create:copycat_panel", "#forge:ingots/zinc")
event.recipes.gtceu.extractor('tfg:create/copycat_step_recyle')
.itemInputs('create:copycat_step')
.outputFluids(Fluid.of('gtceu:zinc', 9))
.duration(20)
.EUt(GTValues.VA[GTValues.LV])
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
event.recipes.gtceu.extractor('tfg:create/copycat_panel_recyle')
.itemInputs('create:copycat_panel')
.outputFluids(Fluid.of('gtceu:zinc', 9))
.duration(20)
.EUt(GTValues.VA[GTValues.LV])
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
const create_metals = [
{ metal: 'andesite', material: 'tin_alloy', tier: 3 },
{ metal: 'brass', material: 'brass', tier: 2 },

View File

@@ -73,40 +73,72 @@ const registerCreateCopycatsRecipes = (event) => {
B: '#forge:plates/zinc'
}).id('tfg:copycats/shaped/copycat_fluid_pipe')
// Stonecutting
event.stonecutting("4x copycats:copycat_block", "#forge:ingots/zinc")
event.stonecutting("8x copycats:copycat_slab", "#forge:ingots/zinc")
event.stonecutting("4x copycats:copycat_stairs", "#forge:ingots/zinc")
event.stonecutting("4x copycats:copycat_vertical_stairs", "#forge:ingots/zinc")
event.stonecutting("4x copycats:copycat_fence", "#forge:ingots/zinc")
event.stonecutting("4x copycats:copycat_wall", "#forge:ingots/zinc")
event.stonecutting("16x copycats:copycat_vertical_step", "#forge:ingots/zinc")
event.stonecutting("16x copycats:copycat_beam", "#forge:ingots/zinc")
event.stonecutting("64x copycats:copycat_slice", "#forge:ingots/zinc")
event.stonecutting("64x copycats:copycat_vertical_slice", "#forge:ingots/zinc")
event.stonecutting("64x copycats:copycat_corner_slice", "#forge:ingots/zinc")
event.stonecutting("4x copycats:copycat_ghost_block", "#forge:ingots/zinc")
event.stonecutting("32x copycats:copycat_layer", "#forge:ingots/zinc")
event.stonecutting("32x copycats:copycat_half_panel", "#forge:ingots/zinc")
event.stonecutting("32x copycats:copycat_pane", "#forge:ingots/zinc")
event.stonecutting("32x copycats:copycat_flat_pane", "#forge:ingots/zinc")
event.stonecutting("32x copycats:copycat_byte", "#forge:ingots/zinc")
event.stonecutting("64x copycats:copycat_byte_panel", "#forge:ingots/zinc")
event.stonecutting("32x copycats:copycat_board", "#forge:ingots/zinc")
event.stonecutting("64x copycats:copycat_half_layer", "#forge:ingots/zinc")
event.stonecutting("64x copycats:copycat_vertical_half_layer", "#forge:ingots/zinc")
event.stonecutting("64x copycats:copycat_stacked_half_layer", "#forge:ingots/zinc")
event.stonecutting("8x copycats:copycat_slope", "#forge:ingots/zinc")
event.stonecutting("8x copycats:copycat_vertical_slope", "#forge:ingots/zinc")
event.stonecutting("32x copycats:copycat_slope_layer", "#forge:ingots/zinc")
event.stonecutting("copycats:copycat_door", "#forge:ingots/zinc")
event.stonecutting("copycats:copycat_sliding_door", "#forge:ingots/zinc")
event.stonecutting("copycats:copycat_folding_door", "#forge:ingots/zinc")
event.stonecutting("copycats:copycat_trapdoor", "#forge:ingots/zinc")
event.stonecutting("4x copycats:copycat_fence_gate", "#forge:ingots/zinc")
event.stonecutting("24x copycats:copycat_ladder", "#forge:ingots/zinc")
event.shaped('copycats:copycat_wooden_pressure_plate', [
' A ',
'ABA',
' A '
], {
A: 'copycats:copycat_block',
B: '#minecraft:wooden_pressure_plates'
}).id('tfg:copycats/shaped/copycat_wooden_pressure_plate')
// GT Assembler
event.shaped('copycats:copycat_stone_pressure_plate', [
' A ',
'ABA',
' A '
], {
A: 'copycats:copycat_block',
B: '#minecraft:stone_pressure_plates'
}).id('tfg:copycats/shaped/copycat_stone_pressure_plate')
const COPYCAT_DATA = [
{ id: 'copycat_block', multiplier: '4', extract_count: '1' },
{ id: 'copycat_slab', multiplier: '8', extract_count: '1' },
{ id: 'copycat_stairs', multiplier: '4', extract_count: '1' },
{ id: 'copycat_vertical_stairs', multiplier: '4', extract_count: '1' },
{ id: 'copycat_fence', multiplier: '4', extract_count: '1' },
{ id: 'copycat_wall', multiplier: '4', extract_count: '1' },
{ id: 'copycat_vertical_step', multiplier: '16', extract_count: '1' },
{ id: 'copycat_beam', multiplier: '16', extract_count: '1' },
{ id: 'copycat_slice', multiplier: '64', extract_count: '4' },
{ id: 'copycat_vertical_slice', multiplier: '64', extract_count: '4' },
{ id: 'copycat_corner_slice', multiplier: '64', extract_count: '4' },
{ id: 'copycat_ghost_block', multiplier: '4', extract_count: '1' },
{ id: 'copycat_layer', multiplier: '32', extract_count: '2' },
{ id: 'copycat_half_panel', multiplier: '32', extract_count: '2' },
{ id: 'copycat_pane', multiplier: '32', extract_count: '2' },
{ id: 'copycat_flat_pane', multiplier: '32', extract_count: '2' },
{ id: 'copycat_byte', multiplier: '32', extract_count: '2' },
{ id: 'copycat_byte_panel', multiplier: '64', extract_count: '4' },
{ id: 'copycat_board', multiplier: '32', extract_count: '2' },
{ id: 'copycat_half_layer', multiplier: '64', extract_count: '4' },
{ id: 'copycat_vertical_half_layer', multiplier: '64', extract_count: '4' },
{ id: 'copycat_stacked_half_layer', multiplier: '64', extract_count: '4' },
{ id: 'copycat_slope', multiplier: '8', extract_count: '1' },
{ id: 'copycat_vertical_slope', multiplier: '8', extract_count: '1' },
{ id: 'copycat_slope_layer', multiplier: '32', extract_count: '2' },
{ id: 'copycat_door', multiplier: '1', extract_count: '1' },
{ id: 'copycat_sliding_door', multiplier: '1', extract_count: '1' },
{ id: 'copycat_folding_door', multiplier: '1', extract_count: '1' },
{ id: 'copycat_trapdoor', multiplier: '1', extract_count: '1' },
{ id: 'copycat_fence_gate', multiplier: '4', extract_count: '1' },
{ id: 'copycat_ladder', multiplier: '24', extract_count: '1' }
]
COPYCAT_DATA.forEach(copycat => {
// Stonecutter Recipes
event.stonecutting(`${copycat.multiplier}x copycats:${copycat.id}`, "#forge:ingots/zinc")
// Recycling Recipes
event.recipes.gtceu.extractor(`tfg:copycats/${copycat.id}_recyle`)
.itemInputs(`${copycat.extract_count}x copycats:${copycat.id}`)
.outputFluids(Fluid.of('gtceu:zinc', 144 / copycat.multiplier * copycat.extract_count))
.duration(20)
.EUt(GTValues.VA[GTValues.LV])
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
})
// Copycat Fluid Pipe Assembler
event.recipes.gtceu.assembler('tfg:copycats/copycat_fluid_pipe')
.itemInputs('2x #forge:plates/zinc')
.circuit(3)
@@ -114,4 +146,40 @@ const registerCreateCopycatsRecipes = (event) => {
.duration(200)
.EUt(20)
.addMaterialInfo(true)
}
// Other Recycling Recipes
event.recipes.gtceu.extractor('tfg:copycats/copycat_catwalk_recyle')
.itemInputs('2x copycats:copycat_catwalk')
.outputFluids(Fluid.of('gtceu:zinc', 27))
.duration(20)
.EUt(GTValues.VA[GTValues.LV])
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
event.recipes.gtceu.extractor('tfg:copycats/copycat_box_recyle')
.itemInputs('copycats:copycat_box')
.outputFluids(Fluid.of('gtceu:zinc', 27))
.duration(20)
.EUt(GTValues.VA[GTValues.LV])
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
event.recipes.gtceu.extractor('tfg:copycats/copycat_fluid_pipe_recyle')
.itemInputs('copycats:copycat_fluid_pipe')
.outputFluids(Fluid.of('gtceu:zinc', 288))
.duration(20)
.EUt(GTValues.VA[GTValues.LV])
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
event.recipes.gtceu.extractor('tfg:copycats/copycat_wooden_pressure_plate_recyle')
.itemInputs('copycats:copycat_wooden_pressure_plate')
.outputFluids(Fluid.of('gtceu:zinc', 144))
.duration(20)
.EUt(GTValues.VA[GTValues.LV])
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
event.recipes.gtceu.extractor('tfg:copycats/copycat_stone_pressure_plate_recyle')
.itemInputs('copycats:copycat_stone_pressure_plate')
.outputFluids(Fluid.of('gtceu:zinc', 144))
.duration(20)
.EUt(GTValues.VA[GTValues.LV])
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
}

View File

@@ -49,15 +49,15 @@ function registerCreateFactoryLogisticsRecipes(event) {
'FGF'
], {
A: 'create_factory_logistics:fluid_mechanism',
C: 'gtceu:diode',
D: '#forge:small_gears/red_alloy',
C: '#forge:screws/aluminium',
D: '#gtceu:diodes',
E: '#gtceu:circuits/lv',
F: '#forge:plates/rose_quartz',
G: '#forge:tools/wrenches'
}).id('create_factory_logistics:shaped/factory_fluid_gauge')
event.recipes.gtceu.assembler('create_factory_logistics:factory_fluid_gauge')
.itemInputs('create_factory_logistics:fluid_mechanism', '2x gtceu:diode', '#forge:small_gears/red_alloy', '#gtceu:circuits/lv', '3x #forge:plates/rose_quartz')
.itemInputs('create_factory_logistics:fluid_mechanism', '2x #forge:screws/aluminium', '#gtceu:diodes', '3x #forge:plates/rose_quartz', '#gtceu:circuits/lv')
.itemOutputs('create_factory_logistics:factory_fluid_gauge')
.duration(150)
.EUt(16)

View File

@@ -4,67 +4,80 @@ const metalBars = /** @type {const} */ (["andesite", "brass", "iron", "copper",
/** @param {TagEvent.Item} event */
function registerCreateDecoItemTags(event) {
global.CREATEDECO_DISABLED_ITEMS.forEach((item) => {
event.removeAllTagsFrom(item);
event.add("c:hidden_from_recipe_viewers", item);
});
global.CREATEDECO_DISABLED_ITEMS.forEach((item) => {
event.removeAllTagsFrom(item);
event.add("c:hidden_from_recipe_viewers", item);
});
event.remove("createdeco:internal/blocks/iron_blocks", "minecraft:iron_block");
event.remove("createdeco:internal/blocks/industrial_iron_blocks", "create:industrial_iron_block");
event.remove("createdeco:internal/blocks/iron_blocks", "minecraft:iron_block");
event.remove("createdeco:internal/blocks/industrial_iron_blocks", "create:industrial_iron_block");
metalBars.forEach((metalBars) => {
event.add("tfg:metal_bars", `createdeco:${metalBars}_bars`);
event.add("tfg:metal_bars", `createdeco:${metalBars}_bars_overlay`);
});
metalBars.forEach((metalBars) => {
event.add("tfg:metal_bars", `createdeco:${metalBars}_bars`);
event.add("tfg:metal_bars", `createdeco:${metalBars}_bars_overlay`);
});
event.add("createdeco:metal_trapdoors", "createdeco:andesite_trapdoor");
event.add("createdeco:metal_trapdoors", "createdeco:brass_trapdoor");
event.add("createdeco:metal_trapdoors", "createdeco:copper_trapdoor");
event.add("createdeco:metal_trapdoors", "createdeco:industrial_iron_trapdoor");
event.add("createdeco:metal_trapdoors", "createdeco:zinc_trapdoor");
event.add("createdeco:metal_trapdoors", "createdeco:andesite_trapdoor");
event.add("createdeco:metal_trapdoors", "createdeco:brass_trapdoor");
event.add("createdeco:metal_trapdoors", "createdeco:copper_trapdoor");
event.add("createdeco:metal_trapdoors", "createdeco:industrial_iron_trapdoor");
event.add("createdeco:metal_trapdoors", "createdeco:zinc_trapdoor");
event.add("createdeco:internal/plates/iron_plates", "#forge:plates/wrought_iron");
event.add("createdeco:internal/plates/copper_plates", "#forge:plates/copper");
event.add("createdeco:internal/plates/brass_plates", "#forge:plates/brass");
event.add("createdeco:internal/plates/andesite_plates", "#forge:plates/tin_alloy");
event.add("createdeco:internal/plates/industrial_iron_plates", "#forge:sheets/steel");
event.add("createdeco:internal/plates/zinc_plates", "#forge:sheets/zinc");
event.add("createdeco:internal/plates/iron_plates", "#forge:plates/wrought_iron");
event.add("createdeco:internal/plates/copper_plates", "#forge:plates/copper");
event.add("createdeco:internal/plates/brass_plates", "#forge:plates/brass");
event.add("createdeco:internal/plates/andesite_plates", "#forge:plates/tin_alloy");
event.add("createdeco:internal/plates/industrial_iron_plates", "#forge:sheets/steel");
event.add("createdeco:internal/plates/zinc_plates", "#forge:sheets/zinc");
event.add("createdeco:internal/nuggets/iron_nuggets", "#forge:nuggets/wrought_iron");
event.add("createdeco:internal/nuggets/copper_nuggets", "#forge:nuggets/copper");
event.add("createdeco:internal/nuggets/zinc_nuggets", "#forge:nuggets/zinc");
event.add("createdeco:internal/nuggets/industrial_iron_nuggets", "#forge:nuggets/steel");
event.add("createdeco:internal/nuggets/brass_nuggets", "#forge:nuggets/brass");
event.add("createdeco:internal/nuggets/copper_nuggets", "#forge:nuggets/copper");
event.add("createdeco:internal/nuggets/iron_nuggets", "#forge:nuggets/wrought_iron");
event.add("createdeco:internal/nuggets/copper_nuggets", "#forge:nuggets/copper");
event.add("createdeco:internal/nuggets/zinc_nuggets", "#forge:nuggets/zinc");
event.add("createdeco:internal/nuggets/industrial_iron_nuggets", "#forge:nuggets/steel");
event.add("createdeco:internal/nuggets/brass_nuggets", "#forge:nuggets/brass");
event.add("createdeco:internal/nuggets/copper_nuggets", "#forge:nuggets/copper");
event.add("createdeco:internal/ingots/iron_ingots", "#forge:ingots/wrought_iron");
event.add("createdeco:internal/ingots/copper_ingots", "#forge:ingots/copper");
event.add("createdeco:internal/ingots/brass_ingots", "#forge:ingots/brass");
event.add("createdeco:internal/ingots/zinc_ingots", "#forge:ingots/zinc");
event.add("createdeco:internal/ingots/andesite_ingots", "#forge:ingots/tin_alloy");
event.add("createdeco:internal/ingots/industrial_iron_ingots", `#forge:ingots/steel`);
event.add("createdeco:internal/ingots/iron_ingots", "#forge:ingots/wrought_iron");
event.add("createdeco:internal/ingots/copper_ingots", "#forge:ingots/copper");
event.add("createdeco:internal/ingots/brass_ingots", "#forge:ingots/brass");
event.add("createdeco:internal/ingots/zinc_ingots", "#forge:ingots/zinc");
event.add("createdeco:internal/ingots/andesite_ingots", "#forge:ingots/tin_alloy");
event.add("createdeco:internal/ingots/industrial_iron_ingots", `#forge:ingots/steel`);
event.add("createdeco:internal/blocks/iron_blocks", "#forge:storage_blocks/wrought_iron");
event.add("createdeco:internal/blocks/copper", "#forge:storage_blocks/copper");
event.add("createdeco:internal/blocks/brass_blocks", "#forge:storage_blocks/brass");
event.add("createdeco:internal/blocks/industrial_iron_blocks", "#forge:storage_blocks/steel");
event.add("createdeco:internal/blocks/zinc_blocks", "#forge:storage_blocks/zinc");
event.add("createdeco:internal/blocks/andesite_blocks", "#forge:storage_blocks/tin_alloy");
event.add("createdeco:internal/blocks/iron_blocks", "#forge:storage_blocks/wrought_iron");
event.add("createdeco:internal/blocks/copper", "#forge:storage_blocks/copper");
event.add("createdeco:internal/blocks/brass_blocks", "#forge:storage_blocks/brass");
event.add("createdeco:internal/blocks/industrial_iron_blocks", "#forge:storage_blocks/steel");
event.add("createdeco:internal/blocks/zinc_blocks", "#forge:storage_blocks/zinc");
event.add("createdeco:internal/blocks/andesite_blocks", "#forge:storage_blocks/tin_alloy");
global.MINECRAFT_DYE_NAMES.forEach((color) => {
event.add("createdeco:shipping_containers", `createdeco:${color}_shipping_container`);
});
global.MINECRAFT_DYE_NAMES.forEach((color) => {
event.add("createdeco:shipping_containers", `createdeco:${color}_shipping_container`);
});
global.CREATE_DECO_GLASS_PANES.forEach(pane => {
event.add("forge:glass_panes", pane)
})
global.CREATE_DECO_GLASS_PANES.forEach(pane => {
event.add("forge:glass_panes", pane)
})
}
/** @param {TagEvent.Block} event */
function registerCreateDecoBlockTags(event) {
metalBars.forEach((metalBars) => {
// The bars are missing mineable tags for some reason
event.add("minecraft:mineable/pickaxe", `createdeco:${metalBars}_bars`);
event.add("minecraft:mineable/pickaxe", `createdeco:${metalBars}_bars_overlay`);
});
metalBars.forEach((metalBars) => {
// The bars are missing mineable tags for some reason
event.add("minecraft:mineable/pickaxe", `createdeco:${metalBars}_bars`);
event.add("minecraft:mineable/pickaxe", `createdeco:${metalBars}_bars_overlay`);
});
global.MINECRAFT_DYE_NAMES.forEach((color) => {
event.add("createdeco:chest_mounted_storage", `createdeco:${color}_shipping_container`);
});
const lampColors = ['blue', 'green', 'red', 'yellow'];
const lampTypes = ['zinc', 'brass', 'iron', 'industrial_iron', 'copper', 'andesite'];
lampTypes.forEach(type => {
lampColors.forEach(color => {
event.add('gtceu:mineable/pickaxe_or_wrench', `createdeco:${color}_${type}_lamp`);
});
});
}

View File

@@ -35,13 +35,21 @@ function registerDiggerHelmetRecipes(event) {
C: '#forge:foils/rubber'
}).id('tfg:shaped/auto_drink_modifier_rubber')
event.recipes.tfc.damage_inputs_shapeless_crafting(
event.shapeless('diggerhelmet:silk_lining', ['tfcambiental:silk_cowl', '#forge:string', '#tfc:sewing_needles'])
).id('tfg:shapeless/diggerhelmet/silk_lining')
event.recipes.tfc.damage_inputs_shapeless_crafting(
event.shapeless('diggerhelmet:wool_lining', ['tfcambiental:wool_hat', '#forge:string', '#tfc:sewing_needles'])
).id('tfg:shapeless/diggerhelmet/wool_lining')
event.shapeless('diggerhelmet:silk_lining', [
'tfcambiental:silk_cowl',
'#forge:string',
'#tfc:sewing_needles'
])
.damageIngredient('#tfc:sewing_needles', 1)
.id('tfg:shapeless/diggerhelmet/silk_lining');
event.shapeless('diggerhelmet:wool_lining', [
'tfcambiental:wool_hat',
'#forge:string',
'#tfc:sewing_needles'
])
.damageIngredient('#tfc:sewing_needles', 1)
.id('tfg:shapeless/diggerhelmet/wool_lining');
// ========================================
@@ -96,18 +104,15 @@ function registerDiggerHelmetRecipes(event) {
type: 'diggerhelmet:helmet_repair',
pattern: [
' C ',
'RHT',
'BAB'
'RHT'
],
key: {
'H': { item: `diggerhelmet:${metal}_digger_helmet` },
'R': { tag: `forge:plates/${metal}` },
'R': ChemicalHelper.get(TFGTagPrefix.repairKit, TFGHelpers.getMaterial(metal), 1),
'T': { tag: 'tfc:hammers' },
'C': { tag: 'tfc:candles' },
'A': { tag: 'forge:tools/screwdrivers'},
'B': { tag: `forge:screws/${metal}`}
'C': { tag: 'tfc:candles' }
},
repairPercentage: 0.75,
repairPercentage: 0.25,
toolDamagePercentage: 0.01
}).id(`tfg:diggerhelmet/repair_${metal}_helmet`)
@@ -116,18 +121,15 @@ function registerDiggerHelmetRecipes(event) {
type: 'diggerhelmet:helmet_repair',
pattern: [
' C ',
'RHT',
'BAB'
'RHT'
],
key: {
'H': { item: `diggerhelmet:broken_${metal}_digger_helmet` },
'R': { tag: `forge:plates/${metal}` },
'R': ChemicalHelper.get(TFGTagPrefix.repairKit, TFGHelpers.getMaterial(metal), 1),
'T': { tag: 'tfc:hammers' },
'C': { tag: 'tfc:candles' },
'A': { tag: 'forge:tools/screwdrivers'},
'B': { tag: `forge:screws/${metal}`}
'C': { tag: 'tfc:candles' }
},
repairPercentage: 0.75,
repairPercentage: 0.25,
toolDamagePercentageBroken: 0.02
}).id(`tfg:diggerhelmet/repair_broken_${metal}_helmet`)
})

View File

@@ -137,6 +137,8 @@ const registerFirmaLifeRecipes = (event) => {
.itemOutputs('8x firmalife:pineapple_yarn')
.duration(50)
.EUt(7)
event.remove({ id: 'firmalife:crafting/pineapple_yarn' })
// Pineapple Leather
event.recipes.gtceu.assembler(`tfg:firmalife/pineapple_leather`)

View File

@@ -285,7 +285,7 @@ function registerGrapplingHookRecipes(event) {
}).id('tfg:grapplemod/shapeless/grapplinghook');
//Repair
event.recipes.kubejs.shapeless(Item.of('grapplemod:grapplinghook').withName(Text.translate("tfg.grapplemod.repair")), ['grapplemod:grapplinghook', 'gtceu:wrought_iron_dust'])
event.recipes.kubejs.shapeless(Item.of('grapplemod:grapplinghook').withName(Text.translate("tfg.grapplemod.repair")), ['grapplemod:grapplinghook', 'gtceu:repair_kit_wrought_iron'])
.modifyResult((craftingGrid, result) => {
try {
let fallbackItem = Item.of("minecraft:air");

View File

@@ -47,8 +47,6 @@ function removeGreateRecipes(event) {
event.remove({ id: `gtceu:extractor/extract_${tier}_gearbox` })
event.remove({ id: `gtceu:extractor/extract_${tier}_vertical_gearbox` })
})
event.remove({ id: 'greate:milling/integration/gtceu/macerator/macerate_marble'})
event.remove({ id: 'gtceu:electrolyzer/decomposition_electrolyzing_andesite_alloy' })
event.remove({ id: 'gtceu:electrolyzer/decomposition_electrolyzing_chromatic_compound' })
@@ -56,7 +54,7 @@ function removeGreateRecipes(event) {
event.remove({ id: 'gtceu:shaped/andesite_alloy_shaft' })
event.remove({ id: 'gtceu:extractor/extract_andesite_alloy' })
event.remove({ id: /^greate:(mixing|sawing|splashing|crushing|milling)\/integration\/(create|createaddition|vintageimprovements)\/.*/ })
event.remove({ id: /^greate:(mixing|sawing|splashing|crushing|milling)\/integration\/(create|createaddition|vintageimprovements|railways)\/.*/ })
event.remove({ id: /^greate:(compacting|pressing)\/integration\/.*/ })
event.remove({ mod: 'greate', type: 'minecraft:crafting_shaped' })
@@ -74,11 +72,17 @@ function removeGreateRecipes(event) {
event.remove({ id: 'greate:cutting/integration/create/cutting/runtime_generated/compat/minecraft/bamboo_planks_to_bamboo_button' })
event.remove({ id: 'greate:mixing/integration/gtceu/mixer/fire_charge' })
event.remove({ id: 'greate:milling/integration/gtceu/macerator/macerate_cocoa' })
event.remove({ id: 'greate:milling/integration/gtceu/macerator/macerate_honeycomb' })
event.remove({ id: 'greate:milling/integration/gtceu/macerator/macerate_honeycomb_block'})
event.remove({ id: 'greate:milling/integration/gtceu/macerator/quartz_sand_from_sand' })
event.remove({ id: 'greate:crushing/integration/gtceu/macerator/macerate_cocoa' })
event.remove({ id: 'greate:crushing/integration/gtceu/macerator/macerate_honeycomb' })
event.remove({ id: 'greate:crushing/integration/gtceu/macerator/macerate_honeycomb_block'})
event.remove({ id: 'greate:crushing/integration/gtceu/macerator/quartz_sand_from_sand' })
event.remove({ id: 'greate:mixing/brass_ingot' })
event.remove({ id: 'greate:shaped/copper_diving_helmet' })

View File

@@ -78,6 +78,9 @@ const registerGTCEUHeats = (event) => {
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadButcheryKnife, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadMiningHammer, material, tfcProperty, 2.875)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadSpade, material, tfcProperty, 2.875)
makeItemHeatByTagPrefix(TFGTagPrefix.unfiredRepairKit, material, tfcProperty, 1.875)
makeItemHeatByTagPrefix(TFGTagPrefix.repairKit, material, tfcProperty, 1.875)
makeItemHeatByToolType(GTToolType.SWORD, material, tfcProperty, 1.429)
makeItemHeatByToolType(GTToolType.PICKAXE, material, tfcProperty, 1.429)

View File

@@ -413,4 +413,25 @@ const registerGTCEURecipes = (event) => {
.duration(20*2)
.EUt(GTValues.VA[GTValues.LV])
.circuit(1)
// Increase casing costs
event.replaceInput({ id: 'gtceu:shaped/casing_steel_pipe' }, '#forge:normal_fluid_pipes/steel', '#forge:huge_fluid_pipes/steel')
event.replaceInput({ id: 'gtceu:shaped/casing_steel_pipe' }, '#forge:plates/steel', '#forge:double_plates/steel')
// Modify HV Dynamo Hatch to be craftable before Cleanroom
event.recipes.gtceu.assembler('gtceu:voltage_coil_hv')
.itemInputs('#forge:rods/magnetic_steel', '16x #forge:fine_wires/black_steel')
.itemOutputs('gtceu:hv_voltage_coil')
.circuit(1)
.duration(20*20)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.assembler('gtceu:dynamo_hatch_hv')
.itemInputs('gtceu:hv_machine_hull', '2x #forge:springs/gold', '2x gtceu:ulpic_chip', 'gtceu:hv_voltage_coil')
.inputFluids('gtceu:sodium_potassium 1000')
.itemOutputs('gtceu:hv_energy_output_hatch')
.duration(20*20)
.EUt(GTValues.VA[GTValues.MV])
}

View File

@@ -2,19 +2,44 @@
"use strict";
/**
* @param {Internal.RecipesEventJS} event
* @param {Internal.RecipesEventJS} event
*/
function registerGTCEURecyclingRecipes(event) {
// Capacitors
TFGHelpers.registerMaterialInfo('gtceu:tantalum_capacitor', [GTMaterials.Tantalum, 1/9, GTMaterials.Polyethylene, 1/9])
TFGHelpers.registerMaterialInfo('gtceu:capacitor', [GTMaterials.Polyethylene, 1/9])
TFGHelpers.registerMaterialInfo('gtceu:tantalum_capacitor', [GTMaterials.Tantalum, 1 / 9, GTMaterials.Polyethylene, 1 / 9])
TFGHelpers.registerMaterialInfo('gtceu:capacitor', [GTMaterials.Polyethylene, 1 / 9])
// Empty batteries
TFGHelpers.registerMaterialInfo('gtceu:empty_tier_i_battery', [GTMaterials.Ultimet, 6])
TFGHelpers.registerMaterialInfo('gtceu:empty_tier_ii_battery', [GTMaterials.Ruridit, 6])
TFGHelpers.registerMaterialInfo('gtceu:empty_tier_iii_battery', [GTMaterials.Neutronium, 6])
// Iron Door
TFGHelpers.registerMaterialInfo('minecraft:iron_door', [GTMaterials.Iron, 2])
// GregTech Input Bus
TFGHelpers.registerMaterialInfo('gtceu:lv_input_bus', [GTMaterials.Steel, 8, GTMaterials.Tin, 1, GTMaterials.Rubber, 2])
TFGHelpers.registerMaterialInfo('gtceu:mv_input_bus', [GTMaterials.Aluminium, 8, GTMaterials.Rubber, 2])
TFGHelpers.registerMaterialInfo('gtceu:hv_input_bus', [GTMaterials.StainlessSteel, 8, GTMaterials.Gold, 1, GTMaterials.Steel, 8, GTMaterials.Rubber, 2])
TFGHelpers.registerMaterialInfo('gtceu:ev_input_bus', [GTMaterials.Titanium, 8, GTMaterials.Aluminium, 9, GTMaterials.Rubber, 2, GTMaterials.PolyvinylChloride, 2])
TFGHelpers.registerMaterialInfo('gtceu:iv_input_bus', [GTMaterials.TungstenSteel, 8, GTMaterials.StainlessSteel, 8, GTMaterials.Polytetrafluoroethylene, 2, GTMaterials.PolyvinylChloride, 2, GTMaterials.Platinum, 1])
// GregTech Output Bus
TFGHelpers.registerMaterialInfo('gtceu:lv_output_bus', [GTMaterials.Steel, 8, GTMaterials.Tin, 1, GTMaterials.Rubber, 2])
TFGHelpers.registerMaterialInfo('gtceu:mv_output_bus', [GTMaterials.Aluminium, 8, GTMaterials.Rubber, 2])
TFGHelpers.registerMaterialInfo('gtceu:hv_output_bus', [GTMaterials.StainlessSteel, 8, GTMaterials.Gold, 1, GTMaterials.Steel, 8, GTMaterials.Rubber, 2])
TFGHelpers.registerMaterialInfo('gtceu:ev_output_bus', [GTMaterials.Titanium, 8, GTMaterials.Aluminium, 9, GTMaterials.Rubber, 2, GTMaterials.PolyvinylChloride, 2])
TFGHelpers.registerMaterialInfo('gtceu:iv_output_bus', [GTMaterials.TungstenSteel, 8, GTMaterials.StainlessSteel, 8, GTMaterials.Polytetrafluoroethylene, 2, GTMaterials.PolyvinylChloride, 2, GTMaterials.Platinum, 1])
// GregTech Input Hatch
TFGHelpers.registerMaterialInfo('gtceu:lv_input_hatch', [GTMaterials.Steel, 8, GTMaterials.Tin, 1, GTMaterials.Rubber, 2])
TFGHelpers.registerMaterialInfo('gtceu:mv_input_hatch', [GTMaterials.Aluminium, 8, GTMaterials.Rubber, 2])
TFGHelpers.registerMaterialInfo('gtceu:hv_input_hatch', [GTMaterials.StainlessSteel, 8, GTMaterials.Gold, 1, GTMaterials.Steel, 6, GTMaterials.Rubber, 2])
TFGHelpers.registerMaterialInfo('gtceu:ev_input_hatch', [GTMaterials.Titanium, 8, GTMaterials.Aluminium, 7, GTMaterials.Rubber, 2, GTMaterials.PolyvinylChloride, 2])
TFGHelpers.registerMaterialInfo('gtceu:iv_input_hatch', [GTMaterials.TungstenSteel, 8, GTMaterials.StainlessSteel, 6, GTMaterials.Polytetrafluoroethylene, 2, GTMaterials.PolyvinylChloride, 2, GTMaterials.Platinum, 1])
// GregTech Output Hatch
TFGHelpers.registerMaterialInfo('gtceu:lv_output_hatch', [GTMaterials.Steel, 8, GTMaterials.Tin, 1, GTMaterials.WroughtIron, 1, GTMaterials.Rubber, 2])
TFGHelpers.registerMaterialInfo('gtceu:mv_output_hatch', [GTMaterials.Aluminium, 8, GTMaterials.Rubber, 2])
TFGHelpers.registerMaterialInfo('gtceu:hv_output_hatch', [GTMaterials.StainlessSteel, 8, GTMaterials.Gold, 1, GTMaterials.Steel, 6, GTMaterials.Rubber, 2])
TFGHelpers.registerMaterialInfo('gtceu:ev_output_hatch', [GTMaterials.Titanium, 8, GTMaterials.Aluminium, 7, GTMaterials.Rubber, 2, GTMaterials.PolyvinylChloride, 2])
TFGHelpers.registerMaterialInfo('gtceu:iv_output_hatch', [GTMaterials.TungstenSteel, 8, GTMaterials.StainlessSteel, 6, GTMaterials.Polytetrafluoroethylene, 2, GTMaterials.PolyvinylChloride, 2, GTMaterials.Platinum, 1])
removeMaceratorRecipe(event, 'macerate_maintenance_hatch')
TFGHelpers.registerMaterialInfo('gtceu:maintenance_hatch', [GTMaterials.Steel, 8, GTMaterials.Rubber, 2, GTMaterials.Tin, 1])
@@ -74,4 +99,4 @@ function registerGTCEURecyclingRecipes(event) {
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING);
//#endregion
}
}

View File

@@ -413,6 +413,22 @@ function removeGTCEURecipes(event) {
//#endregion
// Remove slurries from GT
event.remove({ id: 'gtceu:mixer/ruby_slurry_from_crushed_ruby' })
event.remove({ id: 'greate:mixing/integration/gtceu/mixer/ruby_slurry_from_crushed_ruby' })
event.remove({ id: 'gtceu:mixer/ruby_slurry_from_washed_ruby' })
event.remove({ id: 'greate:mixing/integration/gtceu/mixer/ruby_slurry_from_washed_ruby' })
event.remove({ id: 'gtceu:mixer/sapphire_slurry_from_washed_sapphire' })
event.remove({ id: 'greate:mixing/integration/gtceu/mixer/sapphire_slurry_from_washed_sapphire' })
event.remove({ id: 'gtceu:mixer/sapphire_slurry_from_crushed_sapphire' })
event.remove({ id: 'greate:mixing/integration/gtceu/mixer/sapphire_slurry_from_crushed_sapphire' })
event.remove({ id: 'gtceu:mixer/green_sapphire_slurry_from_crushed_green_sapphire' })
event.remove({ id: 'greate:mixing/integration/gtceu/mixer/green_sapphire_slurry_from_crushed_green_sapphire' })
event.remove({ id: 'gtceu:mixer/green_sapphire_slurry_from_washed_green_sapphire' })
event.remove({ id: 'greate:mixing/integration/gtceu/mixer/green_sapphire_slurry_from_washed_green_sapphire' })
//#region Выход: Маленькая кучка мяса
@@ -828,6 +844,11 @@ function removeGTCEURecipes(event) {
event.remove({ id: 'gtceu:steam_boiler/create_creative_blaze_cake' })
event.remove({ id: 'gtceu:large_boiler/create_creative_blaze_cake' })
event.remove({ id : 'gtceu:shaped/large_bronze_boiler' })
event.remove({ id : 'gtceu:shaped/large_steel_boiler' })
event.remove({ id : 'gtceu:shaped/titanium_large_boiler' })
event.remove({ id : 'gtceu:shaped/tungstensteel_large_boiler' })
// Snow Stuffs
@@ -931,6 +952,7 @@ function removeGTCEURecipes(event) {
function removeMaceratorRecipe(event, id) {
event.remove({ id: `gtceu:macerator/${id}` })
event.remove({ id: `greate:milling/integration/gtceu/macerator/${id}` })
event.remove({ id: `greate:crushing/integration/gtceu/macerator/${id}` })
}
function removeCutterRecipe(event, id) {

View File

@@ -75,6 +75,13 @@ function registerGTCEUItemTags(event) {
event.add('gtceu:lamps', `gtceu:${color}_lamp`)
event.add('gtceu:lamps', `gtceu:${color}_borderless_lamp`)
})
// any rubber plate
event.add('tfg:rubber_plates', '#forge:plates/rubber', '#forge:plates/silicone_rubber', '#forge:plates/styrene_butadiene_rubber')
// Remove slurry bucket
event.add('c:hidden_from_recipe_viewers', 'gtceu:ruby_slurry_bucket', 'gtceu:green_sapphire_slurry_bucket', 'gtceu:sapphire_slurry_bucket')
}
/** @param {TagEvent.Block} event */
@@ -117,11 +124,24 @@ function registerGTCEUBlockTags(event) {
event.remove("forge:needs_netherite_tool", "gtceu:incoloy_ma_956_frame");
event.add("c:hidden_from_recipe_viewers", "gtceu:bronze_large_boiler")
event.add("c:hidden_from_recipe_viewers", "gtceu:steel_large_boiler")
event.add("c:hidden_from_recipe_viewers", "gtceu:titanium_large_boiler")
event.add("c:hidden_from_recipe_viewers", "gtceu:tungstensteel_large_boiler")
// Groups up concrete blocks into tags.
Object.entries(global.GTCEU_CONCRETE_BLOCKS).forEach(([type, ids]) => {
event.add(`tfg:gtceu_concrete_blocks/${type}`, ids);
event.add('tfg:gtceu_concrete_blocks', ids);
});
// lamp tag for EMI++
global.MINECRAFT_DYE_NAMES.forEach(color => {
event.add('gtceu:lamps', `gtceu:${color}_lamp`)
event.add('gtceu:lamps', `gtceu:${color}_borderless_lamp`)
})
event.add('gtceu:mineable/pickaxe_or_wrench', '#gtceu:lamps')
}
/** @param {TagEvent.Fluid} event */
@@ -147,4 +167,8 @@ function registerGTCEUFluidTags(event) {
event.add("c:hidden_from_recipe_viewers", "tfg:molten_weak_red_steel");
event.add("c:hidden_from_recipe_viewers", "tfg:molten_weak_blue_steel");
event.add("c:hidden_from_recipe_viewers", "gtceu:ruby_slurry");
event.add("c:hidden_from_recipe_viewers", "gtceu:green_sapphire_slurry");
event.add("c:hidden_from_recipe_viewers", "gtceu:sapphire_slurry");
}

View File

@@ -116,6 +116,12 @@ function registerImmersiveAircraftRecipes(event) {
E: 'create:andesite_casing'
}).id('tfg:immersive_aircraft/shaped/engine');
event.recipes.gtceu.assembler('tfg:immersive_aircraft/assembler/engine')
.itemInputs('gtceu:tin_alloy_small_fluid_pipe', 'create:andesite_casing', '2x #tfg:metal_bars')
.itemOutputs('immersive_aircraft:engine')
.duration(5 * 20)
.EUt(GTValues.VA[GTValues.LV])
event.shaped('immersive_aircraft:sail', [
'ABA',
'BCB',
@@ -194,6 +200,12 @@ function registerImmersiveAircraftRecipes(event) {
E: '#forge:tools/screwdrivers',
}).id('tfg:immersive_aircraft/shaped/sturdy_pipes')
event.recipes.gtceu.assembler('tfg:immersive_aircraft/assembler/sturdy_pipes')
.itemInputs('gtceu:red_steel_plate', 'gtceu:blue_steel_plate', '3x #forge:small_fluid_pipes', '2x gtceu:black_steel_screw')
.itemOutputs('immersive_aircraft:sturdy_pipes')
.duration(5 * 20)
.EUt(GTValues.VA[GTValues.LV])
event.shaped('immersive_aircraft:gyroscope', [
'ABC',
'DED',
@@ -208,6 +220,12 @@ function registerImmersiveAircraftRecipes(event) {
G: '#forge:tools/screwdrivers'
}).id('tfg:immersive_aircraft/shaped/gyroscope')
event.recipes.gtceu.assembler('tfg:immersive_aircraft/assembler/gyroscope')
.itemInputs('create:precision_mechanism', 'firmaciv:firmaciv_compass', '#forge:gems/quartzite', '3x gtceu:small_brass_gear', '#forge:screws/blue_steel')
.itemOutputs('immersive_aircraft:gyroscope')
.duration(5 * 20)
.EUt(GTValues.VA[GTValues.LV])
event.shaped('immersive_aircraft:gyroscope_dials', [
'ABC',
'DED',
@@ -222,6 +240,12 @@ function registerImmersiveAircraftRecipes(event) {
G: '#forge:tools/screwdrivers'
}).id('tfg:immersive_aircraft/shaped/gyroscope_dials')
event.recipes.gtceu.assembler('tfg:immersive_aircraft/assembler/gyroscope_dials')
.itemInputs('immersive_aircraft:gyroscope', 'gtceu:lv_sensor', '#gtceu:circuits/lv', '3x gtceu:small_aluminium_gear', '#forge:screws/vanadium_steel')
.itemOutputs('immersive_aircraft:gyroscope_dials')
.duration(5 * 20)
.EUt(GTValues.VA[GTValues.LV])
event.shaped('immersive_aircraft:gyroscope_hud', [
'ABC',
'DED',
@@ -236,6 +260,12 @@ function registerImmersiveAircraftRecipes(event) {
G: '#forge:tools/screwdrivers'
}).id('tfg:immersive_aircraft/shaped/gyroscope_hud')
event.recipes.gtceu.assembler('tfg:immersive_aircraft/assembler/gyroscope_hud')
.itemInputs('immersive_aircraft:gyroscope_dials', 'gtceu:mv_sensor', '3x #gtceu:circuits/mv', 'gtceu:computer_monitor_cover', '#forge:screws/stainless_steel')
.itemOutputs('immersive_aircraft:gyroscope_hud')
.duration(5 * 20)
.EUt(GTValues.VA[GTValues.LV])
event.shaped('tfg:black_steel_plated_airplane_propeller', [
'CA ',
'ABA',
@@ -247,6 +277,12 @@ function registerImmersiveAircraftRecipes(event) {
D: '#forge:tools/wrenches'
}).id('tfg:shaped/black_steel_plated_airplane_propeller');
event.recipes.gtceu.assembler('tfg:assembler/black_steel_plated_airplane_propeller')
.itemInputs('#forge:rotors', '4x gtceu:black_steel_plate')
.itemOutputs('tfg:black_steel_plated_airplane_propeller')
.duration(5 * 20)
.EUt(GTValues.VA[GTValues.LV])
generateRecyclingRecipe('tfg:recycling/black_steel_plated_airplane_propeller',
createRecyclingRecipeArgs('tfg:black_steel_plated_airplane_propeller', [GTMaterials.BlackSteel], [createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3)]))
@@ -262,6 +298,12 @@ function registerImmersiveAircraftRecipes(event) {
F: '#forge:tools/wrenches'
}).id('tfg:shaped/redblu_steel_plated_airplane_propeller');
event.recipes.gtceu.assembler('tfg:assembler/redblu_steel_plated_airplane_propeller')
.itemInputs('#forge:rotors', '2x gtceu:red_steel_plate', '2x gtceu:blue_steel_plate')
.itemOutputs('tfg:redblu_steel_plated_airplane_propeller')
.duration(5 * 20)
.EUt(GTValues.VA[GTValues.LV])
generateRecyclingRecipe('tfg:recycling/redblu_steel_plated_airplane_propeller',
createRecyclingRecipeArgs('tfg:redblu_steel_plated_airplane_propeller', [
GTMaterials.RedSteel,
@@ -283,6 +325,12 @@ function registerImmersiveAircraftRecipes(event) {
D: '#forge:tools/wrenches'
}).id('tfg:immersive_aircraft/shaped/enhanced_propeller');
event.recipes.gtceu.assembler('tfg:immersive_aircraft/assembler/enhanced_propeller')
.itemInputs('#forge:rotors', '4x vintageimprovements:aluminum_sheet')
.itemOutputs('immersive_aircraft:enhanced_propeller')
.duration(5 * 20)
.EUt(GTValues.VA[GTValues.LV])
generateRecyclingRecipe('immersive_aircraft:recycling/enhanced_propeller',
createRecyclingRecipeArgs('immersive_aircraft:enhanced_propeller', [GTMaterials.Aluminium], [createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3)]))
@@ -297,6 +345,12 @@ function registerImmersiveAircraftRecipes(event) {
D: '#forge:tools/wrenches'
}).id('tfg:shaped/stainless_steel_plated_airplane_propeller');
event.recipes.gtceu.assembler('tfg:assembler/stainless_steel_plated_airplane_propeller')
.itemInputs('#forge:rotors', '4x gtceu:stainless_steel_plate')
.itemOutputs('tfg:stainless_steel_plated_airplane_propeller')
.duration(5 * 20)
.EUt(GTValues.VA[GTValues.LV])
generateRecyclingRecipe('tfg:recycling/stainless_steel_plated_airplane_propeller',
createRecyclingRecipeArgs('tfg:stainless_steel_plated_airplane_propeller', [GTMaterials.StainlessSteel], [createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3)]))
@@ -311,6 +365,12 @@ function registerImmersiveAircraftRecipes(event) {
D: '#forge:tools/wrenches'
}).id('tfg:shaped/titanium_plated_airplane_propeller');
event.recipes.gtceu.assembler('tfg:assembler/titanium_plated_airplane_propeller')
.itemInputs('#forge:rotors', '4x gtceu:titanium_plate')
.itemOutputs('tfg:titanium_plated_airplane_propeller')
.duration(5 * 20)
.EUt(GTValues.VA[GTValues.LV])
generateRecyclingRecipe('tfg:recycling/titanium_plated_airplane_propeller',
createRecyclingRecipeArgs('tfg:titanium_plated_airplane_propeller', [GTMaterials.Titanium], [createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3)]))
@@ -326,6 +386,12 @@ function registerImmersiveAircraftRecipes(event) {
E: 'gtceu:double_sterling_silver_plate'
}).id('tfg:immersive_aircraft/shaped/eco_engine');
event.recipes.gtceu.assembler('tfg:immersive_aircraft/assembler/eco_engine')
.itemInputs('immersive_aircraft:engine', '3x gtceu:double_sterling_silver_plate', '3x gtceu:double_rose_gold_plate')
.itemOutputs('immersive_aircraft:eco_engine')
.duration(5 * 20)
.EUt(GTValues.VA[GTValues.LV])
event.shaped('immersive_aircraft:steel_boiler', [
'ABA',
'ACA',
@@ -496,6 +562,12 @@ function registerImmersiveAircraftRecipes(event) {
D: '#forge:tools/wrenches'
}).id('tfg:immersive_aircraft/shaped/hull_reinforcement');
event.recipes.gtceu.assembler('tfg:immersive_aircraft/assembler/hull_reinforcement')
.itemInputs('immersive_aircraft:hull', '4x gtceu:black_steel_plate')
.itemOutputs('immersive_aircraft:hull_reinforcement')
.duration(5 * 20)
.EUt(GTValues.VA[GTValues.LV])
generateRecyclingRecipe('immersive_aircraft:recycling/hull_reinforcement',
createRecyclingRecipeArgs('immersive_aircraft:hull_reinforcement', [
GTMaterials.BlackSteel,
@@ -507,18 +579,23 @@ function registerImmersiveAircraftRecipes(event) {
)
event.shaped('tfg:redblu_steel_hull_reinforcement', [
'ABF',
'AB ',
'ECE',
'FBD'
' BD'
], {
A: '#forge:tools/hammers',
B: 'gtceu:red_steel_plate',
C: 'immersive_aircraft:hull',
D: '#forge:tools/wrenches',
E: 'gtceu:blue_steel_plate',
F: 'gtceu:red_alloy_dust'
E: 'gtceu:blue_steel_plate'
}).id('tfg:shaped/redblu_steel_hull_reinforcement');
event.recipes.gtceu.assembler('tfg:assembler/redblu_steel_hull_reinforcement')
.itemInputs('immersive_aircraft:hull', '2x gtceu:red_steel_plate', '2x gtceu:blue_steel_plate')
.itemOutputs('tfg:redblu_steel_hull_reinforcement')
.duration(5 * 20)
.EUt(GTValues.VA[GTValues.LV])
generateRecyclingRecipe('tfg:recycling/redblu_steel_hull_reinforcement',
createRecyclingRecipeArgs('tfg:redblu_steel_hull_reinforcement', [
GTMaterials.BlueSteel,
@@ -544,6 +621,12 @@ function registerImmersiveAircraftRecipes(event) {
D: '#forge:tools/wrenches'
}).id('tfg:shaped/aluminium_hull_reinforcement');
event.recipes.gtceu.assembler('tfg:assembler/aluminium_hull_reinforcement')
.itemInputs('immersive_aircraft:hull', '4x vintageimprovements:aluminum_sheet')
.itemOutputs('tfg:aluminium_hull_reinforcement')
.duration(5 * 20)
.EUt(GTValues.VA[GTValues.LV])
generateRecyclingRecipe('tfg:recycling/aluminium_hull_reinforcement',
createRecyclingRecipeArgs('tfg:aluminium_hull_reinforcement', [
GTMaterials.Aluminium,
@@ -565,6 +648,12 @@ function registerImmersiveAircraftRecipes(event) {
D: '#forge:tools/wrenches'
}).id('tfg:shaped/stainless_steel_hull_reinforcement');
event.recipes.gtceu.assembler('tfg:assembler/stainless_steel_hull_reinforcement')
.itemInputs('immersive_aircraft:hull', '4x gtceu:stainless_steel_plate')
.itemOutputs('tfg:stainless_steel_hull_reinforcement')
.duration(5 * 20)
.EUt(GTValues.VA[GTValues.LV])
generateRecyclingRecipe('tfg:recycling/stainless_steel_hull_reinforcement',
createRecyclingRecipeArgs('tfg:stainless_steel_hull_reinforcement', [
GTMaterials.StainlessSteel,
@@ -586,6 +675,12 @@ function registerImmersiveAircraftRecipes(event) {
D: '#forge:tools/wrenches'
}).id('tfg:shaped/titanium_hull_reinforcement');
event.recipes.gtceu.assembler('tfg:assembler/titanium_hull_reinforcement')
.itemInputs('immersive_aircraft:hull', '4x gtceu:titanium_plate')
.itemOutputs('tfg:titanium_hull_reinforcement')
.duration(5 * 20)
.EUt(GTValues.VA[GTValues.LV])
generateRecyclingRecipe('tfg:recycling/titanium_hull_reinforcement',
createRecyclingRecipeArgs('tfg:titanium_hull_reinforcement', [
GTMaterials.Titanium,
@@ -604,11 +699,17 @@ function registerImmersiveAircraftRecipes(event) {
A: '#forge:tools/wrenches',
B: 'gtceu:black_steel_plate',
C: 'gtceu:black_steel_rod',
D: 'gtceu:rubber_plate',
D: '#tfg:rubber_plates',
E: 'gtceu:small_brass_gear',
F: '#forge:tools/screwdrivers'
}).id('tfg:immersive_aircraft/shaped/improved_landing_gear');
event.recipes.gtceu.assembler('tfg:immersive_aircraft/assembler/improved_landing_gear')
.itemInputs('3x #tfg:rubber_plates', 'gtceu:small_brass_gear', '2x gtceu:black_steel_plate', 'gtceu:black_steel_rod')
.itemOutputs('immersive_aircraft:improved_landing_gear')
.duration(5 * 20)
.EUt(GTValues.VA[GTValues.LV])
generateRecyclingRecipe('immersive_aircraft:recycling/improved_landing_gear',
createRecyclingRecipeArgs('immersive_aircraft:improved_landing_gear', [
GTMaterials.BlackSteel,
@@ -627,11 +728,17 @@ function registerImmersiveAircraftRecipes(event) {
A: '#forge:tools/wrenches',
B: 'gtceu:red_steel_plate',
C: 'gtceu:blue_steel_rod',
D: 'gtceu:rubber_plate',
D: '#tfg:rubber_plates',
E: 'gtceu:small_brass_gear',
F: '#forge:tools/screwdrivers'
}).id('tfg:shaped/redblu_steel_landing_gear')
event.recipes.gtceu.assembler('tfg:assembler/redblu_steel_landing_gear')
.itemInputs('3x #tfg:rubber_plates', 'gtceu:small_brass_gear', '2x gtceu:red_steel_plate', 'gtceu:blue_steel_rod')
.itemOutputs('tfg:redblu_steel_landing_gear')
.duration(5 * 20)
.EUt(GTValues.VA[GTValues.LV])
generateRecyclingRecipe('tfg:recycling/redblu_steel_landing_gear',
createRecyclingRecipeArgs('tfg:redblu_steel_landing_gear', [
GTMaterials.RedSteel,
@@ -652,11 +759,17 @@ function registerImmersiveAircraftRecipes(event) {
A: '#forge:tools/wrenches',
B: 'vintageimprovements:aluminum_sheet',
C: 'gtceu:aluminium_rod',
D: 'gtceu:rubber_plate',
D: '#tfg:rubber_plates',
E: 'gtceu:cobalt_brass_gear',
F: '#forge:tools/screwdrivers'
}).id('tfg:shaped/aluminium_landing_gear')
event.recipes.gtceu.assembler('tfg:assembler/aluminium_landing_gear')
.itemInputs('3x #tfg:rubber_plates', 'gtceu:cobalt_brass_gear', '2x vintageimprovements:aluminum_sheet', 'gtceu:aluminium_rod')
.itemOutputs('tfg:aluminium_landing_gear')
.duration(5 * 20)
.EUt(GTValues.VA[GTValues.LV])
generateRecyclingRecipe('tfg:recycling/aluminium_landing_gear',
createRecyclingRecipeArgs('tfg:aluminium_landing_gear', [
GTMaterials.Aluminium,
@@ -675,11 +788,16 @@ function registerImmersiveAircraftRecipes(event) {
A: '#forge:tools/wrenches',
B: 'gtceu:stainless_steel_plate',
C: 'gtceu:stainless_steel_rod',
D: 'gtceu:rubber_plate',
D: '#tfg:rubber_plates',
E: 'gtceu:cobalt_brass_gear',
F: '#forge:tools/screwdrivers'
}).id('tfg:shaped/stainless_steel_landing_gear');
event.recipes.gtceu.assembler('tfg:assembler/stainless_steel_landing_gear')
.itemInputs('3x #tfg:rubber_plates', 'gtceu:cobalt_brass_gear', '2x gtceu:stainless_steel_plate', 'gtceu:stainless_steel_rod')
.itemOutputs('tfg:stainless_steel_landing_gear')
.duration(5 * 20)
.EUt(GTValues.VA[GTValues.LV])
generateRecyclingRecipe('tfg:recycling/stainless_steel_landing_gear',
createRecyclingRecipeArgs('tfg:stainless_steel_landing_gear', [
@@ -699,11 +817,17 @@ function registerImmersiveAircraftRecipes(event) {
A: '#forge:tools/wrenches',
B: 'gtceu:titanium_plate',
C: 'gtceu:titanium_rod',
D: 'gtceu:rubber_plate',
D: '#tfg:rubber_plates',
E: 'gtceu:cobalt_brass_gear',
F: '#forge:tools/screwdrivers'
}).id('tfg:shaped/titanium_landing_gear');
event.recipes.gtceu.assembler('tfg:assembler/titanium_landing_gear')
.itemInputs('3x #tfg:rubber_plates', 'gtceu:cobalt_brass_gear', '2x gtceu:titanium_plate', 'gtceu:titanium_rod')
.itemOutputs('tfg:titanium_landing_gear')
.duration(5 * 20)
.EUt(GTValues.VA[GTValues.LV])
generateRecyclingRecipe('tfg:recycling/titanium_landing_gear',
createRecyclingRecipeArgs('tfg:titanium_landing_gear', [
GTMaterials.Titanium,
@@ -756,6 +880,12 @@ function registerImmersiveAircraftRecipes(event) {
F: '#forge:tools/screwdrivers'
}).id('tfg:immersive_aircraft/shaped/cargo_airship')
event.recipes.gtceu.assembler('tfg:immersive_aircraft/assembler/cargo_airship')
.itemInputs('immersive_aircraft:airship', '2x immersive_aircraft:engine', '2x gtceu:wood_crate', '2x #forge:rotors')
.itemOutputs('immersive_aircraft:cargo_airship')
.duration(10 * 20)
.EUt(GTValues.VA[GTValues.LV])
//WAAGH!
event.recipes.create.mechanical_crafting('immersive_aircraft:warship', [
'ABCC ',
@@ -765,8 +895,8 @@ function registerImmersiveAircraftRecipes(event) {
' EEEF',
' DDD '
], {
A: 'immersive_aircraft:enhanced_propeller',
B: 'immersive_aircraft:steel_boiler',
A: 'tfg:redblu_steel_plated_airplane_propeller',
B: 'tfg:lv_aircraft_engine',
C: 'tfg:airship_balloon',
D: 'gtceu:wrought_iron_plate',
E: 'immersive_aircraft:hull',
@@ -784,8 +914,8 @@ function registerImmersiveAircraftRecipes(event) {
' B ',
' G ',
], {
A: 'immersive_aircraft:enhanced_propeller',
B: 'gtceu:long_wood_rod',
A: 'tfg:redblu_steel_plated_airplane_propeller',
B: 'gtceu:long_treated_wood_rod',
C: 'immersive_aircraft:sail',
D: 'immersive_aircraft:hull',
E: '#create:seats',
@@ -805,18 +935,18 @@ function registerImmersiveAircraftRecipes(event) {
], {
A: 'immersive_aircraft:sail',
B: 'gtceu:blue_steel_plate',
C: '#tfg:metal_bars',
C: 'tfg:black_steel_plated_airplane_propeller',
D: 'gtceu:long_treated_wood_rod',
E: '#create:seats',
F: 'gtceu:black_steel_rotor',
G: 'greate:rubber_belt_connector',
H: 'create:steam_engine'
H: 'immersive_aircraft:steel_boiler'
}).id('tfg:man_of_many_planes/mechanical_crafter/economy_plane');
event.recipes.create.mechanical_crafting('immersive_aircraft:biplane', [
' A ',
'BBBCBBB',
' BDB ',
'BFBCBFB',
' FDF ',
' BBB ',
' B ',
' E ',
@@ -825,9 +955,10 @@ function registerImmersiveAircraftRecipes(event) {
], {
A: 'immersive_aircraft:enhanced_propeller',
B: 'immersive_aircraft:hull',
C: 'immersive_aircraft:steel_boiler',
C: 'tfg:lv_aircraft_engine',
D: 'man_of_many_planes:economy_plane',
E: '#minecraft:logs'
E: 'gtceu:treated_wood_plate',
F: 'gtceu:treated_wood_frame'
}).id('tfg:immersive_aircraft/mechanical_crafter/biplane')
event.recipes.create.mechanical_crafting('man_of_many_planes:scarlet_biplane', [
@@ -840,32 +971,33 @@ function registerImmersiveAircraftRecipes(event) {
' CHC ',
' C '
], {
A: 'immersive_aircraft:enhanced_propeller',
A: 'tfg:stainless_steel_plated_airplane_propeller',
B: 'immersive_aircraft:nether_engine',
C: 'immersive_aircraft:hull',
D: 'gtceu:red_steel_plate',
E: 'immersive_aircraft:biplane',
F: 'gtceu:black_steel_rod',
F: 'gtceu:black_steel_frame',
G: '#create:seats',
H: 'tfc:metal/ingot/red_steel'
}).id('tfg:man_of_many_planes/mechanical_crafter/scarlet_biplane')
event.recipes.create.mechanical_crafting('immersive_aircraft:bamboo_hopper', [
' A A ',
'BBCBBBCBB',
'BBCHBHCBB',
' DEFED ',
' DGGGD ',
' D D ',
' BBBGBBB ',
' BHBGBHB ',
' B B '
], {
A: 'immersive_aircraft:enhanced_propeller',
A: 'tfg:stainless_steel_plated_airplane_propeller',
B: 'immersive_aircraft:hull',
C: 'immersive_aircraft:steel_boiler',
C: 'immersive_aircraft:nether_engine',
D: 'gtceu:long_aluminium_rod',
E: '#create:seats',
F: 'immersive_aircraft:biplane',
G: 'gtceu:double_aluminium_plate'
G: 'gtceu:double_aluminium_plate',
H: 'gtceu:aluminium_frame'
}).id('tfg:immersive_aircraft/mechanical_crafter/bamboo_hopper')
//#endregion

View File

@@ -35,7 +35,7 @@ function registerPrimitiveCreaturesLoots(event) {
Item.of('tfc:food/strawberry', 4),
Item.of('tfc:food/wintergreen_berry', 5)])
.addAlternativesLoot(
LootEntry.of('gtceu:arsenic_bronze_hoe').damage([0.2, 0.5]).when(c => c.randomChance(0.1)),
LootEntry.of('tfg:arsenic_bronze_hoe').damage([0.2, 0.5]).when(c => c.randomChance(0.1)),
LootEntry.of('sns:straw_basket').when(c => c.randomChance(0.3)),
LootEntry.of('primitive_creatures:totem_0').when(c => c.randomChance(0.05)),
LootEntry.of('primitive_creatures:totem_3').when(c => c.randomChance(0.05)),
@@ -54,7 +54,7 @@ function registerPrimitiveCreaturesLoots(event) {
.addWeightedLoot([2, 3], ['tfg:food/raw_long_pig_filet'])
.addWeightedLoot([3, 4], ['gtceu:tricalcium_phosphate_dust'])
.addAlternativesLoot(
LootEntry.of('gtceu:arsenic_bronze_knife').damage([0.2, 0.5]).when(c => c.randomChance(0.3)),
LootEntry.of('tfg:arsenic_bronze_knife').damage([0.2, 0.5]).when(c => c.randomChance(0.3)),
LootEntry.of('primitive_creatures:totem_0').when(c => c.randomChance(0.05)),
LootEntry.of('primitive_creatures:totem_3').when(c => c.randomChance(0.05)),
LootEntry.of('firmalife:beeswax'))
@@ -73,7 +73,7 @@ function registerPrimitiveCreaturesLoots(event) {
.addWeightedLoot([0, 2], ['minecraft:flint'])
.addWeightedLoot([1, 3], ['minecraft:bone'])
.addAlternativesLoot(
LootEntry.of('gtceu:arsenic_bronze_shovel').damage([0.2, 0.5]).when(c => c.randomChance(0.5)),
LootEntry.of('tfg:arsenic_bronze_shovel').damage([0.2, 0.5]).when(c => c.randomChance(0.5)),
LootEntry.of('minecraft:skeleton_skull').when(c => c.randomChance(0.3)),
LootEntry.of('primitive_creatures:grh')) // battered wool
event.addEntityLootModifier('primitive_creatures:iloger_3')
@@ -129,7 +129,7 @@ function registerPrimitiveCreaturesLoots(event) {
.addWeightedLoot([1, 2], ['primitive_creatures:f_1']) // primitive explosives
.addWeightedLoot([2, 4], ['minecraft:gunpowder'])
.addAlternativesLoot(
LootEntry.of('gtceu:arsenic_bronze_hoe').damage([0.2, 0.5]).when(c => c.randomChance(0.3)),
LootEntry.of('tfg:arsenic_bronze_hoe').damage([0.2, 0.5]).when(c => c.randomChance(0.3)),
LootEntry.of('primitive_creatures:totem_2').when(c => c.randomChance(0.05)),
LootEntry.of('primitive_creatures:totem_3').when(c => c.randomChance(0.05)),
LootEntry.of('primitive_creatures:grh')) // battered wool
@@ -147,7 +147,7 @@ function registerPrimitiveCreaturesLoots(event) {
.addWeightedLoot([2, 3], ['tfg:food/raw_long_pig_filet'])
.addWeightedLoot([0, 2], ['primitive_creatures:grh']) // battered wool
.addAlternativesLoot(
LootEntry.of('gtceu:arsenic_bronze_butchery_knife').damage([0.2, 0.5]).when(c => c.randomChance(0.3)),
LootEntry.of('tfg:arsenic_bronze_butchery_knife').damage([0.2, 0.5]).when(c => c.randomChance(0.3)),
LootEntry.of('primitive_creatures:totem_0').when(c => c.randomChance(0.05)),
LootEntry.of('primitive_creatures:totem_3').when(c => c.randomChance(0.05)),
LootEntry.of('minecraft:lead'))
@@ -181,7 +181,7 @@ function registerPrimitiveCreaturesLoots(event) {
.addWeightedLoot([2, 3], ['tfg:food/raw_long_pig_filet'])
.addWeightedLoot([2, 4], ['minecraft:emerald'])
.addAlternativesLoot(
LootEntry.of('gtceu:arsenic_bronze_knife').damage([0.2, 0.5]).when(c => c.randomChance(0.3)),
LootEntry.of('tfg:arsenic_bronze_knife').damage([0.2, 0.5]).when(c => c.randomChance(0.3)),
LootEntry.of('primitive_creatures:totem_2').when(c => c.randomChance(0.05)),
LootEntry.of('primitive_creatures:totem_3').when(c => c.randomChance(0.05)),
LootEntry.of('primitive_creatures:grh')) // battered wool)
@@ -198,10 +198,10 @@ function registerPrimitiveCreaturesLoots(event) {
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([2, 3], ['tfg:food/raw_long_pig_filet'])
.addWeightedLoot([
Item.of('gtceu:arsenic_bronze_spade', '{Damage:0,DisallowContainerItem:0b,GT.Behaviours:{AoEColumn:1,AoELayer:0,AoERow:1,MaxAoEColumn:1,MaxAoELayer:0,MaxAoERow:1},GT.Tool:{AttackDamage:3.5f,AttackSpeed:-3.4f,DefaultEnchantments:[],HarvestLevel:2,MaxDamage:18431,ToolSpeed:5.0f},HideFlags:2}'),
Item.of('gtceu:arsenic_bronze_scythe', '{Damage:0,DisallowContainerItem:0b,GT.Behaviours:{AoEColumn:2,AoELayer:2,AoERow:2,MaxAoEColumn:2,MaxAoELayer:2,MaxAoERow:2},GT.Tool:{AttackDamage:7.0f,AttackSpeed:-3.2f,DefaultEnchantments:[],HarvestLevel:2,MaxDamage:18431,ToolSpeed:6.5f},HideFlags:2}'),
Item.of('gtceu:arsenic_bronze_mining_hammer', '{Damage:0,DisallowContainerItem:0b,GT.Behaviours:{AoEColumn:1,AoELayer:0,AoERow:1,MaxAoEColumn:1,MaxAoELayer:0,MaxAoERow:1,TorchPlacing:1b},GT.Tool:{AttackDamage:3.5f,AttackSpeed:-3.4f,DefaultEnchantments:[],HarvestLevel:2,MaxDamage:18431,ToolSpeed:5.0f},HideFlags:2}'),
Item.of('gtceu:arsenic_bronze_sword')])
Item.of('tfg:arsenic_bronze_spade', '{Damage:0,DisallowContainerItem:0b,GT.Behaviours:{AoEColumn:1,AoELayer:0,AoERow:1,MaxAoEColumn:1,MaxAoELayer:0,MaxAoERow:1},GT.Tool:{AttackDamage:3.5f,AttackSpeed:-3.4f,DefaultEnchantments:[],HarvestLevel:2,MaxDamage:18431,ToolSpeed:5.0f},HideFlags:2}'),
Item.of('tfg:arsenic_bronze_scythe', '{Damage:0,DisallowContainerItem:0b,GT.Behaviours:{AoEColumn:2,AoELayer:2,AoERow:2,MaxAoEColumn:2,MaxAoELayer:2,MaxAoERow:2},GT.Tool:{AttackDamage:7.0f,AttackSpeed:-3.2f,DefaultEnchantments:[],HarvestLevel:2,MaxDamage:18431,ToolSpeed:6.5f},HideFlags:2}'),
Item.of('tfg:arsenic_bronze_mining_hammer', '{Damage:0,DisallowContainerItem:0b,GT.Behaviours:{AoEColumn:1,AoELayer:0,AoERow:1,MaxAoEColumn:1,MaxAoELayer:0,MaxAoERow:1,TorchPlacing:1b},GT.Tool:{AttackDamage:3.5f,AttackSpeed:-3.4f,DefaultEnchantments:[],HarvestLevel:2,MaxDamage:18431,ToolSpeed:5.0f},HideFlags:2}'),
Item.of('tfg:arsenic_bronze_sword')])
event.addEntityLootModifier('primitive_creatures:nahida')
.addWeightedLoot([
Item.of('sns:leather_sack'),
@@ -224,8 +224,8 @@ function registerPrimitiveCreaturesLoots(event) {
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([2, 3], ['tfg:food/raw_long_pig_filet'])
.addWeightedLoot([
Item.of('gtceu:arsenic_bronze_sword'),
Item.of('gtceu:arsenic_bronze_axe', '{Damage:0,DisallowContainerItem:0b,GT.Behaviours:{DisableShields:1b,TreeFelling:1b},GT.Tool:{AttackDamage:7.0f,AttackSpeed:-3.4f,DefaultEnchantments:[],HarvestLevel:2,MaxDamage:6143,ToolSpeed:4.5f},HideFlags:2}'),
Item.of('tfg:arsenic_bronze_sword'),
Item.of('tfg:arsenic_bronze_axe', '{Damage:0,DisallowContainerItem:0b,GT.Behaviours:{DisableShields:1b,TreeFelling:1b},GT.Tool:{AttackDamage:7.0f,AttackSpeed:-3.4f,DefaultEnchantments:[],HarvestLevel:2,MaxDamage:6143,ToolSpeed:4.5f},HideFlags:2}'),
LootEntry.of('sns:burlap_sack'),
LootEntry.of('sns:seed_pouch'),
LootEntry.of('sns:ore_sack')])

View File

@@ -51,29 +51,98 @@ const registerRailWaysRecipes = (event) => {
.addMaterialInfo(true)
//#region Couplers and Buffers
event.recipes.gtceu.assembler(`tfg:railways/screwlink_coupler`)
.itemInputs(`minecraft:tripwire_hook`, `#forge:plates/steel`, '#forge:screws/steel')
const SNR_BASE_COUPLERS = [
'link_and_pin',
'link_and_pin_linkless',
'knuckle_coupler',
'split_knuckle_coupler',
'screwlink_coupler'
]
event.shapeless('railways:link_and_pin', [
'minecraft:tripwire_hook',
'#forge:plates/steel',
'#forge:screws/steel',
'#forge:tools/hammers'
]).id('railways:shapeless/link_and_pin')
event.stonecutting(`railways:wooden_headstock`, '#minecraft:wooden_slabs');
event.stonecutting(`4x railways:copycat_headstock`, '#forge:ingots/zinc');
SNR_BASE_COUPLERS.forEach((coupler, i) => {
event.stonecutting(`#railways:deco_couplers`, `railways:${coupler}`);
event.recipes.gtceu.assembler(`tfg:railways/${coupler}`)
.itemInputs(`minecraft:tripwire_hook`, `#forge:plates/steel`, '#forge:screws/steel')
.circuit(i + 1)
.itemOutputs(`railways:${coupler}`)
.duration(200)
.EUt(28)
.addMaterialInfo(true)
event.shapeless(`railways:wooden_headstock_${coupler}`, [
`railways:${coupler}`,
`railways:wooden_headstock`
]).id(`railways:shapeless/wooden_headstock_${coupler}`)
event.recipes.gtceu.assembler(`tfg:railways/wooden_headstock_${coupler}`)
.itemInputs(`railways:${coupler}`, `railways:wooden_headstock`)
.itemOutputs(`railways:wooden_headstock_${coupler}`)
.duration(200)
.EUt(28)
.addMaterialInfo(true)
event.shapeless(`railways:copycat_headstock_${coupler}`, [
`railways:${coupler}`,
`railways:copycat_headstock`
]).id(`railways:shapeless/copycat_headstock_${coupler}`)
event.recipes.gtceu.assembler(`tfg:railways/copycat_headstock_${coupler}`)
.itemInputs(`railways:${coupler}`, `railways:copycat_headstock`)
.itemOutputs(`railways:copycat_headstock_${coupler}`)
.duration(200)
.EUt(28)
.addMaterialInfo(true)
})
event.shapeless(`railways:small_buffer`, [
`#railways:deco_couplers`,
`#forge:ingots/steel`,
`#forge:tools/hammers`
]).id(`railways:shapeless/small_buffer`)
event.recipes.gtceu.assembler(`tfg:railways/small_buffer`)
.itemInputs(`#railways:deco_couplers`, `#forge:ingots/steel`)
.circuit(1)
.itemOutputs(`railways:screwlink_coupler`)
.itemOutputs(`railways:small_buffer`)
.duration(200)
.EUt(28)
.addMaterialInfo(true)
event.recipes.gtceu.assembler(`tfg:railways/copycat_headstock_screwlink_coupler`)
.itemInputs(`railways:screwlink_coupler`, `create:copycat_panel`)
event.shapeless(`railways:big_buffer`, [
`railways:small_buffer`,
`#forge:ingots/steel`,
`#forge:tools/hammers`
]).id(`railways:shapeless/big_buffer`)
event.recipes.gtceu.assembler(`tfg:railways/big_buffer`)
.itemInputs(`railways:small_buffer`, `#forge:ingots/steel`)
.circuit(1)
.itemOutputs(`railways:copycat_headstock_screwlink_coupler`)
.itemOutputs(`railways:big_buffer`)
.duration(200)
.EUt(28)
.addMaterialInfo(true)
event.recipes.gtceu.assembler(`tfg:railways/wooden_headstock_screwlink_coupler`)
.itemInputs(`railways:screwlink_coupler`, `#minecraft:wooden_slabs`)
.circuit(1)
.itemOutputs(`railways:wooden_headstock_screwlink_coupler`)
.duration(200)
.EUt(28)
.addMaterialInfo(true)
event.shaped('railways:buffer', [
'BAB',
'AAA',
'ACA'
], {
A: '#forge:rods/long/steel',
B: 'railways:small_buffer',
C: '#forge:tools/hammers'
}).id('railways:shaped/buffer')
event.recipes.gtceu.assembler(`tfg:railways/buffer`)
.itemInputs(`6x #forge:rods/long/steel`, `2x railways:small_buffer`)
@@ -83,18 +152,26 @@ const registerRailWaysRecipes = (event) => {
.EUt(28)
.addMaterialInfo(true)
event.recipes.gtceu.assembler(`tfg:railways/small_buffer`)
.itemInputs(`railways:screwlink_coupler`, `#forge:ingots/steel`)
.circuit(1)
.itemOutputs(`railways:small_buffer`)
event.shapeless(`railways:wooden_headstock_buffer`, [
`railways:small_buffer`,
`railways:wooden_headstock`
]).id(`railways:shapeless/wooden_headstock_buffer`)
event.recipes.gtceu.assembler(`tfg:railways/wooden_headstock_buffer`)
.itemInputs(`railways:small_buffer`, `railways:wooden_headstock`)
.itemOutputs(`railways:wooden_headstock_buffer`)
.duration(200)
.EUt(28)
.addMaterialInfo(true)
event.recipes.gtceu.assembler(`tfg:railways/big_buffer`)
.itemInputs(`railways:small_buffer`, `#forge:ingots/steel`)
.circuit(1)
.itemOutputs(`railways:big_buffer`)
event.shapeless(`railways:copycat_headstock_buffer`, [
`railways:small_buffer`,
`railways:copycat_headstock`
]).id(`railways:shapeless/copycat_headstock_buffer`)
event.recipes.gtceu.assembler(`tfg:railways/copycat_headstock_buffer`)
.itemInputs(`railways:small_buffer`, `railways:copycat_headstock`)
.itemOutputs(`railways:copycat_headstock_buffer`)
.duration(200)
.EUt(28)
.addMaterialInfo(true)
@@ -255,7 +332,10 @@ const registerRailWaysRecipes = (event) => {
.duration(200)
.EUt(28)
// Дымогенератор 1
//#region Smokestacks
event.shaped('railways:smokestack_caboosestyle', [
'BCB',
'DA '
@@ -273,95 +353,6 @@ const registerRailWaysRecipes = (event) => {
.duration(200)
.EUt(28)
// Дымогенератор 2
event.shaped('railways:smokestack_long', [
'C ',
'BAB'
], {
A: '#forge:storage_blocks/charcoal',
B: '#forge:bolts/iron',
C: '#forge:tools/hammers'
}).id('tfg:railways/shaped/smokestack_long')
event.recipes.gtceu.assembler('tfg:railways/smokestack_long')
.itemInputs('#forge:storage_blocks/charcoal', '2x #forge:bolts/iron')
.circuit(5)
.itemOutputs('railways:smokestack_long')
.duration(200)
.EUt(28)
// Дымогенератор 3
event.shaped('railways:smokestack_coalburner', [
'B B',
'BCB',
'BAB'
], {
A: '#forge:storage_blocks/charcoal',
B: '#forge:plates/iron',
C: '#forge:tools/hammers'
}).id('tfg:railways/shaped/smokestack_coalburner')
event.recipes.gtceu.assembler('tfg:railways/smokestack_coalburner')
.itemInputs('#forge:storage_blocks/charcoal', '6x #forge:plates/iron')
.circuit(6)
.itemOutputs('railways:smokestack_coalburner')
.duration(200)
.EUt(28)
// Дымогенератор 4
event.shaped('railways:smokestack_oilburner', [
'BCB',
'BAB'
], {
A: '#forge:storage_blocks/charcoal',
B: '#forge:plates/iron',
C: '#forge:tools/hammers'
}).id('tfg:railways/shaped/smokestack_oilburner')
event.recipes.gtceu.assembler('tfg:railways/smokestack_oilburner')
.itemInputs('#forge:storage_blocks/charcoal', '4x #forge:plates/iron')
.circuit(7)
.itemOutputs('railways:smokestack_oilburner')
.duration(200)
.EUt(28)
// Дымогенератор 5
event.shaped('railways:smokestack_streamlined', [
'C ',
'BAB'
], {
A: '#forge:storage_blocks/charcoal',
B: '#forge:plates/iron',
C: '#forge:tools/hammers'
}).id('tfg:railways/shaped/smokestack_streamlined')
event.recipes.gtceu.assembler('tfg:railways/smokestack_streamlined')
.itemInputs('#forge:storage_blocks/charcoal', '2x #forge:plates/iron')
.circuit(8)
.itemOutputs('railways:smokestack_streamlined')
.duration(200)
.EUt(28)
// Дымогенератор 6
event.shaped('railways:smokestack_woodburner', [
' D ',
'CBC',
'BAB'
], {
A: '#forge:storage_blocks/charcoal',
B: '#forge:plates/iron',
C: '#forge:bolts/iron',
D: '#forge:tools/hammers'
}).id('tfg:railways/shaped/smokestack_woodburner')
event.recipes.gtceu.assembler('tfg:railways/smokestack_woodburner')
.itemInputs('#forge:storage_blocks/charcoal', '3x #forge:plates/iron', '2x #forge:bolts/iron')
.circuit(9)
.itemOutputs('railways:smokestack_woodburner')
.duration(200)
.EUt(28)
// Вентилятор радиатора
event.shaped('2x railways:smokestack_diesel', [
'ABA',
'BCB',
@@ -372,6 +363,145 @@ const registerRailWaysRecipes = (event) => {
C: '#forge:rotors/iron',
}).id('tfg:railways/shaped/smokestack_diesel')
const SNR_SMOKESTACK_TYPES = [
'woodburner',
'long',
'coalburner',
'oilburner',
'streamlined'
]
const SNR_SMOKESTACK_MATERIALS = [
{ craft_mat: 'iron', base_mat: '', capped_mat: '_steel' },
{ craft_mat: 'brass', base_mat: '_brass', capped_mat: '_brass' },
{ craft_mat: 'copper', base_mat: '_copper', capped_mat: '_copper' }
]
SNR_SMOKESTACK_MATERIALS.forEach(mat => {
event.shaped(`railways:smokestack_long${mat.base_mat}`, [
'C ',
'BAB'
], {
A: '#forge:storage_blocks/charcoal',
B: `#forge:bolts/${mat.craft_mat}`,
C: '#forge:tools/hammers'
}).id(`tfg:railways/shaped/smokestack_long${mat.base_mat}`)
event.recipes.gtceu.assembler(`tfg:railways/smokestack_long${mat.base_mat}`)
.itemInputs('#forge:storage_blocks/charcoal', `2x #forge:bolts/${mat.craft_mat}`)
.circuit(5)
.itemOutputs(`railways:smokestack_long${mat.base_mat}`)
.duration(200)
.EUt(28)
event.shaped(`railways:smokestack_coalburner${mat.base_mat}`, [
'B B',
'BCB',
'BAB'
], {
A: '#forge:storage_blocks/charcoal',
B: `#forge:plates/${mat.craft_mat}`,
C: '#forge:tools/hammers'
}).id(`tfg:railways/shaped/smokestack_coalburner${mat.base_mat}`)
event.recipes.gtceu.assembler(`tfg:railways/smokestack_coalburner${mat.base_mat}`)
.itemInputs('#forge:storage_blocks/charcoal', `6x #forge:plates/${mat.craft_mat}`)
.circuit(6)
.itemOutputs(`railways:smokestack_coalburner${mat.base_mat}`)
.duration(200)
.EUt(28)
event.shaped(`railways:smokestack_oilburner${mat.base_mat}`, [
'BCB',
'BAB'
], {
A: '#forge:storage_blocks/charcoal',
B: `#forge:plates/${mat.craft_mat}`,
C: '#forge:tools/hammers'
}).id(`tfg:railways/shaped/smokestack_oilburner${mat.base_mat}`)
event.recipes.gtceu.assembler(`tfg:railways/smokestack_oilburner${mat.base_mat}`)
.itemInputs('#forge:storage_blocks/charcoal', `4x #forge:plates/${mat.craft_mat}`)
.circuit(7)
.itemOutputs(`railways:smokestack_oilburner${mat.base_mat}`)
.duration(200)
.EUt(28)
event.shaped(`railways:smokestack_streamlined${mat.base_mat}`, [
'C ',
'BAB'
], {
A: '#forge:storage_blocks/charcoal',
B: `#forge:plates/${mat.craft_mat}`,
C: '#forge:tools/hammers'
}).id(`tfg:railways/shaped/smokestack_streamlined${mat.base_mat}`)
event.recipes.gtceu.assembler(`tfg:railways/smokestack_streamlined${mat.base_mat}`)
.itemInputs('#forge:storage_blocks/charcoal', `2x #forge:plates/${mat.craft_mat}`)
.circuit(8)
.itemOutputs(`railways:smokestack_streamlined${mat.base_mat}`)
.duration(200)
.EUt(28)
event.shaped(`railways:smokestack_woodburner${mat.base_mat}`, [
' D ',
'CBC',
'BAB'
], {
A: '#forge:storage_blocks/charcoal',
B: `#forge:plates/${mat.craft_mat}`,
C: `#forge:bolts/${mat.craft_mat}`,
D: '#forge:tools/hammers'
}).id(`tfg:railways/shaped/smokestack_woodburner${mat.base_mat}`)
event.recipes.gtceu.assembler(`tfg:railways/smokestack_woodburner${mat.base_mat}`)
.itemInputs('#forge:storage_blocks/charcoal', `3x #forge:plates/${mat.craft_mat}`, `2x #forge:bolts/${mat.craft_mat}`)
.circuit(9)
.itemOutputs(`railways:smokestack_woodburner${mat.base_mat}`)
.duration(200)
.EUt(28)
SNR_SMOKESTACK_TYPES.forEach(type => {
if(mat.craft_mat != 'brass') {
event.recipes.createItemApplication([`railways:smokestack_${type}_brass_cap${mat.capped_mat}`], [`railways:smokestack_${type}${mat.base_mat}`, '#forge:bolts/brass'])
.id(`tfg:railways/item_application/smokestack_${type}_brass_cap${mat.capped_mat}`)
event.recipes.gtceu.chemical_bath(`railways:smokestack_${type}_brass_cap${mat.capped_mat}`)
.itemInputs(`railways:smokestack_${type}${mat.base_mat}`)
.inputFluids('gtceu:brass 18')
.itemOutputs(`railways:smokestack_${type}_brass_cap${mat.capped_mat}`)
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES)
}
if(mat.craft_mat != 'copper') {
event.recipes.createItemApplication([`railways:smokestack_${type}_copper_cap${mat.capped_mat}`], [`railways:smokestack_${type}${mat.base_mat}`, '#forge:bolts/copper'])
.id(`tfg:railways/item_application/smokestack_${type}_copper_cap${mat.capped_mat}`)
event.recipes.gtceu.chemical_bath(`railways:smokestack_${type}_copper_cap${mat.capped_mat}`)
.itemInputs(`railways:smokestack_${type}${mat.base_mat}`)
.inputFluids('gtceu:copper 18')
.itemOutputs(`railways:smokestack_${type}_copper_cap${mat.capped_mat}`)
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES)
}
event.recipes.createItemApplication([`railways:smokestack_${type}_iron_cap${mat.capped_mat}`], [`railways:smokestack_${type}${mat.base_mat}`, '#forge:bolts/wrought_iron'])
.id(`tfg:railways/item_application/smokestack_${type}_iron_cap${mat.capped_mat}`)
event.recipes.gtceu.chemical_bath(`railways:smokestack_${type}_iron_cap${mat.capped_mat}`)
.itemInputs(`railways:smokestack_${type}${mat.base_mat}`)
.inputFluids('gtceu:wrought_iron 18')
.itemOutputs(`railways:smokestack_${type}_iron_cap${mat.capped_mat}`)
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES)
})
})
//#endregion
// Монорельс
event.recipes.createSequencedAssembly([
'8x railways:track_monorail',

View File

@@ -1,62 +1,191 @@
"use strict";
const locometalDyeGroups = {
slashed_locometal: '#railways:palettes/dye_groups/slashed',
riveted_locometal: '#railways:palettes/dye_groups/riveted',
locometal_pillar: '#railways:palettes/dye_groups/pillar',
locometal_smokebox: '#railways:palettes/dye_groups/smokebox',
plated_locometal: '#railways:palettes/dye_groups/plated',
flat_slashed_locometal: '#railways:palettes/dye_groups/flat_slashed',
flat_riveted_locometal: '#railways:palettes/dye_groups/flat_riveted'
}
const LOCOMETAL_BASE = [
{ id: 'slashed_locometal', dye_group: '#railways:palettes/dye_groups/slashed' },
{ id: 'riveted_locometal', dye_group: '#railways:palettes/dye_groups/riveted' },
{ id: 'locometal_vent', dye_group: '#railways:palettes/dye_groups/vent' },
{ id: 'flat_slashed_locometal', dye_group: '#railways:palettes/dye_groups/flat_riveted' },
{ id: 'flat_riveted_locometal', dye_group: '#railways:palettes/dye_groups/flat_slashed' },
{ id: 'plated_locometal', dye_group: '#railways:palettes/dye_groups/plated' },
{ id: 'locometal_pillar', dye_group: '#railways:palettes/dye_groups/pillar' },
{ id: 'locometal_smokebox', dye_group: '#railways:palettes/dye_groups/smokebox' },
{ id: 'hazard_stripes_diagonal_on_black', dye_group: '#railways:palettes/dye_groups/hazard_stripes_diagonal_black' },
{ id: 'hazard_stripes_chevron_on_black', dye_group: '#railways:palettes/dye_groups/hazard_stripes_chevron_black' },
{ id: 'hazard_stripes_diagonal_on_white', dye_group: '#railways:palettes/dye_groups/hazard_stripes_diagonal_white' },
{ id: 'hazard_stripes_chevron_on_white', dye_group: '#railways:palettes/dye_groups/hazard_stripes_chevron_white' }
]
const locometalBase = {
slashed_locometal: 'slashed_locometal',
riveted_locometal: 'riveted_locometal',
locometal_pillar: 'locometal_pillar',
locometal_smokebox: 'locometal_smokebox',
plated_locometal: 'plated_locometal',
flat_slashed_locometal: 'flat_slashed_locometal',
flat_riveted_locometal: 'flat_riveted_locometal'
}
const LOCOMETAL_SPECIAL = [
{ id: 'locometal_flywheel', dye_group: '#railways:palettes/dye_groups/flywheel', multiplier: 5 },
{ id: 'locometal_end_ladder', dye_group: '#railways:palettes/dye_groups/end_ladder', multiplier: 0.5 },
{ id: 'locometal_rung_ladder', dye_group: '#railways:palettes/dye_groups/rung_ladder', multiplier: 0.5 },
{ id: 'locometal_trapdoor', dye_group: '#railways:palettes/dye_groups/trapdoor', multiplier: 2 },
{ id: 'hinged_locometal_door', dye_group: '#railways:palettes/dye_groups/hinged_door', multiplier: 4 },
{ id: 'sliding_locometal_door', dye_group: '#railways:palettes/dye_groups/sliding_door', multiplier: 4 },
{ id: 'folding_locometal_door', dye_group: '#railways:palettes/dye_groups/folding_door', multiplier: 4 },
{ id: 'round_pane_locometal_window', dye_group: '#railways:palettes/dye_groups/round_pane_window', multiplier: 1 },
{ id: 'single_pane_locometal_window', dye_group: '#railways:palettes/dye_groups/single_pane_window', multiplier: 1 },
{ id: 'two_pane_locometal_window', dye_group: '#railways:palettes/dye_groups/two_pane_window', multiplier: 1 },
{ id: 'four_pane_locometal_window', dye_group: '#railways:palettes/dye_groups/four_pane_window', multiplier: 1 }
]
const registerRailwaysLocometalRecipes = (event) => {
for (let locometal in locometalBase) {
event.stonecutting(`8x railways:${locometal}`, '#forge:storage_blocks/iron');
event.stonecutting(`16x railways:${locometal}`, '#forge:storage_blocks/wrought_iron');
event.stonecutting(`24x railways:${locometal}`, '#forge:storage_blocks/steel');
event.stonecutting(`railways:${locometal}`, `#railways:palettes/cycle_groups/base`);
event.recipes.gtceu.chemical_bath(`tfg:undying/locometal/${locometal}`)
.itemInputs(Item.of(locometalDyeGroups[`${locometal}`], 1))
.inputFluids(Fluid.of(`gtceu:chlorine`, 18))
.itemOutputs(Item.of(`railways:${locometal}`))
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES)
}
// Base & Wrapped Locometal Boiler
event.shapeless('railways:locometal_boiler', [
'#railways:palettes/cycle_groups/netherite/base',
'create:fluid_tank',
'#forge:tools/screwdrivers'
]).id('tfg:shapeless/locometal_boiler')
event.recipes.createItemApplication(['railways:brass_wrapped_locometal_boiler'], ['railways:locometal_boiler', '#forge:plates/brass'])
.id('tfg:railways/item_application/brass_wrapped_locometal_boiler')
event.recipes.createItemApplication(['railways:copper_wrapped_locometal_boiler'], ['railways:locometal_boiler', '#forge:plates/copper'])
.id('tfg:railways/item_application/copper_wrapped_locometal_boiler')
event.recipes.createItemApplication(['railways:iron_wrapped_locometal_boiler'], ['railways:locometal_boiler', '#forge:plates/wrought_iron'])
.id('tfg:railways/item_application/iron_wrapped_locometal_boiler')
event.recipes.gtceu.assembler(`tfg:railways/locometal_boiler`)
.itemInputs('#railways:palettes/cycle_groups/netherite/base', `create:fluid_tank`)
.circuit(1)
.itemOutputs(`railways:locometal_boiler`)
.duration(200)
.EUt(28)
event.recipes.gtceu.assembler(`tfg:railways/brass_wrapped_locometal_boiler`)
.itemInputs(`railways:brass_wrapped_locometal`, `create:fluid_tank`)
.circuit(1)
.itemOutputs(`railways:brass_wrapped_locometal_boiler`)
.duration(200)
.EUt(28)
event.recipes.gtceu.assembler(`tfg:railways/copper_wrapped_locometal_boiler`)
.itemInputs(`railways:copper_wrapped_locometal`, `create:fluid_tank`)
.circuit(1)
.itemOutputs(`railways:copper_wrapped_locometal_boiler`)
.duration(200)
.EUt(28)
event.recipes.gtceu.assembler(`tfg:railways/iron_wrapped_locometal_boiler`)
.itemInputs(`railways:iron_wrapped_locometal`, `create:fluid_tank`)
.circuit(1)
.itemOutputs(`railways:iron_wrapped_locometal_boiler`)
.duration(200)
.EUt(28)
// Wrapped Locometal Recipes
event.recipes.createItemApplication(['railways:brass_wrapped_locometal'], ['railways:slashed_locometal', '#forge:bolts/brass'])
.id('tfg:railways/item_application/brass_wrapped_locometal')
event.recipes.createItemApplication(['railways:copper_wrapped_locometal'], ['railways:slashed_locometal', '#forge:bolts/copper'])
.id('tfg:railways/item_application/copper_wrapped_locometal')
event.recipes.createItemApplication(['railways:iron_wrapped_locometal'], ['railways:slashed_locometal', '#forge:bolts/wrought_iron'])
.id('tfg:railways/item_application/iron_wrapped_locometal')
event.recipes.gtceu.chemical_bath(`railways:iron_wrapped_locometal`)
.itemInputs(`#railways:palettes/cycle_groups/base`)
.inputFluids('gtceu:wrought_iron 18')
.itemOutputs('railways:iron_wrapped_locometal')
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES);
event.recipes.gtceu.chemical_bath(`railways:copper_wrapped_locometal`)
.itemInputs(`#railways:palettes/cycle_groups/base`)
.inputFluids('gtceu:copper 18')
.itemOutputs('railways:copper_wrapped_locometal')
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES);
event.recipes.gtceu.chemical_bath(`railways:brass_wrapped_locometal`)
.itemInputs(`#railways:palettes/cycle_groups/base`)
.itemInputs(`railways:slashed_locometal`)
.inputFluids('gtceu:brass 18')
.itemOutputs('railways:brass_wrapped_locometal')
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES);
event.recipes.gtceu.chemical_bath(`railways:copper_wrapped_locometal`)
.itemInputs(`railways:slashed_locometal`)
.inputFluids('gtceu:copper 18')
.itemOutputs('railways:copper_wrapped_locometal')
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES);
event.recipes.gtceu.chemical_bath(`railways:iron_wrapped_locometal`)
.itemInputs(`railways:slashed_locometal`)
.inputFluids('gtceu:wrought_iron 18')
.itemOutputs('railways:iron_wrapped_locometal')
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES);
// Wrapped Smokebox Recipes
event.recipes.createItemApplication(['railways:wrapped_locometal_smokebox'], ['railways:locometal_smokebox', '#forge:bolts/brass'])
.id('tfg:railways/item_application/wrapped_locometal_smokebox')
event.recipes.createItemApplication(['railways:copper_wrapped_locometal_smokebox'], ['railways:locometal_smokebox', '#forge:bolts/copper'])
.id('tfg:railways/item_application/copper_wrapped_locometal_smokebox')
event.recipes.createItemApplication(['railways:iron_wrapped_locometal_smokebox'], ['railways:locometal_smokebox', '#forge:bolts/wrought_iron'])
.id('tfg:railways/item_application/iron_wrapped_locometal_smokebox')
event.recipes.gtceu.chemical_bath(`railways:brass_wrapped_locometal_smokebox`)
.itemInputs(`railways:locometal_smokebox`)
.inputFluids('gtceu:brass 18')
.itemOutputs('railways:wrapped_locometal_smokebox')
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES);
event.recipes.gtceu.chemical_bath(`railways:copper_wrapped_locometal_smokebox`)
.itemInputs(`railways:locometal_smokebox`)
.inputFluids('gtceu:copper 18')
.itemOutputs('railways:copper_wrapped_locometal_smokebox')
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES);
event.recipes.gtceu.chemical_bath(`railways:iron_wrapped_locometal_smokebox`)
.itemInputs(`railways:locometal_smokebox`)
.inputFluids('gtceu:wrought_iron 18')
.itemOutputs('railways:iron_wrapped_locometal_smokebox')
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES);
// Base Locometal Regular & Undying Recipes
LOCOMETAL_BASE.forEach(locometal => {
event.stonecutting(`8x railways:${locometal.id}`, '#forge:storage_blocks/iron');
event.stonecutting(`16x railways:${locometal.id}`, '#forge:storage_blocks/wrought_iron');
event.stonecutting(`32x railways:${locometal.id}`, '#forge:storage_blocks/steel');
event.stonecutting(`railways:${locometal.id}`, `#railways:palettes/cycle_groups/netherite/base`);
event.recipes.gtceu.chemical_bath(`tfg:undying/locometal/${locometal.id}`)
.itemInputs(`${locometal.dye_group}`)
.inputFluids(Fluid.of(`gtceu:chlorine`, 18))
.itemOutputs(Item.of(`railways:${locometal.id}`))
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES)
})
// Base Functional Decorative Block Recipes
event.stonecutting(`16x railways:locometal_end_ladder`, '#forge:storage_blocks/iron');
event.stonecutting(`32x railways:locometal_end_ladder`, '#forge:storage_blocks/wrought_iron');
event.stonecutting(`64x railways:locometal_end_ladder`, '#forge:storage_blocks/steel');
event.stonecutting(`16x railways:locometal_rung_ladder`, '#forge:storage_blocks/iron');
event.stonecutting(`32x railways:locometal_rung_ladder`, '#forge:storage_blocks/wrought_iron');
event.stonecutting(`64x railways:locometal_rung_ladder`, '#forge:storage_blocks/steel');
event.stonecutting(`4x railways:locometal_trapdoor`, '#forge:storage_blocks/iron');
event.stonecutting(`8x railways:locometal_trapdoor`, '#forge:storage_blocks/wrought_iron');
event.stonecutting(`16x railways:locometal_trapdoor`, '#forge:storage_blocks/steel');
event.stonecutting(`2x railways:hinged_locometal_door`, '#forge:storage_blocks/iron');
event.stonecutting(`4x railways:hinged_locometal_door`, '#forge:storage_blocks/wrought_iron');
event.stonecutting(`8x railways:hinged_locometal_door`, '#forge:storage_blocks/steel');
event.stonecutting(`2x railways:sliding_locometal_door`, '#forge:storage_blocks/iron');
event.stonecutting(`4x railways:sliding_locometal_door`, '#forge:storage_blocks/wrought_iron');
event.stonecutting(`8x railways:sliding_locometal_door`, '#forge:storage_blocks/steel');
event.stonecutting(`2x railways:folding_locometal_door`, '#forge:storage_blocks/iron');
event.stonecutting(`4x railways:folding_locometal_door`, '#forge:storage_blocks/wrought_iron');
event.stonecutting(`8x railways:folding_locometal_door`, '#forge:storage_blocks/steel');
// Base RNR Flywheel Recipes
event.shapeless('railways:locometal_flywheel', [
'create:flywheel',
'#forge:tools/screwdrivers'
]).id('tfg:shapeless/create_flywheel_to_snr_flywheel')
event.shapeless('create:flywheel', [
'railways:locometal_flywheel',
'#forge:tools/screwdrivers'
]).id('tfg:shapeless/snr_flywheel_to_create_flywheel')
// Locometal Glass Block Recipes
event.stonecutting(`railways:round_pane_locometal_window`, '#forge:glass/colorless');
event.stonecutting(`railways:single_pane_locometal_window`, '#forge:glass/colorless');
event.stonecutting(`railways:two_pane_locometal_window`, '#forge:glass/colorless');
event.stonecutting(`railways:four_pane_locometal_window`, '#forge:glass/colorless');
// Wrapped Locometal Undying Recipes
event.recipes.gtceu.chemical_bath(`tfg:undying/brass_wrapped_locometal`)
.itemInputs('#railways:palettes/dye_groups/brass_wrapped_slashed')
.inputFluids(Fluid.of(`gtceu:chlorine`, 18))
@@ -78,6 +207,8 @@ const registerRailwaysLocometalRecipes = (event) => {
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES)
// Base & Wrapped Boiler Undying Recipes
event.recipes.gtceu.chemical_bath('tfg:undying/boiler')
.itemInputs('#railways:palettes/dye_groups/boiler')
.inputFluids(Fluid.of(`gtceu:chlorine`, 72))
@@ -107,119 +238,185 @@ const registerRailwaysLocometalRecipes = (event) => {
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES)
global.MINECRAFT_DYE_NAMES.forEach(dye => {
for (let locometal in locometalBase) {
event.recipes.gtceu.chemical_bath(`tfg:chemical_dying_locometal/${locometal}/${dye}`)
.itemInputs(Item.of(locometalDyeGroups[`${locometal}`], 1))
.inputFluids(Fluid.of(`tfc:${dye}_dye`, 18))
.itemOutputs(Item.of(`railways:${dye}_${locometal}`))
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES);
};
// Wrapped Smokebox Undying Recipes
event.recipes.gtceu.chemical_bath(`tfg:undying/brass_wrapped_locometal_smokebox`)
.itemInputs('#railways:palettes/dye_groups/brass_wrapped_smokebox')
.inputFluids(Fluid.of(`gtceu:chlorine`, 18))
.itemOutputs(`railways:wrapped_locometal_smokebox`)
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES);
event.recipes.gtceu.chemical_bath(`tfg:undying/copper_wrapped_locometal_smokebox`)
.itemInputs('#railways:palettes/dye_groups/copper_wrapped_smokebox')
.inputFluids(Fluid.of(`gtceu:chlorine`, 18))
.itemOutputs(`railways:copper_wrapped_locometal_smokebox`)
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES);
event.recipes.gtceu.chemical_bath(`tfg:undying/iron_wrapped_locometal_smokebox`)
.itemInputs('#railways:palettes/dye_groups/iron_wrapped_smokebox')
.inputFluids(Fluid.of(`gtceu:chlorine`, 18))
.itemOutputs(`railways:iron_wrapped_locometal_smokebox`)
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES)
event.recipes.gtceu.chemical_bath(`railways:${dye}_iron_wrapped_locometal`)
.itemInputs(`#railways:palettes/cycle_groups/${dye}`)
.inputFluids('gtceu:wrought_iron 18')
.itemOutputs(`railways:${dye}_iron_wrapped_locometal`)
.duration(20)
// Functional Decorative Block Undying Recipes
LOCOMETAL_SPECIAL.forEach(locometal => {
event.recipes.gtceu.chemical_bath(`tfg:undying/locometal/${locometal.id}`)
.itemInputs(`${locometal.dye_group}`)
.inputFluids(Fluid.of(`gtceu:chlorine`, 18 * locometal.multiplier))
.itemOutputs(`railways:${locometal.id}`)
.duration(20 * locometal.multiplier)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES);
event.recipes.gtceu.chemical_bath(`railways:${dye}_copper_wrapped_locometal`)
.itemInputs(`#railways:palettes/cycle_groups/${dye}`)
.inputFluids('gtceu:copper 18')
.itemOutputs(`railways:${dye}_copper_wrapped_locometal`)
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES);
event.recipes.gtceu.chemical_bath(`railways:${dye}_brass_wrapped_locometal`)
.itemInputs(`#railways:palettes/cycle_groups/${dye}`)
.inputFluids('gtceu:brass 18')
.itemOutputs(`railways:${dye}_brass_wrapped_locometal`)
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES);
event.recipes.gtceu.chemical_bath(`tfg:brass_locometal_bathing/${dye}`)
.itemInputs('#railways:palettes/dye_groups/brass_wrapped_slashed')
.inputFluids(Fluid.of(`tfc:${dye}_dye`, 18))
.itemOutputs(`railways:${dye}_brass_wrapped_locometal`)
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES);
event.recipes.gtceu.chemical_bath(`tfg:copper_locometal_bathing/${dye}`)
.itemInputs('#railways:palettes/dye_groups/copper_wrapped_slashed')
.inputFluids(Fluid.of(`tfc:${dye}_dye`, 18))
.itemOutputs(`railways:${dye}_copper_wrapped_locometal`)
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES);
event.recipes.gtceu.chemical_bath(`tfg:locometal_bathing/${dye}`)
.itemInputs('#railways:palettes/dye_groups/iron_wrapped_slashed')
.inputFluids(Fluid.of(`tfc:${dye}_dye`, 18))
.itemOutputs(`railways:${dye}_iron_wrapped_locometal`)
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES);
event.recipes.gtceu.chemical_bath(`tfg:railways/locometal_boiler/color/${dye}`)
.itemInputs('#railways:palettes/dye_groups/boiler')
.inputFluids(Fluid.of(`tfc:${dye}_dye`, 72))
.itemOutputs(`railways:${dye}_locometal_boiler`)
.duration(300)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
event.recipes.gtceu.chemical_bath(`tfg:railways/brass_wrapped_locometal_boiler/color/${dye}`)
.itemInputs('#railways:palettes/dye_groups/brass_wrapped_boiler')
.inputFluids(Fluid.of(`tfc:${dye}_dye`, 72))
.itemOutputs(`railways:${dye}_brass_wrapped_locometal_boiler`)
.duration(300)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
event.recipes.gtceu.chemical_bath(`tfg:railways/copper_wrapped_locometal_boiler/color/${dye}`)
.itemInputs('#railways:palettes/dye_groups/copper_wrapped_boiler')
.inputFluids(Fluid.of(`tfc:${dye}_dye`, 72))
.itemOutputs(`railways:${dye}_copper_wrapped_locometal_boiler`)
.duration(300)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
event.recipes.gtceu.chemical_bath(`tfg:railways/iron_wrapped_locometal_boiler/color/${dye}`)
.itemInputs('#railways:palettes/dye_groups/iron_wrapped_boiler')
.inputFluids(Fluid.of(`tfc:${dye}_dye`, 72))
.itemOutputs(`railways:${dye}_iron_wrapped_locometal_boiler`)
.duration(300)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
})
// Locometal Boiler
event.recipes.gtceu.assembler(`tfg:railways/locometal_boiler`)
.itemInputs('#railways:palettes/cycle_groups/base', `create:fluid_tank`)
.circuit(1)
.itemOutputs(`railways:locometal_boiler`)
.duration(200)
.EUt(28)
global.LOCOMETAL_COLORS.forEach(x => {
x.colors.forEach((color, i) => {
// Base Colored Recipes
LOCOMETAL_BASE.forEach(locometal => {
event.stonecutting(`railways:${color}_${locometal.id}`, `#railways:palettes/cycle_groups/${color}/base`);
event.recipes.gtceu.chemical_bath(`tfg:chemical_dying_locometal/${locometal.id}/${color}`)
.itemInputs(`${locometal.dye_group}`)
.inputFluids(Fluid.of(`${x.dye}`, 18))
.itemOutputs(Item.of(`railways:${color}_${locometal.id}`))
.circuit(i + 1)
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES)
})
// Wrapped Locometal Colored Recipes
event.recipes.createItemApplication([`railways:${color}_brass_wrapped_locometal`], [`railways:${color}_slashed_locometal`, '#forge:bolts/brass'])
.id(`tfg:railways/item_application/${color}_brass_wrapped_locometal`)
event.recipes.createItemApplication([`railways:${color}_copper_wrapped_locometal`], [`railways:${color}_slashed_locometal`, '#forge:bolts/copper'])
.id(`tfg:railways/item_application/${color}_copper_wrapped_locometal`)
event.recipes.createItemApplication([`railways:${color}_iron_wrapped_locometal`], [`railways:${color}_slashed_locometal`, '#forge:bolts/wrought_iron'])
.id(`tfg:railways/item_application/${color}_iron_wrapped_locometal`)
// Brass Wrapped Locometal Boiler
event.recipes.gtceu.assembler(`tfg:railways/brass_wrapped_locometal_boiler`)
.itemInputs(`railways:brass_wrapped_locometal`, `create:fluid_tank`)
.circuit(1)
.itemOutputs(`railways:brass_wrapped_locometal_boiler`)
.duration(200)
.EUt(28)
event.recipes.gtceu.chemical_bath(`tfg:brass_locometal_bathing/${color}`)
.itemInputs('#railways:palettes/dye_groups/brass_wrapped_slashed')
.inputFluids(Fluid.of(`${x.dye}`, 18))
.itemOutputs(`railways:${color}_brass_wrapped_locometal`)
.circuit(i + 1)
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES)
event.recipes.gtceu.chemical_bath(`tfg:copper_locometal_bathing/${color}`)
.itemInputs('#railways:palettes/dye_groups/copper_wrapped_slashed')
.inputFluids(Fluid.of(`${x.dye}`, 18))
.itemOutputs(`railways:${color}_copper_wrapped_locometal`)
.circuit(i + 1)
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES)
event.recipes.gtceu.chemical_bath(`tfg:locometal_bathing/${color}`)
.itemInputs('#railways:palettes/dye_groups/iron_wrapped_slashed')
.inputFluids(Fluid.of(`${x.dye}`, 18))
.itemOutputs(`railways:${color}_iron_wrapped_locometal`)
.circuit(i + 1)
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES)
// Copper Wrapped Locometal Boiler
event.recipes.gtceu.assembler(`tfg:railways/copper_wrapped_locometal_boiler`)
.itemInputs(`railways:copper_wrapped_locometal`, `create:fluid_tank`)
.circuit(1)
.itemOutputs(`railways:copper_wrapped_locometal_boiler`)
.duration(200)
.EUt(28)
// Base & Wrapped Boiler Colored Recipes
event.shapeless(`railways:${color}_locometal_boiler`, [
`#railways:palettes/cycle_groups/${color}/base`,
`create:fluid_tank`,
`#forge:tools/screwdrivers`
]).id(`tfg:shapeless/${color}_locometal_boiler`)
// Iron Wrapped Locometal Boiler
event.recipes.gtceu.assembler(`tfg:railways/iron_wrapped_locometal_boiler`)
.itemInputs(`railways:iron_wrapped_locometal`, `create:fluid_tank`)
.circuit(1)
.itemOutputs(`railways:iron_wrapped_locometal_boiler`)
.duration(200)
.EUt(28)
event.recipes.createItemApplication([`railways:${color}_brass_wrapped_locometal_boiler`], [`railways:${color}_locometal_boiler`, '#forge:plates/brass'])
.id(`tfg:railways/item_application/${color}_brass_wrapped_locometal_boiler`)
event.recipes.createItemApplication([`railways:${color}_copper_wrapped_locometal_boiler`], [`railways:${color}_locometal_boiler`, '#forge:plates/copper'])
.id(`tfg:railways/item_application/${color}_copper_wrapped_locometal_boiler`)
event.recipes.createItemApplication([`railways:${color}_iron_wrapped_locometal_boiler`], [`railways:${color}_locometal_boiler`, '#forge:plates/wrought_iron'])
.id(`tfg:railways/item_application/${color}_iron_wrapped_locometal_boiler`)
event.recipes.gtceu.assembler(`tfg:railways/${color}_locometal_boiler`)
.itemInputs(`#railways:palettes/cycle_groups/${color}/base`, `create:fluid_tank`)
.circuit(1)
.itemOutputs(`railways:${color}_locometal_boiler`)
.duration(200)
.EUt(28)
event.recipes.gtceu.chemical_bath(`tfg:railways/locometal_boiler/color/${color}`)
.itemInputs('#railways:palettes/dye_groups/boiler')
.inputFluids(Fluid.of(`${x.dye}`, 72))
.itemOutputs(`railways:${color}_locometal_boiler`)
.circuit(i + 1)
.duration(300)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
event.recipes.gtceu.chemical_bath(`tfg:railways/brass_wrapped_locometal_boiler/color/${color}`)
.itemInputs('#railways:palettes/dye_groups/brass_wrapped_boiler')
.inputFluids(Fluid.of(`${x.dye}`, 72))
.itemOutputs(`railways:${color}_brass_wrapped_locometal_boiler`)
.circuit(i + 1)
.duration(300)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
event.recipes.gtceu.chemical_bath(`tfg:railways/copper_wrapped_locometal_boiler/color/${color}`)
.itemInputs('#railways:palettes/dye_groups/copper_wrapped_boiler')
.inputFluids(Fluid.of(`${x.dye}`, 72))
.itemOutputs(`railways:${color}_copper_wrapped_locometal_boiler`)
.circuit(i + 1)
.duration(300)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
event.recipes.gtceu.chemical_bath(`tfg:railways/iron_wrapped_locometal_boiler/color/${color}`)
.itemInputs('#railways:palettes/dye_groups/iron_wrapped_boiler')
.inputFluids(Fluid.of(`${x.dye}`, 72))
.itemOutputs(`railways:${color}_iron_wrapped_locometal_boiler`)
.circuit(i + 1)
.duration(300)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
// Wrapped Smokebox Colored Recipes
event.recipes.createItemApplication([`railways:${color}_wrapped_locometal_smokebox`], [`railways:${color}_locometal_smokebox`, '#forge:bolts/brass'])
.id(`tfg:railways/item_application/${color}_wrapped_locometal_smokebox`)
event.recipes.createItemApplication([`railways:${color}_copper_wrapped_locometal_smokebox`], [`railways:${color}_locometal_smokebox`, '#forge:bolts/copper'])
.id(`tfg:railways/item_application/${color}_copper_wrapped_locometal_smokebox`)
event.recipes.createItemApplication([`railways:${color}_iron_wrapped_locometal_smokebox`], [`railways:${color}_locometal_smokebox`, '#forge:bolts/wrought_iron'])
.id(`tfg:railways/item_application/${color}_iron_wrapped_locometal_smokebox`)
event.recipes.gtceu.chemical_bath(`tfg:brass_locometal_smokebox_bathing/${color}`)
.itemInputs('#railways:palettes/dye_groups/brass_wrapped_smokebox')
.inputFluids(Fluid.of(`${x.dye}`, 18))
.itemOutputs(`railways:${color}_wrapped_locometal_smokebox`)
.circuit(i + 1)
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES)
event.recipes.gtceu.chemical_bath(`tfg:copper_locometal_smokebox_bathing/${color}`)
.itemInputs('#railways:palettes/dye_groups/copper_wrapped_smokebox')
.inputFluids(Fluid.of(`${x.dye}`, 18))
.itemOutputs(`railways:${color}_copper_wrapped_locometal_smokebox`)
.circuit(i + 1)
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES)
event.recipes.gtceu.chemical_bath(`tfg:iron_locometal_smokebox_bathing/${color}`)
.itemInputs('#railways:palettes/dye_groups/iron_wrapped_smokebox')
.inputFluids(Fluid.of(`${x.dye}`, 18))
.itemOutputs(`railways:${color}_iron_wrapped_locometal_smokebox`)
.circuit(i + 1)
.duration(20)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES)
LOCOMETAL_SPECIAL.forEach(locometal => {
event.recipes.gtceu.chemical_bath(`tfg:chemical_dying_locometal/${locometal.id}/${color}`)
.itemInputs(`${locometal.dye_group}`)
.inputFluids(Fluid.of(`${x.dye}`, 18 * locometal.multiplier))
.itemOutputs(`railways:${color}_${locometal.id}`)
.circuit(i + 1)
.duration(20 * locometal.multiplier)
.EUt(24)
.category(GTRecipeCategories.CHEM_DYES)
})
})
})
}

View File

@@ -13,6 +13,28 @@ const registerRailWaysItemTags = (event) => {
if (dye !== 'white') event.add('tfg:colored_caps', `railways:${dye}_conductor_cap`)
event.remove('c:hidden_from_recipe_viewers',`railways:${dye}_conductor_cap`)
})
event.remove('railways:palettes/cycle_groups/netherite/hazard_stripes_black', 'railways:hazard_stripes_diagonal_on_black')
event.remove('railways:palettes/cycle_groups/netherite/hazard_stripes_black', 'railways:hazard_stripes_chevron_on_black')
event.remove('railways:palettes/cycle_groups/netherite/hazard_stripes_white', 'railways:hazard_stripes_diagonal_on_white')
event.remove('railways:palettes/cycle_groups/netherite/hazard_stripes_white', 'railways:hazard_stripes_chevron_on_white')
event.add('railways:palettes/cycle_groups/netherite/base', 'railways:hazard_stripes_diagonal_on_black')
event.add('railways:palettes/cycle_groups/netherite/base', 'railways:hazard_stripes_chevron_on_black')
event.add('railways:palettes/cycle_groups/netherite/base', 'railways:hazard_stripes_diagonal_on_white')
event.add('railways:palettes/cycle_groups/netherite/base', 'railways:hazard_stripes_chevron_on_white')
global.LOCOMETAL_COLORS.forEach(x => {
x.colors.forEach((color, i) => {
event.remove(`railways:palettes/cycle_groups/${color}/hazard_stripes_black`, `railways:${color}_hazard_stripes_diagonal_on_black`)
event.remove(`railways:palettes/cycle_groups/${color}/hazard_stripes_black`, `railways:${color}_hazard_stripes_chevron_on_black`)
event.remove(`railways:palettes/cycle_groups/${color}/hazard_stripes_white`, `railways:${color}_hazard_stripes_diagonal_on_white`)
event.remove(`railways:palettes/cycle_groups/${color}/hazard_stripes_white`, `railways:${color}_hazard_stripes_chevron_on_white`)
event.add(`railways:palettes/cycle_groups/${color}/base`, `railways:${color}_hazard_stripes_diagonal_on_black`)
event.add(`railways:palettes/cycle_groups/${color}/base`, `railways:${color}_hazard_stripes_chevron_on_black`)
event.add(`railways:palettes/cycle_groups/${color}/base`, `railways:${color}_hazard_stripes_diagonal_on_white`)
event.add(`railways:palettes/cycle_groups/${color}/base`, `railways:${color}_hazard_stripes_chevron_on_white`)
})
})
}
const registerRailWaysBlockTags = (event) => {

View File

@@ -171,9 +171,15 @@ const registerTFCRecipes = (event) => {
event.replaceInput({ mod: 'tfc' }, 'minecraft:sugar', '#tfg:sugars')
event.replaceInput(
{ type: 'tfc:pot_jam' },
'#tfg:sugars',
'#tfc:sweetener'
)
// jute net -> burlap net
event.replaceInput({ id: 'tfc:crafting/jute_net' }, 'tfc:jute_fiber', '#tfg:burlap_fiber')
event.replaceInput({ input: 'minecraft:slime_ball' }, 'minecraft:slime_ball', 'tfc:glue')
// horse armor to use burlap
global.TFC_EQUIPMENT_METALS.forEach(material => {
@@ -295,5 +301,4 @@ const registerTFCRecipes = (event) => {
A: `tfc:wood/sapling/${type}`
}).id(`tfg:shaped/tfc/${type}_krummholz`);
});
}

View File

@@ -122,6 +122,7 @@ function removeTFCRecipes(event) {
event.remove({ id: 'tfc:crafting/cake' })
event.remove({ id: 'tfc:crafting/pumpkin_chunks' })
event.remove({ id: 'tfc:crafting/alabaster_brick' })
event.remove({ id: 'tfc:crafting/vanilla/redstone/sticky_piston' })
global.TFC_DOUGHS.forEach(dough => {
for (let i = 1; i <= 8; i++) {
@@ -143,4 +144,6 @@ function removeTFCRecipes(event) {
event.remove({ id: 'tfc:heating/metal/weak_red_steel_ingot' })
event.remove({ id: 'tfc:casting/weak_red_steel_ingot' })
event.remove({ id: 'tfc:casting/weak_red_steel_fire_ingot' })
event.remove({ id: 'tfc:crafting/wool_yarn' })
}

View File

@@ -53,6 +53,7 @@ function registerTFGHeatData(event) {
event.itemHeat('tfg:food/cooked_burger_patty', 1.0, null, null);
event.itemHeat('tfg:unfired_rod_mold', 1.0, null, null);
event.itemHeat('tfg:unfired_spindle_head_mold', 1.0, null, null);
event.itemHeat('tfg:unfired_small_gear_mold', 1.0, null, null);
event.itemHeat('tfg:unfired_nugget_mold', 1.0, null, null);
@@ -329,9 +330,11 @@ function registerTFGItemSize(event) {
event.itemSize(
orArray([
"tfg:unfired_rod_mold",
"tfg:unfired_spindle_head_mold",
"tfg:unfired_small_gear_mold",
"tfg:unfired_nugget_mold",
"tfg:rod_mold",
"tfg:spindle_head_mold",
"tfg:small_gear_mold",
"tfg:nugget_mold"
]),

View File

@@ -0,0 +1,176 @@
// Because it's impossible to delete a GTTools in a shapeless recipe without losing its NBT or even modifying the NBT of the tool by a certain amount we are using a different method.
// This function is used to create recipes for every TFG/GT Tools with their repair kit and the percentage of reperation each kits can do.
// Everytime you craft this recipe the event TFGRepairHelper in TFG Core is trigger and recreate the tool with all its NBT.
// The Bonus is that you can choose the amount of reparation for each type of tools. Also we need 4 functions because GT name for their tools is stupid.
function registerTFGRepairKitRecipes(event) {
const ELECTRIC_TOOLS = ['drill', 'buzzsaw', 'wrench', 'chainsaw', 'wire_cutter', 'screwdriver'];
const MANUAL_TOOLS = ['knife', 'hoe', 'scythe', 'hammer', 'file', 'sword', 'butchery_knife', 'crowbar'];
const ONLY_MANUAL_TOOLS = ['spade', 'pickaxe', 'shovel', 'axe', 'wrench', 'mortar', 'saw', 'screwdriver', 'wire_cutter', 'mining_hammer'];
const ONLY_COLORED_TOOLS = ['buzzsaw'];
function repairElectricTools(namespace, tierMaterial, repairKitMaterial, repairPercent) {
ELECTRIC_TOOLS.forEach(tool => {
let toolId = `${namespace}:${tierMaterial}_${repairKitMaterial}_${tool}`;
let repairKitId = `${namespace}:repair_kit_${repairKitMaterial}`;
if (!Item.of(toolId).isEmpty() && !Item.of(repairKitId).isEmpty()) {
event.recipes.tfc.no_remainder_shapeless_crafting(
event.shapeless(
toolId,
[
toolId,
Item.of(repairKitId, `{RepairPercent:${repairPercent}f}`)
]
)
);
}
});
}
function repairManualTools(namespace, material, repairPercent) {
MANUAL_TOOLS.forEach(tool => {
let toolId = `${namespace}:${material}_${tool}`;
let repairKitId = `${namespace}:repair_kit_${material}`;
if (!Item.of(toolId).isEmpty() && !Item.of(repairKitId).isEmpty()) {
event.recipes.tfc.no_remainder_shapeless_crafting(
event.shapeless(
toolId,
[
toolId,
Item.of(repairKitId, `{RepairPercent:${repairPercent}f}`)
]
)
);
}
});
}
function repairOnlyManualTools(namespace, material, repairPercent) {
ONLY_MANUAL_TOOLS.forEach(tool => {
let toolId = `${namespace}:${material}_${tool}`;
let repairKitId = `${namespace}:repair_kit_${material}`;
if (!Item.of(toolId).isEmpty() && !Item.of(repairKitId).isEmpty()) {
event.recipes.tfc.no_remainder_shapeless_crafting(
event.shapeless(
toolId,
[
toolId,
Item.of(repairKitId, `{RepairPercent:${repairPercent}f}`)
]
)
);
}
});
}
function repairColoredSteel(namespace, material, repairPercent) {
ONLY_COLORED_TOOLS.forEach(tool => {
let toolId = `${namespace}:${material}_${tool}`;
let repairKitId = `${namespace}:repair_kit_${material}`;
if (!Item.of(toolId).isEmpty() && !Item.of(repairKitId).isEmpty()) {
event.recipes.tfc.no_remainder_shapeless_crafting(
event.shapeless(
toolId,
[
toolId,
Item.of(repairKitId, `{RepairPercent:${repairPercent}f}`)
]
)
);
}
});
}
// 'namespace':'tier if electric'_material' Amount repaired in percentage
repairColoredSteel('gtceu', 'red_steel', 0.25);
repairColoredSteel('gtceu', 'blue_steel', 0.25);
repairElectricTools('tfg', 'hv', 'boron_carbide', 0.25);
repairElectricTools('tfg', 'mv', 'diamond_tipped_mo_50_re', 0.25);
repairElectricTools('gtceu', 'iv', 'hsse', 0.25);
repairElectricTools('gtceu', 'iv', 'naquadah_alloy', 0.25);
repairElectricTools('gtceu', 'iv', 'duranium', 0.25);
repairElectricTools('gtceu', 'ev', 'ostrum_iodide', 0.25);
repairElectricTools('gtceu', 'ev', 'tungsten_carbide', 0.25);
repairElectricTools('gtceu', 'hv', 'ultimet', 0.25);
repairElectricTools('gtceu', 'lv', 'blue_steel', 0.25);
repairElectricTools('gtceu', 'lv', 'red_steel', 0.25);
repairElectricTools('gtceu', 'mv', 'vanadium_steel', 0.25);
repairManualTools('tfg', 'boron_carbide', 0.25);
repairManualTools('tfg', 'diamond_tipped_mo_50_re', 0.25);
repairManualTools('gtceu', 'hsse', 0.25);
repairManualTools('gtceu', 'naquadah_alloy', 0.25);
repairManualTools('gtceu', 'duranium', 0.25);
repairManualTools('gtceu', 'ostrum_iodide', 0.25);
repairManualTools('gtceu', 'tungsten_carbide', 0.25);
repairManualTools('gtceu', 'ultimet', 0.25);
repairManualTools('gtceu', 'blue_steel', 0.25);
repairManualTools('gtceu', 'red_steel', 0.25);
repairManualTools('gtceu', 'vanadium_steel', 0.25);
repairOnlyManualTools('gtceu', 'black_bronze', 0.25);
repairOnlyManualTools('gtceu', 'black_steel', 0.25);
repairOnlyManualTools('gtceu', 'steel', 0.25);
repairOnlyManualTools('gtceu', 'wrought_iron', 0.25);
repairOnlyManualTools('gtceu', 'bronze', 0.25);
repairOnlyManualTools('gtceu', 'copper', 0.25);
repairOnlyManualTools('gtceu', 'bismuth_bronze', 0.25);
repairOnlyManualTools('gtceu', 'blue_steel', 0.25);
repairOnlyManualTools('gtceu', 'red_steel', 0.25);
repairManualTools('gtceu', 'black_bronze', 0.25);
repairManualTools('gtceu', 'black_steel', 0.25);
repairManualTools('gtceu', 'steel', 0.25);
repairManualTools('gtceu', 'wrought_iron', 0.25);
repairManualTools('gtceu', 'bronze', 0.25);
repairManualTools('gtceu', 'copper', 0.25);
repairManualTools('gtceu', 'bismuth_bronze', 0.25);
// Generate recipe for Repair Kit
forEachMaterial(material => {
if (!material.hasProperty(PropertyKey.TOOL))
return;
var unfiredKit = ChemicalHelper.get(TFGTagPrefix.unfiredRepairKit, material, 1);
var firedKit = ChemicalHelper.get(TFGTagPrefix.repairKit, material, 1);
if (unfiredKit.isEmpty() || firedKit.isEmpty())
return;
let materialInput = ChemicalHelper.get(material == GTMaterials.get('tfg:diamond_tipped_mo_50_re')
? TagPrefix.ingot : TagPrefix.dust, material, 1);
event.shapeless(unfiredKit.withCount(16), [
'gtceu:brick_wooden_form',
'#tfg:stone_dusts',
'tfc:ceramic/unfired_brick',
materialInput
]).id(`tfg:shapeless/unfired_repair_kit_${material.getName()}`)
event.recipes.gtceu.forming_press(`tfg:unfired_repair_kit_${material.getName()}`)
.notConsumable('gtceu:ingot_casting_mold')
.itemInputs(
'#tfg:stone_dusts',
['minecraft:clay_ball', 'tfc:ceramic/unfired_brick'],
materialInput)
.itemOutputs(unfiredKit.withCount(16))
.duration(20 * 5)
.EUt(GTValues.VHA[GTValues.LV])
event.smelting(firedKit, unfiredKit)
.id(`tfg:smelting/repair_kit_${material.getName()}`)
if (material.hasProperty(TFGPropertyKey.TFC_PROPERTY)) {
event.recipes.tfc.heating(unfiredKit, 1399)
.resultItem(firedKit)
.id(`tfg:heating/repair_kit_${material.getName()}`)
}
})
};

View File

@@ -43,6 +43,8 @@ BlockEvents.rightClicked(event => {
}
})
//#endregion
/**
*
* @param {Internal.Player} player
@@ -54,4 +56,3 @@ function getTFGPersistentDataRoot(player) {
}
return player.persistentData.getCompound("tfg:custom_data")
}

View File

@@ -109,6 +109,20 @@ function registerTFGFoodData(event) {
food.decayModifier(2.25);
});
// Bison Meat
event.foodItem("tfg:food/raw_bison_meat", (food) => {
food.hunger(2);
food.protein(1.5);
food.decayModifier(3);
});
event.foodItem("tfg:food/cooked_bison_meat", (food) => {
food.hunger(4);
food.saturation(2);
food.protein(3);
food.decayModifier(2.25);
});
// Springling Collar
event.foodItem("tfg:food/raw_springling_collar", (food) => {
food.hunger(2);

View File

@@ -199,11 +199,11 @@ function registerTFGFoodRecipes(event) {
])
})
//Note: Jam needs to be first in the recipe code or else it will consider it as the usable_in_jam_sandwhich ingredients.
//1 Jam
//Note: preserves needs to be first in the recipe code or else it will consider it as the usable_in_jam_sandwich ingredients.
// 1 jam + 2 cheese
global.processorRecipe(event, `${grain}_${type[0]}_jam_sandwich_1`, 100, 16, {
circuit: 4,
itemInputs: [`2x ${type[1]}`, '#tfc:foods/preserves', '2x #tfc:foods/usable_in_jam_sandwich_2'],
itemInputs: [`2x ${type[1]}`, '#tfc:foods/preserves', '2x #tfc:foods/usable_in_jam_sandwich'],
itemOutputs: [`2x tfc:food/${grain}_bread_jam_sandwich`, 'tfc:empty_jar'],
itemOutputProvider: TFC.isp.of(`2x tfc:food/${grain}_bread_jam_sandwich`).meal(
(food => food.hunger(4).water(0.5).saturation(1).decayModifier(4.5)), [
@@ -212,10 +212,10 @@ function registerTFGFoodRecipes(event) {
])
})
//2 Jam
// 2 jam + 1 cheese. Uses preserves_2 alias so GT's RecipeDB gives this a distinct tree key from recipe 1.
global.processorRecipe(event, `${grain}_${type[0]}_jam_sandwich_2`, 100, 16, {
circuit: 4,
itemInputs: [`2x ${type[1]}`, '2x #tfc:foods/preserves', '1x #tfc:foods/usable_in_jam_sandwich_2'],
itemInputs: [`2x ${type[1]}`, '2x #tfc:foods/preserves_2', '1x #tfc:foods/usable_in_jam_sandwich'],
itemOutputs: [`2x tfc:food/${grain}_bread_jam_sandwich`, '2x tfc:empty_jar'],
itemOutputProvider: TFC.isp.of(`2x tfc:food/${grain}_bread_jam_sandwich`).meal(
(food => food.hunger(4).water(0.5).saturation(1).decayModifier(4.5)), [
@@ -224,7 +224,7 @@ function registerTFGFoodRecipes(event) {
])
})
//3 Jam
// 3 jam
global.processorRecipe(event, `${grain}_${type[0]}_jam_sandwich_3`, 100, 16, {
circuit: 4,
itemInputs: [`2x ${type[1]}`, '3x #tfc:foods/preserves'],
@@ -1300,6 +1300,9 @@ function registerTFGFoodRecipes(event) {
event.recipes.tfc.heating('tfg:food/raw_wraptor', 200)
.resultItem(TFC.isp.of('tfg:food/cooked_wraptor').copyFood())
event.recipes.tfc.heating('tfg:food/raw_bison_meat', 200)
.resultItem(TFC.isp.of('tfg:food/cooked_bison_meat').copyFood())
event.recipes.tfc.heating('tfg:food/raw_springling_collar', 200)
.resultItem(TFC.isp.of('tfg:food/cooked_springling_collar').copyFood())

View File

@@ -45,15 +45,8 @@ function registerTFGFoodItemTags(event) {
global.WARMING_FOODS.forEach(food => { event.add('tfg:warming_foods', food) })
//jam sandwhich stuff
const usable_in_jam_sandwich = Ingredient.of('#tfc:foods/usable_in_jam_sandwich').itemIds.toArray().map(String);
const preserves = Ingredient.of('#tfc:foods/preserves').itemIds.toArray().map(String);
const usable_in_jam_sandwich_2 = usable_in_jam_sandwich.filter(item => !preserves.includes(item));
usable_in_jam_sandwich_2.forEach(item => {
event.add('tfc:foods/usable_in_jam_sandwich_2', item);
});
// Alias of tfc:foods/preserves, used to give the 2-jam sandwich recipe a distinct tree key in GT's RecipeDB.
event.add('tfc:foods/preserves_2', '#tfc:foods/preserves')
event.add('tfg:raw_dinosaur_meat', 'tfg:food/raw_sniffer_beef')
event.add('tfg:raw_dinosaur_meat', 'tfg:food/raw_wraptor')
@@ -135,6 +128,8 @@ function registerTFGFoodItemTags(event) {
'tfg:food/cooked_walker_steak',
'tfg:food/raw_crusher_meat',
'tfg:food/cooked_crusher_meat',
'tfg:food/raw_bison_meat',
'tfg:food/cooked_bison_meat',
'wan_ancient_beasts:raw_ancient_meat',
'wan_ancient_beasts:cooked_ancient_meat'
];
@@ -192,6 +187,7 @@ function registerTFGFoodItemTags(event) {
'tfc:food/venison',
'tfg:food/raw_sniffer_beef',
'tfg:food/raw_crusher_meat',
'tfg:food/raw_bison_meat',
'wan_ancient_beasts:raw_ancient_meat'
];
burgerMeats.forEach(item => {
@@ -332,7 +328,6 @@ function registerTFGFoodItemTags(event) {
event.add('tfc:foods/dairy', 'ad_astra:cheese')
event.add('tfc:foods/usable_in_sandwich', 'ad_astra:cheese')
event.add('tfc:foods/usable_in_jam_sandwich', 'ad_astra:cheese')
event.add('tfc:foods/usable_in_jam_sandwich_2', 'ad_astra:cheese')
event.add('firmalife:foods/cheeses', 'ad_astra:cheese')
// Auto-eat blacklist for backpack feeding upgrade and quarktech helmet

View File

@@ -96,16 +96,16 @@ function registerTFGHVMaterialRecipes(event) {
.itemInputs(Item.of('gtceu:obsidian_dust', 1))
.inputFluids(Fluid.of('gtceu:steam', 1000))
.itemOutputs(Item.of('gtceu:perlite_dust', 1))
.duration(20 * 16)
.EUt(GTValues.VA[GTValues.HV]);
.duration(20 * 8)
.EUt(GTValues.VHA[GTValues.HV]);
// Alumina
event.recipes.gtceu.large_chemical_reactor('tfg:aluminium_sulfate_lcr')
.itemInputs(Item.of('tfg:igneous_felsic_dust', 1))
.inputFluids(Fluid.of('gtceu:sulfuric_acid', 1000))
.inputFluids(Fluid.of('gtceu:sulfuric_acid', 2000))
.itemOutputs(Item.of('tfg:aluminium_sulfate_dust', 1), Item.of('gtceu:potassium_sulfate_dust', 1), Item.of('gtceu:silicon_dioxide_dust'))
.outputFluids(Fluid.of('minecraft:water', 1000), Fluid.of('gtceu:diluted_sulfuric_acid', 1000))
.outputFluids(Fluid.of('minecraft:water', 1000))
.duration(20 * 84)
.EUt(GTValues.VA[GTValues.LV])
.circuit(2)

View File

@@ -169,4 +169,38 @@ function registerTFGLoots(event) {
event.addEntityLootModifier('tfg:wraptor')
.matchMainHand('#forge:tools/butchery_knives')
.addWeightedLoot([2, 3], ['tfg:food/raw_wraptor'])
// Leopard seal normal loot table
event.addEntityLootModifier('tfg:leopard_seal')
.addWeightedLoot([3, 6], ['tfc:blubber'])
.addWeightedLoot([1, 4], ['minecraft:bone'])
.addWeightedLoot([1], ['tfc:medium_raw_hide'])
// Leopard seal extra with butchery knife
event.addEntityLootModifier('tfg:leopard_seal')
.matchMainHand('#forge:tools/butchery_knives')
.addWeightedLoot([2, 3], ['tfc:blubber'])
// Bison normal loot table
event.addEntityLootModifier('tfg:bison')
.addWeightedLoot([12, 20], ['tfg:food/raw_bison_meat'])
.addWeightedLoot([7, 10], ['minecraft:bone'])
.addWeightedLoot([1], ['tfc:large_raw_hide'])
// Bison drop extra with butchery knife
event.addEntityLootModifier('tfg:bison')
.matchMainHand('#forge:tools/butchery_knives')
.addWeightedLoot([4, 6], ['tfg:food/raw_bison_meat'])
event.addEntityLootModifier('tfg:lemming')
.addWeightedLoot([0, 1], ['minecraft:bone'])
.addWeightedLoot([0, 1], ['tfc:small_raw_hide'])
event.addEntityLootModifier('tfg:jerboa')
.addWeightedLoot([0, 1], ['minecraft:bone'])
.addWeightedLoot([0, 1], ['tfc:small_raw_hide'])
event.addEntityLootModifier('tfg:mongoose')
.addWeightedLoot([1, 3], ['minecraft:bone'])
.addWeightedLoot([1], ['tfc:small_raw_hide'])
};

View File

@@ -82,27 +82,34 @@ function registerTFGCircuitBoardsRecipes(event) {
.duration(20 * 5)
.EUt(GTValues.VA[GTValues.MV])
function lensPolishing(event, fluid, colour, temp) {
function lensPolishing(event, fluid, colour, slurry, temp, energy) {
event.recipes.gtceu.high_temperature_precision_fabricator(`tfg:lens_${fluid}_${colour}`)
.itemInputs('tfg:worked_optical_borosilicate_blank', '#tfg:precision_fabricator_holder_rods')
.inputFluids(Fluid.of(`tfg:dirty_${fluid}_slurry`, 1000))
.inputFluids(Fluid.of(`tfg:${slurry}_${fluid}_slurry`, 1000))
.itemOutputs(Item.of(`#forge:lenses/${colour}`, 1))
.addData("ebf_temp", temp)
.duration(20 * 120)
.EUt(GTValues.VA[GTValues.MV]);
.EUt(GTValues.VA[energy]);
}
const LENS_POLISHING = [
['emerald', 'green', 1530],
['sapphire', 'blue', 1530],
['ruby', 'red', 1530],
['diamond', 'light_blue', 1530],
['apatite', 'cyan', 1810],
['spessartine', 'orange', 1810],
['emerald', 'green', 'dirty', 1530, GTValues.MV],
['sapphire', 'blue', 'dirty', 1530, GTValues.MV],
['ruby', 'red', 'dirty', 1530, GTValues.MV],
['diamond', 'light_blue', 'dirty', 1530, GTValues.MV],
['apatite', 'cyan', 'filtered', 1810, GTValues.HV],
['spessartine', 'orange', 'filtered', 1810, GTValues.HV],
['yellow_garnet','yellow', 'filtered', 1810, GTValues.HV],
['olivine', 'lime', 'filtered', 1810, GTValues.HV],
['amethyst', 'purple', 'filtered', 1810, GTValues.HV],
['grossular', 'brown', 'filtered', 1810, GTValues.HV],
['armalcolite', 'gray', 'filtered', 1810, GTValues.HV],
['coal', 'black', 'filtered', 1530, GTValues.MV],
];
LENS_POLISHING.forEach(([fluid, colour]) => event.remove({ output: `#forge:lenses/${colour}` }));
LENS_POLISHING.forEach(([fluid, colour, temp]) => lensPolishing(event, fluid, colour, temp));
LENS_POLISHING.forEach(([fluid, colour]) => event.remove({ output: `gtceu:${colour}_glass_lens` }));
LENS_POLISHING.forEach(([fluid, colour, slurry, temp, energy]) => lensPolishing(event, fluid, colour, slurry, temp, energy));
// Printed Circuit boards

View File

@@ -79,7 +79,7 @@ function registerTFGCoilRecipes(event) {
event.remove({ id: 'gtceu:assembler/coil_kanthal' })
event.recipes.gtceu.assembler('tfg:coil_kanthal')
.itemInputs('8x #forge:double_wires/kanthal', '8x #forge:foils/rene_41', '1x #forge:ingots/silicon_carbide')
.itemInputs('8x #forge:double_wires/kanthal', '16x #forge:foils/rene_41', '1x #forge:ingots/silicon_carbide')
.inputFluids('gtceu:cobalt 144')
.itemOutputs('gtceu:kanthal_coil_block')
.duration(20 * 15)
@@ -100,28 +100,28 @@ function registerTFGCoilRecipes(event) {
TFGHelpers.registerMaterialInfo('tfg:blue_alloy_desh_foil', [GTMaterials.BlueAlloy, 0.5, GTMaterials.get('gtceu:desh'), 0.25])
event.recipes.gtceu.implosion_compressor('tfg:chorus_ceramic_insulation_dynamite')
.itemInputs('ae2:sky_dust', '#forge:dusts/perlite', '#forge:dusts/kaolinite', 'minecraft:popped_chorus_fruit', 'ae2:fluix_dust', '2x gtceu:dynamite')
.itemInputs('ae2:sky_dust', '#forge:dusts/perlite', '#forge:dusts/kaolinite', 'minecraft:popped_chorus_fruit', 'ae2:fluix_crystal', '2x gtceu:dynamite')
.itemOutputs('tfg:chorus_ceramic_insulation')
.chancedOutput('#forge:dusts/dark_ash', 2500, 0)
.duration(20)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.implosion_compressor('tfg:chorus_ceramic_insulation_powderbarrel')
.itemInputs('ae2:sky_dust', '#forge:dusts/perlite', '#forge:dusts/kaolinite', 'minecraft:popped_chorus_fruit', 'ae2:fluix_dust', '8x gtceu:powderbarrel')
.itemInputs('ae2:sky_dust', '#forge:dusts/perlite', '#forge:dusts/kaolinite', 'minecraft:popped_chorus_fruit', 'ae2:fluix_crystal', '8x gtceu:powderbarrel')
.itemOutputs('tfg:chorus_ceramic_insulation')
.chancedOutput('#forge:dusts/dark_ash', 2500, 0)
.duration(20)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.implosion_compressor('tfg:chorus_ceramic_insulation_tnt')
.itemInputs('ae2:sky_dust', '#forge:dusts/perlite', '#forge:dusts/kaolinite', 'minecraft:popped_chorus_fruit', 'ae2:fluix_dust', '4x minecraft:tnt')
.itemInputs('ae2:sky_dust', '#forge:dusts/perlite', '#forge:dusts/kaolinite', 'minecraft:popped_chorus_fruit', 'ae2:fluix_crystal', '4x minecraft:tnt')
.itemOutputs('tfg:chorus_ceramic_insulation')
.chancedOutput('#forge:dusts/dark_ash', 2500, 0)
.duration(20)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.implosion_compressor('tfg:chorus_ceramic_insulation_itnt')
.itemInputs('ae2:sky_dust', '#forge:dusts/perlite', '#forge:dusts/kaolinite', 'minecraft:popped_chorus_fruit', 'ae2:fluix_dust', 'gtceu:industrial_tnt')
.itemInputs('ae2:sky_dust', '#forge:dusts/perlite', '#forge:dusts/kaolinite', 'minecraft:popped_chorus_fruit', 'ae2:fluix_crystal', 'gtceu:industrial_tnt')
.itemOutputs('tfg:chorus_ceramic_insulation')
.chancedOutput('#forge:dusts/dark_ash', 2500, 0)
.duration(20)

View File

@@ -282,5 +282,47 @@ function registerTFGMultiblockRecipes(event) {
.duration(300)
.EUt(GTValues.VA[GTValues.EV])
.circuit(2)
// Large Bronze Boiler
event.recipes.gtceu.shaped('tfg:large_bronze_boiler', [
'ABA',
'BCB',
'ABA'
], {
A: '#forge:quadruple_wires/tin',
B: '#gtceu:circuits/ulv',
C: Item.of('gtceu:bronze_firebox_casing')
}).addMaterialInfo().id('tfg:shaped/large_bronze_boiler')
// Large Steel Boiler
event.recipes.gtceu.shaped('tfg:large_steel_boiler', [
'ABA',
'BCB',
'DBD'
], {
A: '#forge:single_cables/copper',
B: '#gtceu:circuits/mv',
C: Item.of('gtceu:steel_firebox_casing'),
D: '#gtceu:capacitors'
}).addMaterialInfo().id('tfg:shaped/large_steel_boiler')
// Large Steam Turbine
event.recipes.gtceu.shaped('tfg:large_steam_turbine', [
'ABE',
'BCB',
'DBD'
], {
A: Item.of('gtceu:red_steel_gear'),
B: '#gtceu:circuits/hv',
C: Item.of('gtceu:hv_machine_hull'),
D: Item.of('#forge:huge_fluid_pipes/stainless_steel'),
E: Item.of('gtceu:blue_steel_gear')
}).addMaterialInfo().id('tfg:shaped/large_steam_turbine')
event.replaceInput({ id: 'gtceu:shaped/casing_steel_turbine_casing'}, 'gtceu:magnalium_plate', 'gtceu:double_magnalium_plate')
event.replaceInput({ id: 'gtceu:assembler/casing_steel_turbine'}, 'gtceu:magnalium_plate', 'gtceu:double_magnalium_plate')
}

View File

@@ -12,6 +12,8 @@ function registerTFGFacadeWhitelistItemTags(event) {
'#tfc:rock/chiseled',
'#tfc:rock/raw',
'#tfc:metal_plated_blocks',
'#tfc:dirt',
'#tfc:grass',
'#tfc:colored_raw_alabaster',
'#tfc:colored_bricks_alabaster',
@@ -149,13 +151,23 @@ function registerTFGFacadeWhitelistItemTags(event) {
'everycomp:c/domum_ornamentum/cactus_extra_window',
'ae2:quartz_glass',
//create deco
//create + deco
'createdeco:andesite_sheet_metal',
'createdeco:brass_sheet_metal',
'createdeco:iron_sheet_metal',
'createdeco:copper_sheet_metal',
'createdeco:industrial_iron_sheet_metal',
'createdeco:zinc_sheet_metal'
'createdeco:zinc_sheet_metal',
'create:industrial_iron_block',
'create:weathered_iron_block',
'create:rose_quartz_block',
'create:rose_quartz_tiles',
'create:small_rose_quartz_tiles',
// better end
'betterend:brimstone',
'betterend:lacugrove_bark',
'betterend:lucernia_bark',
];
const createdeco_bricks_fm =
@@ -194,14 +206,14 @@ function registerTFGFacadeWhitelistItemTags(event) {
'calcite',
'dripstone',
'deepslate',
'limestone'
//'ochrum',
//'scoria',
//'scorchia',
//'veridium'
//'tuff',
//'asurine',
//'crimsite',
'limestone',
'ochrum',
'scoria',
'scorchia',
'veridium',
'tuff',
'asurine',
'crimsite',
]
//misc blocks

View File

@@ -146,9 +146,9 @@ function registerTFGMarsRecipes(event) {
.EUt(4)
event.recipes.tfc.damage_inputs_shapeless_crafting(
event.shapeless('8x tfc:wool_yarn', [
'tfc:spindle',
'tfg:glacian_wool'
event.shapeless('8x tfc:wool_yarn', [
'tfg:glacian_wool',
'#tfg:tools/spindles'
]).id('tfg:shapeless/glacian_wool_to_yarn'))
event.recipes.gtceu.wiremill('tfg:glacian_wool_yarn')

View File

@@ -5,6 +5,7 @@ function registerTFGMVMaterialRecipes(event) {
event.remove({ id: 'gtceu:electric_blast_furnace/blast_rough_silicon_carbide' })
event.remove({ id: 'gtceu:electric_blast_furnace/blast_rough_silicon_carbide_gas' })
event.remove({ id: 'gtceu:alloy_smelter/alloy_smelt_silicon_carbide_to_nugget' })
event.remove({ id: 'gtceu:alloy_smelter/alloy_smelt_weak_inconel_718_to_nugget' })
event.recipes.gtceu.electric_blast_furnace('tfg:rough_sic_gem')
.itemInputs(Item.of('gtceu:quartzite_gem', 9), Item.of('gtceu:graphite_dust', 27))
@@ -63,9 +64,9 @@ function registerTFGMVMaterialRecipes(event) {
Item.of('gtceu:aluminium_dust', 1),
Item.of('gtceu:boron_dust', 1))
.inputFluids(Fluid.of('gtceu:carbon_monoxide', 1000))
.itemOutputs(Item.of('tfg:rene_41_dust', 7))
.itemOutputs(Item.of('tfg:rene_41_dust', 14))
.outputFluids(Fluid.of('gtceu:oxygen', 1000))
.duration(20 * 46)
.duration(20 * 92)
.EUt(GTValues.VA[GTValues.MV])
.circuit(4)
@@ -73,14 +74,14 @@ function registerTFGMVMaterialRecipes(event) {
.itemInputs(Item.of('#forge:hot_ingots/rene_41', 1))
.inputFluids(Fluid.of('minecraft:water', 100))
.itemOutputs(Item.of('#forge:ingots/rene_41', 1))
.duration(20 * 23)
.duration(20 * 11.5)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.chemical_bath('tfg:rene_41_cool_down_distilled_water')
.itemInputs(Item.of('#forge:hot_ingots/rene_41', 1))
.inputFluids(Fluid.of('gtceu:distilled_water', 100))
.itemOutputs(Item.of('#forge:ingots/rene_41', 1))
.duration(20 * 14)
.duration(20 * 7)
.EUt(GTValues.VA[GTValues.MV])
//#region Diamond Tipped Tools custom recipes

View File

@@ -34,7 +34,9 @@ function registerTFGCollapseRecipes(event) {
})
}
event.recipes.tfc.collapse(rock.cobble.block, `#forge:ores_in_ground/${rockId}`)
if (Ingredient.of(`#forge:ores_in_ground/${rockId}`).itemIds.toArray().length > 0) {
event.recipes.tfc.collapse(rock.cobble.block, `#forge:ores_in_ground/${rockId}`)
}
event.recipes.tfc.landslide(rock.cobble.block, rock.cobble.block);

View File

@@ -356,29 +356,27 @@ function registerTFGRockRecipes(event) {
}
// Pillars
if (rock.bricks != null && rock.pillar != null) {
event.shaped(`2x ${rock.pillar}`, [
'A',
'A'
], {
A: rock.bricks.block
})
.id(`tfg:shaped/${rockId}_pillar`);
event.stonecutting(rock.pillar, rock.bricks.block)
.id(`tfg:stonecutting/${rockId}_pillar`);
if (rock.pillar != null) {
if (rock.bricks != null) {
event.shaped(`2x ${rock.pillar}`, [
'A',
'A'
], {
A: rock.bricks.block
})
.id(`tfg:shaped/${rockId}_pillar`);
}
}
if (rock.bricks != null && rock.pillar2 != null) {
event.shaped(`2x ${rock.pillar2}`, [
'AA'
], {
A: rock.bricks.block
})
.id(`tfg:shaped/${rockId}_pillar2`);
event.stonecutting(rock.pillar2, rock.bricks.block)
.id(`tfg:stonecutting/${rockId}_pillar2`);
if (rock.pillar2 != null) {
if (rock.bricks != null) {
event.shaped(`2x ${rock.pillar2}`, [
'AA'
], {
A: rock.bricks.block
})
.id(`tfg:shaped/${rockId}_pillar2`);
}
}
// Chiseling
@@ -414,20 +412,21 @@ function registerTFGRockRecipes(event) {
// Stonecutting
if (rock.stonecutterTag != null) {
// The create tags are already filled out, so just add the polished/chiseled blocks to it
if (rock.stonecutterTag.startsWith('create')) {
if (rock.polished != null)
event.stonecutting(rock.polished.block, `#${rock.stonecutterTag}`);
if (rock.chiseled != null)
event.stonecutting(rock.chiseled.block, `#${rock.stonecutterTag}`);
}
else {
let tag_array = Ingredient.of(`#${rock.stonecutterTag}`).itemIds.toArray().map(String);
tag_array.forEach(item => {
event.stonecutting(item, Ingredient.of(`#${rock.stonecutterTag}`).subtract(item))
.id(`tfg:stonecutter/${linuxUnfucker(item)}`)
})
}
// Pull everything out of the tag
let tag_array = Ingredient.of(`#${rock.stonecutterTag}`).itemIds.toArray().map(String);
let tag_array_half = Ingredient.of(`#${rock.stonecutterTag}_half`).itemIds.toArray().map(String);
// Remove any duplicates
tag_array = tag_array.filter((item, index) => tag_array.indexOf(item) === index);
tag_array.forEach(item => {
event.stonecutting(item, Ingredient.of(`#${rock.stonecutterTag}`).subtract(item))
.id(`tfg:stonecutter/${linuxUnfucker(item)}`)
})
tag_array_half.forEach(item => {
event.stonecutting(`2x ${item}`, Ingredient.of(`#${rock.stonecutterTag}`).subtract(item))
.id(`tfg:stonecutter/${linuxUnfucker(item)}_half`)
event.stonecutting(item, Ingredient.of(`#${rock.stonecutterTag}_half`).subtract(item))
.id(`tfg:stonecutter/${linuxUnfucker(item)}_slab_to_slab`)
})
}
// Supports

View File

@@ -19,6 +19,21 @@ function registerTFGStoneItemTags(event) {
}
}
function addToStonecutterTag(tag, entry) {
if (tag != null) {
event.add(tag, entry.block);
if (entry.stair != null) {
event.add(tag, entry.stair);
}
if (entry.wall != null) {
event.add(tag, entry.wall);
}
if (entry.slab != null) {
event.add(`${tag}_half`, entry.slab);
}
}
}
const SHAPES = ['stair', 'slab', 'wall'];
for (let [rockId, rock] of Object.entries(global.BIG_ROCK_TABLE)) {
@@ -34,6 +49,9 @@ function registerTFGStoneItemTags(event) {
}
addToTfcTag(rock.raw.block);
addToMaterialTag(material, rock.raw.block);
if (rock.brick == null) {
addToStonecutterTag(rock.stonecutterTag, rock.raw);
}
SHAPES.forEach(shape => {
if (rock.raw[shape] != null) {
@@ -86,6 +104,7 @@ function registerTFGStoneItemTags(event) {
event.add('tfc:rock/bricks', rock.bricks.block);
addToTfcTag(rock.bricks.block);
addToMaterialTag(material, rock.bricks.block);
addToStonecutterTag(rock.stonecutterTag, rock.bricks);
SHAPES.forEach(shape => {
if (rock.bricks[shape] != null) {
@@ -144,9 +163,7 @@ function registerTFGStoneItemTags(event) {
event.add('forge:smooth_stone', rock.polished.block);
addToTfcTag(rock.polished.block);
addToMaterialTag(material, rock.polished.block);
if (rock.stonecutterTag != null) {
event.add(rock.stonecutterTag, rock.polished.block);
}
addToStonecutterTag(rock.stonecutterTag, rock.polished);
SHAPES.forEach(shape => {
if (rock.polished[shape] != null) {
@@ -167,10 +184,7 @@ function registerTFGStoneItemTags(event) {
event.add('tfc:rock/chiseled_bricks', rock.chiseled.block);
addToTfcTag(rock.chiseled.block);
addToMaterialTag(material, rock.chiseled.block);
if (rock.stonecutterTag != null) {
event.add(rock.stonecutterTag, rock.chiseled.block);
addToMaterialTag(material, rock.chiseled.block);
}
addToStonecutterTag(rock.stonecutterTag, rock.chiseled);
}
if (rock.gravel != null) {
@@ -232,17 +246,12 @@ function registerTFGStoneItemTags(event) {
event.add('tfc:rock/chiseled_bricks', blockForms.block);
addToTfcTag(blockForms.block);
addToMaterialTag(material, blockForms.block);
if (rock.stonecutterTag != null) {
event.add(rock.stonecutterTag, blockForms.block);
}
addToStonecutterTag(rock.stonecutterTag, blockForms);
SHAPES.forEach(shape => {
if (blockForms[shape] != null) {
addToTfcTag(blockForms[shape]);
addToMaterialTag(material, blockForms[shape]);
if (rock.stonecutterTag != null) {
event.add(rock.stonecutterTag, blockForms[shape]);
}
}
})
})

View File

@@ -4,6 +4,8 @@ function registerTFGGemSlurriesProcessing(event) {
const $ChanceLogic = Java.loadClass('com.gregtechceu.gtceu.api.recipe.chance.logic.ChanceLogic')
// Slurry Refining
function slurryProcessing(event, inputId, output, amount) {
event.recipes.gtceu.coal_liquefaction_tower(`tfg:dirty_${output}_slurry_${linuxUnfucker(inputId)}`)
.itemInputs(Item.of(inputId))
@@ -12,51 +14,102 @@ function registerTFGGemSlurriesProcessing(event) {
.perTick(false)
.outputFluids(Fluid.of(`tfg:dirty_${output}_slurry`, amount))
.duration(20 * 50)
.EUt(GTValues.VA[GTValues.LV]);
.EUt(GTValues.VA[GTValues.LV])
.circuit(4);
}
const gemMaterials = [
[GTMaterials.Emerald, 'emerald', { dust: 100, gem: 300, flawless: 600, exquisite: 1200 }],
[GTMaterials.Sapphire, 'sapphire', { dust: 100, gem: 300, flawless: 600, exquisite: 1200 }],
[GTMaterials.Ruby, 'ruby', { dust: 100, gem: 300, flawless: 600, exquisite: 1200 }],
[GTMaterials.Diamond, 'diamond', { dust: 100, gem: 300, flawless: 600, exquisite: 1200 }],
[GTMaterials.Apatite, 'apatite', { dust: 100, gem: 300, flawless: 600, exquisite: 1200 }],
[GTMaterials.Spessartine,'spessartine', { dust: 100, gem: 300, flawless: 600, exquisite: 1200 }],
[GTMaterials.Emerald, 'emerald', { gem: 300, flawless: 700, exquisite: 1500 }],
[GTMaterials.Sapphire, 'sapphire', { gem: 300, flawless: 700, exquisite: 1500 }],
[GTMaterials.Ruby, 'ruby', { gem: 300, flawless: 700, exquisite: 1500 }],
[GTMaterials.Diamond, 'diamond', { gem: 300, flawless: 700, exquisite: 1500 }],
[GTMaterials.Apatite, 'apatite', { gem: 300, flawless: 700, exquisite: 1500 }],
[GTMaterials.Spessartine, 'spessartine', { gem: 300, flawless: 700, exquisite: 1500 }],
[GTMaterials.GarnetYellow, 'yellow_garnet',{ gem: 300, flawless: 700, exquisite: 1500 }],
[GTMaterials.Olivine, 'olivine', { gem: 300, flawless: 700, exquisite: 1500 }],
[GTMaterials.Amethyst, 'amethyst', { gem: 300, flawless: 700, exquisite: 1500 }],
[GTMaterials.Grossular, 'grossular', { gem: 300, flawless: 700, exquisite: 1500 }],
[TFGHelpers.getMaterial('gtceu:armalcolite'), 'armalcolite', { gem: 300, flawless: 700, exquisite: 1500 }],
[GTMaterials.Coal, 'coal', { gem: 300, flawless: 700, exquisite: 1500 }],
];
gemMaterials.forEach(([material, output, amounts]) => {
slurryProcessing(event, ChemicalHelper.get(TagPrefix.dust, material, 1), output, amounts.dust);
//slurryProcessing(event, ChemicalHelper.get(TagPrefix.dust, material, 1), output, amounts.dust);
slurryProcessing(event, ChemicalHelper.get(TagPrefix.gem, material, 1), output, amounts.gem);
slurryProcessing(event, ChemicalHelper.get(TagPrefix.gemFlawless, material, 1), output, amounts.flawless);
slurryProcessing(event, ChemicalHelper.get(TagPrefix.gemExquisite, material, 1), output, amounts.exquisite);
});
function slurryCentrifuging(event, name, itemOutputs, fluidOutputs, chancedOutputs) {
const recipe = event.recipes.gtceu.centrifuge(`tfg:dirty_${name}_slurry_centrifuge`)
.inputFluids(Fluid.of(`tfg:dirty_${name}_slurry`, 1000))
.itemOutputs(itemOutputs.map(([item, amount]) => Item.of(item, amount)))
.duration(20 * 16)
.EUt(GTValues.VA[GTValues.MV]);
if (fluidOutputs && fluidOutputs.length > 0) {
recipe.outputFluids(fluidOutputs.map(([fluid, amount]) => Fluid.of(fluid, amount)));
function slurryFiltering(event, name) {
event.recipes.gtceu.chemical_bath(`tfg:filtered_${name}_slurry`)
.itemInputs(Item.of('gtceu:tiny_perlite_dust'))
.inputFluids(Fluid.of(`tfg:dirty_${name}_slurry`, 100))
.outputFluids(Fluid.of(`tfg:filtered_${name}_slurry`, 100))
.duration(20 * 10)
.EUt(GTValues.VA[GTValues.MV]);
}
if (chancedOutputs && chancedOutputs.length > 0) {
chancedOutputs.forEach(([item, chance, tierBoost]) => {
recipe.chancedOutput(Item.of(item), chance, tierBoost);
gemMaterials.forEach(([material, output, amounts]) => {
slurryFiltering(event, output);
});
/* HIDDEN UNTIL VENUS - IV => Recipe will be changed
function slurryCleaning(event, name) {
event.recipes.gtceu.chemical_bath(`tfg:clean_${name}_slurry`)
.itemInputs(Item.of('gtceu:perlite_dust'))
.inputFluids(Fluid.of(`tfg:filtered_${name}_slurry`, 100))
.outputFluids(Fluid.of(`tfg:clean_${name}_slurry`, 100))
.duration(20 * 10)
.EUt(GTValues.VA[GTValues.MV]);
}
}
const GEM_CENTRIFUGE = [
['emerald', [['gtceu:beryllium_dust', 3], ['gtceu:aluminium_dust', 2], ['gtceu:silicon_dust', 6]], [['gtceu:oxygen', 18000]], [['gtceu:ilmenite_dust', 10, 0]]],
['sapphire', [['gtceu:aluminium_dust', 2*6]], [['gtceu:oxygen', 3000*6]], [['gtceu:ilmenite_dust', 200, 0], ['gtceu:iron_dust', 200, 0], ['gtceu:vanadium_dust', 200, 0]]],
['ruby', [['gtceu:chromium_dust', 1*6], ['gtceu:aluminium_dust', 2*6]], [['gtceu:oxygen', 3000*6]], [['gtceu:ilmenite_dust', 200, 0], ['gtceu:iron_dust', 200, 0], ['gtceu:vanadium_dust', 200, 0]]],
['diamond', [['gtceu:carbon_dust', 64], ['gtceu:graphite_dust', 1]], [], []],
['apatite', [['gtceu:calcium_dust', 5*3], ['gtceu:phosphorus_dust', 3*3]], [['gtceu:chlorine', 1000*3]], []],
['spessartine', [['gtceu:aluminium_dust', 2*1.5], ['gtceu:manganese_dust', 3*1.5], ['gtceu:silicon_dust', 3*1.5]], [['gtceu:oxygen', 12000*1.5]], []],
];
gemMaterials.forEach(([material, output, amounts]) => {
slurryCleaning(event, output);
});
*/
GEM_CENTRIFUGE.forEach(([name, itemOutputs, fluidOutputs, chancedOutputs]) => slurryCentrifuging(event, name, itemOutputs, fluidOutputs, chancedOutputs));
// Slurry to Ores
function slurryCentrifuging(event, tier, name, amount, itemOutputs, fluidOutputs, chancedOutputs) {
const recipe = event.recipes.gtceu.centrifuge(`tfg:${tier}_${name}_slurry_centrifuge`)
.inputFluids(Fluid.of(`tfg:${tier}_${name}_slurry`, amount))
.itemOutputs(itemOutputs.map(([item, amount]) => Item.of(item, amount)))
.duration(20 * 16)
.EUt(GTValues.VA[GTValues.MV]);
if (fluidOutputs && fluidOutputs.length > 0) {
recipe.outputFluids(fluidOutputs.map(([fluid, amount]) => Fluid.of(fluid, amount)));
}
if (chancedOutputs && chancedOutputs.length > 0) {
chancedOutputs.forEach(([item, chance, tierBoost]) => {
recipe.chancedOutput(Item.of(item), chance, tierBoost);
});
}
}
// Always target 30 dusts equal to Electrolyzer
const GEM_CENTRIFUGE = [
// name dirty filtered clean(TBD) itemOutputs fluidOutputs chancedOutputs
['emerald', 4000, 2000, 500, [['gtceu:beryllium_dust', 3], ['gtceu:aluminium_dust', 2], ['gtceu:silicon_dust', 6]], [['gtceu:oxygen', 18000]], [['gtceu:ilmenite_dust', 200, 0]]],
['sapphire', 4000, 2000, 500, [['gtceu:aluminium_dust', 2*6]], [['gtceu:oxygen', 3000*6]], [['gtceu:ilmenite_dust', 200, 0], ['gtceu:iron_dust', 200, 0], ['gtceu:vanadium_dust', 200, 0]]],
['ruby', 4000, 2000, 500, [['gtceu:chromium_dust', 1*6], ['gtceu:aluminium_dust', 2*6]], [['gtceu:oxygen', 3000*6]], [['gtceu:ilmenite_dust', 200, 0], ['gtceu:iron_dust', 200, 0], ['gtceu:vanadium_dust', 200, 0]]],
['diamond', 4000, 2000, 500, [['gtceu:carbon_dust', 64], ['gtceu:graphite_dust', 1]], [], []],
['apatite', 4000, 2000, 500, [['gtceu:calcium_dust', 5*3], ['gtceu:phosphorus_dust', 3*3]], [['gtceu:chlorine', 1000*3]], []],
['spessartine', 4000, 2000, 500, [['gtceu:aluminium_dust', 2*1.5], ['gtceu:manganese_dust', 3*1.5], ['gtceu:silicon_dust', 3*1.5]], [['gtceu:oxygen', 12000*1.5]], []],
['yellow_garnet', 4000, 2000, 500, [['gtceu:andradite_dust', 5*2], ['gtceu:grossular_dust', 8*2], ['gtceu:uvarovite_dust', 3*2]], [], []],
['grossular', 4000, 2000, 500, [['gtceu:calcium_dust', 3*1.5], ['gtceu:aluminium_dust', 2*1.5], ['gtceu:silicon_dust',3*1.5]], [['gtceu:oxygen', 12000*1.5]], []],
['armalcolite', 4000, 2000, 500, [['gtceu:magnesium_dust', 1*7.5], ['gtceu:ilmenite_dust', 1*7.5]], [['gtceu:oxygen', 2000*7.5]], []],
['olivine', 4000, 2000, 500, [['gtceu:magnesium_dust', 1*7.5], ['gtceu:iron_dust', 1*7.5], ['gtceu:silicon_dioxide_dust', 2*7.5]], [], []],
['amethyst', 4000, 2000, 500, [['gtceu:silicon_dioxide_dust', 4*6], ['gtceu:iron_dust', 1*6]], [], []],
['coal', 4000, 2000, 500, [['gtceu:carbon_dust', 2*30]], [], [['gtceu:graphite_dust', 2000, 0], ['gtceu:thorium_dust', 200, 0]]],
//['', 4000, 2000, 500, [['', ], ['', ], ['',]], [['', ]], []],
];
const TIERS = ['dirty', 'filtered', 'clean'];
const TIER_AMOUNT_INDEX = { dirty: 1, filtered: 2, clean: 3 };
GEM_CENTRIFUGE.forEach(([name, dirtyAmt, filteredAmt, cleanAmt, itemOutputs, fluidOutputs, chancedOutputs]) => {
TIERS.forEach(tier => {
const amount = tier === 'dirty' ? dirtyAmt : tier === 'filtered' ? filteredAmt : cleanAmt;
slurryCentrifuging(event, tier, name, amount, itemOutputs, fluidOutputs, chancedOutputs);
});
});
}

View File

@@ -189,6 +189,7 @@ function processNormalRawOre(event, material) {
}
event.remove({ id: `greate:milling/integration/gtceu/macerator/macerate_raw_${materialName}_ore_to_crushed_ore` })
event.remove({ id: `greate:crushing/integration/gtceu/macerator/macerate_raw_${materialName}_ore_to_crushed_ore` })
// Macerator
event.recipes.gtceu.macerator(`macerate_raw_${materialName}_ore_to_crushed_ore`)

View File

@@ -109,6 +109,13 @@ function processToolHead(event, headTagPrefix, tagPrefixName, extruderMold, cera
event.remove({ mod: 'gtceu', type: 'minecraft:crafting_shaped', output: toolHeadItem })
const EXCLUDED_MATERIALS = [
'diamond_tipped_mo_50_re',
];
if (EXCLUDED_MATERIALS.includes(material.getName()))
return;
const materialName = material.getName();
const materialAmount = getMaterialAmount(headTagPrefix, material);

View File

@@ -882,6 +882,8 @@ function registerTFGNuclearRecipes(event) {
.outputFluids(Fluid.of('tfg:boron_enriched_coolant', 3600))
.blastFurnaceTemp(2000)
.addData("hb_energy", 30)
.duration(5*20)
.hideDuration(true);
/*
event.recipes.deafission.hb_export('tfg:boron_coolant_to_dense_steam')
.inputFluids(Fluid.of('gtceu:distilled_water', 7200))
@@ -895,13 +897,16 @@ function registerTFGNuclearRecipes(event) {
.outputFluids(Fluid.of('gtceu:dense_steam', 115200))
.blastFurnaceTemp(1000)
.addData("hb_energy", 40)
//.circuit(2)
.duration(5*20)
.hideDuration(true);
event.recipes.deafission.hb_import('tfg:dense_steam')
.inputFluids(Fluid.of('gtceu:dense_steam', 20))
.outputFluids(Fluid.of('minecraft:water', 20))
.blastFurnaceTemp(1000)
.addData("hb_energy", 20)
.duration(5*20)
.hideDuration(true);
//#endregion

View File

@@ -108,6 +108,10 @@ function registerTFGBoilerRecipes(event) {
event.remove({ id: "gtceu:large_boiler/gtceu_oil" })
event.remove({ id: "gtceu:large_boiler/gtceu_oil_heavy" })
event.remove({ id: "gtceu:large_boiler/gtceu_fish_oil" })
event.remove({ id: "gtceu:large_boiler/gtceu_creosote" })
event.remove({ id: "gtceu:large_boiler/wood_gas" })
// This generates both a small boiler and large boiler recipe. Remove it above to avoid a duplicate
event.recipes.gtceu.steam_boiler('tfg:oil')
.inputFluids(Fluid.of('gtceu:oil', 200))
@@ -165,6 +169,65 @@ function registerTFGBoilerRecipes(event) {
.dimension('minecraft:overworld')
.dimension('minecraft:the_nether')
// Super Fuel Boiler
// Weird test
event.recipes.gtceu.super_boiler('tfg:syngas_fuel_binder')
.itemInputs(Item.of('gtceu:bio_chaff', 1))
.inputFluids(Fluid.of('tfg:syngas', 20000))
.duration(20*150)
.dimension('minecraft:overworld')
.dimension('minecraft:the_nether')
event.recipes.gtceu.super_boiler('tfg:syngas_fuel')
.itemInputs(Item.of('#minecraft:coals', 1))
.inputFluids(Fluid.of('tfg:syngas', 20000*4))
.duration(20*150)
.dimension('minecraft:overworld')
.dimension('minecraft:the_nether')
event.recipes.gtceu.super_boiler('tfg:light_fuel_binder')
.itemInputs(Item.of('gtceu:bio_chaff', 1))
.inputFluids(Fluid.of('gtceu:light_fuel', 20000))
.duration(20*150)
.dimension('minecraft:overworld')
.dimension('minecraft:the_nether')
event.recipes.gtceu.super_boiler('tfg:light_fuel')
.itemInputs(Item.of('minecraft:charcoal', 1))
.inputFluids(Fluid.of('gtceu:light_fuel', 20000*4))
.duration(20*150)
.dimension('minecraft:overworld')
.dimension('minecraft:the_nether')
event.recipes.gtceu.super_boiler('tfg:heavy_fuel_binder')
.itemInputs(Item.of('gtceu:bio_chaff', 1))
.inputFluids(Fluid.of('gtceu:heavy_fuel', 20000))
.duration(20*150)
.dimension('minecraft:overworld')
.dimension('minecraft:the_nether')
event.recipes.gtceu.super_boiler('tfg:heavy_fuel')
.itemInputs(Item.of('minecraft:charcoal', 1))
.inputFluids(Fluid.of('gtceu:heavy_fuel', 20000*4))
.duration(20*150)
.dimension('minecraft:overworld')
.dimension('minecraft:the_nether')
event.recipes.gtceu.super_boiler('tfg:naphtha_binder')
.itemInputs(Item.of('gtceu:bio_chaff', 1))
.inputFluids(Fluid.of('gtceu:naphtha', 20000))
.duration(20*150)
.dimension('minecraft:overworld')
.dimension('minecraft:the_nether')
event.recipes.gtceu.super_boiler('tfg:naphtha_fuel')
.itemInputs(Item.of('minecraft:charcoal', 1))
.inputFluids(Fluid.of('gtceu:naphtha', 20000*4))
.duration(20*150)
.dimension('minecraft:overworld')
.dimension('minecraft:the_nether')
// fish oil extraction
event.recipes.gtceu.extractor(`tfg:fish_oil`)
.itemInputs('#minecraft:fishes')

View File

@@ -51,6 +51,7 @@ function registerTFGClayRecipes(event) {
{ input: "firmalife:oven_bottom", output: "firmalife:cured_oven_bottom", name: "oven_bottom" },
{ input: "firmalife:oven_hopper", output: "firmalife:cured_oven_hopper", name: "oven_hopper" },
{ input: "tfg:unfired_rod_mold", output: "tfg:rod_mold", name: "rod_mold" },
{ input: "tfg:unfired_spindle_head_mold", output: "tfg:spindle_head_mold", name: "spindle_head_mold" },
{ input: "tfg:unfired_small_gear_mold", output: "tfg:small_gear_mold", name: "small_gear_mold" },
{ input: "tfg:unfired_nugget_mold", output: "tfg:nugget_mold", name: "nugget_mold" }
]);
@@ -216,6 +217,8 @@ function registerTFGClayRecipes(event) {
// heating
event.recipes.tfc.heating('tfg:unfired_rod_mold', 1399)
.resultItem('tfg:rod_mold')
event.recipes.tfc.heating('tfg:unfired_spindle_head_mold', 1399)
.resultItem('tfg:spindle_head_mold')
event.recipes.tfc.heating('tfg:unfired_small_gear_mold', 1399)
.resultItem('tfg:small_gear_mold')
event.recipes.tfc.heating('tfg:unfired_nugget_mold', 1399)

View File

@@ -51,10 +51,23 @@ function registerTFGClothRecipes(event) {
'tfg:block/polycaprolactam_fabric_block'
)
event.recipes.tfc.damage_inputs_shapeless_crafting(
event.shapeless('8x firmalife:pineapple_yarn', [
'firmalife:pineapple_fiber',
'#tfg:tools/spindles'
]).id('tfg:shapeless/pineapple_yarn')
)
event.recipes.tfc.damage_inputs_shapeless_crafting(
event.shapeless('8x tfc:wool_yarn', [
'tfc:wool',
'#tfg:tools/spindles'
]).id('tfg:shapeless/wool_yarn')
)
event.recipes.tfc.damage_inputs_shapeless_crafting(
event.shapeless('16x tfg:phantom_thread', [
'minecraft:phantom_membrane',
'tfc:spindle'
'#tfg:tools/spindles'
]).id('tfg:shapeless/phantom_thread'))
// Wool Yarn
@@ -110,6 +123,39 @@ function registerTFGClothRecipes(event) {
generateMixerRecipe(event, 'tfc:jute', "#tfg:clean_water 200",
'tfc:jute_fiber', null, [], 100, 4, 16, 'tfg:tfc/jute_fiber')
//#region Spindle Recipes
event.shaped('tfg:copper_spindle', [
'A',
'B'
], {
A: 'tfg:copper_spindle_head',
B: '#forge:rods/wooden'
}).id('tfg:shaped/copper_spindle')
event.recipes.tfc.casting(
'tfg:copper_spindle_head',
'tfg:spindle_head_mold',
TFC.fluidStackIngredient('gtceu:copper', 72),
.1
).id('tfg:casting/copper_spindle_head')
event.recipes.tfc.anvil(
'tfg:copper_spindle_head',
'gtceu:copper_rod',
[
'shrink_last',
'upset_second_last',
'shrink_third_last'
]
).bonus(true)
.tier(1)
.id('tfg:anvil/copper_spindle_head')
//#endregion
//#region flax stuff
event.shapeless('1x tfg:flax_bundle', ['9x tfg:flax_product'])
@@ -210,7 +256,7 @@ function registerTFGClothRecipes(event) {
event.recipes.tfc.damage_inputs_shapeless_crafting(
event.shapeless('4x tfg:linen_thread', [
'tfg:flax_line',
'tfc:spindle'
'#tfg:tools/spindles'
]).id('tfg:shapeless/linen_thread')
)
@@ -254,4 +300,5 @@ function registerTFGClothRecipes(event) {
.duration(100)
.EUt(4)
//#endregion
}

View File

@@ -372,5 +372,16 @@ function registerTFGKnappingRecipes(event) {
])
.ingredient('5x minecraft:clay_ball')
.id('tfg:fire_clay_knapping/unfired_nugget_mold')
event.recipes.tfc.knapping('tfg:unfired_spindle_head_mold', 'tfc:clay', [
"XXXXX",
"XX XX",
" ",
"XX XX",
"XXXXX"
])
.ingredient('5x minecraft:clay_ball')
.id('tfg:clay_knapping/unfired_spindle_head_mold')
}

View File

@@ -39,6 +39,8 @@ function registerTFGPrimitiveItemTags(event) {
event.add('tfg:tools/ore_prospectors/black_steel', 'tfc:metal/propick/black_steel')
event.add('tfg:tools/ore_prospectors/blue_steel', 'tfc:metal/propick/blue_steel')
event.add('tfg:tools/ore_prospectors/red_steel', 'tfc:metal/propick/red_steel')
event.add('tfg:tools/spindles', 'tfc:spindle')
// Paper from wood
event.add('tfg:hardwood_strips', 'tfg:hardwood_strip')
@@ -67,7 +69,7 @@ function registerTFGPrimitiveItemTags(event) {
event.add('forge:cloth', 'tfg:polycaprolactam_fabric')
event.add('tfc:high_quality_cloth', 'tfg:phantom_silk')
event.add('tfc:high_quality_cloth', 'tfg:polycaprolactam_fabric')
event.add('tfc:sewing_light_cloth', 'tfg:phantom_silk')
event.add('tfc:sewing_dark_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')
@@ -126,4 +128,5 @@ function registerTFGPrimitiveFluidTags(event) {
event.add('tfg:usable_in_nugget_mold', material.getFluid().getFluidType().toString())
}
})
event.add('tfg:usable_in_spindle_head_mold', 'gtceu:copper');
}

View File

@@ -101,5 +101,7 @@ const registerTFGRecipes = (event) => {
registerTFGMVMaterialRecipes(event)
registerTFGGemSlurriesProcessing(event)
registerTFGRepairKitRecipes(event)
registerTFGMaterialRemovePipesRecipes(event)
}

View File

@@ -53,7 +53,7 @@ function registerTFGRocketRecipes(event) {
)
.itemOutputs('ad_astra:rocket_fin')
.duration(150)
.circuit(2)
.circuit(1)
.EUt(GTValues.VA[GTValues.HV])
.addMaterialInfo(true)
@@ -142,8 +142,8 @@ function registerTFGRocketRecipes(event) {
.itemInputs(Item.of('tfc:brick/basalt'))
.notConsumable(Item.of('gtceu:wire_extruder_mold'))
.itemOutputs(Item.of('#forge:fine_wires/basalt_fiber', 8))
.duration(20 * 17)
.EUt(GTValues.VA[GTValues.MV])
.duration(20 * 8)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.chemical_bath(`tfg:foils_basalt_fiber`)
.itemInputs(Item.of('#forge:fine_wires/basalt_fiber', 64))
@@ -195,7 +195,7 @@ function registerTFGRocketRecipes(event) {
.inputFluids(Fluid.of('gtceu:vanadium', 144 * 4))
.itemOutputs('32x #forge:dusts/rocket_alloy_t2')
.duration(15 * 20)
.circuit(5)
.circuit(4)
.EUt(GTValues.VA[GTValues.EV])
event.recipes.gtceu.vacuum_freezer('tfg:vacuum_freezer/cool_rocket_alloy_t2')
@@ -210,7 +210,7 @@ function registerTFGRocketRecipes(event) {
'#forge:double_plates/titanium')
.itemOutputs('tfg:rocket_fin_t2')
.duration(180)
.circuit(3)
.circuit(1)
.EUt(GTValues.VA[GTValues.EV])
.addMaterialInfo(true)
@@ -219,7 +219,7 @@ function registerTFGRocketRecipes(event) {
'#forge:double_plates/desh')
.itemOutputs('tfg:rocket_cone_t2')
.duration(1440)
.circuit(3)
.circuit(2)
.EUt(GTValues.VA[GTValues.EV])
.addMaterialInfo(true)

View File

@@ -114,6 +114,35 @@ const registerTFGItemTags = (event) => {
event.add('tfcambiental:cold_stuff', 'tfc:sea_ice')
event.add('tfcambiental:cold_stuff', 'tfg:mars_ice')
event.add('tfcambiental:cold_stuff', 'tfg:dry_ice')
// Tag for new lenses
event.add('forge:lenses/orange', 'gtceu:spessartine_lens')
event.remove('forge:lenses/orange', 'gtceu:orange_glass_lens')
event.add('forge:lenses/cyan', 'gtceu:apatite_lens')
event.remove('forge:lenses/cyan', 'gtceu:cyan_glass_lens')
const LENS_TAGS = [
['emerald', 'green', 'gtceu:emerald_lens', 'gtceu:green_glass_lens'],
['sapphire', 'blue', 'gtceu:sapphire_lens', 'gtceu:blue_glass_lens'],
['ruby', 'red', 'gtceu:ruby_lens', 'gtceu:red_glass_lens'],
['diamond', 'light_blue', 'gtceu:diamond_lens', 'gtceu:light_blue_glass_lens'],
['apatite', 'cyan', 'gtceu:apatite_lens', 'gtceu:cyan_glass_lens'],
['spessartine', 'orange', 'gtceu:spessartine_lens', 'gtceu:orange_glass_lens'],
['yellow_garnet','yellow', 'gtceu:yellow_garnet_lens','gtceu:yellow_glass_lens'],
['olivine', 'lime', 'gtceu:olivine_lens', 'gtceu:lime_glass_lens'],
['amethyst', 'purple', 'gtceu:amethyst_lens', 'gtceu:purple_glass_lens'],
['grossular', 'brown', 'gtceu:grossular_lens', 'gtceu:brown_glass_lens'],
['armalcolite', 'gray', 'gtceu:armalcolite_lens', 'gtceu:gray_glass_lens'],
['coal', 'black', 'gtceu:coal_lens', 'gtceu:black_glass_lens'],
];
LENS_TAGS.forEach(([material, colour, gemLens, glassLens]) => {
event.add(`forge:lenses/${colour}`, gemLens);
event.remove(`forge:lenses/${colour}`, glassLens);
event.removeAllTagsFrom(glassLens);
event.add("c:hidden_from_recipe_viewers", glassLens);
});
}
//#region Blocks
@@ -129,17 +158,12 @@ const registerTFGBlockTags = (event) => {
registerTFGVenusBlockTags(event)
registerTFGAquaponicsBlockTags(event)
event.add('minecraft:mineable/pickaxe', 'tfg:superconductor_coil_large')
event.add('minecraft:mineable/pickaxe', 'tfg:superconductor_coil_small')
event.add('minecraft:mineable/pickaxe', 'tfg:electromagnetic_accelerator')
event.add('minecraft:mineable/pickaxe', 'tfg:reflector')
event.add('minecraft:mineable/pickaxe', 'tfg:machine_casing_aluminium_plated_steel')
event.add('forge:mineable/wrench', 'tfg:superconductor_coil_large')
event.add('forge:mineable/wrench', 'tfg:superconductor_coil_small')
event.add('forge:mineable/wrench', 'tfg:electromagnetic_accelerator')
event.add('forge:mineable/wrench', 'tfg:reflector')
event.add('forge:mineable/wrench', 'tfg:machine_casing_aluminium_plated_steel')
event.add('forge:mineable/wrench', 'tfg:machine_casing_power_casing')
event.add('gtceu:mineable/pickaxe_or_wrench', 'tfg:superconductor_coil_large')
event.add('gtceu:mineable/pickaxe_or_wrench', 'tfg:superconductor_coil_small')
event.add('gtceu:mineable/pickaxe_or_wrench', 'tfg:electromagnetic_accelerator')
event.add('gtceu:mineable/pickaxe_or_wrench', 'tfg:reflector')
event.add('gtceu:mineable/pickaxe_or_wrench', 'tfg:machine_casing_aluminium_plated_steel')
event.add('gtceu:mineable/pickaxe_or_wrench', 'tfg:machine_casing_power_casing')
event.add('minecraft:mineable/pickaxe', 'tfg:mars_ice')
event.add('minecraft:ice', 'tfg:mars_ice')
@@ -158,6 +182,7 @@ const registerTFGFluidTags = (event) => {
event.add('tfg:clean_water', 'tfc:spring_water')
event.add('tfg:water_boiler', 'minecraft:water')
event.add('tfg:water_boiler_t2', 'gtceu:distilled_water')
event.add('tfc:any_water', 'tfg:semiheavy_ammoniacal_water')
event.add('tfc:hydrating', 'tfg:semiheavy_ammoniacal_water')
@@ -195,6 +220,16 @@ const registerTFGFluidTags = (event) => {
event.add('tfc:any_drinkables', 'gtceu:concrete')
event.add('tfc:drinkables', 'rnr:concrete')
event.add('tfc:any_drinkables', 'gtceu:concrete')
event.add('tfg:alcohols', 'tfg:vintage_whiskey')
event.add('tfg:alcohols', 'tfg:vintage_beer')
event.add('tfg:alcohols', 'tfg:vintage_cider')
event.add('tfg:alcohols', 'tfg:vintage_rum')
event.add('tfg:alcohols', 'tfg:vintage_sake')
event.add('tfg:alcohols', 'tfg:vintage_corn_whiskey')
event.add('tfg:alcohols', 'tfg:vintage_rye_whiskey')
event.add('tfg:alcohols', 'tfg:vintage_mead')
event.add('tfg:alcohols', 'tfg:vintage_vodka')
event.add('tfc:drinkables', 'gtceu:ice')
event.add('tfc:any_drinkables', 'gtceu:ice')
@@ -259,4 +294,8 @@ const registerTFGEntityTypeTags = (event) => {
event.add('ad_astra:can_survive_in_space', 'endermanoverhaul:axolotl_pet_enderman')
event.add('ad_astra:can_survive_in_space', 'endermanoverhaul:hammerhead_pet_enderman')
event.add('tfc:hunted_by_ocean_predators', 'tfg:leopard_seal')
event.add('tfc:hunted_by_ocean_predators', 'tfc:penguin')
event.add('tfc:hunted_by_ocean_predators', 'tfc:turtle')
event.add('tfc:land_prey', 'tfg:leopard_seal')
}