Consolidating Development: 0.9.x (#846)

Signed-off-by: Pyritie <pyritie@gmail.com>
Signed-off-by: TomPlop <tomdidome@gmail.com>
Co-authored-by: Pyritie <Pyritie@gmail.com>
Co-authored-by: Redeix <brayden.j.m.ford@gmail.com>
Co-authored-by: TomPlop <tomdidome@gmail.com>
Co-authored-by: aidie8 <aidenvanzuilen@gmail.com>
Co-authored-by: Xikaro <os.valerievich@ya.ru>
Co-authored-by: Xikaro <55663835+Xikaro@users.noreply.github.com>
Co-authored-by: Zleub <debray.arnaud@gmail.com>
This commit is contained in:
Nebby 2025-04-14 14:00:08 -04:00 committed by GitHub
parent 528672e95b
commit d4c80a4b61
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2192 changed files with 104647 additions and 53190 deletions

View file

@ -0,0 +1,146 @@
// priority: 0
const registerAdvancedPeripheralsRecipes = (event) => {
event.remove({ mod: 'advancedperipherals' });
//Chat Box
event.recipes.gtceu.assembler('advancedperipherals:assembler/chat_box')
.itemInputs('1x computercraft:wired_modem', '1x gtceu:mv_machine_casing', '1x computercraft:monitor_normal', '2x gtceu:mv_sensor', '2x gtceu:mv_emitter', '1x #gtceu:circuits/hv')
.circuit(4)
.itemOutputs('advancedperipherals:chat_box')
.duration(1200)
.EUt(GTValues.VA[GTValues.MV])
//Player Detector
event.recipes.gtceu.assembler('advancedperipherals:assembler/player_detector')
.itemInputs('1x computercraft:wired_modem', '1x gtceu:hv_machine_casing', '2x gtceu:hv_field_generator', '4x gtceu:hv_robot_arm', '6x gtceu:soc', Item.of('gtceu:face_mask', '{Damage:0}'))
.circuit(4)
.itemOutputs('advancedperipherals:player_detector')
.duration(1200)
.EUt(GTValues.VA[GTValues.HV])
//ME Bridge
event.recipes.gtceu.assembler('advancedperipherals:assembler/me_bridge')
.itemInputs('1x computercraft:wired_modem', '1x gtceu:hv_machine_casing', '2x ae2:interface', '15x ae2:fluix_smart_cable', '4x ae2:engineering_processor', '1x #gtceu:circuits/ev')
.circuit(4)
.itemOutputs('advancedperipherals:me_bridge')
.duration(1200)
.EUt(GTValues.VA[GTValues.HV])
//Environment Detector
event.recipes.gtceu.assembler('advancedperipherals:assembler/environment_detector')
.itemInputs('1x computercraft:wired_modem', '1x gtceu:hv_machine_casing', '2x gtceu:hv_sensor', '2x gtceu:hv_emitter', '1x #gtceu:circuits/ev')
.inputFluids(Fluid.of('gtceu:biomass', 2000))
.circuit(4)
.itemOutputs('advancedperipherals:environment_detector')
.duration(1200)
.EUt(GTValues.VA[GTValues.HV])
//Inventory Manager
event.recipes.gtceu.assembler('advancedperipherals:assembler/inventory_manager')
.itemInputs('1x computercraft:wired_modem', '1x gtceu:hv_machine_casing', '2x #gtceu:circuits/ev', '2x gtceu:hv_sensor', '2x ae2:export_bus', '1x ae2:equal_distribution_card')
.circuit(4)
.itemOutputs('advancedperipherals:inventory_manager')
.duration(1200)
.EUt(GTValues.VA[GTValues.HV])
//Redstone Integrator
event.recipes.gtceu.assembler('advancedperipherals:assembler/redstone_integrator')
.itemInputs('1x computercraft:wired_modem', '1x gtceu:mv_machine_casing', '10x vintageimprovements:redstone_module', '1x ae2:redstone_card', '2x gtceu:transistor', '1x gtceu:mv_emitter')
.circuit(4)
.itemOutputs('advancedperipherals:redstone_integrator')
.duration(1200)
.EUt(GTValues.VA[GTValues.MV])
//Block Reader
event.recipes.gtceu.assembler('advancedperipherals:assembler/block_reader')
.itemInputs('1x computercraft:wired_modem', '1x gtceu:mv_machine_casing', '1x gtceu:lv_scanner', '1x gtceu:mv_sensor', '1x gtceu:mv_emitter', '1x #forge:lenses/amethyst')
.circuit(4)
.itemOutputs('advancedperipherals:block_reader')
.duration(1200)
.EUt(GTValues.VA[GTValues.MV])
//Geo Scanner
event.recipes.gtceu.assembler('advancedperipherals:assembler/geo_scanner')
.itemInputs('1x computercraft:wired_modem', '1x gtceu:hv_machine_casing', '1x gtceu:prospector.hv', '2x gtceu:hv_sensor', '1x #forge:propick_heads/red_steel', '1x #gtceu:circuits/ev')
.circuit(4)
.itemOutputs('advancedperipherals:geo_scanner')
.duration(1200)
.EUt(GTValues.VA[GTValues.HV])
//NBT Storage
event.recipes.gtceu.assembler('advancedperipherals:assembler/nbt_storage')
.itemInputs('1x computercraft:wired_modem', '1x gtceu:hv_machine_casing', '1x computercraft:disk_drive', '1x gtceu:item_smart_filter', '16x gtceu:ram_chip', '1x #gtceu:circuits/ev')
.circuit(4)
.itemOutputs('advancedperipherals:nbt_storage')
.duration(1200)
.EUt(GTValues.VA[GTValues.HV])
//Chunk Controller
event.recipes.gtceu.assembler('advancedperipherals:assembler/chunk_controller')
.itemInputs('1x gtceu:hv_field_generator', '4x gtceu:hv_emitter', '4x gtceu:hv_sensor', '64x gtceu:ram_chip', '1x #forge:exquisite_gems/red_garnet', ChemicalHelper.get(TagPrefix.plate, GTMaterials.StainlessSteel, 4))
.circuit(4)
.itemOutputs('advancedperipherals:chunk_controller')
.duration(1200)
.EUt(GTValues.VA[GTValues.HV])
//End Automata Core
event.recipes.gtceu.assembler('advancedperipherals:assembler/end_automata_core')
.itemInputs('1x computercraft:wired_modem', '1x #forge:lenses/nether_star', '4x gtceu:quantum_eye', ChemicalHelper.get(TagPrefix.gear, GTMaterials.HSSS, 4), '1x gtceu:luv_robot_arm')
.circuit(4)
.itemOutputs('advancedperipherals:end_automata_core')
.duration(2400)
.EUt(GTValues.VA[GTValues.LuV])
//Husbandry Automata Core
event.recipes.gtceu.assembler('advancedperipherals:assembler/husbandry_automata_core')
.itemInputs('1x computercraft:wired_modem', '1x tfcgroomer:blue_steel_grooming_station', '1x tfcgroomer:red_steel_grooming_station', ChemicalHelper.get(TagPrefix.gear, GTMaterials.StainlessSteel, 4), '1x gtceu:hv_robot_arm')
.circuit(4)
.itemOutputs('advancedperipherals:husbandry_automata_core')
.duration(2400)
.EUt(GTValues.VA[GTValues.HV])
//Weak Automata Core
event.recipes.gtceu.assembler('advancedperipherals:assembler/weak_automata_core')
.itemInputs('1x computercraft:wired_modem', '64x gtceu:cpu_chip', '4x gtceu:hv_conveyor_module', ChemicalHelper.get(TagPrefix.gear, GTMaterials.StainlessSteel, 4), '1x gtceu:hv_robot_arm')
.circuit(4)
.itemOutputs('advancedperipherals:weak_automata_core')
.duration(2400)
.EUt(GTValues.VA[GTValues.HV])
//Overpowered End Automata Core
event.recipes.gtceu.assembler('advancedperipherals:assembler/overpowered_end_automata_core')
.itemInputs('advancedperipherals:end_automata_core', ChemicalHelper.get(TagPrefix.gear, GTMaterials.Osmiridium, 4), '8x #gtceu:circuits/zpm')
.circuit(4)
.itemOutputs('advancedperipherals:overpowered_end_automata_core')
.duration(2400)
.EUt(GTValues.VA[GTValues.ZPM])
//Overpowered Husbandry Automata Core
event.recipes.gtceu.assembler('advancedperipherals:assembler/overpowered_husbandry_automata_core')
.itemInputs('advancedperipherals:husbandry_automata_core', ChemicalHelper.get(TagPrefix.gear, GTMaterials.HSSS, 4), '6x #gtceu:circuits/iv')
.circuit(4)
.itemOutputs('advancedperipherals:overpowered_husbandry_automata_core')
.duration(2400)
.EUt(GTValues.VA[GTValues.IV])
//Overpowered Weak Automata Core
event.recipes.gtceu.assembler('advancedperipherals:assembler/overpowered_weak_automata_core')
.itemInputs('advancedperipherals:weak_automata_core', ChemicalHelper.get(TagPrefix.gear, GTMaterials.HSSS, 4), '6x #gtceu:circuits/iv')
.circuit(4)
.itemOutputs('advancedperipherals:overpowered_weak_automata_core')
.duration(2400)
.EUt(GTValues.VA[GTValues.IV])
//Memory Card
event.shaped('advancedperipherals:memory_card', [
'A',
'B',
'C'
], {
A: ChemicalHelper.get(TagPrefix.plate, GTMaterials.Polyethylene, 1),
B: 'computercraft:disk',
C: ChemicalHelper.get(TagPrefix.plateDouble, GTMaterials.Gold, 1)
}).id('advancedperipherals:shaped/memory_card')
}

View file

@ -0,0 +1,413 @@
// priority: 0
function registerAdvancedPeripheralsRecyclingRecipes(event) {
// Chat Box
event.recipes.gtceu.macerator('advancedperipherals:macerator/recycling/chat_box')
.itemInputs('advancedperipherals:chat_box')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 12),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Electrum, 5),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Emerald, 2)
)
.duration(GTMaterials.Aluminium.getMass() * 12)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('advancedperipherals:arc_furnace/recycling/chat_box')
.itemInputs('advancedperipherals:chat_box')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 12),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Electrum, 5),
ChemicalHelper.get(TagPrefix.gemFlawless, GTMaterials.Emerald, 2)
)
.duration(GTMaterials.Aluminium.getMass() * 12)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Player Detector
event.recipes.gtceu.macerator('advancedperipherals:macerator/recycling/player_detector')
.itemInputs('advancedperipherals:player_detector')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Electrum, 24),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 19),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.MercuryBariumCalciumCuprate, 8),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 3)
)
.duration(GTMaterials.Electrum.getMass() * 24)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('advancedperipherals:arc_furnace/recycling/player_detector')
.itemInputs('advancedperipherals:player_detector')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Electrum, 24),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 19),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.MercuryBariumCalciumCuprate, 8),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 3)
)
.duration(GTMaterials.Electrum.getMass() * 24)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// ME Bridge
event.recipes.gtceu.macerator('advancedperipherals:macerator/recycling/me_bridge')
.itemInputs('advancedperipherals:me_bridge')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 19),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.CertusQuartz, 11),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Titanium, 2)
)
.duration(GTMaterials.Aluminium.getMass() * 19)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('advancedperipherals:arc_furnace/recycling/me_bridge')
.itemInputs('advancedperipherals:me_bridge')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 19),
ChemicalHelper.get(TagPrefix.gem, GTMaterials.CertusQuartz, 11),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 6),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Titanium, 2)
)
.duration(GTMaterials.Aluminium.getMass() * 19)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Environment Detector
event.recipes.gtceu.macerator('advancedperipherals:macerator/recycling/environment_detector')
.itemInputs('advancedperipherals:environment_detector')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 8),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Chromium, 2)
)
.duration(GTMaterials.StainlessSteel.getMass() * 8)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('advancedperipherals:arc_furnace/recycling/environment_detector')
.itemInputs('advancedperipherals:environment_detector')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 8),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Chromium, 2)
)
.duration(GTMaterials.StainlessSteel.getMass() * 8)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Inventory Manager
event.recipes.gtceu.macerator('advancedperipherals:macerator/recycling/inventory_manager')
.itemInputs('advancedperipherals:inventory_manager')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Cupronickel, 24),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 14),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Copper, 11),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 8),
)
.duration(GTMaterials.Cupronickel.getMass() * 24)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('advancedperipherals:arc_furnace/recycling/inventory_manager')
.itemInputs('advancedperipherals:inventory_manager')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Cupronickel, 24),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 14),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Copper, 11),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 8),
)
.duration(GTMaterials.Cupronickel.getMass() * 24)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Redstone Integrator
event.recipes.gtceu.macerator('advancedperipherals:macerator/recycling/redstone_integrator')
.itemInputs('advancedperipherals:redstone_integrator')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.RedAlloy, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Brass, 5),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 4)
)
.duration(GTMaterials.RedAlloy.getMass() * 6)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('advancedperipherals:arc_furnace/recycling/redstone_integrator')
.itemInputs('advancedperipherals:redstone_integrator')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.RedAlloy, 6),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Brass, 5),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 4)
)
.duration(GTMaterials.RedAlloy.getMass() * 6)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Block Reader
event.recipes.gtceu.macerator('advancedperipherals:macerator/recycling/block_reader')
.itemInputs('advancedperipherals:block_reader')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Electrum, 2),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.RedSteel, 1)
)
.duration(GTMaterials.Steel.getMass() * 6)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('advancedperipherals:arc_furnace/recycling/block_reader')
.itemInputs('advancedperipherals:block_reader')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 6),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 6),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Electrum, 2),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.RedSteel, 1)
)
.duration(GTMaterials.Steel.getMass() * 6)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Geo Scanner
event.recipes.gtceu.macerator('advancedperipherals:macerator/recycling/geo_scanner')
.itemInputs('advancedperipherals:geo_scanner')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 11),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.BatteryAlloy, 4),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Chromium, 3)
)
.duration(GTMaterials.StainlessSteel.getMass() * 11)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('advancedperipherals:arc_furnace/recycling/geo_scanner')
.itemInputs('advancedperipherals:geo_scanner')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 11),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.BatteryAlloy, 4),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Chromium, 3)
)
.duration(GTMaterials.StainlessSteel.getMass() * 11)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// NBT Storage
event.recipes.gtceu.macerator('advancedperipherals:macerator/recycling/nbt_storage')
.itemInputs('advancedperipherals:nbt_storage')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 10),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Titanium, 1),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 1)
)
.duration(GTMaterials.StainlessSteel.getMass() * 10)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('advancedperipherals:arc_furnace/recycling/nbt_storage')
.itemInputs('advancedperipherals:nbt_storage')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 10),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Titanium, 1),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 1)
)
.duration(GTMaterials.StainlessSteel.getMass() * 10)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Chunk Controller
event.recipes.gtceu.macerator('advancedperipherals:macerator/recycling/chunk_controller')
.itemInputs('advancedperipherals:chunk_controller')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 11),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Chromium, 10),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.MercuryBariumCalciumCuprate, 4),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Gold, 2)
)
.duration(GTMaterials.StainlessSteel.getMass() * 11)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('advancedperipherals:arc_furnace/recycling/chunk_controller')
.itemInputs('advancedperipherals:chunk_controller')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 11),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Chromium, 10),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.MercuryBariumCalciumCuprate, 4),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Gold, 2)
)
.duration(GTMaterials.StainlessSteel.getMass() * 11)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Memory Card
event.recipes.gtceu.macerator('advancedperipherals:macerator/recycling/memory_card')
.itemInputs('advancedperipherals:memory_card')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 2),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Gold, 1)
)
.duration(GTMaterials.Steel.getMass() * 2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('advancedperipherals:arc_furnace/recycling/memory_card')
.itemInputs('advancedperipherals:memory_card')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 2),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Gold, 1)
)
.duration(GTMaterials.Steel.getMass() * 2)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// End Automata Core
event.recipes.gtceu.macerator('advancedperipherals:macerator/recycling/end_automata_core')
.itemInputs('advancedperipherals:end_automata_core')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.HSSS, 37),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Ruridit, 12),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.NiobiumTitanium, 3),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Samarium, 2)
)
.duration(GTMaterials.HSSS.getMass() * 37)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('advancedperipherals:arc_furnace/recycling/end_automata_core')
.itemInputs('advancedperipherals:end_automata_core')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.HSSS, 37),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Ruridit, 12),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.NiobiumTitanium, 3),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Samarium, 2)
)
.duration(GTMaterials.HSSS.getMass() * 37)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Husbandry Automata Core
event.recipes.gtceu.macerator('advancedperipherals:macerator/recycling/husbandry_automata_core')
.itemInputs('advancedperipherals:husbandry_automata_core')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 11),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Electrum, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.BlueSteel, 2),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.RedSteel, 2)
)
.duration(GTMaterials.StainlessSteel.getMass() * 11)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('advancedperipherals:arc_furnace/recycling/husbandry_automata_core')
.itemInputs('advancedperipherals:husbandry_automata_core')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 11),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Electrum, 6),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.BlueSteel, 2),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.RedSteel, 2)
)
.duration(GTMaterials.StainlessSteel.getMass() * 11)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Weak Automata Core
event.recipes.gtceu.macerator('advancedperipherals:macerator/recycling/weak_automata_core')
.itemInputs('advancedperipherals:weak_automata_core')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Electrum, 22),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 16),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Silver, 11),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 3)
)
.duration(GTMaterials.Electrum.getMass() * 22)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('advancedperipherals:arc_furnace/recycling/weak_automata_core')
.itemInputs('advancedperipherals:weak_automata_core')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Electrum, 22),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 16),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Silver, 11),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 3)
)
.duration(GTMaterials.Electrum.getMass() * 22)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Overpowered End Automata Core
event.recipes.gtceu.macerator('advancedperipherals:macerator/recycling/overpowered_end_automata_core')
.itemInputs('advancedperipherals:overpowered_end_automata_core')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.HSSS, 37),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Ruridit, 12),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Osmiridium, 8),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.NiobiumTitanium, 3)
)
.duration(GTMaterials.HSSS.getMass() * 37)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('advancedperipherals:arc_furnace/recycling/overpowered_end_automata_core')
.itemInputs('advancedperipherals:overpowered_end_automata_core')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.HSSS, 37),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Ruridit, 12),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Osmiridium, 8),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.NiobiumTitanium, 3)
)
.duration(GTMaterials.HSSS.getMass() * 37)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Overpowered Husbandry Automata Core
event.recipes.gtceu.macerator('advancedperipherals:macerator/recycling/overpowered_husbandry_automata_core')
.itemInputs('advancedperipherals:overpowered_husbandry_automata_core')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 11),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.HSSS, 8),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.BlueSteel, 2),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.RedSteel, 2)
)
.duration(GTMaterials.StainlessSteel.getMass() * 11)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('advancedperipherals:arc_furnace/recycling/overpowered_husbandry_automata_core')
.itemInputs('advancedperipherals:overpowered_husbandry_automata_core')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 11),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.HSSS, 8),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.BlueSteel, 2),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.RedSteel, 2)
)
.duration(GTMaterials.StainlessSteel.getMass() * 11)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Overpowered Weak Automata Core
event.recipes.gtceu.macerator('advancedperipherals:macerator/recycling/overpowered_weak_automata_core')
.itemInputs('advancedperipherals:overpowered_weak_automata_core')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Electrum, 22),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 16),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Silver, 11),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.HSSS, 8)
)
.duration(GTMaterials.Electrum.getMass() * 22)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('advancedperipherals:arc_furnace/recycling/overpowered_weak_automata_core')
.itemInputs('advancedperipherals:overpowered_weak_automata_core')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Electrum, 22),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 16),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Silver, 11),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.HSSS, 8)
)
.duration(GTMaterials.Electrum.getMass() * 22)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
}

View file

@ -0,0 +1,9 @@
// priority: 0
const registerAdvancedPeripheralsItemTags = (event) => {
global.ADVANCED_PERIPHERALS_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
});
};

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,8 @@
/**
*
* @param {Internal.TFCDataEventJS} event
*/
const registerTFCDataForArborFirmaCraft = (event) =>
{
event.itemHeat('afc:tree_tap', 0.2345, null, null)
}

View file

@ -0,0 +1,229 @@
/**
*
* @param {Internal.RecipesEventJS} event
*/
const registerAFCRecipes = (event) => {
// #region Removes
global.AFC_DISABLED_ITEMS.forEach(item => {
event.remove({ input: item })
event.remove({ output: item })
})
event.remove({ id: "afc:pot/rubber" })
event.remove({ id: "afc:tree_tapping/hevea_latex" })
event.remove({ id: "afc:tree_tapping/rubber_fig_latex" })
// #endregion
// #region Wood crafts
global.AFC_WOOD_TYPES.forEach(wood => {
event.remove({ id: `afc:crafting/wood/${wood}_axle` })
event.remove({ id: `afc:crafting/wood/${wood}_bladed_axle` })
event.remove({ id: `afc:crafting/wood/${wood}_encased_axle` })
event.remove({ id: `afc:crafting/wood/${wood}_clutch` })
event.remove({ id: `afc:crafting/wood/${wood}_gear_box` })
event.remove({ id: `afc:crafting/wood/${wood}_water_wheel` })
// Бревна -> Пиломатериалы
generateCutterRecipe(event, `#afc:${wood}_logs`, `16x afc:wood/lumber/${wood}`, 50, 7, `${wood}_lumber_from_log`)
// Доски -> Пиломатериалы
generateCutterRecipe(event, `afc:wood/planks/${wood}`, `4x afc:wood/lumber/${wood}`, 50, 7, `${wood}_lumber_from_planks`)
// Ступень -> Пиломатериалы
generateCutterRecipe(event, `afc:wood/planks/${wood}_stairs`, `3x afc:wood/lumber/${wood}`, 50, 7, `${wood}_lumber_from_stairs`)
// Плита -> Пиломатериалы
generateCutterRecipe(event, `afc:wood/planks/${wood}_slab`, `2x afc:wood/lumber/${wood}`, 50, 7, `${wood}_lumber_from_slab`)
// ? -> Деревянная нажимная пластина
event.shaped(`afc:wood/planks/${wood}_pressure_plate`, [
'ABA',
'CDC',
'AEA'
], {
A: '#forge:screws/wood',
B: '#tfc:hammers',
C: `afc:wood/planks/${wood}_slab`,
D: '#forge:springs',
E: '#forge:tools/screwdrivers'
}).id(`afc:crafting/wood/${wood}_pressure_plate`)
event.recipes.gtceu.assembler(`${wood}_pressure_plate`)
.itemInputs('#forge:springs', `2x afc:wood/planks/${wood}_slab`)
.circuit(0)
.itemOutputs(`2x afc:wood/planks/${wood}_pressure_plate`)
.duration(50)
.EUt(2)
// ? -> Деревянная кнопка
event.remove({ id: `afc:crafting/wood/${wood}_button` })
generateCutterRecipe(event, `afc:wood/planks/${wood}_pressure_plate`, `6x afc:wood/planks/${wood}_button`, 50, 2, `${wood}_button`)
})
// #endregion
event.recipes.tfc.anvil('afc:tree_tap', '#forge:ingots/copper', ["hit_last", "upset_second_last", "upset_third_last"])
.tier(1)
.bonus(false)
.id('afc:anvil/tree_tap')
// TreeTap Heating
event.recipes.tfc.heating('afc:tree_tap', 1080)
.resultFluid(Fluid.of('gtceu:copper', 144))
.id('tfg:heating/tree_tap')
//Custom rubber and hevea tappings
//Hevea is the most efficient but requires the warmest temperatures
//Rubber fig requires average temperatures and its mildly efficient
event.recipes.afc.tree_tapping(TFC.blockIngredient("afc:wood/log/hevea"))
.resultFluid(Fluid.of("tfg:latex", 3))
.minTemp(22)
.id("tfg:tree_tapping/latex/hevea")
event.recipes.afc.tree_tapping(TFC.blockIngredient("afc:wood/log/ancient_hevea"))
.resultFluid(Fluid.of("tfg:latex", 3))
.minTemp(22)
.id("tfg:tree_tapping/latex/ancient_hevea")
event.recipes.afc.tree_tapping(TFC.blockIngredient("afc:wood/log/rubber_fig"))
.resultFluid(Fluid.of("tfg:latex", 2))
.minTemp(12)
.id("tfg:tree_tapping/latex/rubber_fig")
event.recipes.afc.tree_tapping(TFC.blockIngredient("afc:wood/log/ancient_rubber_fig"))
.resultFluid(Fluid.of("tfg:latex", 2))
.minTemp(12)
.id("tfg:tree_tapping/latex/ancient_rubber_fig")
//Kapok Grandfathered, least efficient but works as long as the temperature is not freezing
event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/kapok"))
.resultFluid(Fluid.of("tfg:latex", 1))
.minTemp(1)
.id("tfg:tree_tapping/kapok_latex")
event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/ancient_kapok"))
.resultFluid(Fluid.of("tfg:latex", 1))
.minTemp(1)
.id("tfg:tree_tapping/ancient_kapok_latex")
// Pine/etc resin
event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/aspen"))
.resultFluid(Fluid.of('tfg:conifer_pitch', 2))
.minTemp(-10)
.id("tfg:tree_tapping/aspen_resin")
event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/ancient_aspen"))
.resultFluid(Fluid.of('tfg:conifer_pitch', 2))
.minTemp(-10)
.id("tfg:tree_tapping/ancient_aspen_resin")
event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/spruce"))
.resultFluid(Fluid.of('tfg:conifer_pitch', 4))
.minTemp(-15)
.id("tfg:tree_tapping/spruce_resin")
event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/ancient_spruce"))
.resultFluid(Fluid.of('tfg:conifer_pitch', 4))
.minTemp(-15)
.id("tfg:tree_tapping/ancient_spruce_resin")
event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/white_cedar"))
.resultFluid(Fluid.of('tfg:conifer_pitch', 3))
.minTemp(-8)
.id("tfg:tree_tapping/white_cedar_resin")
event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/ancient_white_cedar"))
.resultFluid(Fluid.of('tfg:conifer_pitch', 3))
.minTemp(-8)
.id("tfg:tree_tapping/ancient_white_cedar_resin")
event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/douglas_fir"))
.resultFluid(Fluid.of('tfg:conifer_pitch', 2))
.minTemp(-8)
.id("tfg:tree_tapping/douglas_fir_resin")
event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/ancient_douglas_fir"))
.resultFluid(Fluid.of('tfg:conifer_pitch', 2))
.minTemp(-8)
.id("tfg:tree_tapping/ancient_douglas_fir_resin")
//#region Выход: Сырая резиновая пыль
// Из бревна капока
event.recipes.gtceu.extractor('raw_rubber_from_log')
.itemInputs('#tfg:latex_logs')
.itemOutputs('gtceu:raw_rubber_dust')
.duration(300)
.EUt(2)
// Из саженца капока
event.recipes.gtceu.extractor('raw_rubber_from_sapling')
.itemInputs('1x #tfg:rubber_saplings')
.itemOutputs('gtceu:raw_rubber_dust')
.duration(300)
.EUt(2)
// Из листвы капока
event.recipes.gtceu.extractor('raw_rubber_from_leaves')
.itemInputs('16x #tfg:rubber_leaves')
.itemOutputs('gtceu:raw_rubber_dust')
.duration(300)
.EUt(2)
event.replaceOutput({ id: 'gtceu:centrifuge/sticky_resin_separation' }, 'gtceu:raw_rubber_dust', 'gtceu:carbon_dust')
//#endregion
// Из бревна капока
event.recipes.gtceu.centrifuge('rubber_log_separation')
.itemInputs('#tfg:latex_logs')
.chancedOutput('gtceu:raw_rubber_dust', 5000, 1200)
.chancedOutput('gtceu:plant_ball', 3750, 900)
.chancedOutput('gtceu:sticky_resin', 2500, 600)
.chancedOutput('gtceu:wood_dust', 2500, 700)
.outputFluids(Fluid.of('gtceu:methane', 60))
.duration(200)
.EUt(20)
event.recipes.gtceu.centrifuge('conifer_log_separation')
.itemInputs('#tfg:rosin_logs')
.chancedOutput('tfg:conifer_rosin', 7500, 1200)
.chancedOutput('gtceu:plant_ball', 3750, 900)
.chancedOutput('gtceu:sticky_resin', 2500, 600)
.chancedOutput('gtceu:wood_dust', 2500, 700)
.outputFluids(Fluid.of('gtceu:methane', 60))
.duration(200)
.EUt(20)
event.recipes.gtceu.centrifuge('maple_syrup_log_separation')
.itemInputs('#tfc:maple_logs')
.chancedOutput('afc:maple_sugar', 7500, 1200)
.chancedOutput('gtceu:plant_ball', 3750, 900)
.chancedOutput('gtceu:wood_dust', 2500, 700)
.outputFluids(Fluid.of('gtceu:methane', 60), Fluid.of('afc:maple_syrup', 100))
.duration(200)
.EUt(20)
event.recipes.gtceu.centrifuge('birch_syrup_log_separation')
.itemInputs('#tfc:birch_logs')
.chancedOutput('afc:birch_sugar', 7500, 1200)
.chancedOutput('gtceu:plant_ball', 3750, 900)
.chancedOutput('gtceu:wood_dust', 2500, 700)
.outputFluids(Fluid.of('gtceu:methane', 60), Fluid.of('afc:birch_syrup', 100))
.duration(200)
.EUt(20)
//#endregion
event.recipes.gtceu.fluid_solidifier('maple_syrup')
.inputFluids(Fluid.of('afc:maple_syrup', 100))
.itemOutputs('afc:maple_sugar')
.duration(500)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.fluid_solidifier('birch_syrup')
.inputFluids(Fluid.of('afc:birch_syrup', 100))
.itemOutputs('afc:birch_sugar')
.duration(500)
.EUt(GTValues.VA[GTValues.ULV])
}

View file

@ -0,0 +1,106 @@
/**
*
* @param {TagEvent.Item} event
*/
const registerAFCItemTags = (event) => {
global.AFC_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
})
global.AFC_WOOD_TYPES.forEach(woodType => {
event.add('minecraft:logs_that_burn', `#afc:${woodType}_logs`)
event.add('tfg:default_chests', `afc:wood/chest/${woodType}`)
event.add('tfg:trapped_chests', `afc:wood/trapped_chest/${woodType}`)
event.add('firmalife:food_shelves', `afc:wood/food_shelf/${woodType}`)
event.add('firmalife:hangers', `afc:wood/hanger/${woodType}`)
event.add('firmalife:jarbnets', `afc:wood/jarbnet/${woodType}`)
event.add('firmalife:big_barrels', `afc:wood/big_barrel/${woodType}`)
event.add('firmalife:wine_shelves', `afc:wood/wine_shelf/${woodType}`)
event.add('firmalife:stomping_barrels', `afc:wood/stomping_barrel/${woodType}`)
event.add('firmalife:barrel_presses', `afc:wood/barrel_press/${woodType}`)
})
//Hardwood Tags
global.AFC_HARDWOOD_TYPES.forEach(woodType => {
event.add('tfg:hardwood', `#afc:${woodType}_logs`)
event.add('tfg:stripped_hardwood', `afc:wood/stripped_log/${woodType}`)
event.add('tfg:stripped_hardwood', `afc:wood/stripped_wood/${woodType}`)
});
//Softwood Tags
global.AFC_SOFTWOOD_TYPES.forEach(woodType => {
event.add('tfg:softwood', `#afc:${woodType}_logs`)
event.add('tfg:stripped_softwood', `afc:wood/stripped_log/${woodType}`)
event.add('tfg:stripped_softwood', `afc:wood/stripped_wood/${woodType}`)
})
// AFC saplings are missing the item tag for whatever reason
global.AFC_SAPLINGS.forEach(x => {
event.add('minecraft:saplings', `afc:wood/sapling/${x.sapling}`)
})
event.add("tfg:latex_logs", "#tfc:kapok_logs")
event.add("tfg:latex_logs", "#afc:hevea_logs")
event.add("tfg:latex_logs", "#afc:rubber_fig_logs")
event.add("tfg:rosin_logs", "#tfc:aspen_logs")
event.add("tfg:rosin_logs", "#tfc:spruce_logs")
event.add("tfg:rosin_logs", "#tfc:white_cedar_logs")
event.add("tfg:rosin_logs", "#tfc:douglas_fir_logs")
event.add("tfg:rubber_saplings", "tfc:wood/sapling/kapok")
event.add("tfg:rubber_saplings", "afc:wood/sapling/red_silk_cotton")
event.add("tfg:rubber_saplings", "afc:wood/sapling/hevea")
event.add("tfg:rubber_saplings", "afc:wood/sapling/rubber_fig")
event.add("tfg:rubber_leaves", "tfc:wood/leaves/kapok")
event.add("tfg:rubber_leaves", "afc:wood/leaves/red_silk_cotton")
event.add("tfg:rubber_leaves", "afc:wood/leaves/hevea")
event.add("tfg:rubber_leaves", "afc:wood/leaves/rubber_fig")
}
/**
*
* @param {TagEvent.Block} event
*/
const registerAFCBlockTags = (event) => {
global.AFC_DISABLED_ITEMS.forEach(block => {
event.removeAllTagsFrom(block)
})
event.add("afc:tappable_logs", "tfc:wood/log/ancient_kapok")
event.add("afc:tappable_logs", "tfc:wood/log/kapok")
event.add("afc:tappable_logs", "tfc:wood/log/ancient_aspen")
event.add("afc:tappable_logs", "tfc:wood/log/aspen")
event.add("afc:tappable_logs", "tfc:wood/log/ancient_white_cedar")
event.add("afc:tappable_logs", "tfc:wood/log/white_cedar")
event.add("afc:tappable_logs", "tfc:wood/log/ancient_douglas_fir")
event.add("afc:tappable_logs", "tfc:wood/log/douglas_fir")
event.add("afc:tappable_logs", "tfc:wood/log/ancient_spruce")
event.add("afc:tappable_logs", "tfc:wood/log/spruce")
event.add("tfg:latex_logs", "#tfc:kapok_logs")
event.add("tfg:latex_logs", "#afc:hevea_logs")
event.add("tfg:latex_logs", "#afc:rubber_fig_logs")
event.add("tfg:syrup_logs", "#tfc:maple_logs")
event.add("tfg:syrup_logs", "#tfc:birch_logs")
event.add("tfg:rosin_logs", "#tfc:aspen_logs")
event.add("tfg:rosin_logs", "#tfc:spruce_logs")
event.add("tfg:rosin_logs", "#tfc:white_cedar_logs")
event.add("tfg:rosin_logs", "#tfc:douglas_fir_logs")
}
/**
*
* @param {TagEvent.Fluid} event
*/
const registerAFCFluidTags = (event) => {
event.removeAllTagsFrom("afc:latex")
event.add("c:hidden_from_recipe_viewers", "afc:latex")
}

View file

@ -0,0 +1,9 @@
// priority: 0
const registerAlekiroofsItemTags = (event) => {
global.ALEKIROOFS_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
})
}

View file

@ -0,0 +1,72 @@
/**
*
* @param {Internal.RecipesEventJS} event
*/
const registerAlekishipsRecipes = (event) => {
//remove recipes
event.remove("alekiships:crafting/oarlock")
event.remove("alekiships:crafting/cleat")
event.remove("alekiships:crafting/anchor")
event.remove("alekiships:crafting/cannon")
event.remove("alekiships:crafting/cannonball")
//#region Oarlock
event.recipes.gtceu.assembler('tfg:alekiships/oarlock')
.itemInputs('2x #forge:ingots/wrought_iron')
.circuit(13)
.itemOutputs('alekiships:oarlock')
.duration(75)
.EUt(4)
event.recipes.tfc.heating('alekiships:oarlock', 1535)
.resultFluid(Fluid.of('gtceu:iron', 288))
.id(`alekiships:heating/oarlock`)
//#endregion
//#region Cleat
event.recipes.gtceu.assembler('tfg:firmaciv/cleat')
.itemInputs('2x #forge:ingots/steel')
.circuit(14)
.itemOutputs('alekiships:cleat')
.duration(75)
.EUt(4)
event.recipes.tfc.heating('alekiships:cleat', 1535)
.resultFluid(Fluid.of('gtceu:steel', 288))
.id(`alekiships:heating/cleat`)
//#endregion
//#region Anchor
event.recipes.gtceu.assembler('tfg:alekiships/anchor')
.itemInputs('2x #forge:plates/steel')
.circuit(10)
.itemOutputs('alekiships:anchor')
.duration(75)
.EUt(4)
event.recipes.tfc.heating('alekiships:anchor', 1535)
.resultFluid(Fluid.of('gtceu:steel', 288))
.id(`firmaciv:heating/anchor`)
//#endregion
//#region cannonball
event.recipes.gtceu.fluid_solidifier('tfg:solidify_cannonball')
.inputFluids(Fluid.of('gtceu:iron', 288))
.notConsumable('gtceu:ball_casting_mold')
.itemOutputs('alekiships:cannonball')
.duration(75)
.EUt(4)
event.recipes.gtceu.alloy_smelter('tfg:cast_cannonball')
.itemInputs('2x #forge:ingots/iron')
.notConsumable('gtceu:ball_casting_mold')
.itemOutputs('alekiships:cannonball')
.duration(75)
.category(GTRecipeCategories.INGOT_MOLDING)
.EUt(4)
event.recipes.tfc.heating('alekiships:cannonball', 1535)
.resultFluid(Fluid.of('gtceu:iron', 288))
.id(`alekiships:heating/cannonball`)
//#endregion
}

View file

@ -0,0 +1,12 @@
/**
*
* @param {TagEvent.Item} event
*/
const registerAlekishipsItemTags = (event) =>
{
global.ALEKISHIPS_DISABLED_ITEMS.forEach(element => {
event.removeAllTagsFrom(element);
event.add("c:hidden_from_recipe_viewers", element)
});
}

View file

@ -0,0 +1,54 @@
// priority: 0
const registerBeneathRecipes = (event) => {
global.BENEATH_DISABLED_ITEMS.forEach(item => {
event.remove({ input: item })
event.remove({ output: item })
})
event.remove({ id: 'beneath:collapse/basalt' })
event.remove({ id: 'beneath:collapse/nether_bricks' })
event.remove({ id: 'beneath:crafting/ancient_altar' })
event.remove({ id: 'beneath:crafting/blackstone' })
event.remove({ id: 'beneath:crafting/blackstone_uncraft' })
event.remove({ id: 'beneath:crafting/blackstone_bricks_from_soot' })
event.remove({ id: 'beneath:crafting/blackstone_from_soot' })
event.remove({ id: 'beneath:crafting/blackstone_plate' })
event.remove({ id: 'beneath:crafting/blackstone_button' })
event.remove({ id: 'beneath:crafting/hellbricks' })
event.remove({ id: 'beneath:quern/slime' })
event.shaped('beneath:unposter', [
'ABA',
'AAA',
'CCC'
], {
A: '#tfc:lumber',
B: 'tfc:composter',
C: '#tfc:mud'
}).id('beneath:crafting/unposter')
event.shapeless('beneath:hellbricks', [
'#forge:stone_bricks',
'minecraft:magma_cream',
'tfc:powder/sulfur',
'tfc:soot'
]).id('tfg:shapeless/hellbricks_from_soot')
event.shapeless('beneath:hellbricks', [
'#forge:stone_bricks',
'minecraft:magma_cream',
'tfc:powder/sulfur',
'tfc:powder/wood_ash'
]).id('tfg:shapeless/hellbricks_from_wood_ash')
event.recipes.gtceu.assembler("loose_blackstone_to_bricks")
.itemInputs('beneath:blackstone_pebble')
.itemOutputs('beneath:blackstone_brick')
.circuit(1)
.duration(40)
.EUt(8)
event.recipes.tfc.landslide('beneath:soul_clay', 'beneath:soul_clay')
}

View file

@ -0,0 +1,33 @@
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')
}
const registerBeneathItemTags = (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')
}

View file

@ -0,0 +1,141 @@
const registerBuildingGadgetsRecipes = (event) => {
event.remove({ mod: 'buildinggadgets2' })
event.shapeless(Item.of('patchouli:guide_book', '{"patchouli:book":"buildinggadgets2:buildinggadgets2book"}'), [
'minecraft:scaffolding',
'#forge:books'
]).id('buildinggadgets2:shapeless/guide_book')
// Building Gadget
event.recipes.gtceu.assembler('buildinggadgets2:/assembler/gadget_building')
.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:lapotron_crystal', '1x ae2:formation_plane')
.circuit(4)
.itemOutputs('buildinggadgets2:gadget_building')
.duration(160)
.EUt(2000)
event.recipes.gtceu.arc_furnace('buildinggadgets2:arc_furnace/recycling/gadget_building')
.itemInputs('1x buildinggadgets2:gadget_building')
.itemOutputs('10x gtceu:titanium_ingot', '1x gtceu:lapotron_gem')
.duration(224)
.EUt(GTValues.VA[GTValues.LV])
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
event.recipes.gtceu.macerator('buildinggadgets2:macerator/recycling/gadget_building')
.itemInputs('1x buildinggadgets2:gadget_building')
.itemOutputs('10x gtceu:titanium_dust', '15x gtceu:lapotron_dust')
.duration(224)
.EUt(GTValues.VA[GTValues.LV])
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Exchanging Gadget
event.recipes.gtceu.assembler('buildinggadgets2:/assembler/gadget_exchanging')
.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:lapotron_crystal', '1x ae2:equal_distribution_card')
.circuit(4)
.itemOutputs('buildinggadgets2:gadget_exchanging')
.duration(160)
.EUt(2000)
event.recipes.gtceu.arc_furnace('buildinggadgets2:arc_furnace/recycling/gadget_exchanging')
.itemInputs('1x buildinggadgets2:gadget_exchanging')
.itemOutputs('10x gtceu:titanium_ingot', '1x gtceu:lapotron_gem')
.duration(224)
.EUt(GTValues.VA[GTValues.LV])
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
event.recipes.gtceu.macerator('buildinggadgets2:macerator/recycling/gadget_exchanging')
.itemInputs('1x buildinggadgets2:gadget_exchanging')
.itemOutputs('10x gtceu:titanium_dust', '15x gtceu:lapotron_dust')
.duration(224)
.EUt(GTValues.VA[GTValues.LV])
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// 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')
.circuit(4)
.itemOutputs('buildinggadgets2:gadget_copy_paste')
.duration(160)
.EUt(8100)
event.recipes.gtceu.arc_furnace('buildinggadgets2:arc_furnace/recycling/gadget_copy_paste')
.itemInputs('1x buildinggadgets2:gadget_copy_paste')
.itemOutputs('10x gtceu:tungsten_steel_ingot', '1x gtceu:lapotron_gem')
.duration(224)
.EUt(GTValues.VA[GTValues.LV])
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
event.recipes.gtceu.macerator('buildinggadgets2:macerator/recycling/gadget_copy_paste')
.itemInputs('1x buildinggadgets2:gadget_copy_paste')
.itemOutputs('10x gtceu:tungsten_steel_dust', '15x gtceu:lapotron_dust')
.duration(224)
.EUt(GTValues.VA[GTValues.LV])
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Dustruction Gadget
event.recipes.gtceu.assembler('buildinggadgets2:/assembler/gadget_destruction')
.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:energy_crystal', '1x ae2:annihilation_plane')
.circuit(4)
.itemOutputs('buildinggadgets2:gadget_destruction')
.duration(160)
.EUt(2000)
event.recipes.gtceu.arc_furnace('buildinggadgets2:arc_furnace/recycling/gadget_destruction')
.itemInputs('1x buildinggadgets2:gadget_destruction')
.itemOutputs('10x gtceu:titanium_ingot', '1x gtceu:energy_crystal')
.duration(224)
.EUt(GTValues.VA[GTValues.LV])
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
event.recipes.gtceu.macerator('buildinggadgets2:macerator/recycling/gadget_destruction')
.itemInputs('1x buildinggadgets2:gadget_destruction')
.itemOutputs('10x gtceu:titanium_dust', '9x gtceu:energium_dust')
.duration(224)
.EUt(GTValues.VA[GTValues.LV])
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// 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')
.circuit(4)
.itemOutputs('buildinggadgets2:gadget_cut_paste')
.duration(160)
.EUt(8100)
event.recipes.gtceu.arc_furnace('buildinggadgets2:arc_furnace/recycling/gadget_cut_paste')
.itemInputs('1x buildinggadgets2:gadget_cut_paste')
.itemOutputs('10x gtceu:tungsten_steel_ingot', '1x gtceu:energy_crystal')
.duration(224)
.EUt(GTValues.VA[GTValues.LV])
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
event.recipes.gtceu.macerator('buildinggadgets2:macerator/recycling/gadget_cut_paste')
.itemInputs('1x buildinggadgets2:gadget_cut_paste')
.itemOutputs('10x gtceu:tungsten_steel_dust', '9x gtceu:energium_dust')
.duration(224)
.EUt(GTValues.VA[GTValues.LV])
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Template Manager
event.recipes.gtceu.assembler('buildinggadgets2:/assembler/template_manager')
.itemInputs('1x gtceu:robust_machine_casing','2x gtceu:iv_electric_motor','8x #forge:plates/tungsten_steel', '1x #gtceu:circuits/iv', '1x gtceu:chemical_blue_dye', '1x gtceu:chemical_red_dye', '1x create:clipboard')
.circuit(4)
.itemOutputs('buildinggadgets2:template_manager ')
.duration(160)
.EUt(2000)
event.recipes.gtceu.arc_furnace('buildinggadgets2:arc_furnace/recycling/template_manager')
.itemInputs('1x buildinggadgets2:template_manager')
.itemOutputs('10x gtceu:tungsten_steel_ingot')
.duration(224)
.EUt(GTValues.VA[GTValues.LV])
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
event.recipes.gtceu.macerator('buildinggadgets2:macerator/recycling/template_manager')
.itemInputs('1x buildinggadgets2:template_manager')
.itemOutputs('10x gtceu:tungsten_steel_dust')
.duration(224)
.EUt(GTValues.VA[GTValues.LV])
.category(GTRecipeCategories.MACERATOR_RECYCLING)
}

View file

@ -0,0 +1,41 @@
// priority: 0
const registerCccBridgeRecipes = (event) => {
event.remove({not: [
{ id: 'cccbridge:to_target_block' },
{ id: 'cccbridge:to_source_block' }
], mod: 'cccbridge' });
// Animatronic
event.recipes.gtceu.assembler('cccbridge:assembler/animatronic_block')
.itemInputs('1x gtceu:hv_machine_casing','2x gtceu:hv_robot_arm','2x vintageimprovements:redstone_module', '1x greate:stainless_steel_cogwheel', '1x gtceu:computer_monitor_cover')
.circuit(4)
.itemOutputs('cccbridge:animatronic_block')
.duration(800)
.EUt(GTValues.VA[GTValues.HV])
// Scroller Pane
event.recipes.gtceu.assembler('cccbridge:assembler/scroller_block')
.itemInputs('1x computercraft:wired_modem', '1x greate:aluminium_cogwheel', '1x gtceu:computer_monitor_cover')
.circuit(4)
.itemOutputs('cccbridge:scroller_block')
.duration(600)
.EUt(GTValues.VA[GTValues.MV])
// RedRouter Block
event.recipes.gtceu.assembler('cccbridge:assembler/redrouter_block')
.itemInputs('1x computercraft:wired_modem', '1x gtceu:mv_machine_casing', '1x gtceu:computer_monitor_cover','10x vintageimprovements:redstone_module', '8x #gtceu:transistors')
.circuit(4)
.itemOutputs('cccbridge:redrouter_block')
.duration(800)
.EUt(GTValues.VA[GTValues.MV])
// Source Block
event.recipes.gtceu.assembler('cccbridge:assembler/source_block')
.itemInputs('1x computercraft:wired_modem', '1x gtceu:mv_machine_casing', '1x gtceu:computer_monitor_cover', ChemicalHelper.get(TagPrefix.plate, GTMaterials.Redstone, 8))
.circuit(4)
.itemOutputs('cccbridge:source_block')
.duration(800)
.EUt(GTValues.VA[GTValues.MV])
}

View file

@ -0,0 +1,94 @@
// priority: 0
function registerCccBridgeRecyclingRecipes(event) {
// Source Block
event.recipes.gtceu.macerator('cccbridge:macerator/recycling/source_block')
.itemInputs('cccbridge:source_block')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 5),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Redstone, 4)
)
.duration(GTMaterials.Aluminium.getMass() * 5)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('cccbridge:arc_furnace/recycling/source_block')
.itemInputs('cccbridge:source_block')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 5),
ChemicalHelper.get(TagPrefix.plate, GTMaterials.Redstone, 4)
)
.duration(GTMaterials.Aluminium.getMass() * 5)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Target Block
event.recipes.gtceu.macerator('cccbridge:macerator/recycling/target_block')
.itemInputs('cccbridge:target_block')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 5),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Redstone, 4)
)
.duration(GTMaterials.Aluminium.getMass() * 5)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('cccbridge:arc_furnace/recycling/target_block')
.itemInputs('cccbridge:target_block')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 5),
ChemicalHelper.get(TagPrefix.plate, GTMaterials.Redstone, 4)
)
.duration(GTMaterials.Aluminium.getMass() * 5)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// RedRouter Block
event.recipes.gtceu.macerator('cccbridge:macerator/recycling/redrouter_block')
.itemInputs('cccbridge:redrouter_block')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 4),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.RedAlloy, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Brass, 5)
)
.duration(GTMaterials.Aluminium.getMass() * 4)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('cccbridge:arc_furnace/recycling/redrouter_block')
.itemInputs('cccbridge:redrouter_block')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 4),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.RedAlloy, 6),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Brass, 5)
)
.duration(GTMaterials.Aluminium.getMass() * 4)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Animatronic Block
event.recipes.gtceu.macerator('cccbridge:macerator/recycling/animatronic_block')
.itemInputs('cccbridge:animatronic_block')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 18),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Electrum, 12),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Silver, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Gold, 5)
)
.duration(GTMaterials.StainlessSteel.getMass() * 18)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('cccbridge:arc_furnace/recycling/animatronic_block')
.itemInputs('cccbridge:animatronic_block')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 18),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Electrum, 12),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Silver, 6),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Gold, 5)
)
.duration(GTMaterials.StainlessSteel.getMass() * 18)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
}

View file

@ -0,0 +1,11 @@
/**
*
* @param {Internal.TFCDataEventJS} evt
*/
const registerTFCDataForChalk = (evt) =>
{
global.MINECRAFT_DYE_NAMES.forEach(dyeName =>
{
evt.itemHeat(`tfg:wet_${dyeName}_chalk`, 1, null, null, `tfg:heating/wet_${dyeName}_chalk`)
})
}

View file

@ -0,0 +1,50 @@
/**
*
* @param {Internal.RecipesEventJS} evt
*/
const registerChalkRecipes = (evt) => {
evt.remove({ output: "#chalk:chalks" })
evt.replaceInput({ id: "chalk:chalk_box" }, "minecraft:slime_ball", "tfc:glue")
//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"])
.outputItem("tfg:unfired_chalk")
.id(`chalk:mixing_bowl/unfired_chalk_stick_from_dust`)
global.MINECRAFT_DYE_NAMES.forEach(dyeName => {
//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`])
.inputFluids([Fluid.of(`tfc:${dyeName}_dye`, 36)])
.itemOutputs([`chalk:${dyeName}_chalk`])
.duration(600)
.EUt(1)
.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)
.id(`chalk:create_mixer/wet_${dyeName}_chalk_from_dust`);
evt.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_sealed(20 * 50)
.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)
.resultItem(`chalk:${dyeName}_chalk`)
.id(`chalk:heating/${dyeName}_chalk`)
evt.smelting(
`chalk:${dyeName}_chalk`,
`tfg:wet_${dyeName}_chalk`
).id(`chalk:smelting/${dyeName}_chalk`)
})
}

View file

@ -0,0 +1,10 @@
/**
*
* @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`)
}

View file

@ -0,0 +1,60 @@
/**
*
* @param {Internal.RecipesEventJS} event
*/
const registerComfortsRecipes = (event) => {
event.remove({ mod: "comforts" })
//Rope and Nail
event.recipes.minecraft.crafting_shapeless("comforts:rope_and_nail", ["firmaciv:rope_coil", "gtceu:wrought_iron_screw"])
.id("comforts:crafting/shaped/rope_and_nail");
//sleeping bag
event.recipes.minecraft.crafting_shaped("comforts:sleeping_bag_white", [
"AAA",
"B "
], {
A: "#tfc:high_quality_cloth",
B: 'tfc:bone_needle'
});
event.recipes.minecraft.crafting_shaped("comforts:hammock_white", [
"ABA",
"CCC",
"ABA"
], {
A: "#forge:string",
B: "gtceu:long_wood_rod",
C: "#tfc:high_quality_cloth",
})
global.MINECRAFT_DYE_NAMES.forEach(dyeName => {
event.recipes.gtceu.chemical_bath(`comforts:chemical_bath/dye_${dyeName}_sleeping_bag`)
.itemInputs("#comforts:sleeping_bags")
.inputFluids(Fluid.of(`tfc:${dyeName}_dye`, 144))
.itemOutputs(`comforts:sleeping_bag_${dyeName}`)
.duration(20 * 15)
.category(GTRecipeCategories.CHEM_DYES)
.EUt(4);
event.recipes.tfc.barrel_sealed(20 * 60)
.inputs("#comforts:sleeping_bags", Fluid.of(`tfc:${dyeName}_dye`, 144))
.outputItem(`comforts:sleeping_bag_${dyeName}`)
.id(`barrel/comforts/sleeping_bag_${dyeName}`)
event.recipes.gtceu.chemical_bath(`comforts:chemical_bath/dye_${dyeName}_hammock`)
.itemInputs("#comforts:hammocks")
.inputFluids(Fluid.of(`tfc:${dyeName}_dye`, 144))
.itemOutputs(`comforts:hammock_${dyeName}`)
.duration(20 * 15)
.category(GTRecipeCategories.CHEM_DYES)
.EUt(4);
event.recipes.tfc.barrel_sealed(20 * 60)
.inputs("#comforts:hammocks", Fluid.of(`tfc:${dyeName}_dye`, 144))
.outputItem(`comforts:hammock_${dyeName}`)
.id(`barrel/comforts/hammock_${dyeName}`)
})
}

View file

@ -126,69 +126,44 @@ const registerComputerCraftRecipes = (event) => {
.id('tfg:crafting/wired_modem_full_shapeless')
// Computer Normal
event.shaped('computercraft:computer_normal', [
'AB ',
'CD ',
'EAE'
], {
A: 'gtceu:magnesium_diboride_single_wire',
B: 'gtceu:computer_monitor_cover',
C: '#gtceu:batteries/mv',
D: 'gtceu:mv_machine_casing',
E: '#gtceu:circuits/hv'
}).id('tfg:crafting/computer_normal')
event.recipes.gtceu.assembler('computercraft:assembler/computer_normal')
.itemInputs('1x gtceu:mv_machine_casing','2x #gtceu:circuits/hv','3x #forge:double_wires/magnesium_diboride', '2x #gtceu:batteries/mv', '4x computercraft:cable', '8x gtceu:cpu_chip', '1x gtceu:computer_monitor_cover')
.circuit(4)
.itemOutputs('computercraft:computer_normal')
.duration(1200)
.EUt(GTValues.VA[GTValues.MV])
// Computer Advanced
event.shaped('computercraft:computer_advanced', [
'AB ',
'CD ',
'EAE'
], {
A: 'gtceu:mercury_barium_calcium_cuprate_single_wire',
B: 'gtceu:computer_monitor_cover',
C: '#gtceu:batteries/hv',
D: 'gtceu:hv_machine_casing',
E: '#gtceu:circuits/ev'
}).id('tfg:crafting/computer_advanced')
event.recipes.gtceu.assembler('computercraft:assembler/computer_advanced')
.itemInputs('1x gtceu:hv_machine_casing','2x #gtceu:circuits/ev','3x #forge:double_wires/mercury_barium_calcium_cuprate', '2x #gtceu:batteries/hv', '4x computercraft:cable', '12x gtceu:soc', '1x gtceu:computer_monitor_cover')
.circuit(4)
.itemOutputs('computercraft:computer_advanced')
.duration(1200)
.EUt(GTValues.VA[GTValues.HV])
// Turtle Normal
event.shaped('computercraft:turtle_normal', [
'ABC',
'DFD',
'EGH'
], {
A: 'gtceu:hv_conveyor_module',
B: 'gtceu:hv_emitter',
C: 'gtceu:hv_sensor',
D: 'gtceu:hv_robot_arm',
E: '#gtceu:circuits/ev',
F: 'computercraft:computer_normal',
G: 'gtceu:steel_crate',
H: 'gtceu:hv_electric_piston',
}).id('tfg:crafting/turtle_normal')
event.recipes.gtceu.assembler('computercraft:assembler/turtle_normal')
.itemInputs('1x computercraft:computer_normal','2x #gtceu:circuits/ev','1x gtceu:steel_crate', '2x gtceu:hv_conveyor_module', '2x gtceu:hv_robot_arm', '1x gtceu:hv_emitter', '1x gtceu:hv_sensor', '1x gtceu:hv_fluid_regulator')
.circuit(4)
.itemOutputs('computercraft:turtle_normal')
.duration(1200)
.EUt(GTValues.VA[GTValues.HV])
// Turtle Advanced
event.shaped('computercraft:turtle_advanced', [
'ABC',
'DFD',
'EGH'
], {
A: 'gtceu:ev_conveyor_module',
B: 'gtceu:ev_emitter',
C: 'gtceu:ev_sensor',
D: 'gtceu:ev_robot_arm',
E: '#gtceu:circuits/iv',
F: 'computercraft:computer_advanced',
G: 'gtceu:aluminium_crate',
H: 'gtceu:ev_electric_piston',
}).id('tfg:crafting/turtle_advanced')
event.recipes.gtceu.assembler('computercraft:assembler/turtle_advanced')
.itemInputs('1x computercraft:computer_advanced','2x #gtceu:circuits/iv','1x gtceu:aluminium_crate', '2x gtceu:ev_conveyor_module', '2x gtceu:ev_robot_arm', '1x gtceu:ev_emitter', '1x gtceu:ev_sensor', '1x gtceu:ev_fluid_regulator')
.circuit(4)
.itemOutputs('computercraft:turtle_advanced')
.duration(1200)
.EUt(GTValues.VA[GTValues.EV])
// Disk Crafts
for (let i = 0; i < 16; i++) {
event.recipes.gtceu.chemical_bath('computercraft:disk' + `${global.MINECRAFT_DYE_NAMES[i]}`)
.itemInputs('ae2:blank_pattern')
.inputFluids(Fluid.of(`gtceu:${global.MINECRAFT_DYE_NAMES[i]}_dye`, 288))
.inputFluids(Fluid.of(`tfc:${global.MINECRAFT_DYE_NAMES[i]}_dye`, 288))
.itemOutputs(Item.of('computercraft:disk', global.COMPUTER_CRAFT_DISCS[i]))
.category(GTRecipeCategories.CHEM_DYES)
.duration(20)
.EUt(7)
}

View file

@ -0,0 +1,234 @@
// priority: 0
function registerComputerCraftRecyclingRecipes(event) {
// Computer
event.recipes.gtceu.macerator('computercraft:macerator/recycling/computer_normal')
.itemInputs('computercraft:computer_normal')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 5),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.BatteryAlloy, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.MagnesiumDiboride, 1)
)
.duration(GTMaterials.Aluminium.getMass() * 5)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('computercraft:arc_furnace/recycling/computer_normal')
.itemInputs('computercraft:computer_normal')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 5),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.BatteryAlloy, 6),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.MagnesiumDiboride, 1)
)
.duration(GTMaterials.Aluminium.getMass() * 5)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Advanced Computer
event.recipes.gtceu.macerator('computercraft:macerator/recycling/computer_advanced')
.itemInputs('computercraft:computer_advanced')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 4),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.BatteryAlloy, 8),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.MercuryBariumCalciumCuprate, 1)
)
.duration(GTMaterials.StainlessSteel.getMass() * 4)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('computercraft:arc_furnace/recycling/computer_advanced')
.itemInputs('computercraft:computer_advanced')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 4),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.BatteryAlloy, 8),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.MercuryBariumCalciumCuprate, 1)
)
.duration(GTMaterials.StainlessSteel.getMass() * 4)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Turtle
event.recipes.gtceu.macerator('computercraft:macerator/recycling/turtle_normal')
.itemInputs('computercraft:turtle_normal')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 20),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.BatteryAlloy, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 12),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 4)
)
.duration(GTMaterials.StainlessSteel.getMass() * 20)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('computercraft:arc_furnace/recycling/turtle_normal')
.itemInputs('computercraft:turtle_normal')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 20),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.BatteryAlloy, 6),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 12),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 4)
)
.duration(GTMaterials.StainlessSteel.getMass() * 20)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Advanced Turtle
event.recipes.gtceu.macerator('computercraft:macerator/recycling/turtle_advanced')
.itemInputs('computercraft:turtle_advanced')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Titanium, 20),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 15),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.BatteryAlloy, 9),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 4)
)
.duration(GTMaterials.Titanium.getMass() * 20)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('computercraft:arc_furnace/recycling/turtle_advanced')
.itemInputs('computercraft:turtle_advanced')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Titanium, 20),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 15),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.BatteryAlloy, 9),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 4)
)
.duration(GTMaterials.Titanium.getMass() * 20)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Pocket Computer
event.recipes.gtceu.macerator('computercraft:macerator/recycling/pocket_computer_normal')
.itemInputs('computercraft:pocket_computer_normal')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Titanium, 9),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Chromium, 2),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.BatteryAlloy, 4),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Platinum, 2)
)
.duration(GTMaterials.Titanium.getMass() * 9)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('computercraft:arc_furnace/recycling/pocket_computer_normal')
.itemInputs('computercraft:pocket_computer_normal')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Titanium, 9),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Chromium, 2),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.BatteryAlloy, 4),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Platinum, 2)
)
.duration(GTMaterials.Titanium.getMass() * 9)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Advanced Pocket Computer
event.recipes.gtceu.macerator('computercraft:macerator/recycling/pocket_computer_advanced')
.itemInputs('computercraft:pocket_computer_advanced')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Titanium, 9),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 1),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Platinum, 2)
)
.duration(GTMaterials.Titanium.getMass() * 9)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('computercraft:arc_furnace/recycling/pocket_computer_advanced')
.itemInputs('computercraft:pocket_computer_advanced')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Titanium, 9),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 1),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Platinum, 2)
)
.duration(GTMaterials.Titanium.getMass() * 9)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Monitor
event.recipes.gtceu.macerator('computercraft:macerator/recycling/monitor_normal')
.itemInputs('computercraft:monitor_normal')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 5)
)
.duration(GTMaterials.Aluminium.getMass() * 5)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('computercraft:arc_furnace/recycling/monitor_normal')
.itemInputs('computercraft:monitor_normal')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 5)
)
.duration(GTMaterials.Aluminium.getMass() * 5)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Advanced Monitor
event.recipes.gtceu.macerator('computercraft:macerator/recycling/monitor_advanced')
.itemInputs('computercraft:monitor_advanced')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 4)
)
.duration(GTMaterials.StainlessSteel.getMass() * 4)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('computercraft:arc_furnace/recycling/monitor_advanced')
.itemInputs('computercraft:monitor_advanced')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 4)
)
.duration(GTMaterials.StainlessSteel.getMass() * 4)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Printer
event.recipes.gtceu.macerator('computercraft:macerator/recycling/printer')
.itemInputs('computercraft:printer')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 15),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Cupronickel, 15),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 2),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Copper, 6)
)
.duration(GTMaterials.Aluminium.getMass() * 15)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('computercraft:arc_furnace/recycling/printer')
.itemInputs('computercraft:printer')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 15),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Cupronickel, 15),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 2),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Copper, 6)
)
.duration(GTMaterials.Aluminium.getMass() * 15)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Disk Drive
event.recipes.gtceu.macerator('computercraft:macerator/recycling/disk_drive')
.itemInputs('computercraft:disk_drive')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Titanium, 1),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 1)
)
.duration(GTMaterials.StainlessSteel.getMass() * 6)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('computercraft:arc_furnace/recycling/disk_drive')
.itemInputs('computercraft:disk_drive')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 6),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Titanium, 1),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 1)
)
.duration(GTMaterials.StainlessSteel.getMass() * 6)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
}

View file

@ -1,7 +1,12 @@
// priority: 0
const registerComputerCraftItemTags = (event) => {
// Nothing here for now :)
event.remove('minecraft:piglin_loved', 'computercraft:computer_advanced')
event.remove('minecraft:piglin_loved', 'computercraft:turtle_advanced')
event.remove('minecraft:piglin_loved', 'computercraft:wireless_modem_advanced')
event.remove('minecraft:piglin_loved', 'computercraft:pocket_computer_advanced')
event.remove('minecraft:piglin_loved', 'computercraft:monitor_advanced')
}
const registerComputerCraftBlockTags = (event) => {

View file

@ -0,0 +1,76 @@
// priority: 0
function registerConstructionwandRecipes(event) {
//remove recipes
event.remove({ id: 'constructionwand:stone_wand'})
event.remove({ id: 'constructionwand:iron_wand'})
event.remove({ id: 'constructionwand:diamond_wand'})
event.remove({ id: 'constructionwand:infinity_wand'})
event.remove({ id: 'constructionwand:core_angel'})
event.remove({ id: 'constructionwand:core_destruction'})
//new recipes
event.shaped('1x constructionwand:stone_wand', [
' C',
' B ',
'A '
], {
A: '#forge:rods/wooden',
B: '#forge:ingots/copper',
C: '#forge:chipped_gems'
}).id('constructionwand:shaped/stone_wand')
event.shaped('1x constructionwand:iron_wand', [
' C',
' B ',
'A '
], {
A: '#forge:rods/wooden',
B: '#forge:ingots/wrought_iron',
C: '#forge:gems'
}).id('constructionwand:shaped/iron_wand')
event.shaped('1x constructionwand:diamond_wand', [
' DC',
' B ',
'A '
], {
A: '#forge:rods/treated_wood',
B: '#forge:double_ingots/blue_steel',
C: '#forge:exquisite_gems',
D: 'ae2:ender_dust'
}).id('constructionwand:shaped/diamond_wand')
event.shaped('1x constructionwand:infinity_wand', [
' EB',
' C ',
'AD '
], {
A: '#forge:rods/polytetrafluoroethylene',
C: '#forge:rods/long/aluminium',
B: '#forge:double_plates/titanium',
D: '#gtceu:circuits/iv',
E: 'minecraft:nether_star',
}).id('constructionwand:shaped/infinity_wand')
event.shaped('1x constructionwand:core_angel', [
' BA',
'BCB',
'AB '
], {
A: 'immersive_aircraft:sail',
C: '#gtceu:circuits/lv',
B: '#forge:plates/glass'
}).id('constructionwand:shaped/core_angel')
event.shaped('1x constructionwand:core_destruction', [
' BA',
'BCB',
'DB '
], {
A: '#forge:pickaxe_heads/steel',
C: '#gtceu:circuits/lv',
B: '#forge:plates/glass',
D: '#forge:hammer_heads/steel'
}).id('constructionwand:shaped/core_destruction')
}

File diff suppressed because it is too large Load diff

View file

@ -2,52 +2,95 @@
const registerCreateItemTags = (event) => {
// Удаление тегов у отключенных предметов
global.CREATE_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
})
// Удаление тегов у отключенных предметов
global.CREATE_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
})
// Тэги для ручек и сидушек
global.MINECRAFT_DYE_NAMES.forEach(dye => {
event.add('tfg:colored_valve_handles', `create:${dye}_valve_handle`)
if (dye != 'white') event.add('tfg:colored_seats', `create:${dye}_seat`)
})
// Is this Greate's fault?
event.remove('c:hidden_from_recipe_viewers', 'create:copper_sheet')
event.remove('c:hidden_from_recipe_viewers', 'create:brass_sheet')
event.remove('c:hidden_from_recipe_viewers', 'create:golden_sheet')
event.remove('c:hidden_from_recipe_viewers', 'create:crushed_raw_gold')
event.remove('c:hidden_from_recipe_viewers', 'create:crushed_raw_copper')
event.remove('c:hidden_from_recipe_viewers', 'create:crushed_raw_zinc')
event.remove('c:hidden_from_recipe_viewers', 'create:crushed_raw_tin')
event.remove('c:hidden_from_recipe_viewers', 'create:crushed_raw_silver')
event.remove('c:hidden_from_recipe_viewers', 'create:crushed_raw_lead')
// Add "cloth" items so sails can be created with any kind of cloth instead of wool blocks
event.add('tfg:usable_in_sail_frame', 'tfc:burlap_cloth')
event.add('tfg:usable_in_sail_frame', 'tfc:wool_cloth')
event.add('tfg:usable_in_sail_frame', "tfc:silk_cloth")
// Тэги для ручек и сидушек
global.MINECRAFT_DYE_NAMES.forEach(dye => {
event.add('tfg:colored_valve_handles', `create:${dye}_valve_handle`)
event.add('minecraft:trimmable_armor', 'create:copper_diving_helmet')
event.add('minecraft:trimmable_armor', 'create:copper_diving_boots')
if (dye != 'white') event.add('tfg:colored_seats', `create:${dye}_seat`)
})
event.add('minecraft:trimmable_armor', 'create:copper_diving_helmet')
event.add('minecraft:trimmable_armor', 'create:copper_diving_boots')
event.add('minecraft:trimmable_armor', 'create:netherite_diving_helmet')
event.add('minecraft:trimmable_armor', 'create:netherite_backtank')
event.add('minecraft:trimmable_armor', 'create:netherite_diving_boots')
event.add('create:blaze_burner_fuel/regular', "gtceu:poor_raw_coal")
event.add('create:blaze_burner_fuel/regular', "gtceu:coal_dust")
event.add('create:blaze_burner_fuel/regular', "gtceu:charcoal_dust")
event.add('create:blaze_burner_fuel/regular', "gtceu:raw_coal")
event.add('create:blaze_burner_fuel/regular', "gtceu:rich_raw_coal")
event.add('create:blaze_burner_fuel/regular', "gtceu:flawed_coal_gem")
event.add('create:blaze_burner_fuel/regular', "gtceu:chipped_coal_gem")
event.add('create:blaze_burner_fuel/regular', "gtceu:pure_coal_dust")
event.add('create:blaze_burner_fuel/special', "gtceu:flawless_coal_gem")
event.add('create:blaze_burner_fuel/special', "gtceu:exquisite_coal_gem")
event.add('create:blaze_burner_fuel/special', "gtceu:coke_gem")
event.add('tfc:forge_invisible_whitelist', 'create:basin')
event.add('create:non_movable', 'gtceu:wood_crate')
event.add('create:non_movable', 'gtceu:bronze_crate')
event.add('create:non_movable', 'gtceu:steel_crate')
event.add('create:non_movable', 'gtceu:aluminium_crate')
event.add('create:non_movable', 'gtceu:stainless_steel_crate')
event.add('create:non_movable', 'gtceu:titanium_crate')
event.add('create:non_movable', 'gtceu:tungsten_steel_crate')
event.add('create:non_movable', '#create:toolboxes')
event.remove('create:stone_types/deepslate', 'minecraft:deepslate')
event.remove('create:stone_types/dripstone', 'minecraft:dripstone_block')
event.remove('create:stone_types/blackstone', 'minecraft:blackstone')
}
const registerCreateBlockTags = (event) => {
// Удаление тегов у отключенных предметов
global.CREATE_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
})
// Удаление тегов у отключенных предметов
global.CREATE_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
})
// Тэги для ручек и сидушек
global.MINECRAFT_DYE_NAMES.forEach(dye => {
event.add('tfg:colored_valve_handles', `create:${dye}_valve_handle`)
if (dye != 'white') event.add('tfg:colored_seats', `create:${dye}_seat`)
})
// Тэги для ручек и сидушек
global.MINECRAFT_DYE_NAMES.forEach(dye => {
event.add('tfg:colored_valve_handles', `create:${dye}_valve_handle`)
if (dye != 'white') event.add('tfg:colored_seats', `create:${dye}_seat`)
})
// Disable bulk blasting
event.removeAll('create:fan_processing_catalysts/blasting')
}
const registerCreateFluidTags = (event) => {
// Делаем воду из TFC бесконечной для помпы Create
event.add('create:bottomless/allow', 'tfc:fresh_water')
event.add('create:bottomless/allow', 'tfc:salt_water')
// Добавляем тег для скрытия в EMI
event.add('c:hidden_from_recipe_viewers', 'create:chocolate')
event.add('c:hidden_from_recipe_viewers', 'create:honey')
// Делаем воду из TFC бесконечной для помпы Create
event.add('create:bottomless/allow', 'tfc:fresh_water')
event.add('create:bottomless/allow', 'tfc:salt_water')
// Добавляем тег для скрытия в EMI
event.add('c:hidden_from_recipe_viewers', 'create:chocolate')
event.add('c:hidden_from_recipe_viewers', 'create:honey')
// Disable bulk blasting
event.removeAll('create:fan_processing_catalysts/blasting')
}

View file

@ -1,71 +1,95 @@
// priority: 0
const registerCreateAdditionsRecipes = (event) => {
// Удаление рецептов
event.remove({ mod: 'createaddition' });
// Прокатный стан
event.shaped('createaddition:rolling_mill', [
'ABA',
'CBC',
'DED'
], {
A: '#forge:plates/wrought_iron',
B: 'create:shaft',
C: '#forge:gears/wrought_iron',
D: '#forge:rings/wrought_iron',
E: 'create:andesite_casing',
}).id('tfg:create_additions/shaped/rolling_mill')
// Удаление рецептов
event.remove({ mod: 'createaddition' });
// Цифровой адаптер
event.shaped('createaddition:digital_adapter', [
'ABA',
'BCB',
'ABA'
], {
A: '#forge:plates/brass',
B: 'gtceu:red_alloy_single_wire',
C: 'computercraft:wired_modem',
}).id('tfg:create_additions/shaped/digital_adapter')
// Прокатный стан
event.shaped('createaddition:rolling_mill', [
'ABA',
'CBC',
'DED'
], {
A: 'create:precision_mechanism',
B: 'greate:steel_shaft',
C: '#forge:gears/black_steel',
D: '#gtceu:circuits/ulv',
E: 'gtceu:ulv_machine_hull'
}).id('tfg:create_additions/shaped/rolling_mill')
// Портативный энергетический интерфейс
event.shaped('createaddition:portable_energy_interface', [
'ABC',
'DEC',
'ADC'
], {
A: '#forge:plates/brass',
B: 'create:chute',
C: 'gtceu:copper_octal_wire',
D: 'gtceu:copper_single_cable',
E: 'create:brass_casing'
}).id('tfg:create_additions/shaped/portable_energy_interface')
// Цифровой адаптер
event.shaped('createaddition:digital_adapter', [
'ABA',
'BCB',
'ABA'
], {
A: '#forge:plates/brass',
B: 'gtceu:red_alloy_single_wire',
C: 'computercraft:wired_modem',
}).id('tfg:create_additions/shaped/digital_adapter')
// Батарейный блок
event.recipes.gtceu.assembler('create_additions/battery')
.itemInputs('gtceu:bronze_frame', '6x gtceu:bronze_plate', '24x gtceu:bronze_screw', '#gtceu:batteries/hv')
.itemOutputs('createaddition:modular_accumulator')
.duration(400)
.EUt(512)
// Портативный энергетический интерфейс
event.shaped('createaddition:portable_energy_interface', [
'ABC',
'DEC',
'ADC'
], {
A: '#forge:plates/brass',
B: 'create:chute',
C: 'gtceu:copper_octal_wire',
D: 'gtceu:copper_single_cable',
E: 'create:brass_casing'
}).id('tfg:create_additions/shaped/portable_energy_interface')
// Колючая проволка
event.shapeless('4x createaddition:barbed_wire', [
'#forge:rods/wrought_iron',
'#forge:rods/long/wrought_iron',
'#forge:rods/wrought_iron',
'#forge:rods/long/wrought_iron',
'#forge:rods/wrought_iron',
'#forge:rods/long/wrought_iron',
'#forge:rods/wrought_iron',
'#forge:rods/long/wrought_iron',
'#forge:tools/hammers'
]).id('tfg:create_additions/shapeless/barbed_wire')
// Батарейный блок
event.recipes.gtceu.assembler('create_additions/battery')
.itemInputs('gtceu:bronze_frame', '6x #forge:plates/bronze', '24x #forge:screws/bronze', '#gtceu:batteries/hv')
.itemOutputs('createaddition:modular_accumulator')
.duration(400)
.EUt(512)
event.recipes.gtceu.assembler('tfg:createaddition/barbed_wire')
.itemInputs('4x #forge:rods/wrought_iron', '4x #forge:rods/long/wrought_iron')
.circuit(3)
.itemOutputs('4x createaddition:barbed_wire')
.duration(200)
.EUt(20)
// Колючая проволка
event.shapeless('4x createaddition:barbed_wire', [
'#forge:rods/wrought_iron',
'#forge:rods/long/wrought_iron',
'#forge:rods/wrought_iron',
'#forge:rods/long/wrought_iron',
'#forge:rods/wrought_iron',
'#forge:rods/long/wrought_iron',
'#forge:rods/wrought_iron',
'#forge:rods/long/wrought_iron',
'#forge:tools/hammers'
]).id('tfg:create_additions/shapeless/barbed_wire')
event.recipes.gtceu.assembler('tfg:createaddition/barbed_wire')
.itemInputs('4x #forge:rods/wrought_iron', '4x #forge:rods/long/wrought_iron')
.circuit(3)
.itemOutputs('4x createaddition:barbed_wire')
.duration(200)
.EUt(20)
event.shaped('createaddition:electric_motor', [
'CCC',
'BDA',
'CCC'
], {
A: 'gtceu:ulv_voltage_coil',
B: 'create:rotation_speed_controller',
C: 'gtceu:tin_single_cable',
D: 'gtceu:lv_electric_motor',
}).id('tfg:createadditions/shaped/electric_motor')
event.shaped('createaddition:alternator', [
'ACA',
'FDB',
'ECE'
], {
A: '#gtceu:resistors',
B: '#gtceu:circuits/lv',
C: 'gtceu:ulv_voltage_coil',
D: 'gtceu:lv_machine_hull',
E: 'gtceu:tin_single_cable',
F: 'greate:steel_shaft'
}).id('tfg:createadditions/shaped/alternator')
}

View file

@ -1,74 +1,70 @@
// priority: 0
const registerCreateConnectedRecipes = (event) => {
// Centrifugal Clutch
event.shapeless('create_connected:centrifugal_clutch', [
'create:andesite_casing',
'#forge:plates/wrought_iron',
'create:speedometer',
'create:shaft',
]).id('create_connected:crafting/kinetics/centrifugal_clutch')
// Freewheel Clutch'
event.shapeless('create_connected:freewheel_clutch', [
'create:andesite_casing',
'#forge:plates/wrought_iron',
'create:shaft',
'create:cogwheel',
]).id('create_connected:crafting/kinetics/freewheel_clutch')
// Remove Fluid Vessel Crafting
event.remove({ id: 'create_connected:crafting/kinetics/fluid_vessel' })
// Overstress Clutch
event.shapeless('create_connected:overstress_clutch', [
'create:andesite_casing',
'#forge:plates/wrought_iron',
'create:shaft',
'create:electron_tube',
]).id('create_connected:crafting/kinetics/overstress_clutch')
// Centrifugal Clutch
event.shapeless('create_connected:centrifugal_clutch', [
'create:andesite_casing',
'#forge:plates/wrought_iron',
'create:speedometer',
'#tfg:shafts',
]).id('create_connected:crafting/kinetics/centrifugal_clutch')
// Item Silo
event.shaped('create_connected:item_silo', [
'CAC',
'BAD',
'CAC'
], {
A: '#forge:chests/wooden',
B: '#forge:sheets/wrought_iron',
C: '#forge:screws/steel',
D: '#forge:tools/screwdrivers'
}).id('create_connected:crafting/kinetics/item_silo')
// Freewheel Clutch'
event.shapeless('create_connected:freewheel_clutch', [
'create:andesite_casing',
'#forge:plates/wrought_iron',
'#tfg:shafts',
'#tfg:small_cogwheels',
]).id('create_connected:crafting/kinetics/freewheel_clutch')
event.recipes.gtceu.assembler('tfg:create_connected/item_silo')
.itemInputs('3x #forge:chests/wooden', '#forge:sheets/wrought_iron', '2x #forge:screws/steel')
.circuit(10)
.itemOutputs('create_connected:item_silo')
.duration(200)
.EUt(20)
// Overstress Clutch
event.shapeless('create_connected:overstress_clutch', [
'create:andesite_casing',
'#forge:plates/wrought_iron',
'#tfg:shafts',
'create:electron_tube',
]).id('create_connected:crafting/kinetics/overstress_clutch')
// Sequenced Pulse Generator
event.shaped('create_connected:sequenced_pulse_generator', [
'AB ',
'ACD',
'EEE'
], {
A: 'create:electron_tube',
B: 'create_connected:control_chip',
C: '#forge:plates/bronze',
D: 'minecraft:redstone_torch',
E: '#forge:stone'
}).id('create_connected:crafting/kinetics/sequenced_pulse_generator')
// Item Silo
event.shaped('create_connected:item_silo', [
' C ',
'BAD',
' C '
], {
A: '#forge:chests/wooden',
B: '#forge:sheets/wrought_iron',
C: '#forge:screws/wrought_iron',
D: '#forge:tools/screwdrivers'
}).id('create_connected:crafting/kinetics/item_silo')
// Shear Pin
event.recipes.gtceu.cutter('tfg:create_connected/shear_pin')
.itemInputs('create:shaft')
.itemOutputs('create_connected:shear_pin')
.duration(96)
.EUt(8)
event.recipes.gtceu.assembler('tfg:create_connected/item_silo')
.itemInputs('3x #forge:chests/wooden', '#forge:sheets/wrought_iron', '2x #forge:screws/steel')
.circuit(10)
.itemOutputs('create_connected:item_silo')
.duration(200)
.EUt(20)
event.recipes.gtceu.circuit_assembler('tfg:create_connected/control_chip')
.itemInputs('#forge:plates/gold', 'gtceu:resin_printed_circuit_board', '2x create:electron_tube')
.circuit(11)
.inputFluids(Fluid.of('gtceu:redstone', 144))
.itemOutputs('create_connected:control_chip')
.duration(720)
.EUt(16)
// Sequenced Pulse Generator
event.shaped('create_connected:sequenced_pulse_generator', [
'AB ',
'ACD',
'EEE'
], {
A: 'create:electron_tube',
B: '#gtceu:circuits/ulv',
C: '#forge:plates/bronze',
D: 'minecraft:redstone_torch',
E: '#forge:stone'
}).id('create_connected:crafting/kinetics/sequenced_pulse_generator')
// Shear Pin
event.recipes.gtceu.cutter('tfg:create_connected/shear_pin')
.itemInputs('#tfg:shafts')
.itemOutputs('create_connected:shear_pin')
.duration(96)
.EUt(8)
}

View file

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

View file

@ -0,0 +1,48 @@
// priority: 0
function registerCreateHorsePowerBlockRecipes(event) {
event.remove({id: 'createhorsepower:horse_crank' })
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped('createhorsepower:horse_crank', [
' A ',
'EBD',
'CCC'
], {
A: '#forge:fences/wooden',
B: '#forge:gears/bronze',
C: '#tfc:rock/raw',
D: '#forge:tools/hammers',
E: '#tfc:chisels'
})
).id('tfg:shaped/horse_crank_bronze')
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped('createhorsepower:horse_crank', [
' A ',
'EBD',
'CCC'
], {
A: '#forge:fences/wooden',
B: '#forge:gears/bismuth_bronze',
C: '#tfc:rock/raw',
D: '#forge:tools/hammers',
E: '#tfc:chisels'
})
).id('tfg:shaped/horse_crank_bismuth_bronze')
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped('createhorsepower:horse_crank', [
' A ',
'EBD',
'CCC'
], {
A: '#forge:fences/wooden',
B: '#forge:gears/black_bronze',
C: '#tfc:rock/raw',
D: '#forge:tools/hammers',
E: '#tfc:chisels'
})
).id('tfg:shaped/horse_crank_black_bronze')
}

View file

@ -0,0 +1,253 @@
const registerCreatedecoRecipes = (event) => {
//#region Item Replacements
const replacements = {
'create:zinc_ingot': '#forge:ingots/zinc',
'createdeco:zinc_sheet': '#forge:plates/zinc',
'create:zinc_nugget': '#forge:nuggets/zinc',
'create:brass_ingot': '#forge:ingots/brass',
'create:brass_sheet': '#forge:plates/brass',
'create:brass_nugget': '#forge:nuggets/brass',
'minecraft:iron_ingot': '#forge:ingots/wrought_iron',
'create:iron_sheet': '#forge:plates/wrought_iron',
'minecraft:iron_nugget': '#forge:nuggets/wrought_iron',
'createdeco:industrial_iron_ingot': '#forge:ingots/steel',
'createdeco:industrial_iron_sheet': '#forge:plates/steel',
'createdeco:industrial_iron_nugget': '#forge:nuggets/steel',
'minecraft:torch': 'minecraft:glowstone_dust',
'minecraft:vine': '#tfc:moss',
'create:andesite_alloy': '#forge:ingots/tin_alloy',
'createdeco:andesite_sheet': '#forge:plates/tin_alloy',
'create:copper_nugget': '#forge:nuggets/copper',
'createdeco:netherite_nugget': '#forge:nuggets/blue_steel',
'minecraft:string': '#forge:string'
};
// Iterate through the replacement list and update recipes
Object.keys(replacements).forEach(missingItem => {
const replacementItem = replacements[missingItem];
event.replaceInput({ mod: "createdeco" }, missingItem, replacementItem);
});
//#endregion
//#region Recipe Removal
event.remove({ output: 'createdeco:zinc_sheet' })
event.remove({ output: 'createdeco:industrial_iron_sheet' })
event.remove({ output: 'createdeco:industrial_iron_nugget' })
event.remove({ output: 'createdeco:industrial_iron_ingot' })
event.remove({ id: 'createdeco:andesite_bars_overlay' })
event.remove({ id: 'createdeco:andesite_bars' })
event.remove({ id: 'createdeco:brass_bars_overlay' })
event.remove({ id: 'createdeco:brass_bars' })
event.remove({ id: 'createdeco:iron_bars_overlay' })
event.remove({ id: 'createdeco:copper_bars_overlay' })
event.remove({ id: 'createdeco:copper_bars' })
event.remove({ id: 'createdeco:industrial_iron_bars_overlay' })
event.remove({ id: 'createdeco:industrial_iron_bars' })
event.remove({ id: 'createdeco:zinc_bars_overlay' })
event.remove({ id: 'createdeco:zinc_bars' })
event.remove({ type: 'minecraft:stonecutting', input: '#forge:storage_blocks/tin_alloy' })
event.remove({ type: 'minecraft:stonecutting', input: '#forge:storage_blocks/brass' })
event.remove({ type: 'minecraft:stonecutting', input: '#forge:storage_blocks/wrought_iron' })
event.remove({ type: 'minecraft:stonecutting', input: '#forge:storage_blocks/copper' })
event.remove({ type: 'minecraft:stonecutting', input: '#forge:storage_blocks/steel' })
event.remove({ type: 'minecraft:stonecutting', input: '#forge:storage_blocks/zinc' })
//#endregion
//#region Lamp Recipes
const lampColors = ['blue', 'green', 'red', 'yellow'];
const lampTypes = ['zinc', 'brass', 'iron', 'industrial_iron', 'copper', 'andesite'];
lampTypes.forEach(type => {
lampColors.forEach(color => {
event.remove({ output: `createdeco:${color}_${type}_lamp` });
});
});
function lampRecipe(output, lampType, lampColor) {
const replacementLampType = lampType;
if (lampType == 'industrial_iron') {
replacementLampType = 'steel';
}
if (lampType == 'andesite') {
replacementLampType = 'wrought_iron';
}
let ingredients = {
T: `minecraft:glowstone_dust`,
N: `#forge:nuggets/${replacementLampType}`,
P: `#forge:plates/${replacementLampType}`,
D: null,
X: null
};
// Adjust based on the color
if (lampColor === 'green') {
ingredients.D = 'gtceu:small_copper_dust';
} else if (lampColor === 'blue') {
ingredients.D = 'gtceu:small_sulfur_dust';
} else if (lampColor === 'red') {
ingredients.D = `gtceu:small_lithium_dust`;
} else if (lampColor === 'yellow') {
ingredients.D = `gtceu:small_salt_dust`;
}
if (lampType === 'iron') {
ingredients.N = '#forge:nuggets/wrought_iron';
ingredients.P = '#forge:plates/wrought_iron';
}
if (lampType === 'andesite') {
ingredients.N = '#forge:nuggets/tin_alloy';
ingredients.P = '#forge:plates/tin_alloy';
}
if (lampType === 'industrial_iron') {
ingredients.N = '#forge:nuggets/steel';
ingredients.P = '#forge:plates/steel';
}
// Create the shaped recipe
event.shaped(output, [
'XN ',
'DTX',
'XP '
], ingredients);
}
// Loop through each lamp type and color to create the recipes
lampTypes.forEach(lampType => {
lampColors.forEach(lampColor => {
let output = `createdeco:${lampColor}_${lampType}_lamp`; // Define the output item ID
lampRecipe(output, lampType, lampColor); // Call the lampRecipe function for each combination
});
});
//#endregion
//#region Brick Recipes
const brickTypes = ['blue', 'verdant', 'pearl', 'dean', 'dusk', 'scarlet', 'umber']
const powderTypes = ['lapis_lazuli', 'malachite', 'soda_ash', 'limonite', 'charcoal', 'hematite', 'cassiterite']
brickTypes.forEach(type => {
event.remove({ output: `createdeco:${type}_bricks` });
});
brickTypes.forEach((type, index) => {
const powder = `tfc:powder/${powderTypes[index]}`;
event.shaped(Item.of(`createdeco:${type}_bricks`, 4),
[
'BDB',
'MBM',
'BMB'
],
{
B: `minecraft:brick`,
D: powder,
M: `tfc:mortar`
});
});
//#endregion
//#region Dyes
global.MINECRAFT_DYE_NAMES.forEach(color => {
event.remove({ output: `createdeco:${color}_shipping_container`, input: 'minecraft:barrel' });
event.replaceInput({ mod: "createdeco" }, `minecraft:${color}_dye`, `#forge:dyes/${color}`);
});
//#endregion
// #region Bars
const metalThings = [
{ metal: 'andesite', material: 'tin_alloy', tier: 3 },
{ metal: 'brass', material: 'brass', tier: 2 },
{ metal: 'iron', material: 'wrought_iron', tier: 3 },
{ metal: 'copper', material: 'copper', tier: 1 },
{ metal: 'industrial_iron', material: 'steel', tier: 4 },
{ metal: 'zinc', material: 'zinc', tier: 1 }
];
metalThings.forEach(bar => {
event.remove({ id: `createdeco:${bar.metal}_trapdoor` })
event.remove({ id: `createdeco:${bar.metal}_door` })
if (bar.metal != 'iron') {
event.recipes.tfc.anvil(`8x createdeco:${bar.metal}_bars`, `#forge:plates/${bar.material}`, ['shrink_last', 'punch_second_last', 'punch_third_last'])
.tier(bar.tier).id(`createdeco:anvil/${bar.metal}_bars`)
event.recipes.tfc.anvil(`createdeco:${bar.metal}_door`, `#forge:double_plates/${bar.material}`, ['draw_last', 'draw_second_last', 'punch_third_last'])
.tier(bar.tier).id(`createdeco:anvil/${bar.metal}_door`)
event.recipes.tfc.anvil(`createdeco:${bar.metal}_trapdoor`, `#forge:plates/${bar.material}`, ['shrink_last', 'draw_second_last', 'draw_third_last'])
.tier(bar.tier).id(`createdeco:anvil/${bar.metal}_trapdoor`)
event.stonecutting(`4x createdeco:${bar.metal}_trapdoor`, `#forge:ingots/${bar.material}`)
.id(`createdeco:stonecutting/${bar.metal}_trapdoor`)
event.stonecutting(`createdeco:${bar.metal}_door`, `#forge:ingots/${bar.material}`)
.id(`createdeco:stonecutting/${bar.metal}_door`)
}
event.recipes.tfc.anvil(`8x createdeco:${bar.metal}_bars_overlay`, `#forge:plates/${bar.material}`, ['draw_last', 'punch_second_last', 'punch_third_last'])
.tier(bar.tier).id(`createdeco:anvil/${bar.metal}_bars_overlay`)
})
// #endregion
//#region Coins
event.recipes.gtceu.forming_press('createdeco:gold_coin')
.itemInputs('#forge:nuggets/gold')
.notConsumable('gtceu:credit_casting_mold')
.itemOutputs('4x createdeco:gold_coin')
.duration(50)
.EUt(16)
event.recipes.gtceu.forming_press('createdeco:netherite_coin')
.itemInputs('#forge:nuggets/blue_steel')
.notConsumable('gtceu:credit_casting_mold')
.itemOutputs('4x createdeco:netherite_coin')
.duration(50)
.EUt(16)
event.recipes.gtceu.forming_press('createdeco:brass_coin')
.itemInputs('#forge:nuggets/brass')
.notConsumable('gtceu:credit_casting_mold')
.itemOutputs('4x createdeco:brass_coin')
.duration(50)
.EUt(16)
event.recipes.gtceu.forming_press('createdeco:iron_coin')
.itemInputs('#forge:nuggets/wrought_iron')
.notConsumable('gtceu:credit_casting_mold')
.itemOutputs('4x createdeco:iron_coin')
.duration(50)
.EUt(16)
event.recipes.gtceu.forming_press('createdeco:copper_coin')
.itemInputs('#forge:nuggets/copper')
.notConsumable('gtceu:credit_casting_mold')
.itemOutputs('4x createdeco:copper_coin')
.duration(50)
.EUt(16)
event.recipes.gtceu.forming_press('createdeco:industrial_iron_coin')
.itemInputs('#forge:nuggets/steel')
.notConsumable('gtceu:credit_casting_mold')
.itemOutputs('createdeco:industrial_iron_coin')
.duration(50)
.EUt(16)
event.recipes.gtceu.forming_press('createdeco:zinc_coin')
.itemInputs('#forge:nuggets/zinc')
.notConsumable('gtceu:credit_casting_mold')
.itemOutputs('createdeco:zinc_coin')
.duration(50)
.EUt(16)
// #region
};

View file

@ -0,0 +1,48 @@
const registerCreatedecoItemTags = (event) => {
//#region Hidden Items
global.CREATEDECO_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
});
//#endregion
event.remove('createdeco:internal/blocks/iron_blocks', '#forge:storage_blocks/iron')
//#region Apply Tags
const metalBars = ['andesite', 'brass', 'iron', 'copper', 'industrial_iron', 'zinc'];
metalBars.forEach(metalBars => {
event.add('tfg:metal_bars', `createdeco:${metalBars}_bars`)
event.add('tfg:metal_bars', `createdeco:${metalBars}_bars_overlay`)
});
event.add("createdeco:internal/plates/iron_plates", "#forge:plates/wrought_iron")
event.add("createdeco:internal/plates/copper_plates", "#forge:plates/copper")
event.add("createdeco:internal/plates/brass_plates", "#forge:plates/brass")
event.add('createdeco:internal/plates/andesite_plates', '#forge:plates/tin_alloy')
event.add('createdeco:internal/plates/industrial_iron_plates', '#forge:sheets/steel')
event.add('createdeco:internal/plates/zinc_plates', '#forge:sheets/zinc')
event.add("createdeco:internal/nuggets/iron_nuggets", "#forge:nuggets/wrought_iron")
event.add("createdeco:internal/nuggets/copper_nuggets", "#forge:nuggets/copper")
event.add("createdeco:internal/nuggets/zinc_nuggets", "#forge:nuggets/zinc")
event.add("createdeco:internal/nuggets/industrial_iron_nuggets", "#forge:nuggets/steel")
event.add("createdeco:internal/nuggets/brass_nuggets", "#forge:nuggets/brass")
event.add("createdeco:internal/nuggets/copper_nuggets", "#forge:nuggets/copper")
event.add("createdeco:internal/ingots/iron_ingots", "#forge:ingots/wrought_iron")
event.add("createdeco:internal/ingots/copper_ingots", "#forge:ingots/copper")
event.add("createdeco:internal/ingots/brass_ingots", "#forge:ingots/brass")
event.add("createdeco:internal/ingots/zinc_ingots", "#forge:ingots/zinc")
event.add("createdeco:internal/ingots/andesite_ingots", "#forge:ingots/tin_alloy")
event.add("createdeco:internal/ingots/industrial_iron_ingots", `#forge:ingots/steel`)
event.add("createdeco:internal/blocks/iron_blocks", "#forge:storage_blocks/wrought_iron")
event.add("createdeco:internal/blocks/copper", "#forge:storage_blocks/copper")
event.add("createdeco:internal/blocks/brass_blocks", "#forge:storage_blocks/brass")
event.add("createdeco:internal/blocks/industrial_iron_blocks", "#forge:storage_blocks/steel")
event.add("createdeco:internal/blocks/zinc_blocks", "#forge:storage_blocks/zinc")
event.add("createdeco:internal/blocks/andesite_blocks", "#forge:storage_blocks/tin_alloy")
//#endregion
};

View file

@ -0,0 +1,19 @@
// priority: 0
function registerDiggerHelmetRecipes(event) {
event.remove({ mod: 'diggerhelmet' })
event.shaped('diggerhelmet:digger_helmet', [
' E ',
'BA ',
'DCD'
], {
A: '#minecraft:candles',
B: '#forge:rings',
C: 'minecraft:leather_helmet',
D: '#forge:rods/tin',
E: 'minecraft:glowstone_dust'
})
.id('tfg:shaped/digger_helmet')
}

View file

@ -0,0 +1,14 @@
// priority: 0
function registerDiggerHelmetItemTags(event) {
const DISABLED_ITEMS = [
'diggerhelmet:eternal_candle'
]
DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
})
}

View file

@ -0,0 +1,265 @@
const registerDomumOrnamentumRecipes = (event) => {
event.remove({ mod: 'domum_ornamentum', type: 'minecraft:crafting_shaped' })
event.remove({ mod: 'domum_ornamentum', type: 'minecraft:crafting_shapeless' })
//#region Extra Blocks
event.shaped(Item.of('domum_ornamentum:brick_extra', 5),
[
'B B',
' B ',
'B B'
],
{
B: 'minecraft:bricks'
}).id('domum_ornamentum:brick_extra');
event.shaped(Item.of('domum_ornamentum:cobblestone_extra', 5),
[
'B B',
' B ',
'B B'
],
{
B: '#forge:cobblestone'
}).id('domum_ornamentum:cobblestone_extra');
event.shaped(Item.of('domum_ornamentum:blue_cobblestone_extra', 8),
[
'BBB',
'BAB',
'BBB'
],
{
B: 'domum_ornamentum:cobblestone_extra',
A: '#forge:dyes/blue',
}).id('domum_ornamentum:blue_cobblestone_extra');
event.shaped(Item.of('domum_ornamentum:green_cobblestone_extra', 8),
[
'BBB',
'BAB',
'BBB'
],
{
B: 'domum_ornamentum:cobblestone_extra',
A: '#forge:dyes/green',
}).id('domum_ornamentum:green_cobblestone_extra');
event.shaped(Item.of('domum_ornamentum:purple_cobblestone_extra', 8),
[
'BBB',
'BAB',
'BBB'
],
{
B: 'domum_ornamentum:cobblestone_extra',
A: '#forge:dyes/purple',
}).id('domum_ornamentum:purple_cobblestone_extra');
event.shaped(Item.of('domum_ornamentum:mossy_cobblestone_extra', 8),
[
'BBB',
'BAB',
'BBB'
],
{
B: 'domum_ornamentum:cobblestone_extra',
A: '#tfc:moss',
}).id('domum_ornamentum:mossy_cobblestone_extra');
event.shaped(Item.of('domum_ornamentum:wheat_extra', 5),
[
'B B',
' B ',
'B B'
],
{
B: 'minecraft:hay_block'
}).id('domum_ornamentum:wheat_extra');
event.shaped(Item.of('domum_ornamentum:architectscutter', 1),
[
' E ',
'ACA',
'BDB'
],
{
A: '#forge:plates/wrought_iron',
B: '#tfc:lumber',
C: '#forge:plates/brass',
D: '#forge:small_gears',
E: '#forge:buzz_saw_heads'
}).id('domum_ornamentum:architectscutter');
event.recipes.tfc.damage_inputs_shapeless_crafting(event.recipes.minecraft.crafting_shapeless(
'4x domum_ornamentum:cactus_extra',
['tfc:plant/barrel_cactus', '#tfc:saws']))
.id('domum_ornamentum:cactus_extra');
event.shaped(Item.of('domum_ornamentum:green_cactus_extra', 8),
[
'AAA',
'ABA',
'AAA'
],
{
A: 'domum_ornamentum:cactus_extra',
B: '#forge:dyes/green'
}).id('domum_ornamentum:green_cactus_extra');
event.shapeless('4x domum_ornamentum:paper_extra', [
'4x #forge:paper'
]).id('domum_ornamentum:paper_extra');
event.shapeless('4x domum_ornamentum:paper_extra', [
'4x domum_ornamentum:white_paper_extra'
]).id('domum_ornamentum:paper_extra_decompress');
event.shapeless('4x domum_ornamentum:white_paper_extra', [
'4x domum_ornamentum:paper_extra'
]).id('domum_ornamentum:white_paper_extra');
//#endregion
//#region Colored Bricks
global.MINECRAFT_DYE_NAMES.forEach(color => {
event.shaped(Item.of(`domum_ornamentum:${color}_brick_extra`, 8),
[
'AAA',
'ABA',
'AAA'
],
{
A: 'domum_ornamentum:brick_extra',
B: `#forge:dyes/${color}`
}).id(`domum_ornamentum:${color}_brick_extra`);
})
//#endregion
//#region Bricks
//Brown Bricks
event.shaped(Item.of('domum_ornamentum:brown_bricks', 4),
[
'BAB',
'CBC',
'BAB'
],
{
A: 'tfc:brick/chert',
B: 'tfc:mortar',
C: 'minecraft:brick',
}).id('domum_ornamentum:brown_bricks');
event.shaped(Item.of('domum_ornamentum:brown_stone_bricks', 4),
[
'BCB',
'ABA',
'BCB'
],
{
A: 'tfc:brick/chert',
B: 'tfc:mortar',
C: 'minecraft:brick',
}).id('domum_ornamentum:brown_stone_bricks');
//Beige Bricks
event.shaped(Item.of('domum_ornamentum:beige_bricks', 4),
[
'BAB',
'CBC',
'BAB'
],
{
A: 'tfc:brick/conglomerate',
B: 'tfc:mortar',
C: 'minecraft:brick',
}).id('domum_ornamentum:beige_bricks');
event.shaped(Item.of('domum_ornamentum:beige_stone_bricks', 4),
[
'BCB',
'ABA',
'BCB'
],
{
A: 'tfc:brick/conglomerate',
B: 'tfc:mortar',
C: 'minecraft:brick',
}).id('domum_ornamentum:beige_stone_bricks');
//Cream Bricks
event.shaped(Item.of('domum_ornamentum:cream_bricks', 4),
[
'BAB',
'CBC',
'BAB'
],
{
A: 'tfc:brick/gneiss',
B: 'tfc:mortar',
C: 'minecraft:brick',
}).id('domum_ornamentum:cream_bricks');
event.shaped(Item.of('domum_ornamentum:cream_stone_bricks', 4),
[
'BCB',
'ABA',
'BCB'
],
{
A: 'tfc:brick/gneiss',
B: 'tfc:mortar',
C: 'minecraft:brick',
}).id('domum_ornamentum:cream_stone_bricks');
//Roan Bricks
event.shaped(Item.of('domum_ornamentum:roan_bricks', 4),
[
'BAB',
'CBC',
'BAB'
],
{
A: 'tfc:brick/claystone',
B: 'tfc:mortar',
C: 'minecraft:brick',
}).id('domum_ornamentum:roan_bricks');
event.shaped(Item.of('domum_ornamentum:roan_stone_bricks', 4),
[
'BCB',
'ABA',
'BCB'
],
{
A: 'tfc:brick/claystone',
B: 'tfc:mortar',
C: 'minecraft:brick',
}).id('domum_ornamentum:roan_stone_bricks');
//Sand Bricks
event.shaped(Item.of('domum_ornamentum:sand_bricks', 4),
[
'BAB',
'CBC',
'BAB'
],
{
A: 'tfc:brick/limestone',
B: 'tfc:mortar',
C: 'minecraft:brick',
}).id('domum_ornamentum:sand_bricks');
event.shaped(Item.of('domum_ornamentum:sand_stone_bricks', 4),
[
'BCB',
'ABA',
'BCB'
],
{
A: 'tfc:brick/limestone',
B: 'tfc:mortar',
C: 'minecraft:brick',
}).id('domum_ornamentum:sand_stone_bricks');
//#endregion
};

View file

@ -0,0 +1,192 @@
const registerDomumOrnamentumBlockTags = (event) => {
//#region Hidden Items
global.DOMUM_ORNAMENTUM_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
});
//#endregion
//#region Assign Tags
const materials = [
//tags
'#tfc:rock/bricks',
'#tfc:rock/smooth',
'#tfc:rock/gravel',
'#minecraft:planks',
'#minecraft:logs',
'#tfc:colored_raw_alabaster',
'#tfc:colored_bricks_alabaster',
'#tfc:colored_polished_alabaster',
'#tfc:mud_bricks',
'#forge:sandstone',
//rnr shingles
'rnr:wood/shingles/teak',
'rnr:wood/shingles/cypress',
'rnr:wood/shingles/fig',
'rnr:wood/shingles/ironwood',
'rnr:wood/shingles/ipe',
'rnr:wood/shingles/chestnut',
'rnr:wood/shingles/blackwood',
'rnr:wood/shingles/birch',
'rnr:wood/shingles/aspen',
'rnr:wood/shingles/ash',
'rnr:wood/shingles/acacia',
'rnr:ceramic_roof',
'rnr:terracotta_roof',
'rnr:wood/shingles/douglas_fir',
'rnr:wood/shingles/hickory',
'rnr:wood/shingles/kapok',
'rnr:wood/shingles/mangrove',
'rnr:wood/shingles/maple',
'rnr:wood/shingles/oak',
'rnr:wood/shingles/palm',
'rnr:wood/shingles/pine',
'rnr:wood/shingles/rosewood',
'rnr:wood/shingles/sequoia',
'rnr:wood/shingles/spruce',
'rnr:wood/shingles/sycamore',
'rnr:wood/shingles/white_cedar',
'rnr:wood/shingles/willow',
'rnr:wood/shingles/baobab',
'rnr:wood/shingles/eucalyptus',
'rnr:wood/shingles/mahogany',
'rnr:wood/shingles/hevea',
'rnr:wood/shingles/tualang',
//tfc blocks
'tfc:fire_bricks',
'tfc:aggregate',
'tfc:alabaster/raw',
'tfc:alabaster/bricks',
'tfc:alabaster/polished',
//gtceu blocks
'gtceu:coke_oven_bricks',
'gtceu:firebricks',
'gtceu:mossy_light_concrete_cobblestone',
'gtceu:polished_light_concrete',
'gtceu:light_concrete_bricks',
'gtceu:cracked_light_concrete_bricks',
'gtceu:mossy_light_concrete_bricks',
'gtceu:chiseled_light_concrete',
'gtceu:light_concrete_tile',
'gtceu:light_concrete_small_tile',
'gtceu:light_concrete_windmill_a',
'gtceu:light_concrete_windmill_b',
'gtceu:small_light_concrete_bricks',
'gtceu:square_light_concrete_bricks',
'gtceu:mossy_dark_concrete_cobblestone',
'gtceu:polished_dark_concrete',
'gtceu:dark_concrete_bricks',
'gtceu:cracked_dark_concrete_bricks',
'gtceu:mossy_dark_concrete_bricks',
'gtceu:chiseled_dark_concrete',
'gtceu:dark_concrete_tile',
'gtceu:dark_concrete_small_tile',
'gtceu:dark_concrete_windmill_a',
'gtceu:dark_concrete_windmill_b',
'gtceu:small_dark_concrete_bricks',
'gtceu:square_dark_concrete_bricks',
//createdeco blocks
'createdeco:dean_bricks',
'createdeco:short_dean_bricks',
'createdeco:tiled_dean_bricks',
'createdeco:long_dean_bricks',
'createdeco:corner_dean_bricks',
'createdeco:cracked_dean_bricks',
'createdeco:mossy_dean_bricks',
'createdeco:verdant_bricks',
'createdeco:short_verdant_bricks',
'createdeco:tiled_verdant_bricks',
'createdeco:long_verdant_bricks',
'createdeco:corner_verdant_bricks',
'createdeco:cracked_verdant_bricks',
'createdeco:mossy_verdant_bricks',
'createdeco:umber_bricks',
'createdeco:short_umber_bricks',
'createdeco:tiled_umber_bricks',
'createdeco:long_umber_bricks',
'createdeco:corner_umber_bricks',
'createdeco:cracked_umber_bricks',
'createdeco:mossy_umber_bricks',
'createdeco:short_red_bricks',
'createdeco:tiled_red_bricks',
'createdeco:long_red_bricks',
'createdeco:corner_red_bricks',
'createdeco:cracked_red_bricks',
'createdeco:mossy_red_bricks',
'createdeco:scarlet_bricks',
'createdeco:short_scarlet_bricks',
'createdeco:tiled_scarlet_bricks',
'createdeco:long_scarlet_bricks',
'createdeco:corner_scarlet_bricks',
'createdeco:cracked_scarlet_bricks',
'createdeco:mossy_scarlet_bricks',
'createdeco:blue_bricks',
'createdeco:short_blue_bricks',
'createdeco:tiled_blue_bricks',
'createdeco:long_blue_bricks',
'createdeco:corner_blue_bricks',
'createdeco:cracked_blue_bricks',
'createdeco:mossy_blue_bricks',
'createdeco:dusk_bricks',
'createdeco:short_dusk_bricks',
'createdeco:tiled_dusk_bricks',
'createdeco:long_dusk_bricks',
'createdeco:corner_dusk_bricks',
'createdeco:cracked_dusk_bricks',
'createdeco:mossy_dusk_bricks',
'createdeco:pearl_bricks',
'createdeco:short_pearl_bricks',
'createdeco:tiled_pearl_bricks',
'createdeco:long_pearl_bricks',
'createdeco:corner_pearl_bricks',
'createdeco:cracked_pearl_bricks',
'createdeco:mossy_pearl_bricks'
];
materials.forEach(material => {
event.add('domum_ornamentum:all_brick_materials', `${material}`)
event.add('domum_ornamentum:bricks', `${material}`)
event.add('domum_ornamentum:doors_materials', `${material}`)
event.add('domum_ornamentum:fancy_doors_materials', `${material}`)
event.add('domum_ornamentum:fancy_trapdoors_materials', `${material}`)
event.add('domum_ornamentum:fancy_gate_materials', `${material}`)
event.add('domum_ornamentum:fence_materials', `${material}`)
event.add('domum_ornamentum:paper_wall_center', `${material}`)
event.add('domum_ornamentum:paper_wall_frame', `${material}`)
event.add('domum_ornamentum:pillar_materials', `${material}`)
event.add('domum_ornamentum:post_materials', `${material}`)
event.add('domum_ornamentum:shingles_cover', `${material}`)
event.add('domum_ornamentum:shingles_roof', `${material}`)
event.add('domum_ornamentum:shingles_support', `${material}`)
event.add('domum_ornamentum:slab_materials', `${material}`)
event.add('domum_ornamentum:stairs_material', `${material}`)
event.add('domum_ornamentum:timber_frames_center', `${material}`)
event.add('domum_ornamentum:timber_frames_frame', `${material}`)
event.add('domum_ornamentum:trapdoors_materials', `${material}`)
event.add('domum_ornamentum:framed_light_center', `${material}`)
});
// Gregtech storage blocks don't work here
event.remove('domum_ornamentum:all_brick_materials', '#forge:storage_blocks')
event.remove('domum_ornamentum:bricks', '#forge:storage_blocks')
event.remove('domum_ornamentum:doors_materials', '#forge:storage_blocks')
event.remove('domum_ornamentum:fancy_doors_materials', '#forge:storage_blocks')
event.remove('domum_ornamentum:fancy_trapdoors_materials', '#forge:storage_blocks')
event.remove('domum_ornamentum:fancy_gate_materials', '#forge:storage_blocks')
event.remove('domum_ornamentum:fence_materials', '#forge:storage_blocks')
event.remove('domum_ornamentum:paper_wall_center', '#forge:storage_blocks')
event.remove('domum_ornamentum:paper_wall_frame', '#forge:storage_blocks')
event.remove('domum_ornamentum:pillar_materials', '#forge:storage_blocks')
event.remove('domum_ornamentum:post_materials', '#forge:storage_blocks')
event.remove('domum_ornamentum:shingles_cover', '#forge:storage_blocks')
event.remove('domum_ornamentum:shingles_roof', '#forge:storage_blocks')
event.remove('domum_ornamentum:shingles_support', '#forge:storage_blocks')
event.remove('domum_ornamentum:slab_materials', '#forge:storage_blocks')
event.remove('domum_ornamentum:stairs_material', '#forge:storage_blocks')
event.remove('domum_ornamentum:timber_frames_center', '#forge:storage_blocks')
event.remove('domum_ornamentum:timber_frames_frame', '#forge:storage_blocks')
event.remove('domum_ornamentum:trapdoors_materials', '#forge:storage_blocks')
event.remove('domum_ornamentum:framed_light_center', '#forge:storage_blocks')
//#endregion
};

View file

@ -0,0 +1,22 @@
const registerEndermanOverhaulItemTags = (event) => {
const DISABLED_ITEMS = [
'endermanoverhaul:tiny_skull',
'endermanoverhaul:enderman_tooth',
'endermanoverhaul:corrupted_blade',
'endermanoverhaul:corrupted_shield'
]
DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
})
}
const registerEndermanOverhaulBlockTags = (event) => {
event.add('endermanoverhaul:cave_enderman_holdable', 'forge:ores')
event.add('endermanoverhaul:cave_enderman_holdable', 'minecraft:base_stone_nether')
}

View file

@ -1,5 +1,8 @@
// priority: 0
/**
*
* @param {Internal.RecipesEventJS} event
*/
const registerEtchedRecipes = (event) => {
// Etching Table
@ -52,4 +55,19 @@ const registerEtchedRecipes = (event) => {
// Minecart With Jukebox
event.shapeless('etched:jukebox_minecart', ['minecraft:jukebox', 'minecraft:minecart'])
.id('etched:jukebox_minecart')
// Etched Blank Disc
event.remove('etched:blank_music_disc')
event.replaceOutput({ output: 'tfc:blank_disc'}, 'tfc:blank_disc', 'etched:blank_music_disc')
//vanilla music discs
event.replaceInput({ input: 'tfc:blank_disc'}, 'tfc:blank_disc', 'etched:blank_music_disc')
event.shapeless('create_connected:music_disc_interlude', ['etched:blank_music_disc', '#create:seats'])
event.shapeless('minecraft:music_disc_relic', ['etched:blank_music_disc', 'firmalife:pottery_sherd'])
event.shapeless('alekiships:music_disc_pirate_crafting', ['etched:blank_music_disc', 'alekiships:anchor'])
event.shapeless('minecraft:music_disc_pigstep', ['etched:blank_music_disc', 'firmalife:food/bacon', 'minecraft:blackstone'])
event.shapeless('minecraft:music_disc_5', ['etched:blank_music_disc', 'minecraft:deepslate'])
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');
}

View file

@ -1,22 +1,22 @@
// priority: 0
const registerEveryCompatRecipes = (event) => {
global.TFC_WOOD_TYPES.forEach(wood =>
{
event.remove({ id: `everycomp:c/tfc/${wood}_window_pane` })
event.shapeless(`2x everycomp:c/tfc/${wood}_window_pane`,
[
`everycomp:c/tfc/${wood}_window`,
'#forge:tools/saws'
])
.id(`tfg:everycompat/shapeless/${wood}_window_pane`)
event.recipes.gtceu.cutter(`tfg:everycompat/shapeless/${wood}_window_pane`)
.itemInputs(`3x everycomp:c/tfc/${wood}_window`)
.itemOutputs(`8x everycomp:c/tfc/${wood}_window_pane`)
.duration(40)
.EUt(20)
})
// priority: 0
const registerEveryCompatRecipes = (event) => {
global.TFC_WOOD_TYPES.forEach(wood =>
{
event.remove({ id: `everycomp:c/tfc/${wood}_window_pane` })
event.shapeless(`2x everycomp:c/tfc/${wood}_window_pane`,
[
`everycomp:c/tfc/${wood}_window`,
'#forge:tools/saws'
])
.id(`tfg:everycompat/shapeless/${wood}_window_pane`)
event.recipes.gtceu.cutter(`tfg:everycompat/shapeless/${wood}_window_pane`)
.itemInputs(`3x everycomp:c/tfc/${wood}_window`)
.itemOutputs(`8x everycomp:c/tfc/${wood}_window_pane`)
.duration(40)
.EUt(7)
})
}

View file

@ -1,9 +1,9 @@
// priority: 0
const registerEveryCompatItemTags = (event) => {
event.removeAllTagsFrom('everycomp:c/gtceu/rubber_window')
event.removeAllTagsFrom('everycomp:c/gtceu/rubber_window_pane')
event.add('c:hidden_from_recipe_viewers', 'everycomp:c/gtceu/rubber_window')
event.add('c:hidden_from_recipe_viewers', 'everycomp:c/gtceu/rubber_window_pane')
// priority: 0
const registerEveryCompatItemTags = (event) => {
event.removeAllTagsFrom('everycomp:c/gtceu/rubber_window')
event.removeAllTagsFrom('everycomp:c/gtceu/rubber_window_pane')
event.add('c:hidden_from_recipe_viewers', 'everycomp:c/gtceu/rubber_window')
event.add('c:hidden_from_recipe_viewers', 'everycomp:c/gtceu/rubber_window_pane')
}

View file

@ -0,0 +1,13 @@
/**
*
* @param {TagEvent.Item} evt
*/
const registerExposureItemTags = (evt) =>
{
evt.add('exposure:black_printing_dyes', '#forge:dyes/black')
evt.add('exposure:yellow_printing_dyes', '#forge:dyes/yellow')
evt.add('exposure:cyan_printing_dyes', '#forge:dyes/cyan')
evt.add('exposure:magenta_printing_dyes', '#forge:dyes/magenta')
evt.add('exposure:photo_agers', '#forge:dyes/brown')
}

View file

@ -5,6 +5,8 @@ const registerExtendedAE2Recipes = (event) => {
{ id: 'expatternprovider:ei_part' },
{ id: 'expatternprovider:epp_alt' },
{ id: 'expatternprovider:ei_alt' },
{ id: 'expatternprovider:oversize_interface_alt' },
{ id: 'expatternprovider:oversize_interface_part' },
], mod: 'expatternprovider' });
@ -75,6 +77,64 @@ const registerExtendedAE2Recipes = (event) => {
.cleanroom(CleanroomType.CLEANROOM)
//#endregion
//#region Oversized Interface
//Luv
event.recipes.gtceu.assembly_line('expatternprovider:oversize_interface_luv')
.itemInputs(
'2x #expatternprovider:extended_interface',
'8x megacells:accumulation_processor',
'4x gtceu:luv_robot_arm',
'8x gtceu:fusion_glass',
'4x #forge:dense_plates/rhodium_plated_palladium',
'#gtceu:circuits/luv',
'2x #gtceu:circuits/iv',)
.inputFluids(Fluid.of('gtceu:polybenzimidazole', 1152))
.itemOutputs("expatternprovider:oversize_interface")
.duration(300)
.EUt(GTValues.VA[GTValues.LuV])
.stationResearch(b => b.researchStack(Item.of("expatternprovider:ex_interface")).EUt(GTValues.VA[GTValues.LuV]).CWUt(8))
.cleanroom(CleanroomType.CLEANROOM)
//ZPM
event.recipes.gtceu.assembly_line('expatternprovider:oversize_interface_zpm')
.itemInputs(
'8x #expatternprovider:extended_interface',
'8x megacells:accumulation_processor',
'4x gtceu:zpm_robot_arm',
'8x gtceu:fusion_glass',
'4x #forge:dense_plates/naquadah_alloy',
'#gtceu:circuits/zpm',
'2x #gtceu:circuits/luv',)
.inputFluids(Fluid.of('gtceu:polybenzimidazole', 1152))
.itemOutputs("4x expatternprovider:oversize_interface")
.duration(300)
.EUt(GTValues.VA[GTValues.ZPM])
.stationResearch(b => b.researchStack(Item.of("expatternprovider:ex_interface")).EUt(GTValues.VA[GTValues.LuV]).CWUt(8))
.cleanroom(CleanroomType.CLEANROOM)
//UV
event.recipes.gtceu.assembly_line('expatternprovider:oversize_interface_uv')
.itemInputs(
'16x #expatternprovider:extended_interface',
'8x megacells:accumulation_processor',
'4x gtceu:uv_robot_arm',
'8x gtceu:fusion_glass',
'4x #forge:dense_plates/darmstadtium',
'#gtceu:circuits/uv',
'2x #gtceu:circuits/zpm',)
.inputFluids(Fluid.of('gtceu:polybenzimidazole', 1152))
.itemOutputs("8x expatternprovider:oversize_interface")
.duration(300)
.EUt(GTValues.VA[GTValues.UV])
.stationResearch(b => b.researchStack(Item.of("expatternprovider:ex_interface")).EUt(GTValues.VA[GTValues.LuV]).CWUt(8))
.cleanroom(CleanroomType.CLEANROOM)
//#endregion
//#region ex pattern provider
// IV
event.recipes.gtceu.assembly_line('expatternprovider:ex_pattern_provider_iv')
@ -279,7 +339,7 @@ const registerExtendedAE2Recipes = (event) => {
.itemInputs(
'ae2:blank_pattern',
'ae2:logic_processor')
.inputFluids(Fluid.of('gtceu:green_dye', 144))
.inputFluids(Fluid.of('tfc:green_dye', 144))
.itemOutputs('expatternprovider:pattern_modifier')
.duration(100)
.EUt(480)
@ -482,6 +542,245 @@ const registerExtendedAE2Recipes = (event) => {
.duration(200)
.EUt(1920)
//#endregion
}
//#region Assembler Matrix
//Frame
event.recipes.gtceu.assembly_line('expatternprovider:assembler_matrix_frame_luv')
.itemInputs(
'4x gtceu:plascrete',
'4x gtceu:luv_machine_casing',
'1x #gtceu:circuits/luv',
'1x megacells:accumulation_processor',
'4x ae2:logic_processor',
'4x #forge:rods/long/rhodium_plated_palladium',
'1x expatternprovider:ex_molecular_assembler',)
.inputFluids(
Fluid.of("gtceu:concrete", 1152),
Fluid.of('gtceu:polybenzimidazole', 1430),)
.itemOutputs('expatternprovider:assembler_matrix_frame')
.duration(400)
.EUt(30768)
.stationResearch(b => b.researchStack(Item.of("expatternprovider:ex_molecular_assembler")).EUt(GTValues.VA[GTValues.LuV]).CWUt(4))
.cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.assembly_line('expatternprovider:assembler_matrix_frame_zpm')
.itemInputs(
'8x gtceu:plascrete',
'4x gtceu:zpm_machine_casing',
'1x #gtceu:circuits/zpm',
'1x megacells:accumulation_processor',
'4x ae2:logic_processor',
'4x #forge:rods/long/naquadah_alloy',
'1x expatternprovider:ex_molecular_assembler',)
.inputFluids(
Fluid.of("gtceu:concrete", 1152),
Fluid.of('gtceu:polybenzimidazole', 1430),)
.itemOutputs('4x expatternprovider:assembler_matrix_frame')
.duration(400)
.EUt(123072)
.stationResearch(b => b.researchStack(Item.of("expatternprovider:ex_molecular_assembler")).EUt(GTValues.VA[GTValues.LuV]).CWUt(4))
.cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.assembly_line('expatternprovider:assembler_matrix_frame_uv')
.itemInputs(
'16x gtceu:plascrete',
'1x gtceu:uv_machine_casing',
'1x #gtceu:circuits/uv',
'1x megacells:accumulation_processor',
'4x ae2:logic_processor',
'4x #forge:rods/long/darmstadtium',
'1x expatternprovider:ex_molecular_assembler',)
.inputFluids(
Fluid.of("gtceu:concrete", 1152),
Fluid.of('gtceu:polybenzimidazole', 1430),)
.itemOutputs('8x expatternprovider:assembler_matrix_frame')
.duration(400)
.EUt(492288)
.stationResearch(b => b.researchStack(Item.of("expatternprovider:ex_molecular_assembler")).EUt(GTValues.VA[GTValues.LuV]).CWUt(4))
.cleanroom(CleanroomType.CLEANROOM)
//Matrix Wall
event.recipes.gtceu.assembler('expatternprovider:assembler_matrix_wall_luv')
.itemInputs(
'4x gtceu:iridium_frame',
'4x gtceu:plascrete',
"1x gtceu:incoloy_ma_956_plate",)
.inputFluids(
Fluid.of("gtceu:styrene_butadiene_rubber", 1152)
)
.itemOutputs('expatternprovider:assembler_matrix_wall')
.duration(800)
.EUt(30768)
//Matrix Glass
event.recipes.gtceu.assembler("expatternprovider:assembler_matrix_glass")
.itemInputs(
'4x gtceu:iridium_frame',
"4x gtceu:cleanroom_glass",
"1x gtceu:incoloy_ma_956_plate",)
.inputFluids(
Fluid.of("gtceu:styrene_butadiene_rubber", 1152)
)
.itemOutputs("expatternprovider:assembler_matrix_glass")
.duration(800)
.EUt(30768)
//Matrix Pattern
event.recipes.gtceu.assembly_line("expatternprovider:assembler_matrix_pattern_luv")
.itemInputs(
'#expatternprovider:extended_pattern_provider',
'4x megacells:accumulation_processor',
'4x gtceu:luv_robot_arm',
'2x #forge:dense_plates/rhodium_plated_palladium',
'#gtceu:circuits/luv',
'2x #gtceu:circuits/iv',)
.inputFluids(
Fluid.of("gtceu:europium", 16),
Fluid.of('gtceu:polybenzimidazole', 1430),)
.itemOutputs('1x expatternprovider:assembler_matrix_pattern')
.duration(800)
.EUt(GTValues.VA[GTValues.LuV])
.cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.assembly_line("expatternprovider:assembler_matrix_pattern_zpm")
.itemInputs(
'4x #expatternprovider:extended_pattern_provider',
'4x megacells:accumulation_processor',
'4x gtceu:zpm_robot_arm',
'2x #forge:dense_plates/naquadah_alloy',
'#gtceu:circuits/zpm',
'2x #gtceu:circuits/luv',)
.inputFluids(
Fluid.of("gtceu:europium", 16),
Fluid.of('gtceu:polybenzimidazole', 1430),)
.itemOutputs('4x expatternprovider:assembler_matrix_pattern')
.duration(800)
.EUt(GTValues.VA[GTValues.ZPM])
.cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.assembly_line("expatternprovider:assembler_matrix_pattern_uv")
.itemInputs(
'8x #expatternprovider:extended_pattern_provider',
'4x megacells:accumulation_processor',
'4x gtceu:uv_robot_arm',
'2x #forge:dense_plates/darmstadtium',
'#gtceu:circuits/uv',
'2x #gtceu:circuits/zpm',)
.inputFluids(
Fluid.of("gtceu:europium", 16),
Fluid.of('gtceu:polybenzimidazole', 1430),)
.itemOutputs('8x expatternprovider:assembler_matrix_pattern')
.duration(800)
.EUt(GTValues.VA[GTValues.UV])
.cleanroom(CleanroomType.CLEANROOM)
//Matrix Crafter
event.recipes.gtceu.assembly_line("expatternprovider:assembler_matrix_crafter_luv")
.itemInputs(
"#expatternprovider:oversize_interface",
'4x megacells:accumulation_processor',
'gtceu:iv_field_generator',
'2x #forge:dense_plates/rhodium_plated_palladium',
'#gtceu:circuits/luv',
'2x #gtceu:circuits/iv',)
.inputFluids(
Fluid.of("gtceu:europium", 16),
Fluid.of('gtceu:polybenzimidazole', 1430),)
.itemOutputs('1x expatternprovider:assembler_matrix_crafter')
.duration(800)
.EUt(GTValues.VA[GTValues.LuV])
.cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.assembly_line("expatternprovider:assembler_matrix_crafter_zpm")
.itemInputs(
"4x #expatternprovider:oversize_interface",
'4x megacells:accumulation_processor',
'gtceu:luv_field_generator',
'2x #forge:dense_plates/naquadah_alloy',
'#gtceu:circuits/zpm',
'2x #gtceu:circuits/luv',)
.inputFluids(
Fluid.of("gtceu:europium", 16),
Fluid.of('gtceu:polybenzimidazole', 1430),)
.itemOutputs('4x expatternprovider:assembler_matrix_crafter')
.duration(800)
.EUt(GTValues.VA[GTValues.ZPM])
.cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.assembly_line("expatternprovider:assembler_matrix_crafter_uv")
.itemInputs(
"8x #expatternprovider:oversize_interface",
'4x megacells:accumulation_processor',
'gtceu:iv_field_generator',
'2x #forge:dense_plates/darmstadtium',
'#gtceu:circuits/uv',
'2x #gtceu:circuits/zpm',)
.inputFluids(
Fluid.of("gtceu:europium", 16),
Fluid.of('gtceu:polybenzimidazole', 1430),)
.itemOutputs('8x expatternprovider:assembler_matrix_crafter')
.duration(800)
.EUt(GTValues.VA[GTValues.UV])
.cleanroom(CleanroomType.CLEANROOM)
//Matrix Speed
event.recipes.gtceu.assembly_line("expatternprovider:assembler_matrix_speed_luv")
.itemInputs(
"megacells:mega_crafting_accelerator",
'4x megacells:accumulation_processor',
"64x ae2:speed_card",
'2x #forge:dense_plates/rhodium_plated_palladium',
'#gtceu:circuits/luv',
'2x #gtceu:circuits/iv',)
.inputFluids(
Fluid.of("gtceu:europium", 16),
Fluid.of('gtceu:polybenzimidazole', 1430),)
.itemOutputs("expatternprovider:assembler_matrix_speed")
.duration(800)
.EUt(GTValues.VA[GTValues.LuV])
.cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.assembly_line("expatternprovider:assembler_matrix_speed_zpm")
.itemInputs(
"4x megacells:mega_crafting_accelerator",
'4x megacells:accumulation_processor',
"64x ae2:speed_card",
'2x #forge:dense_plates/naquadah_alloy',
'#gtceu:circuits/zpm',
'2x #gtceu:circuits/luv',)
.inputFluids(
Fluid.of("gtceu:europium", 16),
Fluid.of('gtceu:polybenzimidazole', 1430),)
.itemOutputs("4x expatternprovider:assembler_matrix_speed")
.duration(800)
.EUt(GTValues.VA[GTValues.ZPM])
.cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.assembly_line("expatternprovider:assembler_matrix_speed_uv")
.itemInputs(
"8x megacells:mega_crafting_accelerator",
'4x megacells:accumulation_processor',
"64x ae2:speed_card",
'2x #forge:dense_plates/darmstadtium',
'#gtceu:circuits/uv',
'2x #gtceu:circuits/zpm',)
.inputFluids(
Fluid.of("gtceu:europium", 16),
Fluid.of('gtceu:polybenzimidazole', 1430),)
.itemOutputs("8x expatternprovider:assembler_matrix_speed")
.duration(800)
.EUt(GTValues.VA[GTValues.UV])
.cleanroom(CleanroomType.CLEANROOM)
//#endregion
}

View file

@ -1,180 +1,115 @@
// priority: 0
const registerFirmaCivRecipes = (event) => {
//#region Удаление рецептов
event.remove({ id: '/firmaciv:quern/' })
event.remove({ id: 'firmaciv:anvil/copper_bolt' })
event.remove({ id: 'firmaciv:crafting/watercraft_frame_angled_2' }) // Как же меня заебал разраб со своими кривыми руками
//#region Удаление рецептов
//#endregion
event.remove({ id: '/firmaciv:quern/' })
event.remove({ id: 'firmaciv:anvil/copper_bolt' })
event.remove({ id: 'firmaciv:crafting/watercraft_frame_angled_2' }) // Как же меня заебал разраб со своими кривыми руками
event.remove("firmaciv:heating/cleat")
event.remove("firmaciv:heating/oarlock")
event.remove("firmaciv:heating/cannonball")
//#region Unfinished Sextant
event.recipes.tfc.heating('firmaciv:unfinished_sextant', 930)
.resultFluid(Fluid.of('gtceu:brass', 288))
.id(`firmaciv:heating/unfinished_sextant`)
//#endregion
//#endregion
//#region Sextant
event.recipes.gtceu.assembler('tfg:firmaciv/sextant')
.itemInputs('#forge:plates/brass', '2x #forge:rods/brass', '#forge:glass')
.circuit(10)
.itemOutputs('firmaciv:sextant')
.duration(75)
.EUt(4)
//#region Unfinished Sextant
event.recipes.tfc.heating('firmaciv:unfinished_sextant', 930)
.resultFluid(Fluid.of('gtceu:brass', 288))
.id(`firmaciv:heating/unfinished_sextant`)
//#endregion
event.recipes.tfc.heating('firmaciv:sextant', 930)
.resultFluid(Fluid.of('gtceu:brass', 288))
.id(`firmaciv:heating/sextant`)
//#endregion
//#region Sextant
event.recipes.gtceu.assembler('tfg:firmaciv/sextant')
.itemInputs('#forge:plates/brass', '#forge:small_gears/brass', '#forge:glass_panes')
.circuit(10)
.itemOutputs('firmaciv:sextant')
.duration(75)
.EUt(4)
//#region Unfinished Navigator Timepiece
event.recipes.tfc.heating('firmaciv:unfinished_nav_clock', 930)
.resultFluid(Fluid.of('gtceu:brass', 288))
.id(`firmaciv:heating/unfinished_nav_clock`)
event.recipes.tfc.heating('firmaciv:sextant', 930)
.resultFluid(Fluid.of('gtceu:brass', 288))
.id(`firmaciv:heating/sextant`)
//#endregion
event.replaceOutput( // This problem would come each time there's a double-plate recipe in an anvil. Dunno how to fix it other than that.
'gtceu:arc_furnace/arc_unfinished_nav_clock',
'gtceu:brass_ingot',
'2x gtceu:brass_ingot')
event.replaceOutput(
'gtceu:macerator/macerate_unfinished_nav_clock',
'gtceu:brass_dust',
'2x gtceu:brass_dust')
//#endregion
//#region Unfinished Navigator Timepiece
event.recipes.tfc.heating('firmaciv:unfinished_nav_clock', 930)
.resultFluid(Fluid.of('gtceu:brass', 288))
.id(`firmaciv:heating/unfinished_nav_clock`)
//#region Navigator Timepiece
event.recipes.gtceu.assembler('tfg:firmaciv/nav_clock')
.itemInputs('2x #forge:plates/brass', '4x #forge:rods/brass', '2x #forge:glass')
.circuit(11)
.itemOutputs('firmaciv:nav_clock')
.duration(75)
.EUt(4)
//#endregion
event.recipes.tfc.heating('firmaciv:nav_clock', 930)
.resultFluid(Fluid.of('gtceu:brass', 576))
.id(`firmaciv:heating/nav_clock`)
//#endregion
//#region Navigator Timepiece
event.recipes.gtceu.assembler('tfg:firmaciv/nav_clock')
.itemInputs('2x #forge:plates/brass', '3x #forge:small_gears/brass', '2x #forge:glass_panes')
.circuit(11)
.itemOutputs('firmaciv:nav_clock')
.duration(75)
.EUt(4)
//#region Unfinished Barometer
event.recipes.tfc.heating('firmaciv:unfinished_barometer', 930)
.resultFluid(Fluid.of('gtceu:brass', 144))
.id(`firmaciv:heating/unfinished_barometer`)
//#endregion
event.recipes.tfc.heating('firmaciv:nav_clock', 930)
.resultFluid(Fluid.of('gtceu:brass', 576))
.id(`firmaciv:heating/nav_clock`)
//#endregion
//#region Barometer
event.recipes.gtceu.assembler('tfg:firmaciv/barometer')
.itemInputs('2x #forge:plates/brass', '2x #forge:rods/brass', '#forge:glass')
.inputFluids(Fluid.of('minecraft:water', 1000))
.circuit(12)
.itemOutputs('firmaciv:barometer')
.duration(75)
.EUt(4)
//#region Unfinished Barometer
event.recipes.tfc.heating('firmaciv:unfinished_barometer', 930)
.resultFluid(Fluid.of('gtceu:brass', 144))
.id(`firmaciv:heating/unfinished_barometer`)
//#endregion
event.recipes.tfc.heating('firmaciv:barometer', 930)
.resultFluid(Fluid.of('gtceu:brass', 216))
.id(`firmaciv:heating/barometer`)
//#endregion
//#region Barometer
event.recipes.gtceu.assembler('tfg:firmaciv/barometer')
.itemInputs('#forge:plates/brass', '2x #forge:small_gears/brass', '#forge:glass_panes')
.inputFluids(Fluid.of('minecraft:water', 1000))
.circuit(12)
.itemOutputs('firmaciv:barometer')
.duration(75)
.EUt(4)
//#region Compass
event.recipes.gtceu.canner('tfg:firmaciv/compass')
.itemInputs('minecraft:redstone', '#forge:plates/wrought_iron')
.circuit(1)
.itemOutputs('firmaciv:firmaciv_compass')
.duration(100)
.EUt(4)
//#endregion
event.recipes.tfc.heating('firmaciv:barometer', 930)
.resultFluid(Fluid.of('gtceu:brass', 216))
.id(`firmaciv:heating/barometer`)
//#endregion
//#region Oarlock
event.recipes.gtceu.assembler('tfg:firmaciv/oarlock')
.itemInputs('#forge:double_plates/wrought_iron')
.circuit(13)
.itemOutputs('firmaciv:oarlock')
.duration(75)
.EUt(4)
//#region Compass
event.recipes.gtceu.assembler('tfg:firmaciv/compass')
.itemInputs('#forge:plates/wrought_iron', '#forge:bolts/magnetic_iron', '#forge:glass_panes')
.circuit(21)
.itemOutputs('firmaciv:firmaciv_compass')
.duration(100)
.EUt(4)
event.recipes.tfc.heating('firmaciv:oarlock', 1535)
.resultFluid(Fluid.of('gtceu:iron', 288))
.id(`firmaciv:heating/oarlock`)
//#endregion
event.shapeless('firmaciv:firmaciv_compass', ['tfc:lens', '#tfc:bowls', '#tfc:magnetic_rocks'])
//#endregion
//#region Cleat
event.recipes.gtceu.assembler('tfg:firmaciv/cleat')
.itemInputs('#forge:double_plates/steel')
.circuit(14)
.itemOutputs('firmaciv:cleat')
.duration(75)
.EUt(4)
//#region Cannon Barrel
event.recipes.gtceu.assembler('tfg:firmaciv/cannon_barrel')
.itemInputs('#forge:double_plates/wrought_iron')
.circuit(11)
.itemOutputs('firmaciv:cannon_barrel')
.duration(75)
.EUt(4)
event.recipes.tfc.heating('firmaciv:cleat', 1535)
.resultFluid(Fluid.of('gtceu:steel', 288))
.id(`firmaciv:heating/cleat`)
//#endregion
event.recipes.tfc.heating('firmaciv:cannon_barrel', 1535)
.resultFluid(Fluid.of('gtceu:iron', 288))
.id(`firmaciv:heating/cannon_barrel`)
//#endregion
//#region Anchor
event.recipes.gtceu.assembler('tfg:firmaciv/anchor')
.itemInputs('#forge:double_plates/steel')
.circuit(10)
.itemOutputs('firmaciv:anchor')
.duration(75)
.EUt(4)
//#region Cannon
event.recipes.tfc.heating('firmaciv:cannon', 1535)
.resultFluid(Fluid.of('gtceu:iron', 1008))
.id(`firmaciv:heating/cannon`)
//#endregion
event.recipes.tfc.heating('firmaciv:anchor', 1535)
.resultFluid(Fluid.of('gtceu:steel', 288))
.id(`firmaciv:heating/anchor`)
event.replaceOutput(
'gtceu:arc_furnace/arc_anchor',
'gtceu:steel_ingot',
'2x gtceu:steel_ingot')
event.replaceOutput(
'gtceu:macerator/macerate_anchor',
'gtceu:steel_dust',
'2x gtceu:steel_dust')
//#endregion
//#region Cannon Barrel
event.recipes.gtceu.assembler('tfg:firmaciv/cannon_barrel')
.itemInputs('#forge:double_plates/wrought_iron')
.circuit(11)
.itemOutputs('firmaciv:cannon_barrel')
.duration(75)
.EUt(4)
event.recipes.tfc.heating('firmaciv:cannon_barrel', 1535)
.resultFluid(Fluid.of('gtceu:iron', 288))
.id(`firmaciv:heating/cannon_barrel`)
//#endregion
//#region Cannonball
event.recipes.gtceu.assembler('tfg:firmaciv/cannonball')
.itemInputs('#forge:double_plates/wrought_iron')
.circuit(12)
.itemOutputs('firmaciv:cannonball')
.duration(75)
.EUt(4)
event.recipes.tfc.heating('firmaciv:cannonball', 1535)
.resultFluid(Fluid.of('gtceu:iron', 288))
.id(`firmaciv:heating/cannonball`)
event.replaceOutput(
'gtceu:arc_furnace/arc_cannon_barrel',
'gtceu:wrought_iron_ingot',
'2x gtceu:wrought_iron_ingot')
event.replaceOutput(
'gtceu:macerator/macerate_cannon_barrel',
'gtceu:iron_dust',
'2x gtceu:iron_dust')
//#endregion
//#region Cannon
event.recipes.tfc.heating('firmaciv:cannon', 1535)
.resultFluid(Fluid.of('gtceu:iron', 1872))
.id(`firmaciv:heating/cannon`)
//#endregion
// #region More rope
event.shaped('firmaciv:rope_coil', [
'A ',
'AB',
'A '
], {
A: '#forge:cloth',
B: '#forge:wax'
}).id('tfg:firmaciv/rope_coil_from_cloth')
// #endregion
}

View file

@ -7,6 +7,8 @@ const registerFirmaCivItemTags = (event) => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
})
event.add(`forge:rope`, `firmaciv:rope_coil`)
}
const registerFirmaCivBlockTags = (event) => {

File diff suppressed because it is too large Load diff

View file

@ -14,6 +14,8 @@ const registerFirmaLifeItemTags = (event) => {
})
event.add('minecraft:trimmable_armor', '#firmalife:beekeeper_armor')
event.add('tfc:foods/usable_in_salad', 'firmalife:food/pickled_egg')
// Удаление тегов у руд
event.removeAllTagsFrom("/tfc:ore/[^*]+/[^*]+/")
@ -34,7 +36,6 @@ const registerFirmaLifeFluidTags = (event) => {
// Добавляем тег для скрытия в EMI
event.add('c:hidden_from_recipe_viewers', 'firmalife:metal/chromium')
event.add('c:hidden_from_recipe_viewers', 'create:honey')
}
const registerFirmaLifePlacedFeatures = (event) => {

View file

@ -1,436 +1,513 @@
// priority: 0
const registerFramedBlocksRecipes = (event) => {
event.remove({ id: 'framedblocks:framed_torch' })
event.remove({ id: 'framedblocks:framing_saw/framed_torch' })
event.remove({ id: 'framedblocks:framed_soul_torch' })
event.remove({ id: 'framedblocks:framing_saw/framed_soul_torch' })
//#region Framed Iron Door
event.shaped('framedblocks:framed_iron_door', [
'ABA'
], {
A: '#forge:plates/wrought_iron',
B: 'framedblocks:framed_door'
}).id('framedblocks:framed_iron_door')
event.remove({ id: 'framedblocks:framed_torch' })
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.custom({
type: "framedblocks:frame",
additives: [
{
"count": 2,
"ingredient": {
"tag": "forge:plates/wrought_iron"
}
}
],
material: 3072,
result: {
item: "framedblocks:framed_iron_door"
}
}).id('framedblocks:framing_saw/framed_iron_door')
//#endregion
//#region Framed Iron Door
event.shaped('framedblocks:framed_iron_door', [
'ABA'
], {
A: '#forge:plates/wrought_iron',
B: 'framedblocks:framed_door'
}).id('framedblocks:framed_iron_door')
//#region Framed Iron Trapdoor
event.shapeless('framedblocks:framed_iron_trapdoor', [
'framedblocks:framed_trapdoor',
'#forge:plates/wrought_iron'
]).id('framedblocks:framed_iron_trapdoor')
event.custom({
type: "framedblocks:frame",
additives: [
{
"count": 2,
"ingredient": {
"tag": "forge:plates/wrought_iron"
}
}
],
material: 3072,
result: {
item: "framedblocks:framed_iron_door"
}
}).id('framedblocks:framing_saw/framed_iron_door')
//#endregion
event.custom({
type: "framedblocks:frame",
additives: [
{
count: 1,
ingredient: {
tag: "forge:plates/wrought_iron"
}
}
],
material: 1536,
result: {
item: "framedblocks:framed_iron_trapdoor"
}
}).id('framedblocks:framing_saw/framed_iron_trapdoor')
//#endregion
//#region Framed Iron Trapdoor
event.shapeless('framedblocks:framed_iron_trapdoor', [
'framedblocks:framed_trapdoor',
'#forge:plates/wrought_iron'
]).id('framedblocks:framed_iron_trapdoor')
//#region Framed Obsidian Pressure Plate
event.shaped('framedblocks:framed_obsidian_pressure_plate', [
'AA',
'BB'
], {
A: '#forge:plates/obsidian',
B: 'framedblocks:framed_cube'
}).id('framedblocks:framed_obsidian_pressure_plate')
event.custom({
type: "framedblocks:frame",
additives: [
{
count: 1,
ingredient: {
tag: "forge:plates/wrought_iron"
}
}
],
material: 1536,
result: {
item: "framedblocks:framed_iron_trapdoor"
}
}).id('framedblocks:framing_saw/framed_iron_trapdoor')
//#endregion
event.custom({
type: "framedblocks:frame",
additives: [
{
count: 1,
ingredient: {
tag: "forge:plates/obsidian"
}
}
],
material: 1536,
result: {
item: "framedblocks:framed_obsidian_pressure_plate"
}
}).id('framedblocks:framing_saw/framed_obsidian_pressure_plate')
//#endregion
//#region Framed Pressure Plate
event.shapeless(
Item.of('framedblocks:framed_pressure_plate', 1),
[
'#minecraft:pressure_plates',
'framedblocks:framed_cube',
]
).id('framedblocks:framed_pressure_plate')
//#region Framed Gold Pressure Plate
event.shaped('framedblocks:framed_gold_pressure_plate', [
'AA',
'BB'
], {
A: '#forge:plates/gold',
B: 'framedblocks:framed_cube'
}).id('framedblocks:framed_gold_pressure_plate')
event.custom({
type: "framedblocks:frame",
additives: [
{
"count": 1,
"ingredient": {
tag: "minecraft:pressure_plates"
}
}
],
material: 1536,
result: {
item: "framedblocks:framed_pressure_plate"
}
}).id('framedblocks:framing_saw/framed_pressure_plate')
//#endregion
event.custom({
type: "framedblocks:frame",
additives: [
{
count: 1,
ingredient: {
tag: "forge:plates/gold"
}
}
],
material: 1536,
result: {
item: "framedblocks:framed_gold_pressure_plate"
}
}).id('framedblocks:framing_saw/framed_gold_pressure_plate')
//#endregion
//#region Framed Obsidian Pressure Plate
event.shaped('framedblocks:framed_obsidian_pressure_plate', [
'AA',
'BB'
], {
A: '#forge:plates/obsidian',
B: 'framedblocks:framed_cube'
}).id('framedblocks:framed_obsidian_pressure_plate')
//#region Framed Iron Pressure Plate
event.shaped('framedblocks:framed_iron_pressure_plate', [
'AA',
'BB'
], {
A: '#forge:plates/iron',
B: 'framedblocks:framed_cube'
}).id('framedblocks:framed_iron_pressure_plate')
event.custom({
type: "framedblocks:frame",
additives: [
{
count: 1,
ingredient: {
tag: "forge:plates/obsidian"
}
}
],
material: 1536,
result: {
item: "framedblocks:framed_obsidian_pressure_plate"
}
}).id('framedblocks:framing_saw/framed_obsidian_pressure_plate')
//#endregion
event.custom({
type: "framedblocks:frame",
additives: [
{
count: 1,
ingredient: {
tag: "forge:plates/iron"
}
}
],
material: 1536,
result: {
item: "framedblocks:framed_iron_pressure_plate"
}
}).id('framedblocks:framing_saw/framed_iron_pressure_plate')
//#endregion
//#region Framed Gold Pressure Plate
event.shaped('framedblocks:framed_gold_pressure_plate', [
'AA',
'BB'
], {
A: '#forge:plates/gold',
B: 'framedblocks:framed_cube'
}).id('framedblocks:framed_gold_pressure_plate')
//#region Framed Hanging Sign
event.shaped('6x framedblocks:framed_hanging_sign', [
'A A',
'BBB',
'BBB'
], {
A: '#tfg:metal_chains',
B: 'framedblocks:framed_cube'
}).id('framedblocks:framed_hanging_sign')
event.custom({
type: "framedblocks:frame",
additives: [
{
count: 1,
ingredient: {
tag: "forge:plates/gold"
}
}
],
material: 1536,
result: {
item: "framedblocks:framed_gold_pressure_plate"
}
}).id('framedblocks:framing_saw/framed_gold_pressure_plate')
//#endregion
event.custom({
type: "framedblocks:frame",
additives: [
{
count: 1,
ingredient: {
tag: "tfg:metal_chains"
}
}
],
material: 3072,
result: {
count: 2,
item: "framedblocks:framed_hanging_sign"
}
}).id('framedblocks:framing_saw/framed_hanging_sign')
//#endregion
//#region Framed Iron Pressure Plate
event.shaped('framedblocks:framed_iron_pressure_plate', [
'AA',
'BB'
], {
A: '#forge:plates/wrought_iron',
B: 'framedblocks:framed_cube'
}).id('framedblocks:framed_iron_pressure_plate')
//#region Framed Collapsible Copycat Block
event.shaped('4x framedblocks:framed_collapsible_copycat_block', [
'ABA',
'B B',
'ABA'
], {
A: 'framedblocks:framed_cube',
B: '#forge:sheets/copper'
}).id('framedblocks:framed_collapsible_copycat_block')
event.custom({
type: "framedblocks:frame",
additives: [
{
count: 1,
ingredient: {
tag: "forge:plates/iron"
}
}
],
material: 1536,
result: {
item: "framedblocks:framed_iron_pressure_plate"
}
}).id('framedblocks:framing_saw/framed_iron_pressure_plate')
//#endregion
event.custom({
type: "framedblocks:frame",
additives: [
{
count: 1,
ingredient: {
tag: "forge:plates/copper"
}
}
],
material: 6144,
result: {
item: "framedblocks:framed_collapsible_copycat_block"
}
}).id('framedblocks:framing_saw/framed_collapsible_copycat_block')
//#endregion
//#region Framed Hanging Sign
event.shaped('6x framedblocks:framed_hanging_sign', [
'A A',
'BBB',
'BBB'
], {
A: '#tfg:metal_chains',
B: 'framedblocks:framed_cube'
}).id('framedblocks:framed_hanging_sign')
//#region Framed Fancy Rail Block
event.shaped('32x framedblocks:framed_fancy_rail', [
'A A',
'ABA',
'A A'
], {
A: '#forge:rods/wrought_iron',
B: 'framedblocks:framed_cube'
}).id('framedblocks:framed_fancy_rail')
event.custom({
type: "framedblocks:frame",
additives: [
{
count: 1,
ingredient: {
tag: "tfg:metal_chains"
}
}
],
material: 3072,
result: {
count: 2,
item: "framedblocks:framed_hanging_sign"
}
}).id('framedblocks:framing_saw/framed_hanging_sign')
//#endregion
event.custom({
type: "framedblocks:frame",
additives: [
{
count: 6,
ingredient: {
tag: "forge:rods/wrought_iron"
}
}
],
material: 6144,
result: {
count: 32,
item: "framedblocks:framed_fancy_rail"
}
}).id('framedblocks:framing_saw/framed_fancy_rail')
//#endregion
//#region Framed Collapsible Copycat Block
event.shaped('4x framedblocks:framed_collapsible_copycat_block', [
'ABA',
'B B',
'ABA'
], {
A: 'framedblocks:framed_cube',
B: '#forge:sheets/copper'
}).id('framedblocks:framed_collapsible_copycat_block')
//#region Framed Fancy Powered Rail Block
event.shaped('16x framedblocks:framed_fancy_powered_rail', [
'A A',
'ABA',
'ACA'
], {
A: '#forge:rods/gold',
B: 'framedblocks:framed_cube',
C: 'minecraft:redstone'
}).id('framedblocks:framed_fancy_powered_rail')
event.custom({
type: "framedblocks:frame",
additives: [
{
count: 1,
ingredient: {
tag: "forge:plates/copper"
}
}
],
material: 6144,
result: {
item: "framedblocks:framed_collapsible_copycat_block"
}
}).id('framedblocks:framing_saw/framed_collapsible_copycat_block')
//#endregion
event.custom({
type: "framedblocks:frame",
additives: [
{
count: 6,
ingredient: {
tag: "forge:rods/gold"
}
},
{
count: 1,
ingredient: {
tag: "forge:dusts/redstone"
}
}
],
material: 6144,
result: {
count: 16,
item: "framedblocks:framed_fancy_powered_rail"
}
}).id('framedblocks:framing_saw/framed_fancy_powered_rail')
//#endregion
//#region Framed Fancy Rail Block
event.shaped('32x framedblocks:framed_fancy_rail', [
'A A',
'ABA',
'A A'
], {
A: '#forge:rods/wrought_iron',
B: 'framedblocks:framed_cube'
}).id('framedblocks:framed_fancy_rail')
//#region Framed Fancy Detector Rail Block
event.shaped('4x framedblocks:framed_fancy_detector_rail', [
'ABA',
'ACA',
'ADA'
], {
A: '#forge:rods/wrought_iron',
B: '#minecraft:stone_pressure_plates',
C: 'framedblocks:framed_cube',
D: 'minecraft:redstone',
}).id('framedblocks:framed_fancy_detector_rail')
event.custom({
type: "framedblocks:frame",
additives: [
{
count: 6,
ingredient: {
tag: "forge:rods/wrought_iron"
}
}
],
material: 6144,
result: {
count: 32,
item: "framedblocks:framed_fancy_rail"
}
}).id('framedblocks:framing_saw/framed_fancy_rail')
//#endregion
event.custom({
type: "framedblocks:frame",
additives: [
{
count: 6,
ingredient: {
tag: "forge:rods/wrought_iron"
}
},
{
count: 1,
ingredient: {
tag: "forge:dusts/redstone"
}
},
{
count: 1,
ingredient: {
tag: "minecraft:stone_pressure_plates"
}
}
],
material: 6144,
result: {
count: 4,
item: "framedblocks:framed_fancy_detector_rail"
}
}).id('framedblocks:framing_saw/framed_fancy_detector_rail')
//#endregion
//#region Framed Fancy Powered Rail Block
event.shaped('16x framedblocks:framed_fancy_powered_rail', [
'A A',
'ABA',
'ACA'
], {
A: '#forge:rods/gold',
B: 'framedblocks:framed_cube',
C: 'minecraft:redstone'
}).id('framedblocks:framed_fancy_powered_rail')
//#region Framed Fancy Activator Rail Block
event.shaped('4x framedblocks:framed_fancy_activator_rail', [
'ABA',
'ACA',
'ABA'
], {
A: '#forge:rods/wrought_iron',
B: 'framedblocks:framed_cube',
C: 'minecraft:redstone_torch'
}).id('framedblocks:framed_fancy_activator_rail')
event.custom({
type: "framedblocks:frame",
additives: [
{
count: 6,
ingredient: {
tag: "forge:rods/gold"
}
},
{
count: 1,
ingredient: {
tag: "forge:dusts/redstone"
}
}
],
material: 6144,
result: {
count: 16,
item: "framedblocks:framed_fancy_powered_rail"
}
}).id('framedblocks:framing_saw/framed_fancy_powered_rail')
//#endregion
event.custom({
type: "framedblocks:frame",
additives: [
{
count: 6,
ingredient: {
tag: "forge:rods/wrought_iron"
}
},
{
count: 1,
ingredient: {
item: "minecraft:redstone_torch"
}
}
],
material: 6144,
result: {
count: 4,
item: "framedblocks:framed_fancy_activator_rail"
}
}).id('framedblocks:framing_saw/framed_fancy_activator_rail')
//#endregion
//#region Framed Fancy Detector Rail Block
event.shaped('4x framedblocks:framed_fancy_detector_rail', [
'ABA',
'ACA',
'ADA'
], {
A: '#forge:rods/wrought_iron',
B: '#minecraft:stone_pressure_plates',
C: 'framedblocks:framed_cube',
D: 'minecraft:redstone',
}).id('framedblocks:framed_fancy_detector_rail')
// Framed Raiforcement
event.shaped('32x framedblocks:framed_reinforcement', [
'ABA',
'BCB',
'ABA'
], {
A: '#forge:plates/obsidian',
B: '#forge:plates/wrought_iron',
C: '#forge:frames'
}).id('framedblocks:framed_reinforcement')
event.custom({
type: "framedblocks:frame",
additives: [
{
count: 6,
ingredient: {
tag: "forge:rods/wrought_iron"
}
},
{
count: 1,
ingredient: {
tag: "forge:dusts/redstone"
}
},
{
count: 1,
ingredient: {
tag: "minecraft:stone_pressure_plates"
}
}
],
material: 6144,
result: {
count: 4,
item: "framedblocks:framed_fancy_detector_rail"
}
}).id('framedblocks:framing_saw/framed_fancy_detector_rail')
//#endregion
// Framed Key
event.shaped('framedblocks:framed_key', [
'AAB',
'CC '
], {
A: '#forge:rods/wooden',
B: 'framedblocks:framed_cube',
C: '#forge:nuggets/wrought_iron'
}).id('framedblocks:framed_key')
//#region Framed Fancy Activator Rail Block
event.shaped('4x framedblocks:framed_fancy_activator_rail', [
'ABA',
'ACA',
'ABA'
], {
A: '#forge:rods/wrought_iron',
B: 'framedblocks:framed_cube',
C: 'minecraft:redstone_torch'
}).id('framedblocks:framed_fancy_activator_rail')
// Framed Cube
event.shaped('4x framedblocks:framed_cube', [
'ABA',
'B B',
'ABA'
], {
A: '#minecraft:planks',
B: '#forge:rods/wooden'
}).id('framedblocks:framed_cube')
event.custom({
type: "framedblocks:frame",
additives: [
{
count: 6,
ingredient: {
tag: "forge:rods/wrought_iron"
}
},
{
count: 1,
ingredient: {
item: "minecraft:redstone_torch"
}
}
],
material: 6144,
result: {
count: 4,
item: "framedblocks:framed_fancy_activator_rail"
}
}).id('framedblocks:framing_saw/framed_fancy_activator_rail')
//#endregion
// Framed Fence
event.shaped('3x framedblocks:framed_fence', [
'ABA',
'ABA',
], {
A: 'framedblocks:framed_cube',
B: '#forge:rods/wooden'
}).id('framedblocks:framed_fence')
// Framed Raiforcement
event.shaped('32x framedblocks:framed_reinforcement', [
'ABA',
'BCB',
'ABA'
], {
A: '#forge:plates/obsidian',
B: '#forge:plates/wrought_iron',
C: '#forge:frames'
}).id('framedblocks:framed_reinforcement')
// Framed Fence Gate
event.shaped('framedblocks:framed_fence_gate', [
'ABA',
'ABA',
], {
B: 'framedblocks:framed_cube',
A: '#forge:rods/wooden'
}).id('framedblocks:framed_fence_gate')
// Framed Key
event.shaped('framedblocks:framed_key', [
'AAB',
'CC '
], {
A: '#forge:rods/wooden',
B: 'framedblocks:framed_cube',
C: '#forge:nuggets/wrought_iron'
}).id('framedblocks:framed_key')
// Framed Ladder
event.shaped('3x framedblocks:framed_ladder', [
'A A',
'ABA',
'A A'
], {
A: 'framedblocks:framed_cube',
B: '#forge:rods/wooden'
}).id('framedblocks:framed_ladder')
// Framed Cube
event.shaped('4x framedblocks:framed_cube', [
'ABA',
'B B',
'ABA'
], {
A: '#minecraft:planks',
B: '#forge:rods/wooden'
}).id('framedblocks:framed_cube')
// Framing Saw
event.shaped('framedblocks:framing_saw', [
' B ',
'AAA',
], {
A: 'framedblocks:framed_cube',
B: 'gtceu:wrought_iron_buzz_saw_blade'
}).id('framedblocks:framing_saw')
// Framed Fence
event.shaped('3x framedblocks:framed_fence', [
'ABA',
'ABA',
], {
A: 'framedblocks:framed_cube',
B: '#forge:rods/wooden'
}).id('framedblocks:framed_fence')
// Powered Framing Saw
event.shaped('framedblocks:powered_framing_saw', [
'ABA',
'CAD',
'EEE'
], {
A: '#forge:glass',
B: 'gtceu:wrought_iron_buzz_saw_blade',
C: 'gtceu:lv_electric_motor',
D: 'gtceu:lv_electric_motor',
E: 'framedblocks:framed_cube'
}).id('framedblocks:powered_framing_saw')
// Framed Fence Gate
event.shaped('framedblocks:framed_fence_gate', [
'ABA',
'ABA',
], {
B: 'framedblocks:framed_cube',
A: '#forge:rods/wooden'
}).id('framedblocks:framed_fence_gate')
// Framed Chest
event.shapeless(
Item.of('framedblocks:framed_chest', 1),
[
'gtceu:wood_crate',
'framedblocks:framed_cube',
]
).id('framedblocks:framed_chest')
// Framed Ladder
event.shaped('3x framedblocks:framed_ladder', [
'A A',
'ABA',
'A A'
], {
A: 'framedblocks:framed_cube',
B: '#forge:rods/wooden'
}).id('framedblocks:framed_ladder')
// Framing Saw
event.shaped('framedblocks:framing_saw', [
' B ',
'AAA',
], {
A: 'framedblocks:framed_cube',
B: 'gtceu:wrought_iron_buzz_saw_blade'
}).id('framedblocks:framing_saw')
// Powered Framing Saw
event.shaped('framedblocks:powered_framing_saw', [
'ABA',
'CAD',
'EEE'
], {
A: '#forge:glass',
B: 'gtceu:wrought_iron_buzz_saw_blade',
C: 'gtceu:lv_electric_motor',
D: 'gtceu:lv_electric_motor',
E: 'framedblocks:framed_cube'
}).id('framedblocks:powered_framing_saw')
// Framed Chest
event.shapeless(
Item.of('framedblocks:framed_chest', 1),
[
'gtceu:wood_crate',
'framedblocks:framed_cube',
]
).id('framedblocks:framed_chest')
event.custom({
type: "framedblocks:frame",
additives: [
{
"count": 1,
"ingredient": {
item: "gtceu:wood_crate"
}
}
],
material: 6144,
result: {
item: "framedblocks:framed_chest"
}
}).id('framedblocks:framing_saw/framed_chest')
// Button
event.shapeless(
Item.of('framedblocks:framed_button', 1),
[
'#minecraft:buttons',
'framedblocks:framed_cube',
]
).id('framedblocks:framed_button')
event.custom({
type: "framedblocks:frame",
additives: [
{
"count": 1,
"ingredient": {
tag: "minecraft:buttons"
}
}
],
material: 1536,
result: {
item: "framedblocks:framed_button"
}
}).id('framedblocks:framing_saw/framed_button')
// Stone button
event.shapeless(
Item.of('framedblocks:framed_stone_button', 1),
[
'#forge:stone',
'framedblocks:framed_button',
]
).id('framedblocks:framed_stone_button')
event.custom({
type: "framedblocks:frame",
additives: [
{
"count": 1,
"ingredient": {
tag: "forge:stone"
}
}
],
material: 1536,
result: {
item: "framedblocks:framed_stone_button"
}
}).id('framedblocks:framing_saw/framed_stone_button')
event.custom({
type: "framedblocks:frame",
additives: [
{
"count": 1,
"ingredient": {
item: "gtceu:wood_crate"
}
}
],
material: 6144,
result: {
item: "framedblocks:framed_chest"
}
}).id('framedblocks:framing_saw/framed_chest')
}

View file

@ -0,0 +1,26 @@
//#region Preservation Filter
FTBFilterSystemEvents.customFilter("HasPreservation", evt =>
{
let stack = evt.getStack()
let data = evt.getData()
let foof = TFC.misc.getFood(stack)
if(foof == null)
{
evt.cancel()
return
}
let trait = TFC.misc.getFoodTrait(data)
if(trait == null)
{
evt.cancel()
return
}
if(!foof.hasTrait(trait))
{
evt.cancel()
}
evt.success()
})
//#endregion

View file

@ -0,0 +1,737 @@
/*
* NBT Structure of a Grappling Hook:
*
* {
* Damage:0, //The damage of the item, duh
* custom:
* {
* angle:5.0d, //Used for the double hook, defaults to 5, can be increased or decreased using a Screwdriver
* attract:0b, //Wether the magnet upgrade is equiped
* attractradius:3.0d, //Strength of the magnet upgrade, tiered with GT's magnetic metallic ingots
* crc32:2252267022L, //This fucking piece of shit is a Checksum, it needs to be calculated based off the boolean and double params.
* detachonkeyrelease:0b,
* doublehook:0b, //Wether we have a double hook, enabled by adding a black steel pickaxe head
* enderstaff:0b,
* hookgravity:1.0d, //The actual hook's gravity, can be set to 0.5 using a Helium Bucket, or to 0 using a Gravitation Engine Module
* maxlen:200.0d, //The maximum length of the rope, this can be increased with Jute Rope, and decreased using a knife
* motor:0b, //Wether the grappling hook has a motor.
* motoracceleration:0.2d, //The acceleration of the motor, tiered with GT's electric motors
* motordampener:0b,
* motormaxspeed:4.0d, //The max speed of the motor, tiered with GT's electric motors
* motorwhencrouching:0b,
* motorwhennotcrouching:1b,
* oneropepull:0b,
* phaserope:0b,
* playermovementmult:1.0d,
* pullbackwards:1b,
* reelin:1b,
* repel:0b, //Wether the Force Field upgrade is enabled
* repelforce:1.0d, //Strength of the Force Field upgrade, tiered with GT's Field Generators
* rocket:0b,
* rocket_active_time:0.5d,
* rocket_force:1.0d,
* rocket_refuel_ratio:15.0d,
* rocket_vertical_angle:0.0d,
* smartdoublemotor:1b, //Wether we have the smart motor enabled, this is enabled utilizing a basic electronic circuit
* smartmotor:0b,//Wether we have the smart motor enabled, this is enabled utilizing a basic electronic circuit
* sneakingangle:10.0d, //Used for the double hook while sneaking, Is always equal to angle / 2.
* sneakingverticalthrowangle:0.0d, //Vertical throwing angle while sneaking, Is always equal to verticalthrowingangle / 2
* sticky:0b, //Wether the rope is sticky, enabled using sticky resin
* throwspeed:2.0d, //The speed we use to throw the grappling hook, tiered with GT's pistons
* verticalthrowangle:0.0d //The angle at whicih we throw the hook vertically.
* }
* }
*/
let $GrappleCustomization = Java.loadClass('com.yyon.grapplinghook.utils.GrappleCustomization');
/**
*
* @param {Internal.RecipesEventJS} event
*/
function registerGrapplingHookRecipes(event)
{
const ADDITIVE_UPGRADES_MINMAX =
{
maxLen: { nbt: "maxlen", maxValue: 200, minValue: 20},
verticalThrowAngle: { nbt: "verticalthrowangle", maxValue: 90, minValue: 0},
angle: { nbt: "angle", maxValue: 90, minValue: 5}
}
let motorUpgrades =
[
{
electricTier: "lv",
motorMaxSpeed: 1,
motorAcceleration: 0.125
},
{
electricTier: "mv",
motorMaxSpeed: 1.14,
motorAcceleration: 0.25
},
{
electricTier: "hv",
motorMaxSpeed: 1.28,
motorAcceleration: 0.375
},
{
electricTier: "ev",
motorMaxSpeed: 1.42,
motorAcceleration: 0.5
},
{
electricTier: "iv",
motorMaxSpeed: 1.56,
motorAcceleration: 0.625
},
{
electricTier: "luv",
motorMaxSpeed: 1.7,
motorAcceleration: 0.75
},
{
electricTier: "zpm",
motorMaxSpeed: 1.84,
motorAcceleration: 0.875
},
{
electricTier: "uv",
motorMaxSpeed: 2,
motorAcceleration: 1
}
]
let forcefieldUpgrades =[
{
electricTier: "lv",
repelForce: 0.625
},
{
electricTier: "mv",
repelForce: 1.25
},
{
electricTier: "hv",
repelForce: 1.875
},
{
electricTier: "ev",
repelForce: 2.5
},
{
electricTier: "iv",
repelForce: 3.125
},
{
electricTier: "luv",
repelForce: 3.75
},
{
electricTier: "zpm",
repelForce: 4.375
},
{
electricTier: "uv",
repelForce: 5
},
]
let magnetUpgrades =[
{
ingotName: 'magnetic_iron_ingot',
attractionRadius: 1.25
},
{
ingotName: 'magnetic_steel_ingot',
attractionRadius: 2.5,
},
{
ingotName: 'magnetic_neodymium_ingot',
attractionRadius: 3.75,
},
{
ingotName: 'magnetic_samarium_ingot',
attractionRadius: 5
}
]
let throwUpgrades =[
{
electricTier: "lv",
throwSpeed: 2.25
},
{
electricTier: "mv",
throwSpeed: 2.5
},
{
electricTier: "hv",
throwSpeed: 2.75
},
{
electricTier: "ev",
throwSpeed: 3
},
{
electricTier: "iv",
throwSpeed: 3.25
},
{
electricTier: "luv",
throwSpeed: 3.5
},
{
electricTier: "zpm",
throwSpeed: 3.75
},
{
electricTier: "uv",
throwSpeed: 4
},
]
/**
* Helper method for creating an upgrade recipe utilizing the GrappleCustomization class. The method itself returns the REcipeBuilder so you can modify it further
* @param {InputItem_[]} upgradeItems The items required to craft this upgrade
* @param {(grappleCustomization: Internal.GrappleCustomization, orig: Internal.ItemStack, result: Internal.ItemStack) => Internal.ItemStack} grappleCustomizationCallback A function that's used to modify the GrapplingHook's NBT data. It must return the actual result of the crafting recipe, which can be result. If null is returned from this function then the result is Air, making it impossible to actually apply the upgrade.
* @param {string} localizationToken A token to display as the item's name, only used in JEI to tell the end user what the upgrade does
* @returns {Special.Recipes.ShapelessKubejs} The Recipe Builder
*/
function shapelessUpgradeRecipe(upgradeItems, grappleCustomizationCallback, localizationToken)
{
let inputs = ['grapplemod:grapplinghook'].concat(upgradeItems);
let recipeBuilder = event.recipes.kubejs.shapeless(Item.of('grapplemod:grapplinghook').withName(Text.translate(localizationToken)), inputs);
recipeBuilder.modifyResult((grid, result) =>
{
let fallbackItem = Item.of('minecraft:air');
let orig = grid.find(Ingredient.of("grapplemod:grapplinghook"));
let customization = new $GrappleCustomization();
customization.loadNBT(orig.nbt.getCompound("custom"));
result = grappleCustomizationCallback(customization, orig, result);
if(result == null)
{
result = fallbackItem;
return result;
}
result.nbt.put("custom", customization.writeNBT());
result.nbt.put("Damage", orig.nbt.getInt("Damage"));
if(orig.hasCustomHoverName())
{
result.setHoverName(orig.hoverName);
}
else
{
result.resetHoverName();
}
return result;
})
return recipeBuilder;
}
/**
* Helper method for creating an Shaped Upgrade Recipe utilizing the Grapple Customization class. The method itself returns the RecipeBuilder so you can modify it further.
* @param {InputItem_[]} pattern The Pattern for the shaped recipe.
* @param {{[key in string]: InputItem_}} keyMap The key map, a "grapplemod:grapplinghook" MUST be present
* @param {(grappleCustomization: Internal.GrappleCustomization, orig: Internal.ItemStack, result: Internal.ItemStack) => Internal.ItemStack} grappleCustomizationCallback A function that's used to modify the GrapplingHook's NBT data. It must return the actual result of the crafting recipe, which can be result. If null is returned from this function then the result is Air, making it impossible to actually apply the upgrade.
* @param {string} localizationToken A token to display as the item's name, only used in JEI to tell the end user what the upgrade does
* @returns {Special.Recipes.ShapedKubejs} The Recipe Builder
*/
function shapedUpgradeRecipe(pattern, keyMap, grappleCustomizationCallback, localizationToken)
{
let recipeBuilder = event.recipes.kubejs.shaped(Item.of('grapplemod:grapplinghook').withName(Text.translate(localizationToken)), pattern, keyMap)
recipeBuilder.modifyResult((grid, result) =>
{
let fallbackItem = Item.of('minecraft:air');
let orig = grid.find(Ingredient.of("grapplemod:grapplinghook"));
let customization = new $GrappleCustomization();
customization.loadNBT(orig.nbt.getCompound("custom"));
result = grappleCustomizationCallback(customization, orig, result);
if(result == null)
{
result = fallbackItem;
return result;
}
result.nbt.put("custom", customization.writeNBT());
result.nbt.put("Damage", orig.nbt.getInt("Damage"));
if(orig.hasCustomHoverName())
{
result.setHoverName(orig.hoverName);
}
else
{
result.resetHoverName();
}
return result;
})
return recipeBuilder;
}
event.remove({mod: 'grapplemod'})
event.recipes.kubejs.shapeless('grapplemod:grapplinghook', ['gtceu:wrought_iron_pickaxe_head', 'firmaciv:rope_coil', 'firmaciv:rope_coil', 'firmaciv:rope_coil', 'firmaciv:rope_coil'])
.modifyResult((craftingGrid, result) =>
{
let grappleCustomization = new $GrappleCustomization();
grappleCustomization.setDefaults();
grappleCustomization.maxlen = 80;
grappleCustomization.smartmotor = false;
grappleCustomization.smartdoublemotor = false;
result.nbt.putInt("Damage", 0);
result.nbt.put("custom", grappleCustomization.writeNBT());
return result;
}).id('tfg:grapplemod/shapeless/grapplinghook');
//Repair
event.recipes.kubejs.shapeless(Item.of('grapplemod:grapplinghook').withName(Text.translate("tfg.grapplemod.repair")), ['grapplemod:grapplinghook', 'gtceu:wrought_iron_dust'])
.modifyResult((craftingGrid, result) =>
{
try
{
let fallbackItem = Item.of("minecraft:air");
let orig = craftingGrid.find(Ingredient.of('grapplemod:grapplinghook'));
let damage = orig.nbt.getInt("Damage");
if(damage <= 0)
{
return fallbackItem;
}
let maxDamage = result.maxDamage;
let restoredDamage = maxDamage / 3;
result.nbt.putInt("Damage", Math.max(0, damage - restoredDamage));
let customization = new $GrappleCustomization();
customization.loadNBT(orig.nbt.getCompound("custom"));
result.nbt.put("custom", customization.writeNBT());
if(orig.hasCustomHoverName())
{
result.setHoverName(orig.hoverName);
}
else
{
result.resetHoverName();
}
return result;
}
catch (exception)
{
console.log(exception);
}
}).id('tfg:grapplemod/shapeless/repair');
//Upgrade: Max Length
shapelessUpgradeRecipe(['firmaciv:rope_coil'], (customization, orig, result) =>
{
let maxLen = customization.maxlen;
if(maxLen >= ADDITIVE_UPGRADES_MINMAX.maxLen.maxValue)
return null;
maxLen = Math.min(ADDITIVE_UPGRADES_MINMAX.maxLen.maxValue, maxLen + 20);
customization.maxlen = maxLen;
return result;
}, 'tfg.grapplemod.upgrades.maxlen').id('tfg:grapplemod/upgrades/maxlen');
shapelessUpgradeRecipe(['#forge:tools/knives'], (customization, orig, result) =>
{
let maxLen = customization.maxlen;
if(maxLen <= ADDITIVE_UPGRADES_MINMAX.maxLen.minValue)
{
return null;
}
maxLen = Math.max(ADDITIVE_UPGRADES_MINMAX.maxLen.minValue, maxLen - 20);
customization.maxlen = maxLen;
return result;
}, 'tfg.grapplemod.downgrades.maxlen').replaceIngredient('grapplemod:grapplinghook', 'firmaciv:rope_coil').id("tfg:grapplemod/downgrades/maxlen_decrease")
//Upgrade: Motor
motorUpgrades.forEach(motorUpgradeType =>
{
//Add motor
shapelessUpgradeRecipe([`gtceu:${motorUpgradeType.electricTier}_electric_motor`], (customization, orig, result) =>
{
//If this already has a motor, disallow the recipe
if(customization.motor)
{
return null;
}
customization.motor = true;
customization.motormaxspeed = motorUpgradeType.motorMaxSpeed;
customization.motoracceleration = motorUpgradeType.motorAcceleration;
return result;
}, `tfg.grapplemod.upgrades.motor.${motorUpgradeType.electricTier}`).id(`tfg:grapplemod/upgrades/motor/${motorUpgradeType.electricTier}`);
//Remove Motor
shapelessUpgradeRecipe([`gtceu:${motorUpgradeType.electricTier}_electric_motor`, '#forge:tools/hammers'], (customization, orig, result) =>
{
let motorMaxSpeed = motorUpgradeType.motorMaxSpeed;
let motorAcceleration = motorUpgradeType.motorAcceleration;
if(!customization.motor)
{
return null;
}
if(customization.motormaxspeed != motorMaxSpeed)
{
return null;
}
if(customization.motoracceleration != motorAcceleration)
{
return null;
}
customization.motor = false;
customization.motormaxspeed = 0;
customization.motoracceleration = 0;
return result;
}, `tfg.grapplemod.downgrades.motor`)
.replaceIngredient('grapplemod:grapplinghook', `gtceu:${motorUpgradeType.electricTier}_electric_motor`)
.keepIngredient(`gtceu:${motorUpgradeType.electricTier}_electric_motor`)
.id(`tfg:grapplemod/downgrades/motor/${motorUpgradeType.electricTier}`);
})
//Enable Smart Motor
shapelessUpgradeRecipe(['gtceu:basic_electronic_circuit'], (customization, orig, result) =>
{
if(!customization.motor)
{
return null;
}
if(customization.smartmotor || customization.smartdoublemotor)
{
return null;
}
customization.smartdoublemotor = true;
customization.smartmotor = true;
return result;
}, 'tfg.grapplemod.upgrades.smart_motor').id('tfg:grapplemod/upgrades/smart_motor');
//Disable Smart Motor
shapelessUpgradeRecipe(['gtceu:basic_electronic_circuit', '#forge:tools/hammers'], (customization, orig, result) =>
{
if(!customization.smartmotor || !customization.smartdoublemotor)
{
return null;
}
customization.smartmotor = false;
customization.smartdoublemotor = false;
return result;
}, 'tfg.grapplemod.downgrades.smart_motor')
.replaceIngredient('grapplemod:grapplinghook', 'gtceu:basic_electronic_circuit')
.keepIngredient('gtceu:basic_electronic_circuit')
.id('tfg:grapplemod/downgrades/smart_motor');
//Enable Sticky Rope
shapelessUpgradeRecipe(['gtceu:sticky_resin'], (customization, orig, result) =>
{
if(customization.sticky)
{
return null;
}
customization.sticky = true;
return result;
}, 'tfg.grapplemod.upgrades.sticky')
.id('tfg:grapplemod/upgrades/sticky')
//Disable Sticky Rope
shapelessUpgradeRecipe(['gtceu:sticky_resin', '#forge:tools/hammers'], (customization, orig, result) =>
{
if(!customization.sticky)
{
return null;
}
customization.sticky = false;
return result;
}, 'tfg.grapplemod.downgrades.sticky')
.replaceIngredient('grapplemod:grapplinghook', 'gtceu:sticky_resin')
.keepIngredient('gtceu:sticky_resin')
.id('tfg:grapplemod/downgrades/sticky')
//Upgrade: Forcefield
forcefieldUpgrades.forEach(forcefieldUpgradeType =>
{
//Add Forcefield
shapelessUpgradeRecipe([`gtceu:${forcefieldUpgradeType.electricTier}_field_generator`], (customization, orig, result) =>
{
if(customization.repel)
{
return null;
}
customization.repel = true;
customization.repelforce = forcefieldUpgradeType.repelForce;
return result;
}, `tfg.grapplemod.upgrades.forcefield.${forcefieldUpgradeType.electricTier}`).id(`tfg:grapplemod/upgrades/forcefield/${forcefieldUpgradeType.electricTier}`);
//Remove Forcefield
shapelessUpgradeRecipe([`gtceu:${forcefieldUpgradeType.electricTier}_field_generator`, '#forge:tools/hammers'], (customization, orig, result) =>
{
let repelForce = forcefieldUpgradeType.repelForce;
if(!customization.repel)
return null;
if(customization.repelforce != repelForce)
{
return null;
}
customization.repel = false;
customization.repelforce = 0;
return result;
}, 'tfg.grapplemod.downgrades.forcefield')
.replaceIngredient('grapplemod:grapplinghook', `gtceu:${forcefieldUpgradeType.electricTier}_field_generator`)
.keepIngredient(`gtceu:${forcefieldUpgradeType.electricTier}_field_generator`)
.id(`tfg:grapplemod/downgrades/forcefield/${forcefieldUpgradeType.electricTier}`);
})
//Upgrade: Magnet
magnetUpgrades.forEach(magnetUpgradeTier =>
{
//Add Magnet
shapelessUpgradeRecipe([`gtceu:${magnetUpgradeTier.ingotName}`], (customization, orig, result) =>
{
if(customization.attract)
{
return null;
}
customization.attract = true;
customization.attractradius = magnetUpgradeTier.attractionRadius;
return result;
}, `tfg.grapplemod.upgrades.magnet.${magnetUpgradeTier.ingotName}`).id(`tfg:grapplemod/upgrades/magnet/${magnetUpgradeTier.ingotName}`);
//Remove Magnet
shapelessUpgradeRecipe([`gtceu:${magnetUpgradeTier.ingotName}`, '#forge:tools/hammers'], (customization, orig, result) =>
{
let attractionRadius = magnetUpgradeTier.attractionRadius;
if(!customization.attract)
{
return null;
}
if(customization.attractradius != attractionRadius)
{
return null;
}
customization.attract = false;
customization.attractradius = attractionRadius;
return result;
}, 'tfg.grapplemod.downgrades.magnet')
.replaceIngredient('grapplemod:grapplinghook', `gtceu:${magnetUpgradeTier.ingotName}`)
.keepIngredient(`gtceu:${magnetUpgradeTier.ingotName}`)
.id(`tfg:grapplemod/downgrades/magnet/${magnetUpgradeTier.ingotName}`);
})
//Set gravity to 0.5
shapelessUpgradeRecipe(['gtceu:helium_bucket'], (customization, orig, result) =>
{
if(customization.hookgravity != 1)
{
return null;
}
customization.hookgravity = 0.5;
return result;
}, `tfg.grapplemod.upgrades.gravity.0.5`).id('tfg:grapplemod/upgrades/gravity/0.5');
//Set gravity to 1, from 0.5
shapelessUpgradeRecipe(['minecraft:bucket', '#forge:tools/hammers'], (customization, orig, result) =>
{
if(customization.hookgravity != 0.5)
{
return null;
}
customization.hookgravity = 1;
return result;
}, 'tfg.grapplemod.downgrades.gravity.0.5')
.replaceIngredient('minecraft:bucket', 'gtceu:helium_bucket')
.id('tfg:grapplemod/downgrades/gravity/0.5');
//Set gravity to 0
shapelessUpgradeRecipe(['gtceu:gravitation_engine_unit'], (customization, orig, result) =>
{
if(customization.hookgravity != 1)
{
return null;
}
customization.hookgravity = 0;
return result;
}, 'tfg.grapplemod.upgrades.gravity.0').id('tfg:grapplemod/upgrades/gravity/0');
//Set gravity to 1, from 0
shapelessUpgradeRecipe(['gtceu:tungsten_block', '#forge:tools/hammers'], (customization, orig, result) =>
{
if(customization.hookgravity != 0)
{
return null;
}
customization.hookgravity = 1;
return result;
}, 'tfg.grapplemod.downgrades.gravity.0')
.replaceIngredient('grapplemod:grapplinghook', 'gtceu:gravitation_engine_unit')
.keepIngredient('gtceu:tungsten_block')
.id('tfg:grapplemod/downgrades/gravity/0')
//Upgrade: Throw Speed
throwUpgrades.forEach(throwUpgradeType =>
{
//Add Throwspeed
shapelessUpgradeRecipe([`gtceu:${throwUpgradeType.electricTier}_electric_piston`], (customization, orig, result) =>
{
if(customization.throwspeed != 2)
{
return null;
}
customization.throwspeed = throwUpgradeType.throwSpeed;
return result;
}, `tfg.grapplemod.upgrades.throwspeed.${throwUpgradeType.electricTier}`).id(`tfg:grapplemod/upgrades/throwspeed/${throwUpgradeType.electricTier}`);
//Remove Throwspeed
shapelessUpgradeRecipe([`gtceu:${throwUpgradeType.electricTier}_electric_piston`, '#forge:tools/hammers'], (customization, orig, result) =>
{
let throwSpeed = throwUpgradeType.throwSpeed;
if(customization.throwspeed != throwSpeed)
{
return null;
}
customization.throwspeed = 2;
return result;
}, 'tfg.grapplemod.downgrades.throwspeed')
.replaceIngredient('grapplemod:grapplinghook', `gtceu:${throwUpgradeType.electricTier}_electric_piston`)
.keepIngredient(`gtceu:${throwUpgradeType.electricTier}_electric_piston`)
.id(`tfg:grapplemod/downgrades/throwspeed/${throwUpgradeType.electricTier}`);
})
//Add Double Hook
shapelessUpgradeRecipe(['gtceu:black_steel_pickaxe_head'], (customization, orig, result) =>
{
if(customization.doublehook)
{
return null;
}
customization.doublehook = true;
customization.angle = 5;
customization.sneakingangle = 2.5;
return result;
}, 'tfg.grapplemod.upgrades.doublehook').id('tfg:grapplemod/upgrades/doublehook')
//Remove Double Hook
shapelessUpgradeRecipe(['gtceu:black_steel_pickaxe_head', '#forge:tools/hammers'], (customization, orig, result) =>
{
if(!customization.doublehook)
{
return null;
}
customization.doublehook = false;
customization.angle = 5;
customization.sneakingangle = 2.5;
return result;
}, 'tfg.grapplemod.downgrades.doublehook')
.replaceIngredient('grapplemod:grapplinghook', 'gtceu:black_steel_pickaxe_head')
.keepIngredient('gtceu:black_steel_pickaxe_head')
.id('tfg:grapplemod/downgrades/doublehook')
// Increase Vertical Throw Angle
shapedUpgradeRecipe([
'A',
'B'
],{
A: '#forge:tools/wrenches',
B: 'grapplemod:grapplinghook'
}, (customization, orig, result) =>
{
if(customization.verticalthrowangle >= ADDITIVE_UPGRADES_MINMAX.verticalThrowAngle.maxValue)
{
return null;
}
customization.verticalthrowangle = Math.min(ADDITIVE_UPGRADES_MINMAX.verticalThrowAngle.maxValue, customization.verticalthrowangle + 5);
customization.sneakingverticalthrowangle = customization.verticalthrowangle / 2;
return result;
}, 'tfg.grapplemod.upgrades.vertical_throwing_angle').id('tfg:grapplemod/upgrades/vertical_throwing_angle');
//Decrease Vertical Throw Angle
shapedUpgradeRecipe([
'A',
'B'
],{
A: 'grapplemod:grapplinghook',
B: '#forge:tools/wrenches',
}, (customization, orig, result) =>
{
if(customization.verticalthrowangle <= ADDITIVE_UPGRADES_MINMAX.verticalThrowAngle.minValue)
{
return null;
}
customization.verticalthrowangle = Math.max(ADDITIVE_UPGRADES_MINMAX.verticalThrowAngle.minValue, customization.verticalthrowangle - 5);
customization.sneakingverticalthrowangle = customization.verticalthrowangle / 2;
return result;
}, 'tfg.grapplemod.downgrades.vertical_throwing_angle').id('tfg:grapplemod/downgrades/vertical_throwing_angle')
// Increase Horizontal Throw Angle
shapedUpgradeRecipe([
'AB',
],{
A: 'grapplemod:grapplinghook',
B: '#forge:tools/screwdrivers'
}, (customization, orig, result) =>
{
if(!customization.doublehook)
{
return null;
}
if(customization.angle >= ADDITIVE_UPGRADES_MINMAX.angle.maxValue)
{
return null;
}
customization.angle = Math.min(ADDITIVE_UPGRADES_MINMAX.angle.maxValue, customization.angle + 5);
customization.sneakingangle = customization.angle / 2;
return result;
}, 'tfg.grapplemod.upgrades.angle').kjsMirror(false).id('tfg:grapplemod/upgrades/angle');
//Decrease Horizontal Throw Angle
shapedUpgradeRecipe([
'AB',
],{
A: '#forge:tools/screwdrivers',
B: 'grapplemod:grapplinghook',
}, (customization, orig, result) =>
{
if(!customization.doublehook)
{
return null;
}
if(customization.angle <= ADDITIVE_UPGRADES_MINMAX.angle.minValue)
{
return null;
}
customization.angle = Math.max(ADDITIVE_UPGRADES_MINMAX.angle.minValue, customization.angle - 5);
customization.sneakingangle = customization.angle / 2;
return result;
}, 'tfg.grapplemod.downgrades.angle').kjsMirror(false).id('tfg:grapplemod/downgrades/angle')
}

View file

@ -0,0 +1,411 @@
// priority: 0
function registerGreateRecipes(event) {
removeGreateRecipes(event);
registerGreateRecyclingRecipes(event);
event.replaceInput({ input: 'create:cogwheel'}, 'create:cogwheel', '#tfg:small_cogwheels')
event.replaceInput({ input: 'create:large_cogwheel'}, 'create:large_cogwheel', '#tfg:large_cogwheels')
event.replaceInput({ input: 'create:shaft'}, 'create:shaft', '#tfg:shafts')
// #region Shafts
event.shaped('4x greate:andesite_alloy_shaft', [
'A ',
' B'
], {
A: '#forge:tools/saws',
B: '#forge:plates/black_bronze'
}).id('greate:shaped/andesite_alloy_shaft_black_bronze')
event.shaped('6x greate:andesite_alloy_shaft', [
'A ',
' B'
], {
A: '#forge:tools/saws',
B: '#forge:plates/wrought_iron'
}).id('greate:shaped/andesite_alloy_shaft')
event.shaped('4x greate:andesite_alloy_shaft', [
'A ',
' B'
], {
A: '#forge:tools/saws',
B: '#forge:plates/bronze'
}).id('greate:shaped/andesite_alloy_shaft_bronze')
event.shaped('4x greate:andesite_alloy_shaft', [
'A ',
' B'
], {
A: '#forge:tools/saws',
B: '#forge:plates/bismuth_bronze'
}).id('greate:shaped/andesite_alloy_shaft_bismuth_bronze')
generateCutterRecipe(event, '#forge:plates/wrought_iron', '6x greate:andesite_alloy_shaft', 100, GTValues.VA[GTValues.ULV], 'andesite_alloy_shaft')
generateCutterRecipe(event, '#forge:plates/steel', '6x greate:steel_shaft', 100, GTValues.VA[GTValues.ULV], 'steel_shaft')
generateCutterRecipe(event, '#forge:plates/aluminium', '6x greate:aluminium_shaft', 100, GTValues.VA[GTValues.LV], 'aluminium_shaft')
generateCutterRecipe(event, '#forge:plates/stainless_steel', '6x greate:stainless_steel_shaft', 100, GTValues.VA[GTValues.MV], 'stainless_steel_shaft')
generateCutterRecipe(event, '#forge:plates/titanium', '6x greate:titanium_shaft', 100, GTValues.VA[GTValues.HV], 'titanium_shaft')
// #endregion
// #region Cogs
event.shapeless('greate:andesite_alloy_cogwheel', ['greate:andesite_alloy_shaft', '#forge:small_gears/wood', '#forge:tools/hammers'])
.id('greate:shapeless/andesite_alloy_cogwheel')
event.shapeless('greate:large_andesite_alloy_cogwheel', ['greate:andesite_alloy_shaft', '#forge:gears/wood', '#forge:tools/hammers'])
.id('greate:shapeless/large_andesite_alloy_cogwheel');
// TODO: recycling recipes for these?
event.shapeless('greate:steel_cogwheel', ['greate:steel_shaft', '#forge:small_gears/wrought_iron', '#forge:tools/wrenches'])
.id('greate:shapeless/steel_cogwheel')
event.shapeless('greate:large_steel_cogwheel', ['greate:steel_shaft', '#forge:gears/wrought_iron', '#forge:tools/wrenches'])
.id('greate:shapeless/large_steel_cogwheel');
event.shapeless('greate:aluminium_cogwheel', ['greate:aluminium_shaft', '#forge:small_gears/steel', '#forge:tools/wrenches'])
.id('greate:shapeless/aluminium_cogwheel')
event.shapeless('greate:large_aluminium_cogwheel', ['greate:aluminium_shaft', '#forge:gears/steel', '#forge:tools/wrenches'])
.id('greate:shapeless/large_aluminium_cogwheel');
event.shapeless('greate:stainless_steel_cogwheel', ['greate:stainless_steel_shaft', '#forge:small_gears/aluminium', '#forge:tools/wrenches'])
.id('greate:shapeless/stainless_steel_cogwheel')
event.shapeless('greate:large_stainless_steel_cogwheel', ['greate:stainless_steel_shaft', '#forge:gears/aluminium', '#forge:tools/wrenches'])
.id('greate:shapeless/large_stainless_steel_cogwheel');
event.shapeless('greate:titanium_cogwheel', ['greate:titanium_shaft', '#forge:small_gears/stainless_steel', '#forge:tools/wrenches'])
.id('greate:shapeless/titanium_cogwheel')
event.shapeless('greate:large_titanium_cogwheel', ['greate:titanium_shaft', '#forge:gears/stainless_steel', '#forge:tools/wrenches'])
.id('greate:shapeless/large_titanium_cogwheel');
// #endregion
// #region Millstones
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped('greate:andesite_alloy_millstone', [
' B ',
'DCE',
' A '
], {
A: 'tfc:quern',
B: 'tfc:handstone',
C: '#forge:gears/bronze',
D: '#forge:tools/hammers',
E: '#tfc:chisels'
})
).id('greate:shaped/andesite_alloy_millstone')
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped('greate:andesite_alloy_millstone', [
' B ',
'DCE',
' A '
], {
A: 'tfc:quern',
B: 'tfc:handstone',
C: '#forge:gears/bismuth_bronze',
D: '#forge:tools/hammers',
E: '#tfc:chisels'
})
).id('greate:shaped/andesite_alloy_millstone2')
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped('greate:andesite_alloy_millstone', [
' B ',
'DCE',
' A '
], {
A: 'tfc:quern',
B: 'tfc:handstone',
C: '#forge:gears/black_bronze',
D: '#forge:tools/hammers',
E: '#tfc:chisels'
})
).id('greate:shaped/andesite_alloy_millstone3')
event.shaped('greate:steel_millstone', [
'FBF',
'DCE',
'AAA'
], {
A: '#forge:smooth_stone',
B: 'gtceu:treated_wood_slab',
C: '#forge:gears/steel',
D: '#forge:tools/hammers',
E: '#forge:tools/wrenches',
F: '#forge:dusts/diamond'
}).id('greate:shaped/steel_millstone')
// #endregion
// #region Crushing wheels
event.recipes.createMechanicalCrafting('2x greate:steel_crushing_wheel', [
' AAA ',
'AABAA',
'ABCBA',
'AABAA',
' AAA '
], {
A: '#forge:plates/tin_alloy',
B: '#forge:storage_blocks/wrought_iron',
C: 'greate:steel_shaft',
}).id('greate:mechanical_crafting/steel_crushing_wheel')
event.recipes.createMechanicalCrafting('2x greate:aluminium_crushing_wheel', [
' AAA ',
'AABAA',
'ABCBA',
'AABAA',
' AAA '
], {
A: '#forge:plates/vanadium_steel',
B: '#forge:storage_blocks/steel',
C: 'greate:aluminium_shaft',
}).id('greate:mechanical_crafting/aluminium_crushing_wheel')
event.recipes.createMechanicalCrafting('2x greate:stainless_steel_crushing_wheel', [
' AAA ',
'AABAA',
'ABCBA',
'AABAA',
' AAA '
], {
A: '#forge:plates/red_steel',
B: '#forge:storage_blocks/aluminium',
C: 'greate:stainless_steel_shaft',
}).id('greate:mechanical_crafting/stainless_steel_crushing_wheel')
event.recipes.createMechanicalCrafting('2x greate:titanium_crushing_wheel', [
' AAA ',
'AABAA',
'ABCBA',
'AABAA',
' AAA '
], {
A: '#forge:plates/ultimet',
B: '#forge:storage_blocks/stainless_steel',
C: 'greate:titanium_shaft',
}).id('greate:mechanical_crafting/titanium_crushing_wheel')
// #endregion
// #region Encased Fan
event.shaped('greate:steel_encased_fan', [
' A ',
'BCB',
'DEF'
], {
A: 'greate:steel_shaft',
B: '#forge:small_gears/wrought_iron',
C: 'create:andesite_casing',
D: '#forge:tools/wrenches',
E: 'gtceu:steel_rotor',
F: '#forge:tools/hammers'
}).id('greate:shaped/steel_encased_fan')
// The other fans are fine as-is
// #endregion
// #region Mechanical saw
event.shaped('greate:andesite_alloy_mechanical_saw', [
'ABA',
'CDC',
'EF '
], {
A: '#forge:screws/wrought_iron',
B: 'gtceu:wrought_iron_buzz_saw_blade',
C: 'greate:andesite_alloy_cogwheel',
D: 'create:andesite_casing',
E: '#forge:tools/wrenches',
F: 'greate:andesite_alloy_shaft'
}).id('greate:shaped/andesite_alloy_mechanical_saw')
event.shaped('greate:steel_mechanical_saw', [
'ABA',
'CDC',
'FE '
], {
A: '#gtceu:circuits/ulv',
B: 'gtceu:cobalt_brass_buzz_saw_blade',
C: 'greate:steel_cogwheel',
D: 'gtceu:ulv_machine_casing',
E: 'greate:steel_shaft',
F: '#forge:tools/wrenches'
}).id('greate:shaped/steel_mechanical_saw')
event.shaped('greate:aluminium_mechanical_saw', [
'ABA',
'CDC',
'FE '
], {
A: '#gtceu:circuits/mv',
B: 'gtceu:vanadium_steel_buzz_saw_blade',
C: 'gtceu:mv_electric_motor',
D: 'gtceu:mv_machine_casing',
E: 'greate:aluminium_shaft',
F: '#forge:tools/wrenches'
}).id('greate:shaped/aluminium_mechanical_saw')
event.shaped('greate:stainless_steel_mechanical_saw', [
'ABA',
'CDC',
'FE '
], {
A: '#gtceu:circuits/hv',
B: 'gtceu:red_steel_buzz_saw_blade',
C: 'gtceu:hv_electric_motor',
D: 'gtceu:hv_machine_casing',
E: 'greate:stainless_steel_shaft',
F: '#forge:tools/wrenches'
}).id('greate:shaped/stainless_steel_mechanical_saw')
event.shaped('greate:titanium_mechanical_saw', [
'ABA',
'CDC',
'FE '
], {
A: '#gtceu:circuits/ev',
B: 'gtceu:ultimet_buzz_saw_blade',
C: 'gtceu:ev_electric_motor',
D: 'gtceu:ev_machine_casing',
E: 'greate:titanium_shaft',
F: '#forge:tools/wrenches'
}).id('greate:shaped/titanium_mechanical_saw')
// #endregion
// #region Mechanical Pump
event.shaped('greate:steel_mechanical_pump', [
' AB',
'CDE',
' AB'
], {
A: '#forge:wax',
B: '#forge:screws/steel',
C: '#forge:tools/wrenches',
D: 'create:fluid_pipe',
E: 'greate:steel_cogwheel'
}).id('greate:shaped/steel_mechanical_pump')
// #endregion
// #region Belt Connector
event.shaped('greate:rubber_belt_connector', [
'AAA',
'AAA',
'BDC'
], {
A: '#forge:leather',
B: '#forge:tools/knives',
C: '#tfc:sewing_needles',
D: '#forge:string'
}).id('greate:shaped/rubber_belt_connector_from_leather')
event.shaped('greate:polyethylene_belt_connector', [
'AAA',
'AAA',
'B C'
], {
A: '#forge:plates/styrene_butadiene_rubber',
B: '#forge:tools/files',
C: '#forge:tools/hammers',
}).id('greate:shaped/polyethylene_belt_connector')
// #endregion
// #region Mixer
event.shaped('greate:steel_mechanical_mixer', [
'ABA',
'DCD',
'FEG'
], {
A: '#gtceu:circuits/ulv',
B: 'greate:steel_shaft',
C: 'gtceu:ulv_machine_hull',
D: '#forge:plates/black_steel',
E: 'gtceu:steel_whisk',
F: '#forge:tools/wrenches',
G: '#forge:tools/hammers'
}).id('greate:shaped/steel_mechanical_mixer')
// #endregion
// #region Whisks
event.shaped('gtceu:steel_whisk', [
'ABC',
'D D',
'D D'
], {
A: '#forge:tools/hammers',
B: '#forge:rings/steel',
C: '#forge:tools/wrenches',
D: '#forge:rods/long/steel'
}).id('gtceu:shaped/steel_whisk')
event.shaped('gtceu:aluminium_whisk', [
'ABC',
'D D',
'D D'
], {
A: '#forge:tools/hammers',
B: '#forge:rings/aluminium',
C: '#forge:tools/wrenches',
D: '#forge:rods/long/aluminium'
}).id('gtceu:shaped/aluminium_whisk')
event.shaped('gtceu:stainless_steel_whisk', [
'ABC',
'D D',
'D D'
], {
A: '#forge:tools/hammers',
B: '#forge:rings/stainless_steel',
C: '#forge:tools/wrenches',
D: '#forge:rods/long/stainless_steel'
}).id('gtceu:shaped/stainless_steel_whisk')
event.shaped('gtceu:titanium_whisk', [
'ABC',
'D D',
'D D'
], {
A: '#forge:tools/hammers',
B: '#forge:rings/titanium',
C: '#forge:tools/wrenches',
D: '#forge:rods/long/titanium'
}).id('gtceu:shaped/titanium_whisk')
// #endregion
// #region Cables
// TODO: Remove this when we update greate
event.forEachRecipe([{ type: 'gtceu:wire_coating' }], recipe => {
let r = JSON.parse(recipe.json)
let newRecipe = event.recipes.gtceu.assembler(recipe.getId())
let itemIns = [];
r.inputs.item.forEach(i => {
itemIns.push(`${i.content.count}x #${i.content.ingredient.tag}`);
})
newRecipe.itemInputs(itemIns);
newRecipe.inputFluids(Fluid.of(`${r.inputs.fluid[0].content.value[0].tag.replace(/forge/g, 'gtceu')}`, r.inputs.fluid[0].content.amount))
newRecipe.itemOutputs(r.outputs.item[0].content.ingredient.item);
newRecipe.EUt(r.tickInputs.eu[0].content)
newRecipe.duration(r.duration);
})
// #endregion
}

View file

@ -0,0 +1,569 @@
// priority: 0
function registerGreateRecyclingRecipes(event) {
// #region Shafts
// No andesite alloy shafts because those can be crafted from 4 different materials
event.recipes.gtceu.macerator('steel_shaft')
.itemInputs('greate:steel_shaft')
.itemOutputs(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Steel, 1))
.duration(GTMaterials.Steel.getMass())
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('steel_shaft')
.itemInputs('greate:steel_shaft')
.itemOutputs(ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Steel, 1))
.duration(GTMaterials.Steel.getMass())
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('aluminium_shaft')
.itemInputs('greate:aluminium_shaft')
.itemOutputs(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Aluminium, 1))
.duration(GTMaterials.Aluminium.getMass())
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('aluminium_shaft')
.itemInputs('greate:aluminium_shaft')
.itemOutputs(ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Aluminium, 1))
.duration(GTMaterials.Aluminium.getMass())
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('stainless_steel_shaft')
.itemInputs('greate:stainless_steel_shaft')
.itemOutputs(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.StainlessSteel, 1))
.duration(GTMaterials.StainlessSteel.getMass())
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('stainless_steel_shaft')
.itemInputs('greate:stainless_steel_shaft')
.itemOutputs(ChemicalHelper.get(TagPrefix.nugget, GTMaterials.StainlessSteel, 1))
.duration(GTMaterials.StainlessSteel.getMass())
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('titanium_shaft')
.itemInputs('greate:titanium_shaft')
.itemOutputs(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Titanium, 1))
.duration(GTMaterials.Titanium.getMass())
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('titanium_shaft')
.itemInputs('greate:titanium_shaft')
.itemOutputs(ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Titanium, 1))
.duration(GTMaterials.Titanium.getMass())
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// #endregion
// #region Cogs
event.recipes.tfc.extra_products_shapeless_crafting('greate:andesite_alloy_shaft',
event.shapeless('#forge:small_gears/wood', ['greate:andesite_alloy_cogwheel']))
event.recipes.tfc.extra_products_shapeless_crafting('greate:andesite_alloy_shaft',
event.shapeless('#forge:gears/wood', ['greate:large_andesite_alloy_cogwheel']))
event.recipes.tfc.extra_products_shapeless_crafting('greate:steel_shaft',
event.shapeless('#forge:small_gears/wrought_iron', ['greate:steel_cogwheel']))
event.recipes.tfc.extra_products_shapeless_crafting('greate:steel_shaft',
event.shapeless('#forge:gears/wrought_iron', ['greate:large_steel_cogwheel']))
event.recipes.tfc.extra_products_shapeless_crafting('greate:aluminium_shaft',
event.shapeless('#forge:small_gears/steel', ['greate:aluminium_cogwheel']))
event.recipes.tfc.extra_products_shapeless_crafting('greate:aluminium_shaft',
event.shapeless('#forge:gears/steel', ['greate:large_aluminium_cogwheel']))
event.recipes.tfc.extra_products_shapeless_crafting('greate:stainless_steel_shaft',
event.shapeless('#forge:small_gears/aluminium', ['greate:stainless_steel_cogwheel']))
event.recipes.tfc.extra_products_shapeless_crafting('greate:stainless_steel_shaft',
event.shapeless('#forge:gears/aluminium', ['greate:large_stainless_steel_cogwheel']))
event.recipes.tfc.extra_products_shapeless_crafting('greate:titanium_shaft',
event.shapeless('#forge:small_gears/stainless_steel', ['greate:titanium_cogwheel']))
event.recipes.tfc.extra_products_shapeless_crafting('greate:titanium_shaft',
event.shapeless('#forge:gears/stainless_steel', ['greate:large_titanium_cogwheel']))
// #endregion
// #region Millstones
event.recipes.gtceu.macerator('greate:steel_millstone')
.itemInputs('greate:steel_millstone')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 4),
ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.TreatedWood, 2))
.duration(GTMaterials.Steel.getMass() * 4)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:steel_millstone')
.itemInputs('greate:steel_millstone')
.itemOutputs(ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 4))
.duration(GTMaterials.Steel.getMass() * 4)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// #endregion
// #region Crushing Wheels
event.recipes.gtceu.macerator('greate:steel_crushing_wheel')
.itemInputs('greate:steel_crushing_wheel')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.WroughtIron, 18),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.TinAlloy, 8),
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Steel, 1))
.duration(GTMaterials.TinAlloy.getMass() * 26)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:steel_crushing_wheel')
.itemInputs('greate:steel_crushing_wheel')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.WroughtIron, 18),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.TinAlloy, 8),
ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Steel, 1))
.duration(GTMaterials.TinAlloy.getMass() * 26)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('greate:aluminium_crushing_wheel')
.itemInputs('greate:aluminium_crushing_wheel')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 18),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.VanadiumSteel, 8),
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Aluminium, 1))
.duration(GTMaterials.VanadiumSteel.getMass() * 26)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:aluminium_crushing_wheel')
.itemInputs('greate:aluminium_crushing_wheel')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 18),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.VanadiumSteel, 8),
ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Aluminium, 1))
.duration(GTMaterials.VanadiumSteel.getMass() * 26)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('greate:stainless_steel_crushing_wheel')
.itemInputs('greate:stainless_steel_crushing_wheel')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 18),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.RedSteel, 8),
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.StainlessSteel, 1))
.duration(GTMaterials.RedSteel.getMass() * 26)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:stainless_steel_crushing_wheel')
.itemInputs('greate:stainless_steel_crushing_wheel')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 18),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.RedSteel, 8),
ChemicalHelper.get(TagPrefix.nugget, GTMaterials.StainlessSteel, 1))
.duration(GTMaterials.RedSteel.getMass() * 26)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('greate:titanium_crushing_wheel')
.itemInputs('greate:titanium_crushing_wheel')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 18),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Ultimet, 8),
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Titanium, 1))
.duration(GTMaterials.Ultimet.getMass() * 26)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:titanium_crushing_wheel')
.itemInputs('greate:titanium_crushing_wheel')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 18),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Ultimet, 8),
ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Titanium, 1))
.duration(GTMaterials.Ultimet.getMass() * 26)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// #endregion
// #region Encased Fan
event.recipes.gtceu.macerator('greate:steel_encased_fan')
.itemInputs('greate:steel_encased_fan')
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 5),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.WroughtIron, 2))
.duration(GTMaterials.Steel.getMass() * 7)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:steel_encased_fan')
.itemInputs('greate:steel_encased_fan')
.itemOutputs(ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 5),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.WroughtIron, 2))
.duration(GTMaterials.Steel.getMass() * 7)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('greate:aluminium_encased_fan')
.itemInputs('greate:aluminium_encased_fan')
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 12))
.duration(GTMaterials.Aluminium.getMass() * 12)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:aluminium_encased_fan')
.itemInputs('greate:aluminium_encased_fan')
.itemOutputs(ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 12))
.duration(GTMaterials.Aluminium.getMass() * 12)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('greate:stainless_steel_encased_fan')
.itemInputs('greate:stainless_steel_encased_fan')
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 12))
.duration(GTMaterials.StainlessSteel.getMass() * 12)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:stainless_steel_encased_fan')
.itemInputs('greate:stainless_steel_encased_fan')
.itemOutputs(ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 12))
.duration(GTMaterials.StainlessSteel.getMass() * 12)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('greate:titanium_encased_fan')
.itemInputs('greate:titanium_encased_fan')
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Titanium, 12))
.duration(GTMaterials.Titanium.getMass() * 12)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:titanium_encased_fan')
.itemInputs('greate:titanium_encased_fan')
.itemOutputs(ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Titanium, 12))
.duration(GTMaterials.Titanium.getMass() * 12)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// #endregion
// #region Gearbox
event.recipes.tfc.extra_products_shapeless_crafting('4x greate:andesite_alloy_shaft',
event.shapeless('create:andesite_casing', ['greate:andesite_alloy_gearbox', '#forge:tools/hammers']))
event.recipes.tfc.extra_products_shapeless_crafting('4x greate:steel_shaft',
event.shapeless('create:andesite_casing', ['greate:steel_gearbox', '#forge:tools/hammers']))
event.recipes.tfc.extra_products_shapeless_crafting('4x greate:aluminium_shaft',
event.shapeless('create:andesite_casing', ['greate:aluminium_gearbox', '#forge:tools/hammers']))
event.recipes.tfc.extra_products_shapeless_crafting('4x greate:stainless_steel_shaft',
event.shapeless('create:andesite_casing', ['greate:stainless_steel_gearbox', '#forge:tools/hammers']))
event.recipes.tfc.extra_products_shapeless_crafting('4x greate:titanium_shaft',
event.shapeless('create:andesite_casing', ['greate:titanium_gearbox', '#forge:tools/hammers']))
// #endregion
// #region Mechanical Saw
event.recipes.gtceu.macerator('greate:andesite_alloy_mechanical_saw')
.itemInputs('greate:andesite_alloy_mechanical_saw')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.WroughtIron, 7),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Wood, 1))
.duration(GTMaterials.WroughtIron.getMass() * 7)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:andesite_alloy_mechanical_saw')
.itemInputs('greate:andesite_alloy_mechanical_saw')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.WroughtIron, 7),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Ash, 1))
.duration(GTMaterials.WroughtIron.getMass() * 7)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('greate:steel_mechanical_saw')
.itemInputs('greate:steel_mechanical_saw')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.WroughtIron, 8),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.CobaltBrass, 4),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Copper, 4))
.duration(GTMaterials.CobaltBrass.getMass() * 16)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:steel_mechanical_saw')
.itemInputs('greate:steel_mechanical_saw')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.WroughtIron, 8),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.CobaltBrass, 4),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.AnnealedCopper, 4))
.duration(GTMaterials.CobaltBrass.getMass() * 16)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('greate:aluminium_mechanical_saw')
.itemInputs('greate:aluminium_mechanical_saw')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 10),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Cupronickel, 8),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.VanadiumSteel, 4),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Copper, 2))
.duration(GTMaterials.VanadiumSteel.getMass() * 22)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:aluminium_mechanical_saw')
.itemInputs('greate:aluminium_mechanical_saw')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 10),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Cupronickel, 8),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.VanadiumSteel, 4),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.AnnealedCopper, 2))
.duration(GTMaterials.VanadiumSteel.getMass() * 22)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('greate:stainless_steel_mechanical_saw')
.itemInputs('greate:stainless_steel_mechanical_saw')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 10),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Electrum, 8),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.RedSteel, 4),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Silver, 4))
.duration(GTMaterials.RedSteel.getMass() * 22)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:stainless_steel_mechanical_saw')
.itemInputs('greate:stainless_steel_mechanical_saw')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 10),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Electrum, 8),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.RedSteel, 4),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Silver, 4))
.duration(GTMaterials.RedSteel.getMass() * 22)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('greate:titanium_mechanical_saw')
.itemInputs('greate:titanium_mechanical_saw')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Titanium, 10),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Kanthal, 8),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Ultimet, 4),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 4))
.duration(GTMaterials.Ultimet.getMass() * 22)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:titanium_mechanical_saw')
.itemInputs('greate:titanium_mechanical_saw')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Titanium, 10),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Kanthal, 8),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Ultimet, 4),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 4))
.duration(GTMaterials.Ultimet.getMass() * 22)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// #endregion
// #region Mechanical Pump
event.recipes.gtceu.macerator('greate:steel_mechanical_pump')
.itemInputs('greate:steel_mechanical_pump')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Copper, 2),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.WroughtIron, 1),
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Steel, 2))
.duration(GTMaterials.Copper.getMass() * 3)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:steel_mechanical_pump')
.itemInputs('greate:steel_mechanical_pump')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Copper, 2),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.WroughtIron, 1),
ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Steel, 2))
.duration(GTMaterials.Copper.getMass() * 3)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('greate:aluminium_mechanical_pump')
.itemInputs('greate:aluminium_mechanical_pump')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Copper, 2),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 1),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Rubber, 1),
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Aluminium, 2))
.duration(GTMaterials.Copper.getMass() * 3)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:aluminium_mechanical_pump')
.itemInputs('greate:aluminium_mechanical_pump')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Copper, 2),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 1),
ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Aluminium, 2))
.duration(GTMaterials.Copper.getMass() * 3)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('greate:stainless_steel_mechanical_pump')
.itemInputs('greate:stainless_steel_mechanical_pump')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Copper, 2),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 1),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Rubber, 1),
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.StainlessSteel, 2))
.duration(GTMaterials.Copper.getMass() * 3)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:stainless_steel_mechanical_pump')
.itemInputs('greate:stainless_steel_mechanical_pump')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Copper, 2),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 1),
ChemicalHelper.get(TagPrefix.nugget, GTMaterials.StainlessSteel, 2))
.duration(GTMaterials.Copper.getMass() * 3)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('greate:titanium_mechanical_pump')
.itemInputs('greate:titanium_mechanical_pump')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Copper, 2),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 1),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Rubber, 1),
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Titanium, 2))
.duration(GTMaterials.Copper.getMass() * 3)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:titanium_mechanical_pump')
.itemInputs('greate:titanium_mechanical_pump')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Copper, 2),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 1),
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Titanium, 2))
.duration(GTMaterials.Copper.getMass() * 3)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// #endregion
// #region Belts
event.recipes.gtceu.macerator('greate:rubber_belt_connector')
.itemInputs('greate:rubber_belt_connector')
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Rubber, 6))
.duration(GTMaterials.Rubber.getMass() * 6)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.macerator('greate:silicone_rubber_belt_connector')
.itemInputs('greate:silicone_rubber_belt_connector')
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.SiliconeRubber, 6))
.duration(GTMaterials.SiliconeRubber.getMass() * 6)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.macerator('greate:polyethylene_belt_connector')
.itemInputs('greate:polyethylene_belt_connector')
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.StyreneButadieneRubber, 6))
.duration(GTMaterials.StyreneButadieneRubber.getMass() * 6)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
// #region
// #region Mechanical Mixer
event.recipes.gtceu.macerator('greate:steel_mechanical_mixer')
.itemInputs('greate:steel_mechanical_mixer')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.WroughtIron, 8),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 4))
.duration(GTMaterials.WroughtIron.getMass() * 12)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:steel_mechanical_mixer')
.itemInputs('greate:steel_mechanical_mixer')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.WroughtIron, 8),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 4))
.duration(GTMaterials.WroughtIron.getMass() * 12)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('greate:aluminium_mechanical_mixer')
.itemInputs('greate:aluminium_mechanical_mixer')
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 12))
.duration(GTMaterials.Aluminium.getMass() * 12)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:aluminium_mechanical_mixer')
.itemInputs('greate:aluminium_mechanical_mixer')
.itemOutputs(ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 12))
.duration(GTMaterials.Aluminium.getMass() * 12)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('greate:stainless_steel_mechanical_mixer')
.itemInputs('greate:stainless_steel_mechanical_mixer')
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 12))
.duration(GTMaterials.StainlessSteel.getMass() * 12)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:stainless_steel_mechanical_mixer')
.itemInputs('greate:stainless_steel_mechanical_mixer')
.itemOutputs(ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 12))
.duration(GTMaterials.StainlessSteel.getMass() * 12)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('greate:titanium_mechanical_mixer')
.itemInputs('greate:titanium_mechanical_mixer')
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Titanium, 12))
.duration(GTMaterials.Titanium.getMass() * 12)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:titanium_mechanical_mixer')
.itemInputs('greate:titanium_mechanical_mixer')
.itemOutputs(ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Titanium, 12))
.duration(GTMaterials.Titanium.getMass() * 12)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// #endregion
}

View file

@ -0,0 +1,23 @@
// priority: 0
function removeGreateRecipes(event) {
global.GREATE_DISABLED_ITEMS.forEach(item => {
event.remove({ input: item })
event.remove({ output: item })
})
event.remove({ mod: 'greate', input: 'create:andesite_alloy' });
event.remove({ id: 'greate:shapeless/large_andesite_alloy_cogwheel_from_little' })
event.remove({ id: 'greate:shapeless/large_steel_cogwheel_from_little' })
event.remove({ id: 'greate:shapeless/large_aluminium_cogwheel_from_little' })
event.remove({ id: 'greate:shapeless/large_stainless_steel_cogwheel_from_little' })
event.remove({ id: 'greate:shapeless/large_titanium_cogwheel_from_little' })
event.remove({ id: 'greate:splashing/dough' })
event.remove({ mod: 'greate', type: 'create:deploying' });
event.remove({ mod: 'greate', type: 'create:sequenced_assembly' });
event.remove({ mod: 'greate', type: 'gtceu:assembler' });
}

View file

@ -0,0 +1,48 @@
// priority: 0
function registerGreateItemTags(event) {
global.GREATE_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
})
event.add('tfg:small_cogwheels', 'greate:andesite_alloy_cogwheel')
event.add('tfg:small_cogwheels', 'greate:steel_cogwheel')
event.add('tfg:small_cogwheels', 'greate:aluminium_cogwheel')
event.add('tfg:small_cogwheels', 'greate:stainless_steel_cogwheel')
event.add('tfg:small_cogwheels', 'greate:titanium_cogwheel')
event.add('tfg:large_cogwheels', 'greate:large_andesite_alloy_cogwheel')
event.add('tfg:large_cogwheels', 'greate:large_steel_cogwheel')
event.add('tfg:large_cogwheels', 'greate:large_aluminium_cogwheel')
event.add('tfg:large_cogwheels', 'greate:large_stainless_steel_cogwheel')
event.add('tfg:large_cogwheels', 'greate:large_titanium_cogwheel')
event.add('tfg:shafts', 'greate:andesite_alloy_shaft')
event.add('tfg:shafts', 'greate:steel_shaft')
event.add('tfg:shafts', 'greate:aluminium_shaft')
event.add('tfg:shafts', 'greate:stainless_steel_shaft')
event.add('tfg:shafts', 'greate:titanium_shaft')
}
function registerGreateBlockTags(event) {
global.GREATE_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
})
}
function registerGreateFluidTags(event) {
global.GREATE_DISABLED_FLUIDS.forEach(fluid => {
event.removeAllTagsFrom(fluid)
event.add('c:hidden_from_recipe_viewers', fluid)
})
}

View file

@ -1,55 +1,177 @@
// priority: 0
// priority: 10
const STONE_TYPES_TO_COBBLE = {
gabbro: 'tfc:rock/cobble/gabbro',
shale: 'tfc:rock/cobble/shale',
claystone: 'tfc:rock/cobble/claystone',
limestone: 'tfc:rock/cobble/limestone',
conglomerate: 'tfc:rock/cobble/conglomerate',
dolomite: 'tfc:rock/cobble/dolomite',
chert: 'tfc:rock/cobble/chert',
chalk: 'tfc:rock/cobble/chalk',
rhyolite: 'tfc:rock/cobble/rhyolite',
dacite: 'tfc:rock/cobble/dacite',
quartzite: 'tfc:rock/cobble/quartzite',
slate: 'tfc:rock/cobble/slate',
phyllite: 'tfc:rock/cobble/phyllite',
schist: 'tfc:rock/cobble/schist',
gneiss: 'tfc:rock/cobble/gneiss',
marble: 'tfc:rock/cobble/marble',
basalt: 'tfc:rock/cobble/basalt',
diorite: 'tfc:rock/cobble/diorite',
andesite: 'tfc:rock/cobble/andesite',
granite: 'tfc:rock/cobble/granite',
deepslate: 'minecraft:cobbled_deepslate',
pyroxenite: 'minecraft:blackstone',
dripstone: 'minecraft:dripstone_block',
}
const registerGTCEULoots = (event) => {
global.TFC_STONE_TYPES.forEach(stoneType => {
GTMaterialRegistry.getRegisteredMaterials().forEach(material => {
if (material.hasProperty(PropertyKey.ORE)) {
let stoneTypeMaterial = TFGHelpers.getMaterial(stoneType)
let stoneTypeDust = null
if (stoneTypeMaterial != null) stoneTypeDust = ChemicalHelper.get(TagPrefix.dust, stoneTypeMaterial, 1)
// Have to define these here because normal loot table jsons don't support checking for hammers
event.addBlockLootModifier('minecraft:deepslate')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('minecraft:cobbled_deepslate')
let richRawOre = ChemicalHelper.get(TFGTagPrefix.richRawOre, material, 1)
let normalRawOre = ChemicalHelper.get(TagPrefix.rawOre, material, 1)
let poorRawOre = ChemicalHelper.get(TFGTagPrefix.poorRawOre, material, 1)
event.addBlockLootModifier('minecraft:blackstone')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('tfc:sand/black')
let crushedOre = ChemicalHelper.get(TagPrefix.crushed, material, 1)
event.addBlockLootModifier('minecraft:dripstone_block')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('tfc:sand/brown')
let blockName = `gtceu:${stoneType}_${material.getName()}_ore`
event.addBlockLootModifier('tfg:rock/hardened_blackstone')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('tfc:sand/black')
if (!richRawOre.isEmpty() && !normalRawOre.isEmpty() && !poorRawOre.isEmpty()) {
event.addBlockLootModifier(blockName)
.removeLoot(Ingredient.all)
.addWeightedLoot([
richRawOre.withChance(0.2),
normalRawOre.withChance(0.6),
poorRawOre.withChance(0.2)
]);
}
if (!stoneTypeDust.isEmpty()) {
event.addBlockLootModifier(blockName)
.addLoot(
LootEntry.of(stoneTypeDust).when((c) => c.randomChance(0.25))
)
}
event.addBlockLootModifier('tfg:rock/hardened_deepslate')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('tfc:sand/black')
if (!crushedOre.isEmpty()) {
event.addBlockLootModifier(blockName)
.matchMainHand('#forge:tools/hammers')
.removeLoot(Ingredient.all)
.addWeightedLoot([
crushedOre.withChance(0.8),
crushedOre.withCount(2).withChance(0.2)
]);
}
event.addBlockLootModifier('tfg:rock/hardened_dripstone')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('tfc:sand/brown')
}
})
})
event.addBlockLootModifier('minecraft:gilded_blackstone')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addSequenceLoot(
LootEntry.of('tfc:sand/black'),
LootEntry.of('tfc:powder/native_gold')
)
event.addBlockLootModifier('beneath:crackrack')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('tfc:sand/pink')
// Crush raw rock into cobble
global.ORE_BEARING_STONES.forEach(stoneType => {
event.addBlockLootModifier(`tfc:rock/raw/${stoneType}`)
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot(STONE_TYPES_TO_COBBLE[stoneType]);
})
if (TFGHelpers.isMaterialRegistrationFinished) {
registerGTCEUMaterialLoots(event);
}
else {
console.log("!!!!!!!! MATERIALS NOT DONE YET !!!!!!!!!")
}
}
function registerGTCEUMaterialLoots(event) {
// Go through all materials
GTMaterialRegistry.getRegisteredMaterials().forEach(material => {
if (material.hasProperty(PropertyKey.ORE)) {
// Indicator buds
if (material.hasProperty(PropertyKey.GEM)) {
let normalDrop = ChemicalHelper.get(TagPrefix.gemChipped, material, 1)
let sawDrop = ChemicalHelper.get(TagPrefix.gem, material, 1)
let bud = `gtceu:${material.getName()}_bud_indicator`;
event.addBlockLootModifier(bud)
.matchMainHand("tfc:gem_saw")
.addLoot(sawDrop);
event.addBlockLootModifier(bud)
.not(n => n.matchMainHand("tfc:gem_saw"))
.addLoot(normalDrop);
}
let richRawOre = ChemicalHelper.get(TFGTagPrefix.richRawOre, material, 1)
let normalRawOre = ChemicalHelper.get(TagPrefix.rawOre, material, 1)
let poorRawOre = ChemicalHelper.get(TFGTagPrefix.poorRawOre, material, 1)
// I LOVE LOOTJS I LOVE LOOTJS I LOVE LOOTJS
let rawOreBlock = `:${ChemicalHelper.get(TagPrefix.rawOreBlock, material, 1).getItem()}`;
if (material == GTMaterials.Copper || material == GTMaterials.Gold || material == GTMaterials.Iron)
rawOreBlock = "minecraft" + rawOreBlock;
else
rawOreBlock = "gtceu" + rawOreBlock;
event.addBlockLootModifier(rawOreBlock)
.removeLoot(ItemFilter.ALWAYS_TRUE)
.or((or) => {
or.matchMainHand('#minecraft:pickaxes')
.matchMainHand('#forge:tools/hammers')
.matchMainHand('#forge:tools/mining_hammers')
})
.addWeightedLoot([4, 6],
[
richRawOre.withChance(0.2),
normalRawOre.withChance(0.6),
poorRawOre.withChance(0.2)
]);
// Stone ores
global.ORE_BEARING_STONES.forEach(stoneType => {
let stoneTypeMaterial = TFGHelpers.getMaterial(stoneType)
// Material doesn't work here because of reasons
if (stoneTypeMaterial == null) {
if (stoneType == "pyroxenite")
stoneTypeMaterial = GTMaterials.Blackstone;
else if (stoneType == "deepslate")
stoneTypeMaterial = GTMaterials.Deepslate;
}
let stoneTypeDust = ChemicalHelper.get(TagPrefix.dust, stoneTypeMaterial, 1)
// break with pickaxe
event.addBlockLootModifier(`gtceu:${stoneType}_${material.getName()}_ore`)
.removeLoot(ItemFilter.ALWAYS_TRUE)
.or((or) => {
or.matchMainHand('#minecraft:pickaxes')
.matchMainHand('#forge:tools/mining_hammers')
})
.addWeightedLoot([
richRawOre.withChance(0.2),
normalRawOre.withChance(0.6),
poorRawOre.withChance(0.2)
])
.addLoot(
LootEntry.of(stoneTypeDust).when((c) => c.randomChance(0.25))
)
// break with hammer
event.addBlockLootModifier(`gtceu:${stoneType}_${material.getName()}_ore`)
.matchMainHand('#forge:tools/hammers')
.addLoot(STONE_TYPES_TO_COBBLE[stoneType]);
})
}
})
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,714 @@
// priority: 0
function registerGTCEUMetalRecipes(event) {
const makeToolRecipe = (toolType, headTagPrefix, extruderMold, cirucitMeta, material) => {
const toolItem = ToolHelper.get(toolType, material)
if (toolItem.isEmpty()) return
const toolHeadItem = ChemicalHelper.get(headTagPrefix, material, 1)
if (toolHeadItem.isEmpty()) return
if (material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) {
event.shapeless(toolItem, [
'#forge:rods/wooden',
toolHeadItem
]).id(`gtceu:shaped/${toolType.name}_${material.getName()}`)
}
else {
event.recipes.tfc.advanced_shapeless_crafting(TFC.itemStackProvider.of(toolItem).copyForgingBonus(), ['#forge:rods/wooden', toolHeadItem])
.id(`gtceu:shaped/${toolType.name}_${material.getName()}`)
}
processToolHead(headTagPrefix, extruderMold, cirucitMeta, material)
}
const processToolHead = (headTagPrefix, extruderMold, cirucitMeta, material) => {
const toolHeadItem = ChemicalHelper.get(headTagPrefix, material, 1)
if (toolHeadItem.isEmpty()) return
if (material.hasProperty(PropertyKey.INGOT)) {
const ingotItem = ChemicalHelper.get(TagPrefix.ingot, material, 1)
if (ingotItem.isEmpty()) return
event.recipes.gtceu.extruder(`tfg:extrude_${material.getName()}_ingot_to_${new String(headTagPrefix.name).toLowerCase()}_head`)
.itemInputs(ingotItem.copyWithCount(Math.floor(headTagPrefix.materialAmount() / GTValues.M)))
.notConsumable(extruderMold)
.itemOutputs(toolHeadItem)
.duration(material.getMass() * 6)
.EUt(GTValues.VA[GTValues.LV])
if (headTagPrefix.materialAmount() / GTValues.M == 1) {
event.custom({
type: 'vintageimprovements:curving',
ingredients: [ingotItem],
itemAsHead: extruderMold,
results: [toolHeadItem],
processingTime: material.getMass() * 6 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER
}).id(`tfg:vi/curving/${material.getName()}_ingot_to_${new String(headTagPrefix.name).toLowerCase()}_head`)
}
else {
event.custom({
type: 'vintageimprovements:curving',
// have to do [item, item] instead of [item x2]
ingredients: [ingotItem, ingotItem],
itemAsHead: extruderMold,
results: [toolHeadItem],
processingTime: material.getMass() * 6 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER
}).id(`tfg:vi/curving/${material.getName()}_ingot_to_${new String(headTagPrefix.name).toLowerCase()}_head`)
}
event.recipes.gtceu.macerator(`tfg:macerate_${material.getName()}_${new String(headTagPrefix.name).toLowerCase()}_head`)
.itemInputs(toolHeadItem)
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, material, 1))
.duration(material.getMass() * 6)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace(`tfg:arc_furnace_${material.getName()}_${new String(headTagPrefix.name).toLowerCase()}_head`)
.itemInputs(toolHeadItem)
.itemOutputs(ChemicalHelper.get(TagPrefix.ingot, material, 1))
.duration(material.getMass() * 6)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
if (GTMaterials.Stone != material) {
event.recipes.gtceu.extractor(`tfg:extract_${material.getName()}_${new String(headTagPrefix.name).toLowerCase()}_head`)
.itemInputs(toolHeadItem)
.outputFluids(Fluid.of(material.getFluid(), 144))
.duration(material.getMass() * 6)
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
}
} else if (material.hasProperty(PropertyKey.GEM)) {
const gemItem = ChemicalHelper.get(TagPrefix.gem, material, 1)
if (gemItem.isEmpty()) return
event.recipes.gtceu.laser_engraver(`tfg:engrave_${material.getName()}_gem_to_${new String(headTagPrefix.name).toLowerCase()}_head`)
.itemInputs(gemItem.copyWithCount(Math.floor(headTagPrefix.materialAmount() / GTValues.M)))
.notConsumable(ChemicalHelper.get(TagPrefix.lens, GTMaterials.Glass, 1))
.circuit(cirucitMeta)
.itemOutputs(toolHeadItem)
.duration(material.getMass() * 6)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator(`tfg:macerate_${material.getName()}_${new String(headTagPrefix.name).toLowerCase()}_head`)
.itemInputs(toolHeadItem)
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, material, 1))
.duration(material.getMass() * 6)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
}
// else: ignore :3
}
const processToolMortar = (toolType, material) => {
const toolItem = ToolHelper.get(toolType, material)
if (toolItem.isEmpty()) return
const usableTagPrefix = material.hasProperty(PropertyKey.GEM) ? TagPrefix.gem : TagPrefix.ingot;
const usableItem = ChemicalHelper.get(usableTagPrefix, material, 1)
if (usableItem.isEmpty()) return
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped(toolItem, [
'CA ',
' B '
], {
A: usableItem,
B: '#tfc:rock/raw',
C: '#tfc:chisels'
})
).id(`gtceu:shaped/mortar_${material.getName()}`)
}
const processIngot = (tagPrefix, material) => {
const ingotStack = ChemicalHelper.get(tagPrefix, material, 1)
if (material.hasFlag(MaterialFlags.GENERATE_PLATE)
&& material != GTMaterials.Wood
&& material != GTMaterials.TreatedWood
&& !material.hasProperty(PropertyKey.POLYMER))
{
const plateStack = ChemicalHelper.get(TagPrefix.plate, material, 1)
const blockStack = ChemicalHelper.get(TagPrefix.block, material, 1)
let matAmount = TagPrefix.block.getMaterialAmount(material) / GTValues.M;
if (!plateStack.isEmpty()) {
event.custom({
type: "createaddition:rolling",
input: ingotStack,
result: plateStack,
//processingTime: material.getMass() // TODO - controlled by a global config argh
}).id(`tfg:rolling/${material.getName()}_plate`)
if (!blockStack.isEmpty() && GTMaterials.Stone != material) {
// 9х Слиток -> Блок
event.recipes.createCompacting(blockStack, ingotStack.withCount(matAmount))
.heated()
.id(`tfg:compacting/${material.getName()}_block`)
}
}
else {
if (!blockStack.isEmpty()) {
// Блок из гемов -> 9 Пластин
event.recipes.createCutting(plateStack.withCount(matAmount).withChance(0.65), blockStack)
.id(`tfg:cutting/${material.getName()}_plate`)
}
}
}
}
const processPlate = (tagPrefix, material) => {
const item = ChemicalHelper.get(tagPrefix, material, 1)
if (item.isEmpty()) return
event.remove({ id: `gtceu:shaped/plate_${material.getName()}` })
}
const processPlateDouble = (tagPrefix, material) => {
const item = ChemicalHelper.get(tagPrefix, material, 1)
if (item.isEmpty()) return
event.remove({ id: `gtceu:shaped/plate_double_${material.getName()}` })
}
const processBlock = (tagPrefix, material) => {
const item = ChemicalHelper.get(tagPrefix, material, 1)
if (item.isEmpty()) return
event.remove({ id: `gtceu:compressor/compress_${material.getName()}_to_block` })
}
const processFoil = (tagPrefix, material) => {
const foilItem = ChemicalHelper.get(tagPrefix, material, 4)
const plateItem = ChemicalHelper.get(TagPrefix.plate, material, 1)
if (plateItem != null && foilItem != null) {
event.custom({
type: "createaddition:rolling",
input: plateItem,
result: foilItem,
// TODO - processing time is controlled by a global config instead of setting it per-recipe...
//processingTime: material.getMass()
}).id(`tfg:rolling/${material.getName()}_foil`)
}
}
const processRodLong = (tagPrefix, material) => {
const item = ChemicalHelper.get(tagPrefix, material, 1)
if (item.isEmpty()) return
event.remove({ id: `gtceu:shaped/stick_long_stick_${material.getName()}` })
}
const processIngotDouble = (tagPrefix, material) => {
if (!material.hasFlag(TFGMaterialFlags.GENERATE_DOUBLE_INGOTS)) return;
const doubleIngotStack = ChemicalHelper.get(tagPrefix, material, 1);
if (material.hasProperty(PropertyKey.FLUID)) {
event.recipes.gtceu.extractor(`tfg:extract_${material.getName()}_double_ingot`)
.itemInputs(doubleIngotStack)
.outputFluids(Fluid.of(material.getFluid(), 288))
.duration(material.getMass())
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
}
if (material.hasProperty(PropertyKey.DUST)) {
event.recipes.gtceu.macerator(`tfg:macerate_${material.getName()}_double_ingot`)
.itemInputs(doubleIngotStack)
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, material, 2))
.duration(material.getMass())
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
}
const twoIngotStack = ChemicalHelper.get(TagPrefix.ingot, material, 2);
event.recipes.gtceu.arc_furnace(`tfg:arc_furnace_${material.getName()}_double_ingot`)
.itemInputs(doubleIngotStack)
.itemOutputs(twoIngotStack)
.duration(material.getMass() * 6)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.bender(`tfg:bend_${material.getName()}_double_ingot`)
.itemInputs(twoIngotStack)
.itemOutputs(doubleIngotStack)
.duration(material.getMass() * 6)
.EUt(GTValues.VA[GTValues.LV])
.circuit(3)
}
const processSmallOre = (tagPrefix, material) => {
if (!material.hasFlag(TFGMaterialFlags.HAS_SMALL_TFC_ORE)) return;
const smallOre = ChemicalHelper.get(tagPrefix, material, 1);
const smallDust = ChemicalHelper.get(TagPrefix.dustSmall, material, 1);
event.recipes.gtceu.macerator(`tfg:macerate_${material.getName()}_small_ore`)
.itemInputs(smallOre)
.itemOutputs(smallDust)
.duration(material.getMass())
.category(GTRecipeCategories.ORE_CRUSHING)
.EUt(GTValues.VA[GTValues.ULV])
}
const processSmallNativeOre = (tagPrefix, material) => {
if (!material.hasFlag(TFGMaterialFlags.HAS_SMALL_NATIVE_TFC_ORE)) return;
const smallNativeOre = ChemicalHelper.get(tagPrefix, material, 1);
const smallDust = ChemicalHelper.get(TagPrefix.dustSmall, material, 1);
event.recipes.gtceu.macerator(`tfg:macerate_${material.getName()}_small_native_ore`)
.itemInputs(smallNativeOre)
.itemOutputs(smallDust)
.duration(material.getMass())
.category(GTRecipeCategories.ORE_CRUSHING)
.EUt(GTValues.VA[GTValues.ULV])
}
const processPoorRawOre = (tagPrefix, material) => {
const poorOreItem = ChemicalHelper.get(tagPrefix, material, 2)
const crushedOreItem = ChemicalHelper.get(TagPrefix.crushed, material, 1)
if (poorOreItem != null && crushedOreItem != null) {
event.recipes.tfc.quern(crushedOreItem, poorOreItem)
.id(`tfg:quern/${material.getName()}_crushed_ore_from_poor_raw_ore`)
}
}
const processNormalRawOre = (tagPrefix, material) => {
const normalOreItem = ChemicalHelper.get(tagPrefix, material, 1)
const crushedOreItem = ChemicalHelper.get(TagPrefix.crushed, material, 1)
if (normalOreItem != null && crushedOreItem != null) {
event.recipes.tfc.quern(crushedOreItem, normalOreItem)
.id(`tfg:quern/${material.getName()}_crushed_ore_from_normal_raw_ore`)
}
}
const processRichRawOre = (tagPrefix, material) => {
const richOreItem = ChemicalHelper.get(tagPrefix, material, 1)
const crushedOreItem = ChemicalHelper.get(TagPrefix.crushed, material, 2)
if (richOreItem != null && crushedOreItem != null) {
event.recipes.tfc.quern(crushedOreItem, richOreItem)
.id(`tfg:quern/${material.getName()}_crushed_ore_from_rich_raw_ore`)
}
}
const processCrushedOre = (tagPrefix, material) => {
const crushedOreItem = ChemicalHelper.get(tagPrefix, material, 1)
const pureOreItem = ChemicalHelper.get(TagPrefix.crushedPurified, material, 1)
if (crushedOreItem != null && pureOreItem != null) {
let byproductMaterial = material.getProperty(PropertyKey.ORE).getOreByProduct(0, material);
const byproductItem = ChemicalHelper.get(TagPrefix.dust, byproductMaterial, 1)
event.recipes.greate.splashing([pureOreItem, TieredOutputItem.of(byproductItem).withChance(0.333), 'gtceu:stone_dust'], crushedOreItem)
.id(`tfg:splashing/${material.getName()}_purified_ore`)
// Дробленная руда -> Очищенная руда
event.custom({
type: "ae2:transform",
circumstance: {
type: "fluid",
tag: "tfc:water"
},
ingredients: [
crushedOreItem.toJson()
],
result: pureOreItem.toJson()
}).id(`tfg:ae_transform/${material.getName()}_purified_ore`)
}
}
const processImpureDust = (tagPrefix, material) => {
const impureDustItem = ChemicalHelper.get(tagPrefix, material, 1)
const dustItem = ChemicalHelper.get(TagPrefix.dust, material, 1)
if (impureDustItem != null && dustItem != null) {
let byproductMaterial = material.getProperty(PropertyKey.ORE).getOreByProduct(0, material);
const byproductItem = ChemicalHelper.get(TagPrefix.dust, byproductMaterial, 1)
event.recipes.greate.splashing([dustItem, TieredOutputItem.of(byproductItem).withChance(0.333), 'gtceu:stone_dust'], impureDustItem)
.id(`tfg:splashing/${material.getName()}_dust_from_impure`)
// Грязная пыль -> Пыль
event.custom({
type: "ae2:transform",
circumstance: {
type: "fluid",
tag: "tfc:water"
},
ingredients: [
impureDustItem.toJson()
],
result: dustItem.toJson()
}).id(`tfg:ae_transform/${material.getName()}_dust_from_impure`)
}
}
const processPureDust = (tagPrefix, material) => {
const pureDust = ChemicalHelper.get(tagPrefix, material, 1)
const dustItem = ChemicalHelper.get(TagPrefix.dust, material, 1)
if (pureDust != null && dustItem != null) {
let byproductMaterial = material.getProperty(PropertyKey.ORE).getOreByProduct(0, material);
const byproductItem = ChemicalHelper.get(TagPrefix.dust, byproductMaterial, 1)
event.recipes.greate.splashing([dustItem, TieredOutputItem.of(byproductItem).withChance(0.333), 'gtceu:stone_dust'], pureDust)
.id(`tfg:splashing/${material.getName()}_dust_from_pure`)
// Очищенная пыль -> Пыль
event.custom({
type: "ae2:transform",
circumstance: {
type: "fluid",
tag: "tfc:water"
},
ingredients: [
pureDust.toJson()
],
result: dustItem.toJson()
}).id(`tfg:ae_transform/${material.getName()}_dust_from_pure`)
}
}
GTMaterialRegistry.getRegisteredMaterials().forEach(material => {
const toolProperty = material.getProperty(PropertyKey.TOOL)
const ingotProperty = material.getProperty(PropertyKey.INGOT)
const oreProperty = material.getProperty(PropertyKey.ORE)
const gemProperty = material.getProperty(PropertyKey.GEM)
const anvilStack = ChemicalHelper.get(TFGTagPrefix.anvil, material, 1)
const finishedLampStack = ChemicalHelper.get(TFGTagPrefix.lamp, material, 1)
const trapdoorStack = ChemicalHelper.get(TFGTagPrefix.trapdoor, material, 1)
const chainStack = ChemicalHelper.get(TFGTagPrefix.chain, material, 1)
const bellStack = ChemicalHelper.get(TFGTagPrefix.bell, material, 1)
const barsStack = ChemicalHelper.get(TFGTagPrefix.bars, material, 4)
if (toolProperty != null) {
makeToolRecipe(GTToolType.SWORD, TFGTagPrefix.toolHeadSword, 'tfg:sword_head_extruder_mold', 1, material)
makeToolRecipe(GTToolType.PICKAXE, TFGTagPrefix.toolHeadPickaxe, 'tfg:pickaxe_head_extruder_mold', 2, material)
makeToolRecipe(GTToolType.AXE, TFGTagPrefix.toolHeadAxe, 'tfg:axe_head_extruder_mold', 3, material)
makeToolRecipe(GTToolType.SHOVEL, TFGTagPrefix.toolHeadShovel, 'tfg:shovel_head_extruder_mold', 4, material)
makeToolRecipe(GTToolType.HOE, TFGTagPrefix.toolHeadHoe, 'tfg:hoe_head_extruder_mold', 5, material)
makeToolRecipe(GTToolType.KNIFE, TFGTagPrefix.toolHeadKnife, 'tfg:knife_head_extruder_mold', 6, material)
makeToolRecipe(GTToolType.FILE, TFGTagPrefix.toolHeadFile, 'tfg:file_head_extruder_mold', 7, material)
makeToolRecipe(GTToolType.SAW, TFGTagPrefix.toolHeadSaw, 'tfg:saw_head_extruder_mold', 8, material)
makeToolRecipe(GTToolType.SPADE, TFGTagPrefix.toolHeadSpade, 'tfg:spade_head_extruder_mold', 9, material)
makeToolRecipe(GTToolType.MINING_HAMMER, TFGTagPrefix.toolHeadMiningHammer, 'tfg:mining_hammer_head_extruder_mold', 10, material)
makeToolRecipe(GTToolType.SCYTHE, TFGTagPrefix.toolHeadScythe, 'tfg:scythe_head_extruder_mold', 11, material)
makeToolRecipe(GTToolType.HARD_HAMMER, TFGTagPrefix.toolHeadHammer, 'tfg:hammer_head_extruder_mold', 12, material)
makeToolRecipe(GTToolType.BUTCHERY_KNIFE, TFGTagPrefix.toolHeadButcheryKnife, 'tfg:butchery_knife_head_extruder_mold', 13, material)
processToolMortar(GTToolType.MORTAR, material)
processToolHead(TFGTagPrefix.toolHeadPropick, 'tfg:propick_head_extruder_mold', 14, material)
processToolHead(TFGTagPrefix.toolHeadJavelin, 'tfg:javelin_head_extruder_mold', 15, material)
processToolHead(TFGTagPrefix.toolHeadChisel, 'tfg:chisel_head_extruder_mold', 16, material)
processToolHead(TFGTagPrefix.toolHeadMace, 'tfg:mace_head_extruder_mold', 17, material)
processToolHead(TFGTagPrefix.toolHeadMattock, 'tfg:mattock_head_extruder_mold', 18, material)
}
if (ingotProperty != null) {
processIngot(TagPrefix.ingot, material)
processPlate(TagPrefix.plate, material)
processPlateDouble(TagPrefix.plateDouble, material)
processBlock(TagPrefix.block, material)
processFoil(TagPrefix.foil, material)
processRodLong(TagPrefix.rodLong, material)
processIngotDouble(TFGTagPrefix.ingotDouble, material)
}
if (oreProperty != null) {
processSmallOre(TFGTagPrefix.oreSmall, material)
processSmallNativeOre(TFGTagPrefix.oreSmallNative, material)
processPoorRawOre(TFGTagPrefix.poorRawOre, material)
processNormalRawOre(TagPrefix.rawOre, material)
processRichRawOre(TFGTagPrefix.richRawOre, material)
processCrushedOre(TagPrefix.crushed, material)
processImpureDust(TagPrefix.dustImpure, material)
processPureDust(TagPrefix.dustPure, material)
if (gemProperty != null) {
let gem = ChemicalHelper.get(TagPrefix.gem, material, 1);
let chipped = ChemicalHelper.get(TagPrefix.gemChipped, material, 1)
let smallDust = ChemicalHelper.get(TagPrefix.dustSmall, material, 1)
event.recipes.tfc.damage_inputs_shapeless_crafting(event.recipes.minecraft.crafting_shapeless(
`gtceu:${material.getName()}_bud_indicator`, [gem, '#tfc:chisels']))
.id(`shapeless/${material.getName()}_bud_indicator`)
event.shaped(smallDust,
[ 'A', 'B' ],
{ A: chipped, B: '#forge:tools/mortars'})
.id(`shapeless/mortar_chipped_${material.getName()}`)
}
}
if (anvilStack != null) {
event.recipes.gtceu.macerator(`tfg:macerate_${material.getName()}_anvil`)
.itemInputs(anvilStack)
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, material, 14))
.duration(material.getMass() * 32)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.arc_furnace(`tfg:arc_${material.getName()}_anvil`)
.itemInputs(anvilStack)
.itemOutputs(ChemicalHelper.get(TagPrefix.ingot, material, 14))
.duration(material.getMass() * 32)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.extractor(`tfg:extract_${material.getName()}_anvil`)
.itemInputs(anvilStack)
.outputFluids(Fluid.of(material.getFluid(), 14 * 144))
.duration(material.getMass() * 32)
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.alloy_smelter(`tfg:cast_${material.getName()}_anvil`)
.itemInputs(ChemicalHelper.get(TagPrefix.ingot, material, 14))
.notConsumable('gtceu:anvil_casting_mold')
.itemOutputs(anvilStack)
.duration(material.getMass() * 32)
.EUt(GTValues.VA[GTValues.ULV])
.category(GTRecipeCategories.INGOT_MOLDING)
event.recipes.gtceu.fluid_solidifier(`tfg:solidify_${material.getName()}_anvil`)
.inputFluids(Fluid.of(material.getFluid(), 14 * 144))
.notConsumable('gtceu:anvil_casting_mold')
.itemOutputs(anvilStack)
.duration(material.getMass() * 32)
.EUt(GTValues.VA[GTValues.ULV])
}
if (finishedLampStack != null) {
const materialDustStack = ChemicalHelper.get(TagPrefix.dust, material, 1)
const materialIngotStack = ChemicalHelper.get(TagPrefix.ingot, material, 1)
const glassDustStack = ChemicalHelper.get(TagPrefix.dust, GTMaterials.Glass, 4)
const unfinishedLampStack = ChemicalHelper.get(TFGTagPrefix.lampUnfinished, material, 1)
event.recipes.gtceu.macerator(`tfg:macerate_${material.getName()}_lamp`)
.itemInputs(finishedLampStack)
.itemOutputs([materialDustStack, glassDustStack])
.duration(material.getMass() * 8)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.arc_furnace(`tfg:arc_${material.getName()}_lamp`)
.itemInputs(finishedLampStack)
.itemOutputs([materialIngotStack, glassDustStack])
.duration(material.getMass() * 8)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.assembler(`tfg:${material.getName()}_lamp`)
.itemInputs("tfc:lamp_glass", unfinishedLampStack)
.itemOutputs(finishedLampStack)
.duration(material.getMass() * 7)
.circuit(12)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.assembler(`tfg:${material.getName()}_lamp_from_liquid`)
.itemInputs(unfinishedLampStack)
.inputFluids(Fluid.of(GTMaterials.Glass.getFluid(), 576))
.itemOutputs(finishedLampStack)
.duration(material.getMass() * 7)
.circuit(13)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.macerator(`tfg:macerate_${material.getName()}_unfinished_lamp`)
.itemInputs(unfinishedLampStack)
.itemOutputs(materialDustStack)
.duration(material.getMass() * 8)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.arc_furnace(`tfg:arc_${material.getName()}_unfinished_lamp`)
.itemInputs(unfinishedLampStack)
.itemOutputs([materialIngotStack, glassDustStack])
.duration(material.getMass() * 8)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.extractor(`tfg:extract_${material.getName()}_unfinished_lamp`)
.itemInputs(unfinishedLampStack)
.outputFluids(Fluid.of(material.getFluid(), 144))
.duration(material.getMass() * 8)
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.alloy_smelter(`tfg:cast_${material.getName()}_unfinished_lamp`)
.itemInputs(materialIngotStack)
.notConsumable('tfg:lamp_casting_mold')
.itemOutputs(unfinishedLampStack)
.duration(material.getMass() * 8)
.category(GTRecipeCategories.INGOT_MOLDING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.fluid_solidifier(`tfg:solidify_${material.getName()}_unfinished_lamp`)
.inputFluids(Fluid.of(material.getFluid(), 144))
.notConsumable('tfg:lamp_casting_mold')
.itemOutputs(unfinishedLampStack)
.duration(material.getMass() * 8)
.EUt(GTValues.VA[GTValues.ULV])
}
if (trapdoorStack != null) {
const materialDustStack = ChemicalHelper.get(TagPrefix.dust, material, 1)
const materialIngotStack = ChemicalHelper.get(TagPrefix.ingot, material, 1)
event.recipes.gtceu.macerator(`tfg:macerate_${material.getName()}_trapdoor`)
.itemInputs(trapdoorStack)
.itemOutputs(materialDustStack)
.duration(material.getMass() * 7)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.arc_furnace(`tfg:arc_${material.getName()}_trapdoor`)
.itemInputs(trapdoorStack)
.itemOutputs(materialIngotStack)
.duration(material.getMass() * 7)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.extractor(`tfg:extract_${material.getName()}_trapdoor`)
.itemInputs(trapdoorStack)
.outputFluids(Fluid.of(material.getFluid(), 144))
.duration(material.getMass() * 7)
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.alloy_smelter(`tfg:cast_${material.getName()}_trapdoor`)
.itemInputs(materialIngotStack)
.notConsumable('tfg:trapdoor_casting_mold')
.itemOutputs(trapdoorStack)
.duration(material.getMass() * 8)
.category(GTRecipeCategories.INGOT_MOLDING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.fluid_solidifier(`tfg:solidify_${material.getName()}_trapdoor`)
.inputFluids(Fluid.of(material.getFluid(), 144))
.notConsumable('tfg:trapdoor_casting_mold')
.itemOutputs(trapdoorStack)
.duration(material.getMass() * 7)
.EUt(GTValues.VA[GTValues.ULV])
}
if (chainStack != null) {
const chain2Stack = ChemicalHelper.get(TFGTagPrefix.chain, material, 2)
const materialDustTinyStack = ChemicalHelper.get(TagPrefix.dustTiny, material, 1)
const materialNuggetStack = ChemicalHelper.get(TagPrefix.nugget, material, 1)
const materialIngotStack = ChemicalHelper.get(TagPrefix.ingot, material, 1)
event.recipes.gtceu.macerator(`tfg:macerate_${material.getName()}_chain`)
.itemInputs(chain2Stack)
.itemOutputs(materialDustTinyStack)
.duration(material.getMass() * 3)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.arc_furnace(`tfg:arc_${material.getName()}_chain`)
.itemInputs(chain2Stack)
.itemOutputs(materialNuggetStack)
.duration(material.getMass() * 3)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.extractor(`tfg:extract_${material.getName()}_chain`)
.itemInputs(chainStack)
.outputFluids(Fluid.of(material.getFluid(), 9))
.duration(material.getMass() * 3)
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.alloy_smelter(`tfg:cast_${material.getName()}_chain`)
.itemInputs(materialIngotStack)
.notConsumable('tfg:chain_casting_mold')
.itemOutputs(ChemicalHelper.get(TFGTagPrefix.chain, material, 16))
.duration(material.getMass() * 3)
.category(GTRecipeCategories.INGOT_MOLDING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.fluid_solidifier(`tfg:solidify_${material.getName()}_chain`)
.inputFluids(Fluid.of(material.getFluid(), 9))
.notConsumable('tfg:chain_casting_mold')
.itemOutputs(chainStack)
.duration(material.getMass() * 3)
.EUt(GTValues.VA[GTValues.ULV])
}
if (bellStack != null) {
const materialDustStack = ChemicalHelper.get(TagPrefix.dust, material, 1)
const materialIngotStack = ChemicalHelper.get(TagPrefix.ingot, material, 1)
event.recipes.gtceu.macerator(`tfg:macerate_${material.getName()}_bell`)
.itemInputs(bellStack)
.itemOutputs(materialDustStack)
.duration(material.getMass() * 5)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.arc_furnace(`tfg:arc_${material.getName()}_bell`)
.itemInputs(bellStack)
.itemOutputs(materialIngotStack)
.duration(material.getMass() * 5)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.extractor(`tfg:extract_${material.getName()}_bell`)
.itemInputs(bellStack)
.outputFluids(Fluid.of(material.getFluid(), 144))
.duration(material.getMass() * 5)
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.alloy_smelter(`tfg:cast_${material.getName()}_bell`)
.itemInputs(materialIngotStack)
.notConsumable('tfg:bell_casting_mold')
.itemOutputs(bellStack)
.duration(material.getMass() * 5)
.category(GTRecipeCategories.INGOT_MOLDING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.fluid_solidifier(`tfg:solidify_${material.getName()}_bell`)
.inputFluids(Fluid.of(material.getFluid(), 144))
.notConsumable('tfg:bell_casting_mold')
.itemOutputs(bellStack)
.duration(material.getMass() * 5)
.EUt(GTValues.VA[GTValues.ULV])
}
if (barsStack != null) {
event.stonecutting(barsStack, ChemicalHelper.get(TagPrefix.ingot, material, 1))
.id(`${material.getName()}_ingot_to_bars`)
}
// Indicators
if (oreProperty != null) {
event.replaceInput({ id: `gtceu:shaped/${material.getName()}_surface_indicator`},
'minecraft:gravel', '#tfc:rock/gravel')
}
})
}

View file

@ -0,0 +1,587 @@
// priority: 0
function removeGTCEURecipes(event) {
global.GTCEU_DISABLED_ITEMS.forEach(item => {
event.remove({ input: item })
event.remove({ output: item })
})
//#region Выход: Крошечная кучка камня
event.remove({ id: 'gtceu:macerator/macerate_stone_button' })
//#endregion
//#region Выход: Маленькая кучка камня
event.remove({ id: 'gtceu:macerator/macerate_stone_stairs' })
event.remove({ id: 'gtceu:macerator/macerate_stone_slab' })
event.remove({ id: 'gtceu:macerator/macerate_stone_brick_stairs' })
event.remove({ id: 'gtceu:macerator/macerate_stone_brick_slab' })
event.remove({ id: 'gtceu:macerator/macerate_sandstone_stairs' })
event.remove({ id: 'gtceu:macerator/macerate_sandstone_slab' })
event.remove({ id: 'gtceu:macerator/macerate_red_sandstone_stairs' })
event.remove({ id: 'gtceu:macerator/macerate_red_sandstone_slab' })
event.remove({ id: 'gtceu:macerator/macerate_granite' })
event.remove({ id: 'gtceu:macerator/macerate_diorite' })
event.remove({ id: 'gtceu:macerator/macerate_cobblestone_slab' })
event.remove({ id: 'gtceu:macerator/macerate_andesite' })
//#endregion
//#region Выход: Кучка камня
event.remove({ id: 'gtceu:macerator/macerate_stone_sword' })
event.remove({ id: 'gtceu:macerator/macerate_stone_shovel' })
event.remove({ id: 'gtceu:macerator/macerate_stone_pressure_plate' })
event.remove({ id: 'gtceu:macerator/macerate_stone_pickaxe' })
event.remove({ id: 'gtceu:macerator/macerate_stone_hoe' })
event.remove({ id: 'gtceu:macerator/macerate_stone_bricks' })
event.remove({ id: 'gtceu:macerator/macerate_stone_axe' })
event.remove({ id: 'gtceu:macerator/macerate_mossy_cobblestone' })
event.remove({ id: 'gtceu:macerator/macerate_cobblestone_wall' })
event.remove({ id: 'gtceu:macerator/macerate_cobblestone' })
event.remove({ id: 'gtceu:macerator/gravel_to_flint' })
event.remove({ id: 'gtceu:macerator/macerate_furnace' })
//#endregion
//#region Deepslate
event.remove({ id: 'gtceu:shaped/deepslate_hammer' })
event.remove({ id: 'gtceu:shaped/cobbled_deepslate_stair_saw' })
event.remove({ id: 'gtceu:shaped/cobbled_deepslate_slab_saw' })
event.remove({ id: 'gtceu:shaped/cobbled_deepslate_wall_saw' })
event.remove({ id: 'gtceu:shaped/cobbled_deepslate_polish_hammer' })
event.remove({ id: 'gtceu:assembler/assemble_cobbled_deepslate_into_stair' })
event.remove({ id: 'gtceu:assembler/assemble_cobbled_deepslate_into_polished' })
event.remove({ id: 'gtceu:assembler/assemble_cobbled_deepslate_into_wall' })
event.remove({ id: 'gtceu:cutter/cut_cobbled_deepslate_into_slab' })
event.remove({ id: 'gtceu:cutter/cut_cobbled_deepslate_into_slab_water' })
event.remove({ id: 'gtceu:cutter/cut_cobbled_deepslate_into_slab_distilled_water' })
event.remove({ id: 'gtceu:shaped/cobbled_deepslate_polished_hammer' })
event.remove({ id: 'gtceu:forming_press/form_cobbled_deepslate_slab_into_pillar' })
event.remove({ id: 'gtceu:shaped/polished_deepslate_stair_saw' })
event.remove({ id: 'gtceu:shaped/polished_deepslate_slab_saw' })
event.remove({ id: 'gtceu:shaped/polished_deepslate_wall_saw' })
event.remove({ id: 'gtceu:shaped/polished_deepslate_polish_hammer' })
event.remove({ id: 'gtceu:assembler/assemble_polished_deepslate_into_stair' })
event.remove({ id: 'gtceu:assembler/assemble_polished_deepslate_into_polished' })
event.remove({ id: 'gtceu:assembler/assemble_polished_deepslate_into_wall' })
event.remove({ id: 'gtceu:cutter/cut_polished_deepslate_into_slab' })
event.remove({ id: 'gtceu:cutter/cut_polished_deepslate_into_slab_water' })
event.remove({ id: 'gtceu:cutter/cut_polished_deepslate_into_slab_distilled_water' })
event.remove({ id: 'gtceu:shaped/deepslate_bricks_hammer' })
event.remove({ id: 'gtceu:shaped/deepslate_bricks_stair_saw' })
event.remove({ id: 'gtceu:shaped/deepslate_bricks_slab_saw' })
event.remove({ id: 'gtceu:shaped/deepslate_bricks_wall_saw' })
event.remove({ id: 'gtceu:shaped/deepslate_bricks_polish_hammer' })
event.remove({ id: 'gtceu:assembler/assemble_deepslate_bricks_into_stair' })
event.remove({ id: 'gtceu:assembler/assemble_deepslate_bricks_into_polished' })
event.remove({ id: 'gtceu:assembler/assemble_deepslate_bricks_into_wall' })
event.remove({ id: 'gtceu:cutter/cut_deepslate_bricks_into_slab' })
event.remove({ id: 'gtceu:cutter/cut_deepslate_bricks_into_slab_water' })
event.remove({ id: 'gtceu:cutter/cut_deepslate_bricks_into_slab_distilled_water' })
event.remove({ id: 'gtceu:shaped/deepslate_tile_hammer' })
event.remove({ id: 'gtceu:shaped/deepslate_tile_stair_saw' })
event.remove({ id: 'gtceu:shaped/deepslate_tile_slab_saw' })
event.remove({ id: 'gtceu:shaped/deepslate_tile_wall_saw' })
event.remove({ id: 'gtceu:shaped/deepslate_tile_polish_hammer' })
event.remove({ id: 'gtceu:assembler/assemble_deepslate_tile_into_stair' })
event.remove({ id: 'gtceu:assembler/assemble_deepslate_tile_into_polished' })
event.remove({ id: 'gtceu:assembler/assemble_deepslate_tile_into_wall' })
event.remove({ id: 'gtceu:cutter/cut_deepslate_tile_into_slab' })
event.remove({ id: 'gtceu:cutter/cut_deepslate_tile_into_slab_water' })
event.remove({ id: 'gtceu:cutter/cut_deepslate_tile_into_slab_distilled_water' })
event.remove({ id: 'gtceu:macerator/macerate_deepslate' })
event.remove({ id: 'gtceu:rock_breaker/deepslate' })
// #endregion
// #region Blackstone
event.remove({ id: 'gtceu:shaped/blackstone_stair_saw' })
event.remove({ id: 'gtceu:shaped/blackstone_slab_saw' })
event.remove({ id: 'gtceu:shaped/blackstone_wall_saw' })
event.remove({ id: 'gtceu:shaped/blackstone_polish_hammer' })
event.remove({ id: 'gtceu:assembler/assemble_blackstone_into_stair' })
event.remove({ id: 'gtceu:assembler/assemble_blackstone_into_polished' })
event.remove({ id: 'gtceu:assembler/assemble_blackstone_into_wall' })
event.remove({ id: 'gtceu:cutter/cut_blackstone_into_slab' })
event.remove({ id: 'gtceu:cutter/cut_blackstone_into_slab_water' })
event.remove({ id: 'gtceu:cutter/cut_blackstone_into_slab_distilled_water' })
event.remove({ id: 'gtceu:shaped/polished_blackstone_hammer' })
event.remove({ id: 'gtceu:shaped/polished_blackstone_stair_saw' })
event.remove({ id: 'gtceu:shaped/polished_blackstone_slab_saw' })
event.remove({ id: 'gtceu:shaped/polished_blackstone_wall_saw' })
event.remove({ id: 'gtceu:shaped/polished_blackstone_polish_hammer' })
event.remove({ id: 'gtceu:assembler/assemble_polished_blackstone_into_stair' })
event.remove({ id: 'gtceu:assembler/assemble_polished_blackstone_into_polished' })
event.remove({ id: 'gtceu:assembler/assemble_polished_blackstone_into_wall' })
event.remove({ id: 'gtceu:cutter/cut_polished_blackstone_into_slab' })
event.remove({ id: 'gtceu:cutter/cut_polished_blackstone_into_slab_water' })
event.remove({ id: 'gtceu:cutter/cut_polished_blackstone_into_slab_distilled_water' })
event.remove({ id: 'gtceu:shaped/polished_blackstone_polished_hammer' })
event.remove({ id: 'gtceu:forming_press/form_polished_blackstone_slab_into_pillar' })
event.remove({ id: 'gtceu:shaped/polished_blackstone_brick_hammer' })
event.remove({ id: 'gtceu:shaped/polished_blackstone_brick_stair_saw' })
event.remove({ id: 'gtceu:shaped/polished_blackstone_brick_slab_saw' })
event.remove({ id: 'gtceu:shaped/polished_blackstone_brick_wall_saw' })
event.remove({ id: 'gtceu:shaped/polished_blackstone_brick_polish_hammer' })
event.remove({ id: 'gtceu:assembler/assemble_polished_blackstone_brick_into_stair' })
event.remove({ id: 'gtceu:assembler/assemble_polished_blackstone_brick_into_polished' })
event.remove({ id: 'gtceu:assembler/assemble_polished_blackstone_brick_into_wall' })
event.remove({ id: 'gtceu:cutter/cut_polished_blackstone_brick_into_slab' })
event.remove({ id: 'gtceu:cutter/cut_polished_blackstone_brick_into_slab_water' })
event.remove({ id: 'gtceu:cutter/cut_polished_blackstone_brick_into_slab_distilled_water' })
event.remove({ id: 'gtceu:rock_breaker/blackstone' })
// #endregion
// #region basalt
event.remove({ id: 'gtceu:shaped/basalt_polish_hammer' })
event.remove({ id: 'gtceu:assembler/assemble_basalt_into_polished' })
// #endregion
// #region Plant Ball
event.remove({ id: 'gtceu:compressor/plant_ball_from_wheat' })
event.remove({ id: 'gtceu:compressor/plant_ball_from_warped_stem' })
event.remove({ id: 'gtceu:compressor/plant_ball_from_crimson_stem' })
event.remove({ id: 'gtceu:compressor/plant_ball_from_tube_coral' })
event.remove({ id: 'gtceu:compressor/plant_ball_from_sugar_cane' })
event.remove({ id: 'gtceu:compressor/plant_ball_from_potato' })
event.remove({ id: 'gtceu:compressor/plant_ball_from_nether_wart' })
event.remove({ id: 'gtceu:compressor/plant_ball_from_horn_coral' })
event.remove({ id: 'gtceu:compressor/plant_ball_from_fire_coral' })
event.remove({ id: 'gtceu:compressor/plant_ball_from_carrot' })
event.remove({ id: 'gtceu:compressor/plant_ball_from_cactus' })
event.remove({ id: 'gtceu:compressor/plant_ball_from_bubble_coral' })
event.remove({ id: 'gtceu:compressor/plant_ball_from_brain_coral' })
event.remove({ id: 'gtceu:compressor/plant_ball_from_beetroot' })
event.remove({ id: 'gtceu:compressor/plant_ball_from_moss' })
// #endregion
// #region Biomass
event.remove({ id: 'gtceu:brewery/biomass_from_sugar_cane' })
event.remove({ id: 'gtceu:brewery/biomass_from_potato' })
event.remove({ id: 'gtceu:brewery/biomass_from_carrot' })
event.remove({ id: 'gtceu:brewery/biomass_from_cactus' })
event.remove({ id: 'gtceu:brewery/biomass_from_beetroot' })
// #endregion
// #region Fish Oil
event.remove({ id: 'gtceu:extractor/fish_oil_from_tropical_fish' })
event.remove({ id: 'gtceu:extractor/fish_oil_from_salmon' })
event.remove({ id: 'gtceu:extractor/fish_oil_from_pufferfish' })
event.remove({ id: 'gtceu:extractor/fish_oil_from_cod' })
// #endregion
// #region Wrought Iron Nugget
event.remove({ output: 'gtceu:wrought_iron_nugget', type: 'minecraft:smelting' })
// #endregion
// #region Seed Oil
event.remove({ id: 'gtceu:extractor/seed_oil_from_tag_seeds' })
event.remove({ id: 'gtceu:extractor/seed_oil_from_pumpkin' })
event.remove({ id: 'gtceu:extractor/seed_oil_from_melon' })
event.remove({ id: 'gtceu:extractor/seed_oil_from_beetroot' })
// #endregion
//#region Выход: Крошечная кучка дерева
event.remove({ id: 'gtceu:macerator/macerate_warped_button' })
event.remove({ id: 'gtceu:macerator/macerate_spruce_button' })
event.remove({ id: 'gtceu:macerator/macerate_oak_button' })
event.remove({ id: 'gtceu:macerator/macerate_mangrove_button' })
event.remove({ id: 'gtceu:macerator/macerate_jungle_button' })
event.remove({ id: 'gtceu:macerator/macerate_dark_oak_button' })
event.remove({ id: 'gtceu:macerator/macerate_crimson_button' })
event.remove({ id: 'gtceu:macerator/macerate_cherry_button' })
event.remove({ id: 'gtceu:macerator/macerate_birch_button' })
event.remove({ id: 'gtceu:macerator/macerate_acacia_button' })
//#endregion
//#region Выход: Маленькая кучка дерева
event.remove({ id: 'gtceu:macerator/macerate_wooden_sword' })
event.remove({ id: 'gtceu:macerator/macerate_wooden_shovel' })
event.remove({ id: 'gtceu:macerator/macerate_wooden_pickaxe' })
event.remove({ id: 'gtceu:macerator/macerate_wooden_hoe' })
event.remove({ id: 'gtceu:macerator/macerate_wooden_axe' })
event.remove({ id: 'gtceu:macerator/macerate_warped_stairs' })
event.remove({ id: 'gtceu:macerator/macerate_warped_slab' })
event.remove({ id: 'gtceu:macerator/macerate_spruce_stairs' })
event.remove({ id: 'gtceu:macerator/macerate_spruce_slab' })
event.remove({ id: 'gtceu:macerator/macerate_oak_stairs' })
event.remove({ id: 'gtceu:macerator/macerate_oak_slab' })
event.remove({ id: 'gtceu:macerator/macerate_mangrove_stairs' })
event.remove({ id: 'gtceu:macerator/macerate_mangrove_slab' })
event.remove({ id: 'gtceu:macerator/macerate_jungle_stairs' })
event.remove({ id: 'gtceu:macerator/macerate_jungle_slab' })
event.remove({ id: 'gtceu:macerator/macerate_iron_sword' })
event.remove({ id: 'gtceu:macerator/macerate_iron_shovel' })
event.remove({ id: 'gtceu:macerator/macerate_iron_pickaxe' })
event.remove({ id: 'gtceu:macerator/macerate_iron_hoe' })
event.remove({ id: 'gtceu:macerator/macerate_iron_axe' })
event.remove({ id: 'gtceu:macerator/macerate_golden_sword' })
event.remove({ id: 'gtceu:macerator/macerate_golden_shovel' })
event.remove({ id: 'gtceu:macerator/macerate_golden_pickaxe' })
event.remove({ id: 'gtceu:macerator/macerate_golden_hoe' })
event.remove({ id: 'gtceu:macerator/macerate_golden_axe' })
event.remove({ id: 'gtceu:macerator/macerate_diamond_sword' })
event.remove({ id: 'gtceu:macerator/macerate_diamond_shovel' })
event.remove({ id: 'gtceu:macerator/macerate_diamond_pickaxe' })
event.remove({ id: 'gtceu:macerator/macerate_diamond_hoe' })
event.remove({ id: 'gtceu:macerator/macerate_diamond_axe' })
event.remove({ id: 'gtceu:macerator/macerate_dark_oak_stairs' })
event.remove({ id: 'gtceu:macerator/macerate_dark_oak_slab' })
event.remove({ id: 'gtceu:macerator/macerate_crimson_stairs' })
event.remove({ id: 'gtceu:macerator/macerate_crimson_slab' })
event.remove({ id: 'gtceu:macerator/macerate_cherry_stairs' })
event.remove({ id: 'gtceu:macerator/macerate_cherry_slab' })
event.remove({ id: 'gtceu:macerator/macerate_birch_stairs' })
event.remove({ id: 'gtceu:macerator/macerate_birch_slab' })
event.remove({ id: 'gtceu:macerator/macerate_acacia_stairs' })
event.remove({ id: 'gtceu:macerator/macerate_acacia_slab' })
//#endregion
//#region Выход: Деревянная пыль
event.remove({ id: 'gtceu:macerator/macerate_trapped_chest' })
event.remove({ id: 'gtceu:macerator/macerate_spruce_planks' })
event.remove({ id: 'gtceu:macerator/macerate_spruce_fence_gate' })
event.remove({ id: 'gtceu:macerator/macerate_spruce_fence' })
event.remove({ id: 'gtceu:macerator/macerate_spruce_door' })
event.remove({ id: 'gtceu:macerator/macerate_spruce_boat' })
event.remove({ id: 'gtceu:macerator/macerate_oak_planks' })
event.remove({ id: 'gtceu:macerator/macerate_oak_fence_gate' })
event.remove({ id: 'gtceu:macerator/macerate_oak_fence' })
event.remove({ id: 'gtceu:macerator/macerate_oak_door' })
event.remove({ id: 'gtceu:macerator/macerate_oak_boat' })
event.remove({ id: 'gtceu:macerator/macerate_mangrove_planks' })
event.remove({ id: 'gtceu:macerator/macerate_mangrove_fence_gate' })
event.remove({ id: 'gtceu:macerator/macerate_mangrove_fence' })
event.remove({ id: 'gtceu:macerator/macerate_mangrove_door' })
event.remove({ id: 'gtceu:macerator/macerate_mangrove_boat' })
event.remove({ id: 'gtceu:macerator/macerate_jungle_planks' })
event.remove({ id: 'gtceu:macerator/macerate_jungle_fence_gate' })
event.remove({ id: 'gtceu:macerator/macerate_jungle_fence' })
event.remove({ id: 'gtceu:macerator/macerate_jungle_door' })
event.remove({ id: 'gtceu:macerator/macerate_jungle_boat' })
event.remove({ id: 'gtceu:macerator/macerate_dark_oak_planks' })
event.remove({ id: 'gtceu:macerator/macerate_dark_oak_fence_gate' })
event.remove({ id: 'gtceu:macerator/macerate_dark_oak_fence' })
event.remove({ id: 'gtceu:macerator/macerate_dark_oak_door' })
event.remove({ id: 'gtceu:macerator/macerate_dark_oak_boat' })
event.remove({ id: 'gtceu:macerator/macerate_crafting_table' })
event.remove({ id: 'gtceu:macerator/macerate_chest' })
event.remove({ id: 'gtceu:macerator/macerate_chest_minecart' })
event.remove({ id: 'gtceu:macerator/macerate_cherry_planks' })
event.remove({ id: 'gtceu:macerator/macerate_cherry_fence_gate' })
event.remove({ id: 'gtceu:macerator/macerate_cherry_fence' })
event.remove({ id: 'gtceu:macerator/macerate_cherry_door' })
event.remove({ id: 'gtceu:macerator/macerate_cherry_boat' })
event.remove({ id: 'gtceu:macerator/macerate_bookshelf' })
event.remove({ id: 'gtceu:macerator/macerate_birch_planks' })
event.remove({ id: 'gtceu:macerator/macerate_birch_fence_gate' })
event.remove({ id: 'gtceu:macerator/macerate_birch_fence' })
event.remove({ id: 'gtceu:macerator/macerate_birch_door' })
event.remove({ id: 'gtceu:macerator/macerate_birch_boat' })
event.remove({ id: 'gtceu:macerator/macerate_acacia_planks' })
event.remove({ id: 'gtceu:macerator/macerate_acacia_fence_gate' })
event.remove({ id: 'gtceu:macerator/macerate_acacia_fence' })
event.remove({ id: 'gtceu:macerator/macerate_acacia_door' })
event.remove({ id: 'gtceu:macerator/macerate_acacia_boat' })
event.remove({ id: 'gtceu:macerator/macerate_bamboo_raft' })
event.remove({ id: 'gtceu:macerator/macerate_crimson_door' })
event.remove({ id: 'gtceu:macerator/macerate_crimson_fence' })
event.remove({ id: 'gtceu:macerator/macerate_crimson_fence_gate' })
event.remove({ id: 'gtceu:macerator/macerate_crimson_planks' })
event.remove({ id: 'gtceu:macerator/macerate_warped_door' })
event.remove({ id: 'gtceu:macerator/macerate_warped_fence' })
event.remove({ id: 'gtceu:macerator/macerate_warped_fence_gate' })
event.remove({ id: 'gtceu:macerator/macerate_warped_planks' })
//#endregion
//#region Выход: Бумажная пыль
event.remove({ id: 'gtceu:shaped/paper_dust' })
//#endregion
//#region Выход: Маленькая кучка мяса
event.remove({ id: 'gtceu:macerator/macerate_steak' })
event.remove({ id: 'gtceu:macerator/macerate_rabbit' })
event.remove({ id: 'gtceu:macerator/macerate_pork_chop' })
//#endregion
// #region Meat
event.remove({ id: 'gtceu:macerator/macerate_mutton' })
event.remove({ id: 'gtceu:macerator/macerate_chicken' })
// #endregion
//#region Выход: Пшеничная пыль
event.remove({ id: 'gtceu:shapeless/wheat_to_dust' })
event.remove({ id: 'gtceu:macerator/macerate_wheat' })
event.remove({ id: 'gtceu:macerator/macerate_hay_block' })
//#endregion
//#region Выход: Слиток кованного железа
event.remove({ id: 'gtceu:arc_furnace/arc_chest_minecart' })
event.remove({ id: 'gtceu:arc_furnace/arc_iron_trapdoor' })
event.remove({ id: 'gtceu:arc_furnace/arc_damaged_anvil' })
event.remove({ id: 'gtceu:arc_furnace/arc_chipped_anvil' })
event.remove({ id: 'gtceu:arc_furnace/arc_anvil' })
event.remove({ id: 'gtceu:arc_furnace/arc_furnace_minecart' })
event.remove({ id: 'gtceu:arc_furnace/arc_compass' })
//#endregion
//#region Выход: Кованные самородки
event.remove({ id: 'gtceu:arc_furnace/arc_iron_bars' })
//#endregion
//#region Выход: Железная пыль
event.remove({ id: 'gtceu:macerator/macerate_iron_trapdoor' })
event.remove({ id: 'gtceu:macerator/macerate_damaged_anvil' })
event.remove({ id: 'gtceu:macerator/macerate_chipped_anvil' })
event.remove({ id: 'gtceu:macerator/macerate_anvil' })
event.remove({ id: 'gtceu:macerator/macerate_furnace_minecart' })
event.remove({ id: 'gtceu:macerator/macerate_bucket' })
event.remove({ id: 'gtceu:macerator/macerate_compass' })
//#endregion
//#region Выход: Крошечная железная пыль
event.remove({ id: 'gtceu:macerator/macerate_iron_bars' })
//#endregion
//#region Выход: Крошечная пыль золы
event.remove({ id: 'gtceu:arc_furnace/arc_bookshelf' })
//#endregion
//#region Выход: Пыль незерака
event.remove({ id: 'gtceu:macerator/macerate_nether_brick_stairs' })
event.remove({ id: 'gtceu:macerator/macerate_nether_brick_slab' })
//#endregion
//#region Выход: Пыль базальта
event.remove({ id: 'gtceu:macerator/macerate_basalt' })
//#endregion
//#region Выход: Слиток камня
event.remove({ id: 'gtceu:alloy_smelter/alloy_smelt_stone_to_ingot' })
//#endregion
//#region Выход: Бронзовые машины (Плюс их декрафты)
event.remove({ id: 'gtceu:shaped/bronze_hull' })
event.remove({ id: 'gtceu:arc_furnace/arc_bronze_machine_casing' })
event.remove({ id: 'gtceu:macerator/macerate_bronze_machine_casing' })
event.remove({ id: 'gtceu:shaped/steam_extractor_bronze' })
event.remove({ id: 'gtceu:arc_furnace/arc_lp_steam_extractor' })
event.remove({ id: 'gtceu:macerator/macerate_lp_steam_extractor' })
event.remove({ id: 'gtceu:shaped/steam_macerator_bronze' })
event.remove({ id: 'gtceu:arc_furnace/arc_lp_steam_macerator' })
event.remove({ id: 'gtceu:macerator/macerate_lp_steam_macerator' })
event.remove({ id: 'gtceu:shaped/steam_compressor_bronze' })
event.remove({ id: 'gtceu:arc_furnace/arc_lp_steam_compressor' })
event.remove({ id: 'gtceu:macerator/macerate_lp_steam_compressor' })
event.remove({ id: 'gtceu:shaped/steam_hammer_bronze' })
event.remove({ id: 'gtceu:arc_furnace/arc_lp_steam_forge_hammer' })
event.remove({ id: 'gtceu:macerator/macerate_lp_steam_forge_hammer' })
event.remove({ id: 'gtceu:shaped/steam_furnace_bronze' })
event.remove({ id: 'gtceu:arc_furnace/arc_lp_steam_furnace' })
event.remove({ id: 'gtceu:macerator/macerate_lp_steam_furnace' })
event.remove({ id: 'gtceu:shaped/steam_alloy_smelter_bronze' })
event.remove({ id: 'gtceu:arc_furnace/arc_lp_steam_alloy_smelter' })
event.remove({ id: 'gtceu:macerator/macerate_lp_steam_alloy_smelter' })
event.remove({ id: 'gtceu:shaped/steam_rock_breaker_bronze' })
event.remove({ id: 'gtceu:arc_furnace/arc_lp_steam_rock_crusher' })
event.remove({ id: 'gtceu:macerator/macerate_lp_steam_rock_crusher' })
event.remove({ id: 'gtceu:shaped/steam_miner_bronze' })
event.remove({ id: 'gtceu:arc_furnace/arc_steam_miner_bronze' })
event.remove({ id: 'gtceu:macerator/macerate_steam_miner_bronze' })
event.remove({ id: 'gtceu:shaped/steam_miner_bronze' })
event.remove({ id: 'gtceu:arc_furnace/arc_steam_miner_bronze' })
event.remove({ id: 'gtceu:macerator/macerate_steam_miner_bronze' })
event.remove({ id: 'gtceu:shaped/steam_miner_steel' })
event.remove({ id: 'gtceu:arc_furnace/arc_steam_miner_steel' })
event.remove({ id: 'gtceu:macerator/macerate_steam_miner_steel' })
// #endregion
//#region Выход: некоторые рецепты пылей
event.remove({ id: 'gtceu:shapeless/dust_brass' })
event.remove({ id: 'gtceu:shapeless/glass_dust_flint' })
event.remove({ id: 'gtceu:shapeless/dust_bronze' })
event.remove({ id: 'gtceu:shapeless/potin_dust' })
//#endregion
// Удаление рецептов связанных с Primitive Blast Furnace
event.remove({ id: 'gtceu:arc_furnace/arc_primitive_blast_furnace' })
event.remove({ id: 'gtceu:macerator/macerate_primitive_blast_furnace' })
// Удаление рецепта беск. воды кавера
event.remove('gtceu:assembler/cover_infinite_water')
// Удаление рецептов помпы
event.remove('gtceu:shaped/pump_deck')
event.remove('gtceu:shaped/pump_hatch')
event.remove('gtceu:shaped/primitive_pump')
// Удаление рецептов связанных с Barrel
event.remove({ id: 'gtceu:shaped/wooden_barrel' })
event.remove({ id: 'gtceu:assembler/wood_barrel' })
event.remove({ id: 'gtceu:arc_furnace/arc_wood_drum' })
event.remove({ id: 'gtceu:macerator/macerate_wood_drum' })
// Удаление рецептов связанных с FireBricks
event.remove({ id: 'gtceu:shaped/casing_primitive_bricks' })
event.remove({ id: 'gtceu:macerator/macerate_firebricks' })
event.remove({ id: 'gtceu:extractor/extract_primitive_bricks' })
// Удаление рецептов связанных с FireBrick
event.remove({ id: 'gtceu:smelting/fireclay_brick' })
event.remove({ id: 'gtceu:macerator/macerate_firebrick' })
// Clay from mud
event.remove({ id: 'gtceu:compressor/mud_to_clay' })
// Rubber extraction
event.remove({ id: 'gtceu:extractor/extract_raw_rubber_dust' })
event.remove({ id: 'gtceu:extractor/raw_rubber_from_resin' })
event.remove({ id: 'gtceu:extractor/raw_rubber_from_slime' })
// Mortar
event.remove({ id: 'gtceu:shaped/gem_to_dust_coal_chipped_gem' })
event.remove({ id: 'gtceu:shaped/gem_to_dust_coke_chipped_gem' })
event.remove({ id: 'gtceu:shaped/sandstone_polished_hammer' })
event.remove({ id: 'gtceu:shaped/stone_brick_polished_hammer' })
event.remove({ id: 'gtceu:shaped/purpur_polished_hammer' })
event.remove({ id: 'gtceu:shaped/red_sandstone_polished_hammer' })
event.remove({ id: 'gtceu:shaped/nether_bricks_polished_hammer' })
event.remove({ id: 'gtceu:shaped_fluid_container/brick_from_water' })
// Gears
event.remove({ id: 'gtceu:extruder/extrude_wood_ingot_to_small_gear' })
event.remove({ id: 'gtceu:alloy_smelter/alloy_smelt_wood_ingot_to_small_gear' })
// Misc vanilla stuff
event.remove({ id: 'gtceu:shaped/observer' })
event.remove({ id: 'gtceu:shaped/observer_certus' })
event.remove({ id: 'gtceu:shaped/observer_quartzite' })
event.remove({ id: 'gtceu:shaped/piston_iron' })
event.remove({ id: 'gtceu:shaped/comparator' })
event.remove({ id: 'gtceu:shaped/repeater' })
event.remove({ id: 'gtceu:shaped/crossbow' })
event.remove({ id: 'gtceu:shaped/spyglass' })
event.remove({ id: 'gtceu:shaped/lead' })
event.remove({ id: 'gtceu:shaped/target' })
event.remove({ id: 'gtceu:shaped/lectern' })
event.remove({ id: 'gtceu:shaped/item_frame' })
event.remove({ id: 'gtceu:shaped/clock' })
event.remove({ id: 'gtceu:shaped/loom' })
event.remove({ id: 'gtceu:shaped/scaffolding' })
event.remove({ id: 'gtceu:shaped/bow' })
event.remove({ id: 'gtceu:shaped/leather_horse_armor' })
event.remove({ id: 'gtceu:shaped/bowl' })
event.remove({ id: 'gtceu:shaped/flower_pot' })
event.remove({ id: 'gtceu:shaped/jack_o_lantern' })
event.remove({ id: 'gtceu:shaped/armor_stand' })
event.remove({ id: 'gtceu:shaped/white_bed' })
event.remove({ id: 'gtceu:shaped/light_gray_bed' })
event.remove({ id: 'gtceu:shaped/gray_bed' })
event.remove({ id: 'gtceu:shaped/black_bed' })
event.remove({ id: 'gtceu:shaped/brown_bed' })
event.remove({ id: 'gtceu:shaped/red_bed' })
event.remove({ id: 'gtceu:shaped/orange_bed' })
event.remove({ id: 'gtceu:shaped/yellow_bed' })
event.remove({ id: 'gtceu:shaped/lime_bed' })
event.remove({ id: 'gtceu:shaped/green_bed' })
event.remove({ id: 'gtceu:shaped/cyan_bed' })
event.remove({ id: 'gtceu:shaped/light_blue_bed' })
event.remove({ id: 'gtceu:shaped/blue_bed' })
event.remove({ id: 'gtceu:shaped/purple_bed' })
event.remove({ id: 'gtceu:shaped/magenta_bed' })
event.remove({ id: 'gtceu:shaped/pink_bed' })
event.remove({ id: 'gtceu:shaped/flour_to_dough' })
event.remove({ id: 'gtceu:shaped/grindstone' })
event.remove({ id: 'gtceu:shaped/treated_trapdoor_iron' })
event.remove({ id: 'gtceu:shaped/treated_trapdoor_steel' })
event.remove({ id: 'gtceu:shaped/treated_door' })
event.remove({ id: 'gtceu:shaped/barrel' })
event.remove({ id: 'gtceu:shaped/book' })
event.remove({ id: 'gtceu:shaped/bucket_of_concrete' })
event.remove({ id: 'gtceu:shaped_fluid_container/treated_wood_planks' })
event.remove({ id: 'gtceu:assembler/bell' })
event.remove({ id: 'gtceu:assembler/armor_stand' })
event.remove({ id: 'gtceu:assembler/piston_stainless_steel' })
event.remove({ id: 'gtceu:assembler/treated_trapdoor_iron' })
event.remove({ id: 'gtceu:assembler/treated_trapdoor_steel' })
event.remove({ id: 'gtceu:assembler/treated_door' })
event.remove({ id: 'gtceu:assembler/barrel' })
}

View file

@ -1,57 +1,115 @@
// priority: 0
const registerGTCEUItemTags = (event) => {
// Удаление тегов у отключенных предметов
global.GTCEU_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
})
global.GTCEU_HIDED_ITEMS.forEach(item => {
event.add('c:hidden_from_recipe_viewers', item)
})
// Удаление тегов у отключенных предметов
global.GTCEU_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
})
global.GTCEU_ARMORS.forEach(item => {
event.add('minecraft:trimmable_armor', item)
})
global.GTCEU_HIDED_ITEMS.forEach(item => {
event.add('c:hidden_from_recipe_viewers', item)
})
// Добавление тега EMI для скрытия всех руд
event.add('c:hidden_from_recipe_viewers', '#forge:ores')
global.GTCEU_ARMORS.forEach(item => {
event.add('minecraft:trimmable_armor', item)
})
//#region Пыли стоунтайпов в один тэг
event.add('tfg:stone_dusts', 'tfg:gabbro_dust')
event.add('tfg:stone_dusts', 'tfg:shale_dust')
event.add('tfg:stone_dusts', 'tfg:claystone_dust')
event.add('tfg:stone_dusts', 'tfg:limestone_dust')
event.add('tfg:stone_dusts', 'tfg:conglomerate_dust')
event.add('tfg:stone_dusts', 'tfg:dolomite_dust')
event.add('tfg:stone_dusts', 'tfg:chert_dust')
event.add('tfg:stone_dusts', 'tfg:chalk_dust')
event.add('tfg:stone_dusts', 'tfg:rhyolite_dust')
event.add('tfg:stone_dusts', 'tfg:dacite_dust')
event.add('tfg:stone_dusts', 'gtceu:quartzite_dust')
event.add('tfg:stone_dusts', 'tfg:slate_dust')
event.add('tfg:stone_dusts', 'tfg:phyllite_dust')
event.add('tfg:stone_dusts', 'tfg:schist_dust')
event.add('tfg:stone_dusts', 'tfg:gneiss_dust')
event.add('tfg:stone_dusts', 'gtceu:marble_dust')
event.add('tfg:stone_dusts', 'gtceu:basalt_dust')
event.add('tfg:stone_dusts', 'gtceu:diorite_dust')
event.add('tfg:stone_dusts', 'gtceu:andesite_dust')
event.add('tfg:stone_dusts', 'gtceu:granite_dust')
// Добавление тега EMI для скрытия всех руд
event.add('c:hidden_from_recipe_viewers', '#forge:ores')
event.add('tfg:stone_dusts', 'gtceu:stone_dust')
//#region Пыли стоунтайпов в один тэг
event.add('tfg:stone_dusts', 'tfg:gabbro_dust')
event.add('tfg:stone_dusts', 'tfg:shale_dust')
event.add('tfg:stone_dusts', 'tfg:claystone_dust')
event.add('tfg:stone_dusts', 'tfg:limestone_dust')
event.add('tfg:stone_dusts', 'tfg:conglomerate_dust')
event.add('tfg:stone_dusts', 'tfg:dolomite_dust')
event.add('tfg:stone_dusts', 'tfg:chert_dust')
event.add('tfg:stone_dusts', 'tfg:chalk_dust')
event.add('tfg:stone_dusts', 'tfg:rhyolite_dust')
event.add('tfg:stone_dusts', 'tfg:dacite_dust')
event.add('tfg:stone_dusts', 'gtceu:quartzite_dust')
event.add('tfg:stone_dusts', 'tfg:slate_dust')
event.add('tfg:stone_dusts', 'tfg:phyllite_dust')
event.add('tfg:stone_dusts', 'tfg:schist_dust')
event.add('tfg:stone_dusts', 'tfg:gneiss_dust')
event.add('tfg:stone_dusts', 'gtceu:marble_dust')
event.add('tfg:stone_dusts', 'gtceu:basalt_dust')
event.add('tfg:stone_dusts', 'gtceu:diorite_dust')
event.add('tfg:stone_dusts', 'gtceu:andesite_dust')
event.add('tfg:stone_dusts', 'gtceu:granite_dust')
event.add('tfg:stone_dusts', 'gtceu:deepslate_dust')
event.add('tfg:stone_dusts', 'gtceu:blackstone_dust')
event.add('tfg:stone_dusts', 'tfg:dripstone_dust')
event.add('tfg:stone_dusts', 'gtceu:stone_dust')
//#endregion
event.remove('minecraft:planks', 'gtceu:treated_wood_planks')
event.add('tfg:sugars', 'minecraft:sugar')
event.add('tfg:sugars', 'afc:birch_sugar')
event.add('tfg:sugars', 'afc:maple_sugar')
//#endregion
global.MINECRAFT_DYE_NAMES.forEach(dyeName =>
{
event.remove('ae2:p2p_attunements/fluid_p2p_tunnel', `gtceu:${dyeName}_dye_bucket`)
})
}
const registerGTCEUBlockTags = (event) => {
// Удаление тегов у отключенных предметов
global.GTCEU_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
})
// Удаление тегов у отключенных предметов
global.GTCEU_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
})
// TODO: Ores all broke for some reason? This is a workaround for now
event.add('minecraft:mineable/pickaxe', '#forge:ores')
event.add('minecraft:needs_iron_tool', '#forge:ores')
// Let GT indicators be covered by snow
GTMaterialRegistry.getRegisteredMaterials().forEach(material => {
if (material.hasProperty(PropertyKey.ORE)) {
let indicator = `gtceu:${material.getName()}_indicator`;
event.add('tfg:dust_ore_indicators', indicator)
event.add('tfc:can_be_snow_piled', indicator)
event.add('tfc:can_be_ice_piled', indicator)
if (material.hasProperty(PropertyKey.GEM)) {
let bud = `gtceu:${material.getName()}_bud_indicator`;
event.add('tfg:bud_ore_indicators', bud)
event.add('tfc:can_be_snow_piled', bud)
event.add('tfc:can_be_ice_piled', bud)
event.add('minecraft:mineable/pickaxe', bud)
}
// I LOVE KUBEJS I LOVE KUBEJS I LOVE KUBEJS
let str = `:${ChemicalHelper.get(TagPrefix.rawOreBlock, material, 1).getItem()}`;
if (material == GTMaterials.Copper || material == GTMaterials.Gold || material == GTMaterials.Iron)
str = "minecraft" + str;
else
str = "gtceu" + str;
event.add('tfc:can_collapse', str);
event.add('tfc:can_start_collapse', str);
event.add('tfc:can_trigger_collapse', str);
// Hide these from JEI
event.add('c:hidden_from_recipe_viewers', str);
}
})
}
const registerGTCEUFluidTags = (event) => {
event.add('c:hidden_from_recipe_viewers', /gtceu.*potion.*/)
}

View file

@ -1,88 +1,100 @@
// priority: 0
const generateMixerRecipe = (event, input, fluid_input, output, circuit, fluid_output, duration, EUt, rpm, id) => {
const recipe1 = event.recipes.gtceu.mixer(id)
.itemInputs(input)
.inputFluids(fluid_input)
.itemOutputs(output)
.outputFluids(fluid_output)
.duration(duration)
.EUt(EUt)
const recipe = event.recipes.gtceu.mixer(id)
.itemInputs(input)
.inputFluids(fluid_input)
.itemOutputs(output)
.outputFluids(fluid_output)
.duration(duration)
.EUt(EUt)
const recipe2 = event.recipes.gtceu.create_mixer(id)
.itemInputs(input)
.inputFluids(fluid_input)
.itemOutputs(output)
.outputFluids(fluid_output)
.duration(duration)
.EUt(EUt)
.rpm(rpm)
if (circuit != null) {
recipe1.circuit(circuit)
recipe2.circuit(circuit)
}
if (circuit != null) {
recipe.circuit(circuit)
}
}
const generateCutterRecipe = (event, input, circuit, output, duration, EUt, id) => {
// Вот зачем я, скажете вы, делаю тут всякие костыли,
// потому что блядский разработчик GTCEu не может исправить баги своего мода
// Я так устал..
const generateCutterRecipe = (event, input, output, duration, EUt, id) => {
const recipe1 = event.recipes.gtceu.cutter(`tfg:${id}_water`)
.itemInputs(input)
.inputFluids(Fluid.of('minecraft:water', 4))
.itemOutputs(output)
.duration(duration)
.EUt(EUt)
const recipe2 = event.recipes.gtceu.cutter(`tfg:${id}_dist_water`)
.itemInputs(input)
.inputFluids(Fluid.of('gtceu:distilled_water', 3))
.itemOutputs(output)
.duration(duration)
.EUt(EUt)
const recipe3 = event.recipes.gtceu.cutter(`tfg:${id}_lubricant`)
.itemInputs(input)
.inputFluids(Fluid.of('gtceu:lubricant', 1))
.itemOutputs(output)
.duration(duration)
.EUt(EUt)
event.recipes.createCutting(output, input)
.id(`tfg:cutting/${id}`)
if (circuit != null) {
recipe1.circuit(circuit)
recipe2.circuit(circuit)
recipe3.circuit(circuit)
}
event.recipes.gtceu.cutter(`tfg:${id}`)
.itemInputs(input)
.itemOutputs(output)
.duration(duration)
.EUt(EUt)
}
const generateGreenHouseRecipe = (event, input, fluid_amount, output, id) => {
// Без удобрения
event.recipes.gtceu.greenhouse(id)
.itemInputs(input)
.circuit(1)
.inputFluids(Fluid.of('minecraft:water', fluid_amount))
.itemOutputs(output)
.chancedOutput(input, 7500, 0)
.chancedOutput(input, 5000, 0)
.duration(64000)
.EUt(128)
// С удобрением
event.recipes.gtceu.greenhouse(`${id}_fertilized`)
.itemInputs(input)
.itemInputs('8x gtceu:fertilizer')
.circuit(2)
.inputFluids(Fluid.of('minecraft:water', fluid_amount))
.itemOutputs(output)
.chancedOutput(input, 8500, 0)
.chancedOutput(input, 6000, 0)
.duration(16000)
.EUt(256)
// Без удобрения
event.recipes.gtceu.greenhouse(id)
.itemInputs(input)
.circuit(1)
.inputFluids(Fluid.of('minecraft:water', fluid_amount))
.itemOutputs(output)
.chancedOutput(input, 7500, 0)
.chancedOutput(input, 5000, 0)
.duration(36000) // 30 mins
.EUt(72)
// С удобрением
event.recipes.gtceu.greenhouse(`${id}_fertilized`)
.itemInputs(input)
.itemInputs('8x gtceu:fertilizer')
.circuit(2)
.inputFluids(Fluid.of('minecraft:water', fluid_amount))
.itemOutputs(output)
.chancedOutput(input, 8500, 0)
.chancedOutput(input, 6000, 0)
.duration(12000) // 10 mins
.EUt(196)
}
const getFillingNBT = (material, amount) => {
return {
tank: {
FluidName: Fluid.of(material.getFluid()).getId(),
Amount: amount
}
}
}
function generatePlatedBlockRecipe(event, material) {
let plateItem = ChemicalHelper.get(TagPrefix.plate, material, 1);
let platedBlock = ChemicalHelper.get(TFGTagPrefix.blockPlated, material, 1);
let platedSlab = ChemicalHelper.get(TFGTagPrefix.slabPlated, material, 1);
let platedStair = ChemicalHelper.get(TFGTagPrefix.stairPlated, material, 1);
event.recipes.create.item_application(platedBlock, ['#forge:stone_bricks', plateItem])
.id(`tfg:item_application/${material.getName()}_plated_block`)
event.recipes.createDeploying(platedBlock, ['#forge:stone_bricks', plateItem])
.id(`tfg:deploying/${material.getName()}_plated_block`)
event.recipes.gtceu.assembler(`tfg:assembler/${material.getName()}_plated_block`)
.itemInputs('#forge:stone_bricks', plateItem)
.itemOutputs(platedBlock)
.circuit(10)
.duration(50)
.EUt(4)
event.recipes.create.item_application(platedSlab, ['#tfg:brick_slabs', plateItem])
.id(`tfg:item_application/${material.getName()}_plated_slab`)
event.recipes.createDeploying(platedSlab, ['#tfg:brick_slabs', plateItem])
.id(`tfg:deploying/${material.getName()}_plated_slab`)
event.recipes.gtceu.assembler(`tfg:assembler/${material.getName()}_plated_slab`)
.itemInputs('#tfg:brick_slabs', plateItem)
.itemOutputs(platedSlab)
.circuit(10)
.duration(50)
.EUt(4)
event.recipes.create.item_application(platedStair, ['#tfg:brick_stairs', plateItem])
.id(`tfg:item_application/${material.getName()}_plated_stair`)
event.recipes.createDeploying(platedStair, ['#tfg:brick_stairs', plateItem])
.id(`tfg:deploying/${material.getName()}_plated_stair`)
event.recipes.gtceu.assembler(`tfg:assembler/${material.getName()}_plated_stair`)
.itemInputs('#tfg:brick_stairs', plateItem)
.itemOutputs(platedStair)
.circuit(10)
.duration(50)
.EUt(4)
}

View file

@ -0,0 +1,16 @@
/**
*
* @param {Internal.TFCDataEventJS} evt
*/
const registerTFCDataForImmersiveAircraft = (evt) =>
{
evt.itemSize('immersive_aircraft:quadrocopter', 'large', 'heavy');
evt.itemSize('immersive_aircraft:airship', 'very_large', 'heavy');
evt.itemSize('immersive_aircraft:gyrodyne', 'very_large', 'very_heavy');
evt.itemSize('immersive_aircraft:cargo_airship', 'very_large', 'very_heavy');
evt.itemSize('immersive_aircraft:warship', 'huge', 'very_heavy');
evt.itemSize('immersive_aircraft:biplane', 'huge', 'very_heavy');
evt.itemSize('man_of_many_planes:economy_plane', 'huge', 'very_heavy');
evt.itemSize('man_of_many_planes:scarlet_biplane', 'huge', 'very_heavy');
}

View file

@ -0,0 +1,833 @@
// priority: 0
/**
*
* @param {Internal.RecipesEventJS} event
*/
function registerImmersiveAircraftRecipes(event) {
//#region Recycling Util
/**
*
* @param {string} id
* @param {{input: string, duration: number, outputsMacerator: Internal.ItemStack[], outputsArcFurnace: Internal.ItemStack[]}} args
*/
let generateRecyclingRecipe = (id, args) =>
{
event.recipes.gtceu.macerator(id)
.itemInputs(args.input)
// macerator only has 6 output slots
.itemOutputs(args.outputsMacerator.slice(0, 6))
.duration(args.duration)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV]);
event.recipes.gtceu.arc_furnace(id)
.itemInputs(args.input)
.itemOutputs(args.outputsArcFurnace)
.duration(args.duration)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
}
/**
*
* @param {string} inputItem
* @param {com.gregtechceu.gtceu.api.data.chemical.material.Material[]} outputMaterialsArray
* @param {{tagPrefixMacerator: TagPrefix, tagPrefixArcFurnace: TagPrefix, count: number}[]} materialToResults
* @returns {input: string, duration: number, outputsMacerator: Internal.ItemStack[], outputsArcFurnace: Internal.ItemStack[]}
*/
let createRecyclingRecipeArgs = (inputItem, outputMaterialsArray, materialToResults) =>
{
let outputsMacerator = []
let outputsArcFurnace = []
let duration = 0;
for(let i = 0; i < outputMaterialsArray.length; i++)
{
if(i > 9)
{
break;
}
let material = outputMaterialsArray[i];
let arcFurnaceMaterial = material;
let result = materialToResults[i];
/*FIXME: This should do a couple of things it doesnt do rn, but i cba to fix it myself.
//The arcFurnaceMaterial should have special checks to see if it should be replaced with Ash if the material is a Wood or a Polymer.
//It should also set itself to annealed copper if the input is regular copper
//Ideally we should make sure the specified material has a specific TagPrefix before pushing it into the array, cant get it to work tho. I think the method TagPrefix.doGenerateItem() is ideal for this
*/
outputsArcFurnace.push(ChemicalHelper.get(result.tagPrefixArcFurnace, arcFurnaceMaterial, result.count));
outputsMacerator.push(ChemicalHelper.get(result.tagPrefixMacerator, material, result.count));
duration += material.getMass() * result.count;
}
let result = {
input: inputItem,
duration: duration,
outputsMacerator: outputsMacerator,
outputsArcFurnace: outputsArcFurnace,
}
return result;
}
/**
*
* @param {TagPrefix} tagPrefixMacerator
* @param {TagPrefix} tagPrefixArcFurnace
* @param {number} count
* @returns {tagPrefixMacerator: TagPrefix, tagPrefixArcFurnace: TagPrefix, count: number}
*/
let createMaterialsToResults = (tagPrefixMacerator, tagPrefixArcFurnace, count) =>
{
let result =
{
tagPrefixMacerator: tagPrefixMacerator,
tagPrefixArcFurnace: tagPrefixArcFurnace,
count: count
};
return result;
}
//#endregion
event.remove({mod: 'man_of_many_planes'});
event.remove({mod: 'immersive_aircraft'});
event.shaped('immersive_aircraft:hull',[
'AAA',
'BCB',
'AAA'
],{
A: '#minecraft:planks',
B: 'gtceu:wrought_iron_plate',
C: 'tfc:glue',
}).id('tfg:immersive_aircraft/shaped/hull');
event.shaped('immersive_aircraft:engine',[
'ABC',
'DED'
],{
A: '#forge:tools/hammers',
B: 'gtceu:tin_alloy_small_fluid_pipe',
C: '#forge:tools/wrenches',
D: '#tfg:metal_bars',
E: 'create:andesite_casing'
}).id('tfg:immersive_aircraft/shaped/engine');
event.shaped('immersive_aircraft:sail',[
'ABA',
'BCB',
'ABA'
],{
A: 'gtceu:wrought_iron_screw',
B: '#forge:cloth',
C: '#minecraft:trapdoors'
}).id('tfg:immersive_aircraft/shaped/sail');
event.shaped('immersive_aircraft:rotary_cannon',[
'ABA',
'ACA',
' D '
],{
A: 'create:copper_sheet',
B: 'minecraft:dispenser',
C: 'gtceu:wrought_iron_gear',
D: 'tfc:powderkeg'
}).id('tfg:immersive_aircraft/shaped/rotary_cannon');
event.shaped('immersive_aircraft:heavy_crossbow',[
'ABA',
'CDC',
' A '
],{
A: '#minecraft:logs',
B: 'gtceu:long_steel_rod',
C: '#tfg:metal_chains',
D: 'minecraft:crossbow'
}).id('tfg:immersive_aircraft/shaped/heavy_crossbow');
event.shaped('immersive_aircraft:telescope',[
'ABC',
' D ',
' E '
], {
A: 'gtceu:small_brass_gear',
B: 'minecraft:spyglass',
C: '#forge:glass/colorless',
D: 'gtceu:copper_rod',
E: 'gtceu:wrought_iron_plate'
}).id('tfg:immersive_aircraft/shaped/telescope');
event.shaped('immersive_aircraft:bomb_bay',[
'AAA',
'ABA',
'ACA'
],{
A: 'gtceu:steel_plate',
B: 'tfc:powderkeg',
C: 'minecraft:dispenser'
}).id('tfg:immersive_aircraft/shaped/bomb_bay');
//#region Airplane Upgrades
event.shaped('immersive_aircraft:industrial_gears',[
'ABA',
'CAB',
'ACA'
],{
A: 'gtceu:small_brass_gear',
B: 'gtceu:double_wrought_iron_plate',
C: 'gtceu:double_copper_plate'
}).id('tfg:immersive_aircraft/shaped/industrial_gears');
event.shaped('immersive_aircraft:sturdy_pipes',[
'EDA',
'BAC',
'AD '
],{
A: '#forge:small_fluid_pipes',
B: 'gtceu:blue_steel_plate',
C: 'gtceu:red_steel_plate',
D: 'gtceu:black_steel_screw',
E: '#forge:tools/screwdrivers',
}).id('tfg:immersive_aircraft/shaped/sturdy_pipes')
event.shaped('immersive_aircraft:gyroscope',[
'ABC',
'DED',
'FDG'
],{
A: '#forge:tools/wrenches',
B: 'minecraft:comparator',
C: 'ae2:quartz_glass',
D: 'gtceu:small_brass_gear',
E: 'firmaciv:firmaciv_compass',
F: 'gtceu:aluminium_screw',
G: '#forge:tools/screwdrivers'
}).id('tfg:immersive_aircraft/shaped/gyroscope')
event.shaped('tfg:black_steel_plated_airplane_propeller',[
'CA ',
'ABA',
' AD'
],{
A: 'gtceu:black_steel_plate',
B: '#forge:rotors',
C: '#forge:tools/hammers',
D: '#forge:tools/wrenches'
}).id('tfg:shaped/black_steel_plated_airplane_propeller');
generateRecyclingRecipe('tfg:recycling/black_steel_plated_airplane_propeller',
createRecyclingRecipeArgs('tfg:black_steel_plated_airplane_propeller', [GTMaterials.BlackSteel], [createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3)]))
event.shaped('tfg:redblu_steel_plated_airplane_propeller',[
'ABC',
'DED',
'CBF'
],{
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'
}).id('tfg:shaped/redblu_steel_plated_airplane_propeller');
generateRecyclingRecipe('tfg:recycling/redblu_steel_plated_airplane_propeller',
createRecyclingRecipeArgs('tfg:redblu_steel_plated_airplane_propeller',[
GTMaterials.RedSteel,
GTMaterials.BlueSteel,
GTMaterials.RedAlloy
],[
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1)
])
);
event.shaped('immersive_aircraft:enhanced_propeller',[
'CA ',
'ABA',
' AD'
],{
A: 'vintageimprovements:aluminum_sheet',
B: '#forge:rotors',
C: '#forge:tools/hammers',
D: '#forge:tools/wrenches'
}).id('tfg:immersive_aircraft/shaped/enhanced_propeller');
generateRecyclingRecipe('immersive_aircraft:recycling/enhanced_propeller',
createRecyclingRecipeArgs('immersive_aircraft:enhanced_propeller', [GTMaterials.Aluminium], [createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3)]))
event.shaped('tfg:stainless_steel_plated_airplane_propeller',[
'CA ',
'ABA',
' AD'
],{
A: 'gtceu:stainless_steel_plate',
B: '#forge:rotors',
C: '#forge:tools/hammers',
D: '#forge:tools/wrenches'
}).id('tfg:shaped/stainless_steel_plated_airplane_propeller');
generateRecyclingRecipe('tfg:recycling/stainless_steel_plated_airplane_propeller',
createRecyclingRecipeArgs('tfg:stainless_steel_plated_airplane_propeller', [GTMaterials.StainlessSteel], [createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3)]))
event.shaped('tfg:titanium_plated_airplane_propeller',[
'CA ',
'ABA',
' AD'
],{
A: 'gtceu:titanium_plate',
B: '#forge:rotors',
C: '#forge:tools/hammers',
D: '#forge:tools/wrenches'
}).id('tfg:shaped/titanium_plated_airplane_propeller');
generateRecyclingRecipe('tfg:recycling/titanium_plated_airplane_propeller',
createRecyclingRecipeArgs('tfg:titanium_plated_airplane_propeller', [GTMaterials.Titanium], [createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3)]))
event.shaped('immersive_aircraft:eco_engine',[
'ABC',
'BDB',
'EEE'
],{
A: '#forge:tools/hammers',
B: 'gtceu:double_rose_gold_plate',
C: '#forge:tools/screwdrivers',
D: 'immersive_aircraft:engine',
E: 'gtceu:double_sterling_silver_plate'
}).id('tfg:immersive_aircraft/shaped/eco_engine');
event.shaped('immersive_aircraft:steel_boiler',[
'ABA',
'ACA',
'DAD'
],{
A: 'gtceu:steel_plate',
B: 'gtceu:black_steel_rod',
C: 'immersive_aircraft:engine',
D: 'gtceu:tin_alloy_small_fluid_pipe'
}).id('tfg:immersive_aircraft/shaped/steel_boiler');
generateRecyclingRecipe('immersive_aircraft:recycling/steel_boiler',
createRecyclingRecipeArgs('immersive_aircraft:steel_boiler',[
GTMaterials.Steel,
GTMaterials.TinAlloy,
GTMaterials.WroughtIron,
GTMaterials.BlackSteel
],[
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1),
createMaterialsToResults(TagPrefix.dustTiny, TagPrefix.nugget, 4)
])
)
event.shaped('tfg:lv_aircraft_engine',[
'ABC',
'DED',
'FGF'
],{
A: 'gtceu:red_steel_plate',
B: 'gtceu:black_steel_plate',
C: 'gtceu:blue_steel_plate',
D: 'gtceu:lv_electric_piston',
E: 'immersive_aircraft:engine',
F: 'gtceu:red_alloy_single_cable',
G: 'gtceu:lv_electric_pump'
}).id('tfg:shaped/lv_aircraft_engine')
generateRecyclingRecipe('tfg:recycling/lv_aircraft_engine',
createRecyclingRecipeArgs('tfg:lv_aircraft_engine', [
GTMaterials.Steel,
GTMaterials.Tin,
GTMaterials.Copper,
GTMaterials.Bronze,
GTMaterials.RedSteel,
GTMaterials.BlueSteel,
GTMaterials.BlackSteel,
GTMaterials.RedAlloy,
GTMaterials.TinAlloy
],[
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 10),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 7),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 4),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 2),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1)
])
)
event.shaped('immersive_aircraft:nether_engine',[
'AAA',
'BCB',
'DED'
],{
A: 'vintageimprovements:aluminum_sheet',
B: 'gtceu:mv_electric_piston',
C: 'immersive_aircraft:engine',
D: 'gtceu:aluminium_single_cable',
E: 'gtceu:mv_electric_pump'
}).id('tfg:immersive_aircraft/shaped/nether_engine')
generateRecyclingRecipe('immersive_aircraft:recycling/nether_engine',
createRecyclingRecipeArgs('immersive_aircraft:nether_engine',[
GTMaterials.Aluminium,
GTMaterials.Cupronickel,
GTMaterials.AnnealedCopper,
GTMaterials.Steel,
GTMaterials.Bronze,
GTMaterials.TinAlloy,
GTMaterials.WroughtIron
],[
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 12),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 9),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1)
])
)
event.shaped('tfg:hv_aircraft_engine',[
'AAA',
'BCB',
'DED'
],{
A: 'gtceu:stainless_steel_plate',
B: 'gtceu:hv_electric_piston',
C: 'immersive_aircraft:engine',
D: 'gtceu:aluminium_double_cable',
E: 'gtceu:hv_electric_pump',
}).id('tfg:shaped/hv_aircraft_engine')
generateRecyclingRecipe('tfg:recycling/hv_aircraft_engine',
createRecyclingRecipeArgs('tfg:hv_aircraft_engine',[
GTMaterials.StainlessSteel,
GTMaterials.Electrum,
GTMaterials.Silver,
GTMaterials.Steel,
GTMaterials.Gold,
GTMaterials.Aluminium,
GTMaterials.TinAlloy,
GTMaterials.WroughtIron
], [
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 14),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 9),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 4),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1),
])
)
event.shaped('tfg:ev_aircraft_engine',[
'AAA',
'BCB',
'DED'
],{
A: 'gtceu:titanium_plate',
B: 'gtceu:ev_electric_piston',
C: 'immersive_aircraft:engine',
D: 'gtceu:aluminium_quadruple_cable',
E: 'gtceu:ev_electric_pump',
}).id('tfg:shaped/ev_aircraft_engine')
generateRecyclingRecipe('tfg:recycling/ev_aircraft_engine',
createRecyclingRecipeArgs('tfg:ev_aircraft_engine',[
GTMaterials.Titanium,
GTMaterials.Aluminium,
GTMaterials.Kanthal,
GTMaterials.StainlessSteel,
GTMaterials.Neodymium,
GTMaterials.TinAlloy,
GTMaterials.WroughtIron
],[
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 14),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 9),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 9),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 2),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1),
])
);
event.shaped('immersive_aircraft:hull_reinforcement',[
'AB ',
'BCB',
' BD'
],{
A: '#forge:tools/hammers',
B: 'gtceu:black_steel_plate',
C: 'immersive_aircraft:hull',
D: '#forge:tools/wrench'
}).id('tfg:immersive_aircraft/shaped/hull_reinforcement');
generateRecyclingRecipe('immersive_aircraft:recycling/hull_reinforcement',
createRecyclingRecipeArgs('immersive_aircraft:hull_reinforcement',[
GTMaterials.BlackSteel,
GTMaterials.WroughtIron
], [
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1)
])
)
event.shaped('tfg:redblu_steel_hull_reinforcement',[
'ABF',
'ECE',
'FBD'
],{
A: '#forge:tools/hammers',
B: 'gtceu:red_steel_plate',
C: 'immersive_aircraft:hull',
D: '#forge:tools/wrench',
E: 'gtceu:blue_steel_plate',
F: 'gtceu:red_alloy_dust'
}).id('tfg:shaped/redblu_steel_hull_reinforcement');
generateRecyclingRecipe('tfg:recycling/redblu_steel_hull_reinforcement',
createRecyclingRecipeArgs('tfg:redblu_steel_hull_reinforcement',[
GTMaterials.BlueSteel,
GTMaterials.RedSteel,
GTMaterials.RedAlloy,
GTMaterials.WroughtIron
],[
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1),
])
);
event.shaped('tfg:aluminium_hull_reinforcement',[
'AB ',
'BCB',
' BD'
],{
A: '#forge:tools/hammers',
B: 'vintageimprovements:aluminum_sheet',
C: 'immersive_aircraft:hull',
D: '#forge:tools/wrench'
}).id('tfg:shaped/aluminium_hull_reinforcement');
generateRecyclingRecipe('tfg:recycling/aluminium_hull_reinforcement',
createRecyclingRecipeArgs('tfg:aluminium_hull_reinforcement',[
GTMaterials.Aluminium,
GTMaterials.WroughtIron
], [
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1)
])
)
event.shaped('tfg:stainless_steel_hull_reinforcement',[
'AB ',
'BCB',
' BD'
],{
A: '#forge:tools/hammers',
B: 'gtceu:stainless_steel_plate',
C: 'immersive_aircraft:hull',
D: '#forge:tools/wrench'
}).id('tfg:shaped/stainless_steel_hull_reinforcement');
generateRecyclingRecipe('tfg:recycling/stainless_steel_hull_reinforcement',
createRecyclingRecipeArgs('tfg:stainless_steel_hull_reinforcement',[
GTMaterials.StainlessSteel,
GTMaterials.WroughtIron
], [
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1)
])
)
event.shaped('tfg:titanium_hull_reinforcement',[
'AB ',
'BCB',
' BD'
],{
A: '#forge:tools/hammers',
B: 'gtceu:titanium_plate',
C: 'immersive_aircraft:hull',
D: '#forge:tools/wrench'
}).id('tfg:shaped/titanium_hull_reinforcement');
generateRecyclingRecipe('tfg:recycling/titanium_hull_reinforcement',
createRecyclingRecipeArgs('tfg:titanium_hull_reinforcement',[
GTMaterials.Titanium,
GTMaterials.WroughtIron
], [
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 1)
])
)
event.shaped('immersive_aircraft:improved_landing_gear',[
'ABC',
'DEB',
'DDF'
],{
A: '#forge:tools/wrenches',
B: 'gtceu:black_steel_plate',
C: 'gtceu:black_steel_rod',
D: 'gtceu:rubber_plate',
E: 'gtceu:small_brass_gear',
F: '#forge:tools/screwdrivers'
}).id('tfg:immersive_aircraft/shaped/improved_landing_gear');
generateRecyclingRecipe('immersive_aircraft:recycling/improved_landing_gear',
createRecyclingRecipeArgs('immersive_aircraft:improved_landing_gear',[
GTMaterials.BlackSteel,
GTMaterials.Brass
],[
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 2),
createMaterialsToResults(TagPrefix.dustTiny, TagPrefix.nugget, 7),
])
);
event.shaped('tfg:redblu_steel_landing_gear',[
'ABC',
'DEB',
'DDF'
],{
A: '#forge:tools/wrenches',
B: 'gtceu:red_steel_plate',
C: 'gtceu:blue_steel_rod',
D: 'gtceu:rubber_plate',
E: 'gtceu:small_brass_gear',
F: '#forge:tools/screwdrivers'
}).id('tfg:shaped/redblu_steel_landing_gear')
generateRecyclingRecipe('tfg:recycling/redblu_steel_landing_gear',
createRecyclingRecipeArgs('tfg:redblu_steel_landing_gear',[
GTMaterials.RedSteel,
GTMaterials.BlueSteel,
GTMaterials.Brass,
],[
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 2),
createMaterialsToResults(TagPrefix.dustTiny, TagPrefix.nugget, 3),
createMaterialsToResults(TagPrefix.dustTiny, TagPrefix.nugget, 7),
])
);
event.shaped('tfg:aluminium_landing_gear',[
'ABC',
'DEB',
'DDF'
],{
A: '#forge:tools/wrenches',
B: 'vintageimprovements:aluminum_sheet',
C: 'gtceu:aluminium_rod',
D: 'gtceu:rubber_plate',
E: 'gtceu:cobalt_brass_gear',
F: '#forge:tools/screwdrivers'
}).id('tfg:shaped/aluminium_landing_gear')
generateRecyclingRecipe('tfg:recycling/aluminium_landing_gear',
createRecyclingRecipeArgs('tfg:aluminium_landing_gear',[
GTMaterials.Aluminium,
GTMaterials.CobaltBrass
],[
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 2),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3),
])
);
event.shaped('tfg:stainless_steel_landing_gear',[
'ABC',
'DEB',
'DDF'
],{
A: '#forge:tools/wrenches',
B: 'gtceu:stainless_steel_plate',
C: 'gtceu:stainless_steel_rod',
D: 'gtceu:rubber_plate',
E: 'gtceu:cobalt_brass_gear',
F: '#forge:tools/screwdrivers'
}).id('tfg:shaped/stainless_steel_landing_gear');
generateRecyclingRecipe('tfg:recycling/stainless_steel_landing_gear',
createRecyclingRecipeArgs('tfg:stainless_steel_landing_gear',[
GTMaterials.StainlessSteel,
GTMaterials.CobaltBrass
],[
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 2),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3),
])
);
event.shaped('tfg:titanium_landing_gear',[
'ABC',
'DEB',
'DDF'
],{
A: '#forge:tools/wrenches',
B: 'gtceu:titanium_plate',
C: 'gtceu:titanium_rod',
D: 'gtceu:rubber_plate',
E: 'gtceu:cobalt_brass_gear',
F: '#forge:tools/screwdrivers'
}).id('tfg:shaped/titanium_landing_gear');
generateRecyclingRecipe('tfg:recycling/titanium_landing_gear',
createRecyclingRecipeArgs('tfg:titanium_landing_gear',[
GTMaterials.Titanium,
GTMaterials.CobaltBrass
],[
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 2),
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3),
])
);
//#region Aircrafts
event.shaped('immersive_aircraft:quadrocopter',[
'ABA',
'CDC',
'AEA'
],{
A: '#forge:rotors',
B: '#create:seats',
C: 'gtceu:long_wood_rod',
D: 'tfg:scaffolding_frame',
E: 'immersive_aircraft:engine'
}).id('tfg:immersive_aircraft/shaped/quadrocopter');
event.shaped('immersive_aircraft:airship',[
'ABA',
'CDE',
'FGA'
], {
A: 'immersive_aircraft:sail',
B: 'tfg:airship_balloon',
C: 'immersive_aircraft:engine',
D: '#create:seats',
E: 'firmaciv:rope_coil',
F: '#forge:rotors',
G: 'tfg:airship_hull'
}).id('tfg:immersive_aircraft/shaped/airship')
event.shaped('immersive_aircraft:cargo_airship',[
'ABA',
'CDC',
'EFE'
], {
A: '#forge:rotors',
B: '#forge:tools/hammers',
C: 'immersive_aircraft:engine',
D: 'immersive_aircraft:airship',
E: 'gtceu:wood_crate',
F: '#forge:tools/screwdrivers'
}).id('tfg:immersive_aircraft/shaped/cargo_airship')
//WAAGH!
event.recipes.create.mechanical_crafting('immersive_aircraft:warship',[
'ABCC ',
' DDD ',
' EEEF',
' EGEH',
' EEEF',
' DDD '
],{
A: 'immersive_aircraft:enhanced_propeller',
B: 'immersive_aircraft:steel_boiler',
C: 'tfg:airship_balloon',
D: 'gtceu:wrought_iron_plate',
E: 'immersive_aircraft:hull',
F: 'gtceu:wrought_iron_rod',
G: 'immersive_aircraft:cargo_airship',
H: '#create:seats'
}).id('tfg:immersive_aircraft/mechanical_crafter/warship')
event.recipes.create.mechanical_crafting('immersive_aircraft:gyrodyne',[
' A ',
' B ',
'CCDDDCC',
'BBDEDBB',
' FDDDF ',
' B ',
' G ',
],{
A: 'immersive_aircraft:enhanced_propeller',
B: 'gtceu:long_wood_rod',
C: 'immersive_aircraft:sail',
D: 'immersive_aircraft:hull',
E: '#create:seats',
F: 'create:hand_crank',
G: 'gtceu:wrought_iron_double_ingot'
}).id('tfg:immersive_aircraft/mechanical_crafter/gyrodyne')
event.recipes.create.mechanical_crafting('man_of_many_planes:economy_plane',[
' AABCBAA ',
'ADDBEBDDA',
' FGBHBGF ',
' D ',
' D ',
' DAD ',
' DDD ',
' AAA '
], {
A: 'immersive_aircraft:sail',
B: 'gtceu:blue_steel_plate',
C: '#tfg:metal_bars',
D: 'gtceu:long_treated_wood_rod',
E: '#create:seats',
F: 'gtceu:black_steel_rotor',
G: 'greate:rubber_belt_connector',
H: 'create:steam_engine'
}).id('tfg:man_of_many_planes/mechanical_crafter/economy_plane');
event.recipes.create.mechanical_crafting('immersive_aircraft:biplane',[
' A ',
'BBBCBBB',
' BDB ',
' BBB ',
' B ',
' E ',
' BEB ',
' B '
],{
A: 'immersive_aircraft:enhanced_propeller',
B: 'immersive_aircraft:hull',
C: 'immersive_aircraft:steel_boiler',
D: 'man_of_many_planes:economy_plane',
E: '#minecraft:logs'
}).id('tfg:immersive_aircraft/mechanical_crafter/biplane')
event.recipes.create.mechanical_crafting('man_of_many_planes:scarlet_biplane',[
' A ',
' B ',
'CCCDEDCCC',
' F DDD F ',
' CCDGDCC ',
' H ',
' CHC ',
' C '
],{
A: 'immersive_aircraft:enhanced_propeller',
B: 'immersive_aircraft:nether_engine',
C: 'immersive_aircraft:hull',
D: 'gtceu:red_steel_plate',
E: 'immersive_aircraft:biplane',
F: 'gtceu:black_steel_rod',
G: '#create:seats',
H: 'tfc:metal/ingot/red_steel'
}).id('tfg:man_of_many_planes/mechanical_crafter/scarlet_biplane')
//#endregion
}

View file

@ -0,0 +1,9 @@
/**
*
* @param {TagEvent.Item} evt
*/
const registerImmersiveAircraftItemTags = (evt) =>
{
evt.add('c:hidden_from_recipe_viewers', 'immersive_aircraft:propeller');
evt.add('c:hidden_from_recipe_viewers', 'immersive_aircraft:boiler')
}

View file

@ -0,0 +1,9 @@
// priority: 0
function registerLootrLoots(event) {
event.addBlockLootModifier('lootr:lootr_chest')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('#tfg:default_chests')
}

View file

@ -4,29 +4,43 @@
* Событие регистрации предмет-тэгов.
*/
ServerEvents.tags('item', event => {
registerAdvancedPeripheralsItemTags(event)
registerAE2ItemTags(event)
registerAFCItemTags(event)
registerAlekiroofsItemTags(event)
registerAlekishipsItemTags(event)
registerAsticorCartsItemTags(event)
registerBeneathItemTags(event)
registerChalkItemTags(event);
registerChiselAndBitsItemTags(event)
registerComputerCraftItemTags(event)
registerCreateItemTags(event)
registerCreateAdditionsItemTags(event)
registerCreateConnectedItemTags(event)
registerCreatedecoItemTags(event)
registerDiggerHelmetItemTags(event)
registerEndermanOverhaulItemTags(event)
registerEveryCompatItemTags(event)
registerExposureItemTags(event)
registerExtendedAE2ItemTags(event)
registerFirmaCivItemTags(event)
registerFirmaLifeItemTags(event)
registerFramedBlocksItemTags(event)
registerFTBQuestsItemTags(event)
registerGreateItemTags(event)
registerGTCEUItemTags(event)
registerMegaCellsItemTags(event)
registerMinecraftItemTags(event)
registerMoreRedItemTags(event)
registerHotOrNotItemTags(event)
registerRailWaysItemTags(event)
registerRnrItemTags(event)
registerSophisticatedBackpacksItemTags(event)
registerTFCAmbientalItemTags(event)
registerTFCItemTags(event)
registerTFCTextileItemTags(event)
registerTFGItemTags(event)
registerVintageImprovementsItemTags(event)
})
/**
@ -34,16 +48,21 @@ ServerEvents.tags('item', event => {
*/
ServerEvents.tags('block', event => {
registerAE2BlockTags(event)
registerAFCBlockTags(event)
registerAsticorCartsBlockTags(event)
registerBeneathBlockTags(event)
registerChiselAndBitsBlockTags(event)
registerComputerCraftBlockTags(event)
registerCreateBlockTags(event)
registerCreateAdditionsBlockTags(event)
registerDomumOrnamentumBlockTags(event)
registerEndermanOverhaulBlockTags(event)
registerExtendedAE2BlockTags(event)
registerFirmaCivBlockTags(event)
registerFirmaLifeBlockTags(event)
registerFramedBlocksBlockTags(event)
registerFTBQuestsBlockTags(event)
registerGreateBlockTags(event)
registerGTCEUBlockTags(event)
registerMegaCellsBlockTags(event)
registerMinecraftBlockTags(event)
@ -52,16 +71,23 @@ ServerEvents.tags('block', event => {
registerRailWaysBlockTags(event)
registerSophisticatedBackpacksBlockTags(event)
registerTFCBlockTags(event)
registerTFGBlockTags(event)
registerVintageImprovementsBlockTags(event)
})
/**
* Событие регистрации жидкость-тэгов.
*/
ServerEvents.tags('fluid', event => {
registerAFCFluidTags(event)
registerCreateFluidTags(event)
registerCreateAdditionsFluidTags(event)
registerFirmaLifeBlockTags(event)
registerGTCEUFluidTags(event)
registerGreateFluidTags(event)
registerFirmaLifeFluidTags(event)
registerTFCFluidTags(event)
registerTFGFluidTags(event)
registerVintageImprovementsFluidTags(event)
})
/**
@ -70,6 +96,11 @@ ServerEvents.tags('fluid', event => {
ServerEvents.tags('worldgen/placed_feature', event => {
registerFirmaLifePlacedFeatures(event)
registerTFCPlacedFeatures(event)
registerTFGPlacedFeatures(event)
})
ServerEvents.tags('worldgen/biome', event => {
registerTFGBiomeTags(event)
})
/**
@ -85,9 +116,12 @@ ServerEvents.highPriorityData(event => {
* Срабатывает до инициализации рецептов, но после тегов.
*/
TFCEvents.data(event => {
registerTFCDataForArborFirmaCraft(event)
registerTFCDataForChalk(event);
registerTFCDataForGTCEU(event)
registerTFCDataForImmersiveAircraft(event);
registerTFCDataForTFC(event)
registerTFCDataForTreeTap(event)
registerTFCDataForTFCBetterBF(event)
registerTFCDataForWaterFlasks(event)
})
@ -97,6 +131,7 @@ TFCEvents.data(event => {
*/
LootJS.modifiers((event) => {
registerGTCEULoots(event)
registerLootrLoots(event)
});
/**
@ -104,7 +139,7 @@ LootJS.modifiers((event) => {
* Не представляю когда срабатывает, но явно после тегов и датапаков.
*/
GTCEuServerEvents.oreVeins(event => {
// event.removeAll()
event.removeAll()
})
/**
@ -112,16 +147,32 @@ GTCEuServerEvents.oreVeins(event => {
* Срабатывает после инициализации датапаков и тегов.
*/
ServerEvents.recipes(event => {
registerAdvancedPeripheralsRecipes(event)
registerAdvancedPeripheralsRecyclingRecipes(event)
registerAlekishipsRecipes(event)
registerAE2Recipes(event)
registerAFCRecipes(event)
registerAsticorCartsRecipes(event)
registerAE2InsertExportCardRecipes(event)
registerAE2NetworkAnalyzerRecipes(event)
registerAE2WTLibRecipes(event)
registerBeneathRecipes(event)
registerBuildingGadgetsRecipes(event)
registerChalkRecipes(event);
registerChiselAndBitsRecipes(event)
registerComfortsRecipes(event);
registerComputerCraftRecipes(event)
registerComputerCraftRecyclingRecipes(event)
registerCccBridgeRecipes(event)
registerCccBridgeRecyclingRecipes(event)
registerConstructionwandRecipes(event)
registerCreateRecipes(event)
registerCreateAdditionsRecipes(event)
registerCreateConnectedRecipes(event)
registerCreatedecoRecipes(event)
registerCreateHorsePowerBlockRecipes(event)
registerDiggerHelmetRecipes(event)
registerDomumOrnamentumRecipes(event)
registerEveryCompatRecipes(event)
registerExtendedAE2Recipes(event)
registerExposureRecipes(event)
@ -130,20 +181,28 @@ ServerEvents.recipes(event => {
registerFirmaLifeRecipes(event)
registerFramedBlocksRecipes(event)
registerFTBQuestsRecipes(event)
registerGrapplingHookRecipes(event);
registerGreateRecipes(event)
registerGTCEURecipes(event)
registerHandGliderRecipes(event)
registerHotOrNotRecipes(event)
registerImmersiveAircraftRecipes(event)
registerMeasurementsRecipes(event)
registerMegaCellsRecipes(event)
registerMERequesterRecipes(event)
registerMinecraftRecipes(event)
registerMoreRedRecipes(event)
registerRailWaysRecipes(event)
registerRnrRecipes(event)
registerSophisticatedBackpacksRecipes(event)
registerSimplylightRecipes(event)
registerTfceaRecipes(event)
registerTFCRecipes(event)
registerTFCBetterBFRecipes(event)
registerTFGRecipes(event)
registerTFCGroomingStationRecipes(event)
registerToolBeltRecipes(event)
registerTreeTapRecipes(event)
registerVintageImprovementsRecipes(event)
registerWaterFlasksRecipes(event)
})
})

View file

@ -0,0 +1,30 @@
const registerMeasurementsRecipes = (event) => {
event.remove({ mod: 'measurements' })
event.shaped('1x measurements:tape_measure', [
'ABD',
'BED',
'CBB'
], {
A: '#forge:plates/rubber',
B: '#forge:foils/steel',
C: '#forge:ingots/rubber',
D: '#forge:plates/brass',
E: '#forge:springs/steel'
}).id('measurements:shapeless/tape_measure')
event.recipes.gtceu.arc_furnace('measurements:arc_furnace/recycling/tape_measure')
.itemInputs('1x measurements:tape_measure')
.itemOutputs('1x gtceu:steel_ingot', '1x create:brass_ingot', '1x gtceu:rubber_ingot')
.duration(224)
.EUt(30)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
event.recipes.gtceu.macerator('measurements:macerator/recycling/tape_measure')
.itemInputs('1x measurements:tape_measure')
.itemOutputs('1x gtceu:steel_dust', '1x gtceu:brass_dust', '1x gtceu:rubber_dust')
.duration(224)
.EUt(7)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
}

View file

@ -26,7 +26,7 @@ const registerMegaCellsRecipes = (event) => {
// Inscrdiber Silicon Press
event.recipes.gtceu.laser_engraver('ae2:accumulation_processor_press_iron')
.itemInputs('#forge:plates/iron', 'ae2:singularity')
.itemInputs('#forge:plates/cast_iron', 'ae2:singularity')
.notConsumable('#forge:lenses/black')
.itemOutputs('megacells:accumulation_processor_press')
.duration(6000)

View file

@ -0,0 +1,240 @@
// priority: 0
function registerMinecraftDyeRecipes(event) {
global.MINECRAFT_DYE_NAMES.forEach(dye => {
event.remove({ id: `minecraft:dye_${dye}_wool` })
event.remove({ id: `minecraft:${dye}_candle` })
event.remove({ id: `minecraft:dye_${dye}_carpet` })
event.remove({ id: `minecraft:${dye}_bed` })
event.remove({ id: `minecraft:dye_${dye}_bed` })
//#region Выход: Ковры, Кровати
event.shapeless(`2x minecraft:${dye}_carpet`, [
'#tfc:saws',
`minecraft:${dye}_wool`
]).id(`minecraft:${dye}_carpet`)
if (dye != 'white') {
event.recipes.gtceu.chemical_bath(`tfg:${dye}_carpet`)
.itemInputs(`minecraft:white_carpet`)
.inputFluids(Fluid.of(`tfc:${dye}_dye`, 72))
.itemOutputs(`minecraft:${dye}_carpet`)
.duration(300)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
event.recipes.gtceu.chemical_bath(`${dye}_bed`)
.itemInputs(`minecraft:white_bed`)
.inputFluids(Fluid.of(`tfc:${dye}_dye`, 216))
.itemOutputs(`minecraft:${dye}_bed`)
.duration(300)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
}
//#endregion
})
// White
event.remove({ id: 'minecraft:white_dye_from_lily_of_the_valley' })
event.remove({ id: 'gtceu:extractor/lily_of_the_valley_dye' })
event.recipes.gtceu.extractor('white_dye')
.itemInputs('1x #tfc:makes_white_dye')
.itemOutputs('2x minecraft:white_dye')
.duration(200)
.EUt(2)
event.recipes.createMilling('2x minecraft:white_dye', '1x #tfc:makes_white_dye')
.id('tfg:milling/white_dye')
// Red
event.remove({ id: 'minecraft:red_dye_from_tulip' })
event.remove({ id: 'minecraft:red_dye_from_rose_bush' })
event.remove({ id: 'minecraft:red_dye_from_poppy' })
event.remove({ id: 'minecraft:red_dye_from_beetroot' })
event.remove({ id: 'gtceu:extractor/rose_bush_dye' })
event.remove({ id: 'gtceu:extractor/red_tulip_dye' })
event.remove({ id: 'gtceu:extractor/poppy_dye' })
event.remove({ id: 'gtceu:extractor/beetroot_dye' })
event.recipes.gtceu.extractor('red_dye')
.itemInputs('1x #tfc:makes_red_dye')
.itemOutputs('2x minecraft:red_dye')
.duration(200)
.EUt(2)
event.recipes.createMilling('2x minecraft:red_dye', '1x #tfc:makes_red_dye')
.id('tfg:milling/red_dye')
// Lime
event.remove({ id: 'minecraft:lime_dye_from_smelting' })
event.recipes.gtceu.extractor('lime_dye')
.itemInputs('1x tfc:plant/moss')
.itemOutputs('2x minecraft:lime_dye')
.duration(200)
.EUt(2)
event.recipes.createMilling('2x minecraft:lime_dye', '1x #tfc:makes_lime_dye')
.id('tfg:milling/lime_dye')
// Light Blue
event.remove({ id: 'minecraft:light_blue_dye_from_blue_orchid' })
event.remove({ id: 'gtceu:extractor/blue_orchid_dye' })
event.recipes.gtceu.extractor('light_blue_dye')
.itemInputs('1x #tfc:makes_light_blue_dye')
.itemOutputs('2x minecraft:light_blue_dye')
.duration(200)
.EUt(2)
event.recipes.createMilling('2x minecraft:light_blue_dye', '1x #tfc:makes_light_blue_dye')
.id('tfg:milling/light_blue_dye')
// Green
event.remove({ id: 'minecraft:green_dye' })
event.recipes.gtceu.extractor('green_dye')
.itemInputs('1x #tfc:makes_green_dye')
.itemOutputs('2x minecraft:green_dye')
.duration(200)
.EUt(2)
event.recipes.createMilling('2x minecraft:green_dye', '1x #tfc:makes_green_dye')
.id('tfg:milling/green_dye')
// Magenta
event.remove({ id: 'minecraft:magenta_dye_from_lilac' })
event.remove({ id: 'minecraft:magenta_dye_from_allium' })
event.remove({ id: 'gtceu:extractor/lilac_dye' })
event.remove({ id: 'gtceu:extractor/allium_dye' })
event.recipes.gtceu.extractor('magenta_dye')
.itemInputs('1x #tfc:makes_magenta_dye')
.itemOutputs('2x minecraft:magenta_dye')
.duration(200)
.EUt(2)
event.recipes.createMilling('2x minecraft:magenta_dye', '1x #tfc:makes_magenta_dye')
.id('tfg:milling/magenta_dye')
// Orange
event.remove({ id: 'minecraft:orange_dye_from_torchflower' })
event.remove({ id: 'minecraft:orange_dye_from_orange_tulip' })
event.remove({ id: 'gtceu:extractor/orange_tulip_dye' })
event.recipes.gtceu.extractor('orange_dye')
.itemInputs('1x #tfc:makes_orange_dye')
.itemOutputs('2x minecraft:orange_dye')
.duration(200)
.EUt(2)
event.recipes.createMilling('2x minecraft:orange_dye', '1x #tfc:makes_orange_dye')
.id('tfg:milling/orange_dye')
// Purple
event.recipes.gtceu.extractor('purple_dye')
.itemInputs('1x #tfc:makes_purple_dye')
.itemOutputs('2x minecraft:purple_dye')
.duration(200)
.EUt(2)
event.recipes.createMilling('2x minecraft:purple_dye', '1x #tfc:makes_purple_dye')
.id('tfg:milling/purple_dye')
// Brown
event.remove({ id: 'minecraft:brown_dye' })
event.recipes.gtceu.extractor('brown_dye')
.itemInputs('1x #tfc:makes_brown_dye')
.itemOutputs('2x minecraft:brown_dye')
.duration(200)
.EUt(2)
event.recipes.createMilling('2x minecraft:brown_dye', '1x #tfc:makes_brown_dye')
.id('tfg:milling/brown_dye')
// Light Gray
event.remove({ id: 'minecraft:light_gray_dye_from_white_tulip' })
event.remove({ id: 'minecraft:light_gray_dye_from_azure_bluet' })
event.remove({ id: 'minecraft:light_gray_dye_from_oxeye_daisy' })
event.remove({ id: 'gtceu:extractor/white_tulip_dye' })
event.remove({ id: 'gtceu:extractor/azure_bluet_dye' })
event.remove({ id: 'gtceu:extractor/oxeye_daisy_dye' })
event.recipes.gtceu.extractor('light_gray_dye')
.itemInputs('1x tfc:plant/yucca')
.itemOutputs('2x minecraft:light_gray_dye')
.duration(200)
.EUt(2)
event.recipes.createMilling('2x minecraft:light_gray_dye', '1x #tfc:makes_light_gray_dye')
.id('tfg:milling/light_gray_dye')
// Yellow
event.remove({ id: 'minecraft:yellow_dye_from_sunflower' })
event.remove({ id: 'minecraft:yellow_dye_from_dandelion' })
event.remove({ id: 'gtceu:extractor/sunflower_dye' })
event.remove({ id: 'gtceu:extractor/dandelion_dye' })
event.recipes.gtceu.extractor('yellow_dye')
.itemInputs('1x #tfc:makes_yellow_dye')
.itemOutputs('2x minecraft:yellow_dye')
.duration(200)
.EUt(2)
event.recipes.createMilling('2x minecraft:yellow_dye', '1x #tfc:makes_yellow_dye')
.id('tfg:milling/yellow_dye')
// Blue
event.remove({ id: 'minecraft:blue_dye_from_cornflower' })
event.remove({ id: 'gtceu:extractor/cornflower_dye' })
event.recipes.gtceu.extractor('blue_dye')
.itemInputs('1x #tfc:makes_blue_dye')
.itemOutputs('2x minecraft:blue_dye')
.duration(200)
.EUt(2)
event.recipes.createMilling('2x minecraft:blue_dye', '1x #tfc:makes_blue_dye')
.id('tfg:milling/blue_dye')
// Pink
event.remove({ id: 'minecraft:pink_dye_from_pink_petals' })
event.remove({ id: 'minecraft:pink_dye_from_pink_tulip' })
event.remove({ id: 'minecraft:pink_dye_from_peony' })
event.remove({ id: 'gtceu:extractor/pink_tulip_dye' })
event.remove({ id: 'gtceu:extractor/peony_dye' })
event.recipes.gtceu.extractor('pink_dye')
.itemInputs('1x #tfc:makes_pink_dye')
.itemOutputs('2x minecraft:pink_dye')
.duration(200)
.EUt(2)
event.recipes.createMilling('2x minecraft:pink_dye', '1x #tfc:makes_pink_dye')
.id('tfg:milling/pink_dye')
// Cyan
event.remove({ id: 'minecraft:cyan_dye_from_pitcher_plant' })
// Black
event.remove({ id: 'minecraft:black_dye_from_wither_rose' })
event.remove({ id: 'gtceu:extractor/wither_rose_dye' })
//#region Выход: Кровати
event.recipes.gtceu.chemical_bath(`bed_decolor`)
.itemInputs('#tfc:colored_bed')
.inputFluids(Fluid.of(`gtceu:chlorine`, 72))
.itemOutputs(`minecraft:white_bed`)
.duration(300)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
//#endregion
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,9 @@
// priority: 0
/**
*
* @param {TagEvent.Item} event
*/
const registerMinecraftItemTags = (event) => {
global.MINECRAFT_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
@ -10,12 +14,50 @@ const registerMinecraftItemTags = (event) => {
event.add('c:hidden_from_recipe_viewers', item)
})
// Hide potions
event.add('c:hidden_from_recipe_viewers', /minecraft.*potion.*/)
// Теперь обсидиан сторадж блок
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.remove('minecraft:creeper_drop_music_discs', ['minecraft:music_disc_11'])
event.add('tfc:foods', 'minecraft:red_mushroom')
event.add('tfc:foods', 'minecraft:brown_mushroom')
event.add('tfc:foods', 'minecraft:glow_berries')
event.add('tfc:foods', 'minecraft:chorus_fruit')
event.add('tfc:foods/vegetables', 'minecraft:red_mushroom')
event.add('tfc:foods/vegetables', 'minecraft:brown_mushroom')
event.add('tfc:foods/fruits', 'minecraft:glow_berries')
event.add('tfc:foods/fruits', 'minecraft:chorus_fruit')
event.add('beneath:usable_in_juicer', 'minecraft:glow_berries')
event.add('beneath:usable_in_juicer', 'minecraft:chorus_fruit')
event.add('beneath:usable_in_juicer', 'minecraft:red_mushroom')
event.add('beneath:usable_in_juicer', 'minecraft:brown_mushroom')
event.add('tfc:foods/usable_in_soup', 'minecraft:red_mushroom')
event.add('tfc:foods/usable_in_soup', 'minecraft:brown_mushroom')
event.add('tfc:foods/usable_in_soup', 'minecraft:glow_berries')
event.add('tfc:foods/usable_in_soup', 'minecraft:chorus_fruit')
event.add('tfc:foods/usable_in_salad', 'minecraft:red_mushroom')
event.add('tfc:foods/usable_in_salad', 'minecraft:brown_mushroom')
event.add('tfc:foods/usable_in_salad', 'minecraft:glow_berries')
event.add('tfc:foods/usable_in_salad', 'minecraft:chorus_fruit')
event.add('tfc:rock/raw', 'minecraft:deepslate')
event.add('tfc:rock/raw', 'minecraft:blackstone')
event.add('tfc:rock/raw', 'minecraft:dripstone_block')
event.add('forge:cloth', 'minecraft:phantom_membrane')
event.add('tfc:sewing_dark_cloth', 'minecraft:phantom_membrane')
event.remove('forge:gems', 'minecraft:charcoal')
}
const registerMinecraftBlockTags = (event) => {
@ -25,4 +67,63 @@ const registerMinecraftBlockTags = (event) => {
// Теперь обсидиан сторадж блок
event.add('forge:storage_blocks/obsidian', 'minecraft:obsidian')
//#region Nether blocks
event.add('tfg:lush_ground_replaceable', 'minecraft:deepslate')
event.add('tfg:lush_ground_replaceable', 'minecraft:blackstone')
event.add('tfc:rock/raw', 'minecraft:deepslate')
event.add('tfc:rock/raw', 'minecraft:blackstone')
event.add('tfc:rock/raw', 'minecraft:dripstone_block')
event.add('forge:cobblestone/normal', 'minecraft:cobbled_deepslate')
event.add('minecraft:lush_ground_replaceable', 'minecraft:blackstone')
event.add('beneath:nether_bush_plantable_on', 'minecraft:blackstone')
event.add('beneath:nether_bush_plantable_on', 'minecraft:deepslate')
event.add('beneath:nether_bush_plantable_on', 'minecraft:moss_block')
event.add('beneath:nether_bush_plantable_on', 'minecraft:dripstone_block')
event.add('minecraft:nether_carver_replaceables', 'minecraft:blackstone')
event.add('minecraft:nether_carver_replaceables', 'minecraft:deepslate')
event.add('minecraft:nether_carver_replaceables', 'minecraft:dripstone_block')
event.add('minecraft:frogs_spawnable_on', 'minecraft:deepslate')
event.add('minecraft:frogs_spawnable_on', 'minecraft:blackstone')
event.add('minecraft:frogs_spawnable_on', 'minecraft:dripstone_block')
event.add('minecraft:axolotls_spawnable_on', 'minecraft:deepslate')
event.add('minecraft:axolotls_spawnable_on', 'minecraft:dripstone_block')
event.add('tfc:grass_plantable_on', 'minecraft:moss_block')
event.add('tfc:creeping_plantable_on', 'minecraft:moss_block')
event.add('tfc:creeping_plantable_on', 'minecraft:deepslate')
event.add('tfc:creeping_plantable_on', 'minecraft:blackstone')
event.add('tfc:creeping_stone_plantable_on', 'minecraft:moss_block')
event.add('tfc:creeping_stone_plantable_on', 'minecraft:deepslate')
event.add('tfc:creeping_stone_plantable_on', 'minecraft:blackstone')
event.add('minecraft:base_stone_nether', 'minecraft:deepslate')
event.add('minecraft:base_stone_nether', 'minecraft:blackstone')
event.add('minecraft:base_stone_nether', 'minecraft:dripstone_block')
event.add('forge:stone', 'minecraft:blackstone')
event.add('tfc:can_landslide', 'minecraft:cobbled_deepslate')
event.add('tfc:breaks_when_isolated', 'minecraft:deepslate')
event.add('tfc:breaks_when_isolated', 'minecraft:blackstone')
event.add('tfc:breaks_when_isolated', 'minecraft:gilded_blackstone')
event.add('tfc:breaks_when_isolated', 'minecraft:dripstone_block')
event.add('tfg:rock_stairs', 'minecraft:cobbled_deepslate_stairs')
event.add('tfg:rock_slabs', 'minecraft:cobbled_deepslate_slab')
event.add('tfg:rock_walls', 'minecraft:cobbled_deepslate_wall')
event.add('tfg:brick_stairs', 'minecraft:deepslate_brick_stairs')
event.add('tfg:brick_slabs', 'minecraft:deepslate_brick_slab')
event.add('tfg:brick_walls', 'minecraft:deepslate_brick_wall')
event.add('tfg:brick_stairs', 'minecraft:deepslate_tile_stairs')
event.add('tfg:brick_slabs', 'minecraft:deepslate_tile_slab')
event.add('tfg:brick_walls', 'minecraft:deepslate_tile_wall')
event.add('tfg:rock_stairs', 'minecraft:blackstone_stairs')
event.add('tfg:rock_slabs', 'minecraft:blackstone_slab')
event.add('tfg:rock_walls', 'minecraft:blackstone_wall')
event.add('tfg:brick_stairs', 'minecraft:blackstone_stairs')
event.add('tfg:brick_slabs', 'minecraft:blackstone_slab')
event.add('tfg:brick_walls', 'minecraft:blackstone_wall')
//#region
}

View file

@ -257,15 +257,17 @@ const registerMoreRedRecipes = (event) => {
.itemOutputs('morered:red_alloy_wire')
.duration(300)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
global.MINECRAFT_DYE_NAMES.forEach(dye => {
event.recipes.gtceu.chemical_bath(`tfg:morered/${dye}_wire`)
.itemInputs('morered:red_alloy_wire')
.inputFluids(Fluid.of(`gtceu:${dye}_dye`, 72))
.inputFluids(Fluid.of(`tfc:${dye}_dye`, 72))
.itemOutputs(`morered:${dye}_network_cable`)
.duration(300)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
})

View file

@ -0,0 +1,96 @@
const locometalDyeGroups = {
slashed_locometal: '#railways:palettes/dye_groups/slashed',
riveted_locometal: '#railways:palettes/dye_groups/riveted',
locometal_pillar: '#railways:palettes/dye_groups/pillar',
locometal_smokebox: '#railways:palettes/dye_groups/smokebox',
plated_locometal: '#railways:palettes/dye_groups/plated',
flat_slashed_locometal: '#railways:palettes/dye_groups/flat_slashed',
flat_riveted_locometal: '#railways:palettes/dye_groups/flat_riveted'
}
const locometalBase = {
slashed_locometal: 'slashed_locometal',
riveted_locometal: 'riveted_locometal',
locometal_pillar: 'locometal_pillar',
locometal_smokebox: 'locometal_smokebox',
plated_locometal: 'plated_locometal',
flat_slashed_locometal: 'flat_slashed_locometal',
flat_riveted_locometal: 'flat_riveted_locometal'
}
const railwaysLocometalIntegration = (event) => {
for (var locometal in locometalBase) {
event.recipes.create.cutting(`8x railways:${locometal}`, '#forge:storage_blocks/iron').processingTime(200);
event.recipes.create.cutting(`16x railways:${locometal}`, '#forge:storage_blocks/wrought_iron').processingTime(200);
event.recipes.create.cutting(`24x railways:${locometal}`, '#forge:storage_blocks/steel').processingTime(200);
event.recipes.create.cutting(`railways:${locometal}`, `#railways:palettes/cycle_groups/base`).processingTime(20);
event.recipes.gtceu.chemical_bath(`gpedia:undying/locometal/${locometal}`)
.itemInputs(Item.of(locometalDyeGroups[`${locometal}`], 1))
.inputFluids(Fluid.of(`gtceu:chlorine`, 18))
.itemOutputs(Item.of(`railways:${locometal}`))
.duration(20)
.EUt(24)
}
event.recipes.create.item_application(`railways:iron_wrapped_locometal`, [`#railways:palettes/cycle_groups/base`, '#forge:plates/wrought_iron']);
event.recipes.create.item_application(`railways:copper_wrapped_locometal`, [`#railways:palettes/cycle_groups/base`, '#forge:plates/copper']);
event.recipes.create.item_application(`railways:brass_wrapped_locometal`, [`#railways:palettes/cycle_groups/base`, '#forge:plates/brass'])
event.recipes.gtceu.chemical_bath(`gpedia:undying/brass_wrapped_locometal`)
.itemInputs('#railways:palettes/dye_groups/brass_wrapped_slashed')
.inputFluids(Fluid.of(`gtceu:chlorine`, 18))
.itemOutputs(`railways:brass_wrapped_locometal`)
.duration(20)
.EUt(24);
event.recipes.gtceu.chemical_bath(`gpedia:undying/copper_wrapped_locometal`)
.itemInputs('#railways:palettes/dye_groups/copper_wrapped_slashed')
.inputFluids(Fluid.of(`gtceu:chlorine`, 18))
.itemOutputs(`railways:copper_wrapped_locometal`)
.duration(20)
.EUt(24);
event.recipes.gtceu.chemical_bath(`gpedia:undying/iron_wrapped_locometal`)
.itemInputs('#railways:palettes/dye_groups/iron_wrapped_slashed')
.inputFluids(Fluid.of(`gtceu:chlorine`, 18))
.itemOutputs(`railways:iron_wrapped_locometal`)
.duration(20)
.EUt(24)
global.MINECRAFT_DYE_NAMES.forEach(dye => {
for (var locometal in locometalBase) {
event.recipes.gtceu.chemical_bath(`gpedia:chemical_dying_locometal/${locometal}/${dye}`)
.itemInputs(Item.of(locometalDyeGroups[`${locometal}`], 1))
.inputFluids(Fluid.of(`tfc:${dye}_dye`, 18))
.itemOutputs(Item.of(`railways:${dye}_${locometal}`))
.duration(20)
.EUt(24);
event.shapeless(
Item.of(`railways:${dye}_${locometal}`, 8),
[
Item.of(locometalDyeGroups[`${locometal}`], 8),
`1x #forge:dyes/${dye}_dye`
]
)
};
event.recipes.create.item_application(`railways:${dye}_iron_wrapped_locometal`, [`#railways:palettes/cycle_groups/${dye}`, '#forge:plates/wrought_iron']);
event.recipes.create.item_application(`railways:${dye}_copper_wrapped_locometal`, [`#railways:palettes/cycle_groups/${dye}`, '#forge:plates/copper']);
event.recipes.create.item_application(`railways:${dye}_brass_wrapped_locometal`, [`#railways:palettes/cycle_groups/${dye}`, '#forge:plates/brass']);
event.recipes.gtceu.chemical_bath(`gpedia:brass_locometal_bathing/${dye}`)
.itemInputs('#railways:palettes/dye_groups/brass_wrapped_slashed')
.inputFluids(Fluid.of(`tfc:${dye}_dye`, 18))
.itemOutputs(`railways:${dye}_brass_wrapped_locometal`)
.duration(20)
.EUt(24);
event.recipes.gtceu.chemical_bath(`gpedia:copper_locometal_bathing/${dye}`)
.itemInputs('#railways:palettes/dye_groups/copper_wrapped_slashed')
.inputFluids(Fluid.of(`tfc:${dye}_dye`, 18))
.itemOutputs(`railways:${dye}_copper_wrapped_locometal`)
.duration(20)
.EUt(24);
event.recipes.gtceu.chemical_bath(`gpedia:locometal_bathing/${dye}`)
.itemInputs('#railways:palettes/dye_groups/iron_wrapped_slashed')
.inputFluids(Fluid.of(`tfc:${dye}_dye`, 18))
.itemOutputs(`railways:${dye}_iron_wrapped_locometal`)
.duration(20)
.EUt(24);
})
}

View file

@ -1,363 +1,365 @@
// priority: 0
const registerRailWaysRecipes = (event) => {
// Удаление рецептов мода railways
event.remove({ mod: 'railways' });
// Семафор
event.shaped('railways:semaphore', [
' A ',
'BCD',
'EAE'
], {
A: '#forge:plates/wrought_iron',
B: '#minecraft:fences',
C: 'create:andesite_casing',
D: 'create:electron_tube',
E: '#forge:tools/hammers',
}).id('tfg:railways/shaped/semaphore')
// Удаление рецептов мода railways
event.remove({ mod: 'railways' });
railwaysLocometalIntegration(event)
event.recipes.gtceu.assembler('tfg:railways/semaphore')
.itemInputs('2x #forge:plates/wrought_iron', '#minecraft:fences', 'create:andesite_casing', 'create:electron_tube')
.circuit(3)
.itemOutputs('railways:semaphore')
.duration(200)
.EUt(28)
// Семафор
event.shaped('railways:semaphore', [
' A ',
'BCD',
'EAE'
], {
A: '#forge:plates/wrought_iron',
B: '#minecraft:fences',
C: 'create:andesite_casing',
D: 'create:electron_tube',
E: '#forge:tools/hammers',
}).id('tfg:railways/shaped/semaphore')
// Соединитель поездов
event.shaped('railways:track_coupler', [
'AAA',
'DBE',
' C '
], {
A: '#forge:sheets/wrought_iron',
B: 'gtceu:red_alloy_single_wire',
C: 'create:railway_casing',
D: '#forge:tools/wire_cutters',
E: '#forge:tools/screwdrivers',
}).id('tfg:railways/shaped/track_coupler')
event.recipes.gtceu.assembler('tfg:railways/semaphore')
.itemInputs('2x #forge:plates/wrought_iron', '#minecraft:fences', 'create:andesite_casing', 'create:electron_tube')
.circuit(3)
.itemOutputs('railways:semaphore')
.duration(200)
.EUt(28)
event.recipes.gtceu.assembler('tfg:railways/track_coupler')
.itemInputs('3x #forge:sheets/wrought_iron', 'gtceu:red_alloy_single_wire', 'create:railway_casing')
.circuit(3)
.itemOutputs('railways:track_coupler')
.duration(200)
.EUt(28)
// Соединитель поездов
event.shaped('railways:track_coupler', [
'AAA',
'DBE',
' C '
], {
A: '#forge:sheets/wrought_iron',
B: 'gtceu:red_alloy_single_wire',
C: 'create:railway_casing',
D: '#forge:tools/wire_cutters',
E: '#forge:tools/screwdrivers',
}).id('tfg:railways/shaped/track_coupler')
// Переключатель пути поезда из андезита
event.shaped('railways:track_switch_andesite', [
'BAB',
'CDC',
'ECF'
], {
A: 'minecraft:lever',
B: '#forge:bolts/wrought_iron',
C: 'create:cogwheel',
D: 'create:andesite_casing',
E: '#forge:tools/screwdrivers',
F: '#forge:tools/hammers',
}).id('tfg:railways/shaped/track_switch_andesite')
event.recipes.gtceu.assembler('tfg:railways/track_coupler')
.itemInputs('3x #forge:sheets/wrought_iron', 'gtceu:red_alloy_single_wire', 'create:railway_casing')
.circuit(3)
.itemOutputs('railways:track_coupler')
.duration(200)
.EUt(28)
event.recipes.gtceu.assembler('tfg:railways/track_switch_andesite')
.itemInputs('minecraft:lever', '2x #forge:bolts/wrought_iron', '2x create:cogwheel', 'create:andesite_casing')
.circuit(3)
.itemOutputs('railways:track_switch_andesite')
.duration(200)
.EUt(28)
// Переключатель пути поезда из андезита
event.shaped('railways:track_switch_andesite', [
'BAB',
'CDC',
'ECF'
], {
A: 'minecraft:lever',
B: '#forge:bolts/wrought_iron',
C: '#tfg:small_cogwheels',
D: 'create:andesite_casing',
E: '#forge:tools/screwdrivers',
F: '#forge:tools/hammers',
}).id('tfg:railways/shaped/track_switch_andesite')
// Переключатель пути поезда из латуни
event.shaped('railways:track_switch_brass', [
'BAB',
'CDC',
'ECF'
], {
A: 'minecraft:lever',
B: '#forge:bolts/brass',
C: 'create:cogwheel',
D: 'create:brass_casing',
E: '#forge:tools/screwdrivers',
F: '#forge:tools/hammers',
}).id('tfg:railways/shaped/track_switch_brass')
event.recipes.gtceu.assembler('tfg:railways/track_switch_andesite')
.itemInputs('minecraft:lever', '2x #forge:bolts/wrought_iron', '2x #tfg:small_cogwheels', 'create:andesite_casing')
.circuit(3)
.itemOutputs('railways:track_switch_andesite')
.duration(200)
.EUt(28)
event.recipes.gtceu.assembler('tfg:railways/track_switch_brass')
.itemInputs('minecraft:lever', '2x #forge:bolts/wrought_iron', '2x create:cogwheel', 'create:brass_casing')
.circuit(3)
.itemOutputs('railways:track_switch_brass')
.duration(200)
.EUt(28)
// Переключатель пути поезда из латуни
event.shaped('railways:track_switch_brass', [
'BAB',
'CDC',
'ECF'
], {
A: 'minecraft:lever',
B: '#forge:bolts/brass',
C: '#tfg:small_cogwheels',
D: 'create:brass_casing',
E: '#forge:tools/screwdrivers',
F: '#forge:tools/hammers',
}).id('tfg:railways/shaped/track_switch_brass')
// Свисток кондуктора
event.shaped('railways:conductor_whistle', [
'ABC'
], {
A: '#forge:plates/brass',
B: '#forge:tools/hammers',
C: '#forge:tools/files',
}).id('tfg:railways/shaped/conductor_whistle')
event.recipes.gtceu.assembler('tfg:railways/track_switch_brass')
.itemInputs('minecraft:lever', '2x #forge:bolts/wrought_iron', '2x #tfg:small_cogwheels', 'create:brass_casing')
.circuit(3)
.itemOutputs('railways:track_switch_brass')
.duration(200)
.EUt(28)
event.recipes.gtceu.assembler('tfg:railways/conductor_whistle')
.itemInputs('#forge:plates/brass')
.circuit(4)
.itemOutputs('railways:conductor_whistle')
.duration(200)
.EUt(28)
// Свисток кондуктора
event.shaped('railways:conductor_whistle', [
'ABC'
], {
A: '#forge:plates/brass',
B: '#forge:tools/hammers',
C: '#forge:tools/files',
}).id('tfg:railways/shaped/conductor_whistle')
// Удаленная линза
event.shaped('railways:remote_lens', [
'ABC',
'DE '
], {
A: '#forge:plates/brass',
B: '#forge:tools/hammers',
C: '#forge:tools/files',
D: 'create:precision_mechanism',
E: 'ae2:wireless_access_point'
}).id('tfg:railways/shaped/remote_lens')
event.recipes.gtceu.assembler('tfg:railways/conductor_whistle')
.itemInputs('#forge:plates/brass')
.circuit(4)
.itemOutputs('railways:conductor_whistle')
.duration(200)
.EUt(28)
event.recipes.gtceu.assembler('tfg:railways/remote_lens')
.itemInputs('#forge:plates/brass', 'create:precision_mechanism', 'ae2:wireless_access_point')
.circuit(3)
.itemOutputs('railways:remote_lens')
.duration(200)
.EUt(28)
// Удаленная линза
event.shaped('railways:remote_lens', [
'ABC',
'DE '
], {
A: '#forge:plates/brass',
B: '#forge:tools/hammers',
C: '#forge:tools/files',
D: 'create:precision_mechanism',
E: 'gtceu:lv_sensor'
}).id('tfg:railways/shaped/remote_lens')
// Дымогенератор 1
event.shaped('railways:smokestack_caboosestyle', [
'BCB',
'DA '
], {
A: '#forge:storage_blocks/charcoal',
B: '#forge:nuggets/black_steel',
C: '#forge:plates/black_steel',
D: '#forge:tools/hammers'
}).id('tfg:railways/shaped/smokestack_caboosestyle')
event.recipes.gtceu.assembler('tfg:railways/remote_lens')
.itemInputs('#forge:plates/brass', 'create:precision_mechanism', 'gtceu:lv_sensor')
.circuit(3)
.itemOutputs('railways:remote_lens')
.duration(200)
.EUt(28)
event.recipes.gtceu.assembler('tfg:railways/smokestack_caboosestyle')
.itemInputs('#forge:storage_blocks/charcoal', '2x #forge:nuggets/black_steel', '#forge:plates/black_steel')
.circuit(4)
.itemOutputs('railways:smokestack_caboosestyle')
.duration(200)
.EUt(28)
// Дымогенератор 1
event.shaped('railways:smokestack_caboosestyle', [
'BCB',
'DA '
], {
A: '#forge:storage_blocks/charcoal',
B: '#forge:nuggets/black_steel',
C: '#forge:plates/black_steel',
D: '#forge:tools/hammers'
}).id('tfg:railways/shaped/smokestack_caboosestyle')
// Дымогенератор 2
event.shaped('railways:smokestack_long', [
'C ',
'BAB'
], {
A: '#forge:storage_blocks/charcoal',
B: '#forge:nuggets/black_steel',
C: '#forge:tools/hammers'
}).id('tfg:railways/shaped/smokestack_long')
event.recipes.gtceu.assembler('tfg:railways/smokestack_caboosestyle')
.itemInputs('#forge:storage_blocks/charcoal', '2x #forge:nuggets/black_steel', '#forge:plates/black_steel')
.circuit(4)
.itemOutputs('railways:smokestack_caboosestyle')
.duration(200)
.EUt(28)
event.recipes.gtceu.assembler('tfg:railways/smokestack_long')
.itemInputs('#forge:storage_blocks/charcoal', '2x #forge:nuggets/black_steel')
.circuit(5)
.itemOutputs('railways:smokestack_long')
.duration(200)
.EUt(28)
// Дымогенератор 2
event.shaped('railways:smokestack_long', [
'C ',
'BAB'
], {
A: '#forge:storage_blocks/charcoal',
B: '#forge:nuggets/black_steel',
C: '#forge:tools/hammers'
}).id('tfg:railways/shaped/smokestack_long')
// Дымогенератор 3
event.shaped('railways:smokestack_coalburner', [
'B B',
'BCB',
'BAB'
], {
A: '#forge:storage_blocks/charcoal',
B: '#forge:plates/black_steel',
C: '#forge:tools/hammers'
}).id('tfg:railways/shaped/smokestack_coalburner')
event.recipes.gtceu.assembler('tfg:railways/smokestack_long')
.itemInputs('#forge:storage_blocks/charcoal', '2x #forge:nuggets/black_steel')
.circuit(5)
.itemOutputs('railways:smokestack_long')
.duration(200)
.EUt(28)
event.recipes.gtceu.assembler('tfg:railways/smokestack_coalburner')
.itemInputs('#forge:storage_blocks/charcoal', '6x #forge:plates/black_steel')
.circuit(6)
.itemOutputs('railways:smokestack_coalburner')
.duration(200)
.EUt(28)
// Дымогенератор 3
event.shaped('railways:smokestack_coalburner', [
'B B',
'BCB',
'BAB'
], {
A: '#forge:storage_blocks/charcoal',
B: '#forge:plates/black_steel',
C: '#forge:tools/hammers'
}).id('tfg:railways/shaped/smokestack_coalburner')
// Дымогенератор 4
event.shaped('railways:smokestack_oilburner', [
'BCB',
'BAB'
], {
A: '#forge:storage_blocks/charcoal',
B: '#forge:plates/black_steel',
C: '#forge:tools/hammers'
}).id('tfg:railways/shaped/smokestack_oilburner')
event.recipes.gtceu.assembler('tfg:railways/smokestack_coalburner')
.itemInputs('#forge:storage_blocks/charcoal', '6x #forge:plates/black_steel')
.circuit(6)
.itemOutputs('railways:smokestack_coalburner')
.duration(200)
.EUt(28)
event.recipes.gtceu.assembler('tfg:railways/smokestack_oilburner')
.itemInputs('#forge:storage_blocks/charcoal', '6x #forge:plates/black_steel')
.circuit(7)
.itemOutputs('railways:smokestack_oilburner')
.duration(200)
.EUt(28)
// Дымогенератор 4
event.shaped('railways:smokestack_oilburner', [
'BCB',
'BAB'
], {
A: '#forge:storage_blocks/charcoal',
B: '#forge:plates/black_steel',
C: '#forge:tools/hammers'
}).id('tfg:railways/shaped/smokestack_oilburner')
// Дымогенератор 5
event.shaped('railways:smokestack_streamlined', [
'C ',
'BAB'
], {
A: '#forge:storage_blocks/charcoal',
B: '#forge:plates/black_steel',
C: '#forge:tools/hammers'
}).id('tfg:railways/shaped/smokestack_streamlined')
event.recipes.gtceu.assembler('tfg:railways/smokestack_oilburner')
.itemInputs('#forge:storage_blocks/charcoal', '6x #forge:plates/black_steel')
.circuit(7)
.itemOutputs('railways:smokestack_oilburner')
.duration(200)
.EUt(28)
event.recipes.gtceu.assembler('tfg:railways/smokestack_streamlined')
.itemInputs('#forge:storage_blocks/charcoal', '2x #forge:plates/black_steel')
.circuit(8)
.itemOutputs('railways:smokestack_streamlined')
.duration(200)
.EUt(28)
// Дымогенератор 5
event.shaped('railways:smokestack_streamlined', [
'C ',
'BAB'
], {
A: '#forge:storage_blocks/charcoal',
B: '#forge:plates/black_steel',
C: '#forge:tools/hammers'
}).id('tfg:railways/shaped/smokestack_streamlined')
// Дымогенератор 6
event.shaped('railways:smokestack_woodburner', [
' D ',
'CBC',
'BAB'
], {
A: '#forge:storage_blocks/charcoal',
B: '#forge:plates/black_steel',
C: '#forge:nuggets/black_steel',
D: '#forge:tools/hammers'
}).id('tfg:railways/shaped/smokestack_woodburner')
event.recipes.gtceu.assembler('tfg:railways/smokestack_streamlined')
.itemInputs('#forge:storage_blocks/charcoal', '2x #forge:plates/black_steel')
.circuit(8)
.itemOutputs('railways:smokestack_streamlined')
.duration(200)
.EUt(28)
event.recipes.gtceu.assembler('tfg:railways/smokestack_woodburner')
.itemInputs('#forge:storage_blocks/charcoal', '3x #forge:plates/black_steel', '2x #forge:nuggets/black_steel')
.circuit(9)
.itemOutputs('railways:smokestack_woodburner')
.duration(200)
.EUt(28)
// Вентилятор радиатора
event.shaped('2x railways:smokestack_diesel', [
'ABA',
'BCB',
'ABA'
], {
A: '#forge:plates/wrought_iron',
B: '#forge:rods/wrought_iron',
C: 'create:propeller',
}).id('tfg:railways/shaped/smokestack_diesel')
// Дымогенератор 6
event.shaped('railways:smokestack_woodburner', [
' D ',
'CBC',
'BAB'
], {
A: '#forge:storage_blocks/charcoal',
B: '#forge:plates/black_steel',
C: '#forge:nuggets/black_steel',
D: '#forge:tools/hammers'
}).id('tfg:railways/shaped/smokestack_woodburner')
// Монорельс
event.recipes.createSequencedAssembly([
'4x railways:track_monorail',
], 'create:metal_girder', [
event.recipes.createDeploying('railways:track_incomplete_monorail', ['railways:track_incomplete_monorail', '#forge:plates/wrought_iron']),
event.recipes.createPressing('railways:track_incomplete_monorail', ['railways:track_incomplete_monorail']),
event.recipes.createDeploying('railways:track_incomplete_monorail', ['railways:track_incomplete_monorail', '#forge:plates/wrought_iron']),
event.recipes.createPressing('railways:track_incomplete_monorail', ['railways:track_incomplete_monorail']),
]).transitionalItem('railways:track_incomplete_monorail').loops(1).id('tfg:railways/sequenced_assembly/track_monorail')
event.recipes.gtceu.assembler('tfg:railways/smokestack_woodburner')
.itemInputs('#forge:storage_blocks/charcoal', '3x #forge:plates/black_steel', '2x #forge:nuggets/black_steel')
.circuit(9)
.itemOutputs('railways:smokestack_woodburner')
.duration(200)
.EUt(28)
event.recipes.gtceu.assembler('railways/monorail')
.itemInputs('create:metal_girder', '2x #forge:plates/wrought_iron')
.itemOutputs('4x railways:track_monorail')
.duration(250)
.EUt(32)
// Вентилятор радиатора
event.shaped('2x railways:smokestack_diesel', [
'ABA',
'BCB',
'ABA'
], {
A: '#forge:plates/wrought_iron',
B: '#forge:rods/wrought_iron',
C: 'create:propeller',
}).id('tfg:railways/shaped/smokestack_diesel')
// Железнодорожное полотно (Узкое)
event.recipes.createSequencedAssembly([
'8x railways:track_create_andesite_narrow',
], '#tfg:rock_slabs', [
event.recipes.createDeploying('railways:track_incomplete_create_andesite_narrow', ['railways:track_incomplete_create_andesite_narrow', 'gtceu:steel_rod']),
event.recipes.createDeploying('railways:track_incomplete_create_andesite_narrow', ['railways:track_incomplete_create_andesite_narrow', '#tfc:mortar']),
event.recipes.createPressing('railways:track_incomplete_create_andesite_narrow', ['railways:track_incomplete_create_andesite_narrow']),
]).transitionalItem('railways:track_incomplete_create_andesite_narrow').loops(2).id('tfg:railways/sequenced_assembly/track_create_andesite_narrow_from_steel')
// Монорельс
event.recipes.createSequencedAssembly([
'4x railways:track_monorail',
], 'create:metal_girder', [
event.recipes.createDeploying('railways:track_incomplete_monorail', ['railways:track_incomplete_monorail', '#forge:plates/wrought_iron']),
event.recipes.createDeploying('railways:track_incomplete_monorail', ['railways:track_incomplete_monorail', '#forge:tools/hammers']),
event.recipes.createDeploying('railways:track_incomplete_monorail', ['railways:track_incomplete_monorail', '#forge:plates/wrought_iron']),
event.recipes.createDeploying('railways:track_incomplete_monorail', ['railways:track_incomplete_monorail', '#forge:tools/hammers']),
]).transitionalItem('railways:track_incomplete_monorail').loops(1).id('tfg:railways/sequenced_assembly/track_monorail')
event.recipes.gtceu.assembler('railways/track_create_andesite_narrow_from_steel')
.itemInputs('#tfg:rock_slabs', '2x gtceu:steel_rod')
.inputFluids(Fluid.of('gtceu:concrete', 144))
.itemOutputs('8x railways:track_create_andesite_narrow')
.duration(800)
.EUt(16)
event.recipes.gtceu.assembler('railways/monorail')
.itemInputs('create:metal_girder', '2x #forge:plates/wrought_iron')
.itemOutputs('4x railways:track_monorail')
.duration(250)
.EUt(32)
// Железнодорожное полотно (Узкое)
event.recipes.createSequencedAssembly([
'8x railways:track_create_andesite_narrow',
], '#tfg:rock_slabs', [
event.recipes.createDeploying('railways:track_incomplete_create_andesite_narrow', ['railways:track_incomplete_create_andesite_narrow', 'gtceu:steel_rod']),
event.recipes.createDeploying('railways:track_incomplete_create_andesite_narrow', ['railways:track_incomplete_create_andesite_narrow', '#tfc:mortar']),
event.recipes.createDeploying('railways:track_incomplete_create_andesite_narrow', ['railways:track_incomplete_create_andesite_narrow', '#forge:tools/hammers']),
]).transitionalItem('railways:track_incomplete_create_andesite_narrow').loops(2).id('tfg:railways/sequenced_assembly/track_create_andesite_narrow_from_steel')
event.recipes.gtceu.assembler('railways/track_create_andesite_narrow_from_steel')
.itemInputs('#tfg:rock_slabs', '2x gtceu:steel_rod')
.inputFluids(Fluid.of('gtceu:concrete', 144))
.itemOutputs('8x railways:track_create_andesite_narrow')
.duration(800)
.EUt(16)
.circuit(1)
// Железнодорожное полотно (Нормальное)
event.recipes.createSequencedAssembly([
'8x create:track',
], '#tfg:rock_slabs', [
event.recipes.createDeploying('create:incomplete_track', ['create:incomplete_track', '#tfg:rock_slabs']),
// Железнодорожное полотно (Нормальное)
event.recipes.createSequencedAssembly([
'8x create:track',
], '#tfg:rock_slabs', [
event.recipes.createDeploying('create:incomplete_track', ['create:incomplete_track', '#tfg:rock_slabs']),
event.recipes.createDeploying('create:incomplete_track', ['create:incomplete_track', 'gtceu:steel_rod']),
event.recipes.createDeploying('create:incomplete_track', ['create:incomplete_track', '#tfc:mortar']),
event.recipes.createPressing('create:incomplete_track', ['create:incomplete_track']),
]).transitionalItem('create:incomplete_track').loops(2).id('tfg:railways/sequenced_assembly/track_create_andesite')
event.recipes.createDeploying('create:incomplete_track', ['create:incomplete_track', '#tfc:mortar']),
event.recipes.createDeploying('create:incomplete_track', ['create:incomplete_track', '#forge:tools/hammers']),
]).transitionalItem('create:incomplete_track').loops(2).id('tfg:railways/sequenced_assembly/track_create_andesite')
event.recipes.gtceu.assembler('railways/track')
.itemInputs('3x #tfg:rock_slabs', '2x gtceu:steel_rod')
.inputFluids(Fluid.of('gtceu:concrete', 144))
.itemOutputs('8x create:track')
.duration(800)
.EUt(16)
event.recipes.gtceu.assembler('railways/track')
.itemInputs('3x #tfg:rock_slabs', '2x gtceu:steel_rod')
.inputFluids(Fluid.of('gtceu:concrete', 144))
.itemOutputs('8x create:track')
.duration(800)
.EUt(16)
.circuit(2)
// Железнодорожное полотно (Широкое)
event.recipes.createSequencedAssembly([
'8x railways:track_create_andesite_wide',
], '#tfg:rock_slabs', [
event.recipes.createDeploying('railways:track_incomplete_create_andesite_wide', ['railways:track_incomplete_create_andesite_wide', '#forge:stone']),
event.recipes.createDeploying('railways:track_incomplete_create_andesite_wide', ['railways:track_incomplete_create_andesite_wide', 'gtceu:steel_rod']),
event.recipes.createDeploying('railways:track_incomplete_create_andesite_wide', ['railways:track_incomplete_create_andesite_wide', '#tfc:mortar']),
event.recipes.createPressing('railways:track_incomplete_create_andesite_wide', ['railways:track_incomplete_create_andesite_wide']),
]).transitionalItem('railways:track_incomplete_create_andesite_wide').loops(2).id('tfg:railways/sequenced_assembly/track_create_andesite_wide')
// Железнодорожное полотно (Широкое)
event.recipes.createSequencedAssembly([
'8x railways:track_create_andesite_wide',
], '#tfg:rock_slabs', [
event.recipes.createDeploying('railways:track_incomplete_create_andesite_wide', ['railways:track_incomplete_create_andesite_wide', '#forge:stone']),
event.recipes.createDeploying('railways:track_incomplete_create_andesite_wide', ['railways:track_incomplete_create_andesite_wide', 'gtceu:steel_rod']),
event.recipes.createDeploying('railways:track_incomplete_create_andesite_wide', ['railways:track_incomplete_create_andesite_wide', '#tfc:mortar']),
event.recipes.createDeploying('railways:track_incomplete_create_andesite_wide', ['railways:track_incomplete_create_andesite_wide', '#forge:tools/hammers']),
]).transitionalItem('railways:track_incomplete_create_andesite_wide').loops(2).id('tfg:railways/sequenced_assembly/track_create_andesite_wide')
event.recipes.gtceu.assembler('railways/track_create_andesite_wide')
.itemInputs('5x #tfg:rock_slabs', '2x gtceu:steel_rod')
.inputFluids(Fluid.of('gtceu:concrete', 144))
.itemOutputs('8x railways:track_create_andesite_wide')
.duration(800)
.EUt(16)
event.recipes.gtceu.assembler('railways/track_create_andesite_wide')
.itemInputs('5x #tfg:rock_slabs', '2x gtceu:steel_rod')
.inputFluids(Fluid.of('gtceu:concrete', 144))
.itemOutputs('8x railways:track_create_andesite_wide')
.duration(800)
.EUt(16)
.circuit(3)
// Железнодородные полотна из дерева
global.TFC_WOOD_TYPES.forEach(woodType => {
// Узкое
event.recipes.createSequencedAssembly([
`8x railways:track_tfc_${woodType}_narrow`,
], `tfc:wood/planks/${woodType}_slab`, [
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}_narrow`, [`railways:track_incomplete_tfc_${woodType}_narrow`, 'gtceu:steel_rod']),
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}_narrow`, [`railways:track_incomplete_tfc_${woodType}_narrow`, '#forge:screws']),
event.recipes.createPressing(`railways:track_incomplete_tfc_${woodType}_narrow`, [`railways:track_incomplete_tfc_${woodType}_narrow`]),
]).transitionalItem(`railways:track_incomplete_tfc_${woodType}_narrow`).loops(2).id(`tfg:railways/sequenced_assembly/track_create_${woodType}_narrow`)
event.recipes.gtceu.assembler(`railways/track_create_${woodType}_narrow`)
.itemInputs(`tfc:wood/planks/${woodType}_slab`, '2x gtceu:steel_rod', '2x #forge:screws')
.itemOutputs(`8x railways:track_tfc_${woodType}_narrow`)
.duration(800)
.EUt(16)
// Железнодородные полотна из дерева
global.TFC_WOOD_TYPES.forEach(woodType => {
// Узкое
event.recipes.createSequencedAssembly([
`8x railways:track_tfc_${woodType}_narrow`,
], `tfc:wood/planks/${woodType}_slab`, [
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}_narrow`, [`railways:track_incomplete_tfc_${woodType}_narrow`, 'gtceu:steel_rod']),
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}_narrow`, [`railways:track_incomplete_tfc_${woodType}_narrow`, '#forge:screws']),
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}_narrow`, [`railways:track_incomplete_tfc_${woodType}_narrow`, '#forge:tools/hammers']),
]).transitionalItem(`railways:track_incomplete_tfc_${woodType}_narrow`).loops(2).id(`tfg:railways/sequenced_assembly/track_create_${woodType}_narrow`)
event.recipes.gtceu.assembler(`railways/track_create_${woodType}_narrow`)
.itemInputs(`tfc:wood/planks/${woodType}_slab`, '2x gtceu:steel_rod', '2x #forge:screws')
.itemOutputs(`8x railways:track_tfc_${woodType}_narrow`)
.duration(800)
.EUt(16)
.circuit(1)
// Нормальное
event.recipes.createSequencedAssembly([
`8x railways:track_tfc_${woodType}`,
], `tfc:wood/planks/${woodType}_slab`, [
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}`, [`railways:track_incomplete_tfc_${woodType}`, `tfc:wood/lumber/${woodType}`]),
// Нормальное
event.recipes.createSequencedAssembly([
`8x railways:track_tfc_${woodType}`,
], `tfc:wood/planks/${woodType}_slab`, [
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}`, [`railways:track_incomplete_tfc_${woodType}`, `tfc:wood/lumber/${woodType}`]),
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}`, [`railways:track_incomplete_tfc_${woodType}`, 'gtceu:steel_rod']),
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}`, [`railways:track_incomplete_tfc_${woodType}`, '#forge:screws']),
event.recipes.createPressing(`railways:track_incomplete_tfc_${woodType}`, [`railways:track_incomplete_tfc_${woodType}`]),
]).transitionalItem(`railways:track_incomplete_tfc_${woodType}`).loops(2).id(`tfg:railways/sequenced_assembly/track_create_${woodType}`)
event.recipes.gtceu.assembler(`railways/track_${woodType}`)
.itemInputs(`tfc:wood/planks/${woodType}_slab`, `2x tfc:wood/lumber/${woodType}`, '2x gtceu:steel_rod', '2x #forge:screws')
.itemOutputs(`8x railways:track_tfc_${woodType}`)
.duration(800)
.EUt(16)
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}`, [`railways:track_incomplete_tfc_${woodType}`, '#forge:screws']),
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}`, [`railways:track_incomplete_tfc_${woodType}`, '#forge:tools/hammers']),
]).transitionalItem(`railways:track_incomplete_tfc_${woodType}`).loops(2).id(`tfg:railways/sequenced_assembly/track_create_${woodType}`)
event.recipes.gtceu.assembler(`railways/track_${woodType}`)
.itemInputs(`tfc:wood/planks/${woodType}_slab`, `2x tfc:wood/lumber/${woodType}`, '2x gtceu:steel_rod', '2x #forge:screws')
.itemOutputs(`8x railways:track_tfc_${woodType}`)
.duration(800)
.EUt(16)
.circuit(2)
// Широкое
event.recipes.createSequencedAssembly([
`8x railways:track_tfc_${woodType}_wide`,
], `tfc:wood/planks/${woodType}_slab`, [
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}_wide`, [`railways:track_incomplete_tfc_${woodType}_wide`, `tfc:wood/planks/${woodType}_slab`]),
// Широкое
event.recipes.createSequencedAssembly([
`8x railways:track_tfc_${woodType}_wide`,
], `tfc:wood/planks/${woodType}_slab`, [
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}_wide`, [`railways:track_incomplete_tfc_${woodType}_wide`, `tfc:wood/planks/${woodType}_slab`]),
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}_wide`, [`railways:track_incomplete_tfc_${woodType}_wide`, `gtceu:steel_rod`]),
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}_wide`, [`railways:track_incomplete_tfc_${woodType}_wide`, '#forge:screws']),
event.recipes.createPressing(`railways:track_incomplete_tfc_${woodType}_wide`, [`railways:track_incomplete_tfc_${woodType}_wide`])
]).transitionalItem(`railways:track_incomplete_tfc_${woodType}_wide`).loops(2).id(`tfg:railways/sequenced_assembly/track_create_${woodType}_wide`)
event.recipes.gtceu.assembler(`railways/track_${woodType}_wide`)
.itemInputs(`3x tfc:wood/planks/${woodType}_slab`, '2x gtceu:steel_rod', '2x #forge:screws')
.itemOutputs(`8x railways:track_tfc_${woodType}_wide`)
.duration(800)
.EUt(16)
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}_wide`, [`railways:track_incomplete_tfc_${woodType}_wide`, '#forge:tools/hammers'])
]).transitionalItem(`railways:track_incomplete_tfc_${woodType}_wide`).loops(2).id(`tfg:railways/sequenced_assembly/track_create_${woodType}_wide`)
event.recipes.gtceu.assembler(`railways/track_${woodType}_wide`)
.itemInputs(`3x tfc:wood/planks/${woodType}_slab`, '2x gtceu:steel_rod', '2x #forge:screws')
.itemOutputs(`8x railways:track_tfc_${woodType}_wide`)
.duration(800)
.EUt(16)
.circuit(3)
});
});
}

View file

@ -0,0 +1,61 @@
const registerRnrRecipes = (event) => {
event.remove({input: 'rnr:concrete_powder'})
event.remove({id: 'rnr:crafting/concrete_powder'})
//#region Recipes
event.recipes.gtceu.assembler('rnr:assembler/base_course')
.itemInputs('1x rnr:crushed_base_course', '1x #tfc:dirt')
.itemOutputs('2x rnr:base_course')
.circuit(7)
.duration(20)
.EUt(GTValues.VA[GTValues.ULV])
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)
.duration(20)
.EUt(GTValues.VA[GTValues.ULV])
global.TFC_STONE_TYPES.forEach(stone => {
event.recipes.gtceu.assembler(`rnr:assembler/flagstone/${stone}`)
.itemInputs(`tfc:rock/loose/${stone}`)
.itemOutputs(`2x rnr:flagstone/${stone}`)
.circuit(7)
.duration(20)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.assembler(`rnr:assembler/flagstone/mossy_${stone}`)
.itemInputs(`tfc:rock/mossy_loose/${stone}`)
.itemOutputs(`2x rnr:flagstone/${stone}`)
.circuit(7)
.duration(20)
.EUt(GTValues.VA[GTValues.ULV])
});
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',
'rnr:unfired_terracotta_roof_tile'
).id('rnr:smelting/unfired_terracotta_roof_tile')
event.smelting(
'1x rnr:ceramic_roof_tile',
'rnr:unfired_roof_tile'
).id('rnr:smelting/unfired_roof_tile')
event.recipes.gtceu.mixer('rnr:mixer/wet_concrete_mix')
.inputFluids(Fluid.of('gtceu:concrete', 192), Fluid.of('minecraft:water', 808))
.outputFluids(Fluid.of('rnr:concrete', 1000))
.circuit(7)
.duration(200)
.EUt(GTValues.VA[GTValues.ULV])
};

View file

@ -0,0 +1,7 @@
const registerRnrItemTags = (event) => {
global.RNR_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
});
};

View file

@ -0,0 +1,161 @@
// priority: 0
const registerSimplylightRecipes = (event) => {
// remove old recipes
global.MINECRAFT_DYE_NAMES.forEach(color => {
event.remove({ id: `simplylight:illuminant_${color}_block_on_dyed` })
event.remove({ id: `simplylight:illuminant_${color}_block_dyed` })
})
event.remove({ id: `simplylight:illuminant_block_on_dyed` })
event.remove({ id: `simplylight:illuminant_block_dyed` })
event.remove({ id: 'simplylight:illuminant_slab' })
event.remove({ id: 'simplylight:walllamp' })
event.remove({ id: 'simplylight:rodlamp' })
event.remove({ id: 'simplylight:bulb' })
event.remove({ id: 'simplylight:edge_light' })
event.remove({ id: 'simplylight:lamp_post' })
event.remove({ id: 'simplylight:illuminant_block_on' })
event.remove({ id: 'simplylight:illuminant_block' })
// new recipes
global.MINECRAFT_DYE_NAMES.forEach(color => {
//exeption for white lamps because who needs consistency?
if (color != 'white') {
event.recipes.gtceu.chemical_bath(`simplylight:chemical_bath/dyeing/illuminant_${color}_block_on`)
.itemInputs('#simplylight:any_lamp_on')
.inputFluids(Fluid.of(`tfc:${color}_dye`, 25))
.itemOutputs(`simplylight:illuminant_${color}_block_on`)
.duration(80)
.EUt(20)
.category(GTRecipeCategories.CHEM_DYES)
event.recipes.gtceu.chemical_bath(`simplylight:chemical_bath/dyeing/illuminant_${color}_block`)
.itemInputs('#simplylight:any_lamp_off')
.inputFluids(Fluid.of(`tfc:${color}_dye`, 25))
.itemOutputs(`simplylight:illuminant_${color}_block`)
.duration(80)
.EUt(20)
.category(GTRecipeCategories.CHEM_DYES)
event.recipes.tfc.barrel_sealed(1000)
.outputItem(`simplylight:illuminant_${color}_block_on`)
.inputItem(Ingredient.of('#simplylight:any_lamp_on').subtract(`simplylight:illuminant_${color}_block_on`))
.inputFluid(Fluid.of(`tfc:${color}_dye`, 25))
.id(`simplylight:barrel/dyeing/illuminant_${color}_block_on`)
event.recipes.tfc.barrel_sealed(1000)
.outputItem(`simplylight:illuminant_${color}_block`)
.inputItem(Ingredient.of('#simplylight:any_lamp_off').subtract(`simplylight:illuminant_${color}_block`))
.inputFluid(Fluid.of(`tfc:${color}_dye`, 25))
.id(`simplylight:barrel/dyeing/illuminant_${color}_block`)
}
})
event.recipes.tfc.barrel_sealed(1000)
.outputItem(`simplylight:illuminant_block_on`)
.inputItem(Ingredient.of('#simplylight:any_lamp_on').subtract(`simplylight:illuminant_block_on`))
.inputFluid(Fluid.of(`tfc:white_dye`, 25))
.id(`simplylight:barrel/dyeing/illuminant_block_on`)
event.recipes.tfc.barrel_sealed(1000)
.outputItem(`simplylight:illuminant_block`)
.inputItem(Ingredient.of('#simplylight:any_lamp_off').subtract(`simplylight:illuminant_block`))
.inputFluid(Fluid.of(`tfc:white_dye`, 25))
.id(`simplylight:barrel/dyeing/illuminant_block`)
event.recipes.gtceu.chemical_bath(`simplylight:chemical_bath/bleaching/illuminant_block_on`)
.itemInputs(Ingredient.of('#simplylight:any_lamp_on').subtract(`simplylight:illuminant_block_on`))
.inputFluids(Fluid.of('gtceu:chlorine', 72))
.itemOutputs('simplylight:illuminant_block_on')
.duration(80)
.EUt(20)
.category(GTRecipeCategories.CHEM_DYES)
event.recipes.gtceu.chemical_bath(`simplylight:chemical_bath/bleaching/illuminant_block`)
.itemInputs(Ingredient.of('#simplylight:any_lamp_off').subtract(`simplylight:illuminant_block`))
.inputFluids(Fluid.of('gtceu:chlorine', 72))
.itemOutputs('simplylight:illuminant_block')
.duration(80)
.EUt(20)
.category(GTRecipeCategories.CHEM_DYES)
event.shaped('6x simplylight:illuminant_slab', [
'AAA',
'BBB',
' '
], {
A: '#forge:dusts/glowstone',
B: '#forge:plates/tin_alloy'
}).id('tfg:simplylight/illuminant_slab')
event.shaped('4x simplylight:wall_lamp', [
'BB ',
'BA ',
'BA '
], {
A: '#forge:dusts/glowstone',
B: '#forge:plates/tin_alloy'
}).id('tfg:simplylight/wall_lamp')
event.shaped('12x simplylight:rodlamp', [
'ACA',
'ABA',
'ACA'
], {
A: '#forge:dusts/glowstone',
B: '#forge:rods/tin_alloy',
C: '#forge:bolts/tin_alloy'
}).id('tfg:simplylight/rod_lamp')
event.shaped('2x simplylight:lightbulb', [
' A ',
'BBB',
' '
], {
A: '#forge:dusts/glowstone',
B: '#forge:plates/tin_alloy'
}).id('tfg:simplylight/light_bulb')
event.shaped('6x simplylight:edge_light', [
'AAA',
'CBC',
' '
], {
A: '#forge:dusts/glowstone',
B: '#forge:rods/tin_alloy',
C: '#forge:bolts/tin_alloy'
}).id('tfg:simplylight/edge_light')
event.shaped('8x simplylight:lamp_post', [
' A ',
' B ',
'CDC'
], {
A: '#simplylight:any_lamp_on',
B: '#forge:rods/long/bronze',
C: '#forge:plates/bronze',
D: '#forge:screws/bronze'
}).id('tfg:simplylight/lamp_post')
event.shaped('8x simplylight:illuminant_block_on', [
'BAB',
'ACA',
'BAB'
], {
A: '#forge:dusts/glowstone',
B: '#forge:plates/tin_alloy',
C: '#forge:fine_wires/red_alloy',
}).id('tfg:simplylight/illuminant_block_on')
event.shaped('8x simplylight:illuminant_block', [
'ABA',
'BCB',
'ABA'
], {
A: '#forge:dusts/glowstone',
B: '#forge:plates/tin_alloy',
C: '#forge:fine_wires/red_alloy',
}).id('tfg:simplylight/illuminant_block')
}

View file

@ -212,19 +212,21 @@ const registerSophisticatedBackpacksRecipes = (event) => {
event.shaped('sophisticatedbackpacks:magnet_upgrade', [
'ABA',
'CDC',
'AEA'
'FEG'
], {
A: 'gtceu:hv_robot_arm',
A: 'gtceu:lv_robot_arm',
B: 'gtceu:item_filter',
C: '#gtceu:circuits/hv',
C: '#gtceu:circuits/lv',
D: 'sophisticatedbackpacks:upgrade_base',
E: '#gtceu:batteries/hv'
E: 'gtceu:lv_item_magnet',
F: '#forge:tools/wrenches',
G: '#forge:tools/screwdrivers'
}).id('tfg:sophisticated_backpacks/shaped/magnet_upgrade')
// Улучшение - улучшенный магнит
event.shapeless('sophisticatedbackpacks:advanced_magnet_upgrade', [
'sophisticatedbackpacks:magnet_upgrade',
'#gtceu:circuits/ev'
'gtceu:hv_item_magnet'
]).id('tfg:sophisticated_backpacks/shapeless/advanced_magnet_upgrade')
// Улучшение - уничтожитель
@ -239,7 +241,7 @@ const registerSophisticatedBackpacksRecipes = (event) => {
D: 'sophisticatedbackpacks:upgrade_base',
E: '#forge:tools/wrenches',
F: 'gtceu:brass_normal_item_pipe',
G: '#forge:ender_pearls'
G: 'ae2:ender_dust'
}).id('tfg:sophisticated_backpacks/shaped/void_upgrade')
// Улучшение - улучшенный уничтожитель
@ -313,11 +315,11 @@ const registerSophisticatedBackpacksRecipes = (event) => {
'BDB',
'EBA'
], {
A: 'gtceu:zpm_field_generator',
B: '#forge:plates/neutronium',
C: '#gtceu:circuits/zpm',
A: 'gtceu:ev_field_generator',
B: '#forge:plates/titanium',
C: '#gtceu:circuits/ev',
D: 'sophisticatedbackpacks:upgrade_base',
E: '#gtceu:batteries/zpm'
E: '#gtceu:batteries/ev'
}).id('tfg:sophisticated_backpacks/shaped/everlasting_upgrade')
// Улучшение - верстак
@ -332,7 +334,19 @@ const registerSophisticatedBackpacksRecipes = (event) => {
D: 'sophisticatedbackpacks:upgrade_base',
}).id('tfg:sophisticated_backpacks/shaped/crafting_upgrade')
// Улучшение - Stack Lvl. 1
// Улучшение - Stack
event.shaped('sophisticatedbackpacks:stack_upgrade_starter_tier', [
'ABA',
'CDC',
'AEA'
], {
A: '#gtceu:circuits/hv',
B: 'gtceu:mercury_barium_calcium_cuprate_single_wire',
C: '#gtceu:batteries/hv',
D: 'sophisticatedbackpacks:upgrade_base',
E: 'gtceu:hv_field_generator'
}).id('tfg:sophisticated_backpacks/shaped/stack_upgrade_starter_tier')
event.shaped('sophisticatedbackpacks:stack_upgrade_tier_1', [
'ABA',
'CDC',
@ -357,6 +371,11 @@ const registerSophisticatedBackpacksRecipes = (event) => {
D: 'sophisticatedbackpacks:upgrade_base',
}).id('tfg:sophisticated_backpacks/shaped/jukebox_upgrade')
event.shapeless('sophisticatedbackpacks:advanced_jukebox_upgrade', [
'sophisticatedbackpacks:jukebox_upgrade',
'#gtceu:circuits/mv'
]).id('tfg:sophisticated_backpacks/shaped/advanced_jukebox_upgrade')
// Улучшение - ToolSwapper
event.shaped('sophisticatedbackpacks:tool_swapper_upgrade', [
'ABC',
@ -377,4 +396,19 @@ const registerSophisticatedBackpacksRecipes = (event) => {
'sophisticatedbackpacks:tool_swapper_upgrade',
'#gtceu:circuits/mv'
]).id('tfg:sophisticated_backpacks/shapeless/advanced_tool_swapper_upgrade')
// Tank upgrade
event.shaped('sophisticatedbackpacks:tank_upgrade', [
'ABC',
'DEF',
'CGA'
], {
A: '#gtceu:circuits/mv',
B: 'gtceu:fluid_filter',
C: 'gtceu:mv_electric_pump',
D: '#forge:tools/screwdrivers',
E: 'sophisticatedbackpacks:upgrade_base',
F: '#forge:tools/wrenches',
G: 'gtceu:aluminium_drum',
}).id('tfg:sophisticated_backpacks/shaped/tank_upgrade')
}

View file

@ -9,8 +9,10 @@ const registerTFCDataForTFC = (event) => {
registerTFCKnappingTypes(event)
registerTFCItemSize(event)
registerTFCFoodData(event)
registerTFCSupportData(event)
}
//#region registerTFCMetals
const registerTFCMetals = (event) => {
event.metal('gtceu:copper', 1080, 0.00857, '#forge:ingots/copper', '#forge:double_ingots/copper', '#forge:plates/copper', 1, 'tfc:copper')
event.metal('gtceu:bismuth_bronze', 985, 0.00857, '#forge:ingots/bismuth_bronze', '#forge:double_ingots/bismuth_bronze', '#forge:plates/bismuth_bronze', 2, 'tfc:bismuth_bronze')
@ -22,16 +24,6 @@ const registerTFCMetals = (event) => {
event.metal('gtceu:blue_steel', 1540, 0.00857, '#forge:ingots/blue_steel', '#forge:double_ingots/blue_steel', '#forge:plates/blue_steel', 6, 'tfc:blue_steel')
event.metal('gtceu:red_steel', 1540, 0.00857, '#forge:ingots/red_steel', '#forge:double_ingots/red_steel', '#forge:plates/red_steel', 6, 'tfc:red_steel')
event.metal('tfg:pig_iron', 1535, 0.00857, '#forge:ingots/pig_iron', null, null, 3, 'tfc:pig_iron')
event.metal('tfg:high_carbon_steel', 1540, 0.00857, '#forge:ingots/high_carbon_steel', null, null, 3, 'tfc:high_carbon_steel')
event.metal('tfg:high_carbon_black_steel', 1535, 0.00857, '#forge:ingots/high_carbon_black_steel', null, null, 4, 'tfc:high_carbon_black_steel')
event.metal('tfg:high_carbon_red_steel', 1535, 0.00857, '#forge:ingots/high_carbon_red_steel', null, null, 5, 'tfc:high_carbon_red_steel')
event.metal('tfg:high_carbon_blue_steel', 1535, 0.00857, '#forge:ingots/high_carbon_blue_steel', null, null, 5, 'tfc:high_carbon_blue_steel')
event.metal('tfg:weak_steel', 1540, 0.00857, '#forge:ingots/weak_steel', null, null, 4, 'tfc:weak_steel')
event.metal('tfg:weak_red_steel', 1540, 0.00857, '#forge:ingots/weak_red_steel', null, null, 5, 'tfc:weak_red_steel')
event.metal('tfg:weak_blue_steel', 1540, 0.00857, '#forge:ingots/weak_blue_steel', null, null, 5, 'tfc:weak_blue_steel')
event.metal('tfg:unknown', 400, 0.006, '#forge:ingots/unknown', null, null, 0, 'tfc:unknown')
event.metal('gtceu:iron', 1535, 0.00857, '#forge:ingots/iron', '#forge:double_ingots/iron', '#forge:plates/iron', 3, 'tfc:cast_iron')
event.metal('gtceu:tin', 230, 0.02143, '#forge:ingots/tin', '#forge:double_ingots/tin', '#forge:plates/tin', 1, 'tfc:tin')
event.metal('gtceu:bismuth', 270, 0.02143, '#forge:ingots/bismuth', '#forge:double_ingots/bismuth', '#forge:plates/bismuth', 1, 'tfc:bismuth')
@ -47,7 +39,9 @@ const registerTFCMetals = (event) => {
event.metal('gtceu:red_alloy', 740, 0.01529, '#forge:ingots/red_alloy', null, '#forge:plates/red_alloy', 2, 'tfg:red_alloy')
event.metal('gtceu:tin_alloy', 1250, 0.00829, '#forge:ingots/tin_alloy', null, '#forge:plates/tin_alloy', 3, 'tfg:tin_alloy')
}
//#endregion
//#region registerTFCHeats
const registerTFCHeats = (event) => {
function makeItemHeatByTagPrefix(tagPrefix, material, tfcProperty, heatCapacity) {
@ -127,22 +121,40 @@ const registerTFCHeats = (event) => {
event.itemHeat('tfc:groundcover/seaweed', 1.0, null, null)
event.itemHeat('tfc:plant/leafy_kelp', 1.0, null, null)
event.itemHeat('tfc:plant/winged_kelp', 1.0, null, null)
// Misc
event.itemHeat('tfg:latex_soaked_gloves', 1.0, null, null)
global.MINECRAFT_DYE_NAMES.forEach (color => {
event.itemHeat(`tfg:decorative_vase/unfired/${color}`, 1.0, null, null)
})
event.itemHeat('tfg:decorative_vase/unfired', 1.0, null, null)
}
//#endregion
//#region registerTFCFuels
const registerTFCFuels = (event) => {
event.fuel('minecraft:coal', 1415, 2200, 1.0)
event.fuel('gtceu:coke_gem', 1415, 4400, 1.0)
event.fuel('gtceu:coke_dust', 1415, 1200, 0.95)
event.fuel('beneath:cursecoal', 1540, 2200, 1.0)
event.fuel('minecraft:coal', 1415, 2200, 1.0)
event.fuel('gtceu:rich_raw_coal', 1415, 2200, 0.95)
event.fuel('gtceu:raw_coal', 1415, 1900, 0.95)
event.fuel('gtceu:poor_raw_coal', 1415, 1600, 0.95)
event.fuel('gtceu:coal_dust', 1415, 600, 0.95)
}
//#endregion
//#region registerTFCLampFuels
const registerTFCLampFuels = (event) => {
event.lampFuel('gtceu:creosote', '#tfc:lamps', 1000)
event.lampFuel("gtceu:glowstone", "#tfc:lamps", -1)
}
//#endregion
//#region registerTFCFertilizers
const registerTFCFertilizers = (event) => {
event.fertilizer('gtceu:fertilizer', 0.15, 0.15, 0.15)
@ -161,17 +173,43 @@ const registerTFCFertilizers = (event) => {
event.fertilizer('gtceu:tiny_bone_dust', null, 0.01, null)
event.fertilizer('gtceu:small_bone_dust', null, 0.025, null)
}
//#endregion
//#region registerTFCKnappingTypes
const registerTFCKnappingTypes = (event) => {
// event.knappingType('gtceu:rubber_plate', 1, 5, 'tfc:item.knapping.leather', true, false, true, 'gtceu:rubber_plate', 'tfg:rubber')
// event.knappingType('gtceu:styrene_butadiene_rubber_plate', 1, 5, 'tfc:item.knapping.leather', true, false, true, 'gtceu:styrene_butadiene_rubber_plate', 'tfg:styrene_butadiene_rubber_plate')
// event.knappingType('gtceu:silicone_rubber_plate', 1, 5, 'tfc:item.knapping.leather', true, false, true, 'gtceu:silicone_rubber_plate', 'tfg:silicone_rubber_plate')
}
//#endregion
//#region registerTFCItemSize
const registerTFCItemSize = (event) => {
// TODO event.itemSize('minecraft:gold_ingot', 'huge', 'very_heavy')
}
event.itemSize('sophisticatedbackpacks:backpack', 'very_large', 'very_heavy', 'backpack_size')
event.itemSize('sophisticatedbackpacks:iron_backpack', 'very_large', 'very_heavy', 'iron_backpack_size')
event.itemSize('sophisticatedbackpacks:gold_backpack', 'very_large', 'very_heavy', 'gold_backpack_size')
event.itemSize('sophisticatedbackpacks:diamond_backpack', 'very_large', 'very_heavy', 'diamond_backpack_size')
event.itemSize('sophisticatedbackpacks:netherite_backpack', 'very_large', 'very_heavy', 'netherite_backpack_size')
global.MINECRAFT_DYE_NAMES.forEach (color => {
event.itemSize(`tfg:decorative_vase/${color}`, 'normal', 'medium', `decorative_vase/${color}`)
event.itemSize(`tfg:decorative_vase/unfired/${color}`, 'normal', 'medium', `decorative_vase/unfired/${color}`)
})
event.itemSize('tfg:decorative_vase', 'normal', 'medium', 'decorative_vase')
event.itemSize('tfg:decorative_vase/unfired', 'normal', 'medium', 'decorative_vase/unfired')
event.itemSize('man_of_many_planes:scarlet_biplane', 'huge', 'very_heavy')
event.itemSize('man_of_many_planes:economy_plane', 'huge', 'very_heavy')
event.itemSize('immersive_aircraft:airship', 'huge', 'very_heavy')
event.itemSize('immersive_aircraft:cargo_airship', 'huge', 'very_heavy')
event.itemSize('immersive_aircraft:warship', 'huge', 'very_heavy')
event.itemSize('immersive_aircraft:biplane', 'huge', 'very_heavy')
event.itemSize('immersive_aircraft:gyrodyne', 'huge', 'very_heavy')
event.itemSize('immersive_aircraft:quadrocopter', 'very_large', 'very_heavy')
}
//#endregion
//#region registerTFCFoodData
const registerTFCFoodData = (event) => {
event.foodItem('minecraft:golden_apple', food => {
food.hunger(2)
@ -184,4 +222,59 @@ const registerTFCFoodData = (event) => {
food.fruit(2)
food.decayModifier(0.2)
})
event.foodItem('minecraft:glow_berries', food => {
food.hunger(1)
food.fruit(0.5)
food.water(5)
food.decayModifier(2)
})
event.foodItem('minecraft:chorus_fruit', food => {
food.hunger(1.5)
food.fruit(1)
food.water(5)
})
event.foodItem('minecraft:red_mushroom', food => {
food.hunger(1.5)
food.vegetables(1)
food.water(5)
food.decayModifier(2)
})
event.foodItem('minecraft:brown_mushroom', food => {
food.saturation(2)
food.hunger(2)
food.vegetables(1)
food.water(2)
food.decayModifier(2)
})
event.foodItem('gtceu:chocolate_coin', food => {
food.hunger(1)
food.dairy(0.5)
})
}
//#endregion
//#region registerTFCSupportData
//up, down, horizontal
const registerTFCSupportData = (event) => {
event.support('tfg:light_concrete_support', 4, 4, 8, 'light_concrete_support')
event.support('tfg:dark_concrete_support', 4, 4, 8, 'dark_concrete_support')
event.support('tfg:reinforced_light_concrete_support', 6, 6, 16, 'reinforced_light_concrete_support')
event.support('tfg:reinforced_dark_concrete_support', 6, 6, 16, 'reinforced_dark_concrete_support')
event.support('tfg:rebar_support', 4, 4, 8, 'rebar_support')
event.support('tfg:steel_support', 6, 6, 16, 'steel_support')
const other_stone = ['pyroxenite', 'migmatite', 'travertine']
const stone_types = global.TFC_STONE_TYPES.concat(other_stone)
stone_types.forEach(stone => {
event.support(`tfg:${stone}_support`, 2, 2, 4, `${stone}_support`)
})
}
//#endregion

View file

@ -0,0 +1,95 @@
// priority: 0
function registerTFCAlabasterRecipes(event) {
event.recipes.tfc.damage_inputs_shapeless_crafting(event.recipes.minecraft.crafting_shapeless('4x tfc:alabaster_brick', ['#forge:raw_materials/gypsum', '#tfc:chisels']))
.id('tfc:crafting/alabaster_brick/raw_gypsum')
event.recipes.tfc.damage_inputs_shapeless_crafting(event.recipes.minecraft.crafting_shapeless('2x tfc:alabaster_brick', ['#forge:poor_raw_materials/gypsum', '#tfc:chisels']))
.id('tfc:crafting/alabaster_brick/poor_raw_gypsum')
event.recipes.tfc.damage_inputs_shapeless_crafting(event.recipes.minecraft.crafting_shapeless('6x tfc:alabaster_brick', ['#forge:rich_raw_materials/gypsum', '#tfc:chisels']))
.id('tfc:crafting/alabaster_brick/rich_raw_gypsum')
// Alabaster Brick
event.recipes.gtceu.assembler('tfc:alabaster/bricks')
.itemInputs('5x tfc:alabaster_brick')
.inputFluids(Fluid.of('gtceu:concrete', 72))
.itemOutputs('4x tfc:alabaster/bricks')
.duration(50)
.EUt(2)
event.recipes.gtceu.chemical_bath('tfc:alabaster/bricks')
.itemInputs('#tfc:colored_bricks_alabaster')
.inputFluids(Fluid.of('gtceu:chlorine', 72))
.itemOutputs('tfc:alabaster/bricks')
.duration(400)
.EUt(2)
.category(GTRecipeCategories.CHEM_DYES)
for (let i = 0; i < 16; i++) {
event.recipes.gtceu.chemical_bath(`tfg:tfc/alabaster/bricks/${global.MINECRAFT_DYE_NAMES[i]}`)
.itemInputs('tfc:alabaster/bricks')
.inputFluids(Fluid.of(`tfc:${global.MINECRAFT_DYE_NAMES[i]}_dye`, 72))
.itemOutputs(`tfc:alabaster/bricks/${global.MINECRAFT_DYE_NAMES[i]}`)
.duration(20)
.EUt(7)
.category(GTRecipeCategories.CHEM_DYES)
}
// Raw Alabaster
event.recipes.gtceu.chemical_bath('tfc:alabaster/raw/poor_raw_gypsum')
.itemInputs('gtceu:poor_raw_gypsum')
.inputFluids(Fluid.of('tfc:limewater', 50))
.itemOutputs('tfc:alabaster/raw')
.duration(400)
.EUt(2)
event.recipes.gtceu.chemical_bath('tfc:alabaster/raw/raw_gypsum')
.itemInputs('gtceu:raw_gypsum')
.inputFluids(Fluid.of('tfc:limewater', 100))
.itemOutputs('2x tfc:alabaster/raw')
.duration(400)
.EUt(2)
event.recipes.gtceu.chemical_bath('tfc:alabaster/raw/rich_raw_gypsum')
.itemInputs('gtceu:rich_raw_gypsum')
.inputFluids(Fluid.of('tfc:limewater', 150))
.itemOutputs('3x tfc:alabaster/raw')
.duration(400)
.EUt(2)
event.recipes.gtceu.chemical_bath('tfc:alabaster/raw')
.itemInputs('#tfc:colored_bricks_alabaster')
.inputFluids(Fluid.of('gtceu:chlorine', 72))
.itemOutputs('tfc:alabaster/raw')
.duration(400)
.EUt(2)
.category(GTRecipeCategories.CHEM_DYES)
for (let i = 0; i < 16; i++) {
event.recipes.gtceu.chemical_bath(`tfg:alabaster/raw/${global.MINECRAFT_DYE_NAMES[i]}`)
.itemInputs('tfc:alabaster/raw')
.inputFluids(Fluid.of(`tfc:${global.MINECRAFT_DYE_NAMES[i]}_dye`, 36))
.itemOutputs(`tfc:alabaster/raw/${global.MINECRAFT_DYE_NAMES[i]}`)
.duration(20)
.EUt(7)
.category(GTRecipeCategories.CHEM_DYES)
event.recipes.gtceu.chemical_bath(`tfg:alabaster/polished/${global.MINECRAFT_DYE_NAMES[i]}`)
.itemInputs('tfc:alabaster/polished')
.inputFluids(Fluid.of(`tfc:${global.MINECRAFT_DYE_NAMES[i]}_dye`, 36))
.itemOutputs(`tfc:alabaster/polished/${global.MINECRAFT_DYE_NAMES[i]}`)
.duration(20)
.EUt(7)
.category(GTRecipeCategories.CHEM_DYES)
event.recipes.gtceu.chemical_bath(`tfg:alabaster/bricks/${global.MINECRAFT_DYE_NAMES[i]}`)
.itemInputs('tfc:alabaster/bricks')
.inputFluids(Fluid.of(`tfc:${global.MINECRAFT_DYE_NAMES[i]}_dye`, 36))
.itemOutputs(`tfc:alabaster/bricks/${global.MINECRAFT_DYE_NAMES[i]}`)
.duration(20)
.EUt(7)
.category(GTRecipeCategories.CHEM_DYES)
}
}

View file

@ -0,0 +1,124 @@
// priority: 0
function registerTFCDirtRecipes(event) {
//#region Земля
// Loam + Silt -> Silty Loam (Миксер)
event.recipes.gtceu.mixer('silty_loam_dirt')
.itemInputs('tfc:dirt/loam', 'tfc:dirt/silt')
.itemOutputs('tfc:dirt/silty_loam')
.duration(200)
.EUt(16)
// Loam + Sand -> Sandy Loam (Миксер)
event.recipes.gtceu.mixer('sandy_loam_dirt')
.itemInputs('tfc:dirt/loam', '#forge:sand')
.circuit(3)
.itemOutputs('tfc:dirt/sandy_loam')
.duration(200)
.EUt(16)
// Dirt + Sticks -> Rooted Dirt
global.TFC_MUD_TYPES.forEach(mud => {
event.recipes.gtceu.mixer(`${mud}_to_rooted`)
.itemInputs(`tfc:dirt/${mud}`, "#tfc:can_be_lit_on_torch")
.itemOutputs(`tfc:rooted_dirt/${mud}`)
.duration(200)
.EUt(16)
})
global.TFC_MUD_TYPES.forEach(mud => {
event.smelting(`tfc:dirt/${mud}`, `tfc:mud/${mud}`)
.id(`tfg:smelting/${mud}_mud_to_grass`)
})
//#endregion
//#region Грязь
global.TFC_MUD_TYPES.forEach(mud => {
// Dirt -> Mud
event.recipes.gtceu.mixer(`${mud}_grass_to_mud`)
.itemInputs(`tfc:dirt/${mud}`)
.inputFluids(Fluid.of('minecraft:water', 100))
.circuit(2)
.itemOutputs(`tfc:mud/${mud}`)
.duration(200)
.EUt(16)
})
//#endregion
//AE Transform Mud
global.TFC_MUD_TYPES.forEach(mud => {
event.custom({
type: "ae2:transform",
circumstance: {
type: "fluid",
tag: "tfc:water"
},
ingredients: [
{item: `tfc:dirt/${mud}`}],
result: {item: `tfc:mud/${mud}`}
}).id(`tfg:ae_transform/${mud}_to_mud`)
})
//#region Грязь кирпичи
global.TFC_MUD_TYPES.forEach(mud => {
// Влажный кирпич -> Кирпич
event.smelting(`tfc:mud_brick/${mud}`, `tfc:drying_bricks/${mud}`)
.id(`tfg:smelting/${mud}_drying_brick_to_brick`)
event.custom({
type: "firmalife:drying",
ingredient: {
item: `tfc:drying_bricks/${mud}`
},
result: {
item: `tfc:mud_brick/${mud}`
}
}).id(`tfg:drying/${mud}_drying_brick_to_brick`)
// Кирпич -> Блок кирпичей
event.shaped(`tfc:mud_bricks/${mud}`, [
'ABA',
'BAB',
'ABA'
], {
A: `tfc:mud_brick/${mud}`,
B: '#tfc:mortar'
}).id(`tfc:crafting/soil/${mud}_mud_bricks`)
event.recipes.gtceu.assembler(`mud_bricks_${mud}`)
.itemInputs(`5x tfc:mud_brick/${mud}`)
.inputFluids(Fluid.of('gtceu:concrete', 72))
.itemOutputs(`4x tfc:mud_bricks/${mud}`)
.duration(50)
.EUt(2)
// Блок кирпичей -> Ступени
event.remove({ id: `tfc:crafting/soil/${mud}_mud_bricks_stairs` })
event.stonecutting(`tfc:mud_bricks/${mud}_stairs`, `tfc:mud_bricks/${mud}`)
.id(`tfc:stonecutting/soil/${mud}_mud_bricks_stairs`)
// Блок кирпичей -> Плиты
event.remove({ id: `tfc:crafting/soil/${mud}_mud_bricks_slab` })
event.stonecutting(`2x tfc:mud_bricks/${mud}_slab`, `tfc:mud_bricks/${mud}`)
.id(`tfc:stonecutting/soil/${mud}_mud_bricks_slab`)
// Блок кирпичей -> Стена
event.remove({ id: `tfc:crafting/soil/${mud}_mud_bricks_wall` })
event.stonecutting(`tfc:mud_bricks/${mud}_wall`, `tfc:mud_bricks/${mud}`)
.id(`tfc:stonecutting/soil/${mud}_mud_bricks_wall`)
})
//#endregion
}

View file

@ -0,0 +1,132 @@
// priority: 0
/**
*
* @param {Internal.RecipesEventJS} event
*/
function registerTFCDyeRecipes(event) {
//#region Выход: Свечи
event.recipes.gtceu.chemical_bath(`tfg:tfc/candle_decolor`)
.itemInputs('#tfc:colored_candles')
.inputFluids(Fluid.of(`gtceu:chlorine`, 72))
.itemOutputs('tfc:candle')
.duration(300)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
global.MINECRAFT_DYE_NAMES.forEach(dye => {
event.recipes.gtceu.chemical_bath(`tfg:tfc/${dye}_candle`)
.itemInputs('tfc:candle')
.inputFluids(Fluid.of(`tfc:${dye}_dye`, 36))
.itemOutputs(`tfc:candle/${dye}`)
.duration(300)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
})
//#endregion
//#region Обычный сосуд
event.recipes.gtceu.chemical_bath(`unfired_vessel_decolor`)
.itemInputs('#tfg:colorized_unfired_vessels')
.inputFluids(Fluid.of(`gtceu:chlorine`, 36))
.itemOutputs('tfc:ceramic/unfired_vessel')
.duration(300)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
event.recipes.gtceu.chemical_bath(`fired_vessel_decolor`)
.itemInputs('#tfg:colorized_fired_vessels')
.inputFluids(Fluid.of(`gtceu:chlorine`, 36))
.itemOutputs('tfc:ceramic/vessel')
.duration(300)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
global.MINECRAFT_DYE_NAMES.forEach(dye => {
event.recipes.gtceu.chemical_bath(`${dye}_unfired_vessel`)
.itemInputs('tfc:ceramic/unfired_vessel')
.inputFluids(Fluid.of(`tfc:${dye}_dye`, 36))
.itemOutputs(`tfc:ceramic/${dye}_unfired_vessel`)
.duration(150)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
event.recipes.gtceu.chemical_bath(`${dye}_vessel`)
.itemInputs('tfc:ceramic/vessel')
.inputFluids(Fluid.of(`tfc:${dye}_dye`, 36))
.itemOutputs(`tfc:ceramic/${dye}_glazed_vessel`)
.duration(150)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
})
//#endregion
//#region Большой сосуд
event.recipes.gtceu.chemical_bath(`unfired_large_vessel_decolor`)
.itemInputs('#tfg:colorized_unfired_large_vessels')
.inputFluids(Fluid.of(`gtceu:chlorine`, 72))
.itemOutputs('tfc:ceramic/unfired_large_vessel')
.duration(300)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
event.recipes.gtceu.chemical_bath(`fired_large_vessel_decolor`)
.itemInputs('#tfg:colorized_fired_large_vessels')
.inputFluids(Fluid.of(`gtceu:chlorine`, 72))
.itemOutputs('tfc:ceramic/large_vessel')
.duration(300)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
global.MINECRAFT_DYE_NAMES.forEach(dye => {
event.recipes.gtceu.chemical_bath(`${dye}_large_unfired_vessel`)
.itemInputs('tfc:ceramic/unfired_large_vessel')
.inputFluids(Fluid.of(`tfc:${dye}_dye`, 72))
.itemOutputs(`tfc:ceramic/unfired_large_vessel/${dye}`)
.duration(150)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
event.recipes.gtceu.chemical_bath(`${dye}_large_vessel`)
.itemInputs('tfc:ceramic/large_vessel')
.inputFluids(Fluid.of(`tfc:${dye}_dye`, 72))
.itemOutputs(`tfc:ceramic/large_vessel/${dye}`)
.duration(150)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
})
//#endregion
//#region Replace existing dyes
global.MINECRAFT_DYE_NAMES.forEach(dyeName => {
event.remove(`tfc:pot/${dyeName}_dye`);
let inputArray = new Array(0);
for (let i = 1; i < 5; i++) {
inputArray.length = 0;
for (let j = 1; j < i + 1; j++) {
inputArray.push(`#forge:dyes/${dyeName}`);
}
event.recipes.tfc.pot(inputArray, Fluid.of('tfc:salt_water', 250 * i), 600, 2000)
.fluidOutput(Fluid.of(`tfc:${dyeName}_dye`, 144 * i))
.id(`tfc:pot/${i}x_${dyeName}_dye`)
}
})
//#endregion
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,210 @@
// priority: 0
function registerTFCKnappingRecipes(event) {
//#region Топор
// Инструмент
event.remove({ id: `tfc:crafting/stone/axe_igneous_extrusive` })
event.remove({ id: `tfc:crafting/stone/axe_igneous_intrusive` })
event.remove({ id: `tfc:crafting/stone/axe_metamorphic` })
event.remove({ id: `tfc:crafting/stone/axe_sedimentary` })
// Оголовья
event.remove({ id: `tfc:rock_knapping/axe_head_igneous_extrusive` })
event.remove({ id: `tfc:rock_knapping/axe_head_igneous_intrusive` })
event.remove({ id: `tfc:rock_knapping/axe_head_metamorphic` })
event.remove({ id: `tfc:rock_knapping/axe_head_sedimentary` })
event.recipes.tfc.knapping('gtceu:stone_axe_head', 'tfc:rock', [
" X ",
"XXXX ",
"XXXXX",
"XXXX ",
" X "
])
.ingredient('#tfc:rock_knapping')
.outsideSlotRequired(false)
.id('tfg:rock_knapping/stone_axe_head')
//#endregion
//#region Молот
// Инструмент
event.remove({ id: `tfc:crafting/stone/hammer_igneous_extrusive` })
event.remove({ id: `tfc:crafting/stone/hammer_igneous_intrusive` })
event.remove({ id: `tfc:crafting/stone/hammer_metamorphic` })
event.remove({ id: `tfc:crafting/stone/hammer_sedimentary` })
// Оголовья
event.remove({ id: `tfc:rock_knapping/hammer_head_igneous_extrusive` })
event.remove({ id: `tfc:rock_knapping/hammer_head_igneous_intrusive` })
event.remove({ id: `tfc:rock_knapping/hammer_head_metamorphic` })
event.remove({ id: `tfc:rock_knapping/hammer_head_sedimentary` })
event.recipes.tfc.knapping('gtceu:stone_hammer_head', 'tfc:rock', [
"XXXXX",
"XXXXX",
" X "
])
.ingredient('#tfc:rock_knapping')
.outsideSlotRequired(false)
.id('tfg:rock_knapping/stone_hammer_head')
//#endregion
//#region Мотыга
// Инструмент
event.remove({ id: `tfc:crafting/stone/hoe_igneous_extrusive` })
event.remove({ id: `tfc:crafting/stone/hoe_igneous_intrusive` })
event.remove({ id: `tfc:crafting/stone/hoe_metamorphic` })
event.remove({ id: `tfc:crafting/stone/hoe_sedimentary` })
// Оголовья
event.remove({ id: `tfc:rock_knapping/hoe_head_igneous_extrusive` })
event.remove({ id: `tfc:rock_knapping/hoe_head_1_igneous_extrusive` })
event.remove({ id: `tfc:rock_knapping/hoe_head_2_igneous_extrusive` })
event.remove({ id: `tfc:rock_knapping/hoe_head_igneous_intrusive` })
event.remove({ id: `tfc:rock_knapping/hoe_head_1_igneous_intrusive` })
event.remove({ id: `tfc:rock_knapping/hoe_head_2_igneous_intrusive` })
event.remove({ id: `tfc:rock_knapping/hoe_head_metamorphic` })
event.remove({ id: `tfc:rock_knapping/hoe_head_1_metamorphic` })
event.remove({ id: `tfc:rock_knapping/hoe_head_2_metamorphic` })
event.remove({ id: `tfc:rock_knapping/hoe_head_sedimentary` })
event.remove({ id: `tfc:rock_knapping/hoe_head_1_sedimentary` })
event.remove({ id: `tfc:rock_knapping/hoe_head_2_sedimentary` })
event.recipes.tfc.knapping('gtceu:stone_hoe_head', 'tfc:rock', [
"XXXXX",
" XX"
])
.ingredient('#tfc:rock_knapping')
.outsideSlotRequired(false)
.id('tfg:rock_knapping/stone_hoe_head')
event.recipes.tfc.knapping('2x gtceu:stone_hoe_head', 'tfc:rock', [
"XXXXX",
"XX ",
" ",
"XXXXX",
"XX "
])
.ingredient('#tfc:rock_knapping')
.outsideSlotRequired(false)
.id('tfg:rock_knapping/stone_hoe_head_1')
event.recipes.tfc.knapping('2x gtceu:stone_hoe_head', 'tfc:rock', [
"XXXXX",
"XX ",
" ",
"XXXXX",
" XX"
])
.ingredient('#tfc:rock_knapping')
.outsideSlotRequired(false)
.id('tfg:rock_knapping/stone_hoe_head_2')
//#endregion
//#region Нож
// Инструмент
event.remove({ id: `tfc:crafting/stone/knife_igneous_extrusive` })
event.remove({ id: `tfc:crafting/stone/knife_igneous_intrusive` })
event.remove({ id: `tfc:crafting/stone/knife_metamorphic` })
event.remove({ id: `tfc:crafting/stone/knife_sedimentary` })
// Оголовья
event.remove({ id: `tfc:rock_knapping/knife_head_igneous_extrusive` })
event.remove({ id: `tfc:rock_knapping/knife_head_1_igneous_extrusive` })
event.remove({ id: `tfc:rock_knapping/knife_head_2_igneous_extrusive` })
event.remove({ id: `tfc:rock_knapping/knife_head_3_igneous_extrusive` })
event.remove({ id: `tfc:rock_knapping/knife_head_igneous_intrusive` })
event.remove({ id: `tfc:rock_knapping/knife_head_1_igneous_intrusive` })
event.remove({ id: `tfc:rock_knapping/knife_head_2_igneous_intrusive` })
event.remove({ id: `tfc:rock_knapping/knife_head_3_igneous_intrusive` })
event.remove({ id: `tfc:rock_knapping/knife_head_metamorphic` })
event.remove({ id: `tfc:rock_knapping/knife_head_1_metamorphic` })
event.remove({ id: `tfc:rock_knapping/knife_head_2_metamorphic` })
event.remove({ id: `tfc:rock_knapping/knife_head_3_metamorphic` })
event.remove({ id: `tfc:rock_knapping/knife_head_sedimentary` })
event.remove({ id: `tfc:rock_knapping/knife_head_1_sedimentary` })
event.remove({ id: `tfc:rock_knapping/knife_head_2_sedimentary` })
event.remove({ id: `tfc:rock_knapping/knife_head_3_sedimentary` })
event.recipes.tfc.knapping('gtceu:stone_knife_head', 'tfc:rock', [
"X ",
"XX",
"XX",
"XX",
"XX"
])
.ingredient('#tfc:rock_knapping')
.outsideSlotRequired(false)
.id('tfg:rock_knapping/stone_knife_head')
event.recipes.tfc.knapping('2x gtceu:stone_knife_head', 'tfc:rock', [
"X X ",
"XX XX",
"XX XX",
"XX XX",
"XX XX"
])
.ingredient('#tfc:rock_knapping')
.outsideSlotRequired(false)
.id('tfg:rock_knapping/stone_knife_head_1')
event.recipes.tfc.knapping('2x gtceu:stone_knife_head', 'tfc:rock', [
"X X",
"XX XX",
"XX XX",
"XX XX",
"XX XX"
])
.ingredient('#tfc:rock_knapping')
.outsideSlotRequired(false)
.id('tfg:rock_knapping/stone_knife_head_2')
event.recipes.tfc.knapping('2x gtceu:stone_knife_head', 'tfc:rock', [
" X X ",
"XX XX",
"XX XX",
"XX XX",
"XX XX"
])
.ingredient('#tfc:rock_knapping')
.outsideSlotRequired(false)
.id('tfg:rock_knapping/stone_knife_head_3')
//#endregion
//#region Лопата
// Инструмент
event.remove({ id: `tfc:crafting/stone/shovel_igneous_extrusive` })
event.remove({ id: `tfc:crafting/stone/shovel_igneous_intrusive` })
event.remove({ id: `tfc:crafting/stone/shovel_metamorphic` })
event.remove({ id: `tfc:crafting/stone/shovel_sedimentary` })
// Оголовья
event.remove({ id: `tfc:rock_knapping/shovel_head_igneous_extrusive` })
event.remove({ id: `tfc:rock_knapping/shovel_head_igneous_intrusive` })
event.remove({ id: `tfc:rock_knapping/shovel_head_metamorphic` })
event.remove({ id: `tfc:rock_knapping/shovel_head_sedimentary` })
event.recipes.tfc.knapping('gtceu:stone_shovel_head', 'tfc:rock', [
"XXX",
"XXX",
"XXX",
"XXX",
" X "
])
.ingredient('#tfc:rock_knapping')
.outsideSlotRequired(false)
.id('tfg:rock_knapping/stone_shovel_head')
//#endregion
}

View file

@ -0,0 +1,423 @@
// priority: 0
function registerTFCMachineRecipes(event) {
// Бумага
event.recipes.gtceu.cutter('tfg:unrefined_paper')
.itemInputs('tfc:unrefined_paper')
.itemOutputs('minecraft:paper')
.duration(100)
.EUt(7)
// Limewater
event.recipes.gtceu.mixer('tfg:limewater_from_lime')
.itemInputs('tfc:powder/lime')
.inputFluids(Fluid.of('water', 500))
.outputFluids(Fluid.of('tfc:limewater', 500))
.duration(20)
.EUt(16)
event.recipes.gtceu.mixer('tfg:limewater_from_flux')
.itemInputs('tfc:powder/flux')
.inputFluids(Fluid.of('water', 500))
.outputFluids(Fluid.of('tfc:limewater', 500))
.duration(20)
.EUt(16)
// Tannin
event.recipes.gtceu.chemical_bath('tfg:tannin')
.itemInputs('#tfc:makes_tannin')
.inputFluids(Fluid.of('water', 1000))
.outputFluids(Fluid.of('tfc:tannin', 1000))
.duration(2400)
.EUt(16)
// Soaked hides
event.recipes.gtceu.chemical_bath('tfg:small_soaked_hide')
.itemInputs('tfc:small_raw_hide')
.inputFluids(Fluid.of('tfc:limewater', 300))
.itemOutputs('tfc:small_soaked_hide')
.duration(1600)
.EUt(16)
event.recipes.gtceu.chemical_bath('tfg:medium_soaked_hide')
.itemInputs('tfc:medium_raw_hide')
.inputFluids(Fluid.of('tfc:limewater', 400))
.itemOutputs('tfc:medium_soaked_hide')
.duration(2400)
.EUt(16)
event.recipes.gtceu.chemical_bath('tfg:large_soaked_hide')
.itemInputs('tfc:large_raw_hide')
.inputFluids(Fluid.of('tfc:limewater', 500))
.itemOutputs('tfc:large_soaked_hide')
.duration(3200)
.EUt(16)
// Scraped Hides
event.recipes.gtceu.cutter('tfg:small_scraped_hide')
.itemInputs('tfc:small_soaked_hide')
.itemOutputs('tfc:small_scraped_hide')
.duration(100)
.EUt(7)
event.recipes.gtceu.cutter('tfg:medium_scraped_hide')
.itemInputs('tfc:medium_soaked_hide')
.itemOutputs('tfc:medium_scraped_hide')
.duration(100)
.EUt(7)
event.recipes.gtceu.cutter('tfg:large_scraped_hide')
.itemInputs('tfc:large_soaked_hide')
.itemOutputs('tfc:large_scraped_hide')
.duration(100)
.EUt(7)
// Prepared hides
event.recipes.gtceu.chemical_bath('tfg:small_prepared_hide')
.itemInputs('tfc:small_soaked_hide')
.inputFluids(Fluid.of('water', 300))
.itemOutputs('tfc:small_prepared_hide')
.duration(1600)
.EUt(16)
event.recipes.gtceu.chemical_bath('tfg:medium_prepared_hide')
.itemInputs('tfc:medium_soaked_hide')
.inputFluids(Fluid.of('water', 400))
.itemOutputs('tfc:medium_prepared_hide')
.duration(2400)
.EUt(16)
event.recipes.gtceu.chemical_bath('tfg:large_prepared_hide')
.itemInputs('tfc:large_soaked_hide')
.inputFluids(Fluid.of('water', 500))
.itemOutputs('tfc:large_prepared_hide')
.duration(3200)
.EUt(16)
// Leather
event.recipes.gtceu.chemical_bath('tfg:small_leather')
.itemInputs('tfc:small_prepared_hide')
.inputFluids(Fluid.of('tfc:tannin', 300))
.itemOutputs('minecraft:leather')
.duration(1600)
.EUt(16)
event.recipes.gtceu.chemical_bath('tfg:medium_leather')
.itemInputs('tfc:medium_prepared_hide')
.inputFluids(Fluid.of('tfc:tannin', 400))
.itemOutputs('2x minecraft:leather')
.duration(2400)
.EUt(16)
event.recipes.gtceu.chemical_bath('tfg:large_leather')
.itemInputs('tfc:large_prepared_hide')
.inputFluids(Fluid.of('tfc:tannin', 500))
.itemOutputs('3x minecraft:leather')
.duration(3200)
.EUt(16)
//#region Рецепты плоского теста
global.TFC_MIXER_FLATBREAD_DOUGH_RECIPE_COMPONENTS.forEach(element => {
event.recipes.gtceu.mixer(element.name)
.itemInputs(element.input)
.inputFluids(Fluid.of('minecraft:water', 100))
.itemOutputs(element.output)
.duration(300)
.EUt(16)
.circuit(3)
})
//#endregion
//#region Молды в ассемблере
for (let i = 0; i < global.TFC_CLAY_TO_UNFIRED_MOLD_RECIPE_COMPONENTS.length; i++) {
let element = global.TFC_CLAY_TO_UNFIRED_MOLD_RECIPE_COMPONENTS[i];
event.recipes.gtceu.assembler(`tfg:tfc/${element.name}`)
.itemInputs(element.input)
.circuit(i)
.itemOutputs(element.output)
.duration(450)
.EUt(2)
}
//#endregion
//#region Стеклянные смеси в бутылки в ассемблере
global.TFC_BATCH_TO_BOTTLE_ASSEMBLING_RECIPE_COMPONENTS.forEach(element => {
event.recipes.gtceu.alloy_smelter(`tfg:tfc/${element.name}`)
.itemInputs(element.input)
.notConsumable('gtceu:bottle_casting_mold')
.itemOutputs(element.output)
.duration(100)
.EUt(2)
})
//#endregion
//#region СЫЫЫР 0_0
// Rennet
event.recipes.gtceu.fermenter('tfg:fermenter/vegetable_rennet')
.itemInputs('#tfg:ferments_to_rennet')
.itemOutputs('firmalife:rennet')
.duration(400)
.EUt(16)
event.recipes.gtceu.fermenter('tfg:fermenter/biomass_rennet')
.inputFluids(Fluid.of('gtceu:fermented_biomass', 100))
.itemOutputs('firmalife:rennet')
.duration(2400)
.EUt(16)
// Curdled milk
event.recipes.gtceu.fermenter('tfg:fermenter/curdled_milk')
.inputFluids(Fluid.of('minecraft:milk', 1000))
.itemInputs('firmalife:rennet')
.outputFluids(Fluid.of('tfc:curdled_milk'))
.duration(2400)
.EUt(16)
event.recipes.gtceu.fermenter('tfg:fermenter/curdled_yak_milk')
.inputFluids(Fluid.of('firmalife:yak_milk', 1000))
.itemInputs('firmalife:rennet')
.outputFluids(Fluid.of('firmalife:curdled_yak_milk'))
.duration(2400)
.EUt(16)
event.recipes.gtceu.fermenter('tfg:fermenter/curdled_goat_milk')
.inputFluids(Fluid.of('firmalife:goat_milk', 1000))
.itemInputs('firmalife:rennet')
.outputFluids(Fluid.of('firmalife:curdled_goat_milk'))
.duration(2400)
.EUt(16)
//Curds
event.recipes.gtceu.fermenter('tfg:fermenter/milk_curd')
.inputFluids(Fluid.of('tfc:curdled_milk', 1000))
.itemOutputs('firmalife:food/milk_curd')
.duration(1200)
.EUt(16)
event.recipes.gtceu.fermenter('tfg:fermenter/yak_curd')
.inputFluids(Fluid.of('firmalife:curdled_yak_milk', 1000))
.itemOutputs('firmalife:food/yak_curd')
.duration(1200)
.EUt(16)
event.recipes.gtceu.fermenter('tfg:fermenter/goat_curd')
.inputFluids(Fluid.of('firmalife:curdled_goat_milk', 1000))
.itemOutputs('firmalife:food/goat_curd')
.duration(1200)
.EUt(16)
// Cheese wheels
event.recipes.gtceu.fermenter('tfg:fermenter/gouda_wheel')
.inputFluids(Fluid.of('tfc:salt_water', 750))
.itemInputs('3x firmalife:food/milk_curd')
.itemOutputs('firmalife:gouda_wheel')
.duration(12000)
.EUt(24)
event.recipes.gtceu.fermenter('tfg:fermenter/shosha_wheel')
.inputFluids(Fluid.of('tfc:salt_water', 750))
.itemInputs('3x firmalife:food/yak_curd')
.itemOutputs('firmalife:shosha_wheel')
.duration(12000)
.EUt(24)
event.recipes.gtceu.fermenter('tfg:fermenter/feta_wheel')
.inputFluids(Fluid.of('tfc:salt_water', 750))
.itemInputs('3x firmalife:food/goat_curd')
.itemOutputs('firmalife:feta_wheel')
.duration(12000)
.EUt(24)
// Cutting
event.recipes.gtceu.cutter('tfg:cutter/gouda')
.itemInputs('firmalife:gouda_wheel')
.itemOutputs('4x firmalife:food/gouda')
.duration(40)
.EUt(7)
event.recipes.gtceu.cutter('tfg:cutter/shosha')
.itemInputs('firmalife:shosha_wheel')
.itemOutputs('4x firmalife:food/shosha')
.duration(40)
.EUt(7)
event.recipes.gtceu.cutter('tfg:cutter/feta')
.itemInputs('firmalife:feta_wheel')
.itemOutputs('4x firmalife:food/feta')
.duration(40)
.EUt(7)
event.recipes.gtceu.cutter('tfg:cutter/cheddar')
.itemInputs('firmalife:cheddar_wheel')
.itemOutputs('4x firmalife:food/cheddar')
.duration(40)
.EUt(7)
event.recipes.gtceu.cutter('tfg:cutter/chevre')
.itemInputs('firmalife:chevre_wheel')
.itemOutputs('4x firmalife:food/chevre')
.duration(40)
.EUt(7)
event.recipes.gtceu.cutter('tfg:cutter/rajya_metok')
.itemInputs('firmalife:rajya_metok_wheel')
.itemOutputs('4x firmalife:food/rajya_metok')
.duration(40)
.EUt(7)
// Misc
global.TFC_MILKS.forEach(milk => {
event.recipes.gtceu.fermenter(`tfg:fermenter/cream_from_${milk.id.replace(':', '_')}`)
.inputFluids(Fluid.of(milk.id, 1000))
.outputFluids(Fluid.of('firmalife:cream'))
.duration(1200)
.EUt(24)
})
event.recipes.gtceu.mixer('tfg:mixer/tomato_sauce')
.itemInputs('firmalife:food/tomato_sauce_mix')
.inputFluids(Fluid.of('minecraft:water', 200))
.itemOutputs('firmalife:food/tomato_sauce')
.duration(200)
.EUt(24)
//#endregion
//#region Оливки
event.recipes.gtceu.macerator(`tfg:tfc/olive_paste`)
.itemInputs('tfc:food/olive')
.itemOutputs('2x tfc:olive_paste')
.duration(60)
.EUt(2)
event.recipes.gtceu.mixer('tfg:tfc/olive_oil_water')
.inputFluids(Fluid.of('water', 200))
.itemInputs('2x tfc:olive_paste')
.outputFluids(Fluid.of('tfc:olive_oil_water', 200))
.duration(200)
.EUt(28)
event.recipes.gtceu.distillery('tfg:tfc/olive_oil')
.inputFluids(Fluid.of('tfc:olive_oil_water', 250))
.outputFluids(Fluid.of('tfc:olive_oil', 50))
.duration(600)
.EUt(28)
//#endregion
// Lamp Glass
event.recipes.gtceu.alloy_smelter(`tfg:tfc/lamp_glass`)
.itemInputs('#tfc:glass_batches')
.notConsumable('#tfg:unfinished_lamps')
.itemOutputs('tfc:lamp_glass')
.duration(100)
.EUt(2)
// Glass lens
event.recipes.gtceu.alloy_smelter(`tfg:tfc/glass_lens`)
.itemInputs('tfc:silica_glass_batch')
.notConsumable('#forge:lenses')
.itemOutputs('tfc:lens')
.duration(100)
.EUt(2)
// Empty Jar
event.recipes.gtceu.assembler(`tfg:tfc/glass_jar`)
.itemInputs('#tfc:glass_batches_tier_2')
.circuit(2)
.itemOutputs('tfc:empty_jar')
.duration(100)
.EUt(2)
// Wool Yarn
event.recipes.gtceu.macerator('macerate_wool')
.itemInputs('#minecraft:wool')
.itemOutputs('tfc:wool_yarn')
.chancedOutput('tfc:wool_yarn', 9000, 0)
.chancedOutput('tfc:wool_yarn', 5000, 0)
.chancedOutput('tfc:wool_yarn', 2000, 0)
.duration(200)
.EUt(2)
// LimeWater + Sand -> Mortar
event.recipes.gtceu.centrifuge('mortar')
.itemInputs('#forge:sand')
.inputFluids(Fluid.of('tfc:limewater', 100))
.itemOutputs('16x tfc:mortar')
.duration(800)
.EUt(8)
// 1x Small SheepSkin -> 1x Wool
event.recipes.gtceu.assembler('tfg:tfc/wool_1')
.itemInputs('tfc:small_sheepskin_hide')
.itemOutputs('tfc:wool')
.duration(100)
.EUt(4)
// 1x Medium SheepSkin -> 1x Wool
event.recipes.gtceu.assembler('tfg:tfc/wool_2')
.itemInputs('tfc:medium_sheepskin_hide')
.itemOutputs('2x tfc:wool')
.duration(100)
.EUt(4)
// 1x Large SheepSkin -> 1x Wool
event.recipes.gtceu.assembler('tfg:tfc/wool_3')
.itemInputs('tfc:large_sheepskin_hide')
.itemOutputs('3x tfc:wool')
.duration(100)
.EUt(4)
// Wool Yarn
event.recipes.gtceu.wiremill('tfg:tfc/wool_yarn')
.itemInputs('tfc:wool')
.itemOutputs('8x tfc:wool_yarn')
.duration(100)
.EUt(4)
// Burlap Cloth
event.recipes.gtceu.assembler('tfg:tfc/burlap_cloth')
.itemInputs('12x tfc:jute_fiber')
.circuit(0)
.itemOutputs('tfc:burlap_cloth')
.duration(100)
.EUt(4)
// Silk Cloth
event.recipes.gtceu.assembler('tfg:tfc/silk_cloth')
.itemInputs('24x minecraft:string')
.circuit(0)
.itemOutputs('tfc:silk_cloth')
.duration(100)
.EUt(4)
// Wool Cloth
event.recipes.gtceu.assembler('tfg:tfc/wool_cloth')
.itemInputs('16x tfc:wool_yarn')
.circuit(0)
.itemOutputs('tfc:wool_cloth')
.duration(100)
.EUt(4)
// Cloths to Wool
event.recipes.gtceu.assembler('tfg:tfc/cloth_to_wool')
.itemInputs('4x #tfc:sewing_light_cloth')
.itemOutputs('8x minecraft:white_wool')
.circuit(16)
.duration(100)
.EUt(4)
// Jute Fiber
generateMixerRecipe(event, 'tfc:jute', Fluid.of('minecraft:water', 200), 'tfc:jute_fiber', null, [], 100, 4, 16, 'tfg:tfc/jute_fiber')
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,335 @@
// priority: 0
function registerTFCMetalsRecipes(event) {
//#region Рецепты для новых сплавов
event.recipes.tfc.alloy('tfg:red_alloy', [
TFC.alloyPart('tfg:redstone', 0.75, 0.85),
TFC.alloyPart('tfc:copper', 0.15, 0.25)
]).id('tfg:alloy/red_alloy')
event.recipes.tfc.alloy('tfg:tin_alloy', [
TFC.alloyPart('tfc:tin', 0.45, 0.55),
TFC.alloyPart('tfc:cast_iron', 0.45, 0.55)
]).id('tfg:alloy/tin_alloy')
//#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 машинах
// Сырая крица -> Укрепленная крица
event.recipes.gtceu.forge_hammer('tfg/refined_bloom')
.itemInputs('tfc:raw_iron_bloom')
.itemOutputs('tfc:refined_iron_bloom')
.duration(1000)
.EUt(4)
// Укрепленная крица -> Слиток кованного железа
event.recipes.gtceu.forge_hammer('tfg/wrought_iron_ingot')
.itemInputs('tfc:refined_iron_bloom')
.itemOutputs('gtceu:wrought_iron_ingot')
.duration(1000)
.EUt(4)
// Чугун -> Высокоуглеродная сталь
event.recipes.gtceu.forge_hammer('tfg/high_carbon_steel')
.itemInputs('tfc:metal/ingot/pig_iron')
.itemOutputs('tfc:metal/ingot/high_carbon_steel')
.duration(700)
.EUt(4)
// Высокоуглеродная сталь -> Cталь
event.recipes.gtceu.forge_hammer('tfg/steel')
.itemInputs('tfc:metal/ingot/high_carbon_steel')
.itemOutputs('gtceu:steel_ingot')
.duration(700)
.EUt(4)
// Высокоуглеродная черная сталь -> черная сталь
event.recipes.gtceu.forge_hammer('tfg/black_steel')
.itemInputs('tfc:metal/ingot/high_carbon_black_steel')
.itemOutputs('tfc:metal/ingot/black_steel')
.duration(900)
.EUt(4)
// Высокоуглеродная синяя сталь -> синяя сталь
event.recipes.gtceu.forge_hammer('tfg/blue_steel')
.itemInputs('tfc:metal/ingot/high_carbon_blue_steel')
.itemOutputs('tfc:metal/ingot/blue_steel')
.duration(1000)
.EUt(4)
// Высокоуглеродная красная сталь -> красная сталь
event.recipes.gtceu.forge_hammer('tfg/red_steel')
.itemInputs('tfc:metal/ingot/high_carbon_red_steel')
.itemOutputs('tfc:metal/ingot/red_steel')
.duration(1000)
.EUt(4)
// Слабая сталь + Чугун -> Высокоуглеродная черная сталь
event.recipes.gtceu.alloy_smelter('tfg/high_carbon_black_steel')
.itemInputs('tfc:metal/ingot/weak_steel', 'tfc:metal/ingot/pig_iron')
.itemOutputs('2x tfc:metal/ingot/high_carbon_black_steel')
.duration(1000)
.EUt(4)
// Слабая синяя сталь + Черная сталь -> Высокоуглеродная синяя сталь
event.recipes.gtceu.alloy_smelter('tfg/high_carbon_blue_steel')
.itemInputs('tfc:metal/ingot/weak_blue_steel', 'tfc:metal/ingot/black_steel')
.itemOutputs('2x tfc:metal/ingot/high_carbon_blue_steel')
.duration(1000)
.EUt(4)
// Слабая красная сталь + Черная сталь -> Высокоуглеродная красная сталь
event.recipes.gtceu.alloy_smelter('tfg/high_carbon_red_steel')
.itemInputs('tfc:metal/ingot/weak_red_steel', 'tfc:metal/ingot/black_steel')
.itemOutputs('2x tfc:metal/ingot/high_carbon_red_steel')
.duration(1000)
.EUt(4)
const TFC_INTERMEDIATE_METALS =
[
{ metal: 'pig_iron', meltTemp: 1535 },
{ metal: 'high_carbon_steel', meltTemp: 1540 },
{ metal: 'high_carbon_black_steel', meltTemp: 1540 },
{ metal: 'high_carbon_red_steel', meltTemp: 1540 },
{ metal: 'high_carbon_blue_steel', meltTemp: 1540 },
{ metal: 'weak_steel', meltTemp: 1540 },
{ metal: 'weak_blue_steel', meltTemp: 1540 },
{ metal: 'weak_red_steel', meltTemp: 1540 },
{ metal: 'unknown', meltTemp: 400 }
]
TFC_INTERMEDIATE_METALS.forEach(x => {
event.recipes.tfc.casting(`tfc:metal/ingot/${x.metal}`, 'tfc:ceramic/ingot_mold', Fluid.of(`tfc:metal/${x.metal}`, 144), 0.1)
.id(`tfc:casting/${x.metal}_ingot`)
event.recipes.tfc.casting(`tfc:metal/ingot/${x.metal}`, 'tfc:ceramic/fire_ingot_mold', Fluid.of(`tfc:metal/${x.metal}`, 144), 0.01)
.id(`tfc:casting/${x.metal}_fire_ingot`)
event.recipes.tfc.heating(`tfc:metal/ingot/${x.metal}`, x.meltTemp)
.resultFluid(Fluid.of(`tfc:metal/${x.metal}`, 144))
.id(`tfc:heating/metal/${x.metal}_ingot`)
event.recipes.create.filling(
Item.of('tfc:ceramic/ingot_mold',
{
tank: {
FluidName: `tfc:metal/${x.metal}`,
Amount: 144
}
}),
[
Fluid.of(`tfc:metal/${x.metal}`, 144),
Item.of('tfc:ceramic/ingot_mold').strongNBT()
])
.id(`tfg:tfc/filling/${x.metal}_ingot`)
event.recipes.create.filling(
Item.of('tfc:ceramic/fire_ingot_mold',
{
tank: {
FluidName: `tfc:metal/${x.metal}`,
Amount: 144
}
}),
[
Fluid.of(`tfc:metal/${x.metal}`, 144),
Item.of('tfc:ceramic/fire_ingot_mold').strongNBT()
]
).id(`tfg:tfc/filling/${x.metal}_fire_ingot`)
})
//#endregion
//#region Фикс рецептов металлических предметов
// Рецепт Jacks
event.recipes.tfc.welding('tfc:jacks', '#forge:rods/brass', '#forge:plates/brass', 2)
.id(`tfc:welding/jacks`)
// Декрафт Jacks
event.recipes.tfc.heating('tfc:jacks', 930)
.resultFluid(Fluid.of('gtceu:brass', 144))
.id(`tfc:heating/jacks`)
// Декрафт Gem Saw
event.recipes.tfc.heating('tfc:gem_saw', 930)
.resultFluid(Fluid.of('gtceu:brass', 72))
.id(`tfc:heating/gem_saw`)
// Декрафт сырой крицы в жидкость
event.recipes.tfc.heating(`tfc:raw_iron_bloom`, 1535)
.resultFluid(Fluid.of('gtceu:iron', 144))
.id(`tfc:heating/raw_bloom`)
// Декрафт укрепленной крицы в жидкость
event.recipes.tfc.heating(`tfc:refined_iron_bloom`, 1535)
.resultFluid(Fluid.of('gtceu:iron', 144))
.id(`tfc:heating/refined_bloom`)
// Гриль
event.recipes.tfc.heating('tfc:wrought_iron_grill', 1535)
.resultFluid(Fluid.of('gtceu:iron', 288))
.id(`tfc:heating/grill`)
// Ванильная дверь декрафт
event.recipes.tfc.heating('minecraft:iron_door', 1535)
.resultFluid(Fluid.of('gtceu:iron', 144))
.id(`tfc:heating/iron_door`)
// Ванильная дверь на наковальне
event.recipes.tfc.anvil('minecraft:iron_door', '#forge:plates/wrought_iron', ['hit_last', 'draw_not_last', 'punch_not_last'])
.tier(3)
.id(`tfc:anvil/iron_door`)
// Bloom -> Wrought Iron Ingot
event.recipes.tfc.anvil('gtceu:wrought_iron_ingot', 'tfc:refined_iron_bloom', ['hit_last', 'hit_second_last', 'hit_third_last']).tier(2)
.id('tfc:anvil/wrought_iron_from_bloom')
// High Carbon Steel Ingot -> Steel Ingot
event.recipes.tfc.anvil('gtceu:steel_ingot', 'tfc:metal/ingot/high_carbon_steel', ['hit_last', 'hit_second_last', 'hit_third_last']).tier(3)
.id('tfc:anvil/steel_ingot')
// High Carbon Black Steel Ingot -> Black Steel Ingot
event.recipes.tfc.anvil('tfc:metal/ingot/black_steel', 'tfc:metal/ingot/high_carbon_black_steel', ['hit_last', 'hit_second_last', 'hit_third_last']).tier(4)
.id('tfc:anvil/black_steel_ingot')
// High Carbon Red Steel Ingot -> Red Steel Ingot
event.recipes.tfc.anvil('tfc:metal/ingot/red_steel', 'tfc:metal/ingot/high_carbon_red_steel', ['hit_last', 'hit_second_last', 'hit_third_last']).tier(5)
.id('tfc:anvil/red_steel_ingot')
// High Carbon Blue Steel Ingot -> Blue Steel Ingot
event.recipes.tfc.anvil('tfc:metal/ingot/blue_steel', 'tfc:metal/ingot/high_carbon_blue_steel', ['hit_last', 'hit_second_last', 'hit_third_last']).tier(5)
.id('tfc:anvil/blue_steel_ingot')
// Gears
event.recipes.tfc.anvil('gtceu:bronze_gear', '#forge:double_plates/bronze', ['punch_last', 'shrink_any', 'draw_any']).tier(2)
.id('tfc:anvil/bronze_gear')
event.recipes.tfc.anvil('gtceu:black_bronze_gear', '#forge:double_plates/black_bronze', ['punch_last', 'shrink_any', 'draw_any']).tier(2)
.id('tfc:anvil/black_bronze_gear')
event.recipes.tfc.anvil('gtceu:bismuth_bronze_gear', '#forge:double_plates/bismuth_bronze', ['punch_last', 'shrink_any', 'draw_any']).tier(2)
.id('tfc:anvil/bismuth_bronze_gear')
event.recipes.tfc.anvil('gtceu:wrought_iron_gear', '#forge:double_plates/wrought_iron', ['punch_last', 'shrink_any', 'draw_any']).tier(3)
.id('tfc:anvil/wrought_iron_gear')
event.recipes.tfc.anvil('gtceu:steel_gear', '#forge:double_plates/steel', ['punch_last', 'shrink_any', 'draw_any']).tier(4)
.id('tfc:anvil/steel_gear')
event.recipes.tfc.anvil('gtceu:black_steel_gear', '#forge:double_plates/black_steel', ['punch_last', 'shrink_any', 'draw_any']).tier(5)
.id('tfc:anvil/black_steel_gear')
event.recipes.tfc.anvil('gtceu:red_steel_gear', '#forge:double_plates/red_steel', ['punch_last', 'shrink_any', 'draw_any']).tier(6)
.id('tfc:anvil/red_steel_gear')
event.recipes.tfc.anvil('gtceu:blue_steel_gear', '#forge:double_plates/blue_steel', ['punch_last', 'shrink_any', 'draw_any']).tier(6)
.id('tfc:anvil/blue_steel_gear')
event.recipes.tfc.anvil('gtceu:small_wrought_iron_gear', '#forge:ingots/wrought_iron', ['shrink_last', 'shrink_second_last', 'upset_third_last']).tier(3)
.id('tfc:anvil/small_wrought_iron_gear')
event.recipes.tfc.anvil('gtceu:small_steel_gear', '#forge:ingots/steel', ['shrink_last', 'shrink_second_last', 'upset_third_last']).tier(4)
.id('tfc:anvil/small_steel_gear')
event.recipes.tfc.anvil('gtceu:small_brass_gear', '#forge:ingots/brass', ['shrink_last', 'shrink_second_last', 'upset_third_last']).tier(2)
.id('tfc:anvil/small_brass_gear')
event.recipes.tfc.anvil('gtceu:small_bronze_gear', '#forge:ingots/bronze', ['shrink_last', 'shrink_second_last', 'upset_third_last']).tier(2)
.id('tfc:anvil/small_bronze_gear')
// Cast iron -> Raw Iron Bloom
event.recipes.tfc.bloomery('tfc:raw_iron_bloom', 'minecraft:charcoal', Fluid.of('gtceu:iron', 144), 15000)
.id('tfc:bloomery/raw_iron_bloom')
// Cast Iron -> Pig Iron
event.recipes.tfc.blast_furnace(Fluid.of('tfc:metal/pig_iron', 1), '#tfc:flux', Fluid.of('gtceu:iron', 1))
.id('tfc:blast_furnace/pig_iron')
//#endregion
//#region Gravel Deposit Washing
const deposit_ores = [
'native_gold',
'native_copper',
'native_silver',
'cassiterite'
];
global.TFC_STONE_TYPES.forEach(stone => {
deposit_ores.forEach(ore => {
event.recipes.gtceu.ore_washer(`tfc:ore_washer/water/deposit/${ore}/${stone}`)
.itemInputs(`1x tfc:deposit/${ore}/${stone}`)
.inputFluids(Fluid.of('minecraft:water', 100))
.circuit(4)
.itemOutputs(`1x tfc:ore/normal_${ore}`)
.duration(400)
.EUt(GTValues.VA[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])
})})
//#endregion
}

View file

@ -0,0 +1,147 @@
// priority: 0
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_*/ })
// Удаление рецептов блоков
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
// #region Удаление рецептов
event.remove({ id: 'tfc:quern/amethyst' })
event.remove({ id: 'tfc:quern/amethyst_cut' })
event.remove({ id: 'tfc:quern/blaze_rod' })
event.remove({ id: 'tfc:quern/borax' })
event.remove({ id: 'tfc:quern/charcoal' })
event.remove({ id: 'tfc:quern/cinnabar' })
event.remove({ id: 'tfc:quern/cryolite' })
event.remove({ id: 'tfc:quern/diamond' })
event.remove({ id: 'tfc:quern/diamond_cut' })
event.remove({ id: 'tfc:quern/emerald' })
event.remove({ id: 'tfc:quern/emerald_cut' })
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/normal_bismuthinite' })
event.remove({ id: 'tfc:quern/normal_cassiterite' })
event.remove({ id: 'tfc:quern/normal_garnierite' })
event.remove({ id: 'tfc:quern/normal_hematite' })
event.remove({ id: 'tfc:quern/normal_limonite' })
event.remove({ id: 'tfc:quern/normal_magnetite' })
event.remove({ id: 'tfc:quern/normal_malachite' })
event.remove({ id: 'tfc:quern/normal_native_copper' })
event.remove({ id: 'tfc:quern/normal_native_gold' })
event.remove({ id: 'tfc:quern/normal_native_silver' })
event.remove({ id: 'tfc:quern/normal_sphalerite' })
event.remove({ id: 'tfc:quern/normal_tetrahedrite' })
event.remove({ id: 'tfc:quern/opal' })
event.remove({ id: 'tfc:quern/opal_cut' })
event.remove({ id: 'tfc:quern/poor_bismuthinite' })
event.remove({ id: 'tfc:quern/poor_cassiterite' })
event.remove({ id: 'tfc:quern/poor_garnierite' })
event.remove({ id: 'tfc:quern/poor_hematite' })
event.remove({ id: 'tfc:quern/poor_limonite' })
event.remove({ id: 'tfc:quern/poor_magnetite' })
event.remove({ id: 'tfc:quern/poor_malachite' })
event.remove({ id: 'tfc:quern/poor_native_copper' })
event.remove({ id: 'tfc:quern/poor_native_gold' })
event.remove({ id: 'tfc:quern/poor_native_silver' })
event.remove({ id: 'tfc:quern/poor_sphalerite' })
event.remove({ id: 'tfc:quern/poor_tetrahedrite' })
event.remove({ id: 'tfc:quern/pyrite' })
event.remove({ id: 'tfc:quern/pyrite_cut' })
event.remove({ id: 'tfc:quern/raw_limestone' })
event.remove({ id: 'tfc:quern/rich_bismuthinite' })
event.remove({ id: 'tfc:quern/rich_cassiterite' })
event.remove({ id: 'tfc:quern/rich_garnierite' })
event.remove({ id: 'tfc:quern/rich_hematite' })
event.remove({ id: 'tfc:quern/rich_limonite' })
event.remove({ id: 'tfc:quern/rich_magnetite' })
event.remove({ id: 'tfc:quern/rich_malachite' })
event.remove({ id: 'tfc:quern/rich_native_copper' })
event.remove({ id: 'tfc:quern/rich_native_gold' })
event.remove({ id: 'tfc:quern/rich_native_silver' })
event.remove({ id: 'tfc:quern/rich_sphalerite' })
event.remove({ id: 'tfc:quern/rich_tetrahedrite' })
event.remove({ id: 'tfc:quern/ruby' })
event.remove({ id: 'tfc:quern/ruby_cut' })
event.remove({ id: 'tfc:quern/salt' })
event.remove({ id: 'tfc:quern/saltpeter' })
event.remove({ id: 'tfc:quern/sapphire' })
event.remove({ id: 'tfc:quern/sapphire_cut' })
event.remove({ id: 'tfc:quern/sulfur' })
event.remove({ id: 'tfc:quern/topaz' })
event.remove({ id: 'tfc:quern/topaz_cut' })
//#endregion
//#region Удаление рецептов лопастей ветряной мельницы
event.remove({ id: `tfc:crafting/windmill_blade` })
event.remove({ id: `tfc:barrel/dye/bleach_windmill_blades` })
global.MINECRAFT_DYE_NAMES.forEach(dye => {
event.remove({ id: `tfc:barrel/dye/${dye}_windmill_blade` })
})
//#endregion
// Другое
event.remove({ id: `tfc:crafting/trip_hammer` })
event.remove({ id: `tfc:anvil/steel_pump` })
event.remove({ id: `tfc:anvil/brass_mechanisms` })
event.remove({ id: `tfc:crafting/steel_pump` })
event.remove({ id: `tfc:crafting/crankshaft` })
event.remove({ id: 'tfc:crafting/sandpaper' })
}

View file

@ -0,0 +1,173 @@
// priority: 0
function registerTFCSandRecipes(event) {
// Нефтеносный -> Желтый песок
event.recipes.gtceu.centrifuge('oilsands_ore_separation')
.itemInputs('#forge:ores/oilsands')
.chancedOutput('tfc:sand/yellow', 5000, 5000)
.outputFluids(Fluid.of('gtceu:oil', 2000))
.duration(200)
.EUt(30)
// Пыль нефтеносного песка -> Желтый песок
event.recipes.gtceu.centrifuge('oilsands_dust_separation')
.itemInputs('gtceu:oilsands_dust')
.chancedOutput('tfc:sand/yellow', 5000, 5000)
.outputFluids(Fluid.of('gtceu:oil', 2000))
.duration(200)
.EUt(30)
// Земля -> Желтый песок
event.recipes.gtceu.centrifuge('dirt_separation')
.itemInputs('#tfc:dirt')
.chancedOutput('gtceu:plant_ball', 1250, 700)
.chancedOutput('tfc:sand/yellow', 5000, 1200)
.chancedOutput('gtceu:tiny_clay_dust', 4000, 900)
.duration(250)
.EUt(30)
// Рецепты где нужно итерироваться по всем цветам
global.SAND_COLORS.forEach(sandColor => {
// Песчанник -> Песок
event.recipes.gtceu.forge_hammer(`raw_${sandColor}_sandstone_to_sand`)
.itemInputs(`tfc:raw_sandstone/${sandColor}`)
.itemOutputs(`tfc:sand/${sandColor}`)
.duration(400)
.EUt(2)
// Гладкий песчанник -> Песок
event.recipes.gtceu.forge_hammer(`smooth_${sandColor}_sandstone_to_sand`)
.itemInputs(`tfc:smooth_sandstone/${sandColor}`)
.itemOutputs(`tfc:sand/${sandColor}`)
.duration(400)
.EUt(2)
// Обрезанный песчанник -> Песок
event.recipes.gtceu.forge_hammer(`cut_${sandColor}_sandstone_to_sand`)
.itemInputs(`tfc:cut_sandstone/${sandColor}`)
.itemOutputs(`tfc:sand/${sandColor}`)
.duration(400)
.EUt(2)
// Песок -> Песчанник
event.recipes.gtceu.compressor(`sand_${sandColor}_to_sandstone`)
.itemInputs(`4x tfc:sand/${sandColor}`)
.itemOutputs(`tfc:raw_sandstone/${sandColor}`)
.duration(800)
.EUt(2)
// Песчанник -> Гладкий песчанник
event.stonecutting(`tfc:smooth_sandstone/${sandColor}`, `tfc:raw_sandstone/${sandColor}`)
.id(`tfg:stonecutting/raw_sandstone_${sandColor}_to_smooth_sandstone`)
// Песчанник -> Обрезанный песчанник
event.stonecutting(`tfc:cut_sandstone/${sandColor}`, `tfc:raw_sandstone/${sandColor}`)
.id(`raw_sandstone_${sandColor}_to_cut_sandstone`)
// Песчанник -> Ступень
event.remove({ id: `tfc:crafting/sandstone/${sandColor}_raw_stairs` })
event.stonecutting(`tfc:raw_sandstone/${sandColor}_stairs`, `tfc:raw_sandstone/${sandColor}`)
.id(`tfg:stonecutting/${sandColor}_sandstone_to_stairs`)
// Песчанник -> Плита
event.remove({ id: `tfc:crafting/sandstone/${sandColor}_raw_slab` })
event.stonecutting(`2x tfc:raw_sandstone/${sandColor}_slab`, `tfc:raw_sandstone/${sandColor}`)
.id(`tfg:stonecutting/${sandColor}_sandstone_to_slabs`)
// Песчанник -> Стена
event.remove({ id: `tfc:crafting/sandstone/${sandColor}_raw_wall` })
event.stonecutting(`tfc:raw_sandstone/${sandColor}_wall`, `tfc:raw_sandstone/${sandColor}`)
.id(`tfg:stonecutting/${sandColor}_sandstone_to_wall`)
// Гладкий песчанник -> Ступень
event.remove({ id: `tfc:crafting/sandstone/${sandColor}_smooth_stairs` })
event.stonecutting(`tfc:smooth_sandstone/${sandColor}_stairs`, `tfc:smooth_sandstone/${sandColor}`)
.id(`tfg:stonecutting/${sandColor}_smooth_sandstone_to_stairs`)
// Гладкий песчанник -> Плита
event.remove({ id: `tfc:crafting/sandstone/${sandColor}_smooth_slab` })
event.stonecutting(`2x tfc:smooth_sandstone/${sandColor}_slab`, `tfc:smooth_sandstone/${sandColor}`)
.id(`tfg:stonecutting/${sandColor}_smooth_sandstone_to_slab`)
// Гладкий песчанник -> Стена
event.remove({ id: `tfc:crafting/sandstone/${sandColor}_smooth_wall` })
event.stonecutting(`tfc:smooth_sandstone/${sandColor}_wall`, `tfc:smooth_sandstone/${sandColor}`)
.id(`tfg:stonecutting/${sandColor}_smooth_sandstone_to_wall`)
// Обрезанный песчанник -> Ступень
event.remove({ id: `tfc:crafting/sandstone/${sandColor}_cut_stairs` })
event.stonecutting(`tfc:cut_sandstone/${sandColor}_stairs`, `tfc:cut_sandstone/${sandColor}`)
.id(`tfg:stonecutting/${sandColor}_cut_sandstone_to_stairs`)
// Обрезанный песчанник -> Плита
event.remove({ id: `tfc:crafting/sandstone/${sandColor}_cut_slab` })
event.stonecutting(`2x tfc:cut_sandstone/${sandColor}_slab`, `tfc:cut_sandstone/${sandColor}`)
.id(`tfg:stonecutting/${sandColor}_cut_sandstone_to_slab`)
// Обрезанный песчанник -> Стена
event.remove({ id: `tfc:crafting/sandstone/${sandColor}_cut_wall` })
event.stonecutting(`tfc:cut_sandstone/${sandColor}_wall`, `tfc:cut_sandstone/${sandColor}`)
.id(`tfg:stonecutting/${sandColor}_cut_sandstone_to_wall`)
})
// Коричневый гравий -> Песок
event.recipes.gtceu.forge_hammer('brown_gravel_to_sand')
.itemInputs('#tfc:brown_gravel')
.itemOutputs('tfc:sand/brown')
.duration(400)
.EUt(2)
// Белый гравий -> Песок
event.recipes.gtceu.forge_hammer('white_gravel_to_sand')
.itemInputs('#tfc:white_gravel')
.itemOutputs('tfc:sand/white')
.duration(400)
.EUt(2)
// Черный гравий -> Песок
event.recipes.gtceu.forge_hammer('black_gravel_to_sand')
.itemInputs('#tfc:black_gravel')
.itemOutputs('tfc:sand/black')
.duration(400)
.EUt(2)
// Красный гравий -> Песок
event.recipes.gtceu.forge_hammer('red_gravel_to_sand')
.itemInputs('#tfc:red_gravel')
.itemOutputs('tfc:sand/red')
.duration(400)
.EUt(2)
// Желтый гравий -> Песок
event.recipes.gtceu.forge_hammer('yellow_gravel_to_sand')
.itemInputs('#tfc:yellow_gravel')
.itemOutputs('tfc:sand/yellow')
.duration(400)
.EUt(2)
// Зеленый гравий -> Песок
event.recipes.gtceu.forge_hammer('green_gravel_to_sand')
.itemInputs('#tfc:green_gravel')
.itemOutputs('tfc:sand/green')
.duration(400)
.EUt(2)
// Розовый гравий -> Песок
event.recipes.gtceu.forge_hammer('pink_gravel_to_sand')
.itemInputs('#tfc:pink_gravel')
.itemOutputs('tfc:sand/pink')
.duration(400)
.EUt(2)
}

View file

@ -0,0 +1,745 @@
// priority: 0
function registerTFCStoneRecipes(event) {
global.TFC_STONE_TYPES.forEach(stone => {
let stoneMaterial = TFGHelpers.getMaterial(stone);
let stoneDust = ChemicalHelper.get(TagPrefix.dust, stoneMaterial, 1)
let smallStoneDust = ChemicalHelper.get(TagPrefix.dustSmall, stoneMaterial, 1)
// Кирпич (предмет)
event.recipes.gtceu.assembler(`tfg:tfc/${stone}_loose_to_brick`)
.itemInputs(`tfc:rock/loose/${stone}`)
.itemOutputs(`tfc:brick/${stone}`)
.circuit(1)
.duration(40)
.EUt(8)
//#region Сырой камень
// Сырой камень -> Сырой камень
event.recipes.gtceu.rock_breaker(`${stone}_raw`)
.notConsumable(`tfc:rock/raw/${stone}`)
.itemOutputs(`tfc:rock/raw/${stone}`)
.duration(16)
.EUt(7)
// Сырой камень -> Булыжник
event.recipes.gtceu.forge_hammer(`${stone}_raw_to_cobble`)
.itemInputs(`tfc:rock/raw/${stone}`)
.itemOutputs(`tfc:rock/cobble/${stone}`)
.duration(10)
.EUt(16)
// ? -> Сырая нажимная пластина
event.shaped(`tfc:rock/pressure_plate/${stone}`, [
'ABA',
'CDC',
'AEA'
], {
A: '#forge:screws/wrought_iron',
B: '#tfc:hammers',
C: `tfc:rock/raw/${stone}_slab`,
D: '#forge:springs',
E: '#forge:tools/screwdrivers'
}).id(`tfc:crafting/rock/${stone}_pressure_plate`)
event.recipes.gtceu.assembler(`${stone}_raw_pressure_plate`)
.itemInputs('#forge:springs', `2x tfc:rock/raw/${stone}_slab`)
.circuit(0)
.itemOutputs(`2x tfc:rock/pressure_plate/${stone}`)
.duration(50)
.EUt(2)
// ? -> Сырая кнопка
event.remove({ id: `tfc:crafting/rock/${stone}_button` })
generateCutterRecipe(event, `tfc:rock/pressure_plate/${stone}`, `6x tfc:rock/button/${stone}`, 50, 2, `${stone}_raw_button`)
// Gravel Crafting
event.shapeless(`1x tfc:rock/gravel/${stone}`, [
`4x tfc:rock/loose/${stone}`
]).id(`tfc:shapeless/loose_${stone}_to_gravel`)
event.shapeless(`1x tfc:rock/gravel/${stone}`, [
`4x tfc:rock/mossy_loose/${stone}`
]).id(`tfc:shapeless/mossy_loose_${stone}_to_gravel`)
event.shapeless(`16x tfc:rock/loose/${stone}`, [
`4x tfc:rock/gravel/${stone}`
]).id(`tfc:shapeless/gravel_to_loose_${stone}`)
//#endregion
// #region Stonecutting
// Сырой камень -> Ступени
event.remove({ id: `tfc:crafting/rock/${stone}_raw_stairs` })
// Сырой камень -> Плиты
event.remove({ id: `tfc:crafting/rock/${stone}_raw_slab` })
// Сырой камень -> Стена
event.remove({ id: `tfc:crafting/rock/${stone}_raw_wall` })
// Булыжник -> Ступени
event.remove({ id: `tfc:crafting/rock/${stone}_cobble_stairs` })
// Булыжник -> Плиты
event.remove({ id: `tfc:crafting/rock/${stone}_cobble_slab` })
// Булыжник -> Стена
event.remove({ id: `tfc:crafting/rock/${stone}_cobble_wall` })
// Булыжник -> Ступени
event.remove({ id: `tfc:crafting/rock/${stone}_smooth_stairs` })
// Булыжник -> Плиты
event.remove({ id: `tfc:crafting/rock/${stone}_smooth_slab` })
// Булыжник -> Стена
event.remove({ id: `tfc:crafting/rock/${stone}_smooth_wall` })
// Блок кирпичей -> Ступени
event.remove({ id: `tfc:crafting/rock/${stone}_bricks_stairs` })
// Блок кирпичей -> Плиты
event.remove({ id: `tfc:crafting/rock/${stone}_bricks_slab` })
// Блок кирпичей -> Стена
event.remove({ id: `tfc:crafting/rock/${stone}_bricks_wall` })
// Потрескавшийся кирпич -> Ступени
event.remove({ id: `tfc:crafting/rock/${stone}_cracked_bricks_stairs` })
// Потрескавшийся кирпич -> Плиты
event.remove({ id: `tfc:crafting/rock/${stone}_cracked_bricks_slab` })
// Потрескавшийся кирпич -> Стена
event.remove({ id: `tfc:crafting/rock/${stone}_cracked_bricks_wall` })
// Замшелый булыжник -> Ступени
event.remove({ id: `tfc:crafting/rock/${stone}_mossy_cobble_stairs` })
//Замшелый булыжник -> Плиты
event.remove({ id: `tfc:crafting/rock/${stone}_mossy_cobble_slab` })
// Замшелый булыжник -> Стена
event.remove({ id: `tfc:crafting/rock/${stone}_mossy_cobble_wall` })
// Замшелый булыжник -> Ступени
event.remove({ id: `tfc:crafting/rock/${stone}_mossy_bricks_stairs` })
//Замшелый булыжник -> Плиты
event.remove({ id: `tfc:crafting/rock/${stone}_mossy_bricks_slab` })
// Замшелый булыжник -> Стена
event.remove({ id: `tfc:crafting/rock/${stone}_mossy_bricks_wall` })
// Укрепленный сырой камень -> Гладкий
event.stonecutting(`tfc:rock/smooth/${stone}`, `tfc:rock/hardened/${stone}`).id(`hardened_${stone}_to_smooth`)
// Блок кирпичей -> Резной кирпич
event.stonecutting(`tfc:rock/chiseled/${stone}`, `tfc:rock/bricks/${stone}`).id(`chiseled_${stone}`)
// #endregion
//#region Булыжник
// Булыжник -> Булыжник
event.recipes.gtceu.rock_breaker(`${stone}_cobble`)
.notConsumable(`tfc:rock/cobble/${stone}`)
.itemOutputs(`tfc:rock/cobble/${stone}`)
.duration(16)
.EUt(7)
// Булыжник -> Гравий
event.recipes.gtceu.forge_hammer(`${stone}_cobble_to_gravel`)
.itemInputs(`tfc:rock/cobble/${stone}`)
.itemOutputs(`tfc:rock/gravel/${stone}`)
.duration(10)
.EUt(16)
// Камни -> Булыжник
event.shaped(`tfc:rock/cobble/${stone}`, [
'ABA',
'BAB',
'ABA'
], {
A: `tfc:rock/loose/${stone}`,
B: '#tfc:mortar'
}).id(`tfc:crafting/rock/${stone}_loose_rocks_to_cobble`)
event.recipes.gtceu.assembler(`${stone}_loose_rocks_to_cobble`)
.itemInputs(`4x tfc:rock/loose/${stone}`)
.circuit(2)
.inputFluids(Fluid.of('gtceu:concrete', 72))
.itemOutputs(`tfc:rock/cobble/${stone}`)
.duration(50)
.EUt(2)
// #endregion
//#region Кирпич -> Блок кирпичей
event.recipes.gtceu.assembler(`bricks_${stone}`)
.itemInputs(`5x tfc:brick/${stone}`)
.circuit(0)
.inputFluids(Fluid.of('gtceu:concrete', 72))
.itemOutputs(`4x tfc:rock/bricks/${stone}`)
.duration(50)
.EUt(2)
//#endregion
//#region Кирпич -> Потрескавшийся кирпич
event.recipes.gtceu.forge_hammer(`cracked_bricks_${stone}`)
.itemInputs(`tfc:rock/bricks/${stone}`)
.itemOutputs(`tfc:rock/cracked_bricks/${stone}`)
.duration(25)
.EUt(8)
//#endregion
//#region Замшелый булыжник
// Булыжник -> Замшелый булыжник
event.shaped(`tfc:rock/mossy_cobble/${stone}`, [
'ABA',
'BAB',
'ABA'
], {
A: `tfc:rock/mossy_loose/${stone}`,
B: '#tfc:mortar'
}).id(`tfc:crafting/rock/${stone}_mossy_loose_rocks_to_cobble`)
event.recipes.gtceu.assembler(`${stone}_mossy_loose_rocks_to_mossy_cobble`)
.itemInputs(`4x tfc:rock/mossy_loose/${stone}`)
.circuit(0)
.inputFluids(Fluid.of('gtceu:concrete', 72))
.itemOutputs(`tfc:rock/mossy_cobble/${stone}`)
.duration(50)
.EUt(2)
event.recipes.gtceu.assembler(`${stone}_cobble_rocks_to_mossy_cobble`)
.itemInputs(`tfc:rock/cobble/${stone}`, '#tfc:compost_greens_low')
.circuit(0)
.inputFluids(Fluid.of('minecraft:water', 144))
.itemOutputs(`tfc:rock/mossy_cobble/${stone}`)
.duration(50)
.EUt(2)
//#endregion
//#region Блок кирпичей -> Замшелый кирпич
event.recipes.gtceu.assembler(`mossy_bricks_${stone}`)
.itemInputs(`tfc:rock/bricks/${stone}`, '#tfc:compost_greens_low')
.circuit(0)
.inputFluids(Fluid.of('minecraft:water', 144))
.itemOutputs(`tfc:rock/mossy_bricks/${stone}`)
.duration(50)
.EUt(2)
//#endregion
//#region Укрепленный камень
event.recipes.gtceu.assembler(`hardened_${stone}`)
.itemInputs(`5x tfc:rock/raw/${stone}`)
.circuit(0)
.inputFluids(Fluid.of('gtceu:concrete', 72))
.itemOutputs(`2x tfc:rock/hardened/${stone}`)
.duration(250)
.EUt(8)
//#endregion
//#region Акведук
event.recipes.gtceu.assembler(`aqueduct_${stone}`)
.itemInputs(`3x tfc:brick/${stone}`)
.circuit(1)
.inputFluids(Fluid.of('gtceu:concrete', 16))
.itemOutputs(`tfc:rock/aqueduct/${stone}`)
.duration(50)
.EUt(2)
//#endregion
//#region Декрафт блоков камня в пыль
//#region Целый блок
// Сырой
event.recipes.gtceu.macerator(`raw_${stone}_to_dust`)
.itemInputs(`tfc:rock/raw/${stone}`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Булыжник
event.recipes.gtceu.macerator(`cobble_${stone}_to_dust`)
.itemInputs(`tfc:rock/cobble/${stone}`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Гладкий
event.recipes.gtceu.macerator(`smooth_${stone}_to_dust`)
.itemInputs(`tfc:rock/smooth/${stone}`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Кирпичи
event.recipes.gtceu.macerator(`bricks_${stone}_to_dust`)
.itemInputs(`tfc:rock/bricks/${stone}`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Потрескавшиеся кирпичи
event.recipes.gtceu.macerator(`cracked_bricks_${stone}_to_dust`)
.itemInputs(`tfc:rock/cracked_bricks/${stone}`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Замшелый булыжник
event.recipes.gtceu.macerator(`mossy_cobble_${stone}_to_dust`)
.itemInputs(`tfc:rock/mossy_cobble/${stone}`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Замшелый кирпич
event.recipes.gtceu.macerator(`mossy_bricks_${stone}_to_dust`)
.itemInputs(`tfc:rock/mossy_bricks/${stone}`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
//#endregion
//#region Ступень
// Сырой
event.recipes.gtceu.macerator(`raw_stairs_${stone}_to_dust`)
.itemInputs(`tfc:rock/raw/${stone}_stairs`)
.itemOutputs(smallStoneDust.withCount(6))
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Булыжник
event.recipes.gtceu.macerator(`cobble_stairs_${stone}_to_dust`)
.itemInputs(`tfc:rock/cobble/${stone}_stairs`)
.itemOutputs(smallStoneDust.withCount(6))
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Гладкий
event.recipes.gtceu.macerator(`smooth_stairs_${stone}_to_dust`)
.itemInputs(`tfc:rock/smooth/${stone}_stairs`)
.itemOutputs(smallStoneDust.withCount(6))
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Кирпичи
event.recipes.gtceu.macerator(`bricks_stairs_${stone}_to_dust`)
.itemInputs(`tfc:rock/bricks/${stone}_stairs`)
.itemOutputs(smallStoneDust.withCount(6))
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Потрескавшиеся кирпичи
event.recipes.gtceu.macerator(`cracked_bricks_stairs_${stone}_to_dust`)
.itemInputs(`tfc:rock/cracked_bricks/${stone}_stairs`)
.itemOutputs(smallStoneDust.withCount(6))
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Замшелый булыжник
event.recipes.gtceu.macerator(`mossy_cobble_stairs_${stone}_to_dust`)
.itemInputs(`tfc:rock/mossy_cobble/${stone}_stairs`)
.itemOutputs(smallStoneDust.withCount(6))
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Замшелый кирпич
event.recipes.gtceu.macerator(`mossy_bricks_stairs_${stone}_to_dust`)
.itemInputs(`tfc:rock/mossy_bricks/${stone}_stairs`)
.itemOutputs(smallStoneDust.withCount(6))
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
//#endregion
//#region Плита
// Сырой
event.recipes.gtceu.macerator(`raw_slab_${stone}_to_dust`)
.itemInputs(`tfc:rock/raw/${stone}_slab`)
.itemOutputs(smallStoneDust.withCount(2))
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Булыжник
event.recipes.gtceu.macerator(`cobble_slab_${stone}_to_dust`)
.itemInputs(`tfc:rock/cobble/${stone}_slab`)
.itemOutputs(smallStoneDust.withCount(2))
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Гладкий
event.recipes.gtceu.macerator(`smooth_slab_${stone}_to_dust`)
.itemInputs(`tfc:rock/smooth/${stone}_slab`)
.itemOutputs(smallStoneDust.withCount(2))
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Кирпичи
event.recipes.gtceu.macerator(`bricks_slab_${stone}_to_dust`)
.itemInputs(`tfc:rock/bricks/${stone}_slab`)
.itemOutputs(smallStoneDust.withCount(2))
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Потрескавшиеся кирпичи
event.recipes.gtceu.macerator(`cracked_bricks_slab_${stone}_to_dust`)
.itemInputs(`tfc:rock/cracked_bricks/${stone}_slab`)
.itemOutputs(smallStoneDust.withCount(2))
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Замшелый булыжник
event.recipes.gtceu.macerator(`mossy_cobble_slab_${stone}_to_dust`)
.itemInputs(`tfc:rock/mossy_cobble/${stone}_slab`)
.itemOutputs(smallStoneDust.withCount(2))
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Замшелый кирпич
event.recipes.gtceu.macerator(`mossy_bricks_slab_${stone}_to_dust`)
.itemInputs(`tfc:rock/mossy_bricks/${stone}_slab`)
.itemOutputs(smallStoneDust.withCount(2))
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
//#endregion
//#region Стена
// Сырой
event.recipes.gtceu.macerator(`raw_wall_${stone}_to_dust`)
.itemInputs(`tfc:rock/raw/${stone}_wall`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Булыжник
event.recipes.gtceu.macerator(`cobble_wall_${stone}_to_dust`)
.itemInputs(`tfc:rock/cobble/${stone}_wall`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Гладкий
event.recipes.gtceu.macerator(`smooth_wall_${stone}_to_dust`)
.itemInputs(`tfc:rock/smooth/${stone}_wall`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Кирпичи
event.recipes.gtceu.macerator(`bricks_wall_${stone}_to_dust`)
.itemInputs(`tfc:rock/bricks/${stone}_wall`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Потрескавшиеся кирпичи
event.recipes.gtceu.macerator(`cracked_bricks_wall_${stone}_to_dust`)
.itemInputs(`tfc:rock/cracked_bricks/${stone}_wall`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Замшелый булыжник
event.recipes.gtceu.macerator(`mossy_cobble_wall_${stone}_to_dust`)
.itemInputs(`tfc:rock/mossy_cobble/${stone}_wall`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Замшелый кирпич
event.recipes.gtceu.macerator(`mossy_bricks_wall_${stone}_to_dust`)
.itemInputs(`tfc:rock/mossy_bricks/${stone}_wall`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
//#endregion
// Резной кирпич
event.recipes.gtceu.macerator(`chiseled_${stone}_to_dust`)
.itemInputs(`tfc:rock/chiseled/${stone}`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Укрепленный
event.recipes.gtceu.macerator(`hardened_${stone}_to_dust`)
.itemInputs(`tfc:rock/hardened/${stone}`)
.itemOutputs(stoneDust.withCount(2))
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
//#endregion
event.custom({
type: "tfc:collapse",
ingredient: {
tag: `forge:ores_in_ground/${stone}`
},
result: `tfc:rock/cobble/${stone}`
}).id(`tfg:collapse/${stone}_gt_ores`)
})
// #region Rock decomposition recipes
let oxygenFluid = GTMaterials.Oxygen.getFluid();
// Replacements
event.remove({ id: 'gtceu:electrolyzer/decomposition_electrolyzing_blackstone' })
event.recipes.gtceu.centrifuge('gtceu:decomposition_centrifuging__diorite')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Diorite, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Mirabilite, 1), 2000, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Clay, 1), 7000, 700)
.outputFluids(Fluid.of(oxygenFluid, 5))
event.recipes.gtceu.centrifuge('gtceu:decomposition_centrifuging__marble')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Marble, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Magnesium, 1), 1500, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Calcite, 1), 8000, 700)
.outputFluids(Fluid.of(oxygenFluid, 12))
event.recipes.gtceu.centrifuge('gtceu:decomposition_centrifuging__andesite')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Andesite, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Asbestos, 1), 8000, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Saltpeter, 1), 2000, 700)
event.recipes.gtceu.centrifuge('gtceu:decomposition_centrifuging__basalt')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Basalt, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Olivine, 1), 1700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Calcite, 1), 1700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Flint, 1), 5000, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dust, GTMaterials.DarkAsh, 1), 2500, 700)
event.recipes.gtceu.centrifuge('gtceu:decomposition_centrifuging__granite')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Granite, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.SiliconDioxide, 1), 8000, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Redrock, 1), 2000, 700)
.outputFluids(Fluid.of(oxygenFluid, 5))
event.recipes.gtceu.centrifuge('gtceu:decomposition_centrifuging__deepslate')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Deepslate, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.SiliconDioxide, 1), 8000, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Biotite, 1), 2000, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Stone, 1), 3700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 3700, 700)
.outputFluids(Fluid.of(oxygenFluid, 12))
event.recipes.gtceu.centrifuge('blackstone_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Blackstone, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dust, GTMaterials.DarkAsh, 1), 2500, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Calcium, 1), 3700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Sodium, 1), 6700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Magnesium, 1), 4700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 3700, 700)
.outputFluids(Fluid.of(oxygenFluid, 16))
// New
event.recipes.gtceu.centrifuge('gabbro_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('gabbro'), 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Rutile, 1), 6700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Iron, 1), 3700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 1700, 700)
event.recipes.gtceu.centrifuge('shale_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('shale'), 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Sodium, 1), 7500, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 1500, 700)
.outputFluids(Fluid.of(oxygenFluid, 16))
event.recipes.gtceu.centrifuge('claystone_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('claystone'), 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Aluminium, 1), 6700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Silicon, 1), 6700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Hematite, 1), 6700, 700)
.outputFluids(Fluid.of(oxygenFluid, 5))
event.recipes.gtceu.centrifuge('limestone_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('limestone'), 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Calcium, 1), 8700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 1700, 700)
.outputFluids(Fluid.of(oxygenFluid, 36))
event.recipes.gtceu.centrifuge('conglomerate_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('conglomerate'), 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Hematite, 1), 6700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Silicon, 1), 4700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.TricalciumPhosphate, 1), 3700, 700)
.outputFluids(Fluid.of(oxygenFluid, 5))
event.recipes.gtceu.centrifuge('dolomite_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('dolomite'), 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Magnesium, 1), 6700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Calcium, 1), 5700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 3700, 700)
.outputFluids(Fluid.of(oxygenFluid, 16))
event.recipes.gtceu.centrifuge('chert_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('chert'), 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Silicon, 1), 6700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 3700, 700)
.outputFluids(Fluid.of(oxygenFluid, 24))
event.recipes.gtceu.centrifuge('chalk_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('chalk'), 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Calcium, 1), 6700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Carbon, 1), 3700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 1700, 700)
.outputFluids(Fluid.of(oxygenFluid, 12))
event.recipes.gtceu.centrifuge('rhyolite_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('rhyolite'), 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.SiliconDioxide, 1), 8700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 800, 700)
event.recipes.gtceu.centrifuge('dacite_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('dacite'), 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Sodium, 1), 6700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Calcium, 1), 5700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.SiliconDioxide, 1), 4700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Aluminium, 1), 3700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 1500, 700)
.outputFluids(Fluid.of(oxygenFluid, 12))
event.recipes.gtceu.centrifuge('slate_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('slate'), 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.SiliconDioxide, 1), 4700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 3700, 700)
.outputFluids(Fluid.of(oxygenFluid, 24))
event.recipes.gtceu.centrifuge('phyllite_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('phyllite'), 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Quartzite, 1), 5700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.CalciumChloride, 1), 1700, 700)
.outputFluids(Fluid.of(oxygenFluid, 5))
event.recipes.gtceu.centrifuge('schist_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('schist'), 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Mica, 1), 6700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Talc, 1), 5700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Graphite, 1), 4700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 780, 700)
.outputFluids(Fluid.of(oxygenFluid, 12))
event.recipes.gtceu.centrifuge('gneiss_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('gneiss'), 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Quartzite, 1), 6700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Biotite, 1), 3700, 700)
.outputFluids(Fluid.of(oxygenFluid, 5))
event.recipes.gtceu.centrifuge('dripstone_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('dripstone'), 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.CalciumCarbonate, 1), 8700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.CalciumHydroxide, 1), 1700, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.SiliconDioxide, 1), 4700, 700)
.outputFluids(Fluid.of(oxygenFluid, 12))
// #endregion
}

View file

@ -0,0 +1,53 @@
// priority: 0
function registerTFCWoodRecipes(event) {
// Какие то рецепты дерева
global.TFC_WOOD_TYPES.forEach(wood => {
event.remove({ id: `tfc:crafting/wood/${wood}_axle` })
event.remove({ id: `tfc:crafting/wood/${wood}_bladed_axle` })
event.remove({ id: `tfc:crafting/wood/${wood}_encased_axle` })
event.remove({ id: `tfc:crafting/wood/${wood}_clutch` })
event.remove({ id: `tfc:crafting/wood/${wood}_gear_box` })
event.remove({ id: `tfc:crafting/wood/${wood}_water_wheel` })
// Бревна -> Пиломатериалы
generateCutterRecipe(event, `#tfc:${wood}_logs`, `16x tfc:wood/lumber/${wood}`, 50, 7, `${wood}_lumber_from_log`)
// Доски -> Пиломатериалы
generateCutterRecipe(event, `tfc:wood/planks/${wood}`, `4x tfc:wood/lumber/${wood}`, 50, 7, `${wood}_lumber_from_planks`)
// Ступень -> Пиломатериалы
generateCutterRecipe(event, `tfc:wood/planks/${wood}_stairs`, `3x tfc:wood/lumber/${wood}`, 50, 7, `${wood}_lumber_from_stairs`)
// Плита -> Пиломатериалы
generateCutterRecipe(event, `tfc:wood/planks/${wood}_slab`, `2x tfc:wood/lumber/${wood}`, 50, 7, `${wood}_lumber_from_slab`)
// ? -> Деревянная нажимная пластина
event.shaped(`tfc:wood/planks/${wood}_pressure_plate`, [
'ABA',
'CDC',
'AEA'
], {
A: '#forge:screws/wood',
B: '#tfc:hammers',
C: `tfc:wood/planks/${wood}_slab`,
D: '#forge:springs',
E: '#forge:tools/screwdrivers'
}).id(`tfc:crafting/wood/${wood}_pressure_plate`)
event.recipes.gtceu.assembler(`${wood}_pressure_plate`)
.itemInputs('#forge:springs', `2x tfc:wood/planks/${wood}_slab`)
.circuit(0)
.itemOutputs(`2x tfc:wood/planks/${wood}_pressure_plate`)
.duration(50)
.EUt(2)
// ? -> Деревянная кнопка
event.remove({ id: `tfc:crafting/wood/${wood}_button` })
generateCutterRecipe(event, `tfc:wood/planks/${wood}_pressure_plate`, `6x tfc:wood/planks/${wood}_button`, 50, 7, `${wood}_button`)
})
}

View file

@ -0,0 +1,25 @@
TFCEvents.selectClimateModel(event => {
let location = event.level.dimensionKey.location();
switch (location) {
/*case 'ad_astra:moon':
event.setModel('tfg:moon_climate');
break;
case 'ad_astra:mars':
event.setModel('tfg:mars_climate');
break;
case 'ad_astra:earth_orbit':
case 'ad_astra:moon_orbit':
case 'ad_astra:mars_orbit':
event.setModel('tfg:orbit_climate');
break;*/
case 'minecraft:the_nether':
event.setModel('tfg:nether_climate');
break;
}
})

View file

@ -1,5 +1,9 @@
// priority: 0
/**
*
* @param {TagEvent.Item} event
*/
const registerTFCItemTags = (event) => {
// Теги для соответствия инструментов TFC и GT
@ -48,6 +52,10 @@ const registerTFCItemTags = (event) => {
event.add('minecraft:fishes', 'tfc:food/rainbow_trout')
event.add('minecraft:fishes', 'tfc:food/smallmouth_bass')
// Make eggs not useless
event.add('tfc:foods/usable_in_salad', 'tfc:food/cooked_egg')
event.add('tfc:foods/usable_in_salad', 'tfc:food/boiled_egg')
// Чтобы жарились бревна из TFC в пиролиз. печке
// Почему нельзя просто добавить тег в тег? (допустим minecraft:logs), потому что из-за этого ломаются все рецепты minecraft:logs, магия...
global.TFC_WOOD_TYPES.forEach(woodType => {
@ -57,26 +65,35 @@ const registerTFCItemTags = (event) => {
// Allows TFC stick bundles to be burned in the coke/pyrolyse ovens
event.add("minecraft:logs_that_burn", "tfc:stick_bundle");
// Определеяет какое оружие может появиться у зомбя/скелета в руках
// Мечи
event.add('tfc:mob_mainhand_weapons', 'gtceu:bismuth_bronze_sword')
event.add('tfc:mob_mainhand_weapons', 'gtceu:bronze_sword')
event.add('tfc:mob_mainhand_weapons', 'gtceu:black_bronze_sword')
// Топоры
event.add('tfc:mob_mainhand_weapons', 'gtceu:bismuth_bronze_axe')
event.add('tfc:mob_mainhand_weapons', 'gtceu:bronze_axe')
event.add('tfc:mob_mainhand_weapons', 'gtceu:black_bronze_axe')
// Косы
event.add('tfc:mob_mainhand_weapons', 'gtceu:bismuth_bronze_scythe')
event.add('tfc:mob_mainhand_weapons', 'gtceu:bronze_scythe')
event.add('tfc:mob_mainhand_weapons', 'gtceu:black_bronze_scythe')
// Remove sulfur dust overlap
event.remove('forge:dusts/sulfur', 'tfc:powder/sulfur');
// Тэги для возможности использования разных углей в кузне
event.add('tfc:forge_fuel', 'minecraft:coal')
event.add('tfc:forge_fuel', 'beneath:cursecoal')
event.add('tfc:forge_fuel', 'gtceu:coke_gem')
event.add('tfc:forge_fuel', 'gtceu:rich_raw_coal')
event.add('tfc:forge_fuel', 'gtceu:raw_coal')
event.add('tfc:forge_fuel', 'gtceu:poor_raw_coal')
event.add('tfc:forge_fuel', 'gtceu:coal_dust')
event.add('tfc:forge_fuel', 'gtceu:charcoal_dust')
// Change blast furnace to use coke
event.remove('tfc:blast_furnace_fuel', 'minecraft:coal')
event.remove('tfc:blast_furnace_fuel', 'minecraft:charcoal')
event.add('tfc:blast_furnace_fuel', 'gtceu:coke_gem')
event.add('tfc:blast_furnace_fuel', 'beneath:cursecoal')
// Create a tag for Steam Bloomery
event.add('tfc:steam_bloomery_basic_fuels', 'minecraft:coal')
event.add('tfc:steam_bloomery_basic_fuels', 'minecraft:charcoal')
event.add('tfc:steam_bloomery_basic_fuels', 'gtceu:rich_raw_coal')
event.add('tfc:steam_bloomery_basic_fuels', 'gtceu:rich_raw_coal')
event.add('tfc:steam_bloomery_basic_fuels', 'gtceu:raw_coal')
event.add('tfc:steam_bloomery_basic_fuels', 'gtceu:poor_raw_coal')
event.add('tfc:steam_bloomery_basic_fuels', 'gtceu:coal_dust')
event.add('tfc:steam_bloomery_basic_fuels', 'gtceu:charcoal_dust')
// Тэги для сундуков, чтобы отличать их виды
global.TFC_WOOD_TYPES.forEach(woodType => {
@ -224,6 +241,23 @@ const registerTFCItemTags = (event) => {
// Удаление тегов у руд
event.removeAllTagsFrom("/tfc:ore/[^*]+/[^*]+/")
//Stone javelins
event.add('tfc:stone_javelins', 'tfc:stone/javelin/igneous_extrusive')
event.add('tfc:stone_javelins', 'tfc:stone/javelin/igneous_intrusive')
event.add('tfc:stone_javelins', 'tfc:stone/javelin/metamorphic')
event.add('tfc:stone_javelins', 'tfc:stone/javelin/sedimentary')
//Moss
event.add('tfc:moss', 'tfc:plant/moss')
event.add('tfc:moss', 'tfc:plant/spanish_moss')
event.add('tfc:moss', 'tfc:plant/reindeer_lichen')
event.add('tfc:moss', 'tfc:plant/cobblestone_lichen')
//Cloth
event.add('forge:cloth', 'tfc:burlap_cloth')
event.add('forge:cloth', 'tfc:wool_cloth')
event.add('forge:cloth', 'tfc:silk_cloth')
}
const registerTFCBlockTags = (event) => {
@ -245,9 +279,6 @@ const registerTFCBlockTags = (event) => {
})
})
// Отключение ломания блоков установленных на полу
event.add('tfcdesirepaths:trample_blacklist', 'tfc:placed_item')
// Возможность обрушения полу-блоков
event.add('tfc:can_collapse', '#tfg:rock_slabs')
event.add('tfc:can_start_collapse', '#tfg:rock_slabs')
@ -271,8 +302,8 @@ const registerTFCBlockTags = (event) => {
event.add('tfc:monster_spawns_on', '#forge:ores')
event.add('tfc:prospectable', '#forge:ores')
event.add('tfc:glass_basin_blocks', 'gtceu:brass_block')
event.add('tfc:glass_pouring_table', 'gtceu:brass_block')
event.add('tfc:glass_basin_blocks', 'create:brass_block')
event.add('tfc:glass_pouring_table', 'create:brass_block')
event.add('tfc:glass_basin_blocks', 'tfc:red_kaolin_clay')
event.add('tfc:glass_pouring_table', 'tfc:red_kaolin_clay')
@ -297,6 +328,46 @@ const registerTFCBlockTags = (event) => {
event.add('create:passive_boiler_heaters', el)
})
//#endregion
//#region Nether
event.add('beneath:nether_bush_plantable_on', '#tfc:clay_grass')
event.add('minecraft:small_dripleaf_placeable', '#tfc:clay_grass')
event.add('minecraft:big_dripleaf_placeable', '#tfc:clay_grass')
event.add('minecraft:frogs_spawnable_on', '#tfc:clay_grass')
event.add('minecraft:axolotls_spawnable_on', '#tfc:clay_grass')
event.add('minecraft:small_dripleaf_placeable', '#tfc:clay')
event.add('minecraft:big_dripleaf_placeable', '#tfc:clay')
event.add('minecraft:frogs_spawnable_on', '#tfc:clay')
event.add('minecraft:axolotls_spawnable_on', '#tfc:clay')
event.add('beneath:nether_bush_plantable_on', '#tfc:mud')
event.add('minecraft:frogs_spawnable_on', '#tfc:mud')
event.add('beneath:nether_bush_plantable_on', '#tfc:dirt')
event.add('minecraft:frogs_spawnable_on', '#tfc:dirt')
event.add('minecraft:nether_carver_replaceables', 'tfc:rock/raw/gneiss')
event.add('minecraft:nether_carver_replaceables', 'tfc:rock/raw/schist')
event.add('minecraft:nether_carver_replaceables', 'tfc:rock/raw/diorite')
event.add('minecraft:nether_carver_replaceables', 'tfc:rock/raw/granite')
event.add('minecraft:nether_carver_replaceables', 'tfc:rock/raw/gabbro')
event.add('minecraft:nether_carver_replaceables', 'tfc:rock/raw/basalt')
event.add('minecraft:base_stone_nether', 'tfc:rock/raw/gneiss')
event.add('minecraft:base_stone_nether', 'tfc:rock/raw/schist')
event.add('minecraft:base_stone_nether', 'tfc:rock/raw/diorite')
event.add('minecraft:base_stone_nether', 'tfc:rock/raw/granite')
event.add('minecraft:base_stone_nether', 'tfc:rock/raw/gabbro')
event.add('minecraft:base_stone_nether', 'tfc:rock/raw/basalt')
event.add('minecraft:frogs_spawnable_on', 'tfc:rock/raw/gneiss')
event.add('minecraft:frogs_spawnable_on', 'tfc:rock/raw/schist')
event.add('minecraft:frogs_spawnable_on', 'tfc:rock/raw/diorite')
event.add('minecraft:frogs_spawnable_on', 'tfc:rock/raw/granite')
event.add('minecraft:frogs_spawnable_on', 'tfc:rock/raw/gabbro')
//#endregion
}
const registerTFCFluidTags = (event) => {
@ -320,15 +391,10 @@ const registerTFCFluidTags = (event) => {
event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/red_steel')
event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/blue_steel')
event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/cast_iron')
event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/pig_iron')
event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/high_carbon_steel')
event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/high_carbon_black_steel')
event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/high_carbon_red_steel')
event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/high_carbon_blue_steel')
event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/weak_steel')
event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/weak_red_steel')
event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/weak_blue_steel')
event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/unknown')
// Добавление GTCEu металлов в форму слитков
event.add('tfc:usable_in_ingot_mold', 'gtceu:bismuth')
@ -350,15 +416,6 @@ const registerTFCFluidTags = (event) => {
event.add('tfc:usable_in_ingot_mold', 'gtceu:black_steel')
event.add('tfc:usable_in_ingot_mold', 'gtceu:blue_steel')
event.add('tfc:usable_in_ingot_mold', 'gtceu:red_steel')
event.add('tfc:usable_in_ingot_mold', 'tfg:pig_iron')
event.add('tfc:usable_in_ingot_mold', 'tfg:high_carbon_steel')
event.add('tfc:usable_in_ingot_mold', 'tfg:high_carbon_black_steel')
event.add('tfc:usable_in_ingot_mold', 'tfg:high_carbon_red_steel')
event.add('tfc:usable_in_ingot_mold', 'tfg:high_carbon_blue_steel')
event.add('tfc:usable_in_ingot_mold', 'tfg:weak_steel')
event.add('tfc:usable_in_ingot_mold', 'tfg:weak_red_steel')
event.add('tfc:usable_in_ingot_mold', 'tfg:weak_blue_steel')
event.add('tfc:usable_in_ingot_mold', 'tfg:unknown')
event.add('tfc:usable_in_ingot_mold', 'gtceu:red_alloy')
event.add('tfc:usable_in_ingot_mold', 'gtceu:tin_alloy')
@ -374,11 +431,6 @@ const registerTFCFluidTags = (event) => {
event.add('tfc:usable_in_tool_head_mold', 'gtceu:black_bronze')
event.add('tfc:usable_in_tool_head_mold', 'gtceu:bronze')
//
event.add('tfc:usable_in_pot', 'tfg:latex')
event.add('tfc:usable_in_barrel', 'tfg:latex')
event.add('tfc:usable_in_wooden_bucket', 'tfg:latex')
//
event.add('tfc:usable_in_barrel', 'gtceu:creosote')
event.add('tfc:usable_in_wooden_bucket', 'gtceu:creosote')
@ -405,107 +457,77 @@ const registerTFCFluidTags = (event) => {
event.add('c:hidden_from_recipe_viewers', 'tfc:metal/red_steel')
event.add('c:hidden_from_recipe_viewers', 'tfc:metal/blue_steel')
event.add('c:hidden_from_recipe_viewers', 'tfc:metal/cast_iron')
event.add('c:hidden_from_recipe_viewers', 'tfc:metal/pig_iron')
event.add('c:hidden_from_recipe_viewers', 'tfc:metal/high_carbon_steel')
event.add('c:hidden_from_recipe_viewers', 'tfc:metal/high_carbon_black_steel')
event.add('c:hidden_from_recipe_viewers', 'tfc:metal/high_carbon_red_steel')
event.add('c:hidden_from_recipe_viewers', 'tfc:metal/high_carbon_blue_steel')
event.add('c:hidden_from_recipe_viewers', 'tfc:metal/weak_steel')
event.add('c:hidden_from_recipe_viewers', 'tfc:metal/weak_red_steel')
event.add('c:hidden_from_recipe_viewers', 'tfc:metal/weak_blue_steel')
event.add('c:hidden_from_recipe_viewers', 'tfc:metal/unknown')
}
const registerTFCPlacedFeatures = (event) => {
// Удаление
event.remove('tfc:in_biome/veins', 'tfc:vein/surface_native_copper')
event.remove('tfc:in_biome/veins', 'tfc:vein/surface_malachite')
event.remove('tfc:in_biome/veins', 'tfc:vein/surface_tetrahedrite')
event.remove('tfc:in_biome/veins', 'tfc:vein/normal_malachite')
event.remove('tfc:in_biome/veins', 'tfc:vein/normal_tetrahedrite')
event.remove('tfc:in_biome/veins', 'tfc:vein/normal_native_gold')
event.remove('tfc:in_biome/veins', 'tfc:vein/rich_native_gold')
event.remove('tfc:in_biome/veins', 'tfc:vein/fake_native_gold')
event.remove('tfc:in_biome/veins', 'tfc:vein/surface_native_silver')
event.remove('tfc:in_biome/veins', 'tfc:vein/normal_native_silver')
event.remove('tfc:in_biome/veins', 'tfc:vein/surface_cassiterite')
event.remove('tfc:in_biome/veins', 'tfc:vein/surface_bismuthinite')
event.remove('tfc:in_biome/veins', 'tfc:vein/normal_bismuthinite')
event.remove('tfc:in_biome/veins', 'tfc:vein/surface_sphalerite')
event.remove('tfc:in_biome/veins', 'tfc:vein/normal_sphalerite')
event.remove('tfc:in_biome/veins', 'tfc:vein/surface_hematite')
event.remove('tfc:in_biome/veins', 'tfc:vein/surface_magnetite')
event.remove('tfc:in_biome/veins', 'tfc:vein/surface_limonite')
event.remove('tfc:in_biome/veins', 'tfc:vein/normal_garnierite')
event.remove('tfc:in_biome/veins', 'tfc:vein/gabbro_garnierite')
event.remove('tfc:in_biome/veins', 'tfc:vein/graphite')
event.remove('tfc:in_biome/veins', 'tfc:vein/lignite')
event.remove('tfc:in_biome/veins', 'tfc:vein/bituminous_coal')
event.remove('tfc:in_biome/veins', 'tfc:vein/sulfur')
event.remove('tfc:in_biome/veins', 'tfc:vein/cryolite')
event.remove('tfc:in_biome/veins', 'tfc:vein/cinnabar')
event.remove('tfc:in_biome/veins', 'tfc:vein/saltpeter')
event.remove('tfc:in_biome/veins', 'tfc:vein/sylvite')
event.remove('tfc:in_biome/veins', 'tfc:vein/borax')
event.remove('tfc:in_biome/veins', 'tfc:vein/gypsum')
event.remove('tfc:in_biome/veins', 'tfc:vein/halite')
event.remove('tfc:in_biome/veins', 'tfc:vein/lapis_lazuli')
event.remove('tfc:in_biome/veins', 'tfc:vein/diamond')
event.remove('tfc:in_biome/veins', 'tfc:vein/emerald')
event.remove('tfc:in_biome/veins', 'tfc:vein/amethyst')
event.remove('tfc:in_biome/veins', 'tfc:vein/opal')
event.remove('tfc:in_biome/veins', 'tfc:geode')
event.removeAll('tfc:in_biome/veins')
// Добавление
event.add('tfc:in_biome/veins', 'tfg:vein/deep_garnet_amethyst')
event.add('tfc:in_biome/veins', 'tfg:vein/deep_garnet_opal')
event.add('tfc:in_biome/veins', 'tfg:vein/deep_gold')
event.add('tfc:in_biome/veins', 'tfg:vein/deep_hematite')
event.add('tfc:in_biome/veins', 'tfg:vein/deep_limonite')
event.add('tfc:in_biome/veins', 'tfg:vein/deep_magnetite')
event.add('tfc:in_biome/veins', 'tfg:vein/deep_molybdenum')
event.add('tfc:in_biome/veins', 'tfg:vein/deep_naquadah')
event.add('tfc:in_biome/veins', 'tfg:vein/deep_pitchblende')
event.add('tfc:in_biome/veins', 'tfg:vein/deep_sapphire')
event.add('tfc:in_biome/veins', 'tfg:vein/deep_scheelite')
event.add('tfc:in_biome/veins', 'tfg:vein/deep_sheldonite')
event.add('tfc:in_biome/veins', 'tfg:vein/deep_topaz')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_apatite_')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_basaltic_sands')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_bauxite')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_beryllium')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_bismuthinite')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_cassiterite')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_certus_quartz')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_coal')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_copper')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_garnet_tin')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_garnierite')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_gold')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_graphite')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_hematite')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_spodumene')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_oilsands')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_lapis')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_limonite')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_lubricant')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_magnetite')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_manganese')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_mica')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_monazite')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_olivine')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_redstone')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_salt')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_saltpeter')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_silver')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_sphalerite')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_sulfur')
event.add('tfc:in_biome/veins', 'tfg:vein/normal_tetrahedrite')
event.add('tfc:in_biome/veins', 'tfg:vein/surface_bismuthinite')
event.add('tfc:in_biome/veins', 'tfg:vein/surface_cassiterite')
event.add('tfc:in_biome/veins', 'tfg:vein/surface_copper')
event.add('tfc:in_biome/veins', 'tfg:vein/surface_sphalerite')
event.add('tfc:in_biome/veins', 'tfg:vein/surface_tetrahedrite')
event.add('tfc:in_biome/veins', 'tfg:geode')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/deep_garnet_amethyst')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/deep_garnet_opal')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/deep_gold')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/deep_hematite')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/deep_limonite')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/deep_magnetite')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/deep_molybdenum')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/deep_pitchblende')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/deep_sapphire')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/deep_scheelite')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/deep_sheldonite')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/deep_topaz')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_apatite')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_basaltic_sands')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_bauxite')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_beryllium')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_bismuthinite')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_cassiterite')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_coal')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_copper')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_garnet_tin')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_garnierite')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_gold')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_graphite')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_hematite')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_spodumene')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_oilsands')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_lapis')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_limonite')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_lubricant')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_magnetite')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_manganese')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_mica')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_monazite')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_olivine')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_quartz')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_redstone')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_salt')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_saltpeter')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_silver')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_sphalerite')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_sulfur')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/normal_tetrahedrite')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/surface_bismuthinite')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/surface_cassiterite')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/surface_copper')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/surface_sphalerite')
event.add('tfc:in_biome/veins', 'tfg:earth/vein/surface_tetrahedrite')
event.add('tfc:in_biome/veins', 'tfg:earth/geode/amethyst')
event.add('tfc:in_biome/veins', 'tfg:earth/geode/barite')
event.add('tfc:in_biome/veins', 'tfg:earth/geode/calcite')
event.add('tfc:in_biome/veins', 'tfg:earth/geode/gypsum')
event.add('tfc:in_biome/veins', 'tfg:earth/geode/opal')
event.add('tfc:in_biome/veins', 'tfg:earth/geode/pyrite')
event.add('tfc:in_biome/veins', 'tfg:earth/geode/quartzite')
event.add('tfc:in_biome/veins', 'tfg:earth/nether_hint_vein')
event.add('tfc:in_biome/underground_decoration', 'tfg:glow_lichen')
event.add('tfc:in_biome/underground_decoration', 'tfg:earth/sulfur_patch')
}

View file

@ -14,7 +14,6 @@ const registerTFCGroomingStationRecipes = (event) => {
]
materials.forEach(material => {
console.log(material)
event.shaped(`tfcgroomer:${material}_grooming_station`, [
'ABA',
'AAA',

View file

@ -1,21 +1,21 @@
// priority: 0
const registerTFCAmbientalItemTags = (event) => {
event.add('minecraft:trimmable_armor', 'tfcambiental:wool_hat')
event.add('minecraft:trimmable_armor', 'tfcambiental:wool_sweater')
event.add('minecraft:trimmable_armor', 'tfcambiental:wool_pants')
event.add('minecraft:trimmable_armor', 'tfcambiental:wool_boots')
event.add('minecraft:trimmable_armor', 'tfcambiental:silk_cowl')
event.add('minecraft:trimmable_armor', 'tfcambiental:silk_shirt')
event.add('minecraft:trimmable_armor', 'tfcambiental:silk_pants')
event.add('minecraft:trimmable_armor', 'tfcambiental:silk_shoes')
event.add('minecraft:trimmable_armor', 'tfcambiental:burlap_cowl')
event.add('minecraft:trimmable_armor', 'tfcambiental:burlap_shirt')
event.add('minecraft:trimmable_armor', 'tfcambiental:burlap_pants')
event.add('minecraft:trimmable_armor', 'tfcambiental:burlap_shoes')
event.add('minecraft:trimmable_armor', 'tfcambiental:insulated_leather_hat')
event.add('minecraft:trimmable_armor', 'tfcambiental:insulated_leather_tunic')
event.add('minecraft:trimmable_armor', 'tfcambiental:insulated_leather_pants')
event.add('minecraft:trimmable_armor', 'tfcambiental:insulated_leather_boots')
// priority: 0
const registerTFCAmbientalItemTags = (event) => {
event.add('minecraft:trimmable_armor', 'tfcambiental:wool_hat')
event.add('minecraft:trimmable_armor', 'tfcambiental:wool_sweater')
event.add('minecraft:trimmable_armor', 'tfcambiental:wool_pants')
event.add('minecraft:trimmable_armor', 'tfcambiental:wool_boots')
event.add('minecraft:trimmable_armor', 'tfcambiental:silk_cowl')
event.add('minecraft:trimmable_armor', 'tfcambiental:silk_shirt')
event.add('minecraft:trimmable_armor', 'tfcambiental:silk_pants')
event.add('minecraft:trimmable_armor', 'tfcambiental:silk_shoes')
event.add('minecraft:trimmable_armor', 'tfcambiental:burlap_cowl')
event.add('minecraft:trimmable_armor', 'tfcambiental:burlap_shirt')
event.add('minecraft:trimmable_armor', 'tfcambiental:burlap_pants')
event.add('minecraft:trimmable_armor', 'tfcambiental:burlap_shoes')
event.add('minecraft:trimmable_armor', 'tfcambiental:insulated_leather_hat')
event.add('minecraft:trimmable_armor', 'tfcambiental:insulated_leather_tunic')
event.add('minecraft:trimmable_armor', 'tfcambiental:insulated_leather_pants')
event.add('minecraft:trimmable_armor', 'tfcambiental:insulated_leather_boots')
}

View file

@ -0,0 +1,5 @@
// priority: 0
const registerTFCDataForTFCBetterBF = (event) => {
event.itemHeat('tfcbetterbf:insulation', 8.571, null, null)
}

View file

@ -0,0 +1,30 @@
/**
*
* @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`)
event.recipes.tfc.heating('tfcbetterbf:insulated_fire_bricks', 1535)
.resultFluid(Fluid.of('gtceu:iron', 432))
.id(`tfcbetterbf:heating/insulated_fire_bricks`)
event.recipes.gtceu.macerator('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])
}

View file

@ -0,0 +1,14 @@
// priority: 0
function registerTFCTextileItemTags(event) {
const DISABLED_ITEMS = [
'tfc_textile:cotton_string'
]
DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
})
}

View file

@ -0,0 +1,117 @@
//pills & tablets
const pill_event = [
'haste',
'luck',
'night_vision',
'poison',
'regeneration',
'slowness',
'speed',
'water_breathing',
'weakness',
];
pill_event.forEach(pill_event => {
ItemEvents.rightClicked(event => {
const {item,server,player,player:{x,y,z,username}} = event
if (item.id != `tfg:${pill_event}_pill`) return
item.count--
player.addItemCooldown(item, 100)
player.runCommandSilent(`effect give ${username} minecraft:${pill_event} 480 0 true`)
server.runCommandSilent(`playsound minecraft:item.honey_bottle.drink player ${username} ${x} ${y} ${z} 10 1.5 1`)
});
ItemEvents.rightClicked(event => {
const {item,server,player,player:{x,y,z,username}} = event
if (item.id != `tfg:${pill_event}_tablet`) return
item.count--
player.addItemCooldown(item, 100)
player.runCommandSilent(`effect give ${username} minecraft:${pill_event} 1800 0 true`)
server.runCommandSilent(`playsound minecraft:item.honey_bottle.drink player ${username} ${x} ${y} ${z} 10 1.5 1`)
});
});
ItemEvents.rightClicked(event => {
const {item,server,player,player:{x,y,z,username}} = event
if (item.id != `tfg:antipoison_pill`) return
item.count--
player.addItemCooldown(item, 50)
event.player.removeEffect('minecraft:poison')
server.runCommandSilent(`playsound minecraft:item.honey_bottle.drink player ${username} ${x} ${y} ${z} 10 1.5 1`)
});
ItemEvents.rightClicked(event => {
const {item,server,player,player:{x,y,z,username}} = event
if (item.id != `tfg:antipoison_tablet`) return
item.count--
player.addItemCooldown(item, 50)
event.player.removeEffect('minecraft:poison')
event.player.removeEffect('minecraft:wither')
event.player.removeEffect('minecraft:weakness')
event.player.removeEffect('minecraft:slowness')
event.player.removeEffect('minecraft:mining_fatigue')
event.player.removeEffect('minecraft:nausea')
event.player.removeEffect('minecraft:blindness')
event.player.removeEffect('minecraft:hunger')
event.player.removeEffect('minecraft:bad_omen')
event.player.removeEffect('minecraft:darkness')
event.player.removeEffect('minecraft:unluck')
server.runCommandSilent(`playsound minecraft:item.honey_bottle.drink player ${username} ${x} ${y} ${z} 10 1.5 1`)
});
//salvos
const salvo_event = [
'fire_resistance',
'invisibility',
'luck',
'resistance',
];
salvo_event.forEach(salvo_event => {
ItemEvents.rightClicked(event => {
const {item,server,player,player:{x,y,z,username}} = event
if (item.id != `tfg:${salvo_event}_salvo`) return
item.count--
player.addItemCooldown(item, 100)
player.runCommandSilent(`effect give ${username} minecraft:${salvo_event} 480 0 true`)
server.runCommandSilent(`playsound minecraft:item.glow_ink_sac.use player ${username} ${x} ${y} ${z} 10 2 1`)
});
});
ItemEvents.rightClicked(event => {
const {item,server,player,player:{x,y,z,username}} = event
if (item.id != `tfg:absorption_salvo`) return
item.count--
player.addItemCooldown(item, 200)
player.runCommandSilent(`effect give ${username} minecraft:absorption 480 4 true`)
server.runCommandSilent(`playsound minecraft:item.glow_ink_sac.use player ${username} ${x} ${y} ${z} 10 2 1`)
});
ItemEvents.rightClicked(event => {
const {item,server,player,player:{x,y,z,username}} = event
if (item.id != `tfg:instant_health_salvo`) return
item.count--
player.addItemCooldown(item, 100)
player.runCommandSilent(`effect give ${username} minecraft:instant_health 1 1 true`)
server.runCommandSilent(`playsound minecraft:item.glow_ink_sac.use player ${username} ${x} ${y} ${z} 10 2 1`)
});
// Vase Sounds
global.MINECRAFT_DYE_NAMES.forEach(color => {
BlockEvents.rightClicked(event => {
const {block,server,player,player:{x,y,z,username}} = event
if (block.id != `tfg:decorative_vase/${color}`) {return}{
server.runCommandSilent(`playsound tfc:block.quern.drag block ${username} ${block.x} ${block.y} ${block.z} 0.3 2.0 0.1`)
}})
});
BlockEvents.rightClicked(event => {
const {block,server,player,player:{x,y,z,username}} = event
if (block.id != 'tfg:decorative_vase') {return}{
server.runCommandSilent(`playsound tfc:block.quern.drag block ${username} ${block.x} ${block.y} ${block.z} 0.3 2.0 0.1`)
}});

View file

@ -0,0 +1,84 @@
LootJS.modifiers((event) => {
//Generated Vases Loot
global.MINECRAFT_DYE_NAMES.forEach(color => {
event.addBlockLootModifier(`tfg:decorative_vase/generated/${color}`)
.removeLoot(Ingredient.all)
//ore
.pool((pool) => {
pool.rolls([4, 6]);
pool.addAlternativesLoot(
LootEntry.of('tfc:ore/normal_bismuthinite').when((c) => c.randomChance(0.1)),
LootEntry.of('tfc:ore/rich_bismuthinite').when((c) => c.randomChance(0.2)),
LootEntry.of('tfc:ore/normal_native_copper').when((c) => c.randomChance(0.1)),
LootEntry.of('tfc:ore/rich_native_copper').when((c) => c.randomChance(0.2)),
LootEntry.of('tfc:ore/normal_sphalerite').when((c) => c.randomChance(0.1)),
LootEntry.of('tfc:ore/rich_sphalerite').when((c) => c.randomChance(0.2)),
LootEntry.of('tfc:ore/normal_cassiterite').when((c) => c.randomChance(0.1)),
LootEntry.of('tfc:ore/rich_cassiterite').when((c) => c.randomChance(0.2)),
LootEntry.of('tfc:ore/normal_native_gold').when((c) => c.randomChance(0.1)),
LootEntry.of('tfc:ore/rich_native_gold').when((c) => c.randomChance(0.2)),
LootEntry.of('tfc:ore/normal_native_silver').when((c) => c.randomChance(0.1)),
LootEntry.of('tfc:ore/rich_native_silver').when((c) => c.randomChance(0.2)),
LootEntry.of('tfc:ore/normal_hematite').when((c) => c.randomChance(0.1)),
LootEntry.of('tfc:ore/rich_hematite').when((c) => c.randomChance(0.2)),
LootEntry.of('gtceu:rich_raw_rock_salt').when((c) => c.randomChance(0.1)),
LootEntry.of('gtceu:rich_raw_salt').when((c) => c.randomChance(0.1)),
LootEntry.of('gtceu:rich_raw_saltpeter').when((c) => c.randomChance(0.1)),
);
})
//seeds
.pool((pool) => {
pool.rolls([2, 8]);
pool.addAlternativesLoot(
LootEntry.of('tfc:seeds/onion').when((c) => c.randomChance(0.2)),
LootEntry.of('tfc:seeds/cabbage').when((c) => c.randomChance(0.2)),
LootEntry.of('tfc:seeds/potato').when((c) => c.randomChance(0.2)),
LootEntry.of('tfc:seeds/jute').when((c) => c.randomChance(0.1)),
LootEntry.of('tfc:seeds/sugarcane').when((c) => c.randomChance(0.1)),
LootEntry.of('firmalife:plant/pineapple_bush').when((c) => c.randomChance(0.1)),
LootEntry.of('tfc:plant/peach_sapling').when((c) => c.randomChance(0.1)),
LootEntry.of('tfc:plant/red_apple_sapling').when((c) => c.randomChance(0.1)),
);
})
//loot
.pool((pool) => {
pool.rolls([0, 3]);
pool.addAlternativesLoot(
LootEntry.of('tfc:wool_yarn').when((c) => c.randomChance(0.1)),
LootEntry.of('tfc:blubber').when((c) => c.randomChance(0.1)),
LootEntry.of('minecraft:bone').when((c) => c.randomChance(0.1)),
LootEntry.of('tfc:kaolin_clay').when((c) => c.randomChance(0.1)),
LootEntry.of('tfc:glue').when((c) => c.randomChance(0.1)),
LootEntry.of('tfc:burlap_cloth').when((c) => c.randomChance(0.1)),
LootEntry.of('tfc:wool_cloth').when((c) => c.randomChance(0.1)),
LootEntry.of('tfc:mortar').when((c) => c.randomChance(0.1)),
LootEntry.of('tfc:leather').when((c) => c.randomChance(0.1)),
LootEntry.of('chalk:black_chalk').when((c) => c.randomChance(0.1)),
LootEntry.of('chalk:red_chalk').when((c) => c.randomChance(0.1)),
LootEntry.of('chalk:white_chalk').when((c) => c.randomChance(0.1)),
LootEntry.of('minecraft:goat_horn').when((c) => c.randomChance(0.1)),
LootEntry.of('tfg:regeneration_pill').when((c) => c.randomChance(0.1)),
LootEntry.of('tfg:water_breathing_pill').when((c) => c.randomChance(0.1)),
LootEntry.of('tfg:night_vision_pill').when((c) => c.randomChance(0.1)),
LootEntry.of('tfg:haste_pill').when((c) => c.randomChance(0.1)),
LootEntry.of('tfc:small_raw_hide').when((c) => c.randomChance(0.1)),
LootEntry.of('tfc:medium_raw_hide').when((c) => c.randomChance(0.1)),
LootEntry.of('tfc:large_raw_hide').when((c) => c.randomChance(0.1)),
LootEntry.of('firmalife:beeswax').when((c) => c.randomChance(0.1)),
LootEntry.of('gtceu:bismuth_bronze_pickaxe_head').when((c) => c.randomChance(0.1)),
LootEntry.of('gtceu:bismuth_bronze_axe_head').when((c) => c.randomChance(0.1)),
LootEntry.of('gtceu:bismuth_bronze_shovel_head').when((c) => c.randomChance(0.1)),
LootEntry.of('gtceu:bismuth_bronze_knife_head').when((c) => c.randomChance(0.1)),
);
})
});
});

View file

@ -0,0 +1,20 @@
// priority: 0
function registerTFGCollapseRecipes(event) {
event.recipes.tfc.collapse('minecraft:cobbled_deepslate', 'minecraft:deepslate')
event.recipes.tfc.collapse('minecraft:cobbled_deepslate', 'tfg:rock/hardened_deepslate')
event.recipes.tfc.collapse('minecraft:blackstone', 'minecraft:blackstone')
event.recipes.tfc.collapse('minecraft:blackstone', 'tfg:rock/hardened_blackstone')
event.recipes.tfc.collapse('minecraft:dripstone_block', 'minecraft:dripstone_block')
event.recipes.tfc.collapse('minecraft:dripstone_block', 'tfg:rock/hardened_dripstone')
event.recipes.tfc.collapse('tfc:rock/cobble/basalt', 'minecraft:basalt')
event.recipes.tfc.collapse('minecraft:cobbled_deepslate', '#forge:ores_in_ground/deepslate')
event.recipes.tfc.collapse('minecraft:blackstone', '#forge:ores_in_ground/pyroxenite')
event.recipes.tfc.collapse('minecraft:dripstone_block', '#forge:ores_in_ground/dripstone')
event.recipes.tfc.landslide('tfg:ash_pile', 'tfg:ash_pile')
event.recipes.tfc.landslide('minecraft:cobbled_deepslate', 'minecraft:cobbled_deepslate')
}

View file

@ -0,0 +1,123 @@
// priority: 0
function registerTFGConvertingRecipes(event) {
event.shapeless("afc:tree_tap", "treetap:tap")
event.shapeless('greate:steel_cogwheel', 'create:cogwheel')
event.shapeless('greate:large_steel_cogwheel', 'create:large_cogwheel')
event.shapeless('greate:steel_shaft', 'create:shaft')
event.shapeless('greate:steel_crushing_wheel', 'create:crushing_wheel')
event.shapeless('greate:steel_encased_fan', 'create:encased_fan')
event.shapeless('greate:steel_gearbox', 'create:gearbox')
event.shapeless('greate:steel_mechanical_mixer', 'create:mechanical_mixer')
event.shapeless('greate:steel_mechanical_saw', 'create:mechanical_saw')
event.shapeless('greate:steel_mechanical_pump', 'create:mechanical_pump')
event.shapeless('greate:rubber_belt_connector', 'create:belt_connector')
event.shapeless('greate:steel_vertical_gearbox', 'create:vertical_gearbox')
event.shapeless('create:zinc_ingot', 'gtceu:zinc_ingot')
event.shapeless('create:brass_ingot', 'gtceu:brass_ingot')
event.shapeless('vintageimprovements:vanadium_ingot', 'gtceu:vanadium_ingot')
event.shapeless('tfc:metal/ingot/black_steel', 'gtceu:black_steel_ingot')
event.shapeless('tfc:metal/ingot/red_steel', 'gtceu:red_steel_ingot')
event.shapeless('tfc:metal/ingot/blue_steel', 'gtceu:blue_steel_ingot')
event.shapeless('tfc:metal/double_ingot/cast_iron', 'gtceu:iron_double_ingot')
event.shapeless('tfc:metal/double_ingot/black_steel', 'gtceu:black_steel_double_ingot')
event.shapeless('tfc:metal/double_ingot/red_steel', 'gtceu:red_steel_double_ingot')
event.shapeless('tfc:metal/double_ingot/blue_steel', 'gtceu:blue_steel_double_ingot')
event.shapeless('create:zinc_nugget', 'gtceu:zinc_nugget')
event.shapeless('create:brass_nugget', 'gtceu:brass_nugget')
event.shapeless('create:copper_nugget', 'gtceu:copper_nugget')
event.shapeless('vintageimprovements:vanadium_nugget', 'gtceu:vanadium_nugget')
event.shapeless('create:copper_sheet', 'gtceu:copper_plate')
event.shapeless('create:brass_sheet', 'gtceu:brass_plate')
event.shapeless('create:golden_sheet', 'gtceu:gold_plate')
event.shapeless('vintageimprovements:cast_iron_sheet', 'gtceu:iron_plate')
event.shapeless('vintageimprovements:cobalt_sheet', 'gtceu:cobalt_plate')
event.shapeless('vintageimprovements:rose_gold_sheet', 'gtceu:rose_gold_plate')
event.shapeless('vintageimprovements:aluminum_sheet', 'gtceu:aluminium_plate')
event.shapeless('vintageimprovements:invar_sheet', 'gtceu:invar_plate')
event.shapeless('vintageimprovements:lead_sheet', 'gtceu:lead_plate')
event.shapeless('vintageimprovements:nickel_sheet', 'gtceu:nickel_plate')
event.shapeless('vintageimprovements:osmium_sheet', 'gtceu:osmium_plate')
event.shapeless('vintageimprovements:palladium_sheet', 'gtceu:palladium_plate')
event.shapeless('vintageimprovements:platinum_sheet', 'gtceu:platinum_plate')
event.shapeless('vintageimprovements:rhodium_sheet', 'gtceu:rhodium_plate')
event.shapeless('vintageimprovements:silver_sheet', 'gtceu:silver_plate')
event.shapeless('vintageimprovements:vanadium_sheet', 'gtceu:vanadium_plate')
event.shapeless('vintageimprovements:zinc_sheet', 'gtceu:zinc_plate')
event.shapeless('vintageimprovements:vanadium_block', 'gtceu:vanadium_block')
event.shapeless('create:zinc_block', 'gtceu:zinc_block')
event.shapeless('create:brass_block', 'gtceu:brass_block')
event.shapeless('create:crushed_raw_gold', 'gtceu:gold_purified_ore')
event.shapeless('create:crushed_raw_copper', 'gtceu:copper_purified_ore')
event.shapeless('create:crushed_raw_zinc', 'gtceu:zinc_purified_ore')
event.shapeless('create:crushed_raw_silver', 'gtceu:silver_purified_ore')
event.shapeless('create:crushed_raw_tin', 'gtceu:tin_purified_ore')
event.shapeless('create:crushed_raw_lead', 'gtceu:lead_purified_ore')
event.shapeless('tfc:ore/rich_native_copper', 'gtceu:rich_raw_copper')
event.shapeless('tfc:ore/normal_native_copper', 'minecraft:raw_copper')
event.shapeless('tfc:ore/poor_native_copper', 'gtceu:poor_raw_copper')
event.shapeless('tfc:ore/rich_native_gold', 'gtceu:rich_raw_gold')
event.shapeless('tfc:ore/normal_native_gold', 'minecraft:raw_gold')
event.shapeless('tfc:ore/poor_native_gold', 'gtceu:poor_raw_gold')
event.shapeless('tfc:ore/rich_tetrahedrite', 'gtceu:rich_raw_tetrahedrite')
event.shapeless('tfc:ore/normal_tetrahedrite', 'gtceu:raw_tetrahedrite')
event.shapeless('tfc:ore/poor_tetrahedrite', 'gtceu:poor_raw_tetrahedrite')
event.shapeless('tfc:ore/rich_malachite', 'gtceu:rich_raw_malachite')
event.shapeless('tfc:ore/normal_malachite', 'gtceu:raw_malachite')
event.shapeless('tfc:ore/poor_malachite', 'gtceu:poor_raw_malachite')
event.shapeless('tfc:ore/rich_hematite', 'gtceu:rich_raw_hematite')
event.shapeless('tfc:ore/normal_hematite', 'gtceu:raw_hematite')
event.shapeless('tfc:ore/poor_hematite', 'gtceu:poor_raw_hematite')
event.shapeless('tfc:ore/rich_cassiterite', 'gtceu:rich_raw_cassiterite')
event.shapeless('tfc:ore/normal_cassiterite', 'gtceu:raw_cassiterite')
event.shapeless('tfc:ore/poor_cassiterite', 'gtceu:poor_raw_cassiterite')
event.shapeless('tfc:ore/rich_bismuthinite', 'gtceu:rich_raw_bismuth')
event.shapeless('tfc:ore/normal_bismuthinite', 'gtceu:raw_bismuth')
event.shapeless('tfc:ore/poor_bismuthinite', 'gtceu:poor_raw_bismuth')
event.shapeless('tfc:ore/rich_magnetite', 'gtceu:rich_raw_magnetite')
event.shapeless('tfc:ore/normal_magnetite', 'gtceu:raw_magnetite')
event.shapeless('tfc:ore/poor_magnetite', 'gtceu:poor_raw_magnetite')
event.shapeless('tfc:ore/rich_limonite', 'gtceu:rich_raw_yellow_limonite')
event.shapeless('tfc:ore/normal_limonite', 'gtceu:raw_yellow_limonite')
event.shapeless('tfc:ore/poor_limonite', 'gtceu:poor_raw_yellow_limonite')
event.shapeless('tfc:ore/rich_garnierite', 'gtceu:rich_raw_garnierite')
event.shapeless('tfc:ore/normal_garnierite', 'gtceu:raw_garnierite')
event.shapeless('tfc:ore/poor_garnierite', 'gtceu:poor_raw_garnierite')
event.shapeless('tfc:ore/rich_native_silver', 'gtceu:rich_raw_silver')
event.shapeless('tfc:ore/normal_native_silver', 'gtceu:raw_silver')
event.shapeless('tfc:ore/poor_native_silver', 'gtceu:poor_raw_silver')
event.shapeless('tfc:ore/rich_sphalerite', 'gtceu:rich_raw_sphalerite')
event.shapeless('tfc:ore/normal_sphalerite', 'gtceu:raw_sphalerite')
event.shapeless('tfc:ore/poor_sphalerite', 'gtceu:poor_raw_sphalerite')
}

Some files were not shown because too many files have changed in this diff Show more