Alpha release: 0.10 (#1285)

* added resource pack for the old create copper textures, reverted the new models of the greate pumps

* I can't remember why I added this

* added back ad astra oxygen loader JEI page, removed greate haunting + ae2 entropy

* corrected average temp in orbits, since spacesuits have ambiental compat now

* nerfed VI centrifuge times

* adjusted recipes of crushing wheels to need a machine hull now

* disabled orbits

* added rock duping recipes for vanilla basalt, added greenhouse recipe for spore blossom

* updated steam n rails, added entityjs

* fix typo on gas tanks

* cleanup

* started moon rabbit entity

* nerfed the steam age fire clay recipe because let's be real

* ah fuck it I'll be nice

* Steam N Rails loottable (#1220)

fix for the conductor

Signed-off-by: Jean Roberto de Souza <81846511+JeanRdSz@users.noreply.github.com>

* merging langs

* idk entity stuff

* lang keys

* removed ae2-things

* I think that's a better tagline

Signed-off-by: Pyritie <pyritie@gmail.com>

* - Lots of ui updates. And a couple fixes. (#1221)

Co-authored-by: Pyritie <pyritie@gmail.com>

* Update README.md

* added pt_br ore field guide pages

* Changes the greg wood plank and treated wood plank recipes to follow a more realistic processing chain (#1223)

* adds MDF, reworks treated wood and normal wood plate crafting chains

* removes treated wood plank from the minecraft:planks tag

* changed a few create recipes to need bolts instead of screws

* adjusted the water wheel recipe again so it's not quite so evil

* quest tweaks

* fixed the lathe not making gem rods, also lens stuff

* removed the other ad astra material components (for now)

* fixed the vibrating table with rose quartz

* Some small stuff (#1225)

* - Lots of ui updates. And a couple fixes.

* - New button textures.
- Fixed campfire loot table.
- Made anvil rod recipes easier.
- Added assembler recipes for multiblock tank parts.

* - Added assembler recipes for multiblock tank parts.

* - Updated Changelog

---------

Co-authored-by: Pyritie <pyritie@gmail.com>

* updated kubejs-tfc

* Delete fabricDefaultResourcePacks.dat

* .gitignore

* .gitignore

* update: config

* Modern markings integration (#1228)

* - Lots of ui updates. And a couple fixes.

* - New button textures.
- Fixed campfire loot table.
- Made anvil rod recipes easier.
- Added assembler recipes for multiblock tank parts.

* - Added assembler recipes for multiblock tank parts.

* - Updated Changelog

* - Some more UI tweaks.
- Added modern-markings mod with integration.

---------

Co-authored-by: Pyritie <pyritie@gmail.com>

* hid the tfg icon from jei

* more fiddling with the moon rabbit houses. I'm just gonna disable them until I find out what's causing the boxes under them, they look too ugly otherwise

* added a bunch of plants from Better End, tags, recipes, license, credits (#1229)

* convert the nether mushrooms into the new plant block builder type too

* now only the recipes that use 8 inputs actually use 8 fertiliser

* don't need you

* fixed the lightblooms from spawning on top of each other

* I am stupid

* oh yeah, kubejs-tfc fixed this

* nerfed the steam age coke oven brick a little

* fixed ethane quest requiring plant ball route

* the moon and orbits are now silent

* disabled the correct planets

* added earth orbit space station

* unused

* fix ae2 certus quartz compressor recipe warning

* dunno how that happened

* some tidying

* disable steam/combustible/gas generators on other dims?

* updated entityjs, everycomp, moonlight, packetfixer, vintageimprovements

* added missing sand pile models

* comma

* dimension settings, planet renderer, etc

* removes any other integrated create recipes from greate machines

* removed forgiving world, added simply stacked dimensions, added configs (#1233)

* replaced all our water input fluids with a tag, so river water works too

* fixed missing recipes for create deco ladders

* langs

* cheese

* adding greenhouse tier bonuses + fixing the fertilised recipes chanced outputs consistency

* oxygenated climate stuff

* changing some other recipes to use bolts instead of nuggets

* Updated stromatolite textures + some new venus foliage (#1234)

* - Lots of ui updates. And a couple fixes.

* - New button textures.
- Fixed campfire loot table.
- Made anvil rod recipes easier.
- Added assembler recipes for multiblock tank parts.

* - Added assembler recipes for multiblock tank parts.

* - Updated Changelog

* - Some more UI tweaks.
- Added modern-markings mod with integration.

* - Updated stromatolite textures
- Added some more WIP venus foliage

---------

Co-authored-by: Pyritie <pyritie@gmail.com>

* langs, closes #1231

* these are handled by the decorative plant block builder now

* sea and spring water now also freeze in space

* added recipe to smelt wrought iron ingots back into cast iron in case you need them in that state

* ukranian langs

* ukranian translations for the field guide ore veins

* blacklisting super chests from contraptions

* oops

* moon cheese tags

* Moved some items from tfg-core (#1242)

* - Lots of ui updates. And a couple fixes.

* - New button textures.
- Fixed campfire loot table.
- Made anvil rod recipes easier.
- Added assembler recipes for multiblock tank parts.

* - Added assembler recipes for multiblock tank parts.

* - Updated Changelog

* - Some more UI tweaks.
- Added modern-markings mod with integration.

* - Updated stromatolite textures
- Added some more WIP venus foliage

* - Moved some blocks over from tfg-core.

---------

Co-authored-by: Pyritie <pyritie@gmail.com>

* ukranian field guide ore vein langs

* Updated textures for tier-1 rocket and food oven. (#1246)

* - Lots of ui updates. And a couple fixes.

* - New button textures.
- Fixed campfire loot table.
- Made anvil rod recipes easier.
- Added assembler recipes for multiblock tank parts.

* - Added assembler recipes for multiblock tank parts.

* - Updated Changelog

* - Some more UI tweaks.
- Added modern-markings mod with integration.

* - Updated stromatolite textures
- Added some more WIP venus foliage

* - Moved some blocks over from tfg-core.

* - Updated textures for tier-1 rocket and food oven.

---------

Co-authored-by: Pyritie <pyritie@gmail.com>

* changed the moonbase flag to use the new icon

* langs

* 🐇

* Mechanical press (#1243)

* welcome back, mechanical press

* EMI category order

* langs

* quests

* emi categories

* quests

* greate stress settings for the mech press

* I got distracted so I guess these are on this branch now

* removed welding recipes from the pressurizer

* recipe additions and changes for the mech press!

* let's go gambling!

* added flux to the mech press "welding" recipes

* flag changes again

* stops a future version of greate from generating a bender-to-mech-press recipe for double ingots

* fixed the FE cables still being in the loot chests

* desh needs an EBF now

* Updated more textures for ad-astra stuff + new panorama (#1247)

* - Lots of ui updates. And a couple fixes.

* - New button textures.
- Fixed campfire loot table.
- Made anvil rod recipes easier.
- Added assembler recipes for multiblock tank parts.

* - Added assembler recipes for multiblock tank parts.

* - Updated Changelog

* - Some more UI tweaks.
- Added modern-markings mod with integration.

* - Updated stromatolite textures
- Added some more WIP venus foliage

* - Moved some blocks over from tfg-core.

* - Updated textures for tier-1 rocket and food oven.

* - Updated textures for more ad-astra stuff + new panorama

---------

Co-authored-by: Pyritie <pyritie@gmail.com>

* Crop stuff for biodiesel, works on my machine . (#1248)

* Added the crop stuff I made so far

* I think thiss should be fine?

* I litteraly have no idea what I am doing

* I hope this fixes everything

---------

Signed-off-by: 34y34y34y34y34y34y34y34y34y <34y34y34y34y34y34y34y34y34y@gmail.com>

* oops we had two fluix blocks

* langs

* sorry, no floor alcohol on the moon

* cleanup of #1248

Related Work Items: #12

* bottle labels can use any wax

* seed oil can be used in lamps now, added recipes to get it early

* missing uses for clean foil packs

* pakku updates, removed entityjs (for now), added ad-astra-3d

* added create factory logistics

* forgot some ore processing forge hammer recipes

* I think that's the ore processing chapter sorted

* ah screw it, orbits

* replace wood dust for carbon in biomass distillation

* langs n quests

* made solars worse on earth

* space food tag

* gave calorie paste a little nutrition

* made the space station quest optional

* changelog

* tweaks and balances after playtesting a bit

* let's give these more fruits

* made these a little more spread out

* some more tweaks

* langs

* Biodiesel Stuff (#1249)

* - Lots of ui updates. And a couple fixes.

* - New button textures.
- Fixed campfire loot table.
- Made anvil rod recipes easier.
- Added assembler recipes for multiblock tank parts.

* - Added assembler recipes for multiblock tank parts.

* - Updated Changelog

* - Some more UI tweaks.
- Added modern-markings mod with integration.

* - Updated stromatolite textures
- Added some more WIP venus foliage

* - Moved some blocks over from tfg-core.

* - Updated textures for tier-1 rocket and food oven.

* - Updated textures for more ad-astra stuff + new panorama

* - Biodiesel stuff

---------

Co-authored-by: Pyritie <pyritie@gmail.com>

* added bio fuel quests, more biodiesel recipes

* fixes #1240

Related Work Items: #12

* excluded ad astra and advanced peripherals books

* this stupid quest that I hate

* clean up this infinite resources entry

* fixed blockstates

* field guide

* got the oil crops all working!

* langs

* moon bedrock veins

* langs

* buffing air distributor again

* apparently 9 inputs is the maximum, so no flux allowed

* seed oil now lasts as long as soybean oil in a lamp

* oops, greate's update meant all our macerator removals stopped working

* fixes #1203 and some other incorrect/missing food recipes

* Quest changes (#1251)

* - Lots of ui updates. And a couple fixes.

* - New button textures.
- Fixed campfire loot table.
- Made anvil rod recipes easier.
- Added assembler recipes for multiblock tank parts.

* - Added assembler recipes for multiblock tank parts.

* - Updated Changelog

* - Some more UI tweaks.
- Added modern-markings mod with integration.

* - Updated stromatolite textures
- Added some more WIP venus foliage

* - Moved some blocks over from tfg-core.

* - Updated textures for tier-1 rocket and food oven.

* - Updated textures for more ad-astra stuff + new panorama

* - Biodiesel stuff

* - Quests re-ordering and some new ones

---------

Co-authored-by: Pyritie <pyritie@gmail.com>

* tweaks to default keybinds

* Hide wild crops and forgot to push some quest stuff (#1252)

* - Lots of ui updates. And a couple fixes.

* - New button textures.
- Fixed campfire loot table.
- Made anvil rod recipes easier.
- Added assembler recipes for multiblock tank parts.

* - Added assembler recipes for multiblock tank parts.

* - Updated Changelog

* - Some more UI tweaks.
- Added modern-markings mod with integration.

* - Updated stromatolite textures
- Added some more WIP venus foliage

* - Moved some blocks over from tfg-core.

* - Updated textures for tier-1 rocket and food oven.

* - Updated textures for more ad-astra stuff + new panorama

* - Biodiesel stuff

* - Quests re-ordering and some new ones

* - Hide wild crops from emi

* - Hide wild crops from emi

---------

Co-authored-by: Pyritie <pyritie@gmail.com>

* pakku update

* it's ok xikaro it's just adding a credit line

Signed-off-by: Pyritie <pyritie@gmail.com>

* Moon rabbit meat stuff (#1254)

* - Lots of ui updates. And a couple fixes.

* - New button textures.
- Fixed campfire loot table.
- Made anvil rod recipes easier.
- Added assembler recipes for multiblock tank parts.

* - Added assembler recipes for multiblock tank parts.

* - Updated Changelog

* - Some more UI tweaks.
- Added modern-markings mod with integration.

* - Updated stromatolite textures
- Added some more WIP venus foliage

* - Moved some blocks over from tfg-core.

* - Updated textures for tier-1 rocket and food oven.

* - Updated textures for more ad-astra stuff + new panorama

* - Biodiesel stuff

* - Quests re-ordering and some new ones

* - Hide wild crops from emi

* - Hide wild crops from emi

* - Moon rabbit meat

* - Moon rabbit meat

---------

Co-authored-by: Pyritie <pyritie@gmail.com>

* Feature/new molds (#1253)

* Update recipes.js

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

* Update constants.js

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

* Update recipes.molds.js

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

* Add files via upload

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

* Add files via upload

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

* Update recipes.materials.js

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

* Update recipes.materials.js

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

---------

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>
Co-authored-by: Pyritie <pyritie@gmail.com>

* delete chisel and bits

* this damn loot table

* removed cast iron tongs

* more unification for #898, also a workaround for #963 maybe?

* quests

* removed power tool recycling recipes because of duping, fixed crafting table spring recipes

* whoops

* changed the repeatable quest to a separate one, so new players still get the books on spawn

* fixed orbit structures

* renamed tfc grooming stations

* removed sunsets in all orbits, cleaned up the dim files

* firmalife update!

* no idea if this is fixed in GT7 or not, but the nano/quark armor has actual armor points now

* rename horse crank to animal crank

* changelog

* updated domum

* wire cutter mold and Hypertube compat (#1258)

* Update constants.js

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

* Update recipes.molds.js

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

* Create hypertube.png

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

* Add files via upload

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

* Create recipes.js

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

* Add files via upload

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

* Add files via upload

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

* Update main_server_script.js

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

* Update recipes.js

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

---------

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

* Add recipe for Bamboo Hopper. Add quest for it too

* species update! also some biome spawn rates of limpets, and adding create hypertubes to pakku

* pakku again

* Machine casings for Tom and moon rabbit meat stuff I forgot to push (#1259)

* - Lots of ui updates. And a couple fixes.

* - New button textures.
- Fixed campfire loot table.
- Made anvil rod recipes easier.
- Added assembler recipes for multiblock tank parts.

* - Added assembler recipes for multiblock tank parts.

* - Updated Changelog

* - Some more UI tweaks.
- Added modern-markings mod with integration.

* - Updated stromatolite textures
- Added some more WIP venus foliage

* - Moved some blocks over from tfg-core.

* - Updated textures for tier-1 rocket and food oven.

* - Updated textures for more ad-astra stuff + new panorama

* - Biodiesel stuff

* - Quests re-ordering and some new ones

* - Hide wild crops from emi

* - Hide wild crops from emi

* - Moon rabbit meat

* - Moon rabbit meat

* - Moon rabbit meat textures and casings for tom

* - models

* - oops

* - rocket

* - ooops

---------

Co-authored-by: Pyritie <pyritie@gmail.com>

* argh

* whoops

* fiiiiiiine

* fixed unobtainable cobalt brass buzzsaw before mv

* quests

* firmalife quests

* added programmed circuit card

* 🍰🎂

* langs

* hide these species recipes

* unhide these new pearls

* remove ender eye, added vitrified ender pearl

* Added dry ice support for lunchboxes (#1262)

* - Lots of ui updates. And a couple fixes.

* - New button textures.
- Fixed campfire loot table.
- Made anvil rod recipes easier.
- Added assembler recipes for multiblock tank parts.

* - Added assembler recipes for multiblock tank parts.

* - Updated Changelog

* - Some more UI tweaks.
- Added modern-markings mod with integration.

* - Updated stromatolite textures
- Added some more WIP venus foliage

* - Moved some blocks over from tfg-core.

* - Updated textures for tier-1 rocket and food oven.

* - Updated textures for more ad-astra stuff + new panorama

* - Biodiesel stuff

* - Quests re-ordering and some new ones

* - Hide wild crops from emi

* - Hide wild crops from emi

* - Moon rabbit meat

* - Moon rabbit meat

* - Moon rabbit meat textures and casings for tom

* - models

* - oops

* - rocket

* - ooops

* - Added dry ice support for lunchboxes

* - Fixed soybean oil quest

* - Added dry ice block

* - Assets for dry ice block

---------

Co-authored-by: Pyritie <pyritie@gmail.com>

* fixed amounts in kaolinite chem reaction, added ruby version

* changed combustion recipes to be dimension-limited again

* changelog

* well actually it's not done yet

* create 6 configs

* langs

* fixed some damascus steel stuff still showing up

* fixed the wild rapeseed/sunflowers not dropping their products

* update pakku

* update pakku

* fixed extruder mold recipe

* fucking gregtech

* langs

* orbit dim markers

* Moon quest update (#1266)

* Changes for quests LV MV Energy Chapter

* Fix AE2 and Solar Panel

* Revert HV change

* Feature/hopper retexture (#1267)

* Create bamboo_hopper.png

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

* Add files via upload

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

* Create bamboo_hopper.bbmodel

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

* Add files via upload

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

* Add files via upload

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

---------

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

* langs

* Update hv__high_voltage.snbt (#1268)

Signed-off-by: TomPlop <tomdidome@gmail.com>

* quests, langs, slight change to the vitrified pearl recipe

* Adding Ad Astra block to gt facade (#1269)

Signed-off-by: TomPlop <tomdidome@gmail.com>

* Bronze variant Mortars (#1270)

* Removed infinite lava and fixed refrigerant recipes (#1271)

* - Lots of ui updates. And a couple fixes.

* - New button textures.
- Fixed campfire loot table.
- Made anvil rod recipes easier.
- Added assembler recipes for multiblock tank parts.

* - Added assembler recipes for multiblock tank parts.

* - Updated Changelog

* - Some more UI tweaks.
- Added modern-markings mod with integration.

* - Updated stromatolite textures
- Added some more WIP venus foliage

* - Moved some blocks over from tfg-core.

* - Updated textures for tier-1 rocket and food oven.

* - Updated textures for more ad-astra stuff + new panorama

* - Biodiesel stuff

* - Quests re-ordering and some new ones

* - Hide wild crops from emi

* - Hide wild crops from emi

* - Moon rabbit meat

* - Moon rabbit meat

* - Moon rabbit meat textures and casings for tom

* - models

* - oops

* - rocket

* - ooops

* - Added dry ice support for lunchboxes

* - Fixed soybean oil quest

* - Added dry ice block

* - Assets for dry ice block

* - Removed infinite lava

* - Added circuit to tetrafluoroethylene_from_chloroform recipe

* - Fixed my crack-head math

* - update Changelog

---------

Co-authored-by: Pyritie <pyritie@gmail.com>

* move: screenshots

* move: wiki

* started porting over the hv quest langs

* Adding the Large Solar Panel (#1275)

* Adding the Large Solar Panel

* Update config for Ad Astral Solar increase possible output

* fix conflict

* quarktech stuff works as a space suit, though you'll still need the chestplate (for now)

* langs

* update pakku

* move: title + icon modern

* revert: move sources

* revert: images

* rename: curseforge_gallery

* Adding the LSP Structure (#1276)

Oups

Signed-off-by: TomPlop <tomdidome@gmail.com>

* Adding recipe type for LSP (#1277)

Signed-off-by: TomPlop <tomdidome@gmail.com>

* langs, disabled unused casings

* fixed kaolinite steam machine consistency

* quest tweaks

* fixed naming of casing blocks

* added LSP to space survival chapter

* added HS crushing wheels to HV tab too

* gonna kill this page - lava is no longer infinite, stone dusts are nerfed to be not very good, and the terrariums will be going away in the future

* - Added update banners (#1278)

* Revert "- Added update banners (#1278)"

This reverts commit 5f01d3385c.

* changelog

* EMI categories

* langs

* haha how did that get in there!

* q

* Update README.md (#1282)

Signed-off-by: Redeix <59435925+Redeix@users.noreply.github.com>

* Merging guns branch (#1283)

* Feature/ulv ev guns (#1280)

* update pakku mods

* mod config stuff

* Port over of current guns

* ae2 gun recipes

* nitrocellulose and other stuff

* more recipes

* gun packs

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

* Update pakku-lock.json

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

---------

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

* LICENSE

* changed powderbarrel to use lumber instead of wood boards

* lang

* gunpowder unification

* emi categories

---------

Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>
Co-authored-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>

* hid new sophisticated backpack upgrade

* pakku

* added programmed circuit card to ae2 quests

* dump

* Update forge-auto-install.txt

---------

Signed-off-by: Jean Roberto de Souza <81846511+JeanRdSz@users.noreply.github.com>
Signed-off-by: Pyritie <pyritie@gmail.com>
Signed-off-by: 34y34y34y34y34y34y34y34y34y <34y34y34y34y34y34y34y34y34y@gmail.com>
Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>
Signed-off-by: TomPlop <tomdidome@gmail.com>
Signed-off-by: Redeix <59435925+Redeix@users.noreply.github.com>
Co-authored-by: Jean Roberto de Souza <81846511+JeanRdSz@users.noreply.github.com>
Co-authored-by: Gustavo <ofoxsmith@outlook.com>
Co-authored-by: Redeix <59435925+Redeix@users.noreply.github.com>
Co-authored-by: Xikaro <os.valerievich@ya.ru>
Co-authored-by: Kayla <66163851+kaylatheegg@users.noreply.github.com>
Co-authored-by: 34y34y34y34y34y34y34y34y34y <34y34y34y34y34y34y34y34y34y@gmail.com>
Co-authored-by: GameStar <56610486+BlueBoat29@users.noreply.github.com>
Co-authored-by: Nebby1999 <nebby131999@gmail.com>
Co-authored-by: TomPlop <tomdidome@gmail.com>
Co-authored-by: Nebby <78170922+Nebby1999@users.noreply.github.com>
This commit is contained in:
Pyritie 2025-07-13 14:07:12 +01:00 committed by GitHub
parent 1bfb5a969b
commit 417fa894ae
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
1696 changed files with 277884 additions and 17219 deletions

View file

@ -0,0 +1,20 @@
// priority: 0
function registerTFCDataForAdAstra(event) {
event.itemSize('ad_astra:tier_1_rocket', 'huge', 'very_heavy')
event.itemSize('ad_astra:tier_2_rocket', 'huge', 'very_heavy')
event.itemSize('ad_astra:tier_3_rocket', 'huge', 'very_heavy')
event.itemSize('ad_astra:tier_4_rocket', 'huge', 'very_heavy')
event.itemSize('ad_astra:tier_1_rover', 'very_large', 'very_heavy')
event.itemSize('ad_astra:launch_pad', 'very_large', 'very_heavy')
event.foodItem('ad_astra:cheese', food => {
food.hunger(4)
food.saturation(12)
food.dairy(5)
food.decayModifier(10)
})
}

View file

@ -0,0 +1,16 @@
// priority: 0
function registerAdAstraLoots(event) {
event.addEntityLootModifier('ad_astra:corrupted_lunarian')
.addWeightedLoot([1, 2], ['minecraft:rotten_flesh'])
.addWeightedLoot([4, 6], ['minecraft:bone'])
event.addEntityLootModifier('ad_astra:star_crawler')
.addWeightedLoot([5, 8], ['tfg:food/raw_crawlermari'])
event.addEntityLootModifier('ad_astra:star_crawler')
.randomChanceWithEnchantment('minecraft:looting', [0, 0.3, 0.6, 1])
.addWeightedLoot([2, 4], ['tfc:food/raw_crawlermari'])
}

View file

@ -0,0 +1,695 @@
// priority: 0
const registerAdAstraRecipes = (event) => {
event.remove({ mod: 'ad_astra' })
//#region Rocket parts
event.shaped('ad_astra:launch_pad', [
'BAB',
'AAA',
'BAB'
], {
A: '#forge:plates/steel',
B: '#forge:rods/steel'
}).id('tfg:launch_pad')
//#region Tier 1 rocket
event.recipes.gtceu.assembler('tfg:rocket_nose_cone_t1')
.itemInputs(
'gtceu:hv_emitter',
'gtceu:dense_rocket_alloy_t1_plate',
'3x gtceu:double_stainless_steel_plate')
.inputFluids(Fluid.of('gtceu:polyethylene', 144 * 16))
.itemOutputs('ad_astra:rocket_nose_cone')
.duration(1200)
.EUt(480)
event.recipes.gtceu.pyrolyse_oven('tfg:pyrolyse_vitrified_asbestos_dust')
.inputFluids(Fluid.of('gtceu:nitrogen', 100))
.itemInputs('gtceu:asbestos_dust')
.itemOutputs('gtceu:vitrified_asbestos_dust')
.duration(80)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.mixer('tfg:rocket_alloy_t1')
.itemInputs('6x #forge:dusts/aluminium', '2x #forge:dusts/stainless_steel')
.inputFluids(Fluid.of('gtceu:red_steel', 144))
.itemOutputs('9x #forge:dusts/rocket_alloy_t1')
.duration(580)
.EUt(480)
event.recipes.gtceu.chemical_bath('tfg:rocket_alloy_cool_down_water')
.itemInputs('#forge:hot_ingots/rocket_alloy_t1')
.inputFluids(Fluid.of('minecraft:water', 100))
.itemOutputs('#forge:ingots/rocket_alloy_t1')
.duration(400)
.EUt(120)
event.recipes.gtceu.chemical_bath('tfg:rocket_alloy_cool_down_distilled_water')
.itemInputs('#forge:hot_ingots/rocket_alloy_t1')
.inputFluids(Fluid.of('gtceu:distilled_water', 100))
.itemOutputs('#forge:ingots/rocket_alloy_t1')
.duration(250)
.EUt(120)
event.recipes.gtceu.assembler(`tfg:rocket_fin_t1`)
.itemInputs('#forge:plates/rocket_alloy_t1', '#forge:double_plates/stainless_steel')
.itemOutputs('ad_astra:rocket_fin')
.duration(150)
.EUt(GTValues.VA[GTValues.HV])
event.recipes.gtceu.assembler('tfg:rocket_steel_engine')
.itemInputs(
'2x #forge:double_plates/stainless_steel',
'2x #gtceu:circuits/hv',
'gtceu:hv_electric_pump',
'2x gtceu:power_thruster',
'#forge:rotors/stainless_steel')
.inputFluids(Fluid.of('gtceu:blue_steel', 144 * 8))
.itemOutputs('ad_astra:steel_engine')
.duration(600)
.EUt(GTValues.VA[GTValues.HV])
event.recipes.gtceu.assembler('ad_astra:assembler_tier_1_rocket')
.itemInputs(
'8x #forge:dense_plates/rocket_alloy_t1',
'4x ad_astra:rocket_fin',
'1x ad_astra:steel_engine',
'1x ad_astra:rocket_nose_cone',
'16x #forge:insulation_t1'
)
.inputFluids(Fluid.of('gtceu:silicon', 144 * 16))
.itemOutputs('ad_astra:tier_1_rocket')
.duration(1200)
.EUt(GTValues.VA[GTValues.HV])
//#endregion
//#endregion
//#region space suits
event.recipes.gtceu.forming_press('space_suit_fabric')
.itemInputs(
'#forge:foils/aluminium',
'gtceu:carbon_fiber_mesh',
'#forge:foils/silicone_rubber',
'tfg:polycaprolactam_fabric'
)
.itemOutputs('2x tfg:space_suit_fabric')
.duration(20 * 10)
.EUt(GTValues.VA[GTValues.HV])
event.shaped('ad_astra:space_helmet', [
'AAA',
'ADA',
'BBB'
], {
A: 'gtceu:tempered_glass',
B: 'tfg:space_suit_fabric',
D: '#forge:small_fluid_pipes/polyethylene'
}).id('tfg:space_helmet')
//event.recipes.gtceu.assembler('ad_astra:netherite_space_helmet')
// .itemInputs(
// 'ad_astra:space_helmet',
// '3x #forge:plates/titanium_tungsten_carbide',
// '3x #forge:plates/polyphenylene_sulfide',
// '5x gtceu:laminated_glass'
// )
// .itemOutputs('ad_astra:netherite_space_helmet')
// .duration(400)
// .EUt(GTValues.VA[GTValues.IV])
event.shaped('ad_astra:space_suit', [
'B B',
'BDB',
'BBB'
], {
B: 'tfg:space_suit_fabric',
D: 'ad_astra:oxygen_gear'
}).id('tfg:space_suit')
//event.recipes.gtceu.assembler('ad_astra:netherite_space_suit')
// .itemInputs('ad_astra:space_suit', '4x #forge:plates/titanium_tungsten_carbide', '4x #forge:plates/polyphenylene_sulfide')
// .itemOutputs('ad_astra:netherite_space_suit')
// .duration(400)
// .EUt(GTValues.VA[GTValues.IV])
event.shaped('ad_astra:space_pants', [
'BAB',
'B B',
'B B'
], {
A: 'gtceu:hv_electric_motor',
B: 'tfg:space_suit_fabric',
}).id('tfg:space_pants')
//event.recipes.gtceu.assembler('ad_astra:netherite_space_pants')
// .itemInputs('ad_astra:space_pants', '4x #forge:plates/titanium_tungsten_carbide', '4x #forge:plates/polyphenylene_sulfide')
// .itemOutputs('ad_astra:netherite_space_pants')
// .duration(400)
// .EUt(GTValues.VA[GTValues.IV])
event.shaped('ad_astra:space_boots', [
'B B',
'A A'
], {
A: '#forge:plates/polyphenylene_sulfide',
B: 'tfg:space_suit_fabric'
}).id('tfg:space_boots')
//event.recipes.gtceu.assembler('ad_astra:netherite_space_boots')
// .itemInputs('ad_astra:space_boots', '2x #forge:plates/titanium_tungsten_carbide', '2x #forge:plates/polyphenylene_sulfide')
// .itemOutputs('ad_astra:netherite_space_boots')
// .duration(400)
// .EUt(GTValues.VA[GTValues.IV])
event.shaped('ad_astra:oxygen_gear', [
'BAB',
'ECE',
'BDB'
], {
A: '#gtceu:circuits/hv',
B: '#forge:tiny_fluid_pipes/stainless_steel',
C: 'gtceu:hv_electric_pump',
D: 'gtceu:fluid_detector_cover',
E: 'ad_astra:gas_tank'
}).id('tfg:oxygen_gear')
//#endregion
//#region Gas tanks
event.shaped('ad_astra:gas_tank', [
'ABA',
'ACA',
'AAA'
], {
A: '#forge:foils/polyphenylene_sulfide',
B: '#forge:tiny_fluid_pipes/polyethylene',
C: 'gtceu:aluminium_fluid_cell'
}).id('tfg:gas_tank')
event.shaped('ad_astra:large_gas_tank', [
'ABA',
'ACA',
'AAA'
], {
A: '#forge:sheets/polyphenylene_sulfide',
B: '#forge:small_fluid_pipes/polyethylene',
C: 'gtceu:stainless_steel_fluid_cell'
}).id('tfg:large_gas_tank')
//#endregion
//#region Machines
event.shaped('ad_astra:oxygen_distributor', [
'DBD',
'ACA',
'DBD'
], {
A: '#forge:plates/stainless_steel',
B: '#gtceu:circuits/hv',
C: 'gtceu:hv_machine_hull',
D: 'gtceu:filter_casing'
}).id('tfg:oxygen_distributor')
event.shaped('ad_astra:gravity_normalizer', [
'A A',
'CBC',
'ADA'
], {
A: '#forge:rods/magnetic_neodymium',
B: 'gtceu:ev_field_generator',
C: '#forge:plates/titanium',
D: 'gtceu:ev_polarizer',
}).id('tfg:gravity_normalizer')
event.shaped('ad_astra:oxygen_sensor', [
'AEA',
'BDC',
'AAA'
], {
A: '#forge:plates/red_alloy',
B: 'gtceu:activity_detector_cover',
C: 'gtceu:fluid_detector_cover',
D: 'gtceu:mv_machine_hull',
E: '#gtceu:circuits/mv'
}).id('tfg:oxygen_sensor')
event.recipes.gtceu.laser_engraver('ad_astra:photovoltaic_etrium_cell_silicon')
.itemInputs('gtceu:silicon_wafer', '#forge:glass_panes', 'gtceu:carbon_fiber_plate')
.itemOutputs('ad_astra:photovoltaic_etrium_cell')
.EUt(GTValues.VA[GTValues.MV])
.duration(100)
event.recipes.gtceu.laser_engraver('ad_astra:photovoltaic_etrium_cell_phosphorous')
.itemInputs('gtceu:phosphorus_wafer', '#forge:glass_panes', 'gtceu:carbon_fiber_plate')
.itemOutputs('2x ad_astra:photovoltaic_etrium_cell')
.EUt(GTValues.VA[GTValues.MV])
.duration(100)
event.recipes.gtceu.laser_engraver('ad_astra:photovoltaic_etrium_cell_naquadah')
.itemInputs('gtceu:naquadah_wafer', '#forge:glass_panes', 'gtceu:carbon_fiber_plate')
.itemOutputs('4x ad_astra:photovoltaic_etrium_cell')
.EUt(GTValues.VA[GTValues.MV])
.duration(100)
event.recipes.gtceu.laser_engraver('ad_astra:photovoltaic_etrium_cell_neutronium')
.itemInputs('gtceu:neutronium_wafer', '#forge:glass_panes', 'gtceu:carbon_fiber_plate')
.itemOutputs('8x ad_astra:photovoltaic_etrium_cell')
.EUt(GTValues.VA[GTValues.MV])
.duration(100)
event.shaped('2x ad_astra:solar_panel', [
'AAA',
' C ',
'BFE'
], {
A: 'ad_astra:photovoltaic_etrium_cell',
B: '#gtceu:batteries/mv',
C: '#forge:rods/long/aluminium',
E: '#gtceu:circuits/mv',
F: 'gtceu:mv_machine_hull'
}).id('tfg:solar_panel')
//#endregion
//#region Радио
event.shaped('ad_astra:radio', [
'AB ',
'CDC',
'CCC'
], {
A: 'gtceu:lv_sensor',
B: '#forge:tools/screwdrivers',
C: '#forge:plates/polyethylene',
D: '#gtceu:circuits/lv'
}).id('tfg:radio')
//#endregion
//#region Rover
event.shaped('ad_astra:wheel', [
' A ',
'ABA',
' A '
], {
A: '#forge:plates/polyphenylene_sulfide',
B: '#forge:rings/stainless_steel',
}).id('tfg:ad_astra_wheel')
event.recipes.gtceu.assembler('tfg:tier_1_rover')
.itemInputs(
'gtceu:mv_sensor',
'ad_astra:radio',
'ad_astra:gas_tank',
'4x ad_astra:wheel',
'2x gtceu:hv_electric_motor',
'4x #forge:plates/stainless_steel',
'4x #forge:frames/stainless_steel')
.itemOutputs('ad_astra:tier_1_rover')
.duration(400)
.EUt(GTValues.VA[GTValues.HV])
//#endregion
//#region Колесо
event.shaped('ad_astra:white_flag', [
'ABB',
'ABB',
'A '
], {
A: '#forge:rods/long/steel',
B: '#tfc:high_quality_cloth',
}).id('tfg:white_flag')
event.recipes.gtceu.chemical_bath(`tfg:ad_astra_flag_bleaching`)
.itemInputs('#ad_astra:flags')
.inputFluids(Fluid.of(`gtceu:chlorine`, 36))
.itemOutputs(`ad_astra:white_flag`)
.duration(150)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
global.MINECRAFT_DYE_NAMES.forEach(color => {
if (color != "white") {
event.recipes.gtceu.chemical_bath(`tfg:ad_astra_${color}_flag`)
.itemInputs('ad_astra:white_flag')
.inputFluids(Fluid.of(`tfc:${color}_dye`, 36))
.itemOutputs(`ad_astra:${color}_flag`)
.duration(150)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
}
})
//#endregion
// #region Ingots
event.recipes.gtceu.chemical_bath('tfg:desh_cool_down_water')
.itemInputs('#forge:hot_ingots/desh')
.inputFluids(Fluid.of('minecraft:water', 100))
.itemOutputs('#forge:ingots/desh')
.duration(400)
.EUt(120)
event.recipes.gtceu.chemical_bath('tfg:desh_cool_down_distilled_water')
.itemInputs('#forge:hot_ingots/desh')
.inputFluids(Fluid.of('gtceu:distilled_water', 100))
.itemOutputs('#forge:ingots/desh')
.duration(250)
.EUt(120)
// #endregion
//#region Воздушный пистолет
event.shaped('ad_astra:zip_gun', [
'ACC',
'DB ',
' '
], {
A: 'gtceu:lv_electric_pump',
B: '#forge:bolts/steel',
C: '#forge:tiny_fluid_pipes/steel',
D: 'ad_astra:gas_tank',
}).id('tfg:zip_gun')
//#endregion
//#region Космо картина
event.shaped('ad_astra:space_painting', [
'AAA',
'ACA',
'AAA'
], {
A: '#forge:rods/desh',
C: '#tfc:high_quality_cloth',
}).id('tfg:space_painting')
//#endregion
//#region Convert whatever fluids we want into the breathable gas needed for the Oxygen Distributor
event.custom({
type: 'ad_astra:oxygen_loading',
cookingtime: 1,
energy: 30,
input: {
ingredient: {
fluid: 'gtceu:air'
},
millibuckets: 1
},
result: {
fluid: 'ad_astra:oxygen',
millibuckets: 100
}
}).id('ad_astra:oxygen_loading/air_from_air')
global.BREATHABLE_COMPRESSED_AIRS.forEach(x => {
event.custom({
type: 'ad_astra:oxygen_loading',
cookingtime: 1,
energy: 30,
input: {
ingredient: {
fluid: x
},
millibuckets: 1
},
result: {
fluid: 'ad_astra:oxygen',
millibuckets: 1000
}
}).id(`ad_astra:oxygen_loading/air_from_${x.split(':')[1]}`)
})
//#endregion
//#region Misc blocks
event.shaped('ad_astra:vent', [
' B ',
'BAB',
' B '
], {
A: 'gtceu:steel_frame',
B: '#tfg:metal_bars'
}).id('tfg:shaped/ad_astra_vent')
//#endregion
//#region Decoration blocks
global.MINECRAFT_DYE_NAMES.forEach(color => {
event.shaped(`ad_astra:${color}_industrial_lamp`, [
' N ',
'DTD',
' P '
], {
N: '#forge:rods/steel',
T: 'minecraft:glowstone',
D: `minecraft:${color}_stained_glass_pane`,
P: '#forge:plates/steel'
})
.id(`tfg:shaped/ad_astra_${color}_industrial_lamp`);
event.shaped(`ad_astra:small_${color}_industrial_lamp`, [
' N ',
'DTD',
' P '
], {
N: '#forge:bolts/steel',
T: 'minecraft:glowstone',
D: `minecraft:${color}_stained_glass_pane`,
P: '#forge:rods/steel'
})
.id(`tfg:shaped/ad_astra_small_${color}_industrial_lamp`);
})
const DECO_BLOCKS = [
{ type: 'iron', material: 'wrought_iron' },
{ type: 'steel', material: 'steel' },
{ type: 'desh', material: 'desh' },
{ type: 'calorite', material: 'calorite' },
{ type: 'ostrum', material: 'ostrum' }
]
DECO_BLOCKS.forEach(x => {
event.recipes.gtceu.assembler(`tfg:ad_astra_${x.type}_plating`)
.itemInputs(`#forge:storage_blocks/${x.material}`)
.inputFluids(Fluid.of('gtceu:polyethylene', 36))
.itemOutputs(`16x ad_astra:${x.type}_plating`)
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
.circuit(1)
event.recipes.gtceu.chemical_bath(`tfg:ad_astra_glowing_${x.type}_pillar`)
.itemInputs(`ad_astra:${x.type}_pillar`)
.inputFluids(Fluid.of('gtceu:glowstone', 144))
.itemOutputs(`ad_astra:glowing_${x.type}_pillar`)
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.assembler(`tfg:ad_astra_${x.type}_factory_block`)
.itemInputs(`#forge:storage_blocks/${x.material}`)
.inputFluids(Fluid.of('gtceu:polyethylene', 36))
.itemOutputs(`16x ad_astra:${x.type}_factory_block`)
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
.circuit(2)
event.recipes.gtceu.assembler(`tfg:ad_astra_${x.type}_panel`)
.itemInputs(`#forge:storage_blocks/${x.material}`)
.inputFluids(Fluid.of('gtceu:polyethylene', 36))
.itemOutputs(`16x ad_astra:${x.type}_panel`)
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
.circuit(3)
event.recipes.gtceu.assembler(`tfg:ad_astra_${x.type}_pillar`)
.itemInputs(`#forge:storage_blocks/${x.material}`)
.inputFluids(Fluid.of('gtceu:polyethylene', 36))
.itemOutputs(`16x ad_astra:${x.type}_pillar`)
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
.circuit(4)
event.recipes.gtceu.assembler(`tfg:ad_astra_${x.type}_plateblock`)
.itemInputs(`#forge:storage_blocks/${x.material}`)
.inputFluids(Fluid.of('gtceu:polyethylene', 36))
.itemOutputs(`16x ad_astra:${x.type}_plateblock`)
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
.circuit(5)
event.recipes.gtceu.assembler(`tfg:ad_astra_encased_${x.type}_block`)
.itemInputs(`#forge:storage_blocks/${x.material}`)
.inputFluids(Fluid.of('gtceu:polyethylene', 36))
.itemOutputs(`16x ad_astra:encased_${x.type}_block`)
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
.circuit(6)
// Stonecutter recipes as well, so you can switch between them
event.stonecutting(`ad_astra:${x.type}_plating`, `#tfg:ad_astra_${x.type}_blocks`)
event.stonecutting(`ad_astra:${x.type}_factory_block`, `#tfg:ad_astra_${x.type}_blocks`)
event.stonecutting(`ad_astra:${x.type}_panel`, `#tfg:ad_astra_${x.type}_blocks`)
event.stonecutting(`ad_astra:${x.type}_pillar`, `#tfg:ad_astra_${x.type}_blocks`)
event.stonecutting(`ad_astra:${x.type}_plateblock`, `#tfg:ad_astra_${x.type}_blocks`)
event.stonecutting(`ad_astra:encased_${x.type}_block`, `#tfg:ad_astra_${x.type}_blocks`)
// Stairs n slabs
event.stonecutting(`ad_astra:${x.type}_plating_stairs`, `ad_astra:${x.type}_plating`)
event.stonecutting(`2x ad_astra:${x.type}_plating_slab`, `ad_astra:${x.type}_plating`)
// Pressure plates
event.shaped(`ad_astra:${x.type}_plating_pressure_plate`, [
' B ',
'CDC',
' E '
], {
B: '#tfc:hammers',
C: `ad_astra:${x.type}_plating_slab`,
D: '#forge:springs',
E: '#forge:tools/screwdrivers'
}).id(`tfg:shaped/ad_astra_${x.type}_pressure_plate`)
event.recipes.gtceu.assembler(`tfg:ad_astra_${x.type}_pressure_plate`)
.itemInputs('#forge:springs', `ad_astra:${x.type}_plating_slab`)
.itemOutputs(`ad_astra:${x.type}_plating_pressure_plate`)
.duration(50)
.EUt(2)
// Buttons
generateCutterRecipe(event, `ad_astra:${x.type}_plating_pressure_plate`, `6x ad_astra:${x.type}_plating_button`, 50, 7, `ad_astra_${x.type}_button`)
// Doors
event.recipes.gtceu.assembler(`tfg:ad_astra_${x.type}_sliding_door`)
.itemInputs(`9x #forge:plates/${x.material}`, '2x #forge:glass_panes')
.inputFluids(Fluid.of('gtceu:polyethylene', 36))
.itemOutputs(`ad_astra:${x.type}_sliding_door`)
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
.circuit(20)
})
event.shapeless('ad_astra:marked_iron_pillar', ['ad_astra:iron_pillar', '#forge:dyes/yellow', '#forge:dyes/black'])
.id('tfg:shapeless/marked_iron_pillar')
event.recipes.gtceu.assembler(`tfg:ad_astra_reinforced_door`)
.itemInputs(`9x #forge:plates/steel`, '2x #forge:glass_panes')
.inputFluids(Fluid.of('gtceu:polyethylene', 36))
.itemOutputs(`ad_astra:reinforced_door`)
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
.circuit(21)
event.recipes.gtceu.assembler(`tfg:ad_astra_airlock`)
.itemInputs(`9x #forge:plates/steel`)
.inputFluids(Fluid.of('gtceu:polyethylene', 36))
.itemOutputs(`ad_astra:airlock`)
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
.circuit(22)
event.recipes.gtceu.assembler(`tfg:ad_astra_steel_door`)
.itemInputs('createdeco:industrial_iron_door', '#forge:glass_panes')
.inputFluids(Fluid.of('gtceu:polyethylene', 36))
.itemOutputs('ad_astra:steel_door')
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.assembler(`tfg:ad_astra_steel_trapdoor`)
.itemInputs('tfc:metal/trapdoor/steel', '#forge:glass_panes')
.inputFluids(Fluid.of('gtceu:polyethylene', 36))
.itemOutputs('ad_astra:steel_trapdoor')
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
// Etrium only has factory block, encased block, plateblock, panel, and (storage) block
event.recipes.gtceu.assembler(`tfg:ad_astra_etrium_panel`)
.itemInputs(`#forge:storage_blocks/etrium`)
.inputFluids(Fluid.of('gtceu:polyethylene', 36))
.itemOutputs(`16x ad_astra:etrium_panel`)
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
.circuit(3)
event.recipes.gtceu.assembler(`tfg:ad_astra_etrium_factory_block`)
.itemInputs(`#forge:storage_blocks/etrium`)
.inputFluids(Fluid.of('gtceu:polyethylene', 36))
.itemOutputs(`16x ad_astra:etrium_factory_block`)
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
.circuit(2)
event.recipes.gtceu.assembler(`tfg:ad_astra_etrium_plateblock`)
.itemInputs(`#forge:storage_blocks/etrium`)
.inputFluids(Fluid.of('gtceu:polyethylene', 36))
.itemOutputs(`16x ad_astra:etrium_plateblock`)
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
.circuit(5)
event.recipes.gtceu.assembler(`tfg:ad_astra_encased_etrium_block`)
.itemInputs(`#forge:storage_blocks/etrium`)
.inputFluids(Fluid.of('gtceu:polyethylene', 36))
.itemOutputs(`16x ad_astra:encased_etrium_block`)
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
.circuit(6)
event.stonecutting('ad_astra:etrium_panel', '#tfg:ad_astra_etrium_blocks')
event.stonecutting('ad_astra:etrium_factory_block', '#tfg:ad_astra_etrium_blocks')
event.stonecutting('ad_astra:encased_etrium_block', '#tfg:ad_astra_etrium_blocks')
event.stonecutting('ad_astra:etrium_plateblock', '#tfg:ad_astra_etrium_blocks')
//#endregion
//#region Space stations
event.custom({
type: "ad_astra:space_station_recipe",
dimension: "ad_astra:earth_orbit",
ingredients: [
{ count: 43, ingredient: { item: "gtceu:aluminium_frame" }},
{ count: 24, ingredient: { item: "gtceu:glass_plate" }},
{ count: 4, ingredient: { item: "minecraft:glowstone_dust" }},
{ count: 1, ingredient: { item: "ad_astra:launch_pad" }}
],
structure: "tfg:orbit/space_station"
})
event.custom({
type: "ad_astra:space_station_recipe",
dimension: "ad_astra:moon_orbit",
ingredients: [
{ count: 43, ingredient: { item: "gtceu:aluminium_frame" }},
{ count: 24, ingredient: { item: "gtceu:glass_plate" }},
{ count: 4, ingredient: { item: "minecraft:glowstone_dust" }},
{ count: 1, ingredient: { item: "ad_astra:launch_pad" }}
],
structure: "tfg:orbit/space_station"
})
//#endregion
}

View file

@ -0,0 +1,274 @@
// priority: 0
const registerAdAstraFluidTags = (event) => {
global.AD_ASTRA_DISABLED_FLUIDS.forEach(fluid => {
event.removeAllTagsFrom(fluid)
event.add('c:hidden_from_recipe_viewers', fluid)
})
// Using this to represent 'breathable air' instead of oxygen
event.removeAllTagsFrom('ad_astra:oxygen')
event.removeAll('ad_astra:fuel')
event.removeAll('ad_astra:efficient_fuel')
event.add('ad_astra:tier_1_rocket_fuel', 'gtceu:rocket_fuel')
event.add('ad_astra:tier_2_rocket_fuel', 'gtceu:rocket_fuel')
event.add('ad_astra:tier_3_rocket_fuel', 'gtceu:rocket_fuel')
event.add('ad_astra:tier_4_rocket_fuel', 'gtceu:rocket_fuel')
event.add('ad_astra:tier_5_rocket_fuel', 'gtceu:rocket_fuel')
event.add('ad_astra:tier_1_rover_fuel', 'gtceu:rocket_fuel')
event.add('ad_astra:tier_1_rover_fuel', 'gtceu:diesel')
event.add('ad_astra:tier_1_rover_fuel', 'gtceu:bio_diesel')
event.add('ad_astra:tier_1_rover_fuel', 'gtceu:cetane_boosted_diesel')
event.add('ad_astra:tier_1_rover_fuel', 'gtceu:gasoline')
event.add('ad_astra:tier_1_rover_fuel', 'gtceu:high_octane_gasoline')
event.add('ad_astra:freezes_in_space', 'tfc:salt_water')
event.add('ad_astra:freezes_in_space', 'tfc:spring_water')
event.add('ad_astra:evaporates_in_space', 'tfc:salt_water')
event.add('ad_astra:evaporates_in_space', 'tfc:spring_water')
event.add('ad_astra:evaporates_in_space', '#tfc:alcohols')
global.BREATHABLE_COMPRESSED_AIRS.forEach(x => {
event.add('ad_astra:zip_gun_propellants', x)
})
}
const registerAdAstraItemTags = (event) => {
global.AD_ASTRA_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
})
event.add('forge:cobblestone', 'ad_astra:moon_cobblestone')
event.add('forge:cobblestone', 'ad_astra:mars_cobblestone')
event.add('forge:cobblestone', 'ad_astra:venus_cobblestone')
event.add('forge:cobblestone', 'ad_astra:mercury_cobblestone')
event.add('forge:cobblestone', 'ad_astra:glacio_cobblestone')
// Insulation Tier 1
event.add('forge:insulation_t1', 'gtceu:borosilicate_glass_dust')
event.add('forge:insulation_t1', 'gtceu:vitrified_asbestos_dust')
// Deco blocks
const DECO_BLOCKS = [ 'iron', 'steel', 'desh', 'calorite', 'ostrum' ];
DECO_BLOCKS.forEach(block => {
event.add(`tfg:ad_astra_${block}_blocks`, `ad_astra:${block}_factory_block`)
event.add(`tfg:ad_astra_${block}_blocks`, `ad_astra:${block}_plating`)
event.add(`tfg:ad_astra_${block}_blocks`, `ad_astra:${block}_panel`)
event.add(`tfg:ad_astra_${block}_blocks`, `ad_astra:${block}_pillar`)
event.add(`tfg:ad_astra_${block}_blocks`, `ad_astra:${block}_plateblock`)
event.add(`tfg:ad_astra_${block}_blocks`, `ad_astra:encased_${block}_block`)
})
event.add('forge:storage_blocks/etrium', 'ad_astra:etrium_block')
event.add('tfg:ad_astra_etrium_blocks', 'ad_astra:etrium_factory_block')
event.add('tfg:ad_astra_etrium_blocks', 'ad_astra:encased_etrium_block')
event.add('tfg:ad_astra_etrium_blocks', 'ad_astra:etrium_plateblock')
event.add('tfg:ad_astra_etrium_blocks', 'ad_astra:etrium_panel')
event.add('tfc:foods', 'ad_astra:cheese')
event.add('tfc:foods/dairy', 'ad_astra:cheese')
event.add('tfc:foods/usable_in_sandwich', 'ad_astra:cheese')
event.add('tfc:foods/usable_in_jam_sandwich', 'ad_astra:cheese')
event.add('tfc:foods/usable_in_jam_sandwich_2', 'ad_astra:cheese')
event.add('firmalife:foods/cheeses', 'ad_astra:cheese')
event.add('ad_astra:space_suit_items', 'gtceu:quarktech_helmet')
event.add('ad_astra:space_suit_items', 'gtceu:quarktech_leggings')
event.add('ad_astra:space_suit_items', 'gtceu:quarktech_boots')
}
const registerAdAstraBlockTags = (event) => {
global.AD_ASTRA_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
})
// All new stones
global.EXTRATERRESTRIAL_RAW_ROCKS.forEach(rock => {
event.add('forge:stone', rock)
event.add('tfc:breaks_when_isolated', rock)
event.add('tfc:rock/raw', rock)
event.add('minecraft:mineable/pickaxe', rock)
event.add('tfc:can_carve', rock)
// Collapse tags also require a collapse recipe to work.
// Don't add the recipe if you don't want them to actually collapse!
event.add('tfc:can_collapse', rock)
event.add('tfc:can_trigger_collapse', rock)
event.add('tfc:can_start_collapse', rock)
event.add('tfc:powderkeg_breaking_blocks', rock)
event.add('tfc:bloomery_insulation', rock)
event.add('firmalife:oven_insulation', rock)
event.add('tfc:forge_insulation', rock)
})
global.EXTRATERRESTRIAL_HARDENED_ROCKS.forEach(rock => {
event.add('minecraft:mineable/pickaxe', rock)
event.add('tfc:can_collapse', rock)
event.add('tfc:can_trigger_collapse', rock)
event.add('tfc:powderkeg_breaking_blocks', rock)
event.add('tfc:bloomery_insulation', rock)
event.add('firmalife:oven_insulation', rock)
event.add('tfc:forge_insulation', rock)
event.add('tfc:can_carve', rock)
})
// Moon
event.add('ad_astra:moon_stone_replaceables', 'ad_astra:moon_sand')
event.add('ad_astra:moon_stone_replaceables', 'tfg:rock/hardened_moon_stone')
event.add('ad_astra:moon_stone_replaceables', 'tfc:sand/white')
event.add('ad_astra:moon_stone_replaceables', 'tfc:sand/black')
event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/gravel/diorite')
event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/gravel/gabbro')
event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/gravel/basalt')
event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/gravel/rhyolite')
event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/gravel/andesite')
event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/gravel/dacite')
event.add('ad_astra:moon_stone_replaceables', 'tfg:rock/hardened_moon_deepslate')
event.add('ad_astra:moon_stone_replaceables', 'ad_astra:glacio_stone')
event.add('ad_astra:moon_stone_replaceables', 'tfg:rock/hardened_glacio_stone')
event.add('ad_astra:moon_stone_replaceables', 'ad_astra:glacio_cobblestone')
event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/raw/basalt')
event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/hardened/basalt')
event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/raw/gabbro')
event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/hardened/gabbro')
event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/raw/diorite')
event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/hardened/diorite')
event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/raw/rhyolite')
event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/hardened/rhyolite')
event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/raw/andesite')
event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/hardened/andesite')
event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/raw/dacite')
event.add('ad_astra:moon_stone_replaceables', 'tfc:rock/hardened/dacite')
event.add('minecraft:rabbits_spawnable_on', '#ad_astra:moon_stone_replaceables')
event.add('species:limpet_spawnable_on', '#ad_astra:moon_stone_replaceables')
event.add('tfc:can_landslide', 'ad_astra:moon_sand')
event.add('tfc:can_landslide', 'ad_astra:mars_sand')
event.add('tfc:can_landslide', 'ad_astra:venus_sand')
event.add('tfc:can_landslide', 'ad_astra:moon_cobblestone')
event.add('tfc:can_landslide', 'ad_astra:mars_cobblestone')
event.add('tfc:can_landslide', 'ad_astra:venus_cobblestone')
event.add('tfc:can_landslide', 'ad_astra:mercury_cobblestone')
event.add('tfc:can_landslide', 'ad_astra:glacio_cobblestone')
event.add('forge:cobblestone', 'ad_astra:moon_cobblestone')
event.add('forge:cobblestone', 'ad_astra:mars_cobblestone')
event.add('forge:cobblestone', 'ad_astra:venus_cobblestone')
event.add('forge:cobblestone', 'ad_astra:mercury_cobblestone')
event.add('forge:cobblestone', 'ad_astra:glacio_cobblestone')
event.add('tfc:can_landslide', 'ad_astra:moon_cobblestone_slab')
event.add('tfc:can_landslide', 'ad_astra:mars_cobblestone_slab')
event.add('tfc:can_landslide', 'ad_astra:venus_cobblestone_slab')
event.add('tfc:can_landslide', 'ad_astra:mercury_cobblestone_slab')
event.add('tfc:can_landslide', 'ad_astra:glacio_cobblestone_slab')
event.add('tfc:can_landslide', 'ad_astra:moon_cobblestone_stairs')
event.add('tfc:can_landslide', 'ad_astra:mars_cobblestone_stairs')
event.add('tfc:can_landslide', 'ad_astra:venus_cobblestone_stairs')
event.add('tfc:can_landslide', 'ad_astra:mercury_cobblestone_stairs')
event.add('tfc:can_landslide', 'ad_astra:glacio_cobblestone_stairs')
event.add('tfg:rock_stairs', 'ad_astra:moon_stone_stairs')
event.add('tfg:rock_stairs', 'ad_astra:mars_stone_stairs')
event.add('tfg:rock_stairs', 'ad_astra:venus_stone_stairs')
event.add('tfg:rock_stairs', 'ad_astra:mercury_stone_stairs')
event.add('tfg:rock_stairs', 'ad_astra:glacio_stone_stairs')
event.add('tfg:rock_slabs', 'ad_astra:moon_stone_slab')
event.add('tfg:rock_slabs', 'ad_astra:mars_stone_slab')
event.add('tfg:rock_slabs', 'ad_astra:venus_stone_slab')
event.add('tfg:rock_slabs', 'ad_astra:mercury_stone_slab')
event.add('tfg:rock_slabs', 'ad_astra:glacio_stone_slab')
event.add('ad_astra:destroyed_in_space', '#minecraft:saplings')
}
const registerAdAstraBiomeTags = (event) => {
event.removeAll('ad_astra:has_structure/oil_well')
global.MOON_BIOMES.forEach(biome => {
event.add('tfg:moon_biomes', biome)
event.add('tfg:has_structure/meteors', biome)
event.add('tfg:has_structure/cheese_ores', biome)
event.add('tfg:has_structure/moonbase', biome)
event.add('tfg:has_structure/moon_rabbit_houses', biome)
event.add('species:limpet_spawns', biome)
})
}
const registerAdAstraEntityTypeTags = (event) => {
// moon
const MOON_ENTITIES = [
'tfc:rat',
'tfg:moon_rabbit',
'minecraft:enderman',
'minecraft:shulker',
'minecraft:shulker_bullet',
'minecraft:skeleton',
'species:limpet',
'species:birt',
'endermanoverhaul:windswept_hills_enderman',
'endermanoverhaul:soulsand_valley_enderman',
'endermanoverhaul:spirit',
'endermanoverhaul:end_enderman',
'endermanoverhaul:end_islands_enderman',
]
MOON_ENTITIES.forEach(entity => {
event.add('ad_astra:can_survive_extreme_cold', entity)
event.add('ad_astra:lives_without_oxygen', entity)
})
event.add('tfc:deals_crushing_damage', 'minecraft:enderman')
event.add('tfc:deals_crushing_damage', 'minecraft:skeleton')
event.add('tfc:deals_crushing_damage', 'endermanoverhaul:windswept_hills_enderman')
event.add('tfc:deals_crushing_damage', 'endermanoverhaul:soulsand_valley_enderman')
event.add('tfc:deals_piercing_damage', 'endermanoverhaul:end_enderman')
event.add('tfc:deals_crushing_damage', 'endermanoverhaul:end_islands_enderman')
event.add('tfc:deals_crushing_damage', 'ad_astra:star_crawler')
event.add('tfg:ignores_gravity', 'minecraft:shulker_bullet')
event.add('tfg:ignores_gravity', 'endermanoverhaul:spirit')
event.add('tfg:ignores_gravity', 'species:birt')
event.add('tfg:ignores_gravity', 'ad_astra:star_crawler')
}
const registerAdAstraPlacedFeatures = (event) => {
event.add('tfg:moon_craters', 'tfg:moon/crater/extra_large')
event.add('tfg:moon_craters', 'tfg:moon/crater/large')
event.add('tfg:moon_craters', 'tfg:moon/crater/medium')
event.add('tfg:moon_craters', 'tfg:moon/crater/small')
global.MOON_STONE_TYPES.forEach(stone => {
// only in the sparse ones
event.add('tfg:moon_large_rock_features', `tfg:moon/surface/delta/${stone}`)
// in all moon biomes
event.add('tfg:moon_small_rock_features', `tfg:moon/surface/pile/${stone}`)
event.add('tfg:moon_small_rock_features', `tfg:moon/surface/loose/${stone}`)
})
event.add('tfg:moon_small_rock_features', 'tfg:moon/surface/pile_moon_sand')
event.add('tfg:moon_small_rock_features', 'tfg:moon/surface/pile_white_sand')
event.add('tfg:moon_small_rock_features', 'tfg:moon/surface/pile_black_sand')
event.add('tfg:venus_delta_surface_features', 'tfg:venus/surface/geyser_source_patch')
event.add('tfg:venus_delta_surface_features', 'tfg:venus/surface/stromatolite_cluster_patch')
event.add('tfg:venus_delta_surface_features', 'tfg:venus/surface/stromatolite_tower')
event.add('tfg:venus_delta_terrain_features', 'tfg:venus/terrain/hot_spring_delta')
event.add('tfg:venus_delta_terrain_features', 'tfg:venus/terrain/stromatolite_disk')
}

File diff suppressed because it is too large Load diff

View file

@ -5,7 +5,37 @@ const registerAE2ItemTags = (event) => {
global.AE2_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
})
})
event.remove('forge:storage_blocks', 'ae2:quartz_block')
event.remove('forge:storage_blocks/certus_quartz', 'ae2:quartz_block')
event.add('tfg:certus_quartz_blocks', 'gtceu:certus_quartz_block')
event.add('tfg:certus_quartz_blocks', 'ae2:quartz_block')
event.add('tfg:certus_quartz_blocks', 'ae2:cut_quartz_block')
event.add('tfg:certus_quartz_blocks', 'ae2:smooth_quartz_block')
event.add('tfg:certus_quartz_blocks', 'ae2:quartz_bricks')
event.add('tfg:certus_quartz_blocks', 'ae2:quartz_pillar')
event.add('tfg:certus_quartz_blocks', 'ae2:chiseled_quartz_block')
event.add('tfg:sky_stone_blocks', 'ae2:sky_stone_block')
event.add('tfg:sky_stone_blocks', 'ae2:smooth_sky_stone_block')
event.add('tfg:sky_stone_blocks', 'ae2:sky_stone_brick')
event.add('tfg:sky_stone_blocks', 'ae2:sky_stone_small_brick')
event.add('tfg:stone_dusts', 'ae2:sky_dust')
event.add('tfg:reactant_fluix_ruby', 'gtceu:ruby_gem')
event.add('tfg:reactant_fluix_ruby', 'gtceu:armalcolite_gem')
event.add('tfg:reactant_fluix_ruby_exquisite', 'gtceu:exquisite_ruby_gem')
event.add('tfg:reactant_fluix_ruby_exquisite', 'gtceu:exquisite_armalcolite_gem')
event.add('tfg:reactant_fluix_quartz', 'minecraft:quartz')
event.add('tfg:reactant_fluix_quartz', 'gtceu:quartzite_gem')
event.add('tfg:reactant_fluix_quartz_exquisite', 'gtceu:exquisite_nether_quartz_gem')
event.add('tfg:reactant_fluix_quartz_exquisite', 'gtceu:exquisite_quartzite_gem')
}
const registerAE2BlockTags = (event) => {
@ -13,4 +43,5 @@ const registerAE2BlockTags = (event) => {
global.AE2_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
})
}

View file

@ -1,10 +0,0 @@
// priority: 0
const registerEntropyRecipe = (event, input, mode, output, id) => {
event.custom({
type: "ae2:entropy",
input: input,
mode: mode,
output: output
}).id(id)
}

View file

@ -0,0 +1,30 @@
// priority: 0
function registerBetterEndRecipes(event) {
Ingredient.of('#tfg:moon_plants').stacks.forEach(element => {
const itemId = element.id;
const recipeId = `betterend:greenhouse_${itemId.replace(':', '_')}`;
event.recipes.gtceu.greenhouse(recipeId)
.itemInputs(element.id)
.itemOutputs(`8x ${element.id}`)
.chancedOutput(element.id, 7500, 1000)
.chancedOutput(element.id, 5000, 1000)
.duration(36000) // 30 mins
.circuit(1)
.EUt(GTValues.VA[GTValues.MV])
.dimension('ad_astra:moon')
event.recipes.gtceu.greenhouse(recipeId + "_helium")
.itemInputs(element.id)
.inputFluids(Fluid.of('gtceu:helium_3', 500))
.itemOutputs(`8x ${element.id}`)
.chancedOutput(element.id, 8500, 1000)
.chancedOutput(element.id, 6000, 1000)
.duration(12000) // 30 mins
.circuit(2)
.EUt(GTValues.VA[GTValues.MV])
.dimension('ad_astra:moon')
});
}

View file

@ -0,0 +1,8 @@
// priority: 0
function registerBetterEndItemTags(event) {
event.add('tfg:moon_plants', 'betterend:chorus_lily')
event.add('tfg:moon_plants', 'betterend:inflexia')
event.add('tfg:moon_plants', 'betterend:chorus_grass')
}

View file

@ -1,118 +0,0 @@
// priority: 0
const registerChiselAndBitsRecipes = (event) => {
if (Platform.isLoaded('chiselsandbits')) {
event.remove({ not: [
{ id: 'chiselsandbits:quill' }
], mod: 'chiselsandbits' })
// Мешок для кусочков блоков
event.recipes.tfc.knapping('chiselsandbits:bit_bag', 'tfc:leather', [
" X X ",
"X X",
"X X",
"XXXXX"
]).ingredient('#tfc:leather_knapping').id('tfg:chiselsandbits/knapping_leather/bit_bag')
// Лупа
event.shaped('chiselsandbits:magnifying_glass', [
'A',
'C',
'B'
], {
A: '#forge:glass',
B: '#forge:rods/wooden',
C: '#forge:rings/wrought_iron'
}).id('tfg:chiselsandbits/shaped/magnifying_glass')
// Алмазная стамеска
event.shapeless('chiselsandbits:chisel_diamond', [
'#tfc:chisels',
'tfc:powder/diamond',
'tfc:powder/diamond',
'tfc:powder/diamond'
]).id('tfg:chiselsandbits/shapeless/chisel_diamond')
// Хранилище кусочков
event.shaped('chiselsandbits:bit_storage', [
'ABA',
'C C',
'ADA'
], {
A: '#forge:rods/wrought_iron',
B: '#forge:tools/wrench',
C: 'forge:glass_panes',
D: 'minecraft:wooden_slabs',
}).id('tfg:chiselsandbits/shaped/bit_storage')
// Рулетка
event.shaped('chiselsandbits:measuring_tape', [
' AB',
' BA',
'C '
], {
A: '#forge:dyes/yellow',
B: '#forge:string',
C: '#forge:rods/wrought_iron'
}).id('tfg:chiselsandbits/shaped/measuring_tape')
// Герметик
event.shapeless('chiselsandbits:sealant', [
'minecraft:slime_ball',
'firmalife:raw_honey'
]).id('tfg:chiselsandbits/shapeless/sealant_from_slimeballs')
event.shapeless('chiselsandbits:sealant', [
'tfc:glue',
'firmalife:raw_honey'
]).id('tfg:chiselsandbits/shapeless/sealant_from_glue')
// Резной принтер
event.shaped('chiselsandbits:chiseled_printer', [
' A ',
'B B',
'BCB'
], {
A: '#forge:tools/wrench',
B: '#tfc:support_beams',
C: '#forge:smooth_stone_slab'
}).id('tfg:chiselsandbits/shaped/chiseled_printer')
// Стол модификаций
event.shaped('chiselsandbits:modification_table', [
'ABA',
'CDC',
'C C'
], {
A: '#minecraft:wooden_slabs',
B: '#forge:tools/wrench',
C: '#tfc:support_beams',
D: '#tfc:workbenches'
}).id('tfg:chiselsandbits/shaped/modification_table')
// Принтер и сканер шаблонов
event.shaped('chiselsandbits:pattern_scanner', [
' A ',
'B B',
'BCB'
], {
A: '#forge:tools/wrench',
B: '#tfc:lumber',
C: '#forge:smooth_stone_slab'
}).id('tfg:chiselsandbits/shaped/pattern_scanner')
// Удалятель герметика
event.shaped('chiselsandbits:wrench', [
' AB',
' AA',
'A '
], {
A: '#tfc:lumber',
B: 'chiselsandbits:block_bit',
}).id('tfg:chiselsandbits/shaped/wrench')
}
}

View file

@ -1,24 +0,0 @@
// priority: 0
const registerChiselAndBitsItemTags = (event) => {
if (Platform.isLoaded('chiselsandbits')) {
global.CHISEL_AND_BITS_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
})
}
}
const registerChiselAndBitsBlockTags = (event) => {
if (Platform.isLoaded('chiselsandbits')) {
global.CHISEL_AND_BITS_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
})
}
}

View file

@ -10,14 +10,8 @@ const registerComfortsRecipes = (event) => {
.id("comforts:crafting/shaped/rope_and_nail");
//sleeping bag
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped("comforts:sleeping_bag_white", [
"AAA",
"B "
], {
A: "#tfc:high_quality_cloth",
B: 'tfc:bone_needle'
})
event.recipes.tfc.damage_inputs_shapeless_crafting(
event.shapeless("comforts:sleeping_bag_white", [ "3x #tfc:high_quality_cloth", 'tfc:bone_needle' ])
).id('comforts:shaped/sleeping_bag_white');
event.shaped("comforts:hammock_white", [

View file

@ -78,9 +78,9 @@ const registerComputerCraftRecipes = (event) => {
], {
A: 'computercraft:cable',
B: 'ae2:drive',
C: '#gtceu:circuits/hv',
D: 'gtceu:hv_machine_casing',
E: 'gtceu:hv_sensor',
C: '#gtceu:circuits/mv',
D: 'gtceu:mv_machine_casing',
E: 'gtceu:mv_sensor',
}).id('tfg:crafting/disk_drive')
// Speaker
@ -105,7 +105,7 @@ const registerComputerCraftRecipes = (event) => {
B: '#gtceu:circuits/mv',
C: 'gtceu:mv_robot_arm',
D: 'computercraft:cable',
E: 'gtceu:mv_machine_casing',
E: 'gtceu:hv_machine_casing',
F: 'gtceu:mv_conveyor_module'
}).id('tfg:crafting/printer')

View file

@ -37,11 +37,34 @@ const registerCreateRecipes = (event) => {
{ id: 'create:crafting/schematics/schematic_and_quill' },
{ id: 'create:crafting/appliances/clipboard_clear' },
{ id: 'create:crafting/logistics/content_observer' },
{ id: 'create:crafting/kinetics/chain_conveyor' },
{ id: 'create:crafting/logistics/packager_from_conversion' },
{ id: 'create:crafting/logistics/repackager_from_conversion' },
{ id: 'create:crafting/materials/cardboard_block'},
{ id: 'create:crafting/materials/bound_cardboard_block'},
{ id: 'create:crafting/materials/cardboard_from_block'},
{ id: 'create:crafting/materials/cardboard_from_bound_block'},
{ id: 'create:item_application/bound_cardboard_inworld'},
{ id: 'create:crafting/logistics/redstone_requester_clear'},
{ id: 'create:crafting/logistics/stock_link_clear'},
{ id: 'create:crafting/logistics/stock_ticker_clear'},
{ id: 'create:crafting/logistics/factory_gauge_clear'},
{ output: '#create:table_cloths'}, // Gotta do this to not purge the table cloth reset recipes
{ type: 'minecraft:stonecutting' }
], mod: 'create'
})
// Make Bound Cardboard craftable with all string
event.replaceInput({id: 'create:crafting/materials/bound_cardboard_block' }, 'minecraft:string', '#forge:string')
// Remove Table Cloth recipes
global.MINECRAFT_DYE_NAMES.forEach(dye => {
event.remove([{ id: `create:crafting/logistics/${dye}_table_cloth` }, { id: `create:crafting/logistics/${dye}_table_cloth_from_other_table_cloth` }])
})
event.remove({ type: 'minecraft:stonecutting', input: 'create:andesite_alloy' })
event.remove({ type: 'minecraft:stonecutting', input: 'create:rose_quartz' })
event.remove({ type: 'minecraft:stonecutting', input: 'create:polished_rose_quartz' })
event.remove({ type: 'minecraft:stonecutting', input: 'minecraft:iron_ingot' })
// Train Station
event.shapeless('2x create:track_station', [
@ -219,7 +242,7 @@ const registerCreateRecipes = (event) => {
'BCB',
'AEA'
], {
A: '#forge:screws/copper',
A: '#forge:bolts/copper',
B: '#forge:plates/copper',
C: '#forge:glass_panes',
D: '#forge:tools/screwdrivers',
@ -227,7 +250,7 @@ const registerCreateRecipes = (event) => {
}).id('tfg:create/shaped/fluid_tank')
event.recipes.gtceu.assembler('create:fluid_tank')
.itemInputs('2x #forge:screws/copper', '2x #forge:plates/copper', '#forge:glass_panes')
.itemInputs('2x #forge:bolts/copper', '2x #forge:plates/copper', '#forge:glass_panes')
.itemOutputs('create:fluid_tank')
.circuit(4)
.duration(50)
@ -338,7 +361,7 @@ const registerCreateRecipes = (event) => {
.EUt(20)
// Редстоуновый вал
event.shaped('create:gantry_shaft', [
event.shaped('8x create:gantry_shaft', [
'A ',
'BC',
'A '
@ -351,7 +374,7 @@ const registerCreateRecipes = (event) => {
event.recipes.gtceu.assembler('tfg:create/gantry_shaft')
.itemInputs('gtceu:red_alloy_single_wire', '2x #forge:plates/wrought_iron')
.circuit(3)
.itemOutputs('create:gantry_shaft')
.itemOutputs('8x create:gantry_shaft')
.duration(200)
.EUt(20)
@ -369,7 +392,7 @@ const registerCreateRecipes = (event) => {
}).id('tfg:create/shaped/rope_pulley')
event.recipes.gtceu.assembler('create:rope_pulley')
.itemInputs('create:andesite_casing', 'firmalife:rope_coil', '#forge:plates/wrought_iron', '2x #tfg:small_cogwheels')
.itemInputs('create:andesite_casing', 'firmaciv:rope_coil', '#forge:plates/wrought_iron', '2x #tfg:small_cogwheels')
.itemOutputs('create:rope_pulley')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
@ -415,7 +438,7 @@ const registerCreateRecipes = (event) => {
.circuit(21)
// Контроллер рельсы
event.shaped('create:controller_rail', [
event.shaped('4x create:controller_rail', [
'ABA',
'ACA',
'ABA'
@ -426,24 +449,25 @@ const registerCreateRecipes = (event) => {
}).id('tfg:create/shaped/controller_rail')
// Линейный переход
event.shaped('3x create:linear_chassis', [
'ABA',
event.shaped('4x create:linear_chassis', [
'A A',
'CCC',
'ABA'
'A A'
], {
A: '#forge:screws/wrought_iron',
B: '#forge:plates/wrought_iron',
A: '#forge:bolts/wrought_iron',
C: '#minecraft:logs'
}).id('tfg:create/shaped/linear_chassis')
event.shapeless('create:linear_chassis', ['create:secondary_linear_chassis'])
event.shapeless('create:secondary_linear_chassis', ['create:linear_chassis'])
// Радиальный переход
event.shaped('3x create:radial_chassis', [
'ACA',
'BCB',
' C ',
'ACA'
], {
A: '#forge:screws/wrought_iron',
B: '#forge:plates/wrought_iron',
A: '#forge:bolts/wrought_iron',
C: '#minecraft:logs'
}).id('tfg:create/shaped/radial_chassis')
@ -571,7 +595,7 @@ const registerCreateRecipes = (event) => {
'BCB',
'ABA'
], {
A: '#forge:screws/wrought_iron',
A: '#forge:bolts/wrought_iron',
B: 'gtceu:treated_wood_rod',
C: 'gtceu:treated_wood_frame'
}).id('tfg:create/shaped/sail_frame')
@ -1172,6 +1196,16 @@ const registerCreateRecipes = (event) => {
B: '#forge:cloth'
}).id('tfg:create/shaped/attribute_filter')
event.shaped('create:package_filter', [
'ABA'
], {
A: '#forge:bolts/bismuth',
B: '#forge:cloth'
}).id('tfg:create/shaped/package_filter')
event.shapeless('create:package_filter', ['create:package_filter'])
.id('tfg:shapeless/package_filter')
// Расписание поездов
event.shapeless('4x create:schedule', [
'minecraft:paper',
@ -1263,7 +1297,7 @@ const registerCreateRecipes = (event) => {
'BBB'
], {
A: '#forge:plates/wrought_iron',
B: '#forge:nuggets/wrought_iron'
B: '#forge:bolts/wrought_iron'
}).id('tfg:create/shaped/metal_girder')
// Стеклянная дверь
@ -1378,6 +1412,56 @@ const registerCreateRecipes = (event) => {
//#endregion
//#region Painting postboxes
event.recipes.tfc.barrel_sealed(1000)
.inputs('#create:postboxes', Fluid.of(`tfc:lye`, 288))
.outputItem(`create:white_postbox`)
.id(`barrel/create/postbox_decolor`)
global.MINECRAFT_DYE_NAMES.forEach(dye => {
if (dye != 'white') {
event.recipes.tfc.barrel_sealed(1000)
.inputs('create:white_postbox', Fluid.of(`tfc:${dye}_dye`, 288))
.outputItem(`create:${dye}_postbox`)
.id(`barrel/create/${dye}_postbox`)
event.recipes.gtceu.chemical_bath(`create/${dye}_postbox`)
.itemInputs('create:white_postbox')
.inputFluids(Fluid.of(`tfc:${dye}_dye`, 288))
.itemOutputs(`create:${dye}_postbox`)
.duration(200)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
}
})
//#endregion
//#region Painting table cloths
event.recipes.tfc.barrel_sealed(1000)
.inputs('#create:dyed_table_cloths', Fluid.of(`tfc:lye`, 144))
.outputItem(`create:white_table_cloth`)
.id(`barrel/create/table_cloth_decolor`)
global.MINECRAFT_DYE_NAMES.forEach(dye => {
if (dye != 'white') {
event.recipes.tfc.barrel_sealed(1000)
.inputs('create:white_table_cloth', Fluid.of(`tfc:${dye}_dye`, 288))
.outputItem(`create:${dye}_table_cloth`)
.id(`barrel/create/${dye}_table_cloth`)
event.recipes.gtceu.chemical_bath(`create/${dye}_table_cloth`)
.itemInputs('create:white_table_cloth')
.inputFluids(Fluid.of(`tfc:${dye}_dye`, 288))
.itemOutputs(`create:${dye}_table_cloth`)
.duration(200)
.EUt(4)
.category(GTRecipeCategories.CHEM_DYES)
}
})
//#endregion
//#region Покраска сидушек
event.recipes.tfc.barrel_sealed(1000)
@ -1418,12 +1502,13 @@ const registerCreateRecipes = (event) => {
// #region Water Wheels
event.shaped('create:water_wheel', [
'AAA',
'ABA',
'AAA'
'ACA',
'CBC',
'ACA'
], {
A: 'gtceu:treated_wood_planks',
B: '#tfg:shafts'
B: 'create:andesite_casing',
C: '#forge:rods/wrought_iron'
}).id('create:shaped/water_wheel')
event.shaped('create:large_water_wheel', [
@ -1546,7 +1631,10 @@ const registerCreateRecipes = (event) => {
[
['dark_oak', 'tfc:wood/planks/hickory'],
['mangrove', 'tfc:wood/planks/mangrove'],
['ornate_iron', 'tfc:metal/bars/wrought_iron']
['cherry', 'afc:wood/planks/fig'],
['bamboo', 'minecraft:bamboo_planks'],
['ornate_iron', 'tfc:metal/bars/wrought_iron'],
['industrial_iron', 'tfc:metal/bars/steel']
]
CREATE_OTHER_GLASS_WINDOWS.forEach(x => {
@ -1585,6 +1673,205 @@ const registerCreateRecipes = (event) => {
})
// #endregion
//#region Create 6 Logistics
event.shaped('2x create:chain_conveyor', [
'DAE',
'CBC',
' A '
], {
A: '#tfg:large_cogwheels',
B: 'create:andesite_casing',
C: 'gtceu:treated_wood_plate',
D: '#forge:tools/wrenches',
E: '#forge:tools/hammers'
}).id('create:shaped/chain_conveyor')
event.shaped('2x create:cardboard', [
'ABA',
'BAB',
'ABA'
], {
A: 'minecraft:paper',
B: 'tfc:glue'
}).id('tfg:create/shaped/cardboard_from_glue')
event.recipes.gtceu.assembler('tfg:create/cardboard_from_glue')
.itemInputs('5x minecraft:paper')
.inputFluids(Fluid.of('gtceu:glue', 100))
.circuit(5)
.itemOutputs('2x create:cardboard')
.duration(200)
.EUt(7)
event.shaped('create:packager', [
'AAA',
'BCD',
'EFE'
], {
A: '#forge:rods/wrought_iron',
B: '#forge:springs/wrought_iron',
C: 'gtceu:ulv_machine_hull',
D: 'create:bound_cardboard_block',
E: 'create:electron_tube',
F: '#tfg:metal_bars'
}).id('tfg:create/shaped/packager')
event.recipes.gtceu.assembler('tfg:create/packager')
.itemInputs('gtceu:ulv_machine_hull', '4x #forge:rods/wrought_iron', '#forge:springs/wrought_iron', '4x create:cardboard', '#forge:string', '#gtceu:circuits/ulv')
.itemOutputs('create:packager')
.duration(200)
.EUt(20)
event.shaped('create:item_hatch', [
'A',
'B',
'C'
], {
A: '#forge:tools/hammers',
B: '#tfc:trapdoors',
C: 'create:chute',
}).id('tfg:create/shaped/item_hatch_tfc')
event.shaped('create:item_hatch', [
'A',
'B',
'C'
], {
A: '#forge:tools/hammers',
B: '#createdeco:metal_trapdoors',
C: 'create:chute',
}).id('tfg:create/shaped/item_hatch_deco')
event.recipes.gtceu.assembler('tfg:create/item_hatch_tfc')
.itemInputs('3x #forge:plates/wrought_iron', '#tfc:trapdoors')
.circuit(19)
.itemOutputs('create:item_hatch')
.duration(200)
.EUt(20)
event.recipes.gtceu.assembler('tfg:create/item_hatch_deco')
.itemInputs('3x #forge:plates/wrought_iron', '#createdeco:metal_trapdoors')
.circuit(19)
.itemOutputs('create:item_hatch')
.duration(200)
.EUt(20)
event.shaped('create:package_frogport', [
'GAG',
'HCB',
'EDF'
], {
A: 'tfc:glue',
B: '#forge:small_gears/brass',
C: '#tfg:metal_chains',
D: 'create:item_vault',
E: '#forge:tools/screwdrivers',
F: '#forge:tools/wrenches',
G: '#forge:plates/wrought_iron',
H: 'create:electron_tube'
}).id('tfg:create/shaped/package_frogport')
event.recipes.gtceu.assembler('tfg:create/package_frogport')
.itemInputs('#tfg:metal_chains', '2x #forge:plates/wrought_iron', '1x #forge:small_gears/brass', 'create:electron_tube', 'create:item_vault')
.inputFluids(Fluid.of('gtceu:glue', 50))
.itemOutputs('create:package_frogport')
.circuit(20)
.duration(200)
.EUt(20)
event.shapeless('create:white_postbox', [
'create:track_signal',
'gtceu:wood_crate'
]).id('create:crafting/shapeless/white_postbox')
event.shaped('create:white_table_cloth', [
'AA',
'BB'
], {
A: '#forge:cloth',
B: 'tfg:scaffolding_frame'
}).id('tfg:create/shaped/white_table_cloth')
event.recipes.gtceu.laser_engraver('create:transmitter')
.itemInputs('2x #forge:plates/red_alloy')
.notConsumable('#forge:lenses/pink')
.itemOutputs('create:transmitter')
.duration(1200)
.EUt(30)
event.shaped('create:stock_link', [
'FEB',
'DAE',
'GC '
], {
A: 'create:andesite_casing',
B: 'gtceu:item_detector_cover',
C: '#gtceu:circuits/lv',
D: 'create:transmitter',
E: '#forge:screws/steel',
F: '#forge:tools/wrenches',
G: '#forge:tools/screwdrivers'
}).id('tfg:create/shaped/stock_link')
event.recipes.gtceu.assembler('create:stock_link')
.itemInputs('create:andesite_casing', 'gtceu:item_detector_cover', '#gtceu:circuits/lv', 'create:transmitter')
.inputFluids(Fluid.of('gtceu:soldering_alloy', 72))
.itemOutputs('create:stock_link')
.duration(150)
.EUt(16)
event.recipes.gtceu.assembler('create:stock_link_tin')
.itemInputs('create:andesite_casing', 'gtceu:item_detector_cover', '#gtceu:circuits/lv', 'create:transmitter')
.inputFluids(Fluid.of('gtceu:tin', 144))
.itemOutputs('create:stock_link')
.duration(150)
.EUt(16)
event.shaped('create:stock_ticker', [
' A ',
'ABA',
'CDC'
], {
A: '#forge:glass_panes',
B: 'create:stock_link',
C: '#gtceu:resistors',
D: '#forge:plates/rose_quartz'
}).id('tfg:create/shaped/stock_ticker')
event.shaped('create:redstone_requester', [
' A ',
'ABA',
'CDC'
], {
A: '#forge:plates/wrought_iron',
B: 'create:stock_link',
C: '#gtceu:circuits/ulv',
D: '#forge:plates/rose_quartz'
}).id('tfg:create/shaped/redstone_requester')
event.shaped('2x create:factory_gauge', [
'CAC',
'DBE',
'FGF'
], {
A: 'create:precision_mechanism',
B: 'create:stock_link',
C: '#forge:screws/aluminium',
D: '#gtceu:diodes',
E: '#gtceu:circuits/lv',
F: '#forge:plates/rose_quartz',
G: '#forge:tools/wrenches'
}).id('tfg:create/shaped/factory_gauge')
event.recipes.gtceu.assembler('create:factory_gauge')
.itemInputs('create:precision_mechanism', '2x #forge:screws/aluminium', '#gtceu:diodes', 'create:stock_link', '#gtceu:circuits/lv', '2x #forge:plates/rose_quartz')
.itemOutputs('2x create:factory_gauge')
.duration(150)
.EUt(16)
//#endregion
//#region Decoration blocks
@ -1751,7 +2038,7 @@ const registerCreateRecipes = (event) => {
'DAD',
' E '
], {
A: 'create:brass_casing',
A: 'create:andesite_casing',
B: '#gtceu:circuits/ulv',
C: '#forge:small_springs',
D: '#forge:plates/wrought_iron',
@ -1760,7 +2047,7 @@ const registerCreateRecipes = (event) => {
}).id('tfg:create/shaped/redstone_link')
event.recipes.gtceu.assembler('create:redstone_link')
.itemInputs('create:brass_casing', '#gtceu:circuits/ulv', '#forge:small_springs', '2x #forge:plates/wrought_iron')
.itemInputs('create:andesite_casing', '#gtceu:circuits/ulv', '#forge:small_springs', '2x #forge:plates/wrought_iron')
.itemOutputs('create:redstone_link')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
@ -1805,6 +2092,28 @@ const registerCreateRecipes = (event) => {
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.shaped('create:pulse_timer', [
'E E',
'ABC',
'DDD'
], {
A: 'minecraft:redstone',
B: '#forge:plates/brass',
C: 'minecraft:redstone_torch',
D: '#forge:stone',
E: '#forge:rods/amethyst'
}).id('tfg:shaped/pulse_timer')
event.shaped('create:desk_bell', [
'A',
'B',
'C'
], {
A: '#minecraft:buttons',
B: '#tfc:bells',
C: 'minecraft:redstone'
}).id('tfg:shaped/desk_bell')
event.shaped('create:sequenced_gearshift', [
'DBE',
'CAC',
@ -1936,10 +2245,91 @@ const registerCreateRecipes = (event) => {
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.stonecutting('2x create:andesite_table_cloth', '#forge:ingots/tin_alloy')
event.stonecutting('2x create:andesite_scaffolding', '#forge:ingots/tin_alloy')
event.stonecutting('2x create:andesite_ladder', '#forge:ingots/tin_alloy')
event.stonecutting('2x create:andesite_bars', '#forge:ingots/tin_alloy')
// Industrial Iron stuff
event.stonecutting('2x create:industrial_iron_block', '#forge:ingots/steel')
event.custom({
type: "ae2:transform",
circumstance: {
type: "fluid",
tag: "tfc:water"
},
ingredients: [{ item: 'create:industrial_iron_block' }],
result: { item: 'create:weathered_iron_block' }
}).id(`tfg:ae_transform/weathered_iron_block`)
event.recipes.gtceu.chemical_bath('tfg:industrial_iron_block')
.itemInputs('create:industrial_iron_block')
.inputFluids(Fluid.of('minecraft:water', 250))
.itemOutputs('create:weathered_iron_block')
.duration(100)
.EUt(GTValues.VA[GTValues.ULV])
event.custom({
type: "ae2:transform",
circumstance: {
type: "fluid",
tag: "tfc:water"
},
ingredients: [{ item: 'create:industrial_iron_window' }],
result: { item: 'create:weathered_iron_window' }
}).id(`tfg:ae_transform/weathered_iron_window`)
event.recipes.gtceu.chemical_bath('tfg:industrial_iron_window')
.itemInputs('create:industrial_iron_window')
.inputFluids(Fluid.of('minecraft:water', 250))
.itemOutputs('create:weathered_iron_window')
.duration(100)
.EUt(GTValues.VA[GTValues.ULV])
event.custom({
type: "ae2:transform",
circumstance: {
type: "fluid",
tag: "tfc:water"
},
ingredients: [{ item: 'create:industrial_iron_window_pane' }],
result: { item: 'create:weathered_iron_window_pane' }
}).id(`tfg:ae_transform/weathered_iron_window_pane`)
event.recipes.gtceu.chemical_bath('tfg:industrial_iron_window_pane')
.itemInputs('create:industrial_iron_window_pane')
.inputFluids(Fluid.of('minecraft:water', 250))
.itemOutputs('create:weathered_iron_window_pane')
.duration(100)
.EUt(GTValues.VA[GTValues.ULV])
// Rose quartz
event.shaped('create:rose_quartz_lamp', [
'ABA'
], {
A: '#forge:plates/rose_quartz',
B: 'minecraft:redstone_lamp'
}).id('tfg:shaped/rose_quartz_lamp')
event.recipes.gtceu.laser_engraver('tfg:rose_quartz_tiles')
.itemInputs('#forge:storage_blocks/rose_quartz')
.itemOutputs('4x create:rose_quartz_tiles')
.notConsumable('tfc:lens')
.circuit(1)
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.laser_engraver('tfg:small_rose_quartz_tiles')
.itemInputs('#forge:storage_blocks/rose_quartz')
.itemOutputs('4x create:small_rose_quartz_tiles')
.notConsumable('tfc:lens')
.circuit(2)
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
// Bars
event.recipes.gtceu.cutter('tfg:create_andesite_bars')
@ -1976,4 +2366,18 @@ const registerCreateRecipes = (event) => {
event.shapeless('2x create:train_trapdoor', ['tfc:metal/trapdoor/steel', '#minecraft:wooden_trapdoors'])
.id('tfg:shapeless/create_train_trapdoor')
// Fantasy stone blocks
event.recipes.gtceu.macerator('tfg:asurine')
.itemInputs('create:asurine')
.itemOutputs('#forge:dusts/asurine')
.duration(50)
.EUt(2)
event.recipes.gtceu.macerator('tfg:cut_asurine')
.itemInputs('create:cut_asurine')
.itemOutputs('#forge:dusts/asurine')
.duration(50)
.EUt(2)
}

View file

@ -46,18 +46,26 @@ const registerCreateItemTags = (event) => {
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('create:blaze_burner_fuel/special', "beneath:cursecoal")
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:black_bronze_crate')
event.add('create:non_movable', 'gtceu:bismuth_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.add('create:non_movable', 'gtceu:lv_super_chest')
event.add('create:non_movable', 'gtceu:mv_super_chest')
event.add('create:non_movable', 'gtceu:hv_super_chest')
event.add('create:non_movable', 'gtceu:ev_super_chest')
event.add('c:hidden_from_recipe_viewers', 'create:cardboard_package_12x10')
event.add('c:hidden_from_recipe_viewers', 'create:cardboard_package_10x8')
event.add('c:hidden_from_recipe_viewers', 'create:cardboard_package_10x12')
event.add('c:hidden_from_recipe_viewers', 'create:cardboard_package_12x12')
event.remove('create:stone_types/deepslate', 'minecraft:deepslate')
event.remove('create:stone_types/dripstone', 'minecraft:dripstone_block')
@ -80,14 +88,12 @@ const registerCreateBlockTags = (event) => {
// Disable bulk blasting
event.removeAll('create:fan_processing_catalysts/blasting')
event.removeAll('create:fan_processing_catalysts/haunting')
// Waters for bulk washing
event.add('create:fan_processing_catalysts/splashing', 'tfc:fluid/river_water')
event.add('create:fan_processing_catalysts/splashing', 'tfc:fluid/salt_water')
event.add('create:fan_processing_catalysts/splashing', 'tfc:fluid/spring_water')
// Lets the basin be put on top of a charcoal forge
event.add('tfc:forge_invisible_whitelist', 'create:basin')
}
@ -100,12 +106,18 @@ const registerCreateFluidTags = (event) => {
// Добавляем тег для скрытия в EMI
event.add('c:hidden_from_recipe_viewers', 'create:chocolate')
event.add('c:hidden_from_recipe_viewers', 'create:honey')
event.add('c:hidden_from_recipe_viewers', 'create:builders_tea')
event.add('c:hidden_from_recipe_viewers', 'create:uncraftable_potion')
// Disable bulk blasting
event.removeAll('create:fan_processing_catalysts/blasting')
event.removeAll('create:fan_processing_catalysts/haunting')
// Waters for bulk washing
event.add('create:fan_processing_catalysts/splashing', 'tfc:river_water')
event.add('create:fan_processing_catalysts/splashing', 'tfc:salt_water')
event.add('create:fan_processing_catalysts/splashing', 'tfc:spring_water')
//Hose Pulley Infinites
event.remove('create:bottomless/allow', 'minecraft:lava')
}

View file

@ -0,0 +1,62 @@
// priority: 0
function registerTFCDataForCreateAddition(event) {
event.itemHeat('createaddition:cake_base', 1.0, null, null)
event.itemHeat('createaddition:cake_base_baked', 1.0, null, null)
event.foodItem('createaddition:cake_base', food => {
food.hunger(1)
food.saturation(0)
food.decayModifier(3)
})
event.foodItem('createaddition:cake_base_baked', food => {
food.hunger(4)
food.saturation(1)
food.decayModifier(2)
food.dairy(2)
food.grain(2)
})
event.foodItem('tfc:cake', food => {
food.hunger(2)
food.saturation(2)
food.decayModifier(2)
food.dairy(0.8)
food.grain(0.8)
})
event.foodItem('createaddition:chocolate_cake', food => {
food.hunger(2)
food.saturation(2)
food.decayModifier(2)
food.dairy(0.8)
food.grain(0.8)
})
event.foodItem('createaddition:honey_cake', food => {
food.hunger(2)
food.saturation(2)
food.decayModifier(2)
food.dairy(0.8)
food.grain(0.8)
})
event.foodItem('species:birtday_cake', food => {
food.hunger(2)
food.saturation(2)
food.decayModifier(2)
food.dairy(0.8)
food.grain(0.8)
})
event.foodItem('species:birtday_cake_slice', food => {
food.hunger(2)
food.saturation(2)
food.decayModifier(2)
food.dairy(0.8)
food.grain(0.8)
food.fruit(1)
})
}

View file

@ -0,0 +1,19 @@
// priority: 0
const $FoodData = Java.loadClass("net.dries007.tfc.common.capabilities.food.FoodData")
// hunger, water, saturation, grain, fruit, veg, protein, dairy, decayModifier
const cakeData = new $FoodData(6, 0, 2, 1, 0, 0, 0, 0.5, 0)
BlockEvents.rightClicked(event => {
const { block, server, player, player: { x, y, z, username } } = event;
if (block.id != 'createaddition:chocolate_cake' && block.id != 'createaddition:honey_cake') {
return
}
let foodData = player.getFoodData();
if (foodData.needsFood()) {
foodData.eat(cakeData);
}
});

View file

@ -92,4 +92,123 @@ const registerCreateAdditionsRecipes = (event) => {
E: 'gtceu:tin_single_cable',
F: '#tfg:shafts'
}).id('tfg:createadditions/shaped/alternator')
//#region Liquid blaze burners
event.recipes.tfc.anvil('createaddition:straw', '#forge:plates/tin_alloy', ['shrink_second_last', 'upset_not_last', 'punch_last'])
.tier(3)
.id(`tfc:anvil/straw`)
event.recipes.gtceu.lathe('assembler:createaddition_straw')
.itemInputs('#forge:plates/tin_alloy')
.itemOutputs('createaddition:straw')
.duration(20 * 6)
.EUt(16)
event.custom({
type: 'vintageimprovements:turning',
ingredients: [{ tag: 'forge:plates/tin_alloy' }],
results: [{ item: 'createaddition:straw' }],
processingTime: 20 * 6
}).id(`tfg:vi/lathe/straw`)
event.custom({
type: 'createaddition:liquid_burning',
input: {
fluidTag: 'minecraft:lava',
amount: 100
},
burnTime: 7 * 9 * 9
}).id('tfg:createadditions/liquid_burning/lava')
event.custom({
type: 'createaddition:liquid_burning',
input: {
fluidTag: 'forge:creosote',
amount: 160
},
burnTime: 10 * 9 * 9
}).id('tfg:createadditions/liquid_burning/creosote')
event.custom({
type: 'createaddition:liquid_burning',
input: {
fluidTag: 'forge:biomass',
amount: 40
},
burnTime: 10 * 9 * 9
}).id('tfg:createadditions/liquid_burning/biomass')
event.custom({
type: 'createaddition:liquid_burning',
input: {
fluidTag: 'forge:oil',
amount: 200
},
burnTime: 10 * 9 * 9
}).id('tfg:createadditions/liquid_burning/oil')
event.custom({
type: 'createaddition:liquid_burning',
input: {
fluidTag: 'forge:oil_heavy',
amount: 32
},
burnTime: 10 * 9 * 9
}).id('tfg:createadditions/liquid_burning/oil_heavy')
event.custom({
type: 'createaddition:liquid_burning',
input: {
fluidTag: 'forge:sulfuric_heavy_fuel',
amount: 32
},
burnTime: 10 * 9 * 9
}).id('tfg:createadditions/liquid_burning/sulfuric_heavy_fuel')
event.custom({
type: 'createaddition:liquid_burning',
input: {
fluidTag: 'forge:heavy_fuel',
amount: 16
},
burnTime: 30 * 9 * 9
}).id('tfg:createadditions/liquid_burning/heavy_fuel')
event.custom({
type: 'createaddition:liquid_burning',
input: {
fluidTag: 'forge:fish_oil',
amount: 50
},
burnTime: 100 * 9 * 9
}).id('tfg:createadditions/liquid_burning/fish_oil')
event.custom({
type: 'createaddition:liquid_burning',
input: {
fluid: 'tfc:olive_oil',
amount: 50
},
burnTime: 150 * 9 * 9
}).id('tfg:createadditions/liquid_burning/olive_oil')
event.custom({
type: 'createaddition:liquid_burning',
input: {
fluid: 'firmalife:soybean_oil',
amount: 50
},
burnTime: 150 * 9 * 9
}).id('tfg:createadditions/liquid_burning/soybean_oil')
event.custom({
type: 'createaddition:liquid_burning',
input: {
fluidTag: 'forge:seed_oil',
amount: 50
},
burnTime: 150 * 9 * 9
}).id('tfg:createadditions/liquid_burning/seed_oil')
//#endregion
}

View file

@ -7,6 +7,9 @@ const registerCreateConnectedRecipes = (event) => {
event.remove({ output: item })
})
event.stonecutting('create_connected:copycat_box', '#forge:ingots/zinc')
event.stonecutting('2x create_connected:copycat_catwalk', '#forge:ingots/zinc')
// Remove Fluid Vessel Crafting
event.remove({ id: 'create_connected:crafting/kinetics/fluid_vessel' })
@ -65,40 +68,5 @@ const registerCreateConnectedRecipes = (event) => {
E: '#forge:stone'
}).id('create_connected:crafting/kinetics/sequenced_pulse_generator')
// Windows
event.shapeless(`2x create_connected:cherry_window_pane`,
[
`create_connected:cherry_window`,
'#forge:tools/saws'
])
.id(`create_connected:crafting/palettes/cherry_window_pane`)
event.recipes.gtceu.cutter(`create_connected:cherry_window_pane`)
.itemInputs(`3x create_connected:cherry_window`)
.itemOutputs(`8x create_connected:cherry_window_pane`)
.duration(40)
.EUt(7)
event.shapeless(`2x create_connected:bamboo_window_pane`,
[
`create_connected:bamboo_window`,
'#forge:tools/saws'
])
.id(`create_connected:crafting/palettes/bamboo_window_pane`)
event.recipes.gtceu.cutter(`create_connected:bamboo_window_pane`)
.itemInputs(`3x create_connected:bamboo_window`)
.itemOutputs(`8x create_connected:bamboo_window_pane`)
.duration(40)
.EUt(7)
event.shaped('create_connected:cherry_window', [
'ABA',
' A '
], {
A: 'afc:wood/planks/fig',
B: '#forge:glass'
}).id('create_connected:crafting/palettes/cherry_window')
event.replaceInput({ id: 'create_connected:crafting/kinetics/redstone_link_wildcard' }, 'create:transmitter', 'minecraft:redstone_torch')
}

View file

@ -0,0 +1,96 @@
// priority: 0
function registerCreateFactoryLogisticsRecipes(event) {
event.remove({ mod: 'create_factory_logistics' })
event.recipes.createSequencedAssembly([
'create_factory_logistics:fluid_mechanism',
], '#forge:plates/copper', [
event.recipes.createDeploying('create_factory_logistics:incomplete_fluid_mechanism', ['create_factory_logistics:incomplete_fluid_mechanism', '#forge:small_springs/copper']),
event.recipes.createDeploying('create_factory_logistics:incomplete_fluid_mechanism', ['create_factory_logistics:incomplete_fluid_mechanism', '#forge:small_gears/brass']),
event.recipes.createDeploying('create_factory_logistics:incomplete_fluid_mechanism', ['create_factory_logistics:incomplete_fluid_mechanism', '#forge:bolts/wrought_iron']),
]).transitionalItem('create_factory_logistics:incomplete_fluid_mechanism').loops(3).id('tfg:create_factory_logistics/sequenced_assembly/fluid_mechanism')
event.recipes.gtceu.assembler('create_factory_logistics:fluid_mechanism')
.itemInputs('#forge:plates/copper', '2x #forge:small_springs/copper', '2x #forge:small_gears/brass', '2x #forge:bolts/wrought_iron')
.itemOutputs('create_factory_logistics:fluid_mechanism')
.duration(2000)
.EUt(20)
event.shaped('create_factory_logistics:jar_packager', [
'AAA',
'BCD',
'EFE'
], {
A: '#forge:rods/copper',
B: '#forge:springs/copper',
C: 'gtceu:ulv_machine_hull',
D: 'create:fluid_tank',
E: 'create:electron_tube',
F: '#tfg:metal_bars'
}).id('create_factory_logistics:shaped/jar_packager')
event.recipes.gtceu.assembler('create_factory_logistics:jar_packager')
.itemInputs('gtceu:ulv_machine_hull', '4x #forge:rods/copper', '#forge:springs/copper', 'create:fluid_tank', '#gtceu:circuits/ulv')
.itemOutputs('create_factory_logistics:jar_packager')
.duration(200)
.EUt(20)
event.shapeless('create_factory_logistics:factory_fluid_gauge', ['create_factory_logistics:factory_fluid_gauge'])
.id('create_factory_logistics:shapeless/factory_fluid_gauge_clear')
event.shaped('2x create_factory_logistics:factory_fluid_gauge', [
'ABA',
'CDE',
'FGF'
], {
A: '#forge:screws/aluminium',
B: 'create_factory_logistics:fluid_mechanism',
C: '#gtceu:diodes',
D: 'create:stock_link',
E: '#gtceu:circuits/lv',
F: '#forge:plates/rose_quartz',
G: '#forge:tools/wrenches'
}).id('create_factory_logistics:shaped/factory_fluid_gauge')
event.recipes.gtceu.assembler('create_factory_logistics:factory_fluid_gauge')
.itemInputs('create_factory_logistics:fluid_mechanism', '2x #forge:screws/aluminium', '#gtceu:diodes', 'create:stock_link', '#gtceu:circuits/lv', '2x #forge:plates/rose_quartz')
.itemOutputs('2x create_factory_logistics:factory_fluid_gauge')
.duration(150)
.EUt(16)
event.shapeless('create_factory_logistics:network_link', ['create_factory_logistics:network_link'])
.id('create_factory_logistics:shapeless/network_link_clear')
event.shaped('create_factory_logistics:network_link', [
'ABC',
'DEB',
'FG '
], {
A: '#forge:tools/wrenches',
B: '#forge:screws/steel',
C: 'gtceu:fluid_detector_cover',
D: 'create:transmitter',
E: 'create:brass_casing',
F: '#forge:tools/screwdrivers',
G: '#gtceu:circuits/lv'
}).id('create_factory_logistics:shaped/network_link')
event.recipes.gtceu.assembler('create_factory_logistics:network_link')
.itemInputs('create:brass_casing', 'gtceu:fluid_detector_cover', '#gtceu:circuits/lv', 'create:transmitter')
.inputFluids(Fluid.of('gtceu:soldering_alloy', 72))
.itemOutputs('create_factory_logistics:network_link')
.duration(150)
.EUt(16)
event.recipes.gtceu.assembler('create_factory_logistics:network_link_tin')
.itemInputs('create:brass_casing', 'gtceu:fluid_detector_cover', '#gtceu:circuits/lv', 'create:transmitter')
.inputFluids(Fluid.of('gtceu:tin', 144))
.itemOutputs('create_factory_logistics:network_link')
.duration(150)
.EUt(16)
}

View file

@ -0,0 +1,7 @@
// priority: 0
function registerCreateFactoryLogisticsItemTags(event) {
event.add('c:hidden_from_recipe_viewers', 'create_factory_logistics:incomplete_fluid_mechanism')
event.add('c:hidden_from_recipe_viewers', 'create_factory_logistics:copper_jar_package_8x8')
event.add('c:hidden_from_recipe_viewers', 'create_factory_logistics:composite_package')
}

View file

@ -4,45 +4,39 @@ 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:small_gears/bronze',
C: '#tfc:rock/raw',
D: '#forge:tools/hammers',
E: '#tfc:chisels'
})
).id('tfg:shaped/horse_crank_bronze')
event.shaped('createhorsepower:horse_crank', [
' A ',
'EBD',
'CCC'
], {
A: '#forge:fences/wooden',
B: '#forge:small_gears/bronze',
C: '#tfc:rock/raw',
D: '#forge:tools/hammers',
E: '#forge:tools/saws'
}).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:small_gears/bismuth_bronze',
C: '#tfc:rock/raw',
D: '#forge:tools/hammers',
E: '#tfc:chisels'
})
).id('tfg:shaped/horse_crank_bismuth_bronze')
event.shaped('createhorsepower:horse_crank', [
' A ',
'EBD',
'CCC'
], {
A: '#forge:fences/wooden',
B: '#forge:small_gears/bismuth_bronze',
C: '#tfc:rock/raw',
D: '#forge:tools/hammers',
E: '#forge:tools/saws'
}).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:small_gears/black_bronze',
C: '#tfc:rock/raw',
D: '#forge:tools/hammers',
E: '#tfc:chisels'
})
).id('tfg:shaped/horse_crank_black_bronze')
event.shaped('createhorsepower:horse_crank', [
' A ',
'EBD',
'CCC'
], {
A: '#forge:fences/wooden',
B: '#forge:small_gears/black_bronze',
C: '#tfc:rock/raw',
D: '#forge:tools/hammers',
E: '#forge:tools/saws'
}).id('tfg:shaped/horse_crank_black_bronze')
}

View file

@ -0,0 +1,21 @@
function registerCreateHypertubeRecipes(event) {
event.remove({ mod: 'create_hypertube' })
event.recipes.gtceu.assembler('create_hypertube:hypertube')
.itemInputs('2x #forge:plates/stainless_steel', '4x ae2:quartz_glass')
.itemOutputs('8x create_hypertube:hypertube')
.EUt(512)
.duration(40)
event.recipes.gtceu.assembler('create_hypertube:entrance')
.itemInputs('4x #forge:plates/stainless_steel','create:smart_chute' ,'greate:stainless_steel_cogwheel', 'ae2:charged_certus_quartz_crystal')
.itemOutputs('create_hypertube:hypertube_entrance')
.inputFluids(Fluid.of('gtceu:silicone_rubber', 288))
.EUt(512)
.duration(80)
event.recipes.gtceu.assembler('create_hypertube:entrance_sbr')
.itemInputs('4x #forge:plates/stainless_steel','create:smart_chute' ,'greate:stainless_steel_cogwheel', 'ae2:charged_certus_quartz_crystal')
.itemOutputs('create_hypertube:hypertube_entrance')
.inputFluids(Fluid.of('gtceu:styrene_butadiene_rubber', 144))
.EUt(512)
.duration(80)
}

View file

@ -47,6 +47,8 @@ const registerCreatedecoRecipes = (event) => {
event.remove({ id: 'createdeco:industrial_iron_bars' })
event.remove({ id: 'createdeco:zinc_bars_overlay' })
event.remove({ id: 'createdeco:zinc_bars' })
event.remove({ id: 'createdeco:industrial_iron_block' })
event.remove({ id: 'createdeco:netherite_ingot' })
event.remove({ id: 'gtceu:assembler/bricks' })
event.remove({ type: 'minecraft:stonecutting', input: '#forge:storage_blocks/tin_alloy' })
event.remove({ type: 'minecraft:stonecutting', input: '#forge:storage_blocks/brass' })
@ -78,7 +80,7 @@ const registerCreatedecoRecipes = (event) => {
let ingredients = {
T: `minecraft:glowstone`,
N: `#forge:nuggets/${replacementLampType}`,
N: `#forge:bolts/${replacementLampType}`,
P: `#forge:plates/${replacementLampType}`,
D: null,
X: null
@ -96,15 +98,15 @@ const registerCreatedecoRecipes = (event) => {
}
if (lampType === 'iron') {
ingredients.N = '#forge:nuggets/wrought_iron';
ingredients.N = '#forge:bolts/wrought_iron';
ingredients.P = '#forge:plates/wrought_iron';
}
if (lampType === 'andesite') {
ingredients.N = '#forge:nuggets/tin_alloy';
ingredients.N = '#forge:bolts/tin_alloy';
ingredients.P = '#forge:plates/tin_alloy';
}
if (lampType === 'industrial_iron') {
ingredients.N = '#forge:nuggets/steel';
ingredients.N = '#forge:bolts/steel';
ingredients.P = '#forge:plates/steel';
}
@ -174,6 +176,46 @@ const registerCreatedecoRecipes = (event) => {
});
//#endregion
event.stonecutting('4x createdeco:andesite_mesh_fence', '#forge:ingots/tin_alloy')
event.stonecutting('4x createdeco:andesite_catwalk', '#forge:ingots/tin_alloy')
event.stonecutting('2x createdeco:andesite_catwalk_stairs', '#forge:ingots/tin_alloy')
event.stonecutting('8x createdeco:andesite_catwalk_railing', '#forge:ingots/tin_alloy')
event.stonecutting('4x createdeco:andesite_facade', '#forge:ingots/tin_alloy')
event.stonecutting('3x createdeco:andesite_support_wedge', '#forge:ingots/tin_alloy')
event.stonecutting('4x createdeco:iron_mesh_fence', '#forge:ingots/wrought_iron')
event.stonecutting('4x createdeco:iron_catwalk', '#forge:ingots/wrought_iron')
event.stonecutting('2x createdeco:iron_catwalk_stairs', '#forge:ingots/wrought_iron')
event.stonecutting('8x createdeco:iron_catwalk_railing', '#forge:ingots/wrought_iron')
event.stonecutting('4x createdeco:iron_facade', '#forge:ingots/wrought_iron')
event.stonecutting('3x createdeco:iron_support_wedge', '#forge:ingots/wrought_iron')
event.shaped('8x createdeco:iron_catwalk_railing', [
'AAA',
'B B',
'B B'
], {
A: '#forge:plates/wrought_iron',
B: 'tfc:metal/bars/wrought_iron'
}).id('createdeco:iron_catwalk_railing')
event.shaped('4x createdeco:iron_catwalk', [
' A ',
'ABA',
' A '
], {
A: '#forge:plates/wrought_iron',
B: 'tfc:metal/bars/wrought_iron'
}).id('createdeco:iron_catwalk')
event.shaped('2x createdeco:iron_catwalk_stairs', [
' A',
'AB'
], {
A: 'createdeco:iron_catwalk',
B: 'tfc:metal/bars/wrought_iron'
}).id('createdeco:iron_catwalk_stairs')
// #region Bars + Doors
const metalThings = [
@ -223,6 +265,15 @@ const registerCreatedecoRecipes = (event) => {
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
.circuit(13)
event.shaped(`4x createdeco:${bar.metal}_facade`, [
' A ',
'ABA',
' A '
], {
A: `#forge:rods/${bar.material}`,
B: `createdeco:${bar.metal}_mesh_fence`
}).id(`tfg:shaped/createdeco_${bar.metal}_facade`)
})
// #endregion
@ -273,7 +324,7 @@ const registerCreatedecoRecipes = (event) => {
.duration(GTMaterials.Zinc.getMass())
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.tfc.anvil(`createdeco:andesite_trapdoor`, `#forge:ingots/iron_alloy`, ['shrink_last', 'draw_second_last', 'draw_third_last'])
event.recipes.tfc.anvil(`createdeco:andesite_trapdoor`, `#forge:ingots/tin_alloy`, ['shrink_last', 'draw_second_last', 'draw_third_last'])
.tier(3).id(`createdeco:anvil/andesite_trapdoor`)
event.recipes.gtceu.alloy_smelter(`tfg:cast_tin_alloy_trapdoor`)
@ -383,4 +434,34 @@ const registerCreatedecoRecipes = (event) => {
})
// #endregion
// #region Ladders
event.shaped('6x createdeco:iron_ladder', [
'A A',
'AAA',
'A A'
], {
A: '#forge:rods/wrought_iron'
}).id('tfg:createdeco/shaped/iron_ladder')
event.stonecutting('2x createdeco:iron_ladder', '#forge:ingots/wrought_iron')
event.shaped('6x createdeco:zinc_ladder', [
'A A',
'AAA',
'A A'
], {
A: '#forge:rods/zinc'
}).id('tfg:createdeco/shaped/zinc_ladder')
event.shaped('6x createdeco:industrial_iron_ladder', [
'A A',
'AAA',
'A A'
], {
A: '#forge:rods/steel'
}).id('tfg:createdeco/shaped/industrial_iron_ladder')
// #endregion
};

View file

@ -9,7 +9,8 @@ const registerCreateDecoItemTags = (event) => {
});
//#endregion
event.remove('createdeco:internal/blocks/iron_blocks', '#forge:storage_blocks/iron')
event.remove('createdeco:internal/blocks/iron_blocks', 'minecraft:iron_block')
event.remove('createdeco:internal/blocks/industrial_iron_blocks', 'create:industrial_iron_block')
//#region Apply Tags
metalBars.forEach(metalBars => {
@ -17,6 +18,12 @@ const registerCreateDecoItemTags = (event) => {
event.add('tfg:metal_bars', `createdeco:${metalBars}_bars_overlay`)
});
event.add('createdeco:metal_trapdoors', 'createdeco:andesite_trapdoor')
event.add('createdeco:metal_trapdoors', 'createdeco:brass_trapdoor')
event.add('createdeco:metal_trapdoors', 'createdeco:copper_trapdoor')
event.add('createdeco:metal_trapdoors', 'createdeco:industrial_iron_trapdoor')
event.add('createdeco:metal_trapdoors', 'createdeco:zinc_trapdoor')
event.add("createdeco: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")

View file

@ -10,8 +10,6 @@ const registerEndermanOverhaulItemTags = (event) => {
'endermanoverhaul:savannah_hood',
'endermanoverhaul:snowy_hood',
'endermanoverhaul:soul_pearl',
'endermanoverhaul:ancient_pearl',
'endermanoverhaul:bubble_pearl',
'endermanoverhaul:icy_pearl',
'endermanoverhaul:crimson_pearl',

View file

@ -10,190 +10,274 @@ const registerExtendedAE2Recipes = (event) => {
], mod: 'expatternprovider' });
//#region Ext interface
//#region Ext Interface
// IV
event.recipes.gtceu.assembly_line('expatternprovider:ex_interface_iv')
event.recipes.gtceu.assembler('expatternprovider:ex_interface_iv')
.itemInputs(
'2x #megacells:mega_interface',
'4x megacells:accumulation_processor',
'4x gtceu:iv_conveyor_module',
'gtceu:fusion_glass',
'2x #forge:dense_plates/tungsten_steel',
'#gtceu:circuits/iv',
'2x #gtceu:circuits/ev',)
.inputFluids(Fluid.of('gtceu:polybenzimidazole', 1152))
'gtceu:iv_conveyor_module',
'8x gtceu:laminated_glass',
'4x gtceu:tungsten_steel_plate',
'4x ae2:annihilation_core',
'4x ae2:formation_core',
'megacells:accumulation_processor',
'2x #ae2:interface')
.inputFluids(Fluid.of('tfg:fluix', 144*8))
.itemOutputs('expatternprovider:ex_interface')
.duration(300)
.EUt(7680)
.EUt(GTValues.VA[GTValues.IV])
.cleanroom(CleanroomType.CLEANROOM)
// LuV
event.recipes.gtceu.assembly_line('expatternprovider:ex_interface_luv')
// LuV Moon Only
event.recipes.gtceu.assembler('expatternprovider:ex_interface_luv_moon')
.itemInputs(
'4x #megacells:mega_interface',
'4x megacells:accumulation_processor',
'4x gtceu:luv_conveyor_module',
'2x gtceu:fusion_glass',
'2x #forge:dense_plates/rhodium_plated_palladium',
'#gtceu:circuits/luv',
'2x #gtceu:circuits/iv',)
.inputFluids(Fluid.of('gtceu:polybenzimidazole', 1152))
'gtceu:luv_conveyor_module',
'8x gtceu:laminated_glass',
'4x #forge:plates/rhodium_plated_palladium',
'4x ae2:annihilation_core',
'4x ae2:formation_core',
'megacells:accumulation_processor',
'2x #ae2:interface')
.inputFluids(Fluid.of('tfg:cryogenized_fluix', 144*8))
.itemOutputs('2x expatternprovider:ex_interface')
.duration(300)
.EUt(30720)
.cleanroom(CleanroomType.CLEANROOM)
.EUt(GTValues.VA[GTValues.LuV])
.dimension('ad_astra:moon')
// ZPM
event.recipes.gtceu.assembly_line('expatternprovider:ex_interface_zpm')
.itemInputs(
'8x #megacells:mega_interface',
'4x megacells:accumulation_processor',
'4x gtceu:zpm_conveyor_module',
'4x gtceu:fusion_glass',
'2x #forge:dense_plates/naquadah_alloy',
'#gtceu:circuits/zpm',
'2x #gtceu:circuits/luv',)
.inputFluids(Fluid.of('gtceu:polybenzimidazole', 1152))
.itemOutputs('4x expatternprovider:ex_interface')
.duration(300)
.EUt(119680)
.cleanroom(CleanroomType.CLEANROOM)
// UV
event.recipes.gtceu.assembly_line('expatternprovider:ex_interface_ev')
event.recipes.gtceu.assembler('expatternprovider:ex_interface_zpm')
.itemInputs(
'16x #megacells:mega_interface',
'4x megacells:accumulation_processor',
'4x gtceu:uv_conveyor_module',
'8x gtceu:fusion_glass',
'4x #forge:dense_plates/darmstadtium',
'#gtceu:circuits/uv',
'2x #gtceu:circuits/zpm',)
.inputFluids(Fluid.of('gtceu:polybenzimidazole', 1152))
'gtceu:zpm_conveyor_module',
'8x gtceu:laminated_glass',
'4x #forge:plates/naquadah_alloy',
'32x ae2:annihilation_core',
'32x ae2:formation_core',
'megacells:accumulation_processor',
'16x #ae2:interface')
.inputFluids(Fluid.of('tfg:fluix', 144*16))
.itemOutputs('8x expatternprovider:ex_interface')
.duration(300)
.EUt(491520)
.EUt(GTValues.VA[GTValues.ZPM])
.cleanroom(CleanroomType.CLEANROOM)
// Extended Interface Upgrade
// IV
event.recipes.gtceu.assembler('expatternprovider:interface_upgrade_iv')
.itemInputs(
'gtceu:iv_conveyor_module',
'8x gtceu:laminated_glass',
'4x gtceu:tungsten_steel_plate',
'4x ae2:annihilation_core',
'4x ae2:formation_core',
'megacells:accumulation_processor',
'#ae2:interface')
.inputFluids(Fluid.of('tfg:fluix', 144*8))
.itemOutputs('expatternprovider:interface_upgrade')
.duration(300)
.circuit(4)
.EUt(GTValues.VA[GTValues.IV])
.cleanroom(CleanroomType.CLEANROOM)
// LuV Moon Only
event.recipes.gtceu.assembler('expatternprovider:interface_upgrade_luv_moon')
.itemInputs(
'gtceu:luv_conveyor_module',
'8x gtceu:laminated_glass',
'4x #forge:plates/rhodium_plated_palladium',
'4x ae2:annihilation_core',
'4x ae2:formation_core',
'megacells:accumulation_processor')
.inputFluids(Fluid.of('tfg:cryogenized_fluix', 144*8))
.itemOutputs('2x expatternprovider:interface_upgrade')
.duration(300)
.circuit(4)
.EUt(GTValues.VA[GTValues.LuV])
.dimension('ad_astra:moon')
// ZPM
event.recipes.gtceu.assembler('expatternprovider:interface_upgrade_zpm')
.itemInputs(
'gtceu:zpm_conveyor_module',
'8x gtceu:laminated_glass',
'4x #forge:plates/naquadah_alloy',
'32x ae2:annihilation_core',
'32x ae2:formation_core',
'megacells:accumulation_processor',
'8x #ae2:interface')
.inputFluids(Fluid.of('tfg:fluix', 144*16))
.itemOutputs('8x expatternprovider:interface_upgrade')
.duration(300)
.circuit(4)
.EUt(GTValues.VA[GTValues.ZPM])
.cleanroom(CleanroomType.CLEANROOM)
//#endregion
//#region Oversized Interface
//Luv
// IV
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))
'4x #expatternprovider:extended_interface',
'4x megacells:accumulation_processor',
'gtceu:iv_robot_arm',
'gtceu:iv_fluid_regulator',
'4x #forge:dense_plates/tungsten_steel',
'#gtceu:circuits/iv',)
.inputFluids(Fluid.of('tfg:fluix', 144*9))
.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))
.EUt(GTValues.VA[GTValues.IV])
.cleanroom(CleanroomType.CLEANROOM)
//ZPM
// LuV
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))
'4x #expatternprovider:extended_interface',
'4x megacells:accumulation_processor',
'gtceu:luv_robot_arm',
'gtceu:luv_fluid_regulator',
'4x #forge:dense_plates/rhodium_plated_palladium',
'#gtceu:circuits/luv')
.inputFluids(Fluid.of('tfg:cryogenized_fluix', 144*4))
.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)
.EUt(GTValues.VA[GTValues.LuV])
.dimension('ad_astra:moon')
//UV
// ZPM
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))
'8x #expatternprovider:extended_interface',
'4x megacells:accumulation_processor',
'gtceu:zpm_robot_arm',
'gtceu:zpm_fluid_regulator',
'4x #forge:dense_plates/naquadah_alloy',
'#gtceu:circuits/zpm')
.inputFluids(Fluid.of('tfg:fluix', 144*18))
.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))
.EUt(GTValues.VA[GTValues.ZPM])
.cleanroom(CleanroomType.CLEANROOM)
//#endregion
//#region ex pattern provider
//#region Ext Pattern Provider
// IV
event.recipes.gtceu.assembly_line('expatternprovider:ex_pattern_provider_iv')
event.recipes.gtceu.assembler('expatternprovider:ex_pattern_provider_iv')
.itemInputs(
'2x #megacells:mega_pattern_provider',
'4x megacells:accumulation_processor',
'4x gtceu:iv_conveyor_module',
'2x #forge:dense_plates/tungsten_steel',
'#gtceu:circuits/iv',
'2x #gtceu:circuits/ev',)
.inputFluids(Fluid.of('gtceu:polybenzimidazole', 1152))
'gtceu:iv_robot_arm',
'8x gtceu:laminated_glass',
'4x gtceu:tungsten_steel_plate',
'4x ae2:annihilation_core',
'4x ae2:formation_core',
'megacells:accumulation_processor',
'2x #ae2:pattern_provider')
.inputFluids(Fluid.of('tfg:fluix', 144*8))
.itemOutputs('expatternprovider:ex_pattern_provider')
.duration(300)
.EUt(7680)
.EUt(GTValues.VA[GTValues.IV])
.cleanroom(CleanroomType.CLEANROOM)
// LuV
event.recipes.gtceu.assembly_line('expatternprovider:ex_pattern_provider_luv')
// LuV Moon Only
event.recipes.gtceu.assembler('expatternprovider:ex_pattern_provider_moon')
.itemInputs(
'4x #megacells:mega_pattern_provider',
'4x megacells:accumulation_processor',
'4x gtceu:luv_conveyor_module',
'2x #forge:dense_plates/rhodium_plated_palladium',
'#gtceu:circuits/luv',
'2x #gtceu:circuits/iv',)
.inputFluids(Fluid.of('gtceu:polybenzimidazole', 1152))
'gtceu:luv_robot_arm',
'8x gtceu:laminated_glass',
'4x #forge:plates/rhodium_plated_palladium',
'4x ae2:annihilation_core',
'4x ae2:formation_core',
'megacells:accumulation_processor',
'2x #ae2:pattern_provider')
.inputFluids(Fluid.of('tfg:cryogenized_fluix', 144*8))
.itemOutputs('2x expatternprovider:ex_pattern_provider')
.duration(300)
.EUt(30720)
.cleanroom(CleanroomType.CLEANROOM)
.EUt(GTValues.VA[GTValues.LuV])
.dimension('ad_astra:moon')
// ZPM
event.recipes.gtceu.assembly_line('expatternprovider:ex_pattern_provider_zpm')
event.recipes.gtceu.assembler('expatternprovider:ex_pattern_provider_zpm')
.itemInputs(
'8x #megacells:mega_pattern_provider',
'4x megacells:accumulation_processor',
'4x gtceu:zpm_conveyor_module',
'2x #forge:dense_plates/naquadah_alloy',
'#gtceu:circuits/zpm',
'2x #gtceu:circuits/luv',)
.inputFluids(Fluid.of('gtceu:polybenzimidazole', 1152))
.itemOutputs('4x expatternprovider:ex_pattern_provider')
.duration(300)
.EUt(119680)
.cleanroom(CleanroomType.CLEANROOM)
//UV
event.recipes.gtceu.assembly_line('expatternprovider:ex_pattern_provider_uv')
.itemInputs(
'16x #megacells:mega_pattern_provider',
'4x megacells:accumulation_processor',
'4x gtceu:uv_conveyor_module',
'2x #forge:dense_plates/darmstadtium',
'#gtceu:circuits/uv',
'2x #gtceu:circuits/zpm',)
.inputFluids(Fluid.of('gtceu:polybenzimidazole', 1152))
'gtceu:zpm_robot_arm',
'8x gtceu:laminated_glass',
'4x #forge:plates/naquadah_alloy',
'32x ae2:annihilation_core',
'32x ae2:formation_core',
'megacells:accumulation_processor',
'16x #ae2:pattern_provider')
.inputFluids(Fluid.of('tfg:fluix', 144*16))
.itemOutputs('8x expatternprovider:ex_pattern_provider')
.duration(300)
.EUt(491520)
.EUt(GTValues.VA[GTValues.ZPM])
.cleanroom(CleanroomType.CLEANROOM)
// Pattern Provider Upgrade
// IV
event.recipes.gtceu.assembler('expatternprovider:pattern_provider_upgrade_iv')
.itemInputs(
'gtceu:iv_robot_arm',
'8x gtceu:laminated_glass',
'4x gtceu:tungsten_steel_plate',
'4x ae2:annihilation_core',
'4x ae2:formation_core',
'megacells:accumulation_processor',
'#ae2:pattern_provider')
.inputFluids(Fluid.of('tfg:fluix', 144*8))
.itemOutputs('expatternprovider:pattern_provider_upgrade')
.duration(300)
.circuit(4)
.EUt(GTValues.VA[GTValues.IV])
.cleanroom(CleanroomType.CLEANROOM)
// LuV Moon Only
event.recipes.gtceu.assembler('expatternprovider:pattern_provider_upgrade_luv_moon')
.itemInputs(
'gtceu:luv_robot_arm',
'8x gtceu:laminated_glass',
'4x #forge:plates/rhodium_plated_palladium',
'4x ae2:annihilation_core',
'4x ae2:formation_core',
'megacells:accumulation_processor')
.inputFluids(Fluid.of('tfg:cryogenized_fluix', 144*8))
.itemOutputs('2x expatternprovider:pattern_provider_upgrade')
.duration(300)
.circuit(4)
.EUt(GTValues.VA[GTValues.LuV])
.dimension('ad_astra:moon')
// ZPM
event.recipes.gtceu.assembler('expatternprovider:pattern_provider_upgrade_zpm')
.itemInputs(
'gtceu:zpm_robot_arm',
'8x gtceu:laminated_glass',
'4x #forge:plates/naquadah_alloy',
'32x ae2:annihilation_core',
'32x ae2:formation_core',
'megacells:accumulation_processor',
'8x #ae2:pattern_provider')
.inputFluids(Fluid.of('tfg:fluix', 144*16))
.itemOutputs('8x expatternprovider:pattern_provider_upgrade')
.duration(300)
.circuit(4)
.EUt(GTValues.VA[GTValues.ZPM])
.cleanroom(CleanroomType.CLEANROOM)
//#endregion
@ -372,94 +456,76 @@ const registerExtendedAE2Recipes = (event) => {
'2x megacells:accumulation_processor',)
.itemOutputs('expatternprovider:ex_pattern_access_part')
.duration(100)
.EUt(1920)
.EUt(GTValues.VA[GTValues.EV])
event.recipes.gtceu.assembler('expatternprovider:pattern_terminal_upgrade')
.itemInputs(
'4x ae2:logic_processor',
'2x megacells:accumulation_processor')
.itemOutputs('expatternprovider:pattern_terminal_upgrade')
.duration(100)
.circuit(2)
.EUt(GTValues.VA[GTValues.EV])
// Wireless Crafting Terminal
event.recipes.gtceu.assembler('expatternprovider:wireless_ex_pat')
.itemInputs(
'2x gtceu:hv_lithium_battery',
'2x gtceu:luv_sensor',
'gtceu:luv_emitter',
'2x #forge:rods/osmiridium',
'2x gtceu:iv_sensor',
'gtceu:iv_emitter',
'2x #forge:rods/iridium',
'ae2:wireless_terminal',
'expatternprovider:ex_pattern_access_part')
.itemOutputs('expatternprovider:wireless_ex_pat')
.duration(30)
.EUt(250)
.EUt(GTValues.VA[GTValues.IV])
//#region ex molecular assembler
event.recipes.gtceu.assembly_line('expatternprovider:ex_molecular_assembler_iv')
.itemInputs(
'8x ae2:molecular_assembler',
'4x #gtceu:circuits/iv',
'2x #gtceu:circuits/ev',
'8x megacells:accumulation_processor',
'8x ae2:logic_processor',
'2x gtceu:iv_conveyor_module',
'2x gtceu:iv_robot_arm',
'4x #forge:rods/long/tungsten_steel',)
.inputFluids(
Fluid.of('gtceu:soldering_alloy', 576),
Fluid.of('gtceu:polybenzimidazole', 1152),)
.itemOutputs('expatternprovider:ex_molecular_assembler')
.duration(200)
.EUt(7680)
.cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.assembly_line('expatternprovider:ex_molecular_assembler_luv')
.itemInputs(
'16x ae2:molecular_assembler',
'4x #gtceu:circuits/luv',
'2x #gtceu:circuits/iv',
'8x megacells:accumulation_processor',
'8x ae2:logic_processor',
'2x gtceu:luv_conveyor_module',
'2x gtceu:luv_robot_arm',
'4x #forge:rods/long/rhodium_plated_palladium',)
.inputFluids(
Fluid.of('gtceu:soldering_alloy', 576),
Fluid.of('gtceu:polybenzimidazole', 1152),)
.itemOutputs('2x expatternprovider:ex_molecular_assembler')
.duration(200)
.EUt(30720)
.cleanroom(CleanroomType.CLEANROOM)
// IV
event.recipes.gtceu.assembler('expatternprovider:ex_molecular_assembler_iv')
.itemInputs(
'2x #gtceu:circuits/iv',
'8x gtceu:cleanroom_glass',
'4x ae2:annihilation_core',
'4x ae2:formation_core',
'2x gtceu:iv_robot_arm',
'ae2:molecular_assembler')
.inputFluids(Fluid.of('tfg:fluix', 144*4))
.itemOutputs('expatternprovider:ex_molecular_assembler')
.duration(200)
.EUt(GTValues.VA[GTValues.IV])
.cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.assembly_line('expatternprovider:ex_molecular_assembler_zpm')
.itemInputs(
'32x ae2:molecular_assembler',
'4x #gtceu:circuits/zpm',
'2x #gtceu:circuits/luv',
'8x megacells:accumulation_processor',
'8x ae2:logic_processor',
'2x gtceu:zpm_conveyor_module',
'2x gtceu:zpm_robot_arm',
'4x #forge:rods/long/naquadah_alloy')
.inputFluids(
Fluid.of('gtceu:soldering_alloy', 576),
Fluid.of('gtceu:polybenzimidazole', 1152),)
.itemOutputs('4x expatternprovider:ex_molecular_assembler')
.duration(200)
.EUt(122880)
.cleanroom(CleanroomType.CLEANROOM)
// LuV Moon
event.recipes.gtceu.assembler('expatternprovider:ex_molecular_assembler_luv')
.itemInputs(
'2x #gtceu:circuits/luv',
'8x gtceu:cleanroom_glass',
'4x ae2:annihilation_core',
'4x ae2:formation_core',
'2x gtceu:luv_robot_arm',
'2x ae2:molecular_assembler')
.inputFluids(Fluid.of('tfg:cryogenized_fluix', 144*4))
.itemOutputs('4x expatternprovider:ex_molecular_assembler')
.duration(200)
.EUt(GTValues.VA[GTValues.LuV])
.dimension('ad_astra:moon')
event.recipes.gtceu.assembly_line('expatternprovider:ex_molecular_assembler_uv')
.itemInputs(
'32x ae2:molecular_assembler',
'32x ae2:molecular_assembler',
'4x #gtceu:circuits/uv',
'2x #gtceu:circuits/zpm',
'8x megacells:accumulation_processor',
'8x ae2:logic_processor',
'2x gtceu:uv_conveyor_module',
'2x gtceu:uv_robot_arm',
'4x #forge:rods/long/darmstadtium')
.inputFluids(
Fluid.of('gtceu:soldering_alloy', 576),
Fluid.of('gtceu:polybenzimidazole', 1152),)
.itemOutputs('8x expatternprovider:ex_molecular_assembler')
.duration(200)
.EUt(491520)
.cleanroom(CleanroomType.CLEANROOM)
// ZPM
event.recipes.gtceu.assembler('expatternprovider:ex_molecular_assembler_zpm')
.itemInputs(
'2x #gtceu:circuits/zpm',
'8x gtceu:cleanroom_glass',
'4x ae2:annihilation_core',
'4x ae2:formation_core',
'2x gtceu:zpm_robot_arm',
'4x ae2:molecular_assembler')
.inputFluids(Fluid.of('tfg:fluix', 144*16))
.itemOutputs('8x expatternprovider:ex_molecular_assembler')
.duration(200)
.EUt(GTValues.VA[GTValues.ZPM])
.cleanroom(CleanroomType.CLEANROOM)
//#endregion
@ -488,6 +554,18 @@ const registerExtendedAE2Recipes = (event) => {
.duration(200)
.EUt(1920)
event.recipes.gtceu.assembler('expatternprovider:drive_upgrade')
.itemInputs(
'gtceu:ev_machine_casing',
'2x megacells:accumulation_processor',
'4x ae2:logic_processor',
'4x ae2:engineering_processor',
'2x ae2:capacity_card',)
.itemOutputs('expatternprovider:drive_upgrade')
.duration(200)
.circuit(2)
.EUt(1920)
event.recipes.gtceu.assembler('expatternprovider:ingredient_buffer')
.itemInputs(
'gtceu:hv_machine_casing',
@ -502,242 +580,171 @@ const registerExtendedAE2Recipes = (event) => {
//#endregion
//#region Assembler Matrix
//#region Matrix
//Frame
event.recipes.gtceu.assembly_line('expatternprovider:assembler_matrix_frame_luv')
event.recipes.gtceu.assembly_line('expatternprovider:assembler_matrix_frame')
.itemInputs(
'4x gtceu:plascrete',
'4x gtceu:luv_machine_casing',
'1x #gtceu:circuits/luv',
'1x megacells:accumulation_processor',
'1x #gtceu:circuits/iv',
'4x ae2:logic_processor',
'4x #forge:rods/long/rhodium_plated_palladium',
'4x megacells:accumulation_processor',
'16x #forge:rods/niobium_nitride',
'1x expatternprovider:ex_molecular_assembler',)
.inputFluids(
Fluid.of("gtceu:concrete", 1152),
Fluid.of('gtceu:polybenzimidazole', 1430),)
Fluid.of("gtceu:concrete", 144*8),
Fluid.of('tfg:fluix', 144*16),)
.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))
.duration(2000)
.EUt(GTValues.VA[GTValues.LuV])
.cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.assembly_line('expatternprovider:assembler_matrix_frame_zpm')
event.recipes.gtceu.assembly_line('expatternprovider:assembler_matrix_frame_moon')
.itemInputs(
'8x gtceu:plascrete',
'4x gtceu:zpm_machine_casing',
'1x #gtceu:circuits/zpm',
'1x megacells:accumulation_processor',
'8x gtceu:iv_machine_casing',
'1x #gtceu:circuits/iv',
'4x ae2:logic_processor',
'4x #forge:rods/long/naquadah_alloy',
'1x expatternprovider:ex_molecular_assembler',)
'4x megacells:accumulation_processor',
'16x #forge:rods/niobium_nitride',
'4x 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),)
Fluid.of('gtceu:concrete', 144*8),
Fluid.of('tfg:cryogenized_fluix', 144*16),)
.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)
.duration(2000)
.EUt(GTValues.VA[GTValues.IV])
.dimension('ad_astra:moon')
//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",)
'#forge:frames/polytetrafluoroethylene',
'gtceu:plascrete',
'6x gtceu:polytetrafluoroethylene_plate',)
.inputFluids(
Fluid.of("gtceu:styrene_butadiene_rubber", 1152)
)
Fluid.of('gtceu:concrete', 144*4))
.itemOutputs('expatternprovider:assembler_matrix_wall')
.duration(800)
.EUt(30768)
.EUt(GTValues.VA[GTValues.IV])
//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",)
'#forge:frames/polytetrafluoroethylene',
'gtceu:cleanroom_glass',
'6x gtceu:polytetrafluoroethylene_plate',)
.inputFluids(
Fluid.of("gtceu:styrene_butadiene_rubber", 1152)
)
Fluid.of('gtceu:concrete', 144*4))
.itemOutputs("expatternprovider:assembler_matrix_glass")
.duration(800)
.EUt(30768)
.EUt(GTValues.VA[GTValues.IV])
//Matrix Pattern
event.recipes.gtceu.assembly_line("expatternprovider:assembler_matrix_pattern_luv")
event.recipes.gtceu.assembly_line("expatternprovider:assembler_matrix_pattern")
.itemInputs(
'#expatternprovider:extended_pattern_provider',
'4x megacells:accumulation_processor',
'8x 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('tfg:fluix', 144*16),
Fluid.of('gtceu:polybenzimidazole', 1430),)
.itemOutputs('4x expatternprovider:assembler_matrix_pattern')
.duration(800)
.EUt(GTValues.VA[GTValues.ZPM])
.itemOutputs('expatternprovider:assembler_matrix_pattern')
.duration(20*30)
.EUt(GTValues.VA[GTValues.LuV])
.cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.assembly_line("expatternprovider:assembler_matrix_pattern_uv")
event.recipes.gtceu.assembly_line("expatternprovider:assembler_matrix_pattern_moon")
.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',)
'2x #expatternprovider:extended_pattern_provider',
'8x megacells:accumulation_processor',
'4x gtceu:iv_robot_arm',
'2x #forge:dense_plates/tungsten_steel',
'#gtceu:circuits/luv',
'2x #gtceu:circuits/iv',)
.inputFluids(
Fluid.of("gtceu:europium", 16),
Fluid.of('tfg:cryogenized_fluix', 144*8),
Fluid.of('gtceu:polybenzimidazole', 1430),)
.itemOutputs('8x expatternprovider:assembler_matrix_pattern')
.duration(800)
.EUt(GTValues.VA[GTValues.UV])
.cleanroom(CleanroomType.CLEANROOM)
.itemOutputs('2x expatternprovider:assembler_matrix_pattern')
.duration(20*30)
.EUt(GTValues.VA[GTValues.IV])
.dimension('ad_astra:moon')
//Matrix Crafter
event.recipes.gtceu.assembly_line("expatternprovider:assembler_matrix_crafter_luv")
event.recipes.gtceu.assembly_line("expatternprovider:assembler_matrix_crafter")
.itemInputs(
"#expatternprovider:oversize_interface",
'4x megacells:accumulation_processor',
'gtceu:iv_field_generator',
'8x megacells:accumulation_processor',
'4x gtceu:luv_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('tfg:fluix', 144*16),
Fluid.of('gtceu:polybenzimidazole', 1430),)
.itemOutputs('4x expatternprovider:assembler_matrix_crafter')
.duration(800)
.EUt(GTValues.VA[GTValues.ZPM])
.itemOutputs('expatternprovider:assembler_matrix_crafter')
.duration(20*30)
.EUt(GTValues.VA[GTValues.LuV])
.cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.assembly_line("expatternprovider:assembler_matrix_crafter_uv")
event.recipes.gtceu.assembly_line("expatternprovider:assembler_matrix_crafter_moon")
.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',)
"2x #expatternprovider:oversize_interface",
'8x megacells:accumulation_processor',
'4x gtceu:iv_field_generator',
'2x #forge:dense_plates/tungsten_steel',
'#gtceu:circuits/luv',
'2x #gtceu:circuits/iv',)
.inputFluids(
Fluid.of("gtceu:europium", 16),
Fluid.of('tfg:cryogenized_fluix', 144*8),
Fluid.of('gtceu:polybenzimidazole', 1430),)
.itemOutputs('8x expatternprovider:assembler_matrix_crafter')
.duration(800)
.EUt(GTValues.VA[GTValues.UV])
.cleanroom(CleanroomType.CLEANROOM)
.itemOutputs('2x expatternprovider:assembler_matrix_crafter')
.duration(20*30)
.EUt(GTValues.VA[GTValues.IV])
.dimension('ad_astra:moon')
//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",
'8x megacells:accumulation_processor',
'4x gtceu:luv_conveyor_module',
'2x #forge:dense_plates/rhodium_plated_palladium',
'#gtceu:circuits/luv',
'2x #gtceu:circuits/iv',)
'#gtceu:circuits/zpm',
'2x #gtceu:circuits/luv',)
.inputFluids(
Fluid.of("gtceu:europium", 16),
Fluid.of('tfg:fluix', 144*16),
Fluid.of('gtceu:polybenzimidazole', 1430),)
.itemOutputs("expatternprovider:assembler_matrix_speed")
.duration(800)
.itemOutputs('expatternprovider:assembler_matrix_speed')
.duration(20*30)
.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',)
"2x megacells:mega_crafting_accelerator",
'8x megacells:accumulation_processor',
'4x gtceu:iv_conveyor_module',
'2x #forge:dense_plates/tungsten_steel',
'#gtceu:circuits/luv',
'2x #gtceu:circuits/iv',)
.inputFluids(
Fluid.of("gtceu:europium", 16),
Fluid.of('tfg:cryogenized_fluix', 144*8),
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)
.itemOutputs('2x expatternprovider:assembler_matrix_speed')
.duration(20*30)
.EUt(GTValues.VA[GTValues.IV])
.dimension('ad_astra:moon')
//#endregion

View file

@ -61,7 +61,7 @@ const registerFirmaCivRecipes = (event) => {
//#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))
.inputFluids(JsonIO.of({ amount: 1000, value: { tag: "tfg:clean_water" }}))
.circuit(12)
.itemOutputs('firmaciv:barometer')
.duration(75)

View file

@ -37,6 +37,10 @@ const registerFirmaLifeRecipes = (event) => {
event.remove({ id: 'firmalife:heating/metal/stainless_steel_block_slab' })
event.remove({ id: 'firmalife:heating/metal/stainless_steel_block_stairs' })
event.remove({ id: /^firmalife:crafting\/.*_dough/ })
event.remove({ id: 'firmalife:pot/chocolate' })
//#endregion
// Декрафт Jag Lid
@ -95,16 +99,8 @@ const registerFirmaLifeRecipes = (event) => {
.duration(50)
.EUt(2)
// Pineapple Fiber
event.recipes.gtceu.assembler(`tfg:firmalife/pineapple_fiber`)
.itemInputs('firmalife:food/pineapple')
.circuit(1)
.itemOutputs('firmalife:pineapple_fiber')
.duration(50)
.EUt(7)
// Pineapple Yarn
event.recipes.gtceu.assembler(`tfg:firmalife/pineapple_yarn`)
event.recipes.gtceu.wiremill(`tfg:firmalife/pineapple_yarn`)
.itemInputs('firmalife:pineapple_fiber')
.circuit(1)
.itemOutputs('8x firmalife:pineapple_yarn')
@ -120,50 +116,52 @@ const registerFirmaLifeRecipes = (event) => {
.EUt(7)
//#region Wine Working
event.recipes.gtceu.alloy_smelter('firmalife:empty_olivine_wine_bottle')
.itemInputs('tfc:olivine_glass_batch')
.notConsumable('gtceu:cylinder_casting_mold')
.itemOutputs('firmalife:empty_olivine_wine_bottle')
.duration(100)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.alloy_smelter('firmalife:empty_volcanic_wine_bottle')
.itemInputs('tfc:volcanic_glass_batch')
.notConsumable('gtceu:cylinder_casting_mold')
.itemOutputs('firmalife:empty_volcanic_wine_bottle')
.duration(100)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.alloy_smelter('firmalife:empty_hematitic_wine_bottle')
.itemInputs('tfc:hematitic_glass_batch')
.notConsumable('gtceu:cylinder_casting_mold')
.itemOutputs('firmalife:empty_hematitic_wine_bottle')
.duration(100)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.alloy_smelter('firmalife:wine_glass')
.itemInputs('tfc:silica_glass_batch')
.notConsumable('gtceu:cylinder_casting_mold')
.itemOutputs('2x firmalife:wine_glass')
.duration(100)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.assembler('firmalife:cork')
.itemInputs('firmalife:treated_lumber')
.inputFluids(Fluid.of('tfc:limewater',1000))
.inputFluids(Fluid.of('tfc:limewater', 1000))
.itemOutputs('8x firmalife:cork')
.duration(300)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.assembler('firmalife:bottle_label')
.itemInputs('#forge:wax','minecraft:paper')
.itemInputs('#forge:wax', 'minecraft:paper')
.itemOutputs('16x firmalife:bottle_label')
.duration(30)
.EUt(GTValues.VA[GTValues.ULV])
event.replaceInput({ id: 'firmalife:crafting/bottle_label' }, 'firmalife:beeswax', '#forge:wax')
//#endregion
// TODO: Не работает потому что грегтех
// Доставание меда из сот
/*
@ -182,13 +180,13 @@ const registerFirmaLifeRecipes = (event) => {
'firmalife:treated_wood_greenhouse_wall',
'#forge:tiny_fluid_pipes/copper'
])
.id('firmalife:crafting/greenhouse/treated_wood_greenhouse_port')
.id('firmalife:crafting/greenhouse/treated_wood_greenhouse_port')
//#endregion Treated Wood
//#region Медная / Copper
event.recipes.gtceu.bender('tfg:firmalife/sprinkler')
event.recipes.gtceu.bender('tfg:firmalife/sprinkler_electric_only')
.itemInputs('#forge:plates/copper')
.itemOutputs('firmalife:sprinkler')
.circuit(4)
@ -267,7 +265,7 @@ const registerFirmaLifeRecipes = (event) => {
'firmalife:copper_greenhouse_wall',
'#forge:tiny_fluid_pipes/copper'
])
.id('firmalife:crafting/greenhouse/copper_greenhouse_port')
.id('firmalife:crafting/greenhouse/copper_greenhouse_port')
//#endregion
@ -345,7 +343,7 @@ const registerFirmaLifeRecipes = (event) => {
'firmalife:iron_greenhouse_wall',
'#forge:tiny_fluid_pipes/copper'
])
.id('firmalife:crafting/greenhouse/iron_greenhouse_port')
.id('firmalife:crafting/greenhouse/iron_greenhouse_port')
//#endregion
@ -419,10 +417,32 @@ const registerFirmaLifeRecipes = (event) => {
'firmalife:stainless_steel_greenhouse_wall',
'#forge:tiny_fluid_pipes/copper'
])
.id('firmalife:crafting/greenhouse/stainless_steel_greenhouse_port')
.id('firmalife:crafting/greenhouse/stainless_steel_greenhouse_port')
//#endregion
event.shaped('firmalife:sweeper', [
'ABD',
'CB '
], {
A: '#forge:saw_heads/steel',
B: '#forge:rods/steel',
C: 'vintageimprovements:redstone_module',
D: '#forge:tools/wrenches'
}).id('firmalife:crafting/sweeper')
event.shaped('firmalife:picker', [
'ABD',
'CC ',
'EE '
], {
A: '#forge:plates/steel',
B: 'vintageimprovements:redstone_module',
C: '#forge:rods/steel',
D: '#forge:tools/wrenches',
E: '#forge:hoe_heads/steel'
}).id('firmalife:crafting/picker')
//#endregion
//#region Укрепленное стекло
@ -444,286 +464,16 @@ const registerFirmaLifeRecipes = (event) => {
// Семена фруктов
global.FIRMALIFE_GREENHOUSE_FRUIT_RECIPE_COMPONENTS.forEach(element => {
generateGreenHouseRecipe(event, element.input, element.fluid_amount, element.output, element.name, true)
generateGreenHouseRecipe(event, element.input, element.fluid_amount, element.output, element.name, 'minecraft:overworld', 1)
})
// Семена ягод
global.FIRMALIFE_GREENHOUSE_BERRY_RECIPE_COMPONENTS.forEach(element => {
generateGreenHouseRecipe(event, element.input, element.fluid_amount, element.output, element.name, false)
generateGreenHouseRecipe(event, element.input, element.fluid_amount, element.output, element.name, null, 1)
})
//#endregion
//#region Рецепты муки
global.FIRMALIFE_QUERN_FLOUR_RECIPE_COMPONENTS.forEach(element => {
event.recipes.gtceu.macerator(`tfg:${element.name}`)
.itemInputs(element.input)
.itemOutputs(element.output)
.duration(200)
.EUt(2)
})
//#endregion
//#region Рецепты теста
global.FIRMALIFE_MIXER_FLATBREAD_DOUGH_RECIPE_COMPONENTS.forEach(element => {
event.recipes.gtceu.mixer(element.name)
.itemInputs(element.input, '#tfc:sweetener')
.inputFluids(Fluid.of('firmalife:yeast_starter', 100))
.itemOutputs(element.output)
.duration(300)
.EUt(16)
.circuit(2)
})
//#endregion
//#region Рецепты плоского хлеба
global.FIRMALIFE_FURNACE_FLATBREAD_RECIPE_COMPONENTS.forEach(element => {
event.smelting(element.output, element.input)
.id(`tfg:smelting/${element.name}`)
})
//#endregion
//#region Смешивание в миске
// Тесто для пиццы
event.recipes.gtceu.mixer('firmalife:food/pizza_dough_olive_oil')
.itemInputs('firmalife:spice/basil_leaves', '#tfc:foods/dough', 'tfc:powder/salt')
.inputFluids(Fluid.of('tfc:olive_oil', 1000))
.itemOutputs('4x firmalife:food/pizza_dough')
.duration(300)
.EUt(16)
event.recipes.gtceu.mixer('firmalife:food/pizza_dough_soybean_oil')
.itemInputs('firmalife:spice/basil_leaves', '#tfc:foods/dough', 'tfc:powder/salt')
.inputFluids(Fluid.of('firmalife:soybean_oil', 1000))
.itemOutputs('4x firmalife:food/pizza_dough')
.duration(300)
.EUt(16)
// Vanilla Ice Cream
event.recipes.gtceu.mixer('firmalife:food/vanilla_ice_cream')
.itemInputs('firmalife:ice_shavings', '#tfc:sweetener', 'firmalife:spice/vanilla')
.inputFluids(Fluid.of('firmalife:cream', 1000))
.itemOutputs('2x firmalife:food/vanilla_ice_cream')
.duration(300)
.EUt(16)
// Pumpkin Pie Dough
event.recipes.gtceu.mixer('firmalife:food/pumpkin_pie_dough')
.itemInputs('#tfc:sweetener', '#forge:eggs', '2x tfc:food/pumpkin_chunks', '#tfc:foods/flour')
.inputFluids(Fluid.of('minecraft:water', 1000))
.itemOutputs('firmalife:food/pumpkin_pie_dough')
.duration(300)
.EUt(16)
.circuit(2)
// Butter
event.recipes.gtceu.mixer('firmalife:food/butter')
.itemInputs('tfc:powder/salt')
.inputFluids(Fluid.of('firmalife:cream', 1000))
.itemOutputs('firmalife:food/butter')
.duration(300)
.EUt(16)
// Pie Dough
event.recipes.gtceu.mixer('firmalife:food/pie_dough')
.itemInputs('#tfc:sweetener', 'firmalife:food/butter', '#tfc:foods/flour')
.inputFluids(Fluid.of('minecraft:water', 1000))
.itemOutputs('firmalife:food/pie_dough')
.duration(300)
.EUt(16)
.circuit(2)
// Cookie Dough
event.recipes.gtceu.mixer('firmalife:food/cookie_dough')
.itemInputs('#tfc:sweetener', 'firmalife:food/butter', '#tfc:foods/flour', '#forge:eggs', 'firmalife:spice/vanilla')
.itemOutputs('4x firmalife:food/cookie_dough')
.duration(300)
.EUt(16)
// Hardtack Dough
event.recipes.gtceu.mixer('firmalife:food/hardtack_dough')
.itemInputs('tfc:powder/salt', '#tfc:foods/flour')
.inputFluids(Fluid.of('minecraft:water', 1000))
.itemOutputs('4x firmalife:food/hardtack_dough')
.duration(300)
.EUt(16)
.circuit(2)
// Yeast starter
event.recipes.gtceu.mixer('firmalife:yeast_starter')
.inputFluids(Fluid.of('firmalife:yeast_starter', 100))
.itemInputs('#tfc:foods/flour')
.outputFluids(Fluid.of('firmalife:yeast_starter', 600))
.duration(1200)
.EUt(8)
.circuit(1)
// Cocoa Powder
event.recipes.gtceu.macerator('firmalife:food/cocoa_powder')
.itemInputs('gtceu:cocoa_dust')
.itemOutputs('4x firmalife:food/cocoa_powder')
.duration(100)
.EUt(2)
event.recipes.tfc.quern('4x firmalife:food/cocoa_powder', 'gtceu:cocoa_dust')
.id(`tfg:quern/cocoa_powder`)
event.recipes.tfc.quern('gtceu:cocoa_dust', 'firmalife:food/roasted_cocoa_beans')
.id('tfg:quern/cocoa_dust');
// Chocolate Ice Cream
event.recipes.gtceu.mixer('firmalife:food/chocolate_ice_cream')
.itemInputs('firmalife:food/vanilla_ice_cream')
.inputFluids(Fluid.of('firmalife:chocolate', 1000))
.itemOutputs('firmalife:food/chocolate_ice_cream')
.duration(300)
.EUt(16)
// White Chocolate Blend
event.recipes.gtceu.mixer('firmalife:food/white_chocolate_blend/milk')
.itemInputs('2x firmalife:food/cocoa_butter', '#tfc:sweetener')
.inputFluids(Fluid.of('minecraft:milk', 1000))
.itemOutputs('2x firmalife:food/white_chocolate_blend')
.duration(300)
.EUt(16)
event.recipes.gtceu.mixer('firmalife:food/white_chocolate_blend/yak_milk')
.itemInputs('2x firmalife:food/cocoa_butter', '#tfc:sweetener')
.inputFluids(Fluid.of('firmalife:yak_milk', 1000))
.itemOutputs('2x firmalife:food/white_chocolate_blend')
.duration(300)
.EUt(16)
event.recipes.gtceu.mixer('firmalife:food/white_chocolate_blend/goat_milk')
.itemInputs('2x firmalife:food/cocoa_butter', '#tfc:sweetener')
.inputFluids(Fluid.of('firmalife:goat_milk', 1000))
.itemOutputs('2x firmalife:food/white_chocolate_blend')
.duration(300)
.EUt(16)
event.recipes.gtceu.mixer('firmalife:food/white_chocolate_blend/coconut_milk')
.itemInputs('2x firmalife:food/cocoa_butter', '#tfc:sweetener')
.inputFluids(Fluid.of('firmalife:coconut_milk', 1000))
.itemOutputs('2x firmalife:food/white_chocolate_blend')
.duration(300)
.EUt(16)
event.smelting('firmalife:food/white_chocolate', 'firmalife:food/white_chocolate_blend')
// Dark Chocolate Blend
event.recipes.gtceu.mixer('firmalife:food/dark_chocolate_blend/milk')
.itemInputs('2x firmalife:food/cocoa_powder', '#tfc:sweetener')
.inputFluids(Fluid.of('minecraft:milk', 1000))
.itemOutputs('2x firmalife:food/dark_chocolate_blend')
.duration(300)
.EUt(16)
event.recipes.gtceu.mixer('firmalife:food/dark_chocolate_blend/yak_milk')
.itemInputs('2x firmalife:food/cocoa_powder', '#tfc:sweetener')
.inputFluids(Fluid.of('firmalife:yak_milk', 1000))
.itemOutputs('2x firmalife:food/dark_chocolate_blend')
.duration(300)
.EUt(16)
event.recipes.gtceu.mixer('firmalife:food/dark_chocolate_blend/goat_milk')
.itemInputs('2x firmalife:food/cocoa_powder', '#tfc:sweetener')
.inputFluids(Fluid.of('firmalife:goat_milk', 1000))
.itemOutputs('2x firmalife:food/dark_chocolate_blend')
.duration(300)
.EUt(16)
event.recipes.gtceu.mixer('firmalife:food/dark_chocolate_blend/coconut_milk')
.itemInputs('2x firmalife:food/cocoa_powder', '#tfc:sweetener')
.inputFluids(Fluid.of('firmalife:coconut_milk', 1000))
.itemOutputs('2x firmalife:food/dark_chocolate_blend')
.duration(300)
.EUt(16)
event.smelting('firmalife:food/dark_chocolate', 'firmalife:food/dark_chocolate_blend')
// Milk Chocolate Blend
event.recipes.gtceu.mixer('firmalife:food/milk_chocolate_blend/milk')
.itemInputs('firmalife:food/cocoa_powder', 'firmalife:food/cocoa_butter', '#tfc:sweetener')
.inputFluids(Fluid.of('minecraft:milk', 1000))
.itemOutputs('2x firmalife:food/milk_chocolate_blend')
.duration(300)
.EUt(16)
event.recipes.gtceu.mixer('firmalife:food/milk_chocolate_blend/yak_milk')
.itemInputs('firmalife:food/cocoa_powder', 'firmalife:food/cocoa_butter', '#tfc:sweetener')
.inputFluids(Fluid.of('firmalife:yak_milk', 1000))
.itemOutputs('2x firmalife:food/milk_chocolate_blend')
.duration(300)
.EUt(16)
event.recipes.gtceu.mixer('firmalife:food/milk_chocolate_blend/goat_milk')
.itemInputs('firmalife:food/cocoa_powder', 'firmalife:food/cocoa_butter', '#tfc:sweetener')
.inputFluids(Fluid.of('firmalife:goat_milk', 1000))
.itemOutputs('2x firmalife:food/milk_chocolate_blend')
.duration(300)
.EUt(16)
event.recipes.gtceu.mixer('firmalife:food/milk_chocolate_blend/coconut_milk')
.itemInputs('firmalife:food/cocoa_powder', 'firmalife:food/cocoa_butter', '#tfc:sweetener')
.inputFluids(Fluid.of('firmalife:coconut_milk', 1000))
.itemOutputs('2x firmalife:food/milk_chocolate_blend')
.duration(300)
.EUt(16)
event.smelting('firmalife:food/milk_chocolate', 'firmalife:food/milk_chocolate_blend')
// Strawberry Ice Cream
event.recipes.gtceu.mixer('firmalife:food/strawberry_ice_cream')
.itemInputs('firmalife:food/vanilla_ice_cream', '2x tfc:food/strawberry')
.itemOutputs('firmalife:food/strawberry_ice_cream')
.duration(300)
.EUt(16)
// Hardtack Dough
event.recipes.gtceu.mixer('firmalife:food/chocolate_chip_cookie_dough')
.itemInputs('4x firmalife:food/cookie_dough', '#firmalife:chocolate_blends')
.itemOutputs('4x firmalife:food/chocolate_chip_cookie_dough')
.duration(300)
.EUt(16)
//#endregion
//#region Обжарка некоторой еды
// Cooked Pizza
event.smelting('firmalife:food/cooked_pizza', 'firmalife:food/raw_pizza')
// Taco Shell
event.smelting('firmalife:food/taco_shell', 'firmalife:food/corn_tortilla')
// Sugar Cookie
event.smelting('firmalife:food/sugar_cookie', 'firmalife:food/cookie_dough')
// Chocolate Chip Cookie
event.smelting('firmalife:food/chocolate_chip_cookie', 'firmalife:food/chocolate_chip_cookie_dough')
// Hardtack
event.smelting('firmalife:food/hardtack', 'firmalife:food/hardtack_dough')
// Cooked Pie
event.smelting('firmalife:food/cooked_pie', 'firmalife:food/filled_pie')
// Roasted Cocoa Beans
event.smelting('firmalife:food/roasted_cocoa_beans', 'firmalife:food/cocoa_beans')
// Pumpkin Pie
event.smelting('minecraft:pumpkin_pie', 'firmalife:food/raw_pumpkin_pie')
//#endregion
//#region Sticky Resin by Vat
event.recipes.firmalife.vat()
@ -740,14 +490,14 @@ const registerFirmaLifeRecipes = (event) => {
//#region Replace existing dyes
global.MINECRAFT_DYE_NAMES.forEach(dye => {
global.MINECRAFT_DYE_NAMES.forEach(dyeName => {
event.recipes.firmalife.vat()
.inputs(`#forge:dyes/${dye}`, Fluid.of('tfc:salt_water', 250))
.outputFluid(Fluid.of(`tfc:${dye}_dye`, 144))
.length(2000)
.temperature(600)
.id(`firmalife:vat/${dye}_dye`)
.inputs(`#forge:dyes/${dyeName}`, Fluid.of('tfc:vinegar', 250))
.outputFluid(Fluid.of(`tfc:${dyeName}_dye`, 144))
.length(100)
.temperature(200)
.id(`firmalife:vat/${dyeName}_dye`)
})
//#endregion
@ -759,28 +509,6 @@ const registerFirmaLifeRecipes = (event) => {
// #endregion
// #region Smashed food
event.recipes.gtceu.forge_hammer('firmalife:soybean_paste')
.itemInputs('firmalife:food/dehydrated_soybeans')
.itemOutputs('firmalife:food/soybean_paste')
.duration(20)
.EUt(7)
event.recipes.gtceu.forge_hammer('firmalife:red_grapes')
.itemInputs('firmalife:food/red_grapes')
.itemOutputs('firmalife:food/smashed_red_grapes')
.duration(20)
.EUt(7)
event.recipes.gtceu.forge_hammer('firmalife:white_grapes')
.itemInputs('firmalife:food/white_grapes')
.itemOutputs('firmalife:food/smashed_white_grapes')
.duration(20)
.EUt(7)
// #endregion
// #region Drying mat alternatives
event.shaped('firmalife:drying_mat', ['AAA'], { A: 'tfc:plant/leafy_kelp' }).id('tfg:shaped/drying_mat_leafy_kelp')
@ -790,18 +518,155 @@ const registerFirmaLifeRecipes = (event) => {
event.recipes.gtceu.mixer('sugar_water')
.itemInputs('#tfc:sweetener')
.inputFluids(Fluid.of('minecraft:water', 1000))
.inputFluids(JsonIO.of({ amount: 1000, value: { tag: "tfg:clean_water" } }))
.outputFluids(Fluid.of('firmalife:sugar_water', 500))
.circuit(5)
.EUt(GTValues.VA[GTValues.ULV])
.duration(200)
event.smelting('firmalife:food/dehydrated_soybeans', 'tfc:food/soybean')
event.recipes.firmalife.mixing_bowl()
.itemIngredients(['#tfg:wood_dusts', 'tfc:glue'])
.outputItem('tfg:chipboard_composite')
.id('tfg:mixing_bowl/chipboard_composite_glue')
event.recipes.gtceu.fermenter('soybean_oil')
.itemInputs('firmalife:food/soybean_paste')
.inputFluids(Fluid.of('minecraft:water', 100))
.outputFluids(Fluid.of('firmalife:soybean_oil', 250))
.EUt(GTValues.VA[GTValues.ULV])
.duration(600)
event.recipes.firmalife.mixing_bowl()
.itemIngredients(['#tfg:wood_dusts', 'gtceu:sticky_resin'])
.outputItem('tfg:chipboard_composite')
.id('tfg:mixing_bowl/chipboard_composite_resin')
event.recipes.firmalife.mixing_bowl()
.itemIngredients(['#tfg:wood_dusts', '#forge:wax'])
.outputItem('tfg:chipboard_composite')
.id('tfg:mixing_bowl/chipboard_composite_wax')
// Dough
global.TFC_GRAINS.forEach(grain => {
event.recipes.firmalife.mixing_bowl()
.ingredients([
TFC.ingredient.notRotten(`tfc:food/${grain}_flour`),
`#tfc:sweetener`],
Fluid.of('firmalife:yeast_starter', 200))
.outputItem(`4x firmalife:food/${grain}_dough`)
.id(`tfg:mixing_bowl/${grain}_dough`)
event.recipes.firmalife.mixing_bowl()
.ingredients([
TFC.ingredient.notRotten(`tfc:food/${grain}_flour`),
TFC.ingredient.notRotten(`tfc:food/${grain}_flour`),
'#tfc:sweetener',
'#tfc:sweetener'],
Fluid.of('firmalife:yeast_starter', 400))
.outputItem(`8x firmalife:food/${grain}_dough`)
.id(`tfg:mixing_bowl/${grain}_dough_2`)
event.recipes.firmalife.mixing_bowl()
.ingredients([
TFC.ingredient.notRotten(`tfc:food/${grain}_flour`)],
Fluid.of('minecraft:water', 100))
.outputItem(`2x tfc:food/${grain}_dough`)
.id(`tfg:mixing_bowl/${grain}_flatbread_dough`)
event.recipes.firmalife.mixing_bowl()
.ingredients([
TFC.ingredient.notRotten(`tfc:food/${grain}_flour`),
TFC.ingredient.notRotten(`tfc:food/${grain}_flour`)],
Fluid.of('minecraft:water', 200))
.outputItem(`4x tfc:food/${grain}_dough`)
.id(`tfg:mixing_bowl/${grain}_flatbread_dough_2`)
event.recipes.firmalife.mixing_bowl()
.ingredients([
TFC.ingredient.notRotten(`tfc:food/${grain}_flour`),
TFC.ingredient.notRotten(`tfc:food/${grain}_flour`),
TFC.ingredient.notRotten(`tfc:food/${grain}_flour`)],
Fluid.of('minecraft:water', 300))
.outputItem(`6x tfc:food/${grain}_dough`)
.id(`tfg:mixing_bowl/${grain}_flatbread_dough_3`)
event.recipes.firmalife.mixing_bowl()
.ingredients([
TFC.ingredient.notRotten(`tfc:food/${grain}_flour`),
TFC.ingredient.notRotten(`tfc:food/${grain}_flour`),
TFC.ingredient.notRotten(`tfc:food/${grain}_flour`),
TFC.ingredient.notRotten(`tfc:food/${grain}_flour`)],
Fluid.of('minecraft:water', 400))
.outputItem(`6x tfc:food/${grain}_dough`)
.id(`tfg:mixing_bowl/${grain}_flatbread_dough_4`)
})
event.recipes.firmalife.mixing_bowl()
.itemIngredients([
TFC.ingredient.notRotten('firmalife:food/vanilla_ice_cream'),
TFC.ingredient.notRotten('firmalife:food/chocolate_chip_cookie_dough')])
.outputItem('2x firmalife:food/cookie_dough_ice_cream')
.id('firmalife:mixing_bowl/cookie_dough_ice_cream')
event.recipes.firmalife.mixing_bowl()
.ingredients([
TFC.ingredient.notRotten('#forge:eggs'),
'#tfg:sugars',
'#tfg:sugars',
TFC.ingredient.notRotten('#tfc:foods/flour'),
TFC.ingredient.notRotten('#tfc:foods/flour')],
TFC.fluidStackIngredient('#tfc:milks', 1000))
.outputItem('createaddition:cake_base')
.id('tfg:mixing_bowl/cake_base')
event.recipes.firmalife.oven('createaddition:cake_base', 400, 60 * 20, 'createaddition:cake_base_baked')
event.recipes.firmalife.mixing_bowl()
.ingredients([
TFC.ingredient.notRotten('createaddition:cake_base_baked'),
TFC.ingredient.notRotten('tfc:food/strawberry'),
TFC.ingredient.notRotten('tfc:food/strawberry'),
TFC.ingredient.notRotten('tfc:food/strawberry'),
'firmalife:spice/vanilla'],
Fluid.of('tfcchannelcasting:white_chocolate', 400))
.outputItem('tfc:cake')
.id('tfg:mixing_bowl/cake')
event.recipes.firmalife.mixing_bowl()
.ingredients([
TFC.ingredient.notRotten('createaddition:cake_base_baked'),
TFC.ingredient.notRotten('tfc:food/cherry'),
TFC.ingredient.notRotten('tfc:food/cherry'),
TFC.ingredient.notRotten('tfc:food/cherry'),
'firmalife:food/cocoa_powder'],
Fluid.of('tfcchannelcasting:milk_chocolate', 400))
.outputItem('createaddition:chocolate_cake')
.id('tfg:mixing_bowl/milk_chocolate_cake')
event.recipes.firmalife.mixing_bowl()
.ingredients([
TFC.ingredient.notRotten('createaddition:cake_base_baked'),
TFC.ingredient.notRotten('tfc:food/cherry'),
TFC.ingredient.notRotten('tfc:food/cherry'),
TFC.ingredient.notRotten('tfc:food/cherry'),
'firmalife:food/cocoa_powder'],
Fluid.of('tfcchannelcasting:dark_chocolate', 400))
.outputItem('createaddition:chocolate_cake')
.id('tfg:mixing_bowl/dark_chocolate_cake')
event.recipes.firmalife.mixing_bowl()
.ingredients([
TFC.ingredient.notRotten('createaddition:cake_base_baked'),
'firmalife:raw_honey',
'firmalife:raw_honey',
'firmalife:raw_honey',
'firmalife:raw_honey'],
Fluid.of('afc:maple_syrup', 1000))
.outputItem('createaddition:honey_cake')
.id('tfg:mixing_bowl/maple_honey_cake')
event.recipes.firmalife.mixing_bowl()
.ingredients([
TFC.ingredient.notRotten('createaddition:cake_base_baked'),
'firmalife:raw_honey',
'firmalife:raw_honey',
'firmalife:raw_honey',
'firmalife:raw_honey'],
Fluid.of('afc:birch_syrup', 1000))
.outputItem('createaddition:honey_cake')
.id('tfg:mixing_bowl/birch_honey_cake')
}

View file

@ -44,6 +44,12 @@ const registerFirmaLifeFluidTags = (event) => {
// Добавляем тег для скрытия в EMI
event.add('c:hidden_from_recipe_viewers', 'firmalife:metal/chromium')
event.add('c:hidden_from_recipe_viewers', 'firmalife:chocolate')
event.add('firmalife:mixable', 'tfc:spring_water')
event.add('firmalife:mixable', 'tfcchannelcasting:white_chocolate')
event.add('firmalife:mixable', 'tfcchannelcasting:milk_chocolate')
event.add('firmalife:mixable', 'tfcchannelcasting:dark_chocolate')
event.add('firmalife:mixable', 'afc:maple_syrup')
event.add('firmalife:mixable', 'afc:birch_syrup')
}

View file

@ -1,8 +1,8 @@
// priority: 0
function registerGreateRecipes(event) {
removeGreateRecipes(event);
removeGreateRecipes(event)
registerGreateRecyclingRecipes(event);
event.replaceInput({ input: 'create:cogwheel'}, 'create:cogwheel', '#tfg:small_cogwheels')
@ -252,7 +252,7 @@ function registerGreateRecipes(event) {
], {
A: '#forge:plates/tin_alloy',
B: '#forge:storage_blocks/wrought_iron',
C: 'greate:steel_shaft',
C: 'gtceu:lv_machine_hull',
}).id('greate:mechanical_crafting/steel_crushing_wheel')
event.recipes.createMechanicalCrafting('2x greate:aluminium_crushing_wheel', [
@ -264,7 +264,7 @@ function registerGreateRecipes(event) {
], {
A: '#forge:plates/vanadium_steel',
B: '#forge:storage_blocks/steel',
C: 'greate:aluminium_shaft',
C: 'gtceu:mv_machine_hull',
}).id('greate:mechanical_crafting/aluminium_crushing_wheel')
event.recipes.createMechanicalCrafting('2x greate:stainless_steel_crushing_wheel', [
@ -276,7 +276,7 @@ function registerGreateRecipes(event) {
], {
A: '#forge:plates/blue_alloy',
B: '#forge:storage_blocks/aluminium',
C: 'greate:stainless_steel_shaft',
C: 'gtceu:hv_machine_hull',
}).id('greate:mechanical_crafting/stainless_steel_crushing_wheel')
event.recipes.createMechanicalCrafting('2x greate:titanium_crushing_wheel', [
@ -288,7 +288,7 @@ function registerGreateRecipes(event) {
], {
A: '#forge:plates/ultimet',
B: '#forge:storage_blocks/stainless_steel',
C: 'greate:titanium_shaft',
C: 'gtceu:ev_machine_hull',
}).id('greate:mechanical_crafting/titanium_crushing_wheel')
// #endregion
@ -363,7 +363,7 @@ function registerGreateRecipes(event) {
'FE '
], {
A: '#gtceu:circuits/ulv',
B: 'gtceu:cobalt_brass_buzz_saw_blade',
B: 'gtceu:black_steel_buzz_saw_blade',
C: 'greate:steel_cogwheel',
D: 'gtceu:ulv_machine_hull',
E: 'greate:steel_shaft',
@ -371,7 +371,7 @@ function registerGreateRecipes(event) {
}).id('greate:shaped/steel_mechanical_saw')
event.recipes.gtceu.assembler('greate:steel_mechanical_saw')
.itemInputs('gtceu:ulv_machine_hull', 'greate:steel_shaft', '2x #gtceu:circuits/ulv', 'gtceu:cobalt_brass_buzz_saw_blade', '2x greate:steel_cogwheel')
.itemInputs('gtceu:ulv_machine_hull', 'greate:steel_shaft', '2x #gtceu:circuits/ulv', 'gtceu:black_steel_buzz_saw_blade', '2x greate:steel_cogwheel')
.itemOutputs('greate:steel_mechanical_saw')
.duration(200)
.EUt(GTValues.VA[GTValues.ULV])
@ -575,13 +575,20 @@ function registerGreateRecipes(event) {
D: '#forge:rods/long/steel'
}).id('gtceu:shaped/steel_whisk')
event.recipes.gtceu.assembler('greate:steel_whisk')
event.recipes.gtceu.assembler('gtceu:steel_whisk')
.itemInputs('#forge:rings/steel', '4x #forge:rods/long/steel')
.itemOutputs('greate:steel_whisk')
.itemOutputs('gtceu:steel_whisk')
.circuit(2)
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.extruder('gtceu:steel_whisk')
.itemInputs('4x #forge:ingots/steel')
.notConsumable('tfg:whisk_extruder_mold')
.itemOutputs('gtceu:steel_whisk')
.duration(GTMaterials.Steel.getMass() * 3)
.EUt(GTValues.VA[GTValues.MV])
event.shaped('gtceu:aluminium_whisk', [
'ABC',
'D D',
@ -593,13 +600,20 @@ function registerGreateRecipes(event) {
D: '#forge:rods/long/aluminium'
}).id('gtceu:shaped/aluminium_whisk')
event.recipes.gtceu.assembler('greate:aluminium_whisk')
event.recipes.gtceu.assembler('gtceu:aluminium_whisk')
.itemInputs('#forge:rings/aluminium', '4x #forge:rods/long/aluminium')
.itemOutputs('greate:aluminium_whisk')
.itemOutputs('gtceu:aluminium_whisk')
.circuit(2)
.duration(50)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.extruder('gtceu:aluminium_whisk')
.itemInputs('4x #forge:ingots/aluminium')
.notConsumable('tfg:whisk_extruder_mold')
.itemOutputs('gtceu:aluminium_whisk')
.duration(GTMaterials.Aluminium.getMass() * 3)
.EUt(GTValues.VA[GTValues.MV])
event.shaped('gtceu:stainless_steel_whisk', [
'ABC',
'D D',
@ -611,13 +625,20 @@ function registerGreateRecipes(event) {
D: '#forge:rods/long/stainless_steel'
}).id('gtceu:shaped/stainless_steel_whisk')
event.recipes.gtceu.assembler('greate:stainless_steel_whisk')
event.recipes.gtceu.assembler('gtceu:stainless_steel_whisk')
.itemInputs('#forge:rings/stainless_steel', '4x #forge:rods/long/stainless_steel')
.itemOutputs('greate:stainless_steel_whisk')
.itemOutputs('gtceu:stainless_steel_whisk')
.circuit(2)
.duration(50)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.extruder('gtceu:stainless_steel_whisk')
.itemInputs('4x #forge:ingots/stainless_steel')
.notConsumable('tfg:whisk_extruder_mold')
.itemOutputs('gtceu:stainless_steel_whisk')
.duration(GTMaterials.StainlessSteel.getMass() * 3)
.EUt(GTValues.VA[GTValues.MV])
event.shaped('gtceu:titanium_whisk', [
'ABC',
'D D',
@ -629,34 +650,91 @@ function registerGreateRecipes(event) {
D: '#forge:rods/long/titanium'
}).id('gtceu:shaped/titanium_whisk')
event.recipes.gtceu.assembler('greate:titanium_whisk')
event.recipes.gtceu.assembler('gtceu:titanium_whisk')
.itemInputs('#forge:rings/titanium', '4x #forge:rods/long/titanium')
.itemOutputs('greate:titanium_whisk')
.itemOutputs('gtceu:titanium_whisk')
.circuit(2)
.duration(50)
.EUt(GTValues.VA[GTValues.HV])
event.recipes.gtceu.extruder('gtceu:titanium_whisk')
.itemInputs('4x #forge:ingots/titanium')
.notConsumable('tfg:whisk_extruder_mold')
.itemOutputs('gtceu:titanium_whisk')
.duration(GTMaterials.Titanium.getMass() * 3)
.EUt(GTValues.VA[GTValues.HV])
// #endregion
// #region Cables
// TODO: Remove this when we update greate
// #region Presses
event.forEachRecipe([{ type: 'gtceu:wire_coating' }], recipe => {
let r = JSON.parse(recipe.json)
event.shaped('greate:andesite_alloy_mechanical_press', [
'AEB',
'DF ',
' C '
], {
A: '#tfg:any_bronze_frame',
B: 'greate:andesite_alloy_cogwheel',
C: '#tfg:any_iron_plate',
D: '#forge:tools/hammers',
E: '#minecraft:planks',
F: 'greate:andesite_alloy_shaft'
}).id('greate:shaped/andesite_alloy_mechanical_press')
let newRecipe = event.recipes.gtceu.assembler(recipe.getId())
event.shaped('greate:steel_mechanical_press', [
' AD',
'EBF',
' C '
], {
A: 'create:andesite_casing',
B: 'greate:steel_shaft',
C: '#forge:double_plates/steel',
D: 'greate:steel_cogwheel',
E: '#forge:tools/hammers',
F: '#forge:tools/wrenches'
}).id('greate:shaped/steel_mechanical_press')
let itemIns = [];
r.inputs.item.forEach(i => {
itemIns.push(`${i.content.count}x #${i.content.ingredient.tag}`);
})
event.shaped('greate:aluminium_mechanical_press', [
'GAD',
'EBF',
' C '
], {
A: 'gtceu:mv_machine_hull',
B: 'greate:aluminium_shaft',
C: '#forge:double_plates/vanadium_steel',
D: 'greate:aluminium_cogwheel',
E: '#forge:tools/hammers',
F: '#forge:tools/wrenches',
G: '#gtceu:circuits/mv'
}).id('greate:shaped/aluminium_mechanical_press')
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);
})
event.shaped('greate:stainless_steel_mechanical_press', [
'GAD',
'EBF',
' C '
], {
A: 'gtceu:hv_machine_hull',
B: 'greate:stainless_steel_shaft',
C: '#forge:double_plates/blue_alloy',
D: 'greate:stainless_steel_cogwheel',
E: '#forge:tools/hammers',
F: '#forge:tools/wrenches',
G: '#gtceu:circuits/hv'
}).id('greate:shaped/stainless_steel_mechanical_press')
event.shaped('greate:titanium_mechanical_press', [
'GAD',
'EBF',
' C '
], {
A: 'gtceu:ev_machine_hull',
B: 'greate:titanium_shaft',
C: '#forge:double_plates/ultimet',
D: 'greate:titanium_cogwheel',
E: '#forge:tools/hammers',
F: '#forge:tools/wrenches',
G: '#gtceu:circuits/ev'
}).id('greate:shaped/titanium_mechanical_press')
// #endregion
}

View file

@ -105,8 +105,7 @@ function registerGreateRecyclingRecipes(event) {
.itemOutputs(
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Steel, 10),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Stone, 2),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Diamond, 2),
ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.TreatedWood, 2))
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Diamond, 2))
.duration(GTMaterials.Stone.getMass() * 4)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
@ -196,8 +195,8 @@ function registerGreateRecyclingRecipes(event) {
.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)
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 4))
.duration(GTMaterials.TinAlloy.getMass() * 34)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
@ -206,8 +205,8 @@ function registerGreateRecyclingRecipes(event) {
.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)
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 4))
.duration(GTMaterials.TinAlloy.getMass() * 34)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
@ -216,8 +215,8 @@ function registerGreateRecyclingRecipes(event) {
.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)
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 4))
.duration(GTMaterials.VanadiumSteel.getMass() * 34)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
@ -226,8 +225,8 @@ function registerGreateRecyclingRecipes(event) {
.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)
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 4))
.duration(GTMaterials.VanadiumSteel.getMass() * 34)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
@ -236,8 +235,8 @@ function registerGreateRecyclingRecipes(event) {
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 18),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.BlueAlloy, 8),
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.StainlessSteel, 1))
.duration(GTMaterials.BlueAlloy.getMass() * 26)
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 4))
.duration(GTMaterials.BlueAlloy.getMass() * 34)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
@ -246,8 +245,8 @@ function registerGreateRecyclingRecipes(event) {
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 18),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.BlueAlloy, 8),
ChemicalHelper.get(TagPrefix.nugget, GTMaterials.StainlessSteel, 1))
.duration(GTMaterials.BlueAlloy.getMass() * 26)
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 4))
.duration(GTMaterials.BlueAlloy.getMass() * 34)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
@ -256,8 +255,8 @@ function registerGreateRecyclingRecipes(event) {
.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)
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Titanium, 4))
.duration(GTMaterials.Ultimet.getMass() * 34)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
@ -266,8 +265,8 @@ function registerGreateRecyclingRecipes(event) {
.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)
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Titanium, 4))
.duration(GTMaterials.Ultimet.getMass() * 34)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
@ -359,7 +358,7 @@ function registerGreateRecyclingRecipes(event) {
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.WroughtIron, 5),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Wood, 1))
.duration(GTMaterials.WroughtIron.getMass() * 7)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
@ -368,7 +367,7 @@ function registerGreateRecyclingRecipes(event) {
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.ingot, GTMaterials.WroughtIron, 5),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Ash, 1))
.duration(GTMaterials.WroughtIron.getMass() * 7)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
@ -378,7 +377,7 @@ function registerGreateRecyclingRecipes(event) {
.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.BlackSteel, 2),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Copper, 4))
.duration(GTMaterials.CobaltBrass.getMass() * 16)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
@ -388,7 +387,7 @@ function registerGreateRecyclingRecipes(event) {
.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.BlackSteel, 2),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.AnnealedCopper, 4))
.duration(GTMaterials.CobaltBrass.getMass() * 16)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
@ -637,4 +636,80 @@ function registerGreateRecyclingRecipes(event) {
.EUt(GTValues.VA[GTValues.LV])
// #endregion
// #region Mechanical press
event.recipes.gtceu.macerator('greate:steel_mechanical_press')
.itemInputs('greate:steel_mechanical_press')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.WroughtIron, 2),
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Steel, 20))
.duration(GTMaterials.WroughtIron.getMass() * 4)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:steel_mechanical_press')
.itemInputs('greate:steel_mechanical_press')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.WroughtIron, 2),
ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Steel, 20))
.duration(GTMaterials.WroughtIron.getMass() * 4)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('greate:aluminium_mechanical_press')
.itemInputs('greate:aluminium_mechanical_press')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 9),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.VanadiumSteel, 2))
.duration(GTMaterials.Aluminium.getMass() * 11)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:aluminium_mechanical_press')
.itemInputs('greate:aluminium_mechanical_press')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 9),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.VanadiumSteel, 2))
.duration(GTMaterials.Aluminium.getMass() * 11)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('greate:stainless_steel_mechanical_press')
.itemInputs('greate:stainless_steel_mechanical_press')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 9),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.BlueAlloy, 2))
.duration(GTMaterials.StainlessSteel.getMass() * 11)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:stainless_steel_mechanical_press')
.itemInputs('greate:stainless_steel_mechanical_press')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 9),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.BlueAlloy, 2))
.duration(GTMaterials.StainlessSteel.getMass() * 11)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('greate:titanium_mechanical_press')
.itemInputs('greate:titanium_mechanical_press')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Titanium, 9),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Ultimet, 2))
.duration(GTMaterials.Titanium.getMass() * 11)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:titanium_mechanical_press')
.itemInputs('greate:titanium_mechanical_press')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Titanium, 9),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Ultimet, 2))
.duration(GTMaterials.Titanium.getMass() * 11)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// #endregion
}

View file

@ -26,7 +26,15 @@ function removeGreateRecipes(event) {
event.remove({ id: 'greate:shaped/stainless_steel_mechanical_saw' })
event.remove({ id: 'greate:shaped/titanium_mechanical_saw' })
event.remove({ id: 'greate:splashing/dough' })
event.remove({ id: 'gtceu:electrolyzer/decomposition_electrolyzing_chromatic_compound' })
event.remove({ id: /^greate:mixing\/integration\/create\/.*/ })
event.remove({ id: /^greate:sawing\/integration\/create\/.*/ })
event.remove({ id: /^greate:splashing\/integration\/create\/.*/ })
event.remove({ id: /^greate:crushing\/integration\/create\/.*/ })
event.remove({ id: /^greate:milling\/integration\/create\/.*/ })
event.remove({ id: /^greate:compacting\/integration\/.*/ })
event.remove({ id: /^greate:pressing\/integration\/.*/ })
event.remove({ mod: 'greate', type: 'create:deploying' });
event.remove({ mod: 'greate', type: 'create:sequenced_assembly' });

View file

@ -1,18 +1,222 @@
// priority: 0
const registerTFCDataForGTCEU = (event) => {
registerGTCEUHeats(event)
registerGTCEUHeats(event)
registerGTCEUMetals(event)
}
/**
* event.itemHeat(
ingredient: Ingredient,
heatCapacity: number,
forgingTemperature: @Nullable number,
weldingTemperature: @Nullable number,
name?: string
)
ingredient: Ingredient,
heatCapacity: number,
forgingTemperature: @Nullable number,
weldingTemperature: @Nullable number,
name?: string
)
*/
const registerGTCEUHeats = (event) => {
event.itemHeat('gtceu:compressed_coke_clay', 0.1242, null, null)
function makeItemHeatByTagPrefix(tagPrefix, material, tfcProperty, heatCapacity) {
let item = ChemicalHelper.get(tagPrefix, material, 1)
if (!item.isEmpty()) event.itemHeat(item, heatCapacity, tfcProperty.getForgingTemp(), tfcProperty.getWeldingTemp())
}
function makeItemHeatByToolType(toolType, material, tfcProperty, heatCapacity) {
let tool = ToolHelper.get(toolType, material)
if (!tool.isEmpty()) event.itemHeat(tool, heatCapacity, tfcProperty.getForgingTemp(), tfcProperty.getWeldingTemp())
}
forEachMaterial(material => {
let tfcProperty = material.getProperty(TFGPropertyKey.TFC_PROPERTY)
if (tfcProperty != null) {
makeItemHeatByTagPrefix(TagPrefix.dustTiny, material, tfcProperty, 0.357)
makeItemHeatByTagPrefix(TagPrefix.dustSmall, material, tfcProperty, 0.714)
makeItemHeatByTagPrefix(TagPrefix.dust, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TagPrefix.rod, material, tfcProperty, 0.567)
makeItemHeatByTagPrefix(TagPrefix.bolt, material, tfcProperty, 0.245)
makeItemHeatByTagPrefix(TagPrefix.screw, material, tfcProperty, 0.567)
makeItemHeatByTagPrefix(TagPrefix.nugget, material, tfcProperty, 0.124)
makeItemHeatByTagPrefix(TagPrefix.block, material, tfcProperty, 20)
makeItemHeatByTagPrefix(TagPrefix.rodLong, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TagPrefix.ingot, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TFGTagPrefix.ingotDouble, material, tfcProperty, 2.875)
makeItemHeatByTagPrefix(TagPrefix.rawOre, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TFGTagPrefix.richRawOre, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TFGTagPrefix.poorRawOre, material, tfcProperty, 1.429)
// Ore processing stages
makeItemHeatByTagPrefix(TagPrefix.dustImpure, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TagPrefix.dustPure, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TagPrefix.crushed, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TagPrefix.crushedPurified, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TagPrefix.crushedRefined, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadSword, material, tfcProperty, 2.875)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadShovel, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadScythe, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadPickaxe, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadSaw, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadKnife, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadHoe, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadHammer, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadAxe, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadFile, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadButcheryKnife, material, tfcProperty, 2.875)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadMiningHammer, material, tfcProperty, 2.875)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadSpade, material, tfcProperty, 2.875)
makeItemHeatByToolType(GTToolType.SWORD, material, tfcProperty, 1.429)
makeItemHeatByToolType(GTToolType.PICKAXE, material, tfcProperty, 1.429)
makeItemHeatByToolType(GTToolType.SHOVEL, material, tfcProperty, 1.429)
makeItemHeatByToolType(GTToolType.AXE, material, tfcProperty, 1.429)
makeItemHeatByToolType(GTToolType.HOE, material, tfcProperty, 1.429)
makeItemHeatByToolType(GTToolType.SAW, material, tfcProperty, 1.429)
makeItemHeatByToolType(GTToolType.HARD_HAMMER, material, tfcProperty, 2.875)
makeItemHeatByToolType(GTToolType.FILE, material, tfcProperty, 1.429)
makeItemHeatByToolType(GTToolType.SCYTHE, material, tfcProperty, 1.429)
makeItemHeatByToolType(GTToolType.KNIFE, material, tfcProperty, 1.429)
makeItemHeatByToolType(GTToolType.BUTCHERY_KNIFE, material, tfcProperty, 2.875)
makeItemHeatByToolType(GTToolType.MINING_HAMMER, material, tfcProperty, 1.429)
makeItemHeatByToolType(GTToolType.SPADE, material, tfcProperty, 2.875)
}
})
event.itemHeat('gtceu:compressed_coke_clay', 0.1242, null, null)
}
const registerGTCEUMetals = (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')
event.metal('gtceu:bronze', 950, 0.00857, '#forge:ingots/bronze', '#forge:double_ingots/bronze', '#forge:plates/bronze', 2, 'tfc:bronze')
event.metal('gtceu:black_bronze', 1070, 0.00857, '#forge:ingots/black_bronze', '#forge:double_ingots/black_bronze', '#forge:plates/black_bronze', 2, 'tfc:black_bronze')
event.metal('gtceu:wrought_iron', 1535, 0.00857, '#forge:ingots/wrought_iron', '#forge:double_ingots/wrought_iron', '#forge:plates/wrought_iron', 3, 'tfc:wrought_iron')
event.metal('gtceu:steel', 1540, 0.00857, '#forge:ingots/steel', '#forge:double_ingots/steel', '#forge:plates/steel', 4, 'tfc:steel')
event.metal('gtceu:black_steel', 1485, 0.00857, '#forge:ingots/black_steel', '#forge:double_ingots/black_steel', '#forge:plates/black_steel', 5, 'tfc:black_steel')
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('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')
event.metal('gtceu:zinc', 420, 0.01429, '#forge:ingots/zinc', '#forge:double_ingots/zinc', '#forge:plates/zinc', 1, 'tfc:zinc')
event.metal('gtceu:sterling_silver', 950, 0.00857, '#forge:ingots/sterling_silver', '#forge:double_ingots/sterling_silver', '#forge:plates/sterling_silver', 1, 'tfc:sterling_silver')
event.metal('gtceu:rose_gold', 960, 0.00857, '#forge:ingots/rose_gold', '#forge:double_ingots/rose_gold', '#forge:plates/rose_gold', 1, 'tfc:rose_gold')
event.metal('gtceu:silver', 961, 0.00625, '#forge:ingots/silver', '#forge:double_ingots/silver', '#forge:plates/silver', 1, 'tfc:silver')
event.metal('gtceu:gold', 1060, 0.005, '#forge:ingots/gold', '#forge:double_ingots/gold', '#forge:plates/gold', 1, 'tfc:gold')
event.metal('gtceu:nickel', 1453, 0.00625, '#forge:ingots/nickel', '#forge:double_ingots/nickel', '#forge:plates/nickel', 1, 'tfc:nickel')
event.metal('gtceu:brass', 930, 0.00857, '#forge:ingots/brass', '#forge:double_ingots/brass', '#forge:plates/brass', 2, 'tfc:brass')
event.metal('gtceu:redstone', 460, 0.01729, null, null, null, 1, 'tfg:redstone')
event.metal('gtceu:red_alloy', 740, 0.01529, '#forge:ingots/red_alloy', '#forge:double_ingots/red_alloy', '#forge:plates/red_alloy', 2, 'tfg:red_alloy')
event.metal('gtceu:tin_alloy', 1250, 0.00829, '#forge:ingots/tin_alloy', '#forge:double_ingots/tin_alloy', '#forge:plates/tin_alloy', 3, 'tfg:tin_alloy')
}
const registerGTCEUBedrockOreVeins = (event) => {
// Tin, Magnesium
event.add('tfg:moon_tin', vein => {
vein.weight(75)
.size(2)
.yield(1, 4)
.material(GTMaterials.Cassiterite, 5)
.material(GTMaterials.Tin, 2)
.material(GTMaterials.Olivine, 1)
.dimensions('ad_astra:moon')
})
// Iron, Gold, Magnesium
event.add('tfg:moon_magnetite', vein => {
vein.weight(75)
.size(2)
.yield(1, 4)
.material(GTMaterials.Magnetite, 8)
.material(GTMaterials.Gold, 3)
.material(GTMaterials.Olivine, 1)
.dimensions('ad_astra:moon')
})
// Copper, Arsenic, Tin
event.add('tfg:moon_copper', vein => {
vein.weight(100)
.size(2)
.yield(1, 4)
.material(GTMaterials.Chalcopyrite, 10)
.material(GTMaterials.Zeolite, 4)
.material(GTMaterials.Cassiterite, 3)
.material(GTMaterials.Realgar, 2)
.dimensions('ad_astra:moon')
})
// Certus Quartz, Barium
event.add('tfg:moon_certus', vein => {
vein.weight(20)
.size(1)
.yield(1, 2)
.material(GTMaterials.CertusQuartz, 6)
.material(GTMaterials.Barite, 2)
.material(GTMaterials.Quartzite, 7)
.dimensions('ad_astra:moon')
})
// Asbestos, Tin, Calcium
event.add('tfg:moon_asbestos', vein => {
vein.weight(100)
.size(2)
.yield(1, 5)
.material(GTMaterials.Asbestos, 3)
.material(GTMaterials.CassiteriteSand, 4)
.material(GTMaterials.Diatomite, 1)
.dimensions('ad_astra:moon')
})
// Mica - Talc Silicon Aluminium Potassium Fluorine Caesium
event.add('tfg:moon_mica', vein => {
vein.weight(50)
.size(1)
.yield(1, 3)
.material(GTMaterials.Mica, 5)
.material(GTMaterials.Kyanite, 2)
.material(GTMaterials.Pollucite, 1)
.dimensions('ad_astra:moon')
})
}
function registerGTCEUBedrockFluidVeins(event) {
event.add('tfg:moon_helium_3', vein => {
vein.dimensions('ad_astra:moon')
vein.fluid(() => Fluid.of('gtceu:helium_3').fluid)
vein.weight(100)
vein.minimumYield(200)
vein.maximumYield(400)
vein.depletionAmount(1)
vein.depletionChance(1)
vein.depletedYield(200)
})
event.add('tfg:moon_helium', vein => {
vein.dimensions('ad_astra:moon')
vein.fluid(() => Fluid.of('gtceu:helium').fluid)
vein.weight(10)
vein.minimumYield(50)
vein.maximumYield(20)
vein.depletionAmount(1)
vein.depletionChance(1)
vein.depletedYield(50)
})
event.add('tfg:moon_argon', vein => {
vein.dimensions('ad_astra:moon')
vein.fluid(() => Fluid.of('gtceu:argon').fluid)
vein.weight(5)
vein.minimumYield(30)
vein.maximumYield(10)
vein.depletionAmount(1)
vein.depletionChance(1)
vein.depletedYield(10)
})
}

View file

@ -24,6 +24,13 @@ const STONE_TYPES_TO_COBBLE = {
deepslate: 'minecraft:cobbled_deepslate',
pyroxenite: 'minecraft:blackstone',
dripstone: 'minecraft:dripstone_block',
moon_stone: 'ad_astra:moon_cobblestone',
moon_deepslate: 'ad_astra:moon_sand',
mars_stone: 'ad_astra:mars_cobblestone',
venus_stone: 'ad_astra:venus_cobblestone',
mercury_stone: 'ad_astra:mercury_cobblestone',
glacio_stone: 'ad_astra:glacio_cobblestone',
permafrost: 'gtceu:ice_dust'
}
const registerGTCEULoots = (event) => {
@ -52,7 +59,7 @@ const registerGTCEULoots = (event) => {
event.addBlockLootModifier('tfg:rock/hardened_deepslate')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('tfc:sand/black')
.addLoot('minecraft:cobbled_deepslate')
event.addBlockLootModifier('tfg:rock/hardened_dripstone')
.matchMainHand('#forge:tools/hammers')
@ -72,8 +79,63 @@ const registerGTCEULoots = (event) => {
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('tfc:sand/pink')
event.addBlockLootModifier('ad_astra:moon_stone')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('ad_astra:moon_cobblestone')
event.addBlockLootModifier('ad_astra:moon_cobblestone')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('ad_astra:moon_sand')
event.addBlockLootModifier('ad_astra:moon_deepslate')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('ad_astra:moon_sand')
event.addBlockLootModifier('ad_astra:mars_stone')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('ad_astra:mars_cobblestone')
event.addBlockLootModifier('ad_astra:mars_cobblestone')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('ad_astra:mars_sand')
event.addBlockLootModifier('ad_astra:venus_stone')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('ad_astra:venus_cobblestone')
event.addBlockLootModifier('ad_astra:venus_cobblestone')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('ad_astra:venus_sand')
event.addBlockLootModifier('ad_astra:mercury_stone')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('ad_astra:mercury_cobblestone')
event.addBlockLootModifier('ad_astra:mercury_cobblestone')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('tfc:sand/red')
event.addBlockLootModifier('ad_astra:glacio_stone')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('ad_astra:glacio_cobblestone')
event.addBlockLootModifier('ad_astra:glacio_cobblestone')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('tfc:sand/white')
// Crush raw rock into cobble
global.ORE_BEARING_STONES.forEach(stoneType => {
global.TFC_STONE_TYPES.forEach(stoneType => {
event.addBlockLootModifier(`tfc:rock/raw/${stoneType}`)
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
@ -82,7 +144,6 @@ const registerGTCEULoots = (event) => {
// Go through all materials
forEachMaterial(material => {
if (material.hasProperty(PropertyKey.ORE)) {
// Indicator buds
@ -108,9 +169,19 @@ const registerGTCEULoots = (event) => {
// 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 if (material == TFGHelpers.getMaterial('desh')
|| material == TFGHelpers.getMaterial('ostrum')
|| material == TFGHelpers.getMaterial('calorite'))
{
rawOreBlock = "ad_astra" + rawOreBlock;
}
else
{
rawOreBlock = "gtceu" + rawOreBlock;
}
event.addBlockLootModifier(rawOreBlock)
.removeLoot(ItemFilter.ALWAYS_TRUE)
@ -136,7 +207,7 @@ const registerGTCEULoots = (event) => {
let stoneTypeDust = ChemicalHelper.get(TagPrefix.dust, stoneTypeMaterial, 1)
// break with pickaxe
// break with pickaxe/mining hammer/drill/mining machine
event.addBlockLootModifier(`gtceu:${stoneType}_${material.getName()}_ore`)
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([

View file

@ -22,13 +22,13 @@ const registerGTCEURecipes = (event) => {
'4x #forge:sand'
)
.circuit(1)
.inputFluids(Fluid.of('minecraft:water', 1000))
.inputFluids(JsonIO.of({ amount: 1000, value: { tag: "tfg:clean_water" }}))
.itemOutputs('4x gtceu:fertilizer')
.duration(300)
.EUt(30)
//#endregion
//#region Выход: Кварцевый песок
event.shaped('gtceu:quartz_sand_dust', [
@ -59,6 +59,10 @@ const registerGTCEURecipes = (event) => {
.duration(30)
.EUt(2)
event.recipes.greate.pressing('2x tfc:powder/flux', '#tfc:fluxstone')
.recipeTier(0)
.id('greate:pressing/flux')
//#region Выход: Диоксид силикона
event.recipes.gtceu.electrolyzer('sand_electrolysis')
@ -132,6 +136,10 @@ const registerGTCEURecipes = (event) => {
.inputs('#minecraft:planks', TFC.fluidStackIngredient('#forge:creosote', 100))
.id('tfg:barrel/treated_wood_planks')
event.recipes.tfc.barrel_sealed(2000)
.outputItem('gtceu:treated_wood_dust')
.inputs('tfg:chipboard_composite', TFC.fluidStackIngredient('#forge:creosote', 50))
.id('tfg:barrel/treated_chipboard_composite')
//#endregion
//#region Выход: Капля резины
@ -151,7 +159,7 @@ const registerGTCEURecipes = (event) => {
.itemInputs('tfc:powder/wood_ash')
.itemOutputs('gtceu:sticky_resin')
.inputFluids(Fluid.of('tfg:latex', 1000))
event.recipes.gtceu.fluid_solidifier('tfg:fluid_solidifier/pitch_to_sticky_resin')
.duration(24 * 20)
.EUt(30)
@ -166,24 +174,28 @@ const registerGTCEURecipes = (event) => {
event.recipes.gtceu.compressor('plant_ball_from_tfc_seeds')
.itemInputs('8x #tfc:seeds')
.itemOutputs('gtceu:plant_ball')
.circuit(1)
.duration(300)
.EUt(2)
event.recipes.gtceu.compressor('plant_ball_from_tfc_food')
.itemInputs('8x #tfc:foods')
.itemOutputs('gtceu:plant_ball')
.circuit(1)
.duration(300)
.EUt(2)
event.recipes.gtceu.compressor('plant_ball_from_tfc_plants')
.itemInputs('8x #tfc:plants')
.itemOutputs('gtceu:plant_ball')
.circuit(1)
.duration(300)
.EUt(2)
event.recipes.gtceu.compressor('plant_ball_from_tfc_corals')
.itemInputs('8x #tfc:corals')
.itemOutputs('gtceu:plant_ball')
.circuit(1)
.duration(300)
.EUt(2)
@ -195,56 +207,56 @@ const registerGTCEURecipes = (event) => {
event.recipes.gtceu.brewery('biomass_from_tfc_seeds')
.itemInputs('#tfc:seeds')
.inputFluids(Fluid.of('minecraft:water', 20))
.inputFluids(JsonIO.of({ amount: 20, value: { tag: "tfc:any_water" }}))
.outputFluids(Fluid.of('gtceu:biomass', 20))
.duration(128)
.EUt(3)
event.recipes.gtceu.brewery('biomass_from_tfc_food')
.itemInputs('#tfc:foods')
.inputFluids(Fluid.of('minecraft:water', 20))
.inputFluids(JsonIO.of({ amount: 20, value: { tag: "tfc:any_water" }}))
.outputFluids(Fluid.of('gtceu:biomass', 20))
.duration(128)
.EUt(3)
event.recipes.gtceu.brewery('biomass_from_tfc_plants')
.itemInputs('#tfc:plants')
.inputFluids(Fluid.of('minecraft:water', 20))
.inputFluids(JsonIO.of({ amount: 20, value: { tag: "tfc:any_water" }}))
.outputFluids(Fluid.of('gtceu:biomass', 20))
.duration(128)
.EUt(3)
event.recipes.gtceu.brewery('biomass_from_tfc_corals')
.itemInputs('#tfc:corals')
.inputFluids(Fluid.of('minecraft:water', 20))
.inputFluids(JsonIO.of({ amount: 20, value: { tag: "tfc:any_water" }}))
.outputFluids(Fluid.of('gtceu:biomass', 20))
.duration(128)
.EUt(3)
event.recipes.gtceu.brewery('biomass_from_spider_eyes')
.itemInputs('minecraft:spider_eye')
.inputFluids(Fluid.of('minecraft:water', 20))
.inputFluids(JsonIO.of({ amount: 20, value: { tag: "tfc:any_water" }}))
.outputFluids(Fluid.of('gtceu:biomass', 20))
.duration(128)
.EUt(3)
event.recipes.gtceu.brewery('biomass_from_leaves')
.itemInputs('#minecraft:leaves')
.inputFluids(Fluid.of('minecraft:water', 20))
.inputFluids(JsonIO.of({ amount: 20, value: { tag: "tfc:any_water" }}))
.outputFluids(Fluid.of('gtceu:biomass', 20))
.duration(128)
.EUt(3)
event.recipes.gtceu.brewery('biomass_from_fallen_leaves')
.itemInputs('#tfc:fallen_leaves')
.inputFluids(Fluid.of('minecraft:water', 20))
.inputFluids(JsonIO.of({ amount: 20, value: { tag: "tfc:any_water" }}))
.outputFluids(Fluid.of('gtceu:biomass', 20))
.duration(128)
.EUt(3)
event.recipes.gtceu.brewery('biomass_from_minecraft_plants')
.itemInputs('#createaddition:plants')
.inputFluids(Fluid.of('minecraft:water', 20))
.inputFluids(JsonIO.of({ amount: 20, value: { tag: "tfc:any_water" }}))
.outputFluids(Fluid.of('gtceu:biomass', 20))
.duration(128)
.EUt(3)
@ -272,15 +284,15 @@ const registerGTCEURecipes = (event) => {
//#endregion
//#region Выход: Цемент
generateMixerRecipe(event, ['2x #tfg:stone_dusts', 'gtceu:marble_dust', 'gtceu:gypsum_dust'],
Fluid.of('minecraft:water', 1000), [], null, Fluid.of('gtceu:concrete', 1152), 40, 16, 64, 'concrete_from_marble')
JsonIO.of({ amount: 1000, value: { tag: "tfg:clean_water" }}), [], null, Fluid.of('gtceu:concrete', 1152), 40, 16, 64, 'concrete_from_marble')
generateMixerRecipe(event, ['3x #tfg:stone_dusts', 'gtceu:clay_dust'],
Fluid.of('minecraft:water', 500), [], null, Fluid.of('gtceu:concrete', 576), 20, 16, 64, 'concrete_from_clay')
JsonIO.of({ amount: 500, value: { tag: "tfg:clean_water" }}), [], null, Fluid.of('gtceu:concrete', 576), 20, 16, 64, 'concrete_from_clay')
generateMixerRecipe(event, ['3x #tfg:stone_dusts', 'gtceu:calcite_dust', 'gtceu:gypsum_dust'],
Fluid.of('minecraft:water', 1000), [], null, Fluid.of('gtceu:concrete', 1152), 40, 16, 64, 'concrete_from_calcite')
JsonIO.of({ amount: 1000, value: { tag: "tfg:clean_water" }}), [], null, Fluid.of('gtceu:concrete', 1152), 40, 16, 64, 'concrete_from_calcite')
//GT light/dark concrete recipe fix
@ -345,7 +357,7 @@ const registerGTCEURecipes = (event) => {
generateMixerRecipe(
event,
['2x #tfg:stone_dusts'],
[Fluid.of('gtceu:lubricant', 20), Fluid.of('minecraft:water', 4000)],
[Fluid.of('gtceu:lubricant', 20), JsonIO.of({ amount: 4000, value: { tag: "tfg:clean_water" }})],
[],
null,
Fluid.of('gtceu:drilling_fluid', 5000),
@ -394,13 +406,6 @@ const registerGTCEURecipes = (event) => {
.duration(700)
.EUt(2720)
// Creosote-Treated Wood Planks -> Treated Wood Pulp
event.recipes.gtceu.macerator('tfg:gtceu/macerate_treated_wood_planks')
.itemInputs('gtceu:treated_wood_planks')
.itemOutputs('gtceu:treated_wood_dust')
.duration(120)
.EUt(4)
// Empty Wooden Form
event.shaped('gtceu:empty_wooden_form', [
' AA',
@ -448,7 +453,7 @@ const registerGTCEURecipes = (event) => {
.id('tfg:heating/coke_oven_bricks')
event.recipes.gtceu.alloy_smelter('gtceu:coke_oven_brick')
.itemInputs('#minecraft:sand', 'minecraft:clay_ball')
.itemInputs('3x #minecraft:sand', '2x minecraft:clay_ball')
.itemOutputs('gtceu:coke_oven_brick')
.duration(7.5 * 20)
.EUt(GTValues.VA[GTValues.ULV])
@ -624,7 +629,7 @@ const registerGTCEURecipes = (event) => {
// #endregion
// #region Add all glass colors to macerator/hammer
event.remove({ id: "gtceu:macerator/macerate_glass" });
removeMaceratorRecipe(event, 'macerate_glass');
event.recipes.gtceu.macerator("gtceu:macerator/macerate_glass")
.itemInputs(
"#forge:glass"
@ -633,7 +638,7 @@ const registerGTCEURecipes = (event) => {
.duration(20)
.EUt(2);
event.remove({ id: "gtceu:macerator/macerate_glass_pane" });
removeMaceratorRecipe(event, 'macerate_glass_pane');
event.recipes.gtceu.macerator("gtceu:macerator/macerate_glass_pane")
.itemInputs(
"#forge:glass_panes"
@ -785,7 +790,7 @@ const registerGTCEURecipes = (event) => {
// Macerator
global.TFC_HARDWOOD_TYPES.forEach(wood => {
event.remove(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`)
removeMaceratorRecipe(event, `macerate_wood/hanging_sign/${metal.getName()}/${wood}`)
event.recipes.gtceu.macerator(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`)
.itemInputs(`tfc:wood/hanging_sign/${metal.getName()}/${wood}`)
.itemOutputs('gtceu:hardwood_dust')
@ -796,7 +801,7 @@ const registerGTCEURecipes = (event) => {
})
global.TFC_SOFTWOOD_TYPES.forEach(wood => {
event.remove(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`)
removeMaceratorRecipe(event, `macerate_wood/hanging_sign/${metal.getName()}/${wood}`)
event.recipes.gtceu.macerator(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`)
.itemInputs(`tfc:wood/hanging_sign/${metal.getName()}/${wood}`)
.itemOutputs('gtceu:wood_dust')
@ -948,7 +953,7 @@ const registerGTCEURecipes = (event) => {
event.replaceInput({ mod: 'gtceu' }, 'minecraft:sugar', '#tfg:sugars')
event.replaceInput({ mod: 'gtceu' }, 'minecraft:string', '#forge:string')
event.recipes.gtceu.fluid_solidifier('tfg:solidify_glue')
.inputFluids(Fluid.of('gtceu:glue', 50))
.notConsumable('gtceu:ball_casting_mold')
@ -963,7 +968,7 @@ const registerGTCEURecipes = (event) => {
.chancedOutput('gtceu:plant_ball', 1000, 850)
.duration(400)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.chemical_reactor(`tfg:treat_latex_plants_into_latex`)
.itemInputs('16x #tfg:rubber_plants', 'gtceu:tiny_sodium_hydroxide_dust')
.circuit(1)
@ -1018,21 +1023,21 @@ const registerGTCEURecipes = (event) => {
//#endregion
//#region Stick Packing
event.recipes.gtceu.packer('tfg:stick_bunch')
.itemInputs('9x #forge:rods/wooden')
.circuit(5)
.itemOutputs('tfc:stick_bunch')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.packer('tfg:stick_bundle')
.itemInputs('18x #forge:rods/wooden')
.circuit(8)
.itemOutputs('tfc:stick_bundle')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.packer('tfg:stick_bunch')
.itemInputs('9x #forge:rods/wooden')
.circuit(5)
.itemOutputs('tfc:stick_bunch')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.packer('tfg:stick_bundle')
.itemInputs('18x #forge:rods/wooden')
.circuit(8)
.itemOutputs('tfc:stick_bundle')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
//#endregion
//#region Changing tiers of decomposition recipes
@ -1077,21 +1082,32 @@ const registerGTCEURecipes = (event) => {
//#endregion
//#region Large boilers fuel rebalance
//#region glowstone
event.recipes.gtceu.alloy_blast_smelter('abs:liquid_glowstone')
.itemInputs('#forge:dusts/gold', '#forge:dusts/redstone', '#forge:dusts/sulfur')
.outputFluids(Fluid.of('gtceu:glowstone', 288))
.duration(20 * 60 / 1.3)
.EUt(GTValues.VA[GTValues.LV])
.blastFurnaceTemp(1064)
.circuit(9)
//#endregion
// Balance is based on adjusting to match singeblock boiler efficiency
// High Pressure Steam Solid Boiler produces 288,000 mB steam/coke
// High Pressure Steam Liquid Boiler produces 432 mB steam/creosote
// By Defualt: Large Bronze Boiler produces 50mB steam/creosote, 32000mB steam/coke
// This is a factor of 9x for solids, 8.64x for liquids
// Large boiler fuel burn time is multiplied by 9, resulting in less fuel used over time for the same amount of steam produced per tick
event.findRecipes({ id: /^gtceu:large_boiler\/.*/, type: "gtceu:large_boiler" }).forEach(large_boiler_recipe => {
//#region Large boilers fuel rebalance
let recipe_duration = large_boiler_recipe.json.getAsJsonPrimitive("duration").asInt
// Balance is based on adjusting to match singeblock boiler efficiency
// High Pressure Steam Solid Boiler produces 288,000 mB steam/coke
// High Pressure Steam Liquid Boiler produces 432 mB steam/creosote
// By Defualt: Large Bronze Boiler produces 50mB steam/creosote, 32000mB steam/coke
// This is a factor of 9x for solids, 8.64x for liquids
// Large boiler fuel burn time is multiplied by 9, resulting in less fuel used over time for the same amount of steam produced per tick
large_boiler_recipe.json.remove("duration")
large_boiler_recipe.json.add("duration", recipe_duration * 9)
event.findRecipes({ id: /^gtceu:large_boiler\/.*/, type: "gtceu:large_boiler" }).forEach(large_boiler_recipe => {
let recipe_duration = large_boiler_recipe.json.getAsJsonPrimitive("duration").asInt
large_boiler_recipe.json.remove("duration")
large_boiler_recipe.json.add("duration", recipe_duration * 9)
})
//#endregion
@ -1132,31 +1148,27 @@ const registerGTCEURecipes = (event) => {
.EUt(2)
//#endregion
//#region GT Facades
event.shapeless(Item.of('gtceu:facade_cover', 8, '{Facade: {Count:1b,id:"minecraft:stone"}}'), ['3x #forge:plates/iron', "#tfg:whitelisted/facades"])
.modifyResult((craftingGrid, result) =>
{
let blockID = craftingGrid.find(Ingredient.of("#tfg:whitelisted/facades")).id
console.log(blockID)
let facadeNBT = "{Facade: {Count:1b,id:" + "'" + blockID + "'" + "}}"
result.nbt = facadeNBT
return result;
}).id('gtceu:facade_cover');
.modifyResult((craftingGrid, result) => {
let blockID = craftingGrid.find(Ingredient.of("#tfg:whitelisted/facades")).id
let facadeNBT = "{Facade: {Count:1b,id:" + "'" + blockID + "'" + "}}"
result.nbt = facadeNBT
return result;
}).id('gtceu:facade_cover');
event.shapeless(Item.of('gtceu:facade_cover', 32, '{Facade: {Count:1b,id:"minecraft:stone"}}'), ['3x #forge:plates/titanium', "#tfg:whitelisted/facades"])
.modifyResult((craftingGrid, result) =>
{
let blockID = craftingGrid.find(Ingredient.of("#tfg:whitelisted/facades")).id
console.log(blockID)
let facadeNBT = "{Facade: {Count:1b,id:" + "'" + blockID + "'" + "}}"
result.nbt = facadeNBT
return result;
}).id('gtceu:facade_cover32');
.modifyResult((craftingGrid, result) => {
let blockID = craftingGrid.find(Ingredient.of("#tfg:whitelisted/facades")).id
let facadeNBT = "{Facade: {Count:1b,id:" + "'" + blockID + "'" + "}}"
result.nbt = facadeNBT
return result;
}).id('gtceu:facade_cover32');
//#endregion
event.recipes.gtceu.laser_engraver('tfg:diamond_gear')
.itemInputs('4x #forge:plates/diamond')
.itemOutputs('#forge:gears/diamond')
@ -1164,37 +1176,116 @@ const registerGTCEURecipes = (event) => {
.duration(200)
.EUt(GTValues.VA[GTValues.MV])
// TODO: Greate again...
event.shapeless('gtceu:programmed_circuit', ['minecraft:stick', '#forge:tools/wrenches'])
.id('tfg:shapeless/programmed_circuit_from_stick')
//#region Rose Quartz fabrication + decomposition
event.remove({ id: 'gtceu:electrolyzer/decomposition_electrolyzing_chromatic_compound' });
event.remove({ id: 'gtceu:autoclave/autoclave_dust_rose_quartz_water' })
event.remove({ id: 'gtceu:autoclave/autoclave_dust_rose_quartz_distilled' })
event.shapeless('gtceu:red_alloy_single_cable', ['gtceu:red_alloy_single_wire', '#forge:plates/rubber'])
.id('tfg:shapeless/red_alloy_single_cable')
generateMixerRecipe(event, ['gtceu:nether_quartz_dust', '8x minecraft:redstone'], [], '9x gtceu:rose_quartz_dust', 2, [], 180, 60, 64, 'rose_quartz_dust_mixing')
generateMixerRecipe(event, ['gtceu:tiny_nether_quartz_dust', '8x gtceu:tiny_redstone_dust'], [], 'gtceu:rose_quartz_dust', 2, [], 20, 60, 64, 'tiny_rose_quartz_dust_mixing')
event.shapeless('gtceu:tin_single_cable', ['gtceu:tin_single_wire', '#forge:plates/rubber'])
.id('tfg:shapeless/tin_single_cable')
event.shapeless('gtceu:tin_double_cable', ['gtceu:tin_double_wire', '#forge:plates/rubber', '#forge:plates/rubber'])
.id('tfg:shapeless/tin_double_cable')
event.shapeless('gtceu:tin_quadruple_cable', ['gtceu:tin_quadruple_wire', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber'])
.id('tfg:shapeless/tin_quadruple_cable')
event.shapeless('gtceu:tin_octal_cable', ['gtceu:tin_octal_wire', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber'])
.id('tfg:shapeless/tin_octal_cable')
event.recipes.gtceu.autoclave("autoclave_dust_rose_quartz_ice")
.itemInputs("gtceu:rose_quartz_dust")
.inputFluids(Fluid.of("gtceu:ice", 144))
.itemOutputs("gtceu:rose_quartz_gem")
.duration(2000)
.EUt(120)
event.shapeless('gtceu:cobalt_single_cable', ['gtceu:cobalt_single_wire', '#forge:plates/rubber'])
.id('tfg:shapeless/cobalt_single_cable')
event.shapeless('gtceu:cobalt_double_cable', ['gtceu:cobalt_double_wire', '#forge:plates/rubber', '#forge:plates/rubber'])
.id('tfg:shapeless/cobalt_double_cable')
event.shapeless('gtceu:cobalt_quadruple_cable', ['gtceu:cobalt_quadruple_wire', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber'])
.id('tfg:shapeless/cobalt_quadruple_cable')
event.shapeless('gtceu:cobalt_octal_cable', ['gtceu:cobalt_octal_wire', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber'])
.id('tfg:shapeless/cobalt_octal_cable')
event.recipes.gtceu.electrolyzer('electrolyze_rose_quartz_dust')
.itemInputs('9x gtceu:rose_quartz_dust')
.itemOutputs('1x gtceu:nether_quartz_dust', '8x minecraft:redstone')
.duration(7 * 20)
.EUt(60)
//#endregion
event.shapeless('gtceu:nickel_single_cable', ['gtceu:nickel_single_wire', '#forge:plates/rubber'])
.id('tfg:shapeless/nickel_single_cable')
event.shapeless('gtceu:nickel_double_cable', ['gtceu:nickel_double_wire', '#forge:plates/rubber', '#forge:plates/rubber'])
.id('tfg:shapeless/nickel_double_cable')
event.shapeless('gtceu:nickel_quadruple_cable', ['gtceu:nickel_quadruple_wire', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber'])
.id('tfg:shapeless/nickel_quadruple_cable')
event.shapeless('gtceu:nickel_octal_cable', ['gtceu:nickel_octal_wire', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber'])
.id('tfg:shapeless/nickel_octal_cable')
//#region Multiblock Tanks
event.recipes.gtceu.assembler('tfg:assembler/wood_wall')
.itemInputs('4x #forge:treated_wood', ChemicalHelper.get(TagPrefix.plate, GTMaterials.Copper, 1))
.itemOutputs('gtceu:wood_wall')
.circuit(4)
.duration(100)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.assembler('tfg:assembler/wooden_multiblock_tank')
.itemInputs('gtceu:wood_wall', ChemicalHelper.get(TagPrefix.ring, GTMaterials.Copper, 2))
.itemOutputs('gtceu:wooden_multiblock_tank')
.circuit(4)
.duration(200)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.assembler('tfg:assembler/wooden_tank_valve')
.itemInputs('gtceu:wood_wall', ChemicalHelper.get(TagPrefix.ring, GTMaterials.Copper, 1), ChemicalHelper.get(TagPrefix.rotor, GTMaterials.Copper, 1))
.itemOutputs('gtceu:wooden_tank_valve')
.duration(200)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.assembler('tfg:assembler/steel_multiblock_tank')
.itemInputs('gtceu:solid_machine_casing', ChemicalHelper.get(TagPrefix.ring, GTMaterials.Steel, 2))
.itemOutputs('gtceu:steel_multiblock_tank')
.circuit(4)
.duration(200)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.assembler('tfg:assembler/steel_tank_valve')
.itemInputs('gtceu:solid_machine_casing', ChemicalHelper.get(TagPrefix.ring, GTMaterials.Steel, 1), ChemicalHelper.get(TagPrefix.rotor, GTMaterials.Steel, 1))
.itemOutputs('gtceu:steel_tank_valve')
.duration(200)
.EUt(GTValues.VA[GTValues.ULV])
//#endregion
event.smelting('minecraft:iron_ingot', '#forge:ingots/wrought_iron')
.id('tfg:revert_wrought_iron_ingot')
event.replaceOutput({ id: 'gtceu:distillery/distill_biomass_to_water' }, 'gtceu:wood_dust', 'gtceu:carbon_dust')
event.replaceOutput({ id: 'gtceu:distillery/distill_biomass_to_ethanol' }, 'gtceu:wood_dust', 'gtceu:carbon_dust')
event.replaceOutput({ id: 'gtceu:distillation_tower/distill_biomass' }, 'gtceu:wood_dust', 'gtceu:carbon_dust')
//#region Circuit Fixes
//Adds circuit #1 to the tetrafluoroethylene_from_chloroform recipe
event.findRecipes({ id: "gtceu:chemical_reactor/tetrafluoroethylene_from_chloroform" }).forEach(recipe => {
const inputs = recipe.json.get("inputs");
const itemArray = inputs.has("item") ? Java.from(inputs.get("item")) : [];
itemArray.push({
content: {
type: "gtceu:circuit",
configuration: 1
},
chance: 0,
maxChance: 10000,
tierChanceBoost: 0
});
inputs.add("item", itemArray);
recipe.json.add("inputs", inputs);
});
//#endregion
//#region Chemical Reaction for Solar Panel
event.recipes.gtceu.chemical_reactor('tfg:chlorine_pentafluoride')
.inputFluids(Fluid.of('gtceu:fluorine', 5000), Fluid.of('gtceu:chlorine', 1000))
.outputFluids(Fluid.of('tfg:chlorine_pentafluoride', 1000))
.duration(20*10)
.EUt(GTValues.VA[GTValues.HV])
event.recipes.gtceu.chemical_reactor('tfg:chloryl_fluoride')
.inputFluids(Fluid.of('tfg:chlorine_pentafluoride', 1000), Fluid.of('minecraft:water', 2000))
.outputFluids(Fluid.of('tfg:chloryl_fluoride', 1000), Fluid.of('gtceu:hydrofluoric_acid', 4000))
.duration(20*10)
.EUt(GTValues.VA[GTValues.HV])
event.recipes.gtceu.large_chemical_reactor('tfg:solar_coolant')
.inputFluids(Fluid.of('tfg:chloryl_fluoride', 3000), Fluid.of('gtceu:helium_3', 8000), Fluid.of('minecraft:water', 8000))
.outputFluids(Fluid.of('tfg:solar_coolant', 1000), Fluid.of('gtceu:hydrofluoric_acid', 3000), Fluid.of('gtceu:hypochlorous_acid', 3000))
.duration(20*10)
.EUt(GTValues.VA[GTValues.EV])
//#endregion
event.replaceInput({ id: 'gtceu:shaped/powderbarrel' }, 'gtceu:wood_plate', '#tfc:lumber')
}

View file

@ -744,18 +744,6 @@ function registerGTCEuMachineRecipes(event) {
// #endregion
// Контроллер теплицы
event.shaped('gtceu:greenhouse', [
'ABA',
'CDC',
'BCB'
], {
A: '#gtceu:circuits/mv',
B: 'gtceu:copper_single_cable',
C: 'tfc:compost',
D: 'gtceu:solid_machine_casing'
}).id('tfg:shaped/greenhouse')
// Drums
const DRUMS_AND_CRATES = [
'bismuth_bronze',
@ -901,6 +889,167 @@ function registerGTCEuMachineRecipes(event) {
event.replaceOutput({ id: 'gtceu:macerator/macerate_steam_input_hatch' }, 'gtceu:steel_dust', '6x gtceu:steel_dust')
event.replaceOutput({ id: 'gtceu:arc_furnace/arc_steam_input_hatch' }, 'gtceu:steel_block', '6x gtceu:steel_ingot')
event.replaceOutput({ id: 'gtceu:macerator/macerate_hv_cutter' }, 'gtceu:red_steel_dust', '4x gtceu:diamond_dust')
event.replaceOutput({ id: 'gtceu:arc_furnace/arc_hv_cutter' }, '#forge:ingots/red_steel', '4x gtceu:chipped_diamond_gem')
event.replaceOutput({ id: 'gtceu:macerator/macerate_steam_input_hatch'}, 'gtceu:steel_dust', '6x gtceu:steel_dust')
event.replaceOutput({ id: 'gtceu:arc_furnace/arc_steam_input_hatch'}, 'gtceu:steel_block', '6x gtceu:steel_ingot')
// #region Bedrock Miner
event.recipes.gtceu.assembler('gtceu:mv_bedrock_miner')
.itemInputs('1x gtceu:hv_machine_hull',
'4x #forge:frames/steel',
'4x #gtceu:circuits/iv',
'4x gtceu:hv_electric_motor',
'4x gtceu:hv_robot_arm',
'4x gtceu:hv_conveyor_module',
'4x #forge:gears/blue_steel')
.itemOutputs('gtceu:mv_bedrock_ore_miner')
.duration(400)
.EUt(GTValues.VA[GTValues.HV])
.circuit(2)
event.recipes.gtceu.assembler('gtceu:hv_bedrock_miner')
.itemInputs('1x gtceu:ev_machine_hull',
'4x #forge:frames/titanium',
'4x #gtceu:circuits/luv',
'4x gtceu:luv_electric_motor',
'4x gtceu:luv_robot_arm',
'4x gtceu:luv_conveyor_module',
'4x #forge:gears/ruridit')
.itemOutputs('gtceu:hv_bedrock_ore_miner')
.duration(400)
.EUt(GTValues.VA[GTValues.IV])
.circuit(2)
event.recipes.gtceu.assembler('gtceu:ev_bedrock_miner')
.itemInputs('1x gtceu:iv_machine_hull',
'4x #forge:frames/tungsten_steel',
'4x #gtceu:circuits/zpm',
'4x gtceu:zpm_electric_motor',
'4x gtceu:zpm_robot_arm',
'4x gtceu:zpm_conveyor_module',
'4x #forge:gears/osmiridium')
.itemOutputs('gtceu:ev_bedrock_ore_miner')
.duration(400)
.EUt(GTValues.VA[GTValues.ZPM])
.circuit(2)
event.recipes.gtceu.mixer('gtceu:chipboard_composite_wax')
.itemInputs('2x #tfg:wood_dusts',
'1x #forge:wax')
.itemOutputs('2x tfg:chipboard_composite')
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.mixer('gtceu:chipboard_composite_resin')
.itemInputs('4x #tfg:wood_dusts',
'1x gtceu:sticky_resin')
.itemOutputs('4x tfg:chipboard_composite')
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.mixer('gtceu:chipboard_composite_glue')
.itemInputs('2x #tfg:wood_dusts',
'1x tfc:glue')
.itemOutputs('2x tfg:chipboard_composite')
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.mixer('gtceu:chipboard_composite_fluid_glue')
.itemInputs('1x #tfg:wood_dusts')
.inputFluids(Fluid.of('gtceu:glue', 25))
.itemOutputs('1x tfg:chipboard_composite')
.duration(10)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.chemical_bath('gtceu:treated_chipboard_composite')
.itemInputs('1x tfg:chipboard_composite')
.inputFluids(Fluid.of('gtceu:creosote', 50))
.itemOutputs('gtceu:treated_wood_dust')
.duration(100)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.compressor('gtceu:wood_mdf')
.itemInputs('1x tfg:chipboard_composite')
.itemOutputs('gtceu:wood_plate')
.duration(200)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.compressor('gtceu:treated_wood_mdf')
.itemInputs('1x gtceu:treated_wood_dust')
.itemOutputs('gtceu:treated_wood_plate')
.duration(200)
.EUt(GTValues.VA[GTValues.ULV])
//#region New Casings
event.recipes.gtceu.assembler('red_solar_casing')
.itemInputs('gtceu:steel_machine_casing', 'ad_astra:photovoltaic_vesnium_cell')
.itemOutputs('tfg:casings/machine_casing_red_solar_panel')
.circuit(6)
.duration(2.5*20)
.EUt(16)
event.recipes.gtceu.assembler('iron_desh_casing')
.itemInputs('6x gtceu:steel_plate', 'gtceu:desh_frame')
.itemOutputs('2x tfg:casings/machine_casing_iron_desh')
.circuit(6)
.duration(2.5*20)
.EUt(16)
//#endregion
//#region Large Solar Panel
event.shaped(
'gtceu:large_solar_panel',
['WSW', 'TZT', 'WUW'],
{
S: 'ad_astra:photovoltaic_vesnium_cell',
Z: 'ad_astra:solar_panel',
W: '#gtceu:circuits/ev',
U: '#forge:gears/rocket_alloy_t1',
T: '#forge:gears/desh'
}
).id('gtceu:shaped/large_solar_panel')
event.recipes.gtceu.chemical_reactor('advanced_photovoltaic_cell')
.itemInputs('ad_astra:photovoltaic_etrium_cell',
'6x gtceu:energium_dust',
'gtceu:carbon_fiber_plate')
.inputFluids(Fluid.of('gtceu:helium_3', 128))
.itemOutputs('ad_astra:photovoltaic_vesnium_cell')
.duration(20*10)
.EUt(GTValues.VA[GTValues.HV])
// LSP Generating recipes
event.recipes.gtceu.large_solar_panel('solar_panel_t1')
.circuit(1)
.chancedInput('ad_astra:photovoltaic_vesnium_cell', 5, 0) // Slightly lower
.duration(20*20)
//.daytime(false)
.dimension('ad_astra:moon')
.EUt(-32*64/2)
event.recipes.gtceu.large_solar_panel('solar_panel_t2')
.circuit(2)
.notConsumable(InputItem.of('ad_astra:photovoltaic_vesnium_cell'))
.chancedFluidInput('tfg:solar_coolant 100', 5000, 0)
.duration(20*20)
//.daytime(false)
.dimension('ad_astra:moon')
.EUt(-((GTValues.V[GTValues.IV])/2))
event.recipes.gtceu.large_solar_panel('solar_panel_t3')
.circuit(3)
.notConsumable(InputItem.of('ad_astra:photovoltaic_vesnium_cell'))
.chancedFluidInput(Fluid.of('tfg:solar_coolant', 100), 5000, 0)
.inputFluids(Fluid.of('tfg:cryogenized_fluix', 144))
.chancedFluidOutput('tfg:fluix 36', 7500, 0)
.duration(20*20)
//.daytime(false)
.dimension('ad_astra:moon')
.EUt(-((GTValues.V[GTValues.LuV])/2))
}

View file

@ -8,17 +8,45 @@ function registerGTCEUMetalRecipes(event) {
return
const toolHeadItem = ChemicalHelper.get(headTagPrefix, material, 1)
if (toolHeadItem.isEmpty())
if (toolHeadItem.isEmpty())
return
// Skip this one because it has a duping bug, and you can't remove the macerator/arc furnace iron pick recipes
if (material == GTMaterials.Iron)
return;
event.recipes.tfc.advanced_shapeless_crafting(
TFC.itemStackProvider.of(toolItem).copyForgingBonus().copyHeat(),
[toolHeadItem, '#forge:rods/wooden'], toolHeadItem)
.id(`gtceu:shaped/${toolType.name}_${material.getName()}`)
if (toolType == GTToolType.WRENCH) {
event.recipes.tfc.advanced_shaped_crafting(
TFC.itemStackProvider.of(toolItem).copyForgingBonus().copyHeat(), [
'ABC',
'DB '
], {
A: toolHeadItem,
B: `#forge:rods/${material.getName()}`,
C: '#forge:tools/screwdrivers',
D: `#forge:bolts/${material.getName()}`
}, 0, 0)
.id(`gtceu:shaped/${toolType.name}_${material.getName()}`)
}
else if (toolType == GTToolType.WIRE_CUTTER) {
event.recipes.tfc.advanced_shaped_crafting(
TFC.itemStackProvider.of(toolItem).copyForgingBonus().copyHeat(), [
' AD',
'CBC'
], {
A: toolHeadItem,
B: `#forge:small_springs`,
C: `#forge:rods/${material.getName()}`,
D: '#forge:tools/screwdrivers'
}, 0, 1)
.id(`gtceu:shaped/${toolType.name}_${material.getName()}`)
}
else {
event.recipes.tfc.advanced_shapeless_crafting(
TFC.itemStackProvider.of(toolItem).copyForgingBonus().copyHeat(),
[toolHeadItem, '#forge:rods/wooden'], toolHeadItem)
.id(`gtceu:shaped/${toolType.name}_${material.getName()}`)
}
processToolHead(headTagPrefix, extruderMold, cirucitMeta, material)
}
@ -28,64 +56,62 @@ function registerGTCEUMetalRecipes(event) {
if (toolHeadItem.isEmpty())
return
event.remove({ mod: 'gtceu', type: 'minecraft:crafting_shaped', output: toolHeadItem })
if (material.hasProperty(PropertyKey.INGOT)) {
const ingotItem = ChemicalHelper.get(TagPrefix.ingot, material, 1)
if (ingotItem.isEmpty()) return
if (ingotItem.isEmpty() || ingotItem.hasTag('c:hidden_from_recipe_viewers'))
return
const materialAmount = Math.floor(headTagPrefix.materialAmount() / GTValues.M) == 1 ? 1 : 2;
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)))
.itemInputs(ingotItem.copyWithCount(materialAmount))
.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`)
}
let ingotArray = [];
for (var i = 0; i < materialAmount; i++)
ingotArray.push(ingotItem)
event.custom({
type: 'vintageimprovements:curving',
ingredients: ingotArray,
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)
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, material, materialAmount))
.duration(material.getMass() * 6 * materialAmount)
.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)
.itemOutputs(ChemicalHelper.get(TagPrefix.ingot, material, materialAmount))
.duration(material.getMass() * 6 * materialAmount)
.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)
.outputFluids(Fluid.of(material.getFluid(), materialAmount * 144))
.duration(material.getMass() * 6 * materialAmount)
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
.EUt(material.hasProperty(PropertyKey.BLAST) ? GTValues.VA[GTValues.MV] : GTValues.VA[GTValues.ULV])
}
} else if (material.hasProperty(PropertyKey.GEM)) {
const gemItem = ChemicalHelper.get(TagPrefix.gem, material, 1)
if (gemItem.isEmpty()) return
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)))
@ -107,12 +133,14 @@ function registerGTCEUMetalRecipes(event) {
const processToolMortar = (toolType, material) => {
const toolItem = ToolHelper.get(toolType, material)
if (toolItem.isEmpty()) return
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
if (usableItem.isEmpty())
return
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped(toolItem, [
@ -131,7 +159,7 @@ function registerGTCEUMetalRecipes(event) {
if (material.hasFlag(MaterialFlags.GENERATE_PLATE)
&& material != GTMaterials.Wood
&& material != GTMaterials.TreatedWood
&& material != GTMaterials.TreatedWood
&& !material.hasProperty(PropertyKey.POLYMER))
{
const plateStack = ChemicalHelper.get(TagPrefix.plate, material, 1)
@ -139,7 +167,7 @@ function registerGTCEUMetalRecipes(event) {
let matAmount = TagPrefix.block.getMaterialAmount(material) / GTValues.M;
if (!plateStack.isEmpty()) {
if (!plateStack.isEmpty() && !plateStack.hasTag('c:hidden_from_recipe_viewers')) {
event.custom({
type: "createaddition:rolling",
@ -149,19 +177,24 @@ function registerGTCEUMetalRecipes(event) {
}).id(`tfg:rolling/${material.getName()}_plate`)
if (!blockStack.isEmpty() && GTMaterials.Stone != material) {
let ingotArray = [];
for (var i = 0; i < matAmount; i++)
ingotArray.push(ingotStack)
// 9х Слиток -> Блок
event.recipes.createCompacting(blockStack, ingotStack.withCount(matAmount))
event.recipes.greate.compacting(blockStack, ingotArray)
.recipeTier(1)
.circuitNumber(9)
.heated()
.id(`tfg:compacting/${material.getName()}_block`)
.id(`greate:compacting/${material.getName()}_block`)
}
}
else {
if (!blockStack.isEmpty()) {
if (!blockStack.isEmpty() && !blockStack.hasTag('c:hidden_from_recipe_viewers')) {
// Блок из гемов -> 9 Пластин
event.recipes.createCutting(plateStack.withCount(matAmount).withChance(0.65), blockStack)
.id(`tfg:cutting/${material.getName()}_plate`)
event.recipes.greate.cutting(plateStack.withCount(matAmount), blockStack)
.recipeTier(1)
.id(`greate:cutting/${material.getName()}_plate`)
}
}
}
@ -169,21 +202,32 @@ function registerGTCEUMetalRecipes(event) {
const processPlate = (material) => {
const item = ChemicalHelper.get(TagPrefix.plate, material, 1)
if (item.isEmpty()) return
if (item.isEmpty())
return
event.remove({ id: `gtceu:shaped/plate_${material.getName()}` })
}
const processPlateDouble = (material) => {
const item = ChemicalHelper.get(TagPrefix.plateDouble, material, 1)
if (item.isEmpty()) return
const doublePlateItem = ChemicalHelper.get(TagPrefix.plateDouble, material, 1)
if (doublePlateItem.isEmpty() || doublePlateItem.hasTag('c:hidden_from_recipe_viewers'))
return
const plateItem = ChemicalHelper.get(TagPrefix.plate, material, 1)
event.remove({ id: `gtceu:shaped/plate_double_${material.getName()}` })
if (material.getProperty(TFGPropertyKey.TFC_PROPERTY) == null) {
event.recipes.greate.compacting(doublePlateItem, [plateItem, plateItem, 'tfc:powder/flux'])
.heated()
.recipeTier(2)
.id(`greate:compacting/${material.getName()}_double_plate`)
}
}
const processBlock = (material) => {
const item = ChemicalHelper.get(TagPrefix.block, material, 1)
if (item.isEmpty()) return
if (item.isEmpty())
return
event.remove({ id: `gtceu:compressor/compress_${material.getName()}_to_block` })
}
@ -192,7 +236,7 @@ function registerGTCEUMetalRecipes(event) {
const foilItem = ChemicalHelper.get(TagPrefix.foil, material, 4)
const plateItem = ChemicalHelper.get(TagPrefix.plate, material, 1)
if (plateItem != null && foilItem != null) {
if (plateItem != null && foilItem != null && !plateItem.hasTag('c:hidden_from_recipe_viewers')) {
event.custom({
type: "createaddition:rolling",
input: plateItem,
@ -204,14 +248,27 @@ function registerGTCEUMetalRecipes(event) {
}
const processRodLong = (material) => {
const item = ChemicalHelper.get(TagPrefix.rodLong, material, 1)
if (item.isEmpty()) return
const longRodItem = ChemicalHelper.get(TagPrefix.rodLong, material, 1)
if (longRodItem.isEmpty() || longRodItem.hasTag('c:hidden_from_recipe_viewers'))
return
const shortRodItem = ChemicalHelper.get(TagPrefix.rod, material, 1)
if (shortRodItem.isEmpty() || shortRodItem.hasTag('c:hidden_from_recipe_viewers'))
return;
event.remove({ id: `gtceu:shaped/stick_long_stick_${material.getName()}` })
// Rod welding recipes for all of the other non-tfc materials, since those were handled in tfc/recipes.materials.js
if (material.getProperty(TFGPropertyKey.TFC_PROPERTY) == null) {
event.recipes.greate.compacting(longRodItem, [shortRodItem, shortRodItem, 'tfc:powder/flux'])
.heated()
.recipeTier(1)
.id(`greate:compacting/${material.getName()}_long_rod`)
}
}
const processIngotDouble = (material) => {
if (!material.hasFlag(TFGMaterialFlags.GENERATE_DOUBLE_INGOTS)) return;
if (!material.hasFlag(TFGMaterialFlags.GENERATE_DOUBLE_INGOTS))
return;
const doubleIngotStack = ChemicalHelper.get(TFGTagPrefix.ingotDouble, material, 1);
@ -242,7 +299,7 @@ function registerGTCEUMetalRecipes(event) {
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.bender(`tfg:bend_${material.getName()}_double_ingot`)
event.recipes.gtceu.bender(`tfg:bend_${material.getName()}_double_ingot_electric_only`)
.itemInputs(twoIngotStack)
.itemOutputs(doubleIngotStack)
.duration(material.getMass() * 6)
@ -307,26 +364,34 @@ function registerGTCEUMetalRecipes(event) {
.duration(10)
.EUt(16)
if (material.hasProperty(PropertyKey.GEM) && !TagPrefix.gem.isIgnored(material))
hammerRecipe.chancedOutput(ChemicalHelper.get(TagPrefix.gem, material, crushedOreItem.getCount()), 7500, 950)
else
if (material.hasProperty(PropertyKey.GEM) && !TagPrefix.gem.isIgnored(material)) {
const gemItem = ChemicalHelper.get(TagPrefix.gem, material, crushedOreItem.getCount());
hammerRecipe.chancedOutput(gemItem, 7500, 950)
event.recipes.greate.pressing(TieredOutputItem.of(gemItem).withChance(0.75).withExtraTierChance(0.095), poorOreItem)
.recipeTier(1)
.id(`greate:pressing/poor_raw_${material.getName()}_to_gem`)
}
else {
hammerRecipe.chancedOutput(crushedOreItem, 7500, 950)
event.recipes.greate.pressing(TieredOutputItem.of(crushedOreItem).withChance(0.75).withExtraTierChance(0.095), poorOreItem)
.recipeTier(1)
.id(`greate:pressing/poor_raw_${material.getName()}_to_crushed_ore`)
}
// Macerator
let maceratorRecipe = event.recipes.gtceu.macerator(`macerate_poor_raw_${material.getName()}_ore_to_crushed_ore`)
.itemInputs(poorOreItem)
.category(GTRecipeCategories.ORE_CRUSHING)
.duration(400)
.EUt(2)
if (multiplier > 1) {
maceratorRecipe.itemInputs(poorOreItem)
maceratorRecipe.itemOutputs(crushedOreItem.copyWithCount(multiplier / 2))
}
else {
// TODO: Change this when Greate fixes its bug
//maceratorRecipe.chancedOutput(crushedOreItem, 5000, 750)
maceratorRecipe.itemInputs(poorOreItem.copyWithCount(2))
maceratorRecipe.itemOutputs(crushedOreItem.copyWithCount(1))
maceratorRecipe.chancedOutput(crushedOreItem, 5000, 750)
}
maceratorRecipe.chancedOutput(crushedOreItem.copyWithCount(1), 2500, 500)
maceratorRecipe.chancedOutput(crushedOreItem.copyWithCount(1), 1250, 250)
@ -377,11 +442,24 @@ function registerGTCEUMetalRecipes(event) {
.duration(10)
.EUt(16)
if (material.hasProperty(PropertyKey.GEM) && !TagPrefix.gem.isIgnored(material))
hammerRecipe.itemOutputs(ChemicalHelper.get(TagPrefix.gem, material, crushedOreItem.getCount()))
else
if (material.hasProperty(PropertyKey.GEM) && !TagPrefix.gem.isIgnored(material)) {
const gemItem = ChemicalHelper.get(TagPrefix.gem, material, crushedOreItem.getCount())
hammerRecipe.itemOutputs(gemItem)
event.recipes.greate.pressing(gemItem, normalOreItem)
.recipeTier(1)
.id(`greate:pressing/raw_${material.getName()}_to_gem`)
}
else {
hammerRecipe.itemOutputs(crushedOreItem)
event.recipes.greate.pressing(crushedOreItem, normalOreItem)
.recipeTier(1)
.id(`greate:pressing/raw_${material.getName()}_to_crushed_ore`)
}
event.remove({ id: `greate:milling/integration/gtceu/macerator/macerate_raw_${material.getName()}_ore_to_crushed_ore` })
// Macerator
event.recipes.gtceu.macerator(`macerate_raw_${material.getName()}_ore_to_crushed_ore`)
.itemInputs(normalOreItem)
@ -396,7 +474,7 @@ function registerGTCEUMetalRecipes(event) {
// Quern
event.recipes.tfc.quern(crushedOreItem, normalOreItem)
.id(`tfg:quern/${material.getName()}_crushed_ore_from_normal_raw_ore`)
// Smelting
if (!material.hasProperty(PropertyKey.BLAST)) {
event.smelting(ingotItem, normalOreItem).id(`gtceu:smelting/smelt_raw_${material.getName()}_ore_to_ingot`)
@ -425,7 +503,7 @@ function registerGTCEUMetalRecipes(event) {
ingotItem = ChemicalHelper.get(TagPrefix.gem, smeltingMaterial, multiplier)
else
ingotItem = ChemicalHelper.get(TagPrefix.dust, smeltingMaterial, multiplier)
// Forge hammer
let hammerRecipe = event.recipes.gtceu.forge_hammer(`hammer_rich_raw_${material.getName()}_to_crushed_ore`)
.itemInputs(richOreItem)
@ -433,11 +511,22 @@ function registerGTCEUMetalRecipes(event) {
.duration(10)
.EUt(16)
if (material.hasProperty(PropertyKey.GEM) && !TagPrefix.gem.isIgnored(material))
hammerRecipe.itemOutputs(ChemicalHelper.get(TagPrefix.gem, material, crushedOreItem.getCount()))
else
if (material.hasProperty(PropertyKey.GEM) && !TagPrefix.gem.isIgnored(material)) {
const gemItem = ChemicalHelper.get(TagPrefix.gem, material, crushedOreItem.getCount())
hammerRecipe.itemOutputs(gemItem)
event.recipes.greate.pressing(gemItem, richOreItem)
.recipeTier(1)
.id(`greate:pressing/rich_raw_${material.getName()}_to_gem`)
}
else {
hammerRecipe.itemOutputs(crushedOreItem)
event.recipes.greate.pressing(crushedOreItem, richOreItem)
.recipeTier(1)
.id(`greate:pressing/rich_raw_${material.getName()}_to_crushed_ore`)
}
// Macerator
event.recipes.gtceu.macerator(`macerate_rich_raw_${material.getName()}_ore_to_crushed_ore`)
.itemInputs(richOreItem)
@ -448,11 +537,11 @@ function registerGTCEUMetalRecipes(event) {
.category(GTRecipeCategories.ORE_CRUSHING)
.duration(400)
.EUt(2)
// Quern
event.recipes.tfc.quern(crushedOreItem, richOreItem)
.id(`tfg:quern/${material.getName()}_crushed_ore_from_rich_raw_ore`)
// Smelting
if (!material.hasProperty(PropertyKey.BLAST)) {
event.smelting(ingotItem, richOreItem).id(`gtceu:smelting/smelt_rich_raw_${material.getName()}_ore_to_ingot`)
@ -461,17 +550,18 @@ function registerGTCEUMetalRecipes(event) {
const processCrushedOre = (material) => {
const crushedOreItem = ChemicalHelper.get(TagPrefix.crushed, material, 1)
const impureDustItem = ChemicalHelper.get(TagPrefix.dustImpure, material, 1)
const pureOreItem = ChemicalHelper.get(TagPrefix.crushedPurified, material, 1)
if (crushedOreItem != null && pureOreItem != null) {
// Bulk washing
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`)
// Dropping in water
event.custom({
type: "ae2:transform",
@ -485,6 +575,34 @@ function registerGTCEUMetalRecipes(event) {
result: pureOreItem.toJson()
}).id(`tfg:ae_transform/${material.getName()}_purified_ore`)
}
if (crushedOreItem != null && impureDustItem != null) {
event.recipes.greate.pressing(impureDustItem, crushedOreItem)
.recipeTier(1)
.id(`greate:pressing/crushed_${material.getName()}_to_impure_dust`)
}
}
const processPurifiedOre = (material) => {
const pureOreItem = ChemicalHelper.get(TagPrefix.crushedPurified, material, 1)
const pureDustItem = ChemicalHelper.get(TagPrefix.dustPure, material, 1)
if (pureOreItem != null && pureDustItem != null) {
event.recipes.greate.pressing(pureDustItem, pureOreItem)
.recipeTier(1)
.id(`greate:pressing/pure_crushed_${material.getName()}_to_pure_dust`)
}
}
const processRefinedOre = (material) => {
const refinedOreItem = ChemicalHelper.get(TagPrefix.crushedRefined, material, 1)
const dustItem = ChemicalHelper.get(TagPrefix.dust, material, 1)
if (refinedOreItem != null && dustItem != null) {
event.recipes.greate.pressing(dustItem, refinedOreItem)
.recipeTier(1)
.id(`greate:pressing/refined_${material.getName()}_to_dust`)
}
}
const processImpureDust = (material) => {
@ -492,7 +610,7 @@ function registerGTCEUMetalRecipes(event) {
const dustItem = ChemicalHelper.get(TagPrefix.dust, material, 1)
if (impureDustItem != null && dustItem != null) {
// Bulk washing
event.recipes.greate.splashing(dustItem, impureDustItem)
.id(`tfg:splashing/${material.getName()}_dust_from_impure`)
@ -506,7 +624,7 @@ function registerGTCEUMetalRecipes(event) {
type: 'vintageimprovements:centrifugation',
ingredients: [impureDustItem],
results: [dustItem, byproductItem],
processingTime: material.getMass() * 6 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER
processingTime: material.getMass() * 10 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER
}).id(`tfg:vi/centrifuge/${material.getName()}_dust_from_impure`)
// Dropping in water
@ -543,7 +661,7 @@ function registerGTCEUMetalRecipes(event) {
type: 'vintageimprovements:centrifugation',
ingredients: [pureDust],
results: [dustItem, byproductItem],
processingTime: material.getMass() * 6 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER
processingTime: material.getMass() * 10 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER
}).id(`tfg:vi/centrifuge/${material.getName()}_dust_from_pure`)
// Dropping in water
@ -563,6 +681,9 @@ function registerGTCEUMetalRecipes(event) {
const processGems = (material) => {
let gem = ChemicalHelper.get(TagPrefix.gem, material, 1);
if (gem.hasTag('c:hidden_from_recipe_viewers'))
return
let chipped = ChemicalHelper.get(TagPrefix.gemChipped, material, 1)
let smallDust = ChemicalHelper.get(TagPrefix.dustSmall, material, 1)
@ -571,14 +692,18 @@ function registerGTCEUMetalRecipes(event) {
.id(`shapeless/${material.getName()}_bud_indicator`)
event.shaped(smallDust,
[ 'A', 'B' ],
{ A: chipped, B: '#forge:tools/mortars'})
['A', 'B'],
{ A: chipped, B: '#forge:tools/mortars' })
.id(`shapeless/mortar_chipped_${material.getName()}`)
event.recipes.greate.pressing(ChemicalHelper.get(TagPrefix.gem, material, 9), ChemicalHelper.get(TagPrefix.block, material, 1))
.recipeTier(0)
.id(`greate:pressing/unpacking_${material.getName()}_block`)
}
const processAnvil = (material) => {
const anvilStack = ChemicalHelper.get(TFGTagPrefix.anvil, material, 1)
if (anvilStack == null)
if (anvilStack == null)
return;
event.recipes.gtceu.macerator(`tfg:macerate_${material.getName()}_anvil`)
@ -600,7 +725,7 @@ function registerGTCEUMetalRecipes(event) {
.outputFluids(Fluid.of(material.getFluid(), 14 * 144))
.duration(material.getMass() * 32)
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
.EUt(material.hasProperty(PropertyKey.BLAST) ? GTValues.VA[GTValues.MV] : GTValues.VA[GTValues.ULV])
event.recipes.gtceu.alloy_smelter(`tfg:cast_${material.getName()}_anvil`)
.itemInputs(ChemicalHelper.get(TagPrefix.ingot, material, 14))
@ -620,7 +745,7 @@ function registerGTCEUMetalRecipes(event) {
const processLamp = (material) => {
const finishedLampStack = ChemicalHelper.get(TFGTagPrefix.lamp, material, 1)
if (finishedLampStack == null)
if (finishedLampStack == null)
return;
const materialDustStack = ChemicalHelper.get(TagPrefix.dust, material, 1)
@ -676,7 +801,7 @@ function registerGTCEUMetalRecipes(event) {
.outputFluids(Fluid.of(material.getFluid(), 144))
.duration(material.getMass() * 8)
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
.EUt(material.hasProperty(PropertyKey.BLAST) ? GTValues.VA[GTValues.MV] : GTValues.VA[GTValues.ULV])
event.recipes.gtceu.alloy_smelter(`tfg:cast_${material.getName()}_unfinished_lamp`)
.itemInputs(materialIngotStack)
@ -721,7 +846,7 @@ function registerGTCEUMetalRecipes(event) {
.outputFluids(Fluid.of(material.getFluid(), 144))
.duration(material.getMass() * 7)
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
.EUt(material.hasProperty(PropertyKey.BLAST) ? GTValues.VA[GTValues.MV] : GTValues.VA[GTValues.ULV])
event.recipes.gtceu.alloy_smelter(`tfg:cast_${material.getName()}_trapdoor`)
.itemInputs(materialIngotStack)
@ -769,7 +894,7 @@ function registerGTCEUMetalRecipes(event) {
.outputFluids(Fluid.of(material.getFluid(), 9))
.duration(material.getMass() * 3)
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
.EUt(material.hasProperty(PropertyKey.BLAST) ? GTValues.VA[GTValues.MV] : GTValues.VA[GTValues.ULV])
event.recipes.gtceu.alloy_smelter(`tfg:cast_${material.getName()}_chain`)
.itemInputs(materialIngotStack)
@ -834,7 +959,7 @@ function registerGTCEUMetalRecipes(event) {
const processBars = (material) => {
const barsStack = ChemicalHelper.get(TFGTagPrefix.bars, material, 4)
const ingotStack = ChemicalHelper.get(TagPrefix.ingot, material, 1)
const ingotStack = ChemicalHelper.get(TagPrefix.ingot, material, 1)
if (barsStack == null)
return;
@ -845,33 +970,96 @@ function registerGTCEUMetalRecipes(event) {
.EUt(GTValues.VA[GTValues.LV])
}
const processBuzzsawBlade = (material) => {
const buzzsawBladeItem = ChemicalHelper.get(TagPrefix.toolHeadBuzzSaw, material, 1)
const doublePlateItem = ChemicalHelper.get(TagPrefix.plateDouble, material, 1)
if (buzzsawBladeItem == null || doublePlateItem == null)
return;
var isLowTier = material == GTMaterials.CobaltBrass || material.hasProperty(TFGPropertyKey.TFC_PROPERTY)
event.recipes.gtceu.lathe(`buzzsaw_gear_${material.getName()}`)
.itemInputs(doublePlateItem)
.itemOutputs(buzzsawBladeItem)
.duration(material.getMass() * 6)
.EUt(GTValues.VA[isLowTier ? GTValues.LV : GTValues.MV])
if (isLowTier) {
event.custom({
type: 'vintageimprovements:turning',
ingredients: [doublePlateItem],
results: [buzzsawBladeItem],
processingTime: material.getMass() * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER
}).id(`tfg:vi/lathe/${material.getName()}_buzzsaw`)
}
event.remove({ id: `gtceu:shaped/buzzsaw_blade_${material.getName()}` })
}
const removePowerToolRecycling = (material) => {
removeMaceratorRecipe(event, `macerate_lv_${material.getName()}_wrench`)
event.remove({ id: `gtceu:arc_furnace/arc_lv_${material.getName()}_wrench` })
removeMaceratorRecipe(event, `macerate_hv_${material.getName()}_wrench`)
event.remove({ id: `gtceu:arc_furnace/arc_hv_${material.getName()}_wrench` })
removeMaceratorRecipe(event, `macerate_iv_${material.getName()}_wrench`)
event.remove({ id: `gtceu:arc_furnace/arc_iv_${material.getName()}_wrench` })
removeMaceratorRecipe(event, `macerate_lv_${material.getName()}_chainsaw`)
event.remove({ id: `gtceu:arc_furnace/arc_lv_${material.getName()}_chainsaw` })
removeMaceratorRecipe(event, `macerate_lv_${material.getName()}_buzzsaw`)
event.remove({ id: `gtceu:arc_furnace/arc_lv_${material.getName()}_buzzsaw` })
removeMaceratorRecipe(event, `macerate_lv_${material.getName()}_drill`)
event.remove({ id: `gtceu:arc_furnace/arc_lv_${material.getName()}_drill` })
removeMaceratorRecipe(event, `macerate_mv_${material.getName()}_drill`)
event.remove({ id: `gtceu:arc_furnace/arc_mv_${material.getName()}_drill` })
removeMaceratorRecipe(event, `macerate_hv_${material.getName()}_drill`)
event.remove({ id: `gtceu:arc_furnace/arc_hv_${material.getName()}_drill` })
removeMaceratorRecipe(event, `macerate_ev_${material.getName()}_drill`)
event.remove({ id: `gtceu:arc_furnace/arc_ev_${material.getName()}_drill` })
removeMaceratorRecipe(event, `macerate_iv_${material.getName()}_drill`)
event.remove({ id: `gtceu:arc_furnace/arc_iv_${material.getName()}_drill` })
removeMaceratorRecipe(event, `macerate_lv_${material.getName()}_screwdriver`)
event.remove({ id: `gtceu:arc_furnace/arc_lv_${material.getName()}_screwdriver` })
removeMaceratorRecipe(event, `macerate_lv_${material.getName()}_wirecutter`)
event.remove({ id: `gtceu:arc_furnace/arc_lv_${material.getName()}_wirecutter` })
removeMaceratorRecipe(event, `macerate_hv_${material.getName()}_wirecutter`)
event.remove({ id: `gtceu:arc_furnace/arc_hv_${material.getName()}_wirecutter` })
removeMaceratorRecipe(event, `macerate_iv_${material.getName()}_wirecutter`)
event.remove({ id: `gtceu:arc_furnace/arc_iv_${material.getName()}_wirecutter` })
}
forEachMaterial(material => {
const toolProperty = material.getProperty(PropertyKey.TOOL)
const ingotProperty = material.getProperty(PropertyKey.INGOT)
const oreProperty = material.getProperty(PropertyKey.ORE)
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)
let circuit = 1;
makeToolRecipe(GTToolType.SWORD, TFGTagPrefix.toolHeadSword, 'tfg:sword_head_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.PICKAXE, TFGTagPrefix.toolHeadPickaxe, 'tfg:pickaxe_head_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.AXE, TFGTagPrefix.toolHeadAxe, 'tfg:axe_head_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.SHOVEL, TFGTagPrefix.toolHeadShovel, 'tfg:shovel_head_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.HOE, TFGTagPrefix.toolHeadHoe, 'tfg:hoe_head_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.KNIFE, TFGTagPrefix.toolHeadKnife, 'tfg:knife_head_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.FILE, TFGTagPrefix.toolHeadFile, 'tfg:file_head_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.SAW, TFGTagPrefix.toolHeadSaw, 'tfg:saw_head_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.SPADE, TFGTagPrefix.toolHeadSpade, 'tfg:spade_head_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.MINING_HAMMER, TFGTagPrefix.toolHeadMiningHammer, 'tfg:mining_hammer_head_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.SCYTHE, TFGTagPrefix.toolHeadScythe, 'tfg:scythe_head_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.HARD_HAMMER, TFGTagPrefix.toolHeadHammer, 'tfg:hammer_head_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.SCREWDRIVER, TagPrefix.toolHeadScrewdriver, 'tfg:screwdriver_tip_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.WRENCH, TagPrefix.toolHeadWrench, 'tfg:wrench_tip_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.WIRE_CUTTER, TagPrefix.toolHeadWireCutter, 'tfg:wire_cutter_extruder_mold', circuit++, 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)
processToolHead(TFGTagPrefix.toolHeadPropick, 'tfg:propick_head_extruder_mold', circuit++, material)
processToolHead(TFGTagPrefix.toolHeadJavelin, 'tfg:javelin_head_extruder_mold', circuit++, material)
processToolHead(TFGTagPrefix.toolHeadChisel, 'tfg:chisel_head_extruder_mold', circuit++, material)
processToolHead(TFGTagPrefix.toolHeadMace, 'tfg:mace_head_extruder_mold', circuit++, material)
processToolHead(TFGTagPrefix.toolHeadMattock, 'tfg:mattock_head_extruder_mold', circuit++, material)
processToolHead(TFGTagPrefix.toolHeadHook, 'tfg:fish_hook_extruder_mold', circuit++, material)
removePowerToolRecycling(material)
}
if (ingotProperty != null) {
@ -889,6 +1077,10 @@ function registerGTCEUMetalRecipes(event) {
processChain(material)
processBell(material)
processBars(material)
processBuzzsawBlade(material)
event.remove({ id: `gtceu:shaped/spring_${material.getName()}` })
event.remove({ id: `gtceu:shaped/spring_small_${material.getName()}` })
}
if (oreProperty != null) {
@ -899,16 +1091,18 @@ function registerGTCEUMetalRecipes(event) {
processRichRawOre(material)
processCrushedOre(material)
processPurifiedOre(material)
processRefinedOre(material)
processImpureDust(material)
processPureDust(material)
if (material.hasProperty(PropertyKey.GEM)) {
processGems(material)
}
// Indicators
event.replaceInput({ id: `gtceu:shaped/${material.getName()}_surface_indicator`},
event.replaceInput({ id: `gtceu:shaped/${material.getName()}_surface_indicator` },
'minecraft:gravel', '#tfc:rock/gravel')
}
})
}
}

View file

@ -215,4 +215,25 @@ function registerGTCEURecyclingRecipes(event) {
.duration(1792)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Clean Foil pack
event.recipes.gtceu.macerator('gtceu:macerator/recycling/clean_foil_pack')
.itemInputs('tfg:clean_foil_pack')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Aluminium, 1),
ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Polyethylene, 1)
)
.duration(GTMaterials.Aluminium.getMass() * 1)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/recycling/clean_foil_pack')
.itemInputs('tfg:clean_foil_pack')
.itemOutputs(
ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Aluminium, 2),
ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Ash, 1)
)
.duration(GTMaterials.Aluminium.getMass() * 1)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
}

View file

@ -12,41 +12,41 @@ function removeGTCEURecipes(event) {
//#region Выход: Крошечная кучка камня
event.remove({ id: 'gtceu:macerator/macerate_stone_button' })
removeMaceratorRecipe(event, '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' })
removeMaceratorRecipe(event, 'macerate_stone_stairs')
removeMaceratorRecipe(event, 'macerate_stone_slab')
removeMaceratorRecipe(event, 'macerate_stone_brick_stairs')
removeMaceratorRecipe(event, 'macerate_stone_brick_slab')
removeMaceratorRecipe(event, 'macerate_sandstone_stairs')
removeMaceratorRecipe(event, 'macerate_sandstone_slab')
removeMaceratorRecipe(event, 'macerate_red_sandstone_stairs')
removeMaceratorRecipe(event, 'macerate_red_sandstone_slab')
removeMaceratorRecipe(event, 'macerate_granite')
removeMaceratorRecipe(event, 'macerate_diorite')
removeMaceratorRecipe(event, 'macerate_cobblestone_slab')
removeMaceratorRecipe(event, 'macerate_andesite')
//#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' })
removeMaceratorRecipe(event, 'macerate_stone_sword')
removeMaceratorRecipe(event, 'macerate_stone_shovel')
removeMaceratorRecipe(event, 'macerate_stone_pressure_plate')
removeMaceratorRecipe(event, 'macerate_stone_pickaxe')
removeMaceratorRecipe(event, 'macerate_stone_hoe')
removeMaceratorRecipe(event, 'macerate_stone_bricks')
removeMaceratorRecipe(event, 'macerate_stone_axe')
removeMaceratorRecipe(event, 'macerate_mossy_cobblestone')
removeMaceratorRecipe(event, 'macerate_cobblestone_wall')
removeMaceratorRecipe(event, 'macerate_cobblestone')
removeMaceratorRecipe(event, 'gravel_to_flint')
removeMaceratorRecipe(event, 'macerate_furnace')
//#endregion
@ -60,9 +60,9 @@ function removeGTCEURecipes(event) {
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' })
removeCutterRecipe(event, 'cut_cobbled_deepslate_into_slab')
removeCutterRecipe(event, 'cut_cobbled_deepslate_into_slab_water')
removeCutterRecipe(event, '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' })
@ -74,9 +74,9 @@ function removeGTCEURecipes(event) {
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' })
removeCutterRecipe(event, 'cut_polished_deepslate_into_slab')
removeCutterRecipe(event, 'cut_polished_deepslate_into_slab_water')
removeCutterRecipe(event, 'cut_polished_deepslate_into_slab_distilled_water')
event.remove({ id: 'gtceu:shaped/deepslate_bricks_hammer' })
event.remove({ id: 'gtceu:shaped/deepslate_bricks_stair_saw' })
@ -86,9 +86,9 @@ function removeGTCEURecipes(event) {
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' })
removeCutterRecipe(event, 'cut_deepslate_bricks_into_slab')
removeCutterRecipe(event, 'cut_deepslate_bricks_into_slab_water')
removeCutterRecipe(event, 'cut_deepslate_bricks_into_slab_distilled_water')
event.remove({ id: 'gtceu:shaped/deepslate_tile_hammer' })
event.remove({ id: 'gtceu:shaped/deepslate_tile_stair_saw' })
@ -98,11 +98,11 @@ function removeGTCEURecipes(event) {
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' })
removeCutterRecipe(event, 'cut_deepslate_tile_into_slab')
removeCutterRecipe(event, 'cut_deepslate_tile_into_slab_water')
removeCutterRecipe(event, 'cut_deepslate_tile_into_slab_distilled_water')
event.remove({ id: 'gtceu:macerator/macerate_deepslate' })
removeMaceratorRecipe(event, 'macerate_deepslate')
event.remove({ id: 'gtceu:rock_breaker/deepslate' })
// #endregion
@ -116,9 +116,9 @@ function removeGTCEURecipes(event) {
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' })
removeCutterRecipe(event, 'cut_blackstone_into_slab')
removeCutterRecipe(event, 'cut_blackstone_into_slab_water')
removeCutterRecipe(event, 'cut_blackstone_into_slab_distilled_water')
event.remove({ id: 'gtceu:shaped/polished_blackstone_hammer' })
event.remove({ id: 'gtceu:shaped/polished_blackstone_stair_saw' })
@ -128,9 +128,9 @@ function removeGTCEURecipes(event) {
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' })
removeCutterRecipe(event, 'cut_polished_blackstone_into_slab')
removeCutterRecipe(event, 'cut_polished_blackstone_into_slab_water')
removeCutterRecipe(event, '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' })
@ -143,9 +143,9 @@ function removeGTCEURecipes(event) {
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' })
removeCutterRecipe(event, 'cut_polished_blackstone_brick_into_slab')
removeCutterRecipe(event, 'cut_polished_blackstone_brick_into_slab_water')
removeCutterRecipe(event, 'cut_polished_blackstone_brick_into_slab_distilled_water')
event.remove({ id: 'gtceu:rock_breaker/blackstone' })
@ -225,122 +225,122 @@ function removeGTCEURecipes(event) {
// #endregion
//#region Выход: Крошечная кучка дерева
//#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' })
removeMaceratorRecipe(event, 'macerate_warped_button')
removeMaceratorRecipe(event, 'macerate_spruce_button')
removeMaceratorRecipe(event, 'macerate_oak_button')
removeMaceratorRecipe(event, 'macerate_mangrove_button')
removeMaceratorRecipe(event, 'macerate_jungle_button')
removeMaceratorRecipe(event, 'macerate_dark_oak_button')
removeMaceratorRecipe(event, 'macerate_crimson_button')
removeMaceratorRecipe(event, 'macerate_cherry_button')
removeMaceratorRecipe(event, 'macerate_birch_button')
removeMaceratorRecipe(event, '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' })
removeMaceratorRecipe(event, 'macerate_wooden_sword')
removeMaceratorRecipe(event, 'macerate_wooden_shovel')
removeMaceratorRecipe(event, 'macerate_wooden_pickaxe')
removeMaceratorRecipe(event, 'macerate_wooden_hoe')
removeMaceratorRecipe(event, 'macerate_wooden_axe')
removeMaceratorRecipe(event, 'macerate_warped_stairs')
removeMaceratorRecipe(event, 'macerate_warped_slab')
removeMaceratorRecipe(event, 'macerate_spruce_stairs')
removeMaceratorRecipe(event, 'macerate_spruce_slab')
removeMaceratorRecipe(event, 'macerate_oak_stairs')
removeMaceratorRecipe(event, 'macerate_oak_slab')
removeMaceratorRecipe(event, 'macerate_mangrove_stairs')
removeMaceratorRecipe(event, 'macerate_mangrove_slab')
removeMaceratorRecipe(event, 'macerate_jungle_stairs')
removeMaceratorRecipe(event, 'macerate_jungle_slab')
removeMaceratorRecipe(event, 'macerate_iron_sword')
removeMaceratorRecipe(event, 'macerate_iron_shovel')
removeMaceratorRecipe(event, 'macerate_iron_pickaxe')
removeMaceratorRecipe(event, 'macerate_iron_hoe')
removeMaceratorRecipe(event, 'macerate_iron_axe')
removeMaceratorRecipe(event, 'macerate_golden_sword')
removeMaceratorRecipe(event, 'macerate_golden_shovel')
removeMaceratorRecipe(event, 'macerate_golden_pickaxe')
removeMaceratorRecipe(event, 'macerate_golden_hoe')
removeMaceratorRecipe(event, 'macerate_golden_axe')
removeMaceratorRecipe(event, 'macerate_diamond_sword')
removeMaceratorRecipe(event, 'macerate_diamond_shovel')
removeMaceratorRecipe(event, 'macerate_diamond_pickaxe')
removeMaceratorRecipe(event, 'macerate_diamond_hoe')
removeMaceratorRecipe(event, 'macerate_diamond_axe')
removeMaceratorRecipe(event, 'macerate_dark_oak_stairs')
removeMaceratorRecipe(event, 'macerate_dark_oak_slab')
removeMaceratorRecipe(event, 'macerate_crimson_stairs')
removeMaceratorRecipe(event, 'macerate_crimson_slab')
removeMaceratorRecipe(event, 'macerate_cherry_stairs')
removeMaceratorRecipe(event, 'macerate_cherry_slab')
removeMaceratorRecipe(event, 'macerate_birch_stairs')
removeMaceratorRecipe(event, 'macerate_birch_slab')
removeMaceratorRecipe(event, 'macerate_acacia_stairs')
removeMaceratorRecipe(event, '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' })
removeMaceratorRecipe(event, 'macerate_trapped_chest')
removeMaceratorRecipe(event, 'macerate_spruce_planks')
removeMaceratorRecipe(event, 'macerate_spruce_fence_gate')
removeMaceratorRecipe(event, 'macerate_spruce_fence')
removeMaceratorRecipe(event, 'macerate_spruce_door')
removeMaceratorRecipe(event, 'macerate_spruce_boat')
removeMaceratorRecipe(event, 'macerate_oak_planks')
removeMaceratorRecipe(event, 'macerate_oak_fence_gate')
removeMaceratorRecipe(event, 'macerate_oak_fence')
removeMaceratorRecipe(event, 'macerate_oak_door')
removeMaceratorRecipe(event, 'macerate_oak_boat')
removeMaceratorRecipe(event, 'macerate_mangrove_planks')
removeMaceratorRecipe(event, 'macerate_mangrove_fence_gate')
removeMaceratorRecipe(event, 'macerate_mangrove_fence')
removeMaceratorRecipe(event, 'macerate_mangrove_door')
removeMaceratorRecipe(event, 'macerate_mangrove_boat')
removeMaceratorRecipe(event, 'macerate_jungle_planks')
removeMaceratorRecipe(event, 'macerate_jungle_fence_gate')
removeMaceratorRecipe(event, 'macerate_jungle_fence')
removeMaceratorRecipe(event, 'macerate_jungle_door')
removeMaceratorRecipe(event, 'macerate_jungle_boat')
removeMaceratorRecipe(event, 'macerate_dark_oak_planks')
removeMaceratorRecipe(event, 'macerate_dark_oak_fence_gate')
removeMaceratorRecipe(event, 'macerate_dark_oak_fence')
removeMaceratorRecipe(event, 'macerate_dark_oak_door')
removeMaceratorRecipe(event, 'macerate_dark_oak_boat')
removeMaceratorRecipe(event, 'macerate_crafting_table')
removeMaceratorRecipe(event, 'macerate_chest')
removeMaceratorRecipe(event, 'macerate_chest_minecart')
removeMaceratorRecipe(event, 'macerate_cherry_planks')
removeMaceratorRecipe(event, 'macerate_cherry_fence_gate')
removeMaceratorRecipe(event, 'macerate_cherry_fence')
removeMaceratorRecipe(event, 'macerate_cherry_door')
removeMaceratorRecipe(event, 'macerate_cherry_boat')
removeMaceratorRecipe(event, 'macerate_bookshelf')
removeMaceratorRecipe(event, 'macerate_birch_planks')
removeMaceratorRecipe(event, 'macerate_birch_fence_gate')
removeMaceratorRecipe(event, 'macerate_birch_fence')
removeMaceratorRecipe(event, 'macerate_birch_door')
removeMaceratorRecipe(event, 'macerate_birch_boat')
removeMaceratorRecipe(event, 'macerate_acacia_planks')
removeMaceratorRecipe(event, 'macerate_acacia_fence_gate')
removeMaceratorRecipe(event, 'macerate_acacia_fence')
removeMaceratorRecipe(event, 'macerate_acacia_door')
removeMaceratorRecipe(event, 'macerate_acacia_boat')
removeMaceratorRecipe(event, 'macerate_bamboo_raft')
removeMaceratorRecipe(event, 'macerate_crimson_door')
removeMaceratorRecipe(event, 'macerate_crimson_fence')
removeMaceratorRecipe(event, 'macerate_crimson_fence_gate')
removeMaceratorRecipe(event, 'macerate_crimson_planks')
removeMaceratorRecipe(event, 'macerate_warped_door')
removeMaceratorRecipe(event, 'macerate_warped_fence')
removeMaceratorRecipe(event, 'macerate_warped_fence_gate')
removeMaceratorRecipe(event, 'macerate_warped_planks')
//#endregion
@ -353,24 +353,19 @@ function removeGTCEURecipes(event) {
//#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' })
removeMaceratorRecipe(event, 'macerate_steak')
removeMaceratorRecipe(event, 'macerate_rabbit')
removeMaceratorRecipe(event, 'macerate_pork_chop')
removeMaceratorRecipe(event, 'macerate_mutton')
removeMaceratorRecipe(event, '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' })
removeMaceratorRecipe(event, 'macerate_wheat')
removeMaceratorRecipe(event, 'macerate_hay_block')
//#endregion
@ -394,19 +389,19 @@ function removeGTCEURecipes(event) {
//#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' })
removeMaceratorRecipe(event, 'macerate_iron_trapdoor')
removeMaceratorRecipe(event, 'macerate_damaged_anvil')
removeMaceratorRecipe(event, 'macerate_chipped_anvil')
removeMaceratorRecipe(event, 'macerate_anvil')
removeMaceratorRecipe(event, 'macerate_furnace_minecart')
removeMaceratorRecipe(event, 'macerate_bucket')
removeMaceratorRecipe(event, 'macerate_compass')
//#endregion
//#region Выход: Крошечная железная пыль
event.remove({ id: 'gtceu:macerator/macerate_iron_bars' })
removeMaceratorRecipe(event, 'macerate_iron_bars')
//#endregion
@ -418,14 +413,14 @@ function removeGTCEURecipes(event) {
//#region Выход: Пыль незерака
event.remove({ id: 'gtceu:macerator/macerate_nether_brick_stairs' })
event.remove({ id: 'gtceu:macerator/macerate_nether_brick_slab' })
removeMaceratorRecipe(event, 'macerate_nether_brick_stairs')
removeMaceratorRecipe(event, 'macerate_nether_brick_slab')
//#endregion
//#region Выход: Пыль базальта
event.remove({ id: 'gtceu:macerator/macerate_basalt' })
removeMaceratorRecipe(event, 'macerate_basalt')
//#endregion
@ -439,48 +434,47 @@ function removeGTCEURecipes(event) {
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' })
removeMaceratorRecipe(event, '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' })
removeMaceratorRecipe(event, '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' })
removeMaceratorRecipe(event, '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' })
removeMaceratorRecipe(event, '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' })
removeMaceratorRecipe(event, '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' })
removeMaceratorRecipe(event, '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' })
removeMaceratorRecipe(event, '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' })
removeMaceratorRecipe(event, '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' })
removeMaceratorRecipe(event, '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' })
removeMaceratorRecipe(event, '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' })
removeMaceratorRecipe(event, 'macerate_steam_miner_steel')
// #endregion
@ -496,7 +490,7 @@ function removeGTCEURecipes(event) {
// Удаление рецептов связанных с Primitive Blast Furnace
event.remove({ id: 'gtceu:arc_furnace/arc_primitive_blast_furnace' })
event.remove({ id: 'gtceu:macerator/macerate_primitive_blast_furnace' })
removeMaceratorRecipe(event, 'macerate_primitive_blast_furnace')
// Удаление рецепта беск. воды кавера
event.remove('gtceu:assembler/cover_infinite_water')
@ -510,16 +504,16 @@ function removeGTCEURecipes(event) {
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' })
removeMaceratorRecipe(event, 'macerate_wood_drum')
// Удаление рецептов связанных с FireBricks
event.remove({ id: 'gtceu:shaped/casing_primitive_bricks' })
event.remove({ id: 'gtceu:macerator/macerate_firebricks' })
removeMaceratorRecipe(event, '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' })
removeMaceratorRecipe(event, 'macerate_firebrick')
// Clay from mud
event.remove({ id: 'gtceu:compressor/mud_to_clay' })
@ -604,6 +598,7 @@ function removeGTCEURecipes(event) {
event.remove({ id: 'gtceu:shaped/pickaxe_iron' })
event.remove({ id: 'gtceu:shaped/gear_diamond' })
event.remove({ id: 'gtceu:shaped/buzzsaw_blade_diamond' })
event.remove({ id: 'gtceu:shaped/purpur_stair_saw' })
event.remove({ id: 'gtceu:shapeless/glass_full_dust_flint' })
@ -626,6 +621,7 @@ function removeGTCEURecipes(event) {
event.remove({ id: 'gtceu:assembler/spyglass' })
event.remove({ id: 'gtceu:assembler/map' })
event.remove({ id: 'gtceu:assembler/spyglass' })
event.remove({ id: 'gtceu:assembler/assemble_purpur_into_stair' })
event.remove({ id: 'gtceu:chemical_reactor/ghast_tear_separation' })
@ -633,11 +629,22 @@ function removeGTCEURecipes(event) {
event.remove({ id: 'gtceu:assembler/assemble_brick_into_wall' })
event.remove({ id: 'gtceu:compressor/bricks' })
event.remove({ id: 'gtceu:extractor/bricks_extraction' })
event.remove({ id: 'gtceu:macerator/macerate_bricks' })
event.remove({ id: 'gtceu:macerator/macerate_brick_stairs' })
event.remove({ id: 'gtceu:macerator/macerate_brick_slab' })
event.remove({ id: 'gtceu:macerator/macerate_brick_wall' })
event.remove({ id: 'gtceu:macerator/macerate_flower_pot' })
removeMaceratorRecipe(event, 'macerate_bricks')
removeMaceratorRecipe(event, 'macerate_brick_stairs')
removeMaceratorRecipe(event, 'macerate_brick_slab')
removeMaceratorRecipe(event, 'macerate_brick_wall')
removeMaceratorRecipe(event, 'macerate_flower_pot')
removeMaceratorRecipe(event, 'macerate_treated_wood_fence_gate')
removeMaceratorRecipe(event, 'macerate_long_treated_wood_rod')
removeMaceratorRecipe(event, 'macerate_treated_wood_normal_fluid_pipe')
removeMaceratorRecipe(event, 'macerate_treated_wood_large_fluid_pipe')
removeMaceratorRecipe(event, 'macerate_treated_wood_small_fluid_pipe')
removeMaceratorRecipe(event, 'macerate_treated_wood_door')
removeMaceratorRecipe(event, 'macerate_treated_wood_frame')
removeMaceratorRecipe(event, 'macerate_treated_wood_fence')
removeMaceratorRecipe(event, 'macerate_treated_wood_boat')
removeMaceratorRecipe(event, 'macerate_treated_wood_chest_boat')
event.remove({ id: 'gtceu:centrifuge/decomposition_centrifuging__fireclay' })
@ -651,4 +658,30 @@ function removeGTCEURecipes(event) {
event.remove({ id: 'gtceu:chemical_bath/red_steel_cool_down_distilled_water' })
event.remove({ id: 'gtceu:chemical_bath/blue_steel_cool_down' })
event.remove({ id: 'gtceu:chemical_bath/blue_steel_cool_down_distilled_water' })
event.remove({ id: 'gtceu:compressor/compress_certus_quartz_to_raw_ore_block' })
event.remove({ id: 'gtceu:compressor/glowstone' })
event.remove({ id: 'gtceu:forming_press/form_purpur_slab_into_pillar' })
event.remove({ id: 'gtceu:rock_breaker/red_granite' })
// Remove vanilla Eye of Ender
event.remove({ id: 'minecraft:ender_eye' })
// Remove old treated plank and wood plank recipe
event.remove({ id: 'gtceu:compressor/compress_plate_dust_wood' })
event.remove({ id: 'gtceu:compressor/compress_plate_dust_treated_wood'})
}
function removeMaceratorRecipe(event, id) {
event.remove({ id: `gtceu:macerator/${id}` })
event.remove({ id: `greate:milling/integration/gtceu/macerator/${id}` })
}
function removeCutterRecipe(event, id) {
event.remove({ id: `gtceu:cutter/${id}` })
event.remove({ id: `greate:cutting/integration/gtceu/cutter/${id}` })
}

View file

@ -120,7 +120,7 @@ function registerGTCEuTFCMetalsRecipes(event)
.EUt(30)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
event.remove({ id: 'gtceu:macerator/macerate_hp_steam_forge_hammer' })
removeMaceratorRecipe(event, 'macerate_hp_steam_forge_hammer')
event.recipes.gtceu.macerator('tfg:macerate_hp_steam_forge_hammer')
.itemInputs('1x gtceu:hp_steam_forge_hammer')
.itemOutputs('7x gtceu:wrought_iron_dust', '2x gtceu:steel_dust', '2x gtceu:tin_alloy_dust', '12x gtceu:brick_dust', '1x #forge:dusts/black_steel')
@ -136,7 +136,7 @@ function registerGTCEuTFCMetalsRecipes(event)
.EUt(30)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
event.remove({ id: 'gtceu:macerator/macerate_hp_steam_extractor' })
removeMaceratorRecipe(event, 'macerate_hp_steam_extractor')
event.recipes.gtceu.macerator('tfg:macerate_hp_steam_extractor')
.itemInputs('1x gtceu:hp_steam_extractor')
.itemOutputs('7x gtceu:wrought_iron_dust', '2x gtceu:steel_dust', '2x gtceu:tin_alloy_dust', '12x gtceu:brick_dust')
@ -152,7 +152,7 @@ function registerGTCEuTFCMetalsRecipes(event)
.EUt(30)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
event.remove({ id: 'gtceu:macerator/macerate_hp_steam_macerator' })
removeMaceratorRecipe(event, 'macerate_hp_steam_macerator')
event.recipes.gtceu.macerator('tfg:macerate_hp_steam_macerator')
.itemInputs('1x gtceu:hp_steam_macerator')
.itemOutputs('7x gtceu:wrought_iron_dust', '2x gtceu:steel_dust', '1x #forge:dusts/black_steel', '1x gtceu:tin_alloy_dust', '12x gtceu:brick_dust')
@ -168,7 +168,7 @@ function registerGTCEuTFCMetalsRecipes(event)
.EUt(30)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
event.remove({ id: 'gtceu:macerator/macerate_hp_steam_compressor' })
removeMaceratorRecipe(event, 'macerate_hp_steam_compressor')
event.recipes.gtceu.macerator('tfg:macerate_hp_steam_compressor')
.itemInputs('1x gtceu:hp_steam_compressor')
.itemOutputs('8x gtceu:wrought_iron_dust', '1x gtceu:steel_dust', '2x gtceu:tin_alloy_dust', '12x gtceu:brick_dust')
@ -184,7 +184,7 @@ function registerGTCEuTFCMetalsRecipes(event)
.EUt(30)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
event.remove({ id: 'gtceu:macerator/macerate_hp_steam_furnace' })
removeMaceratorRecipe(event, 'macerate_hp_steam_furnace')
event.recipes.gtceu.macerator('tfg:macerate_hp_steam_furnace')
.itemInputs('1x gtceu:hp_steam_furnace')
.itemOutputs('7x gtceu:wrought_iron_dust', '2x gtceu:tin_alloy_dust', '1x gtceu:steel_dust', '1x #forge:dusts/black_steel', '12x gtceu:brick_dust')
@ -200,7 +200,7 @@ function registerGTCEuTFCMetalsRecipes(event)
.EUt(30)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
event.remove({ id: 'gtceu:macerator/macerate_hp_steam_alloy_smelter' })
removeMaceratorRecipe(event, 'macerate_hp_steam_alloy_smelter')
event.recipes.gtceu.macerator('tfg:macerate_hp_steam_alloy_smelter')
.itemInputs('1x gtceu:hp_steam_alloy_smelter')
.itemOutputs('7x gtceu:wrought_iron_dust', '3x gtceu:steel_dust', '1x gtceu:tin_alloy_dust', '1x #forge:dusts/black_steel', '12x gtceu:brick_dust')
@ -216,7 +216,7 @@ function registerGTCEuTFCMetalsRecipes(event)
.EUt(30)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
event.remove({ id: 'gtceu:macerator/macerate_hp_steam_rock_crusher' })
removeMaceratorRecipe(event, 'macerate_hp_steam_rock_crusher')
event.recipes.gtceu.macerator('tfg:macerate_hp_steam_rock_crusher')
.itemInputs('1x gtceu:hp_steam_rock_crusher')
.itemOutputs('6x gtceu:wrought_iron_dust', '2x gtceu:tin_alloy_dust', '12x gtceu:brick_dust')
@ -232,7 +232,7 @@ function registerGTCEuTFCMetalsRecipes(event)
.EUt(30)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
event.remove({ id: 'gtceu:macerator/macerate_hp_steam_miner' })
removeMaceratorRecipe(event, 'macerate_hp_steam_miner')
event.recipes.gtceu.macerator('tfg:macerate_hp_steam_miner')
.itemInputs('1x gtceu:hp_steam_miner')
.itemOutputs('7x gtceu:wrought_iron_dust', '2x gtceu:tin_alloy_dust', '1x #forge:dusts/steel', '12x gtceu:brick_dust')
@ -248,7 +248,7 @@ function registerGTCEuTFCMetalsRecipes(event)
.EUt(30)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
event.remove({ id: 'gtceu:macerator/macerate_hp_steam_solid_boiler' })
removeMaceratorRecipe(event, 'macerate_hp_steam_solid_boiler')
event.recipes.gtceu.macerator('tfg:macerate_hp_steam_solid_boiler')
.itemInputs('1x gtceu:hp_steam_solid_boiler')
.itemOutputs('5x gtceu:wrought_iron_dust', '4x #forge:dusts/steel', '2x gtceu:tin_alloy_dust', '12x gtceu:brick_dust')
@ -264,7 +264,7 @@ function registerGTCEuTFCMetalsRecipes(event)
.EUt(30)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
event.remove({ id: 'gtceu:macerator/macerate_hp_steam_liquid_boiler' })
removeMaceratorRecipe(event, 'macerate_hp_steam_liquid_boiler')
event.recipes.gtceu.macerator('tfg:macerate_hp_steam_liquid_boiler')
.itemInputs('1x gtceu:hp_steam_liquid_boiler')
.itemOutputs('5x gtceu:wrought_iron_dust', '4x #forge:dusts/steel', '2x gtceu:tin_alloy_dust', '12x gtceu:brick_dust')
@ -280,7 +280,7 @@ function registerGTCEuTFCMetalsRecipes(event)
.EUt(30)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
event.remove({ id: 'gtceu:macerator/macerate_hp_steam_solar_boiler' })
removeMaceratorRecipe(event, 'macerate_hp_steam_solar_boiler')
event.recipes.gtceu.macerator('tfg:macerate_hp_steam_solar_boiler')
.itemInputs('1x gtceu:hp_steam_solar_boiler')
.itemOutputs('5x gtceu:wrought_iron_dust', '4x #forge:dusts/silver', '2x gtceu:tin_alloy_dust', '12x gtceu:brick_dust')

View file

@ -43,11 +43,17 @@ const registerGTCEUItemTags = (event) => {
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', 'tfg:moon_stone_dust')
event.add('tfg:stone_dusts', 'tfg:moon_deepslate_dust')
event.add('tfg:stone_dusts', 'tfg:mars_stone_dust')
event.add('tfg:stone_dusts', 'tfg:venus_stone_dust')
event.add('tfg:stone_dusts', 'tfg:mercury_stone_dust')
event.add('tfg:stone_dusts', 'tfg:glacio_stone_dust')
event.add('tfg:stone_dusts', 'gtceu:stone_dust')
//#endregion
event.remove('minecraft:planks', 'gtceu:treated_wood_planks')
event.remove('minecraft:planks', 'gtceu:treated_wood_plate')
event.add('tfg:sugars', 'minecraft:sugar')
event.add('tfg:sugars', 'afc:birch_sugar')
@ -65,6 +71,9 @@ const registerGTCEUItemTags = (event) => {
event.add('minecraft:piglin_loved', 'gtceu:rich_raw_pyrite')
event.remove('forge:gems', 'gtceu:coke_gem')
// Rose Quartz Lens
event.add('forge:lenses/pink', 'gtceu:rose_quartz_lens')
}
const registerGTCEUBlockTags = (event) => {
@ -121,4 +130,5 @@ const registerGTCEUFluidTags = (event) => {
event.add('c:hidden_from_recipe_viewers', 'gtceu:molten_black_steel')
event.add('c:hidden_from_recipe_viewers', 'gtceu:molten_red_steel')
event.add('c:hidden_from_recipe_viewers', 'gtceu:molten_blue_steel')
event.add('c:hidden_from_recipe_viewers', 'gtceu:damascus_steel')
}

View file

@ -23,36 +23,36 @@ const generateCutterRecipe = (event, input, output, duration, EUt, id) => {
.EUt(EUt)
}
const generateGreenHouseRecipe = (event, input, fluid_amount, output, id, overworldExclusive) => {
const generateGreenHouseRecipe = (event, input, fluid_amount, output, id, dimension, fertiliser_count) => {
// Без удобрения
let r = event.recipes.gtceu.greenhouse(id)
.itemInputs(input)
.circuit(1)
.inputFluids(Fluid.of('minecraft:water', fluid_amount))
.inputFluids(JsonIO.of({ amount: fluid_amount, value: { tag: "tfg:clean_water" }}))
.itemOutputs(output)
.chancedOutput(input, 7500, 0)
.chancedOutput(input, 5000, 0)
.chancedOutput(input, 7500, 1000)
.chancedOutput(input, 5000, 1000)
.duration(36000) // 30 mins
.EUt(GTValues.VA[GTValues.LV])
if (overworldExclusive)
r.dimension('minecraft:overworld')
if (dimension != null)
r.dimension(dimension)
// С удобрением
r = event.recipes.gtceu.greenhouse(`${id}_fertilized`)
.itemInputs(input)
.itemInputs('8x gtceu:fertilizer')
.itemInputs(Item.of('gtceu:fertilizer', fertiliser_count))
.circuit(2)
.inputFluids(Fluid.of('minecraft:water', fluid_amount))
.inputFluids(JsonIO.of({ amount: fluid_amount, value: { tag: "tfg:clean_water" }}))
.itemOutputs(output)
.chancedOutput(input, 8500, 0)
.chancedOutput(input, 6000, 0)
.chancedOutput(input, 8500, 1000)
.chancedOutput(input, 6000, 1000)
.duration(12000) // 10 mins
.EUt(GTValues.VA[GTValues.LV])
if (overworldExclusive)
r.dimension('minecraft:overworld')
if (dimension != null)
r.dimension(dimension)
}
const getFillingNBT = (material, amount) => {

View file

@ -11,4 +11,7 @@ const registerHotOrNotRecipes = (event) => {
B: '#forge:rods/wooden'
}).id('tfchotornot:crafting/tongs/wood')
event.remove({ id: 'tfchotornot:anvil/tong_part/cast_iron' })
event.remove({ id: 'tfchotornot:crafting/tongs/cast_iron' })
event.remove({ id: 'tfchotornot:heating/tongs/cast_iron' })
}

View file

@ -692,7 +692,9 @@ function registerImmersiveAircraftRecipes(event) {
createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3),
])
);
//#region Aircrafts
//#endregion
//#region Aircrafts
event.shaped('immersive_aircraft:quadrocopter',[
'ABA',
@ -827,5 +829,23 @@ function registerImmersiveAircraftRecipes(event) {
H: 'tfc:metal/ingot/red_steel'
}).id('tfg:man_of_many_planes/mechanical_crafter/scarlet_biplane')
event.recipes.create.mechanical_crafting('immersive_aircraft:bamboo_hopper',[
' A A ',
'BBCBBBCBB',
' DEFED ',
' DGGGD ',
' D D ',
' BBBGBBB ',
' B B '
],{
A: 'immersive_aircraft:enhanced_propeller',
B: 'immersive_aircraft:hull',
C: 'immersive_aircraft:steel_boiler',
D: 'gtceu:long_aluminium_rod',
E: '#create:seats',
F: 'immersive_aircraft:biplane',
G: 'gtceu:double_aluminium_plate'
}).id('tfg:immersive_aircraft/mechanical_crafter/bamboo_hopper')
//#endregion
}

View file

@ -4,109 +4,126 @@
* Событие регистрации предмет-тэгов.
*/
ServerEvents.tags('item', event => {
registerAdvancedPeripheralsItemTags(event)
registerAE2ItemTags(event)
registerAFCItemTags(event)
registerAlekiroofsItemTags(event)
registerAlekishipsItemTags(event)
registerAsticorCartsItemTags(event)
registerBeneathItemTags(event)
registerChalkItemTags(event);
registerChiselAndBitsItemTags(event)
registerComputerCraftItemTags(event)
registerConstructionWandItemTags(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)
registerGrapplemodItemTags(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)
registerAdAstraItemTags(event)
registerAdvancedPeripheralsItemTags(event)
registerAE2ItemTags(event)
registerAFCItemTags(event)
registerAlekiroofsItemTags(event)
registerAlekishipsItemTags(event)
registerAsticorCartsItemTags(event)
registerBeneathItemTags(event)
registerBetterEndItemTags(event)
registerChalkItemTags(event);
registerComputerCraftItemTags(event)
registerConstructionWandItemTags(event)
registerCreateItemTags(event)
registerCreateAdditionsItemTags(event)
registerCreateConnectedItemTags(event)
registerCreateDecoItemTags(event)
registerCreateFactoryLogisticsItemTags(event)
registerDiggerHelmetItemTags(event)
registerEndermanOverhaulItemTags(event)
registerEveryCompatItemTags(event)
registerExposureItemTags(event)
registerExtendedAE2ItemTags(event)
registerFirmaCivItemTags(event)
registerFirmaLifeItemTags(event)
registerFramedBlocksItemTags(event)
registerFTBQuestsItemTags(event)
registerGrapplemodItemTags(event)
registerGreateItemTags(event)
registerGTCEUItemTags(event)
registerMegaCellsItemTags(event)
registerMinecraftItemTags(event)
registerModernMarkingsItemTags(event)
registerMoreRedItemTags(event)
registerHotOrNotItemTags(event)
registerRailWaysItemTags(event)
registerRnrItemTags(event)
registerSophisticatedBackpacksItemTags(event)
registerSpeciesItemTags(event)
registerTACZItemTags(event)
registerTFCAmbientalItemTags(event)
registerTFCItemTags(event)
registerTFCTextileItemTags(event)
registerTFGItemTags(event)
registerTFCLunchboxItemTags(event)
registerVintageImprovementsItemTags(event)
})
/**
* Событие регистрации блок-тэгов.
*/
ServerEvents.tags('block', event => {
registerAE2BlockTags(event)
registerAFCBlockTags(event)
registerAsticorCartsBlockTags(event)
registerBeneathBlockTags(event)
registerChiselAndBitsBlockTags(event)
registerComputerCraftBlockTags(event)
registerCreateBlockTags(event)
registerCreateAdditionsBlockTags(event)
registerCreateDecoBlockTags(event)
registerDomumOrnamentumBlockTags(event)
registerEndermanOverhaulBlockTags(event)
registerExtendedAE2BlockTags(event)
registerFirmaCivBlockTags(event)
registerFirmaLifeBlockTags(event)
registerFramedBlocksBlockTags(event)
registerFTBQuestsBlockTags(event)
registerGreateBlockTags(event)
registerGTCEUBlockTags(event)
registerMegaCellsBlockTags(event)
registerMinecraftBlockTags(event)
registerMoreRedBlockTags(event)
registerHotOrNotBlockTags(event)
registerRailWaysBlockTags(event)
registerSophisticatedBackpacksBlockTags(event)
registerTFCBlockTags(event)
registerTFGBlockTags(event)
registerVintageImprovementsBlockTags(event)
registerAdAstraBlockTags(event)
registerAE2BlockTags(event)
registerAFCBlockTags(event)
registerAsticorCartsBlockTags(event)
registerBeneathBlockTags(event)
registerComputerCraftBlockTags(event)
registerCreateBlockTags(event)
registerCreateAdditionsBlockTags(event)
registerCreateDecoBlockTags(event)
registerDomumOrnamentumBlockTags(event)
registerEndermanOverhaulBlockTags(event)
registerExtendedAE2BlockTags(event)
registerFirmaCivBlockTags(event)
registerFirmaLifeBlockTags(event)
registerFramedBlocksBlockTags(event)
registerFTBQuestsBlockTags(event)
registerGreateBlockTags(event)
registerGTCEUBlockTags(event)
registerMegaCellsBlockTags(event)
registerMinecraftBlockTags(event)
registerMoreRedBlockTags(event)
registerHotOrNotBlockTags(event)
registerRailWaysBlockTags(event)
registerSophisticatedBackpacksBlockTags(event)
registerSpeciesBlockTags(event)
registerTFCBlockTags(event)
registerTFGBlockTags(event)
registerVintageImprovementsBlockTags(event)
})
/**
* Событие регистрации жидкость-тэгов.
*/
ServerEvents.tags('fluid', event => {
registerAFCFluidTags(event)
registerCreateFluidTags(event)
registerCreateAdditionsFluidTags(event)
registerGTCEUFluidTags(event)
registerGreateFluidTags(event)
registerFirmaLifeFluidTags(event)
registerTFCFluidTags(event)
registerTFGFluidTags(event)
registerVintageImprovementsFluidTags(event)
registerAFCFluidTags(event)
registerAdAstraFluidTags(event)
registerCreateFluidTags(event)
registerCreateAdditionsFluidTags(event)
registerGTCEUFluidTags(event)
registerGreateFluidTags(event)
registerFirmaLifeFluidTags(event)
registerTFCFluidTags(event)
registerTFGFluidTags(event)
registerVintageImprovementsFluidTags(event)
})
/**
* Событие регистрации тегов структур.
*/
ServerEvents.tags('worldgen/placed_feature', event => {
// Remove default veins
event.removeAll('tfc:in_biome/veins')
// Remove default veins
event.removeAll('tfc:in_biome/veins')
registerTFCPlacedFeatures(event)
registerTFGPlacedFeatures(event)
registerAdAstraPlacedFeatures(event)
registerTFCPlacedFeatures(event)
registerTFGPlacedFeatures(event)
})
ServerEvents.tags('worldgen/biome', event => {
registerTFCBiomeTags(event)
registerTFGBiomeTags(event)
registerTFCBiomeTags(event)
registerTFGBiomeTags(event)
})
ServerEvents.tags('worldgen/biome', event => {
registerAdAstraBiomeTags(event)
})
ServerEvents.tags('entity_type', event => {
registerAdAstraEntityTypeTags(event)
})
/**
@ -114,7 +131,7 @@ ServerEvents.tags('worldgen/biome', event => {
* Срабатывает до инициализации рецептов, но после тегов.
*/
ServerEvents.highPriorityData(event => {
registerComputerCraftData(event)
registerComputerCraftData(event)
})
/**
@ -122,16 +139,20 @@ ServerEvents.highPriorityData(event => {
* Срабатывает до инициализации рецептов, но после тегов.
*/
TFCEvents.data(event => {
registerTFCDataForArborFirmaCraft(event)
registerTFCDataForChalk(event);
registerTFCDataForGTCEU(event)
registerTFCDataForImmersiveAircraft(event);
registerTFCDataForSophisticatedBackpacks(event)
registerTFCDataForTFC(event)
registerTFCDataForTFCBetterBF(event)
registerTFCDataForTFCLunchbox(event)
registerTFCDataForWaterFlasks(event)
registerTFCDataForFirmalife(event)
registerTFCDataForAdAstra(event);
registerTFCDataForArborFirmaCraft(event)
registerTFCDataForChalk(event);
registerTFCDataForCreateAddition(event);
registerTFCDataForFirmalife(event)
registerTFCDataForGTCEU(event)
registerTFCDataForImmersiveAircraft(event);
registerTFCDataForMinecraft(event)
registerTFCDataForSophisticatedBackpacks(event)
registerTFCDataForTFC(event)
registerTFCDataForTFCBetterBF(event)
registerTFCDataForTFCLunchbox(event)
registerTFCDataForTFG(event)
registerTFCDataForWaterFlasks(event)
})
/**
@ -139,11 +160,13 @@ TFCEvents.data(event => {
* Срабатывает до инициализации рецептов, но после датапаков и тегов.
*/
LootJS.modifiers((event) => {
registerGTCEULoots(event)
registerLootrLoots(event)
registerPrimitiveCreatesLoots(event)
registerTFCLoots(event)
registerTFGLoots(event)
registerAdAstraLoots(event)
registerGTCEULoots(event)
registerLootrLoots(event)
registerPrimitiveCreaturesLoots(event)
registerSpeciesLoots(event)
registerTFCLoots(event)
registerTFGLoots(event)
});
/**
@ -151,7 +174,15 @@ LootJS.modifiers((event) => {
* Не представляю когда срабатывает, но явно после тегов и датапаков.
*/
GTCEuServerEvents.oreVeins(event => {
event.removeAll()
event.removeAll()
})
GTCEuServerEvents.bedrockOreVeins(event => {
registerGTCEUBedrockOreVeins(event)
})
GTCEuServerEvents.fluidVeins(event => {
registerGTCEUBedrockFluidVeins(event)
})
/**
@ -159,62 +190,80 @@ GTCEuServerEvents.oreVeins(event => {
* Срабатывает после инициализации датапаков и тегов.
*/
ServerEvents.recipes(event => {
registerAdvancedPeripheralsRecipes(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)
registerCccBridgeRecipes(event)
registerConstructionwandRecipes(event)
registerCreateRecipes(event)
registerCreateAdditionsRecipes(event)
registerCreateConnectedRecipes(event)
registerCreatedecoRecipes(event)
registerCreateHorsePowerBlockRecipes(event)
registerDiggerHelmetRecipes(event)
registerDomumOrnamentumRecipes(event)
registerEndermanOverhaulRecipes(event)
registerEveryCompatRecipes(event)
registerExtendedAE2Recipes(event)
registerExposureRecipes(event)
registerEtchedRecipes(event)
registerFirmaCivRecipes(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)
registerTFCLunchBoxRecipes(event)
registerTFGRecipes(event)
registerTFCGroomingStationRecipes(event)
registerTFCTextileRecipes(event)
registerToolBeltRecipes(event)
registerTreeTapRecipes(event)
registerVintageImprovementsRecipes(event)
registerWaterFlasksRecipes(event)
registerAdAstraRecipes(event)
registerAdvancedPeripheralsRecipes(event)
registerAlekishipsRecipes(event)
registerAE2Recipes(event)
registerAFCRecipes(event)
registerAsticorCartsRecipes(event)
registerAE2InsertExportCardRecipes(event)
registerAE2NetworkAnalyzerRecipes(event)
registerAE2WTLibRecipes(event)
registerBeneathRecipes(event)
registerBetterEndRecipes(event)
registerBuildingGadgetsRecipes(event)
registerChalkRecipes(event);
registerComfortsRecipes(event);
registerComputerCraftRecipes(event)
//registerCccBridgeRecipes(event)
registerConstructionwandRecipes(event)
registerCreateRecipes(event)
registerCreateAdditionsRecipes(event)
registerCreateConnectedRecipes(event)
registerCreatedecoRecipes(event)
registerCreateFactoryLogisticsRecipes(event)
registerCreateHorsePowerBlockRecipes(event)
registerCreateHypertubeRecipes(event)
registerDiggerHelmetRecipes(event)
registerDomumOrnamentumRecipes(event)
registerEndermanOverhaulRecipes(event)
registerEveryCompatRecipes(event)
registerExtendedAE2Recipes(event)
registerExposureRecipes(event)
registerEtchedRecipes(event)
registerFirmaCivRecipes(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)
registerModernMarkingRecipes(event)
registerMoreRedRecipes(event)
registerProgrammedCircuitCardRecipes(event)
registerRailWaysRecipes(event)
registerRnrRecipes(event)
registerSophisticatedBackpacksRecipes(event)
registerSimplylightRecipes(event)
registerSpeciesRecipes(event)
registerTACZRecipes(event)
registerTFCRecipes(event)
registerTFCBetterBFRecipes(event)
registerTFCLunchBoxRecipes(event)
registerTFCGroomingStationRecipes(event)
registerTFGRecipes(event)
registerTFCTextileRecipes(event)
registerToolBeltRecipes(event)
registerTreeTapRecipes(event)
registerVintageImprovementsRecipes(event)
registerWaterFlasksRecipes(event)
})
TaCZServerEvents.gunIndexLoad((event) => {
gunIndexLogic(event)
})
TaCZServerEvents.ammoIndexLoad((event) => {
ammoIndexLogic(event)
})
TaCZServerEvents.attachmentIndexLoad((event) => {
attachmentIndexLogic(event)
})

View file

@ -6,10 +6,32 @@ const registerMERequesterRecipes = (event) => {
// ME Requester
event.recipes.gtceu.assembler('tfg:merequester/merequester')
.itemInputs('#ae2:interface', '2x ae2:crafting_accelerator', '4x #gtceu:circuits/ev', '4x #forge:plates/copper', '#forge:rods/amethyst')
.itemInputs(
'expatternprovider:ex_pattern_provider',
'#expatternprovider:extended_interface',
'megacells:mega_crafting_unit',
'4x #gtceu:circuits/luv',
'4x #forge:double_plates/titanium_tungsten_carbide',
'4x gtceu:exquisite_amethyst_gem')
.inputFluids(Fluid.of('tfg:fluix', 144*20))
.itemOutputs('merequester:requester')
.duration(760)
.EUt(506)
.EUt(GTValues.VA[GTValues.IV])
.cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.assembler('tfg:merequester/merequester_moon')
.itemInputs(
'expatternprovider:ex_pattern_provider',
'#expatternprovider:extended_interface',
'megacells:mega_crafting_unit',
'4x #gtceu:circuits/iv',
'4x #forge:double_plates/titanium_tungsten_carbide',
'4x gtceu:exquisite_amethyst_gem')
.inputFluids(Fluid.of('tfg:cryogenized_fluix', 144*20))
.itemOutputs('merequester:requester')
.duration(760)
.EUt(GTValues.VA[GTValues.EV])
.dimension('ad_astra:moon')
// ME Requester Terminal
event.shaped('merequester:requester_terminal', [
@ -25,4 +47,15 @@ const registerMERequesterRecipes = (event) => {
F: '#forge:plates/steel',
G: 'ae2:engineering_processor'
}).id('merequester:requester_terminal')
event.recipes.gtceu.assembler('assembler:ae2_requester_terminal_terminal')
.itemInputs(
'ae2:terminal',
'2x #forge:rods/steel',
'ae2:engineering_processor',
'2x #forge:plates/steel',
'merequester:requester')
.itemOutputs('merequester:requester_terminal')
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
}

View file

@ -22,42 +22,63 @@ const registerMegaCellsRecipes = (event) => {
.notConsumable('megacells:accumulation_processor_press')
.itemOutputs('megacells:printed_accumulation_processor')
.duration(20)
.circuit(1)
.EUt(1920)
event.recipes.gtceu.forming_press('megacells:printed_accumulation_processor_moon')
.itemInputs('#forge:dense_plates/silicon')
.notConsumable('megacells:accumulation_processor_press')
.itemOutputs('2x megacells:printed_accumulation_processor')
.duration(20)
.circuit(2)
.EUt(1920)
.dimension('ad_astra:moon')
// Accumulation Processor
event.recipes.gtceu.circuit_assembler('ae2:accumulation_processor_moon')
.itemInputs(
'ae2:printed_silicon',
'megacells:printed_accumulation_processor',
'#gtceu:circuits/iv',
'2x #gtceu:resistors',
'1x minecraft:redstone')
.inputFluids(Fluid.of('tfg:fluix', 144*5))
.itemOutputs('megacells:accumulation_processor')
.duration(20*5)
.EUt(GTValues.VA[GTValues.IV])
.cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.circuit_assembler('ae2:accumulation_processor')
.itemInputs(
'ae2:printed_silicon',
'megacells:printed_accumulation_processor',
'#gtceu:circuits/iv',
'1x minecraft:redstone')
.inputFluids(Fluid.of('tfg:cryogenized_fluix', 144*5))
.itemOutputs('2x megacells:accumulation_processor')
.duration(20*5)
.EUt(GTValues.VA[GTValues.EV])
.dimension('ad_astra:moon')
// Inscriber Silicon Press
event.recipes.gtceu.laser_engraver('ae2:accumulation_processor_press')
.itemInputs('#forge:plates/naquadah')
.itemInputs('tfg:unfinished_inscriber_accumulation_press')
.notConsumable('#forge:lenses/black')
.itemOutputs('megacells:accumulation_processor_press')
.duration(4000)
.EUt(1920)
//accumulation processor
event.recipes.gtceu.circuit_assembler('megacells:accumulation_processor')
.itemInputs(
'ae2:printed_silicon',
'megacells:printed_accumulation_processor',
'#gtceu:circuits/iv',
'2x #gtceu:resistors',
'2x #forge:fine_wires/niobium_titanium',)
.inputFluids(Fluid.of('tfg:fluix', 144))
.itemOutputs('2x megacells:accumulation_processor')
.duration(20)
.EUt(1920)
.EUt(GTValues.VA[GTValues.IV])
.cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.circuit_assembler('megacells:accumulation_processor_adv')
.itemInputs(
'ae2:printed_silicon',
'megacells:printed_accumulation_processor',
'#gtceu:circuits/iv',
'gtceu:advanced_smd_resistor',
'2x #forge:fine_wires/niobium_titanium',)
.inputFluids(Fluid.of('tfg:fluix', 144))
.itemOutputs('2x megacells:accumulation_processor')
.duration(20)
.EUt(1920)
.cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.implosion_compressor('tfg:unfinished_inscriber_accumulation_press')
.itemInputs(
'#forge:dense_plates/rocket_alloy_t1',
'#forge:dense_plates/desh',
'gtceu:quantum_star',
'64x gtceu:industrial_tnt')
.itemOutputs('tfg:unfinished_inscriber_accumulation_press')
.duration(20)
.EUt(GTValues.VA[GTValues.IV])
//Mega Item Cell Housing
event.shaped('megacells:mega_item_cell_housing', [
@ -99,252 +120,112 @@ const registerMegaCellsRecipes = (event) => {
// 1m storage components
event.recipes.gtceu.assembly_line('megacells:cell_component_1m')
.itemInputs(
'4x #gtceu:circuits/uv',
'4x #forge:plates/darmstadtium',
'2x ae2:quartz_vibrant_glass',
'4x #forge:dusts/ender_pearl',
'4x ae2:matter_ball',
'2x megacells:accumulation_processor',)
.inputFluids(Fluid.of('gtceu:hsla_steel', 144))
'4x #gtceu:circuits/zpm',
'32x gtceu:hpic_chip',
'64x ae2:calculation_processor',
'64x ae2:logic_processor',
'64x ae2:logic_processor',
'16x megacells:accumulation_processor',
'1x ae2:cell_component_256k')
.inputFluids(Fluid.of('tfg:cryogenized_fluix', 4608))
.inputFluids(Fluid.of('gtceu:polyphenylene_sulfide', 9216))
.itemOutputs('megacells:cell_component_1m')
.duration(200)
.EUt(491520)
.duration(2000)
.EUt(GTValues.VA[GTValues.LuV])
.dimension('ad_astra:moon')
event.recipes.gtceu.assembly_line('megacells:cell_component_1m_256k')
.itemInputs(
'4x #gtceu:circuits/uv',
'32x gtceu:hpic_chip',
'64x ae2:engineering_processor',
'64x ae2:logic_processor',
'64x ae2:logic_processor',
'16x megacells:accumulation_processor',
'2x ae2:cell_component_256k')
.inputFluids(Fluid.of('tfg:fluix', 4608))
.inputFluids(Fluid.of('gtceu:polyphenylene_sulfide', 9216))
.itemOutputs('megacells:cell_component_1m')
.duration(4000)
.EUt(GTValues.VA[GTValues.ZPM])
.cleanroom(CleanroomType.CLEANROOM)
// 4m storage components
event.recipes.gtceu.assembly_line('megacells:cell_component_4m')
.itemInputs(
'4x #gtceu:circuits/uhv',
'4x #forge:plates/neutronium',
'2x ae2:quartz_vibrant_glass',
'4x #forge:dusts/ender_pearl',
'4x ae2:matter_ball',
'2x megacells:accumulation_processor')
.inputFluids(Fluid.of('gtceu:hsla_steel', 144))
'4x #gtceu:circuits/uv',
'64x gtceu:advanced_soc',
'64x ae2:calculation_processor',
'64x ae2:logic_processor',
'64x ae2:logic_processor',
'64x megacells:accumulation_processor',
'1x megacells:cell_component_1m')
.inputFluids(Fluid.of('tfg:cryogenized_fluix', 9216))
.inputFluids(Fluid.of('gtceu:polyphenylene_sulfide', 18432))
.itemOutputs('megacells:cell_component_4m')
.duration(200)
.EUt(1966080)
.cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.assembly_line('megacells:cell_component_4m_1m')
.duration(2000)
.EUt(GTValues.VA[GTValues.ZPM])
.dimension('ad_astra:moon')
event.recipes.gtceu.assembly_line('megacells:cell_component_4m_256k')
.itemInputs(
'2x megacells:accumulation_processor',
'2x #gtceu:circuits/uhv',
'2x ae2:quartz_vibrant_glass',
'4x megacells:cell_component_1m')
.inputFluids(Fluid.of('gtceu:hsla_steel', 144))
'4x #gtceu:circuits/uhv',
'64x gtceu:advanced_soc',
'64x ae2:engineering_processor',
'64x ae2:logic_processor',
'64x ae2:logic_processor',
'64x megacells:accumulation_processor',
'2x megacells:cell_component_1m')
.inputFluids(Fluid.of('tfg:fluix', 9216))
.inputFluids(Fluid.of('gtceu:polyphenylene_sulfide', 18432))
.itemOutputs('megacells:cell_component_4m')
.duration(400)
.EUt(1966080)
.duration(4000)
.EUt(GTValues.VA[GTValues.UV])
.cleanroom(CleanroomType.CLEANROOM)
// // 16m storage components
// event.recipes.gtceu.assembly_line('megacells:cell_component_16m')
// .itemInputs(
// '4x #gtceu:circuits/uev',
// '4x #forge:plates/tungsten_steel',
// '8x #forge:dusts/certus_quartz',
// '2x megacells:accumulation_processor',)
// .inputFluids(Fluid.of('gtceu:hsla_steel', 144))
// .itemOutputs('megacells:cell_component_16m')
// .duration(200)
// .EUt(7864320)
// .cleanroom(CleanroomType.CLEANROOM)
// event.recipes.gtceu.assembly_line('megacells:cell_component_16m_4m')
// .itemInputs(
// '2x megacells:accumulation_processor',
// '2x #gtceu:circuits/uev',
// '4x megacells:cell_component_4m')
// .inputFluids(Fluid.of('gtceu:hsla_steel', 144))
// .itemOutputs('megacells:cell_component_16m')
// .duration(400)
// .EUt(7864320)
// .cleanroom(CleanroomType.CLEANROOM)
// // 64m storage components
// event.recipes.gtceu.assembly_line('megacells:cell_component_64m')
// .itemInputs(
// '4x #gtceu:circuits/uiv',
// '4x #forge:plates/rhodium_plated_palladium',
// '8x #forge:dusts/certus_quartz',
// '2x megacells:accumulation_processor')
// .inputFluids(Fluid.of('gtceu:hsla_steel', 144))
// .itemOutputs('megacells:cell_component_64m')
// .duration(200)
// .EUt(31457280)
// .cleanroom(CleanroomType.CLEANROOM)
// event.recipes.gtceu.assembly_line('megacells:cell_component_64m_16m')
// .itemInputs(
// '2x megacells:accumulation_processor',
// '2x #gtceu:circuits/uiv',
// '4x megacells:cell_component_16m')
// .inputFluids(Fluid.of('gtceu:hsla_steel', 144))
// .itemOutputs('megacells:cell_component_64m')
// .duration(400)
// .EUt(31457280)
// .cleanroom(CleanroomType.CLEANROOM)
// // 256m storage components
// event.recipes.gtceu.assembly_line('megacells:cell_component_256m')
// .itemInputs(
// '4x #gtceu:circuits/uxv',
// '4x #forge:plates/naquadah_alloy',
// '16x #forge:dusts/certus_quartz',
// '2x megacells:accumulation_processor',)
// .inputFluids(Fluid.of('gtceu:hsla_steel', 144))
// .itemOutputs('megacells:cell_component_256m')
// .duration(200)
// .EUt(125829120)
// .cleanroom(CleanroomType.CLEANROOM)
// event.recipes.gtceu.assembly_line('megacells:cell_component_256m_64m')
// .itemInputs(
// '2x megacells:accumulation_processor',
// '2x #gtceu:circuits/uxv',
// '4x megacells:cell_component_64m')
// .inputFluids(Fluid.of('gtceu:hsla_steel', 144))
// .itemOutputs('megacells:cell_component_256m')
// .duration(400)
// .EUt(125829120)
// .cleanroom(CleanroomType.CLEANROOM)
//#endregion
//#region MEGA interface
// EV
event.recipes.gtceu.assembler('megacells:mega_interface_ev')
// 16m storage components
event.recipes.gtceu.assembly_line('megacells:cell_component_16m')
.itemInputs(
'2x #ae2:interface',
'4x megacells:accumulation_processor',
'2x gtceu:ev_conveyor_module',
'4x gtceu:laminated_glass',
'4x gtceu:titanium_plate',
'2x ae2:annihilation_core',
'2x ae2:formation_core',
'#gtceu:circuits/ev')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 1152))
.itemOutputs('megacells:mega_interface')
.duration(300)
.EUt(1920)
'4x #gtceu:circuits/uhv',
'64x gtceu:uhpic_chip',
'64x ae2:engineering_processor',
'64x ae2:logic_processor',
'64x ae2:logic_processor',
'64x megacells:accumulation_processor',
'64x megacells:accumulation_processor',
'1x megacells:cell_component_4m')
.inputFluids(Fluid.of('tfg:cryogenized_fluix', 18432))
.inputFluids(Fluid.of('tfg:fluix', 18432))
.inputFluids(Fluid.of('gtceu:polyphenylene_sulfide', 36864))
.itemOutputs('megacells:cell_component_16m')
.duration(8000)
.stationResearch(b => b.researchStack(Item.of('megacells:cell_component_4m')).EUt(GTValues.VA[GTValues.LuV]).CWUt(32))
.EUt(GTValues.VA[GTValues.UV])
.dimension('ad_astra:moon')
.cleanroom(CleanroomType.CLEANROOM)
// IV
event.recipes.gtceu.assembler('megacells:mega_interface_iv')
// 64m storage components
event.recipes.gtceu.assembly_line('megacells:cell_component_64m')
.itemInputs(
'4x #ae2:interface',
'4x megacells:accumulation_processor',
'2x gtceu:iv_conveyor_module',
'4x gtceu:laminated_glass',
'4x gtceu:tungsten_steel_plate',
'2x ae2:annihilation_core',
'2x ae2:formation_core',
'#gtceu:circuits/iv',)
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 1152))
.itemOutputs('2x megacells:mega_interface')
.duration(300)
.EUt(7680)
'8x #gtceu:circuits/uhv',
'64x gtceu:uhpic_chip',
'64x ae2:engineering_processor',
'64x ae2:logic_processor',
'64x ae2:logic_processor',
'64x ae2:calculation_processor',
'64x megacells:accumulation_processor',
'64x megacells:accumulation_processor',
'1x megacells:cell_component_16m')
.inputFluids(Fluid.of('tfg:cryogenized_fluix', 36864))
.inputFluids(Fluid.of('tfg:fluix', 36864))
.inputFluids(Fluid.of('gtceu:polyphenylene_sulfide', 73728))
.itemOutputs('megacells:cell_component_64m')
.duration(8000)
.stationResearch(b => b.researchStack(Item.of('megacells:cell_component_16m')).EUt(GTValues.VA[GTValues.LuV]).CWUt(64))
.EUt(GTValues.VA[GTValues.UHV])
.dimension('ad_astra:moon')
.cleanroom(CleanroomType.CLEANROOM)
// LuV
event.recipes.gtceu.assembler('megacells:mega_interface_luv')
.itemInputs(
'8x #ae2:interface',
'4x megacells:accumulation_processor',
'2x gtceu:luv_conveyor_module',
'4x gtceu:laminated_glass',
'4x gtceu:rhodium_plated_palladium_plate',
'2x ae2:annihilation_core',
'2x ae2:formation_core',
'#gtceu:circuits/luv')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 1152))
.itemOutputs('4x megacells:mega_interface')
.duration(300)
.EUt(30720)
.cleanroom(CleanroomType.CLEANROOM)
// ZPM
event.recipes.gtceu.assembler('megacells:mega_interface_zpm')
.itemInputs(
'16x #ae2:interface',
'4x megacells:accumulation_processor',
'2x gtceu:zpm_conveyor_module',
'4x gtceu:laminated_glass',
'4x gtceu:naquadah_alloy_plate',
'2x ae2:annihilation_core',
'2x ae2:formation_core',
'#gtceu:circuits/zpm')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 1152))
.itemOutputs('8x megacells:mega_interface')
.duration(300)
.EUt(119680)
.cleanroom(CleanroomType.CLEANROOM)
//#endregion
//#region MEGA provider
// EV
event.recipes.gtceu.assembler('megacells:mega_pattern_provider_ev')
.itemInputs(
'2x #ae2:pattern_provider',
'4x megacells:accumulation_processor',
'2x gtceu:ev_conveyor_module',
'4x gtceu:titanium_plate',
'2x ae2:annihilation_core',
'2x ae2:formation_core',
'#gtceu:circuits/ev')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 1152))
.itemOutputs('megacells:mega_pattern_provider')
.duration(300)
.EUt(1920)
.cleanroom(CleanroomType.CLEANROOM)
// IV
event.recipes.gtceu.assembler('megacells:mega_pattern_provider_iv')
.itemInputs(
'4x #ae2:pattern_provider',
'4x megacells:accumulation_processor',
'2x gtceu:iv_conveyor_module',
'4x gtceu:tungsten_steel_plate',
'2x ae2:annihilation_core',
'2x ae2:formation_core',
'#gtceu:circuits/iv',)
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 1152))
.itemOutputs('2x megacells:mega_pattern_provider')
.duration(300)
.EUt(7680)
.cleanroom(CleanroomType.CLEANROOM)
// LuV
event.recipes.gtceu.assembler('megacells:mega_pattern_provider_luv')
.itemInputs(
'8x #ae2:pattern_provider',
'4x megacells:accumulation_processor',
'2x gtceu:luv_conveyor_module',
'4x gtceu:rhodium_plated_palladium_plate',
'2x ae2:annihilation_core',
'2x ae2:formation_core',
'#gtceu:circuits/luv')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 1152))
.itemOutputs('4x megacells:mega_pattern_provider')
.duration(300)
.EUt(30720)
.cleanroom(CleanroomType.CLEANROOM)
// ZPM
event.recipes.gtceu.assembler('megacells:mega_pattern_provider_zpm')
.itemInputs(
'16x #ae2:pattern_provider',
'4x megacells:accumulation_processor',
'2x gtceu:zpm_conveyor_module',
'4x gtceu:naquadah_alloy_plate',
'2x ae2:annihilation_core',
'2x ae2:formation_core',
'#gtceu:circuits/zpm')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 1152))
.itemOutputs('8x megacells:mega_pattern_provider')
.duration(300)
.EUt(119680)
.cleanroom(CleanroomType.CLEANROOM)
//#endregion
// greater energy card
event.recipes.gtceu.assembler('megacells:greater_energy_card')
.itemInputs(
@ -370,19 +251,19 @@ const registerMegaCellsRecipes = (event) => {
.EUt(12)
.cleanroom(CleanroomType.CLEANROOM)
// event.recipes.gtceu.packer('megacells:item_storage_cell_16m')
// .itemInputs('megacells:mega_item_cell_housing', 'megacells:cell_component_16m')
// .itemOutputs('megacells:item_storage_cell_16m')
// .duration(10)
// .EUt(12)
// .cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.packer('megacells:item_storage_cell_16m')
.itemInputs('megacells:mega_item_cell_housing', 'megacells:cell_component_16m')
.itemOutputs('megacells:item_storage_cell_16m')
.duration(10)
.EUt(12)
.cleanroom(CleanroomType.CLEANROOM)
// event.recipes.gtceu.packer('megacells:item_storage_cell_64m')
// .itemInputs('megacells:mega_item_cell_housing', 'megacells:cell_component_64m')
// .itemOutputs('megacells:item_storage_cell_64m')
// .duration(10)
// .EUt(12)
// .cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.packer('megacells:item_storage_cell_64m')
.itemInputs('megacells:mega_item_cell_housing', 'megacells:cell_component_64m')
.itemOutputs('megacells:item_storage_cell_64m')
.duration(10)
.EUt(12)
.cleanroom(CleanroomType.CLEANROOM)
// event.recipes.gtceu.packer('megacells:item_storage_cell_256m')
// .itemInputs('megacells:mega_item_cell_housing', 'megacells:cell_component_256m')
@ -406,19 +287,19 @@ const registerMegaCellsRecipes = (event) => {
.EUt(12)
.cleanroom(CleanroomType.CLEANROOM)
// event.recipes.gtceu.packer('megacells:fluid_storage_cell_16m')
// .itemInputs('megacells:mega_fluid_cell_housing', 'megacells:cell_component_16m')
// .itemOutputs('megacells:fluid_storage_cell_16m')
// .duration(10)
// .EUt(12)
// .cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.packer('megacells:fluid_storage_cell_16m')
.itemInputs('megacells:mega_fluid_cell_housing', 'megacells:cell_component_16m')
.itemOutputs('megacells:fluid_storage_cell_16m')
.duration(10)
.EUt(12)
.cleanroom(CleanroomType.CLEANROOM)
// event.recipes.gtceu.packer('megacells:fluid_storage_cell_64m')
// .itemInputs('megacells:mega_fluid_cell_housing', 'megacells:cell_component_64m')
// .itemOutputs('megacells:fluid_storage_cell_64m')
// .duration(10)
// .EUt(12)
// .cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.packer('megacells:fluid_storage_cell_64m')
.itemInputs('megacells:mega_fluid_cell_housing', 'megacells:cell_component_64m')
.itemOutputs('megacells:fluid_storage_cell_64m')
.duration(10)
.EUt(12)
.cleanroom(CleanroomType.CLEANROOM)
// event.recipes.gtceu.packer('megacells:fluid_storage_cell_256m')
// .itemInputs('megacells:mega_fluid_cell_housing', 'megacells:cell_component_256m')
@ -442,19 +323,19 @@ const registerMegaCellsRecipes = (event) => {
.EUt(12)
.cleanroom(CleanroomType.CLEANROOM)
// event.recipes.gtceu.packer('megacells:item_storage_cell_16m_back')
// .itemInputs('megacells:item_storage_cell_16m')
// .itemOutputs('megacells:mega_item_cell_housing', 'megacells:cell_component_16m')
// .duration(10)
// .EUt(12)
// .cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.packer('megacells:item_storage_cell_16m_back')
.itemInputs('megacells:item_storage_cell_16m')
.itemOutputs('megacells:mega_item_cell_housing', 'megacells:cell_component_16m')
.duration(10)
.EUt(12)
.cleanroom(CleanroomType.CLEANROOM)
// event.recipes.gtceu.packer('megacells:item_storage_cell_64m_back')
// .itemInputs('megacells:item_storage_cell_64m')
// .itemOutputs('megacells:mega_item_cell_housing', 'megacells:cell_component_64m')
// .duration(10)
// .EUt(12)
// .cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.packer('megacells:item_storage_cell_64m_back')
.itemInputs('megacells:item_storage_cell_64m')
.itemOutputs('megacells:mega_item_cell_housing', 'megacells:cell_component_64m')
.duration(10)
.EUt(12)
.cleanroom(CleanroomType.CLEANROOM)
// event.recipes.gtceu.packer('megacells:item_storage_cell_256m_back')
// .itemInputs('megacells:item_storage_cell_256m')
@ -478,19 +359,19 @@ const registerMegaCellsRecipes = (event) => {
.EUt(12)
.cleanroom(CleanroomType.CLEANROOM)
// event.recipes.gtceu.packer('megacells:fluid_storage_cell_16m_back')
// .itemInputs('megacells:fluid_storage_cell_16m')
// .itemOutputs('megacells:mega_fluid_cell_housing','megacells:cell_component_16m')
// .duration(10)
// .EUt(12)
// .cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.packer('megacells:fluid_storage_cell_16m_back')
.itemInputs('megacells:fluid_storage_cell_16m')
.itemOutputs('megacells:mega_fluid_cell_housing','megacells:cell_component_16m')
.duration(10)
.EUt(12)
.cleanroom(CleanroomType.CLEANROOM)
// event.recipes.gtceu.packer('megacells:fluid_storage_cell_64m_back')
// .itemInputs('megacells:fluid_storage_cell_64m')
// .itemOutputs('megacells:mega_fluid_cell_housing', 'megacells:cell_component_64m')
// .duration(10)
// .EUt(12)
// .cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.packer('megacells:fluid_storage_cell_64m_back')
.itemInputs('megacells:fluid_storage_cell_64m')
.itemOutputs('megacells:mega_fluid_cell_housing', 'megacells:cell_component_64m')
.duration(10)
.EUt(12)
.cleanroom(CleanroomType.CLEANROOM)
// event.recipes.gtceu.packer('megacells:fluid_storage_cell_256m_back')
// .itemInputs('megacells:fluid_storage_cell_256m')
@ -501,21 +382,40 @@ const registerMegaCellsRecipes = (event) => {
//#endregion
//mega crafting unit
//#region Crafting Unit
event.recipes.gtceu.assembler('megacells:mega_crafting_unit')
.itemInputs(
'4x ae2:crafting_unit',
'4x megacells:accumulation_processor',
'2x ae2:logic_processor',
'#gtceu:circuits/ev',
'2x ae2:fluix_smart_cable')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 288))
'4x ae2:logic_processor',
'4x ae2:calculation_processor',
'4x ae2:engineering_processor',
'#gtceu:circuits/luv',
'6x #forge:plates/titanium_tungsten_carbide',
'ae2:crafting_unit')
.inputFluids(Fluid.of('tfg:fluix', 144*8))
.itemOutputs('megacells:mega_crafting_unit')
.duration(20)
.EUt(2720)
.duration(20*15)
.EUt(GTValues.VA[GTValues.IV])
.cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.assembler('megacells:mega_crafting_unit_moon')
.itemInputs(
'4x megacells:accumulation_processor',
'4x ae2:logic_processor',
'4x ae2:calculation_processor',
'4x ae2:engineering_processor',
'#gtceu:circuits/luv',
'6x #forge:plates/titanium_tungsten_carbide',
'ae2:crafting_unit')
.inputFluids(Fluid.of('tfg:cryogenized_fluix', 144*4))
.itemOutputs('2x megacells:mega_crafting_unit')
.duration(20*15)
.EUt(GTValues.VA[GTValues.IV])
.dimension('ad_astra:moon')
// Mega Crafting Storage
//#region Crafting Storage
event.recipes.gtceu.packer('megacells:mega_crafting_accelerator')
.itemInputs('megacells:mega_crafting_unit', 'ae2:engineering_processor')
.itemOutputs('megacells:mega_crafting_accelerator')
@ -537,26 +437,27 @@ const registerMegaCellsRecipes = (event) => {
.EUt(12)
.cleanroom(CleanroomType.CLEANROOM)
// event.recipes.gtceu.packer('megacells:16m_crafting_storage')
// .itemInputs('megacells:mega_crafting_unit', 'megacells:cell_component_16m')
// .itemOutputs('megacells:16m_crafting_storage')
// .duration(10)
// .EUt(12)
// .cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.packer('megacells:16m_crafting_storage')
.itemInputs('megacells:mega_crafting_unit', 'megacells:cell_component_16m')
.itemOutputs('megacells:16m_crafting_storage')
.duration(10)
.EUt(12)
.cleanroom(CleanroomType.CLEANROOM)
// event.recipes.gtceu.packer('megacells:64m_crafting_storage')
// .itemInputs('megacells:mega_crafting_unit', 'megacells:cell_component_64m')
// .itemOutputs('megacells:64m_crafting_storage')
// .duration(10)
// .EUt(12)
// .cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.packer('megacells:64m_crafting_storage')
.itemInputs('megacells:mega_crafting_unit', 'megacells:cell_component_64m')
.itemOutputs('megacells:64m_crafting_storage')
.duration(10)
.EUt(12)
.cleanroom(CleanroomType.CLEANROOM)
// event.recipes.gtceu.packer('megacells:256m_crafting_storage')
// .itemInputs('megacells:mega_crafting_unit', 'megacells:cell_component_256m')
// .itemOutputs('megacells:256m_crafting_storage')
// .duration(10)
// .EUt(12)
// .cleanroom(CleanroomType.CLEANROOM)
/* event.recipes.gtceu.packer('megacells:256m_crafting_storage')
.itemInputs('megacells:mega_crafting_unit', 'megacells:cell_component_256m')
.itemOutputs('megacells:256m_crafting_storage')
.duration(10)
.EUt(12)
.cleanroom(CleanroomType.CLEANROOM)
*/
event.recipes.gtceu.packer('megacells:mega_crafting_monitor')
.itemInputs('megacells:mega_crafting_unit', 'ae2:storage_monitor')
@ -587,20 +488,19 @@ const registerMegaCellsRecipes = (event) => {
.EUt(12)
.cleanroom(CleanroomType.CLEANROOM)
// event.recipes.gtceu.packer('megacells:16m_crafting_storage_back')
// .itemInputs('megacells:16m_crafting_storage')
// .itemOutputs('megacells:mega_crafting_unit', 'megacells:cell_component_16m')
// .duration(10)
// .EUt(12)
// .cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.packer('megacells:16m_crafting_storage_back')
.itemInputs('megacells:16m_crafting_storage')
.itemOutputs('megacells:mega_crafting_unit', 'megacells:cell_component_16m')
.duration(10)
.EUt(12)
.cleanroom(CleanroomType.CLEANROOM)
// event.recipes.gtceu.packer('megacells:64m_crafting_storage_back')
// .itemInputs(
// 'megacells:64m_crafting_storage')
// .itemOutputs('megacells:mega_crafting_unit','megacells:cell_component_64m')
// .duration(10)
// .EUt(12)
// .cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.packer('megacells:64m_crafting_storage_back')
.itemInputs('megacells:64m_crafting_storage')
.itemOutputs('megacells:mega_crafting_unit','megacells:cell_component_64m')
.duration(10)
.EUt(12)
.cleanroom(CleanroomType.CLEANROOM)
// event.recipes.gtceu.packer('megacells:256m_crafting_storage_back')
// .itemInputs('megacells:256m_crafting_storage')
@ -652,32 +552,32 @@ const registerMegaCellsRecipes = (event) => {
.cleanroom(CleanroomType.CLEANROOM)
// 16m
// event.recipes.gtceu.assembler('megacells:portable_item_cell_16m')
// .itemInputs(
// 'ae2:chest',
// 'megacells:cell_component_16m',
// 'megacells:mega_energy_cell',
// '#gtceu:batteries/luv',
// 'megacells:mega_item_cell_housing')
// .inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 144))
// .itemOutputs('megacells:portable_item_cell_16m')
// .duration(200)
// .EUt(491520)
// .cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.assembler('megacells:portable_item_cell_16m')
.itemInputs(
'ae2:chest',
'megacells:cell_component_16m',
'megacells:mega_energy_cell',
'#gtceu:batteries/luv',
'megacells:mega_item_cell_housing')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 144))
.itemOutputs('megacells:portable_item_cell_16m')
.duration(200)
.EUt(491520)
.cleanroom(CleanroomType.CLEANROOM)
// // 64m
// event.recipes.gtceu.assembler('megacells:portable_item_cell_64m')
// .itemInputs(
// 'ae2:chest',
// 'megacells:cell_component_64m',
// 'megacells:mega_energy_cell',
// '#gtceu:batteries/luv',
// 'megacells:mega_item_cell_housing')
// .inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 144))
// .itemOutputs('megacells:portable_item_cell_64m')
// .duration(200)
// .EUt(1966080)
// .cleanroom(CleanroomType.CLEANROOM)
// 64m
event.recipes.gtceu.assembler('megacells:portable_item_cell_64m')
.itemInputs(
'ae2:chest',
'megacells:cell_component_64m',
'megacells:mega_energy_cell',
'#gtceu:batteries/luv',
'megacells:mega_item_cell_housing')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 144))
.itemOutputs('megacells:portable_item_cell_64m')
.duration(200)
.EUt(1966080)
.cleanroom(CleanroomType.CLEANROOM)
// // 256m
// event.recipes.gtceu.assembler('megacells:portable_item_cell_256m')
@ -726,33 +626,33 @@ const registerMegaCellsRecipes = (event) => {
.EUt(122880)
.cleanroom(CleanroomType.CLEANROOM)
// // 16m
// event.recipes.gtceu.assembler('megacells:portable_fluid_cell_16m')
// .itemInputs(
// 'ae2:chest',
// 'megacells:cell_component_16m',
// 'megacells:mega_energy_cell',
// '#gtceu:batteries/luv',
// 'megacells:mega_fluid_cell_housing')
// .inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 144))
// .itemOutputs('megacells:portable_fluid_cell_16m')
// .duration(200)
// .EUt(491520)
// .cleanroom(CleanroomType.CLEANROOM)
// 16m
event.recipes.gtceu.assembler('megacells:portable_fluid_cell_16m')
.itemInputs(
'ae2:chest',
'megacells:cell_component_16m',
'megacells:mega_energy_cell',
'#gtceu:batteries/luv',
'megacells:mega_fluid_cell_housing')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 144))
.itemOutputs('megacells:portable_fluid_cell_16m')
.duration(200)
.EUt(491520)
.cleanroom(CleanroomType.CLEANROOM)
// // 64m
// event.recipes.gtceu.assembler('megacells:portable_fluid_cell_64m')
// .itemInputs(
// 'ae2:chest',
// 'megacells:cell_component_64m',
// 'megacells:mega_energy_cell',
// '#gtceu:batteries/luv',
// 'megacells:mega_fluid_cell_housing')
// .inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 144))
// .itemOutputs('megacells:portable_fluid_cell_64m')
// .duration(200)
// .EUt(1966080)
// .cleanroom(CleanroomType.CLEANROOM)
// 64m
event.recipes.gtceu.assembler('megacells:portable_fluid_cell_64m')
.itemInputs(
'ae2:chest',
'megacells:cell_component_64m',
'megacells:mega_energy_cell',
'#gtceu:batteries/luv',
'megacells:mega_fluid_cell_housing')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 144))
.itemOutputs('megacells:portable_fluid_cell_64m')
.duration(200)
.EUt(1966080)
.cleanroom(CleanroomType.CLEANROOM)
// // 256m
// event.recipes.gtceu.assembler('megacells:portable_fluid_cell_256m')

View file

@ -0,0 +1,62 @@
// priority: 0
function registerTFCDataForMinecraft(event) {
event.foodItem('minecraft:golden_apple', food => {
food.hunger(2)
food.fruit(2)
food.decayModifier(0.6)
})
// treasure
event.foodItem('minecraft:enchanted_golden_apple', food => {
food.hunger(10)
food.saturation(10)
food.fruit(5)
food.water(20)
food.decayModifier(0)
})
event.foodItem('minecraft:golden_carrot', food => {
food.hunger(5)
food.saturation(5)
food.vegetables(3)
food.water(20)
food.decayModifier(0)
})
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(2)
food.water(5)
})
event.foodItem('minecraft:popped_chorus_fruit', food => {
food.hunger(2)
food.saturation(1)
food.fruit(3)
food.decayModifier(0.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)
})
}

View file

@ -0,0 +1,11 @@
PlayerEvents.tick(event => {
// make levitation last shorter, so shulkers aren't so deadly on the moon
if (event.player.hasEffect('minecraft:levitation')) {
event.server.scheduleInTicks(0, () => { })
event.server.scheduleInTicks(40, () => {
event.player.removeEffect('minecraft:levitation')
})
}
});

View file

@ -41,7 +41,7 @@ const registerMinecraftRecipes = (event) => {
event.recipes.gtceu.chemical_reactor(`tfg:minecraft/oxidizing_block_${element.name}`)
.itemInputs(element.block)
.inputFluids(Fluid.of('minecraft:water', 150))
.inputFluids(JsonIO.of({ amount: 150, value: { tag: "tfc:any_water" }}))
.circuit(1)
.itemOutputs(element2.block)
.duration(1000)
@ -49,7 +49,7 @@ const registerMinecraftRecipes = (event) => {
event.recipes.gtceu.chemical_reactor(`tfg:minecraft/oxidizing_cutted_${element.name}`)
.itemInputs(element.cutted)
.inputFluids(Fluid.of('minecraft:water', 150))
.inputFluids(JsonIO.of({ amount: 150, value: { tag: "tfc:any_water" }}))
.circuit(1)
.itemOutputs(element2.cutted)
.duration(1000)
@ -57,7 +57,7 @@ const registerMinecraftRecipes = (event) => {
event.recipes.gtceu.chemical_reactor(`tfg:minecraft/oxidizing_stairs_${element.name}`)
.itemInputs(element.stairs)
.inputFluids(Fluid.of('minecraft:water', 150))
.inputFluids(JsonIO.of({ amount: 150, value: { tag: "tfc:any_water" }}))
.circuit(1)
.itemOutputs(element2.stairs)
.duration(1000)
@ -65,7 +65,7 @@ const registerMinecraftRecipes = (event) => {
event.recipes.gtceu.chemical_reactor(`tfg:minecraft/oxidizing_slabs_${element.name}`)
.itemInputs(element.slabs)
.inputFluids(Fluid.of('minecraft:water', 150))
.inputFluids(JsonIO.of({ amount: 150, value: { tag: "tfc:any_water" }}))
.circuit(1)
.itemOutputs(element2.slabs)
.duration(1000)
@ -152,7 +152,7 @@ const registerMinecraftRecipes = (event) => {
event.recipes.gtceu.chemical_bath('paper_from_papyrus')
.itemInputs('tfc:papyrus')
.inputFluids(Fluid.of('minecraft:water', 100))
.inputFluids(JsonIO.of({ amount: 100, value: { tag: "tfg:clean_water" }}))
.itemOutputs('minecraft:paper')
.duration(100)
.EUt(7)
@ -163,7 +163,7 @@ const registerMinecraftRecipes = (event) => {
event.recipes.gtceu.centrifuge('sugar_from_sugarcane')
.itemInputs('tfc:food/sugarcane')
.inputFluids(Fluid.of('minecraft:water', 600))
.inputFluids(JsonIO.of({ amount: 600, value: { tag: "tfg:clean_water" }}))
.itemOutputs('minecraft:sugar', 'gtceu:plant_ball')
.duration(800)
.EUt(6)
@ -229,7 +229,7 @@ const registerMinecraftRecipes = (event) => {
event.recipes.gtceu.chemical_reactor('minecraft:gtceu/chemical_reactor/sponge')
.itemInputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.SodiumBisulfate, 1))
.inputFluids(Fluid.of('gtceu:polyethylene', 144), Fluid.of('minecraft:water', 250))
.inputFluids(Fluid.of('gtceu:polyethylene', 144), JsonIO.of({ amount: 250, value: { tag: "tfg:clean_water" }}))
.itemOutputs('2x minecraft:sponge')
.outputFluids(Fluid.of('gtceu:sodium_persulfate', 35))
.duration(80)
@ -307,13 +307,13 @@ const registerMinecraftRecipes = (event) => {
.duration(50)
.EUt(30)
event.recipes.gtceu.large_chemical_reactor('golden_apple_1')
.itemInputs('tfc:food/red_apple', '8x #forge:ingots/gold')
.itemOutputs('minecraft:golden_apple')
.duration(50)
.EUt(30)
event.recipes.gtceu.large_chemical_reactor('golden_apple_1')
.itemInputs('tfc:food/red_apple', '8x #forge:ingots/gold')
.itemOutputs('minecraft:golden_apple')
.duration(50)
.EUt(30)
//#endregion
//#endregion
//#region Выход: Компаратор
@ -545,6 +545,11 @@ const registerMinecraftRecipes = (event) => {
event.recipes.tfc.welding('minecraft:bucket', 'tfc:metal/bucket/red_steel', 'tfc:metal/bucket/blue_steel', 6)
.id('tfg:anvil/vanilla_bucket')
event.recipes.greate.compacting('minecraft:bucket', ['tfc:metal/bucket/red_steel', 'tfc:metal/bucket/blue_steel', 'tfc:powder/flux'])
.heated()
.recipeTier(0)
.id('greate:compacting/vanilla_bucket')
event.recipes.gtceu.assembler('tfg:vanilla/bucket')
.itemInputs('#forge:plates/red_steel', '#forge:plates/blue_steel')
.circuit(6)
@ -802,7 +807,7 @@ const registerMinecraftRecipes = (event) => {
.EUt(420)
event.recipes.gtceu.assembler('tfg:minecraft/elytra2')
.itemInputs('16x tfg:polycaprolactam_fabric', '16x #forge:foils/aluminium', '8x #forge:plates/ender_eye', '4x #forge:rings/aluminium', '2x #forge:rods/long/vanadium_steel', '2x #forge:small_springs/aluminium', '1x #forge:small_gears/aluminium')
.itemInputs('16x tfg:polycaprolactam_fabric', '16x #forge:foils/aluminium', '8x #forge:plates/ender_pearl', '4x #forge:rings/aluminium', '2x #forge:rods/long/vanadium_steel', '2x #forge:small_springs/aluminium', '1x #forge:small_gears/aluminium')
.circuit(4)
.itemOutputs(Item.of('minecraft:elytra', "{Damage:0}"))
.duration(1600)
@ -997,6 +1002,20 @@ const registerMinecraftRecipes = (event) => {
event.shapeless('4x minecraft:brown_mushroom', ['minecraft:brown_mushroom_block', '#forge:tools/knives'])
.id('tfg:shapeless/cut_brown_mushroom_block')
event.recipes.gtceu.compressor('tfg:red_mushroom')
.itemInputs('4x minecraft:red_mushroom')
.itemOutputs('minecraft:red_mushroom_block')
.circuit(2)
.duration(20)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.compressor('tfg:brown_mushroom')
.itemInputs('4x minecraft:brown_mushroom')
.itemOutputs('minecraft:brown_mushroom_block')
.duration(20)
.circuit(2)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.chemical_bath('tfg:red_mushroom_to_shroomlight')
.itemInputs('minecraft:red_mushroom_block')
.inputFluids(Fluid.of('gtceu:glowstone', 144))
@ -1011,6 +1030,7 @@ const registerMinecraftRecipes = (event) => {
.duration(200)
.EUt(GTValues.VA[GTValues.ULV])
// Stonecutter
event.shaped('minecraft:stonecutter',
@ -1028,4 +1048,39 @@ const registerMinecraftRecipes = (event) => {
}).id('tfg:shaped/stonecutter');
event.stonecutting('minecraft:smooth_quartz', 'minecraft:quartz_block')
event.stonecutting('create:cut_deepslate', 'minecraft:polished_deepslate')
//Glowing Ink Sacs
event.recipes.gtceu.chemical_bath('minecraft:glow_inc_sac4')
.itemInputs("gtceu:thorium_dust", "4x #forge:dyes/black")
.inputFluids(Fluid.of('gtceu:glowstone', 512))
.itemOutputs('16x minecraft:glow_ink_sac')
.duration(20)
.EUt(GTValues.VA[GTValues.HV])
event.recipes.gtceu.chemical_bath('minecraft:glow_inc_sac1')
.itemInputs("#forge:dyes/black")
.inputFluids(Fluid.of('gtceu:glowstone', 144))
.itemOutputs('minecraft:glow_ink_sac')
.duration(40)
.EUt(GTValues.VA[GTValues.MV])
// Gunpowder
event.shapeless('4x minecraft:gunpowder',
['#forge:tools/mortars', '2x #forge:dusts/saltpeter', '#forge:dusts/sulfur', '3x #forge:dusts/charcoal'])
.id('tfg:shapeless/gunpowder_charcoal')
event.shapeless('4x minecraft:gunpowder',
['#forge:tools/mortars', '2x #forge:dusts/saltpeter', '#forge:dusts/sulfur', '3x #forge:dusts/coal'])
.id('tfg:shapeless/gunpowder_coal')
event.shapeless('4x minecraft:gunpowder',
['#forge:tools/mortars', '2x #forge:dusts/saltpeter', '#forge:dusts/sulfur', '3x #forge:dusts/carbon'])
.id('tfg:shapeless/gunpowder_carbon')
event.shapeless('2x minecraft:gunpowder',
['#forge:tools/mortars', 'tfc:powder/saltpeter', 'tfc:powder/saltpeter', 'tfc:powder/sulfur', 'tfc:powder/charcoal', 'tfc:powder/charcoal', 'tfc:powder/charcoal'])
.id('tfg:shapeless/gunpowder_tfc_style')
}

View file

@ -1305,7 +1305,7 @@ function removeMinecraftRecipes(event) {
event.remove({ id: 'gtceu:shaped/sugar' })
event.remove({ id: 'minecraft:sugar_from_honey_bottle' })
event.remove({ id: 'gtceu:macerator/macerate_sugar_cane' })
removeMaceratorRecipe(event, 'macerate_sugar_cane')
//#endregion
@ -1322,14 +1322,14 @@ function removeMinecraftRecipes(event) {
//#region Выход: Семена тыквы
event.remove({ id: 'minecraft:pumpkin_seeds' })
event.remove({ id: 'gtceu:macerator/macerate_pumpkin' })
removeMaceratorRecipe(event, 'macerate_pumpkin')
//#endregion
//#region Выход: Семена арбуза
event.remove({ id: 'gtceu:macerator/macerate_melon_slice' })
event.remove({ id: 'gtceu:macerator/macerate_melon_block' })
removeMaceratorRecipe(event, 'macerate_melon_slice')
removeMaceratorRecipe(event, 'macerate_melon_block')
//#endregion
@ -1656,10 +1656,10 @@ function removeMinecraftRecipes(event) {
event.remove({ id: 'gtceu:arc_furnace/arc_chainmail_leggings' })
event.remove({ id: 'gtceu:arc_furnace/arc_chainmail_chestplate' })
event.remove({ id: 'gtceu:arc_furnace/arc_chainmail_helmet' })
event.remove({ id: 'gtceu:macerator/macerate_chainmail_boots' })
event.remove({ id: 'gtceu:macerator/macerate_chainmail_leggings' })
event.remove({ id: 'gtceu:macerator/macerate_chainmail_chestplate' })
event.remove({ id: 'gtceu:macerator/macerate_chainmail_helmet' })
removeMaceratorRecipe(event, 'macerate_chainmail_boots')
removeMaceratorRecipe(event, 'macerate_chainmail_leggings')
removeMaceratorRecipe(event, 'macerate_chainmail_chestplate')
removeMaceratorRecipe(event, 'macerate_chainmail_helmet')
event.remove({ id: 'minecraft:iron_nugget_from_smelting' })
event.remove({ id: 'minecraft:iron_nugget_from_blasting' })
@ -1671,13 +1671,13 @@ function removeMinecraftRecipes(event) {
event.remove({ id: 'gtceu:arc_furnace/arc_iron_leggings' })
event.remove({ id: 'gtceu:arc_furnace/arc_iron_chestplate' })
event.remove({ id: 'gtceu:arc_furnace/arc_iron_helmet' })
event.remove({ id: 'gtceu:macerator/macerate_iron_boots' })
event.remove({ id: 'gtceu:macerator/macerate_iron_leggings' })
event.remove({ id: 'gtceu:macerator/macerate_iron_chestplate' })
event.remove({ id: 'gtceu:macerator/macerate_iron_helmet' })
removeMaceratorRecipe(event, 'macerate_iron_boots')
removeMaceratorRecipe(event, 'macerate_iron_leggings')
removeMaceratorRecipe(event, 'macerate_iron_chestplate')
removeMaceratorRecipe(event, 'macerate_iron_helmet')
removeMaceratorRecipe(event, 'macerate_iron_horse_armor')
event.remove({ id: 'gtceu:shaped/iron_horse_armor' })
event.remove({ id: 'gtceu:arc_furnace/arc_iron_horse_armor' })
event.remove({ id: 'gtceu:macerator/macerate_iron_horse_armor' })
//#endregion
@ -1687,13 +1687,13 @@ function removeMinecraftRecipes(event) {
event.remove({ id: 'gtceu:arc_furnace/arc_golden_leggings' })
event.remove({ id: 'gtceu:arc_furnace/arc_golden_chestplate' })
event.remove({ id: 'gtceu:arc_furnace/arc_golden_helmet' })
event.remove({ id: 'gtceu:macerator/macerate_golden_boots' })
event.remove({ id: 'gtceu:macerator/macerate_golden_leggings' })
event.remove({ id: 'gtceu:macerator/macerate_golden_chestplate' })
event.remove({ id: 'gtceu:macerator/macerate_golden_helmet' })
removeMaceratorRecipe(event, 'macerate_golden_boots')
removeMaceratorRecipe(event, 'macerate_golden_leggings')
removeMaceratorRecipe(event, 'macerate_golden_chestplate')
removeMaceratorRecipe(event, 'macerate_golden_helmet')
removeMaceratorRecipe(event, 'macerate_golden_horse_armor')
event.remove({ id: 'gtceu:shaped/golden_horse_armor' })
event.remove({ id: 'gtceu:arc_furnace/arc_golden_horse_armor' })
event.remove({ id: 'gtceu:macerator/macerate_golden_horse_armor' })
event.remove({ id: 'minecraft:gold_nugget_from_smelting' })
event.remove({ id: 'minecraft:gold_nugget_from_blasting' })
@ -1701,12 +1701,12 @@ function removeMinecraftRecipes(event) {
//#region Алмазная броня
event.remove({ id: 'gtceu:macerator/macerate_diamond_boots' })
event.remove({ id: 'gtceu:macerator/macerate_diamond_leggings' })
event.remove({ id: 'gtceu:macerator/macerate_diamond_chestplate' })
event.remove({ id: 'gtceu:macerator/macerate_diamond_helmet' })
removeMaceratorRecipe(event, 'macerate_diamond_boots')
removeMaceratorRecipe(event, 'macerate_diamond_leggings')
removeMaceratorRecipe(event, 'macerate_diamond_chestplate')
removeMaceratorRecipe(event, 'macerate_diamond_helmet')
removeMaceratorRecipe(event, 'macerate_diamond_horse_armor')
event.remove({ id: 'gtceu:shaped/diamond_horse_armor' })
event.remove({ id: 'gtceu:macerator/macerate_diamond_horse_armor' })
//#endregion
@ -1722,31 +1722,31 @@ function removeMinecraftRecipes(event) {
//#region Деревянные инструменты
event.remove({ id: 'gtceu:macerator/macerate_wooden_sword' })
event.remove({ id: 'gtceu:macerator/macerate_wooden_pickaxe' })
event.remove({ id: 'gtceu:macerator/macerate_wooden_axe' })
event.remove({ id: 'gtceu:macerator/macerate_wooden_shovel' })
event.remove({ id: 'gtceu:macerator/macerate_wooden_hoe' })
removeMaceratorRecipe(event, 'macerate_wooden_sword')
removeMaceratorRecipe(event, 'macerate_wooden_pickaxe')
removeMaceratorRecipe(event, 'macerate_wooden_axe')
removeMaceratorRecipe(event, 'macerate_wooden_shovel')
removeMaceratorRecipe(event, 'macerate_wooden_hoe')
//#endregion
//#region Каменные инстурменты
event.remove({ id: 'gtceu:macerator/macerate_stone_sword' })
event.remove({ id: 'gtceu:macerator/macerate_stone_pickaxe' })
event.remove({ id: 'gtceu:macerator/macerate_stone_axe' })
event.remove({ id: 'gtceu:macerator/macerate_stone_shovel' })
event.remove({ id: 'gtceu:macerator/macerate_stone_hoe' })
removeMaceratorRecipe(event, 'macerate_stone_sword')
removeMaceratorRecipe(event, 'macerate_stone_pickaxe')
removeMaceratorRecipe(event, 'macerate_stone_axe')
removeMaceratorRecipe(event, 'macerate_stone_shovel')
removeMaceratorRecipe(event, 'macerate_stone_hoe')
//#endregion
//#region Железные инструменты
event.remove({ id: 'gtceu:macerator/macerate_iron_sword' })
event.remove({ id: 'gtceu:macerator/macerate_iron_pickaxe' })
event.remove({ id: 'gtceu:macerator/macerate_iron_axe' })
event.remove({ id: 'gtceu:macerator/macerate_iron_shovel' })
event.remove({ id: 'gtceu:macerator/macerate_iron_hoe' })
removeMaceratorRecipe(event, 'macerate_iron_sword')
removeMaceratorRecipe(event, 'macerate_iron_pickaxe')
removeMaceratorRecipe(event, 'macerate_iron_axe')
removeMaceratorRecipe(event, 'macerate_iron_shovel')
removeMaceratorRecipe(event, 'macerate_iron_hoe')
event.remove({ id: 'gtceu:arc_furnace/arc_iron_sword' })
event.remove({ id: 'gtceu:arc_furnace/arc_iron_pickaxe' })
event.remove({ id: 'gtceu:arc_furnace/arc_iron_axe' })
@ -1757,11 +1757,11 @@ function removeMinecraftRecipes(event) {
//#region Золотые инструменты
event.remove({ id: 'gtceu:macerator/macerate_golden_sword' })
event.remove({ id: 'gtceu:macerator/macerate_golden_pickaxe' })
event.remove({ id: 'gtceu:macerator/macerate_golden_axe' })
event.remove({ id: 'gtceu:macerator/macerate_golden_shovel' })
event.remove({ id: 'gtceu:macerator/macerate_golden_hoe' })
removeMaceratorRecipe(event, 'macerate_golden_sword')
removeMaceratorRecipe(event, 'macerate_golden_pickaxe')
removeMaceratorRecipe(event, 'macerate_golden_axe')
removeMaceratorRecipe(event, 'macerate_golden_shovel')
removeMaceratorRecipe(event, 'macerate_golden_hoe')
event.remove({ id: 'gtceu:arc_furnace/arc_golden_sword' })
event.remove({ id: 'gtceu:arc_furnace/arc_golden_pickaxe' })
event.remove({ id: 'gtceu:arc_furnace/arc_golden_axe' })
@ -1772,11 +1772,11 @@ function removeMinecraftRecipes(event) {
//#region Алмазные инструменты
event.remove({ id: 'gtceu:macerator/macerate_diamond_sword' })
event.remove({ id: 'gtceu:macerator/macerate_diamond_pickaxe' })
event.remove({ id: 'gtceu:macerator/macerate_diamond_axe' })
event.remove({ id: 'gtceu:macerator/macerate_diamond_shovel' })
event.remove({ id: 'gtceu:macerator/macerate_diamond_hoe' })
removeMaceratorRecipe(event, 'macerate_diamond_sword')
removeMaceratorRecipe(event, 'macerate_diamond_pickaxe')
removeMaceratorRecipe(event, 'macerate_diamond_axe')
removeMaceratorRecipe(event, 'macerate_diamond_shovel')
removeMaceratorRecipe(event, 'macerate_diamond_hoe')
event.remove({ id: 'gtceu:arc_furnace/arc_diamond_sword' })
event.remove({ id: 'gtceu:arc_furnace/arc_diamond_pickaxe' })
event.remove({ id: 'gtceu:arc_furnace/arc_diamond_axe' })
@ -2073,7 +2073,7 @@ function removeMinecraftRecipes(event) {
event.remove({ id: 'minecraft:ender_chest' })
event.remove({ id: 'minecraft:end_crystal' })
event.remove({ id: 'gtceu:macerator/macerate_end_stone' })
removeMaceratorRecipe(event, 'macerate_end_stone')
event.remove({ id: 'gtceu:assembler/ender_chest' })
event.remove({ id: 'gtceu:assembler/end_crystal' })
//#endregion

View file

@ -29,11 +29,13 @@ const registerMinecraftItemTags = (event) => {
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', 'minecraft:popped_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('tfc:foods/fruits', 'minecraft:popped_chorus_fruit')
event.add('beneath:usable_in_juicer', 'minecraft:glow_berries')
event.add('beneath:usable_in_juicer', 'minecraft:chorus_fruit')
@ -44,11 +46,13 @@ const registerMinecraftItemTags = (event) => {
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_soup', 'minecraft:popped_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:foods/usable_in_salad', 'minecraft:popped_chorus_fruit')
event.add('tfc:rock/raw', 'minecraft:deepslate')
event.add('tfc:rock/raw', 'minecraft:blackstone')
@ -56,11 +60,20 @@ const registerMinecraftItemTags = (event) => {
event.remove('forge:gems', 'minecraft:charcoal')
event.remove('forge:gems', 'minecraft:coal')
event.remove('forge:gems', 'minecraft:flint')
event.add('tfc:compost_greens_high', 'minecraft:red_mushroom_block')
event.add('tfc:compost_greens_high', 'minecraft:brown_mushroom_block')
event.add('tfc:compost_greens_high', 'minecraft:twisting_vines')
event.add('tfc:compost_greens_high', 'minecraft:pearlescent_froglight')
event.add('tfc:compost_greens_high', 'minecraft:verdant_froglight')
event.add('tfc:compost_greens_high', 'minecraft:ochre_froglight')
event.add('tfc:colored_terracotta', 'minecraft:white_terracotta')
event.add('tfc:bells', 'minecraft:bell')
event.add('tfc:plants', 'minecraft:spore_blossom')
}
const registerMinecraftBlockTags = (event) => {

View file

@ -0,0 +1,30 @@
const registerModernMarkingRecipes = (event) => {
event.remove({mod: 'ags_modernmarkings'})
event.shaped('16x ags_modernmarkings:wall_marking_hazard_diamond', [
' B ',
'AEC',
' D '
], {
A: '#forge:dyes/blue',
B: '#forge:dyes/red',
C: '#forge:dyes/yellow',
D: '#forge:dyes/white',
E: ChemicalHelper.get(TagPrefix.plate, GTMaterials.Steel, 1)
}).id('tfg:shaped/wall_marking_hazard_diamond')
event.recipes.gtceu.large_chemical_reactor('tfg:large_chemical_reactor/wall_marking_hazard_diamond')
.inputFluids(Fluid.of('tfc:blue_dye', 144), Fluid.of('tfc:red_dye', 144), Fluid.of('tfc:yellow_dye', 144), Fluid.of('tfc:white_dye', 144))
.itemInputs(ChemicalHelper.get(TagPrefix.plate, GTMaterials.Steel, 1))
.itemOutputs('32x ags_modernmarkings:wall_marking_hazard_diamond')
.duration(240)
.EUt(GTValues.VA[GTValues.LV])
const markings = Ingredient.of('#ags_modernmarkings:markings').itemIds.toArray().map(String);
markings.forEach(item => {
event.stonecutting(item,
Ingredient.of('#ags_modernmarkings:markings').subtract(item)
).id(`tfg:stonecutter/${item.replace(/:/g, "/")}`)
})
};

View file

@ -0,0 +1,128 @@
const registerModernMarkingsItemTags = (event) => {
global.MODERN_MARKINGS_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
});
const floor_markings = [
'ags_modernmarkings:floor_marking_nostep',
'ags_modernmarkings:floor_marking_white_arrow',
'ags_modernmarkings:floor_marking_white_lane',
'ags_modernmarkings:floor_marking_white_double_arrow',
'ags_modernmarkings:floor_marking_white_square',
'ags_modernmarkings:floor_marking_yellow_arrow',
'ags_modernmarkings:floor_marking_yellow_sideline',
'ags_modernmarkings:floor_marking_yellow_square',
'ags_modernmarkings:floor_marking_yellow_stripes',
'ags_modernmarkings:floor_marking_redx',
'ags_modernmarkings:floor_marking_noentry',
'ags_modernmarkings:floor_marking_black_singleline',
'ags_modernmarkings:floor_marking_white_singleline',
'ags_modernmarkings:floor_marking_red_singleline',
'ags_modernmarkings:floor_marking_yellow_singleline',
'ags_modernmarkings:floor_marking_green_singleline',
'ags_modernmarkings:floor_marking_blue_singleline',
'ags_modernmarkings:floor_marking_orange_singleline',
'ags_modernmarkings:floor_marking_yellow_hazardline',
'ags_modernmarkings:floor_marking_red_hazardline',
'ags_modernmarkings:floor_marking_whiteblack_hazardline',
'ags_modernmarkings:floor_marking_danger_yellow',
'ags_modernmarkings:floor_marking_danger_red',
'ags_modernmarkings:floor_marking_exit',
'ags_modernmarkings:floor_marking_white_lane_cross',
'ags_modernmarkings:floor_marking_yellow_lane',
'ags_modernmarkings:floor_marking_black_corner',
'ags_modernmarkings:floor_marking_blue_corner',
'ags_modernmarkings:floor_marking_green_corner',
'ags_modernmarkings:floor_marking_orange_corner',
'ags_modernmarkings:floor_marking_white_corner',
'ags_modernmarkings:floor_marking_yellow_corner',
'ags_modernmarkings:floor_marking_red_corner'
];
const wall_markings = [
'ags_modernmarkings:wall_marking_number_0',
'ags_modernmarkings:wall_marking_number_1',
'ags_modernmarkings:wall_marking_number_2',
'ags_modernmarkings:wall_marking_number_3',
'ags_modernmarkings:wall_marking_number_4',
'ags_modernmarkings:wall_marking_number_5',
'ags_modernmarkings:wall_marking_number_6',
'ags_modernmarkings:wall_marking_number_7',
'ags_modernmarkings:wall_marking_number_8',
'ags_modernmarkings:wall_marking_number_9',
'ags_modernmarkings:wall_marking_number_no',
'ags_modernmarkings:wall_marking_number_numero',
'ags_modernmarkings:wall_marking_number_dash',
'ags_modernmarkings:wall_marking_number_comma',
'ags_modernmarkings:wall_marking_number_period',
'ags_modernmarkings:wall_marking_exclamation_mark',
'ags_modernmarkings:wall_marking_question_mark',
'ags_modernmarkings:wall_marking_hazard_diamond',
'ags_modernmarkings:wall_marking_arrowleft',
'ags_modernmarkings:wall_marking_arrowright',
'ags_modernmarkings:wall_marking_exit',
'ags_modernmarkings:wall_marking_hazardline_left',
'ags_modernmarkings:wall_marking_hazardline_right',
'ags_modernmarkings:wall_marking_symbol_chemical',
'ags_modernmarkings:wall_marking_symbol_electric',
'ags_modernmarkings:wall_marking_symbol_fire',
'ags_modernmarkings:wall_marking_symbol_fluid',
'ags_modernmarkings:wall_marking_symbol_frost',
'ags_modernmarkings:wall_marking_symbol_gears',
'ags_modernmarkings:wall_marking_symbol_laser',
'ags_modernmarkings:wall_marking_symbol_magic',
'ags_modernmarkings:wall_marking_symbol_mob',
'ags_modernmarkings:wall_marking_symbol_pinch',
'ags_modernmarkings:wall_marking_symbol_production',
'ags_modernmarkings:wall_marking_symbol_radiation',
'ags_modernmarkings:wall_marking_symbol_storage',
'ags_modernmarkings:wall_marking_symbol_yellow_chemical',
'ags_modernmarkings:wall_marking_symbol_yellow_electric',
'ags_modernmarkings:wall_marking_symbol_yellow_fire',
'ags_modernmarkings:wall_marking_symbol_yellow_fluid',
'ags_modernmarkings:wall_marking_symbol_yellow_frost',
'ags_modernmarkings:wall_marking_symbol_yellow_gears',
'ags_modernmarkings:wall_marking_symbol_yellow_laser',
'ags_modernmarkings:wall_marking_symbol_yellow_magic',
'ags_modernmarkings:wall_marking_symbol_yellow_mob',
'ags_modernmarkings:wall_marking_symbol_yellow_pinch',
'ags_modernmarkings:wall_marking_symbol_yellow_production',
'ags_modernmarkings:wall_marking_symbol_yellow_radiation',
'ags_modernmarkings:wall_marking_symbol_yellow_storage',
'ags_modernmarkings:wall_marking_symbol_jeo',
'ags_modernmarkings:wall_marking_warning_danger',
'ags_modernmarkings:wall_marking_voltage_eu',
'ags_modernmarkings:wall_marking_voltage_ev',
'ags_modernmarkings:wall_marking_voltage_fe',
'ags_modernmarkings:wall_marking_voltage_hv',
'ags_modernmarkings:wall_marking_voltage_iv',
'ags_modernmarkings:wall_marking_voltage_luv',
'ags_modernmarkings:wall_marking_voltage_lv',
'ags_modernmarkings:wall_marking_voltage_max',
'ags_modernmarkings:wall_marking_voltage_mv',
'ags_modernmarkings:wall_marking_voltage_pert',
'ags_modernmarkings:wall_marking_voltage_rf',
'ags_modernmarkings:wall_marking_voltage_uev',
'ags_modernmarkings:wall_marking_voltage_uhv',
'ags_modernmarkings:wall_marking_voltage_uiv',
'ags_modernmarkings:wall_marking_voltage_umv',
'ags_modernmarkings:wall_marking_voltage_uv',
'ags_modernmarkings:wall_marking_voltage_uxv',
'ags_modernmarkings:wall_marking_voltage_zpm',
'ags_modernmarkings:wall_marking_voltage_ulv',
'ags_modernmarkings:wall_marking_voltage_steam'
];
floor_markings.forEach(marking => {
event.add('ags_modernmarkings:floor_markings', marking)
})
wall_markings.forEach(marking => {
event.add('ags_modernmarkings:wall_markings', marking)
})
event.add('ags_modernmarkings:markings', '#ags_modernmarkings:floor_markings')
event.add('ags_modernmarkings:markings', '#ags_modernmarkings:wall_markings')
};

View file

@ -0,0 +1,7 @@
// priority: 0
function registerProgrammedCircuitCardRecipes(event) {
event.replaceInput({ id: 'pccard:item/card_programmed_circuit' }, 'gtceu:programmed_circuit', '#gtceu:circuits/lv')
}

View file

@ -1,12 +1,13 @@
// priority: 0
function registerPrimitiveCreatesLoots(event) {
function registerPrimitiveCreaturesLoots(event) {
event.addEntityLootModifier('kaolinclayze:tfc')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([12,16], ['tfc:kaolin_clay', 'minecraft:clay_ball'])
.addLoot('tfc:plant/blood_lily')
event.addEntityLootModifier('kaolinclayze:golem_2')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([4,6], ['gtceu:rich_raw_graphite'])
.addWeightedLoot([3,5], ['gtceu:rich_raw_graphite'])
}

View file

@ -161,7 +161,7 @@ const registerRailWaysRecipes = (event) => {
}).id('tfg:railways/shaped/track_switch_brass')
event.recipes.gtceu.assembler('tfg:railways/track_switch_brass')
.itemInputs('minecraft:lever', '2x #forge:bolts/wrought_iron', '2x #tfg:small_cogwheels', 'create:brass_casing')
.itemInputs('minecraft:lever', '2x #forge:bolts/brass', '2x #tfg:small_cogwheels', 'create:brass_casing')
.circuit(3)
.itemOutputs('railways:track_switch_brass')
.duration(200)
@ -208,13 +208,13 @@ const registerRailWaysRecipes = (event) => {
'DA '
], {
A: '#forge:storage_blocks/charcoal',
B: '#forge:nuggets/black_steel',
B: '#forge:bolts/black_steel',
C: '#forge:plates/black_steel',
D: '#forge:tools/hammers'
}).id('tfg:railways/shaped/smokestack_caboosestyle')
event.recipes.gtceu.assembler('tfg:railways/smokestack_caboosestyle')
.itemInputs('#forge:storage_blocks/charcoal', '2x #forge:nuggets/black_steel', '#forge:plates/black_steel')
.itemInputs('#forge:storage_blocks/charcoal', '2x #forge:bolts/black_steel', '#forge:plates/black_steel')
.circuit(4)
.itemOutputs('railways:smokestack_caboosestyle')
.duration(200)
@ -226,12 +226,12 @@ const registerRailWaysRecipes = (event) => {
'BAB'
], {
A: '#forge:storage_blocks/charcoal',
B: '#forge:nuggets/black_steel',
B: '#forge:bolts/black_steel',
C: '#forge:tools/hammers'
}).id('tfg:railways/shaped/smokestack_long')
event.recipes.gtceu.assembler('tfg:railways/smokestack_long')
.itemInputs('#forge:storage_blocks/charcoal', '2x #forge:nuggets/black_steel')
.itemInputs('#forge:storage_blocks/charcoal', '2x #forge:bolts/black_steel')
.circuit(5)
.itemOutputs('railways:smokestack_long')
.duration(200)
@ -297,12 +297,12 @@ const registerRailWaysRecipes = (event) => {
], {
A: '#forge:storage_blocks/charcoal',
B: '#forge:plates/black_steel',
C: '#forge:nuggets/black_steel',
C: '#forge:bolts/black_steel',
D: '#forge:tools/hammers'
}).id('tfg:railways/shaped/smokestack_woodburner')
event.recipes.gtceu.assembler('tfg:railways/smokestack_woodburner')
.itemInputs('#forge:storage_blocks/charcoal', '3x #forge:plates/black_steel', '2x #forge:nuggets/black_steel')
.itemInputs('#forge:storage_blocks/charcoal', '3x #forge:plates/black_steel', '2x #forge:bolts/black_steel')
.circuit(9)
.itemOutputs('railways:smokestack_woodburner')
.duration(200)
@ -324,9 +324,9 @@ const registerRailWaysRecipes = (event) => {
'8x 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.greate.pressing('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.createDeploying('railways:track_incomplete_monorail', ['railways:track_incomplete_monorail', '#forge:tools/hammers']),
event.recipes.greate.pressing('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('railways/monorail')
@ -341,7 +341,7 @@ const registerRailWaysRecipes = (event) => {
], '#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']),
event.recipes.greate.pressing('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.gtceu.assembler('railways/track_create_andesite_narrow_from_steel')
@ -359,7 +359,7 @@ const registerRailWaysRecipes = (event) => {
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.createDeploying('create:incomplete_track', ['create:incomplete_track', '#forge:tools/hammers']),
event.recipes.greate.pressing('create:incomplete_track', 'create:incomplete_track'),
]).transitionalItem('create:incomplete_track').loops(2).id('tfg:railways/sequenced_assembly/track_create_andesite')
event.recipes.gtceu.assembler('railways/track')
@ -377,7 +377,7 @@ const registerRailWaysRecipes = (event) => {
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']),
event.recipes.greate.pressing('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.gtceu.assembler('railways/track_create_andesite_wide')
@ -396,7 +396,7 @@ const registerRailWaysRecipes = (event) => {
], `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']),
event.recipes.greate.pressing(`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`)
@ -413,7 +413,7 @@ const registerRailWaysRecipes = (event) => {
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.createDeploying(`railways:track_incomplete_tfc_${woodType}`, [`railways:track_incomplete_tfc_${woodType}`, '#forge:tools/hammers']),
event.recipes.greate.pressing(`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}`)
@ -430,7 +430,7 @@ const registerRailWaysRecipes = (event) => {
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.createDeploying(`railways:track_incomplete_tfc_${woodType}_wide`, [`railways:track_incomplete_tfc_${woodType}_wide`, '#forge:tools/hammers'])
event.recipes.greate.pressing(`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`)

View file

@ -51,7 +51,7 @@ const registerRnrRecipes = (event) => {
).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))
.inputFluids(Fluid.of('gtceu:concrete', 192), JsonIO.of({ amount: 808, value: { tag: "tfg:clean_water" }}))
.outputFluids(Fluid.of('rnr:concrete', 1000))
.circuit(7)
.duration(200)

View file

@ -0,0 +1,21 @@
// priority: 0
function registerSpeciesLoots(event) {
event.addEntityLootModifier('species:birt')
.addWeightedLoot([2, 4], ['tfg:food/raw_birt'])
.addWeightedLoot([1, 2], ['gtceu:blue_alloy_single_wire'])
event.addEntityLootModifier('species:birt')
.randomChanceWithEnchantment('minecraft:looting', [0, 0.3, 0.6, 1])
.addWeightedLoot([1, 3], ['tfc:food/raw_birt'])
event.addEntityLootModifier('species:limpet')
.addWeightedLoot([5, 8], ['tfg:food/raw_limpet'])
event.addEntityLootModifier('species:limpet')
.randomChanceWithEnchantment('minecraft:looting', [0, 0.3, 0.6, 1])
.addWeightedLoot([2, 4], ['tfc:food/raw_limpet'])
}

View file

@ -0,0 +1,66 @@
// priority: 0
function registerSpeciesRecipes(event) {
event.remove({ mod: 'species' })
event.shapeless('species:music_disc_dial', ['etched:blank_music_disc', 'species:birt_egg'])
event.shapeless('species:music_disc_lapidarian', ['etched:blank_music_disc', 'tfc:rock/raw/basalt_slab'])
event.shapeless('species:music_disk_spawner', ['etched:blank_music_disc', 'computercraft:disk'])
event.shaped('species:cranktrap', [
'ABA',
'CDC',
'ABA'
], {
A: '#forge:bolts/wrought_iron',
B: '#forge:rods/wrought_iron',
C: '#forge:small_springs',
D: '#forge:tools/hammers'
}).id('tfg:shaped/cranktrap')
event.shaped('species:crankbow', [
'ACA',
'CBC',
'DED'
], {
A: '#forge:rods/black_steel',
B: 'minecraft:crossbow',
C: '#forge:small_gears/steel',
D: 'tfc:metal/chain/black_steel',
E: 'create:hand_crank'
}).id('tfg:shaped/crankbow')
event.recipes.gtceu.assembler('species:hopelight')
.itemInputs('1x #forge:plates/magnalium', 'ae2:charged_certus_quartz_crystal')
.inputFluids(Fluid.of('gtceu:glowstone', 144*4))
.itemOutputs('2x species:hopelight')
.duration(200)
.EUt(GTValues.VA[GTValues.HV])
event.recipes.gtceu.assembler('species:speclight')
.itemInputs('#forge:rings/magnalium', 'ae2:charged_certus_quartz_crystal')
.inputFluids(Fluid.of('gtceu:glowstone', 144))
.itemOutputs('2x species:speclight')
.duration(100)
.EUt(GTValues.VA[GTValues.HV])
event.shaped('2x species:coil', [
'ABA'
], {
A: '#forge:screws/wrought_iron',
B: 'firmaciv:rope_coil'
}).id('tfg:shaped/coil')
event.shaped('species:harpoon', [
'A',
'B',
'B'
], {
A: 'tfc:metal/javelin_head/wrought_iron',
B: 'firmaciv:rope_coil'
}).id('tfg:shaped/harpoon')
// TODO: birtday cake
}

View file

@ -0,0 +1,16 @@
const registerSpeciesBlockTags = (event) => {
global.SPECIES_DISABLED_BLOCKS.forEach(block => {
event.removeAllTagsFrom(block)
event.add('c:hidden_from_recipe_viewers', block)
})
}
const registerSpeciesItemTags = (event) => {
global.SPECIES_DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
})
event.add('forge:eggs', 'species:birt_egg')
event.add('firmalife:foods/raw_eggs', 'species:birt_egg')
}

View file

@ -0,0 +1,32 @@
const ammoIndexLogic = (event) => {
const id = event.getId().toString();
if (!global.TACZ_ENABLED_AMMO.includes(id)) {
return event.removeAmmo();
}
}
const attachmentIndexLogic = (event) => {
const id = event.getId().toString();
if (!global.TACZ_ENABLED_ATTACH.includes(id)) {
return event.removeAttachment();
}
}
const gunIndexLogic = (event) => {
const id = event.getId().toString();
if (!global.TACZ_ENABLED_GUNS.includes(id)) {
return event.removeGun();
}
}

View file

@ -0,0 +1,123 @@
function registerTACZAmmoRecipes(event){
//Extruder Casing
event.recipes.gtceu.extruder('tfg_tacz:small_casing')
.itemInputs('#forge:ingots/brass')
.notConsumable('tfg:small_casing_extruder_mold')
.itemOutputs('6x tfg:small_bullet_casing')
.duration(10)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.extruder('tfg_tacz:shell_casing')
.itemInputs('#forge:ingots/brass')
.notConsumable('tfg:shell_casing_extruder_mold')
.itemOutputs('3x tfg:shell_bullet_casing')
.duration(10)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.extruder('tfg_tacz:large_casing')
.itemInputs('#forge:ingots/brass')
.notConsumable('tfg:large_casing_extruder_mold')
.itemOutputs('5x tfg:large_bullet_casing')
.duration(10)
.EUt(GTValues.VA[GTValues.MV])
//Additives
event.recipes.gtceu.chemical_reactor('tfg_tacz:nitrocellulose_from_wood')
.itemInputs('gtceu:thermochemically_treated_hardwood_dust')
.inputFluids(Fluid.of('gtceu:nitric_acid', 200), Fluid.of('gtceu:sulfuric_acid', 400), Fluid.of('minecraft:water', 600))
.itemOutputs('2x tfg:nitrocellulose')
.EUt(GTValues.VA[GTValues.EV])
.duration(20)
event.recipes.gtceu.chemical_reactor('tfg_tacz:nitrocellulose_from_wood_dih20')
.itemInputs('gtceu:thermochemically_treated_hardwood_dust')
.inputFluids(Fluid.of('gtceu:nitric_acid', 200), Fluid.of('gtceu:sulfuric_acid', 400), Fluid.of('gtceu:distilled_water', 600))
.itemOutputs('4x tfg:nitrocellulose')
.outputFluids(Fluid.of('gtceu:nitration_mixture', 100))
.EUt(GTValues.VA[GTValues.EV])
.duration(40)
//Actual Ammo
event.shapeless(Item.of('tacz:ammo',4, '{AmmoId:"ulv_guns:lead_shot"}'),
['4x #forge:nuggets/lead', '#forge:plates/paper', '#forge:dusts/gunpowder']
).id('tfg_tacz:lead_shot');
event.shaped(Item.of('tacz:ammo', 4,'{AmmoId:"tacz:45_70"}'), [
'ABA',
'ACA',
'DEF'
], {
A: '#forge:nuggets/lead',
B: '#forge:tools/mallets',
C: '#forge:dusts/gunpowder',
D: '#forge:tools/files',
E: '#forge:ingots/brass',
F: '#forge:tools/saws'
}).id('tfg_tacz:45_70_bullets');
//Clockwork era
event.recipes.gtceu.assembler('tfg_tacz:rb_small')
.itemInputs('4x #forge:nuggets/lead','2x #forge:foils/copper', '4x tfg:small_bullet_casing',
'#forge:dusts/gunpowder')
.itemOutputs(Item.of('tacz:ammo', 4,
'{AmmoId:"create_armorer:rbapb"}'))
.EUt(GTValues.VA[GTValues.MV])
.duration(20)
event.recipes.gtceu.assembler('tfg_tacz:slap_large')
.itemInputs('4x #forge:nuggets/lead','4x #forge:foils/copper', '4x tfg:large_bullet_casing',
'#forge:dusts/gunpowder')
.itemOutputs(Item.of('tacz:ammo', 4,
'{AmmoId:"create_armorer:slap"}'))
.EUt(GTValues.VA[GTValues.MV])
.duration(20)
event.recipes.gtceu.assembler('tfg_tacz:12g_shell_peth')
.itemInputs('12x #forge:nuggets/lead', '4x tfg:shell_bullet_casing', '#forge:dusts/gunpowder')
.inputFluids(Fluid.of('gtceu:polyethylene', 288))
.itemOutputs(Item.of('tacz:ammo', 4,
'{AmmoId:"tacz:12g"}'))
.EUt(GTValues.VA[GTValues.MV])
.duration(20)
event.recipes.gtceu.assembler('tfg_tacz:12g_shell_pvc')
.itemInputs('12x #forge:nuggets/lead', '4x tfg:shell_bullet_casing', '#forge:dusts/gunpowder')
.inputFluids(Fluid.of('gtceu:polyvinyl_chloride', 144))
.itemOutputs(Item.of('tacz:ammo', 4,
'{AmmoId:"tacz:12g"}'))
.EUt(GTValues.VA[GTValues.MV])
.duration(30)
//Certus era
event.recipes.gtceu.assembler('tfg_tacz:fluix_grenade')
.itemInputs('#forge:ingots/magnalium', '4x gtceu:gelled_toluene', 'tfg:nitrocellulose')
.inputFluids(Fluid.of('tfg:fluix', 720))
.itemOutputs(Item.of('tacz:ammo',
'{AmmoId:"applied_armorer:fluix_infused_grenade"}'))
.EUt(GTValues.VA[GTValues.EV])
.duration(20)
event.recipes.gtceu.assembler('tfg_tacz:etched_quartz_small')
.itemInputs('2x ae2:certus_quartz_crystal', '4x tfg:small_bullet_casing', 'tfg:nitrocellulose')
.itemOutputs(Item.of('tacz:ammo', 4,
'{AmmoId:"applied_armorer:etched_quartz_bullet"}'))
.EUt(GTValues.VA[GTValues.EV])
.duration(20)
event.recipes.gtceu.assembler('tfg_tacz:hard_quartz_large')
.itemInputs('4x ae2:charged_certus_quartz_crystal', '4x tfg:large_bullet_casing', 'tfg:nitrocellulose')
.itemOutputs(Item.of('tacz:ammo', 4,
'{AmmoId:"applied_armorer:hard_core_quartz_bullet"}'))
.EUt(GTValues.VA[GTValues.EV])
.duration(20)
event.recipes.gtceu.assembler('tfg_tacz:cluster_quartz_shell_ptfe')
.itemInputs('16x gtceu:chipped_certus_quartz_gem', '4x tfg:shell_bullet_casing', 'tfg:nitrocellulose')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 144))
.itemOutputs(Item.of('tacz:ammo', 4,
'{AmmoId:"applied_armorer:cluster_quartz_bullet"}'))
.EUt(GTValues.VA[GTValues.EV])
.duration(20)
event.recipes.gtceu.assembler('tfg_tacz:cluster_quartz_shell_pbi')
.itemInputs('16x gtceu:chipped_certus_quartz_gem', '4x tfg:shell_bullet_casing', 'tfg:nitrocellulose')
.inputFluids(Fluid.of('gtceu:polybenzimidazole', 72))
.itemOutputs(Item.of('tacz:ammo', 4,
'{AmmoId:"applied_armorer:cluster_quartz_bullet"}'))
.EUt(GTValues.VA[GTValues.EV])
.duration(30)
}

View file

@ -0,0 +1,143 @@
function registerTACZAttachRecipes(event){
//Scopes
event.shaped(Item.of('tacz:attachment', '{AttachmentId:"tacz:scope_1873_6x"}'), [
'ABA',
'BCB',
'DEF'
], {
A: '#forge:rings/black_steel',
B: 'tfc:lens',
C: 'gtceu:brass_small_item_pipe',
D: '#forge:tools/screwdrivers',
E: '#forge:screws/black_steel',
F: '#forge:tools/files'
}).id('tfg_tacz:trapdoor_scope');
event.recipes.gtceu.assembler('tfg_tacz:ca_reflex')
.itemInputs('tfc:lens', '#forge:rings/brass', '#forge:plates/steel')
.itemOutputs(Item.of('tacz:attachment', '{AttachmentId:"create_armorer:sight_reflex"}'))
.circuit(1)
.EUt(GTValues.VA[GTValues.MV])
.duration(10);
event.recipes.gtceu.assembler('tfg_tacz:ca_standard')
.itemInputs('2x tfc:lens','#forge:leather', '2x #forge:rings/brass',
'#forge:plates/steel')
.itemOutputs(Item.of('tacz:attachment', '{AttachmentId:"create_armorer:sight_standard"}'))
.circuit(2)
.EUt(GTValues.VA[GTValues.MV])
.duration(10);
event.recipes.gtceu.assembler('tfg_tacz:ca_medium')
.itemInputs('3x tfc:lens', '#forge:leather', '4x #forge:rings/brass',
'#forge:small_gears/brass', '#forge:plates/steel')
.itemOutputs(Item.of('tacz:attachment', '{AttachmentId:"create_armorer:sight_medium_distance"}'))
.circuit(3)
.EUt(GTValues.VA[GTValues.MV])
.duration(10);
event.recipes.gtceu.assembler('tfg_tacz:ca_telophoto')
.itemInputs('6x tfc:lens', 'gtceu:brass_small_item_pipe','2x #forge:rings/steel',
'2x #forge:small_gears/brass', '#forge:plates/steel')
.itemOutputs(Item.of('tacz:attachment', '{AttachmentId:"create_armorer:scope_telephoto"}'))
.circuit(4)
.EUt(GTValues.VA[GTValues.MV])
.duration(10);
event.recipes.gtceu.assembler('tfg_tacz:aa_pricision')
.itemInputs('tfc:lens', 'minecraft:glow_ink_sac', '2x #forge:screws/tungsten',
'#forge:plates/steel')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 144))
.itemOutputs(Item.of('tacz:attachment', '{AttachmentId:"applied_armorer:si_pricision"}'))
.circuit(1)
.EUt(GTValues.VA[GTValues.EV])
.duration(20)
event.recipes.gtceu.assembler('tfg_tacz:aa_double')
.itemInputs('2x tfc:lens', 'minecraft:glow_ink_sac', '2x #forge:screws/tungsten',
'#forge:small_gears/titanium', '#forge:plates/steel')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 144))
.itemOutputs(Item.of('tacz:attachment', '{AttachmentId:"applied_armorer:si_double_sided_mirror"}'))
.circuit(2)
.EUt(GTValues.VA[GTValues.EV])
.duration(20)
event.recipes.gtceu.assembler('tfg_tacz:aa_twelve') //Works
.itemInputs('tfc:lens', 'minecraft:glow_ink_sac', '4x #forge:screws/tungsten',
'#forge:plates/steel')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 288))
.itemOutputs(Item.of('tacz:attachment', '{AttachmentId:"applied_armorer:si_ms_12"}'))
.circuit(3)
.EUt(GTValues.VA[GTValues.EV])
.duration(20)
event.recipes.gtceu.assembler('tfg_tacz:aa_fourteen')
.itemInputs('4x tfc:lens', 'minecraft:glow_ink_sac', '6x #forge:screws/tungsten',
'#forge:small_gears/titanium', '#forge:plates/steel')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 432))
.itemOutputs(Item.of('tacz:attachment', '{AttachmentId:"applied_armorer:scope_ms_14"}'))
.circuit(4)
.EUt(GTValues.VA[GTValues.EV])
.duration(20)
event.recipes.gtceu.assembler('tfg_tacz:aa_sniper') //Works
.itemInputs('12x tfc:lens', 'minecraft:glow_ink_sac', '10x #forge:screws/tungsten',
'2x #forge:small_gears/titanium', '8x #forge:fine_wires/red_alloy','#forge:plates/steel')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 720))
.itemOutputs(Item.of('tacz:attachment', '{AttachmentId:"applied_armorer:scope_xgs_905"}'))
.circuit(5)
.EUt(GTValues.VA[GTValues.EV])
.duration(20)
//Muzzles
event.recipes.gtceu.assembler('tfg_tacz:ca_large_tank')
.itemInputs('2x gtceu:blue_steel_tiny_fluid_pipe', '2x gtceu:steel_fluid_cell', '8x #forge:rings/silicone_rubber',
'4x #forge:rings/stainless_steel', '#forge:plates/stainless_steel', '8x #forge:screws/stainless_steel')
.itemOutputs(Item.of('tacz:attachment', '{AttachmentId:"create_armorer:muzzle_refit_bigger_cylinder"}'))
.EUt(GTValues.VA[GTValues.MV])
.duration(20)
event.recipes.gtceu.assembler('tfg_tacz:ca_lava_tube')
.itemInputs('4x gtceu:red_steel_tiny_fluid_pipe', 'gtceu:steel_fluid_cell', '4x gtceu:tempered_glass',
'4x #forge:rings/stainless_steel', '#forge:plates/rose_gold', '8x #forge:screws/stainless_steel')
.inputFluids(Fluid.of('minecraft:lava', 2000))
.itemOutputs(Item.of('tacz:attachment', '{AttachmentId:"create_armorer:muzzle_refit_lava_perfusion_bottle"}'))
.EUt(GTValues.VA[GTValues.MV])
.duration(20)
event.recipes.gtceu.assembler('tfg_tacz:aa_compensator')
.itemInputs('gtceu:tungsten_small_fluid_pipe')
.itemOutputs(Item.of('tacz:attachment', '{AttachmentId:"applied_armorer:muzzle_bs_mod4"}'))
.circuit(1)
.EUt(GTValues.VA[GTValues.EV])
.duration(20)
event.recipes.gtceu.assembler('tfg_tacz:aa_commander')
.itemInputs('gtceu:tungsten_small_fluid_pipe')
.itemOutputs(Item.of('tacz:attachment', '{AttachmentId:"applied_armorer:muzzle_commander"}'))
.circuit(2)
.EUt(GTValues.VA[GTValues.EV])
.duration(20)
event.recipes.gtceu.assembler('tfg_tacz:aa_silencer')
.itemInputs('gtceu:tungsten_small_fluid_pipe')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 288))
.itemOutputs(Item.of('tacz:attachment', '{AttachmentId:"applied_armorer:muzzle_ns_1"}'))
.circuit(3)
.EUt(GTValues.VA[GTValues.EV])
.duration(20)
event.recipes.gtceu.assembler('tfg_tacz:aa_thick_silencer')
.itemInputs('gtceu:tungsten_small_fluid_pipe')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 576))
.itemOutputs(Item.of('tacz:attachment', '{AttachmentId:"applied_armorer:muzzle_classic"}'))
.circuit(4)
.EUt(GTValues.VA[GTValues.EV])
.duration(20)
//Stock
//Grip
event.recipes.gtceu.assembler('tfg_tacz:wooden_grip')
.itemInputs('gtceu:treated_wood_planks', '2x #forge:ingots/steel')
.itemOutputs(Item.of('tacz:attachment', '{AttachmentId:"create_armorer:grip_wooden"}'))
.EUt(GTValues.VA[GTValues.MV])
.duration(10)
event.recipes.gtceu.assembler('tfg_tacz:gantry_grip')
.itemInputs('create:gantry_shaft', '2x #forge:ingots/steel')
.itemOutputs(Item.of('tacz:attachment', '{AttachmentId:"create_armorer:grip_gantry_shaft"}'))
.EUt(GTValues.VA[GTValues.MV])
.duration(10)
}

View file

@ -0,0 +1,176 @@
function registerTACZGunRecipes(event){
//Region flintlock era
event.shaped(Item.of('tacz:modern_kinetic_gun', '{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"ulv_guns:flintlock",HasBulletInBarrel:1b}'), [
'ABC',
' DD',
'EFG'
], {
A: '#forge:tools/files',
B: 'tfg:flintlock_mechanism',
C: 'gtceu:steel_small_fluid_pipe',
D: '#firmaciv:hard_wood',
E: '#forge:tools/saws',
F: '#forge:ingots/brass',
G: '#forge:tools/screwdrivers'
}).id('tacz:flintlock_pistol');
/* NYI
event.shaped(Item.of('tacz:modern_kinetic_gun', '{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"ulv_guns:blunderbuss",HasBulletInBarrel:1b}'), [
'ABC',
'DDD',
'EFG'
], {
A: '#forge:tools/files',
B: 'tfg:flintlock_mechanism',
C: 'gtceu:steel_normal_fluid_pipe',
D: '#firmaciv:hard_wood',
E: '#forge:tools/saws',
F: '#forge:ingots/brass',
G: '#forge:tools/screwdrivers'
}).id('tacz:blunderbuss_shotgun');
*/
event.shaped(Item.of('tacz:modern_kinetic_gun', '{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"tacz:springfield1873",HasBulletInBarrel:1b}'), [
'ABC',
'DDD',
'EFG'
], {
A: '#forge:tools/files',
B: 'tfg:flintlock_mechanism',
C: 'gtceu:steel_small_fluid_pipe',
D: 'gtceu:treated_wood_planks',
E: '#forge:tools/saws',
F: '#forge:ingots/black_steel',
G: '#forge:tools/screwdrivers'
}).id('tacz:trapdoor_rifle');
//Region clockwork era
event.recipes.gtceu.assembler('tfg_tacz:ca_torque_revo')
.itemInputs('gtceu:steel_small_fluid_pipe', '4x #forge:ingots/aluminium', '2x #forge:plates/brass',
'6x #forge:rings/brass', '2x gtceu:treated_wood_planks', '8x #forge:screws/black_steel',
'tfg:advanced_clockwork_mechanism')
.inputFluids(Fluid.of('gtceu:soldering_alloy', 288))
.itemOutputs(Item.of('tacz:modern_kinetic_gun',
'{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"create_armorer:pistol_revolver_torque",HasBulletInBarrel:1b}'))
.circuit(1)
.EUt(GTValues.VA[GTValues.MV])
.duration(80)
event.recipes.gtceu.assembler('tfg_tacz:ca_crane')
.itemInputs('gtceu:steel_small_fluid_pipe', '7x #forge:ingots/aluminium', '2x #forge:ingots/black_steel',
'4x #forge:plates/brass','2x gtceu:copper_tiny_fluid_pipe', '2x gtceu:treated_wood_planks',
'2x #forge:small_gears/steel', '14x #forge:screws/black_steel', 'tfg:advanced_clockwork_mechanism')
.inputFluids(Fluid.of('gtceu:soldering_alloy', 540))
.itemOutputs(Item.of('tacz:modern_kinetic_gun',
'{GunCurrentAmmoCount:0,GunFireMode:"AUTO",GunId:"create_armorer:rifle_assult_crane",HasBulletInBarrel:1b}'))
.EUt(GTValues.VA[GTValues.MV])
.duration(100)
event.recipes.gtceu.assembler('tfg_tacz:ca_pump_bearing')
.itemInputs('2x gtceu:steel_small_fluid_pipe', '4x #forge:ingots/aluminium', '4x #forge:plates/brass',
'8x gtceu:treated_wood_planks', '#forge:small_gears/steel', '#forge:gears/steel',
'16x #forge:screws/black_steel', 'tfg:advanced_clockwork_mechanism')
.inputFluids(Fluid.of('gtceu:soldering_alloy', 432))
.itemOutputs(Item.of('tacz:modern_kinetic_gun',
'{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"create_armorer:shotgun_pump_bearing",HasBulletInBarrel:0b}'))
.EUt(GTValues.VA[GTValues.MV])
.circuit(3)
.duration(100)
event.recipes.gtceu.assembler('tfg_tacz:ca_clockwork_sniper')
.itemInputs('gtceu:steel_normal_fluid_pipe', '7x #forge:ingots/aluminium', '7x #forge:ingots/black_steel',
'4x #forge:plates/brass','6x gtceu:copper_tiny_fluid_pipe', '2x gtceu:treated_wood_planks',
'14x #forge:screws/black_steel', 'tfg:advanced_clockwork_mechanism')
.inputFluids(Fluid.of('gtceu:soldering_alloy', 792))
.itemOutputs(Item.of('tacz:modern_kinetic_gun',
'{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"create_armorer:sniper_semi_clockwork",HasBulletInBarrel:1b}'))
.EUt(GTValues.VA[GTValues.MV])
.circuit(4)
.duration(120)
event.recipes.gtceu.assembler('tfg_tacz:ca_flywheel_mg')
.itemInputs('gtceu:steel_normal_fluid_pipe', '10x #forge:ingots/aluminium', '6x #forge:ingots/black_steel',
'6x #forge:plates/brass', 'create:steam_engine', '3x gtceu:steel_tiny_fluid_pipe',
'2x gtceu:treated_wood_planks','20x #forge:screws/black_steel', '2x tfg:advanced_clockwork_mechanism')
.inputFluids(Fluid.of('gtceu:soldering_alloy', 936))
.itemOutputs(Item.of('tacz:modern_kinetic_gun',
'{GunCurrentAmmoCount:0,GunFireMode:"AUTO",GunId:"create_armorer:mg_platemag_flywheel",HasBulletInBarrel:1b}'))
.EUt(GTValues.VA[GTValues.MV])
.duration(160)
//Region certus era
event.recipes.gtceu.assembler('tfg_tacz:aa_pride')
.itemInputs('gtceu:titanium_small_fluid_pipe', '4x #forge:ingots/titanium', '2x #forge:plates/stainless_steel',
'2x #forge:rods/long/titanium', '8x #forge:screws/tungsten', 'tfg:certus_mechanism')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 1152))
.itemOutputs(Item.of('tacz:modern_kinetic_gun',
'{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"applied_armorer:niklas_pistol_semi_pride",HasBulletInBarrel:0b}'))
.circuit(2)
.EUt(GTValues.VA[GTValues.EV])
.duration(80)
event.recipes.gtceu.assembler('tfg_tacz:aa_right')
.itemInputs('gtceu:titanium_small_fluid_pipe', '5x #forge:ingots/titanium', '3x #forge:plates/stainless_steel',
'#forge:rods/long/titanium', '10x #forge:screws/tungsten', 'tfg:certus_mechanism')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 1152))
.itemOutputs(Item.of('tacz:modern_kinetic_gun',
'{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"applied_armorer:niklas_pistol_semi_right",HasBulletInBarrel:0b}'))
.circuit(1)
.EUt(GTValues.VA[GTValues.EV])
.duration(80)
event.recipes.gtceu.assembler('tfg_tacz:aa_win_win')
.itemInputs('2x gtceu:titanium_small_fluid_pipe', '10x #forge:ingots/titanium', '6x #forge:plates/stainless_steel',
'2x #forge:rods/long/titanium', '16x #forge:screws/tungsten', 'tfg:certus_mechanism')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 2304))
.itemOutputs(Item.of('tacz:modern_kinetic_gun',
'{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"applied_armorer:niklas_pistol_double_win_win",HasBulletInBarrel:1b}'))
.circuit(3)
.EUt(GTValues.VA[GTValues.EV])
.duration(120)
event.recipes.gtceu.assembler('tfg_tacz:aa_ar')
.itemInputs('gtceu:titanium_small_fluid_pipe', '10x #forge:ingots/titanium', '5x #forge:plates/stainless_steel',
'2x #forge:rods/long/tungsten_carbide', '2x tfc:lens', '20x #forge:screws/tungsten',
'tfg:certus_mechanism')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 2880))
.itemOutputs(Item.of('tacz:modern_kinetic_gun',
'{GunCurrentAmmoCount:0,GunFireMode:"AUTO",GunId:"applied_armorer:moritz_rifle_ar77",HasBulletInBarrel:1b}'))
.circuit(5)
.EUt(GTValues.VA[GTValues.EV])
.duration(180)
event.recipes.gtceu.assembler('tfg_tacz:aa_914')
.itemInputs('gtceu:titanium_small_fluid_pipe', '10x #forge:ingots/titanium', '10x #forge:plates/stainless_steel',
'2x #forge:rods/long/tungsten_carbide', '2x tfc:lens', '20x #forge:screws/tungsten',
'tfg:certus_mechanism')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 1728))
.itemOutputs(Item.of('tacz:modern_kinetic_gun',
'{GunCurrentAmmoCount:0,GunFireMode:"AUTO",GunId:"applied_armorer:moritz_shotgun_sg914",HasBulletInBarrel:0b}'))
.circuit(6)
.EUt(GTValues.VA[GTValues.EV])
.duration(180)
event.recipes.gtceu.assembler('tfg_tacz:aa_k30')
.itemInputs('2x gtceu:titanium_small_fluid_pipe', '8x #forge:ingots/titanium', '2x #forge:ingots/magnalium',
'8x #forge:plates/stainless_steel', '3x #forge:rods/long/tungsten_carbide', '2x tfc:lens',
'24x #forge:screws/tungsten', 'tfg:certus_mechanism')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 1728))
.itemOutputs(Item.of('tacz:modern_kinetic_gun',
'{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"applied_armorer:moritz_sniper_semi_k30",HasBulletInBarrel:0b}'))
.circuit(4)
.EUt(GTValues.VA[GTValues.EV])
.duration(220)
event.recipes.gtceu.assembler('tfg_tacz:aa_gl')
.itemInputs('gtceu:tungsten_steel_normal_fluid_pipe', '12x #forge:ingots/titanium', '6x #forge:plates/stainless_steel',
'4x #forge:rods/long/tungsten_carbide', '2x tfc:lens', '30x #forge:screws/tungsten',
'2x tfg:certus_mechanism')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 2304))
.itemOutputs(Item.of('tacz:modern_kinetic_gun',
'{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"applied_armorer:moritz_gernade_gl3",HasBulletInBarrel:1b}'))
.circuit(7)
.EUt(GTValues.VA[GTValues.EV])
.duration(240)
}

View file

@ -0,0 +1,13 @@
const registerTACZRecipes = (event) => {
event.remove({ mod: 'tacz' })
event.remove({ mod: 'create_armorer' })
event.remove({ mod: 'applied_armorer' })
registerTACZMiscRecipes(event)
registerTACZGunRecipes(event)
registerTACZAttachRecipes(event)
registerTACZAmmoRecipes(event)
}

View file

@ -0,0 +1,92 @@
function registerTACZMiscRecipes(event) {
//Targets etc
event.shaped('tacz:target',[
'ABA',
'BCB',
' B '
],{
A: '#forge:dyes/red',
B: '#forge:plates/steel',
C: '#forge:rods/long/wood'
}).id('tfg_tacz:target');
event.shaped('tacz:statue',[
'BAB',
'BAB',
' A '
],{
A: 'tfc:rock/chiseled/marble',
B: 'tfc:rock/smooth/marble_stairs'
}).id('tfg_tacz:statue');
event.shapeless('tacz:target_minecart',
['tacz:target', 'minecraft:minecart']
).id('tfg_tacz:target_minecart');
//Molds
event.shaped('tfg:small_casing_extruder_mold',[
' ',
'AB ',
' '
],{
A: '#forge:tools/wire_cutters',
B: 'gtceu:empty_mold'
}).id('tfg:small_casing_extruder_mold');
event.shaped('tfg:large_casing_extruder_mold',[
' ',
'AB ',
' C'
],{
A: '#forge:tools/wire_cutters',
B: 'gtceu:empty_mold',
C: '#forge:tools/files'
}).id('tfg:large_casing_extruder_mold');
event.shaped('tfg:shell_casing_extruder_mold',[
' C',
'AB ',
' '
],{
A: '#forge:tools/wire_cutters',
B: 'gtceu:empty_mold',
C: '#forge:tools/files'
}).id('tfg:shell_casing_extruder_mold');
//Mechanisms
event.shaped('tfg:flintlock_mechanism', [
'ABC',
'DEF',
'GHI'
], {
A: '#forge:tools/screwdrivers',
B: '#forge:gems/flint',
C: '#forge:tools/files',
D: '#forge:springs/steel',
E: '#forge:bolts/steel',
F: '#forge:plates/steel',
G: '#forge:tools/wire_cutters',
H: '#forge:small_gears/steel',
I: '#forge:tools/hammers'
}).id('tfg:shaped/flintlock_mechanism');
event.recipes.gtceu.assembler('tfg:advanced_clockwork_mechanism')
.itemInputs('2x greate:aluminium_cogwheel', 'greate:silicone_rubber_belt_connector', '2x #forge:springs/aluminium',
'8x #forge:screws/aluminium', '#forge:gears/cobalt_brass', '3x #forge:rings/silicone_rubber')
.itemOutputs('tfg:advanced_clockwork_mechanism')
.EUt(GTValues.VA[GTValues.MV])
.duration(80)
event.recipes.gtceu.assembler('tfg:certus_mechanism')
.itemInputs('2x ae2:charged_certus_quartz_crystal', '2x #forge:gears/titanium', '2x #forge:springs/tungsten',
'16x #forge:screws/titanium', '2x #forge:rods/titanium', '6x #forge:rings/styrene_butadiene_rubber',
'16x #forge:fine_wires/red_alloy')
.inputFluids(Fluid.of('gtceu:soldering_alloy', 288))
.itemOutputs('tfg:certus_mechanism')
.EUt(GTValues.VA[GTValues.EV])
.duration(80)
}

View file

@ -0,0 +1,13 @@
const registerTACZItemTags = (event) => {
event.add('c:hidden_from_recipe_viewers', 'tacz:ammo_box')
event.add('c:hidden_from_recipe_viewers', 'tacz:gun_smith_table')
event.add('c:hidden_from_recipe_viewers', 'tacz:workbench_a')
event.add('c:hidden_from_recipe_viewers', 'tacz:workbench_b')
event.add('c:hidden_from_recipe_viewers', 'tacz:workbench_c')
}

View file

@ -1,282 +1,89 @@
// priority: 0
const registerTFCDataForTFC = (event) => {
registerTFCMetals(event)
registerTFCHeats(event)
registerTFCFuels(event)
registerTFCLampFuels(event)
registerTFCFertilizers(event)
registerTFCKnappingTypes(event)
registerTFCItemSize(event)
registerTFCFoodData(event)
registerTFCSupportData(event)
registerTFCHeats(event)
registerTFCFuels(event)
registerTFCLampFuels(event)
registerTFCFertilizers(event)
registerTFCKnappingTypes(event)
registerTFCItemSize(event)
registerTFCFoodData(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')
event.metal('gtceu:bronze', 950, 0.00857, '#forge:ingots/bronze', '#forge:double_ingots/bronze', '#forge:plates/bronze', 2, 'tfc:bronze')
event.metal('gtceu:black_bronze', 1070, 0.00857, '#forge:ingots/black_bronze', '#forge:double_ingots/black_bronze', '#forge:plates/black_bronze', 2, 'tfc:black_bronze')
event.metal('gtceu:wrought_iron', 1535, 0.00857, '#forge:ingots/wrought_iron', '#forge:double_ingots/wrought_iron', '#forge:plates/wrought_iron', 3, 'tfc:wrought_iron')
event.metal('gtceu:steel', 1540, 0.00857, '#forge:ingots/steel', '#forge:double_ingots/steel', '#forge:plates/steel', 4, 'tfc:steel')
event.metal('gtceu:black_steel', 1485, 0.00857, '#forge:ingots/black_steel', '#forge:double_ingots/black_steel', '#forge:plates/black_steel', 5, 'tfc:black_steel')
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('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')
event.metal('gtceu:zinc', 420, 0.01429, '#forge:ingots/zinc', '#forge:double_ingots/zinc', '#forge:plates/zinc', 1, 'tfc:zinc')
event.metal('gtceu:sterling_silver', 950, 0.00857, '#forge:ingots/sterling_silver', '#forge:double_ingots/sterling_silver', '#forge:plates/sterling_silver', 1, 'tfc:sterling_silver')
event.metal('gtceu:rose_gold', 960, 0.00857, '#forge:ingots/rose_gold', '#forge:double_ingots/rose_gold', '#forge:plates/rose_gold', 1, 'tfc:rose_gold')
event.metal('gtceu:silver', 961, 0.00625, '#forge:ingots/silver', '#forge:double_ingots/silver', '#forge:plates/silver', 1, 'tfc:silver')
event.metal('gtceu:gold', 1060, 0.005, '#forge:ingots/gold', '#forge:double_ingots/gold', '#forge:plates/gold', 1, 'tfc:gold')
event.metal('gtceu:nickel', 1453, 0.00625, '#forge:ingots/nickel', '#forge:double_ingots/nickel', '#forge:plates/nickel', 1, 'tfc:nickel')
event.metal('gtceu:brass', 930, 0.00857, '#forge:ingots/brass', '#forge:double_ingots/brass', '#forge:plates/brass', 2, 'tfc:brass')
event.metal('gtceu:redstone', 460, 0.01729, null, null, null, 1, 'tfg:redstone')
event.metal('gtceu:red_alloy', 740, 0.01529, '#forge:ingots/red_alloy', '#forge:double_ingots/red_alloy', '#forge:plates/red_alloy', 2, 'tfg:red_alloy')
event.metal('gtceu:tin_alloy', 1250, 0.00829, '#forge:ingots/tin_alloy', '#forge:double_ingots/tin_alloy', '#forge:plates/tin_alloy', 3, 'tfg:tin_alloy')
}
//#endregion
//#region registerTFCHeats
const registerTFCHeats = (event) => {
function makeItemHeatByTagPrefix(tagPrefix, material, tfcProperty, heatCapacity) {
let item = ChemicalHelper.get(tagPrefix, material, 1)
if (!item.isEmpty()) event.itemHeat(item, heatCapacity, tfcProperty.getForgingTemp(), tfcProperty.getWeldingTemp())
}
function makeItemHeatByToolType(toolType, material, tfcProperty, heatCapacity) {
let tool = ToolHelper.get(toolType, material)
if (!tool.isEmpty()) event.itemHeat(tool, heatCapacity, tfcProperty.getForgingTemp(), tfcProperty.getWeldingTemp())
}
// Ведро из синей стали
event.itemHeat('tfc:metal/bucket/blue_steel', 1.429, 924, 1232)
forEachMaterial(material => {
let tfcProperty = material.getProperty(TFGPropertyKey.TFC_PROPERTY)
if (tfcProperty != null) {
makeItemHeatByTagPrefix(TagPrefix.dustTiny, material, tfcProperty, 0.357)
makeItemHeatByTagPrefix(TagPrefix.dustSmall, material, tfcProperty, 0.714)
makeItemHeatByTagPrefix(TagPrefix.dust, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TagPrefix.rod, material, tfcProperty, 0.567)
makeItemHeatByTagPrefix(TagPrefix.bolt, material, tfcProperty, 0.245)
makeItemHeatByTagPrefix(TagPrefix.screw, material, tfcProperty, 0.567)
makeItemHeatByTagPrefix(TagPrefix.nugget, material, tfcProperty, 0.124)
makeItemHeatByTagPrefix(TagPrefix.block, material, tfcProperty, 20)
makeItemHeatByTagPrefix(TagPrefix.rodLong, material, tfcProperty, 1.429)
// Ведро из красной
event.itemHeat('tfc:metal/bucket/red_steel', 1.429, 924, 1232)
makeItemHeatByTagPrefix(TagPrefix.ingot, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TagPrefix.rawOre, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TFGTagPrefix.richRawOre, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TFGTagPrefix.poorRawOre, material, tfcProperty, 1.429)
// Ore processing stages
makeItemHeatByTagPrefix(TagPrefix.dustImpure, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TagPrefix.dustPure, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TagPrefix.crushed, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TagPrefix.crushedPurified, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TagPrefix.crushedRefined, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadSword, material, tfcProperty, 2.875)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadShovel, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadScythe, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadPickaxe, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadSaw, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadKnife, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadHoe, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadHammer, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadAxe, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadFile, material, tfcProperty, 1.429)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadButcheryKnife, material, tfcProperty, 2.875)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadMiningHammer, material, tfcProperty, 2.875)
makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadSpade, material, tfcProperty, 2.875)
makeItemHeatByToolType(GTToolType.SWORD, material, tfcProperty, 1.429)
makeItemHeatByToolType(GTToolType.PICKAXE, material, tfcProperty, 1.429)
makeItemHeatByToolType(GTToolType.SHOVEL, material, tfcProperty, 1.429)
makeItemHeatByToolType(GTToolType.AXE, material, tfcProperty, 1.429)
makeItemHeatByToolType(GTToolType.HOE, material, tfcProperty, 1.429)
makeItemHeatByToolType(GTToolType.SAW, material, tfcProperty, 1.429)
makeItemHeatByToolType(GTToolType.HARD_HAMMER, material, tfcProperty, 2.875)
makeItemHeatByToolType(GTToolType.FILE, material, tfcProperty, 1.429)
makeItemHeatByToolType(GTToolType.SCYTHE, material, tfcProperty, 1.429)
makeItemHeatByToolType(GTToolType.KNIFE, material, tfcProperty, 1.429)
makeItemHeatByToolType(GTToolType.BUTCHERY_KNIFE, material, tfcProperty, 2.875)
makeItemHeatByToolType(GTToolType.MINING_HAMMER, material, tfcProperty, 1.429)
makeItemHeatByToolType(GTToolType.SPADE, material, tfcProperty, 2.875)
}
})
// Ведро из синей стали
event.itemHeat('tfc:metal/bucket/blue_steel', 1.429, 924, 1232)
// Ведро из красной
event.itemHeat('tfc:metal/bucket/red_steel', 1.429, 924, 1232)
// Seaweed and Kelp
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)
// Seaweed and Kelp
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)
}
//#endregion
//#region registerTFCFuels
const registerTFCFuels = (event) => {
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('gtceu:coke_gem', 1415, 4400, 1.0)
event.fuel('gtceu:coke_dust', 1415, 1200, 0.95)
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)
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)
event.lampFuel('gtceu:creosote', '#tfc:lamps', 1000)
event.lampFuel('gtceu:seed_oil', '#tfc:lamps', 7000)
event.lampFuel("gtceu:glowstone", "#tfc:lamps", -1)
}
//#endregion
//#region registerTFCFertilizers
const registerTFCFertilizers = (event) => {
event.fertilizer('gtceu:fertilizer', 0.15, 0.15, 0.15)
event.fertilizer('gtceu:fertilizer', 0.15, 0.15, 0.15)
event.fertilizer('gtceu:tiny_potassium_dust', null, null, 0.016)
event.fertilizer('gtceu:small_potassium_dust', null, null, 0.037)
event.fertilizer('gtceu:potassium_dust', null, null, 0.15)
event.fertilizer('gtceu:tiny_potassium_dust', null, null, 0.016)
event.fertilizer('gtceu:small_potassium_dust', null, null, 0.037)
event.fertilizer('gtceu:potassium_dust', null, null, 0.15)
event.fertilizer('gtceu:tiny_phosphorus_dust', null, 0.016, null)
event.fertilizer('gtceu:small_phosphorus_dust', null, 0.037, null)
event.fertilizer('gtceu:phosphorus_dust', null, 0.15, null)
event.fertilizer('gtceu:tiny_phosphorus_dust', null, 0.016, null)
event.fertilizer('gtceu:small_phosphorus_dust', null, 0.037, null)
event.fertilizer('gtceu:phosphorus_dust', null, 0.15, null)
event.fertilizer('gtceu:tiny_saltpeter_dust', 0.01, null, 0.038)
event.fertilizer('gtceu:small_saltpeter_dust', 0.025, null, 0.0875)
event.fertilizer('gtceu:saltpeter_dust', 0.10, null, 0.35)
event.fertilizer('gtceu:tiny_saltpeter_dust', 0.01, null, 0.038)
event.fertilizer('gtceu:small_saltpeter_dust', 0.025, null, 0.0875)
event.fertilizer('gtceu:saltpeter_dust', 0.10, null, 0.35)
event.fertilizer('gtceu:tiny_bone_dust', null, 0.01, null)
event.fertilizer('gtceu:small_bone_dust', null, 0.025, null)
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('minecraft:flint', 1, 1, 'tfc:item.knapping.stone', true, false, true, 'minecraft:flint', 'tfg:flint')
// 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')
event.knappingType('minecraft:flint', 1, 1, 'tfc:item.knapping.stone', true, false, true, 'minecraft:flint', 'tfg:flint')
}
//#endregion
//#region registerTFCItemSize
const registerTFCItemSize = (event) => {
event.itemSize('#tfc:ore_pieces', 'very_small', 'very_light', 'tfc_ores')
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('tfg:fishing_net/wood', 'large', 'medium', 'wood_fishing_net')
event.itemSize('tfg:fishing_net/brass', 'large', 'medium', 'brass_fishing_net')
event.itemSize('tfg:fishing_net/rose_gold', 'large', 'medium', 'rose_gold_fishing_net')
event.itemSize('tfg:fishing_net/sterling_silver', 'large', 'medium', 'sterling_silver_fishing_net')
event.itemSize('tfg:fishing_net/invar', 'large', 'medium', 'invar_fishing_net')
event.itemSize('tfg:fishing_net/cupronickel', 'large', 'medium', 'cupronickel_fishing_net')
event.itemSize('tfg:fishing_net/tin_alloy', 'large', 'medium', 'tin_alloy_fishing_net')
event.itemSize('tfg:fishing_net/magnalium', 'large', 'medium', 'magnalium_fishing_net')
event.itemSize('#tfc:ore_pieces', 'very_small', 'very_light', 'tfc_ores')
event.itemSize('#tfc:foods/sealed_preserves', 'tiny', 'medium', 'sealed_preserves')
event.itemSize('#tfc:foods/preserves', 'tiny', 'medium', 'preserves')
event.itemSize('#tfc:foods/sealed_preserves', 'tiny', 'medium', 'sealed_preserves')
event.itemSize('#tfc:foods/preserves', 'tiny', 'medium', 'preserves')
}
//#endregion
//#region registerTFCFoodData
const registerTFCFoodData = (event) => {
event.foodItem('minecraft:golden_apple', food => {
food.hunger(2)
food.fruit(2)
food.decayModifier(0.6)
})
event.foodItem('minecraft:enchanted_golden_apple', food => {
food.hunger(3)
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)
})
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_horizontal', 4, 4, 8, 'light_concrete_support')
event.support('tfg:dark_concrete_support_horizontal', 4, 4, 8, 'dark_concrete_support')
event.support('tfg:reinforced_light_concrete_support_horizontal', 6, 6, 16, 'reinforced_light_concrete_support')
event.support('tfg:reinforced_dark_concrete_support_horizontal', 6, 6, 16, 'reinforced_dark_concrete_support')
event.support('tfg:rebar_support_horizontal', 4, 4, 8, 'rebar_support')
event.support('tfg:steel_support_horizontal', 6, 6, 16, 'steel_support')
const other_stone = ['pyroxenite', 'migmatite', 'travertine']
const stone_types = global.TFC_STONE_TYPES.concat(other_stone)
stone_types.forEach(stone => {
event.support(`tfg:${stone}_support_horizontal`, 2, 2, 4, `${stone}_support`)
})
}
//#endregion

View file

@ -32,7 +32,7 @@ function registerTFCDirtRecipes(event) {
// Dirt -> Mud
event.recipes.gtceu.mixer(`${mud}_grass_to_mud`)
.itemInputs(`tfc:dirt/${mud}`)
.inputFluids(Fluid.of('minecraft:water', 100))
.inputFluids(JsonIO.of({ amount: 100, value: { tag: "tfc:any_water" }}))
.circuit(2)
.itemOutputs(`tfc:mud/${mud}`)
.duration(200)

View file

@ -138,6 +138,20 @@ function registerTFCDyeRecipes(event) {
.fluidOutput(Fluid.of(`tfc:${dyeName}_dye`, 144 * i))
.id(`tfc:pot/${i}x_${dyeName}_dye`)
}
event.recipes.gtceu.chemical_reactor(`chemical_dye_${dyeName}_acetic`)
.itemInputs(`#forge:dyes/${dyeName}`)
.inputFluids(Fluid.of('gtceu:acetic_acid', 250), JsonIO.of({ amount: 1000, value: { tag: "tfg:clean_water" }}))
.outputFluids(Fluid.of(`tfc:${dyeName}_dye`, 144 * 3))
.duration(15 * 20)
.EUt(24)
event.recipes.gtceu.chemical_reactor(`chemical_dye_${dyeName}_vinegar`)
.itemInputs(`#forge:dyes/${dyeName}`)
.inputFluids(Fluid.of('tfc:vinegar', 250))
.outputFluids(Fluid.of(`tfc:${dyeName}_dye`, 144))
.duration(30 * 20)
.EUt(24)
})
//#endregion

View file

@ -34,44 +34,6 @@ const registerTFCRecipes = (event) => {
//#endregion
//#region Рецепты зерен
global.TFC_QUERN_GRAIN_RECIPE_COMPONENTS.forEach(element => {
event.recipes.gtceu.macerator(`tfg:${element.name}`)
.itemInputs(element.input)
.itemOutputs(element.output)
.chancedOutput('tfc:straw', 7000, 500)
.duration(200)
.EUt(2)
event.recipes.tfc.quern(element.output, element.input)
.id(`tfg:quern/${element.name}`)
})
//#endregion
//#region Рецепты муки
global.TFC_QUERN_FLOUR_RECIPE_COMPONENTS.forEach(element => {
event.recipes.gtceu.macerator(`tfg:${element.name}`)
.itemInputs(element.input)
.itemOutputs(element.output)
.duration(200)
.EUt(2)
})
//#endregion
//#region Рецепты обжарки мяса
global.TFC_FURNACE_MEAT_RECIPE_COMPONENTS.forEach(element => {
event.smelting(element.output, element.input)
.id(`tfg:smelting/${element.name}`)
})
//#endregion
//#region Рецепты обжарки форм
global.TFC_FURNACE_MOLD_RECIPE_COMPONENTS.forEach(element => {
@ -94,26 +56,26 @@ const registerTFCRecipes = (event) => {
// Дерево
global.TFC_WOOD_TYPES.forEach(wood => {
generateGreenHouseRecipe(event, `8x tfc:wood/sapling/${wood}`, 16000, `64x tfc:wood/log/${wood}`, `tfg:greenhouse/${wood}`, true)
generateGreenHouseRecipe(event, `8x tfc:wood/sapling/${wood}`, 16000, `64x tfc:wood/log/${wood}`, `tfg:greenhouse/${wood}`, 'minecraft:overworld', 8)
})
global.AFC_SAPLINGS.forEach(x => {
generateGreenHouseRecipe(event, `8x afc:wood/sapling/${x.sapling}`, 16000, `64x ${x.log}`, `tfg:greenhouse/${x.sapling}`, true)
generateGreenHouseRecipe(event, `8x afc:wood/sapling/${x.sapling}`, 16000, `64x ${x.log}`, `tfg:greenhouse/${x.sapling}`, 'minecraft:overworld', 8)
})
// Семена фруктов
global.TFC_GREENHOUSE_FRUIT_RECIPE_COMPONENTS.forEach(element => {
generateGreenHouseRecipe(event, element.input, element.fluid_amount, element.output, element.name, true)
generateGreenHouseRecipe(event, element.input, element.fluid_amount, element.output, element.name, 'minecraft:overworld', 1)
})
// Семена овощей
global.TFC_GREENHOUSE_VEGETABLE_RECIPE_COMPONENTS.forEach(element => {
generateGreenHouseRecipe(event, element.input, element.fluid_amount, element.output, element.name, false)
generateGreenHouseRecipe(event, element.input, element.fluid_amount, element.output, element.name, null, 1)
})
// Семена ягод
global.TFC_GREENHOUSE_BERRY_RECIPE_COMPONENTS.forEach(element => {
generateGreenHouseRecipe(event, element.input, element.fluid_amount, element.output, element.name, false)
generateGreenHouseRecipe(event, element.input, element.fluid_amount, element.output, element.name, null, 1)
})
// Растения
@ -121,20 +83,11 @@ const registerTFCRecipes = (event) => {
const itemId = element.id;
const recipeId = `greenhouse_${itemId.replace(':', '_')}`;
generateGreenHouseRecipe(event, itemId, 8000, `8x ${itemId}`, recipeId, false);
generateGreenHouseRecipe(event, itemId, 8000, `8x ${itemId}`, recipeId, null, 1);
});
//#endregion
//#region Рецепты хлеба
global.TFC_FURNACE_BREAD_RECIPE_COMPONENTS.forEach(element => {
event.smelting(element.output, element.input)
.id(`tfg:smelting/${element.name}`)
})
//#endregion
event.shapeless('tfc:crucible', ['tfc:crucible']).id('tfg:empty_crucible')
event.shapeless('2x minecraft:stick', ['#minecraft:saplings', '#forge:tools/knives']).id('tfg:strip_saplings')
@ -178,14 +131,17 @@ const registerTFCRecipes = (event) => {
event.smelting('tfc:powder/lime', 'tfc:powder/flux')
.id('tfg:smelting/lime')
// Kaolinite Clay
event.smelting('tfc:powder/kaolinite', 'tfc:kaolin_clay')
.id('tfg:smelting/kaolinite_clay')
// Kaolinite Clay - regular smelting recipes can't have multiple inputs
event.recipes.gtceu.alloy_smelter('tfg:kaolinite')
.itemInputs('tfc:kaolin_clay')
.chancedOutput('tfc:powder/kaolinite', 2000, 0)
.duration(100)
.EUt(16)
// Fire Brick
event.recipes.gtceu.alloy_smelter('tfg:cheaper_fire_brick')
.itemInputs('#forge:dusts/graphite', 'tfc:kaolin_clay')
.itemOutputs('tfc:fire_clay')
// Fire Clay
event.recipes.gtceu.alloy_smelter('tfg:cheaper_fire_clay')
.itemInputs('#forge:dusts/graphite', '4x tfc:kaolin_clay')
.itemOutputs('2x tfc:fire_clay')
.duration(600)
.EUt(GTValues.VA[GTValues.ULV])
@ -201,7 +157,10 @@ const registerTFCRecipes = (event) => {
.id('tfg:tfc/pot/salt')
// Salt Water
generateMixerRecipe(event, ['#forge:dusts/salt'], Fluid.of('minecraft:water', 1000), [], 2, Fluid.of('tfc:salt_water', 1000), 40, 7, 64, 'tfg:tfc/salt_water')
generateMixerRecipe(event,
['#forge:dusts/salt'],
JsonIO.of({ amount: 1000, value: { tag: "tfg:clean_water" }}),
[], 2, Fluid.of('tfc:salt_water', 1000), 40, 7, 64, 'tfg:tfc/salt_water')
// Seaweed and kelp
@ -232,7 +191,9 @@ const registerTFCRecipes = (event) => {
.id('tfg:splashing/wash_torch')
//Lye in mixer
generateMixerRecipe(event, 'tfc:powder/wood_ash', Fluid.of('minecraft:water', 200), [], null, Fluid.of('tfc:lye', 200), 100, 2, 64, 'lye_in_mixer')
generateMixerRecipe(event, 'tfc:powder/wood_ash',
JsonIO.of({ amount: 200, value: { tag: "tfg:clean_water" }}),
[], null, Fluid.of('tfc:lye', 200), 100, 2, 64, 'lye_in_mixer')
// Brass Mechanism
event.recipes.shapeless('gtceu:small_brass_gear', [ 'tfc:brass_mechanisms' ]).id('tfg:replace_brass_mechanisms')

View file

@ -117,20 +117,6 @@ function registerTFCMachineRecipes(event) {
.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++) {
@ -144,6 +130,20 @@ function registerTFCMachineRecipes(event) {
.EUt(2)
}
event.recipes.gtceu.extruder('tfg:unfired_clay_brick')
.itemInputs('minecraft:clay_ball')
.notConsumable('gtceu:ingot_extruder_mold')
.itemOutputs('tfc:ceramic/unfired_brick')
.duration(20)
.EUt(2)
event.recipes.gtceu.extruder('tfg:unfired_fire_clay_brick')
.itemInputs('tfc:fire_clay')
.notConsumable('gtceu:ingot_extruder_mold')
.itemOutputs('tfc:ceramic/unfired_fire_brick')
.duration(20)
.EUt(2)
//#endregion
//#region Стеклянные смеси в бутылки в ассемблере
@ -174,158 +174,9 @@ function registerTFCMachineRecipes(event) {
.duration(2400)
.EUt(16)
// Curdled milk
event.recipes.gtceu.fermenter('tfg:fermenter/curdled_milk')
.inputFluids(Fluid.of('minecraft:milk', 2000))
.itemInputs('firmalife:rennet')
.outputFluids(Fluid.of('tfc:curdled_milk', 2000))
.duration(2400)
.EUt(16)
event.recipes.gtceu.fermenter('tfg:fermenter/curdled_yak_milk')
.inputFluids(Fluid.of('firmalife:yak_milk', 2000))
.itemInputs('firmalife:rennet')
.outputFluids(Fluid.of('firmalife:curdled_yak_milk', 2000))
.duration(2400)
.EUt(16)
event.recipes.gtceu.fermenter('tfg:fermenter/curdled_goat_milk')
.inputFluids(Fluid.of('firmalife:goat_milk', 2000))
.itemInputs('firmalife:rennet')
.outputFluids(Fluid.of('firmalife:curdled_goat_milk', 2000))
.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'))
.circuit(6)
.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('1x 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
// Vinegar and Brine
global.TFC_ALCOHOL.forEach(alcohol => {
event.recipes.gtceu.fermenter(`tfg:tfc/vinegar/${alcohol.id.replace(':', '_')}`)
.itemInputs('#tfc:foods/fruits')
.inputFluids(Fluid.of(alcohol.id, 250))
.outputFluids(Fluid.of('tfc:vinegar', 250))
.duration(600)
.EUt(28)
})
// Brine
event.recipes.gtceu.mixer('tfg:tfc/brine')
.inputFluids(Fluid.of('tfc:salt_water', 900))
@ -344,14 +195,6 @@ function registerTFCMachineRecipes(event) {
.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.alloy_smelter('tfc:jar_alloying')
.itemInputs('#tfc:glass_batches_tier_2')
@ -468,7 +311,9 @@ function registerTFCMachineRecipes(event) {
.EUt(4)
// Jute Fiber
generateMixerRecipe(event, 'tfc:jute', Fluid.of('minecraft:water', 200), 'tfc:jute_fiber', null, [], 100, 4, 16, 'tfg:tfc/jute_fiber')
generateMixerRecipe(event, 'tfc:jute',
JsonIO.of({ amount: 200, value: { tag: "tfg:clean_water" }}),
'tfc:jute_fiber', null, [], 100, 4, 16, 'tfg:tfc/jute_fiber')
// Ceramic Recycling
event.recipes.gtceu.macerator('tfg:sherd_to_brick_dust')

View file

@ -60,6 +60,12 @@ function registerTFCMaterialsRecipes(event) {
event.recipes.tfc.welding(doubleIngotItem, ingotItem, ingotItem, tfcProperty.getTier() - 1)
.id(`tfc:welding/${material.getName()}_double_ingot`)
event.recipes.greate.compacting(doubleIngotItem, [ingotItem, ingotItem, 'tfc:powder/flux'])
.heated()
.recipeTier(tfcProperty.getTier() < 5 ? 0 : 1)
.circuitNumber(0)
.id(`greate:compacting/${material.getName()}_double_ingot`)
// Plates
let plateItem = ChemicalHelper.get(TagPrefix.plate, material, 1)
if (!plateItem.isEmpty()) {
@ -88,6 +94,11 @@ function registerTFCMaterialsRecipes(event) {
.tier(tfcProperty.getTier())
.id(`tfc:welding/${material.getName()}_double_sheet`)
event.recipes.greate.compacting(doublePlateItem, [plateItem, plateItem, 'tfc:powder/flux'])
.heated()
.recipeTier(tfcProperty.getTier() < 4 ? 0 : 1)
.id(`greate:compacting/${material.getName()}_double_sheet`)
// Armor
if (material.hasFlag(TFGMaterialFlags.HAS_TFC_ARMOR)) {
//#region Шлем
@ -113,6 +124,11 @@ function registerTFCMaterialsRecipes(event) {
.tier(tfcProperty.getTier())
.id(`tfc:welding/${material.getName()}_helmet`)
event.recipes.greate.compacting(`tfc:metal/helmet/${material.getName()}`, [`tfc:metal/unfinished_helmet/${material.getName()}`, plateItem, 'tfc:powder/flux'])
.heated()
.recipeTier(tfcProperty.getTier() < 4 ? 0 : 1)
.id(`greate:compacting/${material.getName()}_helmet`)
//#endregion
//#region Нагрудник
@ -138,6 +154,11 @@ function registerTFCMaterialsRecipes(event) {
.tier(tfcProperty.getTier())
.id(`tfc:welding/${material.getName()}_chestplate`)
event.recipes.greate.compacting(`tfc:metal/chestplate/${material.getName()}`, [`tfc:metal/unfinished_chestplate/${material.getName()}`, doublePlateItem, 'tfc:powder/flux'])
.heated()
.recipeTier(tfcProperty.getTier() < 4 ? 0 : 1)
.id(`greate:compacting/${material.getName()}_chestplate`)
//#endregion
//#region Поножи
@ -163,6 +184,11 @@ function registerTFCMaterialsRecipes(event) {
.tier(tfcProperty.getTier())
.id(`tfc:welding/${material.getName()}_greaves`)
event.recipes.greate.compacting(`tfc:metal/greaves/${material.getName()}`, [`tfc:metal/unfinished_greaves/${material.getName()}`, plateItem, 'tfc:powder/flux'])
.heated()
.recipeTier(tfcProperty.getTier() < 4 ? 0 : 1)
.id(`greate:compacting/${material.getName()}_greaves`)
//#endregion
//#region Ботинки
@ -188,6 +214,11 @@ function registerTFCMaterialsRecipes(event) {
.tier(tfcProperty.getTier())
.id(`tfc:welding/${material.getName()}_boots`)
event.recipes.greate.compacting(`tfc:metal/boots/${material.getName()}`, [`tfc:metal/unfinished_boots/${material.getName()}`, plateItem, 'tfc:powder/flux'])
.heated()
.recipeTier(tfcProperty.getTier() < 4 ? 0 : 1)
.id(`greate:compacting/${material.getName()}_boots`)
//#endregion
}
@ -234,6 +265,17 @@ function registerTFCMaterialsRecipes(event) {
//#endregion
}
// Buzzsaw blade
let buzzsawBladeItem = ChemicalHelper.get(TagPrefix.toolHeadBuzzSaw, material, 1)
if (!buzzsawBladeItem.isEmpty()) {
event.recipes.tfc.heating(buzzsawBladeItem, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 288))
.id(`tfc:heating/metal/${material.getName()}_buzzsaw_blade`)
event.recipes.tfc.anvil(buzzsawBladeItem, doublePlateItem, ['bend_last', 'hit_second_last', 'draw_third_last'])
.tier(tfcProperty.getTier())
.id(`tfc:anvil/${material.getName()}_buzzsaw_blade`)
}
}
// Tools (From Plate)
@ -454,7 +496,7 @@ function registerTFCMaterialsRecipes(event) {
.id(`tfc:heating/metal/${material.getName()}_rod`)
// Слиток -> 2 Стержня
event.recipes.tfc.anvil(rodItem.withCount(2), ingotItem, ['bend_last', 'draw_second_last', 'draw_third_last'])
event.recipes.tfc.anvil(rodItem.withCount(2), ingotItem, ['draw_last'])
.tier(tfcProperty.getTier())
.id(`tfc:anvil/${material.getName()}_rod`)
@ -472,6 +514,10 @@ function registerTFCMaterialsRecipes(event) {
.tier(tfcProperty.getTier())
.id(`tfc:anvil/${material.getName()}_long_rod`)
event.recipes.greate.compacting(longRodItem, [rodItem, rodItem, 'tfc:powder/flux'])
.heated()
.recipeTier(tfcProperty.getTier() < 4 ? 0 : 1)
.id(`greate:compacting/${material.getName()}_long_rod`)
}
// Bolt
@ -506,6 +552,7 @@ function registerTFCMaterialsRecipes(event) {
}
// Ring
let ringItem = ChemicalHelper.get(TagPrefix.ring, material, 1)
if (!ringItem.isEmpty()) {
@ -521,6 +568,32 @@ function registerTFCMaterialsRecipes(event) {
}
// Spring
let springItem = ChemicalHelper.get(TagPrefix.spring, material, 1)
if (!springItem.isEmpty() && !longRodItem.isEmpty()) {
event.recipes.tfc.heating(springItem, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 144))
.id(`tfc:heating/metal/${material.getName()}_spring`)
event.recipes.tfc.anvil(springItem, longRodItem, ['hit_last', 'bend_second_last', 'bend_third_last'])
.tier(tfcProperty.getTier())
.id(`tfc:anvil/${material.getName()}_spring`)
}
// Small spring
let smallSpringItem = ChemicalHelper.get(TagPrefix.springSmall, material, 1)
if (!smallSpringItem.isEmpty() && !rodItem.isEmpty()) {
event.recipes.tfc.heating(smallSpringItem, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 72))
.id(`tfc:heating/metal/${material.getName()}_small_spring`)
event.recipes.tfc.anvil(smallSpringItem, rodItem, ['hit_last', 'bend_second_last', 'bend_third_last'])
.tier(tfcProperty.getTier())
.id(`tfc:anvil/${material.getName()}_small_spring`)
}
}
// Tools (From Ingot)
@ -583,7 +656,52 @@ function registerTFCMaterialsRecipes(event) {
.resultFluid(Fluid.of(outputMaterial.getFluid(), 144))
.id(`rnr:heating/metal/${material.getName()}_mattock_head`)
//#endregion
// #region screwdriver
event.recipes.tfc.heating(`gtceu:${material.getName()}_screwdriver`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 144))
.useDurability(true)
.id(`gtceu:heating/metal/${material.getName()}_screwdriver`)
event.recipes.tfc.heating(`gtceu:${material.getName()}_screwdriver_tip`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 144))
.id(`gtceu:heating/metal/${material.getName()}_screwdriver_tip`)
event.recipes.tfc.anvil(`gtceu:${material.getName()}_screwdriver_tip`, ingotItem, ['draw_last', 'hit_second_last', 'hit_third_last'])
.tier(tfcProperty.getTier())
.id(`gtceu:anvil/${material.getName()}_screwdriver_tip`)
//#endregion
//#region wrench
event.recipes.tfc.heating(`gtceu:${material.getName()}_wrench`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 288 + 144 + 18))
.useDurability(true)
.id(`gtceu:heating/metal/${material.getName()}_wrench`)
event.recipes.tfc.heating(`gtceu:${material.getName()}_wrench_tip`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 288))
.id(`gtceu:heating/metal/${material.getName()}_wrench_tip`)
event.recipes.tfc.anvil(`gtceu:${material.getName()}_wrench_tip`, doubleIngotItem, ['draw_last', 'hit_second_last', 'hit_third_last'])
.tier(tfcProperty.getTier())
.id(`gtceu:anvil/${material.getName()}_wrench_tip`)
//#endregion
//#region wire cutters
event.recipes.tfc.heating(`gtceu:${material.getName()}_wire_cutter`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 288 + 144 + 18))
.useDurability(true)
.id(`gtceu:heating/metal/${material.getName()}_wire_cutter`)
event.recipes.tfc.heating(`gtceu:${material.getName()}_wire_cutter_head`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 288))
.id(`gtceu:heating/metal/${material.getName()}_wire_cutter_head`)
event.recipes.tfc.anvil(`gtceu:${material.getName()}_wire_cutter_head`, doubleIngotItem, ['draw_last', 'hit_second_last', 'hit_third_last'])
.tier(tfcProperty.getTier())
.id(`gtceu:anvil/${material.getName()}_wire_cutter_head`)
//#endregion
//#region Топор
// Крафт инструмента
@ -943,6 +1061,11 @@ function registerTFCMaterialsRecipes(event) {
event.recipes.tfc.welding(`tfc:metal/shears/${material.getName()}`, knifeHeadItem, knifeHeadItem, tfcProperty.getTier())
.id(`tfc:welding/${material.getName()}_shears`)
event.recipes.greate.compacting(`tfc:metal/shears/${material.getName()}`, [knifeHeadItem, knifeHeadItem, 'tfc:powder/flux'])
.heated()
.recipeTier(tfcProperty.getTier() < 4 ? 0 : 1)
.id(`greate:compacting/${material.getName()}_shears`)
// Декрафт инструмента в жидкость
event.recipes.tfc.heating(`tfc:metal/shears/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 288))
@ -1113,7 +1236,16 @@ function registerTFCMaterialsRecipes(event) {
let tongsStack = Item.of(`tfchotornot:tongs/${material.getName()}`)
let tongPartStack = Item.of(`tfchotornot:tong_part/${material.getName()}`)
if (!tongsStack.isEmpty() && !tongPartStack.isEmpty()) {
if (!tongsStack.isEmpty() && !tongPartStack.isEmpty() && material != GTMaterials.Iron) {
event.shaped(tongsStack, [
'AA',
'BC'
], {
A: tongPartStack,
B: '#forge:bolts',
C: '#forge:tools/hammers'
}).id(`tfchotornot:crafting/tongs/${material.getName()}`)
// Ручка щипцов
event.recipes.tfc.heating(tongPartStack, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 144))
@ -1278,4 +1410,4 @@ function registerTFCMaterialsRecipes(event) {
.id(`tfg:heating/nugget/${material.getName()}`)
}
})
}
}

View file

@ -212,6 +212,11 @@ function registerTFCMetalsRecipes(event) {
event.recipes.tfc.welding('tfc:jacks', '#forge:rods/brass', '#forge:plates/brass', 2)
.id(`tfc:welding/jacks`)
event.recipes.greate.compacting('tfc:jacks', ['#forge:rods/brass', '#forge:plates/brass', 'tfc:powder/flux'])
.heated()
.recipeTier(0)
.id('greate:compacting/jacks')
// Декрафт Jacks
event.recipes.tfc.heating('tfc:jacks', 930)
.resultFluid(Fluid.of('gtceu:brass', 144))
@ -321,7 +326,7 @@ function registerTFCMetalsRecipes(event) {
event.recipes.gtceu.ore_washer(`tfc:ore_washer/water/deposit/${ore}/${stone}`)
.itemInputs(`1x tfc:deposit/${ore}/${stone}`)
.inputFluids(Fluid.of('minecraft:water', 100))
.inputFluids(JsonIO.of({ amount: 100, value: { tag: "tfg:clean_water" }}))
.circuit(4)
.itemOutputs(`1x tfc:ore/normal_${ore}`)
.duration(400)

View file

@ -145,5 +145,10 @@ function removeTFCRecipes(event) {
event.remove({ id: 'tfc:crafting/vanilla/redstone/steel_minecart' })
event.remove({ id: 'tfc:crafting/vanilla/redstone/minecart' })
event.remove({ id: 'tfc:crafting/cake' })
event.remove({ id: /^tfc:crafting\/dough\/.*/ })
event.remove({ id: 'tfc:crafting/gunpowder_graphite' })
event.remove({ id: 'tfc:crafting/gunpowder' })
}

View file

@ -32,29 +32,41 @@ function registerTFCSandRecipes(event) {
// Песчанник -> Песок
event.recipes.gtceu.forge_hammer(`raw_${sandColor}_sandstone_to_sand`)
.itemInputs(`tfc:raw_sandstone/${sandColor}`)
.itemOutputs(`tfc:sand/${sandColor}`)
.duration(400)
.itemOutputs(`4x tfc:sand/${sandColor}`)
.duration(200)
.EUt(2)
event.recipes.greate.pressing(`4x tfc:sand/${sandColor}`, `tfc:raw_sandstone/${sandColor}`)
.recipeTier(1)
.id(`greate:pressing/raw_${sandColor}_sandstone_to_sand`)
// Гладкий песчанник -> Песок
event.recipes.gtceu.forge_hammer(`smooth_${sandColor}_sandstone_to_sand`)
.itemInputs(`tfc:smooth_sandstone/${sandColor}`)
.itemOutputs(`tfc:sand/${sandColor}`)
.duration(400)
.itemOutputs(`4x tfc:sand/${sandColor}`)
.duration(200)
.EUt(2)
event.recipes.greate.pressing(`4x tfc:sand/${sandColor}`, `tfc:smooth_sandstone/${sandColor}`)
.recipeTier(1)
.id(`greate:pressing/smooth_${sandColor}_sandstone_to_sand`)
// Обрезанный песчанник -> Песок
event.recipes.gtceu.forge_hammer(`cut_${sandColor}_sandstone_to_sand`)
.itemInputs(`tfc:cut_sandstone/${sandColor}`)
.itemOutputs(`tfc:sand/${sandColor}`)
.duration(400)
.itemOutputs(`4x tfc:sand/${sandColor}`)
.duration(200)
.EUt(2)
event.recipes.greate.pressing(`4x tfc:sand/${sandColor}`, `tfc:cut_sandstone/${sandColor}`)
.recipeTier(1)
.id(`greate:pressing/cut_${sandColor}_sandstone_to_sand`)
// Песок -> Песчанник
event.recipes.gtceu.compressor(`sand_${sandColor}_to_sandstone`)
.itemInputs(`4x tfc:sand/${sandColor}`)
.itemOutputs(`tfc:raw_sandstone/${sandColor}`)
.duration(800)
.duration(400)
.EUt(2)
// Песчанник -> Гладкий песчанник
@ -125,49 +137,76 @@ function registerTFCSandRecipes(event) {
event.recipes.gtceu.forge_hammer('brown_gravel_to_sand')
.itemInputs('#tfc:brown_gravel')
.itemOutputs('tfc:sand/brown')
.duration(400)
.duration(200)
.EUt(2)
event.recipes.greate.pressing('tfc:sand/brown', '#tfc:brown_gravel')
.recipeTier(1)
.id(`greate:pressing/brown_gravel_to_sand`)
// Белый гравий -> Песок
event.recipes.gtceu.forge_hammer('white_gravel_to_sand')
.itemInputs('#tfc:white_gravel')
.itemOutputs('tfc:sand/white')
.duration(400)
.duration(200)
.EUt(2)
event.recipes.greate.pressing('tfc:sand/white', '#tfc:white_gravel')
.recipeTier(1)
.id(`greate:pressing/white_gravel_to_sand`)
// Черный гравий -> Песок
event.recipes.gtceu.forge_hammer('black_gravel_to_sand')
.itemInputs('#tfc:black_gravel')
.itemOutputs('tfc:sand/black')
.duration(400)
.duration(200)
.EUt(2)
event.recipes.greate.pressing('tfc:sand/black', '#tfc:black_gravel')
.recipeTier(1)
.id(`greate:pressing/black_gravel_to_sand`)
// Красный гравий -> Песок
event.recipes.gtceu.forge_hammer('red_gravel_to_sand')
.itemInputs('#tfc:red_gravel')
.itemOutputs('tfc:sand/red')
.duration(400)
.duration(200)
.EUt(2)
event.recipes.greate.pressing('tfc:sand/red', '#tfc:red_gravel')
.recipeTier(1)
.id(`greate:pressing/red_gravel_to_sand`)
// Желтый гравий -> Песок
event.recipes.gtceu.forge_hammer('yellow_gravel_to_sand')
.itemInputs('#tfc:yellow_gravel')
.itemOutputs('tfc:sand/yellow')
.duration(400)
.duration(200)
.EUt(2)
event.recipes.greate.pressing('tfc:sand/yellow', '#tfc:yellow_gravel')
.recipeTier(1)
.id(`greate:pressing/yellow_gravel_to_sand`)
// Зеленый гравий -> Песок
event.recipes.gtceu.forge_hammer('green_gravel_to_sand')
.itemInputs('#tfc:green_gravel')
.itemOutputs('tfc:sand/green')
.duration(400)
.duration(200)
.EUt(2)
event.recipes.greate.pressing('tfc:sand/green', '#tfc:green_gravel')
.recipeTier(1)
.id(`greate:pressing/green_gravel_to_sand`)
// Розовый гравий -> Песок
event.recipes.gtceu.forge_hammer('pink_gravel_to_sand')
.itemInputs('#tfc:pink_gravel')
.itemOutputs('tfc:sand/pink')
.duration(400)
.duration(200)
.EUt(2)
event.recipes.greate.pressing('tfc:sand/pink', '#tfc:pink_gravel')
.recipeTier(1)
.id(`greate:pressing/pink_gravel_to_sand`)
}

View file

@ -31,6 +31,10 @@ function registerTFCStoneRecipes(event) {
.duration(10)
.EUt(16)
event.recipes.greate.pressing(`tfc:rock/cobble/${stone}`, `tfc:rock/raw/${stone}`)
.recipeTier(1)
.id(`greate:pressing/${stone}_raw_to_cobble`)
// ? -> Сырая нажимная пластина
event.shaped(`tfc:rock/pressure_plate/${stone}`, [
' B ',
@ -174,6 +178,10 @@ function registerTFCStoneRecipes(event) {
.duration(10)
.EUt(16)
event.recipes.greate.pressing(`tfc:rock/gravel/${stone}`, `tfc:rock/cobble/${stone}`)
.recipeTier(1)
.id(`greate:pressing/${stone}_cobble_to_gravel`)
// Камни -> Булыжник
event.shaped(`tfc:rock/cobble/${stone}`, [
'ABA',
@ -215,6 +223,10 @@ function registerTFCStoneRecipes(event) {
.duration(25)
.EUt(8)
event.recipes.greate.pressing(`tfc:rock/cracked_bricks/${stone}`, `tfc:rock/bricks/${stone}`)
.recipeTier(1)
.id(`greate:pressing/cracked_bricks_${stone}`)
//#endregion
//#region Замшелый булыжник
@ -240,7 +252,7 @@ function registerTFCStoneRecipes(event) {
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))
.inputFluids(JsonIO.of({ amount: 144, value: { tag: "tfg:clean_water" }}))
.itemOutputs(`tfc:rock/mossy_cobble/${stone}`)
.duration(50)
.EUt(2)
@ -252,7 +264,7 @@ function registerTFCStoneRecipes(event) {
event.recipes.gtceu.assembler(`mossy_bricks_${stone}`)
.itemInputs(`tfc:rock/bricks/${stone}`, '#tfc:compost_greens_low')
.circuit(0)
.inputFluids(Fluid.of('minecraft:water', 144))
.inputFluids(JsonIO.of({ amount: 144, value: { tag: "tfg:clean_water" }}))
.itemOutputs(`tfc:rock/mossy_bricks/${stone}`)
.duration(50)
.EUt(2)
@ -560,207 +572,4 @@ function registerTFCStoneRecipes(event) {
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

@ -4,7 +4,7 @@ TFCEvents.selectClimateModel(event => {
switch (location) {
/*case 'ad_astra:moon':
case 'ad_astra:moon':
event.setModel('tfg:moon_climate');
break;
@ -16,7 +16,7 @@ TFCEvents.selectClimateModel(event => {
case 'ad_astra:moon_orbit':
case 'ad_astra:mars_orbit':
event.setModel('tfg:orbit_climate');
break;*/
break;
case 'minecraft:the_nether':
event.setModel('tfg:nether_climate');

View file

@ -82,6 +82,10 @@ const registerTFCItemTags = (event) => {
// 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')
event.add('tfc:foods/usable_in_jam_sandwich', 'tfc:food/cooked_egg')
event.add('tfc:foods/usable_in_jam_sandwich', 'tfc:food/boiled_egg')
event.add('tfc:foods/usable_in_sandwich', 'tfc:food/cooked_egg')
event.add('tfc:foods/usable_in_sandwich', 'tfc:food/boiled_egg')
// Чтобы жарились бревна из TFC в пиролиз. печке
// Почему нельзя просто добавить тег в тег? (допустим minecraft:logs), потому что из-за этого ломаются все рецепты minecraft:logs, магия...
@ -266,6 +270,10 @@ const registerTFCItemTags = (event) => {
event.add('c:hidden_from_recipe_viewers', item)
})
global.TFC_HIDDEN_ITEMS.forEach(item => {
event.add('c:hidden_from_recipe_viewers', item)
})
// Удаление тегов у руд
event.removeAllTagsFrom("/tfc:ore/[^*]+/[^*]+/")
@ -291,6 +299,21 @@ const registerTFCItemTags = (event) => {
event.add('minecraft:piglin_loved', 'tfc:ore/poor_native_gold')
event.add('minecraft:piglin_loved', 'tfc:ore/normal_native_gold')
event.add('minecraft:piglin_loved', 'tfc:ore/rich_native_gold')
// Bells
event.add('tfc:bells', 'tfc:bronze_bell')
event.add('tfc:bells', 'tfc:brass_bell')
// Lets the basin be put on top of a charcoal forge
event.add('tfc:forge_invisible_whitelist', 'create:basin')
// Allows automation with the 3x3 Hellforge
event.add('tfc:forge_invisible_whitelist', 'tfcchannelcasting:channel')
event.add('tfc:forge_invisible_whitelist', 'tfcchannelcasting:mold_table')
event.add('tfc:forge_invisible_whitelist', 'greate:steel_mechanical_pump')
event.add('tfc:forge_invisible_whitelist', 'greate:aluminum_mechanical_pump')
event.add('tfc:forge_invisible_whitelist', 'greate:stainless_steel_mechanical_pump')
event.add('tfc:forge_invisible_whitelist', 'greate:titanium_mechanical_pump')
}
const registerTFCBlockTags = (event) => {
@ -381,27 +404,28 @@ const registerTFCBlockTags = (event) => {
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')
event.add('minecraft:nether_carver_replaceables', '#minecraft:base_stone_nether')
event.add('minecraft:frogs_spawnable_on', '#minecraft:base_stone_nether')
//#endregion
// Lets the basin be put on top of a charcoal forge
event.add('tfc:forge_invisible_whitelist', 'create:basin')
// Allows automation with the 3x3 Hellforge
event.add('tfc:forge_invisible_whitelist', 'tfcchannelcasting:channel')
event.add('tfc:forge_invisible_whitelist', 'tfcchannelcasting:mold_table')
event.add('tfc:forge_invisible_whitelist', 'greate:steel_mechanical_pump')
event.add('tfc:forge_invisible_whitelist', 'greate:aluminum_mechanical_pump')
event.add('tfc:forge_invisible_whitelist', 'greate:stainless_steel_mechanical_pump')
event.add('tfc:forge_invisible_whitelist', 'greate:titanium_mechanical_pump')
//Allows any block with the word "brick" in its id to be used as bloomery and forge insulation.
//Add blacklisted words to the const with | between.
const brick_blacklist = ('drying|slab|stairs|wall|additionalplacements');
@ -478,9 +502,15 @@ const registerTFCFluidTags = (event) => {
event.add('tfc:usable_in_wooden_bucket', 'gtceu:ice')
event.add('tfc:usable_in_red_steel_bucket', 'gtceu:ice')
event.add('tfc:usable_in_barrel', 'gtceu:glue')
event.add('tfc:usable_in_wooden_bucket', 'gtceu:glue')
event.add('tfc:usable_in_blue_steel_bucket', 'tfc:spring_water')
event.add('tfc:usable_in_red_steel_bucket', 'gtceu:glue')
event.add('tfc:ingredients', 'tfc:spring_water')
event.add('tfc:usable_in_barrel', 'tfc:spring_water')
event.add('tfc:usable_in_wooden_bucket', 'tfc:spring_water')
event.add('tfc:usable_in_blue_steel_bucket', 'tfc:spring_water')
event.add('tfc:usable_in_red_steel_bucket', 'tfc:spring_water')
// Добавляем тег для скрытия в EMI
@ -532,6 +562,10 @@ const registerTFCPlacedFeatures = (event) => {
event.add('tfc:in_biome/veins', 'tfg:earth/geode/pyrite')
event.add('tfc:in_biome/veins', 'tfg:earth/geode/quartzite')
// Crops
event.add('tfc:feature/crops', 'tfg:earth/sunflower_patch')
event.add('tfc:feature/crops', 'tfg:earth/rapeseed_patch')
// Other decoration
event.add('tfc:in_biome/underground_decoration', 'tfg:glow_lichen')
event.add('tfc:in_biome/underground_decoration', 'tfg:earth/sulfur_patch')

View file

@ -1,20 +0,0 @@
const registerTfceaRecipes = (event) => {
//удаление рецептов мода
event.remove({ mod: 'tfcea' })
event.shaped('tfcea:refrigerator', [
'ABA',
'BCB',
'DEF'
], {
A: '#forge:single_cables/tin',
B: '#forge:normal_fluid_pipes/potin',
C: 'gtceu:steel_crate',
D: 'gtceu:lv_fluid_regulator',
E: 'gtceu:lv_machine_hull',
F: 'gtceu:lv_electric_pump',
}).id('tfcea:refrigerator')
}

View file

@ -2,58 +2,30 @@
function registerTFCLunchBoxRecipes(event) {
event.shaped('tfclunchbox:lunchbox', [
' CE',
'ABA',
'DAD'
], {
A: '#forge:plates/sterling_silver',
B: '#forge:chests/wooden',
C: '#forge:bolts/brass',
D: '#forge:screws/wrought_iron',
E: '#forge:tools/hammers'
}).id('tfclunchbox:lunchbox')
const fluidCells = [
{ id: 'gtceu:universal_fluid_cell', capacity: 1000, name: 'universal' },
{ id: 'gtceu:fluid_cell', capacity: 1000, name: 'basic' },
{ id: 'gtceu:steel_fluid_cell', capacity: 8000, name: 'steel' },
{ id: 'gtceu:aluminium_fluid_cell', capacity: 32000, name: 'aluminium' },
{ id: 'gtceu:stainless_steel_fluid_cell', capacity: 64000, name: 'stainless_steel' },
{ id: 'gtceu:titanium_fluid_cell', capacity: 128000, name: 'titanium' },
{ id: 'gtceu:tungstensteel_fluid_cell', capacity: 512000, name: 'tungstensteel' },
{ id: 'gtceu:glass_vial', capacity: 1000, name: 'glass_vial' }
];
event.shaped('tfclunchbox:cooling_lunchbox', [
' CE',
'ABA',
'DAD'
], {
A: '#forge:plates/red_steel',
B: '#forge:chests/wooden',
C: '#forge:bolts/brass',
D: '#forge:screws/steel',
E: '#forge:tools/hammers'
}).id('tfclunchbox:cooling_lunchbox')
// Убираем оригинальные рецепты капсул
// Remove original capsule recipes
event.remove({ id: 'tfclunchbox:universal_capsule' })
event.remove({ id: 'tfclunchbox:fill_capsule_with_ice' })
event.shaped('tfclunchbox:cooling_lunchbox', [
' C ',
'ABA'
], {
A: '#forge:plates/red_steel',
B: 'tfclunchbox:lunchbox',
C: '#forge:tools/hammers'
}).id('tfclunchbox:upgrade_to_cooling_lunchbox')
event.remove({ id: 'tfclunchbox:universal_capsule' })
event.remove({ id: 'tfclunchbox:fill_capsule_with_ice' })
event.recipes.gtceu.assembler('tfclunchbox:universal_capsule')
.itemInputs('1x #forge:foils/red_steel', '1x #forge:rings/sterling_silver')
.itemOutputs('tfclunchbox:universal_capsule')
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.canner('tfclunchbox:fill_capsule_with_ice')
.itemInputs('tfclunchbox:universal_capsule')
.inputFluids(Fluid.of('gtceu:ice', 45 * 144))
.itemOutputs(Item.of('tfclunchbox:universal_capsule', '{Durability:500}').withName(Text.translate('item.tfclunchbox.universal_capsule.filled')))
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.canner('tfclunchbox:fill_capsule_with_ice_solid')
.itemInputs('tfclunchbox:universal_capsule', '5x minecraft:packed_ice')
.itemOutputs(Item.of('tfclunchbox:universal_capsule', '{Durability:500}').withName(Text.translate('item.tfclunchbox.universal_capsule.filled')))
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
}
// Рецепты заполнения fluid cells жидким льдом
// Recipes for filling fluid cells with liquid ice
fluidCells.forEach(cell => {
event.recipes.gtceu.canner(`tfclunchbox:fill_${cell.name}_cell_with_liquid_ice`)
.itemInputs(cell.id)
.inputFluids(Fluid.of('gtceu:ice', cell.capacity))
.itemOutputs(Item.of(cell.id, '{Fluid:{Amount:' + cell.capacity + ',FluidName:"gtceu:ice"}}'))
.duration(Math.max(16, Math.floor(cell.capacity / 64)))
.EUt(GTValues.VA[GTValues.LV]);
});
}

View file

@ -0,0 +1,15 @@
// priority: 0
function registerTFCLunchboxItemTags(event) {
const DISABLED_ITEMS = [
'tfclunchbox:universal_capsule',
]
DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
})
event.add('tfclunchbox:ice', 'tfg:dry_ice')
}

View file

@ -0,0 +1,223 @@
// priority: 0
function registerTFCDataForTFG(event) {
registerTFGHeatData(event);
registerTFGItemSize(event);
registerTFGSupportData(event);
registerTFGFoodData(event);
registerTFGFauna(event);
registerTFGCropRanges(event);
registerTFGFLPlanters(event);
}
const registerTFGHeatData = (event) => {
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)
event.itemHeat('tfg:sunflower_product', 1.0, null, null)
event.itemHeat('tfg:roasted_sunflower_seeds', 1.0, null, null)
}
const registerTFGItemSize = (event) => {
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('tfg:fishing_net/wood', 'large', 'medium', 'wood_fishing_net')
event.itemSize('tfg:fishing_net/brass', 'large', 'medium', 'brass_fishing_net')
event.itemSize('tfg:fishing_net/rose_gold', 'large', 'medium', 'rose_gold_fishing_net')
event.itemSize('tfg:fishing_net/sterling_silver', 'large', 'medium', 'sterling_silver_fishing_net')
event.itemSize('tfg:fishing_net/invar', 'large', 'medium', 'invar_fishing_net')
event.itemSize('tfg:fishing_net/cupronickel', 'large', 'medium', 'cupronickel_fishing_net')
event.itemSize('tfg:fishing_net/tin_alloy', 'large', 'medium', 'tin_alloy_fishing_net')
event.itemSize('tfg:fishing_net/magnalium', 'large', 'medium', 'magnalium_fishing_net')
}
//up, down, horizontal
const registerTFGSupportData = (event) => {
event.support('tfg:light_concrete_support_horizontal', 4, 4, 8, 'light_concrete_support')
event.support('tfg:dark_concrete_support_horizontal', 4, 4, 8, 'dark_concrete_support')
event.support('tfg:reinforced_light_concrete_support_horizontal', 6, 6, 16, 'reinforced_light_concrete_support')
event.support('tfg:reinforced_dark_concrete_support_horizontal', 6, 6, 16, 'reinforced_dark_concrete_support')
event.support('tfg:rebar_support_horizontal', 4, 4, 8, 'rebar_support')
event.support('tfg:steel_support_horizontal', 6, 6, 16, 'steel_support')
const other_stone = ['pyroxenite', 'migmatite', 'travertine']
const stone_types = global.TFC_STONE_TYPES.concat(other_stone)
stone_types.forEach(stone => {
event.support(`tfg:${stone}_support_horizontal`, 2, 2, 4, `${stone}_support`)
})
}
const registerTFGFoodData = (event) => {
// birt has the same stats as chicken
event.foodItem('tfg:food/raw_birt', food => {
food.hunger(4)
food.protein(1.5)
food.decayModifier(3)
})
event.foodItem('tfg:food/cooked_birt', food => {
food.hunger(4)
food.saturation(2)
food.protein(2.5)
food.decayModifier(2.25)
})
event.foodItem('tfg:food/raw_crawlermari', food => {
food.hunger(4)
food.water(5)
food.protein(1.1)
food.decayModifier(3)
})
event.foodItem('tfg:food/cooked_crawlermari', food => {
food.hunger(4)
food.saturation(2)
food.protein(2.2)
food.decayModifier(2.25)
})
event.foodItem('tfg:food/raw_limpet', food => {
food.hunger(4)
food.water(5)
food.protein(1.2)
food.decayModifier(3)
})
event.foodItem('tfg:food/cooked_limpet', food => {
food.hunger(5)
food.saturation(2)
food.protein(2.4)
food.decayModifier(2.25)
})
global.FOOD_FRUIT.forEach(fruit => {
event.foodItem(`tfg:food/freeze_dried/${fruit.name}`, food => {
food.hunger(4)
food.saturation(fruit.saturation)
food.water(0)
food.fruit(fruit.fruit)
food.decayModifier(fruit.decay)
})
})
event.foodItem('tfg:food/calorie_paste', food => {
food.hunger(6)
food.saturation(4)
food.decayModifier(4.5)
food.grain(0.1)
food.vegetables(0.2)
food.protein(0.2)
})
event.foodItem('tfg:food/meal_bag', food => {
food.type('dynamic')
})
event.foodItem('tfg:roasted_sunflower_seeds', food => {
food.hunger(4)
food.decayModifier(0.5)
food.grain(0.1)
food.saturation(0.5)
})
event.foodItem('tfg:sunflower_product', food => {
food.decayModifier(0.5)
})
event.foodItem('tfg:food/raw_moon_rabbit', food => {
food.hunger(4)
food.protein(2.0)
food.decayModifier(3)
})
event.foodItem('tfg:food/cooked_moon_rabbit', food => {
food.hunger(6)
food.saturation(2.5)
food.protein(5)
food.decayModifier(2.25)
})
}
const registerTFGFauna = (event) => {
//event.fauna(climate => { }, fauna => { fauna.chance(0) }, 'tfg:moon_rabbit')
}
const registerTFGCropRanges = (event) => {
event.climateRange(climate => {
climate.minHydration(20)
climate.maxHydration(80)
climate.minTemperature(5)
climate.maxTemperature(40)
climate.hydrationWiggle(7.5)
climate.temperatureWiggle(5.5)
}, 'tfg:sunflower')
event.climateRange(climate => {
climate.minHydration(10)
climate.maxHydration(60)
climate.minTemperature(-5)
climate.maxTemperature(25)
climate.hydrationWiggle(7.5)
climate.temperatureWiggle(1.5)
}, 'tfg:rapeseed')
}
const registerTFGFLPlanters = (event) => {
event.firmalifePlantable(
'tfg:sunflower_seeds',
'large',
10,
3,
0.15,
'tfg:sunflower_seeds',
'tfg:sunflower_product',
'nitrogen',
[
'tfg:block/crop/sunflower_greenhouse_0',
'tfg:block/crop/sunflower_greenhouse_1',
'tfg:block/crop/sunflower_greenhouse_2',
'tfg:block/crop/sunflower_greenhouse_3'
],
null
)
event.firmalifePlantable(
'tfg:rapeseed_seeds',
'large',
10,
3,
0.15,
'tfg:rapeseed_seeds',
'tfg:rapeseed_product',
'phosphorous',
[
'tfg:block/crop/rapeseed_greenhouse_0',
'tfg:block/crop/rapeseed_greenhouse_1',
'tfg:block/crop/rapeseed_greenhouse_2',
'tfg:block/crop/rapeseed_greenhouse_3'
],
null
)
}

View file

@ -80,4 +80,12 @@ function registerTFGLoots(event) {
);
})
});
//#region Blocks
event.addBlockLootModifier('minecraft:campfire')
.removeLoot(Ingredient.all)
.addLoot('minecraft:campfire')
//#endregion
};

View file

@ -2,6 +2,7 @@
function registerTFGCollapseRecipes(event) {
// #region Nether
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')
@ -13,8 +14,44 @@ function registerTFGCollapseRecipes(event) {
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')
// #endregion Nether
// #region Space
event.recipes.tfc.collapse('ad_astra:moon_cobblestone', 'ad_astra:moon_stone')
event.recipes.tfc.collapse('ad_astra:moon_cobblestone', 'tfg:rock/hardened_moon_stone')
event.recipes.tfc.landslide('ad_astra:moon_cobblestone', 'ad_astra:moon_cobblestone')
event.recipes.tfc.collapse('ad_astra:moon_cobblestone', '#forge:ores_in_ground/moon_stone')
event.recipes.tfc.landslide('ad_astra:moon_sand', 'ad_astra:moon_sand')
event.recipes.tfc.collapse('ad_astra:moon_deepslate', 'ad_astra:moon_deepslate')
event.recipes.tfc.collapse('ad_astra:moon_deepslate', 'tfg:rock/hardened_moon_deepslate')
event.recipes.tfc.collapse('ad_astra:moon_deepslate', '#forge:ores_in_ground/moon_deepslate')
event.recipes.tfc.collapse('ad_astra:mars_cobblestone', 'ad_astra:mars_stone')
event.recipes.tfc.collapse('ad_astra:mars_cobblestone', 'tfg:rock/hardened_mars_stone')
event.recipes.tfc.landslide('ad_astra:mars_cobblestone', 'ad_astra:mars_cobblestone')
event.recipes.tfc.collapse('ad_astra:mars_cobblestone', '#forge:ores_in_ground/mars_stone')
event.recipes.tfc.landslide('ad_astra:mars_sand', 'ad_astra:mars_sand')
event.recipes.tfc.collapse('ad_astra:venus_cobblestone', 'ad_astra:venus_stone')
event.recipes.tfc.collapse('ad_astra:venus_cobblestone', 'tfg:rock/hardened_venus_stone')
event.recipes.tfc.landslide('ad_astra:venus_cobblestone', 'ad_astra:venus_cobblestone')
event.recipes.tfc.collapse('ad_astra:venus_cobblestone', '#forge:ores_in_ground/venus_stone')
event.recipes.tfc.landslide('ad_astra:venus_sand', 'ad_astra:venus_sand')
event.recipes.tfc.collapse('ad_astra:mercury_cobblestone', 'ad_astra:mercury_stone')
event.recipes.tfc.collapse('ad_astra:mercury_cobblestone', 'tfg:rock/hardened_mercury_stone')
event.recipes.tfc.landslide('ad_astra:mercury_cobblestone', 'ad_astra:mercury_cobblestone')
event.recipes.tfc.collapse('ad_astra:mercury_cobblestone', '#forge:ores_in_ground/mercury_stone')
event.recipes.tfc.landslide('ad_astra:mercury_sand', 'ad_astra:mercury_sand')
event.recipes.tfc.collapse('ad_astra:glacio_cobblestone', 'ad_astra:glacio_stone')
event.recipes.tfc.collapse('ad_astra:glacio_cobblestone', 'tfg:rock/hardened_glacio_stone')
event.recipes.tfc.landslide('ad_astra:glacio_cobblestone', 'ad_astra:glacio_cobblestone')
event.recipes.tfc.collapse('ad_astra:glacio_cobblestone', '#forge:ores_in_ground/glacio_stone')
event.recipes.tfc.landslide('ad_astra:glacio_sand', 'ad_astra:glacio_sand')
// #endregion
}

View file

@ -3,28 +3,19 @@
function registerTFGConvertingRecipes(event) {
event.shapeless("afc:tree_tap", "treetap:tap")
event.shapeless("tfg:mv_food_refrigerator", "tfcea:refrigerator")
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('greate:rubber_belt_connector', 'create:belt_connector')
event.shapeless('create:zinc_ingot', 'gtceu:zinc_ingot')
event.shapeless('create:brass_ingot', 'gtceu:brass_ingot')

View file

@ -0,0 +1,875 @@
// priority: 0
/**
* @param {Internal.RecipesEventJS} event
*/
function registerTFGFoodRecipes(event) {
const $ISPRecipeLogic = Java.loadClass("su.terrafirmagreg.core.common.data.tfgt.machine.trait.ISPOutputRecipeLogic")
const $SizedIngredient = Java.loadClass("com.gregtechceu.gtceu.api.recipe.ingredient.SizedIngredient")
const Sized = (ing, amount) => $SizedIngredient.create(ing, amount)
/**
* @typedef {Object} FoodRecipeData
* @property {number?} circuit
* @property {Internal.GTRecipeComponents$FluidIngredientJS_[]?} fluidInputs
* @property {Internal.FluidStackJS[]?} fluidOutputs
* @property {(string | [string, Internal.Ingredient])[]?} itemInputs
* @property {string[]?} itemOutputs Ingredient outputs - first output is replaced with ISP output if defined
* @property {Internal.ItemStackProviderJS?} itemOutputProvider ItemStackProvider which provides the recipe output.
*
* **NOTE:** TFC Ingredients do not support item counts higher than 1. Do `Sized(TFCIngredient('item:item'), count)` instead of `TFCIngredient('[count]x item:item')`
*/
//#region Helper funcs
/**
* @param {"food_oven"|"food_processor"} type
* @param {string} id
* @param {string} duration
* @param {string} EUt
* @param {FoodRecipeData} data
*/
function registerFoodRecipe(type, id, duration, EUt, text, data) {
if (data.itemInputs === undefined) data.itemInputs = []
if (data.itemOutputs === undefined) data.itemOutputs = []
if (data.fluidInputs === undefined) data.fluidInputs = []
if (data.fluidOutputs === undefined) data.fluidOutputs = []
let gregInputs = [], inputs= []
let outputFirstIndex = (data.itemOutputProvider === undefined) ? 0 : 1
data.itemInputs.forEach(item => {
if (typeof item === "string") {
gregInputs.push(item)
const match = item.match(/^(\d+)\s*x\s*/i);
let count = 1
if (match) {
count = parseInt(match[1]);
item = item.slice(match[0].length);
}
inputs.push($SizedIngredient.create(item, count))
} else {
gregInputs.push(item[0])
inputs.push(item[1])
}
})
$ISPRecipeLogic.RegisterRecipeData(type + "/" + id, inputs, (data.itemOutputProvider === undefined) ? null : data.itemOutputProvider.asCanonClass(), data.itemOutputs.slice(outputFirstIndex).map(i => Item.of(i)))
let r = event.recipes.gtceu[type](id)
.duration(duration)
.EUt(EUt)
if (data.circuit) r.circuit(data.circuit)
if (data.itemOutputs.length > 0) r.itemOutputs(data.itemOutputs)
if (data.itemInputs.length > 0) r.itemInputs(data.itemInputs)
if (data.fluidInputs.length > 0) r.inputFluids(data.fluidInputs);
if (data.fluidOutputs.length > 0) r.outputFluids(data.fluidOutputs);
if (text != "") r.addDataString("action", text);
return r;
}
/**
* @param {string} id
* @param {number} duration
* @param {EUt} EUt
* @param {FoodRecipeData} data
*/
const processorRecipe = (id, duration, EUt, data) => registerFoodRecipe("food_processor", id, duration, EUt, "", data)
/**
* @param {string} id
* @param {number} duration
* @param {EUt} EUt
* @param {FoodRecipeData} data
* @param {string} text
*/
const processorRecipeText = (id, duration, EUt, text, data) => registerFoodRecipe("food_processor", id, duration, EUt, text, data)
/**
* @param {string} id
* @param {string} input
* @param {string} out
* @param {Internal.FluidIngredient?} fluid
* @param {boolean?} isFirmaDynamic
*/
function cookingRecipe(id, input, out, fluid, isFirmaDynamic) {
return registerFoodRecipe("food_oven", id, 300, 32, "", {
itemInputs: [input],
itemOutputs: [out],
fluidInputs: (fluid === undefined) ? [] : [fluid],
itemInputs: [input],
itemOutputProvider: (isFirmaDynamic) ? TFC.isp.of(out).firmaLifeCopyDynamicFood() : TFC.isp.of(out).copyFood().addTrait("firmalife:oven_baked")
})
}
//#endregion
//#region ================= Meat cooking =================
global.TFC_MEAT_RECIPE_COMPONENTS.forEach(item => {
cookingRecipe(item.name, item.input, item.output)
})
//#endregion
//#region ================= TFC Grains =================
global.TFC_GRAINS.forEach(grain => {
// Raw crop to grain
processorRecipe(`${grain}_grain`, 100, 8, {
circuit: 30,
itemInputs: [`tfc:food/${grain}`],
itemOutputs: [`tfc:food/${grain}_grain`],
itemOutputProvider: TFC.isp.of(`tfc:food/${grain}_grain`).copyOldestFood()
})
// Grain to flour
processorRecipe(`${grain}_flour`, 100, 8, {
circuit: 31,
itemInputs: [`tfc:food/${grain}_grain`],
itemOutputs: [`2x tfc:food/${grain}_flour`],
itemOutputProvider: TFC.isp.of(`2x tfc:food/${grain}_flour`).copyOldestFood()
})
// Flatbread dough
processorRecipe(`${grain}_flatbread_dough`, 300, 8, {
itemInputs: [`tfc:food/${grain}_flour`],
itemOutputs: [`2x tfc:food/${grain}_dough`],
circuit: 1,
itemOutputProvider: TFC.isp.of(`2x tfc:food/${grain}_dough`).copyFood()
}).inputFluids(JsonIO.of({ amount: 100, value: { tag: "tfg:clean_water" }}))
// Firmalife dough
processorRecipe(`${grain}_dough`, 300, 16, {
itemInputs: [`tfc:food/${grain}_flour`, `#tfc:sweetener`],
itemOutputs: [`4x firmalife:food/${grain}_dough`],
circuit: 1,
fluidInputs: [Fluid.of('firmalife:yeast_starter', 200)],
itemOutputProvider: TFC.isp.of(`4x firmalife:food/${grain}_dough`).copyFood()
})
// Bread baking
cookingRecipe(`${grain}_flatbread`, `tfc:food/${grain}_dough`, `firmalife:food/${grain}_flatbread`)
cookingRecipe(`${grain}_bread`, `firmalife:food/${grain}_dough`, `tfc:food/${grain}_bread`)
processorRecipe(`${grain}_bread_slice`, 10, 8, {
circuit: 1,
itemInputs: [`tfc:food/${grain}_bread`],
itemOutputs: [`2x firmalife:food/${grain}_slice`],
itemOutputProvider: TFC.isp.of(`2x firmalife:food/${grain}_slice`).copyOldestFood()
})
//Sandwich making
let breadTypes = [["bread", `tfc:food/${grain}_bread`], ["flatbread", `firmalife:food/${grain}_flatbread`], ["slice", `firmalife:food/${grain}_slice`]]
breadTypes.forEach((type) => {
processorRecipe(`${grain}_${type[0]}_sandwich`, 100, 16, {
circuit: 3,
itemInputs: [`2x ${type[1]}`, "3x #tfc:foods/usable_in_sandwich"],
itemOutputs: [`2x tfc:food/${grain}_bread_sandwich`],
itemOutputProvider: TFC.isp.of(`2x tfc:food/${grain}_bread_sandwich`).meal(
(food => food.hunger(4).water(0.5).saturation(1).decayModifier(4.5)), [
(portion) => portion.ingredient(Ingredient.of('#tfc:sandwich_bread')).nutrientModifier(0.5).saturationModifier(0.5).waterModifier(0.5),
(portion) => portion.nutrientModifier(0.8).saturationModifier(0.8).waterModifier(0.8),
])
})
//Note: Jam needs to be first in the recipe code or else it will consider it as the usable_in_jam_sandwhich ingredients.
//1 Jam
processorRecipe(`${grain}_${type[0]}_jam_sandwich_1`, 100, 16, {
circuit: 4,
itemInputs: [`2x ${type[1]}`, '#tfc:foods/preserves', '2x #tfc:foods/usable_in_jam_sandwich_2'],
itemOutputs: [`2x tfc:food/${grain}_bread_jam_sandwich`, 'tfc:empty_jar'],
itemOutputProvider: TFC.isp.of(`2x tfc:food/${grain}_bread_jam_sandwich`).meal(
(food => food.hunger(4).water(0.5).saturation(1).decayModifier(4.5)), [
(portion) => portion.ingredient(Ingredient.of('#tfc:sandwich_bread')).nutrientModifier(0.5).saturationModifier(0.5).waterModifier(0.5),
(portion) => portion.nutrientModifier(0.8).saturationModifier(0.8).waterModifier(0.8),
]),
})
//2 Jam
processorRecipe(`${grain}_${type[0]}_jam_sandwich_2`, 100, 16, {
circuit: 4,
itemInputs: [`2x ${type[1]}`, '2x #tfc:foods/preserves', '1x #tfc:foods/usable_in_jam_sandwich_2'],
itemOutputs: [`2x tfc:food/${grain}_bread_jam_sandwich`, '2x tfc:empty_jar'],
itemOutputProvider: TFC.isp.of(`2x tfc:food/${grain}_bread_jam_sandwich`).meal(
(food => food.hunger(4).water(0.5).saturation(1).decayModifier(4.5)), [
(portion) => portion.ingredient(Ingredient.of('#tfc:sandwich_bread')).nutrientModifier(0.5).saturationModifier(0.5).waterModifier(0.5),
(portion) => portion.nutrientModifier(0.8).saturationModifier(0.8).waterModifier(0.8),
]),
})
//3 Jam
processorRecipe(`${grain}_${type[0]}_jam_sandwich_3`, 100, 16, {
circuit: 4,
itemInputs: [`2x ${type[1]}`, '3x #tfc:foods/preserves'],
itemOutputs: [`2x tfc:food/${grain}_bread_jam_sandwich`, '3x tfc:empty_jar'],
itemOutputProvider: TFC.isp.of(`2x tfc:food/${grain}_bread_jam_sandwich`).meal(
(food => food.hunger(4).water(0.5).saturation(1).decayModifier(4.5)), [
(portion) => portion.ingredient(Ingredient.of('#tfc:sandwich_bread')).nutrientModifier(0.5).saturationModifier(0.5).waterModifier(0.5),
(portion) => portion.nutrientModifier(0.8).saturationModifier(0.8).waterModifier(0.8),
]),
})
})
})
//#endregion
//#region ================= Firmalife =================
global.FIRMALIFE_COOKING_RECIPE_COMPONENTS.forEach(item => {
cookingRecipe(item.name, item.input, item.output, undefined, true)
})
//#endregion
//#region ================= Dairy =================
global.TFC_CURDS_AND_CHEESES.forEach(item => {
processorRecipe(`${item.curd}_curd`, 1200, 16, {
itemOutputs: [item.curd],
fluidInputs: [Fluid.of(item.input_fluid, 1000)],
itemOutputProvider: TFC.isp.of(item.curd).resetFood()
})
processorRecipe(`${item.cheese1}_cheese_wheel_1`, 8000, 16, {
itemInputs: [`3x ${item.curd}`],
itemOutputs: [`firmalife:${item.cheese1}_wheel`],
fluidInputs: [Fluid.of('tfc:salt_water', 750)],
itemOutputProvider: TFC.isp.of(`firmalife:${item.cheese1}_wheel`).copyOldestFood()
})
processorRecipe(`${item.cheese2}_cheese_wheel_2`, 1000, 16, {
circuit: 2,
itemInputs: [`3x ${item.curd}`, `6x tfc:powder/salt`],
itemOutputs: [`firmalife:${item.cheese2}_wheel`],
itemOutputProvider: TFC.isp.of(`firmalife:${item.cheese2}_wheel`).copyOldestFood()
})
processorRecipe(`${item.cheese1}_cheese_cutting_1`, 100, 8, {
itemInputs: [`firmalife:${item.cheese1}_wheel`],
itemOutputs: [`4x firmalife:food/${item.cheese1}`],
itemOutputProvider: TFC.isp.of(`4x firmalife:food/${item.cheese1}`).copyOldestFood()
})
processorRecipe(`${item.cheese2}_cheese_cutting_2`, 100, 8, {
itemInputs: [`firmalife:${item.cheese2}_wheel`],
itemOutputs: [`4x firmalife:food/${item.cheese2}`],
itemOutputProvider: TFC.isp.of(`4x firmalife:food/${item.cheese2}`).copyOldestFood()
})
})
// Milks
processorRecipe(`white_chocolate_blend`, 300, 16, {
circuit: 3,
itemInputs: ['2x firmalife:food/cocoa_butter', '#tfc:sweetener'],
itemOutputs: ['2x firmalife:food/white_chocolate_blend'],
itemOutputProvider: TFC.isp.of('2x firmalife:food/white_chocolate_blend').resetFood(),
}).inputFluids(JsonIO.of({ amount: 1000, value: { tag: "tfc:milks" }}))
processorRecipe(`dark_chocolate_blend`, 300, 16, {
circuit: 2,
itemInputs: ['2x firmalife:food/cocoa_powder', '#tfc:sweetener'],
itemOutputs: ['2x firmalife:food/dark_chocolate_blend'],
itemOutputProvider: TFC.isp.of('2x firmalife:food/dark_chocolate_blend').resetFood(),
}).inputFluids(JsonIO.of({ amount: 1000, value: { tag: "tfc:milks" }}))
processorRecipe(`milk_chocolate_blend`, 300, 16, {
circuit: 1,
itemInputs: ['firmalife:food/cocoa_powder', 'firmalife:food/cocoa_butter', '#tfc:sweetener'],
itemOutputs: ['2x firmalife:food/milk_chocolate_blend'],
itemOutputProvider: TFC.isp.of('2x firmalife:food/milk_chocolate_blend').resetFood(),
}).inputFluids(JsonIO.of({ amount: 1000, value: { tag: "tfc:milks" }}))
// TODO: this has nutrition dynamically set in the pot recipe, can we do that here?
processorRecipe(`egg_noodles`, 50, 8, {
circuit: 6,
itemInputs: ["#tfc:foods/flour", 'tfc:powder/salt', '#forge:eggs'],
itemOutputs: ['firmalife:food/raw_egg_noodles'],
itemOutputProvider: TFC.isp.of("firmalife:food/raw_egg_noodles").copyOldestFood(),
}).inputFluids(JsonIO.of({ amount: 1000, value: { tag: "tfc:milks" }}))
processorRecipe(`rice_noodles`, 50, 8, {
itemInputs: ["tfc:food/rice_flour", 'tfc:food/maize_flour', 'tfc:powder/salt'],
itemOutputs: ['2x firmalife:food/raw_rice_noodles'],
itemOutputProvider: TFC.isp.of('2x firmalife:food/raw_rice_noodles').copyOldestFood()
}).inputFluids(JsonIO.of({ amount: 1000, value: { tag: "tfc:milks" }}))
// No ISP needed here
event.recipes.gtceu.fermenter(`tfg:fermenter/cream`)
.inputFluids(JsonIO.of({ amount: 1000, value: { tag: "tfc:milks" }}))
.outputFluids(Fluid.of('firmalife:cream'))
.circuit(6)
.duration(1200)
.EUt(24)
//#endregion
//#region ================= Food preservation =================
const smoking_meats = Ingredient.of('#tfc:foods/raw_meats').itemIds;
const brining_veg = Ingredient.of('#firmalife:foods/pizza_ingredients').itemIds;
const drying_fruits = Ingredient.of('#tfc:foods/fruits').itemIds;
const drying_recipes = [
{input: 'firmalife:food/soy_mixture', output: 'firmalife:food/tofu'},
{input: 'tfc:food/soybean', output: 'firmalife:food/dehydrated_soybeans'},
{input: 'firmalife:plant/vanilla', output: 'firmalife:spice/vanilla'},
{input: 'firmalife:cinnamon_bark', output: 'firmalife:spice/cinnamon'},
{input: 'firmalife:food/white_chocolate_blend', output: 'firmalife:food/white_chocolate'},
{input: 'firmalife:food/milk_chocolate_blend', output: 'firmalife:food/milk_chocolate'},
{input: 'firmalife:food/dark_chocolate_blend', output: 'firmalife:food/dark_chocolate'}
];
const brining_ingredients = smoking_meats.concat(brining_veg);
brining_ingredients.forEach(item => {
processorRecipeText(`${item.replace(/:/g, "/")}/brining`, 200, 16, "tfg.food_recipe.brining", {
circuit: 5,
itemInputs: [item],
itemOutputs: [item],
fluidInputs: [Fluid.of("tfc:brine", 100)],
itemOutputProvider: TFC.isp.copyInput().addTrait('tfc:brined')
})
})
smoking_meats.forEach(item => {
processorRecipeText(`${item.replace(/:/g, "/")}/smoking`, 200, 16, "tfg.food_recipe.smoking", {
circuit: 6,
itemInputs: [item],
itemOutputs: [item],
fluidInputs: [Fluid.of('gtceu:wood_gas', 50)],
itemOutputProvider: TFC.isp.copyInput().addTrait("firmalife:smoked")
})
})
drying_fruits.forEach(item => {
processorRecipeText(`${item.replace(/:/g, "/")}/drying`, 200, 16, "tfg.food_recipe.drying", {
circuit: 6,
itemInputs: [item],
itemOutputs: [item],
fluidInputs: [Fluid.of('gtceu:nitrogen', 100)],
itemOutputProvider: TFC.isp.copyInput().addTrait("firmalife:dried")
})
})
drying_recipes.forEach(item => {
processorRecipeText(`${item.input.replace(/:/g, "/")}/drying`, 200, 16, "tfg.food_recipe.drying", {
circuit: 6,
itemInputs: [item.input],
itemOutputs: [item.output],
fluidInputs: [Fluid.of('gtceu:nitrogen', 100)],
itemOutputProvider: TFC.isp.of(item.output).copyOldestFood()
})
})
global.FOOD_FRUIT.forEach(fruit => {
processorRecipeText(`${fruit.name}/drying`, 100, 120, "tfg.food_recipe.freeze_drying", {
circuit: 7,
itemInputs: [fruit.id, 'tfg:foil_pack', 'tfg:dry_ice'],
itemOutputs: [`tfg:food/freeze_dried/${fruit.name}`],
itemOutputProvider: TFC.isp.of(`tfg:food/freeze_dried/${fruit.name}`).copyOldestFood().removeTrait('firmalife:dried').addTrait('tfg:freeze_dried')
})
})
//#endregion
//#region Meal Bags
//1 Input
processorRecipeText('meal_bag/1', 100, 120, "tfg.food_recipe.freeze_drying", {
circuit: 10,
itemInputs: ['1x #tfg:foods/usable_in_meal_bag', '2x tfg:foil_pack', 'tfg:dry_ice'],
itemOutputs: ['2x tfg:food/meal_bag'],
itemOutputProvider: TFC.isp.of('2x tfg:food/meal_bag').meal(
(food => food.hunger(4).saturation(1.5).decayModifier(4.5)), [
(portion) => portion.nutrientModifier(1).saturationModifier(0.8).waterModifier(0.8),
]).addTrait('tfg:freeze_dried')
})
//2 Input
processorRecipeText('meal_bag/2', 100, 120, "tfg.food_recipe.freeze_drying", {
circuit: 11,
itemInputs: ['2x #tfg:foods/usable_in_meal_bag', '2x tfg:foil_pack', 'tfg:dry_ice'],
itemOutputs: ['2x tfg:food/meal_bag'],
itemOutputProvider: TFC.isp.of('2x tfg:food/meal_bag').meal(
(food => food.hunger(4).saturation(1.5).decayModifier(4.5)), [
(portion) => portion.nutrientModifier(1).saturationModifier(0.8).waterModifier(0.8),
]).addTrait('tfg:freeze_dried')
})
//3 Input
processorRecipeText('meal_bag/3', 100, 120, "tfg.food_recipe.freeze_drying", {
circuit: 12,
itemInputs: ['3x #tfg:foods/usable_in_meal_bag', '2x tfg:foil_pack', 'tfg:dry_ice'],
itemOutputs: ['2x tfg:food/meal_bag'],
itemOutputProvider: TFC.isp.of('2x tfg:food/meal_bag').meal(
(food => food.hunger(4).saturation(1.5).decayModifier(4.5)), [
(portion) => portion.nutrientModifier(1).saturationModifier(0.8).waterModifier(0.8),
]).addTrait('tfg:freeze_dried')
})
//4 Input
processorRecipeText('meal_bag/4', 100, 120, "tfg.food_recipe.freeze_drying", {
circuit: 13,
itemInputs: ['4x #tfg:foods/usable_in_meal_bag', '2x tfg:foil_pack', 'tfg:dry_ice'],
itemOutputs: ['2x tfg:food/meal_bag'],
itemOutputProvider: TFC.isp.of('2x tfg:food/meal_bag').meal(
(food => food.hunger(4).saturation(1.5).decayModifier(4.5)), [
(portion) => portion.nutrientModifier(1).saturationModifier(0.8).waterModifier(0.8),
]).addTrait('tfg:freeze_dried')
})
//5 Input
processorRecipeText('meal_bag/5', 100, 120, "tfg.food_recipe.freeze_drying", {
circuit: 14,
itemInputs: ['5x #tfg:foods/usable_in_meal_bag', '2x tfg:foil_pack', 'tfg:dry_ice'],
itemOutputs: ['2x tfg:food/meal_bag'],
itemOutputProvider: TFC.isp.of('2x tfg:food/meal_bag').meal(
(food => food.hunger(4).saturation(1.5).decayModifier(4.5)), [
(portion) => portion.nutrientModifier(1).saturationModifier(0.8).waterModifier(0.8),
]).addTrait('tfg:freeze_dried')
})
//#endregion
//#region ================= Misc =================
global.TFC_JAMS.forEach(name => {
processorRecipe(`${name}_jam`, 200, 8, {
circuit: 15,
itemInputs: [`4x tfc:food/${name}`, "#tfg:sugars", "#tfc:empty_jar_with_lid"],
itemOutputs: [`4x tfc:jar/${name}`],
itemOutputProvider: TFC.isp.of(`4x tfc:jar/${name}`).copyFood()
}).inputFluids(JsonIO.of({ amount: 100, value: { tag: "tfg:clean_water" }}))
processorRecipe(`${name}_jam_no_seal`, 200, 8, {
circuit: 16,
itemInputs: [`4x tfc:food/${name}`, "#tfg:sugars", "tfc:empty_jar"],
itemOutputs: [`4x tfc:jar/${name}_unsealed`],
itemOutputProvider: TFC.isp.of(`4x tfc:jar/${name}_unsealed`).copyFood()
}).inputFluids(JsonIO.of({ amount: 100, value: { tag: "tfg:clean_water" }}))
})
cookingRecipe("pasta", "firmalife:food/raw_egg_noodles", "firmalife:food/cooked_pasta")
.inputFluids(JsonIO.of({ amount: 100, value: { tag: "tfg:clean_water" }}))
cookingRecipe("corn_tortilla", "firmalife:food/masa", "firmalife:food/corn_tortilla")
cookingRecipe("boiled_egg", "#firmalife:foods/raw_eggs", "tfc:food/boiled_egg")
.inputFluids(JsonIO.of({ amount: 200, value: { tag: "tfg:clean_water" }}))
cookingRecipe("cooked_rice", "tfc:food/rice_grain", "tfc:food/cooked_rice")
.inputFluids(JsonIO.of({ amount: 200, value: { tag: "tfg:clean_water" }}))
processorRecipe("pasta_tomato_sauce", 60, 8, {
itemInputs: ["firmalife:food/cooked_pasta", "firmalife:food/tomato_sauce"],
itemOutputs: ["firmalife:food/pasta_with_tomato_sauce"],
itemOutputProvider: TFC.isp.of('firmalife:food/pasta_with_tomato_sauce').copyFood()
})
processorRecipe('firmalife_masa', 300, 2, {
circuit: 3,
itemInputs: ["firmalife:food/masa_flour"],
itemOutputs: ["2x firmalife:food/masa"],
itemOutputProvider: TFC.isp.of("2x firmalife:food/masa").copyFood()
}).inputFluids(JsonIO.of({ amount: 100, value: { tag: "tfg:clean_water" }}))
processorRecipe("tortilla_chips", 40, 16, {
itemInputs: ["firmalife:food/taco_shell", "tfc:powder/salt"],
itemOutputs: ["firmalife:food/tortilla_chips"],
itemOutputProvider: TFC.isp.of("firmalife:food/tortilla_chips").copyFood()
})
processorRecipe("tomato_sauce_mix", 600, 8, {
itemInputs: ['tfc:food/tomato', 'tfc:powder/salt', 'tfc:food/garlic'],
itemOutputs: ['5x firmalife:food/tomato_sauce_mix'],
itemOutputProvider: TFC.isp.of('5x firmalife:food/tomato_sauce_mix').copyOldestFood(),
})
processorRecipe("tomato_sauce_from_mix", 200, 8, {
itemInputs: ['firmalife:food/tomato_sauce_mix'],
itemOutputs: ['firmalife:food/tomato_sauce'],
itemOutputProvider: TFC.isp.of('firmalife:food/tomato_sauce').copyOldestFood(),
}).inputFluids(JsonIO.of({ amount: 200, value: { tag: "tfg:clean_water" }}))
processorRecipe("olive_paste", 60, 8, {
itemInputs: ['tfc:food/olive'],
itemOutputs: ['2x tfc:olive_paste'],
itemOutputProvider: TFC.isp.of('2x tfc:olive_paste'),
})
processorRecipe("soybean_paste", 60, 8, {
itemInputs: ['firmalife:food/dehydrated_soybeans'],
itemOutputs: ['firmalife:food/soybean_paste'],
itemOutputProvider: TFC.isp.of('firmalife:food/soybean_paste').copyOldestFood(),
})
processorRecipeText('calorie_paste', 100, 512, "tfg.food_recipe.freeze_drying", {
circuit: 8,
itemInputs: ['firmalife:food/soybean_paste', 'tfg:foil_pack', '2x gtceu:small_meat_dust', 'tfg:dry_ice'],
itemOutputs: ['tfg:food/calorie_paste'],
fluidInputs: [Fluid.of('gtceu:fermented_biomass', 40)],
itemOutputProvider: TFC.isp.of('tfg:food/calorie_paste').copyOldestFood().addTrait('tfg:freeze_dried'),
})
// Vinegar
processorRecipe('vinegar_alcohol', 600, 32, {
circuit: 5,
itemInputs: ['#tfc:foods/fruits'],
fluidOutputs: [Fluid.of('tfc:vinegar', 250)],
})
.inputFluids(JsonIO.of({
amount: 250,
value: {
tag: "tfc:alcohols"
}
}))
processorRecipe("pizza_no_extra", 600, 16, {
itemInputs: ["firmalife:food/pizza_dough", "firmalife:food/tomato_sauce", "firmalife:food/shredded_cheese"],
itemOutputs: ["firmalife:food/raw_pizza"],
itemOutputProvider: TFC.isp.of("firmalife:food/raw_pizza").meal(
(food) => food.hunger(4).saturation(1).grain(1).dairy(0.25).decayModifier(4.5),
[(portion) => portion.nutrientModifier(0.8).waterModifier(0.8).saturationModifier(0.8)]
)
})
processorRecipe("pizza_1_extra", 600, 16, {
circuit: 1,
itemInputs: ["firmalife:food/pizza_dough", "firmalife:food/tomato_sauce", "firmalife:food/shredded_cheese", "#firmalife:foods/pizza_ingredients"],
itemOutputs: ["firmalife:food/raw_pizza"],
itemOutputProvider: TFC.isp.of("firmalife:food/raw_pizza").meal(
(food) => food.hunger(4).saturation(1).grain(1).dairy(0.25).decayModifier(4.5),
[(portion) => portion.nutrientModifier(0.8).waterModifier(0.8).saturationModifier(0.8)]
)
})
processorRecipe("pizza_2_extra", 600, 16, {
circuit: 2,
itemInputs: ["firmalife:food/pizza_dough", "firmalife:food/tomato_sauce", "firmalife:food/shredded_cheese", "2x #firmalife:foods/pizza_ingredients"],
itemOutputs: ["firmalife:food/raw_pizza"],
itemOutputProvider: TFC.isp.of("firmalife:food/raw_pizza").meal(
(food) => food.hunger(4).saturation(1).grain(1).dairy(0.25).decayModifier(4.5),
[(portion) => portion.nutrientModifier(0.8).waterModifier(0.8).saturationModifier(0.8)]
)
})
processorRecipe("pizza_dough_olive_oil", 300, 16, {
itemInputs: ['firmalife:spice/basil_leaves', '#tfc:foods/dough', 'tfc:powder/salt'],
itemOutputs: ['4x firmalife:food/pizza_dough'],
itemOutputProvider: TFC.isp.of("4x firmalife:food/pizza_dough").copyOldestFood()
})
processorRecipe("pizza_dough_soybean_oil", 300, 16, {
itemInputs: ['firmalife:spice/basil_leaves', '#tfc:foods/dough', 'tfc:powder/salt'],
itemOutputs: ['4x firmalife:food/pizza_dough'],
itemOutputProvider: TFC.isp.of("4x firmalife:food/pizza_dough").copyOldestFood()
}).inputFluids(JsonIO.of({ amount: 100, value: { tag: "firmalife:oils" }}))
processorRecipe("vanilla_ice_cream", 300, 16, {
itemInputs: ['firmalife:ice_shavings', '#tfc:sweetener', 'firmalife:spice/vanilla'],
itemOutputs: ['2x firmalife:food/vanilla_ice_cream'],
fluidInputs: [Fluid.of('firmalife:cream', 1000)],
itemOutputProvider: TFC.isp.of("2x firmalife:food/vanilla_ice_cream").resetFood()
})
processorRecipe("chocolate_ice_cream", 300, 16, {
itemInputs: ['firmalife:food/vanilla_ice_cream'],
itemOutputs: ['firmalife:food/chocolate_ice_cream'],
fluidInputs: [Fluid.of('firmalife:chocolate', 1000)],
itemOutputProvider: TFC.isp.of("firmalife:food/chocolate_ice_cream").resetFood()
})
processorRecipe("strawberry_ice_cream", 300, 16, {
itemInputs: ['firmalife:food/vanilla_ice_cream', '2x tfc:food/strawberry'],
itemOutputs: ['firmalife:food/strawberry_ice_cream'],
itemOutputProvider: TFC.isp.of("firmalife:food/strawberry_ice_cream").resetFood()
})
processorRecipe("cookie_dough_ice_cream", 300, 16, {
itemInputs: [`firmalife:food/vanilla_ice_cream`, `firmalife:food/chocolate_chip_cookie_dough`],
itemOutputs: [`2x firmalife:food/cookie_dough_ice_cream`],
itemOutputProvider: TFC.isp.of("firmalife:food/cookie_dough_ice_cream").resetFood()
})
processorRecipe("butter", 300, 16, {
itemInputs: ["tfc:powder/salt"],
itemOutputs: ["firmalife:food/butter"],
fluidInputs: [Fluid.of('firmalife:cream', 1000)],
itemOutputProvider: TFC.isp.of('firmalife:food/butter').resetFood()
})
processorRecipe("pie_dough", 300, 16, {
circuit: 2,
itemInputs: ['#tfc:sweetener', 'firmalife:food/butter', '#tfc:foods/flour'],
itemOutputs: ['firmalife:food/pie_dough'],
itemOutputProvider: TFC.isp.of('firmalife:food/pie_dough').copyOldestFood()
}).inputFluids(JsonIO.of({ amount: 1000, value: { tag: "tfg:clean_water" }}))
processorRecipe("pumpkin_pie_dough", 300, 16, {
circuit: 2,
itemInputs: ['#tfc:sweetener', '#forge:eggs', '2x tfc:food/pumpkin_chunks', '#tfc:foods/flour'],
itemOutputs: ['firmalife:food/pumpkin_pie_dough'],
itemOutputProvider: TFC.isp.of('firmalife:food/pumpkin_pie_dough').copyOldestFood()
}).inputFluids(JsonIO.of({ amount: 1000, value: { tag: "tfg:clean_water" }}))
processorRecipe("raw_pumpkin_pie", 20, 8, {
itemInputs: ["firmalife:food/pumpkin_pie_dough", "firmalife:pie_pan"],
itemOutputs: ["firmalife:raw_pumpkin_pie"],
itemOutputProvider: TFC.isp.of("firmalife:food/raw_pumpkin_pie").copyFood()
})
processorRecipe("cookie_dough", 300, 16, {
itemInputs: ['#tfc:sweetener', '#forge:eggs', 'firmalife:food/butter', '#tfc:foods/flour', "firmalife:spice/vanilla"],
itemOutputs: ['4x firmalife:food/cookie_dough'],
itemOutputProvider: TFC.isp.of('4x firmalife:food/cookie_dough').copyOldestFood()
})
processorRecipe("chocolate_chip_cookie_dough", 300, 16, {
itemInputs: ['4x firmalife:food/cookie_dough', '#firmalife:foods/chocolate'],
itemOutputs: ['4x firmalife:food/chocolate_chip_cookie_dough'],
itemOutputProvider: TFC.isp.of('4x firmalife:food/chocolate_chip_cookie_dough').copyOldestFood()
})
processorRecipe("hardtack_dough", 300, 16, {
itemInputs: ['tfc:powder/salt', '#tfc:foods/flour'],
itemOutputs: ['4x firmalife:food/hardtack_dough'],
itemOutputProvider: TFC.isp.of('4x firmalife:food/hardtack_dough').copyOldestFood()
}).inputFluids(JsonIO.of({ amount: 1000, value: { tag: "tfg:clean_water" }}))
processorRecipe("yeast_starter", 1200, 8, {
circuit: 1,
fluidInputs: [Fluid.of('firmalife:yeast_starter', 100)],
fluidOutputs: [Fluid.of('firmalife:yeast_starter', 600)],
itemInputs: ['#tfc:foods/flour'],
})
processorRecipe("yeast_starter_from_water", 7200, 8, {
circuit: 10,
fluidOutputs: [Fluid.of('firmalife:yeast_starter', 600)],
itemInputs: ['#tfc:foods/fruits'],
}).inputFluids(JsonIO.of({ amount: 100, value: { tag: "tfg:clean_water" }}))
processorRecipe("cocoa_dust", 100, 4, {
itemInputs: ["firmalife:food/roasted_cocoa_beans"],
itemOutputs: ["gtceu:cocoa_dust"],
itemOutputProvider: TFC.isp.of("gtceu:cocoa_dust")
})
processorRecipe("red_grapes", 50, 8, {
itemInputs: ["firmalife:food/red_grapes"],
itemOutputs: ["firmalife:food/smashed_red_grapes"],
itemOutputProvider: TFC.isp.of('firmalife:food/smashed_red_grapes').copyOldestFood()
})
processorRecipe("white_grapes", 50, 8, {
itemInputs: ["firmalife:food/white_grapes"],
itemOutputs: ["firmalife:food/smashed_white_grapes"],
itemOutputProvider: TFC.isp.of('firmalife:food/smashed_white_grapes').copyOldestFood()
})
processorRecipe("cured_maize", 300, 8, {
itemInputs: ["tfc:food/maize_grain"],
itemOutputs: ["firmalife:food/cured_maize"],
itemOutputProvider: TFC.isp.of('firmalife:food/cured_maize').copyOldestFood()
})
processorRecipe("soy_mixture", 300, 8, {
itemInputs: ["tfc:food/soybean", 'tfc:powder/salt'],
itemOutputs: ["firmalife:food/soy_mixture"],
itemOutputProvider: TFC.isp.of('firmalife:food/soy_mixture').copyOldestFood()
}).inputFluids(JsonIO.of({ amount: 50, value: { tag: "tfg:clean_water" }}))
// Cakes
processorRecipe("cake_base", 300, 8, {
circuit: 4,
itemInputs: ["#forge:eggs", "2x #tfg:sugars", "2x #tfc:foods/flour"],
itemOutputs: ["createaddition:cake_base"],
itemOutputProvider: TFC.isp.of("createaddition:cake_base").copyOldestFood()
}).inputFluids(JsonIO.of({ amount: 1000, value: { tag: "tfc:milks" }}))
cookingRecipe("baked_cake_base", "createaddition:cake_base", "createaddition:cake_base_baked")
processorRecipe("vanilla_cake", 300, 8, {
itemInputs: ['createaddition:cake_base_baked', '3x tfc:food/strawberry', 'firmalife:spice/vanilla'],
fluidInputs: [Fluid.of("tfcchannelcasting:white_chocolate", 400)],
itemOutputs: ["tfc:cake"]
})
processorRecipe("milk_chocolate_cake", 300, 8, {
itemInputs: ['createaddition:cake_base_baked', '3x tfc:food/cherry', 'firmalife:food/cocoa_powder'],
fluidInputs: [Fluid.of("tfcchannelcasting:milk_chocolate", 400)],
itemOutputs: ["createaddition:chocolate_cake"]
})
processorRecipe("dark_chocolate_cake", 300, 8, {
itemInputs: ['createaddition:cake_base_baked', '3x tfc:food/cherry', 'firmalife:food/cocoa_powder'],
fluidInputs: [Fluid.of("tfcchannelcasting:dark_chocolate", 400)],
itemOutputs: ["createaddition:chocolate_cake"]
})
processorRecipe("maple_honey_cake", 300, 8, {
itemInputs: ['createaddition:cake_base_baked', '4x firmalife:raw_honey'],
fluidInputs: [Fluid.of("afc:maple_syrup", 1000)],
itemOutputs: ["createaddition:honey_cake"]
})
processorRecipe("birch_honey_cake", 300, 8, {
itemInputs: ['createaddition:cake_base_baked', '4x firmalife:raw_honey'],
fluidInputs: [Fluid.of("afc:birch_syrup", 1000)],
itemOutputs: ["createaddition:honey_cake"]
})
processorRecipe("birtday_cake", 300, GTValues.VA[GTValues.HV], {
itemInputs: ['createaddition:cake_base', '4x species:birt_egg', '4x tfc:food/blueberry', '2x minecraft:chorus_fruit', 'gtceu:blue_alloy_single_wire'],
fluidInputs: [Fluid.of('gtceu:helium_3', 50)],
itemOutputs: ["species:birtday_cake"]
})
// These don't need the ISP handling, they're just here to keep all the food recipes together
event.recipes.gtceu.mixer('tfg:tfc/olive_oil_water')
.inputFluids(Fluid.of('water', 200))
.itemInputs('1x 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)
event.recipes.gtceu.fermenter('soybean_oil')
.itemInputs('firmalife:food/soybean_paste')
.inputFluids(JsonIO.of({ amount: 100, value: { tag: "tfg:clean_water" }}))
.outputFluids(Fluid.of('firmalife:soybean_oil', 250))
.EUt(GTValues.VA[GTValues.ULV])
.duration(600)
event.recipes.gtceu.fermenter('tfg:fermenter/curdled_milk')
.inputFluids(Fluid.of('minecraft:milk', 2000))
.itemInputs('firmalife:rennet')
.outputFluids(Fluid.of('tfc:curdled_milk', 2000))
.duration(2400)
.EUt(16)
event.recipes.gtceu.fermenter('tfg:fermenter/curdled_yak_milk')
.inputFluids(Fluid.of('firmalife:yak_milk', 2000))
.itemInputs('firmalife:rennet')
.outputFluids(Fluid.of('firmalife:curdled_yak_milk', 2000))
.duration(2400)
.EUt(16)
event.recipes.gtceu.fermenter('tfg:fermenter/curdled_goat_milk')
.inputFluids(Fluid.of('firmalife:goat_milk', 2000))
.itemInputs('firmalife:rennet')
.outputFluids(Fluid.of('firmalife:curdled_goat_milk', 2000))
.duration(2400)
.EUt(16)
// GT cocoa dust compat
event.recipes.gtceu.macerator('firmalife:food/cocoa_powder')
.itemInputs('gtceu:cocoa_dust')
.itemOutputs('4x firmalife:food/cocoa_powder')
.duration(100)
.EUt(2)
event.recipes.tfc.quern('4x firmalife:food/cocoa_powder', 'gtceu:cocoa_dust')
.id(`tfg:quern/cocoa_powder`)
event.recipes.tfc.quern('gtceu:cocoa_dust', 'firmalife:food/roasted_cocoa_beans')
.id('tfg:quern/cocoa_dust');
//#endregion
//#region Heating recipes for new foods
event.recipes.tfc.heating('tfg:food/raw_birt', 200)
.resultItem(TFC.isp.of('tfg:food/cooked_birt').copyFood())
event.recipes.tfc.heating('tfg:food/raw_crawlermari', 200)
.resultItem(TFC.isp.of('tfg:food/cooked_crawlermari').copyFood())
event.recipes.tfc.heating('tfg:food/raw_limpet', 200)
.resultItem(TFC.isp.of('tfg:food/cooked_limpet').copyFood())
event.recipes.tfc.heating('tfg:sunflower_product', 200)
.resultItem(TFC.isp.of('tfg:roasted_sunflower_seeds').copyFood())
event.recipes.tfc.heating('tfg:food/raw_moon_rabbit', 200)
.resultItem(TFC.isp.of('tfg:food/cooked_moon_rabbit').copyFood())
//#endregion
// Food processing machine recipes
event.remove({id: 'gtceu:shaped/mv_food_refrigerator'})
event.remove({id: 'gtceu:shaped/hv_food_refrigerator'})
event.remove({id: 'gtceu:shaped/ev_food_refrigerator'})
event.recipes.gtceu.assembler('tfg:assembler/mv_food_refrigerator')
.itemInputs(
ChemicalHelper.get(TagPrefix.cableGtSingle, GTMaterials.Copper, 2),
ChemicalHelper.get(TagPrefix.plate, GTMaterials.Polyethylene, 2),
ChemicalHelper.get(TagPrefix.rotor, GTMaterials.Bronze, 1),
'2x gtceu:mv_electric_pump',
'gtceu:mv_hermetic_casing',
'#gtceu:circuits/mv'
)
.inputFluids(Fluid.of('tfg:chlorodifluoromethane', 6000))
.itemOutputs('1x tfg:mv_food_refrigerator')
.duration(200)
.circuit(7)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.assembler('tfg:assembler/hv_food_refrigerator')
.itemInputs(
ChemicalHelper.get(TagPrefix.cableGtSingle, GTMaterials.Gold, 2),
ChemicalHelper.get(TagPrefix.plate, GTMaterials.Polyethylene, 2),
ChemicalHelper.get(TagPrefix.rotor, GTMaterials.Steel, 1),
'2x gtceu:hv_electric_pump',
'gtceu:hv_hermetic_casing',
'#gtceu:circuits/hv'
)
.inputFluids(Fluid.of('tfg:1_1_1_2_tetrafluoroethane', 6000))
.itemOutputs('1x tfg:hv_food_refrigerator')
.duration(200)
.circuit(7)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.assembler('tfg:assembler/ev_food_refrigerator')
.itemInputs(
ChemicalHelper.get(TagPrefix.cableGtSingle, GTMaterials.Aluminium, 2),
ChemicalHelper.get(TagPrefix.plate, GTMaterials.Polyethylene, 2),
ChemicalHelper.get(TagPrefix.rotor, GTMaterials.StainlessSteel, 1),
'2x gtceu:ev_electric_pump',
'gtceu:ev_hermetic_casing',
'#gtceu:circuits/ev'
)
.inputFluids(Fluid.of('tfg:isobutane', 6000))
.itemOutputs('1x tfg:ev_food_refrigerator')
.duration(200)
.circuit(7)
.EUt(GTValues.VA[GTValues.LV])
// Tweaks to the machine crafts that are more annoying to do in java
event.replaceInput({id: 'gtceu:shaped/lv_food_processor'}, 'gtceu:lv_electric_piston', 'gtceu:steel_whisk')
event.replaceInput({id: 'gtceu:shaped/mv_food_processor'}, 'gtceu:mv_electric_piston', 'gtceu:aluminium_whisk')
event.replaceInput({id: 'gtceu:shaped/hv_food_processor'}, 'gtceu:hv_electric_piston', 'gtceu:stainless_steel_whisk')
event.replaceInput({id: 'gtceu:shaped/ev_food_processor'}, 'gtceu:ev_electric_piston', 'gtceu:titanium_whisk')
event.replaceInput({id: 'gtceu:shaped/lv_food_oven'}, 'gtceu:lv_electric_piston', '#tfg:metal_bars')
event.replaceInput({id: 'gtceu:shaped/mv_food_oven'}, 'gtceu:mv_electric_piston', '#tfg:metal_bars')
event.replaceInput({id: 'gtceu:shaped/hv_food_oven'}, 'gtceu:hv_electric_piston', '#tfg:metal_bars')
event.replaceInput({id: 'gtceu:shaped/ev_food_oven'}, 'gtceu:ev_electric_piston', '#tfg:metal_bars')
event.replaceInput({id: 'gtceu:shaped/mv_food_refrigerator'}, 'gtceu:mv_machine_hull', 'gtceu:mv_hermetic_casing')
event.replaceInput({id: 'gtceu:shaped/hv_food_refrigerator'}, 'gtceu:hv_machine_hull', 'gtceu:hv_hermetic_casing')
event.replaceInput({id: 'gtceu:shaped/ev_food_refrigerator'}, 'gtceu:ev_machine_hull', 'gtceu:ev_hermetic_casing')
}

View file

@ -14,4 +14,9 @@ const registerTFGRecipes = (event) => {
registerTFGSupportRecipes(event)
registerTFGFishingNetsRecipes(event)
registerTFGConvertingRecipes(event)
registerTFGFoodRecipes(event)
registerTFGSpaceRecipes(event)
registerTFGStoneDustRecipes(event)
registerTFGRecyclingRecipes(event)
}

View file

@ -124,7 +124,7 @@ function registerTFGMiscellaneousRecipes(event) {
.outputFluids(Fluid.of('firmalife:curdled_goat_milk', 1000))
.duration(300)
.EUt(GTValues.VA[GTValues.LV])
//Scaffolding Frame
event.shaped('tfg:scaffolding_frame',
[
@ -136,7 +136,7 @@ function registerTFGMiscellaneousRecipes(event) {
A: '#forge:rods/wood',
B: '#forge:cloth'
}).id('tfg:shaped/scaffolding_frame');
//Airship Hull
event.shaped('tfg:airship_hull', [
'A B',
@ -155,17 +155,15 @@ function registerTFGMiscellaneousRecipes(event) {
.EUt(GTValues.VA[GTValues.ULV]);
//Airship Balloon
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped('tfg:airship_balloon', [
'ABA',
'BCB',
'ABA'
], {
A: '#forge:string',
B: 'immersive_aircraft:sail',
C: 'tfc:bone_needle'
})
).id('tfg:shaped/airship_balloon')
// TODO: Add the needle back here once #963 is fixed
event.shaped('tfg:airship_balloon', [
'ABA',
'BAB',
'ABA'
], {
A: '#forge:string',
B: 'immersive_aircraft:sail'
}).id('tfg:shaped/airship_balloon')
event.recipes.gtceu.assembler('tfg:assembler/airship_balloon')
.itemInputs('4x immersive_aircraft:sail', '4x #forge:string')
@ -254,7 +252,7 @@ function registerTFGMiscellaneousRecipes(event) {
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.fluid_solidifier('tfg:ice')
.inputFluids(Fluid.of('minecraft:water', 144))
.inputFluids(JsonIO.of({ amount: 100, value: { tag: "tfg:clean_water" } }))
.notConsumable('gtceu:block_casting_mold')
.itemOutputs('minecraft:ice')
.duration(200)
@ -262,7 +260,20 @@ function registerTFGMiscellaneousRecipes(event) {
event.shapeless('4x firmalife:ice_shavings', ['#forge:dusts/ice', '#forge:tools/hammers'])
event.recipes.gtceu.mixer('tfg:ice_slush_from_dry_ice')
.itemInputs('1x tfg:dry_ice')
.inputFluids( JsonIO.of({ amount: 8000, value: { tag: "tfc:water" }}))
.outputFluids(Fluid.of('gtceu:ice', 8000))
.duration(80)
.EUt(GTValues.VA[GTValues.ULV])
// Cooling water
event.recipes.tfc.barrel_sealed(250)
.inputItem('1x tfg:dry_ice')
.inputFluid(Fluid.of('minecraft:water', 5000))
.outputFluid(Fluid.of('gtceu:ice', 5000))
.id('tfg:barrel/cooling_water_0')
event.recipes.tfc.barrel_sealed(1000)
.inputItem('1x #forge:dusts/ice')
.inputFluid(Fluid.of('minecraft:water', 144))
@ -381,68 +392,6 @@ function registerTFGMiscellaneousRecipes(event) {
).id(`universal_circuits_${tier}`);
});
// Air collector (move this to space stuff later)
event.recipes.gtceu.gas_collector('nether')
.circuit(2)
.outputFluids(Fluid.of('gtceu:air', 10000))
.dimension('minecraft:the_nether')
.duration(200)
.EUt(16)
event.recipes.gtceu.aqueous_accumulator('water_overworld')
.circuit(1)
.dimension('minecraft:overworld')
.duration(20)
.EUt(GTValues.VHA[GTValues.ULV])
.addDataString("fluidA", "minecraft:water")
.addDataString("fluidB", "minecraft:water")
.outputFluids(Fluid.of("minecraft:water", 1000))
event.recipes.gtceu.aqueous_accumulator('water_nether')
.circuit(2)
.dimension('minecraft:the_nether')
.duration(20)
.EUt(GTValues.VHA[GTValues.ULV])
.addDataString("fluidA", "minecraft:water")
.addDataString("fluidB", "minecraft:water")
.outputFluids(Fluid.of("minecraft:water", 1000))
event.recipes.gtceu.aqueous_accumulator('sea_water_overworld')
.circuit(3)
.dimension('minecraft:overworld')
.duration(20)
.EUt(GTValues.VA[GTValues.ULV])
.addDataString("fluidA", "tfc:salt_water")
.addDataString("fluidB", "tfc:salt_water")
.outputFluids(Fluid.of("tfc:salt_water", 1000))
event.recipes.gtceu.aqueous_accumulator('sea_water_nether')
.circuit(4)
.dimension('minecraft:the_nether')
.duration(20)
.EUt(GTValues.VA[GTValues.ULV])
.addDataString("fluidA", "tfc:salt_water")
.addDataString("fluidB", "tfc:salt_water")
.outputFluids(Fluid.of("tfc:salt_water", 1000))
event.recipes.gtceu.aqueous_accumulator('lava_overworld')
.circuit(5)
.dimension('minecraft:overworld')
.duration(20)
.EUt(GTValues.VHA[GTValues.HV])
.addDataString("fluidA", "minecraft:lava")
.addDataString("fluidB", "minecraft:lava")
.outputFluids(Fluid.of("minecraft:lava", 1000))
event.recipes.gtceu.aqueous_accumulator('lava_nether')
.circuit(6)
.dimension('minecraft:the_nether')
.duration(20)
.EUt(GTValues.VHA[GTValues.HV])
.addDataString("fluidA", "minecraft:lava")
.addDataString("fluidB", "minecraft:lava")
.outputFluids(Fluid.of("minecraft:lava", 1000))
event.shapeless('1x tfg:armor_stand_arms', [
'minecraft:armor_stand'
@ -453,20 +402,20 @@ function registerTFGMiscellaneousRecipes(event) {
]).id(`tfg:shapeless/armor_stand`)
event.recipes.tfc.sewing(
'1x tfg:piglin_disguise',
[
0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 1, 0, 0, 0, 1, 1, 0,
0, 1, 1, 1, 0, 1, 1, 1, 0,
0, 0, 1, 1, 0, 1, 1, 0, 0,
0, 0, 1, 1, 0, 1, 1, 0, 0
], [
1, 1, 1, 1, 1, 1, 1, 1,
1, 0, 1, 0, 0, 1, 0, 1,
1, -1, 0, 0, 0, 0, -1, 1,
1, -1, 0, 0, 0, 0, -1, 1
]
).id('tfg:sewing/piglin_disguise')
'1x tfg:piglin_disguise',
[
0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 1, 0, 0, 0, 1, 1, 0,
0, 1, 1, 1, 0, 1, 1, 1, 0,
0, 0, 1, 1, 0, 1, 1, 0, 0,
0, 0, 1, 1, 0, 1, 1, 0, 0
], [
1, 1, 1, 1, 1, 1, 1, 1,
1, 0, 1, 0, 0, 1, 0, 1,
1, -1, 0, 0, 0, 0, -1, 1,
1, -1, 0, 0, 0, 0, -1, 1
]
).id('tfg:sewing/piglin_disguise')
//trowel
event.shaped('tfg:trowel', [
@ -480,10 +429,320 @@ function registerTFGMiscellaneousRecipes(event) {
D: '#forge:tools/screwdrivers'
}).id('tfg:shaped/trowel')
event.recipes.gtceu.assembler('tfg:assembler/trowel')
.itemInputs(ChemicalHelper.get(TagPrefix.plate, GTMaterials.Invar, 2), '1x #forge:screws', '1x #tfc:lumber')
.itemOutputs('1x tfg:trowel')
.duration(40)
.circuit(4)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.assembler('tfg:assembler/trowel')
.itemInputs(ChemicalHelper.get(TagPrefix.plate, GTMaterials.Invar, 2), '1x #forge:screws', '1x #tfc:lumber')
.itemOutputs('1x tfg:trowel')
.duration(40)
.circuit(4)
.EUt(GTValues.VA[GTValues.ULV])
// Food related
event.recipes.gtceu.forming_press('tfg:forming_press/foil_pack')
.itemInputs(ChemicalHelper.get(TagPrefix.foil, GTMaterials.Aluminium, 1), ChemicalHelper.get(TagPrefix.foil, GTMaterials.Polyethylene, 1))
.itemOutputs('1x tfg:foil_pack')
.duration(100)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.fluid_solidifier('tfg:fluid_solidifier/dry_ice')
.inputFluids(Fluid.of('gtceu:carbon_dioxide', 1000))
.notConsumable('gtceu:block_casting_mold')
.itemOutputs('2x tfg:dry_ice')
.duration(100)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.vacuum_freezer('tfg:vacuum_freezer/dry_ice')
.inputFluids(Fluid.of('gtceu:carbon_dioxide', 1000))
.notConsumable('gtceu:block_casting_mold')
.itemOutputs('10x tfg:dry_ice')
.duration(100)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.chemical_reactor('tfg:chemical_reactor/decompress_dry_ice')
.outputFluids(Fluid.of('gtceu:carbon_dioxide', 100))
.itemInputs('1x tfg:dry_ice')
.duration(20)
.circuit(4)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.mixer('tfg:clean_foil_pack')
.itemInputs('1x tfg:used_foil_pack')
.inputFluids(JsonIO.of({ amount: 100, value: { tag: "tfg:clean_water" } }))
.itemOutputs('1x tfg:clean_foil_pack')
.duration(200)
.circuit(1)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.ore_washer('tfg:ore_washer/distilled/clean_foil_pack')
.itemInputs('1x tfg:used_foil_pack')
.inputFluids(Fluid.of('gtceu:distilled_water', 10))
.itemOutputs('1x tfg:clean_foil_pack')
.duration(200)
.circuit(2)
.EUt(GTValues.VA[GTValues.ULV])
event.custom({
type: "ae2:transform",
circumstance: {
type: "fluid",
tag: "tfc:water"
},
ingredients: [
{ item: 'tfg:used_foil_pack' }],
result: { item: 'tfg:clean_foil_pack' }
}).id('tfg:ae_transform/clean_foil_pack')
event.recipes.greate.splashing(['tfg:clean_foil_pack'], 'tfg:used_foil_pack')
.id('tfg:splashing/clean_foil_pack')
event.shapeless('1x tfg:used_foil_pack', [
'tfg:food/calorie_paste'
]).id('tfg:shapeless/emptying/calorie_paste')
event.shapeless('1x tfg:used_foil_pack', [
'tfg:food/meal_bag'
]).id('tfg:shapeless/emptying/meal_bag')
global.FOOD_FRUIT.forEach(fruit => {
event.shapeless('1x tfg:used_foil_pack', [
`tfg:food/freeze_dried/${fruit.name}`
]).id(`tfg:shapeless/emptying/freeze_dried/${fruit.name}`)
})
// Refrigerants
event.recipes.gtceu.chemical_reactor('tfg:chemical_reactor/chlorodifluoromethane')
.inputFluids(Fluid.of('gtceu:chloroform', 1000), Fluid.of('gtceu:hydrofluoric_acid', 2000))
.outputFluids(Fluid.of('tfg:chlorodifluoromethane', 1000), Fluid.of('gtceu:hydrochloric_acid', 2000))
.duration(480)
.circuit(2)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.chemical_reactor('tfg:chemical_reactor/breakdown/chlorodifluoromethane')
.inputFluids(Fluid.of('tfg:chlorodifluoromethane', 200))
.outputFluids(Fluid.of('gtceu:tetrafluoroethylene', 100), Fluid.of('gtceu:hydrochloric_acid', 200))
.duration(100)
.EUt(GTValues.VA[GTValues.HV])
event.recipes.gtceu.chemical_reactor('tfg:chemical_reactor/acetylene')
.inputFluids(Fluid.of('gtceu:methane', 2000), Fluid.of('gtceu:oxygen', 3000))
.outputFluids(Fluid.of('tfg:acetylene', 1000), Fluid.of('minecraft:water', 3000))
.circuit(4)
.duration(120)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.chemical_reactor('tfg:chemical_reactor/1_1_1_2_tetrafluoroethane')
.inputFluids(Fluid.of('tfg:acetylene', 1000), Fluid.of('gtceu:chlorine', 4000), Fluid.of('gtceu:hydrofluoric_acid', 4000))
.outputFluids(Fluid.of('tfg:1_1_1_2_tetrafluoroethane', 1000), Fluid.of('gtceu:hydrochloric_acid', 4000))
.circuit(4)
.duration(480)
.EUt(GTValues.VA[GTValues.HV])
event.recipes.gtceu.cracker('tfg:cracker/isobutane')
.inputFluids(Fluid.of('gtceu:butane', 4000))
.outputFluids(Fluid.of('tfg:isobutane', 1000), Fluid.of('gtceu:lpg', 3000))
.circuit(4)
.duration(2400)
.EUt(GTValues.VA[GTValues.HV])
// Biofuels
event.recipes.gtceu.chemical_reactor(`seed_oil_alcohol_biodiesel`)
.inputFluids(JsonIO.of({ amount: 1000, value: { tag: "tfc:alcohols" } }))
.inputFluids(Fluid.of('gtceu:seed_oil', 6000))
.outputFluids(Fluid.of('gtceu:bio_diesel', 6000))
.duration(20 * 30)
.EUt(GTValues.VHA[GTValues.ULV])
event.recipes.gtceu.chemical_reactor(`olive_oil_alcohol_biodiesel`)
.inputFluids(JsonIO.of({ amount: 1000, value: { tag: "tfc:alcohols" } }))
.inputFluids(Fluid.of('tfc:olive_oil', 4000))
.outputFluids(Fluid.of('gtceu:bio_diesel', 6000))
.duration(20 * 30)
.EUt(GTValues.VHA[GTValues.ULV])
event.recipes.gtceu.chemical_reactor(`soybean_oil_alcohol_biodiesel`)
.inputFluids(JsonIO.of({ amount: 1000, value: { tag: "tfc:alcohols" } }))
.inputFluids(Fluid.of('firmalife:soybean_oil', 4000))
.outputFluids(Fluid.of('gtceu:bio_diesel', 6000))
.duration(20 * 30)
.EUt(GTValues.VHA[GTValues.ULV])
event.recipes.gtceu.chemical_reactor(`fish_oil_alcohol_biodiesel`)
.inputFluids(JsonIO.of({ amount: 1000, value: { tag: "tfc:alcohols" } }))
.inputFluids(Fluid.of('gtceu:fish_oil', 6000))
.outputFluids(Fluid.of('gtceu:bio_diesel', 6000))
.duration(20 * 30)
.EUt(GTValues.VHA[GTValues.ULV])
event.recipes.gtceu.chemical_reactor(`olive_oil_ethanol_biodiesel`)
.inputFluids(Fluid.of('tfc:olive_oil', 4000), Fluid.of('gtceu:ethanol', 1000))
.itemInputs('#forge:tiny_dusts/sodium_hydroxide')
.outputFluids(Fluid.of('gtceu:glycerol'), Fluid.of('gtceu:bio_diesel', 6000))
.duration(20 * 30)
.EUt(GTValues.VHA[GTValues.LV])
event.recipes.gtceu.chemical_reactor(`olive_oil_methanol_biodiesel`)
.inputFluids(Fluid.of('tfc:olive_oil', 4000), Fluid.of('gtceu:methanol', 1000))
.itemInputs('#forge:tiny_dusts/sodium_hydroxide')
.outputFluids(Fluid.of('gtceu:glycerol'), Fluid.of('gtceu:bio_diesel', 6000))
.duration(20 * 30)
.EUt(GTValues.VHA[GTValues.LV])
event.recipes.gtceu.chemical_reactor(`soybean_oil_ethanol_biodiesel`)
.inputFluids(Fluid.of('firmalife:soybean_oil', 4000), Fluid.of('gtceu:ethanol', 1000))
.itemInputs('#forge:tiny_dusts/sodium_hydroxide')
.outputFluids(Fluid.of('gtceu:glycerol'), Fluid.of('gtceu:bio_diesel', 6000))
.duration(20 * 30)
.EUt(GTValues.VHA[GTValues.LV])
event.recipes.gtceu.chemical_reactor(`soybean_oil_methanol_biodiesel`)
.inputFluids(Fluid.of('firmalife:soybean_oil', 4000), Fluid.of('gtceu:methanol', 1000))
.itemInputs('#forge:tiny_dusts/sodium_hydroxide')
.outputFluids(Fluid.of('gtceu:glycerol'), Fluid.of('gtceu:bio_diesel', 6000))
.duration(20 * 30)
.EUt(GTValues.VHA[GTValues.LV])
event.recipes.gtceu.extractor(`rapeseed_oil`)
.itemInputs('tfg:rapeseed_product')
.outputFluids(Fluid.of('gtceu:seed_oil', 600))
.duration(20 * 30)
.EUt(GTValues.VHA[GTValues.ULV])
event.recipes.gtceu.extractor(`sunflower_oil`)
.itemInputs('tfg:sunflower_product')
.outputFluids(Fluid.of('gtceu:seed_oil', 350))
.duration(20 * 30)
.EUt(GTValues.VHA[GTValues.ULV])
event.recipes.tfc.barrel_sealed(1000)
.inputs('tfg:rapeseed_product', Fluid.of('minecraft:water', 100))
.outputFluid(Fluid.of('gtceu:seed_oil', 250))
.id('tfg:barrel/rapeseed_to_oil')
event.recipes.tfc.barrel_sealed(1000)
.inputs('tfg:sunflower_product', Fluid.of('minecraft:water', 100))
.outputFluid(Fluid.of('gtceu:seed_oil', 120))
.id('tfg:barrel/sunflower_to_oil')
// Not-ender pearl stuff
event.recipes.gtceu.chemical_reactor('kaolinite')
.itemInputs('5x #tfg:aluminium_oxide', '2x #forge:dusts/silicon')
.inputFluids(Fluid.of('gtceu:distilled_water', 6000), Fluid.of('gtceu:chlorine', 8000))
.itemOutputs('17x tfc:powder/kaolinite')
.outputFluids(Fluid.of('gtceu:hydrochloric_acid', 8000))
.duration(20 * 10)
.EUt(GTValues.VA[GTValues.HV])
event.recipes.gtceu.chemical_reactor('kaolinite_ruby')
.itemInputs('6x #forge:dusts/ruby', '2x #forge:dusts/silicon')
.inputFluids(Fluid.of('gtceu:distilled_water', 6000), Fluid.of('gtceu:chlorine', 8000))
.itemOutputs('17x tfc:powder/kaolinite', '1x #forge:dusts/chromium')
.outputFluids(Fluid.of('gtceu:hydrochloric_acid', 8000))
.duration(20 * 10)
.EUt(GTValues.VA[GTValues.HV])
event.recipes.gtceu.pyrolyse_oven('vitrified_ender_dust')
.itemInputs('#forge:ender_pearls', '2x tfc:powder/kaolinite', '4x #forge:insulation_t1')
.inputFluids(Fluid.of('gtceu:nitrogen', 100))
.itemOutputs('tfg:vitrified_pearl')
.chancedOutput('gtceu:ash_dust', 2500, 0)
.duration(20 * 10)
.EUt(GTValues.VA[GTValues.HV])
event.recipes.gtceu.implosion_compressor('vitrified_ender_pearl_dynamite')
.itemInputs('4x #forge:dusts/vitrified_pearl', '2x gtceu:dynamite')
.itemOutputs('3x tfg:vitrified_pearl')
.chancedOutput('#forge:dusts/dark_ash', 2500, 0)
.duration(20)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.implosion_compressor('vitrified_ender_pearl_powderbarrel')
.itemInputs('4x #forge:dusts/vitrified_pearl', '8x gtceu:powderbarrel')
.itemOutputs('3x tfg:vitrified_pearl')
.chancedOutput('#forge:dusts/dark_ash', 2500, 0)
.duration(20)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.implosion_compressor('vitrified_ender_pearl_tnt')
.itemInputs('4x #forge:dusts/vitrified_pearl', '4x minecraft:tnt')
.itemOutputs('3x tfg:vitrified_pearl')
.chancedOutput('#forge:dusts/dark_ash', 2500, 0)
.duration(20)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.implosion_compressor('vitrified_ender_pearl_itnt')
.itemInputs('4x #forge:dusts/vitrified_pearl', 'gtceu:industrial_tnt')
.itemOutputs('3x tfg:vitrified_pearl')
.chancedOutput('#forge:dusts/dark_ash', 2500, 0)
.duration(20)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('vitrified_ender_pearl')
.itemInputs('tfg:vitrified_pearl')
.itemOutputs('#forge:dusts/vitrified_pearl')
.duration(40)
.EUt(GTValues.VA[GTValues.ULV])
// Have to redo all these because .replaceInput doesn't work for some reason!!
event.shaped('gtceu:mv_field_generator', [
'ABA',
'CDC',
'ABA'
], {
A: '#forge:quadruple_wires/magnesium_diboride',
B: '#forge:plates/aluminium',
C: '#gtceu:circuits/mv',
D: 'tfg:vitrified_pearl'
}).id('gtceu:shaped/field_generator_mv')
event.recipes.gtceu.assembler('field_generator_mv')
.itemInputs('tfg:vitrified_pearl', '2x #forge:plates/aluminium', '2x #gtceu:circuits/mv', '4x #forge:quadruple_wires/magnesium_diboride')
.itemOutputs('gtceu:mv_field_generator')
.duration(100)
.EUt(30)
event.shaped('gtceu:hv_emitter', [
'ABC',
'BDB',
'CBA'
], {
A: '#forge:single_cables/gold',
B: '#forge:rods/chromium',
C: '#gtceu:circuits/hv',
D: 'tfg:vitrified_pearl'
}).id('gtceu:shaped/emitter_hv')
event.recipes.gtceu.assembler('emitter_hv')
.itemInputs('tfg:vitrified_pearl', '4x #forge:rods/chromium', '2x #gtceu:circuits/hv', '2x #forge:single_cables/gold')
.itemOutputs('gtceu:hv_emitter')
.circuit(1)
.duration(100)
.EUt(30)
event.shaped('gtceu:hv_sensor', [
'A B',
'AC ',
'DAA'
], {
A: '#forge:plates/stainless_steel',
B: 'tfg:vitrified_pearl',
C: '#forge:rods/chromium',
D: '#gtceu:circuits/hv',
}).id('gtceu:shaped/sensor_hv')
event.recipes.gtceu.assembler('sensor_hv')
.itemInputs('tfg:vitrified_pearl', '#forge:rods/chromium', '#gtceu:circuits/hv', '4x #forge:plates/stainless_steel')
.itemOutputs('gtceu:hv_sensor')
.duration(100)
.EUt(30)
// Temporary
event.recipes.gtceu.chemical_bath('quantum_eye')
.itemInputs('tfg:vitrified_pearl')
.inputFluids(Fluid.of('gtceu:radon', 250))
.itemOutputs('gtceu:quantum_eye')
.duration(24 * 20)
.EUt(480)
}

View file

@ -222,6 +222,55 @@ function registerTFGMoldRecipes(event) {
h: '#forge:tools/hammers'
})
event.shaped('tfg:fish_hook_extruder_mold', [
'f ',
' S ',
' h'
], {
S: 'gtceu:empty_mold',
f: '#forge:tools/files',
h: '#forge:tools/hammers'
})
event.shaped('tfg:whisk_extruder_mold', [
'f h',
' S ',
' '
], {
S: 'gtceu:empty_mold',
f: '#forge:tools/files',
h: '#forge:tools/hammers'
})
event.shaped('tfg:screwdriver_tip_extruder_mold', [
'f ',
' S ',
' h '
], {
S: 'gtceu:empty_mold',
f: '#forge:tools/files',
h: '#forge:tools/hammers'
})
event.shaped('tfg:wrench_tip_extruder_mold', [
'f ',
'hS ',
' '
], {
S: 'gtceu:empty_mold',
f: '#forge:tools/files',
h: '#forge:tools/hammers'
})
event.shaped('tfg:wire_cutter_head_extruder_mold', [
' ',
'hS ',
'f '
], {
S: 'gtceu:empty_mold',
f: '#forge:tools/files',
h: '#forge:tools/hammers'
})
let steelIngots = ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 4);
let steelDusts = ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 4);
@ -291,4 +340,4 @@ function registerTFGMoldRecipes(event) {
// .id(`tfg:shapeless/vessel_cleaning/${vessel.replace(":", "/")}`);
// });
}
}

View file

@ -110,8 +110,9 @@ function registerTFGPapermakingRecipes(event) {
//Beat thermochemically treated hardwood dust into soaked unrefined paper
event.recipes.tfc.anvil('tfg:soaked_unrefined_paper', 'gtceu:thermochemically_treated_hardwood_dust', ['hit_last', 'hit_last', 'hit_last'])
.id('tfg:anvil/soaked_unrefined_paper')
event.recipes.createDeploying(Item.of('tfg:soaked_unrefined_paper').withChance(0.8), ['gtceu:thermochemically_treated_hardwood_dust', '#forge:tools/hammers'])
.id('tfg:pressing/soaked_unrefined_paper')
event.recipes.greate.pressing(Item.of('tfg:soaked_unrefined_paper'), 'gtceu:thermochemically_treated_hardwood_dust')
.recipeTier(0)
.id('greate:pressing/soaked_unrefined_paper')
event.custom({
type: "firmalife:stomping",
ingredient: {

View file

@ -0,0 +1,379 @@
// priority: 0
function registerTFGRecyclingRecipes(event) {
//MV Refrigerator
event.recipes.gtceu.macerator('tfg:macerator/recycling/mv_food_refrigerator')
.itemInputs('tfg:mv_food_refrigerator')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 5),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Bronze, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Cupronickel, 4),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Polyethylene, 2)
)
.duration(GTMaterials.Aluminium.getMass() * 5)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('tfg:arc_furnace/recycling/mv_food_refrigerator')
.itemInputs('tfg:mv_food_refrigerator')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 5),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Bronze, 6),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Cupronickel, 4),
ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Ash, 2)
)
.duration(GTMaterials.Aluminium.getMass() * 5)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
//HV Refrigerator
event.recipes.gtceu.macerator('tfg:macerator/recycling/hv_food_refrigerator')
.itemInputs('tfg:hv_food_refrigerator')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 8),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 7),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Electrum, 4),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Polytetrafluoroethylene, 4)
)
.duration(GTMaterials.StainlessSteel.getMass() * 8)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('tfg:arc_furnace/recycling/hv_food_refrigerator')
.itemInputs('tfg:hv_food_refrigerator')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 8),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 7),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Electrum, 4),
ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Ash, 4)
)
.duration(GTMaterials.StainlessSteel.getMass() * 8)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
//EV Refrigerator
event.recipes.gtceu.macerator('tfg:macerator/recycling/ev_food_refrigerator')
.itemInputs('tfg:ev_food_refrigerator')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Titanium, 8),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 10),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Kanthal, 4),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 3)
)
.duration(GTMaterials.Titanium.getMass() * 8)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('tfg:arc_furnace/recycling/ev_food_refrigerator')
.itemInputs('tfg:ev_food_refrigerator')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Titanium, 8),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 10),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Kanthal, 4),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 3)
)
.duration(GTMaterials.Titanium.getMass() * 8)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
//LV Food Processor
event.recipes.gtceu.macerator('tfg:macerator/recycling/lv_food_processor')
.itemInputs('tfg:lv_food_processor')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 7),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Tin, 4),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Bronze, 2),
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('tfg:arc_furnace/recycling/lv_food_processor')
.itemInputs('tfg:lv_food_processor')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 7),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Tin, 4),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Bronze, 2),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.WroughtIron, 2)
)
.duration(GTMaterials.Steel.getMass() * 7)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
//MV Food Processor
event.recipes.gtceu.macerator('tfg:macerator/recycling/mv_food_processor')
.itemInputs('tfg:mv_food_processor')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Cupronickel, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Copper, 3),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.SiliconeRubber, 3)
)
.duration(GTMaterials.Aluminium.getMass() * 6)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('tfg:arc_furnace/recycling/mv_food_processor')
.itemInputs('tfg:mv_food_processor')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 6),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Cupronickel, 6),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Copper, 3),
ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Ash, 3)
)
.duration(GTMaterials.Aluminium.getMass() * 6)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
//HV Food Processor
event.recipes.gtceu.macerator('tfg:macerator/recycling/hv_food_processor')
.itemInputs('tfg:hv_food_processor')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 7),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Electrum, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.SiliconeRubber, 3)
)
.duration(GTMaterials.StainlessSteel.getMass() * 7)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('tfg:arc_furnace/recycling/hv_food_processor')
.itemInputs('tfg:hv_food_processor')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 7),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Electrum, 6),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 6),
ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Ash, 3)
)
.duration(GTMaterials.StainlessSteel.getMass() * 7)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
//EV Food Processor
event.recipes.gtceu.macerator('tfg:macerator/recycling/ev_food_processor')
.itemInputs('tfg:ev_food_processor')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Titanium, 9),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Kanthal, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 4),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 4)
)
.duration(GTMaterials.Titanium.getMass() * 9)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('tfg:arc_furnace/recycling/ev_food_processor')
.itemInputs('tfg:ev_food_processor')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Titanium, 9),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Kanthal, 6),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 4),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 4)
)
.duration(GTMaterials.Titanium.getMass() * 9)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
//LV Food Oven
event.recipes.gtceu.macerator('tfg:macerator/recycling/lv_food_oven')
.itemInputs('tfg:lv_food_oven')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 8),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Tin, 4),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Iron, 4),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Rubber, 7)
)
.duration(GTMaterials.Steel.getMass() * 8)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('tfg:arc_furnace/recycling/lv_food_oven')
.itemInputs('tfg:lv_food_oven')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 8),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Tin, 4),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Iron, 4),
ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Ash, 7)
)
.duration(GTMaterials.Steel.getMass() * 8)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
//MV Food Oven
event.recipes.gtceu.macerator('tfg:macerator/recycling/mv_food_oven')
.itemInputs('tfg:mv_food_oven')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 9),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Cupronickel, 8),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Copper, 4),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 1)
)
.duration(GTMaterials.Aluminium.getMass() * 9)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('tfg:arc_furnace/recycling/mv_food_oven')
.itemInputs('tfg:mv_food_oven')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 9),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Cupronickel, 8),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Copper, 4),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 1)
)
.duration(GTMaterials.Aluminium.getMass() * 9)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
//HV Food Oven
event.recipes.gtceu.macerator('tfg:macerator/recycling/hv_food_oven')
.itemInputs('tfg:hv_food_oven')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 8),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Electrum, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Kanthal, 2),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Silver, 3)
)
.duration(GTMaterials.StainlessSteel.getMass() * 8)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('tfg:arc_furnace/recycling/hv_food_oven')
.itemInputs('tfg:hv_food_oven')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 8),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Electrum, 6),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Kanthal, 2),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Silver, 3)
)
.duration(GTMaterials.StainlessSteel.getMass() * 8)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
//EV Food Oven
event.recipes.gtceu.macerator('tfg:macerator/recycling/ev_food_oven')
.itemInputs('tfg:ev_food_oven')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Titanium, 10),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 5),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Kanthal, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Nichrome, 2)
)
.duration(GTMaterials.Titanium.getMass() * 10)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('tfg:arc_furnace/recycling/ev_food_oven')
.itemInputs('tfg:ev_food_oven')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Titanium, 10),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 5),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Kanthal, 6),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Nichrome, 2)
)
.duration(GTMaterials.Titanium.getMass() * 10)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
//LV Food Oven
event.recipes.gtceu.macerator('tfg:macerator/recycling/lv_aqueous_accumulator')
.itemInputs('tfg:lv_aqueous_accumulator')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 4),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Bronze, 2),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Tin, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Rubber, 2)
)
.duration(GTMaterials.Steel.getMass() * 4)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('tfg:arc_furnace/recycling/lv_aqueous_accumulator')
.itemInputs('tfg:lv_aqueous_accumulator')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 4),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Bronze, 2),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Tin, 6),
ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Ash, 2)
)
.duration(GTMaterials.Steel.getMass() * 4)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
//MV Food Oven
event.recipes.gtceu.macerator('tfg:macerator/recycling/mv_aqueous_accumulator')
.itemInputs('tfg:mv_aqueous_accumulator')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 5),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Bronze, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 2),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Cupronickel, 2)
)
.duration(GTMaterials.Aluminium.getMass() * 5)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('tfg:arc_furnace/recycling/mv_aqueous_accumulator')
.itemInputs('tfg:mv_aqueous_accumulator')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 5),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Bronze, 6),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 2),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Cupronickel, 2)
)
.duration(GTMaterials.Aluminium.getMass() * 5)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
//HV Food Oven
event.recipes.gtceu.macerator('tfg:macerator/recycling/hv_aqueous_accumulator')
.itemInputs('tfg:hv_aqueous_accumulator')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Electrum, 2),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Gold, 1)
)
.duration(GTMaterials.StainlessSteel.getMass() * 6)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('tfg:arc_furnace/recycling/hv_aqueous_accumulator')
.itemInputs('tfg:hv_aqueous_accumulator')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 6),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Electrum, 2),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 6),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Gold, 1)
)
.duration(GTMaterials.StainlessSteel.getMass() * 6)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
//EV Food Oven
event.recipes.gtceu.macerator('tfg:macerator/recycling/ev_aqueous_accumulator')
.itemInputs('tfg:ev_aqueous_accumulator')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Titanium, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Kanthal, 2),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 1)
)
.duration(GTMaterials.Titanium.getMass() * 6)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('tfg:arc_furnace/recycling/ev_aqueous_accumulator')
.itemInputs('tfg:ev_aqueous_accumulator')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Titanium, 6),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 6),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Kanthal, 2),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 1)
)
.duration(GTMaterials.Titanium.getMass() * 6)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
}

View file

@ -10,7 +10,20 @@ function registerTFGRockRecipes(event) {
{ loose: 'tfg:loose/deepslate', block: 'minecraft:cobbled_deepslate' },
{ loose: 'beneath:blackstone_pebble', block: 'minecraft:blackstone' },
{ loose: 'tfg:brick/deepslate', block: '4x minecraft:deepslate_bricks' },
{ loose: 'tfg:loose/dripstone', block: 'minecraft:dripstone_block' }
{ loose: 'tfg:loose/dripstone', block: 'minecraft:dripstone_block' },
{ loose: 'tfg:loose/moon_stone', block: 'ad_astra:moon_cobblestone' },
{ loose: 'tfg:brick/moon_stone', block: '4x ad_astra:moon_stone_bricks' },
{ loose: 'tfg:loose/moon_deepslate', block: 'ad_astra:moon_deepslate' },
{ loose: 'tfg:loose/mars_stone', block: 'ad_astra:mars_cobblestone' },
{ loose: 'tfg:brick/mars_stone', block: '4x ad_astra:mars_stone_bricks' },
{ loose: 'tfg:loose/venus_stone', block: 'ad_astra:venus_cobblestone' },
{ loose: 'tfg:brick/venus_stone', block: '4x ad_astra:venus_stone_bricks' },
{ loose: 'tfg:loose/mercury_stone', block: 'ad_astra:mercury_cobblestone' },
{ loose: 'tfg:brick/mercury_stone', block: '4x ad_astra:mercury_stone_bricks' },
{ loose: 'tfg:loose/glacio_stone', block: 'ad_astra:glacio_cobblestone' },
{ loose: 'tfg:brick/glacio_stone', block: '4x ad_astra:glacio_stone_bricks' },
{ loose: 'tfg:brick/permafrost', block: '4x ad_astra:permafrost_bricks' },
{ loose: 'minecraft:popped_chorus_fruit', block: '4x minecraft:purpur_block' }
]
GLUEING_TOGETHER.forEach(x => {
@ -35,7 +48,13 @@ function registerTFGRockRecipes(event) {
// loose to bricks
const LOOSE_TO_BRICKS = [
{ loose: 'tfg:loose/deepslate', brick: 'tfg:brick/deepslate' }
{ loose: 'tfg:loose/deepslate', brick: 'tfg:brick/deepslate' },
{ loose: 'tfg:loose/moon_stone', brick: 'tfg:brick/moon_stone' },
{ loose: 'tfg:loose/mars_stone', brick: 'tfg:brick/mars_stone' },
{ loose: 'tfg:loose/venus_stone', brick: 'tfg:brick/venus_stone' },
{ loose: 'tfg:loose/mercury_stone', brick: 'tfg:brick/mercury_stone' },
{ loose: 'tfg:loose/glacio_stone', brick: 'tfg:brick/glacio_stone' },
{ loose: 'tfg:loose/permafrost', brick: 'tfg:brick/permafrost' }
]
LOOSE_TO_BRICKS.forEach(x => {
@ -59,7 +78,26 @@ function registerTFGRockRecipes(event) {
{ raw: 'minecraft:deepslate_tiles', polished: 'minecraft:chiseled_deepslate' },
{ raw: 'minecraft:polished_blackstone_bricks', polished: 'minecraft:chiseled_polished_blackstone' },
{ raw: 'minecraft:basalt', polished: 'minecraft:smooth_basalt' },
{ raw: 'minecraft:smooth_basalt', polished: 'minecraft:polished_basalt' }
{ raw: 'minecraft:smooth_basalt', polished: 'minecraft:polished_basalt' },
{ raw: 'ad_astra:moon_stone', polished: 'ad_astra:polished_moon_stone' },
{ raw: 'ad_astra:moon_stone_bricks', polished: 'ad_astra:chiseled_moon_stone_bricks' },
{ raw: 'ad_astra:mars_stone', polished: 'ad_astra:polished_mars_stone' },
{ raw: 'ad_astra:mars_stone_bricks', polished: 'ad_astra:chiseled_mars_stone_bricks' },
{ raw: 'ad_astra:venus_stone', polished: 'ad_astra:polished_venus_stone' },
{ raw: 'ad_astra:venus_stone_bricks', polished: 'ad_astra:chiseled_venus_stone_bricks' },
{ raw: 'ad_astra:venus_sandstone', polished: 'ad_astra:venus_sandstone_bricks' },
{ raw: 'ad_astra:mercury_stone', polished: 'ad_astra:polished_mercury_stone' },
{ raw: 'ad_astra:mercury_stone_bricks', polished: 'ad_astra:chiseled_mercury_stone_bricks' },
{ raw: 'ad_astra:glacio_stone', polished: 'ad_astra:polished_glacio_stone' },
{ raw: 'ad_astra:glacio_stone_bricks', polished: 'ad_astra:chiseled_glacio_stone_bricks' },
{ raw: 'ad_astra:conglomerate', polished: 'ad_astra:polished_conglomerate' },
{ raw: 'ad_astra:permafrost', polished: 'ad_astra:polished_permafrost' },
{ raw: 'ad_astra:permafrost_bricks', polished: 'ad_astra:chiseled_permafrost_bricks' },
{ raw: 'ad_astra:chiseled_permafrost_bricks', polished: 'ad_astra:permafrost_tiles' },
{ raw: 'ae2:sky_stone_block', polished: 'ae2:smooth_sky_stone_block' },
{ raw: 'ae2:smooth_sky_stone_block', polished: 'ae2:sky_stone_brick' },
{ raw: 'ae2:sky_stone_brick', polished: 'ae2:sky_stone_small_brick' },
{ raw: 'gtceu:certus_quartz_block', polished: 'ae2:cut_quartz_block' },
]
RAW_TO_POLISHED.forEach(x => {
@ -87,7 +125,14 @@ function registerTFGRockRecipes(event) {
const CRACKING = [
{ raw: 'minecraft:deepslate_bricks', cracked: 'minecraft:cracked_deepslate_bricks' },
{ raw: 'minecraft:deepslate_tiles', cracked: 'minecraft:cracked_deepslate_tiles' }
{ raw: 'minecraft:deepslate_tiles', cracked: 'minecraft:cracked_deepslate_tiles' },
{ raw: 'ad_astra:moon_stone_bricks', cracked: 'ad_astra:cracked_moon_stone_bricks' },
{ raw: 'ad_astra:mars_stone_bricks', cracked: 'ad_astra:cracked_mars_stone_bricks' },
{ raw: 'ad_astra:venus_stone_bricks', cracked: 'ad_astra:cracked_venus_stone_bricks' },
{ raw: 'ad_astra:venus_sandstone_bricks', cracked: 'ad_astra:cracked_venus_sandstone_bricks' },
{ raw: 'ad_astra:mercury_stone_bricks', cracked: 'ad_astra:cracked_mercury_stone_bricks' },
{ raw: 'ad_astra:glacio_stone_bricks', cracked: 'ad_astra:cracked_glacio_stone_bricks' },
{ raw: 'ad_astra:permafrost_bricks', cracked: 'ad_astra:cracked_permafrost_bricks' }
]
CRACKING.forEach(x => {
@ -100,6 +145,10 @@ function registerTFGRockRecipes(event) {
.itemOutputs(x.cracked)
.duration(12)
.EUt(8)
event.recipes.greate.pressing(x.cracked, x.raw)
.recipeTier(1)
.id(`greate:pressing/${x.raw}_to_${x.cracked}`.replace(/:/g, '_'))
})
// forge hammer
@ -109,7 +158,27 @@ function registerTFGRockRecipes(event) {
{ raw: 'minecraft:cobbled_deepslate', hammered: 'tfc:sand/black' },
{ raw: 'minecraft:blackstone', hammered: 'tfc:sand/black' },
{ raw: 'beneath:crackrack', hammered: 'tfc:sand/pink' },
{ raw: 'minecraft:dripstone_block', hammered: 'tfc:sand/brown' }
{ raw: 'minecraft:dripstone_block', hammered: 'tfc:sand/brown' },
{ raw: 'ad_astra:moon_stone', hammered: 'ad_astra:moon_cobblestone' },
{ raw: 'tfg:rock/hardened_moon_stone', hammered: 'ad_astra:moon_cobblestone' },
{ raw: 'ad_astra:moon_cobblestone', hammered: 'ad_astra:moon_sand' },
{ raw: 'ad_astra:moon_deepslate', hammered: 'ad_astra:moon_sand' },
{ raw: 'tfg:rock/hardened_moon_deepslate', hammered: 'ad_astra:moon_sand' },
{ raw: 'ad_astra:mars_stone', hammered: 'ad_astra:mars_cobblestone' },
{ raw: 'tfg:rock/hardened_mars_stone', hammered: 'ad_astra:mars_cobblestone' },
{ raw: 'ad_astra:mars_cobblestone', hammered: 'ad_astra:mars_sand' },
{ raw: 'ad_astra:venus_stone', hammered: 'ad_astra:venus_cobblestone' },
{ raw: 'tfg:rock/hardened_venus_stone', hammered: 'ad_astra:venus_cobblestone' },
{ raw: 'ad_astra:venus_cobblestone', hammered: 'ad_astra:venus_sand' },,
{ raw: 'ad_astra:mercury_stone', hammered: 'ad_astra:mercury_cobblestone' },
{ raw: 'tfg:rock/hardened_mercury_stone', hammered: 'ad_astra:mercury_cobblestone' },
{ raw: 'ad_astra:mercury_cobblestone', hammered: 'tfc:sand/red' },
{ raw: 'ad_astra:glacio_stone', hammered: 'ad_astra:glacio_cobblestone' },
{ raw: 'tfg:rock/hardened_glacio_stone', hammered: 'ad_astra:glacio_cobblestone' },
{ raw: 'ad_astra:glacio_cobblestone', hammered: 'tfc:sand/white' },
{ raw: 'ad_astra:conglomerate', hammered: 'tfc:rock/gravel/conglomerate' },
{ raw: 'ad_astra:permafrost', hammered: 'tfg:loose/permafrost' }
]
HAMMERING.forEach(x => {
@ -118,39 +187,48 @@ function registerTFGRockRecipes(event) {
.itemOutputs(x.hammered)
.duration(12)
.EUt(8)
event.recipes.greate.pressing(x.hammered, x.raw)
.recipeTier(1)
.id(`greate:pressing/${x.raw}_to_${x.hammered}`.replace(/:/g, '_'))
})
// slabs, stairs, walls
const CUTTER = [
// #region Nether
{
raw: 'minecraft:cobbled_deepslate',
stair: 'minecraft:cobbled_deepslate_stairs',
slab: 'minecraft:cobbled_deepslate_slab',
wall: 'minecraft:cobbled_deepslate_wall',
dust: 'gtceu:deepslate_dust',
loose: 'tfg:loose/deepslate'
loose: 'tfg:loose/deepslate',
stonecutting: false
},
{
raw: 'minecraft:polished_deepslate',
stair: 'minecraft:polished_deepslate_stairs',
slab: 'minecraft:polished_deepslate_slab',
wall: 'minecraft:polished_deepslate_wall',
dust: 'gtceu:deepslate_dust'
dust: 'gtceu:deepslate_dust',
stonecutting: false
},
{
raw: 'minecraft:deepslate_bricks',
stair: 'minecraft:deepslate_brick_stairs',
slab: 'minecraft:deepslate_brick_slab',
wall: 'minecraft:deepslate_brick_wall',
dust: 'gtceu:deepslate_dust'
dust: 'gtceu:deepslate_dust',
stonecutting: false
},
{
raw: 'minecraft:deepslate_tiles',
stair: 'minecraft:deepslate_tile_stairs',
slab: 'minecraft:deepslate_tile_slab',
wall: 'minecraft:deepslate_tile_wall',
dust: 'gtceu:deepslate_dust'
dust: 'gtceu:deepslate_dust',
stonecutting: false
},
{
raw: 'minecraft:blackstone',
@ -158,34 +236,307 @@ function registerTFGRockRecipes(event) {
slab: 'minecraft:blackstone_slab',
wall: 'minecraft:blackstone_wall',
dust: 'gtceu:blackstone_dust',
loose: 'beneath:blackstone_pebble'
loose: 'beneath:blackstone_pebble',
stonecutting: false
},
{
raw: 'minecraft:polished_blackstone',
stair: 'minecraft:polished_blackstone_stairs',
slab: 'minecraft:polished_blackstone_slab',
wall: 'minecraft:polished_blackstone_wall',
dust: 'gtceu:blackstone_dust'
dust: 'gtceu:blackstone_dust',
stonecutting: false
},
{
raw: 'minecraft:polished_blackstone_bricks',
stair: 'minecraft:polished_blackstone_brick_stairs',
slab: 'minecraft:polished_blackstone_brick_slab',
wall: 'minecraft:polished_blackstone_brick_wall',
dust: 'gtceu:blackstone_dust'
dust: 'gtceu:blackstone_dust',
stonecutting: false
},
// #endregion
// #region Space
{
raw: 'ad_astra:moon_cobblestone',
stair: 'ad_astra:moon_cobblestone_stairs',
slab: 'ad_astra:moon_cobblestone_slab',
dust: 'tfg:moon_stone_dust',
loose: 'tfg:loose/moon_stone',
stonecutting: true
},
{
raw: 'ad_astra:mars_cobblestone',
stair: 'ad_astra:mars_cobblestone_stairs',
slab: 'ad_astra:mars_cobblestone_slab',
dust: 'tfg:mars_stone_dust',
loose: 'tfg:loose/mars_stone',
stonecutting: true
},
{
raw: 'ad_astra:venus_cobblestone',
stair: 'ad_astra:venus_cobblestone_stairs',
slab: 'ad_astra:venus_cobblestone_slab',
dust: 'tfg:venus_stone_dust',
loose: 'tfg:loose/venus_stone',
stonecutting: true
},
{
raw: 'ad_astra:mercury_cobblestone',
stair: 'ad_astra:mercury_cobblestone_stairs',
slab: 'ad_astra:mercury_cobblestone_slab',
dust: 'tfg:mercury_stone_dust',
loose: 'tfg:loose/mercury_stone',
stonecutting: true
},
{
raw: 'ad_astra:glacio_cobblestone',
stair: 'ad_astra:glacio_cobblestone_stairs',
slab: 'ad_astra:glacio_cobblestone_slab',
dust: 'tfg:glacio_stone_dust',
loose: 'tfg:loose/glacio_stone',
stonecutting: true
},
{
raw: 'ad_astra:moon_stone',
stair: 'ad_astra:moon_stone_stairs',
slab: 'ad_astra:moon_stone_slab',
dust: 'tfg:moon_stone_dust',
stonecutting: true
},
{
raw: 'ad_astra:mars_stone',
stair: 'ad_astra:mars_stone_stairs',
slab: 'ad_astra:mars_stone_slab',
dust: 'tfg:mars_stone_dust',
stonecutting: true
},
{
raw: 'ad_astra:venus_stone',
stair: 'ad_astra:venus_stone_stairs',
slab: 'ad_astra:venus_stone_slab',
dust: 'tfg:venus_stone_dust',
stonecutting: true
},
{
raw: 'ad_astra:mercury_stone',
stair: 'ad_astra:mercury_stone_stairs',
slab: 'ad_astra:mercury_stone_slab',
dust: 'tfg:mercury_stone_dust',
stonecutting: true
},
{
raw: 'ad_astra:glacio_stone',
stair: 'ad_astra:glacio_stone_stairs',
slab: 'ad_astra:glacio_stone_slab',
dust: 'tfg:glacio_stone_dust',
stonecutting: true
},
{
raw: 'ad_astra:venus_sandstone_bricks',
stair: 'ad_astra:venus_sandstone_brick_stairs',
slab: 'ad_astra:venus_sandstone_brick_slab',
dust: '4x gtceu:venus_sand',
stonecutting: true
},
{
raw: 'ad_astra:moon_stone_bricks',
stair: 'ad_astra:moon_stone_brick_stairs',
slab: 'ad_astra:moon_stone_brick_slab',
wall: 'ad_astra:moon_stone_brick_wall',
dust: 'tfg:moon_stone_dust',
stonecutting: true
},
{
raw: 'ad_astra:mars_stone_bricks',
stair: 'ad_astra:mars_stone_brick_stairs',
slab: 'ad_astra:mars_stone_brick_slab',
wall: 'ad_astra:mars_stone_brick_wall',
dust: 'tfg:mars_stone_dust',
stonecutting: true
},
{
raw: 'ad_astra:venus_stone_bricks',
stair: 'ad_astra:venus_stone_brick_stairs',
slab: 'ad_astra:venus_stone_brick_slab',
wall: 'ad_astra:venus_stone_brick_wall',
dust: 'tfg:venus_stone_dust',
stonecutting: true
},
{
raw: 'ad_astra:mercury_stone_bricks',
stair: 'ad_astra:mercury_stone_brick_stairs',
slab: 'ad_astra:mercury_stone_brick_slab',
wall: 'ad_astra:mercury_stone_brick_wall',
dust: 'tfg:mercury_stone_dust',
stonecutting: true
},
{
raw: 'ad_astra:glacio_stone_bricks',
stair: 'ad_astra:glacio_stone_brick_stairs',
slab: 'ad_astra:glacio_stone_brick_slab',
wall: 'ad_astra:glacio_stone_brick_wall',
dust: 'tfg:glacio_stone_dust',
stonecutting: true
},
{
raw: 'ad_astra:permafrost_bricks',
stair: 'ad_astra:permafrost_brick_stairs',
slab: 'ad_astra:permafrost_brick_slab',
wall: 'ad_astra:permafrost_brick_wall',
dust: 'gtceu:ice_dust',
stonecutting: true
},
{
raw: 'ad_astra:chiseled_moon_stone_bricks',
stair: 'ad_astra:chiseled_moon_stone_stairs',
slab: 'ad_astra:chiseled_moon_stone_slab',
dust: 'tfg:moon_stone_dust',
stonecutting: true
},
{
raw: 'ad_astra:chiseled_mars_stone_bricks',
stair: 'ad_astra:chiseled_mars_stone_stairs',
slab: 'ad_astra:chiseled_mars_stone_slab',
dust: 'tfg:mars_stone_dust',
stonecutting: true
},
{
raw: 'ad_astra:chiseled_venus_stone_bricks',
stair: 'ad_astra:chiseled_venus_stone_stairs',
slab: 'ad_astra:chiseled_venus_stone_slab',
dust: 'tfg:venus_stone_dust',
stonecutting: true
},
{
raw: 'ad_astra:chiseled_mercury_stone_bricks',
stair: 'ad_astra:chiseled_mercury_stone_stairs',
slab: 'ad_astra:chiseled_mercury_stone_slab',
dust: 'tfg:mercury_stone_dust',
stonecutting: true
},
{
raw: 'ad_astra:chiseled_glacio_stone_bricks',
stair: 'ad_astra:chiseled_glacio_stone_stairs',
slab: 'ad_astra:chiseled_glacio_stone_slab',
dust: 'tfg:glacio_stone_dust',
stonecutting: true
},
{
raw: 'ad_astra:chiseled_permafrost_bricks',
stair: 'ad_astra:chiseled_permafrost_brick_stairs',
slab: 'ad_astra:chiseled_permafrost_brick_slab',
dust: 'gtceu:ice_dust',
stonecutting: true
},
{
raw: 'ad_astra:polished_moon_stone',
stair: 'ad_astra:polished_moon_stone_stairs',
slab: 'ad_astra:polished_moon_stone_slab',
dust: 'tfg:moon_stone_dust',
stonecutting: true
},
{
raw: 'ad_astra:polished_mars_stone',
stair: 'ad_astra:polished_mars_stone_stairs',
slab: 'ad_astra:polished_mars_stone_slab',
dust: 'tfg:mars_stone_dust',
stonecutting: true
},
{
raw: 'ad_astra:polished_venus_stone',
stair: 'ad_astra:polished_venus_stone_stairs',
slab: 'ad_astra:polished_venus_stone_slab',
dust: 'tfg:venus_stone_dust',
stonecutting: true
},
{
raw: 'ad_astra:polished_mercury_stone',
stair: 'ad_astra:polished_mercury_stone_stairs',
slab: 'ad_astra:polished_mercury_stone_slab',
dust: 'tfg:mercury_stone_dust',
stonecutting: true
},
{
raw: 'ad_astra:polished_glacio_stone',
stair: 'ad_astra:polished_glacio_stone_stairs',
slab: 'ad_astra:polished_glacio_stone_slab',
dust: 'tfg:glacio_stone_dust',
stonecutting: true
},
{
raw: 'ad_astra:polished_permafrost',
stair: 'ad_astra:polished_permafrost_stairs',
slab: 'ad_astra:polished_permafrost_slab',
dust: 'gtceu:ice_dust',
stonecutting: true
},
{
raw: 'ae2:sky_stone_block',
stair: 'ae2:sky_stone_stairs',
slab: 'ae2:sky_stone_slab',
wall: 'ae2:sky_stone_wall',
dust: 'ae2:sky_dust',
stonecutting: true
},
{
raw: 'ae2:smooth_sky_stone_block',
stair: 'ae2:smooth_sky_stone_stairs',
slab: 'ae2:smooth_sky_stone_slab',
wall: 'ae2:smooth_sky_stone_wall',
dust: 'ae2:sky_dust',
stonecutting: true
},
{
raw: 'ae2:sky_stone_brick',
stair: 'ae2:sky_stone_brick_stairs',
slab: 'ae2:sky_stone_brick_slab',
wall: 'ae2:sky_stone_brick_wall',
dust: 'ae2:sky_dust',
stonecutting: true
},
{
raw: 'ae2:sky_stone_small_brick',
stair: 'ae2:sky_stone_small_brick_stairs',
slab: 'ae2:sky_stone_small_brick_slab',
wall: 'ae2:sky_stone_small_brick_wall',
dust: 'ae2:sky_dust',
stonecutting: true
},
{
raw: 'ae2:fluix_block',
stair: 'ae2:fluix_stairs',
slab: 'ae2:fluix_slab',
wall: 'ae2:fluix_wall',
dust: 'ae2:fluix_dust',
stonecutting: true
},
{
raw: 'minecraft:purpur_block',
stair: 'minecraft:purpur_stairs',
slab: 'minecraft:purpur_slab',
dust: null,
stonecutting: true
}
// #endregion
]
CUTTER.forEach(x => {
if ("stair" in x) {
event.recipes.tfc.chisel(x.stair, x.raw, 'stair')
event.recipes.gtceu.macerator(`macerate_${x.stair}`.replace(/:/g, '_'))
.itemInputs(x.stair)
.itemOutputs(x.dust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
if (x.stonecutting) {
event.stonecutting(x.stair, x.raw).id(`${x.raw}_to_${x.stair}`.replace(/:/g, '_'))
}
if (x.dust != null) {
event.recipes.gtceu.macerator(`macerate_${x.stair}`.replace(/:/g, '_'))
.itemInputs(x.stair)
.itemOutputs(x.dust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
}
if ("loose" in x) {
event.shapeless(`3x ${x.loose}`, [x.stair])
@ -193,27 +544,39 @@ function registerTFGRockRecipes(event) {
}
if ("slab" in x) {
event.recipes.tfc.chisel(x.slab, x.raw, 'slab').extraDrop(x.slab)
if (x.stonecutting) {
event.stonecutting(`2x ${x.slab}`, x.raw).id(`${x.raw}_to_${x.slab}`.replace(/:/g, '_'))
}
event.recipes.gtceu.macerator(`macerate_${x.slab}`.replace(/:/g, '_'))
.itemInputs(`2x ${x.slab}`)
.itemOutputs(x.dust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
if (x.dust != null) {
event.recipes.gtceu.macerator(`macerate_${x.slab}`.replace(/:/g, '_'))
.itemInputs(`2x ${x.slab}`)
.itemOutputs(x.dust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
}
if ("loose" in x) {
event.shapeless(`2x ${x.loose}`, [x.slab])
}
}
if ("wall" in x) {
event.recipes.tfc.chisel(x.wall, x.slab, 'smooth')
event.recipes.tfc.chisel(x.wall, x.raw, 'smooth')
if (x.stonecutting) {
event.stonecutting(x.wall, x.raw).id(`${x.raw}_to_${x.wall}`.replace(/:/g, '_'))
}
event.recipes.gtceu.macerator(`macerate_${x.wall}`.replace(/:/g, '_'))
.itemInputs(x.wall)
.itemOutputs(x.dust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
if (x.dust != null) {
event.recipes.gtceu.macerator(`macerate_${x.wall}`.replace(/:/g, '_'))
.itemInputs(x.wall)
.itemOutputs(x.dust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
}
}
if ("loose" in x) {
@ -221,9 +584,42 @@ function registerTFGRockRecipes(event) {
}
})
// pillars
const PILLARS = [
{ raw: 'ad_astra:moon_stone_bricks', pillar: 'ad_astra:moon_pillar' },
{ raw: 'ad_astra:mars_stone_bricks', pillar: 'ad_astra:mars_pillar' },
{ raw: 'ad_astra:venus_stone_bricks', pillar: 'ad_astra:venus_pillar' },
{ raw: 'ad_astra:mercury_stone_bricks', pillar: 'ad_astra:mercury_pillar' },
{ raw: 'ad_astra:glacio_stone_bricks', pillar: 'ad_astra:glacio_pillar' },
{ raw: 'ad_astra:permafrost_bricks', pillar: 'ad_astra:permafrost_pillar' },
{ raw: 'minecraft:purpur_block', pillar: 'minecraft:purpur_pillar' }
]
PILLARS.forEach(x => {
event.shaped(`2x ${x.pillar}`, [
'A',
'A'
], {
A: x.raw
})
event.stonecutting(x.pillar, x.raw).id(`${x.raw}_to_${x.pillar}`.replace(/:/g, '_'))
})
// macerating
const MACERATOR = [
{ block: 'minecraft:deepslate', dust: 'gtceu:deepslate_dust' },
{ block: 'minecraft:dripstone_block', dust: 'tfg:dripstone_dust' }
{ block: 'minecraft:dripstone_block', dust: 'tfg:dripstone_dust' },
{ block: 'ad_astra:moon_stone', dust: 'tfg:moon_stone_dust' },
{ block: 'ad_astra:moon_deepslate', dust: 'tfg:moon_deepslate_dust' },
{ block: 'ad_astra:mars_stone', dust: 'tfg:mars_stone_dust' },
{ block: 'ad_astra:venus_stone', dust: 'tfg:venus_stone_dust' },
{ block: 'ad_astra:mercury_stone', dust: 'tfg:mercury_stone_dust' },
{ block: 'ad_astra:glacio_stone', dust: 'tfg:glacio_stone_dust' },
{ block: 'ad_astra:permafrost', dust: 'gtceu:ice_dust' },
{ block: 'ae2:sky_stone', dust: 'ae2:sky_dust' }
]
MACERATOR.forEach(x => {
@ -241,7 +637,8 @@ function registerTFGRockRecipes(event) {
'minecraft:deepslate',
'minecraft:cobbled_deepslate',
'minecraft:blackstone',
'minecraft:dripstone_block'
'minecraft:dripstone_block',
'minecraft:basalt'
]
ROCK_DUPING.forEach(x => {
@ -252,6 +649,63 @@ function registerTFGRockRecipes(event) {
.EUt(7)
})
event.recipes.gtceu.rock_breaker('tfg:moon_stone')
.notConsumable('ad_astra:moon_stone')
.itemOutputs('ad_astra:moon_stone')
.duration(16)
.EUt(7)
.dimension('ad_astra:moon')
event.recipes.gtceu.rock_breaker('tfg:moon_deepslate')
.notConsumable('ad_astra:moon_deepslate')
.itemOutputs('ad_astra:moon_deepslate')
.duration(16)
.EUt(7)
.dimension('ad_astra:moon')
event.recipes.gtceu.rock_breaker('tfg:glacio_stone')
.notConsumable('ad_astra:glacio_stone')
.itemOutputs('ad_astra:glacio_stone')
.duration(16)
.EUt(7)
.dimension('ad_astra:moon')
event.recipes.gtceu.rock_breaker('tfg:mars_stone')
.notConsumable('ad_astra:mars_stone')
.itemOutputs('ad_astra:mars_stone')
.duration(16)
.EUt(7)
.dimension('ad_astra:mars')
event.recipes.gtceu.rock_breaker('tfg:venus_stone')
.notConsumable('ad_astra:venus_stone')
.itemOutputs('ad_astra:venus_stone')
.duration(16)
.EUt(7)
.dimension('ad_astra:venus')
event.recipes.gtceu.rock_breaker('tfg:mercury_stone')
.notConsumable('ad_astra:mercury_stone')
.itemOutputs('ad_astra:mercury_stone')
.duration(16)
.EUt(7)
.dimension('ad_astra:mercury')
// #endregion
// #region sandstone
event.recipes.gtceu.compressor('tfg:venus_sandstone')
.itemInputs('4x ad_astra:venus_sand')
.itemOutputs('ad_astra:venus_sandstone')
.duration(40*20)
.EUt(2)
event.recipes.gtceu.compressor('tfg:permafrost')
.itemInputs('4x tfg:loose/permafrost')
.itemOutputs('ad_astra:permafrost')
.duration(40*20)
.EUt(2)
// #endregion
//#region Magma Blocks
@ -259,18 +713,18 @@ function registerTFGRockRecipes(event) {
event.remove({id: 'greate:splashing/obsidian'})
//magma block + stone group
const magma_blocks = [
{magma: 'minecraft:magma_block', rock: 'minecraft:blackstone'},
{magma: 'tfc:rock/magma/granite', rock: 'tfc:rock/raw/granite'},
{magma: 'tfc:rock/magma/diorite', rock: 'tfc:rock/raw/diorite'},
{magma: 'tfc:rock/magma/gabbro', rock: 'tfc:rock/raw/gabbro'},
{magma: 'tfc:rock/magma/rhyolite', rock: 'tfc:rock/raw/rhyolite'},
{magma: 'tfc:rock/magma/basalt', rock: 'tfc:rock/raw/basalt'},
{magma: 'tfc:rock/magma/andesite', rock: 'tfc:rock/raw/andesite'},
{magma: 'tfc:rock/magma/dacite', rock: 'tfc:rock/raw/dacite'}
const MAGMA_BLOCKS = [
{ magma: 'minecraft:magma_block', rock: 'minecraft:blackstone' },
{ magma: 'tfc:rock/magma/granite', rock: 'tfc:rock/raw/granite' },
{ magma: 'tfc:rock/magma/diorite', rock: 'tfc:rock/raw/diorite' },
{ magma: 'tfc:rock/magma/gabbro', rock: 'tfc:rock/raw/gabbro' },
{ magma: 'tfc:rock/magma/rhyolite', rock: 'tfc:rock/raw/rhyolite' },
{ magma: 'tfc:rock/magma/basalt', rock: 'tfc:rock/raw/basalt' },
{ magma: 'tfc:rock/magma/andesite', rock: 'tfc:rock/raw/andesite' },
{ magma: 'tfc:rock/magma/dacite', rock: 'tfc:rock/raw/dacite' }
];
magma_blocks.forEach(block => {
MAGMA_BLOCKS.forEach(block => {
event.recipes.gtceu.fluid_solidifier(`tfg:gtceu/fluid_solidifier/${block.magma}`.replace(/:/g, '/'))
.itemInputs(`1x ${block.rock}`)

View file

@ -0,0 +1,248 @@
// priority: 0
function registerTFGSpaceRecipes(event) {
// TODO: Change these to work on any dim as long as they're in an oxygenated area?
const allowedCombustibleDims = [
{
dimension: "minecraft:the_nether",
type: "dimension"
},
{
dimension: "minecraft:overworld",
type: "dimension"
}
]
event.findRecipes({ type: "gtceu:large_boiler" }).forEach(recipe => {
recipe.json.add("recipeConditions", allowedCombustibleDims)
})
event.findRecipes({ type: "gtceu:steam_boiler" }).forEach(recipe => {
recipe.json.add("recipeConditions", allowedCombustibleDims)
})
event.findRecipes({ type: "gtceu:combustion_generator" }).forEach(recipe => {
recipe.json.add("recipeConditions", allowedCombustibleDims)
})
event.findRecipes({ type: "gtceu:gas_turbine" }).forEach(recipe => {
recipe.json.add("recipeConditions", allowedCombustibleDims)
})
// Air collector
event.recipes.gtceu.gas_collector('nether')
.circuit(2)
.outputFluids(Fluid.of('gtceu:air', 10000))
.dimension('minecraft:the_nether')
.duration(200)
.EUt(16)
event.recipes.gtceu.gas_collector('moon')
.circuit(3)
.outputFluids(Fluid.of('gtceu:argon', 1))
.dimension('ad_astra:moon')
.duration(20*60*30)
.EUt(16)
// Aqueous accumulator
let aaCircuit = 1;
event.recipes.gtceu.aqueous_accumulator('water_overworld')
.circuit(aaCircuit++)
.dimension('minecraft:overworld')
.duration(20)
.EUt(GTValues.VHA[GTValues.ULV])
.addDataString("fluidA", "minecraft:water")
.outputFluids(Fluid.of("minecraft:water", 1000))
event.recipes.gtceu.aqueous_accumulator('sea_water_overworld')
.circuit(aaCircuit++)
.dimension('minecraft:overworld')
.duration(20)
.EUt(GTValues.VA[GTValues.ULV])
.addDataString("fluidA", "tfc:salt_water")
.outputFluids(Fluid.of("tfc:salt_water", 1000))
event.recipes.gtceu.aqueous_accumulator('lava_overworld')
.circuit(aaCircuit++)
.dimension('minecraft:overworld')
.duration(20*15)
.EUt(GTValues.VHA[GTValues.HV])
.addDataString("fluidA", "minecraft:lava")
.outputFluids(Fluid.of("minecraft:lava", 1000))
event.recipes.gtceu.aqueous_accumulator('water_nether')
.circuit(aaCircuit++)
.dimension('minecraft:the_nether')
.duration(20*2)
.EUt(GTValues.VHA[GTValues.LV])
.addDataString("fluidA", "minecraft:water")
.outputFluids(Fluid.of("minecraft:water", 1000))
event.recipes.gtceu.aqueous_accumulator('sea_water_nether')
.circuit(aaCircuit++)
.dimension('minecraft:the_nether')
.duration(20*2)
.EUt(GTValues.VA[GTValues.LV])
.addDataString("fluidA", "tfc:salt_water")
.outputFluids(Fluid.of("tfc:salt_water", 1000))
event.recipes.gtceu.aqueous_accumulator('lava_nether')
.circuit(aaCircuit++)
.dimension('minecraft:the_nether')
.duration(20)
.EUt(GTValues.VHA[GTValues.LV])
.addDataString("fluidA", "minecraft:lava")
.outputFluids(Fluid.of("minecraft:lava", 1000))
event.recipes.gtceu.aqueous_accumulator('water_moon')
.circuit(aaCircuit++)
.dimension('ad_astra:moon')
.duration(20*5)
.EUt(GTValues.VHA[GTValues.MV])
.addDataString("fluidA", "minecraft:water")
.outputFluids(Fluid.of("minecraft:water", 1000))
event.recipes.gtceu.aqueous_accumulator('sea_water_moon')
.circuit(aaCircuit++)
.dimension('ad_astra:moon')
.duration(20*5)
.EUt(GTValues.VA[GTValues.MV])
.addDataString("fluidA", "tfc:salt_water")
.outputFluids(Fluid.of("tfc:salt_water", 1000))
event.recipes.gtceu.aqueous_accumulator('water_orbit')
.circuit(aaCircuit++)
.dimension('ad_astra:earth_orbit')
.dimension('ad_astra:moon_orbit')
.dimension('ad_astra:mars_orbit')
.dimension('ad_astra:venus_orbit')
.dimension('ad_astra:mercury_orbit')
.duration(20*5)
.EUt(GTValues.VHA[GTValues.MV])
.addDataString("fluidA", "minecraft:water")
.outputFluids(Fluid.of("minecraft:water", 1000))
event.recipes.gtceu.aqueous_accumulator('sea_water_orbit')
.circuit(aaCircuit++)
.dimension('ad_astra:earth_orbit')
.dimension('ad_astra:moon_orbit')
.dimension('ad_astra:mars_orbit')
.dimension('ad_astra:venus_orbit')
.dimension('ad_astra:mercury_orbit')
.duration(20*5)
.EUt(GTValues.VA[GTValues.MV])
.addDataString("fluidA", "tfc:salt_water")
.outputFluids(Fluid.of("tfc:salt_water", 1000))
// Plants
// Chorus
event.recipes.gtceu.greenhouse('tfg:chorus')
.itemInputs('8x tfg:lunar_chorus_flower')
.itemOutputs('64x minecraft:chorus_fruit')
.chancedOutput('8x tfg:lunar_chorus_flower', 7500, 1000)
.chancedOutput('8x tfg:lunar_chorus_flower', 5000, 1000)
.duration(36000) // 30 mins
.circuit(1)
.EUt(GTValues.VA[GTValues.MV])
.dimension('ad_astra:moon')
event.recipes.gtceu.greenhouse('tfg:chorus_helium')
.itemInputs('8x tfg:lunar_chorus_flower')
.inputFluids(Fluid.of('gtceu:helium_3', 2000))
.itemOutputs('64x minecraft:chorus_fruit')
.chancedOutput('8x tfg:lunar_chorus_flower', 8500, 1000)
.chancedOutput('8x tfg:lunar_chorus_flower', 6000, 1000)
.duration(12000) // 10 mins
.circuit(2)
.EUt(GTValues.VA[GTValues.MV])
.dimension('ad_astra:moon')
// Replace the built-in greg one to add a circuit
event.recipes.gtceu.fermenter('fermented_biomass')
.inputFluids(Fluid.of('gtceu:biomass', 100))
.outputFluids(Fluid.of('gtceu:fermented_biomass', 100))
.circuit(1)
.duration(150)
.EUt(2)
event.recipes.gtceu.fermenter('tfg:chorus')
.itemInputs('minecraft:chorus_fruit')
.inputFluids(Fluid.of('gtceu:biomass', 20))
.chancedOutput('ae2:ender_dust', 100, 100)
.outputFluids(Fluid.of('gtceu:nitrogen', 1000))
.circuit(2)
.duration(5 * 20)
.EUt(GTValues.VA[GTValues.MV])
.dimension('ad_astra:moon')
// Lightblooms
event.recipes.gtceu.greenhouse('tfg:lightbloom')
.itemInputs('8x minecraft:twisting_vines')
.itemOutputs('16x minecraft:twisting_vines')
.chancedOutput('minecraft:pearlescent_froglight', 2500, 1000)
.chancedOutput('minecraft:verdant_froglight', 2500, 1000)
.chancedOutput('minecraft:ochre_froglight', 2500, 1000)
.duration(36000) // 30 mins
.circuit(1)
.EUt(GTValues.VA[GTValues.LV])
.dimension('ad_astra:moon')
event.recipes.gtceu.greenhouse('tfg:lightbloom_helium')
.itemInputs('8x minecraft:twisting_vines')
.inputFluids(Fluid.of('gtceu:helium_3', 2000))
.itemOutputs('16x minecraft:twisting_vines')
.chancedOutput('minecraft:pearlescent_froglight', 3500, 1000)
.chancedOutput('minecraft:verdant_froglight', 3500, 1000)
.chancedOutput('minecraft:ochre_froglight', 3500, 1000)
.duration(12000) // 30 mins
.circuit(2)
.EUt(GTValues.VA[GTValues.LV])
.dimension('ad_astra:moon')
event.recipes.gtceu.brewery('biomass_from_twisting_vines')
.itemInputs('minecraft:twisting_vines')
.inputFluids(JsonIO.of({ amount: 20, value: { tag: "tfg:clean_water" }}))
.outputFluids(Fluid.of('gtceu:biomass', 20))
.duration(50)
.EUt(3)
// Space suit gases
event.recipes.gtceu.compressor('compressed_nitrox')
.inputFluids(Fluid.of('gtceu:nitrogen', 8000), Fluid.of('gtceu:oxygen', 2000))
.outputFluids(Fluid.of('tfg:compressed_nitrox', 1000))
.circuit(1)
.duration(100)
.EUt(GTValues.VA[GTValues.HV])
event.recipes.gtceu.compressor('compressed_heliox')
.inputFluids(Fluid.of('gtceu:helium', 8000), Fluid.of('gtceu:oxygen', 2000))
.outputFluids(Fluid.of('tfg:compressed_heliox', 1000))
.circuit(1)
.duration(100)
.EUt(GTValues.VA[GTValues.HV])
event.recipes.gtceu.compressor('compressed_heliox_3')
.inputFluids(Fluid.of('gtceu:helium_3', 8000), Fluid.of('gtceu:oxygen', 2000))
.outputFluids(Fluid.of('tfg:compressed_heliox_3', 1000))
.circuit(1)
.duration(100)
.EUt(GTValues.VA[GTValues.HV])
event.recipes.gtceu.compressor('compressed_trimix')
.inputFluids(Fluid.of('gtceu:nitrogen', 5000), Fluid.of('gtceu:oxygen', 3000), Fluid.of('gtceu:helium', 2000))
.outputFluids(Fluid.of('tfg:compressed_trimix', 1000))
.circuit(2)
.duration(100)
.EUt(GTValues.VA[GTValues.HV])
event.recipes.gtceu.compressor('compressed_trimix_3')
.inputFluids(Fluid.of('gtceu:nitrogen', 5000), Fluid.of('gtceu:oxygen', 3000), Fluid.of('gtceu:helium_3', 2000))
.outputFluids(Fluid.of('tfg:compressed_trimix_3', 1000))
.circuit(2)
.duration(100)
.EUt(GTValues.VA[GTValues.HV])
}

View file

@ -0,0 +1,267 @@
// priority: 0
function registerTFGStoneDustRecipes(event) {
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))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Clay, 1), 4500, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Mirabilite, 1), 2000, 500)
.outputFluids(Fluid.of('gtceu:oxygen', 5))
event.recipes.gtceu.centrifuge('gtceu:decomposition_centrifuging__marble')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Marble, 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Calcite, 1), 6000, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Magnesium, 1), 1500, 500)
.outputFluids(Fluid.of('gtceu:oxygen', 12))
event.recipes.gtceu.centrifuge('gtceu:decomposition_centrifuging__andesite')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Andesite, 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Asbestos, 1), 6000, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Saltpeter, 1), 2000, 500)
event.recipes.gtceu.centrifuge('gtceu:decomposition_centrifuging__basalt')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Basalt, 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Flint, 1), 5000, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Olivine, 1), 1500, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Calcite, 1), 1500, 500)
event.recipes.gtceu.centrifuge('gtceu:decomposition_centrifuging__granite')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Granite, 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Redrock, 1), 2000, 500)
.outputFluids(Fluid.of('gtceu:oxygen', 5))
event.recipes.gtceu.centrifuge('gtceu:decomposition_centrifuging__deepslate')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Deepslate, 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Biotite, 1), 2000, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Olivine, 1), 3500, 700)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 3500, 500)
.outputFluids(Fluid.of('gtceu:oxygen', 12))
event.recipes.gtceu.centrifuge('blackstone_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Blackstone, 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Graphite, 1), 3500, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Magnesium, 1), 4500, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Gold, 1), 3500, 500)
.outputFluids(Fluid.of('gtceu:oxygen', 16))
// TFC
event.recipes.gtceu.centrifuge('gabbro_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('gabbro'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Magnetite, 1), 2500, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Rutile, 1), 1500, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 1500, 500)
event.recipes.gtceu.centrifuge('shale_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('shale'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Sodium, 1), 6500, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 1500, 500)
.outputFluids(Fluid.of('gtceu:oxygen', 16))
event.recipes.gtceu.centrifuge('claystone_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('claystone'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Clay, 1), 3000, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Hematite, 1), 3500, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Bauxite, 1), 2500, 500)
.outputFluids(Fluid.of('gtceu:oxygen', 5))
event.recipes.gtceu.centrifuge('limestone_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('limestone'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Calcium, 1), 5500, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 1500, 500)
.outputFluids(Fluid.of('gtceu:oxygen', 36))
event.recipes.gtceu.centrifuge('conglomerate_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('conglomerate'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Hematite, 1), 3500, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.TricalciumPhosphate, 1), 3500, 500)
.outputFluids(Fluid.of('gtceu:oxygen', 5))
event.recipes.gtceu.centrifuge('dolomite_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('dolomite'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Magnesium, 1), 6500, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Calcium, 1), 5500, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 3500, 500)
.outputFluids(Fluid.of('gtceu:oxygen', 16))
event.recipes.gtceu.centrifuge('chert_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('chert'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Redrock, 1), 5500, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 3500, 500)
.outputFluids(Fluid.of('gtceu:oxygen', 24))
event.recipes.gtceu.centrifuge('chalk_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('chalk'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Calcium, 1), 6500, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Carbon, 1), 3500, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 1500, 500)
.outputFluids(Fluid.of('gtceu:oxygen', 12))
event.recipes.gtceu.centrifuge('rhyolite_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('rhyolite'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Tantalite, 1), 1500, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 1500, 500)
event.recipes.gtceu.centrifuge('dacite_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('dacite'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Sodium, 1), 6500, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Calcium, 1), 5500, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Kyanite, 1), 3500, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 1500, 500)
.outputFluids(Fluid.of('gtceu:oxygen', 12))
event.recipes.gtceu.centrifuge('slate_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('slate'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Sapphire, 1), 1500, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 1500, 500)
.outputFluids(Fluid.of('gtceu:oxygen', 24))
event.recipes.gtceu.centrifuge('phyllite_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('phyllite'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Quartzite, 1), 5500, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.CalciumChloride, 1), 1500, 500)
.outputFluids(Fluid.of('gtceu:oxygen', 5))
event.recipes.gtceu.centrifuge('schist_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('schist'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Mica, 1), 6500, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Talc, 1), 5500, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 500, 500)
.outputFluids(Fluid.of('gtceu:oxygen', 12))
event.recipes.gtceu.centrifuge('gneiss_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('gneiss'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Quartzite, 1), 6500, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Biotite, 1), 3500, 500)
.outputFluids(Fluid.of('gtceu:oxygen', 5))
event.recipes.gtceu.centrifuge('dripstone_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('dripstone'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.CalciumCarbonate, 1), 8500, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.CalciumHydroxide, 1), 1500, 500)
.outputFluids(Fluid.of('gtceu:oxygen', 12))
// Ad astra
event.recipes.gtceu.centrifuge('moon_stone_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(10 * 20)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('moon_stone'), 1))
.chancedOutput('ae2:sky_dust', 5000, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Ilmenite, 1), 1000, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Magnetite, 1), 2000, 500)
.outputFluids(Fluid.of('gtceu:helium_3', 200))
event.recipes.gtceu.centrifuge('moon_deepslate_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(10 * 20)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('moon_deepslate'), 1))
.chancedOutput('ae2:sky_dust', 5000, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Calcium, 1), 2000, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Olivine, 1), 1500, 500)
.outputFluids(Fluid.of('gtceu:helium_3', 200))
event.recipes.gtceu.centrifuge('glacio_stone_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(10 * 20)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('glacio_stone'), 1))
.chancedOutput('ae2:sky_dust', 3000, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Sodium, 1), 4000, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Potassium, 1), 4000, 500)
.outputFluids(Fluid.of('gtceu:oxygen', 50), Fluid.of('gtceu:helium_3', 300))
// AE2
event.recipes.gtceu.centrifuge('sky_dust_separation')
.EUt(GTValues.VA[GTValues.LV])
.duration(100)
.itemInputs('ae2:sky_dust')
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.CertusQuartz, 1), 4500, 500)
// Create
event.recipes.gtceu.centrifuge('asurine_dust_separation')
.EUt(GTValues.VA[GTValues.LV])
.duration(100)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('asurine'), 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.CertusQuartz, 1), 4500, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Zinc, 1), 3500, 500)
// Misc dust
event.recipes.gtceu.centrifuge('gtceu:quartz_sand_separation')
.EUt(30)
.duration(60)
.itemInputs('2x gtceu:quartz_sand_dust')
.itemOutputs('gtceu:quartzite_dust')
.chancedOutput('#forge:dust/nether_quartz', 2000, 200)
}

View file

@ -146,19 +146,6 @@ function registerTFGTerrariumRecipes(event) {
}).id('tfg:shaped/end_crystal')
// chorus fruit
event.recipes.gtceu.large_chemical_reactor('tfg:chorus_fruit_uranium')
.itemInputs('#tfc:foods/fruits', 'gtceu:uranium_235_dust')
.itemOutputs('minecraft:chorus_fruit', 'gtceu:uranium_dust')
.duration(500)
.EUt(480)
.circuit(1)
event.recipes.gtceu.large_chemical_reactor('tfg:chorus_fruit_plutonium')
.itemInputs('#tfc:foods/fruits', 'gtceu:plutonium_241_dust')
.itemOutputs('minecraft:chorus_fruit', 'gtceu:plutonium_dust')
.duration(200)
.EUt(480)
event.recipes.gtceu.large_chemical_reactor('tfg:kovarex')
.itemInputs('40x gtceu:uranium_235_dust', '5x gtceu:uranium_dust')
@ -193,7 +180,7 @@ function registerTFGTerrariumRecipes(event) {
'B',
'C'
], {
A: 'minecraft:ender_eye',
A: 'tfg:vitrified_pearl',
B: 'minecraft:cyan_carpet',
C: 'minecraft:end_stone'
}).id('tfg:shaped/artificial_end_portal_frame')

View file

@ -26,6 +26,14 @@ function registerFacadeWhitelistTags(event) {
'#simplylight:any_lamp_off',
'#minecraft:planks',
'#minecraft:logs',
'#tfg:ad_astra_iron_blocks',
'#tfg:ad_astra_steel_blocks',
'#tfg:ad_astra_desh_blocks',
'#tfg:ad_astra_ostrum_blocks',
'#tfg:ad_astra_calorite_blocks',
'#tfg:ad_astra_etrium_blocks',
//rnr shingles
'rnr:ceramic_roof',
'rnr:terracotta_roof',
@ -113,8 +121,10 @@ function registerFacadeWhitelistTags(event) {
'create:dark_oak_window',
'create:mangrove_window',
'create:ornate_iron_window',
'create_connected:cherry_window',
'create_connected:bamboo_window',
'create:industrial_iron_window',
'create:weathered_iron_window',
'create:cherry_window',
'create:bamboo_window',
'createdeco:andesite_window',
'createdeco:copper_window',
'createdeco:iron_window',
@ -134,108 +144,50 @@ function registerFacadeWhitelistTags(event) {
'createdeco:zinc_sheet_metal'
];
const mc_colors =
[
'white',
'orange',
'magenta',
'light_blue',
'yellow',
'lime',
'pink',
'gray',
'light_gray',
'cyan',
'purple',
'blue',
'brown',
'green',
'red',
'black'
]
const wood_types_tfc =
[
'acacia',
'ash',
'aspen',
'birch',
'blackwood',
'chestnut',
'douglas_fir',
'hickory',
'kapok',
'mangrove',
'maple',
'oak',
'palm',
'pine',
'rosewood',
'sequoia',
'spruce',
'sycamore',
'white_cedar',
'willow'
]
const wood_types_afc =
[
'baobao',
'eucalyptus',
'mahogany',
'heavea',
'tualang',
'teak',
'cypress',
'fig',
'ironwood',
'ipe'
]
const createdeco_bricks_fm =
[
'pearl_bricks',
'verdant_bricks',
'red_bricks',
'dean_bricks',
'umber_bricks',
'dusk_bricks',
'blue_bricks',
'scarlet_bricks'
'pearl_bricks',
'verdant_bricks',
'red_bricks',
'dean_bricks',
'umber_bricks',
'dusk_bricks',
'blue_bricks',
'scarlet_bricks'
]
const gtceu_stonelike_fm =
[
'light_concrete',
'dark_concrete',
'red_granite',
'marble'
'light_concrete',
'dark_concrete',
'red_granite',
'marble'
]
const create_copper_fm =
[
'copper',
'exposed_copper',
'weathered_copper',
'oxidized_copper'
'copper',
'exposed_copper',
'weathered_copper',
'oxidized_copper'
]
const create_rock_types_fm =
[
'granite',
'diorite',
'andesite',
'calcite',
'dripstone',
'deepslate',
'limestone'
//'ochrum',
//'scoria',
//'scorchia',
//'veridium'
//'tuff',
//'asurine',
//'crimsite',
'granite',
'diorite',
'andesite',
'calcite',
'dripstone',
'deepslate',
'limestone'
//'ochrum',
//'scoria',
//'scorchia',
//'veridium'
//'tuff',
//'asurine',
//'crimsite',
]
//misc blocks
@ -267,7 +219,7 @@ function registerFacadeWhitelistTags(event) {
});
//gtceu misc colored blocks
mc_colors.forEach(facade_material => {
global.MINECRAFT_DYE_NAMES.forEach(facade_material => {
event.add('tfg:whitelisted/facades', 'gtceu:' + facade_material + '_metal_sheet')
event.add('tfg:whitelisted/facades', 'gtceu:' + facade_material + '_large_metal_sheet')
event.add('tfg:whitelisted/facades', 'gtceu:' + facade_material + '_studs')
@ -296,7 +248,7 @@ function registerFacadeWhitelistTags(event) {
});
//rnr shingles
wood_types_tfc.concat(wood_types_afc).forEach(facade_material => {
global.TFC_WOOD_TYPES.concat(global.AFC_WOOD_TYPES).forEach(facade_material => {
event.add('tfg:whitelisted/facades', 'rnr:wood/shingles/' + facade_material)
});
@ -315,10 +267,10 @@ function registerFacadeWhitelistTags(event) {
});
//everycomp windows
wood_types_tfc.forEach(facade_material => {
global.TFC_WOOD_TYPES.forEach(facade_material => {
event.add('tfg:whitelisted/facades', 'everycomp:c/tfc/' + facade_material + '_window')
});
wood_types_afc.forEach(facade_material => {
global.AFC_WOOD_TYPES.forEach(facade_material => {
event.add('tfg:whitelisted/facades', 'everycomp:c/afc/' + facade_material + '_window')
});
}

View file

@ -2,7 +2,14 @@ const registerTFGItemTags = (event) => {
registerTFGTrimTags(event)
registerFacadeWhitelistTags(event)
//crop stuff
event.add('tfc:seeds', 'tfg:sunflower_seeds')
event.add('tfc:seeds', 'tfg:rapeseed_seeds')
event.add('tfc:foods', 'tfg:roasted_sunflower_seeds')
event.add('tfc:compost_greens_high', 'tfg:rapeseed_product')
event.add('tfc:compost_greens_high', 'tfg:sunflower_product')
event.add('tfg:water_breathing_ingredients', 'tfg:rapeseed_product')
event.add('tfg:night_vision_ingredients', 'tfg:sunflower_product')
//temporary hidden items
event.add('c:hidden_from_recipe_viewers', 'tfg:geyser_source_small')
event.add('c:hidden_from_recipe_viewers', 'tfg:geyser_source')
@ -38,7 +45,6 @@ const registerTFGItemTags = (event) => {
event.add('tfc:usable_on_tool_rack', 'tfg:trowel')
// #region Paper from wood
event.add('tfg:hardwood_strips', 'tfg:hardwood_strip')
event.add('tfg:hardwood_strips', 'tfg:soaked_hardwood_strip')
//Adding any of these dusts to the forge dusts/wood tag will make it so you can craft softwood pulp using hardwood pulp. which is not ok.
@ -68,7 +74,6 @@ const registerTFGItemTags = (event) => {
//#endregion
// #region Medicines
event.add('tfg:antipoison_ingredients', 'tfc:plant/blood_lily')
event.add('tfg:antipoison_ingredients', 'tfc:plant/pistia')
event.add('tfg:antipoison_ingredients', 'tfc:powder/bismuthinite')
@ -131,28 +136,83 @@ const registerTFGItemTags = (event) => {
event.add('tfg:luck_ingredients', 'tfc:plant/heather')
// #endregion
//region Airplane Upgrades
// Airplane Upgrades
global.AIRCRAFT_UPGRADES.forEach(value => {
event.add('immersive_aircraft:upgrades', `tfg:${value}`);
})
// #endregion
// Universal Circuits
global.UNIVERSAL_CIRCUIT_TIERS.forEach(tier => { event.add(`gtceu:circuits/${tier}`, `tfg:${tier}_universal_circuit`); })
// #endregion
// Crafting components
event.add('tfg:aluminium_oxide', '#forge:dusts/bauxite')
event.add('tfg:aluminium_oxide', '#forge:dusts/sapphire')
event.add('tfg:aluminium_oxide', '#forge:dusts/green_sapphire')
// Use either cast or wrought iron
event.add('forge:double_iron_ingots', '#forge:double_ingots/iron')
event.add('forge:double_iron_ingots', '#forge:double_ingots/wrought_iron')
event.add('tfg:any_iron_double_ingot', '#forge:double_ingots/iron')
event.add('tfg:any_iron_double_ingot', '#forge:double_ingots/wrought_iron')
event.add('tfg:any_iron_plate', '#forge:double_plates/iron')
event.add('tfg:any_iron_plate', '#forge:double_plates/wrought_iron')
event.add('tfg:any_bronze_frame', '#forge:frames/bronze')
event.add('tfg:any_bronze_frame', '#forge:frames/bismuth_bronze')
event.add('tfg:any_bronze_frame', '#forge:frames/black_bronze')
//#region Food
const RAW_MEATS = [
'tfg:food/raw_birt',
'tfg:food/raw_crawlermari',
'tfg:food/raw_limpet'
]
RAW_MEATS.forEach(meat => {
event.add('tfc:foods', meat)
event.add('tfc:foods/meats', meat)
event.add('tfc:foods/raw_meats', meat)
})
const COOKED_MEATS = [
'tfg:food/cooked_birt',
'tfg:food/cooked_crawlermari',
'tfg:food/cooked_limpet'
]
COOKED_MEATS.forEach(meat => {
event.add('tfc:foods', meat)
event.add('tfc:foods/meats', meat)
event.add('tfc:foods/cooked_meats', meat)
})
//jam sandwhich stuff
const usable_in_jam_sandwich = Ingredient.of('#tfc:foods/usable_in_jam_sandwich').itemIds.toArray().map(String);
const preserves = Ingredient.of('#tfc:foods/preserves').itemIds.toArray().map(String);
const usable_in_jam_sandwich_2 = usable_in_jam_sandwich.filter(item => !preserves.includes(item));
usable_in_jam_sandwich_2.forEach(item => {
event.add('tfc:foods/usable_in_jam_sandwich_2', item);
});
//meal bags
event.add('tfg:foil_packs', 'tfg:foil_pack');
event.add('tfg:foil_packs', 'tfg:clean_foil_pack')
event.add('tfg:foods/usable_in_meal_bag', '#tfc:foods/meats');
event.add('tfg:foods/usable_in_meal_bag', '#tfc:foods/grains');
event.add('tfg:foods/usable_in_meal_bag', '#tfc:foods/vegetables');
event.add('tfg:foods/usable_in_meal_bag', '#tfc:foods/fruits');
event.add('tfg:foods/usable_in_meal_bag', '#tfc:foods/dairy');
event.add('tfg:foods/usable_in_meal_bag', 'tfc:food/cooked_egg');
event.add('tfg:foods/usable_in_meal_bag', 'tfc:food/boiled_egg');
//#endregion
// #region Space blocks
event.add('tfg:moon_plants', 'tfg:lunar_roots')
event.add('tfg:moon_plants', 'tfg:lunar_sprouts')
// #endregion
// #region 0.7.19 -> 0.9 conversion
event.add('c:hidden_from_recipe_viewers', 'treetap:tap')
event.add('c:hidden_from_recipe_viewers', 'tfcea:refrigerator')
event.add('c:hidden_from_recipe_viewers', 'gtceu:zinc_ingot')
event.add('c:hidden_from_recipe_viewers', 'gtceu:brass_ingot')
@ -247,14 +307,18 @@ const registerTFGItemTags = (event) => {
event.add('c:hidden_from_recipe_viewers', 'gtceu:rich_raw_silver')
event.add('c:hidden_from_recipe_viewers', 'gtceu:raw_silver')
event.add('c:hidden_from_recipe_viewers', 'gtceu:poor_raw_silver')
//#endregion
}
const registerTFGBlockTags = (event) => {
event.add('minecraft:mineable/shovel', 'tfg:ash_pile')
//crop stuff
event.add('tfc:crops', 'tfg:rapeseed')
event.add('tfc:mineable_with_sharp_tool', 'tfg:rapeseed')
event.add('tfc:crops', 'tfg:sunflower')
event.add('tfc:mineable_with_sharp_tool','tfg:sunflower')
// #region Nether blocks
event.add('minecraft:nether_carver_replaceables', 'tfg:rock/hardened_deepslate')
@ -277,15 +341,6 @@ const registerTFGBlockTags = (event) => {
event.add('tfc:rock/hardened', 'tfg:rock/hardened_dripstone')
// #endregion
// #region Space blocks (TODO: undo these when merging space into dev!)
event.add('c:hidden_from_recipe_viewers', 'tfg:lunar_roots')
event.add('c:hidden_from_recipe_viewers', 'tfg:lunar_sprouts')
event.add('c:hidden_from_recipe_viewers', 'tfg:lunar_chorus_plant')
event.add('c:hidden_from_recipe_viewers', 'tfg:lunar_chorus_flower')
// #endregion
}
const registerTFGFluidTags = (event) => {
@ -307,6 +362,14 @@ const registerTFGFluidTags = (event) => {
event.add('tfc:usable_in_wooden_bucket', 'tfg:conifer_pitch')
event.add('tfc:usable_in_red_steel_bucket', 'tfg:conifer_pitch')
event.add('tfc:usable_in_blue_steel_bucket', 'tfg:conifer_pitch')
event.add('tfg:clean_water', 'minecraft:water')
event.add('tfg:clean_water', 'tfc:river_water')
event.add('tfg:clean_water', 'tfc:spring_water')
global.BREATHABLE_COMPRESSED_AIRS.forEach(x => {
event.add('tfg:breathable_compressed_air', x)
})
}
@ -365,8 +428,23 @@ const registerTFGBiomeTags = (event) => {
// #endregion
}
// Other space decoration is in ad_astra/tags.js
const registerTFGPlacedFeatures = (event) => {
// #region Earth biomes
event.add('tfc:in_biome/surface_decoration/ocean', 'tfg:earth/rose_quartz/rose_quartz')
event.add('tfc:in_biome/surface_decoration/ocean_reef', 'tfg:earth/rose_quartz/rose_quartz')
event.add('tfc:in_biome/surface_decoration/deep_ocean', 'tfg:earth/rose_quartz/rose_quartz')
event.add('tfc:in_biome/surface_decoration/deep_ocean_trench', 'tfg:earth/rose_quartz/rose_quartz')
event.add('tfc:in_biome/surface_decoration/shore', 'tfg:earth/rose_quartz/rose_quartz')
event.add('tfc:in_biome/surface_decoration/tidal_flats', 'tfg:earth/rose_quartz/rose_quartz')
event.add('tfc:in_biome/surface_decoration/lowlands', 'tfg:earth/rose_quartz/rose_quartz')
event.add('tfc:in_biome/surface_decoration/salt_marsh', 'tfg:earth/rose_quartz/rose_quartz')
event.add('tfc:in_biome/surface_decoration/plains', 'tfg:earth/rose_quartz/rose_quartz')
event.add('tfc:in_biome/surface_decoration/lake', 'tfg:earth/rose_quartz/rose_quartz')
// #endregion
registerTFGOreVeinFeatures(event);

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