merged from upstream
This commit is contained in:
commit
d86b4816d7
1836 changed files with 67562 additions and 25471 deletions
|
|
@ -410,6 +410,9 @@ const registerAdAstraRecipes = (event) => {
|
|||
.EUt(2)
|
||||
|
||||
// Buttons
|
||||
event.shapeless(`3x ad_astra:${x.type}_plating_button`, [`ad_astra:${x.type}_plating_pressure_plate`, '#forge:tools/saws'])
|
||||
.id(`tfg:shapeless/saw_${x.type}_pressure_plate_to_button`)
|
||||
|
||||
generateCutterRecipe(event, `ad_astra:${x.type}_plating_pressure_plate`, `6x ad_astra:${x.type}_plating_button`, 50, 7, `ad_astra_${x.type}_button`)
|
||||
|
||||
// Doors
|
||||
|
|
@ -450,7 +453,7 @@ const registerAdAstraRecipes = (event) => {
|
|||
.itemOutputs('ad_astra:steel_door')
|
||||
.duration(100)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
.addMaterialInfo(true, true)
|
||||
TFGHelpers.registerMaterialInfo('ad_astra:steel_door', [GTMaterials.Steel, 2, GTMaterials.Glass, 3/4, GTMaterials.Polyethylene, 1/4])
|
||||
|
||||
event.recipes.gtceu.assembler(`tfg:ad_astra_steel_trapdoor`)
|
||||
.itemInputs('tfc:metal/trapdoor/steel', '#forge:glass_panes')
|
||||
|
|
@ -458,7 +461,7 @@ const registerAdAstraRecipes = (event) => {
|
|||
.itemOutputs('ad_astra:steel_trapdoor')
|
||||
.duration(100)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
.addMaterialInfo(true, true)
|
||||
TFGHelpers.registerMaterialInfo('ad_astra:steel_trapdoor', [GTMaterials.Steel, 1, GTMaterials.Glass, 3/4, GTMaterials.Polyethylene, 1/4])
|
||||
|
||||
// Etrium only has factory block, encased block, plateblock, panel, and (storage) block
|
||||
|
||||
|
|
|
|||
|
|
@ -48,9 +48,13 @@ const registerAdAstraItemTags = (event) => {
|
|||
event.add('c:hidden_from_recipe_viewers', item)
|
||||
})
|
||||
|
||||
event.add('c:hidden_from_recipe_viewers', 'ad_astra:alphacene_mushroom')
|
||||
event.add('c:hidden_from_recipe_viewers', 'ad_astra:aeronos_mushroom')
|
||||
event.add('c:hidden_from_recipe_viewers', 'ad_astra:strophar_mushroom')
|
||||
|
||||
event.add('c:hidden_from_recipe_viewers', 'tfg:tier_3_double_rocket')
|
||||
event.add('c:hidden_from_recipe_viewers', 'tfg:tier_4_double_rocket')
|
||||
|
||||
|
||||
// Deco blocks
|
||||
const DECO_BLOCKS = [ 'iron', 'steel', 'desh', 'calorite', 'ostrum' ];
|
||||
DECO_BLOCKS.forEach(block => {
|
||||
|
|
@ -68,6 +72,12 @@ const registerAdAstraItemTags = (event) => {
|
|||
event.add('tfg:ad_astra_etrium_blocks', 'ad_astra:etrium_plateblock')
|
||||
event.add('tfg:ad_astra_etrium_blocks', 'ad_astra:etrium_panel')
|
||||
|
||||
event.add('ad_astra:held_over_head', 'tfg:tier_1_double_rocket')
|
||||
event.add('ad_astra:held_over_head', 'tfg:tier_2_double_rocket')
|
||||
event.add('ad_astra:held_over_head', 'tfg:tier_3_double_rocket')
|
||||
event.add('ad_astra:held_over_head', 'tfg:tier_4_double_rocket')
|
||||
|
||||
|
||||
global.AD_ASTRA_WOOD.forEach(wood => {
|
||||
|
||||
if (wood.log) {
|
||||
|
|
@ -117,11 +127,11 @@ const registerAdAstraBlockTags = (event) => {
|
|||
event.add(`tfg:ad_astra_${block}_block`, `ad_astra:encased_${block}_block`)
|
||||
})
|
||||
|
||||
event.add('tfg:ad_astra_etrium_block', 'ad_astra:etrium_factory_block')
|
||||
event.add('tfg:ad_astra_etrium_block', 'ad_astra:encased_etrium_block')
|
||||
event.add('tfg:ad_astra_etrium_block', 'ad_astra:etrium_plateblock')
|
||||
event.add('tfg:ad_astra_etrium_block', 'ad_astra:etrium_panel')
|
||||
event.add('tfg:ad_astra_etrium_block', 'ad_astra:etrium_block')
|
||||
event.add('tfg:ad_astra_etrium_block', 'ad_astra:etrium_factory_block')
|
||||
event.add('tfg:ad_astra_etrium_block', 'ad_astra:encased_etrium_block')
|
||||
event.add('tfg:ad_astra_etrium_block', 'ad_astra:etrium_plateblock')
|
||||
event.add('tfg:ad_astra_etrium_block', 'ad_astra:etrium_panel')
|
||||
event.add('tfg:ad_astra_etrium_block', 'ad_astra:etrium_block')
|
||||
}
|
||||
|
||||
const registerAdAstraBiomeTags = (event) => {
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ const registerAE2Recipes = (event) => {
|
|||
'BA ',
|
||||
'CCB',
|
||||
], {
|
||||
A: '#forge:rods',
|
||||
A: '#forge:rods/wooden',
|
||||
B: '#forge:plates/steel',
|
||||
C: '#forge:exquisite_gems/certus_quartz',
|
||||
}).id('tfg:crafting/certus_quartz_cutting_knife')
|
||||
|
|
@ -35,7 +35,7 @@ const registerAE2Recipes = (event) => {
|
|||
'BA ',
|
||||
'CCB',
|
||||
], {
|
||||
A: '#forge:rods',
|
||||
A: '#forge:rods/wooden',
|
||||
B: '#forge:plates/steel',
|
||||
C: '#forge:exquisite_gems/nether_quartz',
|
||||
}).id('tfg:crafting/nether_quartz_cutting_knife')
|
||||
|
|
@ -59,7 +59,7 @@ const registerAE2Recipes = (event) => {
|
|||
], {
|
||||
A: 'ae2:wireless_receiver',
|
||||
B: 'ae2:calculation_processor',
|
||||
C: '#ae2:glass_cable',
|
||||
C: '#ae2:smart_cable',
|
||||
}).addMaterialInfo().id('tfg:crafting/wireless_access_point')
|
||||
|
||||
// Wireless Receiver
|
||||
|
|
@ -68,7 +68,7 @@ const registerAE2Recipes = (event) => {
|
|||
'CDC',
|
||||
'AEA'
|
||||
], {
|
||||
A: '#ae2:glass_cable',
|
||||
A: '#ae2:smart_cable',
|
||||
B: 'ae2:fluix_pearl',
|
||||
C: 'gtceu:ev_sensor',
|
||||
D: '#forge:rods/titanium',
|
||||
|
|
@ -94,7 +94,7 @@ const registerAE2Recipes = (event) => {
|
|||
' A '
|
||||
], {
|
||||
A: '#forge:plates/red_alloy',
|
||||
B: '#ae2:glass_cable',
|
||||
B: '#ae2:smart_cable',
|
||||
C: 'minecraft:lever'
|
||||
}).addMaterialInfo().id('tfg:crafting/toggle_bus')
|
||||
|
||||
|
|
@ -297,7 +297,7 @@ const registerAE2Recipes = (event) => {
|
|||
' A '
|
||||
], {
|
||||
A: '#forge:plates/steel',
|
||||
B: '#ae2:glass_cable',
|
||||
B: '#ae2:smart_cable',
|
||||
C: 'minecraft:redstone_torch',
|
||||
D: 'ae2:calculation_processor',
|
||||
}).addMaterialInfo().id('tfg:crafting/level_emitter')
|
||||
|
|
@ -309,7 +309,7 @@ const registerAE2Recipes = (event) => {
|
|||
' A '
|
||||
], {
|
||||
A: '#forge:plates/steel',
|
||||
B: '#ae2:glass_cable',
|
||||
B: '#ae2:smart_cable',
|
||||
C: 'minecraft:redstone_torch',
|
||||
D: 'ae2:calculation_processor',
|
||||
E: 'ae2:charged_certus_quartz_crystal'
|
||||
|
|
@ -346,7 +346,7 @@ const registerAE2Recipes = (event) => {
|
|||
], {
|
||||
A: '#forge:plates/stainless_steel',
|
||||
B: '#gtceu:circuits/mv',
|
||||
C: '#ae2:glass_cable',
|
||||
C: '#ae2:smart_cable',
|
||||
D: 'gtceu:aluminium_crate',
|
||||
E: 'ae2:terminal'
|
||||
}).addMaterialInfo().id('tfg:crafting/me_chest')
|
||||
|
|
@ -359,7 +359,7 @@ const registerAE2Recipes = (event) => {
|
|||
], {
|
||||
A: '#forge:plates/steel',
|
||||
B: 'ae2:engineering_processor',
|
||||
C: '#ae2:glass_cable',
|
||||
C: '#ae2:smart_cable',
|
||||
D: '#gtceu:circuits/mv',
|
||||
E: '#forge:plates/titanium'
|
||||
}).addMaterialInfo().id('tfg:crafting/drive')
|
||||
|
|
@ -371,7 +371,7 @@ const registerAE2Recipes = (event) => {
|
|||
], {
|
||||
A: '#forge:plates/steel',
|
||||
B: 'ae2:engineering_processor',
|
||||
C: '#ae2:glass_cable',
|
||||
C: '#ae2:smart_cable',
|
||||
D: '#gtceu:circuits/mv',
|
||||
E: 'minecraft:shulker_shell'
|
||||
}).id('tfg:crafting/drive_shulker')
|
||||
|
|
@ -383,7 +383,7 @@ const registerAE2Recipes = (event) => {
|
|||
'ABA'
|
||||
], {
|
||||
A: '#forge:plates/glass',
|
||||
B: '#ae2:glass_cable',
|
||||
B: '#ae2:smart_cable',
|
||||
C: '#forge:dusts/fluix',
|
||||
D: '#forge:gems/fluix',
|
||||
}).addMaterialInfo().id('tfg:crafting/spatial_pylon')
|
||||
|
|
@ -396,7 +396,7 @@ const registerAE2Recipes = (event) => {
|
|||
], {
|
||||
A: '#forge:plates/glass',
|
||||
B: 'ae2:drive',
|
||||
C: '#ae2:glass_cable',
|
||||
C: '#ae2:smart_cable',
|
||||
D: '#forge:plates/titanium',
|
||||
E: 'ae2:engineering_processor'
|
||||
}).addMaterialInfo().id('tfg:crafting/io_port')
|
||||
|
|
@ -408,7 +408,7 @@ const registerAE2Recipes = (event) => {
|
|||
], {
|
||||
A: '#forge:plates/glass',
|
||||
B: 'ae2:drive',
|
||||
C: '#ae2:glass_cable',
|
||||
C: '#ae2:smart_cable',
|
||||
D: 'minecraft:shulker_shell',
|
||||
E: 'ae2:engineering_processor'
|
||||
}).id('tfg:crafting/io_port_shulker')
|
||||
|
|
@ -420,7 +420,7 @@ const registerAE2Recipes = (event) => {
|
|||
'DED'
|
||||
], {
|
||||
A: '#forge:plates/glass',
|
||||
B: '#ae2:glass_cable',
|
||||
B: '#ae2:smart_cable',
|
||||
C: 'ae2:io_port',
|
||||
D: '#forge:plates/titanium',
|
||||
E: 'ae2:engineering_processor'
|
||||
|
|
@ -432,7 +432,7 @@ const registerAE2Recipes = (event) => {
|
|||
'DED'
|
||||
], {
|
||||
A: '#forge:plates/glass',
|
||||
B: '#ae2:glass_cable',
|
||||
B: '#ae2:smart_cable',
|
||||
C: 'ae2:io_port',
|
||||
D: 'minecraft:shulker_shell',
|
||||
E: 'ae2:engineering_processor'
|
||||
|
|
@ -739,6 +739,15 @@ const registerAE2Recipes = (event) => {
|
|||
.circuit(2)
|
||||
.duration(10)
|
||||
.EUt(480)
|
||||
|
||||
event.recipes.gtceu.assembler('fluix_smart_cable_from_covered')
|
||||
.itemInputs(
|
||||
'4x ae2:fluix_covered_cable',
|
||||
'#forge:dusts/redstone')
|
||||
.itemOutputs('4x ae2:fluix_smart_cable')
|
||||
.circuit(1)
|
||||
.duration(10)
|
||||
.EUt(480)
|
||||
|
||||
// Covered dense cable
|
||||
|
||||
|
|
@ -1146,7 +1155,7 @@ const registerAE2Recipes = (event) => {
|
|||
event.recipes.gtceu.assembler('ae2:level_emitter')
|
||||
.itemInputs(
|
||||
'minecraft:redstone_torch',
|
||||
'#ae2:glass_cable',
|
||||
'#ae2:smart_cable',
|
||||
'#forge:plates/steel',
|
||||
'ae2:calculation_processor')
|
||||
.itemOutputs('ae2:level_emitter')
|
||||
|
|
@ -1160,7 +1169,7 @@ const registerAE2Recipes = (event) => {
|
|||
.itemInputs(
|
||||
'#ae2:interface',
|
||||
'2x gtceu:mv_electric_piston',
|
||||
'#ae2:glass_cable')
|
||||
'#ae2:smart_cable')
|
||||
.inputFluids(Fluid.of('tfg:fluix', 144))
|
||||
.itemOutputs('ae2:storage_bus')
|
||||
.circuit(1)
|
||||
|
|
@ -1174,7 +1183,7 @@ const registerAE2Recipes = (event) => {
|
|||
'#forge:plates/wrought_iron',
|
||||
'ae2:annihilation_core',
|
||||
'2x gtceu:mv_robot_arm',
|
||||
'#ae2:glass_cable')
|
||||
'#ae2:smart_cable')
|
||||
.inputFluids(Fluid.of('tfg:fluix', 144))
|
||||
.itemOutputs('ae2:import_bus')
|
||||
.circuit(2)
|
||||
|
|
@ -1188,7 +1197,7 @@ const registerAE2Recipes = (event) => {
|
|||
'#forge:plates/wrought_iron',
|
||||
'ae2:formation_core',
|
||||
'2x gtceu:mv_robot_arm',
|
||||
'#ae2:glass_cable')
|
||||
'#ae2:smart_cable')
|
||||
.inputFluids(Fluid.of('tfg:fluix', 144))
|
||||
.itemOutputs('ae2:export_bus')
|
||||
.circuit(3)
|
||||
|
|
@ -1865,15 +1874,15 @@ const registerAE2Recipes = (event) => {
|
|||
|
||||
// Quartz Glass
|
||||
event.recipes.gtceu.alloy_smelter('ae2:quartz_glass')
|
||||
.itemInputs('5x #forge:dusts/certus_quartz', '4x #forge:glass')
|
||||
.itemOutputs('4x ae2:quartz_glass')
|
||||
.itemInputs('#forge:glass', '#forge:dusts/certus_quartz')
|
||||
.itemOutputs('ae2:quartz_glass')
|
||||
.duration(20)
|
||||
.EUt(120)
|
||||
.addMaterialInfo(true)
|
||||
|
||||
// Vibrant Quartz Glass
|
||||
event.recipes.gtceu.alloy_smelter('ae2:quartz_vibrant_glass')
|
||||
.itemInputs('ae2:quartz_glass', '8x #forge:dusts/glowstone')
|
||||
.itemInputs('ae2:quartz_glass', '#forge:dusts/glowstone')
|
||||
.itemOutputs('ae2:quartz_vibrant_glass')
|
||||
.duration(20)
|
||||
.EUt(480)
|
||||
|
|
@ -2305,46 +2314,6 @@ const registerAE2Recipes = (event) => {
|
|||
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
// Certus deco blocks
|
||||
|
||||
event.stonecutting('ae2:quartz_block', '#tfg:certus_quartz_blocks')
|
||||
event.stonecutting('ae2:cut_quartz_block', '#tfg:certus_quartz_blocks')
|
||||
event.stonecutting('ae2:smooth_quartz_block', '#tfg:certus_quartz_blocks')
|
||||
event.stonecutting('ae2:quartz_bricks', '#tfg:certus_quartz_blocks')
|
||||
event.stonecutting('ae2:quartz_pillar', '#tfg:certus_quartz_blocks')
|
||||
event.stonecutting('ae2:chiseled_quartz_block', '#tfg:certus_quartz_blocks')
|
||||
event.stonecutting('ae2:quartz_stairs', '#tfg:certus_quartz_blocks')
|
||||
event.stonecutting('ae2:cut_quartz_stairs', '#tfg:certus_quartz_blocks')
|
||||
event.stonecutting('ae2:smooth_quartz_stairs', '#tfg:certus_quartz_blocks')
|
||||
event.stonecutting('ae2:quartz_brick_stairs', '#tfg:certus_quartz_blocks')
|
||||
event.stonecutting('ae2:chiseled_quartz_stairs', '#tfg:certus_quartz_blocks')
|
||||
event.stonecutting('ae2:quartz_pillar_stairs', '#tfg:certus_quartz_blocks')
|
||||
event.stonecutting('ae2:quartz_wall', '#tfg:certus_quartz_blocks')
|
||||
event.stonecutting('ae2:cut_quartz_wall', '#tfg:certus_quartz_blocks')
|
||||
event.stonecutting('ae2:smooth_quartz_wall', '#tfg:certus_quartz_blocks')
|
||||
event.stonecutting('ae2:quartz_brick_wall', '#tfg:certus_quartz_blocks')
|
||||
event.stonecutting('ae2:chiseled_quartz_wall', '#tfg:certus_quartz_blocks')
|
||||
event.stonecutting('ae2:quartz_pillar_wall', '#tfg:certus_quartz_blocks')
|
||||
event.stonecutting('2x ae2:quartz_slab', '#tfg:certus_quartz_blocks')
|
||||
event.stonecutting('2x ae2:cut_quartz_slab', '#tfg:certus_quartz_blocks')
|
||||
event.stonecutting('2x ae2:smooth_quartz_slab', '#tfg:certus_quartz_blocks')
|
||||
event.stonecutting('2x ae2:quartz_brick_slab', '#tfg:certus_quartz_blocks')
|
||||
event.stonecutting('2x ae2:chiseled_quartz_slab', '#tfg:certus_quartz_blocks')
|
||||
event.stonecutting('2x ae2:quartz_pillar_slab', '#tfg:certus_quartz_blocks')
|
||||
|
||||
event.recipes.gtceu.macerator('tfg:macerate_certus_deco')
|
||||
.itemInputs('#tfg:certus_quartz_blocks')
|
||||
.itemOutputs('4x #forge:dusts/certus_quartz')
|
||||
.duration(150)
|
||||
.EUt(2)
|
||||
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
||||
|
||||
event.recipes.gtceu.macerator('tfg:macerate_sky_stone')
|
||||
.itemInputs('#tfg:sky_stone_blocks')
|
||||
.itemOutputs('ae2:sky_dust')
|
||||
.duration(150)
|
||||
.EUt(2)
|
||||
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
||||
|
||||
// other deco
|
||||
|
||||
|
|
|
|||
|
|
@ -13,19 +13,6 @@ const registerAE2ItemTags = (event) => {
|
|||
|
||||
event.removeAll('ae2:p2p_attunements/fe_p2p_tunnel')
|
||||
|
||||
event.add('tfg:certus_quartz_blocks', 'gtceu:certus_quartz_block')
|
||||
event.add('tfg:certus_quartz_blocks', 'ae2:quartz_block')
|
||||
event.add('tfg:certus_quartz_blocks', 'ae2:cut_quartz_block')
|
||||
event.add('tfg:certus_quartz_blocks', 'ae2:smooth_quartz_block')
|
||||
event.add('tfg:certus_quartz_blocks', 'ae2:quartz_bricks')
|
||||
event.add('tfg:certus_quartz_blocks', 'ae2:quartz_pillar')
|
||||
event.add('tfg:certus_quartz_blocks', 'ae2:chiseled_quartz_block')
|
||||
|
||||
event.add('tfg:sky_stone_blocks', 'ae2:sky_stone_block')
|
||||
event.add('tfg:sky_stone_blocks', 'ae2:smooth_sky_stone_block')
|
||||
event.add('tfg:sky_stone_blocks', 'ae2:sky_stone_brick')
|
||||
event.add('tfg:sky_stone_blocks', 'ae2:sky_stone_small_brick')
|
||||
|
||||
event.add('tfg:stone_dusts', 'ae2:sky_dust')
|
||||
|
||||
event.add('tfg:reactant_fluix_ruby', 'gtceu:ruby_gem')
|
||||
|
|
|
|||
|
|
@ -71,6 +71,9 @@ const registerAFCRecipes = (event) => {
|
|||
// ? -> Деревянная кнопка
|
||||
event.remove({ id: `afc:crafting/wood/${wood}_button` })
|
||||
|
||||
event.shapeless(`3x afc:wood/planks/${wood}_button`, [`afc:wood/planks/${wood}_pressure_plate`, '#forge:tools/saws'])
|
||||
.id(`tfg:shapeless/saw_${wood}_pressure_plate_to_button`)
|
||||
|
||||
generateCutterRecipe(event, `afc:wood/planks/${wood}_pressure_plate`, `6x afc:wood/planks/${wood}_button`, 50, 2, `${wood}_button`)
|
||||
|
||||
//Stomping Barrel
|
||||
|
|
@ -86,7 +89,37 @@ const registerAFCRecipes = (event) => {
|
|||
|
||||
}).id(`afc:crafting/wood/${wood}_stomping_barrel`)
|
||||
|
||||
})
|
||||
event.recipes.gtceu.lathe(`tfg:stripping_${wood}_log`)
|
||||
.itemInputs(`afc:wood/log/${wood}`)
|
||||
.itemOutputs(`afc:wood/stripped_log/${wood}`)
|
||||
.duration(50)
|
||||
.EUt(2)
|
||||
|
||||
event.recipes.gtceu.lathe(`tfg:stripping_${wood}_wood`)
|
||||
.itemInputs(`afc:wood/wood/${wood}`)
|
||||
.itemOutputs(`afc:wood/stripped_wood/${wood}`)
|
||||
.duration(50)
|
||||
.EUt(2)
|
||||
|
||||
event.recipes.vintageimprovements.polishing(`afc:wood/stripped_log/${wood}`, `afc:wood/log/${wood}`)
|
||||
.speedLimits(0)
|
||||
.processingTime(50 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER)
|
||||
.id(`tfg:vi/lathe/stripping_${wood}_log`)
|
||||
|
||||
event.recipes.vintageimprovements.polishing(`afc:wood/stripped_wood/${wood}`, `afc:wood/wood/${wood}`)
|
||||
.speedLimits(0)
|
||||
.processingTime(50 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER)
|
||||
.id(`tfg:vi/lathe/stripping_${wood}_wood`)
|
||||
});
|
||||
|
||||
global.AFC_SAPLINGS.forEach(wood => {
|
||||
event.shaped(`4x afc:wood/fallen_leaves/${wood.sapling}`,[
|
||||
'AA',
|
||||
'AA'
|
||||
], {
|
||||
A: `afc:wood/leaves/${wood.sapling}`
|
||||
}).id(`tfg:shaped/afc/${wood.sapling}_leaves_to_fallen_leaves`);
|
||||
});
|
||||
|
||||
// #endregion
|
||||
|
||||
|
|
@ -234,33 +267,6 @@ const registerAFCRecipes = (event) => {
|
|||
.outputItem('afc:birch_sugar')
|
||||
.id('tfg:barrel/birch_syrup_to_sugar')
|
||||
|
||||
|
||||
// Stripped logs
|
||||
|
||||
global.AFC_WOOD_TYPES.forEach(wood => {
|
||||
event.recipes.gtceu.lathe(`tfg:stripping_${wood}_log`)
|
||||
.itemInputs(`afc:wood/log/${wood}`)
|
||||
.itemOutputs(`afc:wood/stripped_log/${wood}`)
|
||||
.duration(50)
|
||||
.EUt(2)
|
||||
|
||||
event.recipes.gtceu.lathe(`tfg:stripping_${wood}_wood`)
|
||||
.itemInputs(`afc:wood/wood/${wood}`)
|
||||
.itemOutputs(`afc:wood/stripped_wood/${wood}`)
|
||||
.duration(50)
|
||||
.EUt(2)
|
||||
|
||||
event.recipes.vintageimprovements.polishing(`afc:wood/stripped_log/${wood}`, `afc:wood/log/${wood}`)
|
||||
.speedLimits(0)
|
||||
.processingTime(50 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER)
|
||||
.id(`tfg:vi/lathe/stripping_${wood}_log`)
|
||||
|
||||
event.recipes.vintageimprovements.polishing(`afc:wood/stripped_wood/${wood}`, `afc:wood/wood/${wood}`)
|
||||
.speedLimits(0)
|
||||
.processingTime(50 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER)
|
||||
.id(`tfg:vi/lathe/stripping_${wood}_wood`)
|
||||
})
|
||||
|
||||
const MORE_STRIPPING = [
|
||||
{ wood: 'black_oak', stripped: 'oak', stripped_mod: 'tfc' },
|
||||
{ wood: 'rainbow_eucalyptus', stripped: 'eucalyptus', stripped_mod: 'afc' },
|
||||
|
|
@ -293,4 +299,45 @@ const registerAFCRecipes = (event) => {
|
|||
.processingTime(50 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER)
|
||||
.id(`tfg:vi/lathe/stripping_${x.wood}_wood`)
|
||||
})
|
||||
|
||||
/**
|
||||
* @property {Array} afcWoodRecyclingIndex - Wood recycling material index.
|
||||
*/
|
||||
const afcWoodRecyclingIndex = [
|
||||
['afc:wood/chest_minecart/{type}', ['{wood}', 4, GTMaterials.WroughtIron, 5]],
|
||||
['afc:wood/planks/{type}', ['{wood}', 8]],
|
||||
['afc:wood/planks/{type}_door', ['{wood}', 6]],
|
||||
['afc:wood/planks/{type}_trapdoor', ['{wood}', 4]],
|
||||
['afc:wood/planks/{type}_fence', ['{wood}', 4]],
|
||||
['afc:wood/planks/{type}_log_fence', ['{wood}', 8]],
|
||||
['afc:wood/planks/{type}_fence_gate', ['{wood}', 8]],
|
||||
['afc:wood/planks/{type}_slab', ['{wood}', 2]],
|
||||
['afc:wood/planks/{type}_stairs', ['{wood}', 3]],
|
||||
['afc:wood/planks/{type}_pressure_plate', ['{wood}', 4]],
|
||||
['afc:wood/planks/{type}_button', ['{wood}', 1]],
|
||||
['afc:wood/chest/{type}', ['{wood}', 16]],
|
||||
['afc:wood/trapped_chest/{type}', ['{wood}', 16, GTMaterials.WroughtIron, 4/9, GTMaterials.Wood, 1]]
|
||||
];
|
||||
/**
|
||||
* @param {Array} materials
|
||||
* @param {string} woodMaterial
|
||||
* @return {Array}
|
||||
*/
|
||||
function resolveArgs(materials, woodMaterial) {
|
||||
return materials.map(materials => materials === '{wood}' ? woodMaterial : materials);
|
||||
};
|
||||
global.AFC_HARDWOOD_TYPES.forEach(type => {
|
||||
afcWoodRecyclingIndex.forEach(([template, args]) => {
|
||||
const item = template.replace('{type}', type);
|
||||
const resolvedArgs = resolveArgs(args, GTMaterials.get('hardwood'));
|
||||
TFGHelpers.registerMaterialInfo(item, resolvedArgs);
|
||||
});
|
||||
});
|
||||
global.AFC_SOFTWOOD_TYPES.forEach(type => {
|
||||
afcWoodRecyclingIndex.forEach(([template, args]) => {
|
||||
const item = template.replace('{type}', type);
|
||||
const resolvedArgs = resolveArgs(args, GTMaterials.Wood);
|
||||
TFGHelpers.registerMaterialInfo(item, resolvedArgs);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -69,21 +69,21 @@ const registerAFCItemTags = (event) => {
|
|||
event.add("tfg:rosin_logs", "#tfc:white_cedar_logs")
|
||||
event.add("tfg:rosin_logs", "#tfc:douglas_fir_logs")
|
||||
|
||||
event.add("tfg:rosin_saplings", 'tfc:wood/leaves/aspen')
|
||||
event.add("tfg:rosin_saplings", 'afc:wood/leaves/coast_spruce')
|
||||
event.add("tfg:rosin_saplings", 'tfc:wood/leaves/spruce')
|
||||
event.add("tfg:rosin_saplings", 'afc:wood/leaves/black_spruce')
|
||||
event.add("tfg:rosin_saplings", 'afc:wood/leaves/sitka_spruce')
|
||||
event.add("tfg:rosin_saplings", 'tfc:wood/leaves/douglas_fir')
|
||||
event.add("tfg:rosin_saplings", 'tfc:wood/leaves/white_cedar')
|
||||
event.add("tfg:rosin_leaves", 'tfc:wood/leaves/aspen')
|
||||
event.add("tfg:rosin_leaves", 'afc:wood/leaves/coast_spruce')
|
||||
event.add("tfg:rosin_leaves", 'tfc:wood/leaves/spruce')
|
||||
event.add("tfg:rosin_leaves", 'afc:wood/leaves/black_spruce')
|
||||
event.add("tfg:rosin_leaves", 'afc:wood/leaves/sitka_spruce')
|
||||
event.add("tfg:rosin_leaves", 'tfc:wood/leaves/douglas_fir')
|
||||
event.add("tfg:rosin_leaves", 'tfc:wood/leaves/white_cedar')
|
||||
|
||||
event.add("tfg:rosin_leaves", 'tfc:wood/sapling/aspen')
|
||||
event.add("tfg:rosin_leaves", 'afc:wood/sapling/coast_spruce')
|
||||
event.add("tfg:rosin_leaves", 'tfc:wood/sapling/spruce')
|
||||
event.add("tfg:rosin_leaves", 'afc:wood/sapling/black_spruce')
|
||||
event.add("tfg:rosin_leaves", 'afc:wood/sapling/sitka_spruce')
|
||||
event.add("tfg:rosin_leaves", 'tfc:wood/sapling/douglas_fir')
|
||||
event.add("tfg:rosin_leaves", 'tfc:wood/sapling/white_cedar')
|
||||
event.add("tfg:rosin_saplings", 'tfc:wood/sapling/aspen')
|
||||
event.add("tfg:rosin_saplings", 'afc:wood/sapling/coast_spruce')
|
||||
event.add("tfg:rosin_saplings", 'tfc:wood/sapling/spruce')
|
||||
event.add("tfg:rosin_saplings", 'afc:wood/sapling/black_spruce')
|
||||
event.add("tfg:rosin_saplings", 'afc:wood/sapling/sitka_spruce')
|
||||
event.add("tfg:rosin_saplings", 'tfc:wood/sapling/douglas_fir')
|
||||
event.add("tfg:rosin_saplings", 'tfc:wood/sapling/white_cedar')
|
||||
|
||||
// Maple Syrup Tag
|
||||
|
||||
|
|
|
|||
|
|
@ -2,29 +2,23 @@
|
|||
"use strict";
|
||||
|
||||
const registerAsticorCartsRecipes = (event) => {
|
||||
event.remove({ id: 'astikorcarts:animal_cart' })
|
||||
event.remove({ id: 'astikorcarts:supply_cart' })
|
||||
event.remove({ id: 'astikorcarts:plow' })
|
||||
event.remove({ id: 'astikorcarts:wheel' })
|
||||
event.remove({ id: 'astikorcarts:animal_cart' });
|
||||
event.remove({ id: 'astikorcarts:supply_cart' });
|
||||
event.remove({ id: 'astikorcarts:plow' });
|
||||
event.remove({ id: 'astikorcarts:wheel' });
|
||||
|
||||
event.recipes.gtceu.macerator(`tfg:recycle_astikor_animal_cart`)
|
||||
.itemInputs('#tfcastikorcarts:animal_cart')
|
||||
.itemOutputs('#forge:dusts/brass')
|
||||
.duration(100)
|
||||
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
global.TFC_HARDWOOD_TYPES.forEach(type => {
|
||||
TFGHelpers.registerMaterialInfo(`tfcastikorcarts:wheel/${type}`, [GTMaterials.get('hardwood'), 2]);
|
||||
TFGHelpers.registerMaterialInfo(`tfcastikorcarts:supply_cart/${type}`, [GTMaterials.Brass, 1, GTMaterials.get('hardwood'), 8, GTMaterials.Wood, 12]);
|
||||
TFGHelpers.registerMaterialInfo(`tfcastikorcarts:plow/${type}`, [GTMaterials.Brass, 1, GTMaterials.get('hardwood'), 8]);
|
||||
TFGHelpers.registerMaterialInfo(`tfcastikorcarts:animal_cart/${type}`, [GTMaterials.Brass, 1, GTMaterials.get('hardwood'), 14]);
|
||||
});
|
||||
global.TFC_SOFTWOOD_TYPES.forEach(type => {
|
||||
TFGHelpers.registerMaterialInfo(`tfcastikorcarts:wheel/${type}`, [GTMaterials.Wood, 2]);
|
||||
TFGHelpers.registerMaterialInfo(`tfcastikorcarts:supply_cart/${type}`, [GTMaterials.Brass, 1, GTMaterials.Wood, 20]);
|
||||
TFGHelpers.registerMaterialInfo(`tfcastikorcarts:plow/${type}`, [GTMaterials.Brass, 1, GTMaterials.Wood, 8]);
|
||||
TFGHelpers.registerMaterialInfo(`tfcastikorcarts:animal_cart/${type}`, [GTMaterials.Brass, 1, GTMaterials.Wood, 14]);
|
||||
});
|
||||
|
||||
event.recipes.gtceu.macerator(`tfg:recycle_astikor_supply_cart`)
|
||||
.itemInputs('#tfcastikorcarts:supply_cart')
|
||||
.itemOutputs('#forge:dusts/brass')
|
||||
.duration(100)
|
||||
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.recipes.gtceu.macerator(`tfg:recycle_astikor_plow`)
|
||||
.itemInputs('#tfcastikorcarts:plow')
|
||||
.itemOutputs('#forge:dusts/brass')
|
||||
.duration(100)
|
||||
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
}
|
||||
event.replaceInput({ mod: 'tfcastikorcarts' }, '#forge:rods', '#mcw_tfc_aio:metal_rods');
|
||||
};
|
||||
12
kubejs/server_scripts/beneath/loot.js
Normal file
12
kubejs/server_scripts/beneath/loot.js
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
// priority: 0
|
||||
"use strict";
|
||||
|
||||
function registerBeneathLoots(event) {
|
||||
event.addEntityLootModifier('beneath:red_elk')
|
||||
.addLoot(LootEntry.of('waterflasks:bladder').when(c => c.randomChance(0.1)))
|
||||
|
||||
event.addEntityLootModifier('beneath:red_elk')
|
||||
.matchMainHand('#forge:tools/butchery_knives')
|
||||
.addWeightedLoot([2, 4], ['tfc:food/venison'])
|
||||
.addWeightedLoot([1, 2], ['tfc:blubber'])
|
||||
}
|
||||
|
|
@ -36,6 +36,7 @@ const registerBeneathRecipes = (event) => {
|
|||
event.remove({ id: 'beneath:crafting/wood/warped_lumber_log' })
|
||||
event.remove({ id: 'beneath:crafting/wood/warped_lumber_planks' })
|
||||
event.remove({ id: 'beneath:crafting/wood/warped_slab_undo' })
|
||||
event.remove({ id: 'beneath:crafting/ancient_altar' })
|
||||
|
||||
event.shaped('beneath:unposter', [
|
||||
'ABA',
|
||||
|
|
@ -48,14 +49,14 @@ const registerBeneathRecipes = (event) => {
|
|||
}).id('beneath:crafting/unposter')
|
||||
|
||||
event.shapeless('beneath:hellbricks', [
|
||||
'#forge:stone_bricks',
|
||||
'minecraft:nether_bricks',
|
||||
'minecraft:magma_cream',
|
||||
'tfc:powder/sulfur',
|
||||
'tfc:soot'
|
||||
]).id('tfg:shapeless/hellbricks_from_soot')
|
||||
|
||||
event.shapeless('beneath:hellbricks', [
|
||||
'#forge:stone_bricks',
|
||||
'minecraft:nether_bricks',
|
||||
'minecraft:magma_cream',
|
||||
'tfc:powder/sulfur',
|
||||
'tfc:powder/wood_ash'
|
||||
|
|
@ -63,15 +64,6 @@ const registerBeneathRecipes = (event) => {
|
|||
|
||||
event.recipes.tfc.landslide('beneath:soul_clay', 'beneath:soul_clay')
|
||||
|
||||
|
||||
Ingredient.of('#beneath:mushrooms').stacks.forEach(element => {
|
||||
const itemId = element.id;
|
||||
const recipeId = `greenhouse_${itemId.replace(':', '_')}`;
|
||||
|
||||
generateGreenHouseRecipe(event, element.withCount(4), '#tfc:any_fresh_water', 8000, element.withCount(24),
|
||||
recipeId, 'minecraft:the_nether', 8, element.withCount(4), GTValues.VH[GTValues.LV]);
|
||||
});
|
||||
|
||||
event.shaped('beneath:wood/sewing_table/crimson', [
|
||||
' AB',
|
||||
'CCC',
|
||||
|
|
@ -93,4 +85,57 @@ const registerBeneathRecipes = (event) => {
|
|||
C: 'beneath:wood/planks/warped',
|
||||
D: 'beneath:wood/log/warped'
|
||||
}).id('tfg:shaped/warped_sewing_table')
|
||||
|
||||
event.shaped(`4x beneath:wood/fallen_leaves/crimson`,[
|
||||
'AA',
|
||||
'AA'
|
||||
], {
|
||||
A: `beneath:wood/leaves/crimson`
|
||||
}).id(`tfg:shaped/beneath/crimson_leaves_to_fallen_leaves`);
|
||||
|
||||
event.shaped(`4x beneath:wood/fallen_leaves/warped`,[
|
||||
'AA',
|
||||
'AA'
|
||||
], {
|
||||
A: `beneath:wood/leaves/warped`
|
||||
}).id(`tfg:shaped/beneath/warped_leaves_to_fallen_leaves`);
|
||||
|
||||
|
||||
/**
|
||||
* @property {Array} beneathWoodRecyclingIndex - Wood recycling material index.
|
||||
*/
|
||||
const beneathWoodRecyclingIndex = [
|
||||
['beneath:wood/chest_minecart/{type}', ['{wood}', 4, GTMaterials.WroughtIron, 5]],
|
||||
['beneath:wood/planks/{type}', ['{wood}', 8]],
|
||||
['beneath:wood/planks/{type}_door', ['{wood}', 6]],
|
||||
['beneath:wood/planks/{type}_trapdoor', ['{wood}', 4]],
|
||||
['beneath:wood/planks/{type}_fence', ['{wood}', 4]],
|
||||
['beneath:wood/planks/{type}_log_fence', ['{wood}', 8]],
|
||||
['beneath:wood/planks/{type}_fence_gate', ['{wood}', 8]],
|
||||
['beneath:wood/planks/{type}_slab', ['{wood}', 2]],
|
||||
['beneath:wood/planks/{type}_stairs', ['{wood}', 3]],
|
||||
['beneath:wood/planks/{type}_pressure_plate', ['{wood}', 4]],
|
||||
['beneath:wood/planks/{type}_button', ['{wood}', 1]],
|
||||
['beneath:wood/chest/{type}', ['{wood}', 16]],
|
||||
['beneath:wood/trapped_chest/{type}', ['{wood}', 16, GTMaterials.WroughtIron, 4/9, GTMaterials.Wood, 1]]
|
||||
];
|
||||
/**
|
||||
* @param {Array} materials
|
||||
* @param {string} woodMaterial
|
||||
* @return {Array}
|
||||
*/
|
||||
function resolveArgs(materials, woodMaterial) {
|
||||
return materials.map(materials => materials === '{wood}' ? woodMaterial : materials);
|
||||
};
|
||||
|
||||
beneathWoodRecyclingIndex.forEach(([template, args]) => {
|
||||
const item = template.replace('{type}', 'crimson');
|
||||
const resolvedArgs = resolveArgs(args, GTMaterials.get('hardwood'));
|
||||
TFGHelpers.registerMaterialInfo(item, resolvedArgs);
|
||||
});
|
||||
beneathWoodRecyclingIndex.forEach(([template, args]) => {
|
||||
const item = template.replace('{type}', 'warped');
|
||||
const resolvedArgs = resolveArgs(args, GTMaterials.Wood);
|
||||
TFGHelpers.registerMaterialInfo(item, resolvedArgs);
|
||||
});
|
||||
}
|
||||
|
|
@ -1,32 +1,5 @@
|
|||
"use strict";
|
||||
|
||||
const registerBeneathBlockTags = (event) => {
|
||||
|
||||
global.BENEATH_DISABLED_ITEMS.forEach(item => {
|
||||
event.removeAllTagsFrom(item)
|
||||
event.add('c:hidden_from_recipe_viewers', item)
|
||||
})
|
||||
|
||||
|
||||
event.add('forge:ores', 'beneath:ore/nether_cursecoal')
|
||||
event.add('forge:ores', 'beneath:ore/blackstone_sylvite')
|
||||
event.add('beneath:mushrooms', 'minecraft:red_mushroom')
|
||||
event.add('beneath:mushrooms', 'minecraft:brown_mushroom')
|
||||
event.add('beneath:poisonous_mushrooms', 'minecraft:red_mushroom')
|
||||
|
||||
event.add('tfc:can_landslide', 'beneath:soul_clay')
|
||||
|
||||
event.remove('beneath:sparks_on_sulfur')
|
||||
|
||||
event.add('beneath:blackstone_decor', 'minecraft:blackstone');
|
||||
event.remove('beneath:blackstone')
|
||||
|
||||
event.remove('minecraft:leaves', 'beneath:wood/leaves/crimson')
|
||||
event.remove('minecraft:leaves', 'beneath:wood/leaves/warped')
|
||||
event.add('tfg:do_not_destroy_in_space', 'beneath:wood/leaves/crimson')
|
||||
event.add('tfg:do_not_destroy_in_space', 'beneath:wood/leaves/warped')
|
||||
}
|
||||
|
||||
const registerBeneathItemTags = (event) => {
|
||||
|
||||
global.BENEATH_DISABLED_ITEMS.forEach(item => {
|
||||
|
|
@ -35,9 +8,7 @@ const registerBeneathItemTags = (event) => {
|
|||
})
|
||||
|
||||
event.add("forge:raw_materials/cursecoal", "beneath:cursecoal")
|
||||
event.add("forge:raw_materials/sylvite", "tfc:ores/sylvite")
|
||||
event.add('forge:ores', 'beneath:ore/nether_cursecoal')
|
||||
event.add('forge:ores', 'beneath:ore/blackstone_sylvite')
|
||||
|
||||
event.add('forge:mushrooms', '#beneath:mushrooms')
|
||||
|
||||
|
|
@ -54,4 +25,47 @@ const registerBeneathItemTags = (event) => {
|
|||
event.add('tfg:do_not_destroy_in_space', 'beneath:wood/leaves/warped')
|
||||
event.add('tfc:sewing_tables', 'beneath:wood/sewing_table/crimson')
|
||||
event.add('tfc:sewing_tables', 'beneath:wood/sewing_table/warped')
|
||||
}
|
||||
|
||||
event.add('tfg:softwood', 'beneath:wood/log/crimson')
|
||||
event.add('tfg:softwood', 'beneath:wood/wood/crimson')
|
||||
event.add('tfg:softwood', 'beneath:wood/stripped_log/crimson')
|
||||
event.add('tfg:softwood', 'beneath:wood/stripped_wood/crimson')
|
||||
event.add('tfg:stripped_softwood', 'beneath:wood/stripped_log/crimson')
|
||||
event.add('tfg:stripped_softwood', 'beneath:wood/stripped_wood/crimson')
|
||||
event.add('tfg:hardwood', 'beneath:wood/log/warped')
|
||||
event.add('tfg:hardwood', 'beneath:wood/wood/warped')
|
||||
event.add('tfg:hardwood', 'beneath:wood/stripped_log/warped')
|
||||
event.add('tfg:hardwood', 'beneath:wood/stripped_wood/warped')
|
||||
event.add('tfg:stripped_hardwood', 'beneath:wood/stripped_log/warped')
|
||||
event.add('tfg:stripped_hardwood', 'beneath:wood/stripped_wood/warped')
|
||||
|
||||
event.add("tfg:rubber_plants", "beneath:gleamflower")
|
||||
event.add("tfg:rubber_plants", "beneath:burpflower")
|
||||
event.add("tfg:rubber_plants", "beneath:food/fools_funnel")
|
||||
}
|
||||
|
||||
const registerBeneathBlockTags = (event) => {
|
||||
|
||||
global.BENEATH_DISABLED_ITEMS.forEach(item => {
|
||||
event.removeAllTagsFrom(item)
|
||||
event.add('c:hidden_from_recipe_viewers', item)
|
||||
})
|
||||
|
||||
|
||||
event.add('forge:ores', 'beneath:ore/nether_cursecoal')
|
||||
event.add('beneath:mushrooms', 'minecraft:red_mushroom')
|
||||
event.add('beneath:mushrooms', 'minecraft:brown_mushroom')
|
||||
event.add('beneath:poisonous_mushrooms', 'minecraft:red_mushroom')
|
||||
|
||||
event.add('tfc:can_landslide', 'beneath:soul_clay')
|
||||
|
||||
event.remove('beneath:sparks_on_sulfur')
|
||||
|
||||
event.add('beneath:blackstone_decor', 'minecraft:blackstone');
|
||||
event.remove('beneath:blackstone')
|
||||
|
||||
event.remove('minecraft:leaves', 'beneath:wood/leaves/crimson')
|
||||
event.remove('minecraft:leaves', 'beneath:wood/leaves/warped')
|
||||
event.add('tfg:do_not_destroy_in_space', 'beneath:wood/leaves/crimson')
|
||||
event.add('tfg:do_not_destroy_in_space', 'beneath:wood/leaves/warped')
|
||||
}
|
||||
|
|
|
|||
16
kubejs/server_scripts/blockrunner/tags.js
Normal file
16
kubejs/server_scripts/blockrunner/tags.js
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
// priority: 0
|
||||
"use strict";
|
||||
|
||||
function registerBlockRunnerBlockTags(event) {
|
||||
|
||||
// BlockRunner is only included as a dependency for Roads n Roofs, so things like jetpacks
|
||||
// and planes don't go supersonic when just above a road. We don't actually care about
|
||||
// BlockRunner's own boost effects
|
||||
|
||||
event.removeAll('blockrunner:slow_blocks')
|
||||
event.removeAll('blockrunner:very_slow_blocks')
|
||||
event.removeAll('blockrunner:quick_blocks')
|
||||
event.removeAll('blockrunner:very_quick_blocks')
|
||||
event.removeAll('blockrunner:slightly_slow_blocks')
|
||||
event.removeAll('blockrunner:slightly_quick_blocks')
|
||||
}
|
||||
|
|
@ -29,11 +29,11 @@ const registerBuildingGadgetsRecipes = (event) => {
|
|||
|
||||
// Copy Paste Gadget
|
||||
event.recipes.gtceu.assembler('buildinggadgets2:/assembler/gadget_copy_paste')
|
||||
.itemInputs('1x gtceu:iv_emitter','2x gtceu:iv_fluid_regulator','6x #forge:plates/tungsten_steel', '2x gtceu:iv_robot_arm', '1x gtceu:computer_monitor_cover', '1x gtceu:lapotron_crystal', '1x ae2:spatial_storage_cell_2')
|
||||
.itemInputs('1x gtceu:ev_emitter','2x gtceu:ev_fluid_regulator','6x #forge:plates/titanium', '2x gtceu:ev_robot_arm', '1x gtceu:computer_monitor_cover', '1x #gtceu:batteries/ev', '1x ae2:spatial_storage_cell_2', '3x #forge:double_plates/ostrum')
|
||||
.circuit(4)
|
||||
.itemOutputs('buildinggadgets2:gadget_copy_paste')
|
||||
.duration(160)
|
||||
.EUt(8100)
|
||||
.EUt(1925)
|
||||
.addMaterialInfo(true)
|
||||
|
||||
// Dustruction Gadget
|
||||
|
|
@ -47,11 +47,19 @@ const registerBuildingGadgetsRecipes = (event) => {
|
|||
|
||||
// Cut Paste Gadget
|
||||
event.recipes.gtceu.assembler('buildinggadgets2:/assembler/gadget_cut_paste')
|
||||
.itemInputs('1x gtceu:iv_sensor','2x gtceu:iv_fluid_regulator','6x #forge:plates/tungsten_steel', '2x gtceu:iv_robot_arm', '1x gtceu:computer_monitor_cover', '1x gtceu:energy_crystal', '1x ae2:inverter_card')
|
||||
.itemInputs('1x gtceu:ev_sensor','2x gtceu:ev_fluid_regulator','6x #forge:plates/titanium', '2x gtceu:ev_robot_arm', '1x gtceu:computer_monitor_cover', '1x #gtceu:batteries/ev', '1x ae2:inverter_card', '1x species:kinetic_core')
|
||||
.circuit(4)
|
||||
.itemOutputs('buildinggadgets2:gadget_cut_paste')
|
||||
.duration(160)
|
||||
.EUt(8100)
|
||||
.EUt(1925)
|
||||
.addMaterialInfo(true)
|
||||
|
||||
event.recipes.gtceu.assembler('buildinggadgets2:/assembler/gadget_cut_paste_iv_circuits')
|
||||
.itemInputs('1x gtceu:ev_sensor','2x gtceu:ev_fluid_regulator','6x #forge:plates/titanium', '2x gtceu:ev_robot_arm', '1x gtceu:computer_monitor_cover', '1x #gtceu:batteries/ev', '1x ae2:inverter_card', '2x #gtceu:circuits/iv')
|
||||
.circuit(4)
|
||||
.itemOutputs('buildinggadgets2:gadget_cut_paste')
|
||||
.duration(160)
|
||||
.EUt(1925)
|
||||
.addMaterialInfo(true)
|
||||
|
||||
// Template Manager
|
||||
|
|
|
|||
|
|
@ -8,4 +8,6 @@ const registerTFCDataForChalk = (evt) => {
|
|||
global.MINECRAFT_DYE_NAMES.forEach(dyeName => {
|
||||
evt.itemHeat(`tfg:wet_${dyeName}_chalk`, 1, null, null, `tfg:heating/wet_${dyeName}_chalk`)
|
||||
})
|
||||
}
|
||||
|
||||
evt.itemHeat('tfg:unfired_chalk', 1, null, null, 'tfg:heating/unfired_chalk')
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,90 +2,82 @@
|
|||
|
||||
/**
|
||||
*
|
||||
* @param {Internal.RecipesEventJS} evt
|
||||
* @param {Internal.RecipesEventJS} event
|
||||
*/
|
||||
const registerChalkRecipes = (evt) => {
|
||||
evt.remove({ output: "#chalk:chalks" })
|
||||
const registerChalkRecipes = (event) => {
|
||||
event.remove({ output: "#chalk:chalks" })
|
||||
|
||||
evt.shaped('chalk:chalk_box', [
|
||||
'ABA',
|
||||
event.shaped('chalk:chalk_box', [
|
||||
'ABA',
|
||||
' A '
|
||||
], {
|
||||
A: 'paper',
|
||||
B: ['tfc:glue']
|
||||
}).id('chalk:chalk_box')
|
||||
A: 'paper',
|
||||
B: ['tfc:glue']
|
||||
}).id('chalk:chalk_box')
|
||||
|
||||
// only 1/4 durability remaining
|
||||
evt.recipes.tfc.knapping(
|
||||
Item.of('chalk:white_chalk', '{Damage:48}'),
|
||||
'tfc:rock',
|
||||
[
|
||||
' X ',
|
||||
' X ',
|
||||
' X ',
|
||||
' X ',
|
||||
' X '
|
||||
]
|
||||
).ingredient('tfc:rock/loose/chalk')
|
||||
.id('tfg:knapping/chalk')
|
||||
|
||||
evt.recipes.tfc.knapping(
|
||||
Item.of('chalk:light_gray_chalk', '{Damage:48}'),
|
||||
'tfc:rock',
|
||||
[
|
||||
' X ',
|
||||
' X ',
|
||||
' X ',
|
||||
' X ',
|
||||
' X '
|
||||
]
|
||||
).ingredient('tfc:rock/loose/limestone')
|
||||
.id('tfg:knapping/limestone_chalk')
|
||||
const CHALK_KNAPPING = [
|
||||
{ rock: 'tfc:rock/loose/chalk', color: 'white' },
|
||||
{ rock: 'tfc:rock/loose/limestone', color: 'light_gray' },
|
||||
{ rock: 'tfc:rock/loose/conglomerate', color: 'light_gray' },
|
||||
{ rock: 'tfc:rock/loose/dolomite', color: 'black' },
|
||||
{ rock: 'tfc:rock/loose/shale', color: 'gray' },
|
||||
{ rock: 'tfg:loose/dripstone', color: 'brown' },
|
||||
{ rock: 'tfc:rock/loose/claystone', color: 'orange' },
|
||||
{ rock: 'tfg:loose/mars_stone', color: 'orange' },
|
||||
{ rock: 'tfc:rock/loose/chert', color: 'red' }
|
||||
]
|
||||
|
||||
evt.recipes.tfc.knapping(
|
||||
Item.of('chalk:brown_chalk', '{Damage:48}'),
|
||||
'tfc:rock',
|
||||
[
|
||||
' X ',
|
||||
' X ',
|
||||
' X ',
|
||||
' X ',
|
||||
' X '
|
||||
]
|
||||
).ingredient('tfg:loose/dripstone')
|
||||
.id('tfg:knapping/travertine_chalk')
|
||||
CHALK_KNAPPING.forEach(x => {
|
||||
|
||||
evt.recipes.tfc.knapping(
|
||||
Item.of('chalk:orange_chalk', '{Damage:48}'),
|
||||
'tfc:rock',
|
||||
[
|
||||
' X ',
|
||||
' X ',
|
||||
' X ',
|
||||
' X ',
|
||||
' X '
|
||||
]
|
||||
).ingredient('tfc:rock/loose/claystone')
|
||||
.id('tfg:knapping/claystone_chalk')
|
||||
// only 1/2 durability remaining
|
||||
event.recipes.tfc.knapping(
|
||||
Item.of(`chalk:${x.color}_chalk`, '{Damage:32}'),
|
||||
'tfc:rock',
|
||||
[
|
||||
'X',
|
||||
'X',
|
||||
'X',
|
||||
'X',
|
||||
'X'
|
||||
]
|
||||
).ingredient(x.rock)
|
||||
.outsideSlotRequired(false)
|
||||
.id(`tfg:knapping/${linuxUnfucker(x.rock)}_chalk`)
|
||||
|
||||
event.recipes.gtceu.extruder(`tfg:${linuxUnfucker(x.rock)}_chalk`)
|
||||
.itemInputs(x.rock)
|
||||
.notConsumable('gtceu:rod_extruder_mold')
|
||||
.itemOutputs(Item.of(`chalk:${x.color}_chalk`, '{Damage:32}'))
|
||||
.duration(50)
|
||||
.EUt(2)
|
||||
|
||||
event.recipes.vintageimprovements.curving(Item.of(`chalk:${x.color}_chalk`, '{Damage:32}'), x.rock)
|
||||
.head('gtceu:rod_extruder_mold')
|
||||
.id(`tfg:vi/curving/${linuxUnfucker(x.rock)}_chalk`)
|
||||
})
|
||||
|
||||
|
||||
//Mix dusts for chalk sticks with clay to make an unfired chalk stick. Greggy or Create lets you use tiny dusts if needed
|
||||
evt.recipes.firmalife.mixing_bowl()
|
||||
.itemIngredients(["minecraft:clay_ball", "#chalk:dusts_for_chalks"])
|
||||
event.recipes.firmalife.mixing_bowl()
|
||||
.itemIngredients(["minecraft:clay_ball", "tfg:sedimentary_carbonate_dust"])
|
||||
.outputItem("tfg:unfired_chalk")
|
||||
.id(`chalk:mixing_bowl/unfired_chalk_stick_from_dust`)
|
||||
|
||||
|
||||
event.recipes.tfc.heating(`tfg:unfired_chalk`, 700)
|
||||
.resultItem(`chalk:white_chalk`)
|
||||
.id(`chalk:heating/undyed_chalk`)
|
||||
|
||||
global.MINECRAFT_DYE_NAMES.forEach(dyeName => {
|
||||
evt.recipes.tfc.barrel_sealed(1000)
|
||||
.inputItem('chalk:white_chalk')
|
||||
.inputFluid(Fluid.of(`tfc:${dyeName}_dye`, 25))
|
||||
.outputItem(`chalk:${dyeName}_chalk`)
|
||||
event.recipes.tfc.barrel_sealed(1000)
|
||||
.inputItem('#chalk:chalks')
|
||||
.inputFluid(Fluid.of(`tfc:${dyeName}_dye`, 25))
|
||||
.outputItem(`chalk:${dyeName}_chalk`)
|
||||
.id(`chalk:barrel/dye/${dyeName}_chalk`)
|
||||
|
||||
//gt mixer works as is
|
||||
evt.recipes.gtceu.chemical_bath(`chalk:gt_mixer/${dyeName}_chalk_from_dust`)
|
||||
.itemInputs(["minecraft:clay_ball", `#chalk:dusts_for_chalks`])
|
||||
event.recipes.gtceu.chemical_bath(`chalk:gt_mixer/${dyeName}_chalk_from_dust`)
|
||||
.itemInputs(["minecraft:clay_ball", `tfg:sedimentary_carbonate_dust`])
|
||||
.inputFluids([Fluid.of(`tfc:${dyeName}_dye`, 36)])
|
||||
.itemOutputs([`chalk:${dyeName}_chalk`])
|
||||
.duration(600)
|
||||
|
|
@ -93,26 +85,26 @@ const registerChalkRecipes = (evt) => {
|
|||
.category(GTRecipeCategories.CHEM_DYES);
|
||||
|
||||
//create mixer creates the unfired colored stick, unless heated.
|
||||
let createIngredients = ["minecraft:clay_ball", `#chalk:dusts_for_chalks`, Fluid.of(`tfc:${dyeName}_dye`, 36)]
|
||||
evt.recipes.create.mixing(`tfg:wet_${dyeName}_chalk`, createIngredients)
|
||||
let createIngredients = ["minecraft:clay_ball", `tfg:sedimentary_carbonate_dust`, Fluid.of(`tfc:${dyeName}_dye`, 36)]
|
||||
event.recipes.create.mixing(`tfg:wet_${dyeName}_chalk`, createIngredients)
|
||||
.id(`chalk:create_mixer/wet_${dyeName}_chalk_from_dust`);
|
||||
|
||||
evt.recipes.create.mixing(`chalk:${dyeName}_chalk`, createIngredients)
|
||||
event.recipes.create.mixing(`chalk:${dyeName}_chalk`, createIngredients)
|
||||
.heated()
|
||||
.id(`chalk:create_mixer/${dyeName}_chalk_from_dust`);
|
||||
|
||||
|
||||
|
||||
//Unfired chalk sticks need to be placed in a barrel full of dye to colorize. Then heated until cured.
|
||||
evt.recipes.tfc.barrel_instant()
|
||||
event.recipes.tfc.barrel_instant()
|
||||
.inputs(`tfg:unfired_chalk`, TFC.fluidStackIngredient(`tfc:${dyeName}_dye`, 36))
|
||||
.outputItem(`tfg:wet_${dyeName}_chalk`)
|
||||
.id(`chalk:barrel/dye/wet_${dyeName}_chalk`);
|
||||
|
||||
evt.recipes.tfc.heating(`tfg:wet_${dyeName}_chalk`, 700)
|
||||
event.recipes.tfc.heating(`tfg:wet_${dyeName}_chalk`, 700)
|
||||
.resultItem(`chalk:${dyeName}_chalk`)
|
||||
.id(`chalk:heating/${dyeName}_chalk`)
|
||||
|
||||
evt.smelting(
|
||||
|
||||
event.smelting(
|
||||
`chalk:${dyeName}_chalk`,
|
||||
`tfg:wet_${dyeName}_chalk`
|
||||
).id(`chalk:smelting/${dyeName}_chalk`)
|
||||
|
|
|
|||
|
|
@ -5,8 +5,4 @@
|
|||
* @param {TagEvent.Item} evt
|
||||
*/
|
||||
const registerChalkItemTags = (evt) => {
|
||||
evt.add(`chalk:dusts_for_chalks`, `tfg:chalk_dust`)
|
||||
evt.add(`chalk:dusts_for_chalks`, `tfg:limestone_dust`)
|
||||
evt.add(`chalk:dusts_for_chalks`, `tfg:dripstone_dust`)
|
||||
evt.add(`chalk:dusts_for_chalks`, `tfg:claystone_dust`)
|
||||
}
|
||||
17
kubejs/server_scripts/chimes/data.js
Normal file
17
kubejs/server_scripts/chimes/data.js
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
"use strict";
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {Internal.TFCDataEventJS} evt
|
||||
*/
|
||||
|
||||
const registerTFCDataForChimes = (evt) => {
|
||||
if (Platform.isLoaded("chimes")) {
|
||||
evt.itemSize('chimes:bamboo_chimes', 'large', 'heavy');
|
||||
evt.itemSize('chimes:carved_bamboo_chimes', 'large', 'heavy');
|
||||
evt.itemSize('chimes:copper_chimes', 'large', 'heavy');
|
||||
evt.itemSize('chimes:iron_chimes', 'large', 'heavy');
|
||||
evt.itemSize('chimes:amethyst_chimes', 'large', 'heavy');
|
||||
evt.itemSize('chimes:glass_bells', 'normal', 'medium');
|
||||
}
|
||||
}
|
||||
96
kubejs/server_scripts/chimes/recipes.js
Normal file
96
kubejs/server_scripts/chimes/recipes.js
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
"use strict";
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {Internal.RecipesEventJS} event
|
||||
*/
|
||||
const registerChimesRecipes = (event) => {
|
||||
if (Platform.isLoaded("chimes")) {
|
||||
event.remove({ input: 'string', mod: 'chimes' })
|
||||
|
||||
//TODO: dye recipes in barrel for glass chimes (if possible)
|
||||
|
||||
//bamboo chimes
|
||||
event.shaped(
|
||||
Item.of('chimes:bamboo_chimes'),
|
||||
[
|
||||
" A ",
|
||||
"CBC",
|
||||
"C C"
|
||||
], {
|
||||
A: "#minecraft:wooden_slabs",
|
||||
B: "#forge:string",
|
||||
C: "minecraft:bamboo"
|
||||
})
|
||||
|
||||
//copper chimes
|
||||
event.shaped(
|
||||
Item.of('chimes:copper_chimes'),
|
||||
[
|
||||
" A ",
|
||||
"CBC",
|
||||
"C C"
|
||||
], {
|
||||
A: "#minecraft:wooden_slabs",
|
||||
B: "#forge:chains",
|
||||
C: "#forge:rods/copper"
|
||||
})
|
||||
//iron chimes
|
||||
event.shaped(
|
||||
Item.of('chimes:iron_chimes'),
|
||||
[
|
||||
" A ",
|
||||
"CBC",
|
||||
"C C"
|
||||
], {
|
||||
A: "#minecraft:wooden_slabs",
|
||||
B: "#forge:chains",
|
||||
C: "#forge:rods/iron"
|
||||
})
|
||||
//carved bamboo chimes
|
||||
event.shapeless(
|
||||
Item.of('chimes:carved_bamboo_chimes'),
|
||||
[
|
||||
'chimes:bamboo_chimes',
|
||||
'#forge:tools/knives'
|
||||
]
|
||||
)
|
||||
//carved bamboo chimes direct
|
||||
event.shaped(
|
||||
Item.of('chimes:carved_bamboo_chimes'),
|
||||
[
|
||||
" A ",
|
||||
"CBC",
|
||||
"CDC"
|
||||
], {
|
||||
A: "#minecraft:wooden_slabs",
|
||||
B: "#forge:string",
|
||||
C: "minecraft:bamboo",
|
||||
D: "#forge:tools/knives"
|
||||
})
|
||||
//amethyst_chime
|
||||
event.shaped(
|
||||
Item.of('chimes:amethyst_chimes'),
|
||||
[
|
||||
" A ",
|
||||
"CBC",
|
||||
"C C"
|
||||
], {
|
||||
A: "#forge:plates/cast_iron",
|
||||
B: "#forge:chains",
|
||||
C: "#forge:rods/amethyst"
|
||||
})
|
||||
//glass_wind_bell
|
||||
event.shaped(
|
||||
Item.of('chimes:glass_bells'),
|
||||
[
|
||||
"A",
|
||||
"B",
|
||||
"C"
|
||||
], {
|
||||
A: "#tfc:glass_bottles",
|
||||
B: "#forge:string",
|
||||
C: "#forge:paper"
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
@ -58,7 +58,10 @@ const registerCreateRecipes = (event) => {
|
|||
|
||||
// Remove Table Cloth recipes
|
||||
global.MINECRAFT_DYE_NAMES.forEach(dye => {
|
||||
event.remove([{ id: `create:crafting/logistics/${dye}_table_cloth` }, { id: `create:crafting/logistics/${dye}_table_cloth_from_other_table_cloth` }])
|
||||
event.remove([
|
||||
{ id: `create:crafting/logistics/${dye}_table_cloth` },
|
||||
{ id: `create:crafting/logistics/${dye}_table_cloth_from_other_table_cloth` }
|
||||
])
|
||||
})
|
||||
|
||||
event.remove({ type: 'minecraft:stonecutting', input: 'create:andesite_alloy' })
|
||||
|
|
@ -205,6 +208,14 @@ const registerCreateRecipes = (event) => {
|
|||
B: '#forge:plates/wrought_iron'
|
||||
}).addMaterialInfo().id('tfg:create/shaped/metal_bracket')
|
||||
|
||||
event.recipes.gtceu.shaped('4x create:wooden_bracket', [
|
||||
'AAA',
|
||||
'BBB'
|
||||
], {
|
||||
A: '#forge:bolts/wrought_iron',
|
||||
B: '#tfc:lumber'
|
||||
}).addMaterialInfo().id('tfg:create/shaped/wooden_bracket')
|
||||
|
||||
// Жидкостная труба
|
||||
event.shaped('create:fluid_pipe', [
|
||||
'BAB'
|
||||
|
|
@ -288,7 +299,7 @@ const registerCreateRecipes = (event) => {
|
|||
.circuit(1)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
TFGHelpers.registerMaterialInfo('create:hose_pulley', { 'copper': 3 });
|
||||
TFGHelpers.registerMaterialInfo('create:hose_pulley', [GTMaterials.Copper, 3, GTMaterials.Rubber, 1/4]);
|
||||
|
||||
// Слив из предметов
|
||||
event.shaped('create:item_drain', [
|
||||
|
|
@ -302,6 +313,7 @@ const registerCreateRecipes = (event) => {
|
|||
// Жидкостный наполнитель
|
||||
event.shaped('create:spout', [
|
||||
'CBD',
|
||||
' A ',
|
||||
' A '
|
||||
], {
|
||||
A: '#forge:foils/rubber',
|
||||
|
|
@ -311,7 +323,7 @@ const registerCreateRecipes = (event) => {
|
|||
}).id('tfg:create/shaped/spout')
|
||||
|
||||
event.recipes.gtceu.assembler('create:spout')
|
||||
.itemInputs('create:fluid_tank', '#forge:foils/rubber')
|
||||
.itemInputs('create:fluid_tank', '2x #forge:foils/rubber')
|
||||
.itemOutputs('create:spout')
|
||||
.duration(50)
|
||||
.circuit(2)
|
||||
|
|
@ -416,7 +428,7 @@ const registerCreateRecipes = (event) => {
|
|||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
.circuit(22)
|
||||
|
||||
TFGHelpers.registerMaterialInfo('create:rope_pulley', { 'wood': 1, 'wrought_iron': 2 });
|
||||
TFGHelpers.registerMaterialInfo('create:rope_pulley', [GTMaterials.Wood, 1, GTMaterials.WroughtIron, 2]);
|
||||
|
||||
// Шкиф подъемника
|
||||
event.shaped('create:elevator_pulley', [
|
||||
|
|
@ -438,7 +450,7 @@ const registerCreateRecipes = (event) => {
|
|||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
TFGHelpers.registerMaterialInfo('create:elevator_pulley', { 'wood': 1, 'brass': 1, 'steel': 1 });
|
||||
TFGHelpers.registerMaterialInfo('create:elevator_pulley', [GTMaterials.Wood, 1, GTMaterials.Brass, 1, GTMaterials.Steel, 1]);
|
||||
|
||||
// Сборщик вагонеток
|
||||
event.shaped('create:cart_assembler', [
|
||||
|
|
@ -528,7 +540,7 @@ const registerCreateRecipes = (event) => {
|
|||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
.circuit(19)
|
||||
|
||||
TFGHelpers.registerMaterialInfo('create:mechanical_drill', { 'wood': 1, 'steel': 4, 'wrought_iron': 3 });
|
||||
TFGHelpers.registerMaterialInfo('create:mechanical_drill', [GTMaterials.Wood, 1, GTMaterials.Steel, 4, GTMaterials.WroughtIron, 3]);
|
||||
|
||||
event.shaped('create:mechanical_roller', [
|
||||
'GBG',
|
||||
|
|
@ -551,7 +563,7 @@ const registerCreateRecipes = (event) => {
|
|||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
.circuit(20)
|
||||
|
||||
TFGHelpers.registerMaterialInfo('create:mechanical_roller', { 'wood': 1,'wrought_iron': 4 });
|
||||
TFGHelpers.registerMaterialInfo('create:mechanical_roller', [GTMaterials.Wood, 1, GTMaterials.WroughtIron, 4]);
|
||||
|
||||
// Редстоуновый контакт
|
||||
event.shaped('2x create:redstone_contact', [
|
||||
|
|
@ -595,7 +607,7 @@ const registerCreateRecipes = (event) => {
|
|||
.duration(200)
|
||||
.EUt(20)
|
||||
|
||||
TFGHelpers.registerMaterialInfo('create:mechanical_harvester', { 'wood': 1, 'wrought_iron': 3 });
|
||||
TFGHelpers.registerMaterialInfo('create:mechanical_harvester', [GTMaterials.Wood, 1, GTMaterials.WroughtIron, 3]);
|
||||
|
||||
// Механический плуг
|
||||
event.shaped('create:mechanical_plough', [
|
||||
|
|
@ -618,7 +630,7 @@ const registerCreateRecipes = (event) => {
|
|||
.duration(200)
|
||||
.EUt(20)
|
||||
|
||||
TFGHelpers.registerMaterialInfo('create:mechanical_plough', { 'wood': 1, 'wrought_iron': 3 });
|
||||
TFGHelpers.registerMaterialInfo('create:mechanical_plough', [GTMaterials.Wood, 1, GTMaterials.WroughtIron, 3]);
|
||||
|
||||
// Create sail creation using custom sail items.
|
||||
|
||||
|
|
@ -828,7 +840,7 @@ const registerCreateRecipes = (event) => {
|
|||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
TFGHelpers.registerMaterialInfo('create:andesite_funnel', { 'wrought_iron': 1 });
|
||||
TFGHelpers.registerMaterialInfo('create:andesite_funnel', [GTMaterials.WroughtIron, 1]);
|
||||
|
||||
// Умный раздатчик/приемник из латуни
|
||||
event.shaped('2x create:brass_funnel', [
|
||||
|
|
@ -869,7 +881,7 @@ const registerCreateRecipes = (event) => {
|
|||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
TFGHelpers.registerMaterialInfo('create:brass_funnel', { 'brass': 1 });
|
||||
TFGHelpers.registerMaterialInfo('create:brass_funnel', [GTMaterials.Brass, 1]);
|
||||
|
||||
// Тунель из железа
|
||||
event.shaped('create:andesite_tunnel', [
|
||||
|
|
@ -906,7 +918,7 @@ const registerCreateRecipes = (event) => {
|
|||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
TFGHelpers.registerMaterialInfo('create:andesite_tunnel', { 'wrought_iron': 1 });
|
||||
TFGHelpers.registerMaterialInfo('create:andesite_tunnel', [GTMaterials.WroughtIron, 1]);
|
||||
|
||||
// Тунель из латуни
|
||||
event.shaped('create:brass_tunnel', [
|
||||
|
|
@ -945,7 +957,7 @@ const registerCreateRecipes = (event) => {
|
|||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
TFGHelpers.registerMaterialInfo('create:brass_tunnel', { 'brass': 1 });
|
||||
TFGHelpers.registerMaterialInfo('create:brass_tunnel', [GTMaterials.Brass, 1]);
|
||||
|
||||
// Дисплей столешница (чзх)
|
||||
event.shaped('create:display_board', [
|
||||
|
|
@ -1002,7 +1014,7 @@ const registerCreateRecipes = (event) => {
|
|||
' CE'
|
||||
], {
|
||||
A: '#forge:cogwheels',
|
||||
B: 'gtceu:ulv_machine_casing',
|
||||
B: 'create:shadow_steel_casing',
|
||||
C: 'create:brass_hand',
|
||||
D: '#forge:tools/wrenches',
|
||||
E: '#forge:tools/screwdrivers',
|
||||
|
|
@ -1010,12 +1022,12 @@ const registerCreateRecipes = (event) => {
|
|||
}).id('tfg:create/shaped/deployer')
|
||||
|
||||
event.recipes.gtceu.assembler('create:deployer')
|
||||
.itemInputs('#forge:cogwheels', 'gtceu:ulv_machine_casing', 'create:brass_hand', 'create:electron_tube')
|
||||
.itemInputs('#forge:cogwheels', 'create:shadow_steel_casing', 'create:brass_hand', 'create:electron_tube')
|
||||
.itemOutputs('create:deployer')
|
||||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
TFGHelpers.registerMaterialInfo('create:deployer', { 'brass': 12/9, 'wrought_iron': 8 });
|
||||
TFGHelpers.registerMaterialInfo('create:deployer', [GTMaterials.Brass, 12/9, GTMaterials.BlackSteel, 1, GTMaterials.Wood, 1]);
|
||||
|
||||
// Соединятор вагонеток
|
||||
event.shapeless('create:minecart_coupling', [
|
||||
|
|
@ -1242,7 +1254,7 @@ const registerCreateRecipes = (event) => {
|
|||
A: '#forge:rods/tin_alloy'
|
||||
}).id('tfg:create/shaped/andesite_ladder')
|
||||
|
||||
TFGHelpers.registerMaterialInfo('create:andesite_ladder', { 'tin_alloy': 0.5 })
|
||||
TFGHelpers.registerMaterialInfo('create:andesite_ladder', [GTMaterials.TinAlloy, 0.5])
|
||||
|
||||
// Лестница из латуни
|
||||
event.shaped('7x create:brass_ladder', [
|
||||
|
|
@ -1253,7 +1265,7 @@ const registerCreateRecipes = (event) => {
|
|||
A: '#forge:rods/brass'
|
||||
}).id('tfg:create/shaped/brass_ladder')
|
||||
|
||||
TFGHelpers.registerMaterialInfo('create:brass_ladder', { 'brass': 0.5 })
|
||||
TFGHelpers.registerMaterialInfo('create:brass_ladder', [GTMaterials.Brass, 0.5])
|
||||
|
||||
// Лестница из железа
|
||||
event.shaped('7x create:copper_ladder', [
|
||||
|
|
@ -1264,7 +1276,7 @@ const registerCreateRecipes = (event) => {
|
|||
A: '#forge:rods/copper'
|
||||
}).id('tfg:create/shaped/copper_ladder')
|
||||
|
||||
TFGHelpers.registerMaterialInfo('create:copper_ladder', { 'copper': 0.5 })
|
||||
TFGHelpers.registerMaterialInfo('create:copper_ladder', [GTMaterials.Copper, 0.5])
|
||||
|
||||
// Леса из железа
|
||||
event.shaped('4x create:andesite_scaffolding', [
|
||||
|
|
@ -1412,17 +1424,21 @@ const registerCreateRecipes = (event) => {
|
|||
event.remove({ id: `create:create.toolbox.color.block.create.${dye}_toolbox` })
|
||||
|
||||
event.recipes.tfc.barrel_sealed(1000)
|
||||
.inputs('create:brown_toolbox', Fluid.of(`tfc:${dye}_dye`, 288))
|
||||
.outputItem(`create:${dye}_toolbox`)
|
||||
.inputs('#create:toolboxes', Fluid.of(`tfc:${dye}_dye`, 288))
|
||||
.outputItem(TFC.isp.of(`create:${dye}_toolbox`).simpleModifier('tfg:copy_nbt').asCanonClass())
|
||||
.id(`barrel/create/${dye}_toolbox`)
|
||||
|
||||
event.recipes.gtceu.chemical_bath(`create/${dye}_toolbox`)
|
||||
.itemInputs('create:brown_toolbox')
|
||||
event.recipes.gtceu.food_processor(`create/${dye}_toolbox`)
|
||||
.itemInputs('#create:toolboxes')
|
||||
.inputFluids(Fluid.of(`tfc:${dye}_dye`, 288))
|
||||
.itemOutputs(`create:${dye}_toolbox`)
|
||||
.duration(200)
|
||||
.EUt(4)
|
||||
.category(GTRecipeCategories.CHEM_DYES)
|
||||
|
||||
$ISPRecipeLogic.RegisterRecipeData(`food_processor/create/${dye}_toolbox`,
|
||||
[Ingredient.of('#create:toolboxes')],
|
||||
TFC.isp.of(`create:${dye}_toolbox`).simpleModifier('tfg:copy_nbt').asCanonClass(),
|
||||
[])
|
||||
}
|
||||
})
|
||||
|
||||
|
|
@ -1563,7 +1579,7 @@ const registerCreateRecipes = (event) => {
|
|||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
.circuit(1)
|
||||
|
||||
TFGHelpers.registerMaterialInfo('create:windmill_bearing', { 'wood': 1.5, 'brass': 1, 'wrought_iron': 1 });
|
||||
TFGHelpers.registerMaterialInfo('create:windmill_bearing', [GTMaterials.Wood, 1.5, GTMaterials.Brass, 1, GTMaterials.WroughtIron, 1]);
|
||||
|
||||
// #endregion
|
||||
|
||||
|
|
@ -2085,7 +2101,7 @@ const registerCreateRecipes = (event) => {
|
|||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
.circuit(17)
|
||||
|
||||
TFGHelpers.registerMaterialInfo('create:redstone_link', { 'wrought_iron': 3 });
|
||||
TFGHelpers.registerMaterialInfo('create:redstone_link', [GTMaterials.WroughtIron, 3]);
|
||||
|
||||
event.shaped('create:display_link', [
|
||||
'FED',
|
||||
|
|
@ -2127,6 +2143,8 @@ const registerCreateRecipes = (event) => {
|
|||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
TFGHelpers.registerMaterialInfo('create:rotation_speed_controller', [GTMaterials.Wood, 1, GTMaterials.Brass, 3, GTMaterials.RedAlloy, 1]);
|
||||
|
||||
event.shaped('create:pulse_timer', [
|
||||
'E E',
|
||||
'ABC',
|
||||
|
|
@ -2167,7 +2185,7 @@ const registerCreateRecipes = (event) => {
|
|||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
TFGHelpers.registerMaterialInfo('create:sequenced_gearshift', { 'wood': 1, 'steel': 4, 'wrought_iron': 3 });
|
||||
TFGHelpers.registerMaterialInfo('create:sequenced_gearshift', [GTMaterials.Wood, 1, GTMaterials.Steel, 4, GTMaterials.WroughtIron, 3]);
|
||||
|
||||
event.shaped('create:mechanical_bearing', [
|
||||
'CBE',
|
||||
|
|
@ -2189,7 +2207,7 @@ const registerCreateRecipes = (event) => {
|
|||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
.circuit(15)
|
||||
|
||||
TFGHelpers.registerMaterialInfo('create:mechanical_bearing', { 'wood': 1, 'wrought_iron': 2 });
|
||||
TFGHelpers.registerMaterialInfo('create:mechanical_bearing', [GTMaterials.Wood, 1, GTMaterials.WroughtIron, 2]);
|
||||
|
||||
event.shaped('create:gantry_carriage', [
|
||||
'DCE',
|
||||
|
|
@ -2211,7 +2229,7 @@ const registerCreateRecipes = (event) => {
|
|||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
.circuit(2)
|
||||
|
||||
TFGHelpers.registerMaterialInfo('create:gantry_carriage', { 'wood': 1.5, 'wrought_iron': 1 });
|
||||
TFGHelpers.registerMaterialInfo('create:gantry_carriage', [GTMaterials.Wood, 1, GTMaterials.WroughtIron, 1]);
|
||||
|
||||
event.shaped('create:weighted_ejector', [
|
||||
' B ',
|
||||
|
|
@ -2233,7 +2251,7 @@ const registerCreateRecipes = (event) => {
|
|||
.circuit(16)
|
||||
.addMaterialInfo(true)
|
||||
|
||||
TFGHelpers.registerMaterialInfo('create:gantry_carriage', { 'wood': 1, 'wrought_iron': 3 });
|
||||
TFGHelpers.registerMaterialInfo('create:gantry_carriage', [GTMaterials.Wood, 1, GTMaterials.WroughtIron, 3]);
|
||||
|
||||
event.shaped('create:turntable', [
|
||||
'DA ',
|
||||
|
|
@ -2271,7 +2289,7 @@ const registerCreateRecipes = (event) => {
|
|||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
.addMaterialInfo(true)
|
||||
|
||||
TFGHelpers.registerMaterialInfo('create:gearshift', { 'wood': 1, 'wrought_iron': 1, 'redstone': 1 });
|
||||
TFGHelpers.registerMaterialInfo('create:gearshift', [GTMaterials.Wood, 1, GTMaterials.WroughtIron, 1, GTMaterials.Redstone, 1]);
|
||||
|
||||
event.shaped('create:clutch', [
|
||||
' C ',
|
||||
|
|
@ -2295,7 +2313,6 @@ const registerCreateRecipes = (event) => {
|
|||
event.stonecutting('2x create:andesite_table_cloth', '#forge:ingots/tin_alloy')
|
||||
event.stonecutting('2x create:andesite_scaffolding', '#forge:ingots/tin_alloy')
|
||||
event.stonecutting('2x create:andesite_ladder', '#forge:ingots/tin_alloy')
|
||||
event.stonecutting('2x create:andesite_bars', '#forge:ingots/tin_alloy')
|
||||
|
||||
// Industrial Iron stuff
|
||||
|
||||
|
|
@ -2377,24 +2394,25 @@ const registerCreateRecipes = (event) => {
|
|||
.duration(100)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
// Bars
|
||||
//Bars
|
||||
|
||||
event.stonecutting('4x create:andesite_bars', '#forge:ingots/tin_alloy')
|
||||
event.stonecutting('4x create:brass_bars', '#forge:ingots/brass')
|
||||
event.stonecutting('4x create:copper_bars', '#forge:ingots/copper')
|
||||
|
||||
event.recipes.tfc.anvil(`4x create:andesite_bars`, `#forge:ingots/tin_alloy`, ['shrink_last', 'punch_second_last', 'punch_third_last'])
|
||||
.tier(3).id(`tfg:anvil/create_andesite_bars`)
|
||||
const create_metals = [
|
||||
{ metal: 'andesite', material: 'tin_alloy', tier: 3 },
|
||||
{ metal: 'brass', material: 'brass', tier: 2 },
|
||||
{ metal: 'copper', material: 'copper', tier: 1 },
|
||||
];
|
||||
|
||||
event.recipes.tfc.anvil(`4x create:brass_bars`, `#forge:ingots/brass`, ['shrink_last', 'punch_second_last', 'punch_third_last'])
|
||||
.tier(2).id(`tfg:anvil/create_brass_bars`)
|
||||
create_metals.forEach(bar => {
|
||||
event.recipes.tfc.anvil(`4x create:${bar.metal}_bars`, `#forge:ingots/${bar.material}`, ['upset_last', 'punch_second_last', 'punch_third_last'])
|
||||
.tier(bar.tier).id(`tfg:anvil/create_${bar.metal}_bars`)
|
||||
|
||||
event.recipes.tfc.anvil(`4x create:copper_bars`, `#forge:ingots/copper`, ['shrink_last', 'punch_second_last', 'punch_third_last'])
|
||||
.tier(1).id(`tfg:anvil/create_copper_bars`)
|
||||
TFGHelpers.registerMaterialInfo(`create:${bar.metal}_bars`, [GTMaterials.get(bar.material), 0.25])
|
||||
|
||||
TFGHelpers.registerMaterialInfo('create:andesite_bars', { 'tin_alloy': 0.25 })
|
||||
TFGHelpers.registerMaterialInfo('create:brass_bars', { 'brass': 0.25 })
|
||||
TFGHelpers.registerMaterialInfo('create:copper_bars', { 'copper': 0.25 })
|
||||
event.recipes.tfc.anvil(`8x create:${bar.metal}_bars`, `#forge:double_ingots/${bar.material}`, ['upset_last', 'punch_second_last', 'punch_third_last'])
|
||||
.tier(bar.tier).id(`tfg:anvil/create_${bar.metal}_bars_double`)
|
||||
})
|
||||
|
||||
// Doors
|
||||
|
||||
|
|
|
|||
|
|
@ -9,6 +9,10 @@ const registerCreateItemTags = (event) => {
|
|||
event.add('c:hidden_from_recipe_viewers', item)
|
||||
})
|
||||
|
||||
// Face curio slot for goggles
|
||||
event.remove("curios:head", "create:goggles")
|
||||
event.add("curios:face", "create:goggles")
|
||||
|
||||
// This is greate's fault
|
||||
event.remove('c:hidden_from_recipe_viewers', 'create:copper_sheet')
|
||||
event.remove('c:hidden_from_recipe_viewers', 'create:brass_sheet')
|
||||
|
|
|
|||
|
|
@ -9,11 +9,11 @@ const registerCreateAdditionsRecipes = (event) => {
|
|||
// Прокатный стан
|
||||
event.recipes.gtceu.shaped('createaddition:rolling_mill', [
|
||||
'ABA',
|
||||
'CBC',
|
||||
'DED'
|
||||
'CEC',
|
||||
'DBD'
|
||||
], {
|
||||
A: 'create:precision_mechanism',
|
||||
B: 'greate:steel_shaft',
|
||||
B: '#forge:rods/long/blue_steel',
|
||||
C: '#forge:double_plates/black_steel',
|
||||
D: '#gtceu:circuits/ulv',
|
||||
E: 'gtceu:ulv_machine_hull'
|
||||
|
|
|
|||
|
|
@ -23,5 +23,7 @@ const registerCreateAdditionsFluidTags = (event) => {
|
|||
|
||||
// Добавляем тег для скрытия в EMI
|
||||
event.add('c:hidden_from_recipe_viewers', 'createaddition:seed_oil')
|
||||
event.removeAllTagsFrom('createaddition:seed_oil')
|
||||
event.add('c:hidden_from_recipe_viewers', 'createaddition:bioethanol')
|
||||
event.removeAllTagsFrom('createaddition:bioethanol')
|
||||
}
|
||||
|
|
@ -71,4 +71,16 @@ const registerCreateConnectedRecipes = (event) => {
|
|||
}).id('create_connected:crafting/kinetics/sequenced_pulse_generator')
|
||||
|
||||
event.replaceInput({ id: 'create_connected:crafting/kinetics/redstone_link_wildcard' }, 'create:transmitter', 'minecraft:redstone_torch')
|
||||
|
||||
event.shaped('create_connected:kinetic_bridge', [
|
||||
'BCB',
|
||||
'AEA',
|
||||
'DCD'
|
||||
], {
|
||||
A: 'create:brass_casing',
|
||||
B: '#forge:plates/magnetic_iron',
|
||||
C: '#forge:rods/magnetic_iron',
|
||||
D: '#forge:small_gears/red_alloy',
|
||||
E: '#forge:shafts'
|
||||
}).id('create_connected:crafting/kinetics/kinetic_bridge')
|
||||
}
|
||||
|
|
@ -6,6 +6,7 @@ function registerCreateHypertubeRecipes(event) {
|
|||
event.recipes.gtceu.assembler('create_hypertube:hypertube')
|
||||
.itemInputs('2x #forge:plates/stainless_steel', '4x ae2:quartz_glass')
|
||||
.itemOutputs('8x create_hypertube:hypertube')
|
||||
.circuit(1)
|
||||
.EUt(GTValues.VA[GTValues.HV])
|
||||
.duration(50)
|
||||
.addMaterialInfo(true)
|
||||
|
|
|
|||
6
kubejs/server_scripts/create_hypertube/tags.js
Normal file
6
kubejs/server_scripts/create_hypertube/tags.js
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
// priority: 0
|
||||
"use strict";
|
||||
|
||||
function registerCreateHypertubeItemTags(event) {
|
||||
event.add('c:hidden_from_recipe_viewers', 'create_hypertube:tube_scanner_unfinished');
|
||||
}
|
||||
192
kubejs/server_scripts/create_sound_of_steam/recipes.js
Normal file
192
kubejs/server_scripts/create_sound_of_steam/recipes.js
Normal file
|
|
@ -0,0 +1,192 @@
|
|||
// priority: 0
|
||||
"use strict";
|
||||
|
||||
function registerCreateSoundOfSteamRecipes(event) {
|
||||
if (Platform.isLoaded("pipeorgans")) {
|
||||
event.remove({ mod: 'pipeorgans' })
|
||||
|
||||
//Piccolo
|
||||
event.shaped('pipeorgans:piccolo', [
|
||||
'ABC',
|
||||
' D ',
|
||||
' E '
|
||||
], {
|
||||
A: '#forge:tools/saws',
|
||||
B: '#tfg:hardwood',
|
||||
C: '#forge:tools/hammers',
|
||||
D: 'gtceu:wrought_iron_ingot',
|
||||
E: 'pipeorgans:base'
|
||||
}).id('pipeorgans:piccolo')
|
||||
|
||||
//Diapason
|
||||
event.remove({ id: 'pipeorgans:diapason' })
|
||||
|
||||
event.shaped('pipeorgans:diapason', [
|
||||
'ABC',
|
||||
' B ',
|
||||
' D '
|
||||
], {
|
||||
A: '#forge:tools/saws',
|
||||
B: 'create:zinc_ingot',
|
||||
C: '#forge:tools/hammers',
|
||||
D: 'pipeorgans:base'
|
||||
}).id('pipeorgans:diapason')
|
||||
|
||||
//Trompette
|
||||
event.shaped('pipeorgans:trompette', [
|
||||
'ABC',
|
||||
' D ',
|
||||
' E '
|
||||
], {
|
||||
A: '#forge:tools/saws',
|
||||
B: 'create:brass_sheet',
|
||||
C: '#forge:tools/hammers',
|
||||
D: 'pipeorgans:brass_boot',
|
||||
E: 'pipeorgans:base'
|
||||
}).id('pipeorgans:trompette')
|
||||
|
||||
//Gedeckt
|
||||
event.shaped('pipeorgans:gedeckt', [
|
||||
'ABC',
|
||||
' D ',
|
||||
' E '
|
||||
], {
|
||||
A: '#forge:tools/saws',
|
||||
B: '#tfc:lumber',
|
||||
C: '#forge:tools/hammers',
|
||||
D: '#minecraft:wooden_slabs',
|
||||
E: 'pipeorgans:base'
|
||||
}).id('pipeorgans:gedeckt')
|
||||
|
||||
//Gamba
|
||||
event.shaped('pipeorgans:gamba', [
|
||||
'ABC',
|
||||
' D ',
|
||||
' E '
|
||||
], {
|
||||
A: '#forge:tools/saws',
|
||||
B: 'gtceu:wrought_iron_ingot',
|
||||
C: '#forge:tools/hammers',
|
||||
D: 'gtceu:wrought_iron_plate',
|
||||
E: 'pipeorgans:base'
|
||||
}).id('pipeorgans:gamba')
|
||||
|
||||
//Nasard
|
||||
event.shaped('pipeorgans:nasard', [
|
||||
'ABC',
|
||||
' B ',
|
||||
' D '
|
||||
], {
|
||||
A: '#forge:tools/saws',
|
||||
B: 'minecraft:copper_ingot',
|
||||
C: '#forge:tools/hammers',
|
||||
D: 'pipeorgans:base'
|
||||
}).id('pipeorgans:nasard')
|
||||
|
||||
//Subbass
|
||||
event.shaped('pipeorgans:subbass', [
|
||||
'ABC',
|
||||
' D ',
|
||||
' E '
|
||||
], {
|
||||
A: '#forge:tools/saws',
|
||||
B: '#minecraft:planks',
|
||||
C: '#forge:tools/hammers',
|
||||
D: '#minecraft:wooden_slabs',
|
||||
E: 'pipeorgans:base'
|
||||
}).id('pipeorgans:subbass')
|
||||
|
||||
//Posaune FIX
|
||||
event.shaped('pipeorgans:posaune', [
|
||||
'ABC',
|
||||
' D ',
|
||||
' E '
|
||||
], {
|
||||
A: '#forge:tools/saws',
|
||||
B: 'create:brass_sheet',
|
||||
C: '#forge:tools/hammers',
|
||||
D: 'pipeorgans:dark_oak_boot',
|
||||
E: 'pipeorgans:base'
|
||||
}).id('pipeorgans:posaune')
|
||||
|
||||
//Humana
|
||||
event.shaped('pipeorgans:vox_humana', [
|
||||
'ABC',
|
||||
' D ',
|
||||
' E '
|
||||
], {
|
||||
A: '#forge:tools/saws',
|
||||
B: 'create:brass_sheet',
|
||||
C: '#forge:tools/hammers',
|
||||
D: 'pipeorgans:copper_boot',
|
||||
E: 'pipeorgans:base'
|
||||
}).id('pipeorgans:vox_humana')
|
||||
|
||||
//Pipe Base
|
||||
event.recipes.tfc.welding('pipeorgans:base', 'create:fluid_pipe', 'gtceu:double_copper_plate', 1)
|
||||
|
||||
//Windchest Controller
|
||||
event.shaped('pipeorgans:windchest_master', [
|
||||
'ABC',
|
||||
'DEC',
|
||||
'FBC'
|
||||
], {
|
||||
A: '#forge:tools/saws',
|
||||
B: '#minecraft:planks',
|
||||
C: 'create:zinc_ingot',
|
||||
D: '#minecraft:wooden_slabs',
|
||||
E: 'minecraft:redstone',
|
||||
F: '#forge:tools/hammers'
|
||||
}).id('pipeorgans:windchest_master')
|
||||
|
||||
//Windchest
|
||||
event.shaped('6x pipeorgans:windchest', [
|
||||
'AB ',
|
||||
'CD ',
|
||||
'EF '
|
||||
], {
|
||||
A: '#forge:tools/saws',
|
||||
B: 'create:fluid_pipe',
|
||||
C: '#minecraft:wooden_slabs',
|
||||
D: 'minecraft:redstone',
|
||||
E: '#forge:tools/hammers',
|
||||
F: '#minecraft:planks'
|
||||
}).id('pipeorgans:windchest')
|
||||
|
||||
//Brass Boot
|
||||
event.recipes.tfc.anvil('pipeorgans:brass_boot', 'gtceu:double_brass_plate', ['bend_last', 'shrink_second_last', 'shrink_third_last'])
|
||||
.tier(3)
|
||||
.id('tfc:anvil/brass_boot')
|
||||
|
||||
//Dark Oak Boot
|
||||
event.shaped('pipeorgans:dark_oak_boot', [
|
||||
'ABA',
|
||||
'ACA',
|
||||
'AAA'
|
||||
], {
|
||||
A: '#minecraft:planks',
|
||||
B: '#forge:tools/saws',
|
||||
C: '#forge:tools/hammers'
|
||||
}).id('pipeorgans:dark_oak_boot')
|
||||
|
||||
//Copper Boot
|
||||
event.recipes.tfc.anvil('pipeorgans:copper_boot', 'gtceu:double_copper_plate', ['bend_last', 'shrink_second_last', 'shrink_third_last'])
|
||||
.tier(3)
|
||||
.id('tfc:anvil/copper_boot')
|
||||
|
||||
//Keyboard Relay
|
||||
event.shaped('pipeorgans:keyboard_relay', [
|
||||
'ABC',
|
||||
'DEC',
|
||||
'FGC'
|
||||
], {
|
||||
A: 'create:transmitter',
|
||||
B: 'minecraft:redstone',
|
||||
C: '#minecraft:buttons',
|
||||
D: 'gtceu:wrought_iron_ingot',
|
||||
E: 'create:precision_mechanism',
|
||||
F: '#forge:tools/screwdrivers',
|
||||
G: 'create:brass_casing'
|
||||
}).id('pipeorgans:keyboard_relay')
|
||||
}
|
||||
}
|
||||
17
kubejs/server_scripts/create_stock_bridge/recipes.js
Normal file
17
kubejs/server_scripts/create_stock_bridge/recipes.js
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
//"use strict";
|
||||
|
||||
//function registerCreateStockBridgeRecipes(event) {
|
||||
|
||||
// event.remove({ id: 'createstockbridge:ae_bridge' })
|
||||
|
||||
// event.shaped('createstockbridge:ae_bridge', [
|
||||
// 'ACF',
|
||||
// 'DBD'
|
||||
// ], {
|
||||
// A: 'ae2:fluix_pearl',
|
||||
// B: 'ae2:interface',
|
||||
// C: 'create:stock_link',
|
||||
// D: 'ae2:engineering_processor',
|
||||
// F: '#forge:exquisite_gems/rose_quartz'
|
||||
// })
|
||||
//}
|
||||
|
|
@ -138,42 +138,52 @@ const registerCreatedecoRecipes = (event) => {
|
|||
//#endregion
|
||||
|
||||
//#region Brick Recipes
|
||||
const brickTypes = ['blue', 'verdant', 'pearl', 'dean', 'dusk', 'scarlet', 'umber']
|
||||
const powderTypes = ['lapis_lazuli', 'malachite', 'soda_ash', 'limonite', 'charcoal', 'hematite', 'cassiterite']
|
||||
|
||||
event.recipes.gtceu.assembler(`assembler_bricks`)
|
||||
.itemInputs('5x minecraft:brick')
|
||||
.inputFluids(Fluid.of('gtceu:concrete', 144))
|
||||
.itemOutputs(`4x minecraft:bricks`)
|
||||
.duration(50)
|
||||
.circuit(2)
|
||||
.EUt(7)
|
||||
|
||||
brickTypes.forEach(type => {
|
||||
const dyeTypes = ['black', 'red', 'gray', 'green', 'blue', 'white', 'brown']
|
||||
|
||||
global.CREATE_DECO_BRICK_TYPES.forEach((type, index) => {
|
||||
event.remove({ output: `createdeco:${type}_bricks` });
|
||||
});
|
||||
event.remove({ output: `createdeco:${type}_brick_stairs` });
|
||||
event.remove({ output: `createdeco:short_${type}_brick_stairs` });
|
||||
event.remove({ output: `createdeco:tiled_${type}_brick_stairs` });
|
||||
event.remove({ output: `createdeco:long_${type}_brick_stairs` });
|
||||
event.remove({ output: `createdeco:corner_${type}_brick_stairs` });
|
||||
event.remove({ output: `createdeco:cracked_${type}_brick_stairs` });
|
||||
event.remove({ output: `createdeco:mossy_${type}_brick_stairs` });
|
||||
event.remove({ output: `createdeco:${type}_brick_slab` });
|
||||
event.remove({ output: `createdeco:short_${type}_brick_slab` });
|
||||
event.remove({ output: `createdeco:tiled_${type}_brick_slab` });
|
||||
event.remove({ output: `createdeco:long_${type}_brick_slab` });
|
||||
event.remove({ output: `createdeco:corner_${type}_brick_slab` });
|
||||
event.remove({ output: `createdeco:cracked_${type}_brick_slab` });
|
||||
event.remove({ output: `createdeco:mossy_${type}_brick_slab` });
|
||||
event.remove({ output: `createdeco:${type}_brick_wall` });
|
||||
event.remove({ output: `createdeco:short_${type}_brick_wall` });
|
||||
event.remove({ output: `createdeco:tiled_${type}_brick_wall` });
|
||||
event.remove({ output: `createdeco:long_${type}_brick_wall` });
|
||||
event.remove({ output: `createdeco:corner_${type}_brick_wall` });
|
||||
event.remove({ output: `createdeco:cracked_${type}_brick_wall` });
|
||||
event.remove({ output: `createdeco:mossy_${type}_brick_wall` });
|
||||
|
||||
brickTypes.forEach((type, index) => {
|
||||
const powder = `tfc:powder/${powderTypes[index]}`;
|
||||
event.shaped(Item.of(`createdeco:${type}_bricks`, 4),
|
||||
[
|
||||
if (type !== "red") {
|
||||
const dye = `#forge:dyes/${dyeTypes[index]}`;
|
||||
event.shaped(`4x createdeco:${type}_bricks`, [
|
||||
'BDB',
|
||||
'MBM',
|
||||
'BMB'
|
||||
],
|
||||
{
|
||||
], {
|
||||
B: `minecraft:brick`,
|
||||
D: powder,
|
||||
D: dye,
|
||||
M: `tfc:mortar`
|
||||
});
|
||||
|
||||
event.recipes.gtceu.assembler(`createdeco:${type}_bricks`)
|
||||
.itemInputs('5x minecraft:brick', powder)
|
||||
.inputFluids(Fluid.of('gtceu:concrete', 144))
|
||||
.itemOutputs(`4x createdeco:${type}_bricks`)
|
||||
.circuit(3)
|
||||
.duration(50)
|
||||
.EUt(7)
|
||||
event.recipes.gtceu.assembler(`createdeco:${type}_bricks`)
|
||||
.itemInputs('5x minecraft:brick', dye)
|
||||
.inputFluids(Fluid.of('gtceu:concrete', 144))
|
||||
.itemOutputs(`4x createdeco:${type}_bricks`)
|
||||
.circuit(3)
|
||||
.duration(50)
|
||||
.EUt(7)
|
||||
}
|
||||
});
|
||||
//#endregion
|
||||
|
||||
|
|
@ -240,19 +250,20 @@ const registerCreatedecoRecipes = (event) => {
|
|||
event.remove({ id: `createdeco:${bar.metal}_trapdoor` })
|
||||
event.remove({ id: `createdeco:${bar.metal}_door` })
|
||||
|
||||
let quarterMap = {};
|
||||
quarterMap[bar.material] = 0.25;
|
||||
|
||||
if (bar.metal !== 'iron') {
|
||||
// Bars
|
||||
event.remove({ type: 'minecraft:stonecutting', output: `createdeco:${bar.metal}_bars` })
|
||||
|
||||
event.recipes.tfc.anvil(`4x createdeco:${bar.metal}_bars`, `#forge:ingots/${bar.material}`, ['shrink_last', 'punch_second_last', 'punch_third_last'])
|
||||
event.recipes.tfc.anvil(`4x createdeco:${bar.metal}_bars`, `#forge:ingots/${bar.material}`, ['upset_last', 'punch_second_last', 'punch_third_last'])
|
||||
.tier(bar.tier).id(`tfg:anvil/createdeco_${bar.metal}_bars`)
|
||||
|
||||
event.stonecutting(`4x createdeco:${bar.metal}_bars`, `#forge:ingots/${bar.material}`)
|
||||
|
||||
TFGHelpers.registerMaterialInfo(`createdeco:${bar.metal}_bars`, quarterMap)
|
||||
TFGHelpers.registerMaterialInfo(`createdeco:${bar.metal}_bars`, [GTMaterials.get(bar.material), 0.25])
|
||||
|
||||
event.recipes.tfc.anvil(`8x createdeco:${bar.metal}_bars`, `#forge:double_ingots/${bar.material}`, ['upset_last', 'punch_second_last', 'punch_third_last'])
|
||||
.tier(bar.tier).id(`tfg:anvil/createdeco_${bar.metal}_bars_double`)
|
||||
|
||||
// Door
|
||||
event.recipes.tfc.anvil(`createdeco:${bar.metal}_door`, `#forge:double_plates/${bar.material}`, ['draw_last', 'draw_second_last', 'punch_third_last'])
|
||||
|
|
@ -264,20 +275,21 @@ const registerCreatedecoRecipes = (event) => {
|
|||
.duration(100)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
let twoMap = {};
|
||||
twoMap[bar.material] = 2;
|
||||
TFGHelpers.registerMaterialInfo(`createdeco:${bar.metal}_door`, twoMap)
|
||||
TFGHelpers.registerMaterialInfo(`createdeco:${bar.metal}_door`, [GTMaterials.get(bar.material), 2])
|
||||
}
|
||||
|
||||
// Overlay bars
|
||||
event.remove({ type: 'minecraft:stonecutting', output: `createdeco:${bar.metal}_bars_overlay` })
|
||||
|
||||
event.recipes.tfc.anvil(`4x createdeco:${bar.metal}_bars_overlay`, `#forge:ingots/${bar.material}`, ['draw_last', 'punch_second_last', 'punch_third_last'])
|
||||
.tier(bar.tier).id(`tfg:anvil/createdeco_${bar.metal}_bars_overlay`)
|
||||
event.recipes.tfc.anvil(`4x createdeco:${bar.metal}_bars_overlay`, `#forge:ingots/${bar.material}`, ['upset_last', 'punch_second_last', 'punch_third_last'])
|
||||
.tier(bar.tier).id(`tfg:anvil/createdeco_${bar.metal}_bars_overlay`)
|
||||
|
||||
event.stonecutting(`4x createdeco:${bar.metal}_bars_overlay`, `#forge:ingots/${bar.material}`)
|
||||
|
||||
TFGHelpers.registerMaterialInfo(`createdeco:${bar.metal}_bars_overlay`, quarterMap)
|
||||
event.recipes.tfc.anvil(`8x createdeco:${bar.metal}_bars_overlay`, `#forge:double_ingots/${bar.material}`, ['upset_last', 'punch_second_last', 'punch_third_last'])
|
||||
.tier(bar.tier).id(`tfg:anvil/createdeco_${bar.metal}_bars_overlay_double`)
|
||||
|
||||
TFGHelpers.registerMaterialInfo(`createdeco:${bar.metal}_bars_overlay`, [GTMaterials.get(bar.material), 0.25])
|
||||
|
||||
// Facade
|
||||
event.shaped(`4x createdeco:${bar.metal}_facade`, [
|
||||
|
|
@ -296,11 +308,11 @@ const registerCreatedecoRecipes = (event) => {
|
|||
|
||||
event.shapeless(`createdeco:copper_trapdoor`, `tfc:metal/trapdoor/copper`)
|
||||
event.shapeless(`tfc:metal/trapdoor/copper`, `createdeco:copper_trapdoor`)
|
||||
TFGHelpers.registerMaterialInfo('createdeco:copper_trapdoor', { 'copper': 1 })
|
||||
TFGHelpers.registerMaterialInfo('createdeco:copper_trapdoor', [GTMaterials.Copper, 1])
|
||||
|
||||
event.shapeless(`createdeco:industrial_iron_trapdoor`, `tfc:metal/trapdoor/steel`)
|
||||
event.shapeless(`tfc:metal/trapdoor/steel`, `createdeco:industrial_iron_trapdoor`)
|
||||
TFGHelpers.registerMaterialInfo('createdeco:industrial_iron_trapdoor', { 'steel': 1 })
|
||||
TFGHelpers.registerMaterialInfo('createdeco:industrial_iron_trapdoor', [GTMaterials.Steel, 1])
|
||||
|
||||
// TODO: move these two into the tag prefixes in tfg-core, then remove these recipes
|
||||
|
||||
|
|
@ -322,7 +334,7 @@ const registerCreatedecoRecipes = (event) => {
|
|||
.duration(GTMaterials.Brass.getMass())
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
TFGHelpers.registerMaterialInfo('createdeco:brass_trapdoor', { 'brass': 1 })
|
||||
TFGHelpers.registerMaterialInfo('createdeco:brass_trapdoor', [GTMaterials.Brass, 1])
|
||||
|
||||
event.recipes.tfc.anvil(`createdeco:zinc_trapdoor`, `#forge:ingots/zinc`, ['shrink_last', 'draw_second_last', 'draw_third_last'])
|
||||
.tier(1).id(`createdeco:anvil/zinc_trapdoor`)
|
||||
|
|
@ -342,7 +354,7 @@ const registerCreatedecoRecipes = (event) => {
|
|||
.duration(GTMaterials.Zinc.getMass())
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
TFGHelpers.registerMaterialInfo('createdeco:zinc_trapdoor', { 'zinc': 1 })
|
||||
TFGHelpers.registerMaterialInfo('createdeco:zinc_trapdoor', [GTMaterials.Zinc, 1])
|
||||
|
||||
event.recipes.tfc.anvil(`createdeco:andesite_trapdoor`, `#forge:ingots/tin_alloy`, ['shrink_last', 'draw_second_last', 'draw_third_last'])
|
||||
.tier(3).id(`createdeco:anvil/andesite_trapdoor`)
|
||||
|
|
@ -362,7 +374,7 @@ const registerCreatedecoRecipes = (event) => {
|
|||
.duration(GTMaterials.TinAlloy.getMass())
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
TFGHelpers.registerMaterialInfo('createdeco:andesite_trapdoor', { 'tin_alloy': 1 })
|
||||
TFGHelpers.registerMaterialInfo('createdeco:andesite_trapdoor', [GTMaterials.TinAlloy, 1])
|
||||
|
||||
// #endregion
|
||||
|
||||
|
|
@ -469,7 +481,7 @@ const registerCreatedecoRecipes = (event) => {
|
|||
|
||||
event.stonecutting('2x createdeco:iron_ladder', '#forge:ingots/wrought_iron')
|
||||
|
||||
TFGHelpers.registerMaterialInfo('createdeco:iron_ladder', { 'wrought_iron': 0.5 })
|
||||
TFGHelpers.registerMaterialInfo('createdeco:iron_ladder', [GTMaterials.WroughtIron, 0.5])
|
||||
|
||||
event.shaped('7x createdeco:zinc_ladder', [
|
||||
'A A',
|
||||
|
|
@ -479,7 +491,7 @@ const registerCreatedecoRecipes = (event) => {
|
|||
A: '#forge:rods/zinc'
|
||||
}).id('tfg:createdeco/shaped/zinc_ladder')
|
||||
|
||||
TFGHelpers.registerMaterialInfo('createdeco:zinc_ladder', { 'zinc': 0.5 })
|
||||
TFGHelpers.registerMaterialInfo('createdeco:zinc_ladder', [GTMaterials.Zinc, 0.5])
|
||||
|
||||
event.shaped('7x createdeco:industrial_iron_ladder', [
|
||||
'A A',
|
||||
|
|
@ -489,7 +501,7 @@ const registerCreatedecoRecipes = (event) => {
|
|||
A: '#forge:rods/steel'
|
||||
}).id('tfg:createdeco/shaped/industrial_iron_ladder')
|
||||
|
||||
TFGHelpers.registerMaterialInfo('createdeco:industrial_iron_ladder', { 'steel': 0.5 })
|
||||
TFGHelpers.registerMaterialInfo('createdeco:industrial_iron_ladder', [GTMaterials.Steel, 0.5])
|
||||
|
||||
// #endregion
|
||||
|
||||
|
|
@ -528,17 +540,17 @@ const registerCreatedecoRecipes = (event) => {
|
|||
// #region Sheet Metal
|
||||
|
||||
event.stonecutting('4x createdeco:andesite_sheet_metal', '#forge:plates/tin_alloy')
|
||||
TFGHelpers.registerMaterialInfo('createdeco:andesite_sheet_metal', { 'tin_alloy': 0.25 })
|
||||
TFGHelpers.registerMaterialInfo('createdeco:andesite_sheet_metal', [GTMaterials.TinAlloy, 0.25])
|
||||
event.stonecutting('4x createdeco:brass_sheet_metal', '#forge:plates/brass')
|
||||
TFGHelpers.registerMaterialInfo('createdeco:brass_sheet_metal', { 'brass': 0.25 })
|
||||
TFGHelpers.registerMaterialInfo('createdeco:brass_sheet_metal', [GTMaterials.Brass, 0.25])
|
||||
event.stonecutting('4x createdeco:iron_sheet_metal', '#forge:plates/wrought_iron')
|
||||
TFGHelpers.registerMaterialInfo('createdeco:iron_sheet_metal', { 'wrought_iron': 0.25 })
|
||||
TFGHelpers.registerMaterialInfo('createdeco:iron_sheet_metal', [GTMaterials.WroughtIron, 0.25])
|
||||
event.stonecutting('4x createdeco:copper_sheet_metal', '#forge:plates/copper')
|
||||
TFGHelpers.registerMaterialInfo('createdeco:copper_sheet_metal', { 'copper': 0.25 })
|
||||
TFGHelpers.registerMaterialInfo('createdeco:copper_sheet_metal', [GTMaterials.Copper, 0.25])
|
||||
event.stonecutting('4x createdeco:industrial_iron_sheet_metal', '#forge:plates/steel')
|
||||
TFGHelpers.registerMaterialInfo('createdeco:industrial_iron_sheet_metal', { 'steel': 0.25 })
|
||||
TFGHelpers.registerMaterialInfo('createdeco:industrial_iron_sheet_metal', [GTMaterials.Steel, 0.25])
|
||||
event.stonecutting('4x createdeco:zinc_sheet_metal', '#forge:plates/zinc')
|
||||
TFGHelpers.registerMaterialInfo('createdeco:zinc_sheet_metal', { 'zinc': 0.25 })
|
||||
TFGHelpers.registerMaterialInfo('createdeco:zinc_sheet_metal', [GTMaterials.Zinc, 0.25])
|
||||
|
||||
// #endregion
|
||||
};
|
||||
|
|
|
|||
|
|
@ -46,11 +46,19 @@ 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');
|
||||
}
|
||||
|
|
@ -23,7 +23,7 @@ const registerDomumOrnamentumRecipes = (event) => {
|
|||
'B B'
|
||||
],
|
||||
{
|
||||
B: '#forge:cobblestone'
|
||||
B: 'minecraft:cobblestone'
|
||||
}).id('domum_ornamentum:cobblestone_extra');
|
||||
|
||||
event.shaped(Item.of('domum_ornamentum:blue_cobblestone_extra', 8),
|
||||
|
|
@ -90,7 +90,7 @@ const registerDomumOrnamentumRecipes = (event) => {
|
|||
A: '#forge:plates/wrought_iron',
|
||||
B: '#tfc:lumber',
|
||||
C: '#forge:plates/brass',
|
||||
D: '#forge:small_gears',
|
||||
D: '#forge:small_gears/brass',
|
||||
E: '#forge:buzz_saw_heads'
|
||||
}).id('domum_ornamentum:architectscutter');
|
||||
|
||||
|
|
@ -145,126 +145,126 @@ const registerDomumOrnamentumRecipes = (event) => {
|
|||
//Brown Bricks
|
||||
event.shaped(Item.of('domum_ornamentum:brown_bricks', 4),
|
||||
[
|
||||
'BAB',
|
||||
'CBC',
|
||||
'BAB'
|
||||
'BMB',
|
||||
'MBM',
|
||||
'BDB'
|
||||
],
|
||||
{
|
||||
A: 'tfc:brick/chert',
|
||||
B: 'tfc:mortar',
|
||||
C: 'minecraft:brick',
|
||||
B: `minecraft:brick`,
|
||||
D: '#forge:dyes/brown',
|
||||
M: `tfc:mortar`
|
||||
}).id('domum_ornamentum:brown_bricks');
|
||||
|
||||
event.shaped(Item.of('domum_ornamentum:brown_stone_bricks', 4),
|
||||
[
|
||||
'BCB',
|
||||
'ABA',
|
||||
'BCB'
|
||||
'BMB',
|
||||
'MBM',
|
||||
'BDB'
|
||||
],
|
||||
{
|
||||
A: 'tfc:brick/chert',
|
||||
B: 'tfc:mortar',
|
||||
C: 'minecraft:brick',
|
||||
B: `#tfg:stone_brick`,
|
||||
D: '#forge:dyes/brown',
|
||||
M: `tfc:mortar`
|
||||
}).id('domum_ornamentum:brown_stone_bricks');
|
||||
|
||||
//Beige Bricks
|
||||
event.shaped(Item.of('domum_ornamentum:beige_bricks', 4),
|
||||
[
|
||||
'BAB',
|
||||
'CBC',
|
||||
'BAB'
|
||||
'BMB',
|
||||
'MBM',
|
||||
'BDB'
|
||||
],
|
||||
{
|
||||
A: 'tfc:brick/conglomerate',
|
||||
B: 'tfc:mortar',
|
||||
C: 'minecraft:brick',
|
||||
B: `minecraft:brick`,
|
||||
D: '#forge:dyes/light_gray',
|
||||
M: `tfc:mortar`
|
||||
}).id('domum_ornamentum:beige_bricks');
|
||||
|
||||
event.shaped(Item.of('domum_ornamentum:beige_stone_bricks', 4),
|
||||
[
|
||||
'BCB',
|
||||
'ABA',
|
||||
'BCB'
|
||||
'BMB',
|
||||
'MBM',
|
||||
'BDB'
|
||||
],
|
||||
{
|
||||
A: 'tfc:brick/conglomerate',
|
||||
B: 'tfc:mortar',
|
||||
C: 'minecraft:brick',
|
||||
B: `#tfg:stone_brick`,
|
||||
D: '#forge:dyes/light_gray',
|
||||
M: `tfc:mortar`
|
||||
}).id('domum_ornamentum:beige_stone_bricks');
|
||||
|
||||
//Cream Bricks
|
||||
event.shaped(Item.of('domum_ornamentum:cream_bricks', 4),
|
||||
[
|
||||
'BAB',
|
||||
'CBC',
|
||||
'BAB'
|
||||
'BMB',
|
||||
'MBM',
|
||||
'BDB'
|
||||
],
|
||||
{
|
||||
A: 'tfc:brick/gneiss',
|
||||
B: 'tfc:mortar',
|
||||
C: 'minecraft:brick',
|
||||
B: `minecraft:brick`,
|
||||
D: '#forge:dyes/orange',
|
||||
M: `tfc:mortar`
|
||||
}).id('domum_ornamentum:cream_bricks');
|
||||
|
||||
event.shaped(Item.of('domum_ornamentum:cream_stone_bricks', 4),
|
||||
[
|
||||
'BCB',
|
||||
'ABA',
|
||||
'BCB'
|
||||
'BMB',
|
||||
'MBM',
|
||||
'BDB'
|
||||
],
|
||||
{
|
||||
A: 'tfc:brick/gneiss',
|
||||
B: 'tfc:mortar',
|
||||
C: 'minecraft:brick',
|
||||
B: `#tfg:stone_brick`,
|
||||
D: '#forge:dyes/orange',
|
||||
M: `tfc:mortar`
|
||||
}).id('domum_ornamentum:cream_stone_bricks');
|
||||
|
||||
//Roan Bricks
|
||||
event.shaped(Item.of('domum_ornamentum:roan_bricks', 4),
|
||||
[
|
||||
'BAB',
|
||||
'CBC',
|
||||
'BAB'
|
||||
'BMB',
|
||||
'MBM',
|
||||
'BDB'
|
||||
],
|
||||
{
|
||||
A: 'tfc:brick/claystone',
|
||||
B: 'tfc:mortar',
|
||||
C: 'minecraft:brick',
|
||||
B: `minecraft:brick`,
|
||||
D: '#forge:dyes/red',
|
||||
M: `tfc:mortar`
|
||||
}).id('domum_ornamentum:roan_bricks');
|
||||
|
||||
event.shaped(Item.of('domum_ornamentum:roan_stone_bricks', 4),
|
||||
[
|
||||
'BCB',
|
||||
'ABA',
|
||||
'BCB'
|
||||
'BMB',
|
||||
'MBM',
|
||||
'BDB'
|
||||
],
|
||||
{
|
||||
A: 'tfc:brick/claystone',
|
||||
B: 'tfc:mortar',
|
||||
C: 'minecraft:brick',
|
||||
B: `#tfg:stone_brick`,
|
||||
D: '#forge:dyes/red',
|
||||
M: `tfc:mortar`
|
||||
}).id('domum_ornamentum:roan_stone_bricks');
|
||||
|
||||
//Sand Bricks
|
||||
event.shaped(Item.of('domum_ornamentum:sand_bricks', 4),
|
||||
[
|
||||
'BAB',
|
||||
'CBC',
|
||||
'BAB'
|
||||
'BMB',
|
||||
'MBM',
|
||||
'BDB'
|
||||
],
|
||||
{
|
||||
A: 'tfc:brick/limestone',
|
||||
B: 'tfc:mortar',
|
||||
C: 'minecraft:brick',
|
||||
B: `minecraft:brick`,
|
||||
D: '#forge:dyes/yellow',
|
||||
M: `tfc:mortar`
|
||||
}).id('domum_ornamentum:sand_bricks');
|
||||
|
||||
event.shaped(Item.of('domum_ornamentum:sand_stone_bricks', 4),
|
||||
[
|
||||
'BCB',
|
||||
'ABA',
|
||||
'BCB'
|
||||
'BMB',
|
||||
'MBM',
|
||||
'BDB'
|
||||
],
|
||||
{
|
||||
A: 'tfc:brick/limestone',
|
||||
B: 'tfc:mortar',
|
||||
C: 'minecraft:brick',
|
||||
B: `#tfg:stone_brick`,
|
||||
D: '#forge:dyes/yellow',
|
||||
M: `tfc:mortar`
|
||||
}).id('domum_ornamentum:sand_stone_bricks');
|
||||
//#endregion
|
||||
};
|
||||
|
|
@ -29,6 +29,7 @@ function registerDomumOrnamentumBlockTags(event) {
|
|||
"#tfc:colored_polished_alabaster",
|
||||
"#tfc:mud_bricks",
|
||||
"#forge:sandstone",
|
||||
"#railways:locometal",
|
||||
//rnr shingles
|
||||
"rnr:wood/shingles/teak",
|
||||
"rnr:wood/shingles/cypress",
|
||||
|
|
@ -159,6 +160,26 @@ function registerDomumOrnamentumBlockTags(event) {
|
|||
"#tfg:ad_astra_desh_block",
|
||||
"#tfg:ad_astra_ostrum_block",
|
||||
"#tfg:ad_astra_calorite_block",
|
||||
// Create blocks
|
||||
"#create:stone_types/diorite",
|
||||
"#create:stone_types/andesite",
|
||||
"#create:stone_types/limestone",
|
||||
"#create:stone_types/granite",
|
||||
"#create:stone_types/deepslate",
|
||||
"#create:stone_types/dripstone",
|
||||
"#tfg:stone_types/keratophyre",
|
||||
"#create:stone_types/calcite",
|
||||
"#create:stone_types/tuff",
|
||||
"#tfg:stone_types/suevite",
|
||||
"#tfg:stone_types/certus",
|
||||
"#tfg:stone_types/thermal_vent_deposit",
|
||||
"#tfg:stone_types/reconstituted_stone",
|
||||
"#create:stone_types/asurine",
|
||||
"#create:stone_types/ochrum",
|
||||
"#create:stone_types/crimsite",
|
||||
"#create:stone_types/veridium",
|
||||
"#create:stone_types/scoria",
|
||||
"#create:stone_types/scorchia",
|
||||
];
|
||||
|
||||
materials.forEach((material) => {
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ const registerEndermanOverhaulItemTags = (event) => {
|
|||
|
||||
const registerEndermanOverhaulBlockTags = (event) => {
|
||||
|
||||
event.add('endermanoverhaul:cave_enderman_holdable', 'forge:ores')
|
||||
event.add('endermanoverhaul:cave_enderman_holdable', 'minecraft:base_stone_nether')
|
||||
event.add('endermanoverhaul:cave_enderman_holdable', '#forge:ores')
|
||||
event.add('endermanoverhaul:cave_enderman_holdable', '#minecraft:base_stone_nether')
|
||||
|
||||
}
|
||||
|
|
@ -72,4 +72,6 @@ const registerEtchedRecipes = (event) => {
|
|||
event.shapeless('create_connected:music_disc_elevator', ['etched:blank_music_disc', 'create:elevator_pulley'])
|
||||
//dear god why
|
||||
event.shapeless('gtceu:sus_record', ['etched:blank_music_disc', '#tfc:knives', 'tfc:food/green_bean']).id('tfg:sus_record');
|
||||
|
||||
TFGHelpers.registerMaterialInfo('etched:jukebox_minecart', [GTMaterials.WroughtIron, 5, GTMaterials.Wood, 16, GTMaterials.Diamond, 1]);
|
||||
}
|
||||
|
|
@ -39,6 +39,17 @@ const registerExposureRecipes = (event) => {
|
|||
'minecraft:writable_book', 'minecraft:paper', 'minecraft:paper'
|
||||
]).id('exposure:album')
|
||||
|
||||
// Camera stand
|
||||
event.shaped('exposure:camera_stand', [
|
||||
' A ',
|
||||
'BBB',
|
||||
'C C'
|
||||
], {
|
||||
A: '#forge:rings',
|
||||
B: '#tfc:lumber',
|
||||
C: '#forge:smooth_stone_slab'
|
||||
}).id('exposure:camera_stand')
|
||||
|
||||
// Film
|
||||
event.shaped('exposure:black_and_white_film', [
|
||||
'ABB',
|
||||
|
|
@ -52,6 +63,19 @@ const registerExposureRecipes = (event) => {
|
|||
E: 'tfc:food/dried_kelp',
|
||||
}).id('exposure:black_and_white_film')
|
||||
|
||||
event.shaped('exposure:high_sensitivity_black_and_white_film', [
|
||||
'ABB',
|
||||
'CDD',
|
||||
'FEE'
|
||||
], {
|
||||
A: '#forge:rings/wrought_iron',
|
||||
B: '#forge:dyes/white',
|
||||
C: '#forge:foils/wrought_iron',
|
||||
D: '#forge:dusts/gunpowder',
|
||||
E: 'tfc:food/dried_kelp',
|
||||
F: '#forge:dusts/glowstone'
|
||||
}).id('exposure:high_sensitivity_black_and_white_film')
|
||||
|
||||
event.shaped('exposure:color_film', [
|
||||
'ABB',
|
||||
'CDD',
|
||||
|
|
@ -64,28 +88,41 @@ const registerExposureRecipes = (event) => {
|
|||
E: 'tfc:food/dried_kelp',
|
||||
}).id('exposure:color_film')
|
||||
|
||||
event.shaped('exposure:high_sensitivity_color_film', [
|
||||
'ABB',
|
||||
'CDD',
|
||||
'FEE'
|
||||
], {
|
||||
A: '#forge:rings/wrought_iron',
|
||||
B: '#forge:dyes/blue',
|
||||
C: '#forge:foils/wrought_iron',
|
||||
D: '#forge:foils/gold',
|
||||
E: 'tfc:food/dried_kelp',
|
||||
F: '#forge:dusts/glowstone'
|
||||
}).id('exposure:high_sensitivity_color_film')
|
||||
|
||||
// Creating the developer
|
||||
|
||||
// Pyrogallol
|
||||
event.recipes.tfc.pot(['tfc:powder/saltpeter'], Fluid.of('tfc:tannin', 500), 30 * 20, 750)
|
||||
event.recipes.tfc.pot(['tfc:powder/saltpeter'], Fluid.of('tfc:tannin', 500), 30 * 20, 650)
|
||||
.itemOutput('tfg:pyrogallol_dust')
|
||||
.id('tfg:pot/tannin_to_pyrogallol_saltpeter')
|
||||
|
||||
event.recipes.tfc.pot(['tfc:powder/soda_ash'], Fluid.of('tfc:tannin', 500), 30 * 20, 750)
|
||||
event.recipes.tfc.pot(['tfc:powder/soda_ash'], Fluid.of('tfc:tannin', 500), 30 * 20, 650)
|
||||
.itemOutput('tfg:pyrogallol_dust')
|
||||
.id('tfg:pot/tannin_to_pyrogallol_soda_ash')
|
||||
|
||||
event.recipes.firmalife.vat()
|
||||
.inputs('tfc:powder/saltpeter', Fluid.of('tfc:tannin', 500))
|
||||
.length(30 * 20)
|
||||
.temperature(750)
|
||||
.temperature(650)
|
||||
.outputItem('tfg:pyrogallol_dust')
|
||||
.id('tfg:vat/tannin_to_pyrogallol_saltpeter')
|
||||
|
||||
event.recipes.firmalife.vat()
|
||||
.inputs('tfc:powder/soda_ash', Fluid.of('tfc:tannin', 500))
|
||||
.length(30 * 20)
|
||||
.temperature(750)
|
||||
.temperature(650)
|
||||
.outputItem('tfg:pyrogallol_dust')
|
||||
.id('tfg:vat/tannin_to_soda_ash')
|
||||
|
||||
|
|
@ -104,7 +141,7 @@ const registerExposureRecipes = (event) => {
|
|||
.EUt(7)
|
||||
|
||||
// Developer
|
||||
event.recipes.tfc.pot(['#forge:dusts/pyrogallol', 'tfc:powder/soda_ash', 'tfc:powder/sulfur', '#exposure:black_printing_dyes'], Fluid.of('tfc:lye', 1000), 30 * 20, 750)
|
||||
event.recipes.tfc.pot(['#forge:dusts/pyrogallol', 'tfc:powder/soda_ash', 'tfc:powder/sulfur', '#exposure:black_printing_dyes'], Fluid.of('tfc:lye', 1000), 30 * 20, 550)
|
||||
.fluidOutput(Fluid.of('tfg:bw_photographic_developer', 1000))
|
||||
.id('tfg:pot/bw_developer')
|
||||
|
||||
|
|
@ -128,6 +165,11 @@ const registerExposureRecipes = (event) => {
|
|||
.outputItem(TFC.isp.of('exposure:developed_black_and_white_film').simpleModifier('tfg:copy_nbt').asCanonClass())
|
||||
.id('tfg:barrel/develop_black_and_white_film')
|
||||
|
||||
event.recipes.tfc.barrel_sealed(4000)
|
||||
.inputs('exposure:high_sensitivity_black_and_white_film', Fluid.of('tfg:bw_photographic_developer', 250))
|
||||
.outputItem(TFC.isp.of('exposure:developed_black_and_white_film').simpleModifier('tfg:copy_nbt').asCanonClass())
|
||||
.id('tfg:barrel/develop_high_sensitivity_black_and_white_film')
|
||||
|
||||
event.recipes.gtceu.food_processor('black_and_white_film')
|
||||
.itemInputs('exposure:black_and_white_film')
|
||||
.inputFluids(Fluid.of('tfg:bw_photographic_developer', 250))
|
||||
|
|
@ -140,12 +182,29 @@ const registerExposureRecipes = (event) => {
|
|||
TFC.isp.of('exposure:developed_black_and_white_film').simpleModifier('tfg:copy_nbt').asCanonClass(),
|
||||
[])
|
||||
|
||||
event.recipes.gtceu.food_processor('high_sensitivity_black_and_white_film')
|
||||
.itemInputs('exposure:high_sensitivity_black_and_white_film')
|
||||
.inputFluids(Fluid.of('tfg:bw_photographic_developer', 250))
|
||||
.itemOutputs('exposure:developed_black_and_white_film')
|
||||
.duration(60 * 20)
|
||||
.EUt(2)
|
||||
|
||||
$ISPRecipeLogic.RegisterRecipeData('food_processor/high_sensitivity_black_and_white_film',
|
||||
[Ingredient.of('exposure:high_sensitivity_black_and_white_film')],
|
||||
TFC.isp.of('exposure:developed_black_and_white_film').simpleModifier('tfg:copy_nbt').asCanonClass(),
|
||||
[])
|
||||
|
||||
// Developing color film
|
||||
event.recipes.tfc.barrel_sealed(4000)
|
||||
.inputs('exposure:color_film', Fluid.of('tfg:color_photographic_developer', 250))
|
||||
.outputItem(TFC.isp.of('exposure:developed_color_film').simpleModifier('tfg:copy_nbt'))
|
||||
.id('tfg:barrel/develop_color_film')
|
||||
|
||||
event.recipes.tfc.barrel_sealed(4000)
|
||||
.inputs('exposure:high_sensitivity_color_film', Fluid.of('tfg:color_photographic_developer', 250))
|
||||
.outputItem(TFC.isp.of('exposure:developed_color_film').simpleModifier('tfg:copy_nbt'))
|
||||
.id('tfg:barrel/develop_high_sensitivity_color_film')
|
||||
|
||||
event.recipes.gtceu.food_processor('color_film')
|
||||
.itemInputs('exposure:color_film')
|
||||
.inputFluids(Fluid.of('tfg:color_photographic_developer', 250))
|
||||
|
|
@ -157,4 +216,16 @@ const registerExposureRecipes = (event) => {
|
|||
[Ingredient.of('exposure:color_film')],
|
||||
TFC.isp.of('exposure:developed_color_film').simpleModifier('tfg:copy_nbt').asCanonClass(),
|
||||
[])
|
||||
|
||||
event.recipes.gtceu.food_processor('high_sensitivity_color_film')
|
||||
.itemInputs('exposure:high_sensitivity_color_film')
|
||||
.inputFluids(Fluid.of('tfg:color_photographic_developer', 250))
|
||||
.itemOutputs('exposure:developed_color_film')
|
||||
.duration(60 * 20)
|
||||
.EUt(2)
|
||||
|
||||
$ISPRecipeLogic.RegisterRecipeData('food_processor/high_sensitivity_color_film',
|
||||
[Ingredient.of('exposure:high_sensitivity_color_film')],
|
||||
TFC.isp.of('exposure:developed_color_film').simpleModifier('tfg:copy_nbt').asCanonClass(),
|
||||
[])
|
||||
}
|
||||
|
|
@ -561,7 +561,7 @@ const registerExtendedAE2Recipes = (event) => {
|
|||
event.recipes.gtceu.assembler('expatternprovider:ex_pattern_access_part')
|
||||
.itemInputs(
|
||||
'ae2:pattern_access_terminal',
|
||||
'4x ae2:logic_processor',
|
||||
Item.of('ae2:engineering_processor', 4),
|
||||
'2x megacells:accumulation_processor')
|
||||
.itemOutputs('expatternprovider:ex_pattern_access_part')
|
||||
.duration(100)
|
||||
|
|
@ -569,7 +569,7 @@ const registerExtendedAE2Recipes = (event) => {
|
|||
|
||||
event.recipes.gtceu.assembler('expatternprovider:pattern_terminal_upgrade')
|
||||
.itemInputs(
|
||||
'4x ae2:logic_processor',
|
||||
'4x ae2:calculation_processor',
|
||||
'2x megacells:accumulation_processor')
|
||||
.itemOutputs('expatternprovider:pattern_terminal_upgrade')
|
||||
.duration(100)
|
||||
|
|
|
|||
|
|
@ -44,7 +44,9 @@ const registerFirmaLifeRecipes = (event) => {
|
|||
event.remove({ id: 'firmalife:heating/metal/stainless_steel_block_slab' })
|
||||
event.remove({ id: 'firmalife:heating/metal/stainless_steel_block_stairs' })
|
||||
|
||||
event.remove({ id: /^firmalife:crafting\/.*_dough/ })
|
||||
global.TFC_DOUGHS.forEach(dough => {
|
||||
event.remove({ id: `firmalife:crafting/${dough}_dough` })
|
||||
})
|
||||
|
||||
event.remove({ id: 'firmalife:pot/chocolate' })
|
||||
|
||||
|
|
@ -56,7 +58,7 @@ const registerFirmaLifeRecipes = (event) => {
|
|||
|
||||
// Декрафт Jag Lid
|
||||
event.recipes.tfc.heating('tfc:jar_lid', 230)
|
||||
.resultFluid(Fluid.of('gtceu:tin', 9))
|
||||
.resultFluid(Fluid.of('gtceu:tin', 6))
|
||||
.id(`tfc:heating/jar_lid`)
|
||||
|
||||
// Pie Pan
|
||||
|
|
@ -84,15 +86,24 @@ const registerFirmaLifeRecipes = (event) => {
|
|||
|
||||
// Jar Lid
|
||||
event.recipes.gtceu.fluid_solidifier(`tfg:firmalife/jar_lid`)
|
||||
.inputFluids(Fluid.of('gtceu:tin', 9))
|
||||
.inputFluids(Fluid.of('gtceu:tin', 6))
|
||||
.notConsumable('gtceu:cylinder_casting_mold')
|
||||
.itemOutputs('tfc:jar_lid')
|
||||
.duration(50)
|
||||
.EUt(7)
|
||||
|
||||
event.recipes.gtceu.alloy_smelter('tfg:firmalife/jar_lid')
|
||||
.itemInputs('1x #forge:ingots/tin')
|
||||
.notConsumable('gtceu:cylinder_casting_mold')
|
||||
.itemOutputs('24x tfc:jar_lid')
|
||||
.duration(75)
|
||||
.category(GTRecipeCategories.INGOT_MOLDING)
|
||||
.EUt(4)
|
||||
.addMaterialInfo(true)
|
||||
|
||||
event.recipes.gtceu.extractor('tfc:jar_lid_extraction')
|
||||
.itemInputs('tfc:jar_lid')
|
||||
.outputFluids(Fluid.of('gtceu:tin', 9))
|
||||
.outputFluids(Fluid.of('gtceu:tin', 6))
|
||||
.duration(50)
|
||||
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
|
||||
.EUt(2)
|
||||
|
|
@ -103,6 +114,15 @@ const registerFirmaLifeRecipes = (event) => {
|
|||
.itemOutputs('firmalife:stainless_steel_jar_lid')
|
||||
.duration(50)
|
||||
.EUt(7)
|
||||
|
||||
event.recipes.gtceu.alloy_smelter('tfg:firmalife/stainless_steel_jar_lid')
|
||||
.itemInputs('1x #forge:ingots/stainless_steel')
|
||||
.notConsumable('gtceu:cylinder_casting_mold')
|
||||
.itemOutputs('48x firmalife:stainless_steel_jar_lid')
|
||||
.duration(75)
|
||||
.category(GTRecipeCategories.INGOT_MOLDING)
|
||||
.EUt(4)
|
||||
.addMaterialInfo(true)
|
||||
|
||||
event.recipes.gtceu.extractor('firmalife:stainless_steel_jar_extraction')
|
||||
.itemInputs('firmalife:stainless_steel_jar_lid')
|
||||
|
|
@ -160,7 +180,7 @@ const registerFirmaLifeRecipes = (event) => {
|
|||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
.category(GTRecipeCategories.INGOT_MOLDING)
|
||||
|
||||
event.recipes.gtceu.assembler('firmalife:cork')
|
||||
event.recipes.gtceu.chemical_bath('firmalife:cork')
|
||||
.itemInputs('firmalife:treated_lumber')
|
||||
.inputFluids(Fluid.of('tfc:limewater', 1000))
|
||||
.itemOutputs('8x firmalife:cork')
|
||||
|
|
@ -182,23 +202,13 @@ const registerFirmaLifeRecipes = (event) => {
|
|||
.category(GTRecipeCategories.INGOT_MOLDING)
|
||||
|
||||
event.replaceInput({ id: 'firmalife:crafting/bottle_label' }, 'firmalife:beeswax', '#forge:wax')
|
||||
|
||||
event.shapeless('firmalife:fruit_leaf', ['#tfc:fruit_tree_leaves']).id('tfg:shapeless/firmalife/fruit_leaf_from_fruit_leaves');
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Рецепты теплиц / Greenhouse
|
||||
|
||||
//#region Treated Wood
|
||||
|
||||
event.shapeless('firmalife:treated_wood_greenhouse_port', [
|
||||
'firmalife:treated_wood_greenhouse_wall',
|
||||
'#forge:tiny_fluid_pipes/copper'
|
||||
])
|
||||
.id('firmalife:crafting/greenhouse/treated_wood_greenhouse_port')
|
||||
|
||||
//#endregion Treated Wood
|
||||
|
||||
//#region Медная / Copper
|
||||
|
||||
event.recipes.gtceu.extruder('tfg:firmalife/sprinkler_electric_only')
|
||||
.itemInputs('#forge:plates/copper')
|
||||
.notConsumable('tfg:small_casing_extruder_mold')
|
||||
|
|
@ -207,233 +217,95 @@ const registerFirmaLifeRecipes = (event) => {
|
|||
.EUt(8)
|
||||
.addMaterialInfo(true)
|
||||
|
||||
// Стена
|
||||
event.recipes.gtceu.shaped('8x firmalife:copper_greenhouse_wall', [
|
||||
'ABA',
|
||||
'ABA',
|
||||
'ABA'
|
||||
], {
|
||||
A: '#forge:rods/copper',
|
||||
B: 'minecraft:glass'
|
||||
}).addMaterialInfo().id('firmalife:crafting/greenhouse/copper_greenhouse_wall')
|
||||
/**
|
||||
* @type {string[]} - Tier names of greenhouse casings.
|
||||
*/
|
||||
const greenhouse_tiers = [
|
||||
{tier: 'treated_wood', material: 'firmalife:treated_lumber'},
|
||||
{tier: 'copper', material: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Copper, 1)},
|
||||
{tier: 'iron', material: ChemicalHelper.get(TagPrefix.rod, GTMaterials.WroughtIron, 1)},
|
||||
{tier: 'stainless_steel', material: ChemicalHelper.get(TagPrefix.rod, GTMaterials.StainlessSteel, 1)}
|
||||
];
|
||||
|
||||
// Панель
|
||||
event.recipes.gtceu.shaped('8x firmalife:copper_greenhouse_panel_wall', [
|
||||
'ABA',
|
||||
'ABA',
|
||||
'ABA'
|
||||
], {
|
||||
A: '#forge:rods/copper',
|
||||
B: 'firmalife:reinforced_glass'
|
||||
}).addMaterialInfo().id('firmalife:crafting/greenhouse/copper_greenhouse_panel_wall')
|
||||
//Firmalife namespace is left so we dont have to change patchouli entries.
|
||||
greenhouse_tiers.forEach(tier => {
|
||||
|
||||
// Панельная Крыша
|
||||
event.recipes.gtceu.shaped('4x firmalife:copper_greenhouse_panel_roof', [
|
||||
'A ',
|
||||
'BA ',
|
||||
'BBA'
|
||||
], {
|
||||
A: 'firmalife:reinforced_glass',
|
||||
B: '#forge:rods/copper'
|
||||
}).addMaterialInfo().id('firmalife:crafting/greenhouse/copper_greenhouse_panel_roof')
|
||||
event.remove({ id: `firmalife:crafting/greenhouse/${tier.tier}_greenhouse_wall`})
|
||||
event.recipes.gtceu.shaped(`16x firmalife:${tier.tier}_greenhouse_wall`, [
|
||||
'ABA',
|
||||
'BBB',
|
||||
'ABA'
|
||||
], {
|
||||
A: tier.material,
|
||||
B: 'firmalife:reinforced_glass'
|
||||
}).addMaterialInfo().id(`firmalife:crafting/greenhouse/${tier.tier}_greenhouse_wall`)
|
||||
|
||||
// Крыша
|
||||
event.recipes.gtceu.shaped('4x firmalife:copper_greenhouse_roof', [
|
||||
'A ',
|
||||
'BA ',
|
||||
'BBA'
|
||||
], {
|
||||
A: '#forge:rods/copper',
|
||||
B: 'firmalife:reinforced_glass'
|
||||
}).addMaterialInfo().id('firmalife:crafting/greenhouse/copper_greenhouse_roof')
|
||||
event.remove({ id: `firmalife:crafting/greenhouse/${tier.tier}_greenhouse_panel_wall`})
|
||||
event.recipes.gtceu.shaped(`16x firmalife:${tier.tier}_greenhouse_panel_wall`, [
|
||||
'ABA',
|
||||
'ABA',
|
||||
'ABA'
|
||||
], {
|
||||
A: tier.material,
|
||||
B: 'firmalife:reinforced_glass'
|
||||
}).addMaterialInfo().id(`firmalife:crafting/greenhouse/${tier.tier}_greenhouse_panel_wall`)
|
||||
|
||||
// Верхушка крыши
|
||||
event.recipes.gtceu.shaped('8x firmalife:copper_greenhouse_roof_top', [
|
||||
'ABA',
|
||||
'BAB'
|
||||
], {
|
||||
A: '#forge:rods/copper',
|
||||
B: 'firmalife:reinforced_glass'
|
||||
}).addMaterialInfo().id('firmalife:crafting/greenhouse/copper_greenhouse_roof_top')
|
||||
event.remove({ id: `firmalife:crafting/greenhouse/${tier.tier}_greenhouse_panel_roof`})
|
||||
event.recipes.gtceu.shaped(`8x firmalife:${tier.tier}_greenhouse_panel_roof`, [
|
||||
'A ',
|
||||
'BA ',
|
||||
'BBA'
|
||||
], {
|
||||
A: 'firmalife:reinforced_glass',
|
||||
B: tier.material
|
||||
}).addMaterialInfo().id(`firmalife:crafting/greenhouse/${tier.tier}_greenhouse_panel_roof`)
|
||||
|
||||
// Люк
|
||||
event.recipes.gtceu.shaped('8x firmalife:copper_greenhouse_trapdoor', [
|
||||
'ABA',
|
||||
'BAB'
|
||||
], {
|
||||
A: 'firmalife:reinforced_glass',
|
||||
B: '#forge:rods/copper'
|
||||
}).addMaterialInfo().id('firmalife:crafting/greenhouse/copper_greenhouse_trapdoor')
|
||||
event.remove({ id: `firmalife:crafting/greenhouse/${tier.tier}_greenhouse_roof`})
|
||||
event.recipes.gtceu.shaped(`8x firmalife:${tier.tier}_greenhouse_roof`, [
|
||||
'A ',
|
||||
'BA ',
|
||||
'BBA'
|
||||
], {
|
||||
A: tier.material,
|
||||
B: 'firmalife:reinforced_glass'
|
||||
}).addMaterialInfo().id(`firmalife:crafting/greenhouse/${tier.tier}_greenhouse_roof`)
|
||||
|
||||
// Дверь
|
||||
event.recipes.gtceu.shaped('2x firmalife:copper_greenhouse_door', [
|
||||
'AB',
|
||||
'AB',
|
||||
'AB'
|
||||
], {
|
||||
A: '#forge:rods/copper',
|
||||
B: 'minecraft:glass'
|
||||
}).addMaterialInfo().id('firmalife:crafting/greenhouse/copper_greenhouse_door')
|
||||
event.remove({ id: `firmalife:crafting/greenhouse/${tier.tier}_greenhouse_roof_top`})
|
||||
event.recipes.gtceu.shaped(`8x firmalife:${tier.tier}_greenhouse_roof_top`, [
|
||||
'ABA',
|
||||
'BAB'
|
||||
], {
|
||||
A: tier.material,
|
||||
B: 'firmalife:reinforced_glass'
|
||||
}).addMaterialInfo().id(`firmalife:crafting/greenhouse/${tier.tier}_greenhouse_roof_top`)
|
||||
|
||||
event.shapeless('firmalife:copper_greenhouse_port', [
|
||||
'firmalife:copper_greenhouse_wall',
|
||||
'#forge:tiny_fluid_pipes/copper'
|
||||
])
|
||||
.id('firmalife:crafting/greenhouse/copper_greenhouse_port')
|
||||
event.remove({ id: `firmalife:crafting/greenhouse/${tier.tier}_greenhouse_trapdoor`})
|
||||
event.recipes.gtceu.shaped(`8x firmalife:${tier.tier}_greenhouse_trapdoor`, [
|
||||
'ABA',
|
||||
'BAB'
|
||||
], {
|
||||
A: 'firmalife:reinforced_glass',
|
||||
B: tier.material
|
||||
}).addMaterialInfo().id(`firmalife:crafting/greenhouse/${tier.tier}_greenhouse_trapdoor`)
|
||||
|
||||
//#endregion
|
||||
event.remove({ id: `firmalife:crafting/greenhouse/${tier.tier}_greenhouse_door`})
|
||||
event.recipes.gtceu.shaped(`2x firmalife:${tier.tier}_greenhouse_door`, [
|
||||
'AB',
|
||||
'AB',
|
||||
'AB'
|
||||
], {
|
||||
A: tier.material,
|
||||
B: 'firmalife:reinforced_glass'
|
||||
}).addMaterialInfo().id(`firmalife:crafting/greenhouse/${tier.tier}_greenhouse_door`)
|
||||
|
||||
//#region Железная / Iron
|
||||
|
||||
// Стена
|
||||
event.recipes.gtceu.shaped('8x firmalife:iron_greenhouse_wall', [
|
||||
'ABA',
|
||||
'ABA',
|
||||
'ABA'
|
||||
], {
|
||||
A: '#forge:rods/wrought_iron',
|
||||
B: 'minecraft:glass'
|
||||
}).addMaterialInfo().id('firmalife:crafting/greenhouse/iron_greenhouse_wall')
|
||||
|
||||
// Панель
|
||||
event.recipes.gtceu.shaped('8x firmalife:iron_greenhouse_panel_wall', [
|
||||
'ABA',
|
||||
'ABA',
|
||||
'ABA'
|
||||
], {
|
||||
A: '#forge:rods/wrought_iron',
|
||||
B: 'firmalife:reinforced_glass'
|
||||
}).addMaterialInfo().id('firmalife:crafting/greenhouse/iron_greenhouse_panel_wall')
|
||||
|
||||
// Панельная Крыша
|
||||
event.recipes.gtceu.shaped('4x firmalife:iron_greenhouse_panel_roof', [
|
||||
'A ',
|
||||
'BA ',
|
||||
'BBA'
|
||||
], {
|
||||
A: 'firmalife:reinforced_glass',
|
||||
B: '#forge:rods/wrought_iron'
|
||||
}).addMaterialInfo().id('firmalife:crafting/greenhouse/iron_greenhouse_panel_roof')
|
||||
|
||||
// Крыша
|
||||
event.recipes.gtceu.shaped('4x firmalife:iron_greenhouse_roof', [
|
||||
'A ',
|
||||
'BA ',
|
||||
'BBA'
|
||||
], {
|
||||
A: '#forge:rods/wrought_iron',
|
||||
B: 'firmalife:reinforced_glass'
|
||||
}).addMaterialInfo().id('firmalife:crafting/greenhouse/iron_greenhouse_roof')
|
||||
|
||||
// Верхушка крыши
|
||||
event.recipes.gtceu.shaped('8x firmalife:iron_greenhouse_roof_top', [
|
||||
'ABA',
|
||||
'BAB'
|
||||
], {
|
||||
A: '#forge:rods/wrought_iron',
|
||||
B: 'firmalife:reinforced_glass'
|
||||
}).addMaterialInfo().id('firmalife:crafting/greenhouse/iron_greenhouse_roof_top')
|
||||
|
||||
// Люк
|
||||
event.recipes.gtceu.shaped('8x firmalife:iron_greenhouse_trapdoor', [
|
||||
'ABA',
|
||||
'BAB'
|
||||
], {
|
||||
A: 'firmalife:reinforced_glass',
|
||||
B: '#forge:rods/wrought_iron'
|
||||
}).addMaterialInfo().id('firmalife:crafting/greenhouse/iron_greenhouse_trapdoor')
|
||||
|
||||
// Дверь
|
||||
event.recipes.gtceu.shaped('2x firmalife:iron_greenhouse_door', [
|
||||
'AB',
|
||||
'AB',
|
||||
'AB'
|
||||
], {
|
||||
A: '#forge:rods/wrought_iron',
|
||||
B: 'minecraft:glass'
|
||||
}).addMaterialInfo().id('firmalife:crafting/greenhouse/iron_greenhouse_door')
|
||||
|
||||
event.shapeless('firmalife:iron_greenhouse_port', [
|
||||
'firmalife:iron_greenhouse_wall',
|
||||
'#forge:tiny_fluid_pipes/copper'
|
||||
])
|
||||
.id('firmalife:crafting/greenhouse/iron_greenhouse_port')
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Нержавеющая теплица / Stainless Steel
|
||||
|
||||
event.recipes.gtceu.shaped('8x firmalife:stainless_steel_greenhouse_wall', [
|
||||
'ABA',
|
||||
'ABA',
|
||||
'ABA'
|
||||
], {
|
||||
A: '#forge:rods/stainless_steel',
|
||||
B: 'minecraft:glass'
|
||||
}).addMaterialInfo().id('firmalife:crafting/greenhouse/stainless_steel_greenhouse_wall')
|
||||
|
||||
event.recipes.gtceu.shaped('8x firmalife:stainless_steel_greenhouse_panel_wall', [
|
||||
'ABA',
|
||||
'ABA',
|
||||
'ABA'
|
||||
], {
|
||||
A: '#forge:rods/stainless_steel',
|
||||
B: 'firmalife:reinforced_glass'
|
||||
}).addMaterialInfo().id('firmalife:crafting/greenhouse/stainless_steel_greenhouse_panel_wall')
|
||||
|
||||
event.recipes.gtceu.shaped('4x firmalife:stainless_steel_greenhouse_panel_roof', [
|
||||
'A ',
|
||||
'BA ',
|
||||
'BBA'
|
||||
], {
|
||||
A: 'firmalife:reinforced_glass',
|
||||
B: '#forge:rods/stainless_steel'
|
||||
}).addMaterialInfo().id('firmalife:crafting/greenhouse/stainless_steel_greenhouse_panel_roof')
|
||||
|
||||
event.recipes.gtceu.shaped('4x firmalife:stainless_steel_greenhouse_roof', [
|
||||
'A ',
|
||||
'BA ',
|
||||
'BBA'
|
||||
], {
|
||||
A: '#forge:rods/stainless_steel',
|
||||
B: 'firmalife:reinforced_glass'
|
||||
}).addMaterialInfo().id('firmalife:crafting/greenhouse/stainless_steel_greenhouse_roof')
|
||||
|
||||
// Верхушка крыши
|
||||
event.recipes.gtceu.shaped('8x firmalife:stainless_steel_greenhouse_roof_top', [
|
||||
'ABA',
|
||||
'BAB'
|
||||
], {
|
||||
A: '#forge:rods/stainless_steel',
|
||||
B: 'firmalife:reinforced_glass'
|
||||
}).addMaterialInfo().id('firmalife:crafting/greenhouse/stainless_steel_greenhouse_roof_top')
|
||||
|
||||
// Люк
|
||||
event.recipes.gtceu.shaped('8x firmalife:stainless_steel_greenhouse_trapdoor', [
|
||||
'ABA',
|
||||
'BAB'
|
||||
], {
|
||||
A: 'firmalife:reinforced_glass',
|
||||
B: '#forge:rods/stainless_steel'
|
||||
}).addMaterialInfo().id('firmalife:crafting/greenhouse/stainless_steel_greenhouse_trapdoor')
|
||||
|
||||
// Дверь
|
||||
event.recipes.gtceu.shaped('2x firmalife:stainless_steel_greenhouse_door', [
|
||||
'AB',
|
||||
'AB',
|
||||
'AB'
|
||||
], {
|
||||
A: '#forge:rods/stainless_steel',
|
||||
B: 'minecraft:glass'
|
||||
}).addMaterialInfo().id('firmalife:crafting/greenhouse/stainless_steel_greenhouse_door')
|
||||
|
||||
event.shapeless('firmalife:stainless_steel_greenhouse_port', [
|
||||
'firmalife:stainless_steel_greenhouse_wall',
|
||||
'#forge:tiny_fluid_pipes/copper'
|
||||
])
|
||||
.id('firmalife:crafting/greenhouse/stainless_steel_greenhouse_port')
|
||||
|
||||
//#endregion
|
||||
event.remove({ id: `firmalife:crafting/greenhouse/${tier.tier}_greenhouse_port`})
|
||||
event.recipes.gtceu.shaped(`firmalife:${tier.tier}_greenhouse_port`, [
|
||||
'AB'
|
||||
], {
|
||||
A: `#tfg:${tier.tier}_greenhouse_casings`,
|
||||
B: ChemicalHelper.get(TagPrefix.pipeTinyFluid, GTMaterials.Copper, 1)
|
||||
}).addMaterialInfo().id(`firmalife:crafting/greenhouse/${tier.tier}_greenhouse_port`)
|
||||
});
|
||||
|
||||
event.recipes.gtceu.shaped('firmalife:sweeper', [
|
||||
'ABD',
|
||||
|
|
@ -459,48 +331,25 @@ const registerFirmaLifeRecipes = (event) => {
|
|||
|
||||
//#endregion
|
||||
|
||||
//#region Укрепленное стекло
|
||||
//#region Reinforced Glass
|
||||
|
||||
event.shaped('firmalife:reinforced_glass', [
|
||||
event.shaped('9x firmalife:reinforced_glass', [
|
||||
'AB'
|
||||
], {
|
||||
A: '#tfc:saws',
|
||||
B: 'gtceu:tempered_glass'
|
||||
}).id('tfg:shaped/reinforced_glass')
|
||||
}).id('tfg:shaped/reinforced_glass');
|
||||
|
||||
generateCutterRecipe(event, '3x gtceu:tempered_glass', '8x firmalife:reinforced_glass', 100, 7, 'reinforced_glass')
|
||||
generateCutterRecipe(event, '1x gtceu:tempered_glass', '9x firmalife:reinforced_glass', 100, 7, 'reinforced_glass');
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Рецепты электрической теплицы
|
||||
|
||||
// Дерево
|
||||
|
||||
// Семена фруктов
|
||||
global.FIRMALIFE_GREENHOUSE_FRUIT_RECIPE_COMPONENTS.forEach(element => {
|
||||
generateGreenHouseRecipe(event, element.input, '#tfc:any_fresh_water', element.fluid_amount, element.output,
|
||||
element.name, 'minecraft:overworld', 8, null, GTValues.VA[GTValues.LV])
|
||||
})
|
||||
|
||||
// Семена ягод
|
||||
global.FIRMALIFE_GREENHOUSE_BERRY_RECIPE_COMPONENTS.forEach(element => {
|
||||
generateGreenHouseRecipe(event, element.input, '#tfc:any_fresh_water', element.fluid_amount, element.output,
|
||||
element.name, null, 8, null, GTValues.VA[GTValues.LV])
|
||||
})
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Sticky Resin by Vat
|
||||
|
||||
event.recipes.firmalife.vat()
|
||||
.inputs('tfc:powder/wood_ash', Fluid.of('tfg:latex', 1000))
|
||||
.outputItem('gtceu:sticky_resin')
|
||||
.id('tfg:vat/latex_to_sticky_resin');
|
||||
|
||||
event.recipes.firmalife.vat()
|
||||
.inputs('tfc:powder/wood_ash', Fluid.of('tfg:conifer_pitch', 1000))
|
||||
.outputItem('gtceu:sticky_resin')
|
||||
.id('tfg:vat/conifer_pitch_to_sticky_resin');
|
||||
event.recipes.gtceu.macerator('tfg:recycling/reinforced_glass')
|
||||
.itemInputs('firmalife:reinforced_glass')
|
||||
.itemOutputs(
|
||||
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Glass, 1)
|
||||
)
|
||||
.duration(GTMaterials.Glass.getMass() * 1)
|
||||
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.ULV]);
|
||||
|
||||
//#endregion
|
||||
|
||||
|
|
@ -536,17 +385,11 @@ const registerFirmaLifeRecipes = (event) => {
|
|||
|
||||
//#endregion
|
||||
|
||||
//#region Plated blocks
|
||||
|
||||
generatePlatedBlockRecipe(event, GTMaterials.Chromium);
|
||||
generatePlatedBlockRecipe(event, GTMaterials.StainlessSteel);
|
||||
|
||||
// #endregion
|
||||
|
||||
// #region Drying mat alternatives
|
||||
|
||||
event.shaped('firmalife:drying_mat', ['AAA'], { A: 'tfc:plant/leafy_kelp' }).id('tfg:shaped/drying_mat_leafy_kelp')
|
||||
event.shaped('firmalife:drying_mat', ['AAA'], { A: 'tfc:plant/winged_kelp' }).id('tfg:shaped/drying_mat_winged_kelp')
|
||||
event.shaped('firmalife:drying_mat', ['AAA'], { A: '#tfg:charnia' }).id('tfg:shaped/drying_mat_charnia')
|
||||
|
||||
// #endregion
|
||||
|
||||
|
|
@ -1024,7 +867,7 @@ const registerFirmaLifeRecipes = (event) => {
|
|||
|
||||
event.recipes.tfc.barrel_sealed(72000)
|
||||
.inputFluid(Fluid.of('minecraft:water', 100))
|
||||
.inputItem(TFC.ingredient.hasTrait(Ingredient.of('#tfg:dried_fruit'), "firmalife:dried"))
|
||||
.inputItem(TFC.ingredient.hasTrait('#tfg:dried_fruit', "firmalife:dried"))
|
||||
.outputFluid(Fluid.of('firmalife:yeast_starter', 100))
|
||||
.id('firmalife:barrel/yeast_starter')
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,12 +18,17 @@ const registerFirmaLifeItemTags = (event) => {
|
|||
event.removeAllTagsFrom("/tfc:ore/[^*]+/[^*]+/")
|
||||
|
||||
// Make our own "dried fruit" tag so we can display something in EMI - used for yeast starter
|
||||
const fruitArray = Ingredient.of('#tfc:foods/fruits').itemIds.toArray().map(String)
|
||||
fruitArray.forEach(fruit => {
|
||||
if (fruit !== 'betterend:shadow_berry_cooked' && fruit !== 'minecraft:popped_chorus_fruit') {
|
||||
event.add('tfg:dried_fruit', fruit)
|
||||
}
|
||||
})
|
||||
global.FOOD_FRUIT
|
||||
.map(fruit => fruit.id)
|
||||
.filter(fruit => fruit !== 'betterend:shadow_berry_cooked' && fruit !== 'minecraft:popped_chorus_fruit')
|
||||
.forEach(fruit => event.add('tfg:dried_fruit', fruit))
|
||||
|
||||
event.add('tfc:fruit_tree_leaves', 'firmalife:plant/cocoa_leaves')
|
||||
event.add('tfc:fruit_tree_leaves', 'firmalife:plant/fig_leaves')
|
||||
event.add('minecraft:leaves', 'firmalife:plant/cocoa_leaves')
|
||||
event.add('minecraft:leaves', 'firmalife:plant/fig_leaves')
|
||||
|
||||
event.add('tfc:clay_recycle_5', '#firmalife:clay_recycle_5')
|
||||
}
|
||||
|
||||
const registerFirmaLifeBlockTags = (event) => {
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ const registerFramedBlocksRecipes = (event) => {
|
|||
event.remove({ id: 'framedblocks:framing_saw/framed_torch' })
|
||||
event.remove({ id: 'framedblocks:framed_soul_torch' })
|
||||
event.remove({ id: 'framedblocks:framing_saw/framed_soul_torch' })
|
||||
event.remove({ id: 'framedblocks:framed_obsidian_pressure_plate' })
|
||||
event.remove({ id: 'framedblocks:framing_saw/framed_obsidian_pressure_plate' })
|
||||
|
||||
//#region Framed Iron Door
|
||||
event.shaped('framedblocks:framed_iron_door', [
|
||||
|
|
@ -385,6 +387,13 @@ const registerFramedBlocksRecipes = (event) => {
|
|||
A: '#minecraft:planks',
|
||||
B: '#forge:rods/wooden'
|
||||
}).id('framedblocks:framed_cube')
|
||||
|
||||
event.recipes.gtceu.assembler('tfg:assembler/framedblocks/framed_cube')
|
||||
.itemInputs('4x #minecraft:planks', '4x #forge:rods/wooden')
|
||||
.circuit(8)
|
||||
.itemOutputs('framedblocks:framed_cube')
|
||||
.duration(40)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
// Framed Fence
|
||||
event.shaped('3x framedblocks:framed_fence', [
|
||||
|
|
@ -405,7 +414,7 @@ const registerFramedBlocksRecipes = (event) => {
|
|||
}).id('framedblocks:framed_fence_gate')
|
||||
|
||||
// Framed Ladder
|
||||
event.shaped('3x framedblocks:framed_ladder', [
|
||||
event.shaped('8x framedblocks:framed_ladder', [
|
||||
'A A',
|
||||
'ABA',
|
||||
'A A'
|
||||
|
|
@ -416,24 +425,26 @@ const registerFramedBlocksRecipes = (event) => {
|
|||
|
||||
// Framing Saw
|
||||
event.shaped('framedblocks:framing_saw', [
|
||||
' B ',
|
||||
'AAA',
|
||||
' E ',
|
||||
'CAC',
|
||||
'BDB'
|
||||
], {
|
||||
A: 'framedblocks:framed_cube',
|
||||
B: 'gtceu:wrought_iron_buzz_saw_blade'
|
||||
}).id('framedblocks:framing_saw')
|
||||
A: '#forge:plates/wrought_iron',
|
||||
B: 'framedblocks:framed_cube',
|
||||
C: '#forge:plates/brass',
|
||||
D: '#forge:small_gears/brass',
|
||||
E: '#forge:buzz_saw_heads'
|
||||
}).id('framedblocks:framing_saw');
|
||||
|
||||
// Powered Framing Saw
|
||||
event.shaped('framedblocks:powered_framing_saw', [
|
||||
'ABA',
|
||||
'CAD',
|
||||
'EEE'
|
||||
'A',
|
||||
'B',
|
||||
'C'
|
||||
], {
|
||||
A: '#forge:glass',
|
||||
B: 'gtceu:wrought_iron_buzz_saw_blade',
|
||||
C: 'gtceu:lv_electric_motor',
|
||||
D: 'gtceu:lv_electric_motor',
|
||||
E: 'framedblocks:framed_cube'
|
||||
B: 'framedblocks:framing_saw',
|
||||
C: 'gtceu:lv_electric_motor'
|
||||
}).id('framedblocks:powered_framing_saw')
|
||||
|
||||
// Framed Chest
|
||||
|
|
|
|||
|
|
@ -88,29 +88,7 @@ function registerGreateRecipes(event) {
|
|||
// #region Gearboxes
|
||||
|
||||
global.AVAILABLE_GREATE_MATERIAL_TIERS.forEach(tier => {
|
||||
|
||||
event.shaped(`greate:${tier}_gearbox`, [
|
||||
' A ',
|
||||
'ABA',
|
||||
'CA '
|
||||
], {
|
||||
A: `greate:${tier}_shaft`,
|
||||
B: 'create:andesite_casing',
|
||||
C: '#forge:tools/wrenches'
|
||||
}).id(`tfg:shaped/${tier}_gearbox`)
|
||||
|
||||
event.shaped(`greate:${tier}_vertical_gearbox`, [
|
||||
'A A',
|
||||
' B ',
|
||||
'ACA'
|
||||
], {
|
||||
A: `greate:${tier}_shaft`,
|
||||
B: 'create:andesite_casing',
|
||||
C: '#forge:tools/wrenches'
|
||||
}).id(`tfg:shaped/${tier}_vertical_gearbox`)
|
||||
|
||||
event.shapeless(`greate:${tier}_gearbox`, [`greate:${tier}_vertical_gearbox`])
|
||||
event.shapeless(`greate:${tier}_vertical_gearbox`, [`greate:${tier}_gearbox`])
|
||||
|
||||
event.recipes.gtceu.assembler(`greate:${tier}_gearbox`)
|
||||
.itemInputs('create:andesite_casing', `4x greate:${tier}_shaft`)
|
||||
|
|
@ -121,20 +99,20 @@ function registerGreateRecipes(event) {
|
|||
})
|
||||
|
||||
|
||||
TFGHelpers.registerMaterialInfo('greate:andesite_alloy_gearbox', { 'wood': 1, 'wrought_iron': 1 });
|
||||
TFGHelpers.registerMaterialInfo('greate:andesite_alloy_vertical_gearbox', { 'wood': 1, 'wrought_iron': 1 });
|
||||
TFGHelpers.registerMaterialInfo('greate:andesite_alloy_gearbox', [GTMaterials.Wood, 1, GTMaterials.WroughtIron, 1]);
|
||||
TFGHelpers.registerMaterialInfo('greate:andesite_alloy_vertical_gearbox', [GTMaterials.Wood, 1, GTMaterials.WroughtIron, 1]);
|
||||
|
||||
TFGHelpers.registerMaterialInfo('greate:steel_gearbox', { 'wood': 1, 'wrought_iron': 1, 'steel': 4/9 });
|
||||
TFGHelpers.registerMaterialInfo('greate:steel_vertical_gearbox', { 'wood': 1, 'wrought_iron': 1, 'steel': 4/9 });
|
||||
TFGHelpers.registerMaterialInfo('greate:steel_gearbox', [GTMaterials.Wood, 1, GTMaterials.WroughtIron, 1, GTMaterials.Steel, 4/9]);
|
||||
TFGHelpers.registerMaterialInfo('greate:steel_vertical_gearbox', [GTMaterials.Wood, 1, GTMaterials.WroughtIron, 1, GTMaterials.Steel, 4/9]);
|
||||
|
||||
TFGHelpers.registerMaterialInfo('greate:aluminium_gearbox', { 'wood': 1, 'wrought_iron': 1, 'aluminium': 4/9 });
|
||||
TFGHelpers.registerMaterialInfo('greate:aluminium_vertical_gearbox', { 'wood': 1, 'wrought_iron': 1, 'aluminium': 4/9 });
|
||||
TFGHelpers.registerMaterialInfo('greate:aluminium_gearbox', [GTMaterials.Wood, 1, GTMaterials.WroughtIron, 1, GTMaterials.Aluminium, 4/9]);
|
||||
TFGHelpers.registerMaterialInfo('greate:aluminium_vertical_gearbox', [GTMaterials.Wood, 1, GTMaterials.WroughtIron, 1, GTMaterials.Aluminium, 4/9]);
|
||||
|
||||
TFGHelpers.registerMaterialInfo('greate:stainless_steel_gearbox', { 'wood': 1, 'wrought_iron': 1, 'stainless_steel': 4/9 });
|
||||
TFGHelpers.registerMaterialInfo('greate:stainless_steel_vertical_gearbox', { 'wood': 1, 'wrought_iron': 1, 'stainless_steel': 4/9 });
|
||||
TFGHelpers.registerMaterialInfo('greate:stainless_steel_gearbox', [GTMaterials.Wood, 1, GTMaterials.WroughtIron, 1, GTMaterials.StainlessSteel, 4/9]);
|
||||
TFGHelpers.registerMaterialInfo('greate:stainless_steel_vertical_gearbox', [GTMaterials.Wood, 1, GTMaterials.WroughtIron, 1, GTMaterials.StainlessSteel, 4/9]);
|
||||
|
||||
TFGHelpers.registerMaterialInfo('greate:titanium_gearbox', { 'wood': 1, 'wrought_iron': 1, 'titanium': 4/9 });
|
||||
TFGHelpers.registerMaterialInfo('greate:titanium_vertical_gearbox', { 'wood': 1, 'wrought_iron': 1, 'titanium': 4/9 });
|
||||
TFGHelpers.registerMaterialInfo('greate:titanium_gearbox', [GTMaterials.Wood, 1, GTMaterials.WroughtIron, 1, GTMaterials.Titanium, 4/9]);
|
||||
TFGHelpers.registerMaterialInfo('greate:titanium_vertical_gearbox', [GTMaterials.Wood, 1, GTMaterials.WroughtIron, 1, GTMaterials.Titanium, 4/9]);
|
||||
|
||||
// #endregion
|
||||
|
||||
|
|
@ -147,8 +125,8 @@ function registerGreateRecipes(event) {
|
|||
event.shapeless('greate:large_andesite_alloy_cogwheel', ['greate:andesite_alloy_cogwheel', '#forge:small_gears/wood'])
|
||||
.id('tfg:shapeless/large_andesite_alloy_cogwheel_upgrade');
|
||||
|
||||
TFGHelpers.registerMaterialInfo('greate:andesite_alloy_cogwheel', { 'wood': 1 });
|
||||
TFGHelpers.registerMaterialInfo('greate:large_andesite_alloy_cogwheel', { 'wood': 2 });
|
||||
TFGHelpers.registerMaterialInfo('greate:andesite_alloy_cogwheel', [GTMaterials.Wood, 1]);
|
||||
TFGHelpers.registerMaterialInfo('greate:large_andesite_alloy_cogwheel', [GTMaterials.Wood, 2]);
|
||||
|
||||
event.shapeless('greate:steel_cogwheel', ['greate:steel_shaft', '#forge:small_gears/wrought_iron'])
|
||||
.id('tfg:shapeless/steel_cogwheel')
|
||||
|
|
@ -157,8 +135,8 @@ function registerGreateRecipes(event) {
|
|||
event.shapeless('greate:large_steel_cogwheel', ['greate:steel_cogwheel', '#forge:small_gears/wrought_iron'])
|
||||
.id('tfg:shapeless/large_steel_cogwheel_upgrade');
|
||||
|
||||
TFGHelpers.registerMaterialInfo('greate:steel_cogwheel', { 'wrought_iron': 1, 'steel': 1/9 });
|
||||
TFGHelpers.registerMaterialInfo('greate:large_steel_cogwheel', { 'wrought_iron': 2, 'steel': 1/9 });
|
||||
TFGHelpers.registerMaterialInfo('greate:steel_cogwheel', [GTMaterials.WroughtIron, 1, GTMaterials.Steel, 1/9]);
|
||||
TFGHelpers.registerMaterialInfo('greate:large_steel_cogwheel', [GTMaterials.WroughtIron, 2, GTMaterials.Steel, 1/9]);
|
||||
|
||||
event.shapeless('greate:aluminium_cogwheel', ['greate:aluminium_shaft', '#forge:small_gears/steel'])
|
||||
.id('tfg:shapeless/aluminium_cogwheel')
|
||||
|
|
@ -167,8 +145,8 @@ function registerGreateRecipes(event) {
|
|||
event.shapeless('greate:large_aluminium_cogwheel', ['greate:aluminium_cogwheel', '#forge:small_gears/steel'])
|
||||
.id('tfg:shapeless/large_aluminium_cogwheel_upgrade');
|
||||
|
||||
TFGHelpers.registerMaterialInfo('greate:aluminium_cogwheel', { 'steel': 1, 'aluminium': 1/9 });
|
||||
TFGHelpers.registerMaterialInfo('greate:large_aluminium_cogwheel', { 'steel': 2, 'aluminium': 1/9 });
|
||||
TFGHelpers.registerMaterialInfo('greate:aluminium_cogwheel', [GTMaterials.Steel, 1, GTMaterials.Aluminium, 1/9]);
|
||||
TFGHelpers.registerMaterialInfo('greate:large_aluminium_cogwheel', [GTMaterials.Steel, 2, GTMaterials.Aluminium, 1/9]);
|
||||
|
||||
event.shapeless('greate:stainless_steel_cogwheel', ['greate:stainless_steel_shaft', '#forge:small_gears/aluminium'])
|
||||
.id('tfg:shapeless/stainless_steel_cogwheel')
|
||||
|
|
@ -177,8 +155,8 @@ function registerGreateRecipes(event) {
|
|||
event.shapeless('greate:large_stainless_steel_cogwheel', ['greate:stainless_steel_cogwheel', '#forge:small_gears/aluminium'])
|
||||
.id('tfg:shapeless/large_stainless_steel_cogwheel_upgrade');
|
||||
|
||||
TFGHelpers.registerMaterialInfo('greate:stainless_steel_cogwheel', { 'aluminium': 1, 'stainless_steel': 1/9 });
|
||||
TFGHelpers.registerMaterialInfo('greate:large_stainless_steel_cogwheel', { 'aluminium': 2, 'stainless_steel': 1/9 });
|
||||
TFGHelpers.registerMaterialInfo('greate:stainless_steel_cogwheel', [GTMaterials.Aluminium, 1, GTMaterials.StainlessSteel, 1/9]);
|
||||
TFGHelpers.registerMaterialInfo('greate:large_stainless_steel_cogwheel', [GTMaterials.Aluminium, 2, GTMaterials.StainlessSteel, 1/9]);
|
||||
|
||||
event.shapeless('greate:titanium_cogwheel', ['greate:titanium_shaft', '#forge:small_gears/stainless_steel'])
|
||||
.id('tfg:shapeless/titanium_cogwheel')
|
||||
|
|
@ -187,8 +165,8 @@ function registerGreateRecipes(event) {
|
|||
event.shapeless('greate:large_titanium_cogwheel', ['greate:titanium_cogwheel', '#forge:small_gears/stainless_steel'])
|
||||
.id('tfg:shapeless/large_titanium_cogwheel_upgrade');
|
||||
|
||||
TFGHelpers.registerMaterialInfo('greate:titanium_cogwheel', { 'stainless_steel': 1, 'titanium': 1/9 });
|
||||
TFGHelpers.registerMaterialInfo('greate:large_titanium_cogwheel', { 'stainless_steel': 2, 'titanium': 1/9 });
|
||||
TFGHelpers.registerMaterialInfo('greate:titanium_cogwheel', [GTMaterials.StainlessSteel, 1, GTMaterials.Titanium, 1/9]);
|
||||
TFGHelpers.registerMaterialInfo('greate:large_titanium_cogwheel', [GTMaterials.StainlessSteel, 2, GTMaterials.Titanium, 1/9]);
|
||||
|
||||
// #endregion
|
||||
|
||||
|
|
@ -230,7 +208,7 @@ function registerGreateRecipes(event) {
|
|||
E: '#forge:tools/saws'
|
||||
}).id('greate:shaped/andesite_alloy_millstone3')
|
||||
|
||||
TFGHelpers.registerMaterialInfo('greate:andesite_alloy_millstone', { 'stone': 9 });
|
||||
TFGHelpers.registerMaterialInfo('greate:andesite_alloy_millstone', [GTMaterials.Stone, 9]);
|
||||
|
||||
event.shaped('greate:steel_millstone', [
|
||||
'FBF',
|
||||
|
|
@ -327,7 +305,7 @@ function registerGreateRecipes(event) {
|
|||
D: '#forge:gems/diamond'
|
||||
}).id('greate:steel_crushing_wheel')
|
||||
|
||||
TFGHelpers.registerMaterialInfo('greate:steel_crushing_wheel', { 'wrought_iron': 14, 'tin_alloy': 8, 'steel': 4, 'diamond': 4 });
|
||||
TFGHelpers.registerMaterialInfo('greate:steel_crushing_wheel', [GTMaterials.WroughtIron, 14, GTMaterials.TinAlloy, 8, GTMaterials.Steel, 4, GTMaterials.Diamond, 4]);
|
||||
|
||||
event.recipes.createMechanicalCrafting('2x greate:aluminium_crushing_wheel', [
|
||||
' AAA ',
|
||||
|
|
@ -342,7 +320,7 @@ function registerGreateRecipes(event) {
|
|||
D: '#forge:gems/diamond'
|
||||
}).id('greate:aluminium_crushing_wheel')
|
||||
|
||||
TFGHelpers.registerMaterialInfo('greate:aluminium_crushing_wheel', { 'steel': 14, 'vanadium_steel': 8, 'aluminium': 4, 'diamond': 4 });
|
||||
TFGHelpers.registerMaterialInfo('greate:aluminium_crushing_wheel', [GTMaterials.Steel, 14, GTMaterials.VanadiumSteel, 8, GTMaterials.Aluminium, 4, GTMaterials.Diamond, 4]);
|
||||
|
||||
event.recipes.createMechanicalCrafting('2x greate:stainless_steel_crushing_wheel', [
|
||||
' AAA ',
|
||||
|
|
@ -357,7 +335,7 @@ function registerGreateRecipes(event) {
|
|||
D: 'gtceu:diamond_grinding_head'
|
||||
}).id('greate:stainless_steel_crushing_wheel')
|
||||
|
||||
TFGHelpers.registerMaterialInfo('greate:stainless_steel_crushing_wheel', { 'aluminium': 14, 'blue_alloy': 8, 'stainless_steel': 4, 'steel': 32, 'diamond': 20 });
|
||||
TFGHelpers.registerMaterialInfo('greate:stainless_steel_crushing_wheel', [GTMaterials.Aluminium, 4, GTMaterials.BlueAlloy, 8, GTMaterials.StainlessSteel, 4, GTMaterials.Steel, 32, GTMaterials.Diamond, 20]);
|
||||
|
||||
event.recipes.createMechanicalCrafting('2x greate:titanium_crushing_wheel', [
|
||||
' AAA ',
|
||||
|
|
@ -372,7 +350,7 @@ function registerGreateRecipes(event) {
|
|||
D: 'gtceu:diamond_grinding_head'
|
||||
}).id('greate:titanium_crushing_wheel')
|
||||
|
||||
TFGHelpers.registerMaterialInfo('greate:titanium_crushing_wheel', { 'stainless_steel': 14, 'ultimet': 8, 'titanium': 4, 'steel': 32, 'diamond': 20 });
|
||||
TFGHelpers.registerMaterialInfo('greate:titanium_crushing_wheel', [GTMaterials.StainlessSteel, 14, GTMaterials.Ultimet, 8, GTMaterials.Titanium, 4, GTMaterials.Steel, 32, GTMaterials.Diamond, 20]);
|
||||
|
||||
// #endregion
|
||||
|
||||
|
|
@ -481,7 +459,7 @@ function registerGreateRecipes(event) {
|
|||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
TFGHelpers.registerMaterialInfo('greate:andesite_alloy_mechanical_saw', { 'wood': 1, 'wrought_iron': 3 });
|
||||
TFGHelpers.registerMaterialInfo('greate:andesite_alloy_mechanical_saw', [GTMaterials.Wood, 1, GTMaterials.WroughtIron, 3]);
|
||||
|
||||
event.shaped('greate:steel_mechanical_saw', [
|
||||
'ABA',
|
||||
|
|
@ -651,7 +629,7 @@ function registerGreateRecipes(event) {
|
|||
event.remove({ id: 'gtceu:extractor/extract_andesite_alloy_belt_connector' })
|
||||
event.remove({ id: 'gtceu:arc_furnace/arc_andesite_alloy_belt_connector' })
|
||||
|
||||
TFGHelpers.registerMaterialInfo('greate:andesite_alloy_belt_connector', { 'wood': 1 });
|
||||
TFGHelpers.registerMaterialInfo('greate:andesite_alloy_belt_connector', [GTMaterials.Wood, 1]);
|
||||
|
||||
// Leather
|
||||
event.recipes.tfc.damage_inputs_shaped_crafting(
|
||||
|
|
@ -674,7 +652,7 @@ function registerGreateRecipes(event) {
|
|||
removeMaceratorRecipe(event, 'macerate_stone_belt_connector')
|
||||
event.remove({ id: 'greate:shaped/stone_belt_connector' })
|
||||
|
||||
TFGHelpers.registerMaterialInfo('greate:stone_belt_connector', { 'air': 1 });
|
||||
TFGHelpers.clearMaterialInfo('greate:stone_belt_connector');
|
||||
|
||||
// Rubber
|
||||
event.shaped('greate:rubber_belt_connector', [
|
||||
|
|
@ -698,7 +676,7 @@ function registerGreateRecipes(event) {
|
|||
removeMaceratorRecipe(event, 'macerate_rubber_belt_connector')
|
||||
event.remove({ id: 'gtceu:extractor/extract_rubber_belt_connector' })
|
||||
|
||||
TFGHelpers.registerMaterialInfo('greate:rubber_belt_connector', { 'rubber': 3 });
|
||||
TFGHelpers.registerMaterialInfo('greate:rubber_belt_connector', [GTMaterials.Rubber, 3]);
|
||||
|
||||
// Silicone rubber
|
||||
event.shaped('greate:silicone_rubber_belt_connector', [
|
||||
|
|
@ -722,7 +700,7 @@ function registerGreateRecipes(event) {
|
|||
removeMaceratorRecipe(event, 'macerate_silicone_rubber_belt_connector')
|
||||
event.remove({ id: 'gtceu:extractor/extract_silicone_rubber_belt_connector' })
|
||||
|
||||
TFGHelpers.registerMaterialInfo('greate:silicone_rubber_belt_connector', { 'silicone_rubber': 3 });
|
||||
TFGHelpers.registerMaterialInfo('greate:silicone_rubber_belt_connector', [GTMaterials.SiliconeRubber, 3]);
|
||||
|
||||
// SBR rubber
|
||||
event.shaped('greate:styrene_butadiene_rubber_belt_connector', [
|
||||
|
|
@ -746,7 +724,7 @@ function registerGreateRecipes(event) {
|
|||
removeMaceratorRecipe(event, 'macerate_styrene_butadiene_rubber_belt_connector')
|
||||
event.remove({ id: 'gtceu:extractor/extract_styrene_butadiene_rubber_belt_connector' })
|
||||
|
||||
TFGHelpers.registerMaterialInfo('greate:styrene_butadiene_rubber_belt_connector', { 'styrene_butadiene_rubber': 3 });
|
||||
TFGHelpers.registerMaterialInfo('greate:styrene_butadiene_rubber_belt_connector', [GTMaterials.StyreneButadieneRubber, 3]);
|
||||
// #endregion
|
||||
|
||||
// #region Mixer
|
||||
|
|
@ -757,7 +735,7 @@ function registerGreateRecipes(event) {
|
|||
'FEG'
|
||||
], {
|
||||
A: '#gtceu:circuits/ulv',
|
||||
B: 'greate:steel_shaft',
|
||||
B: '#forge:small_gears/blue_steel',
|
||||
C: 'gtceu:ulv_machine_hull',
|
||||
D: '#forge:plates/black_steel',
|
||||
E: 'gtceu:steel_whisk',
|
||||
|
|
@ -766,7 +744,7 @@ function registerGreateRecipes(event) {
|
|||
}).id('greate:shaped/steel_mechanical_mixer')
|
||||
|
||||
event.recipes.gtceu.assembler('greate:steel_mechanical_mixer')
|
||||
.itemInputs('greate:steel_shaft', '2x #gtceu:circuits/ulv', 'gtceu:ulv_machine_hull', 'gtceu:steel_whisk', '2x #forge:plates/black_steel')
|
||||
.itemInputs('#forge:small_gears/blue_steel', '2x #gtceu:circuits/ulv', 'gtceu:ulv_machine_hull', 'gtceu:steel_whisk', '2x #forge:plates/black_steel')
|
||||
.itemOutputs('greate:steel_mechanical_mixer')
|
||||
.duration(200)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
|
@ -1035,7 +1013,7 @@ function registerGreateRecipes(event) {
|
|||
F: 'greate:andesite_alloy_shaft'
|
||||
}).id('greate:shaped/andesite_alloy_mechanical_press')
|
||||
|
||||
TFGHelpers.registerMaterialInfo('greate:andesite_alloy_mechanical_press', { 'iron': 2 });
|
||||
TFGHelpers.registerMaterialInfo('greate:andesite_alloy_mechanical_press', [GTMaterials.Iron, 2]);
|
||||
|
||||
event.shaped('greate:steel_mechanical_press', [
|
||||
' AD',
|
||||
|
|
@ -1122,14 +1100,9 @@ function registerGreateRecipes(event) {
|
|||
|
||||
// #endregion
|
||||
|
||||
event.recipes.gtceu.shaped('greate:wire_coating_factory', [
|
||||
'ABA',
|
||||
'CDC',
|
||||
'ABA'
|
||||
], {
|
||||
A: 'gtceu:watertight_casing',
|
||||
B: '#gtceu:circuits/iv',
|
||||
C: 'gtceu:iv_electric_pump',
|
||||
D: 'create:spout'
|
||||
}).addMaterialInfo().id('tfg:shaped/toms_favourite_block')
|
||||
event.recipes.gtceu.cutter(`tfg:greate/greate:treated_wood_window_pane`)
|
||||
.itemInputs(`3x greate:treated_wood_window`)
|
||||
.itemOutputs(`8x greate:treated_wood_window_pane`)
|
||||
.duration(40)
|
||||
.EUt(7)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ function removeGreateRecipes(event) {
|
|||
global.GREATE_DISABLED_ITEMS.forEach(item => {
|
||||
event.remove({ input: item })
|
||||
event.remove({ output: item })
|
||||
TFGHelpers.clearMaterialInfo(item);
|
||||
})
|
||||
|
||||
global.GREATE_DISABLED_FLUIDS.forEach(fluid => {
|
||||
|
|
@ -41,6 +42,7 @@ function removeGreateRecipes(event) {
|
|||
event.remove({ id: `gtceu:extractor/extract_${tier}` })
|
||||
event.remove({ id: `gtceu:extractor/extract_${tier}_shaft` })
|
||||
event.remove({ id: `gtceu:extractor/extract_${tier}_cogwheel` })
|
||||
event.remove({ id: `gtceu:extractor/extract_large_${tier}_cogwheel` })
|
||||
event.remove({ id: `gtceu:extractor/extract_${tier}_alloy` })
|
||||
event.remove({ id: `gtceu:extractor/extract_${tier}_gearbox` })
|
||||
event.remove({ id: `gtceu:extractor/extract_${tier}_vertical_gearbox` })
|
||||
|
|
@ -53,17 +55,11 @@ function removeGreateRecipes(event) {
|
|||
|
||||
event.remove({ id: 'gtceu:shaped/andesite_alloy_shaft' })
|
||||
event.remove({ id: 'gtceu:extractor/extract_andesite_alloy' })
|
||||
|
||||
event.remove({ id: /^greate:mixing\/integration\/create\/.*/ })
|
||||
event.remove({ id: /^greate:sawing\/integration\/create\/.*/ })
|
||||
event.remove({ id: /^greate:splashing\/integration\/create\/.*/ })
|
||||
event.remove({ id: /^greate:crushing\/integration\/create\/.*/ })
|
||||
event.remove({ id: /^greate:milling\/integration\/create\/.*/ })
|
||||
event.remove({ id: /^greate:compacting\/integration\/.*/ })
|
||||
event.remove({ id: /^greate:pressing\/integration\/.*/ })
|
||||
event.remove({ id: /^greate:shaped\/.*/ })
|
||||
event.remove({ id: /^greate:shapeless\/.*/ })
|
||||
|
||||
event.remove({ id: /^greate:(mixing|sawing|splashing|crushing|milling)\/integration\/(create|createaddition|vintageimprovements)\/.*/ })
|
||||
event.remove({ id: /^greate:(compacting|pressing)\/integration\/.*/ })
|
||||
|
||||
event.remove({ mod: 'greate', type: 'minecraft:crafting_shapeless' })
|
||||
event.remove({ mod: 'greate', type: 'create:deploying' });
|
||||
event.remove({ mod: 'greate', type: 'create:sequenced_assembly' });
|
||||
event.remove({ mod: 'greate', type: 'gtceu:assembler' });
|
||||
|
|
@ -77,8 +73,56 @@ 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: 'toomanyrecipeviewers:/greate/milling/integration/gtceu/macerator/macerate_cocoa' })
|
||||
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:mixing/brass_ingot' })
|
||||
|
||||
event.remove({ id: 'greate:shaped/copper_diving_helmet' })
|
||||
event.remove({ id: 'greate:shaped/copper_backtank' })
|
||||
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_phosphorus_boule' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_phosphorus_boule_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_phosphorus_boule_distilled_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_naquadah_boule' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_naquadah_boule_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_naquadah_boule_distilled_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_neutronium_boule' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_neutronium_boule_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_neutronium_boule_distilled_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_nano_cpu' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_nano_cpu_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_nano_cpu_distilled_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_qbit_cpu' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_qbit_cpu_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_qbit_cpu_distilled_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_soc' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_soc_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_soc_distilled_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_asoc' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_asoc_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_asoc_distilled_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_hasoc' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_hasoc_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_hasoc_distilled_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_nand' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_nand_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_nand_distilled_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_nor' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_nor_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_nor_distilled_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_lpic_wafer' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_lpic_wafer_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_lpic_wafer_distilled_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_pic_wafer' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_pic_wafer_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_pic_wafer_distilled_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_hpic' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_hpic_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_hpic_distilled_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_uhpic' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_uhpic_water' })
|
||||
event.remove({ id: 'greate:cutting/integration/gtceu/cutter/cut_uhpic_distilled_water' })
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@ const registerGTCEUHeats = (event) => {
|
|||
makeItemHeatByTagPrefix(TagPrefix.plateDouble, material, tfcProperty, 5.75)
|
||||
makeItemHeatByTagPrefix(TagPrefix.springSmall, material, tfcProperty, 0.567)
|
||||
makeItemHeatByTagPrefix(TagPrefix.spring, material, tfcProperty, 1.429)
|
||||
makeItemHeatByTagPrefix(TagPrefix.ring, material, tfcProperty, 0.567)
|
||||
|
||||
makeItemHeatByTagPrefix(TagPrefix.ingot, material, tfcProperty, 1.429)
|
||||
makeItemHeatByTagPrefix(TFGTagPrefix.ingotDouble, material, tfcProperty, 2.875)
|
||||
|
|
@ -59,7 +60,11 @@ const registerGTCEUHeats = (event) => {
|
|||
makeItemHeatByTagPrefix(TagPrefix.crushed, material, tfcProperty, 1.429)
|
||||
makeItemHeatByTagPrefix(TagPrefix.crushedPurified, material, tfcProperty, 1.429)
|
||||
makeItemHeatByTagPrefix(TagPrefix.crushedRefined, material, tfcProperty, 1.429)
|
||||
|
||||
|
||||
makeItemHeatByTagPrefix(TagPrefix.toolHeadWrench, material, tfcProperty, 2.875)
|
||||
makeItemHeatByTagPrefix(TagPrefix.toolHeadBuzzSaw, material, tfcProperty, 2.875)
|
||||
makeItemHeatByTagPrefix(TagPrefix.toolHeadScrewdriver, material, tfcProperty, 1.429)
|
||||
makeItemHeatByTagPrefix(TagPrefix.toolHeadWireCutter, material, tfcProperty, 1.429)
|
||||
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadSword, material, tfcProperty, 2.875)
|
||||
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadShovel, material, tfcProperty, 1.429)
|
||||
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadScythe, material, tfcProperty, 1.429)
|
||||
|
|
@ -70,7 +75,7 @@ const registerGTCEUHeats = (event) => {
|
|||
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadHammer, material, tfcProperty, 1.429)
|
||||
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadAxe, material, tfcProperty, 1.429)
|
||||
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadFile, material, tfcProperty, 1.429)
|
||||
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadButcheryKnife, material, tfcProperty, 2.875)
|
||||
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadButcheryKnife, material, tfcProperty, 1.429)
|
||||
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadMiningHammer, material, tfcProperty, 2.875)
|
||||
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadSpade, material, tfcProperty, 2.875)
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
*/
|
||||
const registerGTCEURecipes = (event) => {
|
||||
|
||||
registerGTCEUMetalRecipes(event)
|
||||
registerGTCEURecyclingRecipes(event)
|
||||
registerGTCEuMachineRecipes(event)
|
||||
|
||||
|
|
@ -80,7 +79,9 @@ const registerGTCEURecipes = (event) => {
|
|||
//#endregion
|
||||
|
||||
|
||||
// #region Move MV superconductor to mid-late MV instead of post-vac freezer
|
||||
// #region Superconductor
|
||||
|
||||
// Move MV superconductor to mid-late MV instead of post-vac freezer
|
||||
|
||||
event.remove({ id: 'gtceu:shaped/mv_chemical_bath' })
|
||||
event.shaped('gtceu:mv_chemical_bath', [
|
||||
|
|
@ -112,6 +113,32 @@ const registerGTCEURecipes = (event) => {
|
|||
.duration(400)
|
||||
.EUt(GTValues.VA[GTValues.MV])
|
||||
|
||||
// Move EV to after Uranium Reactor
|
||||
|
||||
event.remove({ id: 'gtceu:mixer/uranium_triplatinum' })
|
||||
event.recipes.gtceu.mixer('tfg:uranium_triplatinum')
|
||||
.itemInputs(Item.of('gtceu:uranium_dust', 1), Item.of('gtceu:platinum_dust', 3))
|
||||
.inputFluids(Fluid.of('gtceu:radon', 10))
|
||||
.itemOutputs(Item.of('gtceu:uranium_triplatinum_dust', 4))
|
||||
.duration(20*10)
|
||||
.EUt(GTValues.VA[GTValues.EV])
|
||||
.circuit(4)
|
||||
|
||||
// Move Superconductor to EV and make them cheap
|
||||
|
||||
event.remove({ id: 'gtceu:assembler/laser_cable' })
|
||||
event.recipes.gtceu.assembler('tfg:laser_cable')
|
||||
.itemInputs(Item.of('gtceu:laminated_glass', 1), Item.of('2x #forge:foils/ostrum_iodide', 2))
|
||||
.itemOutputs(Item.of('gtceu:normal_laser_pipe', 16))
|
||||
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 144))
|
||||
.duration(20*5)
|
||||
.EUt(GTValues.VA[GTValues.EV])
|
||||
.cleanroom(CleanroomType.CLEANROOM)
|
||||
|
||||
TFGHelpers.registerMaterialInfo('gtceu:normal_laser_pipe', [GTMaterials.Air, 1])
|
||||
event.remove({ id: 'gtceu:arc_furnace/arc_normal_laser_pipe' })
|
||||
removeMaceratorRecipe(event, 'macerate_normal_laser_pipe')
|
||||
|
||||
// #endregion
|
||||
|
||||
//#region Voiding covers
|
||||
|
|
@ -368,8 +395,6 @@ const registerGTCEURecipes = (event) => {
|
|||
|
||||
|
||||
event.replaceInput({ output: 'gtceu:nano_saber' }, 'gtceu:ruridit_plate', '#forge:plates/ostrum_iodide')
|
||||
event.replaceOutput({ id: 'gtceu:canner/pack_paracetamol' }, 'gtceu:paracetamol_pill', 'tfg:paracetamol_pill')
|
||||
event.replaceOutput({ id: 'gtceu:canner/pack_rad_away' }, 'gtceu:rad_away_pill', 'tfg:rad_away_pill')
|
||||
|
||||
// Intentionally long to encourage reuse instead of mindlessly creating and distilling
|
||||
event.recipes.gtceu.mixer('tfg:diluted_hcl_acid')
|
||||
|
|
@ -385,12 +410,48 @@ const registerGTCEURecipes = (event) => {
|
|||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
// Ladder consistency
|
||||
|
||||
const nonAdAstraLumber = Ingredient.of('#tfc:lumber').subtract('tfg:wood/lumber/aeronos').subtract('tfg:wood/lumber/strophar');
|
||||
|
||||
event.replaceOutput({ id: 'gtceu:assembler/ladder' }, 'minecraft:ladder', '8x minecraft:ladder')
|
||||
|
||||
event.replaceInput({ id: 'tfc:crafting/vanilla/ladder' }, '#tfc:lumber', nonAdAstraLumber)
|
||||
|
||||
event.recipes.gtceu.assembler('tfg:ladder_from_lumber')
|
||||
.itemInputs('#tfc:lumber')
|
||||
.itemInputs(nonAdAstraLumber.withCount(7))
|
||||
.itemOutputs('8x minecraft:ladder')
|
||||
.circuit(7)
|
||||
.duration(40)
|
||||
.EUt(4)
|
||||
|
||||
// Pills
|
||||
event.remove({ id: 'gtceu:canner/pack_paracetamol' })
|
||||
event.remove({ id: 'gtceu:canner/pack_rad_away' })
|
||||
|
||||
event.recipes.gtceu.forming_press('tfg:pack_rad_away')
|
||||
.itemInputs('16x #forge:dusts/rad_away')
|
||||
.notConsumable('gtceu:pill_casting_mold')
|
||||
.itemOutputs('tfg:rad_away_pill')
|
||||
.duration(3 * 20)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
event.recipes.gtceu.forming_press('gtceu:pack_paracetamol')
|
||||
.itemInputs('16x #forge:dusts/paracetamol')
|
||||
.notConsumable('gtceu:pill_casting_mold')
|
||||
.itemOutputs('tfg:paracetamol_pill')
|
||||
.duration(3 * 20)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
// Glass lens
|
||||
event.recipes.gtceu.lathe('tfg:gt_glass_lens')
|
||||
.itemInputs('#forge:plates/glass')
|
||||
.itemOutputs('#forge:lenses/glass', '#forge:small_dusts/glass')
|
||||
.duration(60 * 20)
|
||||
.EUt(GTValues.VA[GTValues.MV])
|
||||
|
||||
// Magnetic iron
|
||||
event.shapeless('gtceu:magnetic_iron_ingot', ['#forge:ingots/iron', '8x minecraft:redstone'])
|
||||
event.shapeless('gtceu:magnetic_iron_plate', ['#forge:plates/iron', '8x minecraft:redstone'])
|
||||
event.shapeless('gtceu:magnetic_iron_bolt', ['#forge:bolts/iron', '2x minecraft:redstone'])
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
* @param {Internal.RecipesEventJS} event
|
||||
*/
|
||||
function registerGTCEuMachineRecipes(event) {
|
||||
//#region Выход: Filter Casing
|
||||
// Filter Casing
|
||||
|
||||
event.shaped('gtceu:filter_casing', [
|
||||
'AAA',
|
||||
|
|
@ -19,9 +19,7 @@ function registerGTCEuMachineRecipes(event) {
|
|||
E: '#forge:rotors/steel'
|
||||
}).id('gtceu:shaped/filter_casing')
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Выход: Assembly Line Grating
|
||||
// Assembly Line Grating
|
||||
|
||||
event.shaped('2x gtceu:assembly_line_grating', [
|
||||
'ABA',
|
||||
|
|
@ -34,9 +32,7 @@ function registerGTCEuMachineRecipes(event) {
|
|||
D: 'gtceu:mv_electric_motor'
|
||||
}).id('gtceu:shaped/casing_grate_casing')
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Gas Collectors
|
||||
// #region Gas Collectors
|
||||
|
||||
event.shaped('gtceu:lv_gas_collector', [
|
||||
'ABA',
|
||||
|
|
@ -133,10 +129,9 @@ function registerGTCEuMachineRecipes(event) {
|
|||
D: '#gtceu:circuits/uv',
|
||||
E: 'gtceu:uv_machine_hull'
|
||||
}).id('gtceu:shaped/uv_gas_collector')
|
||||
// #endregion
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Forge Hammers
|
||||
// #region Forge Hammers
|
||||
|
||||
event.shaped('gtceu:lv_forge_hammer', [
|
||||
'ABA',
|
||||
|
|
@ -233,12 +228,29 @@ function registerGTCEuMachineRecipes(event) {
|
|||
D: 'gtceu:uv_machine_hull',
|
||||
E: '#tfc:red_or_blue_anvil',
|
||||
}).id('gtceu:shaped/uv_forge_hammer')
|
||||
// #endregion
|
||||
|
||||
//#endregion
|
||||
// #region Coke Oven
|
||||
|
||||
//#region CokeOven
|
||||
event.remove({ id: 'gtceu:shaped/casing_coke_bricks' })
|
||||
event.remove({ id: 'gtceu:compressor/coke_bricks' })
|
||||
|
||||
event.shaped('gtceu:coke_oven_bricks', [
|
||||
'ABA',
|
||||
'BAB',
|
||||
'ABA'
|
||||
], {
|
||||
A: 'tfc:mortar',
|
||||
B: 'gtceu:coke_oven_brick'
|
||||
}).id('tfg:shaped/coke_oven_bricks')
|
||||
|
||||
event.recipes.gtceu.assembler('tfg:coke_oven_bricks')
|
||||
.itemInputs('4x gtceu:coke_oven_brick')
|
||||
.inputFluids(Fluid.of('gtceu:concrete 90'))
|
||||
.itemOutputs('gtceu:coke_oven_bricks')
|
||||
.duration(50)
|
||||
.EUt(2);
|
||||
|
||||
// Coke Oven
|
||||
removeMaceratorRecipe(event, 'macerate_coke_oven')
|
||||
event.recipes.gtceu.shaped('gtceu:coke_oven', [
|
||||
'ABA',
|
||||
|
|
@ -268,15 +280,12 @@ function registerGTCEuMachineRecipes(event) {
|
|||
A: 'gtceu:coke_oven_bricks',
|
||||
B: '#forge:chests/wooden'
|
||||
}).addMaterialInfo().id('gtceu:shaped/coke_oven_hatch')
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Выход: Стальные машины
|
||||
|
||||
// HP Steam Boilers
|
||||
removeMaceratorRecipe(event, 'macerate_hp_steam_solid_boiler')
|
||||
event.recipes.gtceu.shaped('gtceu:hp_steam_solid_boiler', [
|
||||
'AEA',
|
||||
'FEF',
|
||||
'ADA',
|
||||
'BCB'
|
||||
], {
|
||||
|
|
@ -284,12 +293,13 @@ function registerGTCEuMachineRecipes(event) {
|
|||
B: ChemicalHelper.get(TagPrefix.pipeSmallFluid, GTMaterials.TinAlloy, 1),
|
||||
C: 'gtceu:steel_brick_casing',
|
||||
D: 'tfc:crucible',
|
||||
E: ChemicalHelper.get(TagPrefix.rod, GTMaterials.BlackSteel, 1)
|
||||
E: ChemicalHelper.get(TagPrefix.plate, GTMaterials.BlackSteel, 1),
|
||||
F: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Steel, 1)
|
||||
}).addMaterialInfo().id('gtceu:shaped/steam_boiler_coal_steel')
|
||||
|
||||
removeMaceratorRecipe(event, 'macerate_hp_steam_liquid_boiler')
|
||||
event.recipes.gtceu.shaped('gtceu:hp_steam_liquid_boiler', [
|
||||
'AEA',
|
||||
'FEF',
|
||||
'ADA',
|
||||
'BCB'
|
||||
], {
|
||||
|
|
@ -297,7 +307,8 @@ function registerGTCEuMachineRecipes(event) {
|
|||
B: ChemicalHelper.get(TagPrefix.pipeSmallFluid, GTMaterials.TinAlloy, 1),
|
||||
C: 'gtceu:steel_brick_casing',
|
||||
D: '#forge:glass',
|
||||
E: ChemicalHelper.get(TagPrefix.rod, GTMaterials.BlackSteel, 1)
|
||||
E: ChemicalHelper.get(TagPrefix.plate, GTMaterials.BlackSteel, 1),
|
||||
F: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Steel, 1)
|
||||
}).addMaterialInfo().id('gtceu:shaped/steam_boiler_lava_steel')
|
||||
|
||||
removeMaceratorRecipe(event, 'macerate_hp_steam_solar_boiler')
|
||||
|
|
@ -308,12 +319,13 @@ function registerGTCEuMachineRecipes(event) {
|
|||
], {
|
||||
A: '#forge:glass_panes',
|
||||
B: ChemicalHelper.get(TagPrefix.plateDouble, GTMaterials.Silver, 1),
|
||||
C: ChemicalHelper.get(TagPrefix.rod, GTMaterials.BlackSteel, 1),
|
||||
C: ChemicalHelper.get(TagPrefix.plate, GTMaterials.BlackSteel, 1),
|
||||
D: 'gtceu:steel_brick_casing',
|
||||
E: ChemicalHelper.get(TagPrefix.pipeSmallFluid, GTMaterials.TinAlloy, 1),
|
||||
}).addMaterialInfo().id('gtceu:shaped/steam_boiler_solar_steel')
|
||||
|
||||
// Экстрактор
|
||||
// #region Other steam machines
|
||||
|
||||
removeMaceratorRecipe(event, 'macerate_hp_steam_extractor')
|
||||
event.recipes.gtceu.shaped('gtceu:hp_steam_extractor', [
|
||||
'BEB',
|
||||
|
|
@ -328,7 +340,6 @@ function registerGTCEuMachineRecipes(event) {
|
|||
F: ChemicalHelper.get(TagPrefix.ring, GTMaterials.BlackSteel, 1)
|
||||
}).addMaterialInfo().id('gtceu:shaped/steam_extractor_steel')
|
||||
|
||||
// Дробитель
|
||||
removeMaceratorRecipe(event, 'macerate_hp_steam_macerator')
|
||||
event.recipes.gtceu.shaped('gtceu:hp_steam_macerator', [
|
||||
'BFB',
|
||||
|
|
@ -343,7 +354,6 @@ function registerGTCEuMachineRecipes(event) {
|
|||
F: '#forge:raw_materials/diamond'
|
||||
}).addMaterialInfo().id('gtceu:shaped/steam_macerator_steel')
|
||||
|
||||
// Компрессор
|
||||
removeMaceratorRecipe(event, 'macerate_hp_steam_compressor')
|
||||
event.recipes.gtceu.shaped('gtceu:hp_steam_compressor', [
|
||||
'BCB',
|
||||
|
|
@ -355,10 +365,9 @@ function registerGTCEuMachineRecipes(event) {
|
|||
C: ChemicalHelper.get(TagPrefix.plate, GTMaterials.Steel, 1),
|
||||
D: ChemicalHelper.get(TagPrefix.plate, GTMaterials.WroughtIron, 1),
|
||||
E: 'minecraft:piston',
|
||||
F: ChemicalHelper.get(TagPrefix.rod, GTMaterials.BlackSteel, 1)
|
||||
F: ChemicalHelper.get(TagPrefix.ingot, GTMaterials.BlackSteel, 1)
|
||||
}).addMaterialInfo().id('gtceu:shaped/steam_compressor_steel')
|
||||
|
||||
// Молот
|
||||
removeMaceratorRecipe(event, 'macerate_hp_steam_forge_hammer')
|
||||
event.recipes.gtceu.shaped('gtceu:hp_steam_forge_hammer', [
|
||||
'DFD',
|
||||
|
|
@ -373,7 +382,6 @@ function registerGTCEuMachineRecipes(event) {
|
|||
F: 'minecraft:piston'
|
||||
}).addMaterialInfo().id('gtceu:shaped/steam_hammer_steel')
|
||||
|
||||
// Печь
|
||||
removeMaceratorRecipe(event, 'macerate_hp_steam_furnace')
|
||||
event.recipes.gtceu.shaped('gtceu:hp_steam_furnace', [
|
||||
'BCB',
|
||||
|
|
@ -387,7 +395,6 @@ function registerGTCEuMachineRecipes(event) {
|
|||
F: ChemicalHelper.get(TagPrefix.rod, GTMaterials.BlackSteel, 1)
|
||||
}).addMaterialInfo().id('gtceu:shaped/steam_furnace_steel')
|
||||
|
||||
// Сплавщик
|
||||
removeMaceratorRecipe(event, 'macerate_hp_steam_alloy_smelter')
|
||||
event.recipes.gtceu.shaped('gtceu:hp_steam_alloy_smelter', [
|
||||
'FCF',
|
||||
|
|
@ -401,7 +408,6 @@ function registerGTCEuMachineRecipes(event) {
|
|||
F: ChemicalHelper.get(TagPrefix.rod, GTMaterials.BlackSteel, 1)
|
||||
}).addMaterialInfo().id('gtceu:shaped/steam_alloy_smelter_steel')
|
||||
|
||||
// Блоко-ломатель
|
||||
removeMaceratorRecipe(event, 'macerate_hp_steam_rock_crusher')
|
||||
event.recipes.gtceu.shaped('gtceu:hp_steam_rock_crusher', [
|
||||
'ECE',
|
||||
|
|
@ -413,9 +419,9 @@ function registerGTCEuMachineRecipes(event) {
|
|||
C: '#forge:drill_heads',
|
||||
D: ChemicalHelper.get(TagPrefix.rod, GTMaterials.WroughtIron, 1),
|
||||
E: ChemicalHelper.get(TagPrefix.screw, GTMaterials.WroughtIron, 1)
|
||||
}).addMaterialInfo().id('gtceu:shaped/steam_rock_breaker_steel')
|
||||
}).id('gtceu:shaped/steam_rock_breaker_steel')
|
||||
TFGHelpers.registerMaterialInfo('gtceu:hp_steam_rock_crusher', [GTMaterials.WroughtIron, 6.5, GTMaterials.TinAlloy, 2])
|
||||
|
||||
// Miner
|
||||
removeMaceratorRecipe(event, 'macerate_hp_steam_miner')
|
||||
event.recipes.gtceu.shaped('gtceu:hp_steam_miner', [
|
||||
'EFE',
|
||||
|
|
@ -428,11 +434,12 @@ function registerGTCEuMachineRecipes(event) {
|
|||
D: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Steel, 1),
|
||||
E: ChemicalHelper.get(TagPrefix.plate, GTMaterials.WroughtIron, 1),
|
||||
F: '#gtceu:circuits/ulv'
|
||||
}).addMaterialInfo().id('gtceu:shaped/steam_miner_steel')
|
||||
}).id('gtceu:shaped/steam_miner_steel')
|
||||
TFGHelpers.registerMaterialInfo('gtceu:hp_steam_miner', [GTMaterials.WroughtIron, 7, GTMaterials.Steel, 1, GTMaterials.TinAlloy, 2])
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region passthrough hatches
|
||||
//#region Passthrough hatches
|
||||
event.recipes.gtceu.shaped('gtceu:lv_item_passthrough_hatch', [
|
||||
' A ',
|
||||
'BCB',
|
||||
|
|
@ -604,6 +611,8 @@ function registerGTCEuMachineRecipes(event) {
|
|||
|
||||
//#region ULV Hatches
|
||||
|
||||
event.replaceInput({ id: 'gtceu:shaped/ulv_machine_hull' }, '#forge:plates/wood', '#forge:plates/lead')
|
||||
|
||||
event.recipes.gtceu.shaped('gtceu:ulv_input_bus', [
|
||||
'CAC',
|
||||
'CBC',
|
||||
|
|
@ -895,4 +904,54 @@ function registerGTCEuMachineRecipes(event) {
|
|||
.circuit(6)
|
||||
.duration(2.5 * 20)
|
||||
.EUt(GTValues.VHA[GTValues.LV])
|
||||
|
||||
// Steam generators
|
||||
|
||||
event.remove({ id: 'gtceu:shaped/steam_turbine_lv' })
|
||||
removeMaceratorRecipe(event, 'macerate_lv_steam_turbine')
|
||||
|
||||
event.recipes.gtceu.shaped('gtceu:lv_steam_turbine', [
|
||||
'BAB',
|
||||
'CDC',
|
||||
'EFE'
|
||||
], {
|
||||
A: '#gtceu:circuits/lv',
|
||||
B: '#forge:huge_fluid_pipes/steel',
|
||||
C: '#forge:rotors/cobalt_brass',
|
||||
D: 'gtceu:lv_machine_hull',
|
||||
E: 'gtceu:lv_electric_motor',
|
||||
F: '#forge:single_cables/tin'
|
||||
}).addMaterialInfo().id('tfg:shaped/steam_turbine_lv')
|
||||
|
||||
event.remove({ id: 'gtceu:shaped/steam_turbine_mv' })
|
||||
removeMaceratorRecipe(event, 'macerate_mv_steam_turbine')
|
||||
|
||||
event.recipes.gtceu.shaped('gtceu:mv_steam_turbine', [
|
||||
'BAB',
|
||||
'CDC',
|
||||
'EFE'
|
||||
], {
|
||||
A: '#gtceu:circuits/mv',
|
||||
B: '#forge:huge_fluid_pipes/aluminium',
|
||||
C: '#forge:rotors/magnalium',
|
||||
D: 'gtceu:mv_machine_hull',
|
||||
E: 'gtceu:mv_electric_motor',
|
||||
F: '#forge:single_cables/copper'
|
||||
}).addMaterialInfo().id('tfg:shaped/steam_turbine_mv')
|
||||
|
||||
event.remove({ id: 'gtceu:shaped/steam_turbine_hv' })
|
||||
removeMaceratorRecipe(event, 'macerate_hv_steam_turbine')
|
||||
|
||||
event.recipes.gtceu.shaped('gtceu:hv_steam_turbine', [
|
||||
'BAB',
|
||||
'CDC',
|
||||
'EFE'
|
||||
], {
|
||||
A: '#gtceu:circuits/hv',
|
||||
B: '#forge:huge_fluid_pipes/stainless_steel',
|
||||
C: '#forge:rotors/vanadium_steel',
|
||||
D: 'gtceu:hv_machine_hull',
|
||||
E: 'gtceu:hv_electric_motor',
|
||||
F: '#forge:single_cables/gold'
|
||||
}).addMaterialInfo().id('tfg:shaped/steam_turbine_hv')
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -6,213 +6,60 @@
|
|||
*/
|
||||
function registerGTCEURecyclingRecipes(event) {
|
||||
|
||||
// Tantalum Capacitor
|
||||
event.recipes.gtceu.macerator('gtceu:macerator/recycling/tantulum_capacitor')
|
||||
.itemInputs('gtceu:tantalum_capacitor')
|
||||
.itemOutputs(
|
||||
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Tantalum, 1),
|
||||
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Polyethylene, 1)
|
||||
)
|
||||
.duration(GTMaterials.Tantalum.getMass() * 1)
|
||||
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/recycling/tantulum_capacitor')
|
||||
.itemInputs('gtceu:tantalum_capacitor')
|
||||
.itemOutputs(
|
||||
ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Tantalum, 1),
|
||||
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Ash, 1)
|
||||
)
|
||||
.duration(GTMaterials.Tantalum.getMass() * 1)
|
||||
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
// Capacitor
|
||||
event.recipes.gtceu.macerator('gtceu:macerator/recycling/capacitor')
|
||||
.itemInputs('gtceu:capacitor')
|
||||
.itemOutputs(
|
||||
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Polyethylene, 1)
|
||||
)
|
||||
.duration(GTMaterials.Polyethylene.getMass() * 1)
|
||||
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/recycling/capacitor')
|
||||
.itemInputs('gtceu:capacitor')
|
||||
.itemOutputs(
|
||||
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Ash, 1)
|
||||
)
|
||||
.duration(GTMaterials.Ash.getMass() * 1)
|
||||
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
// Empty Tier I Capacitor
|
||||
event.recipes.gtceu.macerator('gtceu:macerator/recycling/empty_tier_i_battery')
|
||||
.itemInputs('gtceu:empty_tier_i_battery')
|
||||
.itemOutputs(
|
||||
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Ultimet, 6)
|
||||
)
|
||||
.duration(GTMaterials.Ultimet.getMass() * 6)
|
||||
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/recycling/empty_tier_i_battery')
|
||||
.itemInputs('gtceu:empty_tier_i_battery')
|
||||
.itemOutputs(
|
||||
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Ultimet, 6)
|
||||
)
|
||||
.duration(GTMaterials.Ultimet.getMass() * 6)
|
||||
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
event.recipes.gtceu.extractor('gtceu:extractor/recycling/empty_tier_i_battery')
|
||||
.itemInputs('gtceu:empty_tier_i_battery')
|
||||
.outputFluids(Fluid.of('gtceu:ultimet', 864))
|
||||
.duration(GTMaterials.Ultimet.getMass() * 6)
|
||||
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
// Empty Tier II Capacitor
|
||||
event.recipes.gtceu.macerator('gtceu:macerator/recycling/empty_tier_ii_battery')
|
||||
.itemInputs('gtceu:empty_tier_ii_battery')
|
||||
.itemOutputs(
|
||||
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Ruridit, 6)
|
||||
)
|
||||
.duration(GTMaterials.Ruridit.getMass() * 6)
|
||||
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/recycling/empty_tier_ii_battery')
|
||||
.itemInputs('gtceu:empty_tier_ii_battery')
|
||||
.itemOutputs(
|
||||
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Ruridit, 6)
|
||||
)
|
||||
.duration(GTMaterials.Ruridit.getMass() * 6)
|
||||
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
event.recipes.gtceu.extractor('gtceu:extractor/recycling/empty_tier_ii_battery')
|
||||
.itemInputs('gtceu:empty_tier_ii_battery')
|
||||
.outputFluids(Fluid.of('gtceu:ruridit', 864))
|
||||
.duration(GTMaterials.Ruridit.getMass() * 6)
|
||||
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
// Empty Tier III Capacitor
|
||||
event.recipes.gtceu.macerator('gtceu:macerator/recycling/empty_tier_iii_battery')
|
||||
.itemInputs('gtceu:empty_tier_iii_battery')
|
||||
.itemOutputs(
|
||||
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Neutronium, 6)
|
||||
)
|
||||
.duration(GTMaterials.Neutronium.getMass() * 6)
|
||||
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/recycling/empty_tier_iii_battery')
|
||||
.itemInputs('gtceu:empty_tier_iii_battery')
|
||||
.itemOutputs(
|
||||
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Neutronium, 6)
|
||||
)
|
||||
.duration(GTMaterials.Neutronium.getMass() * 6)
|
||||
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
event.recipes.gtceu.extractor('gtceu:extractor/recycling/empty_tier_iii_battery')
|
||||
.itemInputs('gtceu:empty_tier_iii_battery')
|
||||
.outputFluids(Fluid.of('gtceu:neutronium', 864))
|
||||
.duration(GTMaterials.Neutronium.getMass() * 6)
|
||||
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
// Capacitors
|
||||
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])
|
||||
|
||||
TFGHelpers.registerMaterialInfo('minecraft:iron_door', { 'iron': 2 })
|
||||
removeMaceratorRecipe(event, 'macerate_maintenance_hatch')
|
||||
TFGHelpers.registerMaterialInfo('gtceu:maintenance_hatch', [GTMaterials.Steel, 8, GTMaterials.Rubber, 2, GTMaterials.Tin, 1])
|
||||
|
||||
// #region Fix TFC hanging sign metal dupe for Macerator and Arc Furnace
|
||||
// #region Hanging Signs
|
||||
global.TFC_EQUIPMENT_METALS.forEach(metal => {
|
||||
// Recycling Hardwood
|
||||
// Arc Recycling Hardwood
|
||||
event.recipes.gtceu.arc_furnace(`tfg:arc_recycling/${metal}/hardwood`)
|
||||
.itemInputs(`#tfg:hanging_sign/${metal}/hardwood`)
|
||||
.itemOutputs('gtceu:tiny_ash_dust')
|
||||
.chancedOutput(`#forge:nuggets/${metal}`, 3750, 0)
|
||||
.duration(12)
|
||||
.EUt(30)
|
||||
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
|
||||
// Macerating Hardwood
|
||||
event.recipes.gtceu.macerator(`tfg:macerating/hanging_sign/'${metal}/hardwood`)
|
||||
.itemInputs(`#tfg:hanging_sign/${metal}/hardwood`)
|
||||
.itemOutputs('gtceu:hardwood_dust')
|
||||
.chancedOutput(`#forge:tiny_dusts/${metal}`, 3750, 0)
|
||||
.duration(108)
|
||||
.EUt(8)
|
||||
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
||||
|
||||
const SIGN_METALS = [
|
||||
GTMaterials.Copper,
|
||||
GTMaterials.Bronze,
|
||||
GTMaterials.BlackBronze,
|
||||
GTMaterials.BismuthBronze,
|
||||
GTMaterials.WroughtIron,
|
||||
GTMaterials.Steel,
|
||||
GTMaterials.BlackSteel,
|
||||
GTMaterials.RedSteel,
|
||||
GTMaterials.BlueSteel
|
||||
];
|
||||
|
||||
SIGN_METALS.forEach(metal => {
|
||||
// Arc furnace
|
||||
global.TFC_WOOD_TYPES.forEach(wood => {
|
||||
event.remove(`gtceu:arc_furnace/arc_wood/hanging_sign/${metal.getName()}/${wood}`)
|
||||
event.recipes.gtceu.arc_furnace(`gtceu:arc_furnace/macerate_wood/hanging_sign/${metal.getName()}/${wood}`)
|
||||
.itemInputs(`tfc:wood/hanging_sign/${metal.getName()}/${wood}`)
|
||||
.itemOutputs('gtceu:tiny_ash_dust')
|
||||
.chancedOutput(ChemicalHelper.get(TagPrefix.nugget, metal, 1), 3750, 0)
|
||||
.inputFluids(Fluid.of('gtceu:oxygen', 12))
|
||||
.duration(12)
|
||||
.EUt(30)
|
||||
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
|
||||
})
|
||||
|
||||
global.AFC_WOOD_TYPES.forEach(wood => {
|
||||
event.recipes.gtceu.arc_furnace(`gtceu:arc_furnace/macerate_wood/hanging_sign/${metal.getName()}/${wood}`)
|
||||
.itemInputs(`afc:wood/hanging_sign/${metal.getName()}/${wood}`)
|
||||
.itemOutputs('gtceu:tiny_ash_dust')
|
||||
.chancedOutput(ChemicalHelper.get(TagPrefix.nugget, metal, 1), 3750, 0)
|
||||
.inputFluids(Fluid.of('gtceu:oxygen', 12))
|
||||
.duration(12)
|
||||
.EUt(30)
|
||||
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
|
||||
})
|
||||
|
||||
// Macerator
|
||||
global.TFC_HARDWOOD_TYPES.forEach(wood => {
|
||||
removeMaceratorRecipe(event, `macerate_wood/hanging_sign/${metal.getName()}/${wood}`)
|
||||
event.recipes.gtceu.macerator(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`)
|
||||
.itemInputs(`tfc:wood/hanging_sign/${metal.getName()}/${wood}`)
|
||||
.itemOutputs('gtceu:hardwood_dust')
|
||||
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, metal, 1), 3750, 0)
|
||||
.duration(108)
|
||||
.EUt(8)
|
||||
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
||||
})
|
||||
|
||||
global.TFC_SOFTWOOD_TYPES.forEach(wood => {
|
||||
removeMaceratorRecipe(event, `macerate_wood/hanging_sign/${metal.getName()}/${wood}`)
|
||||
event.recipes.gtceu.macerator(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`)
|
||||
.itemInputs(`tfc:wood/hanging_sign/${metal.getName()}/${wood}`)
|
||||
.itemOutputs('gtceu:wood_dust')
|
||||
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, metal, 1), 3750, 0)
|
||||
.duration(108)
|
||||
.EUt(8)
|
||||
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
||||
})
|
||||
|
||||
global.AFC_HARDWOOD_TYPES.forEach(wood => {
|
||||
event.recipes.gtceu.macerator(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`)
|
||||
.itemInputs(`afc:wood/hanging_sign/${metal.getName()}/${wood}`)
|
||||
.itemOutputs('gtceu:hardwood_dust')
|
||||
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, metal, 1), 3750, 0)
|
||||
.duration(108)
|
||||
.EUt(8)
|
||||
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
||||
})
|
||||
|
||||
global.AFC_SOFTWOOD_TYPES.forEach(wood => {
|
||||
event.recipes.gtceu.macerator(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`)
|
||||
.itemInputs(`afc:wood/hanging_sign/${metal.getName()}/${wood}`)
|
||||
.itemOutputs('gtceu:wood_dust')
|
||||
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, metal, 1), 3750, 0)
|
||||
.duration(108)
|
||||
.EUt(8)
|
||||
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
||||
})
|
||||
// Recycling Softwood
|
||||
// Arc Recycling Softwood
|
||||
event.recipes.gtceu.arc_furnace(`tfg:arc_recycling/${metal}/softwood`)
|
||||
.itemInputs(`#tfg:hanging_sign/${metal}/softwood`)
|
||||
.itemOutputs('gtceu:tiny_ash_dust')
|
||||
.chancedOutput(`#forge:nuggets/${metal}`, 3750, 0)
|
||||
.duration(12)
|
||||
.EUt(30)
|
||||
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
|
||||
// Macerating Softwood
|
||||
event.recipes.gtceu.macerator(`tfg:macerating/hanging_sign/'${metal}/softwood`)
|
||||
.itemInputs(`#tfg:hanging_sign/${metal}/softwood`)
|
||||
.itemOutputs('gtceu:wood_dust')
|
||||
.chancedOutput(`#forge:tiny_dusts/${metal}`, 3750, 0)
|
||||
.duration(108)
|
||||
.EUt(8)
|
||||
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
||||
})
|
||||
// #endregion
|
||||
|
||||
//#region support recycling
|
||||
//#region Supports
|
||||
event.recipes.gtceu.macerator(`hardwood_support_to_dust`)
|
||||
.itemInputs('#tfg:hardwood_supports')
|
||||
.itemOutputs('gtceu:hardwood_dust')
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ function removeGTCEURecipes(event) {
|
|||
global.GTCEU_DISABLED_ITEMS.forEach(item => {
|
||||
event.remove({ input: item })
|
||||
event.remove({ output: item })
|
||||
TFGHelpers.clearMaterialInfo(item);
|
||||
})
|
||||
|
||||
//#region Выход: Крошечная кучка камня
|
||||
|
|
@ -30,10 +31,8 @@ function removeGTCEURecipes(event) {
|
|||
removeMaceratorRecipe(event, 'macerate_sandstone_slab')
|
||||
removeMaceratorRecipe(event, 'macerate_red_sandstone_stairs')
|
||||
removeMaceratorRecipe(event, 'macerate_red_sandstone_slab')
|
||||
removeMaceratorRecipe(event, 'macerate_granite')
|
||||
removeMaceratorRecipe(event, 'macerate_diorite')
|
||||
removeMaceratorRecipe(event, 'macerate_cobblestone_slab')
|
||||
removeMaceratorRecipe(event, 'macerate_andesite')
|
||||
|
||||
event.remove({ id: 'gtceu:shaped/stone_hammer' })
|
||||
event.remove({ id: 'gtceu:mixer/mossy_cobblestone_from_moss_block' })
|
||||
event.remove({ id: 'greate:mixing/integration/gtceu/mixer/mossy_cobblestone_from_moss_block' })
|
||||
|
|
@ -113,8 +112,18 @@ function removeGTCEURecipes(event) {
|
|||
removeCutterRecipe(event, 'cut_deepslate_tile_into_slab_water')
|
||||
removeCutterRecipe(event, 'cut_deepslate_tile_into_slab_distilled_water')
|
||||
|
||||
removeMaceratorRecipe(event, 'macerate_deepslate')
|
||||
event.remove({ id: 'gtceu:rock_breaker/deepslate' })
|
||||
TFGHelpers.clearMaterialInfo('minecraft:deepslate')
|
||||
TFGHelpers.clearMaterialInfo('minecraft:deepslate_wall');
|
||||
TFGHelpers.clearMaterialInfo('minecraft:polished_deepslate');
|
||||
TFGHelpers.clearMaterialInfo('minecraft:cobbled_deepslate');
|
||||
TFGHelpers.clearMaterialInfo('minecraft:cobbled_deepslate_wall');
|
||||
TFGHelpers.clearMaterialInfo('minecraft:chiseled_deepslate');
|
||||
TFGHelpers.clearMaterialInfo('minecraft:polished_deepslate_wall');
|
||||
TFGHelpers.clearMaterialInfo('minecraft:deepslate_bricks');
|
||||
TFGHelpers.clearMaterialInfo('minecraft:deepslate_brick_wall');
|
||||
TFGHelpers.clearMaterialInfo('minecraft:deepslate_tiles');
|
||||
TFGHelpers.clearMaterialInfo('minecraft:deepslate_tile_wall');
|
||||
|
||||
// #endregion
|
||||
|
||||
|
|
@ -159,6 +168,14 @@ function removeGTCEURecipes(event) {
|
|||
removeCutterRecipe(event, 'cut_polished_blackstone_brick_into_slab_distilled_water')
|
||||
|
||||
event.remove({ id: 'gtceu:rock_breaker/blackstone' })
|
||||
TFGHelpers.clearMaterialInfo('minecraft:blackstone');
|
||||
TFGHelpers.clearMaterialInfo('minecraft:polished_blackstone');
|
||||
TFGHelpers.clearMaterialInfo('minecraft:polished_blackstone_bricks');
|
||||
TFGHelpers.clearMaterialInfo('minecraft:polished_blackstone_brick_wall');
|
||||
TFGHelpers.clearMaterialInfo('minecraft:chiseled_polished_blackstone');
|
||||
TFGHelpers.clearMaterialInfo('minecraft:blackstone_wall');
|
||||
TFGHelpers.clearMaterialInfo('minecraft:polished_blackstone_wall');
|
||||
TFGHelpers.clearMaterialInfo('minecraft:blackstone_brick_wall');
|
||||
|
||||
// #endregion
|
||||
|
||||
|
|
@ -391,6 +408,8 @@ function removeGTCEURecipes(event) {
|
|||
//#region Выход: Бумажная пыль
|
||||
|
||||
event.remove({ id: 'gtceu:shaped/paper_dust' })
|
||||
event.remove({ id: 'gtceu:shaped_fluid_container/paper' })
|
||||
event.remove({ id: 'gtceu:macerator/macerate_enchanting_table' })
|
||||
|
||||
//#endregion
|
||||
|
||||
|
|
@ -470,13 +489,15 @@ function removeGTCEURecipes(event) {
|
|||
|
||||
//#region Выход: Пыль базальта
|
||||
|
||||
removeMaceratorRecipe(event, 'macerate_basalt')
|
||||
TFGHelpers.clearMaterialInfo('minecraft:basalt')
|
||||
TFGHelpers.clearMaterialInfo('minecraft:polished_basalt');
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Выход: Слиток камня
|
||||
//#region Выход: Слиток камня
|
||||
|
||||
event.remove({ id: 'gtceu:alloy_smelter/alloy_smelt_stone_to_ingot' })
|
||||
event.remove({ id: 'gtceu:alloy_smelter/tinted_glass' })
|
||||
|
||||
//#endregion
|
||||
|
||||
|
|
@ -723,7 +744,7 @@ function removeGTCEURecipes(event) {
|
|||
|
||||
removeMaceratorRecipe(event, 'macerate_marble')
|
||||
removeMaceratorRecipe(event, 'macerate_red_granite')
|
||||
|
||||
removeMaceratorRecipe(event, 'macerate_calcite')
|
||||
removeMaceratorRecipe(event, 'macerate_wool')
|
||||
|
||||
removeMaceratorRecipe(event, 'macerate_enchanting_table')
|
||||
|
|
@ -747,6 +768,7 @@ function removeGTCEURecipes(event) {
|
|||
event.remove({ id: 'gtceu:wiremill/string_from_polycaprolactam' })
|
||||
|
||||
event.remove({ id: 'gtceu:electrolyzer/decomposition_electrolyzing_granite_red' })
|
||||
event.remove({ id: 'gtceu:electrolyzer/decomposition_electrolyzing_echo_shard' })
|
||||
|
||||
event.remove({ id: 'gtceu:chemical_bath/black_steel_cool_down' })
|
||||
event.remove({ id: 'gtceu:chemical_bath/black_steel_cool_down_distilled_water' })
|
||||
|
|
@ -778,6 +800,7 @@ function removeGTCEURecipes(event) {
|
|||
event.remove({ id: 'greate:mixing/integration/gtceu/mixer/mossy_red_granite_cobblestone_from_vine' })
|
||||
|
||||
event.remove({ id: 'gtceu:lathe/stone_rod_from_cobblestone' })
|
||||
event.remove({ id: 'gtceu:extractor/extract_sodium_hydroxide_dust' })
|
||||
|
||||
// who the hell is grinding metal ingots with their bare hands?
|
||||
event.remove({ id: 'gtceu:shaped/mortar_grind_antimony' })
|
||||
|
|
@ -800,9 +823,14 @@ function removeGTCEURecipes(event) {
|
|||
// Replace by the Heat Exchanger recipe for Mars
|
||||
event.remove({ id: 'gtceu:fluid_heater/formamide' })
|
||||
|
||||
// Remove lava bucket from boilers
|
||||
// Remove from boilers
|
||||
event.remove({ id: 'gtceu:steam_boiler/minecraft_lava_bucket' })
|
||||
event.remove({ id: 'gtceu:large_boiler/minecraft_lava_bucket' })
|
||||
event.remove({ id: 'gtceu:steam_boiler/create_blaze_cake' })
|
||||
event.remove({ id: 'gtceu:large_boiler/create_blaze_cake' })
|
||||
event.remove({ id: 'gtceu:steam_boiler/create_creative_blaze_cake' })
|
||||
event.remove({ id: 'gtceu:large_boiler/create_creative_blaze_cake' })
|
||||
|
||||
|
||||
// Snow Stuffs
|
||||
|
||||
|
|
@ -825,6 +853,26 @@ function removeGTCEURecipes(event) {
|
|||
|
||||
event.remove({ id: 'gtceu:compressor/compress_plate_dust_wood' })
|
||||
|
||||
// Remove Netherrack dust centrifuging
|
||||
|
||||
event.remove({ id: 'gtceu:centrifuge/netherrack_separation' })
|
||||
event.remove({ id: 'gtceu:centrifuge/decomposition_centrifuging__granite' })
|
||||
event.remove({ id: 'gtceu:centrifuge/decomposition_centrifuging__diorite' })
|
||||
event.remove({ id: 'gtceu:centrifuge/decomposition_centrifuging__andesite' })
|
||||
event.remove({ id: 'gtceu:centrifuge/decomposition_centrifuging__marble' })
|
||||
event.remove({ id: 'gtceu:centrifuge/decomposition_centrifuging__redrock' })
|
||||
event.remove({ id: 'gtceu:centrifuge/decomposition_centrifuging__deepslate' })
|
||||
event.remove({ id: 'gtceu:centrifuge/decomposition_centrifuging__blackstone' })
|
||||
event.remove({ id: 'gtceu:centrifuge/decomposition_centrifuging__endstone' })
|
||||
event.remove({ id: 'gtceu:centrifuge/decomposition_centrifuging__red_granite' })
|
||||
event.remove({ id: 'gtceu:centrifuge/decomposition_centrifuging__basalt' })
|
||||
event.remove({ id: 'gtceu:electrolyzer/decomposition_electrolyzing_tuff' })
|
||||
|
||||
removeMaceratorRecipe(event, 'macerate_end_stone');
|
||||
removeMaceratorRecipe(event, 'macerate_end_stone_bricks');
|
||||
removeMaceratorRecipe(event, 'macerate_end_stone_brick_wall');
|
||||
|
||||
|
||||
// Remove Default Pressure Plate Recipes
|
||||
const MC_PRESSURE_PLATES = [
|
||||
'bamboo',
|
||||
|
|
@ -879,6 +927,10 @@ function removeGTCEURecipes(event) {
|
|||
event.remove({ id: 'gtceu:macerator/macerate_smooth_sandstone' })
|
||||
event.remove({ id: 'gtceu:macerator/macerate_sandstone' })
|
||||
event.remove({ id: 'gtceu:macerator/macerate_cut_sandstone' })
|
||||
|
||||
event.remove({ id: 'gtceu:rock_breaker/obsidian' })
|
||||
|
||||
event.remove({ id: 'gtceu:alloy_smelter/alloy_smelt_magnesia_refractory_brick_to_nugget' })
|
||||
}
|
||||
|
||||
function removeMaceratorRecipe(event, id) {
|
||||
|
|
|
|||
|
|
@ -13,6 +13,10 @@ function registerGTCEUItemTags(event) {
|
|||
event.add("c:hidden_from_recipe_viewers", item);
|
||||
});
|
||||
|
||||
// Face curio slot for mask
|
||||
event.remove("curios:head", "gtceu:face_mask")
|
||||
event.add("curios:face", "gtceu:face_mask")
|
||||
|
||||
// Добавление тега EMI для скрытия всех руд
|
||||
event.add("c:hidden_from_recipe_viewers", "#forge:ores");
|
||||
|
||||
|
|
@ -33,6 +37,18 @@ function registerGTCEUItemTags(event) {
|
|||
event.add("tfc:saws", "#forge:tools/buzzsaws");
|
||||
event.add("tfc:saws", "#forge:tools/chainsaws");
|
||||
|
||||
const saws = event.get('forge:tools/saws').getObjectIds().concat(event.get('forge:tools/chainsaws').getObjectIds());
|
||||
saws.forEach(sawId =>
|
||||
{
|
||||
const id = sawId.getNamespace() + ":" + sawId.getPath();
|
||||
if(global.ICE_SAW_BLACKLIST.includes(id) || Item.of(sawId).hasTag('forge:tools/buzzsaws'))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
event.add("tfg:silk_harvest_ice", id);
|
||||
});
|
||||
|
||||
global.GTCEU_CASTING_MOLDS.concat(global.TFG_CASTING_MOLDS).forEach((mold) => {
|
||||
event.add("gtceu:casting_molds", mold);
|
||||
});
|
||||
|
|
@ -44,6 +60,15 @@ function registerGTCEUItemTags(event) {
|
|||
// @ts-expect-error According to KJS docs adding tags to tags is supported.
|
||||
event.add("gtceu:molds", "#gtceu:casting_molds", "#gtceu:extruder_molds", "gtceu:empty_mold");
|
||||
|
||||
// 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);
|
||||
});
|
||||
|
||||
//greens
|
||||
event.add('tfc:compost_greens', 'gtceu:bio_chaff');
|
||||
event.add('tfc:compost_greens', 'gtceu:plant_ball');
|
||||
}
|
||||
|
||||
/** @param {TagEvent.Block} event */
|
||||
|
|
@ -82,6 +107,13 @@ function registerGTCEUBlockTags(event) {
|
|||
event.add("gtceu:cleanroom_doors", "ad_astra:desh_sliding_door");
|
||||
event.add("gtceu:cleanroom_doors", "ad_astra:ostrum_sliding_door");
|
||||
event.add("gtceu:cleanroom_doors", "ad_astra:calorite_sliding_door");
|
||||
event.add("gtceu:cleanroom_doors", "ad_astra:airlock");
|
||||
|
||||
// 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);
|
||||
});
|
||||
}
|
||||
|
||||
/** @param {TagEvent.Fluid} event */
|
||||
|
|
@ -93,8 +125,18 @@ function registerGTCEUFluidTags(event) {
|
|||
event.add("c:hidden_from_recipe_viewers", "gtceu:molten_blue_steel");
|
||||
event.add("c:hidden_from_recipe_viewers", "gtceu:molten_black_bronze");
|
||||
event.add("c:hidden_from_recipe_viewers", "gtceu:molten_bismuth_bronze");
|
||||
event.add("c:hidden_from_recipe_viewers", "gtceu:molten_rose_gold");
|
||||
event.add("c:hidden_from_recipe_viewers", "gtceu:molten_sterling_silver");
|
||||
event.add("c:hidden_from_recipe_viewers", "gtceu:molten_stainless_steel");
|
||||
event.add("c:hidden_from_recipe_viewers", "gtceu:molten_manganese_phosphide");
|
||||
event.add("c:hidden_from_recipe_viewers", "gtceu:molten_vanadium_steel");
|
||||
event.add("c:hidden_from_recipe_viewers", "gtceu:molten_gallium_arsenide");
|
||||
event.add("c:hidden_from_recipe_viewers", "gtceu:molten_hsla_steel");
|
||||
event.add("c:hidden_from_recipe_viewers", "gtceu:molten_rocket_alloy_t2");
|
||||
event.add("c:hidden_from_recipe_viewers", "gtceu:damascus_steel");
|
||||
event.add("c:hidden_from_recipe_viewers", "gtceu:blaze");
|
||||
event.add("c:hidden_from_recipe_viewers", "gtceu:thorium");
|
||||
|
||||
}
|
||||
|
||||
event.add("c:hidden_from_recipe_viewers", "tfg:molten_weak_red_steel");
|
||||
event.add("c:hidden_from_recipe_viewers", "tfg:molten_weak_blue_steel");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -66,193 +66,6 @@ const generateCutterRecipe = (event, input, output, duration, EUt, id) => {
|
|||
|
||||
//#endregion
|
||||
|
||||
//#region Green House
|
||||
/**
|
||||
* Function for generating greenhouse recipes.
|
||||
*
|
||||
* @param {*} event
|
||||
* @param {string} input -Item (Not consumed)
|
||||
* @param {string} fluid -Fluid ID or tag
|
||||
* @param {number} fluid_amount -Fluid amount, in mB
|
||||
* @param {string} output -Item (Chanced output uses input item)
|
||||
* @param {string} id -Recipe ID
|
||||
* @param {string} dimension -Dimension ID
|
||||
* @param {number} fertiliser_count
|
||||
* @param {string|null} output_seconday -Item (Optional, if there should be a third output)
|
||||
* @param {number} EUt
|
||||
*/
|
||||
function generateGreenHouseRecipe(event, input, fluid, fluid_amount, output, id, dimension, fertiliser_count, output_secondary, EUt) {
|
||||
if (EUt === undefined || output_secondary === undefined || fertiliser_count === undefined || dimension === undefined) {
|
||||
throw new TypeError(`Call to generateGreenHouseRecipe for id ${id} is missing args`);
|
||||
}
|
||||
let r = event.recipes.gtceu.greenhouse(id)
|
||||
.notConsumable(input)
|
||||
.circuit(1)
|
||||
.inputFluids(`${fluid} ${fluid_amount}`)
|
||||
.itemOutputs(output)
|
||||
.chancedOutput(input, 750, 0)
|
||||
.chancedOutput(input, 500, 0)
|
||||
.duration(36000) // 30 mins
|
||||
.EUt(EUt)
|
||||
|
||||
if (dimension !== null) {
|
||||
r.dimension(dimension)
|
||||
}
|
||||
if (output_secondary !== null) {
|
||||
r.chancedOutput(output_secondary, 750, 0)
|
||||
}
|
||||
|
||||
|
||||
// С удобрением (With fertilizer)
|
||||
r = event.recipes.gtceu.greenhouse(`${id}_fertilized`)
|
||||
.notConsumable(input)
|
||||
.itemInputs(Item.of('gtceu:fertilizer', fertiliser_count))
|
||||
.circuit(2)
|
||||
.inputFluids(`${fluid} ${fluid_amount}`)
|
||||
.itemOutputs(output)
|
||||
.chancedOutput(input, 4000, 0)
|
||||
.chancedOutput(input, 3000, 0)
|
||||
.duration(12000) // 10 mins
|
||||
.EUt(EUt)
|
||||
|
||||
if (dimension !== null) {
|
||||
r.dimension(dimension)
|
||||
}
|
||||
if (output_secondary !== null) {
|
||||
r.chancedOutput(output_secondary, 4000, 0)
|
||||
}
|
||||
}
|
||||
//#endregion
|
||||
|
||||
//#region Filling NBT
|
||||
/**
|
||||
* Function to get fluid filling NBT.
|
||||
*
|
||||
* @param {string} material -Fluid
|
||||
* @param {number} amount -mB
|
||||
* @returns {{ tank: { FluidName: string; Amount: number; }; }}
|
||||
*/
|
||||
const getFillingNBT = (material, amount) => {
|
||||
return {
|
||||
tank: {
|
||||
FluidName: Fluid.of(material.getFluid()).getId(),
|
||||
Amount: amount
|
||||
}
|
||||
}
|
||||
}
|
||||
//#endregion
|
||||
|
||||
//#region Plated Blocks
|
||||
/**
|
||||
* Function for generating plated block recipes.
|
||||
*
|
||||
* @param {*} event
|
||||
* @param {GTMaterial} material
|
||||
*/
|
||||
function generatePlatedBlockRecipe(event, material) {
|
||||
// firmaciv plated blocks don't have this property
|
||||
const tfcProperty = material.getProperty(TFGPropertyKey.TFC_PROPERTY)
|
||||
const outputMaterial = (tfcProperty === null || tfcProperty.getOutputMaterial() === null) ? material : tfcProperty.getOutputMaterial()
|
||||
|
||||
const plateItem = ChemicalHelper.get(TagPrefix.plate, material, 1);
|
||||
|
||||
const platedBlock = ChemicalHelper.get(TFGTagPrefix.blockPlated, material, 1);
|
||||
const platedSlab = ChemicalHelper.get(TFGTagPrefix.slabPlated, material, 1);
|
||||
const platedStair = ChemicalHelper.get(TFGTagPrefix.stairPlated, material, 1);
|
||||
|
||||
if (platedBlock === null) return;
|
||||
|
||||
let tfcMetalName = material.getName();
|
||||
if (tfcMetalName === "iron") {
|
||||
tfcMetalName = "cast_iron";
|
||||
}
|
||||
|
||||
event.shapeless(platedBlock, ['#forge:stone_bricks', plateItem, '#forge:tools/hammers'])
|
||||
.id(`tfg:shapeless/${material.getName()}_plated_block`)
|
||||
event.recipes.gtceu.assembler(`tfg:${material.getName()}_plated_block`)
|
||||
.itemInputs('#forge:stone_bricks', plateItem)
|
||||
.itemOutputs(platedBlock)
|
||||
.circuit(10)
|
||||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
if (tfcProperty !== null) {
|
||||
event.recipes.tfc.heating(platedBlock, tfcProperty.getMeltTemp())
|
||||
.resultFluid(Fluid.of(outputMaterial.getFluid(), 144))
|
||||
.id(`tfc:heating/metal/${tfcMetalName}_block`)
|
||||
}
|
||||
event.recipes.gtceu.macerator(`tfg:${material.getName()}_plated_block`)
|
||||
.itemInputs(platedBlock)
|
||||
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, material, 1))
|
||||
.duration(material.getMass())
|
||||
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
event.recipes.gtceu.arc_furnace(`tfg:${material.getName()}_plated_block`)
|
||||
.itemInputs(platedBlock)
|
||||
.itemOutputs(ChemicalHelper.get(TagPrefix.ingot, material, 1))
|
||||
.duration(material.getMass())
|
||||
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
|
||||
event.shapeless(platedSlab.withCount(2), ['2x #tfg:brick_slabs', plateItem, '#forge:tools/hammers'])
|
||||
.id(`tfg:item_application/${material.getName()}_plated_slab`)
|
||||
event.recipes.gtceu.assembler(`tfg:${material.getName()}_plated_slab`)
|
||||
.itemInputs('2x #tfg:brick_slabs', plateItem)
|
||||
.itemOutputs(platedSlab.withCount(2))
|
||||
.circuit(10)
|
||||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
if (tfcProperty !== null) {
|
||||
// Slabs are lossy because it's possible to plate a double slab block with one metal plate
|
||||
event.recipes.tfc.heating(platedSlab, tfcProperty.getMeltTemp())
|
||||
.resultFluid(Fluid.of(outputMaterial.getFluid(), 72))
|
||||
.id(`tfc:heating/metal/${tfcMetalName}_block_slab`)
|
||||
}
|
||||
event.recipes.gtceu.macerator(`tfg:${material.getName()}_plated_slab`)
|
||||
.itemInputs(platedSlab)
|
||||
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, material, 2))
|
||||
.duration(material.getMass())
|
||||
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
event.recipes.gtceu.arc_furnace(`tfg:${material.getName()}_plated_slab`)
|
||||
.itemInputs(platedSlab)
|
||||
.itemOutputs(ChemicalHelper.get(TagPrefix.nugget, material, 4))
|
||||
.duration(material.getMass())
|
||||
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
|
||||
event.shapeless(platedStair, ['#tfg:brick_stairs', plateItem, '#forge:tools/hammers'])
|
||||
.id(`tfg:item_application/${material.getName()}_plated_stair`)
|
||||
event.recipes.gtceu.assembler(`tfg:${material.getName()}_plated_stair`)
|
||||
.itemInputs('#tfg:brick_stairs', plateItem)
|
||||
.itemOutputs(platedStair)
|
||||
.circuit(10)
|
||||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
if (tfcProperty !== null) {
|
||||
event.recipes.tfc.heating(platedStair, tfcProperty.getMeltTemp())
|
||||
.resultFluid(Fluid.of(outputMaterial.getFluid(), 144))
|
||||
.id(`tfc:heating/metal/${tfcMetalName}_block_stairs`)
|
||||
}
|
||||
event.recipes.gtceu.macerator(`tfg:${material.getName()}_plated_stair`)
|
||||
.itemInputs(platedStair)
|
||||
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, material, 1))
|
||||
.duration(material.getMass())
|
||||
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
event.recipes.gtceu.arc_furnace(`tfg:${material.getName()}_plated_stair`)
|
||||
.itemInputs(platedStair)
|
||||
.itemOutputs(ChemicalHelper.get(TagPrefix.ingot, material, 1))
|
||||
.duration(material.getMass())
|
||||
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
}
|
||||
//#endregion
|
||||
|
||||
//#region forEachMaterial
|
||||
/**
|
||||
* Function for iterating through registered materials
|
||||
|
|
@ -321,7 +134,7 @@ function addCircuitToRecipe(event, recipeId, circuitNumber) {
|
|||
let hasCircuit = false;
|
||||
for (let i = 0; i < itemArray.size(); i++) {
|
||||
const el = itemArray.get(i);
|
||||
if (!el.isJsonObject()) {continue;}
|
||||
if (!el.isJsonObject()) { continue; }
|
||||
const obj = el.getAsJsonObject();
|
||||
const content = obj.get("content");
|
||||
if (content && content.isJsonObject()) {
|
||||
|
|
@ -518,6 +331,9 @@ function woodBuilder(event, name, lumber, logs, log, stripped_log, plank, stair,
|
|||
.itemOutputs(`6x ${button}`)
|
||||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.shapeless(`3x ${button}`, [pressure_plate, '#forge:tools/saws'])
|
||||
.id(`tfg:shapeless/saw_${name}_pressure_plate_to_button`)
|
||||
}
|
||||
}
|
||||
//#endregion
|
||||
|
|
@ -535,21 +351,21 @@ function woodBuilder(event, name, lumber, logs, log, stripped_log, plank, stair,
|
|||
* @throws {TypeError} Throws an error if input, output, or multiplier is invalid.
|
||||
*/
|
||||
function sterilizeItem(event, input, output, multiplier, cleanroom) {
|
||||
// Collect errors.
|
||||
const errors = [];
|
||||
// Collect errors.
|
||||
const errors = [];
|
||||
|
||||
if (input === undefined || (Array.isArray(input) && input.length !== 1) || output === undefined || (Array.isArray(output) && output.length !== 1)) {
|
||||
errors.push("input or output is undefined or not equal to one item");
|
||||
};
|
||||
if (multiplier <= 0) {
|
||||
errors.push(`invalid multiplier (${multiplier})`);
|
||||
};
|
||||
if (multiplier <= 0) {
|
||||
errors.push(`invalid multiplier (${multiplier})`);
|
||||
};
|
||||
|
||||
// If there are any errors, log them all and throw once.
|
||||
if (errors.length > 0) {
|
||||
const message = `sterilizeItem errors:\n - ${ errors.join("\n - ")}`;
|
||||
throw new TypeError(message);
|
||||
};
|
||||
// If there are any errors, log them all and throw once.
|
||||
if (errors.length > 0) {
|
||||
const message = `sterilizeItem errors:\n - ${errors.join("\n - ")}`;
|
||||
throw new TypeError(message);
|
||||
};
|
||||
|
||||
// Set default multiplier.
|
||||
let recipe_multiplier = 1;
|
||||
|
|
@ -558,34 +374,34 @@ function sterilizeItem(event, input, output, multiplier, cleanroom) {
|
|||
}
|
||||
|
||||
// Create recipes.
|
||||
const ethanol_recipe = event.recipes.gtceu.chemical_bath(`tfg:ethanol_cleaning/${input.replace(':', '_')}_to_${output.replace(':', '_')}`)
|
||||
const ethanol_recipe = event.recipes.gtceu.chemical_bath(`tfg:ethanol_cleaning/${linuxUnfucker(input)}_to_${linuxUnfucker(output)}`)
|
||||
.itemInputs(input)
|
||||
.inputFluids(Fluid.of('gtceu:ethanol', 500*recipe_multiplier))
|
||||
.inputFluids(Fluid.of('gtceu:ethanol', 500 * recipe_multiplier))
|
||||
.itemOutputs(output)
|
||||
.duration(10*20*recipe_multiplier)
|
||||
.duration(10 * 20 * recipe_multiplier)
|
||||
.EUt(GTValues.VA[GTValues.MV]);
|
||||
|
||||
const hydrogen_peroxide_recipe = event.recipes.gtceu.chemical_bath(`tfg:hydrogen_peroxide_cleaning/${input.replace(':', '_')}_to_${output.replace(':', '_')}`)
|
||||
const hydrogen_peroxide_recipe = event.recipes.gtceu.chemical_bath(`tfg:hydrogen_peroxide_cleaning/${linuxUnfucker(input)}_to_${linuxUnfucker(output)}`)
|
||||
.itemInputs(input)
|
||||
.inputFluids(Fluid.of('gtceu:hydrogen_peroxide', 200*recipe_multiplier))
|
||||
.inputFluids(Fluid.of('gtceu:hydrogen_peroxide', 200 * recipe_multiplier))
|
||||
.itemOutputs(output)
|
||||
.duration(10*20*recipe_multiplier)
|
||||
.duration(10 * 20 * recipe_multiplier)
|
||||
.EUt(GTValues.VA[GTValues.MV]);
|
||||
|
||||
const sodium_dodecyl_sulfate_recipe = event.recipes.gtceu.chemical_bath(`tfg:sodium_dodecyl_sulfate_cleaning/${input.replace(':', '_')}_to_${output.replace(':', '_')}`)
|
||||
const sodium_dodecyl_sulfate_recipe = event.recipes.gtceu.chemical_bath(`tfg:sodium_dodecyl_sulfate_cleaning/${linuxUnfucker(input)}_to_${linuxUnfucker(output)}`)
|
||||
.itemInputs(input)
|
||||
.inputFluids(Fluid.of('tfg:sodium_dodecyl_sulfate', 50*recipe_multiplier))
|
||||
.inputFluids(Fluid.of('tfg:sodium_dodecyl_sulfate', 50 * recipe_multiplier))
|
||||
.itemOutputs(output)
|
||||
.duration(10*20*recipe_multiplier)
|
||||
.duration(10 * 20 * recipe_multiplier)
|
||||
.EUt(GTValues.VA[GTValues.MV]);
|
||||
|
||||
const autoclave_recipe = event.recipes.gtceu.autoclave(`tfg:autoclave_cleaning/${input.replace(':', '_')}_to_${output.replace(':', '_')}`)
|
||||
const autoclave_recipe = event.recipes.gtceu.autoclave(`tfg:autoclave_cleaning/${linuxUnfucker(input)}_to_${linuxUnfucker(output)}`)
|
||||
.itemInputs(input)
|
||||
.perTick(true)
|
||||
.inputFluids(Fluid.of('gtceu:steam', 100*recipe_multiplier))
|
||||
.inputFluids(Fluid.of('gtceu:steam', 100 * recipe_multiplier))
|
||||
.perTick(false)
|
||||
.itemOutputs(output)
|
||||
.duration(240*20*recipe_multiplier)
|
||||
.duration(240 * 20 * recipe_multiplier)
|
||||
.EUt(GTValues.VA[GTValues.MV]);
|
||||
|
||||
if (cleanroom) {
|
||||
|
|
|
|||
51
kubejs/server_scripts/gtceu_terminal/recipes.js
Normal file
51
kubejs/server_scripts/gtceu_terminal/recipes.js
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
// priority: 0
|
||||
"use strict";
|
||||
|
||||
function registerGTCEUTerminalRecipes(event) {
|
||||
|
||||
|
||||
// Gregtech CEu Terminals Integration
|
||||
|
||||
//event.remove({ id : 'gtceuterminal:dismantler' })
|
||||
event.shaped('1x gtceuterminal:dismantler', [
|
||||
'ABA',
|
||||
'CDC',
|
||||
'FEF'
|
||||
], {
|
||||
A: 'gtceu:mv_sensor',
|
||||
B: 'gtceu:mv_emitter',
|
||||
C: '#gtceu:circuits/mv',
|
||||
D: 'gtceu:computer_monitor_cover',
|
||||
E: 'gtceu:mv_voltage_coil',
|
||||
F: '#forge:plates/aluminium'
|
||||
}).id(`tfg:shaped/dismantler`)
|
||||
|
||||
event.remove({ id : 'gtceuterminal:multi_structure_manager' })
|
||||
event.shaped('1x gtceuterminal:multi_structure_manager', [
|
||||
'ABA',
|
||||
'CDC',
|
||||
'FEF'
|
||||
], {
|
||||
A: 'gtceu:hv_sensor',
|
||||
B: 'gtceu:hv_emitter',
|
||||
C: '#gtceu:circuits/hv',
|
||||
D: 'gtceu:terminal',
|
||||
E: '#gtceu:batteries/hv',
|
||||
F: '#forge:plates/stainless_steel'
|
||||
}).id(`tfg:shaped/multi_structure_manager`)
|
||||
|
||||
event.remove({ id : 'gtceuterminal:schematic_interface' })
|
||||
event.shaped('1x gtceuterminal:schematic_interface', [
|
||||
'ABA',
|
||||
'CDC',
|
||||
'FEF'
|
||||
], {
|
||||
A: 'gtceu:iv_sensor',
|
||||
B: 'gtceu:iv_emitter',
|
||||
C: '#gtceu:circuits/iv',
|
||||
D: 'gtceu:terminal',
|
||||
E: '#gtceu:batteries/iv',
|
||||
F: '#forge:plates/tungsten_steel'
|
||||
}).id(`tfg:shaped/schematic_interface`)
|
||||
|
||||
}
|
||||
|
|
@ -251,13 +251,12 @@ function registerImmersiveAircraftRecipes(event) {
|
|||
createRecyclingRecipeArgs('tfg:black_steel_plated_airplane_propeller', [GTMaterials.BlackSteel], [createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3)]))
|
||||
|
||||
event.shaped('tfg:redblu_steel_plated_airplane_propeller', [
|
||||
'ABC',
|
||||
'AB ',
|
||||
'DED',
|
||||
'CBF'
|
||||
' BF'
|
||||
], {
|
||||
A: '#forge:tools/hammers',
|
||||
B: 'gtceu:red_steel_plate',
|
||||
C: 'gtceu:red_alloy_dust',
|
||||
D: 'gtceu:blue_steel_plate',
|
||||
E: '#forge:rotors',
|
||||
F: '#forge:tools/wrenches'
|
||||
|
|
@ -266,10 +265,8 @@ function registerImmersiveAircraftRecipes(event) {
|
|||
generateRecyclingRecipe('tfg:recycling/redblu_steel_plated_airplane_propeller',
|
||||
createRecyclingRecipeArgs('tfg:redblu_steel_plated_airplane_propeller', [
|
||||
GTMaterials.RedSteel,
|
||||
GTMaterials.BlueSteel,
|
||||
GTMaterials.RedAlloy
|
||||
GTMaterials.BlueSteel
|
||||
], [
|
||||
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1),
|
||||
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1),
|
||||
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1)
|
||||
])
|
||||
|
|
|
|||
|
|
@ -23,4 +23,12 @@ function registerMacawsForTFCRecipes(event) {
|
|||
C: `tfc:wood/log/${wood}`
|
||||
}).id(`tfg:shaped/${wood}_wired_fence`)
|
||||
})
|
||||
}
|
||||
|
||||
event.shaped(`4x mcw_tfc_aio:fences/other_fences/hedge`, [
|
||||
'BAB',
|
||||
'BAB'
|
||||
], {
|
||||
A: '#forge:rods/wooden',
|
||||
B: '#minecraft:leaves'
|
||||
}).id(`tfg:shaped/mcw_tfc/hedge_fence_from_leaves`);
|
||||
};
|
||||
|
|
|
|||
8
kubejs/server_scripts/macaws_for_tfc/tags.js
Normal file
8
kubejs/server_scripts/macaws_for_tfc/tags.js
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
// priority: 0
|
||||
"use strict";
|
||||
|
||||
function registerMacawsForTFCItemTags(event) {
|
||||
global.MINECRAFT_DYE_NAMES.forEach(color => {
|
||||
event.remove(`mcw_tfc_aio:${color}_roofs`, `mcw_tfc_aio:roofs/${color}_roofs/${color}_roof_slab`);
|
||||
})
|
||||
}
|
||||
|
|
@ -22,6 +22,7 @@ ServerEvents.tags('item', event => {
|
|||
registerCreateConnectedItemTags(event)
|
||||
registerCreateDecoItemTags(event)
|
||||
registerCreateFactoryLogisticsItemTags(event)
|
||||
registerCreateHypertubeItemTags(event)
|
||||
registerDeaFissionItemTags(event)
|
||||
registerDomumOrnamentumItemTags(event)
|
||||
registerDiggerHelmetItemTags(event)
|
||||
|
|
@ -37,6 +38,7 @@ ServerEvents.tags('item', event => {
|
|||
registerGreateItemTags(event)
|
||||
registerGTCEUItemTags(event)
|
||||
registerImmersiveAircraftItemTags(event)
|
||||
registerMacawsForTFCItemTags(event)
|
||||
registerMegaCellsItemTags(event)
|
||||
registerMinecraftItemTags(event)
|
||||
registerModernMarkingsItemTags(event)
|
||||
|
|
@ -53,7 +55,7 @@ ServerEvents.tags('item', event => {
|
|||
registerTFCItemTags(event)
|
||||
registerTFCTextileItemTags(event)
|
||||
registerTFGItemTags(event)
|
||||
registerTFGItemTagsNuclear(event)
|
||||
registerTFGNuclearItemTags(event)
|
||||
registerTFCLunchboxItemTags(event)
|
||||
registerVintageImprovementsItemTags(event)
|
||||
registerWABItemTags(event)
|
||||
|
|
@ -68,6 +70,7 @@ ServerEvents.tags('block', event => {
|
|||
registerAFCBlockTags(event)
|
||||
registerAsticorCartsBlockTags(event)
|
||||
registerBeneathBlockTags(event)
|
||||
registerBlockRunnerBlockTags(event)
|
||||
registerComputerCraftBlockTags(event)
|
||||
registerCreateBlockTags(event)
|
||||
registerCreateAdditionsBlockTags(event)
|
||||
|
|
@ -86,6 +89,7 @@ ServerEvents.tags('block', event => {
|
|||
registerMoreRedBlockTags(event)
|
||||
registerHotOrNotBlockTags(event)
|
||||
registerRailWaysBlockTags(event)
|
||||
registerRnrBlockTags(event)
|
||||
registerSophisticatedBackpacksBlockTags(event)
|
||||
registerSpeciesBlockTags(event)
|
||||
registerTACZBlockTags(event)
|
||||
|
|
@ -132,6 +136,7 @@ ServerEvents.tags('worldgen/biome', event => {
|
|||
registerAdAstraBiomeTags(event)
|
||||
registerCreatePickyWheelsBiomeTags(event)
|
||||
registerTFGBiomeTags(event)
|
||||
registerWansAncientBeastsBiomeTags(event)
|
||||
})
|
||||
|
||||
ServerEvents.tags('entity_type', event => {
|
||||
|
|
@ -155,6 +160,7 @@ TFCEvents.data(event => {
|
|||
registerTFCDataForAdAstra(event);
|
||||
registerTFCDataForArborFirmaCraft(event)
|
||||
registerTFCDataForChalk(event);
|
||||
registerTFCDataForChimes(event);
|
||||
registerTFCDataForCreateAddition(event);
|
||||
registerTFCDataForFirmalife(event)
|
||||
registerTFCDataForGTCEU(event)
|
||||
|
|
@ -177,6 +183,8 @@ TFCEvents.data(event => {
|
|||
*/
|
||||
LootJS.modifiers((event) => {
|
||||
registerAdAstraLoots(event)
|
||||
registerBeneathLoots(event)
|
||||
registerTFGRockLoots(event)
|
||||
registerTFGOreLoots(event)
|
||||
registerLootrLoots(event)
|
||||
registerPrimitiveCreaturesLoots(event)
|
||||
|
|
@ -198,6 +206,13 @@ GTCEuServerEvents.fluidVeins(event => {
|
|||
registerGTCEUBedrockFluidVeins(event)
|
||||
})
|
||||
|
||||
|
||||
/** Correct recipe IDs to replace invalid characters */
|
||||
function linuxUnfucker(value) {
|
||||
const str = (value === undefined || value === null) ? "" : value.toString();
|
||||
return str.replace(/[/:\s]/g, "_");
|
||||
};
|
||||
|
||||
/**
|
||||
* Событие регистрации рецептов.
|
||||
* Срабатывает после инициализации датапаков и тегов.
|
||||
|
|
@ -216,6 +231,7 @@ ServerEvents.recipes(event => {
|
|||
registerBeneathRecipes(event)
|
||||
registerBuildingGadgetsRecipes(event)
|
||||
registerChalkRecipes(event);
|
||||
registerChimesRecipes(event);
|
||||
registerComfortsRecipes(event);
|
||||
registerComputerCraftRecipes(event)
|
||||
//registerCccBridgeRecipes(event)
|
||||
|
|
@ -227,6 +243,8 @@ ServerEvents.recipes(event => {
|
|||
registerCreateFactoryLogisticsRecipes(event)
|
||||
registerCreateHorsePowerBlockRecipes(event)
|
||||
registerCreateHypertubeRecipes(event)
|
||||
registerCreateSoundOfSteamRecipes(event)
|
||||
//registerCreateStockBridgeRecipes(event)
|
||||
registerDeaFissionRecipes(event)
|
||||
registerDiggerHelmetRecipes(event)
|
||||
registerDomumOrnamentumRecipes(event)
|
||||
|
|
@ -242,6 +260,7 @@ ServerEvents.recipes(event => {
|
|||
registerGrapplingHookRecipes(event);
|
||||
registerGreateRecipes(event)
|
||||
registerGTCEURecipes(event);
|
||||
registerGTCEUTerminalRecipes(event)
|
||||
registerHandGliderRecipes(event)
|
||||
registerHotOrNotRecipes(event)
|
||||
registerImmersiveAircraftRecipes(event)
|
||||
|
|
@ -266,11 +285,11 @@ ServerEvents.recipes(event => {
|
|||
registerTFCAmbientalRecipes(event)
|
||||
registerTFCBetterBFRecipes(event)
|
||||
registerTFCLunchBoxRecipes(event)
|
||||
registerTFCScrapingRecipes(event)
|
||||
registerTFCGroomingStationRecipes(event)
|
||||
registerTFCGurmanRecipes(event)
|
||||
registerTFGRecipes(event)
|
||||
registerTFCTextileRecipes(event)
|
||||
registerTFCScrapingKnivesRecipes(event)
|
||||
registerToolBeltRecipes(event)
|
||||
registerVintageImprovementsRecipes(event)
|
||||
registerWaterFlasksRecipes(event)
|
||||
|
|
|
|||
|
|
@ -113,7 +113,7 @@ const registerMegaCellsRecipes = (event) => {
|
|||
], {
|
||||
A: '#forge:plates/steel',
|
||||
B: 'ae2:engineering_processor',
|
||||
C: '#ae2:glass_cable',
|
||||
C: '#ae2:smart_cable',
|
||||
D: '#gtceu:circuits/lv',
|
||||
}).addMaterialInfo().id('tfg:crafting/megacells_cell_dock')
|
||||
|
||||
|
|
|
|||
|
|
@ -186,7 +186,7 @@ const registerMinecraftRecipes = (event) => {
|
|||
//#region Выход: Тонированное стекло, tinted glass
|
||||
|
||||
event.recipes.gtceu.alloy_smelter('tfg:minecraft/tinted_glass')
|
||||
.itemInputs('minecraft:glass', 'tfc:powder/amethyst')
|
||||
.itemInputs('#forge:glass', '4x tfc:powder/amethyst')
|
||||
.itemOutputs('minecraft:tinted_glass')
|
||||
.duration(260)
|
||||
.EUt(16)
|
||||
|
|
@ -479,7 +479,7 @@ const registerMinecraftRecipes = (event) => {
|
|||
|
||||
//#region Выход: Ведро, buckets
|
||||
|
||||
event.recipes.tfc.welding('minecraft:bucket', 'tfc:metal/bucket/red_steel', 'tfc:metal/bucket/blue_steel', 6)
|
||||
event.recipes.tfc.welding(TFC.isp.of('minecraft:bucket').copyForgingBonus(), 'tfc:metal/bucket/red_steel', 'tfc:metal/bucket/blue_steel', 6)
|
||||
.id('tfg:anvil/vanilla_bucket')
|
||||
|
||||
event.recipes.greate.compacting('minecraft:bucket', ['tfc:metal/bucket/red_steel', 'tfc:metal/bucket/blue_steel', 'tfc:powder/flux'])
|
||||
|
|
@ -533,7 +533,7 @@ const registerMinecraftRecipes = (event) => {
|
|||
A: '#forge:plates/wrought_iron',
|
||||
B: '#forge:chests/wooden',
|
||||
D: '#forge:tools/wrenches',
|
||||
E: '#forge:tools/hammers',
|
||||
E: '#forge:tools/hammers'
|
||||
}).id('gtceu:shaped/hopper')
|
||||
|
||||
event.recipes.gtceu.assembler('hopper_wrought_iron')
|
||||
|
|
@ -756,6 +756,22 @@ const registerMinecraftRecipes = (event) => {
|
|||
B: 'minecraft:brick'
|
||||
}).id('tfc:crafting/bricks')
|
||||
|
||||
event.recipes.gtceu.assembler(`assembler_bricks`)
|
||||
.itemInputs('5x minecraft:brick')
|
||||
.inputFluids(Fluid.of('gtceu:concrete', 144))
|
||||
.itemOutputs(`4x minecraft:bricks`)
|
||||
.duration(50)
|
||||
.circuit(2)
|
||||
.EUt(7)
|
||||
|
||||
event.recipes.gtceu.alloy_smelter('tfg:brick_dust_to_brick')
|
||||
.itemInputs('#forge:dusts/brick')
|
||||
.notConsumable('gtceu:ingot_casting_mold')
|
||||
.itemOutputs('minecraft:brick')
|
||||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
.category(GTRecipeCategories.INGOT_MOLDING)
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Выход: Элитра, elytra
|
||||
|
|
@ -896,7 +912,7 @@ const registerMinecraftRecipes = (event) => {
|
|||
A: '#forge:rods/black_steel',
|
||||
B: 'minecraft:lava_bucket',
|
||||
C: '#minecraft:logs',
|
||||
D: '#forge:storage_blocks/charcoal',
|
||||
D: '#forge:storage_blocks/charcoal'
|
||||
}).id('tfg:campfire_charcoal')
|
||||
|
||||
event.shaped('minecraft:campfire', [
|
||||
|
|
@ -907,7 +923,7 @@ const registerMinecraftRecipes = (event) => {
|
|||
A: '#forge:rods/black_steel',
|
||||
B: 'minecraft:lava_bucket',
|
||||
C: '#minecraft:logs',
|
||||
D: '#forge:storage_blocks/coal',
|
||||
D: '#forge:storage_blocks/coal'
|
||||
}).id('tfg:campfire_coal')
|
||||
//#endregion
|
||||
|
||||
|
|
@ -963,40 +979,29 @@ const registerMinecraftRecipes = (event) => {
|
|||
|
||||
//#region Stonecutter
|
||||
|
||||
event.shaped('minecraft:stonecutter',
|
||||
[
|
||||
' E ',
|
||||
'CAC',
|
||||
'BDB'
|
||||
],
|
||||
{
|
||||
A: '#forge:plates/wrought_iron',
|
||||
B: '#tfc:lumber',
|
||||
C: '#forge:plates/brass',
|
||||
D: '#forge:small_gears',
|
||||
E: '#forge:buzz_saw_heads'
|
||||
}).id('tfg:shaped/stonecutter');
|
||||
event.shaped('minecraft:stonecutter', [
|
||||
' E ',
|
||||
'CAC',
|
||||
'BDB'
|
||||
], {
|
||||
A: '#forge:plates/wrought_iron',
|
||||
B: '#tfc:lumber',
|
||||
C: '#forge:plates/brass',
|
||||
D: '#forge:small_gears/brass',
|
||||
E: '#forge:buzz_saw_heads'
|
||||
}).id('tfg:shaped/stonecutter');
|
||||
|
||||
event.stonecutting('minecraft:smooth_quartz', 'minecraft:quartz_block')
|
||||
event.stonecutting('create:cut_deepslate', 'minecraft:polished_deepslate')
|
||||
//#endregion
|
||||
|
||||
//#region Glowing Ink Sacs
|
||||
|
||||
event.recipes.gtceu.chemical_bath('minecraft:glow_inc_sac4')
|
||||
.itemInputs("gtceu:thorium_dust")
|
||||
.inputFluids(Fluid.of('gtceu:glowstone', 512))
|
||||
.itemOutputs('16x minecraft:glow_ink_sac')
|
||||
.duration(20)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
event.recipes.gtceu.chemical_bath('minecraft:glow_inc_sac1')
|
||||
.itemInputs("#forge:dyes/black")
|
||||
.inputFluids(Fluid.of('gtceu:glowstone', 144))
|
||||
|
||||
event.recipes.gtceu.fluid_solidifier('tfg:glow_ink_sac')
|
||||
.inputFluids('gtceu:glowstone 36')
|
||||
.notConsumable('gtceu:ball_casting_mold')
|
||||
.itemOutputs('minecraft:glow_ink_sac')
|
||||
.duration(40)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Gunpowder
|
||||
|
|
@ -1051,30 +1056,20 @@ const registerMinecraftRecipes = (event) => {
|
|||
.EUt(2)
|
||||
})
|
||||
|
||||
// #endregion
|
||||
|
||||
//#region Greenhouse
|
||||
|
||||
generateGreenHouseRecipe(event, '8x minecraft:bamboo', '#tfc:any_fresh_water', 4000,
|
||||
'64x minecraft:bamboo', 'bamboo', 'minecraft:overworld', 8,
|
||||
'8x minecraft:bamboo', GTValues.VA[GTValues.LV])
|
||||
|
||||
generateGreenHouseRecipe(event, '4x minecraft:red_mushroom', '#tfc:any_fresh_water', 4000,
|
||||
'24x minecraft:red_mushroom', 'red_mushroom', 'minecraft:the_nether', 8,
|
||||
'4x minecraft:red_mushroom', GTValues.VA[GTValues.LV])
|
||||
|
||||
generateGreenHouseRecipe(event, '4x minecraft:brown_mushroom', '#tfc:any_fresh_water', 4000,
|
||||
'24x minecraft:brown_mushroom', 'brown_mushroom', 'minecraft:the_nether', 8,
|
||||
'4x minecraft:brown_mushroom', GTValues.VA[GTValues.LV])
|
||||
event.shapeless('3x minecraft:polished_blackstone_button', ['minecraft:polished_blackstone_pressure_plate', '#forge:tools/saws'])
|
||||
.id(`tfg:shapeless/saw_blackstone_pressure_plate_to_button`)
|
||||
|
||||
event.shapeless('3x minecraft:bamboo_button', ['minecraft:bamboo_pressure_plate', '#forge:tools/saws'])
|
||||
.id(`tfg:shapeless/saw_bamboo_pressure_plate_to_button`)
|
||||
|
||||
// #endregion
|
||||
|
||||
// Minecart w/ Furnace
|
||||
event.shapeless('minecraft:furnace_minecart', ['minecraft:water_bucket', 'gtceu:hp_steam_solid_boiler', 'minecraft:minecart']);
|
||||
// Minecart w/ Furnace
|
||||
event.shapeless('minecraft:furnace_minecart', ['minecraft:water_bucket', 'gtceu:hp_steam_solid_boiler', 'minecraft:minecart']);
|
||||
|
||||
event.recipes.gtceu.assembler('minecraft:furnace_minecart')
|
||||
.itemInputs('minecraft:water_bucket', 'gtceu:hp_steam_solid_boiler', 'minecraft:minecart')
|
||||
.itemOutputs('minecraft:furnace_minecart')
|
||||
.duration(100)
|
||||
.EUt(4)
|
||||
event.recipes.gtceu.assembler('minecraft:furnace_minecart')
|
||||
.itemInputs('minecraft:water_bucket', 'gtceu:hp_steam_solid_boiler', 'minecraft:minecart')
|
||||
.itemOutputs('minecraft:furnace_minecart')
|
||||
.duration(100)
|
||||
.EUt(4)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ function removeMinecraftRecipes(event) {
|
|||
global.MINECRAFT_DISABLED_ITEMS.forEach(item => {
|
||||
event.remove({ input: item })
|
||||
event.remove({ output: item })
|
||||
TFGHelpers.clearMaterialInfo(item);
|
||||
})
|
||||
|
||||
//#region Выход: Камень
|
||||
|
|
@ -1157,7 +1158,8 @@ function removeMinecraftRecipes(event) {
|
|||
//#endregion
|
||||
|
||||
//#region Выход: Кнопка из черного камня
|
||||
|
||||
|
||||
event.remove({ id: 'gtceu:shaped/stone_button' })
|
||||
event.remove({ id: 'minecraft:polished_blackstone_button' })
|
||||
|
||||
//#endregion
|
||||
|
|
|
|||
|
|
@ -6,55 +6,81 @@
|
|||
* @param {TagEvent.Item} event
|
||||
*/
|
||||
const registerMinecraftItemTags = (event) => {
|
||||
global.MINECRAFT_DISABLED_ITEMS.forEach(item => {
|
||||
event.removeAllTagsFrom(item)
|
||||
event.add('c:hidden_from_recipe_viewers', item)
|
||||
})
|
||||
global.MINECRAFT_DISABLED_ITEMS.forEach(item => {
|
||||
event.removeAllTagsFrom(item)
|
||||
event.add('c:hidden_from_recipe_viewers', item)
|
||||
})
|
||||
|
||||
global.MINECRAFT_HIDED_ITEMS.forEach(item => {
|
||||
event.add('c:hidden_from_recipe_viewers', item)
|
||||
})
|
||||
global.MINECRAFT_HIDED_ITEMS.forEach(item => {
|
||||
event.add('c:hidden_from_recipe_viewers', item)
|
||||
})
|
||||
|
||||
// Hide potions
|
||||
event.add('c:hidden_from_recipe_viewers', /minecraft.*potion.*/)
|
||||
// Hide potions
|
||||
event.add('c:hidden_from_recipe_viewers', /minecraft.*potion.*/)
|
||||
|
||||
// Теперь обсидиан сторадж блок
|
||||
event.add('forge:storage_blocks/obsidian', 'minecraft:obsidian')
|
||||
// Теперь обсидиан сторадж блок
|
||||
event.add('forge:storage_blocks/obsidian', 'minecraft:obsidian')
|
||||
|
||||
// Бамбуковые полублоки
|
||||
event.add('tfg:bamboo_slabs', 'minecraft:bamboo_slab')
|
||||
event.add('tfg:bamboo_slabs', 'minecraft:bamboo_mosaic_slab')
|
||||
// Бамбуковые полублоки
|
||||
event.add('tfg:bamboo_slabs', 'minecraft:bamboo_slab')
|
||||
event.add('tfg:bamboo_slabs', 'minecraft:bamboo_mosaic_slab')
|
||||
|
||||
event.remove('minecraft:creeper_drop_music_discs', ['minecraft:music_disc_11'])
|
||||
event.remove('minecraft:creeper_drop_music_discs', ['minecraft:music_disc_11'])
|
||||
|
||||
event.remove('forge:gems', 'minecraft:charcoal')
|
||||
event.remove('forge:gems', 'minecraft:coal')
|
||||
event.remove('forge:gems', 'minecraft:flint')
|
||||
event.remove('forge:gems', 'minecraft:charcoal')
|
||||
event.remove('forge:gems', 'minecraft:coal')
|
||||
event.remove('forge:gems', 'minecraft:flint')
|
||||
|
||||
event.add('tfc:colored_terracotta', 'minecraft:white_terracotta')
|
||||
event.add('tfc:colored_terracotta', 'minecraft:white_terracotta')
|
||||
|
||||
event.add('tfc:bells', 'minecraft:bell')
|
||||
event.add('tfc:bells', 'minecraft:bell')
|
||||
|
||||
event.add('tfc:hematitic_sand', 'minecraft:red_sand')
|
||||
event.add('tfc:makes_black_dye', 'minecraft:ink_sac')
|
||||
event.add('tfc:makes_white_dye', 'minecraft:bone_meal')
|
||||
|
||||
event.add('tfc:makes_black_dye', 'minecraft:ink_sac')
|
||||
event.add('tfc:makes_white_dye', 'minecraft:bone_meal')
|
||||
|
||||
event.add('create:blaze_burner_fuel/regular', 'minecraft:coal')
|
||||
event.add('create:blaze_burner_fuel/regular', 'minecraft:charcoal')
|
||||
|
||||
event.add("tfg:rubber_plants", "minecraft:spore_blossom")
|
||||
|
||||
event.add('tfg:stonecutting/crackrack', 'minecraft:nether_brick_fence')
|
||||
}
|
||||
|
||||
const registerMinecraftBlockTags = (event) => {
|
||||
global.MINECRAFT_DISABLED_ITEMS.forEach(item => {
|
||||
event.removeAllTagsFrom(item)
|
||||
})
|
||||
global.MINECRAFT_DISABLED_ITEMS.forEach(item => {
|
||||
event.removeAllTagsFrom(item)
|
||||
})
|
||||
|
||||
// Stops saws from being able to pick up ice
|
||||
event.remove('minecraft:ice', 'minecraft:ice')
|
||||
event.remove('minecraft:ice', 'tfc:sea_ice')
|
||||
// Stops saws from being able to pick up ice
|
||||
event.remove('minecraft:ice', 'minecraft:ice')
|
||||
event.remove('minecraft:ice', 'tfc:sea_ice')
|
||||
|
||||
// Теперь обсидиан сторадж блок
|
||||
event.add('forge:storage_blocks/obsidian', 'minecraft:obsidian')
|
||||
|
||||
// Теперь обсидиан сторадж блок
|
||||
event.add('forge:storage_blocks/obsidian', 'minecraft:obsidian')
|
||||
|
||||
event.add('minecraft:mineable/pickaxe', 'minecraft:glowstone')
|
||||
|
||||
// Things endermen can pick up and move around
|
||||
event.removeAll('minecraft:enderman_holdable');
|
||||
event.add('minecraft:enderman_holdable', '#tfc:dirt')
|
||||
event.add('minecraft:enderman_holdable', '#tfc:mud')
|
||||
event.add('minecraft:enderman_holdable', '#tfc:loose_rocks')
|
||||
event.add('minecraft:enderman_holdable', '#forge:gravel')
|
||||
event.add('minecraft:enderman_holdable', '#forge:sand')
|
||||
event.add('minecraft:enderman_holdable', '#forge:cobblestone')
|
||||
event.add('minecraft:enderman_holdable', '#tfc:plants')
|
||||
event.add('minecraft:enderman_holdable', '#tfg:plants/beneath')
|
||||
event.add('minecraft:enderman_holdable', '#tfg:moon_plants')
|
||||
event.add('minecraft:enderman_holdable', '#tfg:mars_plants')
|
||||
event.add('minecraft:enderman_holdable', '#tfg:venus_plants')
|
||||
event.add('minecraft:enderman_holdable', '#tfg:mercury_plants')
|
||||
event.add('minecraft:enderman_holdable', '#tfg:europa_plants')
|
||||
event.add('minecraft:enderman_holdable', 'tfc:pumpkin')
|
||||
event.add('minecraft:enderman_holdable', 'tfc:melon')
|
||||
event.add('minecraft:enderman_holdable', 'betterend:cave_pumpkin')
|
||||
event.add('minecraft:enderman_holdable', '#minecraft:leaves')
|
||||
event.add('minecraft:enderman_holdable', 'beneath:wood/leaves/crimson')
|
||||
event.add('minecraft:enderman_holdable', 'beneath:wood/leaves/warped')
|
||||
event.add('minecraft:enderman_holdable', 'tfg:glacian_leaves')
|
||||
event.add('minecraft:enderman_holdable', '#tfg:solid_leaves')
|
||||
}
|
||||
|
|
@ -27,9 +27,9 @@ const registerModernMarkingRecipes = (event) => {
|
|||
markings.forEach(item => {
|
||||
event.stonecutting(item,
|
||||
Ingredient.of('#ags_modernmarkings:markings').subtract(item)
|
||||
).id(`tfg:stonecutter/${item.replace(/:/g, "/")}`)
|
||||
).id(`tfg:stonecutter/${linuxUnfucker(item)}`)
|
||||
|
||||
event.stonecutting(item, 'ags_modernmarkings:wall_marking_hazard_diamond')
|
||||
.id(`tfg:stonecutter/${item.replace(/:/g, "/")}_from_diamond`)
|
||||
.id(`tfg:stonecutter/${linuxUnfucker(item)}_from_diamond`)
|
||||
})
|
||||
};
|
||||
|
|
@ -319,7 +319,7 @@ const registerRailWaysRecipes = (event) => {
|
|||
}).id('tfg:railways/shaped/smokestack_oilburner')
|
||||
|
||||
event.recipes.gtceu.assembler('tfg:railways/smokestack_oilburner')
|
||||
.itemInputs('#forge:storage_blocks/charcoal', '6x #forge:plates/iron')
|
||||
.itemInputs('#forge:storage_blocks/charcoal', '4x #forge:plates/iron')
|
||||
.circuit(7)
|
||||
.itemOutputs('railways:smokestack_oilburner')
|
||||
.duration(200)
|
||||
|
|
|
|||
|
|
@ -1,46 +1,45 @@
|
|||
"use strict";
|
||||
|
||||
const registerRnrRecipes = (event) => {
|
||||
event.remove({input: 'rnr:concrete_powder'})
|
||||
event.remove({id: 'rnr:crafting/concrete_powder'})
|
||||
event.remove({ input: 'rnr:concrete_powder' })
|
||||
event.remove({ id: 'rnr:crafting/concrete_powder' })
|
||||
|
||||
//#region Recipes
|
||||
event.recipes.gtceu.assembler('rnr:assembler/base_course')
|
||||
event.recipes.gtceu.assembler('rnr:assembler/base_course')
|
||||
.itemInputs('1x rnr:crushed_base_course', '1x #tfc:dirt')
|
||||
.itemOutputs('2x rnr:base_course')
|
||||
.circuit(7)
|
||||
.circuit(7)
|
||||
.duration(20)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.recipes.gtceu.assembler('rnr:assembler/crushed_base_course')
|
||||
|
||||
event.recipes.gtceu.assembler('rnr:assembler/crushed_base_course')
|
||||
.itemInputs('1x #forge:gravel', '1x #rnr:loose_rock_items')
|
||||
.itemOutputs('8x rnr:crushed_base_course')
|
||||
.circuit(7)
|
||||
.circuit(7)
|
||||
.duration(20)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
global.TFC_STONE_TYPES.forEach(stone => {
|
||||
event.recipes.gtceu.cutter(`rnr:assembler/flagstone/${stone}`)
|
||||
.itemInputs(`tfc:brick/${stone}`)
|
||||
.itemOutputs(`2x rnr:flagstone/${stone}`)
|
||||
.duration(20)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
global.TFC_STONE_TYPES.forEach(stone => {
|
||||
event.recipes.gtceu.cutter(`rnr:assembler/flagstone/${stone}`)
|
||||
.itemInputs(`tfc:brick/${stone}`)
|
||||
.itemOutputs(`2x rnr:flagstone/${stone}`)
|
||||
.duration(20)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.recipes.gtceu.cutter(`rnr:assembler/flagstone/mossy_${stone}`)
|
||||
.itemInputs(`tfc:rock/mossy_loose/${stone}`)
|
||||
.itemOutputs(`2x rnr:flagstone/${stone}`)
|
||||
.duration(20)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
});
|
||||
event.recipes.gtceu.cutter(`rnr:assembler/flagstone/mossy_${stone}`)
|
||||
.itemInputs(`tfc:rock/mossy_loose/${stone}`)
|
||||
.itemOutputs(`2x rnr:flagstone/${stone}`)
|
||||
.duration(20)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
});
|
||||
|
||||
global.SAND_COLORS.forEach(sand => {
|
||||
event.recipes.gtceu.assembler(`rnr:assembler/flagstone/${sand}_sandstone`)
|
||||
.itemInputs(`tfc:raw_sandstone/${sand}`)
|
||||
.itemOutputs(`8x rnr:flagstone/${sand}_sandstone`)
|
||||
.circuit(7)
|
||||
.duration(20)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
});
|
||||
global.SAND_COLORS.forEach(sand => {
|
||||
event.recipes.gtceu.assembler(`rnr:assembler/flagstone/${sand}_sandstone`)
|
||||
.itemInputs(`tfc:raw_sandstone/${sand}`)
|
||||
.itemOutputs(`8x rnr:flagstone/${sand}_sandstone`)
|
||||
.circuit(7)
|
||||
.duration(20)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
});
|
||||
|
||||
event.smelting(
|
||||
'1x rnr:terracotta_roof_tile',
|
||||
|
|
@ -51,10 +50,10 @@ const registerRnrRecipes = (event) => {
|
|||
'1x rnr:ceramic_roof_tile',
|
||||
'rnr:unfired_roof_tile'
|
||||
).id('rnr:smelting/unfired_roof_tile')
|
||||
|
||||
event.remove({id: 'rnr:clay_knapping/roof_tile_a'})
|
||||
event.remove({id: 'rnr:clay_knapping/roof_tile_b'})
|
||||
event.remove({id: 'rnr:clay_knapping/roof_tile_c'})
|
||||
|
||||
event.remove({ id: 'rnr:clay_knapping/roof_tile_a' })
|
||||
event.remove({ id: 'rnr:clay_knapping/roof_tile_b' })
|
||||
event.remove({ id: 'rnr:clay_knapping/roof_tile_c' })
|
||||
|
||||
event.recipes.tfc.knapping('10x rnr:unfired_roof_tile', 'tfc:clay', [
|
||||
'XXXXX',
|
||||
|
|
@ -84,7 +83,7 @@ const registerRnrRecipes = (event) => {
|
|||
event.recipes.gtceu.mixer('rnr:mixer/wet_concrete_mix')
|
||||
.inputFluids('gtceu:concrete 200', "#tfg:clean_water 800")
|
||||
.outputFluids('rnr:concrete 1000')
|
||||
.circuit(7)
|
||||
.circuit(7)
|
||||
.duration(200)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
};
|
||||
|
|
@ -6,4 +6,31 @@ const registerRnrItemTags = (event) => {
|
|||
event.removeAllTagsFrom(item)
|
||||
event.add('c:hidden_from_recipe_viewers', item)
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
function registerRnrBlockTags(event) {
|
||||
|
||||
global.TFC_WOOD_TYPES.forEach(wood => {
|
||||
event.add('minecraft:mineable/axe', `rnr:wood/shingles/${wood}`)
|
||||
event.add('minecraft:mineable/axe', `rnr:wood/shingles/${wood}_stairs`)
|
||||
event.add('minecraft:mineable/axe', `rnr:wood/shingles/${wood}_slab`)
|
||||
});
|
||||
|
||||
global.AFC_WOOD_TYPES.forEach(wood => {
|
||||
event.add('minecraft:mineable/axe', `rnr:wood/shingles/${wood}`)
|
||||
event.add('minecraft:mineable/axe', `rnr:wood/shingles/${wood}_stairs`)
|
||||
event.add('minecraft:mineable/axe', `rnr:wood/shingles/${wood}_slab`)
|
||||
});
|
||||
|
||||
event.add('minecraft:mineable/hoe', `rnr:thatch_roof`)
|
||||
event.add('minecraft:mineable/hoe', `rnr:thatch_roof_stairs`)
|
||||
event.add('minecraft:mineable/hoe', `rnr:thatch_roof_slab`)
|
||||
|
||||
event.add('minecraft:mineable/pickaxe', `rnr:terracotta_roof`)
|
||||
event.add('minecraft:mineable/pickaxe', `rnr:terracotta_roof_stairs`)
|
||||
event.add('minecraft:mineable/pickaxe', `rnr:terracotta_roof_slab`)
|
||||
event.add('minecraft:mineable/pickaxe', `rnr:ceramic_roof`)
|
||||
event.add('minecraft:mineable/pickaxe', `rnr:ceramic_roof_stairs`)
|
||||
event.add('minecraft:mineable/pickaxe', `rnr:ceramic_roof_slab`)
|
||||
|
||||
}
|
||||
|
|
@ -247,23 +247,46 @@ const registerSNSRecipes = (event) => {
|
|||
.circuit(4)
|
||||
.duration(40)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
event.custom({
|
||||
type: "createaddition:rolling",
|
||||
input: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Steel, 1),
|
||||
result: { item: 'sns:metal/horseshoe/steel' }
|
||||
}).id(`tfg:rolling/steel_horseshoe`)
|
||||
|
||||
event.recipes.gtceu.bender('sns:horseshoe_black_steel_electric_only')
|
||||
.itemInputs('#forge:rods/black_steel')
|
||||
.itemOutputs('sns:metal/horseshoe/black_steel')
|
||||
.circuit(4)
|
||||
.duration(40)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
event.custom({
|
||||
type: "createaddition:rolling",
|
||||
input: ChemicalHelper.get(TagPrefix.rod, GTMaterials.BlackSteel, 1),
|
||||
result: { item: 'sns:metal/horseshoe/black_steel' }
|
||||
}).id(`tfg:rolling/black_steel_horseshoe`)
|
||||
|
||||
event.recipes.gtceu.bender('sns:horseshoe_blue_steel_electric_only')
|
||||
.itemInputs('#forge:rods/blue_steel')
|
||||
.itemOutputs('sns:metal/horseshoe/blue_steel')
|
||||
.circuit(4)
|
||||
.duration(40)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
event.custom({
|
||||
type: "createaddition:rolling",
|
||||
input: ChemicalHelper.get(TagPrefix.rod, GTMaterials.BlueSteel, 1),
|
||||
result: { item: 'sns:metal/horseshoe/blue_steel' }
|
||||
}).id(`tfg:rolling/blue_steel_horseshoe`)
|
||||
|
||||
event.recipes.gtceu.bender('sns:horseshoe_red_steel_electric_only')
|
||||
.itemInputs('#forge:rods/red_steel')
|
||||
.itemOutputs('sns:metal/horseshoe/red_steel')
|
||||
.circuit(4)
|
||||
.duration(40)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
event.custom({
|
||||
type: "createaddition:rolling",
|
||||
input: ChemicalHelper.get(TagPrefix.rod, GTMaterials.RedSteel, 1),
|
||||
result: { item: 'sns:metal/horseshoe/red_steel' }
|
||||
}).id(`tfg:rolling/red_steel_horseshoe`)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,4 +45,6 @@ function registerSNSItemTags(event) {
|
|||
|
||||
// Remove this tag to avoid confusion with the other lunchbox
|
||||
event.removeAll('sns:lunchbox_food')
|
||||
|
||||
event.add('curios:belt', 'sns:quiver');
|
||||
}
|
||||
|
|
@ -251,8 +251,8 @@ const registerSophisticatedBackpacksRecipes = (event) => {
|
|||
'CDE',
|
||||
'FGF'
|
||||
], {
|
||||
A: '#forge:screws/steel',
|
||||
B: 'gtceu:item_detector_cover',
|
||||
A: '#forge:screws/wrought_iron',
|
||||
B: '#forge:small_gears/red_alloy',
|
||||
C: '#forge:tools/screwdrivers',
|
||||
D: 'sophisticatedbackpacks:upgrade_base',
|
||||
E: '#forge:tools/wrenches',
|
||||
|
|
@ -262,7 +262,7 @@ const registerSophisticatedBackpacksRecipes = (event) => {
|
|||
|
||||
event.shapeless('sophisticatedbackpacks:advanced_void_upgrade', [
|
||||
'sophisticatedbackpacks:void_upgrade',
|
||||
'#gtceu:circuits/mv'
|
||||
'#gtceu:circuits/ulv'
|
||||
]).id('tfg:sophisticated_backpacks/shapeless/advanced_void_upgrade')
|
||||
|
||||
event.shaped('sophisticatedbackpacks:deposit_upgrade', [
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ const registerSoulboundRecipes = (event) => {
|
|||
}
|
||||
result.nbt.put('soulbindingSoulboundItems', true)
|
||||
return result;
|
||||
}).id(`tfg:soulbind_${x.equipment}`.replace(/[: ]/g, '_'));
|
||||
}).id(`tfg:soulbind_${linuxUnfucker(x.equipment)}`);
|
||||
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -26,38 +26,6 @@ function registerTACZMiscRecipes(event) {
|
|||
['tacz:target', 'minecraft:minecart']
|
||||
).id('tfg_tacz:target_minecart');
|
||||
|
||||
|
||||
//Molds
|
||||
event.shaped('tfg:small_casing_extruder_mold',[
|
||||
' A ',
|
||||
'B ',
|
||||
' C'
|
||||
],{
|
||||
A: '#forge:tools/wire_cutters',
|
||||
B: 'gtceu:empty_mold',
|
||||
C: '#forge:tools/files'
|
||||
}).id('tfg:small_casing_extruder_mold');
|
||||
|
||||
event.shaped('tfg:large_casing_extruder_mold',[
|
||||
' ',
|
||||
'AB ',
|
||||
' C'
|
||||
],{
|
||||
A: '#forge:tools/wire_cutters',
|
||||
B: 'gtceu:empty_mold',
|
||||
C: '#forge:tools/files'
|
||||
}).id('tfg:large_casing_extruder_mold');
|
||||
|
||||
event.shaped('tfg:shell_casing_extruder_mold',[
|
||||
' C',
|
||||
'AB ',
|
||||
' '
|
||||
],{
|
||||
A: '#forge:tools/wire_cutters',
|
||||
B: 'gtceu:empty_mold',
|
||||
C: '#forge:tools/files'
|
||||
}).id('tfg:shell_casing_extruder_mold');
|
||||
|
||||
//Mechanisms
|
||||
event.shaped('tfg:flintlock_mechanism', [
|
||||
'ABC',
|
||||
|
|
@ -106,4 +74,6 @@ function registerTACZMiscRecipes(event) {
|
|||
.itemOutputs('tfg:certus_mechanism')
|
||||
.EUt(GTValues.VA[GTValues.EV])
|
||||
.duration(80)
|
||||
|
||||
TFGHelpers.registerMaterialInfo('tacz:target_minecart', [GTMaterials.WroughtIron, 5, GTMaterials.Steel, 1, GTMaterials.Wood, 1]);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -109,6 +109,10 @@ const registerTFCFertilizers = (event) => {
|
|||
event.fertilizer('gtceu:tiny_ammonium_chloride_dust', 0.03, null, null)
|
||||
event.fertilizer('gtceu:small_ammonium_chloride_dust', 0.075, null, null)
|
||||
event.fertilizer('gtceu:ammonium_chloride_dust', 0.3, null, null)
|
||||
|
||||
event.fertilizer('tfc:pure_nitrogen', 1, null, null)
|
||||
event.fertilizer('tfc:pure_phosphorus', null, 1, null)
|
||||
event.fertilizer('tfc:pure_potassium', null, null, 1)
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -117,4 +121,4 @@ const registerTFCFertilizers = (event) => {
|
|||
const registerTFCKnappingTypes = (event) => {
|
||||
event.knappingType('minecraft:flint', 1, 1, 'tfc:item.knapping.stone', true, false, true, 'minecraft:flint', 'tfg:flint')
|
||||
event.knappingType('tfc:straw', 4, 4, 'tfc:item.knapping.leather', false, false, false, 'tfc:straw', 'tfg:straw')
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
// priority: 0
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {Internal.LootModificationEventJS} event
|
||||
*/
|
||||
function registerTFCLoots(event) {
|
||||
// Hostile animals
|
||||
|
||||
|
|
@ -13,6 +16,15 @@ function registerTFCLoots(event) {
|
|||
.addWeightedLoot([4, 6], ['tfc:food/bear'])
|
||||
|
||||
|
||||
event.addEntityLootModifier('tfc:panda')
|
||||
.addWeightedLoot([8, 12], ['tfc:food/bear'])
|
||||
.addWeightedLoot([1, 2], ['tfc:blubber'])
|
||||
|
||||
event.addEntityLootModifier('tfc:panda')
|
||||
.matchMainHand('#forge:tools/butchery_knives')
|
||||
.addWeightedLoot([4, 6], ['tfc:food/bear'])
|
||||
|
||||
|
||||
event.addEntityLootModifier('tfc:grizzly_bear')
|
||||
.addWeightedLoot([10, 16], ['tfc:food/bear'])
|
||||
.addWeightedLoot([1, 2], ['tfc:blubber'])
|
||||
|
|
@ -343,8 +355,15 @@ function registerTFCLoots(event) {
|
|||
|
||||
event.addBlockLootModifier('minecraft:ice')
|
||||
.removeLoot(ItemFilter.ALWAYS_TRUE)
|
||||
|
||||
event.addBlockLootModifier('minecraft:ice')
|
||||
.not(n => n.matchMainHand("#tfg:silk_harvest_ice"))
|
||||
.addLoot('firmalife:ice_shavings')
|
||||
|
||||
event.addBlockLootModifier('minecraft:ice')
|
||||
.matchMainHand("#tfg:silk_harvest_ice")
|
||||
.addLoot('minecraft:ice');
|
||||
|
||||
event.addBlockLootModifier('minecraft:packed_ice')
|
||||
.not(n => n.matchMainHand("#forge:tools/saws"))
|
||||
.addWeightedLoot([4, 6], ['firmalife:ice_shavings'])
|
||||
|
|
|
|||
|
|
@ -156,4 +156,62 @@ function registerTFCDyeRecipes(event) {
|
|||
})
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Dye mixing
|
||||
const dyeMixes = [
|
||||
// input 1
|
||||
[
|
||||
'black', 'white', 'white',
|
||||
'white', 'blue', 'blue',
|
||||
'purple', 'white', 'red',
|
||||
'orange', 'yellow'
|
||||
],
|
||||
// input 2
|
||||
[
|
||||
'white', 'gray', 'green',
|
||||
'blue', 'green', 'red',
|
||||
'pink', 'red', 'yellow',
|
||||
'black', 'blue'
|
||||
],
|
||||
// output
|
||||
[
|
||||
'gray', 'light_gray', 'light_green',
|
||||
'light_blue', 'cyan', 'purple',
|
||||
'magenta', 'pink', 'orange',
|
||||
'brown', 'green'
|
||||
]
|
||||
]
|
||||
|
||||
for (let i = 0; i < dyeMixes[2].length; i++) {
|
||||
if (!Fluid.exists(`tfc:${dyeMixes[0][i]}_dye`) ||
|
||||
!Fluid.exists(`tfc:${dyeMixes[1][i]}_dye`) ||
|
||||
!Fluid.exists(`tfc:${dyeMixes[2][i]}_dye`)
|
||||
) continue
|
||||
|
||||
// GT mixer recipe
|
||||
event.recipes.gtceu.mixer(`mixer_dye_${dyeMixes[2][i]}`)
|
||||
.inputFluids(
|
||||
Fluid.of(`tfc:${dyeMixes[0][i]}_dye`, 144),
|
||||
Fluid.of(`tfc:${dyeMixes[1][i]}_dye`, 144)
|
||||
)
|
||||
.outputFluids(
|
||||
Fluid.of(`tfc:${dyeMixes[2][i]}_dye`, 288)
|
||||
)
|
||||
.duration(20)
|
||||
.EUt(8)
|
||||
|
||||
// TFC barrel recipes (2x because 2! = 2)
|
||||
event.recipes.tfc.barrel_instant_fluid(
|
||||
Fluid.of(`tfc:${dyeMixes[2][i]}_dye`, 2),
|
||||
TFC.fluidStackIngredient(Fluid.of(`tfc:${dyeMixes[0][i]}_dye`, 1)),
|
||||
TFC.fluidStackIngredient(Fluid.of(`tfc:${dyeMixes[1][i]}_dye`, 1)),
|
||||
)
|
||||
event.recipes.tfc.barrel_instant_fluid(
|
||||
Fluid.of(`tfc:${dyeMixes[2][i]}_dye`, 2),
|
||||
TFC.fluidStackIngredient(Fluid.of(`tfc:${dyeMixes[1][i]}_dye`, 1)),
|
||||
TFC.fluidStackIngredient(Fluid.of(`tfc:${dyeMixes[0][i]}_dye`, 1)),
|
||||
)
|
||||
}
|
||||
|
||||
//#endregion
|
||||
}
|
||||
|
|
@ -8,97 +8,10 @@
|
|||
const registerTFCRecipes = (event) => {
|
||||
|
||||
removeTFCRecipes(event)
|
||||
registerTFCMaterialsRecipes(event)
|
||||
registerTFCMetalsRecipes(event)
|
||||
registerTFCDyeRecipes(event)
|
||||
|
||||
// Добавление рецептов
|
||||
const TFC_QUERN_POWDER_RECIPE_COMPONENTS = /** @type {const} */ ([
|
||||
{ input: "#forge:dusts/coke", output: "4x tfc:powder/coke", name: "coke_powder" },
|
||||
{ input: "#forge:dusts/amethyst", output: "4x tfc:powder/amethyst", name: "amethyst_powder" },
|
||||
{ input: "#forge:dusts/diamond", output: "4x tfc:powder/diamond", name: "diamond_powder" },
|
||||
{ input: "#forge:dusts/emerald", output: "4x tfc:powder/emerald", name: "emerald_powder" },
|
||||
{ input: "#forge:dusts/lapis", output: "4x tfc:powder/lapis_lazuli", name: "lapis_powder" },
|
||||
{ input: "#forge:dusts/opal", output: "4x tfc:powder/opal", name: "opal_powder" },
|
||||
{ input: "#forge:dusts/pyrite", output: "4x tfc:powder/pyrite", name: "pyrite_powder" },
|
||||
{ input: "#forge:dusts/ruby", output: "4x tfc:powder/ruby", name: "ruby_powder" },
|
||||
{ input: "#forge:dusts/sapphire", output: "4x tfc:powder/sapphire", name: "sapphire_powder" },
|
||||
{ input: "#forge:dusts/topaz", output: "4x tfc:powder/topaz", name: "topaz_powder" },
|
||||
{ input: "#forge:dusts/gold", output: "4x tfc:powder/native_gold", name: "gold_powder" },
|
||||
{ input: "#forge:dusts/silver", output: "4x tfc:powder/native_silver", name: "silver_powder" },
|
||||
{ input: "#forge:dusts/copper", output: "4x tfc:powder/native_copper", name: "copper_powder" },
|
||||
{ input: "#forge:dusts/cassiterite", output: "4x tfc:powder/cassiterite", name: "cassiterite_powder" },
|
||||
{ input: "#forge:dusts/bismuth", output: "4x tfc:powder/bismuthinite", name: "bismuth_powder" },
|
||||
{ input: "#forge:dusts/garnierite", output: "4x tfc:powder/garnierite", name: "garnierite_powder" },
|
||||
{ input: "#forge:dusts/sphalerite", output: "4x tfc:powder/sphalerite", name: "sphalerite_powder" },
|
||||
{ input: "#forge:dusts/magnetite", output: "4x tfc:powder/magnetite", name: "magnetite_powder" },
|
||||
{ input: "#forge:dusts/tetrahedrite", output: "4x tfc:powder/tetrahedrite", name: "tetrahedrite_powder" },
|
||||
{ input: "#forge:dusts/malachite", output: "4x tfc:powder/malachite", name: "malachite_powder" },
|
||||
{ input: "#forge:dusts/yellow_limonite", output: "4x tfc:powder/limonite", name: "limonite_powder" },
|
||||
{ input: "#forge:dusts/hematite", output: "4x tfc:powder/hematite", name: "hematite_powder" },
|
||||
{ input: "#forge:dusts/sulfur", output: "4x tfc:powder/sulfur", name: "sulfur_powder" },
|
||||
{ input: "#forge:dusts/saltpeter", output: "4x tfc:powder/saltpeter", name: "saltpeter_powder" },
|
||||
{ input: "#forge:dusts/salt", output: "4x tfc:powder/salt", name: "salt_powder" },
|
||||
{ input: "#forge:dusts/graphite", output: "4x tfc:powder/graphite", name: "graphite_powder" },
|
||||
{ input: "#forge:dusts/borax", output: "4x tfc:powder/flux", name: "flux_powder" },
|
||||
{ input: "#forge:dusts/soda_ash", output: "4x tfc:powder/soda_ash", name: "soda_ash" },
|
||||
{ input: "gtceu:charcoal_dust", output: "4x tfc:powder/charcoal", name: "charcoal" },
|
||||
{ input: "tfc:ore/sylvite", output: "4x tfc:powder/sylvite", name: "sylvite" }
|
||||
]);
|
||||
|
||||
TFC_QUERN_POWDER_RECIPE_COMPONENTS.forEach(element => {
|
||||
event.recipes.gtceu.macerator(`tfg:${element.name}`)
|
||||
.itemInputs(element.input)
|
||||
.itemOutputs(element.output)
|
||||
.duration(60)
|
||||
.EUt(2)
|
||||
|
||||
event.recipes.tfc.quern(element.output, element.input)
|
||||
.id(`tfg:quern/${element.name}`)
|
||||
})
|
||||
|
||||
//#region Рецепты электрической теплицы
|
||||
|
||||
// Дерево
|
||||
global.TFC_WOOD_TYPES.forEach(wood => {
|
||||
generateGreenHouseRecipe(event, `8x tfc:wood/sapling/${wood}`, '#tfc:any_fresh_water', 16000, `64x tfc:wood/log/${wood}`,
|
||||
`tfg:greenhouse/${wood}`, 'minecraft:overworld', 16, `32x tfc:wood/sapling/${wood}`, GTValues.VH[GTValues.LV])
|
||||
})
|
||||
|
||||
global.AFC_SAPLINGS.forEach(x => {
|
||||
generateGreenHouseRecipe(event, `8x afc:wood/sapling/${x.sapling}`, '#tfc:any_fresh_water', 16000, `64x ${x.log}`,
|
||||
`tfg:greenhouse/${x.sapling}`, 'minecraft:overworld', 16, `32x afc:wood/sapling/${x.sapling}`, GTValues.VH[GTValues.LV])
|
||||
})
|
||||
|
||||
// Семена фруктов
|
||||
global.TFC_GREENHOUSE_FRUIT_RECIPE_COMPONENTS.forEach(element => {
|
||||
generateGreenHouseRecipe(event, element.input, '#tfc:any_fresh_water', element.fluid_amount, element.output,
|
||||
element.name, 'minecraft:overworld', 8, element.input, GTValues.VH[GTValues.LV])
|
||||
})
|
||||
|
||||
// Семена овощей
|
||||
global.TFC_GREENHOUSE_VEGETABLE_RECIPE_COMPONENTS.forEach(element => {
|
||||
generateGreenHouseRecipe(event, element.input, '#tfc:any_fresh_water', element.fluid_amount, element.output,
|
||||
element.name, null, 8, element.input, GTValues.VH[GTValues.LV])
|
||||
})
|
||||
|
||||
// Семена ягод
|
||||
global.TFC_GREENHOUSE_BERRY_RECIPE_COMPONENTS.forEach(element => {
|
||||
generateGreenHouseRecipe(event, element.input, '#tfc:any_fresh_water', element.fluid_amount, element.output,
|
||||
element.name, null, 8, element.input, GTValues.VH[GTValues.LV])
|
||||
})
|
||||
|
||||
// Растения
|
||||
Ingredient.of('#tfc:plants').subtract('#tfc:wild_fruits').stacks.forEach(element => {
|
||||
const itemId = element.id;
|
||||
const recipeId = `greenhouse_${itemId.replace(':', '_')}`;
|
||||
|
||||
generateGreenHouseRecipe(event, itemId, '#tfc:any_fresh_water', 8000, `8x ${itemId}`,
|
||||
recipeId, null, 8, itemId, GTValues.VH[GTValues.LV]);
|
||||
});
|
||||
|
||||
//#endregion
|
||||
|
||||
event.remove({ mod: 'tfc', type: 'tfc:casting' });
|
||||
|
||||
// Доменная печь
|
||||
event.recipes.gtceu.shaped('tfc:blast_furnace', [
|
||||
|
|
@ -108,7 +21,7 @@ const registerTFCRecipes = (event) => {
|
|||
], {
|
||||
A: '#forge:double_plates/wrought_iron',
|
||||
B: 'tfc:crucible'
|
||||
}).addMaterialInfo().id('tfc:crafting/blast_furnace')
|
||||
}).id('tfc:crafting/blast_furnace')
|
||||
|
||||
// Тыква -> Кусочки тыквы
|
||||
event.recipes.tfc.advanced_shapeless_crafting(
|
||||
|
|
@ -194,6 +107,11 @@ const registerTFCRecipes = (event) => {
|
|||
// Soda Ash
|
||||
event.smelting('3x tfc:powder/soda_ash', 'tfc:food/dried_seaweed').id('tfg:smelting/dried_seaweed_to_soda')
|
||||
event.smelting('3x tfc:powder/soda_ash', 'tfc:food/dried_kelp').id('tfg:smelting/dried_kelp_to_soda')
|
||||
event.smelting('3x tfc:powder/soda_ash', 'tfc:food/fresh_seaweed').id('tfg:smelting/fresh_seaweed_to_soda')
|
||||
event.smelting('3x tfc:powder/soda_ash', 'tfc:groundcover/seaweed').id('tfg:smelting/seaweed_to_soda')
|
||||
event.smelting('3x tfc:powder/soda_ash', 'tfc:plant/winged_kelp').id('tfg:smelting/winged_kelp_to_soda')
|
||||
event.smelting('3x tfc:powder/soda_ash', 'tfc:plant/leafy_kelp').id('tfg:smelting/leafy_kelp_to_soda')
|
||||
event.smelting('3x tfc:powder/soda_ash', 'tfc:plant/giant_kelp_flower').id('tfg:smelting/giant_kelp_to_soda')
|
||||
|
||||
//More accesible solar drier
|
||||
event.replaceInput({ id: 'firmalife:crafting/solar_drier' }, 'gtceu:stainless_steel_rod', 'gtceu:silver_rod')
|
||||
|
|
@ -327,4 +245,95 @@ const registerTFCRecipes = (event) => {
|
|||
.inputs('#tfc:foods/fruits', TFC.fluidStackIngredient('#tfg:alcohols', 250))
|
||||
.outputFluid(Fluid.of('tfc:vinegar', 250))
|
||||
.id('tfc:barrel/vinegar')
|
||||
|
||||
// Clay dust to balls
|
||||
event.recipes.tfc.barrel_sealed(8000)
|
||||
.inputs('gtceu:clay_dust',TFC.fluidStackIngredient('minecraft:water', 250))
|
||||
.outputItem('1x minecraft:clay_ball')
|
||||
.id('tfc:barrel/clay_ball')
|
||||
|
||||
// Borax to flux
|
||||
event.recipes.tfc.quern('4x tfc:powder/flux', 'gtceu:borax_dust')
|
||||
.id(`tfg:quern/borax`)
|
||||
|
||||
event.recipes.gtceu.macerator('borax_to_flux')
|
||||
.itemInputs("#forge:dusts/borax")
|
||||
.itemOutputs("4x tfc:powder/flux")
|
||||
.duration(50)
|
||||
.EUt(2);
|
||||
|
||||
event.shapeless('4x tfc:fire_clay', ['tfc:fire_clay_block'])
|
||||
|
||||
event.shapeless('4x tfc:kaolin_clay', ['tfc:white_kaolin_clay'])
|
||||
event.shapeless('4x tfc:kaolin_clay', ['tfc:pink_kaolin_clay'])
|
||||
event.shapeless('4x tfc:kaolin_clay', ['tfc:red_kaolin_clay'])
|
||||
|
||||
global.TFC_WOOD_TYPES.forEach(element => {
|
||||
event.shaped(`4x tfc:wood/fallen_leaves/${element}`,[
|
||||
'AA',
|
||||
'AA'
|
||||
], {
|
||||
A: `tfc:wood/leaves/${element}`
|
||||
}).id(`tfg:shaped/tfc/${element}_leaves_to_fallen_leaves`);
|
||||
});
|
||||
|
||||
/**
|
||||
* @property {string[]} krummholz_types - List of krummholz wood types.
|
||||
*/
|
||||
const krummholz_types = [
|
||||
'aspen',
|
||||
'douglas_fir',
|
||||
'pine',
|
||||
'spruce',
|
||||
'white_cedar'
|
||||
];
|
||||
krummholz_types.forEach(type => {
|
||||
event.shaped(`1x tfc:plant/${type}_krummholz`,[
|
||||
'A',
|
||||
'A'
|
||||
], {
|
||||
A: `tfc:wood/sapling/${type}`
|
||||
}).id(`tfg:shaped/tfc/${type}_krummholz`);
|
||||
});
|
||||
|
||||
/**
|
||||
* @property {Array} tfcWoodRecyclingIndex - Wood recycling material index.
|
||||
*/
|
||||
const tfcWoodRecyclingIndex = [
|
||||
['tfc:wood/chest_minecart/{type}', ['{wood}', 4, GTMaterials.WroughtIron, 5]],
|
||||
['tfc:wood/planks/{type}', ['{wood}', 8]],
|
||||
['tfc:wood/planks/{type}_door', ['{wood}', 6]],
|
||||
['tfc:wood/planks/{type}_trapdoor', ['{wood}', 4]],
|
||||
['tfc:wood/planks/{type}_fence', ['{wood}', 4]],
|
||||
['tfc:wood/planks/{type}_log_fence', ['{wood}', 8]],
|
||||
['tfc:wood/planks/{type}_fence_gate', ['{wood}', 8]],
|
||||
['tfc:wood/planks/{type}_slab', ['{wood}', 2]],
|
||||
['tfc:wood/planks/{type}_stairs', ['{wood}', 3]],
|
||||
['tfc:wood/planks/{type}_pressure_plate', ['{wood}', 4]],
|
||||
['tfc:wood/planks/{type}_button', ['{wood}', 1]],
|
||||
['tfc:wood/chest/{type}', ['{wood}', 16]],
|
||||
['tfc:wood/trapped_chest/{type}', ['{wood}', 16, GTMaterials.WroughtIron, 4/9, GTMaterials.Wood, 1]]
|
||||
];
|
||||
/**
|
||||
* @param {Array} materials
|
||||
* @param {string} woodMaterial
|
||||
* @return {Array}
|
||||
*/
|
||||
function resolveArgs(materials, woodMaterial) {
|
||||
return materials.map(materials => materials === '{wood}' ? woodMaterial : materials);
|
||||
};
|
||||
global.TFC_HARDWOOD_TYPES.forEach(type => {
|
||||
tfcWoodRecyclingIndex.forEach(([template, args]) => {
|
||||
const item = template.replace('{type}', type);
|
||||
const resolvedArgs = resolveArgs(args, GTMaterials.get('hardwood'));
|
||||
TFGHelpers.registerMaterialInfo(item, resolvedArgs);
|
||||
});
|
||||
});
|
||||
global.TFC_SOFTWOOD_TYPES.forEach(type => {
|
||||
tfcWoodRecyclingIndex.forEach(([template, args]) => {
|
||||
const item = template.replace('{type}', type);
|
||||
const resolvedArgs = resolveArgs(args, GTMaterials.Wood);
|
||||
TFGHelpers.registerMaterialInfo(item, resolvedArgs);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -30,8 +30,8 @@ function registerTFCMetalsRecipes(event) {
|
|||
]).id('tfg:alloy/tin_alloy')
|
||||
|
||||
event.recipes.tfc.alloy('tfg:invar', [
|
||||
TFC.alloyPart('tfc:nickel', 0.60, 0.70),
|
||||
TFC.alloyPart('tfc:cast_iron', 0.30, 0.40)
|
||||
TFC.alloyPart('tfc:nickel', 0.30, 0.40),
|
||||
TFC.alloyPart('tfc:cast_iron', 0.60, 0.70)
|
||||
]).id('tfg:alloy/invar')
|
||||
|
||||
event.recipes.tfc.alloy('tfg:potin', [
|
||||
|
|
@ -48,68 +48,6 @@ function registerTFCMetalsRecipes(event) {
|
|||
|
||||
//#endregion
|
||||
|
||||
|
||||
//#region Фикс рецептов колоколов
|
||||
|
||||
//#region Из золота
|
||||
|
||||
event.recipes.tfc.casting(`minecraft:bell`, 'tfc:ceramic/bell_mold', Fluid.of('gtceu:gold', 144), 1)
|
||||
.id(`tfc:casting/gold_bell`)
|
||||
|
||||
event.recipes.tfc.heating(`minecraft:bell`, 1060)
|
||||
.resultFluid(Fluid.of('gtceu:gold', 144))
|
||||
.id(`tfc:heating/gold_bell`)
|
||||
|
||||
event.recipes.create.filling(
|
||||
Item.of('tfc:ceramic/bell_mold', getFillingNBT(GTMaterials.Gold, 144)),
|
||||
[
|
||||
Fluid.of(GTMaterials.Gold.getFluid(), 144),
|
||||
Item.of('tfc:ceramic/bell_mold').strongNBT()
|
||||
]
|
||||
).id(`tfg:tfc/filling/${GTMaterials.Gold.getName()}_bell_mold`)
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Из латуни
|
||||
|
||||
event.recipes.tfc.casting(`tfc:brass_bell`, 'tfc:ceramic/bell_mold', Fluid.of('gtceu:brass', 144), 1)
|
||||
.id(`tfc:casting/brass_bell`)
|
||||
|
||||
event.recipes.tfc.heating(`tfc:brass_bell`, 930)
|
||||
.resultFluid(Fluid.of('gtceu:brass', 144))
|
||||
.id(`tfc:heating/brass_bell`)
|
||||
|
||||
event.recipes.create.filling(
|
||||
Item.of('tfc:ceramic/bell_mold', getFillingNBT(GTMaterials.Brass, 144)),
|
||||
[
|
||||
Fluid.of(GTMaterials.Brass.getFluid(), 144),
|
||||
Item.of('tfc:ceramic/bell_mold').strongNBT()
|
||||
]
|
||||
).id(`tfg:tfc/filling/${GTMaterials.Brass.getName()}_bell_mold`)
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Из бронзы
|
||||
|
||||
event.recipes.tfc.casting(`tfc:bronze_bell`, 'tfc:ceramic/bell_mold', Fluid.of('gtceu:bronze', 144), 1)
|
||||
.id(`tfc:casting/bronze_bell`)
|
||||
|
||||
event.recipes.tfc.heating(`tfc:bronze_bell`, 930)
|
||||
.resultFluid(Fluid.of('gtceu:bronze', 144))
|
||||
.id(`tfc:heating/bronze_bell`)
|
||||
|
||||
event.recipes.create.filling(
|
||||
Item.of('tfc:ceramic/bell_mold', getFillingNBT(GTMaterials.Bronze, 144)),
|
||||
[
|
||||
Fluid.of(GTMaterials.Bronze.getFluid(), 144),
|
||||
Item.of('tfc:ceramic/bell_mold').strongNBT()
|
||||
]
|
||||
).id(`tfg:tfc/filling/${GTMaterials.Bronze.getName()}_bell_mold`)
|
||||
|
||||
//#endregion
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Рецепты ковки TFC слитков в GT машинах
|
||||
|
||||
// Сырая крица -> Укрепленная крица
|
||||
|
|
@ -162,6 +100,8 @@ function registerTFCMetalsRecipes(event) {
|
|||
.EUt(4)
|
||||
|
||||
// Слабая сталь + Чугун -> Высокоуглеродная черная сталь
|
||||
event.recipes.tfc.welding(TFC.isp.of('tfc:metal/ingot/high_carbon_black_steel').copyHeat(), 'tfc:metal/ingot/weak_steel', 'tfc:metal/ingot/pig_iron', 4)
|
||||
|
||||
event.recipes.greate.compacting('tfc:metal/ingot/high_carbon_black_steel',
|
||||
['tfc:metal/ingot/weak_steel', 'tfc:metal/ingot/pig_iron', 'tfc:powder/flux'])
|
||||
.heated()
|
||||
|
|
@ -175,6 +115,8 @@ function registerTFCMetalsRecipes(event) {
|
|||
.EUt(4)
|
||||
|
||||
// Слабая синяя сталь + Черная сталь -> Высокоуглеродная синяя сталь
|
||||
event.recipes.tfc.welding(TFC.isp.of('tfc:metal/ingot/high_carbon_blue_steel').copyHeat(), 'tfc:metal/ingot/weak_blue_steel', 'tfc:metal/ingot/black_steel', 5)
|
||||
|
||||
event.recipes.greate.compacting('tfc:metal/ingot/high_carbon_blue_steel',
|
||||
['tfc:metal/ingot/weak_blue_steel', 'tfc:metal/ingot/black_steel', 'tfc:powder/flux'])
|
||||
.heated()
|
||||
|
|
@ -188,6 +130,8 @@ function registerTFCMetalsRecipes(event) {
|
|||
.EUt(4)
|
||||
|
||||
// Слабая красная сталь + Черная сталь -> Высокоуглеродная красная сталь
|
||||
event.recipes.tfc.welding(TFC.isp.of('tfc:metal/ingot/high_carbon_red_steel').copyHeat(), 'tfc:metal/ingot/weak_red_steel', 'tfc:metal/ingot/black_steel', 5)
|
||||
|
||||
event.recipes.greate.compacting('tfc:metal/ingot/high_carbon_red_steel',
|
||||
['tfc:metal/ingot/weak_red_steel', 'tfc:metal/ingot/black_steel', 'tfc:powder/flux'])
|
||||
.heated()
|
||||
|
|
@ -260,7 +204,7 @@ function registerTFCMetalsRecipes(event) {
|
|||
//#region Фикс рецептов металлических предметов
|
||||
|
||||
// Рецепт Jacks
|
||||
event.recipes.tfc.welding('tfc:jacks', '#forge:rods/brass', '#forge:plates/brass', 2)
|
||||
event.recipes.tfc.welding(TFC.isp.of('tfc:jacks').copyHeat().copyForgingBonus(), '#forge:rods/brass', '#forge:plates/brass', 2)
|
||||
.id(`tfc:welding/jacks`)
|
||||
|
||||
event.recipes.greate.compacting('tfc:jacks', ['#forge:rods/brass', '#forge:plates/brass', 'tfc:powder/flux'])
|
||||
|
|
@ -329,7 +273,7 @@ function registerTFCMetalsRecipes(event) {
|
|||
.id('tfc:anvil/blue_steel_ingot')
|
||||
|
||||
// Cast iron -> Raw Iron Bloom
|
||||
event.recipes.tfc.bloomery('tfc:raw_iron_bloom', 'minecraft:charcoal', Fluid.of('gtceu:iron', 144), 15000)
|
||||
event.recipes.tfc.bloomery('tfc:raw_iron_bloom', '#tfg:bloomery_basic_fuels', Fluid.of('gtceu:iron', 144), 15000)
|
||||
.id('tfc:bloomery/raw_iron_bloom')
|
||||
|
||||
// Cast Iron -> Pig Iron
|
||||
|
|
@ -354,49 +298,27 @@ function registerTFCMetalsRecipes(event) {
|
|||
.inputFluids("#tfg:clean_water 100")
|
||||
.circuit(4)
|
||||
.itemOutputs(`1x tfc:ore/normal_${ore}`)
|
||||
.duration(400)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
.duration(40)
|
||||
.EUt(GTValues.VHA[GTValues.LV])
|
||||
|
||||
event.recipes.gtceu.ore_washer(`tfc:ore_washer/distilled_water/deposit/${ore}/${stone}`)
|
||||
.itemInputs(`1x tfc:deposit/${ore}/${stone}`)
|
||||
.inputFluids(Fluid.of('gtceu:distilled_water', 50))
|
||||
.circuit(4)
|
||||
.itemOutputs(`1x tfc:ore/normal_${ore}`)
|
||||
.duration(200)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
.duration(20)
|
||||
.EUt(GTValues.VHA[GTValues.LV])
|
||||
|
||||
event.recipes.greate.splashing(
|
||||
[`tfc:ore/normal_${ore}`],
|
||||
[`1x tfc:deposit/${ore}/${stone}`, Fluid.of('minecraft:water', 100)]
|
||||
)
|
||||
.recipeTier(1)
|
||||
.id(`tfg:splashing/${ore}/${stone}_deposit`)
|
||||
})
|
||||
})
|
||||
//#endregion
|
||||
|
||||
event.smelting('minecraft:iron_ingot', '#forge:ingots/wrought_iron')
|
||||
.id('tfg:revert_wrought_iron_ingot')
|
||||
|
||||
|
||||
// Melting powders
|
||||
|
||||
const METAL_POWDERS = [
|
||||
{ powder: 'tfc:powder/native_copper', material: GTMaterials.Copper },
|
||||
{ powder: 'tfc:powder/native_gold', material: GTMaterials.Gold },
|
||||
{ powder: 'tfc:powder/hematite', material: GTMaterials.Hematite },
|
||||
{ powder: 'tfc:powder/native_silver', material: GTMaterials.Silver },
|
||||
{ powder: 'tfc:powder/cassiterite', material: GTMaterials.Cassiterite },
|
||||
{ powder: 'tfc:powder/bismuthinite', material: GTMaterials.Bismuth },
|
||||
{ powder: 'tfc:powder/garnierite', material: GTMaterials.Garnierite },
|
||||
{ powder: 'tfc:powder/malachite', material: GTMaterials.Malachite },
|
||||
{ powder: 'tfc:powder/magnetite', material: GTMaterials.Magnetite },
|
||||
{ powder: 'tfc:powder/limonite', material: GTMaterials.YellowLimonite },
|
||||
{ powder: 'tfc:powder/sphalerite', material: GTMaterials.Sphalerite },
|
||||
{ powder: 'tfc:powder/tetrahedrite', material: GTMaterials.Tetrahedrite },
|
||||
{ powder: 'tfc:powder/pyrite', material: GTMaterials.Pyrite }
|
||||
]
|
||||
|
||||
METAL_POWDERS.forEach(x => {
|
||||
const tfcProperty = x.material.getProperty(TFGPropertyKey.TFC_PROPERTY)
|
||||
|
||||
let outputMaterial = (tfcProperty.getOutputMaterial() === null) ? x.material : tfcProperty.getOutputMaterial()
|
||||
|
||||
event.recipes.tfc.heating(x.powder, tfcProperty.getMeltTemp())
|
||||
.resultFluid(Fluid.of(outputMaterial.getFluid(), global.calcAmountOfMetalProcessed(36, tfcProperty.getPercentOfMaterial())))
|
||||
.id(`tfg:heating/powder/${x.material.getName()}`)
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,60 +3,19 @@
|
|||
|
||||
function removeTFCRecipes(event) {
|
||||
|
||||
// Удаление рецептов руд TFC
|
||||
event.remove({ id: /tfc:heating\/ore\/poor_*/ })
|
||||
event.remove({ id: /tfc:heating\/ore\/normal_*/ })
|
||||
event.remove({ id: /tfc:heating\/ore\/rich_*/ })
|
||||
global.TFC_DISABLED_ITEMS.forEach(item => {
|
||||
event.remove({ output: item })
|
||||
})
|
||||
|
||||
// Удаление рецептов блоков
|
||||
event.remove({ id: /tfc:crafting\/metal\/block\/*/ })
|
||||
event.remove({ id: /tfc:heating\/metal\/*_block/ })
|
||||
|
||||
// Удаление рецептов ступеней
|
||||
event.remove({ id: /tfc:crafting\/metal\/block\/*_stairs/ })
|
||||
event.remove({ id: /tfc:heating\/metal\/*_block_stairs/ })
|
||||
|
||||
// Удалание рецептов полублоков
|
||||
event.remove({ id: /tfc:crafting\/metal\/block\/*_slab/ })
|
||||
event.remove({ id: /tfc:heating\/metal\/*_block_slab/ })
|
||||
|
||||
//#region Удаление рецептов для предметов из Cast Iron
|
||||
|
||||
// Блок
|
||||
event.remove({ id: `tfc:crafting/metal/block/cast_iron` })
|
||||
event.remove({ id: `tfc:heating/metal/cast_iron_block` })
|
||||
|
||||
// Ступень
|
||||
event.remove({ id: `tfc:crafting/metal/block/cast_iron_stairs` })
|
||||
event.remove({ id: `tfc:heating/metal/cast_iron_block_stairs` })
|
||||
|
||||
// Полублок
|
||||
event.remove({ id: `tfc:crafting/metal/block/cast_iron_slab` })
|
||||
event.remove({ id: `tfc:heating/metal/cast_iron_block_slab` })
|
||||
|
||||
// Слиток
|
||||
event.remove({ id: `tfc:casting/cast_iron_ingot` })
|
||||
event.remove({ id: `tfc:casting/cast_iron_fire_ingot` })
|
||||
event.remove({ id: `tfc:heating/metal/cast_iron_ingot` })
|
||||
event.remove({ id: `tfc:welding/cast_iron_double_ingot` })
|
||||
event.remove({ id: `tfc:anvil/cast_iron_rod` })
|
||||
|
||||
// Двойной слиток
|
||||
event.remove({ id: `tfc:heating/metal/cast_iron_double_ingot` })
|
||||
event.remove({ id: `tfc:anvil/cast_iron_sheet` })
|
||||
|
||||
// Пластина
|
||||
event.remove({ id: `tfc:heating/metal/cast_iron_sheet` })
|
||||
event.remove({ id: `tfc:welding/cast_iron_double_sheet` })
|
||||
|
||||
// Двойная пластина
|
||||
event.remove({ id: `tfc:heating/metal/cast_iron_double_sheet` })
|
||||
|
||||
// Стержень
|
||||
event.remove({ id: `tfc:heating/metal/cast_iron_rod` })
|
||||
|
||||
//#endregion
|
||||
event.remove({ mod: 'tfc', type: 'tfc:welding' })
|
||||
event.remove({ id: /tfc:heating\/metal\/*/ })
|
||||
event.remove({ id: /tfc:heating\/ore\/*/ })
|
||||
|
||||
global.TFC_METALS.forEach(metal => {
|
||||
event.remove({ id: `tfc:crafting/metal/block/${metal}` })
|
||||
event.remove({ id: `tfc:crafting/metal/block/${metal}_stairs` })
|
||||
event.remove({ id: `tfc:crafting/metal/block/${metal}_slab` })
|
||||
})
|
||||
|
||||
// #region Удаление рецептов
|
||||
event.remove({ id: 'tfc:quern/amethyst' })
|
||||
|
|
@ -73,6 +32,18 @@ function removeTFCRecipes(event) {
|
|||
event.remove({ id: 'tfc:quern/graphite' })
|
||||
event.remove({ id: 'tfc:quern/lapis_lazuli' })
|
||||
event.remove({ id: 'tfc:quern/lapis_lazuli_cut' })
|
||||
event.remove({ id: 'tfc:quern/small_bismuthinite' })
|
||||
event.remove({ id: 'tfc:quern/small_cassiterite' })
|
||||
event.remove({ id: 'tfc:quern/small_garnierite' })
|
||||
event.remove({ id: 'tfc:quern/small_hematite' })
|
||||
event.remove({ id: 'tfc:quern/small_limonite' })
|
||||
event.remove({ id: 'tfc:quern/small_magnetite' })
|
||||
event.remove({ id: 'tfc:quern/small_malachite' })
|
||||
event.remove({ id: 'tfc:quern/small_native_copper' })
|
||||
event.remove({ id: 'tfc:quern/small_native_gold' })
|
||||
event.remove({ id: 'tfc:quern/small_native_silver' })
|
||||
event.remove({ id: 'tfc:quern/small_sphalerite' })
|
||||
event.remove({ id: 'tfc:quern/small_tetrahedrite' })
|
||||
event.remove({ id: 'tfc:quern/normal_bismuthinite' })
|
||||
event.remove({ id: 'tfc:quern/normal_cassiterite' })
|
||||
event.remove({ id: 'tfc:quern/normal_garnierite' })
|
||||
|
|
@ -145,14 +116,18 @@ function removeTFCRecipes(event) {
|
|||
event.remove({ id: `tfc:crafting/crankshaft` })
|
||||
event.remove({ id: 'tfc:crafting/sandpaper' })
|
||||
event.remove({ id: 'tfc:crafting/vanilla/redstone/observer' })
|
||||
|
||||
event.remove({ id: 'tfc:crafting/vanilla/brick_stairs' })
|
||||
event.remove({ id: 'tfc:crafting/vanilla/redstone/steel_minecart' })
|
||||
event.remove({ id: 'tfc:crafting/vanilla/redstone/minecart' })
|
||||
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\/dough\/.*/ })
|
||||
global.TFC_DOUGHS.forEach(dough => {
|
||||
for (let i = 1; i <= 8; i++) {
|
||||
event.remove({ id: `tfc:crafting/dough/${dough}_dough_${i}` })
|
||||
}
|
||||
})
|
||||
event.remove({ id: 'tfc:heating/destroy_bread' })
|
||||
|
||||
event.remove({ id: 'tfc:crafting/gunpowder_graphite' })
|
||||
|
|
@ -161,4 +136,11 @@ function removeTFCRecipes(event) {
|
|||
event.remove({ output: 'tfc:rustic_windmill_blade'})
|
||||
event.remove({ output: 'tfc:lattice_windmill_blade'})
|
||||
event.remove({ id: 'tfchotornot:heating/insulating_items'})
|
||||
|
||||
event.remove({ id: 'tfc:heating/metal/weak_blue_steel_ingot' })
|
||||
event.remove({ id: 'tfc:casting/weak_blue_steel_ingot' })
|
||||
event.remove({ id: 'tfc:casting/weak_blue_steel_fire_ingot' })
|
||||
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' })
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
// priority: 0
|
||||
"use strict";
|
||||
|
||||
const ForgeRegistries = Java.loadClass('net.minecraftforge.registries.ForgeRegistries');
|
||||
|
||||
/** @param {TagEvent.Item} event */
|
||||
function registerTFCItemTags(event) {
|
||||
// Теги для соответствия инструментов TFC и GT
|
||||
|
|
@ -90,9 +92,9 @@ function registerTFCItemTags(event) {
|
|||
event.add("tfc:nonplaceable", "minecraft:milk_bucket")
|
||||
event.add("tfc:nonplaceable", "firmalife:bucket/yak_milk")
|
||||
event.add("tfc:nonplaceable", "firmalife:bucket/goat_milk")
|
||||
event.add("tfc:nonplaceable", "tfc_gurman:ox_milk_bucket")
|
||||
event.add("tfc:nonplaceable", "tfc_gurman:sheep_milk_bucket")
|
||||
event.add("tfc:nonplaceable", "tfc_gurman:alpaca_milk_bucket")
|
||||
event.add("tfc:nonplaceable", "tfc_gourmet:ox_milk_bucket")
|
||||
event.add("tfc:nonplaceable", "tfc_gourmet:sheep_milk_bucket")
|
||||
event.add("tfc:nonplaceable", "tfc_gourmet:alpaca_milk_bucket")
|
||||
event.add("tfc:nonplaceable", "tfc:bucket/beer")
|
||||
event.add("tfc:nonplaceable", "tfc:bucket/cider")
|
||||
event.add("tfc:nonplaceable", "tfc:bucket/rum")
|
||||
|
|
@ -110,16 +112,16 @@ function registerTFCItemTags(event) {
|
|||
event.add("tfc:nonplaceable", "tfcagedalcohol:bucket/aged_corn_whiskey")
|
||||
event.add("tfc:nonplaceable", "tfcagedalcohol:bucket/aged_rye_whiskey")
|
||||
event.add("tfc:nonplaceable", "tfcagedalcohol:bucket/aged_mead")
|
||||
event.add("tfc:nonplaceable", "tfc_gurman:nalivka_bucket")
|
||||
event.add("tfc:nonplaceable", "tfc_gurman:coffee_bucket")
|
||||
event.add("tfc:nonplaceable", "tfc_gurman:tea_mint_bucket")
|
||||
event.add("tfc:nonplaceable", "tfc_gurman:tea_chamomile_bucket")
|
||||
event.add("tfc:nonplaceable", "tfc_gurman:tea_rosehip_bucket")
|
||||
event.add("tfc:nonplaceable", "tfc_gurman:tea_nettle_bucket")
|
||||
event.add("tfc:nonplaceable", "tfc_gurman:cocoa_bucket")
|
||||
event.add("tfc:nonplaceable", "tfc_gurman:compote_bucket")
|
||||
event.add("tfc:nonplaceable", "tfc_gurman:kvass_bucket")
|
||||
event.add("tfc:nonplaceable", "tfc_gurman:lemonade_bucket")
|
||||
event.add("tfc:nonplaceable", "tfc_gourmet:nalivka_bucket")
|
||||
event.add("tfc:nonplaceable", "tfc_gourmet:coffee_bucket")
|
||||
event.add("tfc:nonplaceable", "tfc_gourmet:tea_mint_bucket")
|
||||
event.add("tfc:nonplaceable", "tfc_gourmet:tea_chamomile_bucket")
|
||||
event.add("tfc:nonplaceable", "tfc_gourmet:tea_rosehip_bucket")
|
||||
event.add("tfc:nonplaceable", "tfc_gourmet:tea_nettle_bucket")
|
||||
event.add("tfc:nonplaceable", "tfc_gourmet:cocoa_bucket")
|
||||
event.add("tfc:nonplaceable", "tfc_gourmet:compote_bucket")
|
||||
event.add("tfc:nonplaceable", "tfc_gourmet:kvass_bucket")
|
||||
event.add("tfc:nonplaceable", "tfc_gourmet:lemonade_bucket")
|
||||
event.add("tfc:nonplaceable", "firmalife:bucket/mead")
|
||||
event.add("tfc:nonplaceable", "firmalife:bucket/red_wine")
|
||||
event.add("tfc:nonplaceable", "firmalife:bucket/white_wine")
|
||||
|
|
@ -135,6 +137,21 @@ function registerTFCItemTags(event) {
|
|||
//Plants
|
||||
event.add("tfc:plants", "#tfc:wild_fruits");
|
||||
|
||||
/**
|
||||
* @property {string[]} krummholz_types - List of krummholz wood types.
|
||||
*/
|
||||
const krummholz_types = [
|
||||
'aspen',
|
||||
'douglas_fir',
|
||||
'pine',
|
||||
'spruce',
|
||||
'white_cedar'
|
||||
];
|
||||
krummholz_types.forEach(type => {
|
||||
event.add('tfc:plants', `tfc:plant/${type}_krummholz`);
|
||||
event.add('tfc:krummholz', `tfc:plant/${type}_krummholz`);
|
||||
});
|
||||
|
||||
// Для складывания
|
||||
event.add("tfc:pileable_ingots", "#forge:ingots");
|
||||
event.add("tfc:pileable_sheets", "#forge:plates");
|
||||
|
|
@ -155,6 +172,14 @@ function registerTFCItemTags(event) {
|
|||
event.add("minecraft:fishes", "tfc:food/rainbow_trout");
|
||||
event.add("minecraft:fishes", "tfc:food/smallmouth_bass");
|
||||
|
||||
event.add("tfc:foods/grains", "tfc:food/cooked_rice");
|
||||
event.add("tfc:foods/grains", "tfc:food/cattail_root");
|
||||
event.add("tfc:foods/grains", "tfc:food/taro_root");
|
||||
event.add("tfc:foods/grains", "firmalife:food/tortilla_chips");
|
||||
event.add("tfc:foods/grains", "firmalife:food/cooked_rice_noodles");
|
||||
event.add("tfc:foods/grains", "firmalife:food/cooked_pasta");
|
||||
event.add("tfc:foods/grains", "firmalife:food/toast");
|
||||
|
||||
// Чтобы жарились бревна из TFC в пиролиз. печке
|
||||
// Почему нельзя просто добавить тег в тег? (допустим minecraft:logs), потому что из-за этого ломаются все рецепты minecraft:logs, магия...
|
||||
global.TFC_WOOD_TYPES.forEach((woodType) => {
|
||||
|
|
@ -261,6 +286,12 @@ function registerTFCItemTags(event) {
|
|||
event.add("tfc:green_gravel", "tfc:rock/gravel/schist");
|
||||
// Розовый
|
||||
event.add("tfc:pink_gravel", "tfc:rock/gravel/granite");
|
||||
|
||||
// Glassworking sands
|
||||
event.add('tfc:hematitic_sand', 'minecraft:red_sand');
|
||||
event.add('tfc:hematitic_sand', 'ad_astra:mars_sand');
|
||||
event.add('tfc:hematitic_sand', 'ad_astra:venus_sand');
|
||||
event.add('tfc:olivine_sand', 'ad_astra:moon_sand');
|
||||
|
||||
// Теги для объединения наковален
|
||||
event.add("tfc:red_or_blue_anvil", "tfc:metal/anvil/blue_steel");
|
||||
|
|
@ -390,7 +421,6 @@ function registerTFCItemTags(event) {
|
|||
event.add("tfc:forge_invisible_whitelist", "greate:titanium_mechanical_pump");
|
||||
|
||||
event.add("forge:mushrooms", "tfc:plant/artists_conk");
|
||||
event.add("forge:raw_materials/sylvite", "tfc:ore/sylvite");
|
||||
event.add("tfc:any_knapping", "#tfc:pit_kiln_straw");
|
||||
event.add("tfg:burlap_fiber", "tfc:jute_fiber");
|
||||
|
||||
|
|
@ -407,6 +437,59 @@ function registerTFCItemTags(event) {
|
|||
event.add('tfc:knives', 'tfc:stone/knife/metamorphic')
|
||||
event.add('tfc:knives', 'tfc:stone/knife/igneous_intrusive')
|
||||
event.add('tfc:knives', 'tfc:stone/knife/igneous_extrusive')
|
||||
|
||||
//greens and browns
|
||||
event.remove('tfc:compost_browns_low', '#tfc:fallen_leaves')
|
||||
event.add('tfc:compost_greens_low', '#tfc:fallen_leaves')
|
||||
event.add('tfc:compost_greens_low', '#minecraft:leaves')
|
||||
|
||||
// Powder dyes
|
||||
event.add('forge:dyes/blue', 'tfc:powder/lapis_lazuli')
|
||||
event.add('forge:dyes/blue', 'tfc:powder/graphite')
|
||||
event.add('forge:dyes/black', 'tfc:powder/charcoal')
|
||||
event.add('forge:dyes/black', 'tfc:powder/coke')
|
||||
event.add('forge:dyes/pink', 'tfc:powder/kaolinite')
|
||||
event.add('forge:dyes/blue', 'tfc:powder/lapis_lazuli')
|
||||
event.add('forge:dyes/orange', 'tfc:powder/sylvite')
|
||||
event.add('forge:dyes/orange', 'tfc:powder/copper')
|
||||
event.add('forge:dyes/blue', 'tfc:powder/lapis_lazuli')
|
||||
event.add('forge:dyes/light_gray', 'tfc:powder/silver')
|
||||
event.add('forge:dyes/gray', 'tfc:powder/cassiterite')
|
||||
event.add('forge:dyes/gray', 'tfc:powder/magnetite')
|
||||
event.add('forge:dyes/gray', 'tfc:powder/sphalerite')
|
||||
event.add('forge:dyes/gray', 'tfc:powder/tetrahedrite')
|
||||
event.add('forge:dyes/green', 'tfc:powder/bismuthinite')
|
||||
event.add('forge:dyes/green', 'tfc:powder/malachite')
|
||||
event.add('forge:dyes/brown', 'tfc:powder/garnierite')
|
||||
event.add('forge:dyes/yellow', 'tfc:powder/limonite')
|
||||
|
||||
//Hanging Signs Soft & Hard Wood
|
||||
global.TFC_EQUIPMENT_METALS.forEach(metal => {
|
||||
event.add(`tfg:hanging_sign/${metal}/hardwood`, global.TFC_HARDWOOD_TYPES.map(wood => `tfc:wood/hanging_sign/${metal}/${wood}`))
|
||||
event.add(`tfg:hanging_sign/${metal}/softwood`, global.TFC_SOFTWOOD_TYPES.map(wood => `tfc:wood/hanging_sign/${metal}/${wood}`))
|
||||
event.add(`tfg:hanging_sign/${metal}/hardwood`, global.AFC_HARDWOOD_TYPES.map(wood => `afc:wood/hanging_sign/${metal}/${wood}`))
|
||||
event.add(`tfg:hanging_sign/${metal}/softwood`, global.AFC_SOFTWOOD_TYPES.map(wood => `afc:wood/hanging_sign/${metal}/${wood}`))
|
||||
event.add(`tfg:hanging_sign/${metal}/hardwood`, `beneath:wood/hanging_sign/${metal}/warped`)
|
||||
event.add(`tfg:hanging_sign/${metal}/softwood`, `beneath:wood/hanging_sign/${metal}/crimson`)
|
||||
})
|
||||
|
||||
event.add('tfc:fluxstone', 'tfg:loose/dripstone')
|
||||
|
||||
event.add('tfc:food/bell_peppers', 'tfc:food/green_bell_pepper');
|
||||
event.add('tfc:food/bell_peppers', 'tfc:food/yellow_bell_pepper');
|
||||
event.add('tfc:food/bell_peppers', 'tfc:food/red_bell_pepper');
|
||||
|
||||
// More offhand things for piglin brutes
|
||||
event.add('tfc:mob_offhand_weapons', 'tfchotornot:tongs/gold');
|
||||
event.add('tfc:mob_offhand_weapons', 'tfchotornot:tongs/rose_gold');
|
||||
event.add('tfc:mob_offhand_weapons', 'gtceu:black_bronze_knife');
|
||||
event.add('tfc:mob_offhand_weapons', 'tfc:metal/javelin/black_bronze');
|
||||
event.add('tfc:mob_offhand_weapons', 'tfc:metal/mace/black_bronze');
|
||||
|
||||
event.add('tfc:starts_fires_with_items', 'gtceu:matches');
|
||||
event.add('tfc:starts_fires_with_durability', 'gtceu:matchbox');
|
||||
event.add('tfc:starts_fires_with_durability', 'gtceu:invar_lighter');
|
||||
event.add('tfc:starts_fires_with_durability', 'gtceu:platinum_lighter');
|
||||
}
|
||||
|
||||
/** @param {TagEvent.Block} event */
|
||||
|
|
@ -447,14 +530,7 @@ function registerTFCBlockTags(event) {
|
|||
event.add("tfc:can_start_collapse", "#tfc:rock/smooth");
|
||||
event.add("tfc:can_trigger_collapse", "#tfc:rock/smooth");
|
||||
|
||||
// Возможность обрушения руды
|
||||
event.add("tfc:can_collapse", "#forge:ores");
|
||||
event.add("tfc:can_start_collapse", "#forge:ores");
|
||||
event.add("tfc:can_trigger_collapse", "#forge:ores");
|
||||
|
||||
event.add("tfc:monster_spawns_on", "#forge:ores");
|
||||
event.add("tfc:prospectable", "#forge:ores");
|
||||
|
||||
// Glassworking blocks
|
||||
event.add("tfc:glass_basin_blocks", "create:brass_block");
|
||||
event.add("tfc:glass_pouring_table", "create:brass_block");
|
||||
|
||||
|
|
@ -486,11 +562,21 @@ function registerTFCBlockTags(event) {
|
|||
event.add("tfc:forge_invisible_whitelist", "greate:stainless_steel_mechanical_pump");
|
||||
event.add("tfc:forge_invisible_whitelist", "greate:titanium_mechanical_pump");
|
||||
|
||||
//Allows any block with the word "brick" in its id to be used as bloomery and forge insulation.
|
||||
//Add blacklisted words to the const with | between.
|
||||
const brick_blacklist = "drying|slab|stairs|wall|additionalplacements";
|
||||
event.add("tfc:bloomery_insulation", `/^(?=.*brick)(?!.*(${brick_blacklist})).*/`);
|
||||
event.add("tfc:forge_insulation", `/^(?=.*brick)(?!.*(${brick_blacklist})).*/`);
|
||||
// Allows any block with the word "brick" in its id to be used as bloomery and forge insulation.
|
||||
// Optimized to compute matching blocks once instead of regex scanning per tag like before.
|
||||
// Blacklist removes blocks that are unwanted.
|
||||
const blacklist = ["drying", "slab", "stairs", "wall", "additionalplacements", "fence", "roof", "bridge"];
|
||||
const matches = [];
|
||||
ForgeRegistries.BLOCKS.getValues().forEach(block => {
|
||||
const id = String(ForgeRegistries.BLOCKS.getKey(block));
|
||||
if (id.includes("brick") && !blacklist.some(no_no_word => id.includes(no_no_word))) {
|
||||
matches.push(id);
|
||||
};
|
||||
});
|
||||
["tfc:bloomery_insulation", "tfc:forge_insulation"].forEach(tag => {
|
||||
matches.forEach(id => event.add(tag, id));
|
||||
});
|
||||
|
||||
event.add("tfc:forge_insulation", 'create:depot');
|
||||
|
||||
global.TFC_STONE_TYPES.forEach((stone) => {
|
||||
|
|
@ -751,7 +837,7 @@ function registerTFCFluidTags(event) {
|
|||
event.add("tfg:alcohols", "tfcagedalcohol:aged_corn_whiskey");
|
||||
event.add("tfg:alcohols", "tfcagedalcohol:aged_rye_whiskey");
|
||||
event.add("tfg:alcohols", "tfcagedalcohol:aged_mead");
|
||||
event.add("tfg:alcohols", "tfc_gurman:nalivka");
|
||||
event.add("tfg:alcohols", "tfc_gourmet:nalivka");
|
||||
|
||||
// Добавляем тег для скрытия в EMI
|
||||
event.add("c:hidden_from_recipe_viewers", "tfc:metal/bismuth");
|
||||
|
|
|
|||
|
|
@ -3,15 +3,19 @@
|
|||
|
||||
const registerTFCGroomingStationRecipes = (event) => {
|
||||
|
||||
global.TFC_EQUIPMENT_METALS.forEach(material => {
|
||||
event.recipes.gtceu.shaped(`tfcgroomer:${material}_grooming_station`, [
|
||||
global.TFC_EQUIPMENT_METALS.forEach(materialName => {
|
||||
const trough = `tfcgroomer:${materialName}_grooming_station`;
|
||||
|
||||
event.recipes.gtceu.shaped(trough, [
|
||||
'ABA',
|
||||
'AAA',
|
||||
'C C'
|
||||
], {
|
||||
A: `#forge:plates/${material}`,
|
||||
A: `#forge:plates/${materialName}`,
|
||||
B: '#forge:tools/hammers',
|
||||
C: 'tfc:wattle'
|
||||
}).addMaterialInfo().id(`tfcgroomer:${material}_grooming_station`)
|
||||
}).addMaterialInfo().id(`tfcgroomer:${materialName}_grooming_station`)
|
||||
|
||||
addMaterialRecyclingNoTagPrefix(event, trough, GTMaterials.get(materialName), 'grooming_station', 5);
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,84 +2,98 @@
|
|||
"use strict";
|
||||
|
||||
function registerTFCGurmanRecipes(event) {
|
||||
|
||||
let deprecated = Ingredient.of('#tfc_gourmet:deprecated_foods').itemIds.toArray();
|
||||
deprecated.forEach(oldID => {
|
||||
let newID = `${oldID}`.replace(/tfc_gurman:/g, 'tfc_gourmet:');
|
||||
event.shapeless(newID, oldID);
|
||||
})
|
||||
|
||||
//#region Food Oven Recipes
|
||||
|
||||
global.cookingRecipe(event, 'margarita_pizza', 'tfc_gurman:raw_margarita_pizza', 'tfc_gurman:margarita_pizza');
|
||||
|
||||
global.cookingRecipe(event, 'pepperoni_pizza', 'tfc_gurman:raw_pepperoni_pizza', 'tfc_gurman:pepperoni_pizza');
|
||||
|
||||
global.cookingRecipe(event, 'hawaiian_pizza', 'tfc_gurman:raw_hawaiian_pizza', 'tfc_gurman:hawaiian_pizza');
|
||||
|
||||
global.cookingRecipe(event, 'four_cheeses_pizza', 'tfc_gurman:raw_four_cheeses_pizza', 'tfc_gurman:four_cheeses_pizza');
|
||||
|
||||
global.cookingRecipe(event, 'four_meats_pizza', 'tfc_gurman:raw_four_meats_pizza', 'tfc_gurman:four_meats_pizza');
|
||||
|
||||
global.cookingRecipe(event, 'neapolitano_pizza', 'tfc_gurman:raw_neapolitano_pizza', 'tfc_gurman:neapolitano_pizza');
|
||||
|
||||
global.cookingRecipe(event, 'croissants', 'tfc_gurman:raw_croissants', 'tfc_gurman:croissants');
|
||||
|
||||
global.cookingRecipe(event, 'kiev_cutlets', 'tfc_gurman:raw_kiev_cutlets', 'tfc_gurman:kiev_cutlets');
|
||||
|
||||
global.cookingRecipe(event, 'quiche', 'tfc_gurman:raw_quiche', 'tfc_gurman:quiche');
|
||||
|
||||
global.cookingRecipe(event, 'tandoori_chicken', 'tfc_gurman:raw_tandoori_chicken', 'tfc_gurman:tandoori_chicken');
|
||||
|
||||
global.cookingRecipe(event, 'placinda', 'tfc_gurman:raw_placinda', 'tfc_gurman:placinda');
|
||||
|
||||
global.cookingRecipe(event, 'tonkatsu', 'tfc_gurman:raw_tonkatsu', 'tfc_gurman:tonkatsu');
|
||||
|
||||
global.cookingRecipe(event, 'takoyaki', 'tfc_gurman:raw_takoyaki', 'tfc_gurman:takoyaki');
|
||||
|
||||
global.cookingRecipe(event, 'bulgogi', 'tfc_gurman:raw_bulgogi', 'tfc_gurman:bulgogi');
|
||||
|
||||
global.cookingRecipe(event, 'bratwurst', 'tfc_gurman:raw_bratwurst', 'tfc_gurman:bratwurst');
|
||||
global.cookingRecipe(event, 'margarita_pizza', 'tfc_gourmet:raw_margarita_pizza', 'tfc_gourmet:margarita_pizza');
|
||||
|
||||
global.cookingRecipe(event, 'crepes', 'tfc_gurman:raw_crepes', 'tfc_gurman:crepes');
|
||||
global.cookingRecipe(event, 'pepperoni_pizza', 'tfc_gourmet:raw_pepperoni_pizza', 'tfc_gourmet:pepperoni_pizza');
|
||||
|
||||
global.cookingRecipe(event, 'chebureki', 'tfc_gurman:raw_chebureki', 'tfc_gurman:chebureki');
|
||||
global.cookingRecipe(event, 'hawaiian_pizza', 'tfc_gourmet:raw_hawaiian_pizza', 'tfc_gourmet:hawaiian_pizza');
|
||||
|
||||
global.cookingRecipe(event, 'four_cheeses_pizza', 'tfc_gourmet:raw_four_cheeses_pizza', 'tfc_gourmet:four_cheeses_pizza');
|
||||
|
||||
global.cookingRecipe(event, 'four_meats_pizza', 'tfc_gourmet:raw_four_meats_pizza', 'tfc_gourmet:four_meats_pizza');
|
||||
|
||||
global.cookingRecipe(event, 'neapolitano_pizza', 'tfc_gourmet:raw_neapolitano_pizza', 'tfc_gourmet:neapolitano_pizza');
|
||||
|
||||
global.cookingRecipe(event, 'croissants', 'tfc_gourmet:raw_croissants', 'tfc_gourmet:croissants');
|
||||
|
||||
global.cookingRecipe(event, 'kiev_cutlets', 'tfc_gourmet:raw_kiev_cutlets', 'tfc_gourmet:kiev_cutlets');
|
||||
|
||||
global.cookingRecipe(event, 'quiche', 'tfc_gourmet:raw_quiche', 'tfc_gourmet:quiche');
|
||||
|
||||
global.cookingRecipe(event, 'khachapuri', 'tfc_gurman:raw_khachapuri', 'tfc_gurman:khachapuri');
|
||||
global.cookingRecipe(event, 'tandoori_chicken', 'tfc_gourmet:raw_tandoori_chicken', 'tfc_gourmet:tandoori_chicken');
|
||||
|
||||
global.cookingRecipe(event, 'lavash_wrap', 'tfc_gurman:raw_lavash_wrap', 'tfc_gurman:lavash_wrap');
|
||||
global.cookingRecipe(event, 'placinda', 'tfc_gourmet:raw_placinda', 'tfc_gourmet:placinda');
|
||||
|
||||
global.cookingRecipe(event, 'syrniki', 'tfc_gurman:raw_syrniki', 'tfc_gurman:syrniki');
|
||||
global.cookingRecipe(event, 'tonkatsu', 'tfc_gourmet:raw_tonkatsu', 'tfc_gourmet:tonkatsu');
|
||||
|
||||
global.cookingRecipe(event, 'takoyaki', 'tfc_gourmet:raw_takoyaki', 'tfc_gourmet:takoyaki');
|
||||
|
||||
global.cookingRecipe(event, 'bulgogi', 'tfc_gourmet:raw_bulgogi', 'tfc_gourmet:bulgogi');
|
||||
|
||||
global.cookingRecipe(event, 'bratwurst', 'tfc_gourmet:raw_bratwurst', 'tfc_gourmet:bratwurst');
|
||||
|
||||
global.cookingRecipe(event, 'crepes', 'tfc_gourmet:raw_crepes', 'tfc_gourmet:crepes');
|
||||
|
||||
global.cookingRecipe(event, 'chebureki', 'tfc_gourmet:raw_chebureki', 'tfc_gourmet:chebureki');
|
||||
|
||||
global.cookingRecipe(event, 'khachapuri', 'tfc_gourmet:raw_khachapuri', 'tfc_gourmet:khachapuri');
|
||||
|
||||
global.cookingRecipe(event, 'lavash_wrap', 'tfc_gourmet:raw_lavash_wrap', 'tfc_gourmet:lavash_wrap');
|
||||
|
||||
global.cookingRecipe(event, 'syrniki', 'tfc_gourmet:raw_syrniki', 'tfc_gourmet:syrniki');
|
||||
|
||||
global.cookingRecipe(event, 'oladyi', 'tfc_gurman:raw_oladyi', 'tfc_gurman:oladyi');
|
||||
global.cookingRecipe(event, 'oladyi', 'tfc_gourmet:raw_oladyi', 'tfc_gourmet:oladyi');
|
||||
|
||||
// Falafel - from soybean (no raw version)
|
||||
global.cookingRecipe(event, 'falafel', 'tfc:food/soybean', 'tfc_gurman:falafel');
|
||||
global.cookingRecipe(event, 'falafel', 'tfc_gourmet:raw_falafel', 'tfc_gourmet:falafel');
|
||||
|
||||
global.cookingRecipe(event, 'pelmeni', 'tfc_gurman:raw_pelmeni', 'tfc_gurman:pelmeni', '#tfg:clean_water 500');
|
||||
global.cookingRecipe(event, 'pelmeni', 'tfc_gourmet:raw_pelmeni', 'tfc_gourmet:pelmeni', '#tfg:clean_water 500');
|
||||
|
||||
global.cookingRecipe(event, 'vareniki', 'tfc_gurman:raw_vareniki', 'tfc_gurman:vareniki', '#tfg:clean_water 500');
|
||||
global.cookingRecipe(event, 'vareniki', 'tfc_gourmet:raw_vareniki', 'tfc_gourmet:vareniki', '#tfg:clean_water 500');
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Food Processor Recipes
|
||||
|
||||
// Borscht
|
||||
global.processorRecipe(event, 'sliced_cabbage', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['tfc:food/cabbage'],
|
||||
itemOutputs: ['2x tfc_gourmet:sliced_cabbage'],
|
||||
circuit: 1,
|
||||
itemOutputProvider: TFC.isp.of('2x tfc_gourmet:sliced_cabbage').copyOldestFood()
|
||||
});
|
||||
|
||||
global.processorRecipe(event, 'borscht', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['tfc:food/beet', 'tfc:food/cabbage', 'tfc:food/carrot', 'tfc:food/onion', 'tfc:food/tomato', '3x #tfc:bowls'],
|
||||
itemInputs: ['tfc:food/beet', 'tfc_gourmet:sliced_cabbage', 'tfc:food/carrot', 'tfc:food/onion', '#tfc:foods/cooked_meats', '3x #tfc:bowls'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['3x tfc_gurman:borscht'],
|
||||
itemOutputs: ['3x tfc_gourmet:borscht'],
|
||||
circuit: 20,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gurman:borscht').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:borscht').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Schi
|
||||
global.processorRecipe(event, 'schi', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['2x tfc:food/cabbage', 'tfc:food/carrot', 'tfc:food/onion', 'tfc:food/tomato', '3x #tfc:bowls'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['3x tfc_gurman:schi'],
|
||||
itemOutputs: ['3x tfc_gourmet:schi'],
|
||||
circuit: 20,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gurman:schi').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:schi').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Coffee
|
||||
global.processorRecipe(event, 'coffee', 1000, GTValues.VHA[GTValues.LV], {
|
||||
itemInputs: ['2x firmalife:food/roasted_cocoa_beans'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
fluidOutputs: ['tfc_gurman:coffee 1000'],
|
||||
fluidOutputs: ['tfc_gourmet:coffee 1000'],
|
||||
circuit: 2
|
||||
});
|
||||
|
||||
|
|
@ -87,23 +101,23 @@ function registerTFCGurmanRecipes(event) {
|
|||
global.processorRecipe(event, 'cocoa', 1000, GTValues.VHA[GTValues.LV], {
|
||||
itemInputs: ['2x firmalife:food/cocoa_powder'],
|
||||
fluidInputs: ['#tfc:milks 1000'],
|
||||
fluidOutputs: ['tfc_gurman:cocoa 1000'],
|
||||
fluidOutputs: ['tfc_gourmet:cocoa 1000'],
|
||||
circuit: 1
|
||||
});
|
||||
|
||||
// Compote
|
||||
global.processorRecipe(event, 'compote', 1000, GTValues.VHA[GTValues.LV], {
|
||||
itemInputs: ['2x #tfc:foods/fruits'],
|
||||
itemInputs: ['2x #tfc_gourmet:compote_fruits'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
fluidOutputs: ['tfc_gurman:compote 1000'],
|
||||
circuit: 2
|
||||
fluidOutputs: ['tfc_gourmet:compote 1000'],
|
||||
circuit: 6
|
||||
});
|
||||
|
||||
// Lemonade
|
||||
global.processorRecipe(event, 'lemonade', 1500, GTValues.VHA[GTValues.LV], {
|
||||
itemInputs: ['2x tfc:food/lemon', '#tfc:sweetener'],
|
||||
itemInputs: ['2x tfc:food/lemon'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
fluidOutputs: ['tfc_gurman:lemonade 1000'],
|
||||
fluidOutputs: ['tfc_gourmet:lemonade 1000'],
|
||||
circuit: 2
|
||||
});
|
||||
|
||||
|
|
@ -111,39 +125,39 @@ function registerTFCGurmanRecipes(event) {
|
|||
global.processorRecipe(event, 'kvass', 2400, GTValues.VHA[GTValues.LV], {
|
||||
itemInputs: ['2x #tfc:foods/grains'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
fluidOutputs: ['tfc_gurman:kvass 1000'],
|
||||
fluidOutputs: ['tfc_gourmet:kvass 1000'],
|
||||
circuit: 2
|
||||
});
|
||||
|
||||
// Tea Mint
|
||||
global.processorRecipe(event, 'tea_mint', 200, GTValues.VHA[GTValues.LV], {
|
||||
itemInputs: ['2x tfc_gurman:dried_mint_leaves'],
|
||||
itemInputs: ['2x tfc_gourmet:dried_mint_leaves'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
fluidOutputs: ['tfc_gurman:tea_mint 1000'],
|
||||
fluidOutputs: ['tfc_gourmet:tea_mint 1000'],
|
||||
circuit: 2
|
||||
});
|
||||
|
||||
// Tea Chamomile
|
||||
global.processorRecipe(event, 'tea_chamomile', 200, GTValues.VHA[GTValues.LV], {
|
||||
itemInputs: ['2x tfc_gurman:dried_chamomile_leaves'],
|
||||
itemInputs: ['2x tfc_gourmet:dried_chamomile_leaves'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
fluidOutputs: ['tfc_gurman:tea_chamomile 1000'],
|
||||
fluidOutputs: ['tfc_gourmet:tea_chamomile 1000'],
|
||||
circuit: 2
|
||||
});
|
||||
|
||||
// Tea Rosehip
|
||||
global.processorRecipe(event, 'tea_rosehip', 200, GTValues.VHA[GTValues.LV], {
|
||||
itemInputs: ['2x tfc_gurman:dried_rosehip_leaves'],
|
||||
itemInputs: ['2x tfc_gourmet:dried_rosehip_leaves'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
fluidOutputs: ['tfc_gurman:tea_rosehip 1000'],
|
||||
fluidOutputs: ['tfc_gourmet:tea_rosehip 1000'],
|
||||
circuit: 2
|
||||
});
|
||||
|
||||
// Tea Nettle
|
||||
global.processorRecipe(event, 'tea_nettle', 200, GTValues.VHA[GTValues.LV], {
|
||||
itemInputs: ['2x tfc_gurman:dried_nettle_leaves'],
|
||||
itemInputs: ['2x tfc_gourmet:dried_nettle_leaves'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
fluidOutputs: ['tfc_gurman:tea_nettle 1000'],
|
||||
fluidOutputs: ['tfc_gourmet:tea_nettle 1000'],
|
||||
circuit: 2
|
||||
});
|
||||
|
||||
|
|
@ -151,198 +165,338 @@ function registerTFCGurmanRecipes(event) {
|
|||
global.processorRecipe(event, 'solyanka', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['#tfc:foods/meats', 'tfc:food/cabbage', 'tfc:food/onion', 'tfc:food/tomato', 'tfc:food/olive', '3x #tfc:bowls'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['3x tfc_gurman:solyanka'],
|
||||
itemOutputs: ['3x tfc_gourmet:solyanka'],
|
||||
circuit: 20,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gurman:solyanka').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:solyanka').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Okroshka
|
||||
global.processorRecipe(event, 'okroshka', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['tfc:food/cabbage', 'tfc:food/tomato', 'tfc:food/potato', 'tfc:food/onion', '#firmalife:foods/raw_eggs', '3x #tfc:bowls'],
|
||||
fluidInputs: ['tfc_gurman:kvass 1000'],
|
||||
itemOutputs: ['3x tfc_gurman:okroshka'],
|
||||
fluidInputs: ['tfc_gourmet:kvass 1000'],
|
||||
itemOutputs: ['3x tfc_gourmet:okroshka'],
|
||||
circuit: 20,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gurman:okroshka').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:okroshka').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Zama
|
||||
global.processorRecipe(event, 'zama', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['tfc:food/chicken', 'tfc:food/carrot', 'tfc:food/onion', 'tfc:powder/salt', 'tfc:food/garlic', '3x #tfc:bowls'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['3x tfc_gurman:zama'],
|
||||
itemOutputs: ['3x tfc_gourmet:zama'],
|
||||
circuit: 20,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gurman:zama').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:zama').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Curry
|
||||
global.processorRecipe(event, 'curry', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['#tfc:foods/cooked_meats', '#tfc:foods/vegetables', 'tfc:powder/salt', 'tfc:food/cooked_rice', '3x #tfc:bowls'],
|
||||
fluidInputs: ['#tfc:milks 1000'],
|
||||
itemOutputs: ['3x tfc_gurman:curry'],
|
||||
itemOutputs: ['3x tfc_gourmet:curry'],
|
||||
circuit: 16,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gurman:curry').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:curry').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Goulash
|
||||
global.processorRecipe(event, 'goulash', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['#tfc:foods/raw_meats', 'tfc:food/onion', 'tfc:food/potato', 'tfc:powder/salt', '3x #tfc:bowls'],
|
||||
fluidInputs: ['minecraft:water 100'],
|
||||
itemOutputs: ['3x tfc_gurman:goulash'],
|
||||
itemOutputs: ['3x tfc_gourmet:goulash'],
|
||||
circuit: 16,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gurman:goulash').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:goulash').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Pho
|
||||
global.processorRecipe(event, 'pho', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['firmalife:food/cooked_pasta', '#tfc:foods/cooked_meats', 'tfc:food/garlic', 'tfc:powder/salt', '3x #tfc:bowls'],
|
||||
fluidInputs: ['minecraft:water 100'],
|
||||
itemOutputs: ['3x tfc_gurman:pho'],
|
||||
itemOutputs: ['3x tfc_gourmet:pho'],
|
||||
circuit: 16,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gurman:pho').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:pho').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Bouillabaisse
|
||||
global.processorRecipe(event, 'bouillabaisse', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['#firmalife:foods/raw_fish', 'tfc:food/tomato', 'tfc:food/onion', 'tfc:food/garlic', 'tfc:powder/salt', '3x #tfc:bowls'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['3x tfc_gurman:bouillabaisse'],
|
||||
itemOutputs: ['3x tfc_gourmet:bouillabaisse'],
|
||||
circuit: 16,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gurman:bouillabaisse').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:bouillabaisse').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Ramen with Beef
|
||||
global.processorRecipe(event, 'ramen_beef', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['firmalife:food/raw_egg_noodles', '#firmalife:foods/raw_eggs', 'tfc:food/beef', 'tfc:food/onion', '2x #tfc:bowls'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['2x tfc_gurman:ramen_with_beef'],
|
||||
itemOutputs: ['2x tfc_gourmet:ramen_with_beef'],
|
||||
circuit: 21,
|
||||
itemOutputProvider: TFC.isp.of('2x tfc_gurman:ramen_with_beef').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
itemOutputProvider: TFC.isp.of('2x tfc_gourmet:ramen_with_beef').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Ramen with Camelidae
|
||||
global.processorRecipe(event, 'ramen_camelidae', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['firmalife:food/raw_egg_noodles', '#firmalife:foods/raw_eggs', 'tfc:food/camelidae', 'tfc:food/onion', '2x #tfc:bowls'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['2x tfc_gurman:ramen_with_camelidae'],
|
||||
itemOutputs: ['2x tfc_gourmet:ramen_with_camelidae'],
|
||||
circuit: 21,
|
||||
itemOutputProvider: TFC.isp.of('2x tfc_gurman:ramen_with_camelidae').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
itemOutputProvider: TFC.isp.of('2x tfc_gourmet:ramen_with_camelidae').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Ramen with Chevon
|
||||
global.processorRecipe(event, 'ramen_chevon', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['firmalife:food/raw_egg_noodles', '#firmalife:foods/raw_eggs', 'tfc:food/chevon', 'tfc:food/onion', '2x #tfc:bowls'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['2x tfc_gurman:ramen_with_chevon'],
|
||||
itemOutputs: ['2x tfc_gourmet:ramen_with_chevon'],
|
||||
circuit: 21,
|
||||
itemOutputProvider: TFC.isp.of('2x tfc_gurman:ramen_with_chevon').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
itemOutputProvider: TFC.isp.of('2x tfc_gourmet:ramen_with_chevon').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Ramen with Bacon
|
||||
global.processorRecipe(event, 'ramen_bacon', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['firmalife:food/raw_egg_noodles', '#firmalife:foods/raw_eggs', 'firmalife:food/bacon', 'tfc:food/onion', '2x #tfc:bowls'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['2x tfc_gurman:ramen_with_bacon'],
|
||||
itemOutputs: ['2x tfc_gourmet:ramen_with_bacon'],
|
||||
circuit: 21,
|
||||
itemOutputProvider: TFC.isp.of('2x tfc_gurman:ramen_with_bacon').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
itemOutputProvider: TFC.isp.of('2x tfc_gourmet:ramen_with_bacon').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Biryani
|
||||
global.processorRecipe(event, 'biryani', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['tfc:food/rice_grain', '#tfc:foods/meats', 'tfc:food/onion', 'tfc:food/carrot', 'tfc:food/tomato', '3x #tfc:bowls'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['3x tfc_gurman:biryani'],
|
||||
itemOutputs: ['3x tfc_gourmet:biryani'],
|
||||
circuit: 20,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gurman:biryani').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:biryani').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Fried Rice
|
||||
global.processorRecipe(event, 'fried_rice', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['tfc:food/cooked_rice', '#forge:eggs', '#tfc:foods/vegetables', 'tfc:powder/salt', '3x #tfc:bowls'],
|
||||
fluidInputs: ['minecraft:water 100'],
|
||||
itemOutputs: ['3x tfc_gurman:fried_rice'],
|
||||
itemOutputs: ['3x tfc_gourmet:fried_rice'],
|
||||
circuit: 16,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gurman:fried_rice').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:fried_rice').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Kimchi
|
||||
global.processorRecipe(event, 'kimchi', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['tfc:food/cabbage', 'tfc:food/carrot', 'tfc:food/onion', 'tfc:food/garlic', 'tfc:powder/salt', '3x #tfc:bowls'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['3x tfc_gurman:kimchi'],
|
||||
itemOutputs: ['3x tfc_gourmet:kimchi'],
|
||||
circuit: 20,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gurman:kimchi').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:kimchi').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Dolma
|
||||
global.processorRecipe(event, 'dolma', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['#tfc:foods/meats', 'tfc:food/rice_grain', 'tfc:powder/salt', '2x #tfc:bowls'],
|
||||
itemInputs: ['#tfc:foods/meats', 'tfc:food/rice_grain', 'tfc:powder/salt', 'firmalife:fruit_leaf', '2x #tfc:bowls'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['2x tfc_gurman:dolma'],
|
||||
itemOutputs: ['2x tfc_gourmet:dolma'],
|
||||
circuit: 16,
|
||||
itemOutputProvider: TFC.isp.of('2x tfc_gurman:dolma').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
itemOutputProvider: TFC.isp.of('2x tfc_gourmet:dolma').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Spaghetti Bolognese
|
||||
global.processorRecipe(event, 'spaghetti_bolognese', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['firmalife:food/cooked_pasta', '#tfc:foods/cooked_meats', 'tfc:food/tomato', 'tfc:food/onion', 'tfc:food/garlic', '3x #tfc:bowls'],
|
||||
fluidInputs: ['minecraft:water 500'],
|
||||
itemOutputs: ['3x tfc_gurman:spaghetti_bolognese'],
|
||||
itemOutputs: ['3x tfc_gourmet:spaghetti_bolognese'],
|
||||
circuit: 18,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gurman:spaghetti_bolognese').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:spaghetti_bolognese').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Pasta Carbonara
|
||||
global.processorRecipe(event, 'pasta_carbonara', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['firmalife:food/cooked_pasta', 'firmalife:food/bacon', '#firmalife:foods/raw_eggs', 'firmalife:food/shredded_cheese', 'tfc:powder/salt', '3x #tfc:bowls'],
|
||||
fluidInputs: ['minecraft:water 500'],
|
||||
itemOutputs: ['3x tfc_gurman:pasta_carbonara'],
|
||||
itemOutputs: ['3x tfc_gourmet:pasta_carbonara'],
|
||||
circuit: 18,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gurman:pasta_carbonara').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:pasta_carbonara').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Ratatouille
|
||||
global.processorRecipe(event, 'ratatouille', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['tfc:food/tomato', 'tfc:food/pumpkin_chunks', 'tfc:food/carrot', 'tfc:food/onion', 'tfc:food/garlic', '3x #tfc:bowls'],
|
||||
fluidInputs: ['minecraft:water 500'],
|
||||
itemOutputs: ['3x tfc_gurman:ratatouille'],
|
||||
itemOutputs: ['3x tfc_gourmet:ratatouille'],
|
||||
circuit: 18,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gurman:ratatouille').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:ratatouille').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Risotto
|
||||
global.processorRecipe(event, 'risotto', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['tfc:food/rice_grain', '#firmalife:foods/cheeses', '#tfc:foods/vegetables', '2x #tfc:bowls'],
|
||||
fluidInputs: ['minecraft:water 100'],
|
||||
itemOutputs: ['3x tfc_gurman:risotto'],
|
||||
itemOutputs: ['3x tfc_gourmet:risotto'],
|
||||
circuit: 18,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gurman:risotto').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:risotto').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Porridge
|
||||
global.processorRecipe(event, 'porridge', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['#tfc:foods/grains', 'tfc:powder/salt', '#tfc:bowls'],
|
||||
fluidInputs: ['minecraft:water 250'],
|
||||
itemOutputs: ['tfc_gurman:porridge'],
|
||||
itemOutputs: ['tfc_gourmet:porridge'],
|
||||
circuit: 18,
|
||||
itemOutputProvider: TFC.isp.of('tfc_gurman:porridge').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
itemOutputProvider: TFC.isp.of('tfc_gourmet:porridge').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Mamaliga
|
||||
global.processorRecipe(event, 'mamaliga', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['tfc:food/maize_grain', 'tfc:powder/salt', '#tfc:bowls'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['tfc_gurman:mamaliga'],
|
||||
itemOutputs: ['tfc_gourmet:mamaliga'],
|
||||
circuit: 16,
|
||||
itemOutputProvider: TFC.isp.of('tfc_gurman:mamaliga').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
itemOutputProvider: TFC.isp.of('tfc_gourmet:mamaliga').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Adjika
|
||||
global.processorRecipe(event, 'adjika', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['tfc:food/green_bell_pepper', 'tfc:food/red_bell_pepper', 'tfc:powder/salt', 'tfc:food/garlic', 'firmalife:plant/cilantro', '5x #tfc:bowls'],
|
||||
itemInputs: ['#tfc:food/bell_peppers', '#tfc:food/bell_peppers', 'tfc:powder/salt', 'tfc:food/garlic', "tfg:spice/cilantro_leaves", '5x #tfc:bowls'],
|
||||
fluidInputs: ['minecraft:water 500'],
|
||||
itemOutputs: ['5x tfc_gurman:adjika'],
|
||||
itemOutputs: ['5x tfc_gourmet:adjika'],
|
||||
circuit: 8,
|
||||
itemOutputProvider: TFC.isp.of('5x tfc_gurman:adjika').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
itemOutputProvider: TFC.isp.of('5x tfc_gourmet:adjika').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Onion soup with bread
|
||||
global.processorRecipe(event, 'onion_soup_with_bread', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['2x tfc:food/onion', '#firmalife:foods/flatbreads', '#firmalife:foods/cheeses', 'tfc:powder/salt', '#tfc:bowls'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['3x tfc_gourmet:fresh_onion_soup_bread'],
|
||||
circuit: 16,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:fresh_onion_soup_bread').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Lentil soup
|
||||
global.processorRecipe(event, 'lentil_soup', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['2x tfc:food/soybean', 'tfc:food/onion', 'tfc:food/garlic', 'tfc:powder/salt', '#tfc:bowls'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['3x tfc_gourmet:lent_soup'],
|
||||
circuit: 16,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:lent_soup').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Gazpacho
|
||||
global.processorRecipe(event, 'gazpacho', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['2x tfc:food/tomato', '#tfc:food/bell_peppers', '#firmalife:foods/flatbreads', 'tfc:food/garlic', '#tfc:bowls'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['3x tfc_gourmet:gazpacho'],
|
||||
circuit: 16,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:gazpacho').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Kharcho
|
||||
global.processorRecipe(event, 'kharcho', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['tfc_gourmet:plant_mix', 'tfc:food/garlic', 'tfc:food/onion', 'tfc:food/rice_grain', 'tfc:food/cooked_beef'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['3x tfc_gourmet:kharcho'],
|
||||
circuit: 16,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:kharcho').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Kholodnik
|
||||
global.processorRecipe(event, 'kholodnik', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['tfc:food/potato', '2x tfc:food/beet', '#forge:eggs', 'tfc:powder/salt'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['3x tfc_gourmet:kholodnik'],
|
||||
circuit: 16,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:kholodnik').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Shurpa
|
||||
global.processorRecipe(event, 'shurpa', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['#tfc:food/bell_peppers', 'tfc:food/onion', 'tfc:food/potato', 'tfc:food/cooked_mutton', 'tfc:powder/salt'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['3x tfc_gourmet:shurpa'],
|
||||
circuit: 16,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:shurpa').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
global.processorRecipe(event, 'shurpa2', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['#tfc:food/bell_peppers', 'tfc:food/onion', 'tfc:food/potato', 'tfc:food/cooked_beef', 'tfc:powder/salt'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['3x tfc_gourmet:shurpa'],
|
||||
circuit: 16,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:shurpa').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Fish tomato soup
|
||||
global.processorRecipe(event, 'fish_tomato_soup', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['#firmalife:foods/raw_fish', 'tfc:food/tomato', 'tfc:food/onion', 'tfc:food/garlic', 'tfc:powder/salt'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['3x tfc_gourmet:fish_soup_tomato'],
|
||||
circuit: 20,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:fish_soup_tomato').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Pea soup
|
||||
global.processorRecipe(event, 'pea_soup', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['2x tfc:food/green_bean', 'tfc:food/onion', '#tfc:foods/cooked_meats', 'tfc:powder/salt'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['3x tfc_gourmet:pea_soup'],
|
||||
circuit: 16,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:pea_soup').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Minestrone
|
||||
global.processorRecipe(event, 'minestrone', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['tfc:food/rice_grain', 'tfc:food/carrot', 'tfc:food/onion', 'tfc:food/garlic', '#tfc:foods/cooked_meats'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['3x tfc_gourmet:minestrone'],
|
||||
circuit: 20,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:minestrone').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
global.processorRecipe(event, 'minestrone2', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['firmalife:food/raw_egg_noodles', 'tfc:food/carrot', 'tfc:food/onion', 'tfc:food/garlic', '#tfc:foods/cooked_meats'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['3x tfc_gourmet:minestrone'],
|
||||
circuit: 20,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:minestrone').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Fish soup
|
||||
global.processorRecipe(event, 'fish_soup', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['#firmalife:foods/raw_fish', 'tfc:food/onion', 'tfc:food/potato', 'tfc:powder/salt'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['3x tfc_gourmet:fish_soup'],
|
||||
circuit: 20,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:fish_soup').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// French onion soup with toast
|
||||
global.processorRecipe(event, 'french_onion_soup', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['2x tfc:food/onion', '#firmalife:foods/slices', '#firmalife:foods/cheeses', 'tfc:powder/salt'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['3x tfc_gourmet:fresh_onion_soup'],
|
||||
circuit: 20,
|
||||
itemOutputProvider: TFC.isp.of('3x tfc_gourmet:fresh_onion_soup').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// Raw Croissants
|
||||
global.processorRecipe(event, 'raw_croissants', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['#tfc:foods/flour', 'firmalife:food/butter', '#forge:eggs'],
|
||||
fluidInputs: ['minecraft:water 1000'],
|
||||
itemOutputs: ['2x tfc_gourmet:raw_croissants'],
|
||||
circuit: 20,
|
||||
itemOutputProvider: TFC.isp.of('2x tfc_gourmet:raw_croissants').copyOldestFood()
|
||||
});
|
||||
|
||||
// Raw crepes
|
||||
global.processorRecipe(event, 'raw_crepes', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['#tfc:foods/flour', 'firmalife:food/butter', '#forge:eggs'],
|
||||
fluidInputs: ['#tfc:milks 500'],
|
||||
itemOutputs: ['2x tfc_gourmet:raw_crepes'],
|
||||
circuit: 20,
|
||||
itemOutputProvider: TFC.isp.of('2x tfc_gourmet:raw_crepes').copyOldestFood()
|
||||
});
|
||||
|
||||
// Oladyi
|
||||
global.processorRecipe(event, 'raw_oladyi', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['2x #tfc:foods/dough'],
|
||||
fluidInputs: ['#tfc:milks 500'],
|
||||
itemOutputs: ['2x tfc_gourmet:raw_oladyi'],
|
||||
circuit: 20,
|
||||
itemOutputProvider: TFC.isp.of('2x tfc_gourmet:raw_oladyi').copyOldestFood()
|
||||
});
|
||||
|
||||
//#endregion
|
||||
|
|
@ -351,54 +505,93 @@ function registerTFCGurmanRecipes(event) {
|
|||
global.processorRecipeText(event, 'dried_mint', 200, GTValues.VA[GTValues.LV], "tfg.food_recipe.drying", {
|
||||
itemInputs: ["tfc:plant/foxglove"],
|
||||
fluidInputs: ['gtceu:nitrogen 100'],
|
||||
itemOutputs: ["tfc_gurman:dried_mint_leaves"],
|
||||
itemOutputs: ["tfc_gourmet:dried_mint_leaves"],
|
||||
circuit: 6
|
||||
});
|
||||
|
||||
global.processorRecipeText(event, 'dried_chamomile', 200, GTValues.VA[GTValues.LV], "tfg.food_recipe.drying", {
|
||||
itemInputs: ["tfc:plant/lilac"],
|
||||
fluidInputs: ['gtceu:nitrogen 100'],
|
||||
itemOutputs: ["tfc_gurman:dried_chamomile_leaves"],
|
||||
itemOutputs: ["tfc_gourmet:dried_chamomile_leaves"],
|
||||
circuit: 6
|
||||
});
|
||||
|
||||
global.processorRecipeText(event, 'dried_rosehip', 200, GTValues.VA[GTValues.LV], "tfg.food_recipe.drying", {
|
||||
itemInputs: ["tfc:plant/rose"],
|
||||
fluidInputs: ['gtceu:nitrogen 100'],
|
||||
itemOutputs: ["tfc_gurman:dried_rosehip_leaves"],
|
||||
itemOutputs: ["tfc_gourmet:dried_rosehip_leaves"],
|
||||
circuit: 6
|
||||
});
|
||||
|
||||
global.processorRecipeText(event, 'dried_nettle', 200, GTValues.VA[GTValues.LV], "tfg.food_recipe.drying", {
|
||||
itemInputs: ["tfc:plant/trillium"],
|
||||
fluidInputs: ['gtceu:nitrogen 100'],
|
||||
itemOutputs: ["tfc_gurman:dried_nettle_leaves"],
|
||||
itemOutputs: ["tfc_gourmet:dried_nettle_leaves"],
|
||||
circuit: 6
|
||||
});
|
||||
// #endregion Drying
|
||||
|
||||
// #region Crafting table foods
|
||||
|
||||
// TODO: unfinished
|
||||
global.processorRecipe(event, 'margarita_pizza', 300, GTValues.VA[GTValues.LV], {
|
||||
itemInputs: ['firmalife:food/pizza_dough', 'firmalife:food/shredded_cheese', 'tfc:food/tomato', 'tfc:food/red_bell_pepper', 'tfc_gurman:plant_mix', 'firmalife:food/tomato_sauce'],
|
||||
itemOutputs: ['tfc_gurman:raw_margarita_pizza'],
|
||||
circuit: 4,
|
||||
itemOutputProvider: TFC.isp.of('tfc_gurman:raw_margarita_pizza').simpleModifier('tfg:force_add_bowl').copyOldestFood()
|
||||
});
|
||||
|
||||
// #endregion
|
||||
|
||||
// #region Replacements
|
||||
|
||||
event.replaceInput({ id: "tfc_gurman:crafting/tiramisu" }, "minecraft:sugar", "#tfg:sugars");
|
||||
event.replaceInput({ id: "tfc_gourmet:crafting/tiramisu" }, "minecraft:sugar", "#tfg:sugars");
|
||||
|
||||
event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of('4x tfc_gurman:raw_takoyaki').copyOldestFood(), [
|
||||
event.shapeless('2x tfc_gourmet:plant_mix', [
|
||||
"2x firmalife:spice/basil_leaves",
|
||||
"tfg:spice/oregano_leaves",
|
||||
"tfg:spice/cilantro_leaves",
|
||||
]).id("tfc_gourmet:crafting/plant_mix")
|
||||
|
||||
event.replaceInput({ id: "tfc_gourmet:pot/adjika_bowl" }, "firmalife:plant/cilantro", "tfg:spice/cilantro_leaves");
|
||||
|
||||
event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of('4x tfc_gourmet:raw_takoyaki').copyOldestFood(), [
|
||||
TFC.ingredient.notRotten('tfg:food/raw_crawlermari'),
|
||||
TFC.ingredient.notRotten('#tfc:foods/flour'),
|
||||
TFC.ingredient.notRotten('#forge:eggs'),
|
||||
'tfc:powder/salt'
|
||||
]).id('tfg:shapeless/takoyaki_from_crawlermari');
|
||||
|
||||
event.remove({ id: "tfc_gourmet:crafting/raw_pelmeni" });
|
||||
event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`2x tfc_gourmet:raw_pelmeni`).copyFood(), [
|
||||
TFC.ingredient.notRotten(`#tfc:foods/dough`),
|
||||
TFC.ingredient.notRotten(`#tfc:foods/raw_meats`),
|
||||
TFC.ingredient.notRotten(`#tfc:foods/dough`)
|
||||
]).id(`tfg:shapeless/raw_pelmeni`)
|
||||
|
||||
event.remove({ id: "tfc_gourmet:crafting/raw_vareniki" });
|
||||
event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`tfc_gourmet:raw_vareniki`).copyFood(), [
|
||||
TFC.ingredient.notRotten(`#tfc:foods/dough`),
|
||||
TFC.ingredient.notRotten(`#tfc:foods/vegetables`)
|
||||
]).id(`tfg:shapeless/raw_vareniki`)
|
||||
|
||||
event.remove({ id: "tfc_gourmet:crafting/raw_oladyi" });
|
||||
event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`2x tfc_gourmet:raw_oladyi`).copyFood(), [
|
||||
TFC.ingredient.notRotten(`#tfc:foods/dough`),
|
||||
TFC.ingredient.notRotten(`#tfc:foods/dough`),
|
||||
TFC.ingredient.fluid(TFC.fluidStackIngredient('#tfc:milks', 500))
|
||||
]).id(`tfg:shapeless/raw_oladyi`)
|
||||
|
||||
event.remove({ id: "tfc_gourmet:crafting/raw_syrniki" });
|
||||
event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`2x tfc_gourmet:raw_syrniki`).copyFood(), [
|
||||
TFC.ingredient.notRotten(`#tfg:foods/cheeses`),
|
||||
TFC.ingredient.notRotten(`#forge:eggs`),
|
||||
TFC.ingredient.notRotten(`#tfc:foods/flour`)
|
||||
]).id(`tfg:shapeless/raw_syrniki`)
|
||||
|
||||
event.remove({ id: "tfc_gourmet:crafting/raw_croissants" });
|
||||
event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`2x tfc_gourmet:raw_croissants`).copyFood(), [
|
||||
TFC.ingredient.notRotten(`#tfc:foods/flour`),
|
||||
TFC.ingredient.notRotten(`firmalife:food/butter`),
|
||||
TFC.ingredient.notRotten(`#forge:eggs`),
|
||||
TFC.ingredient.fluid(TFC.fluidStackIngredient('minecraft:water', 1000))
|
||||
]).id(`tfg:shapeless/raw_croissants`)
|
||||
|
||||
event.remove({ id: "tfc_gourmet:crafting/raw_crepes" });
|
||||
event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`2x tfc_gourmet:raw_crepes`).copyFood(), [
|
||||
TFC.ingredient.notRotten(`#tfc:foods/flour`),
|
||||
TFC.ingredient.notRotten(`firmalife:food/butter`),
|
||||
TFC.ingredient.notRotten(`#forge:eggs`),
|
||||
TFC.ingredient.fluid(TFC.fluidStackIngredient('#tfc:milks', 500))
|
||||
]).id(`tfg:shapeless/raw_crepes`)
|
||||
|
||||
// #endregion
|
||||
}
|
||||
|
|
|
|||
10
kubejs/server_scripts/tfc_scraping/recipes.js
Normal file
10
kubejs/server_scripts/tfc_scraping/recipes.js
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
// priority: 0
|
||||
"use strict";
|
||||
|
||||
function registerTFCScrapingKnivesRecipes(event) {
|
||||
event.remove({ mod: 'tfcscraping', type: 'tfc:anvil' });
|
||||
event.remove({ mod: 'tfcscraping', type: 'tfc:heating', not: [
|
||||
{ id: "tfcscraping:heating/scraping_knife_blade_mold" }
|
||||
]});
|
||||
event.remove({ mod: 'tfcscraping', type: 'tfc:casting' });
|
||||
}
|
||||
|
|
@ -4,28 +4,24 @@
|
|||
*
|
||||
* @param {Internal.RecipesEventJS} event
|
||||
*/
|
||||
const registerTFCBetterBFRecipes = (event) => {
|
||||
event.remove("tfcbetterbf:heating/metal/insulation")
|
||||
|
||||
event.recipes.tfc.heating('tfcbetterbf:insulation', 1535)
|
||||
.resultFluid(Fluid.of('gtceu:iron', 432))
|
||||
.id(`tfcbetterbf:heating/insulation`)
|
||||
const registerTFCBetterBFRecipes = (event) => {
|
||||
event.remove("tfcbetterbf:heating/metal/insulation")
|
||||
|
||||
event.recipes.tfc.heating('tfcbetterbf:insulated_fire_bricks', 1535)
|
||||
.resultFluid(Fluid.of('gtceu:iron', 432))
|
||||
.id(`tfcbetterbf:heating/insulated_fire_bricks`)
|
||||
event.recipes.tfc.heating('tfcbetterbf:insulation', 1535)
|
||||
.resultFluid(Fluid.of('gtceu:iron', 432))
|
||||
.id(`tfcbetterbf:heating/insulation`)
|
||||
|
||||
event.recipes.gtceu.macerator('tfcbetterbf:insulated_fire_bricks')
|
||||
TFGHelpers.registerMaterialInfo('tfcbetterbf:insulation', [GTMaterials.WroughtIron, 3])
|
||||
|
||||
event.recipes.tfc.heating('tfcbetterbf:insulated_fire_bricks', 1535)
|
||||
.resultFluid(Fluid.of('gtceu:iron', 432))
|
||||
.id(`tfcbetterbf:heating/insulated_fire_bricks`)
|
||||
|
||||
TFGHelpers.registerMaterialInfo('tfcbetterbf:insulated_fire_bricks', [GTMaterials.get('tfg:refractory_clay'), 5, GTMaterials.WroughtIron, 3])
|
||||
|
||||
event.recipes.gtceu.packer('tfcbetterbf:insulated_fire_bricks')
|
||||
.itemInputs('tfcbetterbf:insulated_fire_bricks')
|
||||
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.WroughtIron, 3))
|
||||
.duration(GTMaterials.WroughtIron.getMass() * 3)
|
||||
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.recipes.gtceu.arc_furnace('tfcbetterbf:insulated_fire_bricks')
|
||||
.itemInputs('tfcbetterbf:insulated_fire_bricks')
|
||||
.itemOutputs(ChemicalHelper.get(TagPrefix.ingot, GTMaterials.WroughtIron, 3))
|
||||
.duration(GTMaterials.Steel.getMass() * 3)
|
||||
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
.itemOutputs('tfc:fire_bricks', '3x tfcbetterbf:insulation')
|
||||
.duration(20)
|
||||
.EUt(2)
|
||||
}
|
||||
|
|
@ -2,8 +2,4 @@
|
|||
"use strict";
|
||||
|
||||
function registerTFCLunchBoxRecipes(event) {
|
||||
// Убираем оригинальные рецепты капсул
|
||||
// Remove original capsule recipes
|
||||
event.remove({ id: 'tfclunchbox:universal_capsule' })
|
||||
event.remove({ id: 'tfclunchbox:fill_capsule_with_ice' })
|
||||
}
|
||||
|
|
@ -3,14 +3,5 @@
|
|||
|
||||
function registerTFCLunchboxItemTags(event) {
|
||||
|
||||
const DISABLED_ITEMS = [
|
||||
'tfclunchbox:universal_capsule',
|
||||
]
|
||||
|
||||
DISABLED_ITEMS.forEach(item => {
|
||||
event.removeAllTagsFrom(item)
|
||||
event.add('c:hidden_from_recipe_viewers', item)
|
||||
})
|
||||
|
||||
event.add('tfclunchbox:ice', 'tfg:dry_ice')
|
||||
}
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
// priority: 0
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {Internal.RecipesEventJS} event
|
||||
*/
|
||||
const registerTFCScrapingRecipes = (event) => {
|
||||
|
||||
event.remove({ input: 'tfcscraping:ceramic/scraping_knife_blade_mold'})
|
||||
event.recipes.tfc.casting('tfcscraping:metal/scraping_knife_blade/bismuth_bronze', 'tfcscraping:ceramic/scraping_knife_blade_mold', TFC.fluidStackIngredient('gtceu:bismuth_bronze', 288), 0.1)
|
||||
event.recipes.tfc.casting('tfcscraping:metal/scraping_knife_blade/black_bronze', 'tfcscraping:ceramic/scraping_knife_blade_mold', TFC.fluidStackIngredient('gtceu:black_bronze', 288), 0.1)
|
||||
event.recipes.tfc.casting('tfcscraping:metal/scraping_knife_blade/bronze', 'tfcscraping:ceramic/scraping_knife_blade_mold', TFC.fluidStackIngredient('gtceu:bronze', 288), 0.1)
|
||||
event.recipes.tfc.casting('tfcscraping:metal/scraping_knife_blade/copper', 'tfcscraping:ceramic/scraping_knife_blade_mold', TFC.fluidStackIngredient('gtceu:copper', 288), 0.1)
|
||||
|
||||
}
|
||||
15
kubejs/server_scripts/tfg/aquaponics/data.aquaponics.js
Normal file
15
kubejs/server_scripts/tfg/aquaponics/data.aquaponics.js
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
"use strict";
|
||||
|
||||
/** @param {Internal.TFCDataEventJS} event */
|
||||
function registerTFGAquaponicsData(event) {
|
||||
|
||||
event.fuel('tfg:flora_pellets', 1415, 1900, 0.95);
|
||||
|
||||
event.foodItem('tfg:fish_roe', (food) => {
|
||||
food.hunger(4);
|
||||
food.decayModifier(2);
|
||||
food.protein(2.5);
|
||||
food.saturation(2);
|
||||
});
|
||||
|
||||
}
|
||||
594
kubejs/server_scripts/tfg/aquaponics/recipes.greenhouse.js
Normal file
594
kubejs/server_scripts/tfg/aquaponics/recipes.greenhouse.js
Normal file
|
|
@ -0,0 +1,594 @@
|
|||
// priority: 1
|
||||
"use strict";
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//#region Balancing Values
|
||||
|
||||
/** Base duration of recipes in ticks. */
|
||||
const greenhouse_base_duration = 10 * 60 * 20;
|
||||
/** Duration multiplier for fertilized recipes. */
|
||||
const greenhouse_duration_multiplier_fertilized = 0.75;
|
||||
/** Duration multiplier for aquaponic recipes. */
|
||||
const greenhouse_duration_multiplier_aquaponics = 0.5;
|
||||
|
||||
/** Hydroponic facility chance multiplier. */
|
||||
const hydroponics_facility_chance_multiplier = 1.25;
|
||||
/** Base percent chance for chanced outputs (out of 100). */
|
||||
const greenhouse_chanced_output_base = 7.5;
|
||||
/** Fertilized percent chance for chanced outputs (out of 100). */
|
||||
const greenhouse_chanced_output_fertilized = 40;
|
||||
/** Aquaponics percent chance for chanced outputs (out of 100). */
|
||||
const greenhouse_chanced_output_aquaponics = 80;
|
||||
|
||||
/**
|
||||
* Dimension setting index provides recipe modifications based on the dimension assigned.
|
||||
*
|
||||
* @typedef {Object} DimensionIndex
|
||||
* @property {Internal.Dimension} id - Dimension ID.
|
||||
* @property {Internal.FluidStackIngredient_} fluid - Fluid ID or tag.
|
||||
* @property {number} fluid_chance - Chance for fluid consumption per tick out of 100.
|
||||
* @property {Internal.ItemStack|null} fertilizer - Fertilizer item ID or null if fertilizer is not needed on that dimension.
|
||||
* @property {GTValues.EUt} eut - EUt value for that dimension.
|
||||
* @property {boolean|null} oxygenated - Whether the recipe requires an oxygenated environment.
|
||||
*/
|
||||
|
||||
/** @param {...DimensionIndex[]} - Dimension settings array */
|
||||
const greenhouse_dimension_index = [
|
||||
// Overworld settings are also used as the default when no dimension is specified.
|
||||
{id: 'minecraft:overworld', fluid: '#tfg:clean_water', fluid_tier2: 'tfg:nitrate_rich_water', fluid_chance: 10, fertilizer: 'gtceu:fertilizer', eut: GTValues.VHA[GTValues.LV], oxygenated: true},
|
||||
{id: 'minecraft:the_nether', fluid: '#tfg:clean_water', fluid_tier2: 'tfg:nitrate_rich_water', fluid_chance: 10, fertilizer: 'gtceu:fertilizer', eut: GTValues.VHA[GTValues.LV], oxygenated: true},
|
||||
{id: 'ad_astra:moon', fluid: 'gtceu:helium_3', fluid_tier2: null, fluid_chance: 2, fertilizer: null, eut: GTValues.VHA[GTValues.MV], oxygenated: null},
|
||||
{id: 'ad_astra:mars', fluid: 'tfg:semiheavy_ammoniacal_water', fluid_tier2: 'tfg:nitrate_rich_semiheavy_ammoniacal_water', fluid_chance: 10, fertilizer: 'gtceu:fertilizer', eut: GTValues.VHA[GTValues.HV], oxygenated: null}
|
||||
];
|
||||
|
||||
//#endregion
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//#region Utility Script
|
||||
|
||||
/**
|
||||
* Function for generating greenhouse recipes.
|
||||
*
|
||||
* @param {*} event
|
||||
* @param {Internal.Dimension|null} dimension -Dimension ID
|
||||
* @param {Internal.ItemStack} input -Input Item (seeds, saplings, etc.)
|
||||
* @param {Internal.ItemStack|Internal.ItemStack[]} output -Output Items. If array, first item is guaranteed while rest use chanced output. Last item in array is used for the rest of the chance outputs.
|
||||
* @param {number|null} chance_multiplier -Multiplies output chances by this value. Defaults to 1.
|
||||
* @param {number|null} circuit - Circuit number. 1-32. Or null.
|
||||
*/
|
||||
function generateGreenHouseRecipe(event, dimension, input, output, chance_multiplier, circuit) {
|
||||
|
||||
// Resolve dimension based modifier defaults by comparing to the `greenhouse_dimension_index` array.
|
||||
|
||||
/** @type {DimensionIndex|null} */
|
||||
const dimMods = dimension ? greenhouse_dimension_index.find(d => d.id === dimension) : null;
|
||||
|
||||
/** @type {Internal.FluidStackIngredient_} - Resolved fluid ID or tag. Defaults to `#tfg:clean_water` */
|
||||
const resolvedFluid = dimMods?.fluid ?? '#tfg:clean_water';
|
||||
|
||||
/** @type {Internal.FluidStackIngredient_} - Resolved aquaponic loop fluid ID or tag. Defaults to `tfg:nitrate_rich_water` */
|
||||
const resolvedFluidTier2 = dimMods?.fluid_tier2 ?? 'tfg:nitrate_rich_water';
|
||||
|
||||
/** @type {Internal.ItemStack|null} - Resolved fertilizer item ID. Defaults to `gtceu:fertilizer` */
|
||||
const resolvedFertilizer = dimMods ? dimMods.fertilizer : 'gtceu:fertilizer';
|
||||
|
||||
/** @type {boolean} - Whether fertilization is possible for this dimension. */
|
||||
const canFertilize = resolvedFertilizer !== null;
|
||||
|
||||
/** @type {GTValues.EUt} - Resolved EUt value. Defaults to LV */
|
||||
const resolvedEUt = dimMods ? dimMods.eut : GTValues.VHA[GTValues.LV];
|
||||
|
||||
/** @type {number} - Resolved fluid chance multiplied by 100. Defaults to 1000. */
|
||||
const resolvedChance = dimMods ? (dimMods.fluid_chance * 100) : 1000;
|
||||
|
||||
/** @type {boolean|null} - Whether the recipe requires an oxygenated environment. Defaults to true. */
|
||||
const requiresOxygen = dimMods ? dimMods.oxygenated : true;
|
||||
|
||||
/** @type {string} - Circuit number for the recipe id. Defaults to an empty string if not provided. */
|
||||
const idCircuit = (circuit === null || circuit === undefined) ? "" : `/${circuit}`;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/** Collect errors. */
|
||||
|
||||
const errors = [];
|
||||
|
||||
if (input === undefined || input === null || Array.isArray(input) || (typeof input === 'string' && input.trim() === '')) {
|
||||
errors.push(`input is invalid: ${JSON.stringify(input)}`);
|
||||
};
|
||||
|
||||
if (output !== undefined && !Array.isArray(output)) {
|
||||
output = [output];
|
||||
};
|
||||
|
||||
if (output === undefined || output === null || output.length === 0 || output.length > 4) {
|
||||
errors.push(`output is invalid: ${JSON.stringify(output)}`);
|
||||
} else {
|
||||
output.forEach((o, idx) => {
|
||||
if (o === undefined || o === null) {
|
||||
errors.push(`output[${idx}] is null or undefined`);
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
// If there are any errors, log them all and throw once.
|
||||
if (errors.length > 0) {
|
||||
console.error(`Greenhouse recipe error details:\n input: ${JSON.stringify(input)}\n output: ${JSON.stringify(output)}\n dimension: ${JSON.stringify(dimension)}\n circuit: ${JSON.stringify(circuit)}\n chance_multiplier: ${JSON.stringify(chance_multiplier)}`);
|
||||
throw new TypeError(`Greenhouse recipe errors for recipe ID ${`tfg:greenhouse/${linuxUnfucker(input)}${idCircuit}`}\n - ${errors.join("\n - ")}`);
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Normalize outputs to an array of 4 items.
|
||||
|
||||
// index 0 is guaranteed output, indexes 1-3 are chanced outputs.
|
||||
// Last item in output array is used for any missing chanced outputs.
|
||||
let outputs_array = [];
|
||||
const guaranteed_output = output[0];
|
||||
const last_output = output[output.length - 1];
|
||||
for (let i = 0; i < 4; i++) {
|
||||
if (i === 0) outputs_array[i] = guaranteed_output;
|
||||
else outputs_array[i] = (output[i] !== undefined) ? output[i] : last_output;
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Math Section :D
|
||||
|
||||
/**
|
||||
* Function to keep calculated duration values above 0 (minimum 1 tick).
|
||||
*
|
||||
* @param {number} value - Number to validate.
|
||||
* @returns {number} - Validated Number.
|
||||
*/
|
||||
function validate_duration(value) {
|
||||
return Math.max(1, Math.round(value));
|
||||
};
|
||||
|
||||
const fertilizer_duration = validate_duration(greenhouse_base_duration * greenhouse_duration_multiplier_fertilized);
|
||||
const aquaponic_duration = validate_duration(greenhouse_base_duration * greenhouse_duration_multiplier_aquaponics);
|
||||
|
||||
/**
|
||||
* Function to keep percent values within valid range (1 to 10000).
|
||||
*
|
||||
* @param {number} value - Number to validate.
|
||||
* @returns {number} - Validated Number.
|
||||
*/
|
||||
function validate_percent(value) {
|
||||
return Math.min(10000, Math.max(1, Math.round(value)));
|
||||
};
|
||||
|
||||
chance_multiplier = chance_multiplier ?? 1;
|
||||
chance_multiplier = chance_multiplier * 100;
|
||||
const base_chance = validate_percent(greenhouse_chanced_output_base * chance_multiplier);
|
||||
const fertilizer_chance = validate_percent(greenhouse_chanced_output_fertilized * chance_multiplier);
|
||||
const aquaponic_chance = validate_percent(greenhouse_chanced_output_aquaponics * chance_multiplier);
|
||||
const hydroponics_base_chance = validate_percent(greenhouse_chanced_output_base * chance_multiplier);
|
||||
const hydroponics_fertilizer_chance = validate_percent(greenhouse_chanced_output_fertilized * chance_multiplier * hydroponics_facility_chance_multiplier);
|
||||
const hydroponics_aquaponic_chance = validate_percent(greenhouse_chanced_output_aquaponics * chance_multiplier * hydroponics_facility_chance_multiplier);
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Recipe Scripts.
|
||||
|
||||
if (canFertilize) {
|
||||
|
||||
//======================== Greenhouse Recipes ========================
|
||||
|
||||
// Base recipe.
|
||||
let a = event.recipes.gtceu.greenhouse(`tfg:${linuxUnfucker(input)}${idCircuit}`)
|
||||
.notConsumable(input)
|
||||
.itemOutputs(outputs_array[0])
|
||||
.perTick(true)
|
||||
.chancedFluidInput(`${resolvedFluid} 1`, resolvedChance, 0)
|
||||
.perTick(false)
|
||||
.duration(greenhouse_base_duration)
|
||||
.EUt(resolvedEUt)
|
||||
if (dimension !== null) {
|
||||
a.dimension(dimension)
|
||||
};
|
||||
if (requiresOxygen !== null) {
|
||||
TFGRecipeSchemaBindings.isOxygenated(a, requiresOxygen)
|
||||
};
|
||||
if (outputs_array[1] !== null) {
|
||||
a.chancedOutput(outputs_array[1], base_chance, 0)
|
||||
a.chancedOutput(outputs_array[2], base_chance, 0)
|
||||
a.chancedOutput(outputs_array[3], base_chance, 0)
|
||||
};
|
||||
if (circuit !== null) {
|
||||
a.circuit(circuit)
|
||||
};
|
||||
|
||||
// Fertilized Recipe.
|
||||
let b = event.recipes.gtceu.greenhouse(`tfg:${linuxUnfucker(input)}_fertilized${idCircuit}`)
|
||||
.notConsumable(input)
|
||||
.itemOutputs(outputs_array[0])
|
||||
.perTick(true)
|
||||
.chancedFluidInput(`${resolvedFluid} 1`, resolvedChance, 0)
|
||||
.perTick(false)
|
||||
.duration(fertilizer_duration)
|
||||
.EUt(resolvedEUt)
|
||||
if (dimension !== null) {
|
||||
b.dimension(dimension)
|
||||
};
|
||||
if (requiresOxygen !== null) {
|
||||
TFGRecipeSchemaBindings.isOxygenated(b, requiresOxygen)
|
||||
};
|
||||
if (outputs_array[1] !== null) {
|
||||
b.chancedOutput(outputs_array[1], fertilizer_chance, 0)
|
||||
b.chancedOutput(outputs_array[2], fertilizer_chance, 0)
|
||||
b.chancedOutput(outputs_array[3], fertilizer_chance, 0)
|
||||
b.itemInputs(Item.of(resolvedFertilizer, 8))
|
||||
};
|
||||
if (circuit !== null) {
|
||||
b.circuit(circuit + 1)
|
||||
};
|
||||
|
||||
// Aquaponics Recipe.
|
||||
let c = event.recipes.gtceu.greenhouse(`tfg:${linuxUnfucker(input)}_aquaponic${idCircuit}`)
|
||||
.notConsumable(input)
|
||||
.itemOutputs(outputs_array[0])
|
||||
.perTick(true)
|
||||
.chancedFluidInput(`${resolvedFluidTier2} 1`, resolvedChance, 0)
|
||||
.perTick(false)
|
||||
.duration(aquaponic_duration)
|
||||
.EUt(resolvedEUt)
|
||||
if (dimension !== null) {
|
||||
c.dimension(dimension)
|
||||
};
|
||||
if (requiresOxygen !== null) {
|
||||
TFGRecipeSchemaBindings.isOxygenated(c, requiresOxygen)
|
||||
};
|
||||
if (outputs_array[1] !== null) {
|
||||
c.chancedOutput(outputs_array[1], aquaponic_chance, 0)
|
||||
c.chancedOutput(outputs_array[2], aquaponic_chance, 0)
|
||||
c.chancedOutput(outputs_array[3], aquaponic_chance, 0)
|
||||
};
|
||||
if (circuit !== null) {
|
||||
c.circuit(circuit + 2)
|
||||
};
|
||||
c.itemOutputs('tfg:flora_pellets');
|
||||
|
||||
//======================== Hydroponic Facility Recipes ========================
|
||||
|
||||
// Base recipe.
|
||||
let d = event.recipes.gtceu.hydroponics_facility(`tfg:${linuxUnfucker(input)}${idCircuit}`)
|
||||
.notConsumable(input)
|
||||
.itemOutputs(outputs_array[0])
|
||||
.perTick(true)
|
||||
.chancedFluidInput(`${resolvedFluid} 1`, resolvedChance, 0)
|
||||
.perTick(false)
|
||||
.duration(greenhouse_base_duration)
|
||||
.EUt(resolvedEUt)
|
||||
if (dimension !== null) {
|
||||
d.dimension(dimension)
|
||||
};
|
||||
if (outputs_array[1] !== null) {
|
||||
d.chancedOutput(outputs_array[1], hydroponics_base_chance, 0)
|
||||
d.chancedOutput(outputs_array[2], hydroponics_base_chance, 0)
|
||||
d.chancedOutput(outputs_array[3], hydroponics_base_chance, 0)
|
||||
};
|
||||
if (circuit !== null) {
|
||||
d.circuit(circuit)
|
||||
};
|
||||
|
||||
// Fertilized Recipe.
|
||||
let e = event.recipes.gtceu.hydroponics_facility(`tfg:${linuxUnfucker(input)}_fertilized${idCircuit}`)
|
||||
.notConsumable(input)
|
||||
.itemOutputs(outputs_array[0])
|
||||
.perTick(true)
|
||||
.chancedFluidInput(`${resolvedFluid} 1`, resolvedChance, 0)
|
||||
.perTick(false)
|
||||
.duration(fertilizer_duration)
|
||||
.EUt(resolvedEUt)
|
||||
if (dimension !== null) {
|
||||
e.dimension(dimension)
|
||||
};
|
||||
if (outputs_array[1] !== null) {
|
||||
e.chancedOutput(outputs_array[1], hydroponics_fertilizer_chance, 0)
|
||||
e.chancedOutput(outputs_array[2], hydroponics_fertilizer_chance, 0)
|
||||
e.chancedOutput(outputs_array[3], hydroponics_fertilizer_chance, 0)
|
||||
e.itemInputs(Item.of(resolvedFertilizer, 8))
|
||||
};
|
||||
if (circuit !== null) {
|
||||
e.circuit(circuit + 1)
|
||||
};
|
||||
|
||||
// Aquaponics Recipe.
|
||||
let f = event.recipes.gtceu.hydroponics_facility(`tfg:${linuxUnfucker(input)}_aquaponic${idCircuit}`)
|
||||
.notConsumable(input)
|
||||
.itemOutputs(outputs_array[0])
|
||||
.perTick(true)
|
||||
.chancedFluidInput(`${resolvedFluidTier2} 1`, resolvedChance, 0)
|
||||
.perTick(false)
|
||||
.duration(aquaponic_duration)
|
||||
.EUt(resolvedEUt)
|
||||
if (dimension !== null) {
|
||||
f.dimension(dimension)
|
||||
};
|
||||
if (outputs_array[1] !== null) {
|
||||
f.chancedOutput(outputs_array[1], hydroponics_aquaponic_chance, 0)
|
||||
f.chancedOutput(outputs_array[2], hydroponics_aquaponic_chance, 0)
|
||||
f.chancedOutput(outputs_array[3], hydroponics_aquaponic_chance, 0)
|
||||
};
|
||||
if (circuit !== null) {
|
||||
f.circuit(circuit + 2)
|
||||
};
|
||||
f.itemOutputs('tfg:flora_pellets');
|
||||
|
||||
} else {
|
||||
// Base recipe boosted if no fertilization needed.
|
||||
|
||||
//======================== Greenhouse Recipes ========================
|
||||
|
||||
let a = event.recipes.gtceu.greenhouse(`tfg:${linuxUnfucker(input)}${idCircuit}`)
|
||||
.notConsumable(input)
|
||||
.itemOutputs(outputs_array[0])
|
||||
.perTick(true)
|
||||
.chancedFluidInput(`${resolvedFluid} 1`, resolvedChance, 0)
|
||||
.perTick(false)
|
||||
.duration(fertilizer_duration)
|
||||
.EUt(resolvedEUt)
|
||||
if (dimension !== null) {
|
||||
a.dimension(dimension)
|
||||
};
|
||||
if (requiresOxygen !== null) {
|
||||
TFGRecipeSchemaBindings.isOxygenated(a, requiresOxygen)
|
||||
};
|
||||
if (outputs_array[1] !== null) {
|
||||
a.chancedOutput(outputs_array[1], fertilizer_chance, 0)
|
||||
a.chancedOutput(outputs_array[2], fertilizer_chance, 0)
|
||||
a.chancedOutput(outputs_array[3], fertilizer_chance, 0)
|
||||
};
|
||||
if (circuit !== null) {
|
||||
a.circuit(circuit)
|
||||
};
|
||||
|
||||
//======================== Hydroponics Facility Recipes ========================
|
||||
|
||||
let b = event.recipes.gtceu.hydroponics_facility(`tfg:${linuxUnfucker(input)}${idCircuit}`)
|
||||
.notConsumable(input)
|
||||
.itemOutputs(outputs_array[0])
|
||||
.perTick(true)
|
||||
.chancedFluidInput(`${resolvedFluid} 1`, resolvedChance, 0)
|
||||
.perTick(false)
|
||||
.duration(fertilizer_duration)
|
||||
.EUt(resolvedEUt)
|
||||
if (dimension !== null) {
|
||||
b.dimension(dimension)
|
||||
};
|
||||
if (outputs_array[1] !== null) {
|
||||
b.chancedOutput(outputs_array[1], hydroponics_fertilizer_chance, 0)
|
||||
b.chancedOutput(outputs_array[2], hydroponics_fertilizer_chance, 0)
|
||||
b.chancedOutput(outputs_array[3], hydroponics_fertilizer_chance, 0)
|
||||
};
|
||||
if (circuit !== null) {
|
||||
b.circuit(circuit)
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* Function for generating standard crop greenhouse recipes.
|
||||
* Uses the following defaults:
|
||||
* - 4x seed inputs
|
||||
* - 20x crop output
|
||||
* - 1x seed chanced output
|
||||
* - 4x crop chanced output
|
||||
*
|
||||
* @param {Internal.RecipesEventJS} event
|
||||
* @param {Internal.Dimension|null} dimension -Dimension ID
|
||||
* @param {Internal.Ingredient} input -Input Item. (seed, bush, etc.)
|
||||
* @param {Internal.ItemStack} output -Output Item. (vegetable, fruit, etc.)
|
||||
* @param {Internal.ItemStack|null} leaves - Leaf block. Generates extra recipes with leaf outputs if provided.
|
||||
* @param {number|null} chance_multiplier -Multiplies output chances by this value. Defaults to 1.
|
||||
*/
|
||||
function generateCropGreenHouseRecipe(event, dimension, input, output, leaves, chance_multiplier) {
|
||||
generateGreenHouseRecipe(event, dimension, `4x ${input}`, [Item.of(output, 20), Item.of(input, 1), Item.of(output, 4)], chance_multiplier, 1);
|
||||
generateGreenHouseRecipe(event, dimension, `4x ${input}`, [Item.of(output, 20), Item.of(input, 8), Item.of(input, 4)], chance_multiplier, 5);
|
||||
if (leaves !== null && leaves !== undefined) {
|
||||
generateGreenHouseRecipe(event, dimension, `4x ${input}`, [Item.of(output, 20), Item.of(leaves, 16), Item.of(leaves, 8)], chance_multiplier, 10);
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* Function for generating standard tree greenhouse recipes.
|
||||
* Uses the following defaults:
|
||||
* - 8x sapling inputs
|
||||
* - 64x wood output
|
||||
* - 4x sapling chanced output
|
||||
* - 16x wood chanced output
|
||||
*
|
||||
* @param {Internal.RecipesEventJS} event
|
||||
* @param {Internal.Dimension|null} dimension -Dimension ID
|
||||
* @param {Internal.Ingredient} input -Input Item. (sapling)
|
||||
* @param {Internal.ItemStack} output -Output Item. (wood)
|
||||
* @param {Internal.ItemStack|null} leaves - Leaf block. Generates extra recipes with leaf outputs if provided.
|
||||
* @param {number|null} chance_multiplier -Multiplies output chances by this value. Defaults to 1.
|
||||
*/
|
||||
function generateTreeGreenHouseRecipe(event, dimension, input, output, leaves, chance_multiplier) {
|
||||
generateGreenHouseRecipe(event, dimension, `8x ${input}`, [Item.of(output, 64), Item.of(input, 4), Item.of(output, 16)], chance_multiplier, 1);
|
||||
generateGreenHouseRecipe(event, dimension, `8x ${input}`, [Item.of(output, 64), Item.of(input, 16), Item.of(input, 8)], chance_multiplier, 5);
|
||||
if (leaves !== null && leaves !== undefined) {
|
||||
generateGreenHouseRecipe(event, dimension, `8x ${input}`, [Item.of(output, 64), Item.of(leaves, 32), Item.of(leaves, 16)], chance_multiplier, 10);
|
||||
};
|
||||
};
|
||||
|
||||
//#endregion
|
||||
// Recipes
|
||||
|
||||
/**
|
||||
* @param {Internal.RecipesEventJS} event
|
||||
*/
|
||||
const registerTFGGreenhouseRecipes = (event) => {
|
||||
|
||||
//#region Multiblock Parts
|
||||
|
||||
/** @type {string[]} - Tier names of greenhouse casings. */
|
||||
const greenhouse_tiers = ['treated_wood', 'copper', 'iron', 'stainless_steel'];
|
||||
|
||||
greenhouse_tiers.forEach(tier => {
|
||||
|
||||
const tier_tag = Ingredient.of(`#tfg:${tier}_greenhouse_casings`).itemIds.toArray().map(String);
|
||||
|
||||
tier_tag.forEach(item => {
|
||||
event.stonecutting(item,
|
||||
Ingredient.of(`#tfg:${tier}_greenhouse_casings`).subtract(item)
|
||||
).id(`tfg:stonecutter/${linuxUnfucker(item)}`)
|
||||
});
|
||||
});
|
||||
|
||||
// Cultivation Monitor
|
||||
event.recipes.gtceu.shaped('tfg:cultivation_monitor', [
|
||||
'CEC',
|
||||
'DBD',
|
||||
'CAC'
|
||||
], {
|
||||
A: 'gtceu:ev_scanner',
|
||||
B: 'gtceu:computer_monitor_cover',
|
||||
C: ChemicalHelper.get(TagPrefix.plateDense, GTMaterials.TungstenSteel, 1),
|
||||
D: '#gtceu:circuits/luv',
|
||||
E: '#forge:lenses/emerald'
|
||||
}).addMaterialInfo().id('tfg:shaped/cultivation_monitor');
|
||||
|
||||
// Hydroponics Facility Controller
|
||||
event.recipes.gtceu.shaped('tfg:hydroponics_facility', [
|
||||
'FBF',
|
||||
'EAE',
|
||||
'CDC'
|
||||
], {
|
||||
A: 'gtceu:iv_machine_hull',
|
||||
B: 'tfg:cultivation_monitor',
|
||||
C: '#gtceu:circuits/iv',
|
||||
D: 'gtceu:platinum_single_cable',
|
||||
E: 'gtceu:iv_electric_pump',
|
||||
F: 'tfg:grow_light'
|
||||
}).addMaterialInfo().id('tfg:shaped/hydroponics_facility');
|
||||
|
||||
// Grow Lights
|
||||
event.recipes.gtceu.shaped('2x tfg:grow_light', [
|
||||
'ABA',
|
||||
'CDC'
|
||||
], {
|
||||
A: ChemicalHelper.get(TagPrefix.plate, GTMaterials.TinAlloy, 1),
|
||||
B: 'gtceu:annealed_copper_single_cable',
|
||||
C: 'minecraft:glowstone',
|
||||
D: 'gtceu:tin_alloy_small_fluid_pipe'
|
||||
}).addMaterialInfo().id('tfg:shaped/grow_light');
|
||||
|
||||
// Horticulture Planters
|
||||
event.recipes.gtceu.shaped('tfg:egh_planter', [
|
||||
'BAB',
|
||||
'BDB',
|
||||
'CCC'
|
||||
], {
|
||||
A: 'firmalife:hydroponic_planter',
|
||||
B: ChemicalHelper.get(TagPrefix.plate, GTMaterials.TungstenSteel, 1),
|
||||
C: 'tfg:grow_light',
|
||||
D: 'gtceu:iv_hermetic_casing'
|
||||
}).addMaterialInfo().id('tfg:shaped/egh_planter');
|
||||
|
||||
// Horticulture Casings
|
||||
// TODO: Venus; swap the frame to calorite.
|
||||
event.recipes.gtceu.assembler('tfg:casings/machine_casing_egh')
|
||||
.itemInputs('gtceu:plascrete', '#forge:frames/ostrum')
|
||||
.inputFluids(Fluid.of('tfg:chloroplasts', 100))
|
||||
.itemOutputs('2x tfg:casings/machine_casing_egh')
|
||||
.duration(8*20)
|
||||
.circuit(6)
|
||||
.EUt(GTValues.VA[GTValues.EV])
|
||||
.addMaterialInfo(true);
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Recipes
|
||||
|
||||
// Mushrooms
|
||||
Ingredient.of('#tfg:plants/beneath').stacks.forEach(element => {
|
||||
generateGreenHouseRecipe(event, 'minecraft:the_nether', `8x ${element.id}`, [element.withCount(24), element.withCount(8)], 1, 1);
|
||||
});
|
||||
|
||||
generateGreenHouseRecipe(event, 'minecraft:the_nether', '8x minecraft:red_mushroom', ['24x minecraft:red_mushroom', '8x minecraft:red_mushroom'], 1, 1);
|
||||
generateGreenHouseRecipe(event, 'minecraft:the_nether', '8x minecraft:brown_mushroom', ['24x minecraft:brown_mushroom', '8x minecraft:brown_mushroom'], 1, 1);
|
||||
|
||||
// Crops
|
||||
global.FIRMALIFE_GREENHOUSE_FRUIT_RECIPE_COMPONENTS.forEach(element => {
|
||||
generateCropGreenHouseRecipe(event, null, element.input, element.output, element.leaves, 1);
|
||||
});
|
||||
|
||||
global.TFC_GREENHOUSE_FRUIT_RECIPE_COMPONENTS.forEach(element => {
|
||||
generateCropGreenHouseRecipe(event, null, element.input, element.output, element.leaves, 1);
|
||||
});
|
||||
global.TFC_GREENHOUSE_VEGETABLE_RECIPE_COMPONENTS.forEach(element => {
|
||||
generateCropGreenHouseRecipe(event, null, element.input, element.output, null, 1);
|
||||
});
|
||||
global.TFC_GREENHOUSE_BERRY_RECIPE_COMPONENTS.forEach(element => {
|
||||
generateCropGreenHouseRecipe(event, null, element.input, element.output, null, 1);
|
||||
});
|
||||
|
||||
// Wood
|
||||
global.TFC_WOOD_TYPES.forEach(element => {
|
||||
generateTreeGreenHouseRecipe(event, null, `tfc:wood/sapling/${element}`, `tfc:wood/log/${element}`, `tfc:wood/leaves/${element}`, 1);
|
||||
});
|
||||
global.AFC_SAPLINGS.forEach(element => {
|
||||
generateTreeGreenHouseRecipe(event, null, `afc:wood/sapling/${element.sapling}`, element.log, `afc:wood/leaves/${element.sapling}`, 1);
|
||||
});
|
||||
|
||||
// Plants
|
||||
Ingredient.of('#tfc:plants').subtract('#tfc:wild_fruits').stacks.forEach(element => {
|
||||
generateGreenHouseRecipe(event, null, `8x ${element.id}`, [element.withCount(24), element.withCount(8)], 1, 1);
|
||||
});
|
||||
Ingredient.of('#forge:corals').stacks.forEach(element => {
|
||||
generateGreenHouseRecipe(event, null, `8x ${element.id}`, [element.withCount(24), element.withCount(8)], 1, 1);
|
||||
});
|
||||
Ingredient.of('#forge:coral_blocks').stacks.forEach(element => {
|
||||
generateGreenHouseRecipe(event, null, `8x ${element.id}`, [element.withCount(12), element.withCount(4)], 1, 1);
|
||||
});
|
||||
|
||||
generateGreenHouseRecipe(event, null, '8x minecraft:bamboo', ['64x minecraft:bamboo', '8x minecraft:bamboo'], 1, 1);
|
||||
|
||||
generateGreenHouseRecipe(event, null, '8x tfc:tree_roots', ['64x tfc:tree_roots', '8x tfc:tree_roots'], 1, 1);
|
||||
|
||||
generateGreenHouseRecipe(event, null, '8x tfc:food/fresh_seaweed', ['24x tfc:food/fresh_seaweed', '8x tfc:food/fresh_seaweed'], 1, 1);
|
||||
|
||||
generateGreenHouseRecipe(event, 'minecraft:the_nether', '4x minecraft:glow_berries', ['20x minecraft:glow_berries', '4x minecraft:glow_berries'], 1, 1);
|
||||
|
||||
// Mars Wood
|
||||
generateTreeGreenHouseRecipe(event, 'ad_astra:mars', `tfg:saplings/strophar`, `ad_astra:strophar_stem`, `ad_astra:strophar_cap`, 1);
|
||||
|
||||
generateTreeGreenHouseRecipe(event, 'ad_astra:mars', `tfg:saplings/aeronos`, `ad_astra:aeronos_stem`, `ad_astra:aeronos_cap`, 1);
|
||||
|
||||
generateTreeGreenHouseRecipe(event, 'ad_astra:mars', `tfg:saplings/glacian`, `ad_astra:glacian_log`, `species:alphacene_moss_block`, 1);
|
||||
|
||||
generateTreeGreenHouseRecipe(event, 'ad_astra:mars', `tfg:saplings/alphacene`, `species:alphacene_mushroom_block`, `minecraft:mushroom_stem`, 1);
|
||||
|
||||
generateTreeGreenHouseRecipe(event, 'ad_astra:mars', `tfg:saplings/warped`, `beneath:wood/log/warped`, `minecraft:warped_wart_block`, 1);
|
||||
|
||||
generateTreeGreenHouseRecipe(event, 'ad_astra:mars', `tfg:saplings/crimson`, `beneath:wood/log/crimson`, `minecraft:nether_wart_block`, 1);
|
||||
|
||||
// Mars Plants
|
||||
Ingredient.of('#tfg:mars_plants').stacks.forEach(element => {
|
||||
generateGreenHouseRecipe(event, 'ad_astra:mars', `8x ${element.id}`, [element.withCount(24), element.withCount(8)], 1, 1);
|
||||
});
|
||||
|
||||
generateCropGreenHouseRecipe(event, 'ad_astra:mars', 'betterend:amber_root_seeds', 'betterend:amber_root_product', null, 1);
|
||||
generateCropGreenHouseRecipe(event, 'ad_astra:mars', 'betterend:blossom_berry_seeds', 'betterend:blossom_berry_product', null, 1);
|
||||
generateCropGreenHouseRecipe(event, 'ad_astra:mars', 'betterend:bolux_mushroom_seeds', 'betterend:bolux_mushroom_product', null, 1);
|
||||
generateCropGreenHouseRecipe(event, 'ad_astra:mars', 'betterend:cave_pumpkin_plant_seeds', 'betterend:cave_pumpkin', null, 1);
|
||||
generateCropGreenHouseRecipe(event, 'ad_astra:mars', 'betterend:chorus_mushroom_seeds', 'betterend:chorus_mushroom_product', null, 1);
|
||||
generateCropGreenHouseRecipe(event, 'ad_astra:mars', 'betterend:shadow_berry_seeds', 'betterend:shadow_berry_product', null, 1);
|
||||
|
||||
// Moon Plants
|
||||
generateGreenHouseRecipe(event, 'ad_astra:moon', '16x tfg:lunar_chorus_flower', [
|
||||
'64x minecraft:chorus_fruit', '8x minecraft:chorus_fruit', '4x tfg:lunar_chorus_flower', '4x tfg:lunar_chorus_flower'
|
||||
], 1, 1);
|
||||
generateGreenHouseRecipe(event, 'ad_astra:moon', '8x minecraft:twisting_vines', [
|
||||
'16x minecraft:twisting_vines', '8x minecraft:pearlescent_froglight', '8x minecraft:verdant_froglight', '8x minecraft:ochre_froglight'
|
||||
], 1, 1);
|
||||
|
||||
Ingredient.of('#tfg:moon_plants').stacks.forEach(element => {
|
||||
generateGreenHouseRecipe(event, 'ad_astra:moon', `8x ${element.id}`, [element.withCount(24), element.withCount(8)], 1, 1);
|
||||
});
|
||||
|
||||
//#endregion
|
||||
};
|
||||
253
kubejs/server_scripts/tfg/aquaponics/recipes.pisciculture.js
Normal file
253
kubejs/server_scripts/tfg/aquaponics/recipes.pisciculture.js
Normal file
|
|
@ -0,0 +1,253 @@
|
|||
// priority: 0
|
||||
"use strict";
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//#region Balancing Values
|
||||
|
||||
/**
|
||||
* Base duration of recipes in ticks.
|
||||
* * Should match the Greenhouse base duration * aquaponics multiplier.
|
||||
*/
|
||||
const pisciculture_base_duration = Math.max(1, greenhouse_base_duration * greenhouse_duration_multiplier_aquaponics);
|
||||
|
||||
/**
|
||||
* Dimension setting index provides recipe modifications based on the dimension assigned.
|
||||
*
|
||||
* @typedef {Object} DimensionIndex
|
||||
* @property {Internal.Dimension} id - Dimension ID.
|
||||
* @property {Internal.FluidStackIngredient_} fluid - Fluid ID or tag.
|
||||
* @property {number} fluid_chance - Chance for fluid consumption per tick out of 100.
|
||||
* @property {Internal.FluidStackIngredient_} fluid_out - Output fluid ID.
|
||||
* @property {GTValues.EUt} eut - EUt value for that dimension.
|
||||
* @property {boolean|null} oxygenated - Whether the recipe requires an oxygenated environment.
|
||||
*/
|
||||
|
||||
/** @type {DimensionIndex[]} - Dimension settings array */
|
||||
const pisciculture_dimension_index = [
|
||||
// Overworld settings are also used as the default when no dimension is specified.
|
||||
{id: 'minecraft:overworld', fluid: '#tfg:clean_water', fluid_chance: 10, fluid_out: 'tfg:nitrate_rich_water', eut: GTValues.VHA[GTValues.LV], oxygenated: true},
|
||||
{id: 'minecraft:the_nether', fluid: '#tfg:clean_water', fluid_chance: 10, fluid_out: 'tfg:nitrate_rich_water', eut: GTValues.VHA[GTValues.LV], oxygenated: true},
|
||||
// The moon has no fish yet :(
|
||||
{id: 'ad_astra:mars', fluid: 'tfg:semiheavy_ammoniacal_water', fluid_chance: 10, fluid_out: 'tfg:nitrate_rich_semiheavy_ammoniacal_water', eut: GTValues.VHA[GTValues.HV], oxygenated: null}
|
||||
];
|
||||
|
||||
//#endregion
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//#region Utility Script
|
||||
|
||||
/**
|
||||
* Function for generating pisciculture recipes.
|
||||
*
|
||||
* @param {*} event
|
||||
* @param {Internal.Dimension|null} dimension -Dimension ID.
|
||||
* @param {Internal.ItemStack|Internal.ItemStack[]} input -Input Item (roe, fish food, etc).
|
||||
* @param {Internal.ItemStack|Internal.ItemStack[]} output -Output Items.
|
||||
* @param {string} id -Recipe ID.
|
||||
*/
|
||||
function generatePiscicultureRecipe(event, dimension, input, output, id) {
|
||||
|
||||
// Resolve dimension based modifier defaults by comparing to the `pisciculture_dimension_index` array.
|
||||
/** @type {DimensionIndex|null} */
|
||||
const dimMods = dimension ? pisciculture_dimension_index.find(d => d.id === dimension) : null;
|
||||
|
||||
/** @type {Internal.FluidStackIngredient_} - Resolved fluid ID or tag. Defaults to `#tfg:clean_water` */
|
||||
const resolvedFluid = dimMods?.fluid ?? '#tfg:clean_water';
|
||||
|
||||
/** @type {Internal.FluidStackIngredient_} - Resolved aquaponic loop fluid ID or tag. Defaults to `tfg:nitrate_rich_water` */
|
||||
const resolvedFluidOut = dimMods?.fluid_out ?? 'tfg:nitrate_rich_water';
|
||||
|
||||
/** @type {GTValues.EUt} - Resolved EUt value. Defaults to LV EUt. */
|
||||
const resolvedEUt = dimMods ? dimMods.eut : GTValues.VHA[GTValues.LV];
|
||||
|
||||
/** @type {number} - Resolved fluid chance multiplied by 100. Defaults to 1000. */
|
||||
const resolvedChance = dimMods ? (dimMods.fluid_chance * 100) : 1000;
|
||||
|
||||
/** @type {boolean|null} - Whether the recipe requires an oxygenated environment. Defaults to true. */
|
||||
const requiresOxygen = dimMods ? dimMods.oxygenated : true;
|
||||
|
||||
// Collect errors.
|
||||
const errors = [];
|
||||
|
||||
if (input === undefined) {
|
||||
errors.push("input is undefined");
|
||||
};
|
||||
if (output !== undefined && !Array.isArray(output)) {
|
||||
output = [output];
|
||||
}
|
||||
if (output === undefined || output.length === 0 || output.length > 4) {
|
||||
errors.push("output is undefined or has invalid length");
|
||||
};
|
||||
|
||||
// If there are any errors, log them all and throw once.
|
||||
if (errors.length > 0) {
|
||||
throw new TypeError(`Pisciculture Fishery recipe errors for recipe ID ${`tfg:pisciculture_fishery/${id}`}\n - ${errors.join("\n - ")}`);
|
||||
};
|
||||
|
||||
let a = event.recipes.gtceu.pisciculture_fishery(`tfg:${id}`)
|
||||
.itemInputs(input)
|
||||
.perTick(true)
|
||||
.chancedFluidInput(`${resolvedFluid} 8`, resolvedChance, 0)
|
||||
.chancedFluidOutput(`${resolvedFluidOut} 8`, resolvedChance, 0)
|
||||
.perTick(false)
|
||||
.itemOutputs(output)
|
||||
.duration(pisciculture_base_duration)
|
||||
.EUt(resolvedEUt);
|
||||
|
||||
if (dimension !== null) {
|
||||
a.dimension(dimension)
|
||||
};
|
||||
|
||||
if (requiresOxygen !== null) {
|
||||
TFGRecipeSchemaBindings.isOxygenated(a, requiresOxygen)
|
||||
};
|
||||
};
|
||||
|
||||
//#endregion
|
||||
|
||||
/**
|
||||
* @param {Internal.RecipesEventJS} event
|
||||
*/
|
||||
const registerTFGPiscicultureRecipes = (event) => {
|
||||
|
||||
|
||||
//#region Multiblock Parts
|
||||
|
||||
// Pisciculture Fishery Controller
|
||||
event.recipes.gtceu.shaped('tfg:pisciculture_fishery', [
|
||||
'FBF',
|
||||
'EAE',
|
||||
'CDC'
|
||||
], {
|
||||
A: 'gtceu:hv_machine_hull',
|
||||
B: 'tfg:machine_casing_aluminium_plated_steel',
|
||||
C: '#gtceu:circuits/ev',
|
||||
D: 'gtceu:stainless_steel_small_fluid_pipe',
|
||||
E: 'gtceu:hv_electric_pump',
|
||||
F: 'gtceu:fluid_filter'
|
||||
}).addMaterialInfo().id('tfg:shaped/pisciculture_fishery');
|
||||
|
||||
// Pisciculture Core
|
||||
event.recipes.gtceu.shaped('tfg:pisciculture_core', [
|
||||
'CBC',
|
||||
'DBD',
|
||||
'CAC'
|
||||
], {
|
||||
A: 'gtceu:hv_rotor_holder',
|
||||
B: 'gtceu:stainless_steel_rotor',
|
||||
C: 'gtceu:inert_machine_casing',
|
||||
D: ChemicalHelper.get(TagPrefix.ring, GTMaterials.PolyvinylChloride, 1)
|
||||
}).addMaterialInfo().id('tfg:shaped/pisciculture_core');
|
||||
|
||||
//#endregion
|
||||
//#region Recipes
|
||||
|
||||
global.FISH_INDEX.forEach(fish => {
|
||||
|
||||
// Bucket to Roe.
|
||||
if (fish.parent !== null && fish.parent.includes('bucket')) {
|
||||
generatePiscicultureRecipe(event,
|
||||
fish.dimension, [
|
||||
fish.parent,
|
||||
fish.parent,
|
||||
'6x #tfc:small_fishing_bait'
|
||||
], [
|
||||
`6x ${fish.item}`,
|
||||
Item.of(`3x tfg:fish_roe`, {"mob_type": fish.id}).strongNBT(),
|
||||
'2x minecraft:bucket'
|
||||
],
|
||||
`${linuxUnfucker(fish.id)}/basic_food/bucket_to_roe`
|
||||
);
|
||||
|
||||
generatePiscicultureRecipe(event,
|
||||
fish.dimension, [
|
||||
fish.parent,
|
||||
fish.parent,
|
||||
'2x #tfg:advanced_fish_food'
|
||||
], [
|
||||
`12x ${fish.item}`,
|
||||
Item.of(`4x tfg:fish_roe`, {"mob_type": fish.id}).strongNBT(),
|
||||
'2x minecraft:bucket'
|
||||
],
|
||||
`${linuxUnfucker(fish.id)}/advanced_food/bucket_to_roe`
|
||||
);
|
||||
} else {
|
||||
generatePiscicultureRecipe(event,
|
||||
fish.dimension, [
|
||||
fish.parent,
|
||||
fish.parent,
|
||||
'6x #tfc:small_fishing_bait'
|
||||
], [
|
||||
`6x ${fish.item}`,
|
||||
Item.of(`3x tfg:fish_roe`, {"mob_type": fish.id}).strongNBT()
|
||||
],
|
||||
`${linuxUnfucker(fish.id)}/basic_food/parent_to_roe`
|
||||
);
|
||||
|
||||
generatePiscicultureRecipe(event,
|
||||
fish.dimension, [
|
||||
fish.parent,
|
||||
fish.parent,
|
||||
'2x #tfg:advanced_fish_food'
|
||||
], [
|
||||
`12x ${fish.item}`,
|
||||
Item.of(`4x tfg:fish_roe`, {"mob_type": fish.id}).strongNBT()
|
||||
],
|
||||
`${linuxUnfucker(fish.id)}/advanced_food/parent_to_roe`
|
||||
);
|
||||
};
|
||||
|
||||
// Roe to Roe.
|
||||
generatePiscicultureRecipe(event,
|
||||
fish.dimension, [
|
||||
Item.of(`tfg:fish_roe`, {"mob_type": fish.id}).strongNBT(),
|
||||
Item.of(`tfg:fish_roe`, {"mob_type": fish.id}).strongNBT(),
|
||||
'6x #tfc:small_fishing_bait'
|
||||
], [
|
||||
`10x ${fish.item}`,
|
||||
Item.of(`4x tfg:fish_roe`, {"mob_type": fish.id}).strongNBT()
|
||||
],
|
||||
`${linuxUnfucker(fish.id)}/basic_food/roe_to_roe`
|
||||
);
|
||||
|
||||
generatePiscicultureRecipe(event,
|
||||
fish.dimension, [
|
||||
Item.of(`tfg:fish_roe`, {"mob_type": fish.id}).strongNBT(),
|
||||
Item.of(`tfg:fish_roe`, {"mob_type": fish.id}).strongNBT(),
|
||||
'2x #tfg:advanced_fish_food'
|
||||
], [
|
||||
`24x ${fish.item}`,
|
||||
Item.of(`5x tfg:fish_roe`, {"mob_type": fish.id}).strongNBT()
|
||||
],
|
||||
`${linuxUnfucker(fish.id)}/advanced_food/roe_to_roe`
|
||||
);
|
||||
|
||||
});
|
||||
|
||||
//#endregion
|
||||
//#region Related Recipes
|
||||
|
||||
// Nitrate Rich Water Filtering
|
||||
event.recipes.gtceu.electrolyzer('tfg:nitrate_rich_water_filtering')
|
||||
.inputFluids(Fluid.of('tfg:nitrate_rich_water', 10000))
|
||||
.outputFluids(
|
||||
Fluid.of('minecraft:water', 8000),
|
||||
Fluid.of('gtceu:ammonia', 1000)
|
||||
)
|
||||
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Saltpeter, 1))
|
||||
.duration(20 * 5)
|
||||
.EUt(GTValues.VA[GTValues.HV]);
|
||||
|
||||
// Nitrate Rich Semiheavy Ammoniacal Water Filtering
|
||||
event.recipes.gtceu.electrolyzer('tfg:nitrate_rich_semiheavy_ammoniacal_water_filtering')
|
||||
.inputFluids(Fluid.of('tfg:nitrate_rich_semiheavy_ammoniacal_water', 10000))
|
||||
.outputFluids(
|
||||
Fluid.of('tfg:semiheavy_ammoniacal_water', 8000),
|
||||
Fluid.of('gtceu:ammonia', 1000)
|
||||
)
|
||||
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Saltpeter, 1))
|
||||
.duration(20 * 5)
|
||||
.EUt(GTValues.VA[GTValues.HV]);
|
||||
|
||||
//#endregion
|
||||
};
|
||||
56
kubejs/server_scripts/tfg/aquaponics/tags.aquaponics.js
Normal file
56
kubejs/server_scripts/tfg/aquaponics/tags.aquaponics.js
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
"use strict";
|
||||
|
||||
/**
|
||||
* @param {Internal.TagEventJS} event
|
||||
*/
|
||||
const registerTFGAquaponicsItemTags = (event) => {
|
||||
event.add('tfg:treated_wood_greenhouse_casings', 'firmalife:treated_wood_greenhouse_wall');
|
||||
event.add('tfg:all_greenhouse_casings', 'firmalife:treated_wood_greenhouse_wall');
|
||||
|
||||
event.add('tfg:copper_greenhouse_casings', 'firmalife:copper_greenhouse_wall');
|
||||
event.add('tfg:all_greenhouse_casings', 'firmalife:copper_greenhouse_wall');
|
||||
|
||||
event.add('tfg:iron_greenhouse_casings', 'firmalife:iron_greenhouse_wall');
|
||||
event.add('tfg:all_greenhouse_casings', 'firmalife:iron_greenhouse_wall');
|
||||
|
||||
event.add('tfg:stainless_steel_greenhouse_casings', 'firmalife:stainless_steel_greenhouse_wall');
|
||||
event.add('tfg:all_greenhouse_casings', 'firmalife:stainless_steel_greenhouse_wall');
|
||||
|
||||
|
||||
event.add('tfc:foods/usable_in_salad', 'tfg:fish_roe');
|
||||
event.add('tfc:foods/usable_in_jam_sandwich', 'tfg:fish_roe');
|
||||
event.add('tfc:foods/usable_in_sandwich', 'tfg:fish_roe');
|
||||
event.add('tfc:foods/can_be_salted', 'tfg:fish_roe');
|
||||
event.add('tfc:foods', 'tfg:fish_roe');
|
||||
event.add('firmalife:foods/raw_fish', 'tfg:fish_roe');
|
||||
event.add('minecraft:fishes', 'tfg:fish_roe');
|
||||
|
||||
event.add('tfg:advanced_fish_food', 'tfg:flora_pellets');
|
||||
event.add('create:blaze_burner_fuel/regular', "tfg:flora_pellets");
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {Internal.TagEventJS} event
|
||||
*/
|
||||
const registerTFGAquaponicsBlockTags = (event) => {
|
||||
event.add('tfg:treated_wood_greenhouse_casings', 'firmalife:treated_wood_greenhouse_wall');
|
||||
event.add('tfg:all_greenhouse_casings', 'firmalife:treated_wood_greenhouse_wall');
|
||||
|
||||
event.add('tfg:copper_greenhouse_casings', 'firmalife:copper_greenhouse_wall');
|
||||
event.add('tfg:all_greenhouse_casings', 'firmalife:copper_greenhouse_wall');
|
||||
|
||||
event.add('tfg:iron_greenhouse_casings', 'firmalife:iron_greenhouse_wall');
|
||||
event.add('tfg:all_greenhouse_casings', 'firmalife:iron_greenhouse_wall');
|
||||
|
||||
event.add('tfg:stainless_steel_greenhouse_casings', 'firmalife:stainless_steel_greenhouse_wall');
|
||||
event.add('tfg:all_greenhouse_casings', 'firmalife:stainless_steel_greenhouse_wall');
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {Internal.TagEventJS} event
|
||||
*/
|
||||
const registerTFGAquaponicsFluidTags = (event) => {
|
||||
event.add('tfg:pisciculture_fishery_fluids', 'minecraft:water')
|
||||
event.add('tfg:pisciculture_fishery_fluids', 'tfc:salt_water')
|
||||
event.add('tfg:pisciculture_fishery_fluids', 'tfg:semiheavy_ammoniacal_water')
|
||||
};
|
||||
|
|
@ -1,5 +1,19 @@
|
|||
"use strict";
|
||||
|
||||
/**
|
||||
* @property {string[]} beneath_plants - List of Beneath plants to be added to the `tfg:plants/beneath` tag.
|
||||
*/
|
||||
const beneath_plants = [
|
||||
'beneath:gleamflower',
|
||||
'beneath:burpflower',
|
||||
'minecraft:big_dripleaf',
|
||||
'minecraft:small_dripleaf',
|
||||
'minecraft:glow_lichen',
|
||||
'minecraft:hanging_roots',
|
||||
'minecraft:spore_blossom',
|
||||
'#beneath:mushrooms'
|
||||
];
|
||||
|
||||
function registerTFGBeneathItemTags(event) {
|
||||
|
||||
event.add("minecraft:piglin_loved", "gtceu:tiny_pyrite_dust");
|
||||
|
|
@ -12,9 +26,12 @@ function registerTFGBeneathItemTags(event) {
|
|||
event.add("minecraft:piglin_loved", "tfc:ore/rich_native_gold");
|
||||
event.add('minecraft:piglin_loved', 'tfg:piglin_disguise')
|
||||
|
||||
event.add('tfc:plants', 'minecraft:spore_blossom')
|
||||
event.remove('createaddition:plants', 'minecraft:moss_carpet')
|
||||
|
||||
beneath_plants.forEach(plant =>
|
||||
event.add('tfg:plants/beneath', plant)
|
||||
);
|
||||
|
||||
event.add('tfc:compost_greens', 'minecraft:red_mushroom_block')
|
||||
event.add('tfc:compost_greens', 'minecraft:brown_mushroom_block')
|
||||
event.add('tfc:compost_greens', 'minecraft:mushroom_stem')
|
||||
|
|
@ -27,6 +44,13 @@ function registerTFGBeneathItemTags(event) {
|
|||
function registerTFGBeneathBlockTags(event) {
|
||||
event.add('tfg:lush_ground_replaceable', 'minecraft:deepslate')
|
||||
event.add('tfg:lush_ground_replaceable', 'minecraft:blackstone')
|
||||
|
||||
event.remove('tfc:plants', 'beneath:gleamflower')
|
||||
event.remove('tfc:plants', 'beneath:burpflower')
|
||||
|
||||
beneath_plants.forEach(plant =>
|
||||
event.add('tfg:plants/beneath', plant)
|
||||
);
|
||||
|
||||
event.add('minecraft:lush_ground_replaceable', 'minecraft:blackstone')
|
||||
event.add('beneath:nether_bush_plantable_on', 'minecraft:blackstone')
|
||||
|
|
@ -136,4 +160,4 @@ function registerTFGBeneathPlacedFeatures(event) {
|
|||
event.add('tfg:nether_underground_decoration', 'minecraft:spring_open')
|
||||
event.add('tfg:nether_underground_decoration', 'minecraft:spring_closed')
|
||||
event.add('tfg:nether_underground_decoration', 'tfg:nether/terrain/magma_blob')
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ function registerTFCDataForTFG(event) {
|
|||
registerTFGFLPlanters(event);
|
||||
registerTFGFauna(event);
|
||||
registerTFGEquipmentData(event);
|
||||
registerTFGAquaponicsData(event);
|
||||
}
|
||||
|
||||
//#region Heat Data
|
||||
|
|
@ -54,6 +55,13 @@ function registerTFGHeatData(event) {
|
|||
event.itemHeat('tfg:unfired_rod_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);
|
||||
|
||||
event.itemHeat('betterend:charnia_orange', 0.25, null, null)
|
||||
event.itemHeat('betterend:charnia_cyan', 0.25, null, null)
|
||||
event.itemHeat('betterend:charnia_green', 0.25, null, null)
|
||||
event.itemHeat('betterend:charnia_light_blue', 0.25, null, null)
|
||||
event.itemHeat('betterend:charnia_purple', 0.25, null, null)
|
||||
event.itemHeat('betterend:charnia_red', 0.25, null, null)
|
||||
}
|
||||
|
||||
//#endregion
|
||||
|
|
@ -330,6 +338,10 @@ function registerTFGItemSize(event) {
|
|||
"medium",
|
||||
"Molds"
|
||||
)
|
||||
|
||||
//Universal Compost Bags
|
||||
event.itemSize("tfg:universal_compost_browns_bag", "tiny", "medium")
|
||||
event.itemSize("tfg:universal_compost_greens_bag", "tiny", "medium")
|
||||
}
|
||||
|
||||
//#endregion
|
||||
|
|
|
|||
|
|
@ -69,6 +69,12 @@ function registerTFGEquipmentData(event) {
|
|||
13,
|
||||
13,
|
||||
15
|
||||
)
|
||||
event.itemDamageResistance(
|
||||
'minecraft:netherite_boots',
|
||||
13,
|
||||
13,
|
||||
15
|
||||
)
|
||||
event.itemDamageResistance(
|
||||
'create:netherite_diving_boots',
|
||||
|
|
|
|||
|
|
@ -49,4 +49,18 @@ function registerTFGEquipmentItemTags(event) {
|
|||
event.add('ad_astra:heat_resistant_armor', 'gtceu:quarktech_leggings')
|
||||
event.add('ad_astra:heat_resistant_armor', 'gtceu:quarktech_boots')
|
||||
|
||||
event.add('tfc:deals_crushing_damage', '#forge:tools/mining_hammers')
|
||||
event.add('tfc:deals_crushing_damage', '#minecraft:shovels')
|
||||
event.add('tfc:deals_crushing_damage', '#forge:tools/spades')
|
||||
event.add('tfc:deals_crushing_damage', '#forge:tools/wrenches')
|
||||
event.add('tfc:deals_slashing_damage', '#forge:tools/chainsaws')
|
||||
event.add('tfc:deals_slashing_damage', '#forge:tools/saws')
|
||||
event.add('tfc:deals_slashing_damage', '#forge:tools/butchery_knives')
|
||||
event.add('tfc:deals_slashing_damage', '#forge:tools/files')
|
||||
event.add('tfc:deals_piercing_damage', '#minecraft:pickaxes')
|
||||
event.add('tfc:deals_piercing_damage', '#forge:tools/drills')
|
||||
event.add('tfc:deals_piercing_damage', '#forge:tools/screwdrivers')
|
||||
event.add('tfc:deals_piercing_damage', '#minecraft:hoes')
|
||||
event.add('tfc:deals_piercing_damage', '#forge:tools/crowbars')
|
||||
event.add('tfc:deals_piercing_damage', '#forge:tools/wire_cutters')
|
||||
}
|
||||
|
|
@ -1,254 +1,3 @@
|
|||
|
||||
/**
|
||||
* @typedef {Object} BrickVariant
|
||||
* @property {string} brick_type - The name of the brick variant.
|
||||
* @property {string|null} brick - Main brick block ID.
|
||||
* @property {string|null} brick_stairs - Brick stairs block ID.
|
||||
* @property {string|null} brick_slab - Brick slab block ID.
|
||||
* @property {string|null} brick_wall - Brick wall block ID.
|
||||
* @property {string|null} cracked_brick - Cracked brick block ID.
|
||||
* @property {string|null} cracked_stairs - Cracked brick stairs block ID.
|
||||
* @property {string|null} cracked_slab - Cracked brick slab block ID.
|
||||
* @property {string|null} cracked_wall - Cracked brick wall block ID.
|
||||
* @property {string|null} mossy_brick - Mossy brick block ID.
|
||||
* @property {string|null} mossy_stairs - Mossy brick stairs block ID.
|
||||
* @property {string|null} mossy_slab - Mossy brick slab block ID.
|
||||
* @property {string|null} mossy_wall - Mossy brick wall block ID.
|
||||
* @property {string|null} smooth_brick - Smooth brick block ID.
|
||||
* @property {string|null} smooth_stairs - Smooth brick stairs block ID.
|
||||
* @property {string|null} smooth_slab - Smooth brick slab block ID.
|
||||
* @property {string|null} smooth_wall - Smooth brick wall block ID.
|
||||
* @property {string|null} chiseled_brick - Chiseled brick block ID.
|
||||
*/
|
||||
|
||||
const AA_REGULAR_STONES = ['moon', 'mars', 'venus', 'mercury', 'glacio']
|
||||
|
||||
// #region BRICK_INDEX
|
||||
/** @type {BrickVariant[]} */
|
||||
global.BRICK_INDEX = (global.TFC_STONE_TYPES ? global.TFC_STONE_TYPES : []).map(tfc_stone => ({
|
||||
brick_type: tfc_stone,
|
||||
brick: `tfc:rock/bricks/${tfc_stone}`, brick_stairs: `tfc:rock/bricks/${tfc_stone}_stairs`, brick_slab: `tfc:rock/bricks/${tfc_stone}_slab`, brick_wall: `tfc:rock/bricks/${tfc_stone}_wall`,
|
||||
cracked_brick: `tfc:rock/cracked_bricks/${tfc_stone}`, cracked_stairs: `tfc:rock/cracked_bricks/${tfc_stone}_stairs`, cracked_slab: `tfc:rock/cracked_bricks/${tfc_stone}_slab`, cracked_wall: `tfc:rock/cracked_bricks/${tfc_stone}_wall`,
|
||||
mossy_brick: `tfc:rock/mossy_bricks/${tfc_stone}`, mossy_stairs: `tfc:rock/mossy_bricks/${tfc_stone}_stairs`, mossy_slab: `tfc:rock/mossy_bricks/${tfc_stone}_slab`, mossy_wall: `tfc:rock/mossy_bricks/${tfc_stone}_wall`,
|
||||
smooth_brick: `tfc:rock/smooth/${tfc_stone}`, smooth_stairs: `tfc:rock/smooth/${tfc_stone}_stairs`, smooth_slab: `tfc:rock/smooth/${tfc_stone}_slab`, smooth_wall: `tfc:rock/smooth/${tfc_stone}_wall`,
|
||||
chiseled_brick: `tfc:rock/chiseled/${tfc_stone}`
|
||||
}));
|
||||
(global.CREATE_DECO_BRICK_TYPES ? global.CREATE_DECO_BRICK_TYPES : []).slice(0, -1).forEach(create_brick => {
|
||||
global.BRICK_INDEX.push({
|
||||
brick_type: create_brick,
|
||||
brick: `createdeco:${create_brick}_bricks`, brick_stairs: `createdeco:${create_brick}_brick_stairs`, brick_slab: `createdeco:${create_brick}_brick_slab`, brick_wall: `createdeco:${create_brick}_brick_wall`,
|
||||
cracked_brick: `createdeco:cracked_${create_brick}_bricks`, cracked_stairs: `createdeco:cracked_${create_brick}_brick_stairs`, cracked_slab: `createdeco:cracked_${create_brick}_brick_slab`, cracked_wall: `createdeco:cracked_${create_brick}_brick_wall`,
|
||||
mossy_brick: `createdeco:mossy_${create_brick}_bricks`, mossy_stairs: `createdeco:mossy_${create_brick}_brick_stairs`, mossy_slab: `createdeco:mossy_${create_brick}_brick_slab`, mossy_wall: `createdeco:mossy_${create_brick}_brick_wall`,
|
||||
smooth_brick: `createdeco:corner_${create_brick}_bricks`, smooth_stairs: `createdeco:corner_${create_brick}_brick_stairs`, smooth_slab: `createdeco:corner_${create_brick}_brick_slab`, smooth_wall: `createdeco:corner_${create_brick}_brick_wall`,
|
||||
chiseled_brick: `createdeco:tiled_${create_brick}_bricks`
|
||||
})
|
||||
});
|
||||
global.BRICK_INDEX = global.BRICK_INDEX.concat([
|
||||
// { brick_type: '',
|
||||
// brick: '', brick_stairs: '', brick_slab: '', brick_wall: '',
|
||||
// cracked_brick: '', cracked_stairs: '', cracked_slab: '', cracked_wall: '',
|
||||
// mossy_brick: '', mossy_stairs: '', mossy_slab: '', mossy_wallL: '',
|
||||
// smooth_brick: '', smooth_stairs: '', smooth_slab: '', smooth_wall: '',
|
||||
// chiseled_brick: '' },
|
||||
|
||||
{
|
||||
brick_type: 'red',
|
||||
brick: 'minecraft:bricks', brick_stairs: 'minecraft:brick_stairs', brick_slab: 'minecraft:brick_slab', brick_wall: 'minecraft:brick_wall',
|
||||
cracked_brick: 'createdeco:cracked_red_bricks', cracked_stairs: 'createdeco:cracked_red_brick_stairs', cracked_slab: 'createdeco:cracked_red_brick_slab', cracked_wall: 'createdeco:cracked_red_brick_wall',
|
||||
mossy_brick: 'createdeco:mossy_red_bricks', mossy_stairs: 'createdeco:mossy_red_brick_stairs', mossy_slab: 'createdeco:mossy_red_brick_slab', mossy_wall: 'createdeco:mossy_red_brick_wall',
|
||||
smooth_brick: 'createdeco:corner_red_bricks', smooth_stairs: 'createdeco:corner_red_brick_stairs', smooth_slab: 'createdeco:corner_red_brick_slab', smooth_wall: 'createdeco:corner_red_brick_wall',
|
||||
chiseled_brick: 'createdeco:tiled_red_bricks'
|
||||
},
|
||||
|
||||
{
|
||||
brick_type: 'light_concrete',
|
||||
brick: 'gtceu:light_concrete_bricks', brick_stairs: null, brick_slab: null, brick_wall: null,
|
||||
cracked_brick: 'gtceu:cracked_light_concrete_bricks', cracked_stairs: null, cracked_slab: null, cracked_wall: null,
|
||||
mossy_brick: 'gtceu:mossy_light_concrete_bricks', mossy_stairs: null, mossy_slab: null, mossy_wall: null,
|
||||
smooth_brick: 'gtceu:polished_light_concrete', smooth_stairs: null, smooth_slab: null, smooth_wall: null,
|
||||
chiseled_brick: 'gtceu:chiseled_light_concrete'
|
||||
},
|
||||
|
||||
{
|
||||
brick_type: 'dark_concrete',
|
||||
brick: 'gtceu:dark_concrete_bricks', brick_stairs: null, brick_slab: null, brick_wall: null,
|
||||
cracked_brick: 'gtceu:cracked_dark_concrete_bricks', cracked_stairs: null, cracked_slab: null, cracked_wall: null,
|
||||
mossy_brick: 'gtceu:mossy_dark_concrete_bricks', mossy_stairs: null, mossy_slab: null, mossy_wall: null,
|
||||
smooth_brick: 'gtceu:polished_dark_concrete', smooth_stairs: null, smooth_slab: null, smooth_wall: null,
|
||||
chiseled_brick: 'gtceu:chiseled_dark_concrete'
|
||||
},
|
||||
|
||||
{
|
||||
brick_type: 'deepslate',
|
||||
brick: 'minecraft:deepslate_bricks', brick_stairs: 'minecraft:deepslate_brick_stairs', brick_slab: 'minecraft:deepslate_brick_slab', brick_wall: 'minecraft:deepslate_brick_wall',
|
||||
cracked_brick: 'minecraft:cracked_deepslate_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_deepslate_stairs', cracked_slab: 'tfg:rock/cracked_bricks_deepslate_slab', cracked_wall: 'tfg:rock/cracked_bricks_deepslate_wall',
|
||||
mossy_brick: 'tfg:rock/mossy_bricks_deepslate', mossy_stairs: 'tfg:rock/mossy_bricks_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_bricks_deepslate_slab', mossy_wall: 'tfg:rock/mossy_bricks_deepslate_wall',
|
||||
smooth_brick: 'minecraft:polished_deepslate', smooth_stairs: 'minecraft:polished_deepslate_stairs', smooth_slab: 'minecraft:polished_deepslate_slab', smooth_wall: 'minecraft:polished_deepslate_wall',
|
||||
chiseled_brick: 'minecraft:chiseled_deepslate'
|
||||
},
|
||||
|
||||
{
|
||||
brick_type: 'deepslate_tiles',
|
||||
brick: 'minecraft:deepslate_tiles', brick_stairs: 'minecraft:deepslate_tile_stairs', brick_slab: 'minecraft:deepslate_tile_slab', brick_wall: 'minecraft:deepslate_tile_wall',
|
||||
cracked_brick: 'minecraft:cracked_deepslate_tiles', cracked_stairs: 'tfg:rock/cracked_tiles_deepslate_stairs', cracked_slab: 'tfg:rock/cracked_tiles_deepslate_slab', cracked_wall: 'tfg:rock/cracked_tiles_deepslate_wall',
|
||||
mossy_brick: null, mossy_stairs: null, mossy_slab: null, mossy_wall: null,
|
||||
smooth_brick: 'minecraft:polished_deepslate', smooth_stairs: 'minecraft:polished_deepslate_stairs', smooth_slab: 'minecraft:polished_deepslate_slab', smooth_wall: 'minecraft:polished_deepslate_wall',
|
||||
chiseled_brick: 'minecraft:chiseled_deepslate'
|
||||
},
|
||||
|
||||
{
|
||||
brick_type: 'blackstone',
|
||||
brick: 'minecraft:polished_blackstone_bricks', brick_stairs: 'minecraft:polished_blackstone_brick_stairs', brick_slab: 'minecraft:polished_blackstone_brick_slab', brick_wall: 'minecraft:polished_blackstone_brick_wall',
|
||||
cracked_brick: 'minecraft:cracked_polished_blackstone_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_blackstone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_blackstone_slab', cracked_wall: 'tfg:rock/cracked_bricks_blackstone_wall',
|
||||
mossy_brick: 'tfg:rock/mossy_bricks_blackstone', mossy_stairs: 'tfg:rock/mossy_bricks_blackstone_stairs', mossy_slab: 'tfg:rock/mossy_bricks_blackstone_slab', mossy_wall: 'tfg:rock/mossy_bricks_blackstone_wall',
|
||||
smooth_brick: 'minecraft:polished_blackstone', smooth_stairs: 'minecraft:polished_blackstone_stairs', smooth_slab: 'minecraft:polished_blackstone_slab', smooth_wall: 'minecraft:polished_blackstone_wall',
|
||||
chiseled_brick: 'minecraft:chiseled_polished_blackstone'
|
||||
},
|
||||
|
||||
{
|
||||
brick_type: 'dripstone',
|
||||
brick: 'create:cut_dripstone_bricks', brick_stairs: 'create:cut_dripstone_brick_stairs', brick_slab: 'create:cut_dripstone_brick_slab', brick_wall: 'create:cut_dripstone_brick_wall',
|
||||
cracked_brick: 'tfg:rock/cracked_bricks_dripstone', cracked_stairs: 'tfg:rock/cracked_bricks_dripstone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_dripstone_slab', cracked_wall: 'tfg:rock/cracked_bricks_dripstone_wall',
|
||||
mossy_brick: 'tfg:rock/mossy_bricks_dripstone', mossy_stairs: 'tfg:rock/mossy_bricks_dripstone_stairs', mossy_slab: 'tfg:rock/mossy_bricks_dripstone_slab', mossy_wall: 'tfg:rock/mossy_bricks_dripstone_wall',
|
||||
smooth_brick: 'create:polished_cut_dripstone', smooth_stairs: 'create:polished_cut_dripstone_stairs', smooth_slab: 'create:polished_cut_dripstone_slab', smooth_wall: 'create:polished_cut_dripstone_wall',
|
||||
chiseled_brick: 'create:small_dripstone_bricks'
|
||||
},
|
||||
|
||||
{
|
||||
brick_type: 'crackrack',
|
||||
brick: 'minecraft:nether_bricks', brick_stairs: 'minecraft:nether_bricks_stairs', brick_slab: 'minecraft:nether_bricks_slab', brick_wall: 'minecraft:nether_bricks_wall',
|
||||
cracked_brick: 'minecraft:cracked_nether_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_nether_stairs', cracked_slab: 'tfg:rock/cracked_bricks_nether_slab', cracked_wall: 'tfg:rock/cracked_bricks_nether_wall',
|
||||
mossy_brick: 'tfg:rock/mossy_bricks_nether', mossy_stairs: 'tfg:rock/mossy_bricks_nether_stairs', mossy_slab: 'tfg:rock/mossy_bricks_nether_slab', mossy_wall: 'tfg:rock/mossy_bricks_nether_wall',
|
||||
smooth_brick: 'tfg:rock/polished_crackrack', smooth_stairs: 'tfg:rock/polished_crackrack_stairs', smooth_slab: 'tfg:rock/polished_crackrack_slab', smooth_wall: 'tfg:rock/polished_crackrack_wall',
|
||||
chiseled_brick: 'minecraft:chiseled_nether_bricks'
|
||||
},
|
||||
|
||||
{
|
||||
brick_type: 'moon_deepslate',
|
||||
brick: 'tfg:rock/bricks_moon_deepslate', brick_stairs: 'tfg:rock/bricks_moon_deepslate_stairs', brick_slab: 'tfg:rock/bricks_moon_deepslate_slab', brick_wall: 'tfg:rock/bricks_moon_deepslate_wall',
|
||||
cracked_brick: 'tfg:rock/cracked_bricks_moon_deepslate', cracked_stairs: 'tfg:rock/cracked_bricks_moon_deepslate_stairs', cracked_slab: 'tfg:rock/cracked_bricks_moon_slab', cracked_wall: 'tfg:rock/cracked_bricks_moon_wall',
|
||||
mossy_brick: 'tfg:rock/mossy_bricks_moon_deepslate', mossy_stairs: 'tfg:rock/mossy_bricks_moon_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_bricks_moon_slab', mossy_wall: 'tfg:rock/mossy_bricks_moon_deepslate_wall',
|
||||
smooth_brick: 'tfg:rock/polished_moon_deepslate', smooth_stairs: 'tfg:rock/polished_moon_deepslate_stairs', smooth_slab: 'ad_astra:polished_moon_stone_slab', smooth_wall: 'tfg:rock/polished_moon_deepslate_wall',
|
||||
chiseled_brick: 'tfg:rock/chiseled_bricks_moon_deepslate'
|
||||
},
|
||||
|
||||
{
|
||||
brick_type: 'permafrost',
|
||||
brick: 'ad_astra:permafrost_bricks', brick_stairs: 'ad_astra:permafrost_brick_stairs', brick_slab: 'ad_astra:permafrost_brick_slab', brick_wall: 'ad_astra:permafrost_brick_wall',
|
||||
cracked_brick: 'ad_astra:cracked_permafrost_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_permafrost_stairs', cracked_slab: 'tfg:rock/cracked_bricks_permafrost_slab', cracked_wall: 'tfg:rock/cracked_bricks_permafrost_wall',
|
||||
mossy_brick: 'tfg:rock/mossy_bricks_permafrost', mossy_stairs: 'tfg:rock/mossy_bricks_permafrost_stairs', mossy_slab: 'tfg:rock/mossy_bricks_permafrost_slab', mossy_wall: 'tfg:rock/mossy_bricks_permafrost_wall',
|
||||
smooth_brick: 'ad_astra:polished_permafrost', smooth_stairs: 'ad_astra:polished_permafrost_stairs', smooth_slab: 'ad_astra:polished_permafrost_slab', smooth_wall: 'tfg:rock/polished_permafrost_wall',
|
||||
chiseled_brick: 'ad_astra:chiseled_permafrost_bricks'
|
||||
},
|
||||
|
||||
{
|
||||
brick_type: 'red_granite',
|
||||
brick: 'gtceu:red_granite_bricks', brick_stairs: 'tfg:rock/bricks_red_granite_stairs', brick_slab: 'tfg:rock/bricks_red_granite_slab', brick_wall: 'tfg:rock/bricks_red_granite_wall',
|
||||
cracked_brick: 'gtceu:cracked_red_granite_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_red_granite_stairs', cracked_slab: 'tfg:rock/cracked_bricks_red_granite_slab', cracked_wall: 'tfg:rock/cracked_bricks_red_granite_wall',
|
||||
mossy_brick: 'gtceu:mossy_red_granite_bricks', mossy_stairs: 'tfg:rock/mossy_bricks_red_granite_stairs', mossy_slab: 'tfg:rock/mossy_bricks_red_granite_slab', mossy_wall: 'tfg:rock/mossy_bricks_red_granite_wall',
|
||||
smooth_brick: 'gtceu:polished_red_granite', smooth_stairs: 'tfg:rock/polished_red_granite_stairs', smooth_slab: 'tfg:rock/polished_red_granite_slab', smooth_wall: 'tfg:rock/polished_red_granite_wall',
|
||||
chiseled_brick: 'gtceu:chiseled_red_granite'
|
||||
},
|
||||
|
||||
{
|
||||
brick_type: 'venus_sandstone',
|
||||
brick: 'ad_astra:venus_sandstone_bricks', brick_stairs: 'ad_astra:venus_sandstone_brick_stairs', brick_slab: 'ad_astra:venus_sandstone_brick_slab', brick_wall: 'tfg:rock/bricks_venus_sandstone_wall',
|
||||
cracked_brick: 'ad_astra:cracked_venus_sandstone_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_venus_sandstone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_venus_sandstone_slab', cracked_wall: 'tfg:rock/cracked_bricks_stone_wall',
|
||||
mossy_brick: null, mossy_stairs: null, mossy_slab: null, mossy_wall: null,
|
||||
smooth_brick: null, smooth_stairs: null, smooth_slab: null, smooth_wall: null,
|
||||
chiseled_brick: null
|
||||
},
|
||||
|
||||
{
|
||||
brick_type: 'stone',
|
||||
brick: 'minecraft:stone_bricks', brick_stairs: 'minecraft:stone_brick_stairs', brick_slab: 'minecraft:stone_brick_slab', brick_wall: 'minecraft:stone_brick_wall',
|
||||
cracked_brick: 'minecraft:cracked_stone_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_stone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_stone_slab', cracked_wall: 'tfg:rock/cracked_bricks_stone_wall',
|
||||
mossy_brick: 'minecraft:mossy_stone_bricks', mossy_stairs: 'minecraft:mossy_stone_brick_stairs', mossy_slab: 'minecraft:mossy_stone_brick_slab', mossy_wall: 'minecraft:mossy_stone_brick_wall',
|
||||
smooth_brick: 'minecraft:smooth_stone', smooth_stairs: 'tfg:rock/smooth_stone_stairs', smooth_slab: 'minecraft:smooth_stone_slab', smooth_wall: 'tfg:rock/smooth_stone_wall',
|
||||
chiseled_brick: 'minecraft:chiseled_stone_bricks'
|
||||
}
|
||||
]);
|
||||
|
||||
global.BRICK_INDEX = global.BRICK_INDEX.concat((AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => (
|
||||
{
|
||||
brick_type: stone,
|
||||
brick: `ad_astra:${stone}_stone_bricks`, brick_stairs: `ad_astra:${stone}_stone_brick_stairs`, brick_slab: `ad_astra:${stone}_stone_brick_slab`, brick_wall: `ad_astra:${stone}_stone_brick_wall`,
|
||||
cracked_brick: `ad_astra:cracked_${stone}_stone_bricks`, cracked_stairs: `tfg:rock/cracked_bricks_${stone}_stairs`, cracked_slab: `tfg:rock/cracked_bricks_${stone}_slab`, cracked_wall: `tfg:rock/cracked_bricks_${stone}_wall`,
|
||||
mossy_brick: `tfg:rock/mossy_bricks_${stone}`, mossy_stairs: `tfg:rock/mossy_bricks_${stone}_stairs`, mossy_slab: `tfg:rock/mossy_bricks_${stone}_slab`, mossy_wall: `tfg:rock/mossy_bricks_${stone}_wall`,
|
||||
smooth_brick: `ad_astra:polished_${stone}_stone`, smooth_stairs: `ad_astra:polished_${stone}_stone_stairs`, smooth_slab: `ad_astra:polished_${stone}_stone_slab`, smooth_wall: `tfg:rock/polished_${stone}_wall`,
|
||||
chiseled_brick: `ad_astra:chiseled_${stone}_stone_bricks`
|
||||
}
|
||||
)))
|
||||
|
||||
// #endregion BRICK_INDEX
|
||||
|
||||
// #region COBBLE_INDEX
|
||||
global.COBBLE_INDEX = (global.TFC_STONE_TYPES ? global.TFC_STONE_TYPES : []).map(tfc_stone => ({
|
||||
cobble_type: tfc_stone,
|
||||
block: `tfc:rock/cobble/${tfc_stone}`, stairs: `tfc:rock/cobble/${tfc_stone}_stairs`, slab: `tfc:rock/cobble/${tfc_stone}_slab`, wall: `tfc:rock/cobble/${tfc_stone}_wall`,
|
||||
mossy_block: `tfc:rock/mossy_cobble/${tfc_stone}`, mossy_stairs: `tfc:rock/mossy_cobble/${tfc_stone}_stairs`, mossy_slab: `tfc:rock/mossy_cobble/${tfc_stone}_slab`, mossy_wall: `tfc:rock/mossy_cobble/${tfc_stone}_wall`
|
||||
}));
|
||||
|
||||
global.COBBLE_INDEX = global.COBBLE_INDEX.concat([
|
||||
{
|
||||
cobble_type: 'deepslate',
|
||||
block: 'minecraft:cobbled_deepslate', stairs: 'minecraft:cobbled_deepslate_stairs', slab: 'minecraft:cobbled_deepslate_slab', wall: 'minecraft:cobbled_deepslate_wall',
|
||||
mossy_block: 'tfg:rock/mossy_cobble_deepslate', mossy_stairs: 'tfg:rock/mossy_cobble_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_cobble_deepslate_slab', mossy_wall: 'tfg:rock/mossy_cobble_deepslate_wall'
|
||||
},
|
||||
|
||||
{
|
||||
cobble_type: 'blackstone',
|
||||
block: 'tfg:rock/cobble_blackstone', stairs: 'tfg:rock/cobble_blackstone_stairs', slab: 'tfg:rock/cobble_blackstone_slab', wall: 'tfg:rock/cobble_blackstone_wall',
|
||||
mossy_block: 'tfg:rock/mossy_cobble_blackstone', mossy_stairs: 'tfg:rock/mossy_cobble_blackstone_stairs', mossy_slab: 'tfg:rock/mossy_cobble_blackstone_slab', mossy_wall: 'tfg:rock/mossy_cobble_blackstone_wall'
|
||||
},
|
||||
|
||||
{
|
||||
cobble_type: 'dripstone',
|
||||
block: 'tfg:rock/cobble_dripstone', stairs: 'tfg:rock/cobble_dripstone_stairs', slab: 'tfg:rock/cobble_dripstone_slab', wall: 'tfg:rock/cobble_dripstone_wall',
|
||||
mossy_block: 'tfg:rock/mossy_cobble_dripstone', mossy_stairs: 'tfg:rock/mossy_cobble_dripstone_stairs', mossy_slab: 'tfg:rock/mossy_cobble_dripstone_slab', mossy_wall: 'tfg:rock/mossy_cobble_dripstone_wall'
|
||||
},
|
||||
|
||||
{
|
||||
cobble_type: 'crackrack',
|
||||
block: 'tfg:rock/cobble_crackrack', stairs: 'tfg:rock/cobble_crackrack_stairs', slab: 'tfg:rock/cobble_crackrack_slab', wall: 'tfg:rock/cobble_crackrack_wall',
|
||||
mossy_block: 'tfg:rock/mossy_cobble_crackrack', mossy_stairs: 'tfg:rock/mossy_cobble_crackrack_stairs', mossy_slab: 'tfg:rock/mossy_cobble_crackrack_slab', mossy_wall: 'tfg:rock/mossy_cobble_crackrack_wall'
|
||||
},
|
||||
|
||||
{
|
||||
cobble_type: 'moon_deepslate',
|
||||
block: 'tfg:rock/cobble_moon_deepslate', stairs: 'tfg:rock/cobble_moon_deepslate_stairs', slab: 'tfg:rock/cobble_moon_deepslate_slab', wall: 'tfg:rock/cobble_moon_deepslate_wall',
|
||||
mossy_block: 'tfg:rock/mossy_cobble_moon_deepslate', mossy_stairs: 'tfg:rock/mossy_cobble_moon_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_cobble_moon_deepslate_slab', mossy_wall: 'tfg:rock/mossy_cobble_moon_deepslate_wall'
|
||||
},
|
||||
|
||||
{
|
||||
cobble_type: 'permafrost',
|
||||
block: 'tfg:rock/cobble_permafrost', stairs: 'tfg:rock/cobble_permafrost_stairs', slab: 'tfg:rock/cobble_permafrost_slab', wall: 'tfg:rock/cobble_permafrost_wall',
|
||||
mossy_block: 'tfg:rock/mossy_cobble_permafrost', mossy_stairs: 'tfg:rock/mossy_cobble_permafrost_stairs', mossy_slab: 'tfg:rock/mossy_cobble_permafrost_slab', mossy_wall: 'tfg:rock/mossy_cobble_permafrost_wall'
|
||||
},
|
||||
|
||||
{
|
||||
cobble_type: 'red_granite',
|
||||
block: 'gtceu:red_granite_cobblestone', stairs: 'tfg:rock/cobble_red_granite_stairs', slab: 'tfg:rock/cobble_red_granite_slab', wall: 'tfg:rock/cobble_red_granite_wall',
|
||||
mossy_block: 'gtceu:mossy_red_granite_cobblestone', mossy_stairs: 'tfg:rock/mossy_cobble_red_granite_stairs', mossy_slab: 'tfg:rock/mossy_cobble_red_granite_slab', mossy_wall: 'tfg:rock/mossy_cobble_red_granite_wall'
|
||||
},
|
||||
|
||||
{
|
||||
cobble_type: 'stone',
|
||||
block: 'minecraft:cobblestone', stairs: 'minecraft:cobblestone_stairs', slab: 'minecraft:cobblestone_slab', wall: 'minecraft:cobblestone_wall',
|
||||
mossy_block: 'minecraft:mossy_cobblestone', mossy_stairs: 'minecraft:mossy_cobblestone_stairs', mossy_slab: 'minecraft:mossy_cobblestone_slab', mossy_wall: 'minecraft:mossy_cobblestone_wall'
|
||||
}
|
||||
]);
|
||||
|
||||
global.COBBLE_INDEX = global.COBBLE_INDEX.concat((AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => (
|
||||
{
|
||||
cobble_type: stone,
|
||||
block: `ad_astra:${stone}_cobblestone`, stairs: `ad_astra:${stone}_cobblestone_stairs`, slab: `ad_astra:${stone}_cobblestone_slab`, wall: `tfg:rock/cobble_${stone}_wall`,
|
||||
mossy_block: `tfg:rock/mossy_cobble_${stone}`, mossy_stairs: `tfg:rock/mossy_cobble_${stone}_stairs`, mossy_slab: `tfg:rock/mossy_cobble_${stone}_slab`, mossy_wall: `tfg:rock/mossy_cobble_${stone}_wall`
|
||||
}
|
||||
)))
|
||||
|
||||
// #endregion COBBLE_INDEX
|
||||
|
||||
/**
|
||||
* Function for replacing a block with another block by crouch-right-clicking with a tool.
|
||||
*
|
||||
|
|
@ -408,85 +157,84 @@ function transformBlockWithItem(event, inputBlock, outputBlock, itemId, consumeI
|
|||
event.server.runCommandSilent(`execute in ${event.block.level.name.getString()} run setblock ${block.x} ${block.y} ${block.z} ${outputBlock}${state}`)
|
||||
};
|
||||
|
||||
// ================================================
|
||||
// Looking to add a recipe to JEI? It's in TFG-Core
|
||||
// ================================================
|
||||
|
||||
// Declare Events
|
||||
BlockEvents.rightClicked(event => {
|
||||
//Brick index events
|
||||
for (const b of global.BRICK_INDEX) {
|
||||
//brick -> cracked
|
||||
transformBlockWithTool(event, b.brick, b.cracked_brick, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
|
||||
transformBlockWithTool(event, b.brick_stairs, b.cracked_stairs, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
|
||||
transformBlockWithTool(event, b.brick_slab, b.cracked_slab, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
|
||||
transformBlockWithTool(event, b.brick_wall, b.cracked_wall, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
|
||||
//brick -> mossy
|
||||
transformBlockWithItem(event, b.brick, b.mossy_brick, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, b.brick, b.mossy_brick, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, b.brick_stairs, b.mossy_stairs, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, b.brick_stairs, b.mossy_stairs, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, b.brick_slab, b.mossy_slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, b.brick_slab, b.mossy_slab, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, b.brick_wall, b.mossy_wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, b.brick_wall, b.mossy_wall, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
//cracked -> mossy
|
||||
transformBlockWithItem(event, b.cracked_brick, b.mossy_brick, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, b.cracked_brick, b.mossy_brick, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, b.cracked_stairs, b.mossy_stairs, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, b.cracked_stairs, b.mossy_stairs, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, b.cracked_slab, b.mossy_slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, b.cracked_slab, b.mossy_slab, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, b.cracked_wall, b.mossy_wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, b.cracked_wall, b.mossy_wall, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
//mossy -> cracked
|
||||
transformBlockWithTool(event, b.mossy_brick, b.cracked_brick, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
|
||||
transformBlockWithTool(event, b.mossy_stairs, b.cracked_stairs, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
|
||||
transformBlockWithTool(event, b.mossy_slab, b.cracked_slab, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
|
||||
transformBlockWithTool(event, b.mossy_wall, b.cracked_wall, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
|
||||
//mossy -> brick
|
||||
transformBlockWithTool(event, b.mossy_brick, b.brick, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, b.mossy_brick, b.brick, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithTool(event, b.mossy_stairs, b.brick_stairs, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, b.mossy_stairs, b.brick_stairs, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithTool(event, b.mossy_slab, b.brick_slab, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, b.mossy_slab, b.brick_slab, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithTool(event, b.mossy_wall, b.brick_wall, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, b.mossy_wall, b.brick_wall, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
//cracked -> brick
|
||||
transformBlockWithItem(event, b.cracked_brick, b.brick, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true);
|
||||
transformBlockWithItem(event, b.cracked_stairs, b.brick_stairs, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true);
|
||||
transformBlockWithItem(event, b.cracked_slab, b.brick_slab, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true);
|
||||
transformBlockWithItem(event, b.cracked_wall, b.brick_wall, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true);
|
||||
// brick -> smooth
|
||||
transformBlockWithTool(event, b.brick, b.smooth_brick, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true);
|
||||
transformBlockWithTool(event, b.mossy_brick, b.smooth_brick, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true);
|
||||
transformBlockWithTool(event, b.cracked_brick, b.smooth_brick, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true);
|
||||
// smooth -> brick
|
||||
transformBlockWithTool(event, b.smooth_brick, b.cracked_brick, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
|
||||
transformBlockWithItem(event, b.smooth_brick, b.mossy_brick, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, b.smooth_brick, b.mossy_brick, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithTool(event, b.smooth_brick, b.brick, '#forge:tools/files', true, 'minecraft:block.beehive.shear', 'minecraft:crit', true);
|
||||
for (let [rockId, rock] of Object.entries(global.BIG_ROCK_TABLE)) {
|
||||
if (rock.bricks != null) {
|
||||
if (rock.bricks.cracked != null) {
|
||||
//brick -> cracked
|
||||
transformBlockWithTool(event, rock.bricks.block, rock.bricks.cracked.block, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
|
||||
transformBlockWithTool(event, rock.bricks.stair, rock.bricks.cracked.stair, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
|
||||
transformBlockWithTool(event, rock.bricks.slab, rock.bricks.cracked.slab, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
|
||||
transformBlockWithTool(event, rock.bricks.wall, rock.bricks.cracked.wall, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
|
||||
//cracked -> brick
|
||||
transformBlockWithItem(event, rock.bricks.cracked.block, rock.bricks.block, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true);
|
||||
transformBlockWithItem(event, rock.bricks.cracked.stair, rock.bricks.stair, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true);
|
||||
transformBlockWithItem(event, rock.bricks.cracked.slab, rock.bricks.slab, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true);
|
||||
transformBlockWithItem(event, rock.bricks.cracked.wall, rock.bricks.wall, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true);
|
||||
}
|
||||
if (rock.bricks.mossy != null) {
|
||||
//brick -> mossy
|
||||
transformBlockWithItem(event, rock.bricks.block, rock.bricks.mossy.block, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, rock.bricks.stair, rock.bricks.mossy.stair, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, rock.bricks.slab, rock.bricks.mossy.slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, rock.bricks.wall, rock.bricks.mossy.wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
//mossy -> brick
|
||||
transformBlockWithTool(event, rock.bricks.mossy.block, rock.bricks.block, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, rock.bricks.mossy.block, rock.bricks.block, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithTool(event, rock.bricks.mossy.stair, rock.bricks.stair, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, rock.bricks.mossy.stair, rock.bricks.stair, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithTool(event, rock.bricks.mossy.slab, rock.bricks.slab, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, rock.bricks.mossy.slab, rock.bricks.slab, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithTool(event, rock.bricks.mossy.wall, rock.bricks.wall, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, rock.bricks.mossy.wall, rock.bricks.wall, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
}
|
||||
if (rock.bricks.cracked != null && rock.bricks.mossy != null) {
|
||||
//cracked -> mossy
|
||||
transformBlockWithItem(event, rock.bricks.cracked.block, rock.bricks.mossy.block, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, rock.bricks.cracked.stair, rock.bricks.mossy.stair, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, rock.bricks.cracked.slab, rock.bricks.mossy.slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, rock.bricks.cracked.wall, rock.bricks.mossy.wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
//mossy -> cracked
|
||||
transformBlockWithTool(event, rock.bricks.mossy.block, rock.bricks.cracked.block, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
|
||||
transformBlockWithTool(event, rock.bricks.mossy.stair, rock.bricks.cracked.stair, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
|
||||
transformBlockWithTool(event, rock.bricks.mossy.slab, rock.bricks.cracked.slab, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
|
||||
transformBlockWithTool(event, rock.bricks.mossy.wall, rock.bricks.cracked.wall, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
|
||||
}
|
||||
if (rock.polished != null) {
|
||||
// brick -> smooth
|
||||
transformBlockWithTool(event, rock.bricks.block, rock.polished.block, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true);
|
||||
if (rock.bricks.mossy != null) {
|
||||
transformBlockWithTool(event, rock.bricks.mossy.block, rock.polished.block, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true);
|
||||
}
|
||||
if (rock.bricks.cracked != null) {
|
||||
transformBlockWithTool(event, rock.bricks.cracked.block, rock.polished.block, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (rock.cobble != null && rock.cobble.mossy) {
|
||||
//cobble -> mossy
|
||||
transformBlockWithItem(event, rock.cobble.block, rock.cobble.mossy.block, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, rock.cobble.stair, rock.cobble.mossy.stair, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, rock.cobble.slab, rock.cobble.mossy.slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, rock.cobble.wall, rock.cobble.mossy.wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
//mossy -> cobble
|
||||
transformBlockWithTool(event, rock.cobble.mossy.block, rock.cobble.block, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, rock.cobble.mossy.block, rock.cobble.block, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithTool(event, rock.cobble.mossy.stair, rock.cobble.stair, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, rock.cobble.mossy.stair, rock.cobble.stair, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithTool(event, rock.cobble.mossy.slab, rock.cobble.slab, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, rock.cobble.mossy.slab, rock.cobble.slab, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithTool(event, rock.cobble.mossy.wall, rock.cobble.wall, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, rock.cobble.mossy.wall, rock.cobble.wall, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
}
|
||||
}
|
||||
|
||||
//Cobble index events
|
||||
for (const c of global.COBBLE_INDEX) {
|
||||
//cobble -> mossy
|
||||
transformBlockWithItem(event, c.block, c.mossy_block, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, c.block, c.mossy_block, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, c.stairs, c.mossy_stairs, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, c.stairs, c.mossy_stairs, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, c.slab, c.mossy_slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, c.slab, c.mossy_slab, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, c.wall, c.mossy_wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, c.wall, c.mossy_wall, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
|
||||
//mossy -> cobble
|
||||
transformBlockWithTool(event, c.mossy_block, c.block, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, c.mossy_block, c.block, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithTool(event, c.mossy_stairs, c.stairs, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, c.mossy_stairs, c.stairs, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithTool(event, c.mossy_slab, c.slab, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, c.mossy_slab, c.slab, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithTool(event, c.mossy_wall, c.wall, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
transformBlockWithItem(event, c.mossy_wall, c.wall, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
|
||||
}
|
||||
|
||||
|
||||
//Misc Events
|
||||
transformBlockWithItem(event, 'gtceu:incoloy_ma_956_frame', 'tfg:glacian_wool_frame', 'tfg:glacian_wool', true, 2, 'block.wool.place', 'minecraft:happy_villager', true);
|
||||
transformBlockWithToolReturn(event, 'tfg:glacian_wool_frame', 'gtceu:incoloy_ma_956_frame', 'tfg:glacian_wool', 2,'#forge:tools/wire_cutters', true, 'minecraft:block.beehive.shear', 'minecraft:crit', true);
|
||||
|
|
@ -500,6 +248,12 @@ BlockEvents.rightClicked(event => {
|
|||
transformBlockWithItem(event, 'gtceu:incoloy_ma_956_frame', 'tfg:impure_moderate_core_frame', 'tfg:impure_graphite_moderator', true, 1, 'block.wool.place', 'minecraft:happy_villager', true);
|
||||
transformBlockWithToolReturn(event, 'tfg:impure_moderate_core_frame', 'gtceu:incoloy_ma_956_frame', 'tfg:impure_graphite_moderator', 1, '#forge:tools/wire_cutters', true, 'minecraft:block.beehive.shear', 'minecraft:crit', true);
|
||||
|
||||
transformBlockWithItem(event, 'gtceu:incoloy_ma_956_frame', 'tfg:copper_sandy_frame', 'tfg:copper_sandy', true, 1, 'block.wool.place', 'minecraft:happy_villager', true);
|
||||
transformBlockWithToolReturn(event, 'tfg:copper_sandy_frame', 'gtceu:incoloy_ma_956_frame', 'tfg:copper_sandy', 1, '#forge:tools/wire_cutters', true, 'minecraft:block.beehive.shear', 'minecraft:crit', true);
|
||||
|
||||
transformBlockWithItem(event, 'gtceu:incoloy_ma_956_frame', 'tfg:beryllium_sandy_frame', 'tfg:beryllium_sandy', true, 1, 'block.wool.place', 'minecraft:happy_villager', true);
|
||||
transformBlockWithToolReturn(event, 'tfg:beryllium_sandy_frame', 'gtceu:incoloy_ma_956_frame', 'tfg:beryllium_sandy', 1, '#forge:tools/wire_cutters', true, 'minecraft:block.beehive.shear', 'minecraft:crit', true);
|
||||
|
||||
});
|
||||
|
||||
// Makes scythes, hoes, and knives take damage when cutting grass
|
||||
|
|
|
|||
|
|
@ -1,14 +1,15 @@
|
|||
"use strict";
|
||||
|
||||
// TODO
|
||||
TFGServerEvents.dimensionalPowerConsumption(event => {
|
||||
event["add(java.lang.String,double)"]("minecraft:overworld", 10000);
|
||||
event["add(java.lang.String,double)"]("minecraft:the_nether", 20000);
|
||||
event["add(java.lang.String,double)"]("ad_astra:earth_orbit", 20000);
|
||||
event["add(java.lang.String,double)"]("ad_astra:moon", 50000);
|
||||
event["add(java.lang.String,double)"]("ad_astra:moon_orbit", 50000);
|
||||
event["add(java.lang.String,double)"]("ad_astra:mars", 100000);
|
||||
event["add(java.lang.String,double)"]("ad_astra:mars_orbit", 100000);
|
||||
event.add("minecraft:overworld", 10000);
|
||||
event.add("minecraft:the_nether", 20000);
|
||||
event.add("ad_astra:earth_orbit", 20000);
|
||||
event.add("ad_astra:moon", 50000);
|
||||
event.add("ad_astra:moon_orbit", 50000);
|
||||
event.add("ad_astra:mars", 100000);
|
||||
event.add("ad_astra:mars_orbit", 100000);
|
||||
event.add("ad_astra:venus", 200000);
|
||||
event.add("ad_astra:venus_orbit", 200000);
|
||||
});
|
||||
|
||||
// Vase Sounds
|
||||
|
|
|
|||
|
|
@ -159,7 +159,7 @@ function registerTFGFoodData(event) {
|
|||
});
|
||||
|
||||
event.foodItem("tfg:food/cooked_long_pig_filet", (food) => {
|
||||
food.hunger(2);
|
||||
food.hunger(4);
|
||||
food.saturation(2);
|
||||
food.protein(2);
|
||||
food.decayModifier(2.25);
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
/** @param {Internal.TFCDataEventJS} event */
|
||||
function registerTFGFLPlanters(event) {
|
||||
const $FarmlandBlockEntity = Java.loadClass("net.dries007.tfc.common.blockentities.FarmlandBlockEntity")
|
||||
|
||||
event.firmalifePlantable(
|
||||
"tfg:sunflower_seeds",
|
||||
"large",
|
||||
|
|
@ -11,7 +13,7 @@ function registerTFGFLPlanters(event) {
|
|||
0.15,
|
||||
"tfg:sunflower_seeds",
|
||||
"tfg:sunflower_product",
|
||||
"nitrogen",
|
||||
$FarmlandBlockEntity.NutrientType.NITROGEN,
|
||||
[
|
||||
"tfg:block/crop/sunflower_greenhouse_0",
|
||||
"tfg:block/crop/sunflower_greenhouse_1",
|
||||
|
|
@ -29,7 +31,7 @@ function registerTFGFLPlanters(event) {
|
|||
0.15,
|
||||
"tfg:rapeseed_seeds",
|
||||
"tfg:rapeseed_product",
|
||||
"phosphorous",
|
||||
$FarmlandBlockEntity.NutrientType.PHOSPHOROUS,
|
||||
[
|
||||
"tfg:block/crop/rapeseed_greenhouse_0",
|
||||
"tfg:block/crop/rapeseed_greenhouse_1",
|
||||
|
|
@ -47,7 +49,7 @@ function registerTFGFLPlanters(event) {
|
|||
0.2,
|
||||
"tfg:flax_seeds",
|
||||
"tfg:flax_product",
|
||||
"nitrogen",
|
||||
$FarmlandBlockEntity.NutrientType.NITROGEN,
|
||||
[
|
||||
"tfg:block/crop/flax_age_0",
|
||||
"tfg:block/crop/flax_age_1",
|
||||
|
|
@ -65,7 +67,7 @@ function registerTFGFLPlanters(event) {
|
|||
0.15,
|
||||
"betterend:amber_root_seeds",
|
||||
"betterend:amber_root_product",
|
||||
"phosphorous",
|
||||
$FarmlandBlockEntity.NutrientType.PHOSPHOROUS,
|
||||
[
|
||||
"betterend:block/amber_root_0",
|
||||
"betterend:block/amber_root_1",
|
||||
|
|
@ -83,7 +85,7 @@ function registerTFGFLPlanters(event) {
|
|||
0.15,
|
||||
"betterend:blossom_berry_seeds",
|
||||
"betterend:blossom_berry_product",
|
||||
"potassium",
|
||||
$FarmlandBlockEntity.NutrientType.POTASSIUM,
|
||||
[
|
||||
"betterend:block/blossom_berry_seed_0",
|
||||
"betterend:block/blossom_berry_seed_1",
|
||||
|
|
@ -101,7 +103,7 @@ function registerTFGFLPlanters(event) {
|
|||
0.15,
|
||||
"betterend:bolux_mushroom_seeds",
|
||||
"betterend:bolux_mushroom_product",
|
||||
"phosphorous",
|
||||
$FarmlandBlockEntity.NutrientType.PHOSPHOROUS,
|
||||
[
|
||||
"betterend:block/bolux_mushroom_greenhouse_0",
|
||||
"betterend:block/bolux_mushroom_greenhouse_1",
|
||||
|
|
@ -119,7 +121,7 @@ function registerTFGFLPlanters(event) {
|
|||
0.15,
|
||||
"betterend:chorus_mushroom_seeds",
|
||||
"betterend:chorus_mushroom_product",
|
||||
"phosphorous",
|
||||
$FarmlandBlockEntity.NutrientType.PHOSPHOROUS,
|
||||
[
|
||||
"betterend:block/chorus_mushroom_0",
|
||||
"betterend:block/chorus_mushroom_1",
|
||||
|
|
@ -137,7 +139,7 @@ function registerTFGFLPlanters(event) {
|
|||
0.15,
|
||||
"betterend:cave_pumpkin_plant_seeds",
|
||||
"betterend:cave_pumpkin",
|
||||
"phosphorous",
|
||||
$FarmlandBlockEntity.NutrientType.PHOSPHOROUS,
|
||||
[
|
||||
"betterend:block/cave_pumpkin_greenhouse_0",
|
||||
"betterend:block/cave_pumpkin_greenhouse_1",
|
||||
|
|
@ -155,7 +157,7 @@ function registerTFGFLPlanters(event) {
|
|||
0.15,
|
||||
"betterend:shadow_berry_seeds",
|
||||
"betterend:shadow_berry_product",
|
||||
"potassium",
|
||||
$FarmlandBlockEntity.NutrientType.POTASSIUM,
|
||||
[
|
||||
"betterend:block/shadow_berry_greenhouse_0",
|
||||
"betterend:block/shadow_berry_greenhouse_1",
|
||||
|
|
|
|||
|
|
@ -179,4 +179,4 @@ function registerTFGBiomassRecipes(event) {
|
|||
.itemOutputs('gtceu:meat_dust', 'gtceu:tiny_bone_dust')
|
||||
.duration(100)
|
||||
.EUt(2)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -276,6 +276,14 @@ function registerTFGFoodRecipes(event) {
|
|||
.duration(300)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
event.recipes.gtceu.mixer(`lactose_milk_vinegar_${item.id}`)
|
||||
.circuit(1)
|
||||
.inputFluids(Fluid.of(item.milk, 1000), Fluid.of('tfc:vinegar', 100))
|
||||
.chancedOutput('gtceu:lactose_dust', 1000, 0)
|
||||
.outputFluids(Fluid.of(item.curdled_fluid, 1000))
|
||||
.duration(300)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
global.processorRecipe(event, `${item.id}_curd`, 1200, 16, {
|
||||
itemOutputs: [item.curd],
|
||||
fluidInputs: [Fluid.of(item.curdled_fluid, 1000)],
|
||||
|
|
@ -295,8 +303,7 @@ function registerTFGFoodRecipes(event) {
|
|||
itemOutputProvider: TFC.isp.of(`4x ${item.unsalted_cheese}`).copyOldestFood()
|
||||
})
|
||||
|
||||
if (item.salted_wheel === null || item.salted_cheese === null)
|
||||
return;
|
||||
if (item.salted_wheel === null || item.salted_cheese === null) return;
|
||||
|
||||
global.processorRecipe(event, `${item.id}_salted_cheese_wheel`, 1000, 16, {
|
||||
circuit: 2,
|
||||
|
|
@ -373,8 +380,8 @@ function registerTFGFoodRecipes(event) {
|
|||
for (const cshape of chocolateShape) {
|
||||
global.processorRecipe(event, `${ctype}_${cshape}_melting`, 100, 16, {
|
||||
circuit: 1,
|
||||
itemInputs:[cshape == "" ? `firmalife:food/${ctype}` : `tfcchannelcasting:food/${ctype}${cshape}`],
|
||||
fluidOutputs:[cshape == "" ? Fluid.of(`tfcchannelcasting:${ctype}`, 144) : Fluid.of(`tfcchannelcasting:${ctype}`, 100)],
|
||||
itemInputs:[cshape === "" ? `firmalife:food/${ctype}` : `tfcchannelcasting:food/${ctype}${cshape}`],
|
||||
fluidOutputs:[cshape === "" ? Fluid.of(`tfcchannelcasting:${ctype}`, 144) : Fluid.of(`tfcchannelcasting:${ctype}`, 100)]
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
@ -382,9 +389,9 @@ function registerTFGFoodRecipes(event) {
|
|||
for (const ctype of chocolateType) {
|
||||
for (const cshape of chocolateShape) {
|
||||
global.processorRecipe(event, `${ctype}_${cshape}_casting`, 100, 16, {
|
||||
fluidInputs: [cshape == "" ? Fluid.of(`tfcchannelcasting:${ctype}`, 144) : Fluid.of(`tfcchannelcasting:${ctype}`, 100)],
|
||||
itemOutputs: [cshape == "" ? `firmalife:food/${ctype}` : `tfcchannelcasting:food/${ctype}${cshape}`],
|
||||
itemOutputProvider: TFC.isp.of(cshape == "" ? `firmalife:food/${ctype}` : `tfcchannelcasting:food/${ctype}${cshape}`).resetFood(),
|
||||
fluidInputs: [cshape === "" ? Fluid.of(`tfcchannelcasting:${ctype}`, 144) : Fluid.of(`tfcchannelcasting:${ctype}`, 100)],
|
||||
itemOutputs: [cshape === "" ? `firmalife:food/${ctype}` : `tfcchannelcasting:food/${ctype}${cshape}`],
|
||||
itemOutputProvider: TFC.isp.of(cshape === "" ? `firmalife:food/${ctype}` : `tfcchannelcasting:food/${ctype}${cshape}`).resetFood(),
|
||||
notConsumable: [chocolatemolds[chocolateShape.indexOf(cshape)]]
|
||||
})
|
||||
}
|
||||
|
|
@ -411,7 +418,7 @@ function registerTFGFoodRecipes(event) {
|
|||
const brining_ingredients = smoking_meats.concat(brining_veg);
|
||||
|
||||
brining_ingredients.forEach(item => {
|
||||
global.processorRecipeText(event, `${item.replace(/:/g, "/")}/brining`, 200, 16, "tfg.food_recipe.brining", {
|
||||
global.processorRecipeText(event, `${linuxUnfucker(item)}/brining`, 200, 16, "tfg.food_recipe.brining", {
|
||||
circuit: 5,
|
||||
itemInputs: [item],
|
||||
itemOutputs: [item],
|
||||
|
|
@ -421,7 +428,7 @@ function registerTFGFoodRecipes(event) {
|
|||
})
|
||||
|
||||
smoking_meats.forEach(item => {
|
||||
global.processorRecipeText(event, `${item.replace(/:/g, "/")}/smoking`, 200, 16, "tfg.food_recipe.smoking", {
|
||||
global.processorRecipeText(event, `${linuxUnfucker(item)}/smoking`, 200, 16, "tfg.food_recipe.smoking", {
|
||||
circuit: 6,
|
||||
itemInputs: [item],
|
||||
itemOutputs: [item],
|
||||
|
|
@ -431,7 +438,7 @@ function registerTFGFoodRecipes(event) {
|
|||
})
|
||||
|
||||
smoking_cheese.forEach(item => {
|
||||
global.processorRecipeText(event, `${item.replace(/:/g, "/")}/smoking`, 200, 16, "tfg.food_recipe.smoking", {
|
||||
global.processorRecipeText(event, `${linuxUnfucker(item)}/smoking`, 200, 16, "tfg.food_recipe.smoking", {
|
||||
circuit: 6,
|
||||
itemInputs: [item],
|
||||
itemOutputs: [item],
|
||||
|
|
@ -441,7 +448,7 @@ function registerTFGFoodRecipes(event) {
|
|||
})
|
||||
|
||||
drying_fruits.forEach(item => {
|
||||
global.processorRecipeText(event, `${item.replace(/:/g, "/")}/drying`, 200, 16, "tfg.food_recipe.drying", {
|
||||
global.processorRecipeText(event, `${linuxUnfucker(item)}/drying`, 200, 16, "tfg.food_recipe.drying", {
|
||||
circuit: 6,
|
||||
itemInputs: [item],
|
||||
itemOutputs: [item],
|
||||
|
|
@ -451,7 +458,7 @@ function registerTFGFoodRecipes(event) {
|
|||
})
|
||||
|
||||
drying_recipes.forEach(item => {
|
||||
global.processorRecipeText(event, `${item.input.replace(/:/g, "/")}/drying`, 200, 16, "tfg.food_recipe.drying", {
|
||||
global.processorRecipeText(event, `${linuxUnfucker(item.input)}/drying`, 200, 16, "tfg.food_recipe.drying", {
|
||||
circuit: 6,
|
||||
itemInputs: [item.input],
|
||||
itemOutputs: [item.output],
|
||||
|
|
@ -693,7 +700,7 @@ function registerTFGFoodRecipes(event) {
|
|||
|
||||
//#region Pizza
|
||||
|
||||
global.processorRecipe(event, "pizza_no_extra", 600, 16, {
|
||||
global.processorRecipe(event, "pizza_no_extra", 600, GTValues.VHA[GTValues.LV], {
|
||||
circuit: 3,
|
||||
itemInputs: ["firmalife:food/pizza_dough", "firmalife:food/tomato_sauce", "firmalife:food/shredded_cheese"],
|
||||
itemOutputs: ["firmalife:food/raw_pizza"],
|
||||
|
|
@ -703,7 +710,7 @@ function registerTFGFoodRecipes(event) {
|
|||
)
|
||||
})
|
||||
|
||||
global.processorRecipe(event, "pizza_1_extra", 600, GTValues.VHA[GTValues.MV], {
|
||||
global.processorRecipe(event, "pizza_1_extra", 600, GTValues.VHA[GTValues.LV], {
|
||||
circuit: 1,
|
||||
itemInputs: ["firmalife:food/pizza_dough", "firmalife:food/tomato_sauce", "firmalife:food/shredded_cheese", "#firmalife:foods/pizza_ingredients"],
|
||||
itemOutputs: ["firmalife:food/raw_pizza"],
|
||||
|
|
@ -713,7 +720,7 @@ function registerTFGFoodRecipes(event) {
|
|||
)
|
||||
})
|
||||
|
||||
global.processorRecipe(event, "pizza_2_extra", 600, GTValues.VHA[GTValues.MV], {
|
||||
global.processorRecipe(event, "pizza_2_extra", 600, GTValues.VHA[GTValues.LV], {
|
||||
circuit: 2,
|
||||
itemInputs: ["firmalife:food/pizza_dough", "firmalife:food/tomato_sauce", "firmalife:food/shredded_cheese", "2x #firmalife:foods/pizza_ingredients"],
|
||||
itemOutputs: ["firmalife:food/raw_pizza"],
|
||||
|
|
@ -887,6 +894,22 @@ function registerTFGFoodRecipes(event) {
|
|||
itemOutputProvider: TFC.isp.of('firmalife:food/soy_mixture').copyFood()
|
||||
})
|
||||
|
||||
global.processorRecipe(event, 'soy_mixture_sea_water', 300, 8, {
|
||||
circuit: 1,
|
||||
itemInputs: ['tfc:food/soybean'],
|
||||
fluidInputs: ['tfc:salt_water 50'],
|
||||
itemOutputs: ['firmalife:food/soy_mixture'],
|
||||
itemOutputProvider: TFC.isp.of('firmalife:food/soy_mixture').copyFood()
|
||||
})
|
||||
|
||||
global.processorRecipe(event, 'soy_mixture_salt_water', 300, 8, {
|
||||
circuit: 1,
|
||||
itemInputs: ['tfc:food/soybean'],
|
||||
fluidInputs: ['gtceu:salt_water 25'],
|
||||
itemOutputs: ['firmalife:food/soy_mixture'],
|
||||
itemOutputProvider: TFC.isp.of('firmalife:food/soy_mixture').copyFood()
|
||||
})
|
||||
|
||||
global.processorRecipe(event, "brown_mushroom", 100, 8, {
|
||||
circuit: 30,
|
||||
itemInputs: ["minecraft:brown_mushroom_block"],
|
||||
|
|
@ -951,7 +974,7 @@ function registerTFGFoodRecipes(event) {
|
|||
//#region Alcohols
|
||||
|
||||
global.TFC_ALCOHOL.forEach(alcohol => {
|
||||
global.processorRecipe(event, alcohol.id.replace(/:/g, "_"), 2400, 1, {
|
||||
global.processorRecipe(event, linuxUnfucker(alcohol.id), 2400, 1, {
|
||||
itemInputs: [alcohol.ingredient],
|
||||
fluidInputs: ['#tfg:clean_water 500', 'firmalife:yeast_starter 10'],
|
||||
fluidOutputs: [Fluid.of(alcohol.id, 500)],
|
||||
|
|
@ -1173,7 +1196,7 @@ function registerTFGFoodRecipes(event) {
|
|||
.duration(60)
|
||||
.EUt(16)
|
||||
|
||||
event.shaped('4x tfc:powder/salt', ['A', 'B'], {A: '#forge:dusts/salt', B: '#forge:tools/mortars'})
|
||||
event.shapeless('4x tfc:powder/salt', ['#forge:dusts/salt', '#forge:tools/mortars'])
|
||||
.id(`tfg:mortar/salt`)
|
||||
|
||||
//#endregion
|
||||
|
|
@ -1417,7 +1440,7 @@ function registerTFGFoodRecipes(event) {
|
|||
*/
|
||||
const beer = ['tfc:beer', 'tfcagedalcohol:aged_beer'];
|
||||
beer.forEach(beerType => {
|
||||
global.processorRecipe(event, `raw_beer_battered_cheese_curds/${beerType.replace(':', '_')}`, 20*5, GTValues.VA[GTValues.ULV], {
|
||||
global.processorRecipe(event, `raw_beer_battered_cheese_curds/${linuxUnfucker(beerType)}`, 20*5, GTValues.VA[GTValues.ULV], {
|
||||
itemInputs: ['4x #tfg:foods/cheese_curds', '#tfc:foods/flour', 'tfc:powder/salt', '#forge:eggs'],
|
||||
fluidInputs: [`${beerType} 100`],
|
||||
itemOutputs: ['4x tfg:food/raw_beer_battered_cheese_curds'],
|
||||
|
|
@ -1707,9 +1730,9 @@ function registerTFGFoodRecipes(event) {
|
|||
spice.plant,
|
||||
'#forge:tools/knives'
|
||||
]
|
||||
).id(`tfg:crafting/${spice.product.replace(':', '_')}`);
|
||||
).id(`tfg:crafting/${linuxUnfucker(spice.product)}`);
|
||||
|
||||
event.recipes.gtceu.food_processor(`tfg:${spice.product.replace(':', '_')}`)
|
||||
event.recipes.gtceu.food_processor(`tfg:${linuxUnfucker(spice.product)}`)
|
||||
.itemInputs(spice.plant)
|
||||
.itemOutputs(Item.of(spice.product).withCount(2))
|
||||
.duration(10)
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ function registerTFGMealBagRecipes(event) {
|
|||
.itemInputs('1x tfg:used_foil_pack')
|
||||
.inputFluids(Fluid.of('gtceu:distilled_water', 10))
|
||||
.itemOutputs('1x tfg:clean_foil_pack')
|
||||
.duration(200)
|
||||
.duration(50)
|
||||
.circuit(2)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
|
|
@ -68,7 +68,8 @@ function registerTFGMealBagRecipes(event) {
|
|||
result: { item: 'tfg:clean_foil_pack' }
|
||||
}).id('tfg:ae_transform/clean_foil_pack')
|
||||
|
||||
event.recipes.greate.splashing(['tfg:clean_foil_pack'], 'tfg:used_foil_pack')
|
||||
event.recipes.greate.splashing(['tfg:clean_foil_pack'], ['tfg:used_foil_pack', Fluid.of('minecraft:water', 100)])
|
||||
.recipeTier(0)
|
||||
.id('tfg:splashing/clean_foil_pack')
|
||||
|
||||
event.shapeless('1x tfg:used_foil_pack', [
|
||||
|
|
@ -85,24 +86,5 @@ function registerTFGMealBagRecipes(event) {
|
|||
]).id(`tfg:shapeless/emptying/freeze_dried/${fruit.name}`)
|
||||
})
|
||||
|
||||
// Recycling
|
||||
event.recipes.gtceu.macerator('gtceu:macerator/recycling/clean_foil_pack')
|
||||
.itemInputs('tfg:clean_foil_pack')
|
||||
.itemOutputs(
|
||||
ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Aluminium, 1),
|
||||
ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Polyethylene, 1)
|
||||
)
|
||||
.duration(GTMaterials.Aluminium.getMass() * 1)
|
||||
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/recycling/clean_foil_pack')
|
||||
.itemInputs('tfg:clean_foil_pack')
|
||||
.itemOutputs(
|
||||
ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Aluminium, 2),
|
||||
ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Ash, 1)
|
||||
)
|
||||
.duration(GTMaterials.Aluminium.getMass() * 1)
|
||||
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
TFGHelpers.registerMaterialInfo('tfg:clean_foil_pack', [GTMaterials.Aluminium, 0.25, GTMaterials.Polyethylene, 0.25])
|
||||
}
|
||||
|
|
@ -66,6 +66,7 @@ function registerTFGFoodItemTags(event) {
|
|||
event.add('tfg:raw_dinosaur_meat', 'tfg:food/raw_cruncher_ribs')
|
||||
event.add('tfg:raw_dinosaur_meat', 'tfg:food/raw_surfer_steak')
|
||||
event.add('tfg:raw_dinosaur_meat', 'wan_ancient_beasts:raw_ancient_meat')
|
||||
// TODO add meat for charger, raider, snatcher
|
||||
|
||||
/**
|
||||
* List of items that can make light stock.
|
||||
|
|
@ -148,9 +149,9 @@ function registerTFGFoodItemTags(event) {
|
|||
'firmalife:food/yak_curd',
|
||||
'firmalife:food/goat_curd',
|
||||
'firmalife:food/milk_curd',
|
||||
'tfc_gurman:ox_curd',
|
||||
'tfc_gurman:sheep_curd',
|
||||
'tfc_gurman:alpaca_curd'
|
||||
'tfc_gourmet:ox_curd',
|
||||
'tfc_gourmet:sheep_curd',
|
||||
'tfc_gourmet:alpaca_curd'
|
||||
];
|
||||
cheeseCurds.forEach(item => {
|
||||
event.add('tfg:foods/cheese_curds', item);
|
||||
|
|
@ -176,7 +177,7 @@ function registerTFGFoodItemTags(event) {
|
|||
'#firmalife:foods/cheeses',
|
||||
'tfg:food/slice_of_cheese',
|
||||
'firmalife:food/shredded_cheese',
|
||||
'#tfc_gurman:foods/brinza'
|
||||
'#tfc_gourmet:foods/brinza'
|
||||
];
|
||||
cheeses.forEach(item => {
|
||||
event.add('tfg:foods/cheeses', item);
|
||||
|
|
@ -238,6 +239,7 @@ function registerTFGFoodItemTags(event) {
|
|||
*/
|
||||
const usable_in_meal_bag = [
|
||||
'#tfc:foods/meats',
|
||||
'#minecraft:fishes',
|
||||
'#tfc:foods/grains',
|
||||
'#tfc:foods/vegetables',
|
||||
'#tfc:foods/fruits',
|
||||
|
|
@ -267,12 +269,12 @@ function registerTFGFoodItemTags(event) {
|
|||
'firmalife:food/toast_with_butter',
|
||||
'firmalife:food/toast_with_jam',
|
||||
'firmalife:food/butter',
|
||||
'tfc_gurman:adjika',
|
||||
'tfc_gurman:tzatziki',
|
||||
'tfc_gurman:falafel',
|
||||
'tfc_gurman:hummus',
|
||||
'tfc_gurman:sauerkraut',
|
||||
'tfc_gurman:bratwurst'
|
||||
'tfc_gourmet:adjika',
|
||||
'tfc_gourmet:tzatziki',
|
||||
'tfc_gourmet:falafel',
|
||||
'tfc_gourmet:hummus',
|
||||
'tfc_gourmet:sauerkraut',
|
||||
'tfc_gourmet:bratwurst'
|
||||
];
|
||||
usable_in_meal_bag.forEach(item => {
|
||||
event.add('tfg:foods/usable_in_meal_bag', item);
|
||||
|
|
@ -357,4 +359,4 @@ function registerTFGFoodBlockTags(event) {
|
|||
|
||||
event.add('ad_astra:destroyed_in_space', '#tfc:wild_fruits')
|
||||
event.add('ad_astra:destroyed_in_space', '#minecraft:saplings')
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,7 +38,6 @@ const materials = [
|
|||
{materialName: 'quartzite_tfc', nameColor: '#b8bab8', itemName: 'gtceu:exquisite_quartzite_gem', indexNumber: 0.186},
|
||||
{materialName: 'realgar_tfc', nameColor: '#c22e28', itemName: 'gtceu:exquisite_realgar_gem', indexNumber: 0.187},
|
||||
{materialName: 'malachite_tfc', nameColor: '#00b789', itemName: 'gtceu:exquisite_malachite_gem', indexNumber: 0.188},
|
||||
{materialName: 'glass_tfc', nameColor: '#c2c2c6', itemName: 'gtceu:exquisite_glass_gem', indexNumber: 0.189},
|
||||
{materialName: 'olivine_tfc', nameColor: '#7fad03', itemName: 'gtceu:exquisite_olivine_gem', indexNumber: 0.171},
|
||||
{materialName: 'opal_tfc', nameColor: '#bdadb6', itemName: 'gtceu:exquisite_opal_gem', indexNumber: 0.172},
|
||||
{materialName: 'amethyst_tfc', nameColor: '#9b78ba', itemName: 'gtceu:exquisite_amethyst_gem', indexNumber: 0.173},
|
||||
|
|
|
|||
115
kubejs/server_scripts/tfg/machines/recipes.bakelite.js
Normal file
115
kubejs/server_scripts/tfg/machines/recipes.bakelite.js
Normal file
|
|
@ -0,0 +1,115 @@
|
|||
"use strict";
|
||||
|
||||
function registerTFGBakeliteRecipes(event) {
|
||||
|
||||
// Make PE exclusively MV+, it's fine if the LCR recipe stays LV since you can't make an LCR in LV anyway
|
||||
event.recipes.gtceu.chemical_reactor('gtceu:polyethylene_from_oxygen')
|
||||
.inputFluids('gtceu:oxygen 1000', 'gtceu:ethylene 144')
|
||||
.circuit(1)
|
||||
.outputFluids('gtceu:polyethylene 216')
|
||||
.duration(2 * 20)
|
||||
.EUt(GTValues.VA[GTValues.MV])
|
||||
|
||||
event.recipes.gtceu.chemical_reactor('gtceu:polyethylene_from_air')
|
||||
.inputFluids('gtceu:air 1000', 'gtceu:ethylene 144')
|
||||
.circuit(1)
|
||||
.outputFluids('gtceu:polyethylene 144')
|
||||
.duration(2 * 20)
|
||||
.EUt(GTValues.VA[GTValues.MV])
|
||||
|
||||
// Formaldehyde
|
||||
event.recipes.gtceu.chemical_reactor('tfg:formaldehyde_from_methane')
|
||||
.inputFluids('gtceu:methane 1000', 'gtceu:oxygen 1000')
|
||||
.outputFluids('gtceu:formaldehyde 1000', 'gtceu:hydrogen 2000')
|
||||
.circuit(1)
|
||||
.duration(200)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
// add phenol and methane to distillation
|
||||
event.recipes.gtceu.distillation_tower('gtceu:distill_creosote')
|
||||
.inputFluids('gtceu:creosote 1000')
|
||||
.outputFluids('gtceu:lubricant 500')
|
||||
.outputFluids('gtceu:phenol 50')
|
||||
.outputFluids('gtceu:carbon_dioxide 200')
|
||||
.outputFluids('gtceu:methane 250')
|
||||
// this adds single-block distillery recipes too
|
||||
.disableDistilleryRecipes(false)
|
||||
.duration(8 * 20)
|
||||
.EUt(96)
|
||||
|
||||
event.recipes.gtceu.chemical_reactor('tfg:syngas_to_methane')
|
||||
.inputFluids('tfg:syngas 1000')
|
||||
.notConsumable('#forge:dusts/silver')
|
||||
.outputFluids('gtceu:methane 100')
|
||||
.duration(100)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
event.recipes.gtceu.chemical_reactor('tfg:phenolic_resin')
|
||||
.inputFluids('gtceu:phenol 500', 'gtceu:formaldehyde 1000')
|
||||
.notConsumable('#forge:dusts/sodium_hydroxide')
|
||||
.outputFluids('tfg:phenolic_resin 1000')
|
||||
.duration(100)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
event.recipes.gtceu.mixer('tfg:bakelite_wood')
|
||||
.inputFluids('tfg:phenolic_resin 144')
|
||||
.itemInputs('tfg:treated_chipboard_composite')
|
||||
.outputFluids('tfg:bakelite 144')
|
||||
.duration(100)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
event.recipes.gtceu.mixer('tfg:bakelite_asbestos')
|
||||
.inputFluids('tfg:phenolic_resin 144')
|
||||
.itemInputs('#forge:dusts/asbestos')
|
||||
.outputFluids('tfg:bakelite 144')
|
||||
.duration(100)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
event.remove({ id: 'gtceu:assembler/phenolic_board' })
|
||||
|
||||
event.recipes.gtceu.forming_press('tfg:phenolic_board_lv')
|
||||
.itemInputs('2x #forge:foils/bakelite', '2x minecraft:paper', 'gtceu:resin_circuit_board')
|
||||
.itemOutputs('gtceu:phenolic_circuit_board')
|
||||
.duration(7.5 * 20)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
event.recipes.gtceu.assembler('tfg:phenolic_board_mv')
|
||||
.itemInputs('2x #forge:foils/bakelite', 'gtceu:wood_plate')
|
||||
.inputFluids('gtceu:phenol 50')
|
||||
.itemOutputs('gtceu:phenolic_circuit_board')
|
||||
.duration(7.5 * 20)
|
||||
.EUt(GTValues.VA[GTValues.MV])
|
||||
|
||||
event.recipes.gtceu.assembler('tfg:phenolic_board_mv_pe')
|
||||
.itemInputs('2x #forge:foils/polyethylene', 'gtceu:wood_plate')
|
||||
.inputFluids('gtceu:phenol 50')
|
||||
.itemOutputs('gtceu:phenolic_circuit_board')
|
||||
.duration(7.5 * 20)
|
||||
.EUt(GTValues.VA[GTValues.MV])
|
||||
|
||||
// machine hull changes/additions
|
||||
event.replaceInput({ id: 'gtceu:shaped/mv_machine_hull' }, '#forge:plates/wrought_iron', '#forge:plates/bakelite')
|
||||
|
||||
event.recipes.gtceu.assembler('tfg:ulv_hull_bakelite')
|
||||
.itemInputs('gtceu:ulv_machine_casing', '2x #forge:single_cables/red_alloy')
|
||||
.inputFluids('tfg:bakelite 432')
|
||||
.itemOutputs('gtceu:ulv_machine_hull')
|
||||
.duration(25)
|
||||
.EUt(16)
|
||||
|
||||
event.recipes.gtceu.assembler('tfg:lv_hull_bakelite')
|
||||
.itemInputs('gtceu:lv_machine_casing', '2x #forge:single_cables/tin')
|
||||
.inputFluids('tfg:bakelite 432')
|
||||
.itemOutputs('gtceu:lv_machine_hull')
|
||||
.duration(50)
|
||||
.EUt(16)
|
||||
|
||||
event.shaped('gtceu:lv_hermetic_casing', [
|
||||
'AAA',
|
||||
'ABA',
|
||||
'AAA'
|
||||
], {
|
||||
A: '#forge:plates/steel',
|
||||
B: '#forge:storage_blocks/bakelite'
|
||||
}).id('tfg:shaped/lv_hermetic_casing_bakelite')
|
||||
}
|
||||
|
|
@ -22,7 +22,7 @@ function registerTFGCasingRecipes(event) {
|
|||
)
|
||||
.inputFluids(Fluid.of('gtceu:epoxy', 144))
|
||||
.itemOutputs(Item.of('tfg:superconductor_coil_small', 4 * multiplier))
|
||||
.circuit(4)
|
||||
.circuit(6)
|
||||
.duration(400)
|
||||
.EUt(GTValues.VA[GTValues.MV])
|
||||
|
||||
|
|
@ -34,7 +34,7 @@ function registerTFGCasingRecipes(event) {
|
|||
ChemicalHelper.get(TagPrefix.wireGtSingle, GTMaterials[type.materialId], 4))
|
||||
.inputFluids(Fluid.of('gtceu:epoxy', 144))
|
||||
.itemOutputs(Item.of('tfg:superconductor_coil_large', 4 * multiplier))
|
||||
.circuit(7)
|
||||
.circuit(6)
|
||||
.duration(600)
|
||||
.EUt(GTValues.VA[GTValues.MV])
|
||||
})
|
||||
|
|
@ -97,16 +97,6 @@ function registerTFGCasingRecipes(event) {
|
|||
.itemOutputs('1x tfg:reflector')
|
||||
.circuit(6)
|
||||
.duration(20 * (60))
|
||||
.EUt(GTValues.VH[GTValues.HV])
|
||||
|
||||
event.recipes.gtceu.assembler('tfg:reflector_from_inr')
|
||||
.itemInputs(
|
||||
'1x gtceu:neutron_reflector',
|
||||
ChemicalHelper.get(TagPrefix.frameGt, GTMaterials.BlackSteel, 1)
|
||||
)
|
||||
.itemOutputs('2x tfg:reflector')
|
||||
.circuit(9)
|
||||
.duration(20 * (20))
|
||||
.EUt(GTValues.VH[GTValues.MV])
|
||||
|
||||
event.recipes.gtceu.assembler('tfg:reflector_from_certus')
|
||||
|
|
@ -141,7 +131,7 @@ function registerTFGCasingRecipes(event) {
|
|||
// Ostrum Linear Acclerator
|
||||
event.recipes.gtceu.assembler('tfg:casings/machine_casing_mars')
|
||||
.itemInputs('gtceu:clean_machine_casing', '4x #forge:double_wires/kanthal')
|
||||
.inputFluids(Fluid.of('gtceu:polybenzimidazole', 288))
|
||||
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 288))
|
||||
.itemOutputs('tfg:casings/machine_casing_mars')
|
||||
.circuit(6)
|
||||
.duration(2.5 * 20)
|
||||
|
|
@ -155,6 +145,42 @@ function registerTFGCasingRecipes(event) {
|
|||
.duration(2.5 * 20)
|
||||
.EUt(GTValues.VA[GTValues.HV])
|
||||
|
||||
// Heat Battery deafission:battery_heat_port_ev
|
||||
|
||||
event.recipes.gtceu.assembler('tfg:battery_heat_port_ev')
|
||||
.itemInputs(Item.of('gtceu:ev_machine_hull', 1), Item.of('gtceu:rtm_alloy_coil_block'), Item.of('gtceu:silicon_plate', 6))
|
||||
.inputFluids(Fluid.of('gtceu:mercury', 4000))
|
||||
.itemOutputs('deafission:battery_heat_port_ev')
|
||||
//.circuit(6)
|
||||
.duration(2.5 * 20)
|
||||
.EUt(GTValues.VA[GTValues.EV])
|
||||
|
||||
event.recipes.gtceu.assembler('tfg:heat_input_hatch_ev')
|
||||
.itemInputs(Item.of('gtceu:ev_machine_hull', 1), Item.of('gtceu:rtm_alloy_coil_block'), Item.of('gtceu:beryllium_plate', 6))
|
||||
.inputFluids(Fluid.of('gtceu:mercury', 4000))
|
||||
.itemOutputs(Item.of('deafission:heat_input_hatch_ev', 1))
|
||||
//.circuit(6)
|
||||
.duration(2.5 * 20)
|
||||
.EUt(GTValues.VA[GTValues.EV])
|
||||
|
||||
// Small Modular Turbine
|
||||
|
||||
event.recipes.gtceu.assembler('tfg:machine_casing_desh_ptfe')
|
||||
.itemInputs('4x #forge:dense_plates/desh', '2x #forge:dense_plates/lead', Item.of('gtceu:hsla_steel_frame'))
|
||||
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 288))
|
||||
.itemOutputs('tfg:casings/machine_casing_desh_ptfe')
|
||||
.circuit(6)
|
||||
.duration(2.5 * 20)
|
||||
.EUt(GTValues.VA[GTValues.HV])
|
||||
|
||||
event.recipes.gtceu.assembler('tfg:uv_smr_fluid_import_hatch')
|
||||
.itemInputs('4x #forge:dense_plates/desh', '2x #forge:dense_plates/lead', Item.of('gtceu:iv_input_hatch', 1))
|
||||
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 288))
|
||||
.itemOutputs('tfg:uv_smr_fluid_import_hatch')
|
||||
//.circuit(6)
|
||||
.duration(2.5 * 20)
|
||||
.EUt(GTValues.VA[GTValues.EV])
|
||||
|
||||
// Vacuum Intake
|
||||
event.shaped('tfg:casings/machine_casing_vacuum_engine_intake', [
|
||||
'USU',
|
||||
|
|
@ -182,7 +208,7 @@ function registerTFGCasingRecipes(event) {
|
|||
.itemInputs('gtceu:ostrum_frame', '4x #forge:plates/titanium_tungsten_carbide', '16x #forge:fine_wires/copper',
|
||||
'16x #forge:fine_wires/tungsten_bismuth_oxide_composite')
|
||||
.inputFluids(Fluid.of('gtceu:reinforced_epoxy_resin', 288))
|
||||
.itemOutputs('2x tfg:machine_casing_power_casing')
|
||||
.itemOutputs('4x tfg:machine_casing_power_casing')
|
||||
.circuit(6)
|
||||
.duration(2.5 * 20)
|
||||
.EUt(GTValues.VA[GTValues.EV])
|
||||
|
|
|
|||
109
kubejs/server_scripts/tfg/machines/recipes.coils.js
Normal file
109
kubejs/server_scripts/tfg/machines/recipes.coils.js
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
"use strict";
|
||||
|
||||
function registerTFGCoilRecipes(event) {
|
||||
|
||||
// #region Cupronickel Coil
|
||||
|
||||
event.smelting('tfg:refractory_clay_dust', 'tfc:fire_clay')
|
||||
|
||||
event.recipes.gtceu.chemical_reactor('tfg:magnesium_hydroxide')
|
||||
.itemInputs('#forge:dusts/magnesium')
|
||||
.inputFluids('tfc:lye 2000')
|
||||
.itemOutputs('#forge:dusts/magnesium_hydroxide', '2x #forge:dusts/sodium')
|
||||
.duration(5 * 20)
|
||||
.EUt(GTValues.VHA[GTValues.LV])
|
||||
|
||||
event.recipes.gtceu.coke_oven('tfg:magnesia')
|
||||
.itemInputs('#forge:dusts/magnesium_hydroxide')
|
||||
.itemOutputs('#forge:dusts/magnesia')
|
||||
.duration(20 * 20)
|
||||
|
||||
event.recipes.gtceu.pyrolyse_oven('tfg:magnesia')
|
||||
.itemInputs('#forge:dusts/magnesium_hydroxide')
|
||||
.itemOutputs('#forge:dusts/magnesia')
|
||||
.duration(20 * 20)
|
||||
.EUt(GTValues.VHA[GTValues.MV])
|
||||
|
||||
event.recipes.gtceu.mixer('tfg:magnesia_refractory_brick_dust_sticky')
|
||||
.itemInputs('#forge:dusts/magnesia', '#forge:dusts/refractory_clay', '#forge:dusts/graphite', '5x gtceu:sticky_resin')
|
||||
.itemOutputs('3x #forge:dusts/magnesia_refractory_brick')
|
||||
.duration(5 * 20)
|
||||
.EUt(GTValues.VHA[GTValues.LV])
|
||||
|
||||
event.recipes.gtceu.mixer('tfg:magnesia_refractory_brick_dust_sticky_powder')
|
||||
.itemInputs('#forge:dusts/magnesia', '#forge:dusts/refractory_clay', '4x tfc:powder/graphite', '5x gtceu:sticky_resin')
|
||||
.itemOutputs('3x #forge:dusts/magnesia_refractory_brick')
|
||||
.duration(5 * 20)
|
||||
.EUt(GTValues.VHA[GTValues.LV])
|
||||
|
||||
event.recipes.gtceu.mixer('tfg:magnesia_refractory_brick_dust_phenolic')
|
||||
.itemInputs('#forge:dusts/magnesia', '#forge:dusts/refractory_clay', '#forge:dusts/graphite')
|
||||
.inputFluids(Fluid.of('tfg:phenolic_resin', 144))
|
||||
.itemOutputs('3x #forge:dusts/magnesia_refractory_brick')
|
||||
.duration(5 * 20)
|
||||
.EUt(GTValues.VHA[GTValues.LV])
|
||||
|
||||
event.recipes.gtceu.mixer('tfg:magnesia_refractory_brick_dust_phenolic_powder')
|
||||
.itemInputs('#forge:dusts/magnesia', '#forge:dusts/refractory_clay', '4x tfc:powder/graphite')
|
||||
.inputFluids(Fluid.of('tfg:phenolic_resin', 144))
|
||||
.itemOutputs('3x #forge:dusts/magnesia_refractory_brick')
|
||||
.duration(5 * 20)
|
||||
.EUt(GTValues.VHA[GTValues.LV])
|
||||
|
||||
event.recipes.gtceu.alloy_smelter('tfg:magnesia_refractory_brick')
|
||||
.itemInputs('#forge:dusts/magnesia_refractory_brick')
|
||||
.notConsumable('gtceu:ingot_casting_mold')
|
||||
.itemOutputs('#forge:ingots/magnesia_refractory_brick')
|
||||
.duration(8 * 20)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
.category(GTRecipeCategories.INGOT_MOLDING)
|
||||
|
||||
event.recipes.gtceu.forming_press('tfg:magnesia_refractory_brick')
|
||||
.itemInputs('#forge:dusts/magnesia_refractory_brick')
|
||||
.notConsumable('gtceu:ingot_casting_mold')
|
||||
.itemOutputs('#forge:ingots/magnesia_refractory_brick')
|
||||
.duration(4 * 20)
|
||||
.EUt(GTValues.VHA[GTValues.LV])
|
||||
|
||||
event.recipes.gtceu.assembler('gtceu:coil_cupronickel')
|
||||
.itemInputs('8x #forge:double_wires/cupronickel', '8x #forge:foils/blue_steel', '8x #forge:ingots/magnesia_refractory_brick')
|
||||
.inputFluids('gtceu:tin_alloy 144')
|
||||
.itemOutputs('gtceu:cupronickel_coil_block')
|
||||
.duration(10 * 20)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
.addMaterialInfo(true, true)
|
||||
|
||||
// #endregion
|
||||
|
||||
// #region RTM Coil
|
||||
|
||||
event.remove({ id : 'gtceu:assembler/coil_rtm_alloy' })
|
||||
event.recipes.gtceu.assembler('tfg:coil_rtm_alloy')
|
||||
.itemInputs('8x #forge:double_wires/rtm_alloy', '8x #forge:foils/vanadium_steel', '8x #forge:insulation_t2/sheet')
|
||||
.inputFluids('tfg:nichromium_iodomethylate 244')
|
||||
.itemOutputs('gtceu:rtm_alloy_coil_block')
|
||||
.duration(20 * 25)
|
||||
.EUt(GTValues.VA[GTValues.EV])
|
||||
.addMaterialInfo(true, true)
|
||||
|
||||
event.recipes.gtceu.mixer('tfg:nichromium_iodomethylate')
|
||||
.inputFluids(Fluid.of('gtceu:nichrome', 144), Fluid.of('tfg:iodomethane', 100))
|
||||
.outputFluids('tfg:nichromium_iodomethylate 244')
|
||||
.duration(20 * 8)
|
||||
.EUt(GTValues.VA[GTValues.HV])
|
||||
|
||||
// #endregion
|
||||
|
||||
// #region HSS-G
|
||||
|
||||
event.remove({ id : 'gtceu:assembler/coil_hssg' })
|
||||
event.recipes.gtceu.assembler('tfg:coil_hssg')
|
||||
.itemInputs('8x #forge:double_wires/hssg', '8x #forge:foils/tungsten_carbide', '2x #forge:insulation_t3/sheet')
|
||||
.inputFluids('gtceu:tungsten 144')
|
||||
.itemOutputs('gtceu:hssg_coil_block')
|
||||
.duration(20 * 30)
|
||||
.EUt(GTValues.VA[GTValues.IV])
|
||||
.addMaterialInfo(true, true)
|
||||
|
||||
// #endregion
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue