Revert "merge"
|
|
@ -3,13 +3,7 @@
|
|||
## [Unreleased]
|
||||
### New features
|
||||
### Bug fixes
|
||||
- Fixed double ingots not having a temperature (#1165) @Pyritie
|
||||
- Removed a few recipes that had unobtainable create-related materials @Pyritie
|
||||
- Fixed the color of placed zinc ingots and plated blocks to match the material @Pyritie
|
||||
### Changes
|
||||
- Changed pineapple yarn recipe from assembler to wiremill & coiling machine, like the other strings (#1162) @Pyritie
|
||||
- Lowered durability of wooden tongs @Pyritie
|
||||
- Streamlined the Metallurgy Age quest chapter a bit @Pyritie
|
||||
|
||||
## [0.9.11] - 13.06.2025
|
||||
### New features
|
||||
|
|
|
|||
|
|
@ -1401,7 +1401,7 @@
|
|||
subtitle: "{quests.low_voltage.lv_greenhouse.subtitle}"
|
||||
tasks: [{
|
||||
id: "3EB01235ED295080"
|
||||
item: "tfg:electric_greenhouse"
|
||||
item: "gtceu:greenhouse"
|
||||
type: "item"
|
||||
}]
|
||||
title: "{quests.low_voltage.lv_greenhouse.title}"
|
||||
|
|
|
|||
|
|
@ -48,16 +48,6 @@
|
|||
]
|
||||
dependency_requirement: "one_completed"
|
||||
description: ["{quests.ore_proc.crushed_ores.desc}"]
|
||||
icon: {
|
||||
Count: 1
|
||||
ForgeCaps: {
|
||||
"tfc:item_heat": {
|
||||
heat: 0.0f
|
||||
ticks: 0L
|
||||
}
|
||||
}
|
||||
id: "gtceu:crushed_copper_ore"
|
||||
}
|
||||
id: "28419A1010EEE93A"
|
||||
subtitle: "{quests.ore_proc.crushed_ores.subtitle}"
|
||||
tasks: [
|
||||
|
|
@ -233,7 +223,6 @@
|
|||
description: ["{quests.ore_proc.mercury.desc}"]
|
||||
id: "68AC3E2C9093FCFE"
|
||||
optional: true
|
||||
shape: "heart"
|
||||
subtitle: "{quests.ore_proc.mercury.subtitle}"
|
||||
tasks: [
|
||||
{
|
||||
|
|
@ -284,7 +273,6 @@
|
|||
description: ["{quests.ore_proc.sodium_ores.desc}"]
|
||||
id: "0502E478E27D4B73"
|
||||
optional: true
|
||||
shape: "heart"
|
||||
subtitle: "{quests.ore_proc.sodium_ores.subtitle}"
|
||||
tasks: [
|
||||
{
|
||||
|
|
@ -315,29 +303,26 @@
|
|||
]
|
||||
dependency_requirement: "one_completed"
|
||||
description: ["{quests.ore_proc.purified_ores.desc}"]
|
||||
icon: {
|
||||
Count: 1
|
||||
ForgeCaps: {
|
||||
"tfc:item_heat": {
|
||||
heat: 0.0f
|
||||
ticks: 0L
|
||||
}
|
||||
}
|
||||
id: "create:crushed_raw_copper"
|
||||
}
|
||||
id: "544EA7FF98FDCFB7"
|
||||
subtitle: "{quests.ore_proc.purified_ores.subtitle}"
|
||||
tasks: [{
|
||||
id: "4C6F60AC9C803D7B"
|
||||
item: {
|
||||
Count: 1
|
||||
id: "ftbfiltersystem:smart_filter"
|
||||
tag: {
|
||||
"ftbfiltersystem:filter": "or(item_tag(forge:purified_ores))"
|
||||
tasks: [
|
||||
{
|
||||
id: "4C6F60AC9C803D7B"
|
||||
item: {
|
||||
Count: 1
|
||||
id: "ftbfiltersystem:smart_filter"
|
||||
tag: {
|
||||
"ftbfiltersystem:filter": "or(item_tag(forge:purified_ores))"
|
||||
}
|
||||
}
|
||||
optional_task: true
|
||||
type: "item"
|
||||
}
|
||||
type: "item"
|
||||
}]
|
||||
{
|
||||
id: "3C194AEB554DA4CA"
|
||||
type: "checkmark"
|
||||
}
|
||||
]
|
||||
title: "{quests.ore_proc.purified_ores.title}"
|
||||
x: 0.5d
|
||||
y: -0.5d
|
||||
|
|
@ -355,6 +340,12 @@
|
|||
optional_task: true
|
||||
type: "item"
|
||||
}
|
||||
{
|
||||
id: "0373F4E380F2A0BC"
|
||||
item: "gtceu:indium_concentrate_bucket"
|
||||
optional_task: true
|
||||
type: "item"
|
||||
}
|
||||
{
|
||||
id: "246799A19B9A47B6"
|
||||
item: {
|
||||
|
|
@ -377,15 +368,8 @@
|
|||
type: "item"
|
||||
}
|
||||
{
|
||||
id: "475C90F0EA16C2F9"
|
||||
item: {
|
||||
Count: 1
|
||||
id: "ftbfiltersystem:smart_filter"
|
||||
tag: {
|
||||
"ftbfiltersystem:filter": "only_one(item(gtceu:indium_concentrate_bucket)nbt(fuzzy:{fluid:{Amount:1000,FluidName:\"gtceu:indium_concentrate\"}}))"
|
||||
}
|
||||
}
|
||||
type: "item"
|
||||
id: "52FCA464BD827E37"
|
||||
type: "checkmark"
|
||||
}
|
||||
]
|
||||
title: "{quests.ore_proc.indium.title}"
|
||||
|
|
@ -643,30 +627,25 @@
|
|||
]
|
||||
dependency_requirement: "one_completed"
|
||||
description: ["{quests.ore_proc.dust_processed.desc}"]
|
||||
icon: {
|
||||
Count: 1
|
||||
ForgeCaps: {
|
||||
"tfc:item_heat": {
|
||||
heat: 0.0f
|
||||
ticks: 0L
|
||||
}
|
||||
}
|
||||
id: "gtceu:copper_dust"
|
||||
}
|
||||
id: "22C1D541452D4AD4"
|
||||
size: 1.5d
|
||||
subtitle: "{quests.ore_proc.dust_processed.subtitle}"
|
||||
tasks: [{
|
||||
id: "3EA3BABECE52085B"
|
||||
item: {
|
||||
Count: 1
|
||||
id: "ftbfiltersystem:smart_filter"
|
||||
tag: {
|
||||
"ftbfiltersystem:filter": "or(item_tag(forge:dusts))"
|
||||
tasks: [
|
||||
{
|
||||
id: "3EA3BABECE52085B"
|
||||
item: {
|
||||
Count: 1
|
||||
id: "ftbfiltersystem:smart_filter"
|
||||
tag: {
|
||||
"ftbfiltersystem:filter": "or(item_tag(forge:dusts))"
|
||||
}
|
||||
}
|
||||
type: "item"
|
||||
}
|
||||
type: "item"
|
||||
}]
|
||||
{
|
||||
id: "1A1B2762EFD6C6B0"
|
||||
type: "checkmark"
|
||||
}
|
||||
]
|
||||
title: "{quests.ore_proc.dust_processed.title}"
|
||||
x: 0.5d
|
||||
y: 3.5d
|
||||
|
|
|
|||
|
|
@ -31,21 +31,10 @@
|
|||
y: -34.0d
|
||||
}
|
||||
{
|
||||
icon: {
|
||||
Count: 1
|
||||
ForgeCaps: {
|
||||
"tfc:item_heat": {
|
||||
heat: 0.0f
|
||||
ticks: 0L
|
||||
}
|
||||
}
|
||||
id: "tfc:metal/lamp/blue_steel"
|
||||
}
|
||||
id: "227B6C88FFE99435"
|
||||
linked_quest: "4EBABACAB444244D"
|
||||
shape: "heart"
|
||||
x: 16.5d
|
||||
y: -24.5d
|
||||
y: -23.0d
|
||||
}
|
||||
{
|
||||
id: "19CF6D922179DFF9"
|
||||
|
|
@ -69,7 +58,7 @@
|
|||
}]
|
||||
title: "{quests.metal_age.this_is_a_bucket.title}"
|
||||
x: 13.5d
|
||||
y: -26.0d
|
||||
y: -24.5d
|
||||
}
|
||||
{
|
||||
dependencies: ["56CA2EB7812529C5"]
|
||||
|
|
@ -93,7 +82,7 @@
|
|||
]
|
||||
title: "{quests.metal_age.redblu_buckets.title}"
|
||||
x: 16.5d
|
||||
y: -26.0d
|
||||
y: -24.5d
|
||||
}
|
||||
{
|
||||
dependencies: ["7E0239E9CC73F09F"]
|
||||
|
|
@ -109,11 +98,11 @@
|
|||
weak_nbt_match: true
|
||||
}]
|
||||
title: "{quests.metal_age.black_steel_anvil.title}"
|
||||
x: 26.5d
|
||||
y: -26.0d
|
||||
x: 27.5d
|
||||
y: -24.5d
|
||||
}
|
||||
{
|
||||
dependencies: ["5996A3A0D475B8A6"]
|
||||
dependencies: ["4310B619B57276ED"]
|
||||
description: ["{quests.metal_age.steel_anvil.desc}"]
|
||||
id: "04DE7C58F20B535A"
|
||||
shape: "octagon"
|
||||
|
|
@ -126,11 +115,11 @@
|
|||
weak_nbt_match: true
|
||||
}]
|
||||
title: "{quests.metal_age.steel_anvil.title}"
|
||||
x: 26.5d
|
||||
x: 27.5d
|
||||
y: -32.0d
|
||||
}
|
||||
{
|
||||
dependencies: ["0A92F5C4BB6AF972"]
|
||||
dependencies: ["358571B6E692F198"]
|
||||
description: ["{quests.metal_age.wrought_iron_anvil.desc}"]
|
||||
id: "174DA15847665CF8"
|
||||
shape: "octagon"
|
||||
|
|
@ -274,10 +263,29 @@
|
|||
y: -32.0d
|
||||
}
|
||||
{
|
||||
dependencies: [
|
||||
"0A92F5C4BB6AF972"
|
||||
"021D3DEEB15A3D17"
|
||||
]
|
||||
dependency_requirement: "one_completed"
|
||||
description: ["{quests.metal_age.weld_wrought_iron_ingots.desc}"]
|
||||
id: "358571B6E692F198"
|
||||
subtitle: "{quests.metal_age.weld_wrought_iron_ingots.subtitle}"
|
||||
tasks: [{
|
||||
id: "05AD17F66DFE3C56"
|
||||
item: "gtceu:wrought_iron_double_ingot"
|
||||
type: "item"
|
||||
weak_nbt_match: true
|
||||
}]
|
||||
title: "{quests.metal_age.weld_wrought_iron_ingots.title}"
|
||||
x: 7.0d
|
||||
y: -32.0d
|
||||
}
|
||||
{
|
||||
dependencies: ["48A8E3210B2BAE1C"]
|
||||
description: ["{quests.metal_age.bellows.desc}"]
|
||||
hide_dependency_lines: true
|
||||
id: "021D3DEEB15A3D17"
|
||||
shape: "rsquare"
|
||||
subtitle: "{quests.metal_age.bellows.subtitle}"
|
||||
tasks: [{
|
||||
id: "588EB07E980386F9"
|
||||
|
|
@ -289,12 +297,31 @@
|
|||
y: -34.0d
|
||||
}
|
||||
{
|
||||
dependencies: ["5A936E9BCF30AA3D"]
|
||||
dependencies: ["5996A3A0D475B8A6"]
|
||||
dependency_requirement: "one_completed"
|
||||
description: ["{quests.metal_age.weld_steel_ingots.desc}"]
|
||||
id: "4310B619B57276ED"
|
||||
subtitle: "{quests.metal_age.weld_steel_ingots.subtitle}"
|
||||
tasks: [{
|
||||
id: "0EDB1D851E198274"
|
||||
item: "gtceu:steel_double_ingot"
|
||||
type: "item"
|
||||
weak_nbt_match: true
|
||||
}]
|
||||
title: "{quests.metal_age.weld_steel_ingots.title}"
|
||||
x: 25.5d
|
||||
y: -32.0d
|
||||
}
|
||||
{
|
||||
dependencies: [
|
||||
"061116CF508D54F6"
|
||||
"68B7D07D57A103BE"
|
||||
]
|
||||
dependency_requirement: "one_completed"
|
||||
description: ["{quests.metal_age.kaolin_clay.desc}"]
|
||||
id: "72F1C122FC26229C"
|
||||
shape: "octagon"
|
||||
size: 2.0d
|
||||
size: 3.0d
|
||||
subtitle: "{quests.metal_age.kaolin_clay.subtitle}"
|
||||
tasks: [{
|
||||
id: "673D38EB62FFD65F"
|
||||
|
|
@ -312,8 +339,8 @@
|
|||
weak_nbt_match: true
|
||||
}]
|
||||
title: "{quests.metal_age.kaolin_clay.title}"
|
||||
x: 14.0d
|
||||
y: -33.0d
|
||||
x: 13.5d
|
||||
y: -36.0d
|
||||
}
|
||||
{
|
||||
dependencies: ["5A936E9BCF30AA3D"]
|
||||
|
|
@ -322,24 +349,25 @@
|
|||
icon: "tfc:ore/graphite/gabbro"
|
||||
id: "53E1383F12EC6765"
|
||||
optional: true
|
||||
shape: "diamond"
|
||||
subtitle: "{quests.metal_age.overworld_graphite.subtitle}"
|
||||
tasks: [{
|
||||
id: "25A552657AFA7BC2"
|
||||
type: "checkmark"
|
||||
}]
|
||||
title: "{quests.metal_age.overworld_graphite.title}"
|
||||
x: 11.0d
|
||||
x: 13.0d
|
||||
y: -30.5d
|
||||
}
|
||||
{
|
||||
dependencies: ["5A936E9BCF30AA3D"]
|
||||
dependencies: [
|
||||
"53E1383F12EC6765"
|
||||
"2DB82986FE176CD7"
|
||||
]
|
||||
dependency_requirement: "one_completed"
|
||||
description: ["{quests.metal_age.graphite.desc}"]
|
||||
icon: "tfc:powder/graphite"
|
||||
id: "31CE13462759950C"
|
||||
shape: "octagon"
|
||||
size: 2.0d
|
||||
size: 3.0d
|
||||
subtitle: "{quests.metal_age.graphite.subtitle}"
|
||||
tasks: [{
|
||||
id: "6B0C9D862BFD27BC"
|
||||
|
|
@ -354,13 +382,14 @@
|
|||
type: "item"
|
||||
}]
|
||||
title: "{quests.metal_age.graphite.title}"
|
||||
x: 14.0d
|
||||
y: -31.0d
|
||||
x: 13.5d
|
||||
y: -28.5d
|
||||
}
|
||||
{
|
||||
dependencies: [
|
||||
"72F1C122FC26229C"
|
||||
"31CE13462759950C"
|
||||
"5A936E9BCF30AA3D"
|
||||
]
|
||||
description: ["{quests.metal_age.fire_clay.desc}"]
|
||||
id: "2C76EE197C14B0DC"
|
||||
|
|
@ -374,7 +403,7 @@
|
|||
weak_nbt_match: true
|
||||
}]
|
||||
title: "{quests.metal_age.fire_clay.title}"
|
||||
x: 17.0d
|
||||
x: 17.5d
|
||||
y: -32.0d
|
||||
}
|
||||
{
|
||||
|
|
@ -437,7 +466,6 @@
|
|||
description: ["{quests.metal_age.beneath_kaolin.desc}"]
|
||||
id: "061116CF508D54F6"
|
||||
optional: true
|
||||
shape: "diamond"
|
||||
subtitle: "{quests.metal_age.beneath_kaolin.subtitle}"
|
||||
tasks: [
|
||||
{
|
||||
|
|
@ -464,7 +492,7 @@
|
|||
}
|
||||
]
|
||||
title: "{quests.metal_age.beneath_kaolin.title}"
|
||||
x: 12.0d
|
||||
x: 14.0d
|
||||
y: -33.5d
|
||||
}
|
||||
{
|
||||
|
|
@ -568,7 +596,7 @@
|
|||
}
|
||||
]
|
||||
title: "{quests.metal_age.fire_clay_products.title}"
|
||||
x: 17.0d
|
||||
x: 17.5d
|
||||
y: -34.0d
|
||||
}
|
||||
{
|
||||
|
|
@ -638,14 +666,12 @@
|
|||
}]
|
||||
title: "{quests.metal_age.red_blu.title}"
|
||||
x: 24.0d
|
||||
y: -26.0d
|
||||
y: -24.5d
|
||||
}
|
||||
{
|
||||
dependencies: ["56CA2EB7812529C5"]
|
||||
description: ["{quests.metal_age.red_steel_flask.desc}"]
|
||||
id: "30D49878F3CEB08A"
|
||||
optional: true
|
||||
shape: "heart"
|
||||
subtitle: "{quests.metal_age.red_steel_flask.subtitle}"
|
||||
tasks: [{
|
||||
id: "7394672B4D19B0B2"
|
||||
|
|
@ -654,7 +680,7 @@
|
|||
}]
|
||||
title: "{quests.metal_age.red_steel_flask.title}"
|
||||
x: 16.5d
|
||||
y: -27.5d
|
||||
y: -26.0d
|
||||
}
|
||||
{
|
||||
dependencies: [
|
||||
|
|
@ -680,7 +706,7 @@
|
|||
}]
|
||||
title: "{quests.metal_age.redblu_anvil.title}"
|
||||
x: 18.5d
|
||||
y: -26.0d
|
||||
y: -24.5d
|
||||
}
|
||||
{
|
||||
dependencies: ["3C173357029AB649"]
|
||||
|
|
@ -724,15 +750,13 @@
|
|||
type: "checkmark"
|
||||
}]
|
||||
title: "{quests.metal_age.fire_clay_ingredients.title}"
|
||||
x: 11.5d
|
||||
x: 13.5d
|
||||
y: -32.0d
|
||||
}
|
||||
{
|
||||
dependencies: ["5A936E9BCF30AA3D"]
|
||||
description: ["{quests.metal_age.beneath_graphite.desc}"]
|
||||
id: "2DB82986FE176CD7"
|
||||
optional: true
|
||||
shape: "diamond"
|
||||
subtitle: "{quests.metal_age.beneath_graphite.subtitle}"
|
||||
tasks: [
|
||||
{
|
||||
|
|
@ -752,7 +776,7 @@
|
|||
}
|
||||
]
|
||||
title: "{quests.metal_age.beneath_graphite.title}"
|
||||
x: 12.0d
|
||||
x: 14.0d
|
||||
y: -30.5d
|
||||
}
|
||||
{
|
||||
|
|
@ -760,8 +784,6 @@
|
|||
description: ["{quests.metal_age.overworld_kaolin.desc}"]
|
||||
icon: "tfc:plant/tree_fern"
|
||||
id: "68B7D07D57A103BE"
|
||||
optional: true
|
||||
shape: "diamond"
|
||||
subtitle: "{quests.metal_age.overworld_kaolin.subtitle}"
|
||||
tasks: [{
|
||||
id: "14DF5B1544AB9BA9"
|
||||
|
|
@ -769,7 +791,7 @@
|
|||
type: "checkmark"
|
||||
}]
|
||||
title: "{quests.metal_age.overworld_kaolin.title}"
|
||||
x: 11.0d
|
||||
x: 13.0d
|
||||
y: -33.5d
|
||||
}
|
||||
{
|
||||
|
|
@ -791,8 +813,8 @@
|
|||
weak_nbt_match: true
|
||||
}]
|
||||
title: "{quests.metal_age.blast_furnace_fuel.title}"
|
||||
x: 20.5d
|
||||
y: -32.0d
|
||||
x: 23.5d
|
||||
y: -30.0d
|
||||
}
|
||||
{
|
||||
dependencies: ["04DE7C58F20B535A"]
|
||||
|
|
@ -806,8 +828,8 @@
|
|||
type: "checkmark"
|
||||
}]
|
||||
title: "{quests.metal_age.steel_goodies.title}"
|
||||
x: 26.5d
|
||||
y: -34.0d
|
||||
x: 29.5d
|
||||
y: -30.0d
|
||||
}
|
||||
{
|
||||
dependencies: ["52DAF93E2F3D688A"]
|
||||
|
|
@ -823,8 +845,8 @@
|
|||
type: "checkmark"
|
||||
}]
|
||||
title: "{quests.metal_age.black_steel_goodies.title}"
|
||||
x: 26.5d
|
||||
y: -23.5d
|
||||
x: 25.5d
|
||||
y: -22.5d
|
||||
}
|
||||
{
|
||||
dependencies: [
|
||||
|
|
@ -832,16 +854,6 @@
|
|||
"04DE7C58F20B535A"
|
||||
]
|
||||
description: ["{quests.metal_age.highcarb_black_steel.desc}"]
|
||||
icon: {
|
||||
Count: 1
|
||||
ForgeCaps: {
|
||||
"tfc:item_heat": {
|
||||
heat: 0.0f
|
||||
ticks: 0L
|
||||
}
|
||||
}
|
||||
id: "tfc:metal/ingot/black_steel"
|
||||
}
|
||||
id: "7E0239E9CC73F09F"
|
||||
subtitle: "{quests.metal_age.highcarb_black_steel.subtitle}"
|
||||
tasks: [
|
||||
|
|
@ -875,22 +887,12 @@
|
|||
}
|
||||
]
|
||||
title: "{quests.metal_age.highcarb_black_steel.title}"
|
||||
x: 26.5d
|
||||
x: 27.5d
|
||||
y: -30.0d
|
||||
}
|
||||
{
|
||||
dependencies: ["5996A3A0D475B8A6"]
|
||||
description: ["{quests.metal_age.weak_steel.desc}"]
|
||||
icon: {
|
||||
Count: 1
|
||||
ForgeCaps: {
|
||||
"tfc:item_heat": {
|
||||
heat: 0.0f
|
||||
ticks: 0L
|
||||
}
|
||||
}
|
||||
id: "tfc:metal/ingot/weak_steel"
|
||||
}
|
||||
id: "1CE0FF455668C145"
|
||||
subtitle: "{quests.metal_age.weak_steel.subtitle}"
|
||||
tasks: [
|
||||
|
|
@ -898,60 +900,53 @@
|
|||
id: "543388DB123E7328"
|
||||
item: {
|
||||
Count: 1
|
||||
id: "ftbfiltersystem:smart_filter"
|
||||
tag: {
|
||||
"ftbfiltersystem:filter": "or(item(gtceu:nickel_ingot)item(gtceu:nickel_dust))"
|
||||
ForgeCaps: {
|
||||
"tfc:item_heat": {
|
||||
heat: 0.0f
|
||||
ticks: 0L
|
||||
}
|
||||
}
|
||||
id: "gtceu:nickel_ingot"
|
||||
}
|
||||
title: "{quests.metal_age.weak_steel.task1}"
|
||||
type: "item"
|
||||
weak_nbt_match: true
|
||||
}
|
||||
{
|
||||
count: 2L
|
||||
id: "7F829BA244BC77D5"
|
||||
item: {
|
||||
Count: 1
|
||||
id: "ftbfiltersystem:smart_filter"
|
||||
tag: {
|
||||
"ftbfiltersystem:filter": "or(item(gtceu:steel_ingot)item(gtceu:steel_dust))"
|
||||
Count: 2
|
||||
ForgeCaps: {
|
||||
"tfc:item_heat": {
|
||||
heat: 0.0f
|
||||
ticks: 0L
|
||||
}
|
||||
}
|
||||
id: "gtceu:steel_ingot"
|
||||
}
|
||||
title: "{quests.metal_age.weak_steel.task2}"
|
||||
type: "item"
|
||||
weak_nbt_match: true
|
||||
}
|
||||
{
|
||||
id: "3271DD5653C52CAB"
|
||||
item: {
|
||||
Count: 1
|
||||
id: "ftbfiltersystem:smart_filter"
|
||||
tag: {
|
||||
"ftbfiltersystem:filter": "or(item(gtceu:black_bronze_ingot)item(gtceu:black_bronze_dust))"
|
||||
ForgeCaps: {
|
||||
"tfc:item_heat": {
|
||||
heat: 0.0f
|
||||
ticks: 0L
|
||||
}
|
||||
}
|
||||
id: "gtceu:black_bronze_ingot"
|
||||
}
|
||||
title: "{quests.metal_age.weak_steel.task3}"
|
||||
type: "item"
|
||||
weak_nbt_match: true
|
||||
}
|
||||
]
|
||||
title: "{quests.metal_age.weak_steel.title}"
|
||||
x: 23.5d
|
||||
x: 25.5d
|
||||
y: -30.0d
|
||||
}
|
||||
{
|
||||
dependencies: ["27FF92982A24BC4E"]
|
||||
description: ["{quests.metal_age.highcarb_red_steel.desc}"]
|
||||
icon: {
|
||||
Count: 1
|
||||
ForgeCaps: {
|
||||
"tfc:item_heat": {
|
||||
heat: 0.0f
|
||||
ticks: 0L
|
||||
}
|
||||
}
|
||||
id: "tfc:metal/ingot/red_steel"
|
||||
}
|
||||
id: "5088768AAA28FCBA"
|
||||
subtitle: "{quests.metal_age.highcarb_red_steel.subtitle}"
|
||||
tasks: [
|
||||
|
|
@ -986,21 +981,11 @@
|
|||
]
|
||||
title: "{quests.metal_age.highcarb_red_steel.title}"
|
||||
x: 20.5d
|
||||
y: -27.0d
|
||||
y: -25.5d
|
||||
}
|
||||
{
|
||||
dependencies: ["5792DDAA82895E67"]
|
||||
description: ["{quests.metal_age.weak_red_steel.desc}"]
|
||||
icon: {
|
||||
Count: 1
|
||||
ForgeCaps: {
|
||||
"tfc:item_heat": {
|
||||
heat: 0.0f
|
||||
ticks: 0L
|
||||
}
|
||||
}
|
||||
id: "tfc:metal/ingot/weak_red_steel"
|
||||
}
|
||||
id: "27FF92982A24BC4E"
|
||||
subtitle: "{quests.metal_age.weak_red_steel.subtitle}"
|
||||
tasks: [
|
||||
|
|
@ -1008,70 +993,68 @@
|
|||
id: "2A22B3EA8DC577CE"
|
||||
item: {
|
||||
Count: 1
|
||||
id: "ftbfiltersystem:smart_filter"
|
||||
tag: {
|
||||
"ftbfiltersystem:filter": "or(item(create:brass_ingot)item(gtceu:brass_dust))"
|
||||
ForgeCaps: {
|
||||
"tfc:item_heat": {
|
||||
heat: 0.0f
|
||||
ticks: 0L
|
||||
}
|
||||
}
|
||||
id: "create:brass_ingot"
|
||||
}
|
||||
title: "{quests.metal_age.weak_red_steel.brass}"
|
||||
type: "item"
|
||||
}
|
||||
{
|
||||
count: 2L
|
||||
id: "2F0648CE3D1723DF"
|
||||
item: {
|
||||
Count: 1
|
||||
id: "ftbfiltersystem:smart_filter"
|
||||
tag: {
|
||||
"ftbfiltersystem:filter": "or(item(gtceu:steel_ingot)item(gtceu:steel_dust))"
|
||||
Count: 2
|
||||
ForgeCaps: {
|
||||
"tfc:item_heat": {
|
||||
heat: 0.0f
|
||||
ticks: 0L
|
||||
}
|
||||
}
|
||||
id: "gtceu:steel_ingot"
|
||||
}
|
||||
title: "{quests.metal_age.weak_red_steel.steel}"
|
||||
type: "item"
|
||||
}
|
||||
{
|
||||
id: "47F346E1C0F41655"
|
||||
item: {
|
||||
Count: 1
|
||||
id: "ftbfiltersystem:smart_filter"
|
||||
tag: {
|
||||
"ftbfiltersystem:filter": "or(item(gtceu:rose_gold_ingot)item(gtceu:rose_gold_dust))"
|
||||
ForgeCaps: {
|
||||
"tfc:item_heat": {
|
||||
heat: 0.0f
|
||||
ticks: 0L
|
||||
}
|
||||
}
|
||||
id: "gtceu:rose_gold_ingot"
|
||||
}
|
||||
title: "{quests.metal_age.weak_red_steel.rose_gold}"
|
||||
type: "item"
|
||||
}
|
||||
{
|
||||
count: 4L
|
||||
id: "21434FAAA69D5BE0"
|
||||
item: {
|
||||
Count: 1
|
||||
id: "ftbfiltersystem:smart_filter"
|
||||
tag: {
|
||||
"ftbfiltersystem:filter": "or(item(tfc:metal/ingot/black_steel)item(gtceu:black_steel_dust))"
|
||||
Count: 4
|
||||
ForgeCaps: {
|
||||
"tfc:item_heat": {
|
||||
heat: 0.0f
|
||||
ticks: 0L
|
||||
}
|
||||
}
|
||||
id: "tfc:metal/ingot/black_steel"
|
||||
}
|
||||
title: "{quests.metal_age.weak_red_steel.black_steel}"
|
||||
type: "item"
|
||||
}
|
||||
]
|
||||
title: "{quests.metal_age.weak_red_steel.title}"
|
||||
x: 22.0d
|
||||
y: -27.0d
|
||||
y: -25.5d
|
||||
}
|
||||
{
|
||||
dependencies: ["5792DDAA82895E67"]
|
||||
description: ["{quests.metal_age.weak_blu_steel.desc}"]
|
||||
icon: {
|
||||
Count: 1
|
||||
ForgeCaps: {
|
||||
"tfc:item_heat": {
|
||||
heat: 0.0f
|
||||
ticks: 0L
|
||||
}
|
||||
}
|
||||
id: "tfc:metal/ingot/weak_blue_steel"
|
||||
}
|
||||
id: "64F8A358EC3FEF45"
|
||||
subtitle: "{quests.metal_age.weak_blu_steel.subtitle}"
|
||||
tasks: [
|
||||
|
|
@ -1079,70 +1062,68 @@
|
|||
count: 2L
|
||||
id: "5331A323780B4B11"
|
||||
item: {
|
||||
Count: 1
|
||||
id: "ftbfiltersystem:smart_filter"
|
||||
tag: {
|
||||
"ftbfiltersystem:filter": "or(item(gtceu:steel_ingot)item(gtceu:steel_dust))"
|
||||
Count: 2
|
||||
ForgeCaps: {
|
||||
"tfc:item_heat": {
|
||||
heat: 0.0f
|
||||
ticks: 0L
|
||||
}
|
||||
}
|
||||
id: "gtceu:steel_ingot"
|
||||
}
|
||||
title: "{quests.metal_age.weak_blue_steel.steel}"
|
||||
type: "item"
|
||||
}
|
||||
{
|
||||
count: 4L
|
||||
id: "2809FD951B82C54F"
|
||||
item: {
|
||||
Count: 1
|
||||
id: "ftbfiltersystem:smart_filter"
|
||||
tag: {
|
||||
"ftbfiltersystem:filter": "or(item(tfc:metal/ingot/black_steel)item(gtceu:black_steel_dust))"
|
||||
Count: 4
|
||||
ForgeCaps: {
|
||||
"tfc:item_heat": {
|
||||
heat: 0.0f
|
||||
ticks: 0L
|
||||
}
|
||||
}
|
||||
id: "tfc:metal/ingot/black_steel"
|
||||
}
|
||||
title: "{quests.metal_age.weak_blue_steel.black_steel}"
|
||||
type: "item"
|
||||
}
|
||||
{
|
||||
id: "401EC1A9FBC759B8"
|
||||
item: {
|
||||
Count: 1
|
||||
id: "ftbfiltersystem:smart_filter"
|
||||
tag: {
|
||||
"ftbfiltersystem:filter": "or(item(gtceu:bismuth_bronze_ingot)item(gtceu:bismuth_bronze_dust))"
|
||||
ForgeCaps: {
|
||||
"tfc:item_heat": {
|
||||
heat: 0.0f
|
||||
ticks: 0L
|
||||
}
|
||||
}
|
||||
id: "gtceu:bismuth_bronze_ingot"
|
||||
}
|
||||
title: "{quests.metal_age.weak_blue_steel.bismuth_bronze}"
|
||||
type: "item"
|
||||
}
|
||||
{
|
||||
id: "7350ECE723ABE8F4"
|
||||
item: {
|
||||
Count: 1
|
||||
id: "ftbfiltersystem:smart_filter"
|
||||
tag: {
|
||||
"ftbfiltersystem:filter": "or(item(gtceu:sterling_silver_ingot)item(gtceu:sterling_silver_dust))"
|
||||
ForgeCaps: {
|
||||
"tfc:item_heat": {
|
||||
heat: 0.0f
|
||||
ticks: 0L
|
||||
}
|
||||
}
|
||||
id: "gtceu:sterling_silver_ingot"
|
||||
}
|
||||
title: "{quests.metal_age.weak_blue_steel.sterling_silver}"
|
||||
type: "item"
|
||||
}
|
||||
]
|
||||
title: "{quests.metal_age.weak_blu_steel.title}"
|
||||
x: 22.0d
|
||||
y: -25.0d
|
||||
y: -23.5d
|
||||
}
|
||||
{
|
||||
dependencies: ["64F8A358EC3FEF45"]
|
||||
description: ["{quests.metal_age.highcarb_blu_steel.desc}"]
|
||||
icon: {
|
||||
Count: 1
|
||||
ForgeCaps: {
|
||||
"tfc:item_heat": {
|
||||
heat: 0.0f
|
||||
ticks: 0L
|
||||
}
|
||||
}
|
||||
id: "tfc:metal/ingot/blue_steel"
|
||||
}
|
||||
id: "6D04BAC5B215F90F"
|
||||
subtitle: "{quests.metal_age.highcarb_blu_steel.subtitle}"
|
||||
tasks: [
|
||||
|
|
@ -1177,7 +1158,7 @@
|
|||
]
|
||||
title: "{quests.metal_age.highcarb_blu_steel.title}"
|
||||
x: 20.5d
|
||||
y: -25.0d
|
||||
y: -23.5d
|
||||
}
|
||||
{
|
||||
dependencies: ["3C173357029AB649"]
|
||||
|
|
|
|||
|
|
@ -684,7 +684,6 @@
|
|||
tasks: [{
|
||||
id: "5A6EF9EBF232601C"
|
||||
item: "gtceu:copper_double_ingot"
|
||||
match_nbt: false
|
||||
type: "item"
|
||||
weak_nbt_match: true
|
||||
}]
|
||||
|
|
|
|||
|
|
@ -1602,26 +1602,12 @@
|
|||
]
|
||||
dependency_requirement: "one_completed"
|
||||
description: ["{quests.tfg_tips.passive_preservation.desc}"]
|
||||
disable_toast: true
|
||||
icon: {
|
||||
Count: 1
|
||||
ForgeCaps: {
|
||||
Parent: {
|
||||
heat: 0.0f
|
||||
ticks: 0L
|
||||
}
|
||||
}
|
||||
id: "tfc:ceramic/vessel"
|
||||
tag: { }
|
||||
}
|
||||
id: "13F7066858E923FF"
|
||||
subtitle: "{quests.tfg_tips.passive_preservation.subtitle}"
|
||||
tasks: [{
|
||||
dimension: "minecraft:overworld"
|
||||
icon: "gtceu:overworld_marker"
|
||||
id: "5BAF5F5343C3E42A"
|
||||
title: "{quests.stone_age.temperature.task}"
|
||||
type: "dimension"
|
||||
id: "54AAB9886964A160"
|
||||
title: "{quests.tasktype.checkmark}"
|
||||
type: "checkmark"
|
||||
}]
|
||||
title: "{quests.tfg_tips.passive_preservation.title}"
|
||||
x: 6.5d
|
||||
|
|
@ -2250,7 +2236,10 @@
|
|||
y: 9.5d
|
||||
}
|
||||
{
|
||||
dependencies: ["2D959136A5FC5F46"]
|
||||
dependencies: [
|
||||
"2D959136A5FC5F46"
|
||||
"56CA2EB7812529C5"
|
||||
]
|
||||
description: ["{quests.tfg_tips.lamps.desc}"]
|
||||
id: "037CDA933FBE2CBE"
|
||||
subtitle: "{quests.tfg_tips.lamps.subtitle}"
|
||||
|
|
@ -2288,8 +2277,8 @@
|
|||
}
|
||||
]
|
||||
title: "{quests.tfg_tips.lamps.title}"
|
||||
x: -5.5d
|
||||
y: 11.5d
|
||||
x: -5.0d
|
||||
y: 11.0d
|
||||
}
|
||||
{
|
||||
dependencies: [
|
||||
|
|
@ -2297,16 +2286,6 @@
|
|||
"56CA2EB7812529C5"
|
||||
]
|
||||
description: ["{quests.tfg_tips.lava_lamp.desc}"]
|
||||
icon: {
|
||||
Count: 1
|
||||
ForgeCaps: {
|
||||
"tfc:item_heat": {
|
||||
heat: 0.0f
|
||||
ticks: 0L
|
||||
}
|
||||
}
|
||||
id: "tfc:metal/lamp/blue_steel"
|
||||
}
|
||||
id: "4EBABACAB444244D"
|
||||
optional: true
|
||||
shape: "heart"
|
||||
|
|
@ -2333,8 +2312,8 @@
|
|||
}
|
||||
]
|
||||
title: "{quests.tfg_tips.lava_lamp.title}"
|
||||
x: -5.5d
|
||||
y: 13.0d
|
||||
x: -5.0d
|
||||
y: 12.5d
|
||||
}
|
||||
{
|
||||
dependencies: ["037CDA933FBE2CBE"]
|
||||
|
|
@ -2354,8 +2333,8 @@
|
|||
type: "item"
|
||||
}]
|
||||
title: "{quests.tfg_tips.creosote.title}"
|
||||
x: -6.5d
|
||||
y: 12.5d
|
||||
x: -6.0d
|
||||
y: 12.0d
|
||||
}
|
||||
{
|
||||
dependencies: ["037CDA933FBE2CBE"]
|
||||
|
|
@ -2375,8 +2354,8 @@
|
|||
type: "item"
|
||||
}]
|
||||
title: "{quests.tfg_tips.olive_oil.title}"
|
||||
x: -4.5d
|
||||
y: 12.5d
|
||||
x: -4.0d
|
||||
y: 12.0d
|
||||
}
|
||||
{
|
||||
dependencies: ["2D959136A5FC5F46"]
|
||||
|
|
@ -3483,8 +3462,8 @@
|
|||
type: "item"
|
||||
}]
|
||||
title: "{quests.tfg_tips.tallow.title}"
|
||||
x: -7.0d
|
||||
y: 11.5d
|
||||
x: -6.5d
|
||||
y: 11.0d
|
||||
}
|
||||
{
|
||||
dependencies: ["150B7C5CD152E1BA"]
|
||||
|
|
@ -5397,26 +5376,6 @@
|
|||
x: 7.5d
|
||||
y: -18.0d
|
||||
}
|
||||
{
|
||||
dependencies: ["037CDA933FBE2CBE"]
|
||||
description: ["{quests.tfg_tips.glowstone_lamp.desc}"]
|
||||
id: "61F58B402F1AE40B"
|
||||
subtitle: "{quests.tfg_tips.glowstone_lamp.subtitle}"
|
||||
tasks: [{
|
||||
id: "71D52011F8BE66F0"
|
||||
item: {
|
||||
Count: 1
|
||||
id: "ftbfiltersystem:smart_filter"
|
||||
tag: {
|
||||
"ftbfiltersystem:filter": "only_one(item(gtceu:glowstone_bucket)nbt(fuzzy:{fluid:{Amount:1000,FluidName:\"gtceu:glowstone\"}}))"
|
||||
}
|
||||
}
|
||||
type: "item"
|
||||
}]
|
||||
title: "{quests.tfg_tips.glowstone_lamp.title}"
|
||||
x: -6.5d
|
||||
y: 10.5d
|
||||
}
|
||||
]
|
||||
subtitle: ["{quests.tfg_tips.subtitle}"]
|
||||
title: "{quests.tfg_tips}"
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
itemDamageTimeInterval = 60
|
||||
#Durability for wooden tongs.
|
||||
#Range: > 0
|
||||
woodenTongsDurability = 100
|
||||
woodenTongsDurability = 250
|
||||
#Durability for potholders.
|
||||
#Range: > 0
|
||||
potholderDurability = 600
|
||||
|
|
|
|||
|
|
@ -15,8 +15,6 @@
|
|||
"gtceu.end_dome": "Enderarium",
|
||||
"gtceu.greenhouse": "Electric Greenhouse",
|
||||
"gtceu.steam_bloomery": "Steam Bloomery",
|
||||
"gtceu.food_oven": "Food Oven",
|
||||
"gtceu.food_processor": "Food Processor",
|
||||
"item.gtceu.tiny_wood_dust": "Tiny Pile of Softwood Pulp",
|
||||
"item.gtceu.small_wood_dust": "Small Pile of Softwood Pulp",
|
||||
"item.gtceu.wood_dust": "Softwood Pulp",
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 248 B |
|
Before Width: | Height: | Size: 292 B |
|
Before Width: | Height: | Size: 241 B |
|
Before Width: | Height: | Size: 149 B |
|
Before Width: | Height: | Size: 75 B |
|
Before Width: | Height: | Size: 75 B |
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"animation":{
|
||||
"frametime":1
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 380 B |
|
Before Width: | Height: | Size: 919 B |
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"animation":{
|
||||
"frametime": 1
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 659 B |
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"animation":{
|
||||
"frametime": 1
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 149 B |
|
Before Width: | Height: | Size: 334 B |
|
Before Width: | Height: | Size: 683 B |
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"animation":{
|
||||
"frametime": 2
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 348 B |
|
Before Width: | Height: | Size: 542 B |
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"animation":{
|
||||
"frametime": 2
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 592 B |
|
Before Width: | Height: | Size: 504 B |
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"animation":{
|
||||
"frametime": 1
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 184 B |
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"animation":{
|
||||
"frametime": 1
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 785 B |
|
Before Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 75 B |
|
Before Width: | Height: | Size: 350 B |
|
Before Width: | Height: | Size: 364 B |
|
Before Width: | Height: | Size: 361 B |
|
Before Width: | Height: | Size: 250 B |
|
Before Width: | Height: | Size: 309 B |
|
Before Width: | Height: | Size: 313 B |
|
|
@ -167,19 +167,6 @@
|
|||
"block.tfg.mv_aqueous_accumulator": "§bAdvanced Aqueous Accumulator§r",
|
||||
"block.tfg.hv_aqueous_accumulator": "§6Advanced Aqueous Accumulator II§r",
|
||||
"block.tfg.ev_aqueous_accumulator": "§5Advanced Aqueous Accumulator III§r",
|
||||
"block.tfg.electric_greenhouse": "Electric Greenhouse",
|
||||
"block.tfg.lv_food_processor": "Basic Food Processor",
|
||||
"block.tfg.mv_food_processor": "§bAdvanced Food Processor§r",
|
||||
"block.tfg.hv_food_processor": "§6Advanced Food Processor II§r",
|
||||
"block.tfg.ev_food_processor": "§5Advanced Food Processor III§r",
|
||||
"block.tfg.lv_food_oven": "Basic Electric Oven",
|
||||
"block.tfg.mv_food_oven": "§bAdvanced Electric Oven§r",
|
||||
"block.tfg.hv_food_oven": "§6Advanced Electric Oven II§r",
|
||||
"block.tfg.ev_food_oven": "§5Advanced Electric Oven III§r",
|
||||
"block.tfg.lv_food_refrigerator": "Basic Refrigerator",
|
||||
"block.tfg.mv_food_refrigerator": "§bAdvanced Refrigerator",
|
||||
"block.tfg.hv_food_refrigerator": "§6Advanced Refrigerator II§r",
|
||||
"block.tfg.ev_food_refrigerator": "§5Advanced Refrigerator III§r",
|
||||
"item.tfg.antipoison_pill": "Antipoison Pill",
|
||||
"item.tfg.haste_pill": "Haste Pill",
|
||||
"item.tfg.night_vision_pill": "Night Vision Pill",
|
||||
|
|
@ -300,7 +287,6 @@
|
|||
"material.gtceu.thermochemically_treated_hardwood": "Thermochemically Treated Hardwood",
|
||||
"material.gtceu.hardwood": "Hardwood",
|
||||
"tfg.disabled_portal": "Portal magic seems to be blocked by an unknown force, try reaching another dimension by going down or up",
|
||||
"tfg.tooltip.food_trait.refrigerating": "§9Refrigerating",
|
||||
"item.treetap.tap": "Deprecated Item, Craft to Upgrade",
|
||||
"item.gtceu.zinc_ingot": "Deprecated Item, Craft to Upgrade",
|
||||
"item.gtceu.brass_ingot": "Deprecated Item, Craft to Upgrade",
|
||||
|
|
@ -1229,6 +1215,9 @@
|
|||
"quests.metal_age.mining.title": "Mining in the Metallurgy Age",
|
||||
"quests.metal_age.mining.subtitle": "ROCK AND STONE!",
|
||||
"quests.metal_age.mining.desc": "Extracting valuable resources from the ground is a major part of this modpack, and the Metallurgy Age is no exception! You will consume a &llot&r of metal to progress, and one way to mine a lot of it at once is with a Mining Hammer! This is a tool that can mine blocks in a 3x3x1 area at the cost of a slower mining speed. You can also hold sneak to break single blocks at a time.",
|
||||
"quests.metal_age.weld_wrought_iron_ingots.title": "Welding Wrought Iron",
|
||||
"quests.metal_age.weld_wrought_iron_ingots.subtitle": "CLANG CLANG CLANG",
|
||||
"quests.metal_age.weld_wrought_iron_ingots.desc": "Obtain at least 14 Ingots of Wrought Iron, then weld them together in a Bronze Anvil. Careful you don't melt your Wrought Iron, otherwise it will turn back into Cast Iron and you'll have to run it through the Bloomery again!",
|
||||
"quests.metal_age.bellows.title": "Bellows",
|
||||
"quests.metal_age.bellows.subtitle": "Higher temperatures can be reached, at a small price.",
|
||||
"quests.metal_age.bellows.desc": "The Bellows is a device that can force extra air into a fire or forge in front of it, allowing the heat produced by the fuel inside to reach higher temperatures than usual, at the cost of fuel duration.\n\nThese higher temperatures are required to fire pottery with charcoal or melt certain metals.\n\nCoal and Coke can also reach higher temperatures without it.",
|
||||
|
|
@ -1287,6 +1276,9 @@
|
|||
"quests.metal_age.blast_furnace.title": "Blast Furnace",
|
||||
"quests.metal_age.blast_furnace.subtitle": "Then I started Blastin'",
|
||||
"quests.metal_age.blast_furnace.desc": "The Blast Furnace is a multiblock structure that allows you to create Pig Iron. Placing a combination of Iron, Flux and fuel (see the adjacent quest) inside the Blast Furnace produces Pig Iron, which can be worked into Steel.\n\nIn order for the Blast Furnace to reach its required high temperatures, it will need its own Bellows, used to force air through a Tuyere which you place inside the blast furnace.\n\nThe Field Guide contains an entry on how the Blast Furnace works and how to build one.",
|
||||
"quests.metal_age.weld_steel_ingots.title": "Welding Steel",
|
||||
"quests.metal_age.weld_steel_ingots.subtitle": "Again?",
|
||||
"quests.metal_age.weld_steel_ingots.desc": "You know the drill by this point. Create 14 Steel Ingots, then weld them to get 7 Double Steel Ingots. We'll stop reminding you about this now.\n\nDid you know that the Helve Hammer can also process your pig iron into steel?",
|
||||
"quests.metal_age.steel_anvil.title": "T4 Anvil: Steel",
|
||||
"quests.metal_age.steel_anvil.subtitle": "A huge leap from wrought iron",
|
||||
"quests.metal_age.steel_anvil.desc": "With the Steel Anvil, you'll be able to work Steel Ingots into different forms.\n\nSteel tools and equipment have a significant boost over their bronze and wrought iron counterparts, so they're worth making if your existing ones are about to break. You'll be needing to create a lot of alloys soon, so some new mining equipment would be a wise investment.",
|
||||
|
|
@ -1296,9 +1288,6 @@
|
|||
"quests.metal_age.weak_steel.title": "Weak Steel Ingredients",
|
||||
"quests.metal_age.weak_steel.subtitle": "Hope you like math",
|
||||
"quests.metal_age.weak_steel.desc": "Weak Steel is one part of the necessary metals to create Black Steel. You can alloy it with 2 parts Steel, 1 part Nickel and 1 part Black Bronze.\n\nYou can check the liquid weak steel's recipe for more precise alloying percentage rates.",
|
||||
"quests.metal_age.weak_steel.task1": "1 Part Nickel",
|
||||
"quests.metal_age.weak_steel.task2": "2 Parts Steel",
|
||||
"quests.metal_age.weak_steel.task3": "1 Part Black Bronze",
|
||||
"quests.metal_age.highcarb_black_steel.title": "Black Steel Ingredients",
|
||||
"quests.metal_age.highcarb_black_steel.subtitle": "Conservation of matter does not apply",
|
||||
"quests.metal_age.highcarb_black_steel.desc": "The final two anvils are made out of complex alloys that will require a lot of metal to be created. Weak Steel and Pig Iron can be welded to create High Carbon Black Steel, which can then be worked on an anvil into Black Steel.",
|
||||
|
|
@ -1314,23 +1303,15 @@
|
|||
"quests.metal_age.weak_red_steel.title": "Weak Red Steel Ingredients",
|
||||
"quests.metal_age.weak_red_steel.subtitle": "This is getting a little ridiculous",
|
||||
"quests.metal_age.weak_red_steel.desc": "Like before, Weak Red Steel is the first step of Red Steel's creation. Its alloy is made from 4 parts Black Steel, 2 parts Steel, 1 part Brass, and 1 part Rose Gold.\n\nYou can check the liquid Weak Red Steel's recipe for more precise alloying percentage rates.",
|
||||
"quests.metal_age.weak_red_steel.steel": "2 Parts Steel",
|
||||
"quests.metal_age.weak_red_steel.black_steel": "4 Parts Black Steel",
|
||||
"quests.metal_age.weak_red_steel.brass": "1 Part Brass",
|
||||
"quests.metal_age.weak_red_steel.rose_gold": "1 Part Rose Gold",
|
||||
"quests.metal_age.weak_blu_steel.title": "Weak Blue Steel Ingredients",
|
||||
"quests.metal_age.weak_blu_steel.subtitle": "This is getting out of hand.",
|
||||
"quests.metal_age.weak_blu_steel.desc": "Like before, Weak Blue Steel is the first step of Blue Steel's creation. Its alloy is made from 4 parts Black Steel, 2 parts Steel, 1 part Bismuth Bronze, and 1 part Sterling Silver.\n\nYou can check the liquid Weak Blue Steel's recipe for more precise alloying percentage rates.",
|
||||
"quests.metal_age.weak_blue_steel.steel": "2 Parts Steel",
|
||||
"quests.metal_age.weak_blue_steel.black_steel": "4 Parts Black Steel",
|
||||
"quests.metal_age.weak_blue_steel.sterling_silver": "1 Part Sterling Silver",
|
||||
"quests.metal_age.weak_blue_steel.bismuth_bronze": "1 Part Bismuth Bronze",
|
||||
"quests.metal_age.weak_blu_steel.desc": "Like before, Weak Blue Steel is the first step of Blue Steel's creation. Its alloy is made from 4 parts Black Steel, 2 parts Steel, 1 part Bismuth Bronze, and 1 part Sterling Silver.\n\bYou can check the liquid Weak Blue Steel's recipe for more precise alloying percentage rates.",
|
||||
"quests.metal_age.highcarb_red_steel.title": "Red Steel Ingredients",
|
||||
"quests.metal_age.highcarb_red_steel.subtitle": "Could deleting matter like this power a nuclear bomb?",
|
||||
"quests.metal_age.highcarb_red_steel.desc": "Red Steel first starts as High Carbon Red Steel, which is made by welding Weak Red Steel and Black Steel. It needs to be worked on the Anvil to turn it into Red Steel",
|
||||
"quests.metal_age.highcarb_blu_steel.title": "Blue Steel Ingredients",
|
||||
"quests.metal_age.highcarb_blu_steel.subtitle": "Lavoisier is rolling in his grave",
|
||||
"quests.metal_age.highcarb_blu_steel.desc": "Blue Steel first starts as High Carbon Blue Steel, which is made by welding Weak Blue Steel and Black Steel. It needs to be worked on the Anvil to turn it into Blue Steel",
|
||||
"quests.metal_age.highcarb_blu_steel.desc": "Blue Steel first starts as High Carbon Blue Steel, whcih is made by welding Weak Blue Steel and Black Steel. It needs to be worked on the Anvil to turn it into Blue Steel",
|
||||
"quests.metal_age.redblu_anvil.title": "T6 Anvil: Red or Blue Steel",
|
||||
"quests.metal_age.redblu_anvil.subtitle": "It's over",
|
||||
"quests.metal_age.redblu_anvil.desc": "The final tier of Anvil! With the Tier 6 Anvil you'll be able to work both Red and Blue Steel Ingots into different items.\n\nThis marks the end of TerraFirmaCraft's progression. Now it's time to finish the Industrial Age and create your very first Low Voltage circuitry.",
|
||||
|
|
@ -1557,7 +1538,7 @@
|
|||
"quests.steam_age.centrifuge.desc": "Ore processing will always be an important part of this modpack, and this machine is another (optional) part of that. By following a different route of ore processing steps (check the Ore Processing Diagram tab in JEI), you can use this centrifuge to get some bonus byproducts out of your ores! The next upgrade to your ores won't be until the LV Thermal Centrifuge, so whether or not this is a worthwhile investment is up to you.",
|
||||
"quests.steam_age.steam_engine.title": "Steam Engine",
|
||||
"quests.steam_age.steam_engine.subtitle": "Time for some real steam power",
|
||||
"quests.steam_age.steam_engine.desc": "Water wheels and windmills not cutting it any more? It wouldn't be a steam age without a proper steam engine! Each steam engine can output a whole 256 SU, giving you much more power to play with.\n\nBlaze Burners can be crafted without leaving your house, and you can use a Mechanical Arm to automatically feed them solid fuel, or liquid fuel in a bucket (such as creosote). Coal Gems, Anthracite, and Coke can also be used to superheat them.",
|
||||
"quests.steam_age.steam_engine.desc": "Water wheels and windmills not cutting it any more? It wouldn't be a steam age without a proper steam engine! Each steam engine can output a whole 512 SU, giving you much more power to play with.\n\nBlaze Burners can be crafted without leaving your house, and you can use a Mechanical Arm to automatically feed them solid fuel, or liquid fuel in a bucket. Coal Gems and Coke can also be used to superheat them.",
|
||||
"quests.steam_age.deployers.title": "Deployers",
|
||||
"quests.steam_age.deployers.subtitle": "Primitive Assembly Line",
|
||||
"quests.steam_age.deployers.desc": "While you could use a single deployer for the rest your time in this chapter, we &3really&r don't recommend it. Setting up a line of deployers along a belt will save heaps of time and sanity, and it's not like you'll be wasting materials either, because you can always reuse them to upgrade your tree farm later.\n\nThese will also make electron tubes significantly cheaper!",
|
||||
|
|
|
|||
|
|
@ -27,9 +27,10 @@ const registerTooltips = (event) =>
|
|||
event.addAdvanced(['create:blaze_burner'], (item, advanced, text) => {
|
||||
text.add(1, text.of('§cSuperheat§r with Coke, Anthracite, or Flawless and Exquisite coal gems.'))
|
||||
})
|
||||
event.addAdvanced(['tfg:electric_greenhouse'], (item, advanced, text) => {
|
||||
event.addAdvanced(['gtceu:greenhouse'], (item, advanced, text) => {
|
||||
text.add(1, text.of('This machine has a §2Perfect Overclock§r!')),
|
||||
text.add(2, text.of(`The interior is customizable! Check the multiblock preview in JEI.`))
|
||||
text.add(2, text.of('Currently, due to a bug, sometimes outputs rotten food.'))
|
||||
text.add(3, text.of(`The interior is customizable! Check the multiblock preview in JEI.`))
|
||||
})
|
||||
event.addAdvanced(['gtceu:nether_dome'], (item, advanced, text) => {
|
||||
text.add(1, text.of('Artificial enviroment to simulate the Nether.')),
|
||||
|
|
|
|||
|
|
@ -42,7 +42,6 @@ const registerCreateRecipes = (event) => {
|
|||
})
|
||||
|
||||
event.remove({ type: 'minecraft:stonecutting', input: 'create:andesite_alloy' })
|
||||
event.remove({ type: 'minecraft:stonecutting', input: 'create:rose_quartz' })
|
||||
|
||||
// Train Station
|
||||
event.shapeless('2x create:track_station', [
|
||||
|
|
|
|||
|
|
@ -95,8 +95,16 @@ const registerFirmaLifeRecipes = (event) => {
|
|||
.duration(50)
|
||||
.EUt(2)
|
||||
|
||||
// Pineapple Fiber
|
||||
event.recipes.gtceu.assembler(`tfg:firmalife/pineapple_fiber`)
|
||||
.itemInputs('firmalife:food/pineapple')
|
||||
.circuit(1)
|
||||
.itemOutputs('firmalife:pineapple_fiber')
|
||||
.duration(50)
|
||||
.EUt(7)
|
||||
|
||||
// Pineapple Yarn
|
||||
event.recipes.gtceu.wiremill(`tfg:firmalife/pineapple_yarn`)
|
||||
event.recipes.gtceu.assembler(`tfg:firmalife/pineapple_yarn`)
|
||||
.itemInputs('firmalife:pineapple_fiber')
|
||||
.circuit(1)
|
||||
.itemOutputs('8x firmalife:pineapple_yarn')
|
||||
|
|
@ -446,6 +454,276 @@ const registerFirmaLifeRecipes = (event) => {
|
|||
|
||||
//#endregion
|
||||
|
||||
//#region Рецепты муки
|
||||
|
||||
global.FIRMALIFE_QUERN_FLOUR_RECIPE_COMPONENTS.forEach(element => {
|
||||
event.recipes.gtceu.macerator(`tfg:${element.name}`)
|
||||
.itemInputs(element.input)
|
||||
.itemOutputs(element.output)
|
||||
.duration(200)
|
||||
.EUt(2)
|
||||
})
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Рецепты теста
|
||||
|
||||
global.FIRMALIFE_MIXER_FLATBREAD_DOUGH_RECIPE_COMPONENTS.forEach(element => {
|
||||
event.recipes.gtceu.mixer(element.name)
|
||||
.itemInputs(element.input, '#tfc:sweetener')
|
||||
.inputFluids(Fluid.of('firmalife:yeast_starter', 100))
|
||||
.itemOutputs(element.output)
|
||||
.duration(300)
|
||||
.EUt(16)
|
||||
.circuit(2)
|
||||
})
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Рецепты плоского хлеба
|
||||
|
||||
global.FIRMALIFE_FURNACE_FLATBREAD_RECIPE_COMPONENTS.forEach(element => {
|
||||
event.smelting(element.output, element.input)
|
||||
.id(`tfg:smelting/${element.name}`)
|
||||
})
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Смешивание в миске
|
||||
|
||||
// Тесто для пиццы
|
||||
event.recipes.gtceu.mixer('firmalife:food/pizza_dough_olive_oil')
|
||||
.itemInputs('firmalife:spice/basil_leaves', '#tfc:foods/dough', 'tfc:powder/salt')
|
||||
.inputFluids(Fluid.of('tfc:olive_oil', 1000))
|
||||
.itemOutputs('4x firmalife:food/pizza_dough')
|
||||
.duration(300)
|
||||
.EUt(16)
|
||||
|
||||
event.recipes.gtceu.mixer('firmalife:food/pizza_dough_soybean_oil')
|
||||
.itemInputs('firmalife:spice/basil_leaves', '#tfc:foods/dough', 'tfc:powder/salt')
|
||||
.inputFluids(Fluid.of('firmalife:soybean_oil', 1000))
|
||||
.itemOutputs('4x firmalife:food/pizza_dough')
|
||||
.duration(300)
|
||||
.EUt(16)
|
||||
|
||||
// Vanilla Ice Cream
|
||||
event.recipes.gtceu.mixer('firmalife:food/vanilla_ice_cream')
|
||||
.itemInputs('firmalife:ice_shavings', '#tfc:sweetener', 'firmalife:spice/vanilla')
|
||||
.inputFluids(Fluid.of('firmalife:cream', 1000))
|
||||
.itemOutputs('2x firmalife:food/vanilla_ice_cream')
|
||||
.duration(300)
|
||||
.EUt(16)
|
||||
|
||||
// Pumpkin Pie Dough
|
||||
event.recipes.gtceu.mixer('firmalife:food/pumpkin_pie_dough')
|
||||
.itemInputs('#tfc:sweetener', '#forge:eggs', '2x tfc:food/pumpkin_chunks', '#tfc:foods/flour')
|
||||
.inputFluids(Fluid.of('minecraft:water', 1000))
|
||||
.itemOutputs('firmalife:food/pumpkin_pie_dough')
|
||||
.duration(300)
|
||||
.EUt(16)
|
||||
.circuit(2)
|
||||
|
||||
// Butter
|
||||
event.recipes.gtceu.mixer('firmalife:food/butter')
|
||||
.itemInputs('tfc:powder/salt')
|
||||
.inputFluids(Fluid.of('firmalife:cream', 1000))
|
||||
.itemOutputs('firmalife:food/butter')
|
||||
.duration(300)
|
||||
.EUt(16)
|
||||
|
||||
// Pie Dough
|
||||
event.recipes.gtceu.mixer('firmalife:food/pie_dough')
|
||||
.itemInputs('#tfc:sweetener', 'firmalife:food/butter', '#tfc:foods/flour')
|
||||
.inputFluids(Fluid.of('minecraft:water', 1000))
|
||||
.itemOutputs('firmalife:food/pie_dough')
|
||||
.duration(300)
|
||||
.EUt(16)
|
||||
.circuit(2)
|
||||
|
||||
// Cookie Dough
|
||||
event.recipes.gtceu.mixer('firmalife:food/cookie_dough')
|
||||
.itemInputs('#tfc:sweetener', 'firmalife:food/butter', '#tfc:foods/flour', '#forge:eggs', 'firmalife:spice/vanilla')
|
||||
.itemOutputs('4x firmalife:food/cookie_dough')
|
||||
.duration(300)
|
||||
.EUt(16)
|
||||
|
||||
// Hardtack Dough
|
||||
event.recipes.gtceu.mixer('firmalife:food/hardtack_dough')
|
||||
.itemInputs('tfc:powder/salt', '#tfc:foods/flour')
|
||||
.inputFluids(Fluid.of('minecraft:water', 1000))
|
||||
.itemOutputs('4x firmalife:food/hardtack_dough')
|
||||
.duration(300)
|
||||
.EUt(16)
|
||||
.circuit(2)
|
||||
|
||||
// Yeast starter
|
||||
event.recipes.gtceu.mixer('firmalife:yeast_starter')
|
||||
.inputFluids(Fluid.of('firmalife:yeast_starter', 100))
|
||||
.itemInputs('#tfc:foods/flour')
|
||||
.outputFluids(Fluid.of('firmalife:yeast_starter', 600))
|
||||
.duration(1200)
|
||||
.EUt(8)
|
||||
.circuit(1)
|
||||
|
||||
// Cocoa Powder
|
||||
event.recipes.gtceu.macerator('firmalife:food/cocoa_powder')
|
||||
.itemInputs('gtceu:cocoa_dust')
|
||||
.itemOutputs('4x firmalife:food/cocoa_powder')
|
||||
.duration(100)
|
||||
.EUt(2)
|
||||
|
||||
event.recipes.tfc.quern('4x firmalife:food/cocoa_powder', 'gtceu:cocoa_dust')
|
||||
.id(`tfg:quern/cocoa_powder`)
|
||||
|
||||
event.recipes.tfc.quern('gtceu:cocoa_dust', 'firmalife:food/roasted_cocoa_beans')
|
||||
.id('tfg:quern/cocoa_dust');
|
||||
|
||||
// Chocolate Ice Cream
|
||||
event.recipes.gtceu.mixer('firmalife:food/chocolate_ice_cream')
|
||||
.itemInputs('firmalife:food/vanilla_ice_cream')
|
||||
.inputFluids(Fluid.of('firmalife:chocolate', 1000))
|
||||
.itemOutputs('firmalife:food/chocolate_ice_cream')
|
||||
.duration(300)
|
||||
.EUt(16)
|
||||
|
||||
// White Chocolate Blend
|
||||
event.recipes.gtceu.mixer('firmalife:food/white_chocolate_blend/milk')
|
||||
.itemInputs('2x firmalife:food/cocoa_butter', '#tfc:sweetener')
|
||||
.inputFluids(Fluid.of('minecraft:milk', 1000))
|
||||
.itemOutputs('2x firmalife:food/white_chocolate_blend')
|
||||
.duration(300)
|
||||
.EUt(16)
|
||||
|
||||
event.recipes.gtceu.mixer('firmalife:food/white_chocolate_blend/yak_milk')
|
||||
.itemInputs('2x firmalife:food/cocoa_butter', '#tfc:sweetener')
|
||||
.inputFluids(Fluid.of('firmalife:yak_milk', 1000))
|
||||
.itemOutputs('2x firmalife:food/white_chocolate_blend')
|
||||
.duration(300)
|
||||
.EUt(16)
|
||||
|
||||
event.recipes.gtceu.mixer('firmalife:food/white_chocolate_blend/goat_milk')
|
||||
.itemInputs('2x firmalife:food/cocoa_butter', '#tfc:sweetener')
|
||||
.inputFluids(Fluid.of('firmalife:goat_milk', 1000))
|
||||
.itemOutputs('2x firmalife:food/white_chocolate_blend')
|
||||
.duration(300)
|
||||
.EUt(16)
|
||||
|
||||
event.recipes.gtceu.mixer('firmalife:food/white_chocolate_blend/coconut_milk')
|
||||
.itemInputs('2x firmalife:food/cocoa_butter', '#tfc:sweetener')
|
||||
.inputFluids(Fluid.of('firmalife:coconut_milk', 1000))
|
||||
.itemOutputs('2x firmalife:food/white_chocolate_blend')
|
||||
.duration(300)
|
||||
.EUt(16)
|
||||
|
||||
event.smelting('firmalife:food/white_chocolate', 'firmalife:food/white_chocolate_blend')
|
||||
|
||||
// Dark Chocolate Blend
|
||||
event.recipes.gtceu.mixer('firmalife:food/dark_chocolate_blend/milk')
|
||||
.itemInputs('2x firmalife:food/cocoa_powder', '#tfc:sweetener')
|
||||
.inputFluids(Fluid.of('minecraft:milk', 1000))
|
||||
.itemOutputs('2x firmalife:food/dark_chocolate_blend')
|
||||
.duration(300)
|
||||
.EUt(16)
|
||||
|
||||
event.recipes.gtceu.mixer('firmalife:food/dark_chocolate_blend/yak_milk')
|
||||
.itemInputs('2x firmalife:food/cocoa_powder', '#tfc:sweetener')
|
||||
.inputFluids(Fluid.of('firmalife:yak_milk', 1000))
|
||||
.itemOutputs('2x firmalife:food/dark_chocolate_blend')
|
||||
.duration(300)
|
||||
.EUt(16)
|
||||
|
||||
event.recipes.gtceu.mixer('firmalife:food/dark_chocolate_blend/goat_milk')
|
||||
.itemInputs('2x firmalife:food/cocoa_powder', '#tfc:sweetener')
|
||||
.inputFluids(Fluid.of('firmalife:goat_milk', 1000))
|
||||
.itemOutputs('2x firmalife:food/dark_chocolate_blend')
|
||||
.duration(300)
|
||||
.EUt(16)
|
||||
|
||||
|
||||
event.recipes.gtceu.mixer('firmalife:food/dark_chocolate_blend/coconut_milk')
|
||||
.itemInputs('2x firmalife:food/cocoa_powder', '#tfc:sweetener')
|
||||
.inputFluids(Fluid.of('firmalife:coconut_milk', 1000))
|
||||
.itemOutputs('2x firmalife:food/dark_chocolate_blend')
|
||||
.duration(300)
|
||||
.EUt(16)
|
||||
|
||||
event.smelting('firmalife:food/dark_chocolate', 'firmalife:food/dark_chocolate_blend')
|
||||
|
||||
// Milk Chocolate Blend
|
||||
event.recipes.gtceu.mixer('firmalife:food/milk_chocolate_blend/milk')
|
||||
.itemInputs('firmalife:food/cocoa_powder', 'firmalife:food/cocoa_butter', '#tfc:sweetener')
|
||||
.inputFluids(Fluid.of('minecraft:milk', 1000))
|
||||
.itemOutputs('2x firmalife:food/milk_chocolate_blend')
|
||||
.duration(300)
|
||||
.EUt(16)
|
||||
|
||||
event.recipes.gtceu.mixer('firmalife:food/milk_chocolate_blend/yak_milk')
|
||||
.itemInputs('firmalife:food/cocoa_powder', 'firmalife:food/cocoa_butter', '#tfc:sweetener')
|
||||
.inputFluids(Fluid.of('firmalife:yak_milk', 1000))
|
||||
.itemOutputs('2x firmalife:food/milk_chocolate_blend')
|
||||
.duration(300)
|
||||
.EUt(16)
|
||||
|
||||
event.recipes.gtceu.mixer('firmalife:food/milk_chocolate_blend/goat_milk')
|
||||
.itemInputs('firmalife:food/cocoa_powder', 'firmalife:food/cocoa_butter', '#tfc:sweetener')
|
||||
.inputFluids(Fluid.of('firmalife:goat_milk', 1000))
|
||||
.itemOutputs('2x firmalife:food/milk_chocolate_blend')
|
||||
.duration(300)
|
||||
.EUt(16)
|
||||
|
||||
event.recipes.gtceu.mixer('firmalife:food/milk_chocolate_blend/coconut_milk')
|
||||
.itemInputs('firmalife:food/cocoa_powder', 'firmalife:food/cocoa_butter', '#tfc:sweetener')
|
||||
.inputFluids(Fluid.of('firmalife:coconut_milk', 1000))
|
||||
.itemOutputs('2x firmalife:food/milk_chocolate_blend')
|
||||
.duration(300)
|
||||
.EUt(16)
|
||||
|
||||
event.smelting('firmalife:food/milk_chocolate', 'firmalife:food/milk_chocolate_blend')
|
||||
|
||||
// Strawberry Ice Cream
|
||||
event.recipes.gtceu.mixer('firmalife:food/strawberry_ice_cream')
|
||||
.itemInputs('firmalife:food/vanilla_ice_cream', '2x tfc:food/strawberry')
|
||||
.itemOutputs('firmalife:food/strawberry_ice_cream')
|
||||
.duration(300)
|
||||
.EUt(16)
|
||||
|
||||
// Hardtack Dough
|
||||
event.recipes.gtceu.mixer('firmalife:food/chocolate_chip_cookie_dough')
|
||||
.itemInputs('4x firmalife:food/cookie_dough', '#firmalife:chocolate_blends')
|
||||
.itemOutputs('4x firmalife:food/chocolate_chip_cookie_dough')
|
||||
.duration(300)
|
||||
.EUt(16)
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Обжарка некоторой еды
|
||||
|
||||
// Cooked Pizza
|
||||
event.smelting('firmalife:food/cooked_pizza', 'firmalife:food/raw_pizza')
|
||||
|
||||
// Taco Shell
|
||||
event.smelting('firmalife:food/taco_shell', 'firmalife:food/corn_tortilla')
|
||||
|
||||
// Sugar Cookie
|
||||
event.smelting('firmalife:food/sugar_cookie', 'firmalife:food/cookie_dough')
|
||||
|
||||
// Chocolate Chip Cookie
|
||||
event.smelting('firmalife:food/chocolate_chip_cookie', 'firmalife:food/chocolate_chip_cookie_dough')
|
||||
|
||||
// Hardtack
|
||||
event.smelting('firmalife:food/hardtack', 'firmalife:food/hardtack_dough')
|
||||
|
||||
// Cooked Pie
|
||||
event.smelting('firmalife:food/cooked_pie', 'firmalife:food/filled_pie')
|
||||
|
||||
// Roasted Cocoa Beans
|
||||
event.smelting('firmalife:food/roasted_cocoa_beans', 'firmalife:food/cocoa_beans')
|
||||
|
||||
// Pumpkin Pie
|
||||
event.smelting('minecraft:pumpkin_pie', 'firmalife:food/raw_pumpkin_pie')
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Sticky Resin by Vat
|
||||
|
||||
event.recipes.firmalife.vat()
|
||||
|
|
@ -481,6 +759,28 @@ const registerFirmaLifeRecipes = (event) => {
|
|||
|
||||
// #endregion
|
||||
|
||||
// #region Smashed food
|
||||
|
||||
event.recipes.gtceu.forge_hammer('firmalife:soybean_paste')
|
||||
.itemInputs('firmalife:food/dehydrated_soybeans')
|
||||
.itemOutputs('firmalife:food/soybean_paste')
|
||||
.duration(20)
|
||||
.EUt(7)
|
||||
|
||||
event.recipes.gtceu.forge_hammer('firmalife:red_grapes')
|
||||
.itemInputs('firmalife:food/red_grapes')
|
||||
.itemOutputs('firmalife:food/smashed_red_grapes')
|
||||
.duration(20)
|
||||
.EUt(7)
|
||||
|
||||
event.recipes.gtceu.forge_hammer('firmalife:white_grapes')
|
||||
.itemInputs('firmalife:food/white_grapes')
|
||||
.itemOutputs('firmalife:food/smashed_white_grapes')
|
||||
.duration(20)
|
||||
.EUt(7)
|
||||
|
||||
// #endregion
|
||||
|
||||
// #region Drying mat alternatives
|
||||
|
||||
event.shaped('firmalife:drying_mat', ['AAA'], { A: 'tfc:plant/leafy_kelp' }).id('tfg:shaped/drying_mat_leafy_kelp')
|
||||
|
|
@ -495,4 +795,13 @@ const registerFirmaLifeRecipes = (event) => {
|
|||
.circuit(5)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
.duration(200)
|
||||
|
||||
event.smelting('firmalife:food/dehydrated_soybeans', 'tfc:food/soybean')
|
||||
|
||||
event.recipes.gtceu.fermenter('soybean_oil')
|
||||
.itemInputs('firmalife:food/soybean_paste')
|
||||
.inputFluids(Fluid.of('minecraft:water', 100))
|
||||
.outputFluids(Fluid.of('firmalife:soybean_oil', 250))
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
.duration(600)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@ function removeGreateRecipes(event) {
|
|||
event.remove({ id: 'greate:shaped/titanium_mechanical_saw' })
|
||||
|
||||
event.remove({ id: 'greate:splashing/dough' })
|
||||
event.remove({ id: 'gtceu:electrolyzer/decomposition_electrolyzing_chromatic_compound' })
|
||||
|
||||
event.remove({ mod: 'greate', type: 'create:deploying' });
|
||||
event.remove({ mod: 'greate', type: 'create:sequenced_assembly' });
|
||||
|
|
|
|||
|
|
@ -744,6 +744,18 @@ function registerGTCEuMachineRecipes(event) {
|
|||
|
||||
// #endregion
|
||||
|
||||
// Контроллер теплицы
|
||||
event.shaped('gtceu:greenhouse', [
|
||||
'ABA',
|
||||
'CDC',
|
||||
'BCB'
|
||||
], {
|
||||
A: '#gtceu:circuits/mv',
|
||||
B: 'gtceu:copper_single_cable',
|
||||
C: 'tfc:compost',
|
||||
D: 'gtceu:solid_machine_casing'
|
||||
}).id('tfg:shaped/greenhouse')
|
||||
|
||||
// Drums
|
||||
const DRUMS_AND_CRATES = [
|
||||
'bismuth_bronze',
|
||||
|
|
|
|||
|
|
@ -139,7 +139,7 @@ function registerGTCEUMetalRecipes(event) {
|
|||
|
||||
let matAmount = TagPrefix.block.getMaterialAmount(material) / GTValues.M;
|
||||
|
||||
if (!plateStack.isEmpty() && !ingotStack.hasTag('c:hidden_from_recipe_viewers')) {
|
||||
if (!plateStack.isEmpty()) {
|
||||
|
||||
event.custom({
|
||||
type: "createaddition:rolling",
|
||||
|
|
@ -149,6 +149,7 @@ function registerGTCEUMetalRecipes(event) {
|
|||
}).id(`tfg:rolling/${material.getName()}_plate`)
|
||||
|
||||
if (!blockStack.isEmpty() && GTMaterials.Stone != material) {
|
||||
|
||||
// 9х Слиток -> Блок
|
||||
event.recipes.createCompacting(blockStack, ingotStack.withCount(matAmount))
|
||||
.heated()
|
||||
|
|
@ -157,6 +158,7 @@ function registerGTCEUMetalRecipes(event) {
|
|||
}
|
||||
else {
|
||||
if (!blockStack.isEmpty()) {
|
||||
|
||||
// Блок из гемов -> 9 Пластин
|
||||
event.recipes.createCutting(plateStack.withCount(matAmount).withChance(0.65), blockStack)
|
||||
.id(`tfg:cutting/${material.getName()}_plate`)
|
||||
|
|
@ -190,7 +192,7 @@ function registerGTCEUMetalRecipes(event) {
|
|||
const foilItem = ChemicalHelper.get(TagPrefix.foil, material, 4)
|
||||
const plateItem = ChemicalHelper.get(TagPrefix.plate, material, 1)
|
||||
|
||||
if (plateItem != null && foilItem != null && !plateItem.hasTag('c:hidden_from_recipe_viewers')) {
|
||||
if (plateItem != null && foilItem != null) {
|
||||
event.custom({
|
||||
type: "createaddition:rolling",
|
||||
input: plateItem,
|
||||
|
|
|
|||
|
|
@ -1028,5 +1028,4 @@ const registerMinecraftRecipes = (event) => {
|
|||
}).id('tfg:shaped/stonecutter');
|
||||
|
||||
event.stonecutting('minecraft:smooth_quartz', 'minecraft:quartz_block')
|
||||
event.stonecutting('create:cut_deepslate', 'minecraft:polished_deepslate')
|
||||
}
|
||||
|
|
|
|||
|
|
@ -56,7 +56,6 @@ const registerMinecraftItemTags = (event) => {
|
|||
|
||||
event.remove('forge:gems', 'minecraft:charcoal')
|
||||
event.remove('forge:gems', 'minecraft:coal')
|
||||
event.remove('forge:gems', 'minecraft:flint')
|
||||
|
||||
event.add('tfc:compost_greens_high', 'minecraft:red_mushroom_block')
|
||||
event.add('tfc:compost_greens_high', 'minecraft:brown_mushroom_block')
|
||||
|
|
|
|||
|
|
@ -69,7 +69,6 @@ const registerTFCHeats = (event) => {
|
|||
makeItemHeatByTagPrefix(TagPrefix.rodLong, material, tfcProperty, 1.429)
|
||||
|
||||
makeItemHeatByTagPrefix(TagPrefix.ingot, material, tfcProperty, 1.429)
|
||||
makeItemHeatByTagPrefix(TFGTagPrefix.ingotDouble, material, tfcProperty, 2.875)
|
||||
|
||||
makeItemHeatByTagPrefix(TagPrefix.rawOre, material, tfcProperty, 1.429)
|
||||
makeItemHeatByTagPrefix(TFGTagPrefix.richRawOre, material, tfcProperty, 1.429)
|
||||
|
|
|
|||
|
|
@ -34,6 +34,44 @@ const registerTFCRecipes = (event) => {
|
|||
|
||||
//#endregion
|
||||
|
||||
//#region Рецепты зерен
|
||||
|
||||
global.TFC_QUERN_GRAIN_RECIPE_COMPONENTS.forEach(element => {
|
||||
|
||||
event.recipes.gtceu.macerator(`tfg:${element.name}`)
|
||||
.itemInputs(element.input)
|
||||
.itemOutputs(element.output)
|
||||
.chancedOutput('tfc:straw', 7000, 500)
|
||||
.duration(200)
|
||||
.EUt(2)
|
||||
|
||||
event.recipes.tfc.quern(element.output, element.input)
|
||||
.id(`tfg:quern/${element.name}`)
|
||||
})
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Рецепты муки
|
||||
|
||||
global.TFC_QUERN_FLOUR_RECIPE_COMPONENTS.forEach(element => {
|
||||
event.recipes.gtceu.macerator(`tfg:${element.name}`)
|
||||
.itemInputs(element.input)
|
||||
.itemOutputs(element.output)
|
||||
.duration(200)
|
||||
.EUt(2)
|
||||
})
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Рецепты обжарки мяса
|
||||
|
||||
global.TFC_FURNACE_MEAT_RECIPE_COMPONENTS.forEach(element => {
|
||||
event.smelting(element.output, element.input)
|
||||
.id(`tfg:smelting/${element.name}`)
|
||||
})
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Рецепты обжарки форм
|
||||
|
||||
global.TFC_FURNACE_MOLD_RECIPE_COMPONENTS.forEach(element => {
|
||||
|
|
@ -88,6 +126,15 @@ const registerTFCRecipes = (event) => {
|
|||
|
||||
//#endregion
|
||||
|
||||
//#region Рецепты хлеба
|
||||
|
||||
global.TFC_FURNACE_BREAD_RECIPE_COMPONENTS.forEach(element => {
|
||||
event.smelting(element.output, element.input)
|
||||
.id(`tfg:smelting/${element.name}`)
|
||||
})
|
||||
|
||||
//#endregion
|
||||
|
||||
event.shapeless('tfc:crucible', ['tfc:crucible']).id('tfg:empty_crucible')
|
||||
|
||||
event.shapeless('2x minecraft:stick', ['#minecraft:saplings', '#forge:tools/knives']).id('tfg:strip_saplings')
|
||||
|
|
|
|||
|
|
@ -117,6 +117,20 @@ function registerTFCMachineRecipes(event) {
|
|||
.duration(3200)
|
||||
.EUt(16)
|
||||
|
||||
//#region Рецепты плоского теста
|
||||
|
||||
global.TFC_MIXER_FLATBREAD_DOUGH_RECIPE_COMPONENTS.forEach(element => {
|
||||
event.recipes.gtceu.mixer(element.name)
|
||||
.itemInputs(element.input)
|
||||
.inputFluids(Fluid.of('minecraft:water', 100))
|
||||
.itemOutputs(element.output)
|
||||
.duration(300)
|
||||
.EUt(16)
|
||||
.circuit(3)
|
||||
})
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Молды в ассемблере
|
||||
|
||||
for (let i = 0; i < global.TFC_CLAY_TO_UNFIRED_MOLD_RECIPE_COMPONENTS.length; i++) {
|
||||
|
|
@ -160,9 +174,158 @@ function registerTFCMachineRecipes(event) {
|
|||
.duration(2400)
|
||||
.EUt(16)
|
||||
|
||||
// Curdled milk
|
||||
event.recipes.gtceu.fermenter('tfg:fermenter/curdled_milk')
|
||||
.inputFluids(Fluid.of('minecraft:milk', 2000))
|
||||
.itemInputs('firmalife:rennet')
|
||||
.outputFluids(Fluid.of('tfc:curdled_milk', 2000))
|
||||
.duration(2400)
|
||||
.EUt(16)
|
||||
|
||||
event.recipes.gtceu.fermenter('tfg:fermenter/curdled_yak_milk')
|
||||
.inputFluids(Fluid.of('firmalife:yak_milk', 2000))
|
||||
.itemInputs('firmalife:rennet')
|
||||
.outputFluids(Fluid.of('firmalife:curdled_yak_milk', 2000))
|
||||
.duration(2400)
|
||||
.EUt(16)
|
||||
|
||||
event.recipes.gtceu.fermenter('tfg:fermenter/curdled_goat_milk')
|
||||
.inputFluids(Fluid.of('firmalife:goat_milk', 2000))
|
||||
.itemInputs('firmalife:rennet')
|
||||
.outputFluids(Fluid.of('firmalife:curdled_goat_milk', 2000))
|
||||
.duration(2400)
|
||||
.EUt(16)
|
||||
|
||||
//Curds
|
||||
event.recipes.gtceu.fermenter('tfg:fermenter/milk_curd')
|
||||
.inputFluids(Fluid.of('tfc:curdled_milk', 1000))
|
||||
.itemOutputs('firmalife:food/milk_curd')
|
||||
.duration(1200)
|
||||
.EUt(16)
|
||||
|
||||
event.recipes.gtceu.fermenter('tfg:fermenter/yak_curd')
|
||||
.inputFluids(Fluid.of('firmalife:curdled_yak_milk', 1000))
|
||||
.itemOutputs('firmalife:food/yak_curd')
|
||||
.duration(1200)
|
||||
.EUt(16)
|
||||
|
||||
event.recipes.gtceu.fermenter('tfg:fermenter/goat_curd')
|
||||
.inputFluids(Fluid.of('firmalife:curdled_goat_milk', 1000))
|
||||
.itemOutputs('firmalife:food/goat_curd')
|
||||
.duration(1200)
|
||||
.EUt(16)
|
||||
|
||||
// Cheese wheels
|
||||
event.recipes.gtceu.fermenter('tfg:fermenter/gouda_wheel')
|
||||
.inputFluids(Fluid.of('tfc:salt_water', 750))
|
||||
.itemInputs('3x firmalife:food/milk_curd')
|
||||
.itemOutputs('firmalife:gouda_wheel')
|
||||
.duration(12000)
|
||||
.EUt(24)
|
||||
|
||||
event.recipes.gtceu.fermenter('tfg:fermenter/shosha_wheel')
|
||||
.inputFluids(Fluid.of('tfc:salt_water', 750))
|
||||
.itemInputs('3x firmalife:food/yak_curd')
|
||||
.itemOutputs('firmalife:shosha_wheel')
|
||||
.duration(12000)
|
||||
.EUt(24)
|
||||
|
||||
event.recipes.gtceu.fermenter('tfg:fermenter/feta_wheel')
|
||||
.inputFluids(Fluid.of('tfc:salt_water', 750))
|
||||
.itemInputs('3x firmalife:food/goat_curd')
|
||||
.itemOutputs('firmalife:feta_wheel')
|
||||
.duration(12000)
|
||||
.EUt(24)
|
||||
|
||||
// Cutting
|
||||
event.recipes.gtceu.cutter('tfg:cutter/gouda')
|
||||
.itemInputs('firmalife:gouda_wheel')
|
||||
.itemOutputs('4x firmalife:food/gouda')
|
||||
.duration(40)
|
||||
.EUt(7)
|
||||
|
||||
event.recipes.gtceu.cutter('tfg:cutter/shosha')
|
||||
.itemInputs('firmalife:shosha_wheel')
|
||||
.itemOutputs('4x firmalife:food/shosha')
|
||||
.duration(40)
|
||||
.EUt(7)
|
||||
|
||||
event.recipes.gtceu.cutter('tfg:cutter/feta')
|
||||
.itemInputs('firmalife:feta_wheel')
|
||||
.itemOutputs('4x firmalife:food/feta')
|
||||
.duration(40)
|
||||
.EUt(7)
|
||||
|
||||
event.recipes.gtceu.cutter('tfg:cutter/cheddar')
|
||||
.itemInputs('firmalife:cheddar_wheel')
|
||||
.itemOutputs('4x firmalife:food/cheddar')
|
||||
.duration(40)
|
||||
.EUt(7)
|
||||
|
||||
event.recipes.gtceu.cutter('tfg:cutter/chevre')
|
||||
.itemInputs('firmalife:chevre_wheel')
|
||||
.itemOutputs('4x firmalife:food/chevre')
|
||||
.duration(40)
|
||||
.EUt(7)
|
||||
|
||||
event.recipes.gtceu.cutter('tfg:cutter/rajya_metok')
|
||||
.itemInputs('firmalife:rajya_metok_wheel')
|
||||
.itemOutputs('4x firmalife:food/rajya_metok')
|
||||
.duration(40)
|
||||
.EUt(7)
|
||||
|
||||
// Misc
|
||||
global.TFC_MILKS.forEach(milk => {
|
||||
event.recipes.gtceu.fermenter(`tfg:fermenter/cream_from_${milk.id.replace(':', '_')}`)
|
||||
.inputFluids(Fluid.of(milk.id, 1000))
|
||||
.outputFluids(Fluid.of('firmalife:cream'))
|
||||
.circuit(6)
|
||||
.duration(1200)
|
||||
.EUt(24)
|
||||
})
|
||||
|
||||
event.recipes.gtceu.mixer('tfg:mixer/tomato_sauce')
|
||||
.itemInputs('firmalife:food/tomato_sauce_mix')
|
||||
.inputFluids(Fluid.of('minecraft:water', 200))
|
||||
.itemOutputs('firmalife:food/tomato_sauce')
|
||||
.duration(200)
|
||||
.EUt(24)
|
||||
|
||||
//#endregion
|
||||
|
||||
// Brine
|
||||
//#region Оливки
|
||||
|
||||
event.recipes.gtceu.macerator(`tfg:tfc/olive_paste`)
|
||||
.itemInputs('tfc:food/olive')
|
||||
.itemOutputs('2x tfc:olive_paste')
|
||||
.duration(60)
|
||||
.EUt(2)
|
||||
|
||||
event.recipes.gtceu.mixer('tfg:tfc/olive_oil_water')
|
||||
.inputFluids(Fluid.of('water', 200))
|
||||
.itemInputs('1x tfc:olive_paste')
|
||||
.outputFluids(Fluid.of('tfc:olive_oil_water', 200))
|
||||
.duration(200)
|
||||
.EUt(28)
|
||||
|
||||
event.recipes.gtceu.distillery('tfg:tfc/olive_oil')
|
||||
.inputFluids(Fluid.of('tfc:olive_oil_water', 250))
|
||||
.outputFluids(Fluid.of('tfc:olive_oil', 50))
|
||||
.duration(600)
|
||||
.EUt(28)
|
||||
|
||||
//#endregion
|
||||
|
||||
// Vinegar and Brine
|
||||
|
||||
global.TFC_ALCOHOL.forEach(alcohol => {
|
||||
event.recipes.gtceu.fermenter(`tfg:tfc/vinegar/${alcohol.id.replace(':', '_')}`)
|
||||
.itemInputs('#tfc:foods/fruits')
|
||||
.inputFluids(Fluid.of(alcohol.id, 250))
|
||||
.outputFluids(Fluid.of('tfc:vinegar', 250))
|
||||
.duration(600)
|
||||
.EUt(28)
|
||||
})
|
||||
|
||||
event.recipes.gtceu.mixer('tfg:tfc/brine')
|
||||
.inputFluids(Fluid.of('tfc:salt_water', 900))
|
||||
|
|
|
|||
|
|
@ -1114,15 +1114,6 @@ function registerTFCMaterialsRecipes(event) {
|
|||
let tongPartStack = Item.of(`tfchotornot:tong_part/${material.getName()}`)
|
||||
|
||||
if (!tongsStack.isEmpty() && !tongPartStack.isEmpty()) {
|
||||
event.shaped(tongsStack, [
|
||||
'AA',
|
||||
'BC'
|
||||
], {
|
||||
A: tongPartStack,
|
||||
B: '#forge:bolts',
|
||||
C: '#forge:tools/hammers'
|
||||
}).id(`tfchotornot:crafting/tongs/${material.getName()}`)
|
||||
|
||||
// Ручка щипцов
|
||||
event.recipes.tfc.heating(tongPartStack, tfcProperty.getMeltTemp())
|
||||
.resultFluid(Fluid.of(outputMaterial.getFluid(), 144))
|
||||
|
|
|
|||
|
|
@ -47,13 +47,13 @@ function registerTFCLunchBoxRecipes(event) {
|
|||
event.recipes.gtceu.canner('tfclunchbox:fill_capsule_with_ice')
|
||||
.itemInputs('tfclunchbox:universal_capsule')
|
||||
.inputFluids(Fluid.of('gtceu:ice', 45 * 144))
|
||||
.itemOutputs(Item.of('tfclunchbox:universal_capsule', '{Durability:1000}').withName(Text.translate('item.tfclunchbox.universal_capsule.filled')))
|
||||
.itemOutputs(Item.of('tfclunchbox:universal_capsule', '{Durability:500}').withName(Text.translate('item.tfclunchbox.universal_capsule.filled')))
|
||||
.duration(100)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
event.recipes.gtceu.canner('tfclunchbox:fill_capsule_with_ice_solid')
|
||||
.itemInputs('tfclunchbox:universal_capsule', '5x minecraft:packed_ice')
|
||||
.itemOutputs(Item.of('tfclunchbox:universal_capsule', '{Durability:1000}').withName(Text.translate('item.tfclunchbox.universal_capsule.filled')))
|
||||
.itemOutputs(Item.of('tfclunchbox:universal_capsule', '{Durability:500}').withName(Text.translate('item.tfclunchbox.universal_capsule.filled')))
|
||||
.duration(100)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,620 +0,0 @@
|
|||
// priority: 0
|
||||
/**
|
||||
* @param {Internal.RecipesEventJS} event
|
||||
*/
|
||||
function registerTFGFoodRecipes(event) {
|
||||
|
||||
const $ISPRecipeLogic = Java.loadClass("su.terrafirmagreg.core.common.data.machines.ISPOutputRecipeLogic")
|
||||
const $SizedIngredient = Java.loadClass("com.gregtechceu.gtceu.api.recipe.ingredient.SizedIngredient")
|
||||
const Sized = (ing, amount) => $SizedIngredient.create(ing, amount)
|
||||
|
||||
/**
|
||||
* @typedef {Object} FoodRecipeData
|
||||
* @property {number?} circuit
|
||||
* @property {Internal.GTRecipeComponents$FluidIngredientJS_[]?} fluidInputs
|
||||
* @property {Internal.FluidStackJS[]?} fluidOutputs
|
||||
* @property {(string | [string, Internal.Ingredient])[]?} itemInputs
|
||||
* @property {string[]?} itemOutputs Ingredient outputs - first output is replaced with ISP output if defined
|
||||
* @property {Internal.ItemStackProviderJS?} itemOutputProvider ItemStackProvider which provides the recipe output.
|
||||
*
|
||||
* **NOTE:** TFC Ingredients do not support item counts higher than 1. Do `Sized(TFCIngredient('item:item'), count)` instead of `TFCIngredient('[count]x item:item')`
|
||||
*/
|
||||
|
||||
//#region Helper funcs
|
||||
|
||||
/**
|
||||
* @param {"food_oven"|"food_processor"} type
|
||||
* @param {string} id
|
||||
* @param {string} duration
|
||||
* @param {string} EUt
|
||||
* @param {FoodRecipeData} data
|
||||
*/
|
||||
function registerFoodRecipe(type, id, duration, EUt, data) {
|
||||
if (data.itemInputs === undefined) data.itemInputs = []
|
||||
if (data.itemOutputs === undefined) data.itemOutputs = []
|
||||
if (data.fluidInputs === undefined) data.fluidInputs = []
|
||||
if (data.fluidOutputs === undefined) data.fluidOutputs = []
|
||||
let gregInputs = [], inputs= []
|
||||
let outputFirstIndex = (data.itemOutputProvider === undefined) ? 0 : 1
|
||||
data.itemInputs.forEach(item => {
|
||||
if (typeof item === "string") {
|
||||
gregInputs.push(item)
|
||||
|
||||
const match = item.match(/^(\d+)\s*x\s*/i);
|
||||
let count = 1
|
||||
if (match) {
|
||||
count = parseInt(match[1]);
|
||||
item = item.slice(match[0].length);
|
||||
}
|
||||
inputs.push($SizedIngredient.create(item, count))
|
||||
} else {
|
||||
gregInputs.push(item[0])
|
||||
inputs.push(item[1])
|
||||
}
|
||||
})
|
||||
|
||||
$ISPRecipeLogic.RegisterRecipeData(type + "/" + id, inputs, (data.itemOutputProvider === undefined) ? null : data.itemOutputProvider.asCanonClass(), data.itemOutputs.slice(outputFirstIndex).map(i => Item.of(i)))
|
||||
|
||||
let r = event.recipes.gtceu[type](id)
|
||||
.duration(duration)
|
||||
.EUt(EUt)
|
||||
|
||||
if (data.circuit) r.circuit(data.circuit)
|
||||
if (data.itemOutputs.length > 0) r.itemOutputs(data.itemOutputs)
|
||||
if (data.itemInputs.length > 0) r.itemInputs(data.itemInputs)
|
||||
if (data.fluidInputs.length > 0) r.inputFluids(data.fluidInputs);
|
||||
if (data.fluidOutputs.length > 0) r.outputFluids(data.fluidOutputs);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} id
|
||||
* @param {number} duration
|
||||
* @param {EUt} EUt
|
||||
* @param {FoodRecipeData} data
|
||||
*/
|
||||
const processorRecipe = (id, duration, EUt, data) => registerFoodRecipe("food_processor", id, duration, EUt, data)
|
||||
|
||||
/**
|
||||
* @param {string} id
|
||||
* @param {string} input
|
||||
* @param {string} out
|
||||
* @param {Internal.FluidIngredient?} fluid
|
||||
* @param {boolean?} isFirmaDynamic
|
||||
*/
|
||||
function cookingRecipe(id, input, out, fluid, isFirmaDynamic) {
|
||||
registerFoodRecipe("food_oven", id, 300, 32, {
|
||||
itemInputs: [input],
|
||||
itemOutputs: [out],
|
||||
fluidInputs: (fluid === undefined) ? [] : [fluid],
|
||||
itemInputs: [input],
|
||||
itemOutputProvider: (isFirmaDynamic) ? TFC.isp.of(out).firmaLifeCopyDynamicFood() : TFC.isp.of(out).copyFood().addTrait("firmalife:oven_baked")
|
||||
})
|
||||
}
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region ================= Meat cooking =================
|
||||
|
||||
global.TFC_MEAT_RECIPE_COMPONENTS.forEach(item => {
|
||||
cookingRecipe(item.name, item.input, item.output)
|
||||
})
|
||||
|
||||
//#endregion
|
||||
//#region ================= TFC Grains =================
|
||||
|
||||
global.TFC_GRAINS.forEach(grain => {
|
||||
|
||||
// Raw crop to grain
|
||||
processorRecipe(`${grain}_grain`, 100, 8, {
|
||||
itemInputs: [`tfc:food/${grain}`],
|
||||
itemOutputs: [`tfc:food/${grain}_grain`],
|
||||
itemOutputProvider: TFC.isp.of(`tfc:food/${grain}_grain`).copyOldestFood()
|
||||
})
|
||||
|
||||
// Grain to flour
|
||||
processorRecipe(`${grain}_flour`, 100, 8, {
|
||||
itemInputs: [`tfc:food/${grain}_grain`],
|
||||
itemOutputs: [`2x tfc:food/${grain}_flour`],
|
||||
itemOutputProvider: TFC.isp.of(`2x tfc:food/${grain}_flour`).copyOldestFood()
|
||||
})
|
||||
|
||||
// Flatbread dough
|
||||
processorRecipe(`${grain}_flatbread_dough`, 300, 8, {
|
||||
itemInputs: [`tfc:food/${grain}_flour`],
|
||||
itemOutputs: [`2x tfc:food/${grain}_dough`],
|
||||
fluidInputs: [Fluid.of('minecraft:water', 100)],
|
||||
itemOutputProvider: TFC.isp.of(`2x tfc:food/${grain}_dough`).copyFood()
|
||||
})
|
||||
|
||||
// Firmalife dough
|
||||
processorRecipe(`${grain}_dough`, 300, 16, {
|
||||
itemInputs: [`tfc:food/${grain}_flour`, `#tfc:sweetener`],
|
||||
itemOutputs: [`4x firmalife:food/${grain}_dough`],
|
||||
fluidInputs: [Fluid.of('firmalife:yeast_starter', 200)],
|
||||
itemOutputProvider: TFC.isp.of(`4x firmalife:food/${grain}_dough`).copyFood()
|
||||
})
|
||||
|
||||
// Bread baking
|
||||
cookingRecipe(`${grain}_flatbread`, `tfc:food/${grain}_dough`, `firmalife:food/${grain}_flatbread`)
|
||||
cookingRecipe(`${grain}_bread`, `firmalife:food/${grain}_dough`, `tfc:food/${grain}_bread`)
|
||||
|
||||
processorRecipe(`${grain}_bread_slice`, 10, 8, {
|
||||
circuit: 1,
|
||||
itemInputs: [`tfc:food/${grain}_bread`],
|
||||
itemOutputs: [`2x firmalife:food/${grain}_slice`],
|
||||
itemOutputProvider: TFC.isp.of(`2x firmalife:food/${grain}_slice`).copyOldestFood()
|
||||
})
|
||||
|
||||
//Sandwich making
|
||||
|
||||
let breadTypes = [["bread", `tfc:food/${grain}_bread`], ["flatbread", `firmalife:food/${grain}_flatbread`], ["slice", `firmalife:food/${grain}_slice`]]
|
||||
breadTypes.forEach((type) => {
|
||||
processorRecipe(`${grain}_${type[0]}_sandwich`, 100, 16, {
|
||||
circuit: 3,
|
||||
itemInputs: [`2x ${type[1]}`, "3x #tfc:foods/usable_in_sandwich"],
|
||||
itemOutputs: [`2x tfc:food/${grain}_bread_sandwich`],
|
||||
itemOutputProvider: TFC.isp.of(`2x tfc:food/${grain}_bread_sandwich`).meal(
|
||||
(food => food.hunger(4).water(0.5).saturation(1).decayModifier(4.5)), [
|
||||
(portion) => portion.ingredient(Ingredient.of('#tfc:sandwich_bread')).nutrientModifier(0.5).saturationModifier(0.5).waterModifier(0.5),
|
||||
(portion) => portion.nutrientModifier(0.8).saturationModifier(0.8).waterModifier(0.8),
|
||||
])
|
||||
})
|
||||
|
||||
//Note: Jam needs to be first in the recipe code or else it will consider it as the usable_in_jam_sandwhich ingredients.
|
||||
processorRecipe(`${grain}_${type[0]}_jam_sandwich`, 100, 16, {
|
||||
circuit: 4,
|
||||
itemInputs: [`2x ${type[1]}`, '#tfc:foods/preserves', '2x #tfc:foods/usable_in_jam_sandwich'],
|
||||
itemOutputs: [`2x tfc:food/${grain}_bread_jam_sandwich`, 'tfc:empty_jar'],
|
||||
itemOutputProvider: TFC.isp.of(`2x tfc:food/${grain}_bread_jam_sandwich`).meal(
|
||||
(food => food.hunger(4).water(0.5).saturation(1).decayModifier(4.5)), [
|
||||
(portion) => portion.ingredient(Ingredient.of('#tfc:sandwich_bread')).nutrientModifier(0.5).saturationModifier(0.5).waterModifier(0.5),
|
||||
(portion) => portion.nutrientModifier(0.8).saturationModifier(0.8).waterModifier(0.8),
|
||||
]),
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
})
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region ================= Firmalife =================
|
||||
|
||||
global.FIRMALIFE_COOKING_RECIPE_COMPONENTS.forEach(item => {
|
||||
cookingRecipe(item.name, item.input, item.output, undefined, true)
|
||||
})
|
||||
|
||||
//#endregion
|
||||
//#region ================= Dairy =================
|
||||
|
||||
global.TFC_CURDS_AND_CHEESES.forEach(item => {
|
||||
|
||||
processorRecipe(`${item.curd}_curd`, 1200, 16, {
|
||||
itemOutputs: [item.curd],
|
||||
fluidInputs: [Fluid.of(item.input_fluid, 1000)],
|
||||
itemOutputProvider: TFC.isp.of(item.curd).resetFood()
|
||||
})
|
||||
|
||||
processorRecipe(`${item.cheese1}_cheese_wheel_1`, 8000, 16, {
|
||||
itemInputs: [`3x ${item.curd}`],
|
||||
itemOutputs: [`firmalife:${item.cheese1}_wheel`],
|
||||
fluidInputs: [Fluid.of('tfc:salt_water', 750)],
|
||||
itemOutputProvider: TFC.isp.of(`firmalife:${item.cheese1}_wheel`).copyOldestFood()
|
||||
})
|
||||
|
||||
processorRecipe(`${item.cheese2}_cheese_wheel_2`, 1000, 16, {
|
||||
circuit: 2,
|
||||
itemInputs: [`3x ${item.curd}`, `6x tfc:powder/salt`],
|
||||
itemOutputs: [`firmalife:${item.cheese2}_wheel`],
|
||||
itemOutputProvider: TFC.isp.of(`firmalife:${item.cheese2}_wheel`).copyOldestFood()
|
||||
})
|
||||
|
||||
processorRecipe(`${item.cheese1}_cheese_cutting_1`, 100, 8, {
|
||||
itemInputs: [`firmalife:${item.cheese1}_wheel`],
|
||||
itemOutputs: [`4x firmalife:food/${item.cheese1}`],
|
||||
itemOutputProvider: TFC.isp.of(`4x firmalife:food/${item.cheese1}`).copyOldestFood()
|
||||
})
|
||||
|
||||
processorRecipe(`${item.cheese2}_cheese_cutting_2`, 100, 8, {
|
||||
itemInputs: [`firmalife:${item.cheese2}_wheel`],
|
||||
itemOutputs: [`4x firmalife:food/${item.cheese2}`],
|
||||
itemOutputProvider: TFC.isp.of(`4x firmalife:food/${item.cheese2}`).copyOldestFood()
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
global.TFC_MILKS.forEach(milk => {
|
||||
const milkID = milk.id.split(':')[1];
|
||||
|
||||
processorRecipe(`white_chocolate_blend_from_${milkID}`, 300, 16, {
|
||||
circuit: 3,
|
||||
itemInputs: ['2x firmalife:food/cocoa_butter', '#tfc:sweetener'],
|
||||
itemOutputs: ['2x firmalife:food/white_chocolate_blend'],
|
||||
fluidInputs: [Fluid.of(milk.id, 1000)],
|
||||
itemOutputProvider: TFC.isp.of('2x firmalife:food/white_chocolate_blend').resetFood(),
|
||||
})
|
||||
|
||||
processorRecipe(`dark_chocolate_blend_from_${milkID}`, 300, 16, {
|
||||
circuit: 2,
|
||||
itemInputs: ['2x firmalife:food/cocoa_powder', '#tfc:sweetener'],
|
||||
itemOutputs: ['2x firmalife:food/dark_chocolate_blend'],
|
||||
fluidInputs: [Fluid.of(milk.id, 1000)],
|
||||
itemOutputProvider: TFC.isp.of('2x firmalife:food/dark_chocolate_blend').resetFood(),
|
||||
})
|
||||
|
||||
processorRecipe(`milk_chocolate_blend_from_${milkID}`, 300, 16, {
|
||||
circuit: 1,
|
||||
itemInputs: ['firmalife:food/cocoa_powder', 'firmalife:food/cocoa_butter', '#tfc:sweetener'],
|
||||
itemOutputs: ['2x firmalife:food/milk_chocolate_blend'],
|
||||
fluidInputs: [Fluid.of(milk.id, 1000)],
|
||||
itemOutputProvider: TFC.isp.of('2x firmalife:food/milk_chocolate_blend').resetFood(),
|
||||
})
|
||||
|
||||
processorRecipe(`egg_noodles_from_${milkID}`, 50, 8, {
|
||||
circuit: 6,
|
||||
itemInputs: ["#tfc:foods/flour", 'tfc:powder/salt', '#forge:eggs'],
|
||||
itemOutputs: ['firmalife:food/raw_egg_noodles'],
|
||||
fluidInputs: [Fluid.of(milk.id, 1000)],
|
||||
itemOutputProvider: TFC.isp.of("firmalife:food/raw_egg_noodles").copyOldestFood(),
|
||||
})
|
||||
|
||||
processorRecipe(`rice_noodles_from_${milkID}`, 50, 8, {
|
||||
itemInputs: ["tfc:food/rice_flour", 'tfc:food/maize_flour', 'tfc:powder/salt'],
|
||||
fluidInputs: [Fluid.of(milk.id, 1000)],
|
||||
itemOutputs: ['2x firmalife:food/raw_rice_noodles'],
|
||||
itemOutputProvider: TFC.isp.of('2x firmalife:food/raw_rice_noodles').copyOldestFood()
|
||||
})
|
||||
|
||||
// No ISP needed here
|
||||
event.recipes.gtceu.fermenter(`tfg:fermenter/cream_from_${milkID}`)
|
||||
.inputFluids(Fluid.of(milk.id, 1000))
|
||||
.outputFluids(Fluid.of('firmalife:cream'))
|
||||
.circuit(6)
|
||||
.duration(1200)
|
||||
.EUt(24)
|
||||
})
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region ================= Food preservation =================
|
||||
|
||||
const smoking_meats = Ingredient.of('#tfc:foods/raw_meats').itemIds;
|
||||
const brining_veg = Ingredient.of('#firmalife:foods/pizza_ingredients').itemIds;
|
||||
|
||||
const brining_ingredients = smoking_meats.concat(brining_veg);
|
||||
|
||||
brining_ingredients.forEach(item => {
|
||||
processorRecipe(`${item}/brining`, 200, 16, {
|
||||
circuit: 5,
|
||||
itemInputs: [item],
|
||||
itemOutputs: [item],
|
||||
fluidInputs: [Fluid.of("tfc:brine", 100)],
|
||||
itemOutputProvider: TFC.isp.of(item).copyOldestFood().addTrait('tfc:brined')
|
||||
})
|
||||
})
|
||||
|
||||
smoking_meats.forEach(item => {
|
||||
processorRecipe(`${item}/smoking`, 200, 16, {
|
||||
circuit: 6,
|
||||
itemInputs: [[item, TFC.ingredient.lacksTrait(item, "firmalife:smoked")]],
|
||||
itemOutputs: [item],
|
||||
fluidInputs: [Fluid.of('gtceu:wood_gas', 50)],
|
||||
itemOutputProvider: TFC.isp.of(item).copyOldestFood().addTrait("firmalife:smoked")
|
||||
})
|
||||
})
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region ================= Misc =================
|
||||
|
||||
global.TFC_JAMS.forEach(name => {
|
||||
processorRecipe(`${name}_jam`, 200, 8, {
|
||||
circuit: 15,
|
||||
itemInputs: [`4x tfc:food/${name}`, "#tfg:sugars", "#tfc:empty_jar_with_lid"],
|
||||
itemOutputs: [`4x tfc:jar/${name}`],
|
||||
fluidInputs: [Fluid.of("minecraft:water", 100)],
|
||||
itemOutputProvider: TFC.isp.of(`4x tfc:jar/${name}`).copyFood()
|
||||
})
|
||||
|
||||
processorRecipe(`${name}_jam_no_seal`, 200, 8, {
|
||||
circuit: 16,
|
||||
itemInputs: [`4x tfc:food/${name}`, "#tfg:sugars", "tfc:empty_jar"],
|
||||
itemOutputs: [`4x tfc:jar/${name}_unsealed`],
|
||||
fluidInputs: [Fluid.of("minecraft:water", 100)],
|
||||
itemOutputProvider: TFC.isp.of(`4x tfc:jar/${name}_unsealed`).copyFood()
|
||||
})
|
||||
})
|
||||
|
||||
cookingRecipe("pasta", "firmalife:food/raw_egg_noodles", "firmalife:food/cooked_pasta", Fluid.of("minecraft:water", 100))
|
||||
cookingRecipe("corn_tortilla", "firmalife:food/masa", "firmalife:food/corn_tortilla")
|
||||
cookingRecipe("boiled_egg", "#firmalife:foods/raw_eggs", "tfc:food/boiled_egg", Fluid.of("minecraft:water", 200))
|
||||
cookingRecipe("cooked_rice", "tfc:food/rice_grain", "tfc:food/cooked_rice", Fluid.of("minecraft:water", 200))
|
||||
|
||||
processorRecipe("pasta_tomato_sauce", 60, 8, {
|
||||
itemInputs: ["firmalife:food/cooked_pasta", "firmalife:food/tomato_sauce"],
|
||||
itemOutputs: ["firmalife:food/pasta_with_tomato_sauce"],
|
||||
itemOutputProvider: TFC.isp.of('firmalife:food/pasta_with_tomato_sauce').copyFood()
|
||||
})
|
||||
|
||||
processorRecipe('firmalife_masa', 300, 2, {
|
||||
itemInputs: ["firmalife:food/masa_flour"],
|
||||
itemOutputs: ["2x firmalife:food/masa"],
|
||||
fluidInputs: [Fluid.of('minecraft:water', 100)],
|
||||
itemOutputProvider: TFC.isp.of("2x firmalife:food/masa").copyFood()
|
||||
})
|
||||
|
||||
processorRecipe("tortilla_chips", 40, 16, {
|
||||
itemInputs: ["firmalife:food/taco_shell", "tfc:powder/salt"],
|
||||
itemOutputs: ["firmalife:food/tortilla_chips"],
|
||||
itemOutputProvider: TFC.isp.of("firmalife:food/tortilla_chips").copyFood()
|
||||
})
|
||||
|
||||
processorRecipe("tomato_sauce_mix", 600, 8, {
|
||||
itemInputs: ['tfc:food/tomato', 'tfc:powder/salt', 'tfc:food/garlic'],
|
||||
itemOutputs: ['5x firmalife:food/tomato_sauce_mix'],
|
||||
itemOutputProvider: TFC.isp.of('5x firmalife:food/tomato_sauce_mix').copyOldestFood(),
|
||||
})
|
||||
|
||||
processorRecipe("tomato_sauce_from_mix", 200, 8, {
|
||||
itemInputs: ['firmalife:food/tomato_sauce_mix'],
|
||||
itemOutputs: ['firmalife:food/tomato_sauce'],
|
||||
fluidInputs: [Fluid.of('minecraft:water', 200)],
|
||||
itemOutputProvider: TFC.isp.of('firmalife:food/tomato_sauce').copyOldestFood(),
|
||||
})
|
||||
|
||||
processorRecipe("olive_paste", 60, 8, {
|
||||
itemInputs: ['tfc:food/olive'],
|
||||
itemOutputs: ['2x tfc:olive_paste'],
|
||||
itemOutputProvider: TFC.isp.of('2x tfc:olive_paste'),
|
||||
})
|
||||
|
||||
processorRecipe("soybean_paste", 60, 8, {
|
||||
itemInputs: ['firmalife:food/dehydrated_soybeans'],
|
||||
itemOutputs: ['firmalife:food/soybean_paste'],
|
||||
itemOutputProvider: TFC.isp.of('firmalife:food/soybean_paste').copyOldestFood(),
|
||||
})
|
||||
|
||||
// Vinegar
|
||||
global.TFC_ALCOHOL.forEach(alcohol => {
|
||||
let name = `vinegar_${alcohol.id.replace(':', '_')}`;
|
||||
|
||||
processorRecipe(name, 600, 32, {
|
||||
circuit: 5,
|
||||
itemInputs: ['#tfc:foods/fruits'],
|
||||
fluidInputs: [Fluid.of(alcohol.id, 250)],
|
||||
fluidOutputs: [Fluid.of('tfc:vinegar', 250)],
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
processorRecipe("pizza_no_extra", 600, 16, {
|
||||
itemInputs: ["firmalife:food/pizza_dough", "firmalife:food/tomato_sauce", "firmalife:food/shredded_cheese"],
|
||||
itemOutputs: ["firmalife:food/raw_pizza"],
|
||||
itemOutputProvider: TFC.isp.of("firmalife:food/raw_pizza").meal(
|
||||
(food) => food.hunger(4).saturation(1).grain(1).dairy(0.25).decayModifier(4.5),
|
||||
[(portion) => portion.nutrientModifier(0.8).waterModifier(0.8).saturationModifier(0.8)]
|
||||
)
|
||||
})
|
||||
|
||||
processorRecipe("pizza_1_extra", 600, 16, {
|
||||
circuit: 1,
|
||||
itemInputs: ["firmalife:food/pizza_dough", "firmalife:food/tomato_sauce", "firmalife:food/shredded_cheese", "#firmalife:foods/pizza_ingredients"],
|
||||
itemOutputs: ["firmalife:food/raw_pizza"],
|
||||
itemOutputProvider: TFC.isp.of("firmalife:food/raw_pizza").meal(
|
||||
(food) => food.hunger(4).saturation(1).grain(1).dairy(0.25).decayModifier(4.5),
|
||||
[(portion) => portion.nutrientModifier(0.8).waterModifier(0.8).saturationModifier(0.8)]
|
||||
)
|
||||
})
|
||||
|
||||
processorRecipe("pizza_2_extra", 600, 16, {
|
||||
circuit: 2,
|
||||
itemInputs: ["firmalife:food/pizza_dough", "firmalife:food/tomato_sauce", "firmalife:food/shredded_cheese", "2x #firmalife:foods/pizza_ingredients"],
|
||||
itemOutputs: ["firmalife:food/raw_pizza"],
|
||||
itemOutputProvider: TFC.isp.of("firmalife:food/raw_pizza").meal(
|
||||
(food) => food.hunger(4).saturation(1).grain(1).dairy(0.25).decayModifier(4.5),
|
||||
[(portion) => portion.nutrientModifier(0.8).waterModifier(0.8).saturationModifier(0.8)]
|
||||
)
|
||||
})
|
||||
|
||||
processorRecipe("pizza_dough_olive_oil", 300, 16, {
|
||||
itemInputs: ['firmalife:spice/basil_leaves', '#tfc:foods/dough', 'tfc:powder/salt'],
|
||||
itemOutputs: ['4x firmalife:food/pizza_dough'],
|
||||
fluidInputs: [Fluid.of('tfc:olive_oil', 1000)],
|
||||
itemOutputProvider: TFC.isp.of("4x firmalife:food/pizza_dough").copyOldestFood()
|
||||
})
|
||||
|
||||
processorRecipe("pizza_dough_soybean_oil", 300, 16, {
|
||||
itemInputs: ['firmalife:spice/basil_leaves', '#tfc:foods/dough', 'tfc:powder/salt'],
|
||||
itemOutputs: ['4x firmalife:food/pizza_dough'],
|
||||
fluidInputs: [Fluid.of('firmalife:soybean_oil', 1000)],
|
||||
itemOutputProvider: TFC.isp.of("4x firmalife:food/pizza_dough").copyOldestFood()
|
||||
})
|
||||
|
||||
processorRecipe("vanilla_ice_cream", 300, 16, {
|
||||
itemInputs: ['firmalife:ice_shavings', '#tfc:sweetener', 'firmalife:spice/vanilla'],
|
||||
itemOutputs: ['2x firmalife:food/vanilla_ice_cream'],
|
||||
fluidInputs: [Fluid.of('firmalife:cream', 1000)],
|
||||
itemOutputProvider: TFC.isp.of("2x firmalife:food/vanilla_ice_cream").resetFood()
|
||||
})
|
||||
|
||||
processorRecipe("chocolate_ice_cream", 300, 16, {
|
||||
itemInputs: ['firmalife:food/vanilla_ice_cream'],
|
||||
itemOutputs: ['firmalife:food/chocolate_ice_cream'],
|
||||
fluidInputs: [Fluid.of('firmalife:chocolate', 1000)],
|
||||
itemOutputProvider: TFC.isp.of("firmalife:food/chocolate_ice_cream").resetFood()
|
||||
})
|
||||
|
||||
processorRecipe("strawberry_ice_cream", 300, 16, {
|
||||
itemInputs: ['firmalife:food/vanilla_ice_cream', '2x tfc:food/strawberry'],
|
||||
itemOutputs: ['firmalife:food/strawberry_ice_cream'],
|
||||
itemOutputProvider: TFC.isp.of("firmalife:food/strawberry_ice_cream").resetFood()
|
||||
})
|
||||
|
||||
processorRecipe("cookie_dough_ice_cream", 300, 16, {
|
||||
itemInputs: [`firmalife:food/vanilla_ice_cream`, `firmalife:food/chocolate_chip_cookie_dough`],
|
||||
itemOutputs: [`firmalife:food/cookie_dough_ice_cream`],
|
||||
itemOutputProvider: TFC.isp.of("firmalife:food/cookie_dough_ice_cream").resetFood()
|
||||
})
|
||||
|
||||
processorRecipe("butter", 300, 16, {
|
||||
itemInputs: ["tfc:powder/salt"],
|
||||
itemOutputs: ["firmalife:food/butter"],
|
||||
fluidInputs: [Fluid.of('firmalife:cream', 1000)],
|
||||
itemOutputProvider: TFC.isp.of('firmalife:food/butter').resetFood()
|
||||
})
|
||||
|
||||
processorRecipe("pie_dough", 300, 16, {
|
||||
circuit: 2,
|
||||
itemInputs: ['#tfc:sweetener', 'firmalife:food/butter', '#tfc:foods/flour'],
|
||||
itemOutputs: ['firmalife:food/pie_dough'],
|
||||
fluidInputs: [Fluid.of('minecraft:water', 1000)],
|
||||
itemOutputProvider: TFC.isp.of('firmalife:food/pie_dough').copyOldestFood()
|
||||
})
|
||||
|
||||
processorRecipe("pumpkin_pie_dough", 300, 16, {
|
||||
circuit: 2,
|
||||
itemInputs: ['#tfc:sweetener', '#forge:eggs', '2x tfc:food/pumpkin_chunks', '#tfc:foods/flour'],
|
||||
itemOutputs: ['firmalife:food/pumpkin_pie_dough'],
|
||||
fluidInputs: [Fluid.of('minecraft:water', 1000)],
|
||||
itemOutputProvider: TFC.isp.of('firmalife:food/pumpkin_pie_dough').copyOldestFood()
|
||||
})
|
||||
|
||||
processorRecipe("raw_pumpkin_pie", 20, 8, {
|
||||
itemInputs: ["firmalife:food/pumpkin_pie_dough", "firmalife:pie_pan"],
|
||||
itemOutputs: ["firmalife:raw_pumpkin_pie"],
|
||||
itemOutputProvider: TFC.isp.of("firmalife:food/raw_pumpkin_pie").copyFood()
|
||||
})
|
||||
|
||||
processorRecipe("cookie_dough", 300, 16, {
|
||||
itemInputs: ['#tfc:sweetener', '#forge:eggs', 'firmalife:food/butter', '#tfc:foods/flour', "firmalife:spice/vanilla"],
|
||||
itemOutputs: ['4x firmalife:food/cookie_dough'],
|
||||
itemOutputProvider: TFC.isp.of('4x firmalife:food/cookie_dough').copyOldestFood()
|
||||
})
|
||||
|
||||
processorRecipe("chocolate_chip_cookie_dough", 300, 16, {
|
||||
itemInputs: ['4x firmalife:food/cookie_dough', '#firmalife:chocolate_blends'],
|
||||
itemOutputs: ['4x firmalife:food/chocolate_chip_cookie_dough'],
|
||||
itemOutputProvider: TFC.isp.of('4x firmalife:food/chocolate_chip_cookie_dough').copyOldestFood()
|
||||
})
|
||||
|
||||
processorRecipe("hardtack_dough", 300, 16, {
|
||||
itemInputs: ['tfc:powder/salt', '#tfc:foods/flour'],
|
||||
itemOutputs: ['4x firmalife:food/hardtack_dough'],
|
||||
fluidInputs: [Fluid.of('minecraft:water', 1000)],
|
||||
itemOutputProvider: TFC.isp.of('4x firmalife:food/hardtack_dough').copyOldestFood()
|
||||
})
|
||||
|
||||
processorRecipe("yeast_starter", 1200, 8, {
|
||||
circuit: 1,
|
||||
fluidInputs: [Fluid.of('firmalife:yeast_starter', 100)],
|
||||
fluidOutputs: [Fluid.of('firmalife:yeast_starter', 600)],
|
||||
itemInputs: ['#tfc:foods/flour'],
|
||||
})
|
||||
|
||||
processorRecipe("yeast_starter_from_water", 7200, 8, {
|
||||
circuit: 10,
|
||||
fluidInputs: [Fluid.of('minecraft:water', 100)],
|
||||
fluidOutputs: [Fluid.of('firmalife:yeast_starter', 600)],
|
||||
itemInputs: ['#tfc:foods/fruits'],
|
||||
})
|
||||
|
||||
processorRecipe("cocoa_dust", 100, 4, {
|
||||
itemInputs: ["firmalife:food/roasted_cocoa_beans"],
|
||||
itemOutputs: ["gtceu:cocoa_dust"],
|
||||
itemOutputProvider: TFC.isp.of("gtceu:cocoa_dust")
|
||||
})
|
||||
|
||||
processorRecipe("red_grapes", 50, 8, {
|
||||
itemInputs: ["firmalife:food/red_grapes"],
|
||||
itemOutputs: ["firmalife:food/smashed_red_grapes"],
|
||||
itemOutputProvider: TFC.isp.of('firmalife:food/smashed_red_grapes').copyOldestFood()
|
||||
})
|
||||
|
||||
processorRecipe("white_grapes", 50, 8, {
|
||||
itemInputs: ["firmalife:food/white_grapes"],
|
||||
itemOutputs: ["firmalife:food/smashed_white_grapes"],
|
||||
itemOutputProvider: TFC.isp.of('firmalife:food/smashed_white_grapes').copyOldestFood()
|
||||
})
|
||||
|
||||
processorRecipe("cured_maize", 300, 8, {
|
||||
itemInputs: ["tfc:food/maize_grain"],
|
||||
itemOutputs: ["firmalife:food/cured_maize"],
|
||||
itemOutputProvider: TFC.isp.of('firmalife:food/cured_maize').copyOldestFood()
|
||||
})
|
||||
|
||||
processorRecipe("soy_mixture", 300, 8, {
|
||||
itemInputs: ["tfc:food/soybean", 'tfc:powder/salt'],
|
||||
itemOutputs: ["firmalife:food/soy_mixture"],
|
||||
fluidInputs: [Fluid.of('minecraft:water', 50)],
|
||||
itemOutputProvider: TFC.isp.of('firmalife:food/soy_mixture').copyOldestFood(),
|
||||
|
||||
})
|
||||
|
||||
// These don't need the ISP handling, they're just here to keep all the food recipes together
|
||||
|
||||
event.recipes.gtceu.mixer('tfg:tfc/olive_oil_water')
|
||||
.inputFluids(Fluid.of('water', 200))
|
||||
.itemInputs('1x tfc:olive_paste')
|
||||
.outputFluids(Fluid.of('tfc:olive_oil_water', 200))
|
||||
.duration(200)
|
||||
.EUt(28)
|
||||
|
||||
event.recipes.gtceu.distillery('tfg:tfc/olive_oil')
|
||||
.inputFluids(Fluid.of('tfc:olive_oil_water', 250))
|
||||
.outputFluids(Fluid.of('tfc:olive_oil', 50))
|
||||
.duration(600)
|
||||
.EUt(28)
|
||||
|
||||
event.recipes.gtceu.fermenter('soybean_oil')
|
||||
.itemInputs('firmalife:food/soybean_paste')
|
||||
.inputFluids(Fluid.of('minecraft:water', 100))
|
||||
.outputFluids(Fluid.of('firmalife:soybean_oil', 250))
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
.duration(600)
|
||||
|
||||
event.recipes.gtceu.fermenter('tfg:fermenter/curdled_milk')
|
||||
.inputFluids(Fluid.of('minecraft:milk', 2000))
|
||||
.itemInputs('firmalife:rennet')
|
||||
.outputFluids(Fluid.of('tfc:curdled_milk', 2000))
|
||||
.duration(2400)
|
||||
.EUt(16)
|
||||
|
||||
event.recipes.gtceu.fermenter('tfg:fermenter/curdled_yak_milk')
|
||||
.inputFluids(Fluid.of('firmalife:yak_milk', 2000))
|
||||
.itemInputs('firmalife:rennet')
|
||||
.outputFluids(Fluid.of('firmalife:curdled_yak_milk', 2000))
|
||||
.duration(2400)
|
||||
.EUt(16)
|
||||
|
||||
event.recipes.gtceu.fermenter('tfg:fermenter/curdled_goat_milk')
|
||||
.inputFluids(Fluid.of('firmalife:goat_milk', 2000))
|
||||
.itemInputs('firmalife:rennet')
|
||||
.outputFluids(Fluid.of('firmalife:curdled_goat_milk', 2000))
|
||||
.duration(2400)
|
||||
.EUt(16)
|
||||
|
||||
// GT cocoa dust compat
|
||||
event.recipes.gtceu.macerator('firmalife:food/cocoa_powder')
|
||||
.itemInputs('gtceu:cocoa_dust')
|
||||
.itemOutputs('4x firmalife:food/cocoa_powder')
|
||||
.duration(100)
|
||||
.EUt(2)
|
||||
|
||||
event.recipes.tfc.quern('4x firmalife:food/cocoa_powder', 'gtceu:cocoa_dust')
|
||||
.id(`tfg:quern/cocoa_powder`)
|
||||
|
||||
event.recipes.tfc.quern('gtceu:cocoa_dust', 'firmalife:food/roasted_cocoa_beans')
|
||||
.id('tfg:quern/cocoa_dust');
|
||||
|
||||
//#endregion
|
||||
|
||||
event.replaceInput({id: 'gtceu:shaped/lv_food_processor'}, 'gtceu:lv_electric_piston', 'gtceu:steel_whisk')
|
||||
event.replaceInput({id: 'gtceu:shaped/mv_food_processor'}, 'gtceu:mv_electric_piston', 'gtceu:aluminium_whisk')
|
||||
event.replaceInput({id: 'gtceu:shaped/hv_food_processor'}, 'gtceu:hv_electric_piston', 'gtceu:stainless_steel_whisk')
|
||||
event.replaceInput({id: 'gtceu:shaped/ev_food_processor'}, 'gtceu:ev_electric_piston', 'gtceu:titanium_whisk')
|
||||
|
||||
event.replaceInput({id: 'gtceu:shaped/lv_food_oven'}, 'gtceu:lv_electric_piston', '#tfg:metal_bars')
|
||||
event.replaceInput({id: 'gtceu:shaped/mv_food_oven'}, 'gtceu:mv_electric_piston', '#tfg:metal_bars')
|
||||
event.replaceInput({id: 'gtceu:shaped/hv_food_oven'}, 'gtceu:hv_electric_piston', '#tfg:metal_bars')
|
||||
event.replaceInput({id: 'gtceu:shaped/ev_food_oven'}, 'gtceu:ev_electric_piston', '#tfg:metal_bars')
|
||||
}
|
||||
|
|
@ -14,5 +14,4 @@ const registerTFGRecipes = (event) => {
|
|||
registerTFGSupportRecipes(event)
|
||||
registerTFGFishingNetsRecipes(event)
|
||||
registerTFGConvertingRecipes(event)
|
||||
registerTFGFoodRecipes(event)
|
||||
}
|
||||
|
|
@ -287,4 +287,4 @@ function registerTFGRockRecipes(event) {
|
|||
.EUt(GTValues.VA[GTValues.LV])
|
||||
})
|
||||
//#endregion
|
||||
}
|
||||
}
|
||||
|
|
@ -293,10 +293,6 @@ function registerVintageImprovementsRecipes(event) {
|
|||
|
||||
forEachMaterial(material => {
|
||||
|
||||
const ingotItem = ChemicalHelper.get(TagPrefix.ingot, material, 1);
|
||||
if (ingotItem == null || ingotItem.hasTag('c:hidden_from_recipe_viewers'))
|
||||
return;
|
||||
|
||||
// #region Coiling
|
||||
|
||||
if (material.hasFlag(MaterialFlags.GENERATE_ROD) && material.hasFlag(MaterialFlags.GENERATE_SPRING_SMALL)) {
|
||||
|
|
@ -631,13 +627,6 @@ function registerVintageImprovementsRecipes(event) {
|
|||
processingTime: 100 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER
|
||||
}).id(`tfg:vi/coiling/phantom_thread`)
|
||||
|
||||
event.custom({
|
||||
type: 'vintageimprovements:coiling',
|
||||
ingredients: [{ item: 'firmalife:pineapple_fiber' }],
|
||||
results: [{ item: 'firmalife:pineapple_yarn', count: 8 }],
|
||||
processingTime: 100 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER
|
||||
}).id(`tfg:vi/coiling/pineapple_yarn`)
|
||||
|
||||
event.custom({
|
||||
type: 'vintageimprovements:coiling',
|
||||
ingredients: [ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Polycaprolactam, 1)],
|
||||
|
|
|
|||
|
|
@ -1,15 +1,15 @@
|
|||
// priority: 0
|
||||
|
||||
const registerAE2TagPrefixes = (event) => {
|
||||
const $AE_BLOCKS = Java.loadClass('appeng.core.definitions.AEBlocks');
|
||||
const $AE_ITEMS = Java.loadClass('appeng.core.definitions.AEItems');
|
||||
|
||||
const Fluix = GTCEuAPI.materialManager.getMaterial('tfg:fluix')
|
||||
|
||||
// Blocks have to be handled in java because ae2 is weird
|
||||
|
||||
TagPrefix.block.setIgnored(Fluix, $AE_BLOCKS.FLUIX_BLOCK);
|
||||
TagPrefix.dust.setIgnored(Fluix, $AE_ITEMS.FLUIX_DUST);
|
||||
TagPrefix.gem.setIgnored(Fluix, $AE_ITEMS.FLUIX_CRYSTAL);
|
||||
|
||||
;
|
||||
TagPrefix.dust.setIgnored(GTMaterials.CertusQuartz, $AE_ITEMS.CERTUS_QUARTZ_DUST);
|
||||
TagPrefix.gem.setIgnored(GTMaterials.CertusQuartz, $AE_ITEMS.CERTUS_QUARTZ_CRYSTAL);
|
||||
|
||||
|
|
|
|||
|
|
@ -188,6 +188,9 @@ global.CREATE_DISABLED_ITEMS = [
|
|||
// Blocks
|
||||
'create:andesite_alloy_block',
|
||||
'create:experience_block',
|
||||
'create:rose_quartz_block',
|
||||
'create:rose_quartz_tiles',
|
||||
'create:small_rose_quartz_tiles',
|
||||
|
||||
// Other
|
||||
'create:honey_bucket',
|
||||
|
|
@ -202,6 +205,7 @@ global.CREATE_DISABLED_ITEMS = [
|
|||
'create:blaze_cake_base',
|
||||
'create:sturdy_sheet',
|
||||
'create:polished_rose_quartz',
|
||||
'create:rose_quartz',
|
||||
'create:cinder_flour',
|
||||
'create:dough',
|
||||
'create:bar_of_chocolate',
|
||||
|
|
|
|||
|
|
@ -84,13 +84,6 @@ global.FIRMALIFE_ORE_MATERIALS = [
|
|||
'chromite'
|
||||
];
|
||||
|
||||
global.FIRMALIFE_JAMS = [
|
||||
"fig",
|
||||
"pineapple",
|
||||
"red_grapes",
|
||||
"white_grapes"
|
||||
]
|
||||
|
||||
global.FIRMALIFE_GREENHOUSE_FRUIT_RECIPE_COMPONENTS = [
|
||||
{ input: 'firmalife:plant/cocoa_sapling', fluid_amount: 8000, output: '3x firmalife:food/cocoa_beans', name: 'cocoa_beans' },
|
||||
{ input: 'firmalife:plant/fig_sapling', fluid_amount: 8000, output: '3x firmalife:food/fig', name: 'fig' },
|
||||
|
|
@ -101,20 +94,26 @@ global.FIRMALIFE_GREENHOUSE_BERRY_RECIPE_COMPONENTS = [
|
|||
{ input: 'firmalife:plant/nightshade_bush', fluid_amount: 6000, output: '3x firmalife:food/nightshade_berry', name: 'nightshade' },
|
||||
];
|
||||
|
||||
global.FIRMALIFE_COOKING_RECIPE_COMPONENTS = [
|
||||
{ input: 'firmalife:food/white_chocolate_blend', output: 'firmalife:food/white_chocolate', name: 'white_chocolate' },
|
||||
{ input: 'firmalife:food/dark_chocolate_blend', output: 'firmalife:food/dark_chocolate', name: 'dark_chocolate' },
|
||||
{ input: 'firmalife:food/milk_chocolate_blend', output: 'firmalife:food/milk_chocolate', name: 'milk_chocolate' },
|
||||
{ input: 'firmalife:food/raw_pizza', output: 'firmalife:food/cooked_pizza', name: 'cooked_pizza' },
|
||||
{ input: 'firmalife:food/corn_tortilla', output: 'firmalife:food/taco_shell', name: 'taco_shell' },
|
||||
{ input: 'firmalife:food/cookie_dough', output: 'firmalife:food/sugar_cookie', name: 'sugar_cookie' },
|
||||
{ input: 'firmalife:food/chocolate_chip_cookie_dough', output: 'firmalife:food/chocolate_chip_cookie', name: 'chocolate_chip_cookie' },
|
||||
{ input: 'firmalife:food/hardtack_dough', output: 'firmalife:food/hardtack', name: 'hardtack' },
|
||||
{ input: 'firmalife:food/filled_pie', output: 'firmalife:food/cooked_pie', name: 'cooked_pie' },
|
||||
{ input: 'firmalife:food/cocoa_beans', output: 'firmalife:food/roasted_cocoa_beans', name: 'roasted_cocoa_beans' },
|
||||
{ input: 'firmalife:food/raw_pumpkin_pie', output: 'minecraft:pumpkin_pie', name: 'pumpkin_pie' },
|
||||
{ input: 'tfc:food/soybean', output: 'firmalife:food/dehydrated_soybeans', name: 'dehydrated_soybeans' },
|
||||
{ input: 'firmalife:food/raw_lasagna', output: 'firmalife:food/cooked_lasagna', name: 'cooked_lasagna' },
|
||||
{ input: 'firmalife:food/bacon', output: 'firmalife:food/cooked_bacon', name: 'cooked_bacon' },
|
||||
{ input: '#firmalife:foods/slices', output: 'firmalife:food/toast', name: 'toast' }
|
||||
];
|
||||
global.FIRMALIFE_QUERN_FLOUR_RECIPE_COMPONENTS = [
|
||||
{ input: 'firmalife:food/nixtamal', output: '2x firmalife:food/masa_flour', name: 'masa_flour' },
|
||||
];
|
||||
|
||||
global.FIRMALIFE_MIXER_FLATBREAD_DOUGH_RECIPE_COMPONENTS = [
|
||||
{ input: 'tfc:food/barley_flour', output: '4x firmalife:food/barley_dough', name: 'firmalife_barley_dough' },
|
||||
{ input: 'tfc:food/maize_flour', output: '4x firmalife:food/maize_dough', name: 'firmalife_maize_dough' },
|
||||
{ input: 'tfc:food/oat_flour', output: '4x firmalife:food/oat_dough', name: 'firmalife_oat_dough' },
|
||||
{ input: 'tfc:food/rye_flour', output: '4x firmalife:food/rye_dough', name: 'firmalife_rye_dough' },
|
||||
{ input: 'tfc:food/rice_flour', output: '4x firmalife:food/rice_dough', name: 'firmalife_rice_dough' },
|
||||
{ input: 'tfc:food/wheat_flour', output: '4x firmalife:food/wheat_dough', name: 'firmalife_wheat_dough' },
|
||||
{ input: 'firmalife:food/masa_flour', output: '2x firmalife:food/masa', name: 'firmalife_masa' },
|
||||
];
|
||||
|
||||
global.FIRMALIFE_FURNACE_FLATBREAD_RECIPE_COMPONENTS = [
|
||||
{ input: 'tfc:food/barley_dough', output: 'firmalife:food/barley_flatbread', name: 'barley_flatbread' },
|
||||
{ input: 'tfc:food/maize_dough', output: 'firmalife:food/maize_flatbread', name: 'maize_flatbread' },
|
||||
{ input: 'tfc:food/oat_dough', output: 'firmalife:food/oat_flatbread', name: 'oat_flatbread' },
|
||||
{ input: 'tfc:food/rye_dough', output: 'firmalife:food/rye_flatbread', name: 'rye_flatbread' },
|
||||
{ input: 'tfc:food/rice_dough', output: 'firmalife:food/rice_flatbread', name: 'rice_flatbread' },
|
||||
{ input: 'tfc:food/wheat_dough', output: 'firmalife:food/wheat_flatbread', name: 'wheat_flatbread' },
|
||||
{ input: 'firmalife:food/masa', output: 'firmalife:food/corn_tortilla', name: 'corn_tortilla' },
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
// priority: 0
|
||||
|
||||
//#region Greenhouse
|
||||
|
||||
const registerGTCEuMachines = (event) => {
|
||||
|
||||
GTMachineUtils.registerCrate(GTMaterials.BismuthBronze, 54, "Bismuth Bronze Crate");
|
||||
|
|
@ -10,6 +12,66 @@ const registerGTCEuMachines = (event) => {
|
|||
const $SteamMulti = Java.loadClass('com.gregtechceu.gtceu.common.machine.multiblock.steam.SteamParallelMultiblockMachine');
|
||||
const $Tags = Java.loadClass("dev.latvian.mods.kubejs.util.Tags")
|
||||
|
||||
event.create('greenhouse', 'multiblock')
|
||||
.rotationState(RotationState.NON_Y_AXIS)
|
||||
.recipeType('greenhouse')
|
||||
.recipeModifiers([GTRecipeModifiers.OC_PERFECT])
|
||||
.appearanceBlock(GTBlocks.CASING_STEEL_SOLID)
|
||||
.pattern(definition => FactoryBlockPattern.start()
|
||||
.aisle("CCCCCCC", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", " F ")
|
||||
.aisle("CDDDDDC", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", " XXFXX ")
|
||||
.aisle("CDDDDDC", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", " XXFXX ")
|
||||
.aisle("CDDDDDC", "F#####F", "F#####F", "F#####F", "F#####F", "F#####F", "F#####F", "F#####F", "FFFFFFF")
|
||||
.aisle("CDDDDDC", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", " XXFXX ")
|
||||
.aisle("CDDDDDC", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", " XXFXX ")
|
||||
.aisle("CCCYCCC", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", " F ")
|
||||
.where('X', Predicates.blocks('ae2:quartz_glass'))
|
||||
.where('F', Predicates.frames('steel'))
|
||||
.where('D', Predicates.blocks('tfc:grass/silt')
|
||||
.or(Predicates.blocks('tfc:dirt/loam'))
|
||||
.or(Predicates.blocks('tfc:dirt/sandy_loam'))
|
||||
.or(Predicates.blocks('tfc:dirt/silty_loam'))
|
||||
.or(Predicates.blocks('tfc:grass/silt'))
|
||||
.or(Predicates.blocks('tfc:grass/loam'))
|
||||
.or(Predicates.blocks('tfc:grass/sandy_loam'))
|
||||
.or(Predicates.blocks('tfc:grass/silty_loam')))
|
||||
.where('C', Predicates.blocks('gtceu:steel_machine_casing').or(Predicates.autoAbilities(definition.getRecipeTypes())))
|
||||
.where('#', Predicates.air()
|
||||
.or(Predicates.blockTag($Tags.block("minecraft:logs")))
|
||||
.or(Predicates.blockTag($Tags.block("minecraft:leaves"))))
|
||||
.where(' ', Predicates.any())
|
||||
.where('Y', Predicates.controller(Predicates.blocks(definition.get())))
|
||||
.build()
|
||||
)
|
||||
.shapeInfo(controller => MultiblockShapeInfo.builder()
|
||||
.aisle("CCCCCCC", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", " F ")
|
||||
.aisle("CDDDDDC", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", " XXFXX ")
|
||||
.aisle("CDDDDDC", "X#####X", "X#####X", "X#####X", "X##L##X", "X#LLL#X", "X##L##X", "X#####X", " XXFXX ")
|
||||
.aisle("CDDDDDC", "F##W##F", "F##W##F", "F##W##F", "F#LWL#F", "F#LWL#F", "F#LLL#F", "F#####F", "FFFFFFF")
|
||||
.aisle("CDDDDDC", "X#####X", "X#####X", "X#####X", "X##L##X", "X#LLL#X", "X##L##X", "X#####X", " XXFXX ")
|
||||
.aisle("CDDDDDC", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", " XXFXX ")
|
||||
.aisle("CitYfeC", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", " F ")
|
||||
.where('Y', controller, Direction.SOUTH)
|
||||
.where('C', GTBlocks.STEEL_HULL.get())
|
||||
.where('D', Block.getBlock('tfc:grass/silt'))
|
||||
.where('F', Block.getBlock('gtceu:steel_frame'))
|
||||
.where('X', Block.getBlock('ae2:quartz_glass'))
|
||||
.where('W', Block.getBlock('tfc:wood/log/oak'))
|
||||
.where('L', Block.getBlock('tfc:wood/leaves/oak'))
|
||||
.where(' ', Block.getBlock('minecraft:air'))
|
||||
.where('i', GTMachines.ITEM_IMPORT_BUS[GTValues.ULV], Direction.SOUTH)
|
||||
.where('t', GTMachines.ITEM_EXPORT_BUS[GTValues.ULV], Direction.SOUTH)
|
||||
.where('f', GTMachines.FLUID_IMPORT_HATCH[GTValues.ULV], Direction.SOUTH)
|
||||
.where('e', GTMachines.ENERGY_INPUT_HATCH[GTValues.LV], Direction.SOUTH)
|
||||
.build()
|
||||
)
|
||||
.workableCasingRenderer(
|
||||
'gtceu:block/casings/solid/machine_casing_solid_steel',
|
||||
'gtceu:block/multiblock/implosion_compressor', false
|
||||
)
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Nether Dome
|
||||
|
||||
event.create('nether_dome', 'multiblock')
|
||||
|
|
|
|||
|
|
@ -280,7 +280,7 @@ const registerGTCEuMaterialModification = (event) => {
|
|||
GTMaterials.IronMagnetic.setMaterialARGB(0x503d32)
|
||||
GTMaterials.IronMagnetic.setMaterialSecondaryARGB(0x131212)
|
||||
GTMaterials.Zinc.setMaterialARGB(0xd6ffdc)
|
||||
GTMaterials.Zinc.setMaterialSecondaryARGB(0xA3BE9E)
|
||||
GTMaterials.Zinc.setMaterialSecondaryARGB(0x213b3f)
|
||||
GTMaterials.Graphite.setMaterialARGB(0x889BA8)
|
||||
GTMaterials.Graphite.setMaterialSecondaryARGB(0x30383E)
|
||||
GTMaterials.Amethyst.setMaterialARGB(0xCC9EF0)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,13 @@
|
|||
// priority: 0
|
||||
|
||||
const registerGTCEuRecipeTypes = (event) => {
|
||||
event.create('greenhouse')
|
||||
.category('greenhouse')
|
||||
.setEUIO('in')
|
||||
.setMaxIOSize(3, 4, 1, 0)
|
||||
.setProgressBar(GuiTextures.PROGRESS_BAR_ARROW, FillDirection.LEFT_TO_RIGHT)
|
||||
.setSound(GTSoundEntries.BATH)
|
||||
|
||||
event.create('nether_dome')
|
||||
.category('nether_dome')
|
||||
.setEUIO('in')
|
||||
|
|
|
|||
|
|
@ -852,7 +852,7 @@ global.TFC_BATCH_TO_BOTTLE_ASSEMBLING_RECIPE_COMPONENTS = [
|
|||
{ input: 'tfc:volcanic_glass_batch', output: 'tfc:volcanic_glass_bottle', name: 'volcanic_glass_bottle' },
|
||||
];
|
||||
|
||||
global.TFC_MEAT_RECIPE_COMPONENTS = [
|
||||
global.TFC_FURNACE_MEAT_RECIPE_COMPONENTS = [
|
||||
{ input: 'tfc:food/horse_meat', output: 'tfc:food/cooked_horse_meat', name: 'cooked_horse_meat' },
|
||||
{ input: 'tfc:food/bear', output: 'tfc:food/cooked_bear', name: 'cooked_bear' },
|
||||
{ input: 'tfc:food/mutton', output: 'tfc:food/cooked_mutton', name: 'cooked_mutton' },
|
||||
|
|
@ -924,39 +924,41 @@ global.TFC_QUERN_POWDER_RECIPE_COMPONENTS = [
|
|||
{ input: 'firmalife:ore/small_chromite', output: 'gtceu:small_chromite_dust', name: 'chromite' }
|
||||
];
|
||||
|
||||
global.TFC_GRAINS = [
|
||||
"barley",
|
||||
"maize",
|
||||
"oat",
|
||||
"rye",
|
||||
"rice",
|
||||
"wheat",
|
||||
]
|
||||
global.TFC_QUERN_GRAIN_RECIPE_COMPONENTS = [
|
||||
{ input: 'tfc:food/barley', output: 'tfc:food/barley_grain', name: 'barley_grain' },
|
||||
{ input: 'tfc:food/maize', output: 'tfc:food/maize_grain', name: 'maize_grain' },
|
||||
{ input: 'tfc:food/oat', output: 'tfc:food/oat_grain', name: 'oat_grain' },
|
||||
{ input: 'tfc:food/rye', output: 'tfc:food/rye_grain', name: 'rye_grain' },
|
||||
{ input: 'tfc:food/rice', output: 'tfc:food/rice_grain', name: 'rice_grain' },
|
||||
{ input: 'tfc:food/wheat', output: 'tfc:food/wheat_grain', name: 'wheat_grain' },
|
||||
];
|
||||
|
||||
global.TFC_JAMS = [
|
||||
"blackberry",
|
||||
"blueberry",
|
||||
"bunchberry",
|
||||
"cloudberry",
|
||||
"cranberry",
|
||||
"elderberry",
|
||||
"gooseberry",
|
||||
"raspberry",
|
||||
"snowberry",
|
||||
"strawberry",
|
||||
"wintergreen_berry",
|
||||
"banana",
|
||||
"cherry",
|
||||
"green_apple",
|
||||
"lemon",
|
||||
"olive",
|
||||
"orange",
|
||||
"peach",
|
||||
"plum",
|
||||
"red_apple",
|
||||
"pumpkin_chunks",
|
||||
"melon_slice",
|
||||
]
|
||||
global.TFC_QUERN_FLOUR_RECIPE_COMPONENTS = [
|
||||
{ input: 'tfc:food/barley_grain', output: '2x tfc:food/barley_flour', name: 'barley_flour' },
|
||||
{ input: 'tfc:food/maize_grain', output: '2x tfc:food/maize_flour', name: 'maize_flour' },
|
||||
{ input: 'tfc:food/oat_grain', output: '2x tfc:food/oat_flour', name: 'oat_flour' },
|
||||
{ input: 'tfc:food/rye_grain', output: '2x tfc:food/rye_flour', name: 'rye_flour' },
|
||||
{ input: 'tfc:food/rice_grain', output: '2x tfc:food/rice_flour', name: 'rice_flour' },
|
||||
{ input: 'tfc:food/wheat_grain', output: '2x tfc:food/wheat_flour', name: 'wheat_flour' },
|
||||
];
|
||||
|
||||
global.TFC_MIXER_FLATBREAD_DOUGH_RECIPE_COMPONENTS = [
|
||||
{ input: 'tfc:food/barley_flour', output: '2x tfc:food/barley_dough', name: 'tfc_barley_dough' },
|
||||
{ input: 'tfc:food/maize_flour', output: '2x tfc:food/maize_dough', name: 'tfc_maize_dough' },
|
||||
{ input: 'tfc:food/oat_flour', output: '2x tfc:food/oat_dough', name: 'tfc_oat_dough' },
|
||||
{ input: 'tfc:food/rye_flour', output: '2x tfc:food/rye_dough', name: 'tfc_rye_dough' },
|
||||
{ input: 'tfc:food/rice_flour', output: '2x tfc:food/rice_dough', name: 'tfc_rice_dough' },
|
||||
{ input: 'tfc:food/wheat_flour', output: '2x tfc:food/wheat_dough', name: 'tfc_wheat_dough' },
|
||||
];
|
||||
|
||||
global.TFC_FURNACE_BREAD_RECIPE_COMPONENTS = [
|
||||
{ input: 'firmalife:food/barley_dough', output: 'tfc:food/barley_bread', name: 'barley_bread' },
|
||||
{ input: 'firmalife:food/maize_dough', output: 'tfc:food/maize_bread', name: 'maize_bread' },
|
||||
{ input: 'firmalife:food/oat_dough', output: 'tfc:food/oat_bread', name: 'oat_bread' },
|
||||
{ input: 'firmalife:food/rye_dough', output: 'tfc:food/rye_bread', name: 'rye_bread' },
|
||||
{ input: 'firmalife:food/rice_dough', output: 'tfc:food/rice_bread', name: 'rice_bread' },
|
||||
{ input: 'firmalife:food/wheat_dough', output: 'tfc:food/wheat_bread', name: 'wheat_bread' },
|
||||
];
|
||||
|
||||
global.TFC_GREENHOUSE_FRUIT_RECIPE_COMPONENTS = [
|
||||
{ input: 'tfc:plant/cherry_sapling', fluid_amount: 8000, output: '32x tfc:food/cherry', name: 'cherry' },
|
||||
|
|
@ -1014,14 +1016,7 @@ global.TFC_MILKS = [
|
|||
{id: 'minecraft:milk'},
|
||||
{id: 'firmalife:yak_milk'},
|
||||
{id: 'firmalife:goat_milk'},
|
||||
// Uncomment this if firmalife ever makes this obtainable
|
||||
//{id: 'firmalife:coconut_milk'},
|
||||
];
|
||||
|
||||
global.TFC_CURDS_AND_CHEESES = [
|
||||
{ id: 'milk', input_fluid: 'tfc:curdled_milk', curd: 'firmalife:food/milk_curd', cheese1: 'gouda', cheese2: 'cheddar' },
|
||||
{ id: 'yak', input_fluid: 'firmalife:curdled_yak_milk', curd: 'firmalife:food/yak_curd', cheese1: 'shosha', cheese2: 'rajya_metok' },
|
||||
{ id: 'goat', input_fluid: 'firmalife:curdled_goat_milk', curd: 'firmalife:food/goat_curd', cheese1: 'feta', cheese2: 'chevre' },
|
||||
{id: 'firmalife:coconut_milk'},
|
||||
];
|
||||
|
||||
global.TFC_ALCOHOL = [
|
||||
|
|
|
|||