From b9f3c514077ffa4590e48a185b3bad3fdda610a5 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Fri, 18 Apr 2025 00:40:58 +0100 Subject: [PATCH] Pushing recent 0.9 alpha feedback (#877) Signed-off-by: Redeix <59435925+Redeix@users.noreply.github.com> Co-authored-by: Redeix <59435925+Redeix@users.noreply.github.com> --- config/forgivingworld.json | 108 +-- defaultconfigs/create-server.toml | 4 +- defaultconfigs/createhorsepower-server.toml | 6 +- defaultconfigs/greate-server.toml | 22 +- ...F TRANSLATING => README IF TRANSLATING.md} | 2 +- .../assets/emi/recipe/filters/categories.json | 3 + kubejs/assets/gtceu/lang/en_us.json | 4 + .../minecraft/textures/block/sponge.png | Bin 0 -> 463 bytes .../minecraft/textures/block/wet_sponge.png | Bin 0 -> 402 bytes .../entries/mechanics/support_beams.json | 244 +++++ .../entries/tfg_ores/deep_scheelite.json | 2 +- .../uk_ua/entries/tfg_tips/lv_machines.json | 2 +- .../tfc/textures/gui/knapping/flint.png | Bin 0 -> 528 bytes kubejs/assets/tfg/lang/en_us.json | 219 +++-- kubejs/assets/tfg/textures/item/fletching.png | Bin 0 -> 307 bytes .../tfg/textures/item/flint_arrow_head.png | Bin 0 -> 618 bytes .../loot_tables/entities/golem_2.json | 25 - .../loot_tables/entities/tfc.json | 25 - .../tfg/structures/ocean/ocean_moai_0_3.nbt | Bin 1021 -> 1009 bytes .../nether/terrain/clay_patch.json | 4 +- .../nether/terrain/clay_patch_kaolin.json | 6 +- .../advancedperipherals/recipes.js | 2 + kubejs/server_scripts/afc/recipes.js | 7 + kubejs/server_scripts/cccbridge/recipes.js | 2 + .../server_scripts/computer_craft/recipes.js | 2 + kubejs/server_scripts/create/recipes.js | 6 +- kubejs/server_scripts/firmalife/recipes.js | 43 +- kubejs/server_scripts/gregtech/recipes.js | 874 +----------------- .../gregtech/recipes.machines.js | 694 ++++++++++++++ .../gregtech/recipes.materials.js | 22 +- .../gregtech/recipes.recycling.js | 122 +++ .../gregtech/recipes.tfcmetals.js | 310 +++++++ kubejs/server_scripts/gregtech/tags.js | 6 + kubejs/server_scripts/gregtech/utility.js | 76 +- kubejs/server_scripts/handglider/recipes.js | 22 +- kubejs/server_scripts/main_server_script.js | 7 +- kubejs/server_scripts/minecraft/recipes.js | 17 + .../minecraft/recipes.removes.js | 3 + kubejs/server_scripts/minecraft/tags.js | 1 - .../primitive_creatures/loot.js | 10 + kubejs/server_scripts/tfc/data.js | 11 +- kubejs/server_scripts/tfc/loot.js | 61 ++ kubejs/server_scripts/tfc/recipes.js | 20 +- kubejs/server_scripts/tfc/recipes.machines.js | 24 +- .../server_scripts/tfc/recipes.materials.js | 2 +- kubejs/server_scripts/tfc/recipes.metals.js | 71 +- kubejs/server_scripts/tfc/recipes.stone.js | 15 + kubejs/server_scripts/tfc/tags.js | 7 + kubejs/server_scripts/tfg/recipes.medicine.js | 379 ++++---- .../tfg/recipes.miscellaneous.js | 64 +- kubejs/server_scripts/tfg/tags.js | 5 + kubejs/startup_scripts/gtceu/machines.js | 5 + kubejs/startup_scripts/gtceu/materials.js | 20 +- kubejs/startup_scripts/minecraft/constants.js | 1 - kubejs/startup_scripts/tfg/blocks.js | 2 + kubejs/startup_scripts/tfg/items.js | 8 + pakku-lock.json | 79 +- 57 files changed, 2270 insertions(+), 1406 deletions(-) rename kubejs/{.README IF TRANSLATING => README IF TRANSLATING.md} (92%) create mode 100644 kubejs/assets/minecraft/textures/block/sponge.png create mode 100644 kubejs/assets/minecraft/textures/block/wet_sponge.png create mode 100644 kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/support_beams.json create mode 100644 kubejs/assets/tfc/textures/gui/knapping/flint.png create mode 100644 kubejs/assets/tfg/textures/item/fletching.png create mode 100644 kubejs/assets/tfg/textures/item/flint_arrow_head.png delete mode 100644 kubejs/data/kaolinclayze/loot_tables/entities/golem_2.json delete mode 100644 kubejs/data/kaolinclayze/loot_tables/entities/tfc.json create mode 100644 kubejs/server_scripts/gregtech/recipes.machines.js create mode 100644 kubejs/server_scripts/gregtech/recipes.recycling.js create mode 100644 kubejs/server_scripts/gregtech/recipes.tfcmetals.js create mode 100644 kubejs/server_scripts/primitive_creatures/loot.js create mode 100644 kubejs/server_scripts/tfc/loot.js diff --git a/config/forgivingworld.json b/config/forgivingworld.json index ac09e2342..26056c231 100644 --- a/config/forgivingworld.json +++ b/config/forgivingworld.json @@ -1,65 +1,47 @@ { - "disableVanillaPortals": { - "desc:": "Disables vanilla portals, default:false", - "disableVanillaPortals": true - }, - "teleportCooldown": { - "desc:": "Sets a delay before you can teleport again, default:15 seconds", - "teleportCooldown": 15 - }, - "instantTeleport": { - "desc:": "Instantly teleports instead of notifying the user over time,(Note this causes some lag, due to loading chunks directly) default:false", - "instantTeleport": false - }, - "teleportedRidden": { - "desc:": "Teleport ridden entities too, default:true", - "teleportedRidden": true - }, - "teleportLeashed": { - "desc:": "Teleport leashed entities too, default:true", - "teleportLeashed": true - }, - "debuglogging": { - "desc:": "Enable debug logging, default:false", - "debuglogging": false - }, - "dimensionconnections": [ - { - "from": "minecraft:overworld", - "to": "minecraft:the_nether", - "teleporttype": { - "teleporttype": "AIR", - "teleport_to_y": 125 - }, - "belowy": -58, - "slowfallticks": 1200 - }, - { - "from": "minecraft:the_nether", - "to": "minecraft:the_nether", - "teleporttype": { - "teleporttype": "CAVE", - "teleport_to_y": 4 - }, - "belowy": 0 - }, - { - "from": "minecraft:the_nether", - "to": "minecraft:overworld", - "teleporttype": { - "teleporttype": "CAVE", - "teleport_to_y": -58 - }, - "abovey": 118 - }, - { - "from": "minecraft:overworld", - "to": "minecraft:overworld", - "teleporttype": { - "teleporttype": "AIR", - "teleport_to_y": 360 - }, - "abovey": 364 - } - ] + "disableVanillaPortals": { + "desc:": "Disables vanilla portals, default:false", + "disableVanillaPortals": true + }, + "teleportCooldown": { + "desc:": "Sets a delay before you can teleport again, default:15 seconds", + "teleportCooldown": 15 + }, + "instantTeleport": { + "desc:": "Instantly teleports instead of notifying the user over time,(Note this causes some lag, due to loading chunks directly) default:false", + "instantTeleport": false + }, + "teleportedRidden": { + "desc:": "Teleport ridden entities too, default:true", + "teleportedRidden": true + }, + "teleportLeashed": { + "desc:": "Teleport leashed entities too, default:true", + "teleportLeashed": true + }, + "debuglogging": { + "desc:": "Enable debug logging, default:false", + "debuglogging": false + }, + "dimensionconnections": [ + { + "from": "minecraft:overworld", + "to": "minecraft:the_nether", + "teleporttype": { + "teleporttype": "AIR", + "teleport_to_y": 125 + }, + "belowy": -58, + "slowfallticks": 1200 + }, + { + "from": "minecraft:the_nether", + "to": "minecraft:overworld", + "teleporttype": { + "teleporttype": "CAVE", + "teleport_to_y": -58 + }, + "abovey": 118 + } + ] } \ No newline at end of file diff --git a/defaultconfigs/create-server.toml b/defaultconfigs/create-server.toml index 30beb43a9..a3d5e69b6 100644 --- a/defaultconfigs/create-server.toml +++ b/defaultconfigs/create-server.toml @@ -302,8 +302,8 @@ hand_crank = 2.0 steam_engine = 32.0 creative_motor = 16384.0 - large_water_wheel = 16.0 - water_wheel = 4.0 + large_water_wheel = 32.0 + water_wheel = 8.0 windmill_bearing = 32.0 #. diff --git a/defaultconfigs/createhorsepower-server.toml b/defaultconfigs/createhorsepower-server.toml index b68cf9a5b..e65e62016 100644 --- a/defaultconfigs/createhorsepower-server.toml +++ b/defaultconfigs/createhorsepower-server.toml @@ -6,13 +6,13 @@ creatureRPMRange = 16 #How much stress small creatures can produce for the horse crank. #Range: > 1 - smallCreatureStressRange = 4 + smallCreatureStressRange = 8 #How much stress medium creatures can produce for the horse crank. #Range: > 1 - mediumCreatureStressRange = 6 + mediumCreatureStressRange = 12 #How much stress large creatures can produce for the horse crank. #Range: > 1 - largeCreatureStressRange = 8 + largeCreatureStressRange = 16 #Path Category [paths] diff --git a/defaultconfigs/greate-server.toml b/defaultconfigs/greate-server.toml index 7f31edd5c..912518982 100644 --- a/defaultconfigs/greate-server.toml +++ b/defaultconfigs/greate-server.toml @@ -78,7 +78,7 @@ fanSpeedMultiplier = 0.75 andesite_alloy_gearbox = 0.0 andesite_alloy_mechanical_press = 1.0 andesite_alloy_mechanical_mixer = 0.5 - andesite_alloy_millstone = 0.25 + andesite_alloy_millstone = 0.5 andesite_alloy_mechanical_saw = 0.5 andesite_alloy_mechanical_pump = 0.5 @@ -97,7 +97,7 @@ fanSpeedMultiplier = 0.75 steel_gearbox = 0.0 steel_mechanical_press = 2.0 steel_mechanical_mixer = 1.0 - steel_millstone = 0.5 + steel_millstone = 1.0 steel_mechanical_saw = 1.0 steel_mechanical_pump = 1.0 @@ -116,7 +116,7 @@ fanSpeedMultiplier = 0.75 aluminium_gearbox = 0.0 aluminium_mechanical_press = 3.0 aluminium_mechanical_mixer = 1.5 - aluminium_millstone = 1.0 + aluminium_millstone = 1.5 aluminium_mechanical_saw = 1.5 aluminium_mechanical_pump = 1.5 @@ -135,7 +135,7 @@ fanSpeedMultiplier = 0.75 stainless_steel_gearbox = 0.0 stainless_steel_mechanical_press = 4.0 stainless_steel_mechanical_mixer = 2.0 - stainless_steel_millstone = 1.5 + stainless_steel_millstone = 2.0 stainless_steel_mechanical_saw = 2.0 stainless_steel_mechanical_pump = 2.0 @@ -154,7 +154,7 @@ fanSpeedMultiplier = 0.75 titanium_gearbox = 0.0 titanium_mechanical_press = 5.0 titanium_mechanical_mixer = 2.5 - titanium_millstone = 2.0 + titanium_millstone = 2.5 titanium_mechanical_saw = 2.5 titanium_mechanical_pump = 2.5 @@ -173,7 +173,7 @@ fanSpeedMultiplier = 0.75 tungsten_steel_gearbox = 0.0 tungsten_steel_mechanical_press = 6.0 tungsten_steel_mechanical_mixer = 3.0 - tungsten_steel_millstone = 2.5 + tungsten_steel_millstone = 3.0 tungsten_steel_mechanical_saw = 3.0 tungsten_steel_mechanical_pump = 3.0 @@ -192,7 +192,7 @@ fanSpeedMultiplier = 0.75 rhodium_plated_palladium_gearbox = 0.0 rhodium_plated_palladium_mechanical_press = 7.0 rhodium_plated_palladium_mechanical_mixer = 3.5 - rhodium_plated_palladium_millstone = 3.0 + rhodium_plated_palladium_millstone = 3.5 rhodium_plated_palladium_mechanical_saw = 3.5 rhodium_plated_palladium_mechanical_pump = 3.5 @@ -211,7 +211,7 @@ fanSpeedMultiplier = 0.75 naquadah_alloy_gearbox = 0.0 naquadah_alloy_mechanical_press = 8.0 naquadah_alloy_mechanical_mixer = 4.0 - naquadah_alloy_millstone = 4.5 + naquadah_alloy_millstone = 4.0 naquadah_alloy_mechanical_saw = 4.0 naquadah_alloy_mechanical_pump = 4.0 @@ -230,7 +230,7 @@ fanSpeedMultiplier = 0.75 darmstadtium_gearbox = 0.0 darmstadtium_mechanical_press = 9.0 darmstadtium_mechanical_mixer = 4.5 - darmstadtium_millstone = 5.0 + darmstadtium_millstone = 4.5 darmstadtium_mechanical_saw = 4.5 darmstadtium_mechanical_pump = 4.5 @@ -249,7 +249,7 @@ fanSpeedMultiplier = 0.75 neutronium_gearbox = 0.0 neutronium_mechanical_press = 10.0 neutronium_mechanical_mixer = 5.0 - neutronium_millstone = 5.5 + neutronium_millstone = 5.0 neutronium_mechanical_saw = 5.0 neutronium_mechanical_pump = 5.0 @@ -284,7 +284,7 @@ fanSpeedMultiplier = 0.75 #. #Configure the max stress a kinetic block of this tier can support. #Range: > -2147483648 - andesiteMaxCapacity = 16 + andesiteMaxCapacity = 32 #. #Settings related to steel tier machines diff --git a/kubejs/.README IF TRANSLATING b/kubejs/README IF TRANSLATING.md similarity index 92% rename from kubejs/.README IF TRANSLATING rename to kubejs/README IF TRANSLATING.md index dc2aafa30..5d3601abf 100644 --- a/kubejs/.README IF TRANSLATING +++ b/kubejs/README IF TRANSLATING.md @@ -2,7 +2,7 @@ Files located at "assets/x/lang" (where x is the modid youre looking to translat This means that any changes done to the files in "assets/x/lang" WILL BE OVERWRITTEN the next time the tool is ran! If you wish to properly write localization for an already supported/translated mod: -1. Go to "minecraft/tools/LanguageMerger/LanguageFiles" +1. Go to the TerraFirmaGreg-Team/Tools-Modern repo 2. Go to the folder of your mod of choice. 3. Open the Localization folder for your language, these are the actual locales supported by the mod (ie: en_us) * If youre looking to add a new language, create a new folder with your chosen locale diff --git a/kubejs/assets/emi/recipe/filters/categories.json b/kubejs/assets/emi/recipe/filters/categories.json index 617dcf1a3..19a43d2d5 100644 --- a/kubejs/assets/emi/recipe/filters/categories.json +++ b/kubejs/assets/emi/recipe/filters/categories.json @@ -66,6 +66,9 @@ { "category": "greate:automatic_packing" }, + { + "category": "greate:packing" + }, { "id": "/emi:/crafting/repairing/[^*]+/" }, diff --git a/kubejs/assets/gtceu/lang/en_us.json b/kubejs/assets/gtceu/lang/en_us.json index fa5dd0f72..218963003 100644 --- a/kubejs/assets/gtceu/lang/en_us.json +++ b/kubejs/assets/gtceu/lang/en_us.json @@ -5,6 +5,10 @@ "block.gtceu.ender_dome": "Enderarium", "block.gtceu.greenhouse": "Greenhouse", "block.gtceu.steam_bloomery": "Steam Bloomery", + "block.gtceu.black_bronze_crate": "Black Bronze Crate", + "block.gtceu.black_bronze_drum": "Black Bronze Drum", + "block.gtceu.bismuth_bronze_crate": "Bismuth Bronze Crate", + "block.gtceu.bismuth_bronze_drum": "Bismuth Bronze Drum", "gtceu.nether_dome": "Netherarium", "gtceu.ender_dome": "Enderarium", "gtceu.greenhouse": "Electric Greenhouse", diff --git a/kubejs/assets/minecraft/textures/block/sponge.png b/kubejs/assets/minecraft/textures/block/sponge.png new file mode 100644 index 0000000000000000000000000000000000000000..013102b5720290865b5f63eab7f7f4203b8a0202 GIT binary patch literal 463 zcmV;=0WkiFP)m{ z(B-@#BDK+)0i1J;gq*ipn9_`h9E5V-$a&+m ze>?+lyS)RjEYGSK<3M{#DYag8M#R^iI56K(aHpn*k&O%w1C(b#p*Ee8C7{aA`AIJM^Gv%-|UHjmDU&m{4iU`;1 z8_qeFs7?Vl*65Q0=2C*ZLE%kpHJ9>h4*$;^gPF}x|wdj=s~ z4kKHLmWQD>k({?ms#@5`UMmILLZkHk{qI00#(`1_{{bH83TEU2FP#7Y002ovPDHLk FV1kX9&~5+# literal 0 HcmV?d00001 diff --git a/kubejs/assets/minecraft/textures/block/wet_sponge.png b/kubejs/assets/minecraft/textures/block/wet_sponge.png new file mode 100644 index 0000000000000000000000000000000000000000..18c768f49ff6e367f5e8b7bedef5125474c24c65 GIT binary patch literal 402 zcmV;D0d4+?P)`6wp6)$PZ$xDGGk`6 zc5qTQNmlQwDh8@JR*wj#^ZC+)N9m&)fOWmo+R^>Yj9M2a8R}iP92Ka_nv^Cpjq(*d z!mM@a$#jpPPyZ1g$(J&BKJJd%&dkRinAyvW#o#^BzHcwA%V!Z07*qoM6N<$g2Usj&Hw-a literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/support_beams.json b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/support_beams.json new file mode 100644 index 000000000..8a497927b --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/support_beams.json @@ -0,0 +1,244 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "name": "Support Beams & Collapses", + "category": "tfc:mechanics", + "icon": "tfc:wood/support/oak", + "pages": [ + { + "type": "patchouli:text", + "text": "In TerraFirmaCraft, raw rock is unstable and susceptible to $(thing)Collapsing$(). Many rock blocks, including $(thing)Raw Rock$(), $(thing)Ores$(), $(thing)Smooth$() and $(thing)Spikes$() can all rain down on your head under the right circumstances.$(br2)$(thing)Support Beams$() can be used to prevent collapses from occurring.", + "title": "Support Beams" + }, + { + "type": "patchouli:text", + "text": "Collapses can occur whenever a player $(thing)mines any Raw Rock$() that is near to $(thing)Unsupported Raw Rock$(). Once a collapse has started, however, even previously $(thing)Supported$() rock can start to collapse.$(br2)The rock on the roof of caves is $(thing)Naturally Supported$(). Any raw rock with a non-collapsible solid block beneath it, is also $(thing)Supported$(). Alternatively, $(thing)Support Beams$() can support a wide area at once." + }, + { + "type": "patchouli:text", + "text": "When graded $(l:the_world/ores_and_minerals)Ore$() (ore that can be poor, normal, or rich) collapses, it degrades in quality. Rich ore will become normal, normal will become poor, and poor will turn to cobblestone. Mineral ores will turn into cobblestone right away." + }, + { + "type": "patchouli:text", + "text": "Dirt, grass, clay, gravel, cobblestone, and sand are also affected by gravity. However, unlike vanilla gravity blocks, these blocks fall down slopes, and cannot be stacked more than one high without supporting blocks around. $(l:mechanics/sluices)Ore Deposits$() also landslide, but do not degrade in quality." + }, + { + "type": "patchouli:crafting", + "recipe": "tfc:crafting/wood/oak_support", + "title": "Support Beams", + "text": "To get started, $(thing)Support Beams$() can be crafted with a $(thing)Saw$() and any type of $(thing)Logs$().$(br2)Placing a $(thing)Support Beam$() on top of a block places a column up to three tall. These must have a solid block beneath them to stay upright." + }, + { + "type": "tfc:multimultiblock", + "text": "$(thing)Horizontal$() beams can be placed between to connect two $(thing)Vertical$() beams that are within five blocks, as in the above diagram.", + "multiblocks": [ + { + "pattern": [ + [ + " ", + "CRD", + " " + ], + [ + " ", + "V W", + " " + ], + [ + " ", + "V W", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ], + [ + " ", + " ", + " " + ] + ], + "mapping": { + "R": "air", + "C": "air", + "D": "air", + "V": "air", + "W": "air", + "0": "tfc:rock/raw/andesite", + "G": "tfc:rock/raw/andesite" + } + }, + { + "pattern": [ + [ + " ", + "CRD", + " " + ], + [ + " ", + "V W", + " " + ], + [ + " ", + "V W", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ], + [ + " ", + " ", + " " + ] + ], + "mapping": { + "R": "air", + "C": "tfc:wood/vertical_support/oak", + "D": "air", + "V": "tfc:wood/vertical_support/oak", + "W": "air", + "0": "tfc:rock/raw/andesite", + "G": "tfc:rock/raw/andesite" + } + }, + { + "pattern": [ + [ + " ", + "CRD", + " " + ], + [ + " ", + "V W", + " " + ], + [ + " ", + "V W", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ], + [ + " ", + " ", + " " + ] + ], + "mapping": { + "R": "air", + "C": "tfc:wood/vertical_support/oak", + "D": "tfc:wood/vertical_support/oak", + "V": "tfc:wood/vertical_support/oak", + "W": "tfc:wood/vertical_support/oak", + "0": "tfc:rock/raw/andesite", + "G": "tfc:rock/raw/andesite" + } + }, + { + "pattern": [ + [ + " ", + "CRD", + " " + ], + [ + " ", + "V W", + " " + ], + [ + " ", + "V W", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ], + [ + " ", + " ", + " " + ] + ], + "mapping": { + "R": "tfc:wood/horizontal_support/oak[north=true,south=true]", + "C": "tfc:wood/vertical_support/oak[south=true]", + "D": "tfc:wood/vertical_support/oak[north=true]", + "V": "tfc:wood/vertical_support/oak", + "W": "tfc:wood/vertical_support/oak", + "0": "tfc:rock/raw/andesite", + "G": "tfc:rock/raw/andesite" + } + }, + { + "pattern": [ + [ + " ", + "CRD", + " " + ], + [ + " ", + "V W", + " " + ], + [ + " ", + "V W", + " " + ], + [ + "GGG", + "G0G", + "GGG" + ], + [ + " ", + " ", + " " + ] + ], + "mapping": { + "R": "tfc:wood/horizontal_support/oak[north=true,south=true]", + "C": "tfc:wood/vertical_support/oak[south=true]", + "D": "tfc:wood/vertical_support/oak[north=true]", + "V": "tfc:wood/vertical_support/oak", + "W": "tfc:wood/vertical_support/oak", + "0": "tfc:rock/raw/andesite", + "G": "tfc:rock/raw/andesite" + } + } + ] + }, + { + "type": "patchouli:text", + "text": "Only $(thing)Horizontal Support Beams$() cause nearby blocks to be $(thing)Supported$(). Any block within a $(bold)9 x 5 x 9$() area centered on a horizontal support beam is considered $(thing)Supported$().$(br2)In addition to being supported by support beams, rock can be supported simply by the virtue of having a solid block below it, such as more rock. However, it is important to note that $(thing)Non Solid Blocks$() such as $(thing)Stairs$() and $(thing)Slabs$(), along with $(thing)Smooth Stone$(), do $(bold)not$() count as supporting." + }, + { + "type": "patchouli:text", + "text": "In addition to $(thing)Wooden Support Beams$() $(bold)TFG$() also adds higher tiers of support beams. Including $(thing)Stone Support Beams$(), $(thing)Concrete Support Beams$(), and $(thing)Steel Support Beams$(). With the highest tier of supports holding an area of $(bold)33 x 13 x 33$() blocks centered on the horizontal support beam!" + }, + { + "type": "patchouli:text", + "text": "Finally, it is important to know that $(l:mechanics/chisel)Chiseling$() has the potential to cause collapses, just as easily as mining does, when it is done on any $(thing)Raw Rock$() that has potential to cause a nearby collapse.$(br2)$(br2)Remember kids: practice safe mining!", + "title": "Chiseling" + } + ], + "read_by_default": true, + "extra_recipe_mappings": { + "tag:tfc:support_beams": 0 + } +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_ores/deep_scheelite.json b/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_ores/deep_scheelite.json index 15636036f..a8909e4a1 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_ores/deep_scheelite.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_ores/deep_scheelite.json @@ -66,4 +66,4 @@ "text": "Відсоток: 20%$(br)Джерело: Літію$(br)Формула: Li" } ] -} +} diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_tips/lv_machines.json b/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_tips/lv_machines.json index 4be6f82a5..6846629f9 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_tips/lv_machines.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_tips/lv_machines.json @@ -75,4 +75,4 @@ "text": "Це лише попередження: не робіть $(item)Екструдер$(). Єдине, що він може робити, - це виготовляти інструменти та тонкі гумові листи (що може робити також бендер). Всі хороші рецепти екструдерів закриті для $(thing)MV$() і далі." } ] -} +} diff --git a/kubejs/assets/tfc/textures/gui/knapping/flint.png b/kubejs/assets/tfc/textures/gui/knapping/flint.png new file mode 100644 index 0000000000000000000000000000000000000000..937eb6abec568ecc12eae61607fb4d59875185de GIT binary patch literal 528 zcmV+r0`L8aP)iG&4Xm8S@Wq|Nk$*u%$bQ z9ZRxOsSD~%0%^JX^X|KIM4sm{OH;Jc41OR+P)ebdVqTUAA=uP4&HX(wM*6;I*L48& z#xPMzkxUZYFhGnHMS;AyV6j->oMThhJU%=igrIF(Oy2`woMr!e&t#fqIO|YaGn>r_ zA#indg|+qok1>4@0*ti`!+=T@(zyYxHCib`2$W@c0&lll0De6`za6m_=Nw8YvNT0} zySa_obb8V}W`xJLw_OWBk|bn0r8fqtwI+nXYPI?l4j}-L=@jEELI`A{6nUPr+wIuY z^?zY0CB-bqxVNIkVu4&Pmj_kHoBsumsmh8F0+X)m&ceo7y!Rhq<1AHK0q}LTLasNP zv+$U6%>Y$Zv3-3-J~ho**n3ZsBqwk-odQr41-I)pQcC3O%gfp3QPueNF+5I=F(MJ- zL-VNW{pJyVY8qmU7-JAO*Vobf_3xZRYkly1ytya}0E7?-A=vNtbZv`t&f&fP6t3^? z4j+2&>Dm@!4AKq5LDe+Pu+AcY%P*G*A(+qSeE;#2$EHDRjg%5=E!JALUCSTefI$XP S(>{X$0000U z;ishX@yI{9h3i?Aie4+S=$#JI`I^m|<~HfhciG$9rcU-yn%g|{qwwOHh4a$mir3E* zbO|+HJo938J=@;zA)#@co5Wu2vitse*P{2;ozEXz1cZj}Y+d0oY1J=(NrpMa>3_Dd zhCa3Eo3ret*q_K^rb!-+f@@awH2bzk&dDixE+c%JBkty2CW*F2h6~$t85CL?mSrxP z5*^a3dVJpgM3q_>C8khShLYIukiAJpP4RC(=GQQnT((nue`_f#(8CO#u6{1-oD!M< D-j;mt literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/flint_arrow_head.png b/kubejs/assets/tfg/textures/item/flint_arrow_head.png new file mode 100644 index 0000000000000000000000000000000000000000..856c3a2f0a29e5c853e0250aee6c54c58e878336 GIT binary patch literal 618 zcmV-w0+s!VP)LlTA+(Q51%sGo1*8bl8dQ%3$eG2vQ1(`ae`K{vQ)v z5ko{VVSyh+cbK}?h@cx(C{xlx`~q48LpyD0p`Ffk#k3#^3*P0;Iq!YmbM6(T6z7o+ zFf}!OX5rJx3FSBrx~`*?BAdzZYvZ@*XEoL9b$mV_H*bv+kIxbcbz_=6j6WP}5S-NH zlSj&RT?V3qghJiCel^3}_$=l9eLgMBQ>|7xihj)C!To#6Fbtxx7?GY{UOb;>YipB^ zjt)wt5+kE`nR)q)5AWY0A^>R31|q`2!2wRqAs&B2Y zrxPfpXm4+4HE99xb#ala15r#f!itr^N+ihb?cq2MIXf@^8Dz2<(KJmNhJow43=Rzu z?lxIo{>EB5jizZ_XlbEVt9d=gA^^Cqi`f$)8jE3uBP5d+=~N1Uzq`8xf^T?wSZBwgOx!l#oS}Nt`FBA$50ukZokMD>Gg+hVP3k#HrMfOW2{Dy&u zu%1qP&0}NZjR+f?8&dx`rvkwsZEbD1u1hwX@lajmDnY#6H_Ic)WHVAJm(`^}fO5Hv zCXM+vXKudT+rrU7&d$r9?QIIS&0anyCyP&$ocBBb1H(fE5~y-mHvj+t07*qoM6N<$ Ef&rKhkpKVy literal 0 HcmV?d00001 diff --git a/kubejs/data/kaolinclayze/loot_tables/entities/golem_2.json b/kubejs/data/kaolinclayze/loot_tables/entities/golem_2.json deleted file mode 100644 index 789069143..000000000 --- a/kubejs/data/kaolinclayze/loot_tables/entities/golem_2.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "minecraft:entity", - "pools": [ - { - "name": "loot_pool", - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "gtceu:raw_graphite", - "functions": [ - { - "function": "minecraft:set_count", - "count": { - "type": "minecraft:uniform", - "min": 2, - "max": 6 - } - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/kubejs/data/kaolinclayze/loot_tables/entities/tfc.json b/kubejs/data/kaolinclayze/loot_tables/entities/tfc.json deleted file mode 100644 index ea694585b..000000000 --- a/kubejs/data/kaolinclayze/loot_tables/entities/tfc.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "minecraft:entity", - "pools": [ - { - "name": "loot_pool", - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "tfc:kaolin_clay", - "functions": [ - { - "function": "minecraft:set_count", - "count": { - "type": "minecraft:uniform", - "min": 2, - "max": 6 - } - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/kubejs/data/tfg/structures/ocean/ocean_moai_0_3.nbt b/kubejs/data/tfg/structures/ocean/ocean_moai_0_3.nbt index 8e647ff11c6701ed59667bfaa54cd5360b35294d..f9bdc9b31abe802d4b55781826f2f0d224800393 100644 GIT binary patch literal 1009 zcmVo%kvcHp{c$BEOfmD{*! zgd0b;Q7Qky{_8nuQ<}Wj##AYYAt99J=ikS(-%E;5NSAmjx??UOB>nYB`jPqDC9OUe zgKOoRt1Fi@m8P1J?6#W-l`qJD8e|F6z%kA;#wlVN7|#lfvqsCY;BhScxE4IF1rM3~ zuF778aV#*drIu615U2$(2#;&w8DLz<<5}#xXQ5Ta<6u09pJth71*XbR6_11Qcu=cl zp;d)RdD<2{0Mmp#oie5cc>t!3_p-Z;>EL}@z;yBcD%9D>`>U}=E5{VHcJLlt$Kzl; zFYrDs@a)1|pa=KxUardJl>O}C{a%#|@Vtb%fag~*7nljJ@!3+9%eBZ=#p7T+`!E;q zjN}5d1@Y`zoOysj`~WS)511{8pQeQ$fH{DEfEMBh%qZkMw=DL(WwGy7JPyW#d=o+ga!4<#M5VD|EQnf>wStOoMi+#|<&IJlJN#>I%rfW<7h z=u<_x_KANbMZ%e+2nm$Vbgnbs`*lKwIGaI|Rnf#@5#dApPR{^{cW zSSU5^;i!j?jSW}cZM^dKe&vd~S0A<<@tp=iq$3eio^U!~V-{<5X_kFmRjHohv|l!s zos(8yXf4JavNJJ9Lvj&@MyWZZT$zK?rb!PZ|FT}*B-@7S$)euN0-8orl_XG3Z$$a< zUbi)*gY;l}j4ItRjWMFe){eL_D|<2uM|#`JO=ZMJ3+ay1k`{H(@ZNX~=}+t0u7;{l z*izN~S=BikZoTNm?M8yvBI|0AJfzxN%33HgB3nZr&yrR&@$I(G)kEw26m#?TN#^E~ z>bI4u*fXZSt$tM9yZUuEctl;S-r(}nzP`M*h;9(}vFp5av_4~RoN7!tH{B~^^DI%^ z$n+8#Gj20ZTGMR7{dH-i93+N;hGwPesp~1v#>&EC{*s%2knZ68;t4#@$9@f#&r!>n zOBRF--A#WaWOOIY*9X2~tvl%e%(!yIL!vyD`}vE-Gc`XuGSAa|GZwOrbJHaqGr^+N fRQB%>m+btcn*L!@nIT8W?qBi`p1FiugB}0?oQx8j literal 1021 zcmV~j+86VfG~if))o2uXiEl73|Vc1f$x z#o$u;=IW12no3j6NOs#zgvuA>KMk^kY2X-V8RHZ&4UA_6##y7~SnxO&eq0M4*Mf)4 zeOG0#!Z;Qf*HX(VV+hm&7=*{Q@C-06!|Y2V>f;EAS1_O|(S(;|EOgwvkj^Qci*S~V6zk9vy6 zfzl#o=h7J8da6@Am0LrqgKQ7!}E@>x}Gp$+r1I7+m$QoUVYed#5WoQk&Z-6dBW*{jajVK zg<1AxRi%20(|*}lc1~J-p|u!y$j-zZ4ar3q8l~ota%B!mn4$_0^F{*UOG{%S;TRY;)tnA4s9O-QnJw;Kswi>#|fa+hjvDQls~h-?jgJWE>9#Mj$8 zS9h)RL(I+V2br5os$W;CV$YcRw)$RmZ|c|G;1PAcdV|YP`}*?MBDz7?`>ylS(fWkF zajG%p+;p#u&9g*tBhyQ0%(%@sX-%^Qx7VeSvY!|R8k&`=r!J>F8!HQo`Acs8LArzU ziwE#LANw^}K0_^ME?E#VbT|ExkkO4W|32^yYu!l)V8)dr?h@sp+|OSu9;x}+k$Ifv ro3W5}oSQD`m { + registerAdvancedPeripheralsRecyclingRecipes(event); + event.remove({ mod: 'advancedperipherals' }); //Chat Box diff --git a/kubejs/server_scripts/afc/recipes.js b/kubejs/server_scripts/afc/recipes.js index 18b5638c4..058a0b0f3 100644 --- a/kubejs/server_scripts/afc/recipes.js +++ b/kubejs/server_scripts/afc/recipes.js @@ -73,6 +73,13 @@ const registerAFCRecipes = (event) => { .bonus(false) .id('afc:anvil/tree_tap') + event.recipes.gtceu.assembler('afc:tree_tap') + .itemInputs('#forge:ingots/copper') + .circuit(3) + .itemOutputs('afc:tree_tap') + .duration(50) + .EUt(7) + // TreeTap Heating event.recipes.tfc.heating('afc:tree_tap', 1080) .resultFluid(Fluid.of('gtceu:copper', 144)) diff --git a/kubejs/server_scripts/cccbridge/recipes.js b/kubejs/server_scripts/cccbridge/recipes.js index d69d64b9d..8c377a7c0 100644 --- a/kubejs/server_scripts/cccbridge/recipes.js +++ b/kubejs/server_scripts/cccbridge/recipes.js @@ -1,6 +1,8 @@ // priority: 0 const registerCccBridgeRecipes = (event) => { + + registerCccBridgeRecyclingRecipes(event); event.remove({not: [ { id: 'cccbridge:to_target_block' }, diff --git a/kubejs/server_scripts/computer_craft/recipes.js b/kubejs/server_scripts/computer_craft/recipes.js index d9accd226..db1a6f95f 100644 --- a/kubejs/server_scripts/computer_craft/recipes.js +++ b/kubejs/server_scripts/computer_craft/recipes.js @@ -2,6 +2,8 @@ const registerComputerCraftRecipes = (event) => { + registerComputerCraftRecyclingRecipes(event); + // Удаление рецептов мода event.remove({ not: [ { id: 'computercraft:printed_pages' }, diff --git a/kubejs/server_scripts/create/recipes.js b/kubejs/server_scripts/create/recipes.js index e8fa6c2da..bb4dc57e1 100644 --- a/kubejs/server_scripts/create/recipes.js +++ b/kubejs/server_scripts/create/recipes.js @@ -679,7 +679,7 @@ const registerCreateRecipes = (event) => { B: '#forge:foils/rubber', C: '#forge:tools/wrenches', D: '#forge:tools/knives', - E: 'create:electron_tubes' + E: 'create:electron_tube' }).id('tfg:create/shaped/brass_funnel') event.shaped('2x create:brass_funnel', [ @@ -691,7 +691,7 @@ const registerCreateRecipes = (event) => { B: '#forge:leather', C: '#forge:tools/wrenches', D: '#forge:tools/knives', - E: 'create:electron_tubes' + E: 'create:electron_tube' }).id('tfg:create/shaped/brass_funnel_leather') // Тунель из железа @@ -1609,7 +1609,7 @@ const registerCreateRecipes = (event) => { A: 'create:andesite_casing', B: '#minecraft:plates/wrought_iron', C: 'tfc:glue', - D: '#tfg:cogwheels', + D: '#tfg:small_cogwheels', E: '#forge:tools/wrenches' }).id('tfg:create/shaped/mechanical_bearing') diff --git a/kubejs/server_scripts/firmalife/recipes.js b/kubejs/server_scripts/firmalife/recipes.js index bf9a84cab..e5f80d51b 100644 --- a/kubejs/server_scripts/firmalife/recipes.js +++ b/kubejs/server_scripts/firmalife/recipes.js @@ -47,6 +47,7 @@ const registerFirmaLifeRecipes = (event) => { event.remove({ id: 'firmalife:heating/metal/chromium_block_stairs' }) // - Stainless Steel + event.remove({ id: 'firmalife:alloy/stainless_steel' }) // Ingot event.remove({ id: 'firmalife:casting/stainless_steel_ingot' }) @@ -67,10 +68,10 @@ const registerFirmaLifeRecipes = (event) => { // Rod event.remove({ id: 'firmalife:anvil/stainless_steel_rod' }) - event.remove({ id: 'firmalife:heating/metal/stainless_steel_rod' }) + event.remove({ id: 'firmalife:heating/stainless_steel_rod' }) // Jar lid - event.remove({ id: 'firmalife:heating/metal/stainless_steel_jar_lid' }) + event.remove({ id: 'firmalife:heating/stainless_steel_jar_lid' }) // Plated Blocks event.remove({ id: 'firmalife:crafting/crafting/metal/block/stainless_steel' }) @@ -111,13 +112,32 @@ const registerFirmaLifeRecipes = (event) => { }).id('firmalife:crafting/vat') // Jar Lid - event.recipes.gtceu.assembler(`tfg:firmalife/jar_lid`) - .itemInputs('#forge:ingots/tin') - .circuit(7) - .itemOutputs('16x tfc:jar_lid') + event.recipes.gtceu.fluid_solidifier(`tfg:firmalife/jar_lid`) + .inputFluids(Fluid.of('gtceu:tin', 9)) + .notConsumable('gtceu:cylinder_casting_mold') + .itemOutputs('tfc:jar_lid') .duration(50) .EUt(7) + event.recipes.gtceu.extractor('tfc:jar_lid_extraction') + .itemInputs('tfc:jar_lid') + .outputFluids(Fluid.of('gtceu:tin', 9)) + .duration(50) + .EUt(2) + + event.recipes.gtceu.fluid_solidifier(`firmalife:firmalife/stainless_steel_jar_lid`) + .inputFluids(Fluid.of('gtceu:stainless_steel', 9)) + .notConsumable('gtceu:cylinder_casting_mold') + .itemOutputs('firmalife:stainless_steel_jar_lid') + .duration(50) + .EUt(7) + + event.recipes.gtceu.extractor('firmalife:stainless_steel_jar_extraction') + .itemInputs('firmalife:stainless_steel_jar_lid') + .outputFluids(Fluid.of('gtceu:stainless_steel', 9)) + .duration(50) + .EUt(2) + // Pineapple Fiber event.recipes.gtceu.assembler(`tfg:firmalife/pineapple_fiber`) .itemInputs('firmalife:food/pineapple') @@ -774,6 +794,8 @@ 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') @@ -791,4 +813,13 @@ const registerFirmaLifeRecipes = (event) => { .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') + event.shaped('firmalife:drying_mat', ['AAA'], { A: 'tfc:plant/winged_kelp' }).id('tfg:shaped/drying_mat_winged_kelp') + + // #endregion } diff --git a/kubejs/server_scripts/gregtech/recipes.js b/kubejs/server_scripts/gregtech/recipes.js index dee5bea79..e03eebeef 100644 --- a/kubejs/server_scripts/gregtech/recipes.js +++ b/kubejs/server_scripts/gregtech/recipes.js @@ -7,6 +7,9 @@ const registerGTCEURecipes = (event) => { registerGTCEUMetalRecipes(event) + registerGTCEURecyclingRecipes(event) + registerGTCEuTFCMetalsRecipes(event) + registerGTCEuMachineRecipes(event) removeGTCEURecipes(event) @@ -360,416 +363,6 @@ const registerGTCEURecipes = (event) => { //#endregion - //#region Выход: Filter Casing - - event.shaped('gtceu:filter_casing', [ - 'AAA', - 'BBB', - 'CDE' - ], { - A: '#tfg:metal_bars', - B: 'gtceu:item_filter', - C: 'gtceu:mv_electric_motor', - D: 'gtceu:steel_frame', - E: '#forge:rotors/steel' - }).id('gtceu:shaped/filter_casing') - - //#endregion - - //#region Выход: Assembly Line Grating - - event.shaped('2x gtceu:assembly_line_grating', [ - 'ABA', - 'ACA', - 'ADA' - ], { - A: '#tfg:metal_bars', - B: '#forge:rotors/steel', - C: 'gtceu:steel_frame', - D: 'gtceu:mv_electric_motor' - }).id('gtceu:shaped/casing_grate_casing') - - //#endregion - - //#region Gas Collectors - - event.shaped('gtceu:lv_gas_collector', [ - 'ABA', - 'CEC', - 'ADA' - ], { - A: '#tfg:metal_bars', - B: 'gtceu:fluid_filter', - C: 'gtceu:lv_electric_pump', - D: '#gtceu:circuits/lv', - E: 'gtceu:lv_machine_hull' - }).id('gtceu:shaped/lv_gas_collector') - - event.shaped('gtceu:mv_gas_collector', [ - 'ABA', - 'CEC', - 'ADA' - ], { - A: '#tfg:metal_bars', - B: 'gtceu:fluid_filter', - C: 'gtceu:mv_electric_pump', - D: '#gtceu:circuits/mv', - E: 'gtceu:mv_machine_hull' - }).id('gtceu:shaped/mv_gas_collector') - - event.shaped('gtceu:hv_gas_collector', [ - 'ABA', - 'CEC', - 'ADA' - ], { - A: '#tfg:metal_bars', - B: 'gtceu:fluid_filter', - C: 'gtceu:hv_electric_pump', - D: '#gtceu:circuits/hv', - E: 'gtceu:hv_machine_hull' - }).id('gtceu:shaped/hv_gas_collector') - - event.shaped('gtceu:ev_gas_collector', [ - 'ABA', - 'CEC', - 'ADA' - ], { - A: '#tfg:metal_bars', - B: 'gtceu:fluid_filter', - C: 'gtceu:ev_electric_pump', - D: '#gtceu:circuits/ev', - E: 'gtceu:ev_machine_hull' - }).id('gtceu:shaped/ev_gas_collector') - - event.shaped('gtceu:iv_gas_collector', [ - 'ABA', - 'CEC', - 'ADA' - ], { - A: '#tfg:metal_bars', - B: 'gtceu:fluid_filter', - C: 'gtceu:iv_electric_pump', - D: '#gtceu:circuits/iv', - E: 'gtceu:iv_machine_hull' - }).id('gtceu:shaped/iv_gas_collector') - - event.shaped('gtceu:luv_gas_collector', [ - 'ABA', - 'CEC', - 'ADA' - ], { - A: '#tfg:metal_bars', - B: 'gtceu:fluid_filter', - C: 'gtceu:luv_electric_pump', - D: '#gtceu:circuits/luv', - E: 'gtceu:luv_machine_hull' - }).id('gtceu:shaped/luv_gas_collector') - - event.shaped('gtceu:zpm_gas_collector', [ - 'ABA', - 'CEC', - 'ADA' - ], { - A: '#tfg:metal_bars', - B: 'gtceu:fluid_filter', - C: 'gtceu:zpm_electric_pump', - D: '#gtceu:circuits/zpm', - E: 'gtceu:zpm_machine_hull' - }).id('gtceu:shaped/zpm_gas_collector') - - event.shaped('gtceu:uv_gas_collector', [ - 'ABA', - 'CEC', - 'ADA' - ], { - A: '#tfg:metal_bars', - B: 'gtceu:fluid_filter', - C: 'gtceu:uv_electric_pump', - D: '#gtceu:circuits/uv', - E: 'gtceu:uv_machine_hull' - }).id('gtceu:shaped/uv_gas_collector') - - //#endregion - - //#region Forge Hammers - - event.shaped('gtceu:lv_forge_hammer', [ - 'ABA', - 'CDC', - 'AEA' - ], { - A: 'gtceu:tin_single_cable', - B: 'gtceu:lv_electric_piston', - C: '#gtceu:circuits/lv', - D: 'gtceu:lv_machine_hull', - E: 'tfc:metal/anvil/steel', - }).id('gtceu:shaped/lv_forge_hammer') - - event.shaped('gtceu:mv_forge_hammer', [ - 'ABA', - 'CDC', - 'AEA' - ], { - A: 'gtceu:copper_single_cable', - B: 'gtceu:mv_electric_piston', - C: '#gtceu:circuits/mv', - D: 'gtceu:mv_machine_hull', - E: 'tfc:metal/anvil/steel', - }).id('gtceu:shaped/mv_forge_hammer') - - event.shaped('gtceu:hv_forge_hammer', [ - 'ABA', - 'CDC', - 'AEA' - ], { - A: 'gtceu:gold_single_cable', - B: 'gtceu:hv_electric_piston', - C: '#gtceu:circuits/hv', - D: 'gtceu:hv_machine_hull', - E: 'tfc:metal/anvil/steel', - }).id('gtceu:shaped/hv_forge_hammer') - - event.shaped('gtceu:ev_forge_hammer', [ - 'ABA', - 'CDC', - 'AEA' - ], { - A: 'gtceu:aluminium_single_cable', - B: 'gtceu:ev_electric_piston', - C: '#gtceu:circuits/ev', - D: 'gtceu:ev_machine_hull', - E: 'tfc:metal/anvil/black_steel', - }).id('gtceu:shaped/ev_forge_hammer') - - event.shaped('gtceu:iv_forge_hammer', [ - 'ABA', - 'CDC', - 'AEA' - ], { - A: 'gtceu:platinum_single_cable', - B: 'gtceu:iv_electric_piston', - C: '#gtceu:circuits/iv', - D: 'gtceu:iv_machine_hull', - E: 'tfc:metal/anvil/black_steel', - }).id('gtceu:shaped/iv_forge_hammer') - - event.shaped('gtceu:luv_forge_hammer', [ - 'ABA', - 'CDC', - 'AEA' - ], { - A: 'gtceu:niobium_titanium_single_cable', - B: 'gtceu:luv_electric_piston', - C: '#gtceu:circuits/luv', - D: 'gtceu:luv_machine_hull', - E: 'tfc:metal/anvil/black_steel', - }).id('gtceu:shaped/luv_forge_hammer') - - event.shaped('gtceu:zpm_forge_hammer', [ - 'ABA', - 'CDC', - 'AEA' - ], { - A: 'gtceu:vanadium_gallium_single_cable', - B: 'gtceu:zpm_electric_piston', - C: '#gtceu:circuits/zpm', - D: 'gtceu:zpm_machine_hull', - E: '#tfc:red_or_blue_anvil', - }).id('gtceu:shaped/zpm_forge_hammer') - - event.shaped('gtceu:uv_forge_hammer', [ - 'ABA', - 'CDC', - 'AEA' - ], { - A: 'gtceu:yttrium_barium_cuprate_single_cable', - B: 'gtceu:uv_electric_piston', - C: '#gtceu:circuits/uv', - D: 'gtceu:uv_machine_hull', - E: '#tfc:red_or_blue_anvil', - }).id('gtceu:shaped/uv_forge_hammer') - - //#endregion - - //#region CokeOven - - // Coke Oven - event.shaped('gtceu:coke_oven', [ - 'ABA', - 'BCB', - 'ABA' - ], { - A: 'gtceu:coke_oven_bricks', - B: '#forge:plates/wrought_iron', - C: '#forge:tools/wrenches' - }).id('gtceu:shaped/coke_oven') - - // Coke Oven Hatch - event.recipes.tfc.no_remainder_shaped_crafting( - event.shaped('gtceu:coke_oven_hatch', [ - 'AB' - ], { - A: 'gtceu:coke_oven_bricks', - B: '#tfc:barrels' - }) - ).id('gtceu:shaped/coke_oven_hatch') - - //#endregion - - // High Pressure Steam Miner - event.replaceInput({ id: 'gtceu:shaped/steam_miner_steel' }, - 'gtceu:lp_steam_miner', 'gtceu:steel_brick_casing') - - //#region Выход: Стальные машины - - // HP Steam Boilers - event.shaped('gtceu:hp_steam_solid_boiler', [ - 'AEA', - 'ADA', - 'BCB' - ], { - A: '#forge:plates/steel', - B: 'gtceu:tin_alloy_small_fluid_pipe', - C: 'gtceu:steel_brick_casing', - D: 'tfc:crucible', - E: '#forge:rods/black_steel' - }).id('gtceu:shaped/steam_boiler_coal_steel') - - event.shaped('gtceu:hp_steam_liquid_boiler', [ - 'AEA', - 'ADA', - 'BCB' - ], { - A: '#forge:plates/steel', - B: 'gtceu:tin_alloy_small_fluid_pipe', - C: 'gtceu:steel_brick_casing', - D: '#forge:glass', - E: '#forge:rods/black_steel' - }).id('gtceu:shaped/steam_boiler_lava_steel') - - event.shaped('gtceu:hp_steam_solar_boiler', [ - 'AAA', - 'BCB', - 'EDE' - ], { - A: '#forge:glass_panes', - B: '#forge:double_plates/silver', - C: '#forge:rods/black_steel', - D: 'gtceu:steel_brick_casing', - E: 'gtceu:tin_alloy_small_fluid_pipe', - }).id('gtceu:shaped/steam_boiler_solar_steel') - - // Экстрактор - event.shaped('gtceu:hp_steam_extractor', [ - 'BEB', - 'CAC', - 'DFD' - ], { - A: 'gtceu:steel_brick_casing', - B: 'gtceu:tin_alloy_small_fluid_pipe', - C: '#forge:plates/steel', - D: '#forge:plates/wrought_iron', - E: '#forge:glass_panes', - F: '#forge:rings/black_steel' - }).id('gtceu:shaped/steam_extractor_steel') - - // Дробитель - event.shaped('gtceu:hp_steam_macerator', [ - 'BFB', - 'CAC', - 'DED' - ], { - A: 'gtceu:steel_brick_casing', - B: '#forge:small_gears/wrought_iron', - C: '#forge:plates/steel', - D: '#forge:rods/black_steel', - E: 'gtceu:tin_alloy_small_fluid_pipe', - F: '#forge:raw_materials/diamond' - }).id('gtceu:shaped/steam_macerator_steel') - - // Компрессор - event.shaped('gtceu:hp_steam_compressor', [ - 'BCB', - 'EAE', - 'DFD' - ], { - A: 'gtceu:steel_brick_casing', - B: 'gtceu:tin_alloy_small_fluid_pipe', - C: '#forge:plates/steel', - D: '#forge:plates/wrought_iron', - E: 'minecraft:piston', - F: '#forge:rods/black_steel' - }).id('gtceu:shaped/steam_compressor_steel') - - // Молот - event.shaped('gtceu:hp_steam_forge_hammer', [ - 'DFD', - 'BEB', - 'CAC' - ], { - A: 'gtceu:steel_brick_casing', - B: 'gtceu:tin_alloy_small_fluid_pipe', - C: '#forge:plates/steel', - D: '#forge:plates/wrought_iron', - E: '#forge:ingots/black_steel', - F: 'minecraft:piston' - }).id('gtceu:shaped/steam_hammer_steel') - - // Печь - event.shaped('gtceu:hp_steam_furnace', [ - 'BCB', - 'DAD', - 'FFF' - ], { - A: 'gtceu:steel_brick_casing', - B: 'gtceu:tin_alloy_small_fluid_pipe', - C: '#forge:plates/steel', - D: '#forge:plates/wrought_iron', - F: '#forge:rods/black_steel' - }).id('gtceu:shaped/steam_furnace_steel') - - // Сплавщик - event.shaped('gtceu:hp_steam_alloy_smelter', [ - 'FCF', - 'DAD', - 'CBC' - ], { - A: 'gtceu:steel_brick_casing', - B: 'gtceu:tin_alloy_small_fluid_pipe', - C: '#forge:plates/steel', - D: '#forge:plates/wrought_iron', - F: '#forge:rods/black_steel' - }).id('gtceu:shaped/steam_alloy_smelter_steel') - - // Блоко-ломатель - event.shaped('gtceu:hp_steam_rock_crusher', [ - 'ECE', - 'BAB', - 'DDD' - ], { - A: 'gtceu:steel_brick_casing', - B: 'gtceu:tin_alloy_small_fluid_pipe', - C: '#forge:drill_heads', - D: '#forge:rods/wrought_iron', - E: '#forge:screws/wrought_iron' - }).id('gtceu:shaped/steam_rock_breaker_steel') - - // Miner - event.shaped('gtceu:hp_steam_miner', [ - 'EFE', - 'BAB', - 'DCD' - ], { - A: 'gtceu:steel_brick_casing', - B: 'gtceu:tin_alloy_small_fluid_pipe', - C: '#forge:drill_heads', - D: '#forge:rods/steel', - E: '#forge:plates/wrought_iron', - F: '#gtceu:circuits/ulv' - }).id('gtceu:shaped/steam_miner_steel') - - //#endregion - //#region Стеклодувка // Glass Tube @@ -824,18 +417,6 @@ const registerGTCEURecipes = (event) => { C: 'tfc:glue' }).id('gtceu:shaped/gear_wood') - // Контроллер теплицы - event.shaped('gtceu:greenhouse', [ - 'ABA', - 'CDC', - 'BCB' - ], { - A: '#gtceu:circuits/mv', - B: 'gtceu:copper_single_cable', - C: '#gtceu:circuits/mv', - D: 'gtceu:solid_machine_casing' - }).id('tfg:shaped/greenhouse') - // Compressed Coke Clay event.shaped('gtceu:compressed_coke_clay', [ 'AAA', @@ -933,444 +514,6 @@ const registerGTCEURecipes = (event) => { //#endregion - //#region passthrough hatches - event.recipes.shaped('gtceu:lv_item_passthrough_hatch', [ - ' A ', - 'BCB', - ' D ' - ], { - A: 'gtceu:lv_conveyor_module', - B: 'gtceu:small_wrought_iron_gear', - C: 'gtceu:lv_machine_hull', - D: '#tfg:default_chests' - }).id('gtceu:shaped/passthrough_hatch_item_lv') - - event.recipes.shaped('gtceu:mv_item_passthrough_hatch', [ - ' A ', - 'BCB', - ' D ' - ], { - A: 'gtceu:mv_conveyor_module', - B: 'gtceu:small_bronze_gear', - C: 'gtceu:mv_machine_hull', - D: '#tfg:default_chests' - }).id('gtceu:shaped/passthrough_hatch_item_mv') - - event.recipes.shaped('gtceu:ev_item_passthrough_hatch', [ - ' A ', - 'BCB', - ' D ' - ], { - A: 'gtceu:ev_conveyor_module', - B: 'gtceu:small_titanium_gear', - C: 'gtceu:ev_machine_hull', - D: '#tfg:default_chests' - }).id('gtceu:shaped/passthrough_hatch_item_ev') - - event.recipes.shaped('gtceu:iv_item_passthrough_hatch', [ - ' A ', - 'BCB', - ' D ' - ], { - A: 'gtceu:iv_conveyor_module', - B: 'gtceu:small_tungsten_steel_gear', - C: 'gtceu:iv_machine_hull', - D: '#tfg:default_chests' - }).id('gtceu:shaped/passthrough_hatch_item_iv') - - event.recipes.shaped('gtceu:luv_item_passthrough_hatch', [ - ' A ', - 'BCB', - ' D ' - ], { - A: 'gtceu:luv_conveyor_module', - B: 'gtceu:small_hsss_gear', - C: 'gtceu:luv_machine_hull', - D: '#tfg:default_chests' - }).id('gtceu:shaped/passthrough_hatch_item_luv') - - event.recipes.shaped('gtceu:zpm_item_passthrough_hatch', [ - ' A ', - 'BCB', - ' D ' - ], { - A: 'gtceu:zpm_conveyor_module', - B: 'gtceu:small_osmiridium_gear', - C: 'gtceu:zpm_machine_hull', - D: '#tfg:default_chests' - }).id('gtceu:shaped/passthrough_hatch_item_zpm') - - event.recipes.shaped('gtceu:uv_item_passthrough_hatch', [ - ' A ', - 'BCB', - ' D ' - ], { - A: 'gtceu:uv_conveyor_module', - B: 'gtceu:small_naquadah_alloy_gear', - C: 'gtceu:uv_machine_hull', - D: '#tfg:default_chests' - }).id('gtceu:shaped/passthrough_hatch_item_uv') - - event.recipes.shaped('gtceu:lv_fluid_passthrough_hatch', [ - ' A ', - 'BCB', - ' D ' - ], { - A: 'gtceu:lv_electric_pump', - B: 'gtceu:bronze_small_fluid_pipe', - C: 'gtceu:lv_machine_hull', - D: '#forge:glass' - }).id('gtceu:shaped/passthrough_hatch_fluid_lv') - - event.recipes.shaped('gtceu:mv_fluid_passthrough_hatch', [ - ' A ', - 'BCB', - ' D ' - ], { - A: 'gtceu:mv_electric_pump', - B: 'gtceu:steel_small_fluid_pipe', - C: 'gtceu:mv_machine_hull', - D: '#forge:glass' - }).id('gtceu:shaped/passthrough_hatch_fluid_mv') - - event.remove('gtceu:shaped/passthrough_hatch_fluid') - - event.recipes.shaped('gtceu:hv_fluid_passthrough_hatch', [ - ' A ', - 'BCB', - ' D ' - ], { - A: 'gtceu:hv_electric_pump', - B: 'gtceu:stainless_steel_small_fluid_pipe', - C: 'gtceu:hv_machine_hull', - D: 'gtceu:tempered_glass' - }).id('gtceu:shaped/passthrough_hatch_fluid_hv') - - event.recipes.shaped('gtceu:ev_fluid_passthrough_hatch', [ - ' A ', - 'BCB', - ' D ' - ], { - A: 'gtceu:ev_electric_pump', - B: 'gtceu:titanium_small_fluid_pipe', - C: 'gtceu:ev_machine_hull', - D: 'gtceu:tempered_glass' - }).id('gtceu:shaped/passthrough_hatch_fluid_ev') - - event.recipes.shaped('gtceu:iv_fluid_passthrough_hatch', [ - ' A ', - 'BCB', - ' D ' - ], { - A: 'gtceu:iv_electric_pump', - B: 'gtceu:tungsten_steel_small_fluid_pipe', - C: 'gtceu:iv_machine_hull', - D: 'gtceu:laminated_glass' - }).id('gtceu:shaped/passthrough_hatch_fluid_iv') - - event.recipes.shaped('gtceu:luv_fluid_passthrough_hatch', [ - ' A ', - 'BCB', - ' D ' - ], { - A: 'gtceu:luv_electric_pump', - B: 'gtceu:niobium_titanium_small_fluid_pipe', - C: 'gtceu:luv_machine_hull', - D: 'gtceu:laminated_glass' - }).id('gtceu:shaped/passthrough_hatch_fluid_luv') - - event.recipes.shaped('gtceu:zpm_fluid_passthrough_hatch', [ - ' A ', - 'BCB', - ' D ' - ], { - A: 'gtceu:zpm_electric_pump', - B: 'gtceu:polybenzimidazole_small_fluid_pipe', - C: 'gtceu:zpm_machine_hull', - D: 'gtceu:fusion_glass' - }).id('gtceu:shaped/passthrough_hatch_fluid_zpm') - - event.recipes.shaped('gtceu:uv_fluid_passthrough_hatch', [ - ' A ', - 'BCB', - ' D ' - ], { - A: 'gtceu:uv_electric_pump', - B: 'gtceu:naquadah_small_fluid_pipe', - C: 'gtceu:uv_machine_hull', - D: 'gtceu:fusion_glass' - }).id('gtceu:shaped/passthrough_hatch_fluid_uv') - - //#endregion - - //#region Long Distance Pipelines - - event.remove({ id: 'gtceu:assembler/long_distance_item_pipe' }) - event.recipes.gtceu.assembler('long_distance_item_pipe') - .itemInputs( - '1x gtceu:tin_large_item_pipe', - '4x #forge:plates/steel') - .inputFluids(Fluid.of('gtceu:soldering_alloy', 144 / 4)) - .itemOutputs('32x gtceu:long_distance_item_pipeline') - .circuit(2) - .duration(300) - .EUt(24) - - event.remove({ id: 'gtceu:assembler/long_distance_fluid_pipe' }) - event.recipes.gtceu.assembler('long_distance_fluid_pipe') - .itemInputs( - '1x gtceu:bronze_large_fluid_pipe', - '4x #forge:plates/steel') - .inputFluids(Fluid.of('gtceu:soldering_alloy', 144 / 4)) - .itemOutputs('32x gtceu:long_distance_fluid_pipeline') - .circuit(2) - .duration(300) - .EUt(24) - - //#endregion - - //#region LV hull - - event.replaceInput('gtceu:shaped/lv_machine_hull', '#forge:plates/wrought_iron', '#forge:plates/red_steel') - - //#endregion - - //#region make colored steel a bit easier to compensate - - event.recipes.gtceu.arc_furnace('tfg:black_steel_dust_to_ingot') - .itemInputs('gtceu:black_steel_dust') - .itemOutputs('tfc:metal/ingot/black_steel') - .inputFluids(Fluid.of('gtceu:oxygen', 72)) - .duration(500) - .EUt(24) - - event.recipes.gtceu.arc_furnace('tfg:red_steel_dust_to_ingot') - .itemInputs('gtceu:red_steel_dust') - .itemOutputs('tfc:metal/ingot/red_steel') - .inputFluids(Fluid.of('gtceu:oxygen', 72)) - .duration(700) - .EUt(32) - - event.recipes.gtceu.arc_furnace('tfg:blue_steel_dust_to_ingot') - .itemInputs('gtceu:blue_steel_dust') - .itemOutputs('tfc:metal/ingot/blue_steel') - .inputFluids(Fluid.of('gtceu:oxygen', 72)) - .duration(700) - .EUt(32) - - //#endregion - - //#region add regular furnace recipes for other tfc alloys - - event.remove({ id: 'gtceu:electric_blast_furnace/blast_bismuth_bronze' }) - event.remove({ id: 'gtceu:electric_blast_furnace/blast_bismuth_bronze_gas' }) - event.remove({ id: 'gtceu:electric_blast_furnace/blast_black_bronze' }) - event.remove({ id: 'gtceu:electric_blast_furnace/blast_black_bronze_gas' }) - event.remove({ id: 'gtceu:vacuum_freezer/cool_hot_black_bronze_ingot' }) - event.remove({ id: 'gtceu:vacuum_freezer/black_bronze' }) - event.remove({ id: 'gtceu:electric_blast_furnace/blast_sterling_silver' }) - event.remove({ id: 'gtceu:electric_blast_furnace/blast_sterling_silver_gas' }) - event.remove({ id: 'gtceu:electric_blast_furnace/blast_rose_gold' }) - event.remove({ id: 'gtceu:electric_blast_furnace/blast_rose_gold_gas' }) - - event.smelting('gtceu:bismuth_bronze_ingot', 'gtceu:bismuth_bronze_dust') - event.smelting('gtceu:black_bronze_ingot', 'gtceu:black_bronze_dust') - event.smelting('gtceu:sterling_silver_ingot', 'gtceu:sterling_silver_dust') - event.smelting('gtceu:rose_gold_ingot', 'gtceu:rose_gold_dust') - - //#endregion - - // Add circuit to assembler recipe for redstone lamp. - // Avoids conflict with AE2 smart cables. - event.remove({ id: 'gtceu:assembler/redstone_lamp' }) - event.recipes.gtceu.assembler('redstone_lamp') - .itemInputs('4x #forge:dusts/redstone', '4x #forge:dusts/glowstone') - .itemOutputs('1x minecraft:redstone_lamp') - .circuit(1) - .duration(100) - .EUt(1) - - // Clear NBT on tanks with shapeless crafts. - const TANK_NAMES = [ - "lv_super", - "mv_super", - "hv_super", - "ev_super", - "iv_quantum", - "luv_quantum", - "zpm_quantum", - "uv_quantum", - "uhv_quantum", - ] - - TANK_NAMES.forEach(prefix => { - // Craft super tanks to remove their NBT data. - event.shapeless(`gtceu:${prefix}_tank`, [`gtceu:${prefix}_tank`]) - // Craft super chests to remove their NBT data. - event.shapeless(`gtceu:${prefix}_chest`, [`gtceu:${prefix}_chest`]) - }) - - // red alloy, because crucible always makes 4+1=5 - - event.remove({ id: 'gtceu:mixer/red_alloy' }) - event.recipes.gtceu.mixer('tfg:red_alloy_mixer') - .itemInputs('1x gtceu:copper_dust', '4x minecraft:redstone') - .itemOutputs('5x gtceu:red_alloy_dust') - .circuit(2) - .duration(100) - .EUt(7) - - event.remove({ id: 'gtceu:centrifuge/red_alloy_separation' }) - event.recipes.gtceu.centrifuge('tfg:red_alloy_separation') - .itemInputs('5x gtceu:red_alloy_dust') - .itemOutputs('1x gtceu:copper_dust', '4x minecraft:redstone') - .duration(900) - .EUt(30) - - event.remove({ id: 'gtceu:alloy_smelter/copper_dust_and_redstone_dust_into_red_alloy' }) - event.recipes.gtceu.alloy_smelter('tfg:copper_dust_and_redstone_dust_into_red_alloy') - .itemInputs('1x gtceu:copper_dust', '4x minecraft:redstone') - .itemOutputs('5x gtceu:red_alloy_ingot') - .duration(50) - .EUt(16) - - event.remove({ id: 'gtceu:alloy_smelter/annealed_copper_dust_and_redstone_dust_into_red_alloy' }) - event.recipes.gtceu.alloy_smelter('tfg:annealed_copper_dust_and_redstone_dust_into_red_alloy') - .itemInputs('1x gtceu:annealed_copper_dust', '4x minecraft:redstone') - .itemOutputs('5x gtceu:red_alloy_ingot') - .duration(50) - .EUt(16) - - event.remove({ id: 'gtceu:alloy_smelter/copper_ingot_and_redstone_dust_into_red_alloy' }) - event.recipes.gtceu.alloy_smelter('tfg:copper_ingot_and_redstone_dust_into_red_alloy') - .itemInputs('1x minecraft:copper_ingot', '4x minecraft:redstone') - .itemOutputs('5x gtceu:red_alloy_ingot') - .duration(50) - .EUt(16) - - event.remove({ id: 'gtceu:alloy_smelter/annealed_copper_ingot_and_redstone_dust_into_red_alloy' }) - event.recipes.gtceu.alloy_smelter('tfg:annealed_copper_ingot_and_redstone_dust_into_red_alloy') - .itemInputs('1x gtceu:annealed_copper_ingot', '4x minecraft:redstone') - .itemOutputs('5x gtceu:red_alloy_ingot') - .duration(50) - .EUt(16) - - // steam machines - - event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_forge_hammer' }) - event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_forge_hammer') - .itemInputs('1x gtceu:hp_steam_forge_hammer') - .itemOutputs('8x gtceu:wrought_iron_ingot', '3x gtceu:steel_ingot', '2x gtceu:tin_alloy_ingot') - .duration(3310) - .EUt(30) - .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) - - event.remove({ id: 'gtceu:macerator/macerate_hp_steam_forge_hammer' }) - event.recipes.gtceu.macerator('tfg:macerate_hp_steam_forge_hammer') - .itemInputs('1x gtceu:hp_steam_forge_hammer') - .itemOutputs('8x gtceu:iron_dust', '3x gtceu:steel_dust', '2x gtceu:tin_alloy_dust', '12x gtceu:brick_dust') - .duration(3254) - .EUt(8) - .category(GTRecipeCategories.MACERATOR_RECYCLING) - - event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_extractor' }) - event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_extractor') - .itemInputs('1x gtceu:hp_steam_extractor') - .itemOutputs('7x gtceu:wrought_iron_ingot', '2x gtceu:steel_ingot', '3x gtceu:tin_alloy_ingot') - .duration(3310) - .EUt(30) - .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) - - event.remove({ id: 'gtceu:macerator/macerate_hp_steam_extractor' }) - event.recipes.gtceu.macerator('tfg:macerate_hp_steam_extractor') - .itemInputs('1x gtceu:hp_steam_extractor') - .itemOutputs('7x gtceu:iron_dust', '2x gtceu:steel_dust', '3x gtceu:tin_alloy_dust', '12x gtceu:brick_dust') - .duration(3254) - .EUt(8) - .category(GTRecipeCategories.MACERATOR_RECYCLING) - - event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_macerator' }) - event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_macerator') - .itemInputs('1x gtceu:hp_steam_macerator') - .itemOutputs('8x gtceu:wrought_iron_ingot', '3x gtceu:steel_ingot', '2x gtceu:tin_alloy_ingot') - .duration(3310) - .EUt(30) - .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) - - event.remove({ id: 'gtceu:macerator/macerate_hp_steam_macerator' }) - event.recipes.gtceu.macerator('tfg:macerate_hp_steam_macerator') - .itemInputs('1x gtceu:hp_steam_macerator') - .itemOutputs('8x gtceu:iron_dust', '3x gtceu:steel_dust', '2x gtceu:tin_alloy_dust', '12x gtceu:brick_dust') - .duration(3254) - .EUt(8) - .category(GTRecipeCategories.MACERATOR_RECYCLING) - - event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_compressor' }) - event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_compressor') - .itemInputs('1x gtceu:hp_steam_compressor') - .itemOutputs('7x gtceu:wrought_iron_ingot', '1x gtceu:steel_ingot', '5x gtceu:tin_alloy_ingot') - .duration(3310) - .EUt(30) - .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) - - event.remove({ id: 'gtceu:macerator/macerate_hp_steam_compressor' }) - event.recipes.gtceu.macerator('tfg:macerate_hp_steam_compressor') - .itemInputs('1x gtceu:hp_steam_compressor') - .itemOutputs('7x gtceu:iron_dust', '1x gtceu:steel_dust', '5x gtceu:tin_alloy_dust', '12x gtceu:brick_dust') - .duration(3254) - .EUt(8) - .category(GTRecipeCategories.MACERATOR_RECYCLING) - - event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_furnace' }) - event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_furnace') - .itemInputs('1x gtceu:hp_steam_furnace') - .itemOutputs('7x gtceu:wrought_iron_ingot', '2x gtceu:steel_ingot', '4x gtceu:tin_alloy_ingot') - .duration(3310) - .EUt(30) - .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) - - event.remove({ id: 'gtceu:macerator/macerate_hp_steam_furnace' }) - event.recipes.gtceu.macerator('tfg:macerate_hp_steam_furnace') - .itemInputs('1x gtceu:hp_steam_furnace') - .itemOutputs('7x gtceu:iron_dust', '2x gtceu:steel_dust', '4x gtceu:tin_alloy_dust', '12x gtceu:brick_dust') - .duration(3254) - .EUt(8) - .category(GTRecipeCategories.MACERATOR_RECYCLING) - - event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_alloy_smelter' }) - event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_alloy_smelter') - .itemInputs('1x gtceu:hp_steam_alloy_smelter') - .itemOutputs('11x gtceu:wrought_iron_ingot', '1x gtceu:steel_ingot', '1x gtceu:tin_alloy_ingot') - .duration(3310) - .EUt(30) - .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) - - event.remove({ id: 'gtceu:macerator/macerate_hp_steam_alloy_smelter' }) - event.recipes.gtceu.macerator('tfg:macerate_hp_steam_alloy_smelter') - .itemInputs('1x gtceu:hp_steam_alloy_smelter') - .itemOutputs('11x gtceu:iron_dust', '1x gtceu:steel_dust', '1x gtceu:tin_alloy_dust', '12x gtceu:brick_dust') - .duration(3254) - .EUt(8) - .category(GTRecipeCategories.MACERATOR_RECYCLING) - - event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_rock_crusher' }) - event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_rock_crusher') - .itemInputs('1x gtceu:hp_steam_rock_crusher') - .itemOutputs('10x gtceu:wrought_iron_ingot', '1x gtceu:steel_ingot', '2x gtceu:tin_alloy_ingot') - .duration(3310) - .EUt(30) - .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) - - event.remove({ id: 'gtceu:macerator/macerate_hp_steam_rock_crusher' }) - event.recipes.gtceu.macerator('tfg:macerate_hp_steam_rock_crusher') - .itemInputs('1x gtceu:hp_steam_rock_crusher') - .itemOutputs('10x gtceu:iron_dust', '1x gtceu:steel_dust', '2x gtceu:tin_alloy_dust', '12x gtceu:brick_dust') - .duration(3254) - .EUt(8) - .category(GTRecipeCategories.MACERATOR_RECYCLING) - - //#endregion - //#region Quantum mainframe stack fix. // // Quantum Mainframes need 48x annealed copper wire but @@ -1829,16 +972,7 @@ const registerGTCEURecipes = (event) => { }) //#endregion - - event.shaped('4x minecraft:ladder', [ - 'A A', - 'AAA', - 'A A' - ], { - A: '#forge:rods/wooden' - }).id('gtceu:shaped/ladder') - - + // TODO: Greate again... event.shapeless('gtceu:red_alloy_single_cable', ['gtceu:red_alloy_single_wire', '#forge:plates/rubber']) .id('tfg:shapeless/red_alloy_single_cable') diff --git a/kubejs/server_scripts/gregtech/recipes.machines.js b/kubejs/server_scripts/gregtech/recipes.machines.js new file mode 100644 index 000000000..1b655e940 --- /dev/null +++ b/kubejs/server_scripts/gregtech/recipes.machines.js @@ -0,0 +1,694 @@ +// priority: 0 + +function registerGTCEuMachineRecipes(event) { + //#region Выход: Filter Casing + + event.shaped('gtceu:filter_casing', [ + 'AAA', + 'BBB', + 'CDE' + ], { + A: '#tfg:metal_bars', + B: 'gtceu:item_filter', + C: 'gtceu:mv_electric_motor', + D: 'gtceu:steel_frame', + E: '#forge:rotors/steel' + }).id('gtceu:shaped/filter_casing') + + //#endregion + + //#region Выход: Assembly Line Grating + + event.shaped('2x gtceu:assembly_line_grating', [ + 'ABA', + 'ACA', + 'ADA' + ], { + A: '#tfg:metal_bars', + B: '#forge:rotors/steel', + C: 'gtceu:steel_frame', + D: 'gtceu:mv_electric_motor' + }).id('gtceu:shaped/casing_grate_casing') + + //#endregion + + //#region Gas Collectors + + event.shaped('gtceu:lv_gas_collector', [ + 'ABA', + 'CEC', + 'ADA' + ], { + A: '#tfg:metal_bars', + B: 'gtceu:fluid_filter', + C: 'gtceu:lv_electric_pump', + D: '#gtceu:circuits/lv', + E: 'gtceu:lv_machine_hull' + }).id('gtceu:shaped/lv_gas_collector') + + event.shaped('gtceu:mv_gas_collector', [ + 'ABA', + 'CEC', + 'ADA' + ], { + A: '#tfg:metal_bars', + B: 'gtceu:fluid_filter', + C: 'gtceu:mv_electric_pump', + D: '#gtceu:circuits/mv', + E: 'gtceu:mv_machine_hull' + }).id('gtceu:shaped/mv_gas_collector') + + event.shaped('gtceu:hv_gas_collector', [ + 'ABA', + 'CEC', + 'ADA' + ], { + A: '#tfg:metal_bars', + B: 'gtceu:fluid_filter', + C: 'gtceu:hv_electric_pump', + D: '#gtceu:circuits/hv', + E: 'gtceu:hv_machine_hull' + }).id('gtceu:shaped/hv_gas_collector') + + event.shaped('gtceu:ev_gas_collector', [ + 'ABA', + 'CEC', + 'ADA' + ], { + A: '#tfg:metal_bars', + B: 'gtceu:fluid_filter', + C: 'gtceu:ev_electric_pump', + D: '#gtceu:circuits/ev', + E: 'gtceu:ev_machine_hull' + }).id('gtceu:shaped/ev_gas_collector') + + event.shaped('gtceu:iv_gas_collector', [ + 'ABA', + 'CEC', + 'ADA' + ], { + A: '#tfg:metal_bars', + B: 'gtceu:fluid_filter', + C: 'gtceu:iv_electric_pump', + D: '#gtceu:circuits/iv', + E: 'gtceu:iv_machine_hull' + }).id('gtceu:shaped/iv_gas_collector') + + event.shaped('gtceu:luv_gas_collector', [ + 'ABA', + 'CEC', + 'ADA' + ], { + A: '#tfg:metal_bars', + B: 'gtceu:fluid_filter', + C: 'gtceu:luv_electric_pump', + D: '#gtceu:circuits/luv', + E: 'gtceu:luv_machine_hull' + }).id('gtceu:shaped/luv_gas_collector') + + event.shaped('gtceu:zpm_gas_collector', [ + 'ABA', + 'CEC', + 'ADA' + ], { + A: '#tfg:metal_bars', + B: 'gtceu:fluid_filter', + C: 'gtceu:zpm_electric_pump', + D: '#gtceu:circuits/zpm', + E: 'gtceu:zpm_machine_hull' + }).id('gtceu:shaped/zpm_gas_collector') + + event.shaped('gtceu:uv_gas_collector', [ + 'ABA', + 'CEC', + 'ADA' + ], { + A: '#tfg:metal_bars', + B: 'gtceu:fluid_filter', + C: 'gtceu:uv_electric_pump', + D: '#gtceu:circuits/uv', + E: 'gtceu:uv_machine_hull' + }).id('gtceu:shaped/uv_gas_collector') + + //#endregion + + //#region Forge Hammers + + event.shaped('gtceu:lv_forge_hammer', [ + 'ABA', + 'CDC', + 'AEA' + ], { + A: 'gtceu:tin_single_cable', + B: 'gtceu:lv_electric_piston', + C: '#gtceu:circuits/lv', + D: 'gtceu:lv_machine_hull', + E: 'tfc:metal/anvil/steel', + }).id('gtceu:shaped/lv_forge_hammer') + + event.shaped('gtceu:mv_forge_hammer', [ + 'ABA', + 'CDC', + 'AEA' + ], { + A: 'gtceu:copper_single_cable', + B: 'gtceu:mv_electric_piston', + C: '#gtceu:circuits/mv', + D: 'gtceu:mv_machine_hull', + E: 'tfc:metal/anvil/steel', + }).id('gtceu:shaped/mv_forge_hammer') + + event.shaped('gtceu:hv_forge_hammer', [ + 'ABA', + 'CDC', + 'AEA' + ], { + A: 'gtceu:gold_single_cable', + B: 'gtceu:hv_electric_piston', + C: '#gtceu:circuits/hv', + D: 'gtceu:hv_machine_hull', + E: 'tfc:metal/anvil/steel', + }).id('gtceu:shaped/hv_forge_hammer') + + event.shaped('gtceu:ev_forge_hammer', [ + 'ABA', + 'CDC', + 'AEA' + ], { + A: 'gtceu:aluminium_single_cable', + B: 'gtceu:ev_electric_piston', + C: '#gtceu:circuits/ev', + D: 'gtceu:ev_machine_hull', + E: 'tfc:metal/anvil/black_steel', + }).id('gtceu:shaped/ev_forge_hammer') + + event.shaped('gtceu:iv_forge_hammer', [ + 'ABA', + 'CDC', + 'AEA' + ], { + A: 'gtceu:platinum_single_cable', + B: 'gtceu:iv_electric_piston', + C: '#gtceu:circuits/iv', + D: 'gtceu:iv_machine_hull', + E: 'tfc:metal/anvil/black_steel', + }).id('gtceu:shaped/iv_forge_hammer') + + event.shaped('gtceu:luv_forge_hammer', [ + 'ABA', + 'CDC', + 'AEA' + ], { + A: 'gtceu:niobium_titanium_single_cable', + B: 'gtceu:luv_electric_piston', + C: '#gtceu:circuits/luv', + D: 'gtceu:luv_machine_hull', + E: 'tfc:metal/anvil/black_steel', + }).id('gtceu:shaped/luv_forge_hammer') + + event.shaped('gtceu:zpm_forge_hammer', [ + 'ABA', + 'CDC', + 'AEA' + ], { + A: 'gtceu:vanadium_gallium_single_cable', + B: 'gtceu:zpm_electric_piston', + C: '#gtceu:circuits/zpm', + D: 'gtceu:zpm_machine_hull', + E: '#tfc:red_or_blue_anvil', + }).id('gtceu:shaped/zpm_forge_hammer') + + event.shaped('gtceu:uv_forge_hammer', [ + 'ABA', + 'CDC', + 'AEA' + ], { + A: 'gtceu:yttrium_barium_cuprate_single_cable', + B: 'gtceu:uv_electric_piston', + C: '#gtceu:circuits/uv', + D: 'gtceu:uv_machine_hull', + E: '#tfc:red_or_blue_anvil', + }).id('gtceu:shaped/uv_forge_hammer') + + //#endregion + + //#region CokeOven + + // Coke Oven + event.shaped('gtceu:coke_oven', [ + 'ABA', + 'BCB', + 'ABA' + ], { + A: 'gtceu:coke_oven_bricks', + B: '#forge:plates/wrought_iron', + C: '#forge:tools/wrenches' + }).id('gtceu:shaped/coke_oven') + + // Coke Oven Hatch + event.recipes.tfc.no_remainder_shaped_crafting( + event.shaped('gtceu:coke_oven_hatch', [ + 'AB' + ], { + A: 'gtceu:coke_oven_bricks', + B: '#tfc:barrels' + }) + ).id('gtceu:shaped/coke_oven_hatch') + + //#endregion + + // High Pressure Steam Miner + event.replaceInput({ id: 'gtceu:shaped/steam_miner_steel' }, + 'gtceu:lp_steam_miner', 'gtceu:steel_brick_casing') + + //#region Выход: Стальные машины + + // HP Steam Boilers + event.shaped('gtceu:hp_steam_solid_boiler', [ + 'AEA', + 'ADA', + 'BCB' + ], { + A: '#forge:plates/steel', + B: 'gtceu:tin_alloy_small_fluid_pipe', + C: 'gtceu:steel_brick_casing', + D: 'tfc:crucible', + E: '#forge:rods/black_steel' + }).id('gtceu:shaped/steam_boiler_coal_steel') + + event.shaped('gtceu:hp_steam_liquid_boiler', [ + 'AEA', + 'ADA', + 'BCB' + ], { + A: '#forge:plates/steel', + B: 'gtceu:tin_alloy_small_fluid_pipe', + C: 'gtceu:steel_brick_casing', + D: '#forge:glass', + E: '#forge:rods/black_steel' + }).id('gtceu:shaped/steam_boiler_lava_steel') + + event.shaped('gtceu:hp_steam_solar_boiler', [ + 'AAA', + 'BCB', + 'EDE' + ], { + A: '#forge:glass_panes', + B: '#forge:double_plates/silver', + C: '#forge:rods/black_steel', + D: 'gtceu:steel_brick_casing', + E: 'gtceu:tin_alloy_small_fluid_pipe', + }).id('gtceu:shaped/steam_boiler_solar_steel') + + // Экстрактор + event.shaped('gtceu:hp_steam_extractor', [ + 'BEB', + 'CAC', + 'DFD' + ], { + A: 'gtceu:steel_brick_casing', + B: 'gtceu:tin_alloy_small_fluid_pipe', + C: '#forge:plates/steel', + D: '#forge:plates/wrought_iron', + E: '#forge:glass_panes', + F: '#forge:rings/black_steel' + }).id('gtceu:shaped/steam_extractor_steel') + + // Дробитель + event.shaped('gtceu:hp_steam_macerator', [ + 'BFB', + 'CAC', + 'DED' + ], { + A: 'gtceu:steel_brick_casing', + B: '#forge:small_gears/wrought_iron', + C: '#forge:plates/steel', + D: '#forge:rods/black_steel', + E: 'gtceu:tin_alloy_small_fluid_pipe', + F: '#forge:raw_materials/diamond' + }).id('gtceu:shaped/steam_macerator_steel') + + // Компрессор + event.shaped('gtceu:hp_steam_compressor', [ + 'BCB', + 'EAE', + 'DFD' + ], { + A: 'gtceu:steel_brick_casing', + B: 'gtceu:tin_alloy_small_fluid_pipe', + C: '#forge:plates/steel', + D: '#forge:plates/wrought_iron', + E: 'minecraft:piston', + F: '#forge:rods/black_steel' + }).id('gtceu:shaped/steam_compressor_steel') + + // Молот + event.shaped('gtceu:hp_steam_forge_hammer', [ + 'DFD', + 'BEB', + 'CAC' + ], { + A: 'gtceu:steel_brick_casing', + B: 'gtceu:tin_alloy_small_fluid_pipe', + C: '#forge:plates/steel', + D: '#forge:plates/wrought_iron', + E: '#forge:ingots/black_steel', + F: 'minecraft:piston' + }).id('gtceu:shaped/steam_hammer_steel') + + // Печь + event.shaped('gtceu:hp_steam_furnace', [ + 'BCB', + 'DAD', + 'FFF' + ], { + A: 'gtceu:steel_brick_casing', + B: 'gtceu:tin_alloy_small_fluid_pipe', + C: '#forge:plates/steel', + D: '#forge:plates/wrought_iron', + F: '#forge:rods/black_steel' + }).id('gtceu:shaped/steam_furnace_steel') + + // Сплавщик + event.shaped('gtceu:hp_steam_alloy_smelter', [ + 'FCF', + 'DAD', + 'CBC' + ], { + A: 'gtceu:steel_brick_casing', + B: 'gtceu:tin_alloy_small_fluid_pipe', + C: '#forge:plates/steel', + D: '#forge:plates/wrought_iron', + F: '#forge:rods/black_steel' + }).id('gtceu:shaped/steam_alloy_smelter_steel') + + // Блоко-ломатель + event.shaped('gtceu:hp_steam_rock_crusher', [ + 'ECE', + 'BAB', + 'DDD' + ], { + A: 'gtceu:steel_brick_casing', + B: 'gtceu:tin_alloy_small_fluid_pipe', + C: '#forge:drill_heads', + D: '#forge:rods/wrought_iron', + E: '#forge:screws/wrought_iron' + }).id('gtceu:shaped/steam_rock_breaker_steel') + + // Miner + event.shaped('gtceu:hp_steam_miner', [ + 'EFE', + 'BAB', + 'DCD' + ], { + A: 'gtceu:steel_brick_casing', + B: 'gtceu:tin_alloy_small_fluid_pipe', + C: '#forge:drill_heads', + D: '#forge:rods/steel', + E: '#forge:plates/wrought_iron', + F: '#gtceu:circuits/ulv' + }).id('gtceu:shaped/steam_miner_steel') + + //#endregion + + //#region passthrough hatches + event.recipes.shaped('gtceu:lv_item_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:lv_conveyor_module', + B: 'gtceu:small_wrought_iron_gear', + C: 'gtceu:lv_machine_hull', + D: '#tfg:default_chests' + }).id('gtceu:shaped/passthrough_hatch_item_lv') + + event.recipes.shaped('gtceu:mv_item_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:mv_conveyor_module', + B: 'gtceu:small_bronze_gear', + C: 'gtceu:mv_machine_hull', + D: '#tfg:default_chests' + }).id('gtceu:shaped/passthrough_hatch_item_mv') + + event.recipes.shaped('gtceu:ev_item_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:ev_conveyor_module', + B: 'gtceu:small_titanium_gear', + C: 'gtceu:ev_machine_hull', + D: '#tfg:default_chests' + }).id('gtceu:shaped/passthrough_hatch_item_ev') + + event.recipes.shaped('gtceu:iv_item_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:iv_conveyor_module', + B: 'gtceu:small_tungsten_steel_gear', + C: 'gtceu:iv_machine_hull', + D: '#tfg:default_chests' + }).id('gtceu:shaped/passthrough_hatch_item_iv') + + event.recipes.shaped('gtceu:luv_item_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:luv_conveyor_module', + B: 'gtceu:small_hsss_gear', + C: 'gtceu:luv_machine_hull', + D: '#tfg:default_chests' + }).id('gtceu:shaped/passthrough_hatch_item_luv') + + event.recipes.shaped('gtceu:zpm_item_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:zpm_conveyor_module', + B: 'gtceu:small_osmiridium_gear', + C: 'gtceu:zpm_machine_hull', + D: '#tfg:default_chests' + }).id('gtceu:shaped/passthrough_hatch_item_zpm') + + event.recipes.shaped('gtceu:uv_item_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:uv_conveyor_module', + B: 'gtceu:small_naquadah_alloy_gear', + C: 'gtceu:uv_machine_hull', + D: '#tfg:default_chests' + }).id('gtceu:shaped/passthrough_hatch_item_uv') + + event.recipes.shaped('gtceu:lv_fluid_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:lv_electric_pump', + B: 'gtceu:bronze_small_fluid_pipe', + C: 'gtceu:lv_machine_hull', + D: '#forge:glass' + }).id('gtceu:shaped/passthrough_hatch_fluid_lv') + + event.recipes.shaped('gtceu:mv_fluid_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:mv_electric_pump', + B: 'gtceu:steel_small_fluid_pipe', + C: 'gtceu:mv_machine_hull', + D: '#forge:glass' + }).id('gtceu:shaped/passthrough_hatch_fluid_mv') + + event.remove('gtceu:shaped/passthrough_hatch_fluid') + + event.recipes.shaped('gtceu:hv_fluid_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:hv_electric_pump', + B: 'gtceu:stainless_steel_small_fluid_pipe', + C: 'gtceu:hv_machine_hull', + D: 'gtceu:tempered_glass' + }).id('gtceu:shaped/passthrough_hatch_fluid_hv') + + event.recipes.shaped('gtceu:ev_fluid_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:ev_electric_pump', + B: 'gtceu:titanium_small_fluid_pipe', + C: 'gtceu:ev_machine_hull', + D: 'gtceu:tempered_glass' + }).id('gtceu:shaped/passthrough_hatch_fluid_ev') + + event.recipes.shaped('gtceu:iv_fluid_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:iv_electric_pump', + B: 'gtceu:tungsten_steel_small_fluid_pipe', + C: 'gtceu:iv_machine_hull', + D: 'gtceu:laminated_glass' + }).id('gtceu:shaped/passthrough_hatch_fluid_iv') + + event.recipes.shaped('gtceu:luv_fluid_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:luv_electric_pump', + B: 'gtceu:niobium_titanium_small_fluid_pipe', + C: 'gtceu:luv_machine_hull', + D: 'gtceu:laminated_glass' + }).id('gtceu:shaped/passthrough_hatch_fluid_luv') + + event.recipes.shaped('gtceu:zpm_fluid_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:zpm_electric_pump', + B: 'gtceu:polybenzimidazole_small_fluid_pipe', + C: 'gtceu:zpm_machine_hull', + D: 'gtceu:fusion_glass' + }).id('gtceu:shaped/passthrough_hatch_fluid_zpm') + + event.recipes.shaped('gtceu:uv_fluid_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:uv_electric_pump', + B: 'gtceu:naquadah_small_fluid_pipe', + C: 'gtceu:uv_machine_hull', + D: 'gtceu:fusion_glass' + }).id('gtceu:shaped/passthrough_hatch_fluid_uv') + + //#endregion + + //#region Long Distance Pipelines + + event.remove({ id: 'gtceu:assembler/long_distance_item_pipe' }) + event.recipes.gtceu.assembler('long_distance_item_pipe') + .itemInputs( + '1x gtceu:tin_large_item_pipe', + '4x #forge:plates/steel') + .inputFluids(Fluid.of('gtceu:soldering_alloy', 144 / 4)) + .itemOutputs('32x gtceu:long_distance_item_pipeline') + .circuit(2) + .duration(300) + .EUt(24) + + event.remove({ id: 'gtceu:assembler/long_distance_fluid_pipe' }) + event.recipes.gtceu.assembler('long_distance_fluid_pipe') + .itemInputs( + '1x gtceu:bronze_large_fluid_pipe', + '4x #forge:plates/steel') + .inputFluids(Fluid.of('gtceu:soldering_alloy', 144 / 4)) + .itemOutputs('32x gtceu:long_distance_fluid_pipeline') + .circuit(2) + .duration(300) + .EUt(24) + + //#endregion + + // Контроллер теплицы + event.shaped('gtceu:greenhouse', [ + 'ABA', + 'CDC', + 'BCB' + ], { + A: '#gtceu:circuits/mv', + B: 'gtceu:copper_single_cable', + C: '#gtceu:circuits/mv', + D: 'gtceu:solid_machine_casing' + }).id('tfg:shaped/greenhouse') + + // Drums + const DRUMS_AND_CRATES = [ + 'bismuth_bronze', + 'black_bronze' + ] + + DRUMS_AND_CRATES.forEach(material => { + event.shapeless(`gtceu:${material}_drum`, [`gtceu:${material}_drum`]).id(`tfg:shapeless/drum_nbt_${material}`) + + event.shaped(`gtceu:${material}_drum`, [ + ' A ', + 'BCB', + 'BCB' + ], { + A: '#forge:tools/hammers', + B: `#forge:plates/${material}`, + C: `#forge:rods/long/${material}` + }).id(`tfg:shaped/${material}_drum`) + + event.shaped(`gtceu:${material}_crate`, [ + 'CBC', + 'BAB', + 'CBC' + ], { + A: '#forge:tools/hammers', + B: `#forge:plates/${material}`, + C: `#forge:rods/long/${material}` + }).id(`tfg:shaped/${material}_crate`) + + event.recipes.gtceu.assembler(`gtceu:${material}_drum`) + .itemInputs(`4x #forge:plates/${material}`, `2x #forge:rods/long/${material}`) + .itemOutputs(`gtceu:${material}_drum`) + .duration(200) + .EUt(16) + .circuit(2) + + event.recipes.gtceu.assembler(`gtceu:${material}_crate`) + .itemInputs(`4x #forge:plates/${material}`, `4x #forge:rods/long/${material}`) + .itemOutputs(`gtceu:${material}_crate`) + .duration(200) + .EUt(16) + .circuit(1) + + event.recipes.gtceu.macerator(`gtceu:${material}_drum`) + .itemInputs(`gtceu:${material}_drum`) + .itemOutputs(`6x #forge:dusts/${material}`) + .duration(456) + .EUt(2) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + + event.recipes.gtceu.macerator(`gtceu:${material}_crate`) + .itemInputs(`gtceu:${material}_crate`) + .itemOutputs(`8x #forge:dusts/${material}`) + .duration(608) + .EUt(2) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + + event.recipes.gtceu.arc_furnace(`gtceu:${material}_drum`) + .itemInputs(`gtceu:${material}_drum`) + .itemOutputs(`6x #forge:ingots/${material}`) + .duration(456) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + + event.recipes.gtceu.arc_furnace(`gtceu:${material}_crate`) + .itemInputs(`gtceu:${material}_crate`) + .itemOutputs(`8x #forge:ingots/${material}`) + .duration(608) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + }) + +} \ No newline at end of file diff --git a/kubejs/server_scripts/gregtech/recipes.materials.js b/kubejs/server_scripts/gregtech/recipes.materials.js index 1b06f8800..7f72b3cc4 100644 --- a/kubejs/server_scripts/gregtech/recipes.materials.js +++ b/kubejs/server_scripts/gregtech/recipes.materials.js @@ -9,16 +9,10 @@ function registerGTCEUMetalRecipes(event) { const toolHeadItem = ChemicalHelper.get(headTagPrefix, material, 1) if (toolHeadItem.isEmpty()) return - if (material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) { - event.shapeless(toolItem, [ - '#forge:rods/wooden', - toolHeadItem - ]).id(`gtceu:shaped/${toolType.name}_${material.getName()}`) - } - else { - event.recipes.tfc.advanced_shapeless_crafting(TFC.itemStackProvider.of(toolItem).copyForgingBonus(), ['#forge:rods/wooden', toolHeadItem]) - .id(`gtceu:shaped/${toolType.name}_${material.getName()}`) - } + 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) } @@ -281,11 +275,17 @@ function registerGTCEUMetalRecipes(event) { const processPoorRawOre = (tagPrefix, material) => { const poorOreItem = ChemicalHelper.get(tagPrefix, material, 2) - const crushedOreItem = ChemicalHelper.get(TagPrefix.crushed, material, 1) + const crushedOreItem = ChemicalHelper.get(TagPrefix.crushed, material, Math.max(material.getProperty(PropertyKey.ORE).getOreMultiplier() / 2.0, 1)) if (poorOreItem != null && crushedOreItem != null) { + event.recipes.tfc.quern(crushedOreItem, poorOreItem) .id(`tfg:quern/${material.getName()}_crushed_ore_from_poor_raw_ore`) + + // TODO: Remove when Greate fixes its chanced output bug + + event.shapeless(crushedOreItem, [poorOreItem, '#forge:tools/hammers']) + .id(`tfg:greate_workaround_crushed_${material.getName()}`) } } diff --git a/kubejs/server_scripts/gregtech/recipes.recycling.js b/kubejs/server_scripts/gregtech/recipes.recycling.js new file mode 100644 index 000000000..bb34d453d --- /dev/null +++ b/kubejs/server_scripts/gregtech/recipes.recycling.js @@ -0,0 +1,122 @@ +// priority: 0 + +function registerGTCEURecyclingRecipes(event) { + + // Tantalum Capacitor + event.recipes.gtceu.macerator('gtceu:macerator/recycling/tantulum_capacitor') + .itemInputs('gtceu:tantalum_capacitor') + .itemOutputs( + ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Tantalum, 1), + ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Polyethylene, 1) + ) + .duration(GTMaterials.Tantalum.getMass() * 1) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/recycling/tantulum_capacitor') + .itemInputs('gtceu:tantalum_capacitor') + .itemOutputs( + ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Tantalum, 1), + ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Ash, 1) + ) + .duration(GTMaterials.Tantalum.getMass() * 1) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + .EUt(GTValues.VA[GTValues.LV]) + + // Capacitor + event.recipes.gtceu.macerator('gtceu:macerator/recycling/capacitor') + .itemInputs('gtceu:capacitor') + .itemOutputs( + ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Polyethylene, 1) + ) + .duration(GTMaterials.Polyethylene.getMass() * 1) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/recycling/capacitor') + .itemInputs('gtceu:capacitor') + .itemOutputs( + ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Ash, 1) + ) + .duration(GTMaterials.Ash.getMass() * 1) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + .EUt(GTValues.VA[GTValues.LV]) + + // Empty Tier I Capacitor + event.recipes.gtceu.macerator('gtceu:macerator/recycling/empty_tier_i_battery') + .itemInputs('gtceu:empty_tier_i_battery') + .itemOutputs( + ChemicalHelper.get(TagPrefix.dust, GTMaterials.Ultimet, 6) + ) + .duration(GTMaterials.Ultimet.getMass() * 6) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/recycling/empty_tier_i_battery') + .itemInputs('gtceu:empty_tier_i_battery') + .itemOutputs( + ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Ultimet, 6) + ) + .duration(GTMaterials.Ultimet.getMass() * 6) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.extractor('gtceu:extractor/recycling/empty_tier_i_battery') + .itemInputs('gtceu:empty_tier_i_battery') + .outputFluids(Fluid.of('gtceu:ultimet', 864)) + .duration(GTMaterials.Ultimet.getMass() * 6) + .category(GTRecipeCategories.EXTRACTOR_RECYCLING) + .EUt(GTValues.VA[GTValues.LV]) + + // Empty Tier II Capacitor + event.recipes.gtceu.macerator('gtceu:macerator/recycling/empty_tier_ii_battery') + .itemInputs('gtceu:empty_tier_ii_battery') + .itemOutputs( + ChemicalHelper.get(TagPrefix.dust, GTMaterials.Ruridit, 6) + ) + .duration(GTMaterials.Ruridit.getMass() * 6) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/recycling/empty_tier_ii_battery') + .itemInputs('gtceu:empty_tier_ii_battery') + .itemOutputs( + ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Ruridit, 6) + ) + .duration(GTMaterials.Ruridit.getMass() * 6) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.extractor('gtceu:extractor/recycling/empty_tier_ii_battery') + .itemInputs('gtceu:empty_tier_ii_battery') + .outputFluids(Fluid.of('gtceu:ruridit', 864)) + .duration(GTMaterials.Ruridit.getMass() * 6) + .category(GTRecipeCategories.EXTRACTOR_RECYCLING) + .EUt(GTValues.VA[GTValues.LV]) + + // Empty Tier III Capacitor + event.recipes.gtceu.macerator('gtceu:macerator/recycling/empty_tier_iii_battery') + .itemInputs('gtceu:empty_tier_iii_battery') + .itemOutputs( + ChemicalHelper.get(TagPrefix.dust, GTMaterials.Neutronium, 6) + ) + .duration(GTMaterials.Neutronium.getMass() * 6) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/recycling/empty_tier_iii_battery') + .itemInputs('gtceu:empty_tier_iii_battery') + .itemOutputs( + ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Neutronium, 6) + ) + .duration(GTMaterials.Neutronium.getMass() * 6) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.extractor('gtceu:extractor/recycling/empty_tier_iii_battery') + .itemInputs('gtceu:empty_tier_iii_battery') + .outputFluids(Fluid.of('gtceu:neutronium', 864)) + .duration(GTMaterials.Neutronium.getMass() * 6) + .category(GTRecipeCategories.EXTRACTOR_RECYCLING) + .EUt(GTValues.VA[GTValues.LV]) +} \ No newline at end of file diff --git a/kubejs/server_scripts/gregtech/recipes.tfcmetals.js b/kubejs/server_scripts/gregtech/recipes.tfcmetals.js new file mode 100644 index 000000000..84388d6bb --- /dev/null +++ b/kubejs/server_scripts/gregtech/recipes.tfcmetals.js @@ -0,0 +1,310 @@ +// priority: 0 + +function registerGTCEuTFCMetalsRecipes(event) +{ + //#region LV hull + + event.replaceInput('gtceu:shaped/lv_machine_hull', '#forge:plates/wrought_iron', '#forge:plates/red_steel') + + //#endregion + + //#region make colored steel a bit easier to compensate + + event.recipes.gtceu.arc_furnace('tfg:black_steel_dust_to_ingot') + .itemInputs('gtceu:black_steel_dust') + .itemOutputs('tfc:metal/ingot/black_steel') + .inputFluids(Fluid.of('gtceu:oxygen', 72)) + .duration(500) + .EUt(24) + + event.recipes.gtceu.arc_furnace('tfg:red_steel_dust_to_ingot') + .itemInputs('gtceu:red_steel_dust') + .itemOutputs('tfc:metal/ingot/red_steel') + .inputFluids(Fluid.of('gtceu:oxygen', 72)) + .duration(700) + .EUt(32) + + event.recipes.gtceu.arc_furnace('tfg:blue_steel_dust_to_ingot') + .itemInputs('gtceu:blue_steel_dust') + .itemOutputs('tfc:metal/ingot/blue_steel') + .inputFluids(Fluid.of('gtceu:oxygen', 72)) + .duration(700) + .EUt(32) + + //#endregion + + //#region add regular furnace recipes for other tfc alloys + + event.remove({ id: 'gtceu:electric_blast_furnace/blast_bismuth_bronze' }) + event.remove({ id: 'gtceu:electric_blast_furnace/blast_bismuth_bronze_gas' }) + event.remove({ id: 'gtceu:electric_blast_furnace/blast_black_bronze' }) + event.remove({ id: 'gtceu:electric_blast_furnace/blast_black_bronze_gas' }) + event.remove({ id: 'gtceu:vacuum_freezer/cool_hot_black_bronze_ingot' }) + event.remove({ id: 'gtceu:vacuum_freezer/black_bronze' }) + event.remove({ id: 'gtceu:electric_blast_furnace/blast_sterling_silver' }) + event.remove({ id: 'gtceu:electric_blast_furnace/blast_sterling_silver_gas' }) + event.remove({ id: 'gtceu:electric_blast_furnace/blast_rose_gold' }) + event.remove({ id: 'gtceu:electric_blast_furnace/blast_rose_gold_gas' }) + + event.smelting('gtceu:bismuth_bronze_ingot', 'gtceu:bismuth_bronze_dust') + event.smelting('gtceu:black_bronze_ingot', 'gtceu:black_bronze_dust') + event.smelting('gtceu:sterling_silver_ingot', 'gtceu:sterling_silver_dust') + event.smelting('gtceu:rose_gold_ingot', 'gtceu:rose_gold_dust') + + //#endregion + + // Add circuit to assembler recipe for redstone lamp. + // Avoids conflict with AE2 smart cables. + event.remove({ id: 'gtceu:assembler/redstone_lamp' }) + event.recipes.gtceu.assembler('redstone_lamp') + .itemInputs('4x #forge:dusts/redstone', '4x #forge:dusts/glowstone') + .itemOutputs('1x minecraft:redstone_lamp') + .circuit(1) + .duration(100) + .EUt(1) + + // Clear NBT on tanks with shapeless crafts. + const TANK_NAMES = [ + "lv_super", + "mv_super", + "hv_super", + "ev_super", + "iv_quantum", + "luv_quantum", + "zpm_quantum", + "uv_quantum", + "uhv_quantum", + ] + + TANK_NAMES.forEach(prefix => { + // Craft super tanks to remove their NBT data. + event.shapeless(`gtceu:${prefix}_tank`, [`gtceu:${prefix}_tank`]) + // Craft super chests to remove their NBT data. + event.shapeless(`gtceu:${prefix}_chest`, [`gtceu:${prefix}_chest`]) + }) + + // red alloy, because crucible always makes 4+1=5 + + event.remove({ id: 'gtceu:mixer/red_alloy' }) + event.recipes.gtceu.mixer('tfg:red_alloy_mixer') + .itemInputs('1x gtceu:copper_dust', '4x minecraft:redstone') + .itemOutputs('5x gtceu:red_alloy_dust') + .circuit(2) + .duration(100) + .EUt(7) + + event.remove({ id: 'gtceu:centrifuge/red_alloy_separation' }) + event.recipes.gtceu.centrifuge('tfg:red_alloy_separation') + .itemInputs('5x gtceu:red_alloy_dust') + .itemOutputs('1x gtceu:copper_dust', '4x minecraft:redstone') + .duration(900) + .EUt(30) + + event.remove({ id: 'gtceu:alloy_smelter/copper_dust_and_redstone_dust_into_red_alloy' }) + event.recipes.gtceu.alloy_smelter('tfg:copper_dust_and_redstone_dust_into_red_alloy') + .itemInputs('1x gtceu:copper_dust', '4x minecraft:redstone') + .itemOutputs('5x gtceu:red_alloy_ingot') + .duration(50) + .EUt(16) + + event.remove({ id: 'gtceu:alloy_smelter/annealed_copper_dust_and_redstone_dust_into_red_alloy' }) + event.recipes.gtceu.alloy_smelter('tfg:annealed_copper_dust_and_redstone_dust_into_red_alloy') + .itemInputs('1x gtceu:annealed_copper_dust', '4x minecraft:redstone') + .itemOutputs('5x gtceu:red_alloy_ingot') + .duration(50) + .EUt(16) + + event.remove({ id: 'gtceu:alloy_smelter/copper_ingot_and_redstone_dust_into_red_alloy' }) + event.recipes.gtceu.alloy_smelter('tfg:copper_ingot_and_redstone_dust_into_red_alloy') + .itemInputs('1x minecraft:copper_ingot', '4x minecraft:redstone') + .itemOutputs('5x gtceu:red_alloy_ingot') + .duration(50) + .EUt(16) + + event.remove({ id: 'gtceu:alloy_smelter/annealed_copper_ingot_and_redstone_dust_into_red_alloy' }) + event.recipes.gtceu.alloy_smelter('tfg:annealed_copper_ingot_and_redstone_dust_into_red_alloy') + .itemInputs('1x gtceu:annealed_copper_ingot', '4x minecraft:redstone') + .itemOutputs('5x gtceu:red_alloy_ingot') + .duration(50) + .EUt(16) + + // steam machines + + event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_forge_hammer' }) + event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_forge_hammer') + .itemInputs('1x gtceu:hp_steam_forge_hammer') + .itemOutputs('7x gtceu:wrought_iron_ingot', '2x gtceu:steel_ingot', '2x gtceu:tin_alloy_ingot', '1x #forge:ingots/black_steel') + .duration(3310) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + + event.remove({ id: 'gtceu:macerator/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') + .duration(3254) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + + event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_extractor' }) + event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_extractor') + .itemInputs('1x gtceu:hp_steam_extractor') + .itemOutputs('7x gtceu:wrought_iron_ingot', '2x gtceu:steel_ingot', '2x gtceu:tin_alloy_ingot') + .duration(3310) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + + event.remove({ id: 'gtceu:macerator/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') + .duration(3254) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + + event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_macerator' }) + event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_macerator') + .itemInputs('1x gtceu:hp_steam_macerator') + .itemOutputs('7x gtceu:wrought_iron_ingot', '2x gtceu:steel_ingot', '1x #forge:ingots/black_steel', '1x gtceu:tin_alloy_ingot') + .duration(3310) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + + event.remove({ id: 'gtceu:macerator/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') + .duration(3254) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + + event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_compressor' }) + event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_compressor') + .itemInputs('1x gtceu:hp_steam_compressor') + .itemOutputs('8x gtceu:wrought_iron_ingot', '1x gtceu:steel_ingot', '2x gtceu:tin_alloy_ingot') + .duration(3310) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + + event.remove({ id: 'gtceu:macerator/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') + .duration(3254) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + + event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_furnace' }) + event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_furnace') + .itemInputs('1x gtceu:hp_steam_furnace') + .itemOutputs('7x gtceu:wrought_iron_ingot', '2x gtceu:tin_alloy_ingot', '1x gtceu:steel_ingot', '1x #forge:ingots/black_steel') + .duration(3310) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + + event.remove({ id: 'gtceu:macerator/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') + .duration(3254) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + + event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_alloy_smelter' }) + event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_alloy_smelter') + .itemInputs('1x gtceu:hp_steam_alloy_smelter') + .itemOutputs('7x gtceu:wrought_iron_ingot', '3x gtceu:steel_ingot', '1x gtceu:tin_alloy_ingot', '1x #forge:ingots/black_steel') + .duration(3310) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + + event.remove({ id: 'gtceu:macerator/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') + .duration(3254) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + + event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_rock_crusher' }) + event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_rock_crusher') + .itemInputs('1x gtceu:hp_steam_rock_crusher') + .itemOutputs('6x gtceu:wrought_iron_ingot', '2x gtceu:tin_alloy_ingot') + .duration(3310) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + + event.remove({ id: 'gtceu:macerator/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') + .duration(3254) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + + event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_miner' }) + event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_miner') + .itemInputs('1x gtceu:hp_steam_miner') + .itemOutputs('7x gtceu:wrought_iron_ingot', '2x gtceu:tin_alloy_ingot', '1x #forge:ingots/steel') + .duration(3310) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + + event.remove({ id: 'gtceu:macerator/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') + .duration(3254) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + + event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_solid_boiler' }) + event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_solid_boiler') + .itemInputs('1x gtceu:hp_steam_solid_boiler') + .itemOutputs('5x gtceu:wrought_iron_ingot', '4x #forge:ingots/steel', '2x gtceu:tin_alloy_ingot') + .duration(3310) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + + event.remove({ id: 'gtceu:macerator/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') + .duration(3254) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + + event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_liquid_boiler' }) + event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_liquid_boiler') + .itemInputs('1x gtceu:hp_steam_liquid_boiler') + .itemOutputs('5x gtceu:wrought_iron_ingot', '4x #forge:ingots/steel', '2x gtceu:tin_alloy_ingot') + .duration(3310) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + + event.remove({ id: 'gtceu:macerator/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') + .duration(3254) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + + event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_solar_boiler' }) + event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_solar_boiler') + .itemInputs('1x gtceu:hp_steam_solar_boiler') + .itemOutputs('5x gtceu:wrought_iron_ingot', '4x #forge:ingots/silver', '2x gtceu:tin_alloy_ingot') + .duration(3310) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + + event.remove({ id: 'gtceu:macerator/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') + .duration(3254) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + + //#endregion +} \ No newline at end of file diff --git a/kubejs/server_scripts/gregtech/tags.js b/kubejs/server_scripts/gregtech/tags.js index f15a867fa..09d0b8039 100644 --- a/kubejs/server_scripts/gregtech/tags.js +++ b/kubejs/server_scripts/gregtech/tags.js @@ -57,6 +57,12 @@ const registerGTCEUItemTags = (event) => { { event.remove('ae2:p2p_attunements/fluid_p2p_tunnel', `gtceu:${dyeName}_dye_bucket`) }) + + // Piglin loved + event.add('minecraft:piglin_loved', 'gtceu:tiny_pyrite_dust') + event.add('minecraft:piglin_loved', 'gtceu:poor_raw_pyrite') + event.add('minecraft:piglin_loved', 'gtceu:raw_pyrite') + event.add('minecraft:piglin_loved', 'gtceu:rich_raw_pyrite') } const registerGTCEUBlockTags = (event) => { diff --git a/kubejs/server_scripts/gregtech/utility.js b/kubejs/server_scripts/gregtech/utility.js index 8e3c2da48..6962606ec 100644 --- a/kubejs/server_scripts/gregtech/utility.js +++ b/kubejs/server_scripts/gregtech/utility.js @@ -59,42 +59,106 @@ const getFillingNBT = (material, amount) => { } function generatePlatedBlockRecipe(event, material) { + // firmaciv plated blocks don't have this property + let tfcProperty = material.getProperty(TFGPropertyKey.TFC_PROPERTY) + let outputMaterial = (tfcProperty == null || tfcProperty.getOutputMaterial() == null) ? material : tfcProperty.getOutputMaterial() + let plateItem = ChemicalHelper.get(TagPrefix.plate, material, 1); let platedBlock = ChemicalHelper.get(TFGTagPrefix.blockPlated, material, 1); let platedSlab = ChemicalHelper.get(TFGTagPrefix.slabPlated, material, 1); let platedStair = ChemicalHelper.get(TFGTagPrefix.stairPlated, material, 1); + let tfcMetalName = material.getName(); + if (tfcMetalName == "iron") + tfcMetalName = "cast_iron"; + event.recipes.create.item_application(platedBlock, ['#forge:stone_bricks', plateItem]) .id(`tfg:item_application/${material.getName()}_plated_block`) event.recipes.createDeploying(platedBlock, ['#forge:stone_bricks', plateItem]) .id(`tfg:deploying/${material.getName()}_plated_block`) - event.recipes.gtceu.assembler(`tfg:assembler/${material.getName()}_plated_block`) + event.recipes.gtceu.assembler(`tfg:${material.getName()}_plated_block`) .itemInputs('#forge:stone_bricks', plateItem) .itemOutputs(platedBlock) .circuit(10) .duration(50) - .EUt(4) + .EUt(GTValues.VA[GTValues.ULV]) + + if (tfcProperty != null) { + event.recipes.tfc.heating(platedBlock, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${tfcMetalName}_block`) + } + event.recipes.gtceu.macerator(`tfg:${material.getName()}_plated_block`) + .itemInputs(platedBlock) + .itemOutputs(ChemicalHelper.get(TagPrefix.dust, material, 1), 'gtceu:stone_dust') + .duration(material.getMass()) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .EUt(GTValues.VA[GTValues.ULV]) + event.recipes.gtceu.arc_furnace(`tfg:${material.getName()}_plated_block`) + .itemInputs(platedBlock) + .itemOutputs(ChemicalHelper.get(TagPrefix.ingot, material, 1), 'gtceu:ash_dust') + .duration(material.getMass()) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + .EUt(GTValues.VA[GTValues.LV]) + event.recipes.create.item_application(platedSlab, ['#tfg:brick_slabs', plateItem]) .id(`tfg:item_application/${material.getName()}_plated_slab`) event.recipes.createDeploying(platedSlab, ['#tfg:brick_slabs', plateItem]) .id(`tfg:deploying/${material.getName()}_plated_slab`) - event.recipes.gtceu.assembler(`tfg:assembler/${material.getName()}_plated_slab`) + event.recipes.gtceu.assembler(`tfg:${material.getName()}_plated_slab`) .itemInputs('#tfg:brick_slabs', plateItem) .itemOutputs(platedSlab) .circuit(10) .duration(50) - .EUt(4) + .EUt(GTValues.VA[GTValues.ULV]) + + if (tfcProperty != null) { + event.recipes.tfc.heating(platedSlab, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${tfcMetalName}_block_slab`) + } + event.recipes.gtceu.macerator(`tfg:${material.getName()}_plated_slab`) + .itemInputs(platedSlab) + .itemOutputs(ChemicalHelper.get(TagPrefix.dust, material, 1), 'gtceu:small_stone_dust') + .duration(material.getMass()) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .EUt(GTValues.VA[GTValues.ULV]) + event.recipes.gtceu.arc_furnace(`tfg:${material.getName()}_plated_slab`) + .itemInputs(platedSlab) + .itemOutputs(ChemicalHelper.get(TagPrefix.ingot, material, 1), 'gtceu:small_ash_dust') + .duration(material.getMass()) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + .EUt(GTValues.VA[GTValues.LV]) + event.recipes.create.item_application(platedStair, ['#tfg:brick_stairs', plateItem]) .id(`tfg:item_application/${material.getName()}_plated_stair`) event.recipes.createDeploying(platedStair, ['#tfg:brick_stairs', plateItem]) .id(`tfg:deploying/${material.getName()}_plated_stair`) - event.recipes.gtceu.assembler(`tfg:assembler/${material.getName()}_plated_stair`) + event.recipes.gtceu.assembler(`tfg:${material.getName()}_plated_stair`) .itemInputs('#tfg:brick_stairs', plateItem) .itemOutputs(platedStair) .circuit(10) .duration(50) - .EUt(4) + .EUt(GTValues.VA[GTValues.ULV]) + + if (tfcProperty != null) { + event.recipes.tfc.heating(platedStair, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${tfcMetalName}_block_stairs`) + } + event.recipes.gtceu.macerator(`tfg:${material.getName()}_plated_stair`) + .itemInputs(platedStair) + .itemOutputs(ChemicalHelper.get(TagPrefix.dust, material, 1), 'gtceu:stone_dust') + .duration(material.getMass()) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .EUt(GTValues.VA[GTValues.ULV]) + event.recipes.gtceu.arc_furnace(`tfg:${material.getName()}_plated_stair`) + .itemInputs(platedStair) + .itemOutputs(ChemicalHelper.get(TagPrefix.ingot, material, 1), 'gtceu:ash_dust') + .duration(material.getMass()) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + .EUt(GTValues.VA[GTValues.LV]) } \ No newline at end of file diff --git a/kubejs/server_scripts/handglider/recipes.js b/kubejs/server_scripts/handglider/recipes.js index f8713697e..fd10175b8 100644 --- a/kubejs/server_scripts/handglider/recipes.js +++ b/kubejs/server_scripts/handglider/recipes.js @@ -1,16 +1,28 @@ // priority: 0 - + const registerHandGliderRecipes = (event) => { - + + event.remove({id: 'hangglider:glider_framework'}) + // Glider Framework event.shaped('hangglider:glider_framework', [ 'AAA', 'BCB', 'DCD' ], { - A: '#forge:rods/wrought_iron', - B: '#forge:rods/long/wrought_iron', + A: ChemicalHelper.get(TagPrefix.rod, GTMaterials.WroughtIron, 1), + B: ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.WroughtIron, 1), C: '#forge:screws', D: '#forge:rings' - }).id('hangglider:glider_framework') + }).id('hangglider:shaped/glider_framework') + + event.shaped('hangglider:glider_wing', [ + ' C', + ' BA', + 'BAA' + ], { + A: '#forge:cloth', + B: ChemicalHelper.get(TagPrefix.rod, GTMaterials.WroughtIron, 1), + C: '#forge:rings' + }).id('hangglider:shaped/glider_wing') } \ No newline at end of file diff --git a/kubejs/server_scripts/main_server_script.js b/kubejs/server_scripts/main_server_script.js index fa3acf47a..5ea97b213 100644 --- a/kubejs/server_scripts/main_server_script.js +++ b/kubejs/server_scripts/main_server_script.js @@ -132,6 +132,8 @@ TFCEvents.data(event => { LootJS.modifiers((event) => { registerGTCEULoots(event) registerLootrLoots(event) + registerPrimitiveCreatesLoots(event) + registerTFCLoots(event) }); /** @@ -148,7 +150,6 @@ GTCEuServerEvents.oreVeins(event => { */ ServerEvents.recipes(event => { registerAdvancedPeripheralsRecipes(event) - registerAdvancedPeripheralsRecyclingRecipes(event) registerAlekishipsRecipes(event) registerAE2Recipes(event) registerAFCRecipes(event) @@ -162,9 +163,7 @@ ServerEvents.recipes(event => { registerChiselAndBitsRecipes(event) registerComfortsRecipes(event); registerComputerCraftRecipes(event) - registerComputerCraftRecyclingRecipes(event) registerCccBridgeRecipes(event) - registerCccBridgeRecyclingRecipes(event) registerConstructionwandRecipes(event) registerCreateRecipes(event) registerCreateAdditionsRecipes(event) @@ -184,7 +183,7 @@ ServerEvents.recipes(event => { registerFTBQuestsRecipes(event) registerGrapplingHookRecipes(event); registerGreateRecipes(event) - registerGTCEURecipes(event) + registerGTCEURecipes(event); registerHandGliderRecipes(event) registerHotOrNotRecipes(event) registerImmersiveAircraftRecipes(event) diff --git a/kubejs/server_scripts/minecraft/recipes.js b/kubejs/server_scripts/minecraft/recipes.js index ee24eff49..063b83570 100644 --- a/kubejs/server_scripts/minecraft/recipes.js +++ b/kubejs/server_scripts/minecraft/recipes.js @@ -227,6 +227,15 @@ const registerMinecraftRecipes = (event) => { .resultItem('minecraft:sponge') .id('tfg:minecraft/heating/sponge') + 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)) + .itemOutputs('2x minecraft:sponge') + .outputFluids(Fluid.of('gtceu:sodium_persulfate', 35)) + .duration(80) + .EUt(GTValues.VA[GTValues.LV]) + + //#endregion //#region Выход: Тонированное стекло @@ -866,6 +875,14 @@ const registerMinecraftRecipes = (event) => { generateCutterRecipe(event, '#forge:double_plates/wrought_iron', 'minecraft:iron_door', 400, GTValues.VA[GTValues.LV], 'iron_door') + event.shaped('4x minecraft:ladder', [ + 'A A', + 'AAA', + 'A A' + ], { + A: '#forge:rods/wooden' + }).id('gtceu:shaped/ladder') + // #endregion // #region Calcite diff --git a/kubejs/server_scripts/minecraft/recipes.removes.js b/kubejs/server_scripts/minecraft/recipes.removes.js index a16efbff0..6f4752edc 100644 --- a/kubejs/server_scripts/minecraft/recipes.removes.js +++ b/kubejs/server_scripts/minecraft/recipes.removes.js @@ -911,6 +911,9 @@ function removeMinecraftRecipes(event) { event.remove({ id: 'minecraft:warped_hyphae' }) event.remove({ id: 'minecraft:stripped_crimson_hyphae' }) event.remove({ id: 'minecraft:crimson_hyphae' }) + + event.remove({ id: 'minecraft:arrow' }) + event.remove({ output: 'minecraft:tipped_arrow' }) //#endregion diff --git a/kubejs/server_scripts/minecraft/tags.js b/kubejs/server_scripts/minecraft/tags.js index 07d08f575..298790c65 100644 --- a/kubejs/server_scripts/minecraft/tags.js +++ b/kubejs/server_scripts/minecraft/tags.js @@ -54,7 +54,6 @@ const registerMinecraftItemTags = (event) => { event.add('tfc:rock/raw', 'minecraft:blackstone') event.add('tfc:rock/raw', 'minecraft:dripstone_block') - event.add('forge:cloth', 'minecraft:phantom_membrane') event.add('tfc:sewing_dark_cloth', 'minecraft:phantom_membrane') event.remove('forge:gems', 'minecraft:charcoal') diff --git a/kubejs/server_scripts/primitive_creatures/loot.js b/kubejs/server_scripts/primitive_creatures/loot.js new file mode 100644 index 000000000..8693dd669 --- /dev/null +++ b/kubejs/server_scripts/primitive_creatures/loot.js @@ -0,0 +1,10 @@ +// priority: 0 + +function registerPrimitiveCreatesLoots(event) { + + event.addEntityLootModifier('kaolinclayze:tfc') + .addWeightedLoot([7,15], ['tfc:kaolin_clay', 'minecraft:clay_ball']) + + event.addEntityLootModifier('kaolinclayze:golem_2') + .addWeightedLoot([7,15], ['gtceu:poor_raw_graphite', 'gtceu:raw_graphite', 'gtceu:rich_raw_graphite']) +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfc/data.js b/kubejs/server_scripts/tfc/data.js index ca249ec15..24b811262 100644 --- a/kubejs/server_scripts/tfc/data.js +++ b/kubejs/server_scripts/tfc/data.js @@ -177,6 +177,7 @@ const registerTFCFertilizers = (event) => { //#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') @@ -198,14 +199,8 @@ const registerTFCItemSize = (event) => { event.itemSize('tfg:decorative_vase', 'normal', 'medium', 'decorative_vase') event.itemSize('tfg:decorative_vase/unfired', 'normal', 'medium', 'decorative_vase/unfired') - event.itemSize('man_of_many_planes:scarlet_biplane', 'huge', 'very_heavy') - event.itemSize('man_of_many_planes:economy_plane', 'huge', 'very_heavy') - event.itemSize('immersive_aircraft:airship', 'huge', 'very_heavy') - event.itemSize('immersive_aircraft:cargo_airship', 'huge', 'very_heavy') - event.itemSize('immersive_aircraft:warship', 'huge', 'very_heavy') - event.itemSize('immersive_aircraft:biplane', 'huge', 'very_heavy') - event.itemSize('immersive_aircraft:gyrodyne', 'huge', 'very_heavy') - event.itemSize('immersive_aircraft:quadrocopter', 'very_large', 'very_heavy') + event.itemSize('#tfc:ore_pieces', 'very_small', 'very_light', 'tfc_ores') + } //#endregion diff --git a/kubejs/server_scripts/tfc/loot.js b/kubejs/server_scripts/tfc/loot.js new file mode 100644 index 000000000..8e27b403d --- /dev/null +++ b/kubejs/server_scripts/tfc/loot.js @@ -0,0 +1,61 @@ +// priority: 0 + +function registerTFCLoots(event) +{ + event.addEntityLootModifier('tfc:black_bear') + .addWeightedLoot([8,12], ['tfc:food/bear']) + + event.addEntityLootModifier('tfc:grizzly_bear') + .addWeightedLoot([10,16], ['tfc:food/bear']) + + event.addEntityLootModifier('tfc:polar_bear') + .addWeightedLoot([14,20], ['tfc:food/bear']) + .addWeightedLoot([2,5], ['tfc:blubber']) + + event.addEntityLootModifier('tfc:cougar') + .addWeightedLoot([6,10], ['tfc:food/gran_feline']) + + event.addEntityLootModifier('tfc:panther') + .addWeightedLoot([6,10], ['tfc:food/gran_feline']) + + event.addEntityLootModifier('tfc:sabertooth') + .addWeightedLoot([9,14], ['tfc:food/gran_feline']) + + event.addEntityLootModifier('tfc:lion') + .addWeightedLoot([9,14], ['tfc:food/gran_feline']) + + event.addEntityLootModifier('tfc:tiger') + .addWeightedLoot([9,14], ['tfc:food/gran_feline']) + + event.addEntityLootModifier('tfc:ocelot') + .addWeightedLoot([2,5], ['tfc:food/gran_feline']) + + event.addEntityLootModifier('tfc:cat') + .addWeightedLoot([2,5], ['tfc:food/gran_feline']) + + event.addEntityLootModifier('tfc:sabertooth') + .addWeightedLoot([9,14], ['tfc:food/gran_feline']) + + event.addEntityLootModifier('tfc:dog') + .addWeightedLoot([5,9], ['tfc:food/wolf']) + + event.addEntityLootModifier('tfc:wolf') + .addWeightedLoot([5,9], ['tfc:food/wolf']) + + event.addEntityLootModifier('tfc:direwolf') + .addWeightedLoot([10,15], ['tfc:food/wolf']) + + event.addEntityLootModifier('tfc:wolf') + .addWeightedLoot([5,9], ['tfc:food/wolf']) + + event.addEntityLootModifier('tfc:hyena') + .addWeightedLoot([5,9], ['tfc:food/hyena']) + + event.addEntityLootModifier('tfc:fox') + .addWeightedLoot([5,9], ['tfc:food/fox']) + + + event.addEntityLootModifier('tfc:crocodile') + .addWeightedLoot([5,10], ['tfc:food/bluegill', 'tfc:food/crappie', 'tfc:food/lake_trout', 'tfc:food/rainbow_trout', 'tfc:food/frog_legs']) + .addSequenceLoot(LootEntry.of('tfc:metal/fish_hook/copper').when(c => c.randomChance(0.2))) +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfc/recipes.js b/kubejs/server_scripts/tfc/recipes.js index 68b3d5900..40525d12c 100644 --- a/kubejs/server_scripts/tfc/recipes.js +++ b/kubejs/server_scripts/tfc/recipes.js @@ -164,7 +164,12 @@ const registerTFCRecipes = (event) => { event.recipes.tfc.advanced_shapeless_crafting( TFC.itemStackProvider.of('5x tfc:food/pumpkin_chunks').copyFood(), [TFC.ingredient.notRotten('tfc:pumpkin'), '#forge:tools/hammers'], 'tfc:pumpkin') - .id(`tfc:crafting/pumpkin_chunks`) + .id(`tfc:crafting/pumpkin_chunks_hammer`) + + event.recipes.tfc.advanced_shapeless_crafting( + TFC.itemStackProvider.of('5x tfc:food/pumpkin_chunks').copyFood(), + [TFC.ingredient.notRotten('tfc:pumpkin'), '#tfc:knives'], 'tfc:pumpkin') + .id(`tfc:crafting/pumpkin_chunks_knife`) // Lime event.smelting('tfc:powder/lime', 'tfc:powder/flux') @@ -175,8 +180,17 @@ const registerTFCRecipes = (event) => { .id('tfg:smelting/kaolinite_clay') // Fire Brick - //event.smelting('tfc:ceramic/fire_brick', 'gtceu:compressed_fireclay') - // .id('tfg:smelting/fireclay_brick') + event.recipes.gtceu.alloy_smelter('tfg:cheaper_fire_brick') + .itemInputs('#forge:dusts/graphite', 'tfc:kaolin_clay') + .itemOutputs('tfc:fire_clay') + .duration(600) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.alloy_smelter('tfg:oops_I_smelted_all_my_kaolin') + .itemInputs('5x minecraft:clay_ball', 'tfc:powder/kaolinite') + .itemOutputs('5x tfc:kaolin_clay') + .duration(600) + .EUt(GTValues.VA[GTValues.ULV]) // Выпаривание соли event.recipes.tfc.pot([], Fluid.of('tfc:salt_water', 625), 300, 100) diff --git a/kubejs/server_scripts/tfc/recipes.machines.js b/kubejs/server_scripts/tfc/recipes.machines.js index 577f57db4..c8b943e01 100644 --- a/kubejs/server_scripts/tfc/recipes.machines.js +++ b/kubejs/server_scripts/tfc/recipes.machines.js @@ -279,6 +279,7 @@ function registerTFCMachineRecipes(event) { 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) }) @@ -332,13 +333,32 @@ function registerTFCMachineRecipes(event) { .EUt(2) // Empty Jar - event.recipes.gtceu.assembler(`tfg:tfc/glass_jar`) + event.recipes.gtceu.alloy_smelter('tfc:jar_alloying') .itemInputs('#tfc:glass_batches_tier_2') - .circuit(2) + .notConsumable('gtceu:cylinder_casting_mold') .itemOutputs('tfc:empty_jar') .duration(100) .EUt(2) + event.recipes.gtceu.fluid_solidifier('tfc:jar_solidification') + .inputFluids(Fluid.of('gtceu:glass', 144)) + .notConsumable('gtceu:cylinder_casting_mold') + .itemOutputs('tfc:empty_jar') + .duration(100) + .EUt(2) + + event.recipes.gtceu.extractor('tfc:jar_extraction') + .itemInputs('#tfc:jars') + .outputFluids(Fluid.of('gtceu:glass', 144)) + .duration(50) + .EUt(2) + + event.recipes.gtceu.extractor('tfc:glass_batch_extraction') + .itemInputs('#tfc:glass_batches') + .outputFluids(Fluid.of('gtceu:glass', 144)) + .duration(50) + .EUt(2) + // Wool Yarn event.recipes.gtceu.macerator('macerate_wool') .itemInputs('#minecraft:wool') diff --git a/kubejs/server_scripts/tfc/recipes.materials.js b/kubejs/server_scripts/tfc/recipes.materials.js index bf433b977..9ef8ab5f6 100644 --- a/kubejs/server_scripts/tfc/recipes.materials.js +++ b/kubejs/server_scripts/tfc/recipes.materials.js @@ -1056,7 +1056,7 @@ function registerTFCMaterialsRecipes(event) { // Декрафт блока в жидкость event.recipes.tfc.heating(`#forge:storage_blocks/${material.getName()}`, tfcProperty.getMeltTemp()) .resultFluid(Fluid.of(outputMaterial.getFluid(), 1296)) - .id(`tfc:heating/metal/${material.getName()}_block`) + .id(`tfc:heating/metal/${material.getName()}_storage_block`) } diff --git a/kubejs/server_scripts/tfc/recipes.metals.js b/kubejs/server_scripts/tfc/recipes.metals.js index 5aed8261d..a8617193c 100644 --- a/kubejs/server_scripts/tfc/recipes.metals.js +++ b/kubejs/server_scripts/tfc/recipes.metals.js @@ -84,70 +84,70 @@ function registerTFCMetalsRecipes(event) { event.recipes.gtceu.forge_hammer('tfg/refined_bloom') .itemInputs('tfc:raw_iron_bloom') .itemOutputs('tfc:refined_iron_bloom') - .duration(1000) + .duration(400) .EUt(4) // Укрепленная крица -> Слиток кованного железа event.recipes.gtceu.forge_hammer('tfg/wrought_iron_ingot') .itemInputs('tfc:refined_iron_bloom') .itemOutputs('gtceu:wrought_iron_ingot') - .duration(1000) + .duration(400) .EUt(4) // Чугун -> Высокоуглеродная сталь event.recipes.gtceu.forge_hammer('tfg/high_carbon_steel') .itemInputs('tfc:metal/ingot/pig_iron') .itemOutputs('tfc:metal/ingot/high_carbon_steel') - .duration(700) + .duration(500) .EUt(4) // Высокоуглеродная сталь -> Cталь event.recipes.gtceu.forge_hammer('tfg/steel') .itemInputs('tfc:metal/ingot/high_carbon_steel') .itemOutputs('gtceu:steel_ingot') - .duration(700) + .duration(500) .EUt(4) // Высокоуглеродная черная сталь -> черная сталь event.recipes.gtceu.forge_hammer('tfg/black_steel') .itemInputs('tfc:metal/ingot/high_carbon_black_steel') .itemOutputs('tfc:metal/ingot/black_steel') - .duration(900) + .duration(600) .EUt(4) // Высокоуглеродная синяя сталь -> синяя сталь event.recipes.gtceu.forge_hammer('tfg/blue_steel') .itemInputs('tfc:metal/ingot/high_carbon_blue_steel') .itemOutputs('tfc:metal/ingot/blue_steel') - .duration(1000) + .duration(700) .EUt(4) // Высокоуглеродная красная сталь -> красная сталь event.recipes.gtceu.forge_hammer('tfg/red_steel') .itemInputs('tfc:metal/ingot/high_carbon_red_steel') .itemOutputs('tfc:metal/ingot/red_steel') - .duration(1000) + .duration(700) .EUt(4) // Слабая сталь + Чугун -> Высокоуглеродная черная сталь event.recipes.gtceu.alloy_smelter('tfg/high_carbon_black_steel') .itemInputs('tfc:metal/ingot/weak_steel', 'tfc:metal/ingot/pig_iron') .itemOutputs('2x tfc:metal/ingot/high_carbon_black_steel') - .duration(1000) + .duration(600) .EUt(4) // Слабая синяя сталь + Черная сталь -> Высокоуглеродная синяя сталь event.recipes.gtceu.alloy_smelter('tfg/high_carbon_blue_steel') .itemInputs('tfc:metal/ingot/weak_blue_steel', 'tfc:metal/ingot/black_steel') .itemOutputs('2x tfc:metal/ingot/high_carbon_blue_steel') - .duration(1000) + .duration(700) .EUt(4) // Слабая красная сталь + Черная сталь -> Высокоуглеродная красная сталь event.recipes.gtceu.alloy_smelter('tfg/high_carbon_red_steel') .itemInputs('tfc:metal/ingot/weak_red_steel', 'tfc:metal/ingot/black_steel') .itemOutputs('2x tfc:metal/ingot/high_carbon_red_steel') - .duration(1000) + .duration(700) .EUt(4) const TFC_INTERMEDIATE_METALS = @@ -248,50 +248,67 @@ function registerTFCMetalsRecipes(event) { .id(`tfc:anvil/iron_door`) // Bloom -> Wrought Iron Ingot - event.recipes.tfc.anvil('gtceu:wrought_iron_ingot', 'tfc:refined_iron_bloom', ['hit_last', 'hit_second_last', 'hit_third_last']).tier(2) + event.recipes.tfc.anvil('gtceu:wrought_iron_ingot', 'tfc:refined_iron_bloom', ['hit_last', 'hit_second_last', 'hit_third_last']) + .tier(2) .id('tfc:anvil/wrought_iron_from_bloom') // High Carbon Steel Ingot -> Steel Ingot - event.recipes.tfc.anvil('gtceu:steel_ingot', 'tfc:metal/ingot/high_carbon_steel', ['hit_last', 'hit_second_last', 'hit_third_last']).tier(3) + event.recipes.tfc.anvil('gtceu:steel_ingot', 'tfc:metal/ingot/high_carbon_steel', ['hit_last', 'hit_second_last', 'hit_third_last']) + .tier(3) .id('tfc:anvil/steel_ingot') // High Carbon Black Steel Ingot -> Black Steel Ingot - event.recipes.tfc.anvil('tfc:metal/ingot/black_steel', 'tfc:metal/ingot/high_carbon_black_steel', ['hit_last', 'hit_second_last', 'hit_third_last']).tier(4) + event.recipes.tfc.anvil('tfc:metal/ingot/black_steel', 'tfc:metal/ingot/high_carbon_black_steel', ['hit_last', 'hit_second_last', 'hit_third_last']) + .tier(4) .id('tfc:anvil/black_steel_ingot') // High Carbon Red Steel Ingot -> Red Steel Ingot - event.recipes.tfc.anvil('tfc:metal/ingot/red_steel', 'tfc:metal/ingot/high_carbon_red_steel', ['hit_last', 'hit_second_last', 'hit_third_last']).tier(5) + event.recipes.tfc.anvil('tfc:metal/ingot/red_steel', 'tfc:metal/ingot/high_carbon_red_steel', ['hit_last', 'hit_second_last', 'hit_third_last']) + .tier(5) .id('tfc:anvil/red_steel_ingot') // High Carbon Blue Steel Ingot -> Blue Steel Ingot - event.recipes.tfc.anvil('tfc:metal/ingot/blue_steel', 'tfc:metal/ingot/high_carbon_blue_steel', ['hit_last', 'hit_second_last', 'hit_third_last']).tier(5) + event.recipes.tfc.anvil('tfc:metal/ingot/blue_steel', 'tfc:metal/ingot/high_carbon_blue_steel', ['hit_last', 'hit_second_last', 'hit_third_last']) + .tier(5) .id('tfc:anvil/blue_steel_ingot') // Gears - event.recipes.tfc.anvil('gtceu:bronze_gear', '#forge:double_plates/bronze', ['punch_last', 'shrink_any', 'draw_any']).tier(2) + event.recipes.tfc.anvil('gtceu:bronze_gear', '#forge:double_plates/bronze', ['punch_last', 'shrink_any', 'draw_any']) + .tier(2) .id('tfc:anvil/bronze_gear') - event.recipes.tfc.anvil('gtceu:black_bronze_gear', '#forge:double_plates/black_bronze', ['punch_last', 'shrink_any', 'draw_any']).tier(2) + event.recipes.tfc.anvil('gtceu:black_bronze_gear', '#forge:double_plates/black_bronze', ['punch_last', 'shrink_any', 'draw_any']) + .tier(2) .id('tfc:anvil/black_bronze_gear') - event.recipes.tfc.anvil('gtceu:bismuth_bronze_gear', '#forge:double_plates/bismuth_bronze', ['punch_last', 'shrink_any', 'draw_any']).tier(2) + event.recipes.tfc.anvil('gtceu:bismuth_bronze_gear', '#forge:double_plates/bismuth_bronze', ['punch_last', 'shrink_any', 'draw_any']) + .tier(2) .id('tfc:anvil/bismuth_bronze_gear') - event.recipes.tfc.anvil('gtceu:wrought_iron_gear', '#forge:double_plates/wrought_iron', ['punch_last', 'shrink_any', 'draw_any']).tier(3) + event.recipes.tfc.anvil('gtceu:wrought_iron_gear', '#forge:double_plates/wrought_iron', ['punch_last', 'shrink_any', 'draw_any']) + .tier(3) .id('tfc:anvil/wrought_iron_gear') - event.recipes.tfc.anvil('gtceu:steel_gear', '#forge:double_plates/steel', ['punch_last', 'shrink_any', 'draw_any']).tier(4) + event.recipes.tfc.anvil('gtceu:steel_gear', '#forge:double_plates/steel', ['punch_last', 'shrink_any', 'draw_any']) + .tier(4) .id('tfc:anvil/steel_gear') - event.recipes.tfc.anvil('gtceu:black_steel_gear', '#forge:double_plates/black_steel', ['punch_last', 'shrink_any', 'draw_any']).tier(5) + event.recipes.tfc.anvil('gtceu:black_steel_gear', '#forge:double_plates/black_steel', ['punch_last', 'shrink_any', 'draw_any']) + .tier(5) .id('tfc:anvil/black_steel_gear') - event.recipes.tfc.anvil('gtceu:red_steel_gear', '#forge:double_plates/red_steel', ['punch_last', 'shrink_any', 'draw_any']).tier(6) + event.recipes.tfc.anvil('gtceu:red_steel_gear', '#forge:double_plates/red_steel', ['punch_last', 'shrink_any', 'draw_any']) + .tier(6) .id('tfc:anvil/red_steel_gear') - event.recipes.tfc.anvil('gtceu:blue_steel_gear', '#forge:double_plates/blue_steel', ['punch_last', 'shrink_any', 'draw_any']).tier(6) + event.recipes.tfc.anvil('gtceu:blue_steel_gear', '#forge:double_plates/blue_steel', ['punch_last', 'shrink_any', 'draw_any']) + .tier(6) .id('tfc:anvil/blue_steel_gear') - event.recipes.tfc.anvil('gtceu:small_wrought_iron_gear', '#forge:ingots/wrought_iron', ['shrink_last', 'shrink_second_last', 'upset_third_last']).tier(3) + event.recipes.tfc.anvil('gtceu:small_wrought_iron_gear', '#forge:ingots/wrought_iron', ['hit_last', 'shrink_second_last', 'draw_third_last']) + .tier(3) .id('tfc:anvil/small_wrought_iron_gear') - event.recipes.tfc.anvil('gtceu:small_steel_gear', '#forge:ingots/steel', ['shrink_last', 'shrink_second_last', 'upset_third_last']).tier(4) + event.recipes.tfc.anvil('gtceu:small_steel_gear', '#forge:ingots/steel', ['hit_last', 'shrink_second_last', 'draw_third_last']) + .tier(4) .id('tfc:anvil/small_steel_gear') - event.recipes.tfc.anvil('gtceu:small_brass_gear', '#forge:ingots/brass', ['shrink_last', 'shrink_second_last', 'upset_third_last']).tier(2) + event.recipes.tfc.anvil('gtceu:small_brass_gear', '#forge:ingots/brass', ['hit_last', 'shrink_second_last', 'draw_third_last']) + .tier(2) .id('tfc:anvil/small_brass_gear') - event.recipes.tfc.anvil('gtceu:small_bronze_gear', '#forge:ingots/bronze', ['shrink_last', 'shrink_second_last', 'upset_third_last']).tier(2) + event.recipes.tfc.anvil('gtceu:small_bronze_gear', '#forge:ingots/bronze', ['hit_last', 'shrink_second_last', 'draw_third_last']) + .tier(2) .id('tfc:anvil/small_bronze_gear') // Cast iron -> Raw Iron Bloom diff --git a/kubejs/server_scripts/tfc/recipes.stone.js b/kubejs/server_scripts/tfc/recipes.stone.js index 0b064212d..b914b647e 100644 --- a/kubejs/server_scripts/tfc/recipes.stone.js +++ b/kubejs/server_scripts/tfc/recipes.stone.js @@ -70,6 +70,21 @@ function registerTFCStoneRecipes(event) { `4x tfc:rock/gravel/${stone}` ]).id(`tfc:shapeless/gravel_to_loose_${stone}`) + // Cobble Unpacking + event.recipes.gtceu.packer(`tfc:gtceu/packer/unpacking_mossy_${stone}_cobble_into_loose`) + .itemInputs(`1x tfc:rock/mossy_cobble/${stone}`) + .circuit(1) + .itemOutputs(`4x tfc:rock/mossy_loose/${stone}`) + .duration(20) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.packer(`tfc:gtceu/packer/unpacking_${stone}_cobble_into_loose`) + .itemInputs(`1x tfc:rock/cobble/${stone}`) + .circuit(1) + .itemOutputs(`4x tfc:rock/loose/${stone}`) + .duration(20) + .EUt(GTValues.VA[GTValues.ULV]) + //#endregion // #region Stonecutting diff --git a/kubejs/server_scripts/tfc/tags.js b/kubejs/server_scripts/tfc/tags.js index 7330c3d47..a59e09a0e 100644 --- a/kubejs/server_scripts/tfc/tags.js +++ b/kubejs/server_scripts/tfc/tags.js @@ -258,6 +258,13 @@ const registerTFCItemTags = (event) => { event.add('forge:cloth', 'tfc:burlap_cloth') event.add('forge:cloth', 'tfc:wool_cloth') event.add('forge:cloth', 'tfc:silk_cloth') + event.add('forge:cloth', 'minecraft:phantom_membrane') + + // Piglin loved + event.add('minecraft:piglin_loved', 'tfc:ore/small_native_gold') + 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') } const registerTFCBlockTags = (event) => { diff --git a/kubejs/server_scripts/tfg/recipes.medicine.js b/kubejs/server_scripts/tfg/recipes.medicine.js index bad5b1954..d30597abe 100644 --- a/kubejs/server_scripts/tfg/recipes.medicine.js +++ b/kubejs/server_scripts/tfg/recipes.medicine.js @@ -5,441 +5,472 @@ function registerTFGMedicineRecipes(event) { //#region Antipoison event.recipes.firmalife.mixing_bowl() - .ingredients(['#forge:wax', '#tfg:antipoison_ingredients', 'gtceu:tricalcium_phosphate_dust'], Fluid.of('tfc:spring_water', 250)) + .ingredients(['#forge:wax', '#tfg:antipoison_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)], Fluid.of('tfc:spring_water', 250)) .outputItem('1x tfg:antipoison_pill') .id(`tfg:mixing_bowl/pill_antipoison`) - event.recipes.create.mixing( - '1x tfg:antipoison_pill', - ['#forge:wax', '#tfg:antipoison_ingredients', 'gtceu:tricalcium_phosphate_dust', Fluid.of('tfc:spring_water', 250)]) - .id(`tfg:create/mixer/spring_water/pill_antipoison`) - event.recipes.create.mixing( - '1x tfg:antipoison_pill', - ['#forge:wax', '#tfg:antipoison_ingredients', 'gtceu:tricalcium_phosphate_dust', Fluid.of('gtceu:distilled_water', 50)]) - .id(`tfg:create/mixer/distilled_water/pill_antipoison`) - event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/pill_antipoison`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:antipoison_pill') - .itemInputs('#forge:wax', '#tfg:antipoison_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('#forge:wax', '#tfg:antipoison_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/pill_antipoison`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:antipoison_pill') - .itemInputs('#forge:wax', '#tfg:antipoison_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('#forge:wax', '#tfg:antipoison_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/tablet_antipoison`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:antipoison_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:antipoison_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:antipoison_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/tablet_antipoison`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:antipoison_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:antipoison_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:antipoison_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) //#endregion //#region Poison event.recipes.firmalife.mixing_bowl() - .ingredients(['#forge:wax', '#tfg:poison_ingredients', 'tfc:powder/sulfur'], Fluid.of('tfc:spring_water', 250)) + .ingredients(['#forge:wax', '#tfg:poison_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)], Fluid.of('tfc:spring_water', 250)) .outputItem('1x tfg:poison_pill') .id(`tfg:mixing_bowl/pill_poison`) - - event.recipes.create.mixing( - '1x tfg:poison_pill', - ['#forge:wax', '#tfg:poison_ingredients', 'tfc:powder/sulfur', Fluid.of('tfc:spring_water', 250)]) - .id(`tfg:create/mixer/spring_water/pill_poison`) - event.recipes.create.mixing( - '1x tfg:poison_pill', - ['#forge:wax', '#tfg:poison_ingredients', 'tfc:powder/sulfur', Fluid.of('gtceu:distilled_water', 50)]) - .id(`tfg:create/mixer/distilled_water/pill_poison`) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/pill_poison`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:poison_pill') - .itemInputs('#forge:wax', '#tfg:poison_ingredients', 'tfc:powder/sulfur') + .itemInputs('#forge:wax', '#tfg:poison_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/pill_poison`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:poison_pill') - .itemInputs('#forge:wax', '#tfg:poison_ingredients', 'tfc:powder/sulfur') + .itemInputs('#forge:wax', '#tfg:poison_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/tablet_poison`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:poison_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:poison_ingredients', 'tfc:powder/sulfur') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:poison_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/tablet_poison`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:poison_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:poison_ingredients', 'tfc:powder/sulfur') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:poison_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) + + // Arrow + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/poison_1`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:poison"}')) + .itemInputs('16x minecraft:arrow', 'tfg:poison_pill') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/poison_2`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:long_poison"}')) + .itemInputs('16x minecraft:arrow', 'tfg:poison_tablet') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) //#endregion //#region Regeneration event.recipes.firmalife.mixing_bowl() - .ingredients(['#forge:wax', '#tfg:regeneration_ingredients', 'gtceu:tricalcium_phosphate_dust'], Fluid.of('tfc:spring_water', 250)) + .ingredients(['#forge:wax', '#tfg:regeneration_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)], Fluid.of('tfc:spring_water', 250)) .outputItem('1x tfg:regeneration_pill') .id(`tfg:mixing_bowl/pill_regeneration`) - event.recipes.create.mixing( - '1x tfg:regeneration_pill', - ['#forge:wax', '#tfg:regeneration_ingredients', 'gtceu:tricalcium_phosphate_dust', Fluid.of('tfc:spring_water', 250)]) - .id(`tfg:create/mixer/spring_water/pill_regeneration`) - event.recipes.create.mixing( - '1x tfg:regeneration_pill', - ['#forge:wax', '#tfg:regeneration_ingredients', 'gtceu:tricalcium_phosphate_dust', Fluid.of('gtceu:distilled_water', 50)]) - .id(`tfg:create/mixer/distilled_water/pill_regeneration`) - event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/pill_regeneration`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:regeneration_pill') - .itemInputs('#forge:wax', '#tfg:regeneration_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('#forge:wax', '#tfg:regeneration_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/pill_regeneration`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:regeneration_pill') - .itemInputs('#forge:wax', '#tfg:regeneration_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('#forge:wax', '#tfg:regeneration_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/tablet_regeneration`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:regeneration_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:regeneration_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:regeneration_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/tablet_regeneration`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:regeneration_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:regeneration_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:regeneration_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) + + // Arrow + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/regeneration_1`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:regeneration"}')) + .itemInputs('16x minecraft:arrow', 'tfg:regeneration_pill') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/regeneration_2`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:long_regeneration"}')) + .itemInputs('16x minecraft:arrow', 'tfg:regeneration_tablet') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) //#endregion //#region Speed event.recipes.firmalife.mixing_bowl() - .ingredients(['#forge:wax', '#tfg:speed_ingredients', 'gtceu:tricalcium_phosphate_dust'], Fluid.of('tfc:spring_water', 250)) + .ingredients(['#forge:wax', '#tfg:speed_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)], Fluid.of('tfc:spring_water', 250)) .outputItem('1x tfg:speed_pill') .id(`tfg:mixing_bowl/pill_speed`) - event.recipes.create.mixing( - '1x tfg:speed_pill', - ['#forge:wax', '#tfg:speed_ingredients', 'gtceu:tricalcium_phosphate_dust', Fluid.of('tfc:spring_water', 250)]) - .id(`tfg:create/mixer/spring_water/pill_speed`) - event.recipes.create.mixing( - '1x tfg:speed_pill', - ['#forge:wax', '#tfg:speed_ingredients', 'gtceu:tricalcium_phosphate_dust', Fluid.of('gtceu:distilled_water', 50)]) - .id(`tfg:create/mixer/distilled_water/pill_speed`) - event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/pill_speed`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:speed_pill') - .itemInputs('#forge:wax', '#tfg:speed_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('#forge:wax', '#tfg:speed_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/pill_speed`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:speed_pill') - .itemInputs('#forge:wax', '#tfg:speed_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('#forge:wax', '#tfg:speed_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/tablet_speed`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:speed_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:speed_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:speed_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/tablet_speed`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:speed_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:speed_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:speed_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) + + // Arrow + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/swiftness_1`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:swiftness"}')) + .itemInputs('16x minecraft:arrow', 'tfg:speed_pill') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/swiftness_2`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:long_swiftness"}')) + .itemInputs('16x minecraft:arrow', 'tfg:speed_tablet') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) //#endregion //#region Slowness event.recipes.firmalife.mixing_bowl() - .ingredients(['#forge:wax', '#tfg:slowness_ingredients', 'tfc:powder/sulfur'], Fluid.of('tfc:spring_water', 250)) + .ingredients(['#forge:wax', '#tfg:slowness_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)], Fluid.of('tfc:spring_water', 250)) .outputItem('1x tfg:slowness_pill') .id(`tfg:mixing_bowl/pill_slowness`) - event.recipes.create.mixing( - '1x tfg:slowness_pill', - ['#forge:wax', '#tfg:slowness_ingredients', 'tfc:powder/sulfur', Fluid.of('tfc:spring_water', 250)]) - .id(`tfg:create/mixer/spring_water/pill_slowness`) - event.recipes.create.mixing( - '1x tfg:slowness_pill', - ['#forge:wax', '#tfg:slowness_ingredients', 'tfc:powder/sulfur', Fluid.of('gtceu:distilled_water', 50)]) - .id(`tfg:create/mixer/distilled_water/pill_slowness`) - event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/pill_slowness`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:slowness_pill') - .itemInputs('#forge:wax', '#tfg:slowness_ingredients', 'tfc:powder/sulfur') + .itemInputs('#forge:wax', '#tfg:slowness_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/pill_slowness`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:slowness_pill') - .itemInputs('#forge:wax', '#tfg:slowness_ingredients', 'tfc:powder/sulfur') + .itemInputs('#forge:wax', '#tfg:slowness_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/tablet_slowness`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:slowness_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:slowness_ingredients', 'tfc:powder/sulfur') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:slowness_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/tablet_slowness`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:slowness_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:slowness_ingredients', 'tfc:powder/sulfur') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:slowness_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) + + // Arrow + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/slowness_1`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:slowness"}')) + .itemInputs('16x minecraft:arrow', 'tfg:slowness_pill') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/slowness_2`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:long_slowness"}')) + .itemInputs('16x minecraft:arrow', 'tfg:slowness_tablet') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) //#endregion //#region Weakness event.recipes.firmalife.mixing_bowl() - .ingredients(['#forge:wax', '#tfg:weakness_ingredients', 'tfc:powder/sulfur'], Fluid.of('tfc:spring_water', 250)) + .ingredients(['#forge:wax', '#tfg:weakness_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)], Fluid.of('tfc:spring_water', 250)) .outputItem('1x tfg:weakness_pill') .id(`tfg:mixing_bowl/pill_weakness`) - event.recipes.create.mixing( - '1x tfg:weakness_pill', - ['#forge:wax', '#tfg:weakness_ingredients', 'tfc:powder/sulfur', Fluid.of('tfc:spring_water', 250)]) - .id(`tfg:create/mixer/spring_water/pill_weakness`) - event.recipes.create.mixing( - '1x tfg:weakness_pill', - ['#forge:wax', '#tfg:weakness_ingredients', 'tfc:powder/sulfur', Fluid.of('gtceu:distilled_water', 50)]) - .id(`tfg:create/mixer/distilled_water/pill_weakness`) - event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/pill_weakness`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:weakness_pill') - .itemInputs('#forge:wax', '#tfg:weakness_ingredients', 'tfc:powder/sulfur') + .itemInputs('#forge:wax', '#tfg:weakness_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/pill_weakness`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:weakness_pill') - .itemInputs('#forge:wax', '#tfg:weakness_ingredients', 'tfc:powder/sulfur') + .itemInputs('#forge:wax', '#tfg:weakness_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/tablet_weakness`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:weakness_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:weakness_ingredients', 'tfc:powder/sulfur') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:weakness_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/tablet_weakness`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:weakness_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:weakness_ingredients', 'tfc:powder/sulfur') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:weakness_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) + + // Arrow + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/weakness_1`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:weakness"}')) + .itemInputs('16x minecraft:arrow', 'tfg:weakness_pill') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/weakness_2`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:long_weakness"}')) + .itemInputs('16x minecraft:arrow', 'tfg:weakness_tablet') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) //#endregion //#region Haste event.recipes.firmalife.mixing_bowl() - .ingredients(['#forge:wax', '#tfg:haste_ingredients', 'gtceu:tricalcium_phosphate_dust'], Fluid.of('tfc:spring_water', 250)) + .ingredients(['#forge:wax', '#tfg:haste_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)], Fluid.of('tfc:spring_water', 250)) .outputItem('1x tfg:haste_pill') .id(`tfg:mixing_bowl/pill_haste`) - event.recipes.create.mixing( - '1x tfg:haste_pill', - ['#forge:wax', '#tfg:haste_ingredients', 'gtceu:tricalcium_phosphate_dust', Fluid.of('tfc:spring_water', 250)]) - .id(`tfg:create/mixer/spring_water/pill_haste`) - event.recipes.create.mixing( - '1x tfg:haste_pill', - ['#forge:wax', '#tfg:haste_ingredients', 'gtceu:tricalcium_phosphate_dust', Fluid.of('gtceu:distilled_water', 50)]) - .id(`tfg:create/mixer/distilled_water/pill_haste`) - event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/pill_haste`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:haste_pill') - .itemInputs('#forge:wax', '#tfg:haste_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('#forge:wax', '#tfg:haste_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/pill_haste`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:haste_pill') - .itemInputs('#forge:wax', '#tfg:haste_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('#forge:wax', '#tfg:haste_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/tablet_haste`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:haste_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:haste_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:haste_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/tablet_haste`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:haste_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:haste_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:haste_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) //#endregion //#region Water Breathing event.recipes.firmalife.mixing_bowl() - .ingredients(['#forge:wax', '#tfg:water_breathing_ingredients', 'gtceu:tricalcium_phosphate_dust'], Fluid.of('tfc:spring_water', 250)) + .ingredients(['#forge:wax', '#tfg:water_breathing_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)], Fluid.of('tfc:spring_water', 250)) .outputItem('1x tfg:water_breathing_pill') .id(`tfg:mixing_bowl/pill_water_breathing`) - event.recipes.create.mixing( - '1x tfg:water_breathing_pill', - ['#forge:wax', '#tfg:water_breathing_ingredients', 'gtceu:tricalcium_phosphate_dust', Fluid.of('tfc:spring_water', 250)]) - .id(`tfg:create/mixer/spring_water/pill_water_breathing`) - event.recipes.create.mixing( - '1x tfg:water_breathing_pill', - ['#forge:wax', '#tfg:water_breathing_ingredients', 'gtceu:tricalcium_phosphate_dust', Fluid.of('gtceu:distilled_water', 50)]) - .id(`tfg:create/mixer/distilled_water/pill_water_breathing`) - event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/pill_water_breathing`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:water_breathing_pill') - .itemInputs('#forge:wax', '#tfg:water_breathing_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('#forge:wax', '#tfg:water_breathing_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/pill_water_breathing`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:water_breathing_pill') - .itemInputs('#forge:wax', '#tfg:water_breathing_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('#forge:wax', '#tfg:water_breathing_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/tablet_water_breathing`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:water_breathing_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:water_breathing_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:water_breathing_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/tablet_water_breathing`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:water_breathing_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:water_breathing_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:water_breathing_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) + + // Arrow + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/water_breathing_1`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:water_breathing"}')) + .itemInputs('16x minecraft:arrow', 'tfg:water_breathing_pill') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/water_breathing_2`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:long_water_breathing"}')) + .itemInputs('16x minecraft:arrow', 'tfg:water_breathing_tablet') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) //#endregion //#region Night Vision event.recipes.firmalife.mixing_bowl() - .ingredients(['#forge:wax', '#tfg:night_vision_ingredients', 'gtceu:tricalcium_phosphate_dust'], Fluid.of('tfc:spring_water', 250)) + .ingredients(['#forge:wax', '#tfg:night_vision_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)], Fluid.of('tfc:spring_water', 250)) .outputItem('1x tfg:night_vision_pill') .id(`tfg:mixing_bowl/pill_night_vision`) - event.recipes.create.mixing( - '1x tfg:night_vision_pill', - ['#forge:wax', '#tfg:night_vision_ingredients', 'gtceu:tricalcium_phosphate_dust', Fluid.of('tfc:spring_water', 250)]) - .id(`tfg:create/mixer/spring_water/pill_night_vision`) - event.recipes.create.mixing( - '1x tfg:night_vision_pill', - ['#forge:wax', '#tfg:night_vision_ingredients', 'gtceu:tricalcium_phosphate_dust', Fluid.of('gtceu:distilled_water', 50)]) - .id(`tfg:create/mixer/distilled_water/pill_night_vision`) - event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/pill_night_vision`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:night_vision_pill') - .itemInputs('#forge:wax', '#tfg:night_vision_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('#forge:wax', '#tfg:night_vision_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/pill_night_vision`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:night_vision_pill') - .itemInputs('#forge:wax', '#tfg:night_vision_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('#forge:wax', '#tfg:night_vision_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/tablet_night_vision`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:night_vision_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:night_vision_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:night_vision_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/tablet_night_vision`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:night_vision_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:night_vision_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:night_vision_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) + + // Arrow + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/night_vision_1`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:night_vision"}')) + .itemInputs('16x minecraft:arrow', 'tfg:night_vision_pill') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/night_vision_2`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:long_night_vision"}')) + .itemInputs('16x minecraft:arrow', 'tfg:night_vision_tablet') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) //#endregion @@ -449,9 +480,9 @@ function registerTFGMedicineRecipes(event) { .circuit(4) .inputFluids(Fluid.of('gtceu:aminophenol', 250)) .itemOutputs('1x tfg:invisibility_salvo') - .itemInputs('gtceu:sticky_resin', '#tfg:invisibility_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sticky_resin', '#tfg:invisibility_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) //#endregion @@ -461,9 +492,9 @@ function registerTFGMedicineRecipes(event) { .circuit(4) .inputFluids(Fluid.of('gtceu:aminophenol', 250)) .itemOutputs('1x tfg:fire_resistance_salvo') - .itemInputs('gtceu:sticky_resin', '#tfg:fire_resistance_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sticky_resin', '#tfg:fire_resistance_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) //#endregion @@ -473,9 +504,9 @@ function registerTFGMedicineRecipes(event) { .circuit(4) .inputFluids(Fluid.of('gtceu:aminophenol', 250)) .itemOutputs('1x tfg:resistance_salvo') - .itemInputs('gtceu:sticky_resin', '#tfg:resistance_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sticky_resin', '#tfg:resistance_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) //#endregion @@ -485,9 +516,9 @@ function registerTFGMedicineRecipes(event) { .circuit(4) .inputFluids(Fluid.of('gtceu:aminophenol', 250)) .itemOutputs('1x tfg:instant_health_salvo') - .itemInputs('gtceu:sticky_resin', '#tfg:instant_health_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sticky_resin', '#tfg:instant_health_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) //#endregion @@ -497,9 +528,9 @@ function registerTFGMedicineRecipes(event) { .circuit(4) .inputFluids(Fluid.of('gtceu:aminophenol', 250)) .itemOutputs('1x tfg:absorption_salvo') - .itemInputs('gtceu:sticky_resin', '#tfg:absorption_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sticky_resin', '#tfg:absorption_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) //#endregion @@ -509,9 +540,9 @@ function registerTFGMedicineRecipes(event) { .circuit(4) .inputFluids(Fluid.of('gtceu:phenol', 250)) .itemOutputs('1x tfg:luck_salvo') - .itemInputs('gtceu:sticky_resin', '#tfg:luck_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sticky_resin', '#tfg:luck_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) //#endregion diff --git a/kubejs/server_scripts/tfg/recipes.miscellaneous.js b/kubejs/server_scripts/tfg/recipes.miscellaneous.js index eb7e78b55..f59886b12 100644 --- a/kubejs/server_scripts/tfg/recipes.miscellaneous.js +++ b/kubejs/server_scripts/tfg/recipes.miscellaneous.js @@ -27,11 +27,11 @@ function registerTFGMiscellaneousRecipes(event) { //paraffin event.recipes.gtceu.chemical_reactor('tfg:paraffin_wax_from_lubricant') .circuit(7) - .itemOutputs('2x tfg:paraffin_wax') + .itemOutputs('6x tfg:paraffin_wax') .outputFluids(Fluid.of('gtceu:oil_light', 25)) .inputFluids(Fluid.of('gtceu:lubricant', 250), Fluid.of('gtceu:acetone', 25)) .duration(500) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) // Rosin event.recipes.firmalife.vat() @@ -50,7 +50,7 @@ function registerTFGMiscellaneousRecipes(event) { .inputFluids(Fluid.of(`tfc:${color}_dye`, 25)) .itemOutputs(`tfg:decorative_vase/unfired/${color}`) .duration(80) - .EUt(20) + .EUt(GTValues.VA[GTValues.ULV]) .category(GTRecipeCategories.CHEM_DYES) event.recipes.tfc.heating(`tfg:decorative_vase/unfired/${color}`, 1399) @@ -74,7 +74,7 @@ function registerTFGMiscellaneousRecipes(event) { .inputFluids(Fluid.of('gtceu:chlorine', 72)) .itemOutputs('tfg:decorative_vase/unfired') .duration(80) - .EUt(20) + .EUt(GTValues.VA[GTValues.ULV]) .category(GTRecipeCategories.CHEM_DYES) event.smelting( @@ -107,7 +107,7 @@ function registerTFGMiscellaneousRecipes(event) { .itemOutputs('1x gtceu:lactose_dust') .outputFluids(Fluid.of('tfc:curdled_milk', 1000)) .duration(300) - .EUt(30) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer('lactose_milk_yak') .circuit(1) @@ -115,7 +115,7 @@ function registerTFGMiscellaneousRecipes(event) { .itemOutputs('1x gtceu:lactose_dust') .outputFluids(Fluid.of('firmalife:curdled_yak_milk', 1000)) .duration(300) - .EUt(30) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer('lactose_milk_goat') .circuit(1) @@ -123,7 +123,7 @@ function registerTFGMiscellaneousRecipes(event) { .itemOutputs('1x gtceu:lactose_dust') .outputFluids(Fluid.of('firmalife:curdled_goat_milk', 1000)) .duration(300) - .EUt(30) + .EUt(GTValues.VA[GTValues.LV]) //Scaffolding Frame event.shaped('tfg:scaffolding_frame', @@ -141,7 +141,7 @@ function registerTFGMiscellaneousRecipes(event) { .itemInputs('8x #forge:rods/wood', '#forge:cloth') .itemOutputs('tfg:scaffolding_frame') .duration(10) - .EUt(2); + .EUt(GTValues.VA[GTValues.ULV]); //Airship Hull event.shaped('tfg:airship_hull', [ @@ -158,7 +158,7 @@ function registerTFGMiscellaneousRecipes(event) { .itemOutputs('tfg:airship_hull') .duration(40) .circuit(1) - .EUt(10); + .EUt(GTValues.VA[GTValues.ULV]); //Airship Balloon event.shaped('tfg:airship_balloon', [ @@ -175,7 +175,7 @@ function registerTFGMiscellaneousRecipes(event) { .itemOutputs('tfg:airship_balloon') .duration(40) .circuit(1) - .EUt(10) + .EUt(GTValues.VA[GTValues.ULV]) // Steam bloomery event.shaped('gtceu:steam_bloomery', [ @@ -189,4 +189,48 @@ function registerTFGMiscellaneousRecipes(event) { D: '#forge:screws/wrought_iron', E: '#forge:tools/wrenches' }) + + // Arrow Parts + event.recipes.tfc.knapping( + '4x tfg:flint_arrow_head', + 'tfg:flint', + [ + ' XXX', + ' XXXX', + 'XXXXX', + ' XXX ', + ' X ' + ] + ).outsideSlotRequired(false) + .id('tfg:knapping/flint_arrow_head') + + event.recipes.gtceu.assembler('tfg:assembler/flint_arrow_head') + .itemInputs('1x minecraft:flint') + .itemOutputs('4x tfg:flint_arrow_head') + .duration(20) + .circuit(4) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.tfc.damage_inputs_shapeless_crafting( + event.shapeless('4x tfg:fletching', [ + 'minecraft:feather', + '#forge:tools/knives' + ]).id('tfg:shapeless/fletching')) + + event.recipes.gtceu.assembler('tfg:assembler/fletching') + .itemInputs('1x minecraft:feather') + .itemOutputs('4x tfg:fletching') + .duration(20) + .circuit(4) + .EUt(GTValues.VA[GTValues.ULV]) + + event.shaped('4x minecraft:arrow', [ + ' A ', + ' B ', + ' C ' + ],{ + A: 'tfg:flint_arrow_head', + B: '#forge:rods/wooden', + C: 'tfg:fletching' + }).id('tfg:shaped/arrow') } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/tags.js b/kubejs/server_scripts/tfg/tags.js index 8670bb590..9a0480460 100644 --- a/kubejs/server_scripts/tfg/tags.js +++ b/kubejs/server_scripts/tfg/tags.js @@ -8,6 +8,9 @@ const registerTFGItemTags = (event) => { }) event.add('tfg:decorative_vases', 'tfg:decorative_vase') event.add('tfg:decorative_vases/unfired', 'tfg:decorative_vase/unfired') + + //Knapping + event.add('tfc:any_knapping', 'minecraft:flint') // #region Paper from wood @@ -25,6 +28,8 @@ const registerTFGItemTags = (event) => { event.add('forge:wax', 'firmalife:beeswax') event.add('forge:wax', 'tfg:conifer_rosin') + event.add('tfc:fluxstone', 'tfg:loose/dripstone') + // #endregion // #region Medicines diff --git a/kubejs/startup_scripts/gtceu/machines.js b/kubejs/startup_scripts/gtceu/machines.js index 482fff2a7..e3077c496 100644 --- a/kubejs/startup_scripts/gtceu/machines.js +++ b/kubejs/startup_scripts/gtceu/machines.js @@ -3,6 +3,11 @@ //#region Greenhouse const registerGTCEuMachines = (event) => { + + GTMachineUtils.registerCrate(GTMaterials.BismuthBronze, 54, "Bismuth Bronze Crate"); + GTMachineUtils.registerCrate(GTMaterials.BlackBronze, 54, "Black Bronze Crate"); + GTMachineUtils.registerDrum(GTMaterials.BismuthBronze, 32000, "Bismuth Bronze Drum"); + GTMachineUtils.registerDrum(GTMaterials.BlackBronze, 32000, "Black Bronze Drum"); const $SteamMulti = Java.loadClass('com.gregtechceu.gtceu.common.machine.multiblock.steam.SteamParallelMultiblockMachine'); const $Tags = Java.loadClass("dev.latvian.mods.kubejs.util.Tags") diff --git a/kubejs/startup_scripts/gtceu/materials.js b/kubejs/startup_scripts/gtceu/materials.js index c5221e923..e8105d667 100644 --- a/kubejs/startup_scripts/gtceu/materials.js +++ b/kubejs/startup_scripts/gtceu/materials.js @@ -238,13 +238,19 @@ const registerGTCEuMaterialModification = (event) => { GTMaterials.Chromite.setProperty(PropertyKey.HAZARD, new $HAZARD_PROPERTY($HAZARD_PROPERTY.HazardTrigger.SKIN_CONTACT, GTMedicalConditions.CARCINOGEN, 1, false)); // Color Adjustments - GTMaterials.BismuthBronze.setMaterialARGB(0x8CDCB6) - GTMaterials.BlackBronze.setMaterialARGB(0xB681CE) - GTMaterials.RedSteel.setMaterialARGB(0xc8575d) - GTMaterials.RedSteel.setMaterialSecondaryARGB(0x560307) - GTMaterials.BlueSteel.setMaterialARGB(0x7a87b7) - GTMaterials.BlueSteel.setMaterialSecondaryARGB(0x283467) - + GTMaterials.BismuthBronze.setMaterialARGB(0x5A966E) + GTMaterials.BismuthBronze.setMaterialSecondaryARGB(0x203E2A) + GTMaterials.BlackBronze.setMaterialARGB(0x9D789D) + GTMaterials.BlackBronze.setMaterialSecondaryARGB(0x5B425B) + GTMaterials.Steel.setMaterialARGB(0x9AA9AB) + GTMaterials.SteelMagnetic.setMaterialARGB(0x9AA9AB) + GTMaterials.RedSteel.setMaterialARGB(0xDE7B80) + GTMaterials.RedSteel.setMaterialSecondaryARGB(0xE12323) + GTMaterials.BlueSteel.setMaterialARGB(0xA0B6EC) + GTMaterials.BlueSteel.setMaterialSecondaryARGB(0x2B5CD8) + + GTMaterials.Bismuth.setMaterialARGB(0x66847E) + GTMaterials.Bismuth.setMaterialSecondaryARGB(0x25465B) GTMaterials.Iron.setMaterialARGB(0x503d32) GTMaterials.Iron.setMaterialSecondaryARGB(0x131212) GTMaterials.IronMagnetic.setMaterialARGB(0x503d32) diff --git a/kubejs/startup_scripts/minecraft/constants.js b/kubejs/startup_scripts/minecraft/constants.js index c0c1eb955..4abb73568 100644 --- a/kubejs/startup_scripts/minecraft/constants.js +++ b/kubejs/startup_scripts/minecraft/constants.js @@ -671,7 +671,6 @@ global.MINECRAFT_DISABLED_ITEMS = [ 'minecraft:compass', 'minecraft:iron_bars', 'minecraft:honeycomb', - 'minecraft:tipped_arrow', 'minecraft:grindstone', 'minecraft:fermented_spider_eye', diff --git a/kubejs/startup_scripts/tfg/blocks.js b/kubejs/startup_scripts/tfg/blocks.js index 4d4e08405..115994f46 100644 --- a/kubejs/startup_scripts/tfg/blocks.js +++ b/kubejs/startup_scripts/tfg/blocks.js @@ -271,6 +271,7 @@ const registerTFGBlocks = (event) => { horizontal.resistance(16) horizontal.mapColor('color_orange') horizontal.tagBlock('minecraft:mineable/pickaxe') + horizontal.tagBlock('minecraft:climbable') horizontal.requiresTool(true) horizontal.renderType('cutout') horizontal.opaque(false) @@ -280,6 +281,7 @@ const registerTFGBlocks = (event) => { .resistance(16) .mapColor('color_orange') .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('minecraft:climbable') .requiresTool(true) .renderType('cutout') .opaque(false) diff --git a/kubejs/startup_scripts/tfg/items.js b/kubejs/startup_scripts/tfg/items.js index 578a31c60..1ec58c60a 100644 --- a/kubejs/startup_scripts/tfg/items.js +++ b/kubejs/startup_scripts/tfg/items.js @@ -140,6 +140,14 @@ const registerTFGItems = (event) => { .translationKey('item.tfg.conifer_rosin') //#endregion + //#region Arrow Parts + event.create('tfg:flint_arrow_head') + .translationKey('item.tfg.flint_arrow_head') + + event.create('tfg:fletching') + .translationKey('item.tfg.fletching') + //#endregion + //#region Immersive Aircraft Impl event.create('tfg:scaffolding_frame') .translationKey('item.tfg.scaffolding_frame') diff --git a/pakku-lock.json b/pakku-lock.json index dacfc9c03..41a942d88 100644 --- a/pakku-lock.json +++ b/pakku-lock.json @@ -2159,6 +2159,42 @@ } ] }, + { + "pakku_id": "scaS4vsSneWYIouC", + "type": "MOD", + "slug": { + "curseforge": "catalogue" + }, + "name": { + "curseforge": "Catalogue" + }, + "id": { + "curseforge": "459701" + }, + "files": [ + { + "type": "curseforge", + "file_name": "catalogue-forge-1.20.1-1.8.0.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/4766/90/catalogue-forge-1.20.1-1.8.0.jar", + "id": "4766090", + "parent_id": "459701", + "hashes": { + "sha1": "b8cc73db430fa6015671492d4332a65a8c2f5cae", + "md5": "524efc6bbcd6da51e86cbf3183587330" + }, + "required_dependencies": [], + "size": 240394, + "date_published": "2023-09-24T02:34:14Z" + } + ] + }, { "pakku_id": "M4PNTNZvxOW9zDWV", "type": "MOD", @@ -13090,7 +13126,7 @@ ] }, { - "pakku_id": "3mAI0v5307Nirnd5", + "pakku_id": "2h0D3pYylEr3vTVs", "pakku_links": [ "F6H99cZ4H6jZRpEK", "apqasFnXUkYXZUFj" @@ -13099,43 +13135,40 @@ "side": "BOTH", "slug": { "curseforge": "terrafirmagreg-core", - "modrinth": "terrafirmagreg-core", - "github": "TerraFirmaGreg-Team/Core-Modern" + "modrinth": "terrafirmagreg-core" }, "name": { "curseforge": "TerraFirmaGreg-Core", - "modrinth": "TerraFirmaGreg-Core", - "github": "Core-Modern" + "modrinth": "TerraFirmaGreg-Core" }, "id": { "curseforge": "513402", - "modrinth": "lNttW2Xl", - "github": "668983056" + "modrinth": "lNttW2Xl" }, "files": [ { "type": "curseforge", - "file_name": "TFG-Core-Modern-0.6.0.jar", + "file_name": "TerraFirmaGreg-Core-Modern-0.6.1.jar", "mc_versions": [ "1.20.1" ], "loaders": [ - "neoforge", "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/5853/918/TFG-Core-Modern-0.6.0.jar", - "id": "5853918", + "url": "https://edge.forgecdn.net/files/6424/600/TerraFirmaGreg-Core-Modern-0.6.1.jar", + "id": "6424600", "parent_id": "513402", "hashes": { - "sha1": "9dbf0f12c3447744a9100e404ffea51b798138f3", - "md5": "22d927266923bccd7f7a4a06bd96824a" + "sha1": "5c23bc9e7d5948142b1d45ad8fca91e6a9467bf3", + "md5": "61d52e9c8fe1f38b3b327498c9d37128" }, "required_dependencies": [ - "302973" + "302973", + "890405" ], - "size": 325760, - "date_published": "2024-10-28T14:40:10.317Z" + "size": 241598, + "date_published": "2025-04-15T03:58:23.103Z" }, { "type": "modrinth", @@ -13155,21 +13188,11 @@ "sha1": "5c23bc9e7d5948142b1d45ad8fca91e6a9467bf3" }, "required_dependencies": [ - "7tG215v7", - "JaCEZUhg" + "JaCEZUhg", + "7tG215v7" ], "size": 241598, "date_published": "2025-04-15T03:58:27.227420Z" - }, - { - "type": "github", - "file_name": "TFG-Core-Modern-0.6.0.jar", - "release_type": "release", - "url": "https://github.com/TerraFirmaGreg-Team/Core-Modern/releases/download/0.6.0/TerraFirmaGreg-Core-Modern-0.6.0.jar", - "id": "230462996", - "parent_id": "668983056", - "size": 325760, - "date_published": "2024-10-28T14:40:14Z" } ] },