Release: 0.9.6 (#1020)

* - Fixed hide duping recipes.
- Added quest book and field guide instances for fishing nets.
- Fixed rebar support recipe crash.
- Fixed red steel flask dupe.
- Fixed red alloy recipe inconsistency.

* - Fixed blue steel backpack block lang

* - Added max vessel fluid warning to small vessels.

* - Moved red steel flask recipe

* Update pakku.json

* fixed vessel tooltips so they display on the uncolored vessel too

* fixed inconsistent small spring recipe with the coiling machine

* fixed chiseling non-tfc blocks into slabs was only returning 1 slab instead of both

* Field guide updates (#973)

* added detected-setblock-be-gone to pakku server

* added "requiresNaturalLog" config to afc tree tapping recipes so you can't tap your house

* fixed missing tooltips on AFC wooden supports

* added recipes for greenhouse ports, added recipes for stainless steel greenhouse (if you want to be fancy)

* quest fixes, lang strings

* added assembler recipes for most create things, made steam engines, blaze burners, and alternators cheaper, made firmaciv sails use any fabric

* langs

* removed gt compressed clay, fixed assembler recipe for clay bricks

* removed the leather armor recycling because it's basically infinite armor

* fixed iron door inconsistency

* hopper in assembler now has a circuit condition

* fixes #931

* Buff Large Boiler Fuel Efficiency (#977)

* bufflargeboilers

* formatting

* oh so THAT's why the recycling recipes weren't working...

* made the steam multiblock inputs/outputs significantly cheaper

* changed default flywheel setting back to instanced

* added assembler recipes for greate things

* updated changelog

* added recipes for the other millstones

* - Fixed fishing nets event function

* Update queststfc_tips.snbt

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

* Update en_us.json

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

* - Added item to summon armor stands with arms

* - Added recipes to empty vessels and molds

* - Added recipes for extracting/ forming magma blocks.

* - Added recipes for extracting/ forming magma blocks.

* - Nerfed steel support recipe output.

* Fixes and features (#987)

* - Fixed hide duping recipes.
- Added quest book and field guide instances for fishing nets.
- Fixed rebar support recipe crash.
- Fixed red steel flask dupe.
- Fixed red alloy recipe inconsistency.

* - Fixed blue steel backpack block lang

* - Added max vessel fluid warning to small vessels.

* - Moved red steel flask recipe

* - Fixed fishing nets event function

* Update queststfc_tips.snbt

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

* Update en_us.json

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

* - Added item to summon armor stands with arms

* - Added recipes to empty vessels and molds

* - Added recipes for extracting/ forming magma blocks.

* - Added recipes for extracting/ forming magma blocks.

* - Nerfed steel support recipe output.

---------

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

* Add wrought iron alternatives for early game cast iron recipes (#985)

* Add wrought iron alternatives for early game cast iron recipes

* Change doulbe iron ingots tag to use #forge item tags

* salt water fast fix (#992)

no more circuits

Signed-off-by: SverhRazum-Nah <leon.trol@mail.ru>

* - Revert mold changes from #987

* Branch merge (#995)

* Some recipe changes (#1003)

* misc recipes

* add saw to jar lid recipe

* revert table salt name changing that didn't work

* fixed the basin having the wrong tag to be used with the charcoal forge

* removed obsidian framed pressure plate - idk what it even does, but it's causing crashes
fixes #1006

* Fix for Create Deco bricks conflict with Minecraft bricks in the assembler (#1005)

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

* removing the gregtech material error suppression because it's just causing more confusion

* updated changelog

* Update CHANGELOG.md

* Update ENHANCEMENT.yml

* Update ENHANCEMENT.yml

* Update ENHANCEMENT.yml

* Update ENHANCEMENT.yml

* Update ENHANCEMENT.yml

* Update ENHANCEMENT.yml

* Update ENHANCEMENT.yml

* Update ENHANCEMENT.yml

* Update ENHANCEMENT.yml

* Update ENHANCEMENT.yml

* ISSUE_TEMPLATE

* tweaked Y levels of the overworld <-> beneath teleporting

* ISSUE_TEMPLATE

* github

* langs, quest tweaks, updated field guide for sprinklers

* put tin jar lid recycling in the right category

* hid the new space tfg blocks

* updated pakku

* I FORGOT TO ADD PUNISHMENT FOR DEATH

* aa

* Update mods

* CHANGELOG

---------

Signed-off-by: Redeix <59435925+Redeix@users.noreply.github.com>
Signed-off-by: SverhRazum-Nah <leon.trol@mail.ru>
Signed-off-by: TomPlop <tomdidome@gmail.com>
Co-authored-by: Redeix <brayden.j.m.ford@gmail.com>
Co-authored-by: Xikaro <os.valerievich@ya.ru>
Co-authored-by: Risuga <oosyrag@gmail.com>
Co-authored-by: Redeix <59435925+Redeix@users.noreply.github.com>
Co-authored-by: Zack <93035068+ZackH01@users.noreply.github.com>
Co-authored-by: SverhRazum-Nah <leon.trol@mail.ru>
Co-authored-by: TomPlop <tomdidome@gmail.com>
This commit is contained in:
Pyritie 2025-05-16 14:49:23 +01:00 committed by GitHub
parent 75ac3d1877
commit e6c971f197
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
59 changed files with 1564 additions and 656 deletions

View file

@ -1,7 +1,9 @@
name: "Bug report"
description: "Report a bug where something is not working as expected, which does not crash the game."
title: "[🐛]: "
labels: [ "1. Type: Bug", "2. Status: Unverified" ]
labels: [ "Status: Backlog" ]
projects: ["TerraFirmaGreg-Team/10"]
type: "Bug"
body:
- type: checkboxes

View file

@ -1,7 +1,9 @@
name: "Crash Report"
description: "Report a bug that crashes the game or prevents startup."
title: "[💥]: "
labels: [ "1. Type: Crash", "2. Status: Unverified" ]
labels: [ "Status: Backlog" ]
projects: ["TerraFirmaGreg-Team/10"]
type: "Crash"
body:
- type: checkboxes

View file

@ -1,7 +1,9 @@
name: "Enhancement"
description: "Provide supporting details for a feature in development"
title: "[🪡]: "
labels: [ "1. Type: Enhancement" ]
labels: [ "Status: Backlog" ]
projects: ["TerraFirmaGreg-Team/10"]
type: "Enhancement"
body:
- type: checkboxes

View file

@ -1,7 +1,9 @@
name: "Feature request"
description: "Request a new feature or a change to an existing one."
title: "[🪶]: "
labels: [ "1. Type: Feature" ]
labels: [ "Status: Backlog" ]
projects: ["TerraFirmaGreg-Team/10"]
type: "Feature"
body:
- type: checkboxes

View file

@ -1,7 +1,8 @@
name: "Ask a Question"
description: "Ask a question regarding this project."
title: "[❓]: "
labels: [ "1. Type: Question" ]
labels: [ "Status: Backlog" ]
type: "Question"
body:
- type: checkboxes

View file

@ -11,7 +11,7 @@ updates:
schedule:
interval: "weekly"
labels:
- "1. Type: Dependencies"
- "Type: Dependencies"
groups:
dependencies:
applies-to: version-updates

View file

@ -387,10 +387,10 @@ jobs:
fi
echo "✔️ All artifacts found"
- name: 🚫 Сlose fixed in dev
- name: 🚫 Сlose label "Done"
uses: Xikaro/close-issues-based-on-label@master
env:
LABEL: "2. Status: In Dev"
LABEL: "Status: Done"
COMMENT: In ${{ needs.info.outputs.project_version }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View file

@ -1,7 +1,36 @@
# Changelog
## [Unreleased]
### Changes
## [0.9.6] - 16.05.2025
### Changes
- Changed wooden tongs recipe from shapeless to shaped. @Oosyrag
- Added crafting recipe for tin jar lids. @Oosyrag
- Rebalanced the Large Boilers so now they consume WAY less fuel, so lava is no longer basically mandatory - see #977 for the full math. @Oosyrag
- Greenhouse ports and sprinklers now work directly with gregtech pipes. @Thomasx0
- Added recipes for stainless steel greenhouse parts. @Pyritie
- More field guide updates. @Oosyrag
- Added assembler recipes for more Create and Greate items. @Pyritie
- Blaze burners, alternators, steam engines, and steam multiblock inputs/outputs are now much cheaper. @Pyritie
- Firmaciv sails can now use any fabric instead of just wool. @Pyritie
- Fixed some recycling recipes to prevent dupes. @Pyritie
- Added a circuit to the assembler hopper recipe. @Pyritie
- Fixed chiseling non-tfc blocks so it returns two slabs instead of one. @Pyritie
- Fixed being able to use tree taps on placed logs. @Pyritie
- Fixed tooltips on the uncolored small vessel and AFC wooden supports. @Pyritie
- Fixed assembler clay recipes so they output the correct amount. @Pyritie
- Quest fixes/tweaks. @Pyritie
- Added aluminium, stainless steel, and titanium millstones. @Pyritie
- Fixed fishing nets behavior. @Redeix
- Added item to summon armor stands with arms. @Redeix
- Added recipes for extracting/ forming magma blocks. @Redeix
- Nerfed steel support recipe output. @Redeix
- Fixed assembler recipe conflict with regular vanilla bricks and Create Deco's colored bricks. @TomPlop
- Fixed not being able to use a charcoal forge with a basin. @Pyritie
- Removed programmed circuit from the salt water electrolysis recipe. @SverhRazum-Nah
- Added wrought iron alternatives for early game cast iron recipes, like wooden crates. @ZackH01
## [0.9.5] - 08.05.2025
### Changes
- Disabled pollution

View file

@ -1,6 +1,6 @@
#Select the backend to use.
#Allowed Values: OFF, BATCHING, INSTANCING
backend = "OFF"
backend = "INSTANCING"
#Enable or disable a debug overlay that colors pixels by their normal.
debugNormals = false
#Enable or disable instance update limiting with distance.

View file

@ -31,7 +31,7 @@
"teleporttype": "AIR",
"teleport_to_y": 125
},
"belowy": -58,
"belowy": -57,
"slowfallticks": 1200
},
{
@ -39,7 +39,7 @@
"to": "minecraft:overworld",
"teleporttype": {
"teleporttype": "CAVE",
"teleport_to_y": -58
"teleport_to_y": -56
},
"abovey": 118
}

View file

@ -1308,13 +1308,7 @@
}
{
dependencies: ["22510C5F2386B453"]
description: [
"{quests.steam_age.alternator.desc.1}"
"{@pagebreak}"
"{quests.steam_age.alternator.desc.2}"
""
"{image:tfg:textures/quests/alternator_multiblock.png width:100 height:100 align:center}"
]
description: ["{quests.steam_age.alternator.desc.1}"]
id: "2DC24661CAD557B0"
optional: true
subtitle: "{quests.steam_age.alternator.subtitle}"

View file

@ -81,17 +81,23 @@
size: 1.0d
subtitle: "{quests.medium_voltage.mv_brewery.subtitle}"
tasks: [
{
id: "095C98D86D021B2E"
item: "gtceu:lv_brewery"
type: "item"
}
{
id: "1CB0F32E8293B5D7"
item: "gtceu:lubricant_bucket"
optional_task: true
type: "item"
}
{
id: "29393DEB346EC4D2"
item: {
Count: 1
id: "ftbfiltersystem:smart_filter"
tag: {
"ftbfiltersystem:filter": "or(item(gtceu:lv_brewery)item(gtceu:mv_brewery))"
}
}
type: "item"
}
]
title: "{quests.medium_voltage.mv_brewery.title}"
x: -5.5d
@ -1001,7 +1007,7 @@
type: "item"
}]
title: "{quests.medium_voltage.mv_oilsands.title}"
x: -2.5d
x: -8.0d
y: 1.0d
}
{
@ -1010,6 +1016,7 @@
"6EB68C28BEE24DEF"
"05ADBAE5B6F38956"
]
dependency_requirement: "one_completed"
description: [
"{quests.medium_voltage.mv_distillery.desc.1}"
"{@pagebreak}"
@ -1024,12 +1031,12 @@
size: 1.0d
subtitle: "{quests.medium_voltage.mv_distillery.subtitle}"
tasks: [{
id: "685043442271A0D0"
id: "6C32C7BCF9D12EBC"
item: {
Count: 1
id: "ftbfiltersystem:smart_filter"
tag: {
"ftbfiltersystem:filter": "or(item(gtceu:mv_distillery)item(gtceu:lv_distillery))"
"ftbfiltersystem:filter": "or(item(gtceu:lv_distillery)item(gtceu:mv_distillery))"
}
}
title: "{quests.medium_voltage.mv_distillery.task}"
@ -1167,7 +1174,7 @@
}]
title: "{quests.medium_voltage.mv_mutli_channel.title}"
x: -8.0d
y: 1.0d
y: -2.0d
}
{
dependencies: ["315169840E06110F"]

View file

@ -22,25 +22,18 @@
id: "5D09BEE61210DF02"
size: 1.5d
subtitle: "{quests.ore_proc.native_ore.subtitle}"
tasks: [
{
id: "047DA2872D107BA0"
item: {
Count: 1
id: "ftbfiltersystem:smart_filter"
tag: {
"ftbfiltersystem:filter": "or(item_tag(tfc:ore_pieces))"
}
tasks: [{
id: "047DA2872D107BA0"
item: {
Count: 1
id: "ftbfiltersystem:smart_filter"
tag: {
"ftbfiltersystem:filter": "or(item_tag(tfc:ore_pieces))"
}
optional_task: true
title: "{quests.ore_proc.native_ore.task}"
type: "item"
}
{
id: "2D0D9226FDB3CAC9"
type: "checkmark"
}
]
title: "{quests.ore_proc.native_ore.task}"
type: "item"
}]
title: "{quests.ore_proc.native_ore.title}"
x: 0.5d
y: -8.5d

View file

@ -23,10 +23,8 @@
{
id: "23A27702FF816291"
linked_quest: "6903C72A254A7B08"
shape: "octagon"
size: 2.0d
x: -13.5d
y: 14.5d
x: -14.5d
y: 6.0d
}
{
id: "1F1E7097C015BE33"
@ -726,7 +724,8 @@
dependencies: ["46FA9DD4755A5548"]
description: ["{quests.steam_age.extractor.desc}"]
id: "1DF4DBE41BB0B6FD"
shape: "square"
optional: true
shape: "heart"
size: 1.0d
subtitle: "{quests.steam_age.extractor.subtitle}"
tasks: [{
@ -1161,7 +1160,7 @@
type: "item"
}]
title: "{quests.steam_age.vacuum_chamber.title}"
x: -13.5d
x: -14.5d
y: 12.0d
}
{
@ -1509,7 +1508,7 @@
y: 10.5d
}
{
dependencies: ["033E74BC588E7EAD"]
dependencies: ["32046292AA5B0E30"]
description: ["{quests.steam_age.rotation_speed_controller.desc}"]
id: "414835BADD34513F"
optional: true
@ -1520,8 +1519,8 @@
type: "item"
}]
title: "{quests.steam_age.rotation_speed_controller.title}"
x: -21.0d
y: 17.0d
x: -5.5d
y: -2.0d
}
{
dependencies: [
@ -1578,7 +1577,7 @@
dependencies: ["49896161B31DB7B4"]
description: [
"There is currently a bug with the Mechanical Mixer where some recipes want an actual Programmed Circuit item."
"For the time being, you can craft these out of Sticks."
"For the time being, you can craft these with a Stick and a Wrench."
""
"This will be fixed whenever we're able to update Greate to the latest version, which requires Create 6, which requires other Create addons to be updated... hopefully that should be soon."
]

View file

@ -1116,9 +1116,10 @@
}
{
dependencies: [
"1DF4DBE41BB0B6FD"
"4891E995D3EC2BD1"
"5F3063C539C9CBBF"
]
dependency_requirement: "one_completed"
description: ["{quests.tfg_tips.create_rubber_ingot.desc}"]
id: "6903C72A254A7B08"
shape: "gear"
@ -4792,20 +4793,23 @@
}
{
dependencies: ["2D2CB8104E40E808"]
description: ["The &6Nano Saber&r is a powerful weapon youll be able to unlock once you reach &5EV&r. Simply use &dShift + Right-Click&r to activate the &cbzzzzz mode&r."]
description: ["{quests.tfg_tips.nano_saber.desc}"]
id: "7A4C6930EF68646E"
subtitle: "{quests.tfg_tips.nano_saber.subtitle}"
tasks: [{
id: "41A7611367BBD2A7"
item: "gtceu:nano_saber"
type: "item"
}]
title: "{quests.tfg_tips.nano_saber.title}"
x: 12.0d
y: 7.0d
}
{
dependencies: ["2D2CB8104E40E808"]
description: ["The &6Item Magnet&r is exactly what you'd expect — a magnet that pulls nearby &6items&r straight to you. &aVery useful&r. What more could you ask for?"]
description: ["{quests.tfg_tips.magnets.desc}"]
id: "49D2EFFFC15563F9"
subtitle: "{quests.tfg_tips.magnets.subtitle}"
tasks: [{
id: "6290D18A38A1583C"
item: {
@ -4817,6 +4821,7 @@
}
type: "item"
}]
title: "{quests.tfg_tips.magnets.title}"
x: 12.0d
y: 9.0d
}
@ -4990,8 +4995,9 @@
}
{
dependencies: ["2D2CB8104E40E808"]
description: ["Most &5GregTech&r tools are crafted from a &6Tool Head&r. Try using &aEMI&r to explore what you can do with them — just remember two important things:\\n\\n- The &ehigher the Tool Head tier&r, the more &cpowerful&r the tool will be, and the &6larger the battery&r it will use.\\n- Not every tool supports every Tool Head tier. For example, the &6Chainsaw&r can only be crafted with a &7LV Tool Head&r."]
description: ["{quests.tfg_tips.gt_tools.desc}"]
id: "2CA86664C6E0C888"
subtitle: "{quests.tfg_tips.gt_tools.subtitle}"
tasks: [{
id: "153D23778A26C74F"
item: {
@ -5003,6 +5009,7 @@
}
type: "item"
}]
title: "{quests.tfg_tips.gt_tools.title}"
x: 12.0d
y: 8.0d
}

View file

@ -62,6 +62,8 @@
"material.gtceu.ostrum": "Ostrum",
"material.gtceu.calorite": "Calorite",
"material.gtceu.etrium": "Etrium",
"material.gtceu.rocket_alloy_t1": "Colored Rocket Alloy",
"material.gtceu.vitrified_asbestos": "Vitrified Asbestos",
"metaitem.dust.tooltip.purify": "Drop in Water to get Clean Dust",
"metaitem.crushed.tooltip.purify": "Drop in Water to get Purified Ore",
"item.gtceu.tool.behavior.silk_ice": "Silk Harvests Packed Ice",

View file

@ -41,6 +41,7 @@
"block.minecraft.polished_blackstone_wall": "Polished Pyroxenite Wall",
"block.minecraft.dripstone_block": "Raw Travertine",
"block.minecraft.magma_block": "Pyroxenite Magma",
"block.minecraft.twisting_vines": "Lightbloom Stem",
"item.minecraft.iron_nugget": "Cast Iron Nugget",
"item.minecraft.iron_ingot": "Cast Iron Ingot",
"item.minecraft.iron_block": "Cast Iron Block",

View file

@ -13,12 +13,14 @@
"text": "The sprinkler is made with a $(thing)Copper Plate$()."
},
{
"type": "patchouli:text",
"text": "Sprinklers must be connected to a system of pipes that feed it water in order to work. This is done by connecting a series of $(thing)Fluid Pipes$() to them. You can pump fluid into them with a $(thing)Mechanical Pump$()."
"title": "Piping",
"item": "gtceu:copper_tiny_fluid_pipe",
"type": "patchouli:spotlight",
"text": "Sprinklers must be connected to a system of pipes that feed it water in order to work. This is done by connecting a series of $(thing)Fluid Pipes$() to them. You can pump water into them with a $(thing)Mechanical Pump$()."
},
{
"type": "patchouli:text",
"text": "You can right-click a pipe with a GregTech Frame (such as a $(thing)Copper Frame$()) to make them flush with the wall. You will need a Drum or Fluid Tank attached to each sprinkler in order for them to work."
"text": "You can right-click a pipe with a GregTech Frame (such as a $(thing)Copper Frame$()) to make them flush with the wall, or use a Greenhouse Port. You can then attach your sprinkler directly to the pipe! Right-click fluid pipes with a wrench to change their direction, and sneak-right-click them with an $(thing)empty offhand$() to make them one-way."
}
],
"read_by_default": true,

View file

@ -53,12 +53,17 @@
},
{
"type": "patchouli:text",
"text": "First, open the $(thing)Small Vessel$() and put the ores inside. Count up the total amount of metal in the ores carefully! Then, you need to build a $(l:getting_started/pit_kiln)Pit Kiln$() with the filled small vessel inside. As the vessel heats, the ores inside it will melt, and you'll be left with a vessel of molten metal.$(br2)Take the vessel out and $(item)$(k:key.use)$() while holding it, to open the $(thing)Casting$() interface."
"text": "First, open the $(thing)Small Vessel$() and put the ores inside. Count up the total amount of metal in the ores carefully! The vessel can only hold up to 3024mB of molten metal, excess will be lost. Then, you need to build a $(l:getting_started/pit_kiln)Pit Kiln$() with the filled small vessel inside. As the vessel heats, the ores inside it will melt, and you'll be left with a vessel of molten metal."
},
{
"type": "patchouli:crafting",
"recipe": "tfchotornot:crafting/tongs/wood",
"text": "Careful, the vessel will be hot! Craft $(thing)Wooden Tongs$() with two sticks and a knife and hold them in your off hand to handle the hot vessel safely."
},
{
"type": "patchouli:image",
"images": [ "tfc:textures/gui/book/gui/casting.png" ],
"text": "The Casting Interface.",
"text": "Hold the vessel and $(item)$(k:key.use)$() to open the $(thing)Casting$() interface.",
"border": false
},
{

View file

@ -0,0 +1,63 @@
{
"name": "Concrete Roads",
"category": "tfc:roadsandroofs",
"icon": "rnr:concrete_road_panel",
"pages": [
{
"type": "patchouli:text",
"text": "Concrete roads are the fastest variety of road that can be constructed, offering a 30% movement speed bonus when properly constructed. However, road builders must be diligent when constructing concrete roads to prevent them from cracking or being trodden on while wet, as this will remove the speed bonus."
},
{
"type": "patchouli:image",
"title": "Concrete Road",
"images": [ "rnr:textures/gui/book/concrete_road.png" ],
"border": true
},
{
"type": "patchouli:spotlight",
"anchor": "liquid_concrete",
"item": "gtceu:concrete_bucket",
"title": "Concrete Crafting",
"text": "The first step in making a concrete road is mixing the liquid concrete. Use a $(thing)Mixer$() to combine water with any two stone dusts, one of either calcite or marble dust, and gypsum dust, or any three stone dusts with clay dust to make $(thing)Liquid Concrete$()."
},
{
"type": "patchouli:spotlight",
"anchor": "wet_concrete",
"item": "rnr:bucket/concrete",
"title": "Concrete Crafting",
"text": "Then add the liquid concrete in a $(thing)Mixer$() set to $(thing)Programmed Circuit #7$() with more water to dilute it into $(thing)Wet Concrete Mix$()."
},
{
"type": "patchouli:text",
"text": "Once $(thing)Wet Concrete$() has been mixed, it can be picked up in a bucket and placed on a $(thing)Base Course Block$() where it will spread to adjacent blocks. The concrete will harden after one day, and until it hardens care must be taken that no creatures walk through the wet concrete as this will create an uneven surface that provides no speed bonus. Footprints can be smoothed out with a $(thing)Mattock$()."
},
{
"type": "patchouli:image",
"title": "Pouring a Concrete Road",
"images": [ "rnr:textures/gui/book/wet_concrete.png" ],
"border": true
},
{
"type": "patchouli:text",
"text": "Shrinkage cracking is also a concern as concrete sets. If concrete is poured in areas more than four blocks wide, blocks that are farther than two blocks from the nearest $(thing)Edge$(), $(thing)Control Joint$(), or $(thing)Textured Finish$() will crack when set. This can be prevented by pouring concrete in smaller areas, using a $(thing)Mattock$() to add $(thing)Control Joints$(), or by applying a $(thing)Textured Finish$()."
},
{
"type": "patchouli:image",
"title": "Control Joints",
"images": [ "rnr:textures/gui/book/control_joints.png" ],
"border": true
},
{
"type": "patchouli:text",
"text": "$(thing)Textured Finishes$() are created by pressing $(thing)Bricks$(), $(thing)Flagstones$(), or $(thing)Smooth Stone Blocks$() into drying concrete to create an architectural finish. These blocks also act as $(thing)Control Joints$() for preventing cracking. Once concrete has finished drying, a $(thing)Chisel$() can be used to form slabs and stairs."
},
{
"type": "patchouli:image",
"title": "Faux Sett Road",
"images": [ "rnr:textures/gui/book/faux_sett.png" ],
"border": true
}
],
"read_by_default": true,
"sortnum": 20
}

View file

@ -11,9 +11,14 @@
"biome.tfg.nether/gneiss_caves": "Deep Caves",
"biome.tfg.nether/granite_caves": "Deep Caves",
"biome.tfg.nether/schist_caves": "Deep Caves",
"biome.tfg.moon/lunar_basalt_maria": "Lunar Maria",
"biome.tfg.moon/lunar_diorite_delta": "Lunar Delta",
"biome.tfg.moon/lunar_gabbro_uplift": "Lunar Uplift",
"biome.tfg.moon/lunar_asurine_dense": "Certus Fields",
"biome.tfg.moon/lunar_asurine_sparse": "Asurine Fields",
"biome.tfg.moon/lunar_chorus_dense": "Chorus Thicket",
"biome.tfg.moon/lunar_chorus_sparse": "Chorus Forest",
"biome.tfg.moon/lunar_corals_dense": "Lunar Reef",
"biome.tfg.moon/lunar_corals_sparse": "Lunar Maria",
"biome.tfg.moon/lunar_lights_dense": "Lightbloom Star Gazers",
"biome.tfg.moon/lunar_lights_sparse": "Lightbloom Scrubland",
"biome.tfg.moon/lunar_plains": "Lunar Plains",
"block.tfg.decorative_vase.black": "Black Decorative Vase",
"block.tfg.decorative_vase.gray": "Gray Decorative Vase",
@ -131,18 +136,30 @@
"block.tfg.loose.deepslate": "Loose Migmatite Rock",
"block.tfg.loose.dripstone": "Loose Travertine Rock",
"block.tfg.rock.hardened_moon_stone": "Hardened Anorthosite",
"block.tfg.spike.moon_stone_spike": "Anorthosite Spike",
"block.tfg.loose.moon_stone": "Loose Anorthosite Rock",
"block.tfg.rock.hardened_moon_deepslate": "Hardened Norite",
"block.tfg.spike.moon_deepslate_spike": "Norite Spike",
"block.tfg.loose.moon_deepslate": "Loose Norite Rock",
"block.tfg.rock.hardened_mars_stone": "Hardened Argillite",
"block.tfg.spike.mars_stone_spike": "Argillite Spike",
"block.tfg.loose.mars_stone": "Loose Argillite Rock",
"block.tfg.rock.hardened_venus_stone": "Hardened Trachyte",
"block.tfg.spike.venus_stone_spike": "Trachyte Spike",
"block.tfg.loose.venus_stone": "Loose Trachyte Rock",
"block.tfg.rock.hardened_mercury_stone": "Hardened Komatiite",
"block.tfg.spike.mercury_stone_spike": "Komatiite Spike",
"block.tfg.loose.mercury_stone": "Loose Komatiite Rock",
"block.tfg.rock.hardened_glacio_stone": "Hardened Phonolite",
"block.tfg.spike.glacio_stone_spike": "Phonolite Spike",
"block.tfg.loose.glacio_stone": "Loose Phonolite Rock",
"block.tfg.rock.hardened_permafrost": "Hardened Permafrost",
"block.tfg.spike.permafrost_spike": "Permafrost Spike",
"block.tfg.loose.permafrost": "Permafrost Chunk",
"block.tfg.lunar_roots": "Lunar Lightblooms",
"block.tfg.lunar_sprouts": "Lunar Lightgrass",
"block.tfg.lunar_chorus_plant": "Chorus Plant",
"block.tfg.lunar_chorus_flower": "Chorus Flower",
"item.tfg.antipoison_pill": "Antipoison Pill",
"item.tfg.haste_pill": "Haste Pill",
"item.tfg.night_vision_pill": "Night Vision Pill",
@ -189,6 +206,7 @@
"item.tfg.latex_soaked_gloves": "Latex-Soaked Gloves",
"item.tfg.spade_head_extruder_mold": "Extruder Mold (Spade Head)",
"item.tfg.unfired_chalk": "Unfired Chalk Stick",
"item.tfg.armor_stand_arms": "Armor Stand with Arms",
"item.tfg.brick.deepslate": "Migmatite Brick",
"item.tfg.loose.moon_stone": "Loose Anorthosite",
"item.tfg.brick.moon_stone": "Anorthosite Brick",
@ -564,12 +582,14 @@
"quests.development.hull_zpm.desc": "This is the &9Wetware&r Circuit line.\n\nIt will be the biggest automation challenge to face in this modpack. Best of luck.",
"quests.gregtech_energy": "Gregtech Energy",
"quests.gregtech_energy.subtitle": "So how does all of that work?",
"quests.gregtech_energy.start.title": "Let's do some explaining",
"quests.gregtech_energy.start.desc": "We know that &5GregTech&r isnt the easiest mod to get into — especially when it comes to the &cenergy system&r. Thats why well take our time in this chapter to explain as much as we can.\n\nSome things here might not make full sense until later in your progression, so &adont stress yourself&r. Just try to understand what you can for now, and feel free to &dcome back to this chapter&r whenever you have questions.\n\nWeve split this chapter into &efour categories&r, each one covering a topic related to the &6GregTech Energy System&r. Well provide as many examples as possible to help you understand how it all works.",
"quests.gregtech_energy.start.task": "Welcome aboard",
"quests.gregtech_energy.TEST.title": "",
"quests.gregtech_energy.TEST.subtitle": "",
"quests.gregtech_energy.TEST.desc.1": "",
"quests.gregtech_energy.TEST.desc.2": "",
"quests.gregtech_energy.TEST.desc.3": "",
"quests.gregtech_energy.TEST.desc.4": "",
"quests.gregtech_energy.TEST.task": "",
"quests.gregtech_energy.TEST.desc": "",
"quests.high_voltage": "&6HV&r - High Voltage",
@ -1046,6 +1066,9 @@
"quests.medium_voltage.mv_ram.title": "Download more RAM",
"quests.medium_voltage.mv_ram.subtitle": "That's from the Dark Punk you know?",
"quests.medium_voltage.mv_ram.desc": "&aRandom Access Memory&r is required for many Circuits.",
"quests.medium_voltage.lsb.title": "Getting very steamy",
"quests.medium_voltage.lsb.subtitle": "If you have unlimited fuel, it can still be good",
"quests.medium_voltage.lsb.desc": "If you're &lstill&r running off the &3Large Bronze Boiler&r, you may want to upgrade to the &3Large Steel Boiler&r.\n\nIt's slightly more efficient than the &3LBB&r, and produces &d900 EU/t worth of Steam&r.\n\nWe'd recommend you try other power options at this point.",
"quests.metal_age": "Metallurgy Age",
"quests.metal_age.subtitle": "Your First Technological Advancements.",
"quests.metal_age.weld_bronze_ingots.title": "Welding Bronze",
@ -1123,7 +1146,7 @@
"quests.metal_age.fire_bricks.desc": "Fire Bricks are used in the construction of the Blast Furnace, you need at the very least 4 Bricks to make the furnace.\n\nThe Bricks will require insulation to make sure the process of making steel is effective, you can either place 3 Wrought Iron Sheets around the Fire Bricks, or use Blast Furnace Insulation",
"quests.metal_age.fully_stacked_blast_furnace.title": "Fully Stacked Blast Furnace",
"quests.metal_age.fully_stacked_blast_furnace.subtitle": "The completed Blast Furnace",
"quests.metal_age.fully_stacked_blast_furnace.desc": "A full size Blast Furnace is able to melt and process large amounts of iron at once. It's a good idea to make it bigger when you can, because you'll need a lot of steel for the future.\n\nAfter you've got your first Steel Millstone, you'll be able to create more Fire Bricks more cheaply.",
"quests.metal_age.fully_stacked_blast_furnace.desc": "A full size Blast Furnace is able to melt and process large amounts of iron at once. It's a good idea to make it bigger when you can, because you'll need a lot of steel for the future.\n\nAfter you've got your first Steam Alloy Smelter, you'll be able to create more Fire Bricks more cheaply.",
"quests.metal_age.blast_furnace_fuel.title": "Fuel for the Blast Furnace",
"quests.metal_age.blast_furnace_fuel.subtitle": "Hope you followed the tips in the previous quests...",
"quests.metal_age.blast_furance_fuel.desc": "Regular Charcoal is not hot enough to be able to create Steel. You will need either Coke or Anthracite.\n\nCoke can be created by putting Coal into a Coke Oven, while Anthracite can be used as-is after being dug up from the Beneath.",
@ -1184,72 +1207,72 @@
"quests.ore_proc.native_ore.subtitle": "To Process, Ore Not To Process",
"quests.ore_proc.native_ore.desc": "An important part of &6Gregtech&r is its &dOre Processing Mechanics&r, but it can get pretty complicated, so this chapter is here to help!\n\nTo start with, you should be aware of the &6Ore Processing Diagram&r tab in EMI - Press the Show Uses key (default \"U\") on any item related to ore processing and look for the tab with the vanilla Iron Ore icon. This diagram may look overwhelming at first, but we'll take it step by step.\n\nA major part of GregTech philosophy is that there's not just one way to solve a problem, so take everything in this chapter as just a suggestion! We encourage you to customize your ore processing as you see fit.",
"quests.ore_proc.native_ore.task": "I agree to not just dump everything in a furnace",
"quests.ore_proc.ae2.title": "AE2 can help you",
"quests.ore_proc.ae2.title": "Ore processing with Applied Energistics 2",
"quests.ore_proc.ae2.subtitle": "A tag storage bus? What's that?",
"quests.ore_proc.ae2.desc": "If you like spaghetti only with &4tomato sauce&r we got you. With &6AE2&r no more pipes and filters everywhere simply the power of &dTag Storage Bus&r, Interface and &3Subnet&r.\n\nWe sure you know what's an interface but do you know what is the &dTag Storage Bus&r? Basically it's a Storage Bus that exports items by &6tag&r and not specific filter. So if you want a storage bus exporting only your purified ores it's easy just type '&5#forge:purified_ores*&r' or '&5*purified_ores*&r' in it. Obviouly there is other possibilities that we will let you explore. If you want to know the tag of an item, put it in main and type &6/kubejs hand&r\n\nAbout &3subnet&r we won't explain everything here but know atleast this, if you put a &6storage bus&r on an &2interface&r it will seperate the network. The &6storage bus side of the network&r will be able to look into the &2interface side of the newtork&r but &4not the other way around&r. That can be very useful so your ore processing isn't clogging your main storage or to split different processing.",
"quests.ore_proc.robot_arm.title": "Gregtech has the tools",
"quests.ore_proc.robot_arm.subtitle": "A robot arm sending excatly 4 small dusts filtered by tag?",
"quests.ore_proc.robot_arm.desc": "As always Gregtech has some pretty crazy tools to help you manage your logistic. You should already know about the &6Robot Arm&r and if you didn't use it yet for your &bVacuum Freezer&r we introduce you to the &6tag filter&r.\n\nIt's a filter for which you don't specify the item but use a tag or a combinaison of tag, you can refer to the explanation in the AE2 quest of this chapter for more.\n\nThe last one we want to introduce is the &4Smart Filter&r, this crazy one is able to filter items depending of a &6recipe&r. If you slap it on a robot arm itself slapped on an electrolyzer and set the robot arm to supply exact. It will supply the exact amount needed for the recipe?",
"quests.ore_proc.gtcy.title": "Ore Processing but Bigger",
"quests.ore_proc.gtcy.subtitle": "Who said size don't matter",
"quests.ore_proc.gtcy.desc": "As we said &6Ore Processing&r is a big part of &dGregtech&r and to help you without having to build milions of machines you can use the &bLarge Gregtech Machines&r. They do the exact same recipes but as they are multiblock you can chose the &6energy hatches&r and add a &6Parallel Hatch&r so they work faster\n\nAll of them are gated behind the &bAlloy Blast Smelter&r as it's the only multiblock able to create the alloys you need for every casing needed for these multiblocks. You will get more information on that within the &dEV&r chapter.",
"quests.ore_proc.macerator_byproduct.title": "Getting byproduct from crushing",
"quests.ore_proc.ae2.desc": "AE2 is great at moving items around without tons of spaghetti cables! You can use the &dTag Storage Bus&r to tell your network where to put items that match an item's tag, which you can view by pressing F3 + H. For example, if you want to send all your Purified Ores to a chest, slap a Tag Storage Bus on it and set its filter to '&5*purified_ores*&r'.\n\nThere's many online guides on how to set up an AE2 system, but a subnet to handle all ore processing before it goes into your main storage is a solid choice!",
"quests.ore_proc.robot_arm.title": "Ore processing with GregTech's own tools",
"quests.ore_proc.robot_arm.subtitle": "Providing answers to its own problems",
"quests.ore_proc.robot_arm.desc": "GregTech comes with its own tools to help solve ore processing logistics.\n\nThe &6Robot Arm&r can move precice numbers of items into a machine, such as only moving flawed gems into a Laser Engraver once you have two of them. The &6Tag Filter&r can filter items by tag, such as '&5*purified_ores*&r' to match all Purified Ores.\n\nThe &4Smart Filter&r can filter items depending on their &6recipe&r. For example, if you use it with a robot arm on an electrolyzer, and set the robot arm to supply exact, it will only move your dusts into the electrolyzer once it has as many inputs as the recipe requires!",
"quests.ore_proc.gtcy.title": "Ore processing but bigger",
"quests.ore_proc.gtcy.subtitle": "When size does matter",
"quests.ore_proc.gtcy.desc": "Once you get to IV, you'll gain access to multiblock versions of all of GregTech's single block machines. They do the exact same recipes as their single block cousins, but are more flexible - you can put lots of huge Input Buses on them, you can overclock them with higher tier &6Energy Hatches&r instead of making new ones every tier, and they even support &6Parallel Hatches&r to do multiple recipes simultaneously!\n\nAll of these machines require alloys created with the &bAlloy Blast Smelter&r, found at the end of &dEV&r.",
"quests.ore_proc.macerator_byproduct.title": "Crushing with byproducts",
"quests.ore_proc.macerator_byproduct.subtitle": "I can get even more from my ores!",
"quests.ore_proc.macerator_byproduct.desc": "When looking at &bEMI&r you certainly already realized that your &dMacerator&r or &dCrushing Wheels&r have more &boutputs&r that what you actually get.\n\nThere is a reason for that and it's due to the fact that these &bextra outputs&r are gated behind &6HV&r. So basically whenever you can use either the &6HV macerator&r or the &6HU crushing wheels&r go for it.\n\nAlso you can see the &dMillstone&r in &bEMI&r but you cannot craft its &6HV&r version so that's why you don't see it here.",
"quests.ore_proc.macerator_noproduct.title": "Crushing for the poors",
"quests.ore_proc.macerator_noproduct.subtitle": "With these no byproduct",
"quests.ore_proc.macerator_noproduct.desc": "At the very beginning of &6TerraFirmaCraft&r you gonna use a &bPit Kiln&r to melt your raw ores into tools but that's the least efficient method. As soon as possible we advise you to use the &bQuern&r to get crushed ores. When you unlock &6Create&r you first machine should be the &bMillstone&r so atleast you can automate it with &bChute&r.\n\nYou don't get any byproduct but it will at least double if not quadruple the amount you would have get.\n\nWe put the &bForge Hammer&r here just so you know you can also use this machine if you need real fast crushing at one point. This one will &4never&r give you byproduct though. Could be useful until you reach &6HV&r.",
"quests.ore_proc.crushed_ores.title": "So crushed ores is just the beginning",
"quests.ore_proc.crushed_ores.subtitle": "Where are my dusts",
"quests.ore_proc.crushed_ores.desc": "Now that you have your crushed ores we can say that you officially started the beginning of &6Ore Processing&r. Later on you will be able to use a &bLarge Miner&r to get your &dcrushed&r ores right away.\n\nFrom crushed ores we advise you to &dpurify&r your ores. To do that you have three options that we will explain in the next quests and give you some example of what we would recommend.\n\nAs always you may have different needs than our propositions so explore &bEMI&r and trust yourself.",
"quests.ore_proc.sodium_persuflate.title": "Bath them in Sodium Persuflate",
"quests.ore_proc.sodium_persuflate.subtitle": "It's some kind of salt",
"quests.ore_proc.sodium_persuflate.desc": "You can wash your crushed ores in a &bChemical Bath&r with &dSodium Persuflate&r to get some extra byproduct. Not all the ores can be processed that way but for the ones that can your crushed ores will have a higher wield than in the usual washing, around &670%&r chance of byproduct with the &bChemical Bath&r against the &630%&r of the &bOre Washer&r.\n\nThough obtaining &dSodium Persuflate&r isn't that easy to mass produce though we would advise you to look at &9Sea Water&r, it's your choice if you want to use this method for all the ores that can use this process.\n\nWe give you some examples of ores we believe are &6worthy&r to bath with &dSodium Persuflate&r because their byproduct are pretty rare or useful. Simply look at the quest on the left.",
"quests.ore_proc.sodium_ores.title": "Some ores you could bath in Sodium Persuflate",
"quests.ore_proc.sodium_ores.subtitle": "They are just examples",
"quests.ore_proc.sodium_ores.desc": "We thought these ones are note worthy\n\n-&6Crushed Aluminium&r for &dRutile&r your first way to get &dTitanium&r\n\n-&6Crushed Bauxite&r for &dGallium&r\n\n-&6Crushed Cobalt&r for &dCobaltite&r which is a good way to make &dArsenic&r\n\n-&6Crushed Tetrahedrite&r to make &dCadmium&r which doesn't have many uses right now but who knows that could change one day",
"quests.ore_proc.ore_washer.title": "Washing your ores with water",
"quests.ore_proc.ore_washer.subtitle": "That's the standart way to do",
"quests.ore_proc.ore_washer.desc": "Using an &dOre Washer&r or &9Bulk Washing&r with an &dEncased fan&r will be the general method you use to get your &6Crushed Ores&r to the next step.\n\nThere is some stuffs to know if you use the &bGregtech&r machine though, first if you use &9Distilled Water&r the recipe will be &a50%&r faster and also know that if you don't care about the byproduct you can use circuit #2 so the recipes is &425 times faster but with no byproduct&r.",
"quests.ore_proc.mercury_ores.title": "Bath them in Mercury",
"quests.ore_proc.mercury_ores.subtitle": "This one is quite bad for your health",
"quests.ore_proc.mercury_ores.desc": "You can wash your crushed ores in a &bChemical Bath&r with &dMercury&r to get some extra byproduct. Not all the ores can be processed that way but for the ones that can your crushed ores will have a higher wield than in the usual washing, around &670%&r chance of byproduct with the &bChemical Bath&r against the &630%&r of the &bOre Washer&r.\n\nIn that case obtaining &dMercury&r is quite easy you can just get it from &cRedstone&r or &cCinnabar&r, it's your choice if you want to use this method for all the ores that can use this process.\n\nWe give you some examples of ores we believe are &6worthy&r to bath with &dMercury&r because their byproduct are pretty rare or useful. Simply look at the quest on the right.",
"quests.ore_proc.mercury.title": "Some ores you could bath in Mercury",
"quests.ore_proc.mercury.subtitle": "They are just examples",
"quests.ore_proc.mercury.desc": "We thought these ones are note worthy\n\n-&6Crushed Platinium&r for &dPaladium&r\n\n-&6Crushed Sheldonite&r for &dPaladium&r\n\n-&6Crushed Nickel&r for &dPlatinium&r\n\nThey are easy way to get access to these metals before doing the rough Platline.",
"quests.ore_proc.purified_ores.title": "It's been Purified",
"quests.ore_proc.purified_ores.subtitle": "You can do quite a lot with the purified ones",
"quests.ore_proc.purified_ores.desc": "You reached the &6Purified Ores&r, once again you have different options to go further.\n\nYou'll also notice quests on both sides that mark the beginning of the infamous &dPlatline&r and the easier &dIndium Line&r, each starting with specific &6Purified Ores&r. Take a look at it as it might come in handy soon. It could be a good idea to store these for when you tackle those specific quest lines.",
"quests.ore_proc.macerator_byproduct.desc": "While looking at &bEMI&r, you've probably noticed that your &dMacerator&r or &dMillstone&r lists more &boutputs&r than what you're actually getting.\n\nGregTech doesn't communicate this very well, but these extra slots are only available in &6HV&r. Once you make it to that tier, the &6HV&r macerator becomes incredibly powerful, giving a huge amount of bonus byproducts from each ore.",
"quests.ore_proc.macerator_noproduct.title": "Crushing without byproducts",
"quests.ore_proc.macerator_noproduct.subtitle": "Ores for the poors",
"quests.ore_proc.macerator_noproduct.desc": "In the primitive age, you're limited to a &bQuern&r to crush your ores into dusts. Once you have access to Bronze, you can set up a &bMillstone&r to automate this step!\n\nIn the Steam Age, the &bForge Hammer&r and &bCrushing Wheels&r can crush your ores very quickly. Remember, you won't get any maceration byproducts until &6HV&r!",
"quests.ore_proc.crushed_ores.title": "Ore Purification",
"quests.ore_proc.crushed_ores.subtitle": "There's more?!",
"quests.ore_proc.crushed_ores.desc": "Now that you have your crushed ores, you've officially passed the first step of &6Ore Processing&r! The next step is &dPurification&r. \n\nTo start with, your choices are limited, but more options will open up as you progress. Once you get these, be sure to look through EMI and decide what the best steps are for each of your ores.",
"quests.ore_proc.sodium_persuflate.title": "Bathe them in Sodium Persulfate",
"quests.ore_proc.sodium_persuflate.subtitle": "Not just for circuit board etching",
"quests.ore_proc.sodium_persuflate.desc": "Once you get to LV, you may be interested in using a &bChemical Bath&r with &dSodium Persuflate&r to get some extra byproducts. Not all ores can be processed this way, but the ones that can, will get around a &670%&r chance of byproducts, compared to the &630%&r of the &bOre Washer&r.\n\nSodium Persuflate can be a little annoying to mass produce, though if you want, &9Sea Water&r is a great starting point.\n\nThe quest on the left gives some examples that might be worth the investment.",
"quests.ore_proc.sodium_ores.title": "Sodium Persulfate bathing examples",
"quests.ore_proc.sodium_ores.subtitle": "A useful time saver",
"quests.ore_proc.sodium_ores.desc": "Here's some recommendations for Sodium Persulfate bathing:\n\n-&6Crushed Aluminium&r for &dRutile&r: &dTitanium&r\n\n-&6Crushed Bauxite&r: &dGallium&r\n\n-&6Crushed Cobalt&r: &dCobaltite&r for &dArsenic&r",
"quests.ore_proc.ore_washer.title": "Bathe them in Water",
"quests.ore_proc.ore_washer.subtitle": "The standard option for most ores",
"quests.ore_proc.ore_washer.desc": "Most ores don't need any fancy bathing setups, and running them through an &dOre Washer&r or &9Bulk Washing&r with an &dEncased Fan&r will suffice.\n\nIf you use the &bOre Washer&r, make sure to use &9Distilled Water&r to double the speed of the recipe.\n\nDon't have access to either of these yet? You can just throw your crushed ores into water to purify them, though this won't get you any byproducts.",
"quests.ore_proc.mercury_ores.title": "Bathe them in Mercury",
"quests.ore_proc.mercury_ores.subtitle": "Don't stick your finger in it",
"quests.ore_proc.mercury_ores.desc": "Bathing certain ores in &dMercury&r can give some other useful byproducts. Not all ores can be processed this way, but the ones that can, will get around a &670%&r chance of byproducts, compared to the &630%&r of the &bOre Washer&r.\n\n&dMercury&r can be easily obtained from &cRedstone&r or &cCinnabar&r.\n\nThe quest on the right gives some examples are good to process in Mercury.",
"quests.ore_proc.mercury.title": "Mercury bathing examples",
"quests.ore_proc.mercury.subtitle": "Liquid metal bath time",
"quests.ore_proc.mercury.desc": "Here's some recommendations for Mercury bathing:\n\n-&6Crushed Platinium&r: &dPalladium&r\n\n-&6Crushed Cooperite&r: &dPalladium&r\n\n-&6Crushed Nickel&r: &dPlatinum&r\n\n-&6Crushed Gold&r: &dSilver&r",
"quests.ore_proc.purified_ores.title": "Post-Purification",
"quests.ore_proc.purified_ores.subtitle": "More branching paths",
"quests.ore_proc.purified_ores.desc": "You now have &6Purified Ores&r, but this time there's even more options on how to proceed.\n\nWhile every purified ore can just be ran through a Thermal Centrifuge next, certain ores will need to be processed differently for unique byproducts later, such as the infamous &dPlatline&r or &dIndium Line&r. If you don't need these purified ores immediately, it may be useful to store them in their purified state for now.",
"quests.ore_proc.indium.title": "The Indium Line",
"quests.ore_proc.indium.subtitle": "We say line but really it's a two step process",
"quests.ore_proc.indium.desc": "The &6Indium Line&r shouldn't be needed before &9IV&r but we are just letting you know that it's here and that you will need purified &bSphalerite&r and &bGalena&r.",
"quests.ore_proc.platline.title": "The infamous platline",
"quests.ore_proc.platline.subtitle": "This one is a bit tricker and yet it's an easy version",
"quests.ore_proc.platline.desc": "The &6Platinium Line&r will be your first challenging line, providing you with essential metals: &bPlatinium&r, &bPalladium&r, &bRuthenium&r, &bRhodium&r, &bIridium&r, and &bOsmium&r.\n\nWhile you've already seen alternative ways to obtain &bPlatinium&r and &bPalladium&r earlier in this chapter, this line will be &amandatory&r for accessing the others.\n\nThe Platline can be started at &6HV&r, but you wont be able to complete it fully until you reach &dEV&r.",
"quests.ore_proc.macerator_separator.title": "The crushing is back only for a precise situation",
"quests.ore_proc.macerator_separator.subtitle": "This path really needs some love",
"quests.ore_proc.macerator_separator.desc": "This is the path of the &6Electromagnetic Separator&r, a rather unique machine used to extract byproducts from specific dusts.\n\nFirst, macerate the &dRefined Ores&r, then process them with the &6Electromagnetic Separator&r.\n\nKeep in mind that to obtain byproducts, your macerator or crushing wheels must be at least &6HV&r tier.",
"quests.ore_proc.electro_separator.title": "It's time for Electromagnetic Separation",
"quests.ore_proc.electro_separator.subtitle": "Except Naquadah it doesn't do much",
"quests.ore_proc.electro_separator.desc": "Now, you just need to send the &6Purified Pile of Dust&r into the &bElectromagnetic Separator&r.\n\nFor now, we recommend using it primarily for &dNaquadah&r. If you need more &aNeodymium&r, you can also process &dBastnasite&r.\n\nIts not much for the moment, but we might expand on this in the future.",
"quests.ore_proc.indium.subtitle": "We say line, but really it's just a two step process",
"quests.ore_proc.indium.desc": "The &6Indium Line&r shouldn't be needed before &9IV&r, but it will require purified &bSphalerite&r and &bGalena&r.",
"quests.ore_proc.platline.title": "The Infamous Platline",
"quests.ore_proc.platline.subtitle": "GregTech players vs Mekanism players when they need Osmium:",
"quests.ore_proc.platline.desc": "The &6Platinium Line&r will be your first real challenge to process, providing you with essential platinum-group metals: &bPlatinium&r, &bPalladium&r, &bRuthenium&r, &bRhodium&r, &bIridium&r, and &bOsmium&r.\n\nWhile there's easier ways to obtain &bPlatinium&r and &bPalladium&r, this line will be &amandatory&r for accessing the others.\n\nThe Platline can be started at &6HV&r, but you wont be able to complete it fully until you reach &dIV&r.",
"quests.ore_proc.electro_separator.title": "Electromagnetic Separator",
"quests.ore_proc.electro_separator.subtitle": "Probably the least useful GregTech machine",
"quests.ore_proc.electro_separator.desc": "The &6Electromagnetic Separator&r can extract things like Iron and Gold from &dRefined Ores&r, which you can get by crushing your purified ones. For now, we recommend using it primarily for &dNaquadah&r. If you need more &aNeodymium&r, you can also process &dBastnasite&r.",
"quests.ore_proc.macerator_separator.title": "The Macerator",
"quests.ore_proc.macerator_separator.subtitle": "(again)",
"quests.ore_proc.macerator_separator.desc": "The macerator can sometimes yield different byproducts from your Purified ores than other routes, but these are still locked to &6HV&r like every other macerator byproduct.",
"quests.ore_proc.thermal_centrifuge.title": "The Thermal Centrifuge",
"quests.ore_proc.thermal_centrifuge.subtitle": "Usually you will use this one",
"{quests.ore_proc.thermal_centrifuge.desc}": "If you don't have any other use for your &6Purified Ores&r, consider processing them in the &dThermal Centrifuge&r. It still provides valuable byproducts, and at this stage, it would be a shame not to make use of it.",
"quests.ore_proc.sifter.title": "More shiny stuffs",
"quests.ore_proc.sifter.subtitle": "It goes tch tch tch and then it shines",
"quests.ore_proc.sifter.desc": "The &6Sifter&r should be used for all your &aGems&r. It's not essential early on, as it's fairly slow, but once you feel ready, it's worth doing—youll get a better yield in return.",
"quests.ore_proc.thermal_centrifuge.subtitle": "The go-to for most purified ores",
"quests.ore_proc.thermal_centrifuge.desc": "For all your other Purified Ores that doesn't need special treatment, it's best to run them through the &dThermal Centrifuge&r. This machine can produce byproducts at a reliable rate, while only using electricity. It's quite slow, however, so we suggest making multiple machines.",
"quests.ore_proc.sifter.title": "The Sifter",
"quests.ore_proc.sifter.subtitle": "The Skyblock Simulator",
"quests.ore_proc.sifter.desc": "The &6Sifter&r should be used for all your &aGems&r. It gives far more yield per ore than any other method, and is the only way to obtain Exquisite and Flawless gems before &6HV&r laser engraving.",
"quests.ore_proc.centrifuge_sifter.title": "Centrifuging the dust",
"quests.ore_proc.centrifuge_sifter.subtitle": "Yeah there is ore processing on the byproducts",
"quests.ore_proc.centrifuge_sifter.desc": "This time, centrifuging will only be used for the &6Purified Dust&r you obtain from the &6Sifter&r. Not much to explain—just go ahead and do it.",
"quests.ore_proc.centrifuge_sifter.subtitle": "Byproducts of byproducts",
"quests.ore_proc.centrifuge_sifter.desc": "The &6Sifter&r can output &6Purified Dust&r, which you can toss into a centrifuge for a few extra byproducts.",
"quests.ore_proc.dust_processed.title": "Your final dust",
"quests.ore_proc.dust_processed.subtitle": "Or is it?",
"quests.ore_proc.dust_processed.desc": "Well, thats it—great job! Youve mostly completed it.\n\nNow that you have the &6Purified Dust&r, you can &ccook&r it, &estore&r it, or even &dmix&r it right away—why not? Some dusts will still require special treatment before they become truly useful.\n\nBeyond that, keep in mind that your &6ore processing line&r should always be upgraded and fine-tuned to match your needs. You'll unlock new machines that work faster and generate more valuable byproducts.",
"quests.ore_proc.electrolyzer.title": "After electrolyzing it's the real last step",
"quests.ore_proc.electrolyzer.subtitle": "Some are not worth the effort though",
"quests.ore_proc.electrolyzer.desc": "Well… we lied—theres still one more step for some dusts.\n\nCertain &6Purified Dusts&r have no direct use. For example, &2Tantalite&r must be processed in an &6Electrolyzer&r to extract valuable materials like &dTantalum&r and &dManganese&r.\n\nMost of these recipes will unlock once you have access to an &bMV Electrolyzer&r, so keep an eye on your tech progression!",
"quests.ore_proc.packer.title": "This one is used as an autocrafting table in some way",
"quests.ore_proc.dust_processed.desc": "&6Dusts&r are the final form of almost every ore.\n\nFrom here, you can put it in a &cFurnace&r, send it to &estorage&r, or even start using it right away! Some dusts will require one last step before they become truly useful.\n\nRemember to keep your &6ore processing line&r in top shape! You'll want to keep expanding and upgrading it as you progress, so you can spend less time mining and more time gregging.",
"quests.ore_proc.electrolyzer.title": "Further refinement",
"quests.ore_proc.electrolyzer.subtitle": "An encore for ore!",
"quests.ore_proc.electrolyzer.desc": "Certain &6Dusts&r have no direct use. For example, &2Tantalite&r must be processed in an &6Electrolyzer&r to extract the raw elements of &dTantalum&r and &dManganese&r.\n\nMost of these recipes will only be available with an &bMV Electrolyzer&r, so come back to this later!",
"quests.ore_proc.packer.title": "The Packer",
"quests.ore_proc.packer.subtitle": "It's real fast",
"quests.ore_proc.packer.desc": "Back in the old days, this little bad boy saw a lot of use—you used to get a ton of &6Small&r and &6Tiny Dusts&r from ore processing.\n\nNowadays, its mostly useful for processing &dRare Earth&r in the &6Centrifuge&r and packing all those valuable &6Small Piles of Dust&r.\n\nAlso, dont forget: it becomes surprisingly powerful when paired with a &eRobot Arm&r set to supply exact mode.",
"quests.ore_proc.packer.desc": "Back in the old days of GregTech, this little bad boy saw a lot of use—you used to get a ton of &6Small&r and &6Tiny Dusts&r from ore processing.\n\nNowadays, it's only really useful for automatic packing, such as &dRare Earth&r in a &6Centrifuge&r returning many &6Small Piles of Dust&r.\n\nDon't forget: a &eRobot Arm&r set to Supply Exact mode can be useful to avoid clogging the input slots.",
"quests.steam_age": "Early Automation",
"quests.steam_age.subtitle": "From Primitive Machines to Steam Power",
"quests.steam_age.basic_greate.title": "Basics of Greate",
@ -1475,7 +1498,7 @@
"quests.stone_age.cook_meat.subtitle": "You don't want to die from eating raw meat, do you?",
"quests.stone_age.cook_meat.desc": "Cooking raw meat is an important step for getting protein - not only will it increase the overall shelf life of the meat, but it'll unlock even more nutrients for your demanding body.\n\nThe simplest way to cook meat is by using a Fire Pit. Look at the quest below this one to learn how to make one.",
"quests.stone_age.soup_time.title": "Soups",
"quests.stone_age.soup_time.subtitle": "Which store where you in?",
"quests.stone_age.soup_time.subtitle": "Which store were you in?",
"quests.stone_age.soup_time.desc": "By crafting a pot and some bowls out of clay, you'll be able to create soups!\n\nSoups are one of the first and easiest ways to create more complex meals. Unlike eating plain ingredients, these contain much more saturation and let you consume multiple nutrients at once!",
"quests.stone_age.meals.title": "Meals",
"quests.stone_age.meals.subtitle": "GET IN MAH BELLEH!",
@ -1728,6 +1751,15 @@
"quests.tfg_tips.gt.title": "GregTech",
"quests.tfg_tips.gt.subtitle": "One third of the modpack's name, after all.",
"quests.tfg_tips.gt.desc": "&3GregTech&r can be quite intimidating, this quest branch should help you out.",
"quests.tfg_tips.nano_saber.title": "Nano Saber",
"quests.tfg_tips.nano_saber.subtitle": "26 Attack Damage when active!",
"quests.tfg_tips.nano_saber.desc": "The &6Nano Saber&r is a powerful weapon youll be able to unlock once you reach &5EV&r. Simply use &dShift + Right-Click&r to activate the &cbzzzzz mode&r.",
"quests.tfg_tips.gt_tools.title": "GregTech Tools",
"quests.tfg_tips.gt_tools.subtitle": "",
"quests.tfg_tips.gt_tools.desc": "Most &5GregTech&r tools are crafted from a &6Tool Head&r. Try using &aEMI&r to explore what you can do with them — just remember two important things:\n\n- The &ehigher the Tool Head tier&r, the more &cpowerful&r the tool will be, and the &6larger the battery&r it will use.\n- Not every tool supports every Tool Head tier. For example, the &6Chainsaw&r can only be crafted with a &7LV Tool Head&r.",
"quests.tfg_tips.magnets.title": "Item Magnets",
"quests.tfg_tips.magnets.subtitle": "",
"quests.tfg_tips.magnets.desc": "The &6Item Magnet&r is exactly what you'd expect — a magnet that pulls nearby &6items&r straight to you. &aVery useful&r. What more could you ask for?",
"quests.tfg_tips.terrafirmacraft.title": "TerraFirmaCraft Addons",
"quests.tfg_tips.terrafirmacraft.subtitle": "The other two thirds of the modpack's name",
"quests.tfg_tips.terrafirmacraft.desc": "&3TerraFirmaCraft&r is one of the main mods in &2TerraFirmaGreg.&r This branch mostly focuses on some of its survival features and other &dAdd-Ons&r the modpack has, such as &4Aged Alcohol&r and &bCanes.&r",

Binary file not shown.

After

Width:  |  Height:  |  Size: 520 B

View file

@ -67,7 +67,7 @@ const registerTooltips = (event) =>
})
})
global.AFC_WOOD_TYPES.forEach(wood => {
event.addAdvanced([`tfc:wood/support/${wood}`], (item, advanced, text) => {
event.addAdvanced([`afc:wood/support/${wood}`], (item, advanced, text) => {
text.add(1, text.of('9 x 5 x 9'))
})
})
@ -81,13 +81,13 @@ const registerTooltips = (event) =>
const stone_types = global.TFC_STONE_TYPES.concat(other_stone)
stone_types.forEach(stone => {
event.addAdvanced([`tfg:${stone}_support`], (item, advanced, text) => {
text.add(1, text.of('9 x 5 x 9'))
})
})
event.addAdvanced(['#tfg:colorized_fired_vessels'], (item, advanced, text) => {
text.add(1, text.of('§cMax: 3024mb'))
// Vessels
event.addAdvanced(['#tfc:fired_vessels'], (item, advanced, text) => {
text.add(1, text.of('§cMax: 3024mB'))
})
}

View file

@ -91,29 +91,35 @@ const registerAFCRecipes = (event) => {
event.recipes.afc.tree_tapping(TFC.blockIngredient("afc:wood/log/hevea"))
.resultFluid(Fluid.of("tfg:latex", 3))
.minTemp(22)
.requiresNaturalLog(true)
.id("tfg:tree_tapping/latex/hevea")
event.recipes.afc.tree_tapping(TFC.blockIngredient("afc:wood/log/ancient_hevea"))
.resultFluid(Fluid.of("tfg:latex", 3))
.minTemp(22)
.requiresNaturalLog(true)
.id("tfg:tree_tapping/latex/ancient_hevea")
event.recipes.afc.tree_tapping(TFC.blockIngredient("afc:wood/log/rubber_fig"))
.resultFluid(Fluid.of("tfg:latex", 2))
.minTemp(12)
.requiresNaturalLog(true)
.id("tfg:tree_tapping/latex/rubber_fig")
event.recipes.afc.tree_tapping(TFC.blockIngredient("afc:wood/log/ancient_rubber_fig"))
.resultFluid(Fluid.of("tfg:latex", 2))
.minTemp(12)
.requiresNaturalLog(true)
.id("tfg:tree_tapping/latex/ancient_rubber_fig")
//Kapok Grandfathered, least efficient but works as long as the temperature is not freezing
event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/kapok"))
.resultFluid(Fluid.of("tfg:latex", 1))
.minTemp(1)
.requiresNaturalLog(true)
.id("tfg:tree_tapping/kapok_latex")
event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/ancient_kapok"))
.resultFluid(Fluid.of("tfg:latex", 1))
.minTemp(1)
.requiresNaturalLog(true)
.id("tfg:tree_tapping/ancient_kapok_latex")
@ -121,61 +127,47 @@ const registerAFCRecipes = (event) => {
event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/aspen"))
.resultFluid(Fluid.of('tfg:conifer_pitch', 2))
.minTemp(-10)
.requiresNaturalLog(true)
.id("tfg:tree_tapping/aspen_resin")
event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/ancient_aspen"))
.resultFluid(Fluid.of('tfg:conifer_pitch', 2))
.minTemp(-10)
.requiresNaturalLog(true)
.id("tfg:tree_tapping/ancient_aspen_resin")
event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/spruce"))
.resultFluid(Fluid.of('tfg:conifer_pitch', 4))
.minTemp(-15)
.requiresNaturalLog(true)
.id("tfg:tree_tapping/spruce_resin")
event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/ancient_spruce"))
.resultFluid(Fluid.of('tfg:conifer_pitch', 4))
.minTemp(-15)
.requiresNaturalLog(true)
.id("tfg:tree_tapping/ancient_spruce_resin")
event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/white_cedar"))
.resultFluid(Fluid.of('tfg:conifer_pitch', 3))
.minTemp(-8)
.requiresNaturalLog(true)
.id("tfg:tree_tapping/white_cedar_resin")
event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/ancient_white_cedar"))
.resultFluid(Fluid.of('tfg:conifer_pitch', 3))
.minTemp(-8)
.requiresNaturalLog(true)
.id("tfg:tree_tapping/ancient_white_cedar_resin")
event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/douglas_fir"))
.resultFluid(Fluid.of('tfg:conifer_pitch', 2))
.minTemp(-8)
.requiresNaturalLog(true)
.id("tfg:tree_tapping/douglas_fir_resin")
event.recipes.afc.tree_tapping(TFC.blockIngredient("tfc:wood/log/ancient_douglas_fir"))
.resultFluid(Fluid.of('tfg:conifer_pitch', 2))
.minTemp(-8)
.requiresNaturalLog(true)
.id("tfg:tree_tapping/ancient_douglas_fir_resin")
//#region Выход: Сырая резиновая пыль
// Removed in favor of making these output latex
// // Из бревна капока
// event.recipes.gtceu.extractor('raw_rubber_from_log')
// .itemInputs('#tfg:latex_logs')
// .itemOutputs('gtceu:raw_rubber_dust')
// .duration(300)
// .EUt(2)
// // Из саженца капока
// event.recipes.gtceu.extractor('raw_rubber_from_sapling')
// .itemInputs('1x #tfg:rubber_saplings')
// .itemOutputs('gtceu:raw_rubber_dust')
// .duration(300)
// .EUt(2)
// // Из листвы капока
// event.recipes.gtceu.extractor('raw_rubber_from_leaves')
// .itemInputs('16x #tfg:rubber_leaves')
// .itemOutputs('gtceu:raw_rubber_dust')
// .duration(300)
// .EUt(2)
event.recipes.gtceu.extractor('latex_from_log')
.itemInputs('4x #tfg:latex_logs')

View file

@ -72,14 +72,19 @@ const registerCreateRecipes = (event) => {
// Стол для схематик
event.shaped('create:schematic_table', [
'AAA',
'CB ',
' B '
'CB '
], {
A: '#minecraft:wooden_slabs',
B: '#tfg:rock_walls',
B: '#minecraft:logs',
C: '#forge:tools/saws'
}).id('tfg:create/shaped/schematic_table')
event.recipes.gtceu.assembler('create:schematic_table')
.itemInputs('3x #minecraft:wooden_slabs', '1x #minecraft:logs')
.itemOutputs('create:schematic_table')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
// Внутриблочный двигатель цепи
event.shapeless('create:encased_chain_drive', [
'create:andesite_casing',
@ -224,6 +229,13 @@ const registerCreateRecipes = (event) => {
E: '#forge:tools/wrenches'
}).id('tfg:create/shaped/fluid_tank')
event.recipes.gtceu.assembler('create:fluid_tank')
.itemInputs('2x #forge:screws/copper', '2x #forge:plates/copper', '#forge:glass_panes')
.itemOutputs('create:fluid_tank')
.circuit(3)
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
// Шкив для шланга
event.shaped('create:hose_pulley', [
'DAE',
@ -238,6 +250,13 @@ const registerCreateRecipes = (event) => {
F: 'minecraft:bucket'
}).id('tfg:create/shaped/hose_pulley')
event.recipes.gtceu.assembler('create:hose_pulley')
.itemInputs('create:copper_casing', '#forge:foils/rubber', '2x #forge:plates/copper', 'minecraft:bucket')
.itemOutputs('create:hose_pulley')
.duration(50)
.circuit(1)
.EUt(GTValues.VA[GTValues.ULV])
// Слив из предметов
event.shaped('create:item_drain', [
'A',
@ -258,23 +277,28 @@ const registerCreateRecipes = (event) => {
D: '#forge:tools/screwdrivers'
}).id('tfg:create/shaped/spout')
event.recipes.gtceu.assembler('create:spout')
.itemInputs('create:fluid_tank', '#forge:foils/rubber')
.itemOutputs('create:spout')
.duration(50)
.circuit(2)
.EUt(GTValues.VA[GTValues.ULV])
// Паровой двигатель
event.shaped('create:steam_engine', [
'ABA',
'CDC',
'EFG'
' A',
'DCC',
'FE '
], {
A: '#forge:screws/wrought_iron',
B: '#forge:plates/brass',
C: '#forge:rods/black_steel',
C: '#forge:rods/brass',
D: '#forge:small_gears/steel',
E: '#forge:tools/hammers',
F: '#forge:storage_blocks/copper',
G: '#forge:tools/screwdrivers',
F: '#forge:double_ingots/copper'
}).id('tfg:create/shaped/steam_engine')
event.recipes.gtceu.assembler('tfg:create/steam_engine')
.itemInputs('2x #forge:screws/wrought_iron', '#forge:plates/brass', '2x #forge:rods/black_steel', '#forge:small_gears/steel', '#forge:storage_blocks/copper')
.itemInputs('1x #forge:screws/wrought_iron', '2x #forge:rods/brass', '#forge:small_gears/steel', '#forge:double_ingots/copper')
.circuit(3)
.itemOutputs('create:steam_engine')
.duration(200)
@ -347,6 +371,12 @@ const registerCreateRecipes = (event) => {
E: '#forge:tools/wrenches'
}).id('tfg:create/shaped/rope_pulley')
event.recipes.gtceu.assembler('create:rope_pulley')
.itemInputs('create:andesite_casing', 'firmalife:rope_coil', '#forge:plates/wrought_iron', '2x #tfg:small_cogwheels')
.itemOutputs('create:rope_pulley')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
// Шкиф подъемника
event.shaped('create:elevator_pulley', [
'EAF',
@ -361,6 +391,12 @@ const registerCreateRecipes = (event) => {
F: 'create:electron_tube'
}).id('tfg:create/shaped/elevator_pulley')
event.recipes.gtceu.assembler('create:elevator_pulley')
.itemInputs('create:brass_casing', 'firmaciv:rope_coil', '#forge:plates/steel', '2x #tfg:small_cogwheels', 'create:electron_tube')
.itemOutputs('create:elevator_pulley')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
// Сборщик вагонеток
event.shaped('create:cart_assembler', [
' D ',
@ -373,6 +409,12 @@ const registerCreateRecipes = (event) => {
D: '#forge:tools/wrenches'
}).id('tfg:create/shaped/cart_assembler')
event.recipes.gtceu.assembler('create:cart_assembler')
.itemInputs('2x #forge:plates/steel', 'gtceu:red_alloy_single_wire', '2x #minecraft:logs')
.itemOutputs('create:cart_assembler')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
// Контроллер рельсы
event.shaped('create:controller_rail', [
'ABA',
@ -433,6 +475,12 @@ const registerCreateRecipes = (event) => {
H: '#gtceu:circuits/ulv'
}).id('tfg:create/shaped/mechanical_drill')
event.recipes.gtceu.assembler('create:mechanical_drill')
.itemInputs('2x #forge:plates/wrought_iron', '#forge:drill_heads', '#tfg:small_cogwheels', 'create:andesite_casing', '#gtceu:circuits/ulv')
.itemOutputs('create:mechanical_drill')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.shaped('create:mechanical_roller', [
'GBG',
'ADA',
@ -447,6 +495,12 @@ const registerCreateRecipes = (event) => {
H: '#tfg:small_cogwheels'
}).id('tfg:create/shaped/mechanical_roller')
event.recipes.gtceu.assembler('create:mechanical_roller')
.itemInputs('2x #forge:plates/wrought_iron', 'tfc:metal/block/wrought_iron', 'create:andesite_casing', '2x #forge:bolts/wrought_iron', '#tfg:small_cogwheels')
.itemOutputs('create:mechanical_roller')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
// Редстоуновый контакт
event.shaped('2x create:redstone_contact', [
'DCE',
@ -588,6 +642,12 @@ const registerCreateRecipes = (event) => {
F: '#forge:small_gears/brass'
}).id('tfg:create/shaped/mechanical_crafter')
event.recipes.gtceu.assembler('create:mechanical_crafter')
.itemInputs('create:electron_tube', '#tfc:workbenches', '#forge:small_gears/brass')
.itemOutputs('create:mechanical_crafter')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
// Маховик
event.shaped('create:flywheel', [
'ABA',
@ -601,22 +661,19 @@ const registerCreateRecipes = (event) => {
// Механическая рука
event.shaped('create:mechanical_arm', [
'AHB',
'AGE',
'CDF'
'AAB',
'C ',
' DF'
], {
A: '#forge:plates/brass',
A: '#forge:rods/brass',
B: '#forge:rods/wrought_iron',
C: 'create:precision_mechanism',
D: 'create:brass_casing',
E: '#forge:tools/hammers',
F: '#forge:tools/wrenches',
G: '#forge:screws/wrought_iron',
H: 'create:electron_tube'
F: '#forge:tools/wrenches'
}).id('tfg:create/shaped/mechanical_arm')
event.recipes.gtceu.assembler('tfg:create/mechanical_arm')
.itemInputs('2x #forge:plates/brass', '#forge:rods/wrought_iron', 'create:precision_mechanism', 'create:brass_casing', '#forge:screws/wrought_iron', 'create:electron_tube')
.itemInputs('2x #forge:rods/brass', '#forge:rods/wrought_iron', 'create:precision_mechanism', 'create:brass_casing')
.circuit(3)
.itemOutputs('create:mechanical_arm')
.duration(200)
@ -658,6 +715,13 @@ const registerCreateRecipes = (event) => {
D: '#forge:tools/knives'
}).id('tfg:create/shaped/andesite_funnel')
event.recipes.gtceu.assembler('create:andesite_funnel')
.itemInputs('#forge:plates/wrought_iron', '#forge:foils/rubber')
.itemOutputs('create:andesite_funnel')
.circuit(4)
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.shaped('2x create:andesite_funnel', [
'AAD',
'BBC'
@ -668,6 +732,13 @@ const registerCreateRecipes = (event) => {
D: '#forge:tools/knives'
}).id('tfg:create/shaped/andesite_funnel_leather')
event.recipes.gtceu.assembler('create:andesite_funnel_leather')
.itemInputs('#forge:plates/wrought_iron', '#forge:leather')
.itemOutputs('create:andesite_funnel')
.circuit(4)
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
// Умный раздатчик/приемник из латуни
event.shaped('2x create:brass_funnel', [
' E ',
@ -681,6 +752,13 @@ const registerCreateRecipes = (event) => {
E: 'create:electron_tube'
}).id('tfg:create/shaped/brass_funnel')
event.recipes.gtceu.assembler('create:brass_funnel')
.itemInputs('2x #forge:plates/brass', '2x #forge:foils/rubber', 'create:electron_tube')
.itemOutputs('2x create:brass_funnel')
.circuit(4)
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.shaped('2x create:brass_funnel', [
' E ',
'AAD',
@ -693,6 +771,13 @@ const registerCreateRecipes = (event) => {
E: 'create:electron_tube'
}).id('tfg:create/shaped/brass_funnel_leather')
event.recipes.gtceu.assembler('create:brass_funnel_leather')
.itemInputs('2x #forge:plates/brass', '2x #forge:leather', 'create:electron_tube')
.itemOutputs('2x create:brass_funnel')
.circuit(4)
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
// Тунель из железа
event.shaped('create:andesite_tunnel', [
' D',
@ -704,6 +789,13 @@ const registerCreateRecipes = (event) => {
D: '#forge:tools/wrenches'
}).id('tfg:create/shaped/andesite_tunnel')
event.recipes.gtceu.assembler('create:andesite_tunnel')
.itemInputs('#forge:plates/wrought_iron', '#forge:foils/rubber')
.itemOutputs('create:andesite_tunnel')
.circuit(5)
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.shaped('create:andesite_tunnel', [
' D',
'AA',
@ -714,6 +806,13 @@ const registerCreateRecipes = (event) => {
D: '#forge:tools/wrenches'
}).id('tfg:create/shaped/andesite_tunnel_leather')
event.recipes.gtceu.assembler('create:andesite_tunnel_leather')
.itemInputs('#forge:plates/wrought_iron', '#forge:leather')
.itemOutputs('create:andesite_tunnel')
.circuit(5)
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
// Тунель из латуни
event.shaped('create:brass_tunnel', [
'CD',
@ -726,6 +825,13 @@ const registerCreateRecipes = (event) => {
D: '#forge:tools/wrenches'
}).id('tfg:create/shaped/brass_tunnel')
event.recipes.gtceu.assembler('create:brass_tunnel')
.itemInputs('2x #forge:plates/brass', '2x #forge:foils/rubber', 'create:electron_tube')
.itemOutputs('2x create:brass_tunnel')
.circuit(5)
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.shaped('create:brass_tunnel', [
'CD',
'AA',
@ -737,6 +843,13 @@ const registerCreateRecipes = (event) => {
D: '#forge:tools/wrenches'
}).id('tfg:create/shaped/brass_tunnel_leather')
event.recipes.gtceu.assembler('create:brass_tunnel_leather')
.itemInputs('2x #forge:plates/brass', '2x #forge:leather', 'create:electron_tube')
.itemOutputs('2x create:brass_tunnel')
.circuit(5)
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
// Дисплей столешница (чзх)
event.shaped('create:display_board', [
'DA ',
@ -749,6 +862,12 @@ const registerCreateRecipes = (event) => {
D: '#forge:tools/wrenches'
}).id('tfg:create/shaped/display_board')
event.recipes.gtceu.assembler('create:display_board')
.itemInputs('2x #forge:plates/wrought_iron', '2x #forge:rings/wrought_iron', '#forge:small_gears')
.itemOutputs('create:display_board')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
// Латунная рука
event.shaped('create:brass_hand', [
' AB',
@ -855,6 +974,12 @@ const registerCreateRecipes = (event) => {
F: 'create:electron_tube'
}).id('tfg:create/shaped/deployer')
event.recipes.gtceu.assembler('create:deployer')
.itemInputs('#tfg:small_cogwheels', 'gtceu:ulv_machine_casing', 'create:brass_hand', 'create:electron_tube')
.itemOutputs('create:deployer')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
// Соединятор вагонеток
event.shapeless('create:minecart_coupling', [
'#tfg:metal_chains',
@ -912,7 +1037,17 @@ const registerCreateRecipes = (event) => {
B: 'tfc:metal/boots/copper',
C: '#forge:ingots/iron',
D: 'firmaciv:large_waterproof_hide'
}).id('tfg:create/shaped/copper_diving_boots')
}).id('tfg:create/shaped/copper_diving_boots_cast_iron')
event.shaped('create:copper_diving_boots', [
'ABA',
'CDC'
], {
A: '#forge:screws/copper',
B: 'tfc:metal/boots/copper',
C: '#forge:ingots/wrought_iron',
D: 'firmaciv:large_waterproof_hide'
}).id('tfg:create/shaped/copper_diving_boots_wrought_iron')
// Netherite backtank
event.shaped('create:netherite_backtank', [
@ -1178,13 +1313,13 @@ const registerCreateRecipes = (event) => {
event.recipes.gtceu.assembler('tfg:create/sticky_mechanical_piston_from_liquid_glue')
.itemInputs('create:mechanical_piston')
.inputFluids(Fluid.of('gtceu:glue', 100))
.inputFluids(Fluid.of('gtceu:glue', 50))
.itemOutputs('create:sticky_mechanical_piston')
.duration(100)
.EUt(4)
event.recipes.gtceu.assembler('tfg:create/sticky_mechanical_piston_from_slimeball')
.itemInputs('create:mechanical_piston', 'minecraft:slimeball')
.itemInputs('create:mechanical_piston', 'tfc:glue')
.itemOutputs('create:sticky_mechanical_piston')
.duration(100)
.EUt(4)
@ -1308,6 +1443,13 @@ const registerCreateRecipes = (event) => {
F: 'tfc:glue'
}).id('create:shaped/windmill_bearing')
event.recipes.gtceu.assembler('create:windmill_bearing')
.itemInputs('gtceu:treated_wood_slab', 'create:andesite_casing', '#tfg:small_cogwheels', '#forge:small_gears/brass')
.inputFluids(Fluid.of('gtceu:glue', 50))
.itemOutputs('create:windmill_bearing')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
// #endregion
//#region Blaze burner
@ -1315,13 +1457,20 @@ const registerCreateRecipes = (event) => {
event.shaped('create:blaze_burner', [
'B B',
'BAB',
'CCC'
'DCD'
], {
A: '#forge:storage_blocks/coke',
B: '#forge:rods/black_steel',
B: 'tfc:metal/bars/black_steel',
C: '#forge:plates/black_steel',
D: '#forge:plates/steel'
}).id('tfg:create/shaped/blaze_burner')
event.recipes.gtceu.assembler('create:blaze_burner')
.itemInputs('#forge:storage_blocks/coke', '4x tfc:metal/bars/black_steel', '#forge:plates/black_steel')
.itemOutputs('create:blaze_burner')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
//#endregion
// #region So-called "Shit Glass"
@ -1492,6 +1641,12 @@ const registerCreateRecipes = (event) => {
D: '#forge:tools/hammers'
}).id('tfg:create/shaped/white_seat')
event.recipes.gtceu.assembler('create:white_seat')
.itemInputs('#tfc:high_quality_cloth', '#minecraft:wooden_slabs', '2x #forge:screws')
.itemOutputs('create:white_seat')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.shaped('create:brown_toolbox', [
'CEC',
'BAB',
@ -1504,6 +1659,12 @@ const registerCreateRecipes = (event) => {
E: '#forge:tools/screwdrivers'
}).id('tfg:create/shaped/brown_toolbox')
event.recipes.gtceu.assembler('create:brown_toolbox')
.itemInputs('2x #forge:chests/wooden', '2x #forge:plates/brass', '2x #forge:bolts/brass', '2x #forge:screws')
.itemOutputs('create:brown_toolbox')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.shaped('create:contraption_controls', [
'EAF',
'DBD',
@ -1517,6 +1678,12 @@ const registerCreateRecipes = (event) => {
F: '#forge:tools/wrenches'
}).id('tfg:create/shaped/contraption_controls')
event.recipes.gtceu.assembler('create:contraption_controls')
.itemInputs('#minecraft:buttons', 'create:andesite_casing', 'create:electron_tube', '2x #forge:plates/wrought_iron')
.itemOutputs('create:contraption_controls')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.shaped('create:wrench', [
' BB',
' C ',
@ -1540,6 +1707,18 @@ const registerCreateRecipes = (event) => {
E: '#forge:tools/hammers'
}).id('tfg:create/shaped/goggles')
event.recipes.gtceu.assembler('create:goggles')
.itemInputs('2x #forge:rings/brass', '#forge:leather', '2x tfc:lens')
.itemOutputs('create:goggles')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.assembler('create:goggles_rubber')
.itemInputs('2x #forge:rings/brass', '#forge:foils/rubber', '2x tfc:lens')
.itemOutputs('create:goggles')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.shaped('create:analog_lever', [
'CA',
'DB'
@ -1550,6 +1729,12 @@ const registerCreateRecipes = (event) => {
D: 'minecraft:redstone'
}).id('tfg:create/shaped/analog_lever')
event.recipes.gtceu.assembler('create:analog_lever')
.itemInputs('minecraft:lever', 'create:andesite_casing', 'minecraft:redstone')
.itemOutputs('create:analog_lever')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.shaped('create:redstone_link', [
'FCB',
'DAD',
@ -1563,10 +1748,16 @@ const registerCreateRecipes = (event) => {
F: '#forge:tools/screwdrivers'
}).id('tfg:create/shaped/redstone_link')
event.recipes.gtceu.assembler('create:redstone_link')
.itemInputs('create:brass_casing', '#gtceu:circuits/ulv', '#forge:small_springs', '2x #forge:plates/wrought_iron')
.itemOutputs('create:redstone_link')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.shaped('create:display_link', [
'FED',
'BAB',
'EC '
' C '
], {
A: 'create:brass_casing',
B: '#forge:springs/copper',
@ -1576,6 +1767,12 @@ const registerCreateRecipes = (event) => {
F: '#forge:tools/wrenches'
}).id('tfg:create/shaped/display_link')
event.recipes.gtceu.assembler('create:display_link')
.itemInputs('create:brass_casing', '2x #forge:springs/copper', '#forge:plates/brass', 'create:electron_tube')
.itemOutputs('create:display_link')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.shaped('create:rotation_speed_controller', [
'ECE',
'BAB',
@ -1590,6 +1787,12 @@ const registerCreateRecipes = (event) => {
G: '#forge:tools/hammers'
}).id('tfg:create/shaped/rotation_speed_controller')
event.recipes.gtceu.assembler('create:rotation_speed_controller')
.itemInputs('create:brass_casing', '2x #forge:small_gears/brass', '#forge:small_gears/red_alloy', '#tfg:shafts')
.itemOutputs('create:rotation_speed_controller')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.shaped('create:sequenced_gearshift', [
'DBE',
'CAC',
@ -1602,6 +1805,12 @@ const registerCreateRecipes = (event) => {
E: '#forge:tools/hammers'
}).id('tfg:create/shaped/sequenced_gearshift')
event.recipes.gtceu.assembler('create:sequenced_gearshift')
.itemInputs('create:brass_casing', 'create:electron_tube', '2x #tfg:small_cogwheels')
.itemOutputs('create:sequenced_gearshift')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.shaped('create:mechanical_bearing', [
'CBE',
' A ',
@ -1614,6 +1823,13 @@ const registerCreateRecipes = (event) => {
E: '#forge:tools/wrenches'
}).id('tfg:create/shaped/mechanical_bearing')
event.recipes.gtceu.assembler('create:mechanical_bearing')
.itemInputs('create:andesite_casing', '#forge:plates/wrought_iron', '#tfg:small_cogwheels')
.inputFluids(Fluid.of('gtceu:glue', 50))
.itemOutputs('create:mechanical_bearing')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.shaped('create:gantry_carriage', [
'DCE',
' A ',
@ -1626,6 +1842,13 @@ const registerCreateRecipes = (event) => {
E: '#forge:tools/hammers'
}).id('tfg:create/shaped/gantry_carriage')
event.recipes.gtceu.assembler('create:gantry_carriage')
.itemInputs('create:andesite_casing', '#tfg:small_cogwheels', '#minecraft:wooden_slabs')
.inputFluids(Fluid.of('gtceu:glue', 50))
.itemOutputs('create:gantry_carriage')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.shaped('create:weighted_ejector', [
' B ',
' CE',
@ -1638,6 +1861,12 @@ const registerCreateRecipes = (event) => {
E: '#forge:tools/wrenches'
}).id('tfg:create/shaped/weighted_ejector')
event.recipes.gtceu.assembler('create:weighted_ejector')
.itemInputs('create:andesite_casing', '#forge:plates/wrought_iron', '#forge:springs/wrought_iron', '#tfg:small_cogwheels')
.itemOutputs('create:weighted_ejector')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.shaped('create:turntable', [
'DA ',
'CBC'
@ -1648,6 +1877,12 @@ const registerCreateRecipes = (event) => {
D: '#forge:tools/hammers'
}).id('tfg:create/shaped/turntable')
event.recipes.gtceu.assembler('create:turntable')
.itemInputs('#create:seats', '#minecraft:wooden_slabs', '2x #forge:screws')
.itemOutputs('create:turntable')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.shaped('create:gearshift', [
' C ',
'DAE',
@ -1660,6 +1895,13 @@ const registerCreateRecipes = (event) => {
E: '#forge:tools/hammers'
}).id('tfg:create/shaped/gearshift')
event.recipes.gtceu.assembler('create:gearshift')
.itemInputs('create:andesite_casing', '#tfg:small_cogwheels', 'minecraft:redstone')
.itemOutputs('create:gearshift')
.circuit(5)
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.shaped('create:clutch', [
' C ',
'DAE',
@ -1672,6 +1914,13 @@ const registerCreateRecipes = (event) => {
E: '#forge:tools/hammers'
}).id('tfg:create/shaped/clutch')
event.recipes.gtceu.assembler('create:clutch')
.itemInputs('create:andesite_casing', '#tfg:shafts', 'minecraft:redstone')
.itemOutputs('create:clutch')
.circuit(5)
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.stonecutting('2x create:andesite_scaffolding', '#forge:ingots/tin_alloy')
event.stonecutting('2x create:andesite_ladder', '#forge:ingots/tin_alloy')
event.stonecutting('2x create:andesite_bars', '#forge:ingots/tin_alloy')

View file

@ -79,6 +79,8 @@ const registerCreateBlockTags = (event) => {
// Disable bulk blasting
event.removeAll('create:fan_processing_catalysts/blasting')
event.add('tfc:forge_invisible_whitelist', 'create:basin')
}

View file

@ -81,15 +81,15 @@ const registerCreateAdditionsRecipes = (event) => {
}).id('tfg:createadditions/shaped/electric_motor')
event.shaped('createaddition:alternator', [
'AEA',
'ABA',
'CDC',
'BFB'
'EFE'
], {
A: '#gtceu:resistors',
B: '#gtceu:circuits/lv',
C: 'gtceu:ulv_voltage_coil',
D: 'gtceu:lv_machine_hull',
D: 'gtceu:ulv_machine_hull',
E: 'gtceu:tin_single_cable',
F: 'greate:steel_shaft'
F: '#tfg:shafts'
}).id('tfg:createadditions/shaped/alternator')
}

View file

@ -47,6 +47,7 @@ const registerCreatedecoRecipes = (event) => {
event.remove({ id: 'createdeco:industrial_iron_bars' })
event.remove({ id: 'createdeco:zinc_bars_overlay' })
event.remove({ id: 'createdeco:zinc_bars' })
event.remove({ id: 'gtceu:assembler/bricks' })
event.remove({ type: 'minecraft:stonecutting', input: '#forge:storage_blocks/tin_alloy' })
event.remove({ type: 'minecraft:stonecutting', input: '#forge:storage_blocks/brass' })
event.remove({ type: 'minecraft:stonecutting', input: '#forge:storage_blocks/wrought_iron' })
@ -130,6 +131,14 @@ const registerCreatedecoRecipes = (event) => {
const brickTypes = ['blue', 'verdant', 'pearl', 'dean', 'dusk', 'scarlet', 'umber']
const powderTypes = ['lapis_lazuli', 'malachite', 'soda_ash', 'limonite', 'charcoal', 'hematite', 'cassiterite']
event.recipes.gtceu.assembler(`assembler_bricks`)
.itemInputs('5x minecraft:brick')
.inputFluids(Fluid.of('gtceu:concrete', 144))
.itemOutputs(`4x minecraft:bricks`)
.duration(50)
.circuit(2)
.EUt(7)
brickTypes.forEach(type => {
event.remove({ output: `createdeco:${type}_bricks` });
});
@ -295,4 +304,4 @@ const registerCreatedecoRecipes = (event) => {
})
// #endregion
};
};

View file

@ -112,4 +112,6 @@ const registerFirmaCivRecipes = (event) => {
B: '#forge:wax'
}).id('tfg:firmaciv/rope_coil_from_cloth')
// #endregion
event.replaceInput({id: 'firmaciv:crafting/small_triangular_sail'}, 'tfc:wool_cloth', '#forge:cloth')
}

View file

@ -79,6 +79,7 @@ const registerFirmaLifeRecipes = (event) => {
.itemInputs('tfc:jar_lid')
.outputFluids(Fluid.of('gtceu:tin', 9))
.duration(50)
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
.EUt(2)
event.recipes.gtceu.fluid_solidifier(`firmalife:firmalife/stainless_steel_jar_lid`)
@ -128,10 +129,19 @@ const registerFirmaLifeRecipes = (event) => {
.duration(10)
.EUt(2)*/
//#region Рецепты теплиц
//#region Рецепты теплиц / Greenhouse
//#region Медная
//#region Treated Wood
event.shapeless('firmalife:treated_wood_greenhouse_port', [
'firmalife:treated_wood_greenhouse_wall',
'#forge:tiny_fluid_pipes/copper'
])
.id('firmalife:crafting/greenhouse/treated_wood_greenhouse_port')
//#endregion Treated Wood
//#region Медная / Copper
event.recipes.gtceu.bender('tfg:firmalife/sprinkler')
.itemInputs('#forge:plates/copper')
@ -208,9 +218,15 @@ const registerFirmaLifeRecipes = (event) => {
B: 'minecraft:glass'
}).id('firmalife:crafting/greenhouse/copper_greenhouse_door')
event.shapeless('firmalife:copper_greenhouse_port', [
'firmalife:copper_greenhouse_wall',
'#forge:tiny_fluid_pipes/copper'
])
.id('firmalife:crafting/greenhouse/copper_greenhouse_port')
//#endregion
//#region Железная
//#region Железная / Iron
// Стена
event.shaped('8x firmalife:iron_greenhouse_wall', [
@ -280,18 +296,85 @@ const registerFirmaLifeRecipes = (event) => {
B: 'minecraft:glass'
}).id('firmalife:crafting/greenhouse/iron_greenhouse_door')
event.shapeless('firmalife:iron_greenhouse_port', [
'firmalife:iron_greenhouse_wall',
'#forge:tiny_fluid_pipes/copper'
])
.id('firmalife:crafting/greenhouse/iron_greenhouse_port')
//#endregion
//#region Нержавеющая теплица
//#region Нержавеющая теплица / Stainless Steel
event.remove({ id: 'firmalife:crafting/greenhouse/stainless_steel_greenhouse_wall' })
event.remove({ id: 'firmalife:crafting/greenhouse/stainless_steel_greenhouse_panel_wall' })
event.remove({ id: 'firmalife:crafting/greenhouse/stainless_steel_greenhouse_panel_roof' })
event.remove({ id: 'firmalife:crafting/greenhouse/stainless_steel_greenhouse_roof' })
event.remove({ id: 'firmalife:crafting/greenhouse/stainless_steel_greenhouse_roof_top' })
event.remove({ id: 'firmalife:crafting/greenhouse/stainless_steel_greenhouse_trapdoor' })
event.remove({ id: 'firmalife:crafting/greenhouse/stainless_steel_greenhouse_door' })
event.remove({ id: 'firmalife:crafting/greenhouse/stainless_steel_greenhouse_port' })
event.shaped('8x firmalife:stainless_steel_greenhouse_wall', [
'ABA',
'ABA',
'ABA'
], {
A: '#forge:rods/stainless_steel',
B: 'minecraft:glass'
}).id('firmalife:crafting/greenhouse/stainless_steel_greenhouse_wall')
event.shaped('8x firmalife:stainless_steel_greenhouse_panel_wall', [
'ABA',
'ABA',
'ABA'
], {
A: '#forge:rods/stainless_steel',
B: 'firmalife:reinforced_glass'
}).id('firmalife:crafting/greenhouse/stainless_steel_greenhouse_panel_wall')
event.shaped('4x firmalife:stainless_steel_greenhouse_panel_roof', [
'A ',
'BA ',
'BBA'
], {
A: 'firmalife:reinforced_glass',
B: '#forge:rods/stainless_steel'
}).id('firmalife:crafting/greenhouse/stainless_steel_greenhouse_panel_roof')
event.shaped('4x firmalife:stainless_steel_greenhouse_roof', [
'A ',
'BA ',
'BBA'
], {
A: '#forge:rods/stainless_steel',
B: 'firmalife:reinforced_glass'
}).id('firmalife:crafting/greenhouse/stainless_steel_greenhouse_roof')
// Верхушка крыши
event.shaped('8x firmalife:stainless_steel_greenhouse_roof_top', [
'ABA',
'BAB'
], {
A: '#forge:rods/stainless_steel',
B: 'firmalife:reinforced_glass'
}).id('firmalife:crafting/greenhouse/stainless_steel_greenhouse_roof_top')
// Люк
event.shaped('8x firmalife:stainless_steel_greenhouse_trapdoor', [
'ABA',
'BAB'
], {
A: 'firmalife:reinforced_glass',
B: '#forge:rods/stainless_steel'
}).id('firmalife:crafting/greenhouse/stainless_steel_greenhouse_trapdoor')
// Дверь
event.shaped('2x firmalife:stainless_steel_greenhouse_door', [
'AB',
'AB',
'AB'
], {
A: '#forge:rods/stainless_steel',
B: 'minecraft:glass'
}).id('firmalife:crafting/greenhouse/stainless_steel_greenhouse_door')
event.shapeless('firmalife:stainless_steel_greenhouse_port', [
'firmalife:stainless_steel_greenhouse_wall',
'#forge:tiny_fluid_pipes/copper'
])
.id('firmalife:crafting/greenhouse/stainless_steel_greenhouse_port')
//#endregion

View file

@ -81,32 +81,6 @@ const registerFramedBlocksRecipes = (event) => {
}).id('framedblocks:framing_saw/framed_pressure_plate')
//#endregion
//#region Framed Obsidian Pressure Plate
event.shaped('framedblocks:framed_obsidian_pressure_plate', [
'AA',
'BB'
], {
A: '#forge:plates/obsidian',
B: 'framedblocks:framed_cube'
}).id('framedblocks:framed_obsidian_pressure_plate')
event.custom({
type: "framedblocks:frame",
additives: [
{
count: 1,
ingredient: {
tag: "forge:plates/obsidian"
}
}
],
material: 1536,
result: {
item: "framedblocks:framed_obsidian_pressure_plate"
}
}).id('framedblocks:framing_saw/framed_obsidian_pressure_plate')
//#endregion
//#region Framed Gold Pressure Plate
event.shaped('framedblocks:framed_gold_pressure_plate', [
'AA',

View file

@ -77,6 +77,45 @@ function registerGreateRecipes(event) {
// #endregion
// #region Gearboxes
event.recipes.gtceu.assembler('greate:andesite_alloy_gearbox')
.itemInputs('create:andesite_casing', '4x greate:andesite_alloy_shaft')
.itemOutputs('greate:andesite_alloy_gearbox')
.circuit(5)
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.assembler('greate:steel_gearbox')
.itemInputs('create:andesite_casing', '4x greate:steel_shaft')
.itemOutputs('greate:steel_gearbox')
.circuit(5)
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.assembler('greate:aluminium_gearbox')
.itemInputs('create:andesite_casing', '4x greate:aluminium_shaft')
.itemOutputs('greate:aluminium_gearbox')
.circuit(5)
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.assembler('greate:stainless_steel_gearbox')
.itemInputs('create:andesite_casing', '4x greate:stainless_steel_shaft')
.itemOutputs('greate:stainless_steel_gearbox')
.circuit(5)
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.assembler('greate:titanium_gearbox')
.itemInputs('create:andesite_casing', '4x greate:titanium_shaft')
.itemOutputs('greate:titanium_gearbox')
.circuit(5)
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
// #endregion
// #region Cogs
event.shapeless('greate:andesite_alloy_cogwheel', ['greate:andesite_alloy_shaft', '#forge:small_gears/wood'])
@ -151,12 +190,54 @@ function registerGreateRecipes(event) {
], {
A: '#forge:smooth_stone',
B: 'gtceu:treated_wood_slab',
C: '#forge:small_gears/steel',
C: '#forge:small_gears/wrought_iron',
D: '#forge:tools/hammers',
E: '#forge:tools/wrenches',
F: '#forge:dusts/diamond'
}).id('greate:shaped/steel_millstone')
event.recipes.gtceu.assembler('greate:steel_millstone')
.itemInputs('3x #forge:smooth_stone', 'gtceu:treated_wood_slab', '#forge:small_gears/wrought_iron', '2x #forge:dusts/diamond')
.itemOutputs('greate:steel_millstone')
.duration(200)
.EUt(GTValues.VA[GTValues.ULV])
event.shaped('greate:aluminium_millstone', [
'BCB',
'FGF',
'AAA'
], {
A: '#forge:double_plates/vanadium_steel',
B: '#gtceu:circuits/mv',
C: '#forge:gears/steel',
F: '#forge:gems/diamond',
G: 'gtceu:mv_machine_casing'
}).id('greate:shaped/aluminium_millstone')
event.shaped('greate:stainless_steel_millstone', [
'BCB',
'FGF',
'AAA'
], {
A: '#forge:double_plates/red_steel',
B: '#gtceu:circuits/hv',
C: '#forge:gears/aluminium',
F: 'gtceu:diamond_grinding_head',
G: 'gtceu:hv_machine_casing'
}).id('greate:shaped/stainless_steel_millstone')
event.shaped('greate:titanium_millstone', [
'BCB',
'FGF',
'AAA'
], {
A: '#forge:double_plates/ultimet',
B: '#gtceu:circuits/ev',
C: '#forge:gears/stainless_steel',
F: 'gtceu:diamond_grinding_head',
G: 'gtceu:ev_machine_casing'
}).id('greate:shaped/titanium_millstone')
// #endregion
// #region Crushing wheels
@ -226,6 +307,30 @@ function registerGreateRecipes(event) {
F: '#forge:tools/hammers'
}).id('greate:shaped/steel_encased_fan')
event.recipes.gtceu.assembler('greate:steel_encased_fan')
.itemInputs('greate:steel_shaft', '2x #forge:small_gears/wrought_iron', 'create:andesite_casing', 'gtceu:steel_rotor')
.itemOutputs('greate:steel_encased_fan')
.duration(200)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.assembler('greate:aluminium_encased_fan')
.itemInputs('greate:aluminium_shaft', '2x #gtceu:circuits/mv', 'gtceu:mv_machine_casing', 'gtceu:aluminium_rotor')
.itemOutputs('greate:aluminium_encased_fan')
.duration(200)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.assembler('greate:stainless_steel_encased_fan')
.itemInputs('greate:stainless_steel_shaft', '2x #gtceu:circuits/hv', 'gtceu:hv_machine_casing', 'gtceu:stainless_steel_rotor')
.itemOutputs('greate:stainless_steel_encased_fan')
.duration(200)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.assembler('greate:titanium_encased_fan')
.itemInputs('greate:titanium_shaft', '2x #gtceu:circuits/ev', 'gtceu:ev_machine_casing', 'gtceu:titanium_rotor')
.itemOutputs('greate:titanium_encased_fan')
.duration(200)
.EUt(GTValues.VA[GTValues.HV])
// The other fans are fine as-is
// #endregion
@ -245,6 +350,12 @@ function registerGreateRecipes(event) {
F: 'greate:andesite_alloy_shaft'
}).id('greate:shaped/andesite_alloy_mechanical_saw')
event.recipes.gtceu.assembler('greate:andesite_alloy_mechanical_saw')
.itemInputs('2x #forge:screws/wrought_iron', 'gtceu:wrought_iron_buzz_saw_blade', '2x greate:andesite_alloy_cogwheel', 'create:andesite_casing', 'greate:andesite_alloy_shaft')
.itemOutputs('greate:andesite_alloy_mechanical_saw')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.shaped('greate:steel_mechanical_saw', [
'ABA',
'CDC',
@ -258,6 +369,12 @@ function registerGreateRecipes(event) {
F: '#forge:tools/wrenches'
}).id('greate:shaped/steel_mechanical_saw')
event.recipes.gtceu.assembler('greate:steel_mechanical_saw')
.itemInputs('gtceu:ulv_machine_hull', 'greate:steel_shaft', '2x #gtceu:circuits/ulv', 'gtceu:cobalt_brass_buzz_saw_blade', '2x greate:steel_cogwheel')
.itemOutputs('greate:steel_mechanical_saw')
.duration(200)
.EUt(GTValues.VA[GTValues.ULV])
event.shaped('greate:aluminium_mechanical_saw', [
'ABA',
'CDC',
@ -271,6 +388,12 @@ function registerGreateRecipes(event) {
F: '#forge:tools/wrenches'
}).id('greate:shaped/aluminium_mechanical_saw')
event.recipes.gtceu.assembler('greate:aluminium_mechanical_saw')
.itemInputs('gtceu:mv_machine_hull', '2x #gtceu:circuits/mv', 'gtceu:vanadium_steel_buzz_saw_blade', '2x gtceu:mv_electric_motor', 'greate:aluminium_shaft')
.itemOutputs('greate:aluminium_mechanical_saw')
.duration(200)
.EUt(GTValues.VA[GTValues.ULV])
// Removed while we wait for a fix so recipes don't work without being in a Cleanroom - Important for Wafer
// event.shaped('greate:stainless_steel_mechanical_saw', [
@ -315,6 +438,30 @@ function registerGreateRecipes(event) {
E: 'greate:steel_cogwheel'
}).id('greate:shaped/steel_mechanical_pump')
event.recipes.gtceu.assembler('greate:steel_mechanical_pump')
.itemInputs('2x #forge:wax', '2x #forge:screws/steel', 'create:fluid_pipe', 'greate:steel_cogwheel')
.itemOutputs('greate:steel_mechanical_pump')
.duration(200)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.assembler('greate:aluminium_mechanical_pump')
.itemInputs('2x #forge:rings/rubber', '2x #forge:screws/aluminium', 'create:fluid_pipe', 'greate:aluminium_cogwheel')
.itemOutputs('greate:aluminium_mechanical_pump')
.duration(200)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.assembler('greate:stainless_steel_mechanical_pump')
.itemInputs('2x #forge:rings/rubber', '2x #forge:screws/stainless_steel', 'create:fluid_pipe', 'greate:stainless_steel_cogwheel')
.itemOutputs('greate:stainless_steel_mechanical_pump')
.duration(200)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.assembler('greate:titanium_mechanical_pump')
.itemInputs('2x #forge:rings/rubber', '2x #forge:screws/titanium', 'create:fluid_pipe', 'greate:titanium_cogwheel')
.itemOutputs('greate:titanium_mechanical_pump')
.duration(200)
.EUt(GTValues.VA[GTValues.HV])
// #endregion
// #region Belt Connector
@ -388,6 +535,30 @@ function registerGreateRecipes(event) {
G: '#forge:tools/hammers'
}).id('greate:shaped/steel_mechanical_mixer')
event.recipes.gtceu.assembler('greate:steel_mechanical_mixer')
.itemInputs('greate:steel_shaft', '2x #gtceu:circuits/ulv', 'gtceu:ulv_machine_hull', '2x #forge:plates/black_steel', 'gtceu:steel_wisk')
.itemOutputs('greate:steel_mechanical_mixer')
.duration(200)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.assembler('greate:aluminium_mechanical_mixer')
.itemInputs('greate:aluminium_shaft', '2x #gtceu:circuits/mv', 'gtceu:mv_machine_hull', 'gtceu:aluminium_wisk')
.itemOutputs('greate:aluminium_mechanical_mixer')
.duration(200)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.assembler('greate:stainless_steel_mechanical_mixer')
.itemInputs('greate:stainless_steel_shaft', '2x #gtceu:circuits/hv', 'gtceu:hv_machine_hull', 'gtceu:stainless_steel_wisk')
.itemOutputs('greate:stainless_steel_mechanical_mixer')
.duration(200)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.assembler('greate:titanium_mechanical_mixer')
.itemInputs('greate:titanium_shaft', '2x #gtceu:circuits/ev', 'gtceu:ev_machine_hull', 'gtceu:titanium_wisk')
.itemOutputs('greate:titanium_mechanical_mixer')
.duration(200)
.EUt(GTValues.VA[GTValues.HV])
// #endregion
// #region Whisks
@ -403,6 +574,13 @@ function registerGreateRecipes(event) {
D: '#forge:rods/long/steel'
}).id('gtceu:shaped/steel_whisk')
event.recipes.gtceu.assembler('greate:steel_whisk')
.itemInputs('#forge:rings/steel', '4x #forge:rods/long/steel')
.itemOutputs('greate:steel_whisk')
.circuit(2)
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
event.shaped('gtceu:aluminium_whisk', [
'ABC',
'D D',
@ -414,6 +592,13 @@ function registerGreateRecipes(event) {
D: '#forge:rods/long/aluminium'
}).id('gtceu:shaped/aluminium_whisk')
event.recipes.gtceu.assembler('greate:aluminium_whisk')
.itemInputs('#forge:rings/aluminium', '4x #forge:rods/long/aluminium')
.itemOutputs('greate:aluminium_whisk')
.circuit(2)
.duration(50)
.EUt(GTValues.VA[GTValues.LV])
event.shaped('gtceu:stainless_steel_whisk', [
'ABC',
'D D',
@ -425,6 +610,13 @@ function registerGreateRecipes(event) {
D: '#forge:rods/long/stainless_steel'
}).id('gtceu:shaped/stainless_steel_whisk')
event.recipes.gtceu.assembler('greate:stainless_steel_whisk')
.itemInputs('#forge:rings/stainless_steel', '4x #forge:rods/long/stainless_steel')
.itemOutputs('greate:stainless_steel_whisk')
.circuit(2)
.duration(50)
.EUt(GTValues.VA[GTValues.MV])
event.shaped('gtceu:titanium_whisk', [
'ABC',
'D D',
@ -436,6 +628,13 @@ function registerGreateRecipes(event) {
D: '#forge:rods/long/titanium'
}).id('gtceu:shaped/titanium_whisk')
event.recipes.gtceu.assembler('greate:titanium_whisk')
.itemInputs('#forge:rings/titanium', '4x #forge:rods/long/titanium')
.itemOutputs('greate:titanium_whisk')
.circuit(2)
.duration(50)
.EUt(GTValues.VA[GTValues.HV])
// #endregion
// #region Cables

View file

@ -103,7 +103,8 @@ function registerGreateRecyclingRecipes(event) {
event.recipes.gtceu.macerator('greate:steel_millstone')
.itemInputs('greate:steel_millstone')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 4),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 3),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.WroughtIron, 1),
ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.TreatedWood, 2))
.duration(GTMaterials.Steel.getMass() * 4)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
@ -111,11 +112,80 @@ function registerGreateRecyclingRecipes(event) {
event.recipes.gtceu.arc_furnace('greate:steel_millstone')
.itemInputs('greate:steel_millstone')
.itemOutputs(ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 4))
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 3),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.WroughtIron, 1))
.duration(GTMaterials.Steel.getMass() * 4)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('greate:aluminium_millstone')
.itemInputs('greate:aluminium_millstone')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 8),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.VanadiumSteel, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 4),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Diamond, 2))
.duration(GTMaterials.Aluminium.getMass() * (8+6+4+2))
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:aluminium_millstone')
.itemInputs('greate:aluminium_millstone')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 8),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.VanadiumSteel, 6),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 4))
.duration(GTMaterials.Aluminium.getMass() * (8+6+4))
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('greate:stainless_steel_millstone')
.itemInputs('greate:stainless_steel_millstone')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 8),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 8),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.RedSteel, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 4),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Diamond, 5))
.duration(GTMaterials.StainlessSteel.getMass() * (8+8+6+4+5))
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:stainless_steel_millstone')
.itemInputs('greate:stainless_steel_millstone')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 8),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 8),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.RedSteel, 6),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 4))
.duration(GTMaterials.StainlessSteel.getMass() * (8+8+6+4))
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('greate:titanium_millstone')
.itemInputs('greate:titanium_millstone')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Titanium, 8),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Steel, 8),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Ultimet, 6),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 4),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Diamond, 5))
.duration(GTMaterials.Titanium.getMass() * (8+8+6+4+5))
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:titanium_millstone')
.itemInputs('greate:titanium_millstone')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Titanium, 8),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Steel, 8),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Ultimet, 6),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 4))
.duration(GTMaterials.Titanium.getMass() * (8+8+6+4))
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// #endregion
// #region Crushing Wheels

View file

@ -7,6 +7,11 @@ function removeGreateRecipes(event) {
event.remove({ output: item })
})
global.GREATE_DISABLED_FLUIDS.forEach(fluid => {
event.remove({ input: fluid })
event.remove({ output: fluid })
})
event.remove({ mod: 'greate', input: 'create:andesite_alloy' });
event.remove({ id: 'greate:shapeless/large_andesite_alloy_cogwheel_from_little' })
@ -18,7 +23,7 @@ function removeGreateRecipes(event) {
event.remove({ id: 'greate:shaped/andesite_alloy_shaft' })
// Until we got a fix from Greate for recipes in a cleanroom
event.remove({ id: 'greate:shaped/stainless_steel_mechanical_saw' })
event.remove({ id: 'greate:shaped/stainless_steel_mechanical_saw' })
event.remove({ id: 'greate:shaped/titanium_mechanical_saw' })
event.remove({ id: 'greate:splashing/dough' })

View file

@ -98,7 +98,6 @@ const registerGTCEURecipes = (event) => {
.outputFluids(Fluid.of('gtceu:chlorine', 500), Fluid.of('gtceu:hydrogen', 500))
.duration(720)
.EUt(30)
.circuit(2)
//#endregion
@ -1056,6 +1055,36 @@ const registerGTCEURecipes = (event) => {
//#endregion
//#region Large boilers fuel rebalance
// Balance is based on adjusting to match singeblock boiler efficiency
// High Pressure Steam Solid Boiler produces 288,000 mB steam/coke
// High Pressure Steam Liquid Boiler produces 432 mB steam/creosote
// By Defualt: Large Bronze Boiler produces 50mB steam/creosote, 32000mB steam/coke
// This is a factor of 9x for solids, 8.64x for liquids
// Large boiler fuel burn time is multiplied by 9, resulting in less fuel used over time for the same amount of steam produced per tick
event.findRecipes({ id: /^gtceu:large_boiler\/.*/, type: "gtceu:large_boiler" }).forEach(large_boiler_recipe => {
let recipe_duration = large_boiler_recipe.json.getAsJsonPrimitive("duration").asInt
large_boiler_recipe.json.remove("duration")
large_boiler_recipe.json.add("duration", recipe_duration * 9)
})
//#endregion
//#region Hopper
event.recipes.gtceu.assembler('gtceu:assembler/hopper_wrought_iron')
.itemInputs('#forge:chests', '5x #forge:plates/wrought_iron')
.itemOutputs('minecraft:hopper')
.circuit(8)
.duration(200)
.EUt(2)
//#endregion
// TODO: Greate again...
event.shapeless('gtceu:programmed_circuit', ['minecraft:stick', '#forge:tools/wrenches'])
.id('tfg:shapeless/programmed_circuit_from_stick')

View file

@ -749,4 +749,53 @@ function registerGTCEuMachineRecipes(event) {
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
})
// Wooden crate
event.recipes.shaped('gtceu:wood_crate', [
'ABA',
'BCB',
'ABA'
], {
A: '#forge:screws/wrought_iron',
B: '#minecraft:planks',
C: '#forge:tools/saws'
}).id('tfg:shaped/wooden_crate_wrought_iron')
event.recipes.gtceu.assembler('gtceu:wood_crate')
.itemInputs('4x #minecraft:planks', '4x #forge:screws/wrought_iron')
.itemOutputs('gtceu:wood_crate')
.duration(100)
.EUt(16)
.circuit(5)
// Steam multi parts
event.shaped('gtceu:steel_machine_casing', [
' A ',
'ABA',
' A '
], {
A: '#forge:ingots/steel',
B: '#forge:tools/hammers'
}).id('gtceu:shaped/steel_hull')
event.shaped('gtceu:steam_input_hatch', [
'ACA',
' B ',
'ACA'
], {
A: '#forge:screws/wrought_iron',
B: 'gtceu:steel_machine_casing',
C: '#forge:small_fluid_pipes/steel'
}).id('gtceu:shaped/steam_hatch')
event.replaceOutput({ id: 'gtceu:macerator/macerate_steel_machine_casing'}, 'gtceu:steel_dust', '4x gtceu:steel_dust')
event.replaceOutput({ id: 'gtceu:arc_furnace/arc_steel_machine_casing'}, 'gtceu:steel_ingot', '4x gtceu:steel_ingot')
event.replaceOutput({ id: 'gtceu:macerator/macerate_steam_input_bus'}, 'gtceu:steel_dust', '4x gtceu:steel_dust')
event.replaceOutput({ id: 'gtceu:arc_furnace/arc_steam_input_bus'}, 'gtceu:steel_ingot', '4x gtceu:steel_ingot')
event.replaceOutput({ id: 'gtceu:macerator/macerate_steam_output_bus'}, 'gtceu:steel_dust', '4x gtceu:steel_dust')
event.replaceOutput({ id: 'gtceu:arc_furnace/arc_steam_output_bus'}, 'gtceu:steel_ingot', '4x gtceu:steel_ingot')
event.replaceOutput({ id: 'gtceu:macerator/macerate_steam_input_hatch'}, 'gtceu:steel_dust', '6x gtceu:steel_dust')
event.replaceOutput({ id: 'gtceu:arc_furnace/arc_steam_input_hatch'}, 'gtceu:steel_block', '6x gtceu:steel_ingot')
}

View file

@ -119,4 +119,68 @@ function registerGTCEURecyclingRecipes(event) {
.duration(GTMaterials.Neutronium.getMass() * 6)
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Iron Door
event.recipes.gtceu.macerator('gtceu:macerator/macerate_iron_door')
.itemInputs('minecraft:iron_door')
.itemOutputs('2x #forge:dusts/wrought_iron')
.duration(GTMaterials.WroughtIron.getMass() * 2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/arc_iron_door')
.itemInputs('minecraft:iron_door')
.itemOutputs('2x #forge:ingots/wrought_iron')
.duration(GTMaterials.WroughtIron.getMass() * 2)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Redstone lamp
event.recipes.gtceu.macerator('gtceu:macerator/macerate_redstone_lamp')
.itemInputs('minecraft:redstone_lamp')
.itemOutputs('2x #forge:small_dusts/red_alloy', '21x #forge:tiny_dusts/glass', '4x #forge:dusts/glowstone')
.duration(GTMaterials.RedAlloy.getMass() * 2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/arc_redstone_lamp')
.itemInputs('minecraft:redstone_lamp')
.itemOutputs('4x #forge:nuggets/red_alloy')
.duration(GTMaterials.RedAlloy.getMass() * 2)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Dispenser
event.recipes.gtceu.macerator('gtceu:macerator/macerate_dispenser')
.itemInputs('minecraft:dispenser')
.itemOutputs('6x #forge:dusts/stone', '1x #forge:dusts/redstone', '1x #forge:dusts/brass')
.duration(GTMaterials.Brass.getMass() * 2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/arc_dispenser')
.itemInputs('minecraft:dispenser')
.itemOutputs('1x #forge:ingots/brass')
.duration(GTMaterials.Brass.getMass() * 2)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// Dropper
event.recipes.gtceu.macerator('gtceu:macerator/macerate_dropper')
.itemInputs('minecraft:dropper')
.itemOutputs('7x #forge:dusts/stone', '1x #forge:dusts/redstone', '1x #forge:dusts/brass')
.duration(GTMaterials.Brass.getMass() * 2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/arc_dropper')
.itemInputs('minecraft:dropper')
.itemOutputs('1x #forge:ingots/brass')
.duration(GTMaterials.Brass.getMass() * 2)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
}

View file

@ -164,12 +164,12 @@ function generatePlatedBlockRecipe(event, material) {
.EUt(GTValues.VA[GTValues.LV])
}
const $MRM = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.IMaterialRegistryManager')
//const $MRM = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.IMaterialRegistryManager')
function forEachMaterial(iterator) {
if (GTMaterialRegistry.getPhase() === $MRM.Phase.CLOSED || GTMaterialRegistry.getPhase() === $MRM.Phase.FROZEN) {
//if (GTMaterialRegistry.getPhase() === $MRM.Phase.CLOSED || GTMaterialRegistry.getPhase() === $MRM.Phase.FROZEN) {
GTMaterialRegistry.getRegisteredMaterials().forEach(material => {
iterator(material)
})
}
//}
}

View file

@ -1,5 +1,14 @@
// priority: 0
const registerHotOrNotRecipes = (event) => {
event.shaped('tfchotornot:tongs/wood', [
'AB ',
'B ',
' '
], {
A: '#forge:tools/knives',
B: '#forge:rods/wooden'
}).id('tfchotornot:crafting/tongs/wood')
}

View file

@ -917,11 +917,6 @@ const registerMinecraftRecipes = (event) => {
// #endregion
//#region Кожа из кожаных предметов
event.recipes.gtceu.macerator('tfg:leather_from_boots')
.itemInputs('minecraft:leather_boots')
.itemOutputs('minecraft:leather')
.EUt(7).duration(80)
event.recipes.gtceu.macerator('tfg:leather_from_saddle')
.itemInputs('minecraft:saddle')
.itemOutputs('minecraft:leather')
@ -931,21 +926,6 @@ const registerMinecraftRecipes = (event) => {
.itemInputs('minecraft:leather_horse_armor')
.itemOutputs('minecraft:leather')
.EUt(7).duration(80)
event.recipes.gtceu.macerator('tfg:leather_from_helmet')
.itemInputs('minecraft:leather_helmet')
.itemOutputs('minecraft:leather')
.EUt(7).duration(80)
event.recipes.gtceu.macerator('tfg:leather_from_leggings')
.itemInputs('minecraft:leather_leggings')
.itemOutputs('minecraft:leather')
.EUt(7).duration(80)
event.recipes.gtceu.macerator('tfg:leather_from_chestplate')
.itemInputs('minecraft:leather_chestplate')
.itemOutputs('minecraft:leather')
.EUt(7).duration(80)
//#endregion
//#region Campfire

View file

@ -324,4 +324,13 @@ const registerTFCRecipes = (event) => {
.circuit(6)
.EUt(GTValues.VA[GTValues.ULV])
});
// Jar lids
event.shapeless('8x tfc:jar_lid', [
'gtceu:tin_ingot',
'#forge:tools/hammers',
'#forge:tools/saws'
]).id('tfc:shapeless/jar_lid')
}

View file

@ -239,11 +239,11 @@ function registerTFCMetalsRecipes(event) {
// Ванильная дверь декрафт
event.recipes.tfc.heating('minecraft:iron_door', 1535)
.resultFluid(Fluid.of('gtceu:iron', 144))
.resultFluid(Fluid.of('gtceu:iron', 288))
.id(`tfc:heating/iron_door`)
// Ванильная дверь на наковальне
event.recipes.tfc.anvil('minecraft:iron_door', '#forge:plates/wrought_iron', ['hit_last', 'draw_not_last', 'punch_not_last'])
event.recipes.tfc.anvil('minecraft:iron_door', '#forge:double_plates/wrought_iron', ['hit_last', 'draw_not_last', 'punch_not_last'])
.tier(3)
.id(`tfc:anvil/iron_door`)

View file

@ -117,6 +117,20 @@ BlockEvents.rightClicked(event => {
if (block.id != 'tfg:decorative_vase') {return}{
server.runCommandSilent(`playsound tfc:block.quern.drag block ${username} ${block.x} ${block.y} ${block.z} 0.3 2.0 0.1`)
}});
//#endregion
BlockEvents.rightClicked(event=>{
let item = event.item
if(item.id != 'tfg:armor_stand_arms') return
let mob = event.block[event.facing].createEntity('minecraft:armor_stand')
mob.mergeNbt('{ShowArms:1b}')
mob.setPos(mob.x + 0.5, mob.y, mob.z + 0.5)
mob.setYaw(event.player.yaw + 180)
mob.spawn()
if (event.player.isCreative() == false){
item.shrink(1)
}
})
/**
*
@ -131,7 +145,6 @@ function getTFGPersistentDataRoot(player)
}
return player.persistentData.getCompound("tfg:custom_data")
}
//#endregion
//#region Fishing Net
const fish = [
@ -153,16 +166,70 @@ function getTFGPersistentDataRoot(player)
'crayfish'
];
//tags wont work here (or at least I couldnt get it to work) so we need to manually declare each net tier.
const tiers = [
'wood',
'brass',
'rose_gold',
'sterling_silver',
'invar',
'tin_alloy',
'cupronickel',
'magnalium'
];
//Event detects if fish is right clicked with fishing net and then teleports the mob into the void, plays some actions and gives the player the proper item.
fish.forEach(fish => {
ItemEvents.entityInteracted('#forge:tools/fishing_nets', event => {
tiers.forEach(tier => {
fish.forEach(fish => {
ItemEvents.entityInteracted(`tfg:fishing_net/${tier}`, (event) => {
const {item, player, server, target} = event;
if (target.type != `tfc:${fish}`) return
server.runCommandSilent(`particle minecraft:bubble_pop ${target.x} ${target.y} ${target.z} 0.5 0.5 0.5 0.00001 10`)
server.runCommandSilent(`playsound minecraft:entity.player.splash player ${player.username} ${target.x} ${target.y} ${target.z} 2 2 1`)
server.runCommandSilent(`tp ${target.uuid} ${target.x} ${target.y - 382} ${target.z}`)
event.player.give(`tfc:food/${fish}`)
player.swing()
if (player.isCreative() == false){
item.damageValue++
if (item.damageValue >= item.maxDamage) {
server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`)
item.count--
}
}
})
})
//Shellfish Exception
shellfish.forEach(shellfish => {
ItemEvents.entityInteracted(`tfg:fishing_net/${tier}`, (event) => {
const {item, player, server, target} = event;
if (target.type != `tfc:${shellfish}`) return
server.runCommandSilent(`particle minecraft:bubble_pop ${target.x} ${target.y} ${target.z} 0.5 0.5 0.5 0.00001 10`)
server.runCommandSilent(`playsound minecraft:entity.player.splash player ${player.username} ${target.x} ${target.y} ${target.z} 2 2 1`)
server.runCommandSilent(`tp ${target.uuid} ${target.x} ${target.y - 382} ${target.z}`)
event.player.give('tfc:food/shellfish')
player.swing()
if (player.isCreative() == false){
item.damageValue++
if (item.damageValue >= item.maxDamage) {
server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`)
item.count--
}
}
})
})
//Pufferfish Exception
ItemEvents.entityInteracted(`tfg:fishing_net/${tier}`, (event) => {
const {item, player, server, target} = event;
if (target.type != `tfc:${fish}`) return
if (target.type != 'tfc:pufferfish') return
server.runCommandSilent(`particle minecraft:bubble_pop ${target.x} ${target.y} ${target.z} 0.5 0.5 0.5 0.00001 10`)
server.runCommandSilent(`playsound minecraft:entity.player.splash player ${player.username} ${target.x} ${target.y} ${target.z} 2 2 1`)
server.runCommandSilent(`tp ${target.uuid} ${target.x} ${target.y - 382} ${target.z}`)
event.player.give(`tfc:food/${fish}`)
event.player.give('minecraft:pufferfish')
player.swing()
if (player.isCreative() == false){
item.damageValue++
@ -173,44 +240,4 @@ function getTFGPersistentDataRoot(player)
}
})
})
//Shellfish Exception
shellfish.forEach(shellfish => {
ItemEvents.entityInteracted('#forge:tools/fishing_nets', event => {
const {item, player, server, target} = event;
if (target.type != `tfc:${shellfish}`) return
server.runCommandSilent(`particle minecraft:bubble_pop ${target.x} ${target.y} ${target.z} 0.5 0.5 0.5 0.00001 10`)
server.runCommandSilent(`playsound minecraft:entity.player.splash player ${player.username} ${target.x} ${target.y} ${target.z} 2 2 1`)
server.runCommandSilent(`tp ${target.uuid} ${target.x} ${target.y - 382} ${target.z}`)
event.player.give('tfc:food/shellfish')
player.swing()
if (player.isCreative() == false){
item.damageValue++
if (item.damageValue >= item.maxDamage) {
server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`)
item.count--
}
}
})
})
//Pufferfish Exception
ItemEvents.entityInteracted('#forge:tools/fishing_nets', event => {
const {item, player, server, target} = event;
if (target.type != 'tfc:pufferfish') return
server.runCommandSilent(`particle minecraft:bubble_pop ${target.x} ${target.y} ${target.z} 0.5 0.5 0.5 0.00001 10`)
server.runCommandSilent(`playsound minecraft:entity.player.splash player ${player.username} ${target.x} ${target.y} ${target.z} 2 2 1`)
server.runCommandSilent(`tp ${target.uuid} ${target.x} ${target.y - 382} ${target.z}`)
event.player.give('minecraft:pufferfish')
player.swing()
if (player.isCreative() == false){
item.damageValue++
if (item.damageValue >= item.maxDamage) {
server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`)
item.count--
}
}
})
//#endregion

View file

@ -389,4 +389,12 @@ function registerTFGMiscellaneousRecipes(event) {
.dimension('minecraft:the_nether')
.duration(200)
.EUt(16)
event.shapeless('1x tfg:armor_stand_arms', [
'minecraft:armor_stand'
]).id(`tfg:shapeless/armor_stand_arms`)
event.shapeless('1x minecraft:armor_stand', [
'tfg:armor_stand_arms'
]).id(`tfg:shapeless/armor_stand`)
}

View file

@ -273,4 +273,22 @@ function registerTFGMoldRecipes(event) {
.duration(120)
.EUt(GTValues.VA[GTValues.LV])
})
//TODO: Fix this code to respect full molds
// //craft mold to scrub nbt
// const molds = Ingredient.of('#tfc:fired_molds').itemIds;
// molds.forEach(mold => {
// event.shapeless(Item.of(mold), [mold])
// .id(`tfg:shapeless/mold_cleaning/${mold.replace(":", "/")}`);
// });
// //craft vessel to scrub nbt
// const vessels = Ingredient.of('#tfc:fired_vessels').itemIds;
// vessels.forEach(vessel => {
// event.shapeless(Item.of(vessel), [vessel])
// .id(`tfg:shapeless/vessel_cleaning/${vessel.replace(":", "/")}`);
// });
}

View file

@ -1,122 +0,0 @@
// 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])
}

View file

@ -193,7 +193,7 @@ function registerTFGRockRecipes(event) {
}
}
if ("slab" in x) {
event.recipes.tfc.chisel(x.slab, x.raw, 'slab')
event.recipes.tfc.chisel(x.slab, x.raw, 'slab').extraDrop(x.slab)
//event.stonecutting(`2x ${x.slab}`, x.raw).id(`${x.raw}_to_${x.slab}`.replace(/:/g, '_'))
event.recipes.gtceu.macerator(`macerate_${x.slab}`.replace(/:/g, '_'))
@ -256,4 +256,38 @@ function registerTFGRockRecipes(event) {
})
// #endregion
//#region Magma Blocks
event.remove({id: 'gtceu:compressor/magma_block'})
event.remove({id: 'greate:splashing/obsidian'})
//magma block + stone group
const magma_blocks = [
{magma: 'minecraft:magma_block', rock: 'minecraft:blackstone'},
{magma: 'tfc:rock/magma/granite', rock: 'tfc:rock/raw/granite'},
{magma: 'tfc:rock/magma/diorite', rock: 'tfc:rock/raw/diorite'},
{magma: 'tfc:rock/magma/gabbro', rock: 'tfc:rock/raw/gabbro'},
{magma: 'tfc:rock/magma/rhyolite', rock: 'tfc:rock/raw/rhyolite'},
{magma: 'tfc:rock/magma/basalt', rock: 'tfc:rock/raw/basalt'},
{magma: 'tfc:rock/magma/andesite', rock: 'tfc:rock/raw/andesite'},
{magma: 'tfc:rock/magma/dacite', rock: 'tfc:rock/raw/dacite'}
];
magma_blocks.forEach(block => {
event.recipes.gtceu.fluid_solidifier(`tfg:gtceu/fluid_solidifier/${block.magma}`.replace(/:/g, '/'))
.itemInputs(`1x ${block.rock}`)
.inputFluids(Fluid.of('minecraft:lava', 250))
.itemOutputs(`1x ${block.magma}`)
.duration(100)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.extractor(`tfg:gtceu/extractor/${block.magma}`.replace(/:/g, "/"))
.itemInputs(`1x ${block.magma}`)
.outputFluids(Fluid.of('minecraft:lava', 250))
.itemOutputs(`1x ${block.rock}`)
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
})
//#endregion
}

View file

@ -185,7 +185,7 @@ function registerTFGSupportRecipes(event) {
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.tfc.anvil(
'4x tfg:steel_support',
'1x tfg:steel_support',
'#forge:double_ingots/steel',
[
'upset_last',
@ -196,7 +196,7 @@ function registerTFGSupportRecipes(event) {
event.recipes.gtceu.assembler('tfg:gtceu/assembler/steel_support')
.circuit(4)
.itemOutputs('8x tfg:steel_support')
.itemOutputs('4x tfg:steel_support')
.itemInputs('2x #forge:double_ingots/steel')
.duration(100)
.EUt(GTValues.VA[GTValues.ULV])
@ -204,25 +204,25 @@ function registerTFGSupportRecipes(event) {
event.recipes.gtceu.macerator('tfg:macerator/recycling/steel_support')
.itemInputs('tfg:steel_support')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Steel, 1)
ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Steel, 2)
)
.duration(GTMaterials.Steel.getMass() * 1)
.duration(GTMaterials.Steel.getMass() * 2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('tfg:arc_furnace/recycling/steel_support')
.itemInputs('tfg:steel_support')
.itemOutputs(
ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Steel, 2)
ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Steel, 4)
)
.duration(GTMaterials.Steel.getMass() * 1)
.duration(GTMaterials.Steel.getMass() * 4)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.extractor('tfg:extractor/recycling/steel_support')
.itemInputs('tfg:steel_support')
.outputFluids(Fluid.of('gtceu:steel', 36))
.duration(GTMaterials.Steel.getMass() * 1)
.outputFluids(Fluid.of('gtceu:steel', 64))
.duration(GTMaterials.Steel.getMass() * 2)
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
}

View file

@ -129,6 +129,12 @@ const registerTFGItemTags = (event) => {
// #endregion
// Use either cast or wrought iron
event.add('forge:double_iron_ingots', '#forge:double_ingots/iron')
event.add('forge:double_iron_ingots', '#forge:double_ingots/wrought_iron')
// #endregion
// #region 0.7.19 -> 0.9 conversion
event.add('c:hidden_from_recipe_viewers', 'treetap:tap')
@ -256,6 +262,15 @@ const registerTFGBlockTags = (event) => {
event.add('tfc:rock/hardened', 'tfg:rock/hardened_dripstone')
// #endregion
// #region Space blocks (TODO: undo these when merging space into dev!)
event.add('c:hidden_from_recipe_viewers', 'tfg:lunar_roots')
event.add('c:hidden_from_recipe_viewers', 'tfg:lunar_sprouts')
event.add('c:hidden_from_recipe_viewers', 'tfg:lunar_chorus_plant')
event.add('c:hidden_from_recipe_viewers', 'tfg:lunar_chorus_flower')
// #endregion
}
const registerTFGFluidTags = (event) => {

View file

@ -84,7 +84,7 @@ function registerVintageImprovementsRecipes(event) {
], {
A: '#forge:frames/bronze',
B: '#tfg:hardwood',
C: '#forge:double_ingots/iron',
C: '#forge:double_iron_ingots',
D: 'greate:andesite_alloy_cogwheel',
E: '#minecraft:planks',
F: '#forge:tools/hammers'
@ -97,7 +97,7 @@ function registerVintageImprovementsRecipes(event) {
], {
A: '#forge:frames/black_bronze',
B: '#tfg:hardwood',
C: '#forge:double_ingots/iron',
C: '#forge:double_iron_ingots',
D: 'greate:andesite_alloy_cogwheel',
E: '#minecraft:planks',
F: '#forge:tools/hammers'
@ -110,7 +110,7 @@ function registerVintageImprovementsRecipes(event) {
], {
A: '#forge:frames/bismuth_bronze',
B: '#tfg:hardwood',
C: '#forge:double_ingots/iron',
C: '#forge:double_iron_ingots',
D: 'greate:andesite_alloy_cogwheel',
E: '#minecraft:planks',
F: '#forge:tools/hammers'
@ -298,7 +298,7 @@ function registerVintageImprovementsRecipes(event) {
event.custom({
type: 'vintageimprovements:coiling',
ingredients: [ChemicalHelper.get(TagPrefix.rod, material, 1)],
results: [ChemicalHelper.get(TagPrefix.springSmall, material, 1)],
results: [ChemicalHelper.get(TagPrefix.springSmall, material, 2)],
processingTime: (material.getMass() / 2) * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER
}).id(`tfg:vi/coiling/${material.getName()}_small_spring`)
}

View file

@ -30,9 +30,6 @@ global.FIRMALIFE_DISABLED_ITEMS = [
'firmalife:copper_pipe',
'firmalife:oxidized_copper_pipe',
'firmalife:irrigation_tank',
'firmalife:iron_greenhouse_port',
'firmalife:copper_greenhouse_port',
'firmalife:treated_wood_greenhouse_port'
];
global.FIRMALIFE_HIDED_ITEMS = [
@ -45,15 +42,6 @@ global.FIRMALIFE_HIDED_ITEMS = [
'firmalife:weathered_copper_greenhouse_door',
'firmalife:weathered_copper_greenhouse_port',
'firmalife:stainless_steel_greenhouse_wall',
'firmalife:stainless_steel_greenhouse_panel_wall',
'firmalife:stainless_steel_greenhouse_panel_roof',
'firmalife:stainless_steel_greenhouse_roof',
'firmalife:stainless_steel_greenhouse_roof_top',
'firmalife:stainless_steel_greenhouse_trapdoor',
'firmalife:stainless_steel_greenhouse_door',
'firmalife:stainless_steel_greenhouse_port',
'firmalife:rusted_iron_greenhouse_wall',
'firmalife:rusted_iron_greenhouse_panel_wall',
'firmalife:rusted_iron_greenhouse_panel_roof',

View file

@ -2,5 +2,6 @@
global.FRAMEDBLOCKS_DISABLED_ITEMS = [
'framedblocks:framed_soul_torch',
'framedblocks:framed_torch'
'framedblocks:framed_torch',
'framedblocks:framed_obsidian_pressure_plate'
];

View file

@ -25,9 +25,6 @@ global.GREATE_DISABLED_ITEMS = [
'greate:andesite_alloy_encased_fan',
'greate:andesite_alloy_mechanical_mixer',
'greate:andesite_alloy_mechanical_pump',
'greate:aluminium_millstone',
'greate:stainless_steel_millstone',
'greate:titanium_millstone',
// Disabled because they don't respect the cleanroom requirement of some recipes
'greate:stainless_steel_mechanical_saw',

View file

@ -86,6 +86,8 @@ global.GTCEU_DISABLED_ITEMS = [
'gtceu:zpm_solar_panel',
'gtceu:uv_solar_panel',
'gtceu:compressed_clay',
// Sculk
'gtceu:tiny_echo_shard_dust',
'gtceu:small_echo_shard_dust',

View file

@ -811,7 +811,7 @@ global.TFC_FURNACE_MOLD_RECIPE_COMPONENTS = [
];
global.TFC_CLAY_TO_UNFIRED_MOLD_RECIPE_COMPONENTS = [
{ input: '5x minecraft:clay_ball', output: 'tfc:ceramic/unfired_ingot_mold', name: 'ingot_mold' },
{ input: '5x minecraft:clay_ball', output: '2x tfc:ceramic/unfired_ingot_mold', name: 'ingot_mold' },
{ input: '5x minecraft:clay_ball', output: 'tfc:ceramic/unfired_pickaxe_head_mold', name: 'pickaxe_head_mold' },
{ input: '5x minecraft:clay_ball', output: 'tfc:ceramic/unfired_propick_head_mold', name: 'propick_head_mold' },
{ input: '5x minecraft:clay_ball', output: 'tfc:ceramic/unfired_axe_head_mold', name: 'axe_head_mold' },
@ -826,16 +826,18 @@ global.TFC_CLAY_TO_UNFIRED_MOLD_RECIPE_COMPONENTS = [
{ input: '5x minecraft:clay_ball', output: 'tfc:ceramic/unfired_knife_blade_mold', name: 'knife_blade_mold' },
{ input: '5x minecraft:clay_ball', output: 'tfc:ceramic/unfired_scythe_blade_mold', name: 'scythe_blade_mold' },
{ input: '5x minecraft:clay_ball', output: 'tfc:ceramic/unfired_bell_mold', name: 'bell_mold' },
{ input: '5x minecraft:clay_ball', output: 'tfc:ceramic/unfired_brick', name: 'brick' },
{ input: '5x minecraft:clay_ball', output: 'tfc:ceramic/unfired_flower_pot', name: 'flower_pot' },
{ input: '5x minecraft:clay_ball', output: '3x tfc:ceramic/unfired_brick', name: 'brick' },
{ input: '5x minecraft:clay_ball', output: '2x tfc:ceramic/unfired_flower_pot', name: 'flower_pot' },
{ input: '5x minecraft:clay_ball', output: 'tfc:ceramic/unfired_pan', name: 'pan' },
{ input: '5x minecraft:clay_ball', output: 'tfc:ceramic/unfired_blowpipe', name: 'ceramic_blowpipe' },
{ input: '5x minecraft:clay_ball', output: 'tfc:ceramic/unfired_bowl', name: 'bowl' },
{ input: '5x minecraft:clay_ball', output: '4x tfc:ceramic/unfired_bowl', name: 'bowl' },
{ input: '5x minecraft:clay_ball', output: 'tfc:ceramic/unfired_jug', name: 'jug' },
{ input: '5x minecraft:clay_ball', output: 'tfc:ceramic/unfired_pot', name: 'pot' },
{ input: '5x minecraft:clay_ball', output: 'tfc:ceramic/unfired_spindle_head', name: 'spindle_head' },
{ input: '5x minecraft:clay_ball', output: 'tfc:ceramic/unfired_vessel', name: 'vessel' },
{ input: '5x minecraft:clay_ball', output: 'tfc:ceramic/unfired_large_vessel', name: 'large_vessel' },
{ input: '5x minecraft:clay_ball', output: 'tfcchannelcasting:unfired_heart_mold', name: 'heart_mold' },
{ input: '5x minecraft:clay_ball', output: '2x rnr:unfired_roof_tile', name: 'roof_tile' },
{ input: '5x tfc:fire_clay', output: 'tfc:ceramic/unfired_fire_ingot_mold', name: 'fire_ingot_mold' },
{ input: '5x tfc:fire_clay', output: '3x tfc:ceramic/unfired_fire_brick', name: 'fire_brick' },
{ input: '5x tfc:fire_clay', output: 'tfc:ceramic/unfired_crucible', name: 'crucible' },

View file

@ -161,6 +161,9 @@ const registerTFGItems = (event) => {
event.create('tfg:fletching')
.translationKey('item.tfg.fletching')
event.create('tfg:armor_stand_arms')
.translationKey('item.tfg.armor_stand_arms')
event.create('tfg:fishing_net/wood')
.translationKey('item.tfg.fishing_net.wood')
.parentModel('tfg:item/fishing_nets/wood_fishing_net')

2
mods

@ -1 +1 @@
Subproject commit cd3a3c4d3df0e8a77bae8586d8ff9483331233d8
Subproject commit a9ec3802e93f8255dcacd4ea4e71597100bdc882

View file

@ -11,7 +11,8 @@
"pakku_id": "vKxuOwsLOm1Eaesi",
"pakku_links": [
"jkz20XWDUGHwlZxp",
"hEH6ly65CC6Sw1pf"
"hEH6ly65CC6Sw1pf",
"FnKweRrkUQZW32bO"
],
"type": "MOD",
"side": "BOTH",
@ -82,7 +83,8 @@
"pakku_links": [
"jkz20XWDUGHwlZxp",
"HlauzHpOCumhX2AQ",
"hEH6ly65CC6Sw1pf"
"hEH6ly65CC6Sw1pf",
"FnKweRrkUQZW32bO"
],
"type": "MOD",
"slug": {
@ -125,7 +127,8 @@
{
"pakku_id": "G1s0TjQfR5uVCf2Y",
"pakku_links": [
"hEH6ly65CC6Sw1pf"
"hEH6ly65CC6Sw1pf",
"FnKweRrkUQZW32bO"
],
"type": "MOD",
"slug": {
@ -482,7 +485,7 @@
"files": [
{
"type": "modrinth",
"file_name": "AmbientSounds_FORGE_v6.1.9_mc1.20.1.jar",
"file_name": "AmbientSounds_FORGE_v6.1.10_mc1.20.1.jar",
"mc_versions": [
"1.20.1"
],
@ -491,22 +494,22 @@
"neoforge"
],
"release_type": "release",
"url": "https://cdn.modrinth.com/data/fM515JnW/versions/Azcdw9vT/AmbientSounds_FORGE_v6.1.9_mc1.20.1.jar",
"id": "Azcdw9vT",
"url": "https://cdn.modrinth.com/data/fM515JnW/versions/xGUL054M/AmbientSounds_FORGE_v6.1.10_mc1.20.1.jar",
"id": "xGUL054M",
"parent_id": "fM515JnW",
"hashes": {
"sha512": "7f50aca7fd415b8ccbab47d28b5f7fecc5bc83f7c6964d6b40222f02119f453e515e00659b11f3c4797e403d39e11796b467d7f06a0ec30c257a6a1948767eec",
"sha1": "934e8939b27625532cce257cd4fc57765eaa2de9"
"sha512": "c6aad2f1b4dc997794ee28c97e7f30a77a13043566266098f5f095cdde410aca0ce2ac6ca65dbfe34ca042a8735160a90391864d44b9158ba2bfa711c593623d",
"sha1": "e7ef689927dc79299548b4350783e40aa038c7f7"
},
"required_dependencies": [
"OsZiaDHq"
],
"size": 83885807,
"date_published": "2025-04-22T12:25:27.402652Z"
"size": 83885821,
"date_published": "2025-05-13T13:50:30.594172Z"
},
{
"type": "curseforge",
"file_name": "AmbientSounds_FORGE_v6.1.9_mc1.20.1.jar",
"file_name": "AmbientSounds_FORGE_v6.1.10_mc1.20.1.jar",
"mc_versions": [
"1.20.1"
],
@ -515,91 +518,94 @@
"forge"
],
"release_type": "release",
"url": "https://edge.forgecdn.net/files/6451/670/AmbientSounds_FORGE_v6.1.9_mc1.20.1.jar",
"id": "6451670",
"url": "https://edge.forgecdn.net/files/6525/810/AmbientSounds_FORGE_v6.1.10_mc1.20.1.jar",
"id": "6525810",
"parent_id": "254284",
"hashes": {
"sha1": "934e8939b27625532cce257cd4fc57765eaa2de9",
"md5": "dd203c11ba29f4a6056efc726f3ba5a7"
"sha1": "e7ef689927dc79299548b4350783e40aa038c7f7",
"md5": "90581a906aa769f56e6dd26545f38265"
},
"required_dependencies": [
"257814"
],
"size": 83885807,
"date_published": "2025-04-22T12:24:57.987Z"
"size": 83885821,
"date_published": "2025-05-13T13:49:59.073Z"
}
]
},
{
"pakku_id": "hEH6ly65CC6Sw1pf",
"pakku_id": "FnKweRrkUQZW32bO",
"pakku_links": [
"xIYXAtMQYLSiAsji"
"y3U56Xi2gXs1JMV8"
],
"type": "MOD",
"side": "BOTH",
"slug": {
"curseforge": "applied-energistics-2",
"modrinth": "ae2"
"modrinth": "ae2",
"curseforge": "applied-energistics-2"
},
"name": {
"curseforge": "Applied Energistics 2",
"modrinth": "Applied Energistics 2"
"modrinth": "Applied Energistics 2",
"curseforge": "Applied Energistics 2"
},
"id": {
"curseforge": "223794",
"modrinth": "XxWD5pD3"
"modrinth": "XxWD5pD3",
"curseforge": "223794"
},
"files": [
{
"type": "modrinth",
"file_name": "appliedenergistics2-forge-15.3.4.jar",
"file_name": "appliedenergistics2-forge-15.4.2.jar",
"mc_versions": [
"1.20.1"
],
"loaders": [
"forge",
"neoforge"
],
"release_type": "release",
"url": "https://cdn.modrinth.com/data/XxWD5pD3/versions/Ap6Grcvz/appliedenergistics2-forge-15.3.4.jar",
"id": "Ap6Grcvz",
"parent_id": "XxWD5pD3",
"hashes": {
"sha512": "b24496c052d8c56673e7b8fd68fb171c851a442928e5a88d0121b5e6e388f748c0588b5965bda1b12d65944b4288bc60607bb7c5017a4fdd6c12c86f33a3d9ea",
"sha1": "fa899580dddd44500586a43874c504c7e4620d7a"
},
"required_dependencies": [],
"size": 9746206,
"date_published": "2025-03-27T20:34:07.359242Z"
},
{
"type": "curseforge",
"file_name": "appliedenergistics2-forge-15.3.4.jar",
"mc_versions": [
"1.20.1"
],
"loaders": [
"neoforge",
"forge"
],
"release_type": "release",
"url": "https://edge.forgecdn.net/files/6357/138/appliedenergistics2-forge-15.3.4.jar",
"id": "6357138",
"url": "https://cdn.modrinth.com/data/XxWD5pD3/versions/eqFFaFdj/appliedenergistics2-forge-15.4.2.jar",
"id": "eqFFaFdj",
"parent_id": "XxWD5pD3",
"hashes": {
"sha512": "1396a6fe156fddf4488ad80411fdc65e6cbd4b434e79dd4f2897912762c8d08190b7c1bd44d8d19869673e1f450d672b53d06f4305f3e693d9066a63b9900d5b",
"sha1": "829ccaed2a1d1d25e9f5e459ccc481a3c061f8c1"
},
"required_dependencies": [
"Ck4E7v7R"
],
"size": 8410614,
"date_published": "2025-05-06T08:16:20.704317Z"
},
{
"type": "curseforge",
"file_name": "appliedenergistics2-forge-15.4.2.jar",
"mc_versions": [
"1.20.1"
],
"loaders": [
"forge"
],
"release_type": "release",
"url": "https://edge.forgecdn.net/files/6501/484/appliedenergistics2-forge-15.4.2.jar",
"id": "6501484",
"parent_id": "223794",
"hashes": {
"sha1": "fa899580dddd44500586a43874c504c7e4620d7a",
"md5": "7df1bee0c97c2d819ef6c745f6213fa8"
"sha1": "829ccaed2a1d1d25e9f5e459ccc481a3c061f8c1",
"md5": "9fe7f15dfec2b9a52975ed6b9140cef0"
},
"required_dependencies": [],
"size": 9746206,
"date_published": "2025-03-27T20:34:05.820Z"
"required_dependencies": [
"1173950"
],
"size": 8410614,
"date_published": "2025-05-06T08:16:21.133Z"
}
]
},
{
"pakku_id": "5wfRJRuF34kJZFbp",
"pakku_links": [
"hEH6ly65CC6Sw1pf"
"hEH6ly65CC6Sw1pf",
"FnKweRrkUQZW32bO"
],
"type": "MOD",
"side": "BOTH",
@ -690,7 +696,7 @@
"files": [
{
"type": "modrinth",
"file_name": "afc-1.0.15-1.20.1.jar",
"file_name": "afc-1.0.16-1.20.1.jar",
"mc_versions": [
"1.20.1"
],
@ -699,23 +705,22 @@
"neoforge"
],
"release_type": "release",
"url": "https://cdn.modrinth.com/data/9q4wtMjp/versions/WTlvl3a2/afc-1.0.15-1.20.1.jar",
"id": "WTlvl3a2",
"url": "https://cdn.modrinth.com/data/9q4wtMjp/versions/rJShZA3K/afc-1.0.16-1.20.1.jar",
"id": "rJShZA3K",
"parent_id": "9q4wtMjp",
"hashes": {
"sha512": "ad9f12fea6bc3a50e24e4b6e350a19a7cb73543372c8e918f2dc91c30c282c9c73da7018db3cc4acf52776c415446f4d2a4fc461ce24d187d15af5af9ccaa69f",
"sha1": "bc0bd1fe835939127141eb905a136949ccb20dbd"
"sha512": "522793d84e5b7e7062a6ff5c54098735c1b9a2f4027fee54a25d95649f1d4ee72648bc3260b743c8d11b6763e2725066e5ebfbedb557ecd894a98439e9158fe2",
"sha1": "ccd779855cb17ddc2ca922d23f7734f4818f5791"
},
"required_dependencies": [
"nU0bVIaL",
"JaCEZUhg"
],
"size": 5101948,
"date_published": "2025-05-07T01:44:15.051705Z"
"size": 5102110,
"date_published": "2025-05-09T22:49:29.184484Z"
},
{
"type": "curseforge",
"file_name": "afc-1.0.15-1.20.1.jar",
"file_name": "afc-1.0.16-1.20.1.jar",
"mc_versions": [
"1.20.1"
],
@ -724,18 +729,18 @@
"forge"
],
"release_type": "release",
"url": "https://edge.forgecdn.net/files/6503/970/afc-1.0.15-1.20.1.jar",
"id": "6503970",
"url": "https://edge.forgecdn.net/files/6514/143/afc-1.0.16-1.20.1.jar",
"id": "6514143",
"parent_id": "877545",
"hashes": {
"sha1": "bc0bd1fe835939127141eb905a136949ccb20dbd",
"md5": "3c7ce7adbe8ee17515fddaf80a356655"
"sha1": "ccd779855cb17ddc2ca922d23f7734f4818f5791",
"md5": "4de5658231a8e6b666b736a8c826d441"
},
"required_dependencies": [
"302973"
],
"size": 5101948,
"date_published": "2025-05-07T01:45:06.783Z"
"size": 5102110,
"date_published": "2025-05-09T22:48:10.113Z"
}
]
},
@ -1148,7 +1153,7 @@
"files": [
{
"type": "modrinth",
"file_name": "balm-forge-1.20.1-7.3.27-all.jar",
"file_name": "balm-forge-1.20.1-7.3.29-all.jar",
"mc_versions": [
"1.20",
"1.20.1"
@ -1157,20 +1162,20 @@
"forge"
],
"release_type": "release",
"url": "https://cdn.modrinth.com/data/MBAkmtvl/versions/GmMJVPH4/balm-forge-1.20.1-7.3.27-all.jar",
"id": "GmMJVPH4",
"url": "https://cdn.modrinth.com/data/MBAkmtvl/versions/VSVCZFqo/balm-forge-1.20.1-7.3.29-all.jar",
"id": "VSVCZFqo",
"parent_id": "MBAkmtvl",
"hashes": {
"sha512": "a740f45553c945e0cc255390c5f84db9de2efc0f801c5c3a8580662fd5521b5ee9633c07ae8453f3a54d785f49aef7eed97e279ccd714137c4ab3d560c3600d3",
"sha1": "ca67b7528946937c609d8d3bfb9ea69a56f4b4b4"
"sha512": "1d937fd27a1fd9953875112f1a8493a0a74dd94c9acb157d4a3ecd9caf3148282c48ae2aee6e845e484f203bb54bd190c1dae15ef627888e82573c7e18fd06a6",
"sha1": "949cc46c6a513221bdf3917e5faad5be490b3248"
},
"required_dependencies": [],
"size": 475315,
"date_published": "2025-03-29T09:50:05.774689Z"
"size": 594963,
"date_published": "2025-05-11T20:09:47.370256Z"
},
{
"type": "curseforge",
"file_name": "balm-forge-1.20.1-7.3.27-all.jar",
"file_name": "balm-forge-1.20.1-7.3.29-all.jar",
"mc_versions": [
"1.20.1",
"1.20"
@ -1179,16 +1184,16 @@
"forge"
],
"release_type": "release",
"url": "https://edge.forgecdn.net/files/6362/504/balm-forge-1.20.1-7.3.27-all.jar",
"id": "6362504",
"url": "https://edge.forgecdn.net/files/6520/552/balm-forge-1.20.1-7.3.29-all.jar",
"id": "6520552",
"parent_id": "531761",
"hashes": {
"sha1": "8c0364c8e7fe47f86505d2a4c53c6022ebd7b9d2",
"md5": "f602ed9d2c722942623165fec6eb538f"
"sha1": "63c72ff9c85fa70fe340c0e9fc9a58d6221d481a",
"md5": "c0a9b19be467921a3192878ab7271289"
},
"required_dependencies": [],
"size": 475315,
"date_published": "2025-03-29T09:50:06.680Z"
"size": 594963,
"date_published": "2025-05-11T20:10:08.660Z"
}
]
},
@ -1402,7 +1407,8 @@
"pakku_links": [
"IqPkca9cWhZ2JxDJ",
"YrMPVh28ndtUkLsq",
"hEH6ly65CC6Sw1pf"
"hEH6ly65CC6Sw1pf",
"FnKweRrkUQZW32bO"
],
"type": "MOD",
"side": "BOTH",
@ -3949,7 +3955,7 @@
{
"pakku_id": "Vl9JDBWAzQ5W19ta",
"type": "MOD",
"side": "CLIENT",
"side": "BOTH",
"slug": {
"curseforge": "detected-setblock-be-gone",
"modrinth": "dsbg"
@ -4752,7 +4758,8 @@
"pakku_links": [
"jkz20XWDUGHwlZxp",
"HlauzHpOCumhX2AQ",
"hEH6ly65CC6Sw1pf"
"hEH6ly65CC6Sw1pf",
"FnKweRrkUQZW32bO"
],
"type": "MOD",
"slug": {
@ -5204,7 +5211,7 @@
"files": [
{
"type": "modrinth",
"file_name": "fancymenu_forge_3.5.0_MC_1.20.1.jar",
"file_name": "fancymenu_forge_3.5.2_MC_1.20.1.jar",
"mc_versions": [
"1.20.1"
],
@ -5212,23 +5219,23 @@
"forge"
],
"release_type": "release",
"url": "https://cdn.modrinth.com/data/Wq5SjeWM/versions/FRgAQGvw/fancymenu_forge_3.5.0_MC_1.20.1.jar",
"id": "FRgAQGvw",
"url": "https://cdn.modrinth.com/data/Wq5SjeWM/versions/uBpY4zmy/fancymenu_forge_3.5.2_MC_1.20.1.jar",
"id": "uBpY4zmy",
"parent_id": "Wq5SjeWM",
"hashes": {
"sha512": "09470968e5b2fd6c4570f1868febc5dd0d2164d7fc844e948253f0fc97cb781ec0b6b4b2385bac84db83920a8a5b3a72dc62d69d93dc12327b6cad67d636c991",
"sha1": "3217f4a8fdaa919fc11d03f07306edc868efa0d6"
"sha512": "02525bb00136737201b652f02beeee2f28c0c44b97c06deb43652a32f974152069a6171a36471e0b4e639641b767ce83c43d121e68981d9c573771aa89f68bcf",
"sha1": "35caa7f22f09dd7004e68c7387205a1bb1707b4b"
},
"required_dependencies": [
"CVT4pFB2",
"J81TRJWm"
"J81TRJWm",
"CVT4pFB2"
],
"size": 3280422,
"date_published": "2025-04-10T23:23:20.411380Z"
"size": 3280719,
"date_published": "2025-05-12T22:40:26.750649Z"
},
{
"type": "curseforge",
"file_name": "fancymenu_forge_3.5.0_MC_1.20.1.jar",
"file_name": "fancymenu_forge_3.5.2_MC_1.20.1.jar",
"mc_versions": [
"1.20.1"
],
@ -5236,19 +5243,19 @@
"forge"
],
"release_type": "release",
"url": "https://edge.forgecdn.net/files/6408/859/fancymenu_forge_3.5.0_MC_1.20.1.jar",
"id": "6408859",
"url": "https://edge.forgecdn.net/files/6523/977/fancymenu_forge_3.5.2_MC_1.20.1.jar",
"id": "6523977",
"parent_id": "367706",
"hashes": {
"sha1": "3217f4a8fdaa919fc11d03f07306edc868efa0d6",
"md5": "4da459780fb51757bd0e467460c01e63"
"sha1": "35caa7f22f09dd7004e68c7387205a1bb1707b4b",
"md5": "c67bc748e4099f0a9ac24ef90241a02d"
},
"required_dependencies": [
"938643",
"410295"
],
"size": 3280422,
"date_published": "2025-04-10T23:23:12.083Z"
"size": 3280719,
"date_published": "2025-05-12T22:40:16.317Z"
}
]
},
@ -5324,7 +5331,7 @@
{
"pakku_id": "M1zzOhfFKbBUyvAt",
"type": "MOD",
"side": "CLIENT",
"side": "BOTH",
"slug": {
"curseforge": "fastboot",
"modrinth": "fastboot"
@ -6436,6 +6443,67 @@
}
]
},
{
"pakku_id": "y3U56Xi2gXs1JMV8",
"type": "MOD",
"side": "BOTH",
"slug": {
"curseforge": "guideme",
"modrinth": "guideme"
},
"name": {
"curseforge": "GuideME",
"modrinth": "GuideME"
},
"id": {
"curseforge": "1173950",
"modrinth": "Ck4E7v7R"
},
"files": [
{
"type": "curseforge",
"file_name": "guideme-20.1.7.jar",
"mc_versions": [
"1.20.1"
],
"loaders": [
"forge"
],
"release_type": "release",
"url": "https://edge.forgecdn.net/files/6489/464/guideme-20.1.7.jar",
"id": "6489464",
"parent_id": "1173950",
"hashes": {
"sha1": "fc039093c479b3632b1ab60ea503e79b76b686f9",
"md5": "01ca90ca84ab2f886e4c5a2101934d00"
},
"required_dependencies": [],
"size": 9401162,
"date_published": "2025-05-03T00:27:09.520Z"
},
{
"type": "modrinth",
"file_name": "guideme-20.1.7.jar",
"mc_versions": [
"1.20.1"
],
"loaders": [
"forge"
],
"release_type": "release",
"url": "https://cdn.modrinth.com/data/Ck4E7v7R/versions/UD2nQxJx/guideme-20.1.7.jar",
"id": "UD2nQxJx",
"parent_id": "Ck4E7v7R",
"hashes": {
"sha512": "8e12ede30db086a3d30236783848f53fb984d413727cdb364bac487be8818d5c4a3696d4446db5d1dd83be62f347ceac6bcd7af9ccb27e09a160ea03c15e9dbb",
"sha1": "fc039093c479b3632b1ab60ea503e79b76b686f9"
},
"required_dependencies": [],
"size": 9401162,
"date_published": "2025-05-03T00:27:15.237566Z"
}
]
},
{
"pakku_id": "Uyfzeev3SUQZkciO",
"type": "MOD",
@ -6865,7 +6933,7 @@
{
"pakku_id": "KrMagbELcCin0ry1",
"type": "MOD",
"side": "CLIENT",
"side": "BOTH",
"slug": {
"curseforge": "inventory-tweaks-refoxed",
"modrinth": "inventory-tweaks-refoxed"
@ -7186,7 +7254,7 @@
"neoforge",
"forge"
],
"release_type": "beta",
"release_type": "release",
"url": "https://edge.forgecdn.net/files/6271/651/Jade-1.20.1-Forge-11.13.1.jar",
"id": "6271651",
"parent_id": "324717",
@ -8562,7 +8630,8 @@
"pakku_id": "pw7ThBG0IEqFqKZQ",
"pakku_links": [
"jkz20XWDUGHwlZxp",
"hEH6ly65CC6Sw1pf"
"hEH6ly65CC6Sw1pf",
"FnKweRrkUQZW32bO"
],
"type": "MOD",
"side": "BOTH",
@ -8634,7 +8703,8 @@
"pakku_links": [
"jkz20XWDUGHwlZxp",
"ljByFnUSb1ka9OoU",
"hEH6ly65CC6Sw1pf"
"hEH6ly65CC6Sw1pf",
"FnKweRrkUQZW32bO"
],
"type": "MOD",
"side": "BOTH",
@ -10118,7 +10188,7 @@
"files": [
{
"type": "modrinth",
"file_name": "particular-1.20.1-Forge-1.2.0.jar",
"file_name": "particular-1.20.1-Forge-1.2.1.jar",
"mc_versions": [
"1.20.1"
],
@ -10126,16 +10196,16 @@
"forge"
],
"release_type": "release",
"url": "https://cdn.modrinth.com/data/pYFUU6cq/versions/ZP94L2Nm/particular-1.20.1-Forge-1.2.0.jar",
"id": "ZP94L2Nm",
"url": "https://cdn.modrinth.com/data/pYFUU6cq/versions/zqsbIU9v/particular-1.20.1-Forge-1.2.1.jar",
"id": "zqsbIU9v",
"parent_id": "pYFUU6cq",
"hashes": {
"sha512": "bf3c9a8e615216177511d2e656f1260c881db3dc2cc3f0f14ac993747e5d90e17092e74ad24a90176291510c6af84e01fc44763c5b30719428954b40b2d7d121",
"sha1": "fa2140c8231137222aad8c69e5276f65ee7b81f2"
"sha512": "404fccd4b2e8a01a60bf7f553dfa4da167f787a35c4ec8d7c7adc89d07ed1413bc2e2bf0856c30b931b808e8f14a64767ea1b49d4c5b2e779feb0864412340b4",
"sha1": "a392ef5dd4b505c76e7de0d4516117a18639d4df"
},
"required_dependencies": [],
"size": 413624,
"date_published": "2025-04-04T18:27:56.564062Z"
"size": 417264,
"date_published": "2025-05-02T12:56:15.035263Z"
},
{
"type": "curseforge",
@ -10228,7 +10298,7 @@
"IxsPMqjGrMxcFzus"
],
"type": "MOD",
"side": "CLIENT",
"side": "BOTH",
"slug": {
"curseforge": "pick-up-notifier",
"modrinth": "pick-up-notifier"
@ -11588,69 +11658,6 @@
}
]
},
{
"pakku_id": "cKIMFUo1WXYa0CYj",
"type": "MOD",
"side": "BOTH",
"slug": {
"curseforge": "starlight-forge",
"modrinth": "starlight-forge"
},
"name": {
"curseforge": "Starlight (Forge)",
"modrinth": "Starlight (Forge)"
},
"id": {
"curseforge": "526854",
"modrinth": "iRfIGC1s"
},
"files": [
{
"type": "modrinth",
"file_name": "starlight-1.1.2+forge.1cda73c.jar",
"mc_versions": [
"1.20",
"1.20.1"
],
"loaders": [
"forge"
],
"release_type": "release",
"url": "https://cdn.modrinth.com/data/iRfIGC1s/versions/cNa0vkNj/starlight-1.1.2+forge.1cda73c.jar",
"id": "cNa0vkNj",
"parent_id": "iRfIGC1s",
"hashes": {
"sha512": "cc89c6b2dd0db709586028c7732a57a3e6184f19cc2b98b25964c720c3ab434031e62de23e0dab022575d637b5e4a34b5813164d32ec356d56588da400e7d026",
"sha1": "a915880c7834a0b0f9f300f0e3053deaa9a3205a"
},
"required_dependencies": [],
"size": 110583,
"date_published": "2023-07-08T06:10:54.244596Z"
},
{
"type": "curseforge",
"file_name": "starlight-1.1.2+forge.1cda73c.jar",
"mc_versions": [
"1.20.1",
"1.20"
],
"loaders": [
"forge"
],
"release_type": "release",
"url": "https://edge.forgecdn.net/files/4631/193/starlight-1.1.2+forge.1cda73c.jar",
"id": "4631193",
"parent_id": "526854",
"hashes": {
"sha1": "a915880c7834a0b0f9f300f0e3053deaa9a3205a",
"md5": "da99a054428fb62342b6767b993c4c8d"
},
"required_dependencies": [],
"size": 110583,
"date_published": "2023-07-08T06:07:12.477Z"
}
]
},
{
"pakku_id": "uJmbR9oVezsu0reN",
"type": "MOD",
@ -12245,6 +12252,48 @@
}
]
},
{
"pakku_id": "mZwfKcex878w6k9d",
"pakku_links": [
"F6H99cZ4H6jZRpEK"
],
"type": "MOD",
"slug": {
"curseforge": "tfc-punishment-for-death"
},
"name": {
"curseforge": "TFC Punishment for Death"
},
"id": {
"curseforge": "1258250"
},
"files": [
{
"type": "curseforge",
"file_name": "TFC_punishment_for_death-1.20.1-1.0.0.14.jar",
"mc_versions": [
"1.20.1"
],
"loaders": [
"neoforge",
"forge"
],
"release_type": "beta",
"url": "https://edge.forgecdn.net/files/6520/14/TFC_punishment_for_death-1.20.1-1.0.0.14.jar",
"id": "6520014",
"parent_id": "1258250",
"hashes": {
"sha1": "6f9d58aba27208b4aeb33bc1d1b6f801f9dc6369",
"md5": "d99aad026d88904741f69582ada22f1e"
},
"required_dependencies": [
"302973"
],
"size": 36474,
"date_published": "2025-05-11T16:48:31.577Z"
}
]
},
{
"pakku_id": "LdCEmxAyaiJBsONh",
"pakku_links": [
@ -12824,47 +12873,53 @@
"files": [
{
"type": "modrinth",
"file_name": "TerraFirmaGreg-Core-Modern-0.6.3.jar",
"file_name": "TerraFirmaGreg-Core-Modern-0.6.4.jar",
"mc_versions": [
"1.20.1"
],
"loaders": [
"forge"
"forge",
"neoforge"
],
"release_type": "release",
"url": "https://cdn.modrinth.com/data/lNttW2Xl/versions/Hb2YsDpn/TerraFirmaGreg-Core-Modern-0.6.3.jar",
"id": "Hb2YsDpn",
"url": "https://cdn.modrinth.com/data/lNttW2Xl/versions/YsoH1BE8/TerraFirmaGreg-Core-Modern-0.6.4.jar",
"id": "YsoH1BE8",
"parent_id": "lNttW2Xl",
"hashes": {
"sha512": "d142976b5caa236ed24b7653da4c29adebdba63cdb9e8c2c5a1f4111f51680f67d9da14e7c1fb7523cebf7ca3fd27eb91544e2f9d8c81296f2465ecb448bed26",
"sha1": "7f1b225c8f1669dcbf37198eb2ebc2e36e739ced"
"sha512": "4e4fa6c512fd13492228a08c43d886a7e5b550fcb057722987bac9d59f58bfcf2358c54f83979fc620b493fa52f9497d8a85b535ad4529982059ff0eb03482f5",
"sha1": "de0e6e84858668e275ae17bf0dcfcb3e632dcfbd"
},
"required_dependencies": [],
"size": 239158,
"date_published": "2025-05-04T11:12:28.957711Z"
"required_dependencies": [
"JaCEZUhg",
"7tG215v7"
],
"size": 267458,
"date_published": "2025-05-15T21:48:58.335833Z"
},
{
"type": "curseforge",
"file_name": "TerraFirmaGreg-Core-Modern-0.6.3.jar",
"file_name": "TerraFirmaGreg-Core-Modern-0.6.4.jar",
"mc_versions": [
"1.20.1"
],
"loaders": [
"neoforge",
"forge"
],
"release_type": "release",
"url": "https://edge.forgecdn.net/files/6493/960/TerraFirmaGreg-Core-Modern-0.6.3.jar",
"id": "6493960",
"url": "https://edge.forgecdn.net/files/6533/713/TerraFirmaGreg-Core-Modern-0.6.4.jar",
"id": "6533713",
"parent_id": "513402",
"hashes": {
"sha1": "7f1b225c8f1669dcbf37198eb2ebc2e36e739ced",
"md5": "8afa25b0ad4e8e5efcb463d0a1e1db5f"
"sha1": "de0e6e84858668e275ae17bf0dcfcb3e632dcfbd",
"md5": "68cb34d847e4bd85b4588d48f6e09235"
},
"required_dependencies": [
"890405",
"302973"
],
"size": 239158,
"date_published": "2025-05-04T06:31:31.180Z"
"size": 267458,
"date_published": "2025-05-15T21:48:56.720Z"
}
]
},
@ -13198,7 +13253,7 @@
{
"pakku_id": "iEsJ0aHodKhDTwgV",
"type": "MOD",
"side": "CLIENT",
"side": "BOTH",
"slug": {
"curseforge": "xaeros-minimap",
"modrinth": "xaeros-minimap"

View file

@ -1,6 +1,6 @@
{
"name": "TerraFirmaGreg-Modern",
"version": "0.9.5",
"version": "0.9.6",
"description": "An innovative modpack that contains GregTech and TerraFirmaCraft on 1.20.x.",
"author": "Exception, Xikaro",
"overrides": [
@ -209,17 +209,29 @@
"geckolib": {
"side": "BOTH"
},
"detected-setblock-be-gone": {
"side": "CLIENT"
},
"tfcgenviewer": {
"side": "BOTH"
},
"tfc-hot-or-not": {
"side": "BOTH"
},
"xaeros-minimap": {
"side": "BOTH"
},
"particular-reforged": {
"side": "BOTH"
},
"pick-up-notifier": {
"side": "BOTH"
},
"inventory-tweaks-refoxed": {
"side": "BOTH"
},
"fastboot": {
"side": "BOTH"
},
"detected-setblock-be-gone": {
"side": "BOTH"
}
}
}