From f47a3aac2fd7f68f6d8b80ed6aacacb0cc227160 Mon Sep 17 00:00:00 2001 From: The Compendium System / The Atlassian Collective <91026414+Xaligal@users.noreply.github.com> Date: Mon, 6 Oct 2025 11:29:32 +0200 Subject: [PATCH 01/69] Fixed a Linux crash caused by a mispressed space in Greate removes (#1962) * oops I might've hit space and made linux upset mb gang * > metal bar > look inside > not a metal bar --- kubejs/server_scripts/create/tags.js | 5 +++++ kubejs/server_scripts/greate/recipes.removes.js | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/kubejs/server_scripts/create/tags.js b/kubejs/server_scripts/create/tags.js index 1a70ae3f2..c765def36 100644 --- a/kubejs/server_scripts/create/tags.js +++ b/kubejs/server_scripts/create/tags.js @@ -21,6 +21,11 @@ const registerCreateItemTags = (event) => { event.remove('c:hidden_from_recipe_viewers', 'create:crushed_raw_lead') event.remove('c:hidden_from_recipe_viewers', 'create:powdered_obsidian') + // Create metal bars weren't metal bars :( + event.add('tfg:metal_bars', 'create:andesite_bars') + event.add('tfg:metal_bars', 'create:brass_bars') + event.add('tfg:metal_bars', 'create:copper_bars') + // Тэги для ручек и сидушек global.MINECRAFT_DYE_NAMES.forEach(dye => { event.add('tfg:colored_valve_handles', `create:${dye}_valve_handle`) diff --git a/kubejs/server_scripts/greate/recipes.removes.js b/kubejs/server_scripts/greate/recipes.removes.js index 635831068..bc91cbbbd 100644 --- a/kubejs/server_scripts/greate/recipes.removes.js +++ b/kubejs/server_scripts/greate/recipes.removes.js @@ -67,7 +67,7 @@ function removeGreateRecipes(event) { event.remove({ id: 'gtceu:extractor/extract_andesite_alloy_shaft' }) event.remove({ id: 'gtceu:extractor/extract_andesite_alloy' }) - event.remove({ id: 'gtceu:extractor/extract_steel_alloy '}) + event.remove({ id: 'gtceu:extractor/extract_steel_alloy'}) event.remove({ id: 'gtceu:extractor/extract_aluminium_alloy' }) event.remove({ id: 'gtceu:extractor/extract_stainless_steel_alloy' }) event.remove({ id: 'gtceu:extractor/extract_titanium_alloy' }) From c5d6bcd103b8d043cb46765fc2758d38474b96fe Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 6 Oct 2025 10:46:38 +0100 Subject: [PATCH 02/69] fix recipe ID for some stone supports --- kubejs/server_scripts/tfg/recipes.supports.js | 79 +++++++++---------- 1 file changed, 39 insertions(+), 40 deletions(-) diff --git a/kubejs/server_scripts/tfg/recipes.supports.js b/kubejs/server_scripts/tfg/recipes.supports.js index 318998bc1..1cc84fe56 100644 --- a/kubejs/server_scripts/tfg/recipes.supports.js +++ b/kubejs/server_scripts/tfg/recipes.supports.js @@ -40,7 +40,7 @@ function registerTFGSupportRecipes(event) { 'AB ', 'AC ', 'AC ' - ],{ + ], { A: 'gtceu:light_concrete', B: '#tfc:chisels', C: 'tfc:mortar' @@ -59,7 +59,7 @@ function registerTFGSupportRecipes(event) { 'AB ', 'AC ', 'AC ' - ],{ + ], { A: 'gtceu:dark_concrete', B: '#tfc:chisels', C: 'tfc:mortar' @@ -80,7 +80,7 @@ function registerTFGSupportRecipes(event) { 'AB ', 'AC ', 'AC ' - ],{ + ], { A: `tfc:rock/loose/${stone}`, B: '#tfc:chisels', C: 'tfc:mortar' @@ -91,7 +91,7 @@ function registerTFGSupportRecipes(event) { 'AB ', 'AC ', 'AC ' - ],{ + ], { A: `tfc:rock/mossy_loose/${stone}`, B: '#tfc:chisels', C: 'tfc:mortar' @@ -113,22 +113,22 @@ function registerTFGSupportRecipes(event) { .duration(40) .EUt(GTValues.VA[GTValues.ULV]) }) - + // REDO w/ table and loop const EXO_STONE_SUPPORTS = [ - { loose: 'tfg:loose/deepslate', support: 'tfg:migmatite_support' }, - { loose: 'tfg:loose/blackstone', support: 'tfg:pyroxenite_support' }, - { loose: 'tfg:loose/dripstone', support: 'tfg:travertine_support' }, - { loose: 'tfg:loose/crackrack', support: 'tfg:keratophyre_support' }, - { loose: 'tfg:loose/moon_stone', support: 'tfg:anorthosite_support' }, - { loose: 'tfg:loose/moon_deepslate', support: 'tfg:norite_support' }, - { loose: 'tfg:loose/mars_stone', support: 'tfg:argillite_support' }, - { loose: 'tfg:loose/venus_stone', support: 'tfg:trachyte_support' }, - { loose: 'tfg:loose/mercury_stone', support: 'tfg:komatiite_support' }, - { loose: 'tfg:loose/glacio_stone', support: 'tfg:phonolite_support' }, - { loose: 'tfg:loose/permafrost', support: 'tfg:permafrost_support' }, - { loose: 'tfg:loose/red_granite', support: 'tfg:red_granite_support' }, - { loose: 'gtceu:stone_ingot', support: 'tfg:stone_support' } + { loose: 'tfg:loose/deepslate', support: 'tfg:migmatite_support' }, + { loose: 'tfg:loose/blackstone', support: 'tfg:pyroxenite_support' }, + { loose: 'tfg:loose/dripstone', support: 'tfg:travertine_support' }, + { loose: 'tfg:loose/crackrack', support: 'tfg:keratophyre_support' }, + { loose: 'tfg:loose/moon_stone', support: 'tfg:anorthosite_support' }, + { loose: 'tfg:loose/moon_deepslate', support: 'tfg:norite_support' }, + { loose: 'tfg:loose/mars_stone', support: 'tfg:argillite_support' }, + { loose: 'tfg:loose/venus_stone', support: 'tfg:trachyte_support' }, + { loose: 'tfg:loose/mercury_stone', support: 'tfg:komatiite_support' }, + { loose: 'tfg:loose/glacio_stone', support: 'tfg:phonolite_support' }, + { loose: 'tfg:loose/permafrost', support: 'tfg:permafrost_support' }, + { loose: 'tfg:loose/red_granite', support: 'tfg:red_granite_support' }, + { loose: 'gtceu:stone_ingot', support: 'tfg:stone_support' } ] EXO_STONE_SUPPORTS.forEach(s => { @@ -137,14 +137,14 @@ function registerTFGSupportRecipes(event) { 'AB ', 'AC ', 'AC ' - ],{ + ], { A: s.loose, B: '#tfc:chisels', C: 'tfc:mortar' - }).id(`tfg:shaped/${s.support}`) + }).id(`tfg:shaped/${s.support.split(':')[1]}`) ) - event.recipes.gtceu.assembler(`tfg:gtceu/assembler/${s.support}`) + event.recipes.gtceu.assembler(`tfg:gtceu/assembler/${s.support.split(':')[1]}`) .circuit(11) .inputFluids(Fluid.of('gtceu:concrete', 36)) .itemOutputs(`8x ${s.support}`) @@ -154,14 +154,14 @@ function registerTFGSupportRecipes(event) { }) // Metal Supports - event.shaped('8x tfg:rebar_support', [ - 'BA ', - 'AC ' - ],{ - A: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Steel, 1), - B: ChemicalHelper.get(TagPrefix.wireFine, GTMaterials.Steel, 1), - C: '#forge:tools/wire_cutters' - }).id('tfg:shaped/rebar_support') + event.shaped('8x tfg:rebar_support', [ + 'BA ', + 'AC ' + ], { + A: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Steel, 1), + B: ChemicalHelper.get(TagPrefix.wireFine, GTMaterials.Steel, 1), + C: '#forge:tools/wire_cutters' + }).id('tfg:shaped/rebar_support') event.recipes.gtceu.assembler('tfg:gtceu/assembler/rebar_support') .circuit(11) @@ -170,15 +170,14 @@ function registerTFGSupportRecipes(event) { .duration(100) .EUt(GTValues.VA[GTValues.ULV]) - event.recipes.tfc.anvil( - '1x tfg:steel_support', - '#forge:double_ingots/steel', - [ - 'upset_last', - 'shrink_any' - ] - ).tier(4) - .id('tfg:anvil/steel_support') + event.recipes.tfc.anvil( + '1x tfg:steel_support', + '#forge:double_ingots/steel', + [ + 'upset_last', + 'shrink_any' + ] + ).tier(4).id('tfg:anvil/steel_support') event.recipes.gtceu.assembler('tfg:gtceu/assembler/steel_support') .circuit(11) @@ -186,12 +185,12 @@ function registerTFGSupportRecipes(event) { .itemInputs('2x #forge:double_ingots/steel') .duration(100) .EUt(GTValues.VA[GTValues.ULV]) - + event.recipes.gtceu.macerator('tfg:macerator/recycling/steel_support') .itemInputs('tfg:steel_support') .itemOutputs( ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Steel, 2) - ) + ) .duration(GTMaterials.Steel.getMass() * 2) .category(GTRecipeCategories.MACERATOR_RECYCLING) .EUt(GTValues.VA[GTValues.ULV]) From 728b80964821ab3688fc1f7766354ce46524af13 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 6 Oct 2025 10:48:08 +0100 Subject: [PATCH 03/69] cl --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 51ee2e995..59d1a073e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## [Unreleased] ### Changes ### Bug fixes +- Fixed linux crash from recipe IDs (#1962) @Xaligal @Pyritie ## [0.11.0] - 05-10-2025 - WARNING! If you're upgrading your world from 0.10 to 0.11, please read the upgrade guide [here](https://github.com/TerraFirmaGreg-Team/Modpack-Modern/wiki/%5BEN%5D-Upgrading-from-0.10-to-0.11). We do not recommend using Alpha versions for progression, but if you do, please make frequent backups! From 644881ecf2209961d052307ba6710925ac43b383 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 6 Oct 2025 11:04:29 +0100 Subject: [PATCH 04/69] fix table whitespace --- kubejs/server_scripts/tfg/recipes.supports.js | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/kubejs/server_scripts/tfg/recipes.supports.js b/kubejs/server_scripts/tfg/recipes.supports.js index 1cc84fe56..79727734a 100644 --- a/kubejs/server_scripts/tfg/recipes.supports.js +++ b/kubejs/server_scripts/tfg/recipes.supports.js @@ -116,19 +116,19 @@ function registerTFGSupportRecipes(event) { // REDO w/ table and loop const EXO_STONE_SUPPORTS = [ - { loose: 'tfg:loose/deepslate', support: 'tfg:migmatite_support' }, - { loose: 'tfg:loose/blackstone', support: 'tfg:pyroxenite_support' }, - { loose: 'tfg:loose/dripstone', support: 'tfg:travertine_support' }, - { loose: 'tfg:loose/crackrack', support: 'tfg:keratophyre_support' }, - { loose: 'tfg:loose/moon_stone', support: 'tfg:anorthosite_support' }, + { loose: 'tfg:loose/deepslate', support: 'tfg:migmatite_support' }, + { loose: 'tfg:loose/blackstone', support: 'tfg:pyroxenite_support' }, + { loose: 'tfg:loose/dripstone', support: 'tfg:travertine_support' }, + { loose: 'tfg:loose/crackrack', support: 'tfg:keratophyre_support' }, + { loose: 'tfg:loose/moon_stone', support: 'tfg:anorthosite_support' }, { loose: 'tfg:loose/moon_deepslate', support: 'tfg:norite_support' }, - { loose: 'tfg:loose/mars_stone', support: 'tfg:argillite_support' }, - { loose: 'tfg:loose/venus_stone', support: 'tfg:trachyte_support' }, - { loose: 'tfg:loose/mercury_stone', support: 'tfg:komatiite_support' }, - { loose: 'tfg:loose/glacio_stone', support: 'tfg:phonolite_support' }, - { loose: 'tfg:loose/permafrost', support: 'tfg:permafrost_support' }, - { loose: 'tfg:loose/red_granite', support: 'tfg:red_granite_support' }, - { loose: 'gtceu:stone_ingot', support: 'tfg:stone_support' } + { loose: 'tfg:loose/mars_stone', support: 'tfg:argillite_support' }, + { loose: 'tfg:loose/venus_stone', support: 'tfg:trachyte_support' }, + { loose: 'tfg:loose/mercury_stone', support: 'tfg:komatiite_support' }, + { loose: 'tfg:loose/glacio_stone', support: 'tfg:phonolite_support' }, + { loose: 'tfg:loose/permafrost', support: 'tfg:permafrost_support' }, + { loose: 'tfg:loose/red_granite', support: 'tfg:red_granite_support' }, + { loose: 'gtceu:stone_ingot', support: 'tfg:stone_support' } ] EXO_STONE_SUPPORTS.forEach(s => { From afc24cdc84abb8b039f09669958dce01179c94eb Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 6 Oct 2025 12:40:31 +0100 Subject: [PATCH 05/69] buffed stainless steel lids because why not --- CHANGELOG.md | 1 + kubejs/server_scripts/firmalife/recipes.js | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 59d1a073e..f6451b315 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## [Unreleased] ### Changes +- Buffed how many stainless steel jar lids you can get per ingot from 16 to 48 @Pyritie ### Bug fixes - Fixed linux crash from recipe IDs (#1962) @Xaligal @Pyritie diff --git a/kubejs/server_scripts/firmalife/recipes.js b/kubejs/server_scripts/firmalife/recipes.js index 5c24af74f..e832d76b3 100644 --- a/kubejs/server_scripts/firmalife/recipes.js +++ b/kubejs/server_scripts/firmalife/recipes.js @@ -96,7 +96,7 @@ const registerFirmaLifeRecipes = (event) => { .EUt(2) event.recipes.gtceu.fluid_solidifier(`firmalife:firmalife/stainless_steel_jar_lid`) - .inputFluids(Fluid.of('gtceu:stainless_steel', 9)) + .inputFluids(Fluid.of('gtceu:stainless_steel', 3)) .notConsumable('gtceu:cylinder_casting_mold') .itemOutputs('firmalife:stainless_steel_jar_lid') .duration(50) @@ -104,7 +104,7 @@ const registerFirmaLifeRecipes = (event) => { event.recipes.gtceu.extractor('firmalife:stainless_steel_jar_extraction') .itemInputs('firmalife:stainless_steel_jar_lid') - .outputFluids(Fluid.of('gtceu:stainless_steel', 9)) + .outputFluids(Fluid.of('gtceu:stainless_steel', 3)) .duration(50) .EUt(2) From 5d9aa258a84ef5564579b9f445dd2103420bed27 Mon Sep 17 00:00:00 2001 From: Kolja <104643407+ko-lja@users.noreply.github.com> Date: Mon, 6 Oct 2025 13:50:50 +0200 Subject: [PATCH 06/69] fix wireless card (#1965) Signed-off-by: Kolja <104643407+ko-lja@users.noreply.github.com> --- kubejs/assets/tfg/models/item/wireless_card.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/kubejs/assets/tfg/models/item/wireless_card.json b/kubejs/assets/tfg/models/item/wireless_card.json index 7f9db0799..57a71b7cb 100644 --- a/kubejs/assets/tfg/models/item/wireless_card.json +++ b/kubejs/assets/tfg/models/item/wireless_card.json @@ -1,8 +1,8 @@ { "parent": "item/generated", "textures": { - "layer0": "tfg:item/card/wireless_card_base", - "layer1": "tfg:item/card/wireless_card_layer1", - "layer2": "tfg:item/card/wireless_card_layer2" + "layer0": "tfg:item/wireless_card/wireless_card_base", + "layer1": "tfg:item/wireless_card/wireless_card_layer1", + "layer2": "tfg:item/wireless_card/wireless_card_layer2" } -} \ No newline at end of file +} From 084508a8b586e780a2d529f2656235ec4f5328a0 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 6 Oct 2025 12:51:32 +0100 Subject: [PATCH 07/69] cl --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f6451b315..17caa04ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ - Buffed how many stainless steel jar lids you can get per ingot from 16 to 48 @Pyritie ### Bug fixes - Fixed linux crash from recipe IDs (#1962) @Xaligal @Pyritie +- Fixed missing texture for interplanetary wireless card (#1965, #1964) @Ko-lja ## [0.11.0] - 05-10-2025 - WARNING! If you're upgrading your world from 0.10 to 0.11, please read the upgrade guide [here](https://github.com/TerraFirmaGreg-Team/Modpack-Modern/wiki/%5BEN%5D-Upgrading-from-0.10-to-0.11). We do not recommend using Alpha versions for progression, but if you do, please make frequent backups! From 39c91da70378e33cc88148c6faff4962cae53515 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 6 Oct 2025 14:29:48 +0100 Subject: [PATCH 08/69] fix glacian trees to be partly underground, fiddling with climate stuff for them again --- .../configured_feature/mars/tree/glacian.json | 11 ++------- .../mars/tree/glacian_dead.json | 11 ++------- .../placed_feature/mars/tree/glacian.json | 13 +--------- .../mars/tree/glacian_dead.json | 13 +--------- kubejs/server_scripts/tfg/events.forests.js | 24 +++++++------------ 5 files changed, 15 insertions(+), 57 deletions(-) diff --git a/kubejs/data/tfg/worldgen/configured_feature/mars/tree/glacian.json b/kubejs/data/tfg/worldgen/configured_feature/mars/tree/glacian.json index 6dadef471..b6c2e56c4 100644 --- a/kubejs/data/tfg/worldgen/configured_feature/mars/tree/glacian.json +++ b/kubejs/data/tfg/worldgen/configured_feature/mars/tree/glacian.json @@ -1,6 +1,7 @@ { - "type": "afc:trunkless_stacked_tree", + "type": "tfg:offset_stacked_tree", "config": { + "y_offset": -5, "layers": [ { "templates": [ @@ -47,14 +48,6 @@ "max_count": 1 } ], - "trunk": { - "state": { - "Name": "tfg:glacian_wood" - }, - "min_height": 0, - "max_height": 1, - "wide": true - }, "placement": { "width": 1, "height": 10, diff --git a/kubejs/data/tfg/worldgen/configured_feature/mars/tree/glacian_dead.json b/kubejs/data/tfg/worldgen/configured_feature/mars/tree/glacian_dead.json index 94e131f69..6bd070805 100644 --- a/kubejs/data/tfg/worldgen/configured_feature/mars/tree/glacian_dead.json +++ b/kubejs/data/tfg/worldgen/configured_feature/mars/tree/glacian_dead.json @@ -1,6 +1,7 @@ { - "type": "afc:trunkless_stacked_tree", + "type": "tfg:offset_stacked_tree", "config": { + "y_offset": -5, "layers": [ { "templates": [ @@ -33,14 +34,6 @@ "max_count": 1 } ], - "trunk": { - "state": { - "Name": "tfg:glacian_wood" - }, - "min_height": 0, - "max_height": 1, - "wide": true - }, "placement": { "width": 1, "height": 10, diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/tree/glacian.json b/kubejs/data/tfg/worldgen/placed_feature/mars/tree/glacian.json index 1ec6dec12..697fcfadb 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/tree/glacian.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/tree/glacian.json @@ -1,15 +1,4 @@ { "feature": "tfg:mars/tree/glacian", - "placement": [ - { - "type": "tfc:flat_enough", - "flatness": 0.8, - "radius": 4 - }, - { - "type": "minecraft:random_offset", - "xz_spread": 0, - "y_spread": -7 - } - ] + "placement": [] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/tree/glacian_dead.json b/kubejs/data/tfg/worldgen/placed_feature/mars/tree/glacian_dead.json index 1ec6dec12..697fcfadb 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/tree/glacian_dead.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/tree/glacian_dead.json @@ -1,15 +1,4 @@ { "feature": "tfg:mars/tree/glacian", - "placement": [ - { - "type": "tfc:flat_enough", - "flatness": 0.8, - "radius": 4 - }, - { - "type": "minecraft:random_offset", - "xz_spread": 0, - "y_spread": -7 - } - ] + "placement": [] } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/events.forests.js b/kubejs/server_scripts/tfg/events.forests.js index 36cc40f8b..ca1f2e5a4 100644 --- a/kubejs/server_scripts/tfg/events.forests.js +++ b/kubejs/server_scripts/tfg/events.forests.js @@ -20,8 +20,8 @@ TFCEvents.worldgenData(event => { event.forestEntry('tfg:mars/crimson_forest_entry', climate => { - climate.maxTemp(-24) - climate.minTemp(-108) + climate.maxTemp(-13) + climate.minTemp(-109) climate.minRain(-12) climate.fuzzy(true) }, @@ -50,8 +50,8 @@ TFCEvents.worldgenData(event => { event.forestEntry('tfg:mars/warped_forest_entry', climate => { - climate.maxTemp(-24) - climate.minTemp(-108) + climate.maxTemp(-13) + climate.minTemp(-109) climate.maxRain(0) climate.fuzzy(true) }, @@ -75,7 +75,7 @@ TFCEvents.worldgenData(event => { event.forestEntry('tfg:mars/aeronos_forest_entry', climate => { - climate.minTemp(-97) + climate.minTemp(-100) climate.minRain(-14) climate.fuzzy(true) }, @@ -98,7 +98,7 @@ TFCEvents.worldgenData(event => { event.forestEntry('tfg:mars/strophar_forest_entry', climate => { - climate.minTemp(-97) + climate.minTemp(-100) climate.maxRain(2) climate.fuzzy(true) }, @@ -121,7 +121,7 @@ TFCEvents.worldgenData(event => { event.forestEntry('tfg:mars/alphacene_forest_entry', climate => { - climate.minTemp(-75) + climate.minTemp(-85) climate.fuzzy(true) }, null, @@ -143,7 +143,7 @@ TFCEvents.worldgenData(event => { event.forestEntry('tfg:mars/glacian_forest_entry', climate => { - climate.maxTemp(-105) + climate.maxTemp(-107) climate.fuzzy(true) }, 'tfg:glacian_wood_stripped', @@ -158,13 +158,7 @@ TFCEvents.worldgenData(event => { 'tfg:mars/tree/glacian_dead', 'tfg:mars/tree/glacian', null, null, null, null, null, null, - placement => { - placement.jsonPlacement({ - "type": "minecraft:random_offset", - "xz_spread": 0, - "y_spread": -7 - }) - } + placement => {} ) }) From 9642726604bf8bdc035313331449362993a2272b Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 6 Oct 2025 14:32:20 +0100 Subject: [PATCH 09/69] hm, the glacian rams are still appearing too south --- kubejs/server_scripts/tfg/data.js | 1 + 1 file changed, 1 insertion(+) diff --git a/kubejs/server_scripts/tfg/data.js b/kubejs/server_scripts/tfg/data.js index 0a49530a4..8b87f1b05 100644 --- a/kubejs/server_scripts/tfg/data.js +++ b/kubejs/server_scripts/tfg/data.js @@ -879,6 +879,7 @@ function registerTFGFauna(event) { event.fauna( climate => { climate.maxTemp(-108) + climate.fuzzy(false) }, faunaData => { faunaData.solidGround(true) From be7c711e0f6a69a63df571a2b882d8727df11b81 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 6 Oct 2025 14:40:48 +0100 Subject: [PATCH 10/69] add entityjs --- pakku-lock.json | 73 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/pakku-lock.json b/pakku-lock.json index e4172cdbf..a020036af 100644 --- a/pakku-lock.json +++ b/pakku-lock.json @@ -5387,6 +5387,79 @@ } ] }, + { + "pakku_id": "i98H2GCwZFLKulxG", + "pakku_links": [ + "pB7ARGecP03UXpd6", + "bf2svog06ajj5JHE" + ], + "type": "MOD", + "side": "BOTH", + "slug": { + "curseforge": "entityjs", + "modrinth": "entityjs" + }, + "name": { + "curseforge": "EntityJS", + "modrinth": "EntityJS" + }, + "id": { + "curseforge": "967617", + "modrinth": "OvPZ16yX" + }, + "files": [ + { + "type": "curseforge", + "file_name": "entityjs-0.6.3-1.20.1.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "neoforge", + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/6923/410/entityjs-0.6.3-1.20.1.jar", + "id": "6923410", + "parent_id": "967617", + "hashes": { + "sha1": "e8fb117fe197bb04afc81da897b28a0195e6e067", + "md5": "d12d6b0162da6902cd0ed9cc69508d30" + }, + "required_dependencies": [ + "388172", + "238086" + ], + "size": 2358445, + "date_published": "2025-08-24T17:06:22.457Z" + }, + { + "type": "modrinth", + "file_name": "entityjs-0.6.3-1.20.1.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge", + "neoforge" + ], + "release_type": "release", + "url": "https://cdn.modrinth.com/data/OvPZ16yX/versions/xUCJSmsf/entityjs-0.6.3-1.20.1.jar", + "id": "xUCJSmsf", + "parent_id": "OvPZ16yX", + "hashes": { + "sha512": "22e10738425fc85311e8e8a97878b17189867e7c4d94ee0ebacdac3b8601ff08995335eb974a80c9ac68cd6641bd2672515fbc66c3d0855062fd463d567008bf", + "sha1": "e8fb117fe197bb04afc81da897b28a0195e6e067" + }, + "required_dependencies": [ + "umyGl7zF", + "8BmcQJ2H" + ], + "size": 2358445, + "date_published": "2025-08-24T17:08:46.074919Z" + } + ] + }, { "pakku_id": "6RNzeC2wkWRc6YSM", "type": "MOD", From f61156cd26f301c8e3308689f0fa31edc157790a Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 6 Oct 2025 14:54:57 +0100 Subject: [PATCH 11/69] never mind! --- pakku-lock.json | 73 ------------------------------------------------- 1 file changed, 73 deletions(-) diff --git a/pakku-lock.json b/pakku-lock.json index a020036af..e4172cdbf 100644 --- a/pakku-lock.json +++ b/pakku-lock.json @@ -5387,79 +5387,6 @@ } ] }, - { - "pakku_id": "i98H2GCwZFLKulxG", - "pakku_links": [ - "pB7ARGecP03UXpd6", - "bf2svog06ajj5JHE" - ], - "type": "MOD", - "side": "BOTH", - "slug": { - "curseforge": "entityjs", - "modrinth": "entityjs" - }, - "name": { - "curseforge": "EntityJS", - "modrinth": "EntityJS" - }, - "id": { - "curseforge": "967617", - "modrinth": "OvPZ16yX" - }, - "files": [ - { - "type": "curseforge", - "file_name": "entityjs-0.6.3-1.20.1.jar", - "mc_versions": [ - "1.20.1" - ], - "loaders": [ - "neoforge", - "forge" - ], - "release_type": "release", - "url": "https://edge.forgecdn.net/files/6923/410/entityjs-0.6.3-1.20.1.jar", - "id": "6923410", - "parent_id": "967617", - "hashes": { - "sha1": "e8fb117fe197bb04afc81da897b28a0195e6e067", - "md5": "d12d6b0162da6902cd0ed9cc69508d30" - }, - "required_dependencies": [ - "388172", - "238086" - ], - "size": 2358445, - "date_published": "2025-08-24T17:06:22.457Z" - }, - { - "type": "modrinth", - "file_name": "entityjs-0.6.3-1.20.1.jar", - "mc_versions": [ - "1.20.1" - ], - "loaders": [ - "forge", - "neoforge" - ], - "release_type": "release", - "url": "https://cdn.modrinth.com/data/OvPZ16yX/versions/xUCJSmsf/entityjs-0.6.3-1.20.1.jar", - "id": "xUCJSmsf", - "parent_id": "OvPZ16yX", - "hashes": { - "sha512": "22e10738425fc85311e8e8a97878b17189867e7c4d94ee0ebacdac3b8601ff08995335eb974a80c9ac68cd6641bd2672515fbc66c3d0855062fd463d567008bf", - "sha1": "e8fb117fe197bb04afc81da897b28a0195e6e067" - }, - "required_dependencies": [ - "umyGl7zF", - "8BmcQJ2H" - ], - "size": 2358445, - "date_published": "2025-08-24T17:08:46.074919Z" - } - ] - }, { "pakku_id": "6RNzeC2wkWRc6YSM", "type": "MOD", From 0c1e4f577cd2de2778569f17942b9e582cfeaaef Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 6 Oct 2025 15:48:40 +0100 Subject: [PATCH 12/69] some field guide quest links! --- config/ftbquests/quests/chapters/questsmetallurgy.snbt | 6 ++++++ config/ftbquests/quests/chapters/questsstoneage.snbt | 4 ++++ config/ftbquests/quests/chapters/space_survival.snbt | 1 + 3 files changed, 11 insertions(+) diff --git a/config/ftbquests/quests/chapters/questsmetallurgy.snbt b/config/ftbquests/quests/chapters/questsmetallurgy.snbt index aa837dbb9..14be3b7d2 100644 --- a/config/ftbquests/quests/chapters/questsmetallurgy.snbt +++ b/config/ftbquests/quests/chapters/questsmetallurgy.snbt @@ -132,6 +132,7 @@ { dependencies: ["0A92F5C4BB6AF972"] description: ["{quests.metal_age.wrought_iron_anvil.desc}"] + guide_page: "tfc:field_guide tfc:tfg_tips/anvil_working_guide" id: "174DA15847665CF8" shape: "octagon" size: 2.0d @@ -149,6 +150,7 @@ { dependencies: ["133DB645B6E0585A"] description: ["{quests.metal_age.bronze_anvil.desc}"] + guide_page: "tfc:field_guide tfc:tfg_tips/anvil_working_guide" id: "3C173357029AB649" shape: "octagon" size: 2.0d @@ -229,6 +231,7 @@ "00B22730B33CB4DB" ] description: ["{quests.metal_age.blast_furnace.desc}"] + guide_page: "tfc:field_guide tfc:tfg_tips/blast_furnace_tips" icon: "tfc:blast_furnace" id: "5996A3A0D475B8A6" size: 2.0d @@ -292,6 +295,7 @@ dependencies: ["5A936E9BCF30AA3D"] dependency_requirement: "one_completed" description: ["{quests.metal_age.kaolin_clay.desc}"] + guide_page: "tfc:field_guide tfc:mechanics/surface_kaolin" id: "72F1C122FC26229C" shape: "octagon" size: 2.0d @@ -373,6 +377,7 @@ "31CE13462759950C" ] description: ["{quests.metal_age.fire_clay.desc}"] + guide_page: "tfc:field_guide tfc:mechanics/fire_clay" id: "2C76EE197C14B0DC" size: 2.0d subtitle: "{quests.metal_age.fire_clay.subtitle}" @@ -423,6 +428,7 @@ { dependencies: ["3C173357029AB649"] description: ["{quests.metal_age.mining.desc}"] + guide_page: "tfc:field_guide tfc:tfg_ores/ore_basics" id: "234B68E86F72C29E" subtitle: "{quests.metal_age.mining.subtitle}" tasks: [{ diff --git a/config/ftbquests/quests/chapters/questsstoneage.snbt b/config/ftbquests/quests/chapters/questsstoneage.snbt index b2fa631bd..25f7255ae 100644 --- a/config/ftbquests/quests/chapters/questsstoneage.snbt +++ b/config/ftbquests/quests/chapters/questsstoneage.snbt @@ -656,6 +656,7 @@ { dependencies: ["45A09AD0043FF92B"] description: ["{quests.metal_age.copper_anvil.desc}"] + guide_page: "tfc:field_guide tfc:mechanics/anvils" id: "48A8E3210B2BAE1C" shape: "gear" size: 4.0d @@ -1251,6 +1252,7 @@ { dependencies: ["193F214E9F154980"] description: ["{quests.stone_age.quern.desc}"] + guide_page: "tfc:field_guide tfc:mechanics/quern" id: "5E186CD5E83BFDF0" subtitle: "{quests.stone_age.quern.subtitle}" tasks: [ @@ -1365,6 +1367,7 @@ "{quests.stone_age.hazards.desc.2}" "{image:tfg:textures/quests/supported_mine.png width:100 height:100 align:center}" ] + guide_page: "tfc:field_guide tfc:mechanics/support_beams" icon: "createdeco:decal_warning" id: "618090A6D0D3B2F1" shape: "diamond" @@ -1565,6 +1568,7 @@ dependencies: ["4C444814F1C7B600"] dependency_requirement: "one_completed" description: ["{quests.stone_age.inventory.desc}"] + guide_page: "tfc:field_guide tfc:tfg_tips/inventory_management" id: "61B15F0C9B4B647F" subtitle: "{quests.stone_age.inventory.subtitle}" tasks: [ diff --git a/config/ftbquests/quests/chapters/space_survival.snbt b/config/ftbquests/quests/chapters/space_survival.snbt index 40b6d00f7..6fcad8138 100644 --- a/config/ftbquests/quests/chapters/space_survival.snbt +++ b/config/ftbquests/quests/chapters/space_survival.snbt @@ -924,6 +924,7 @@ } { dependencies: ["5AC5AAB9B3758E30"] + guide_page: "tfc:field_guide tfc:tfg_tips/space_crops" id: "52E45601E8575846" tasks: [{ id: "72E35CA3CF29585B" From 46eef4b0fe8b1395e7d128570fb0936efd38618c Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 6 Oct 2025 16:04:21 +0100 Subject: [PATCH 13/69] fix doubled meat yield of mars ranchable animals --- .../tfg/loot_tables/entities/glacian_ram.json | 4 +- .../tfg/loot_tables/entities/sniffer.json | 6 +- .../tfg/loot_tables/entities/wraptor.json | 80 +++++++++++++++++++ kubejs/server_scripts/tfg/loot.js | 26 +----- 4 files changed, 86 insertions(+), 30 deletions(-) create mode 100644 kubejs/data/tfg/loot_tables/entities/wraptor.json diff --git a/kubejs/data/tfg/loot_tables/entities/glacian_ram.json b/kubejs/data/tfg/loot_tables/entities/glacian_ram.json index 8c4311fb2..7ac353cf7 100644 --- a/kubejs/data/tfg/loot_tables/entities/glacian_ram.json +++ b/kubejs/data/tfg/loot_tables/entities/glacian_ram.json @@ -17,8 +17,8 @@ "min": 4, "max": { "type": "minecraft:uniform", - "min": 12, - "max": 18 + "min": 8, + "max": 12 } } } diff --git a/kubejs/data/tfg/loot_tables/entities/sniffer.json b/kubejs/data/tfg/loot_tables/entities/sniffer.json index f2e4f9c6c..9a73b5f54 100644 --- a/kubejs/data/tfg/loot_tables/entities/sniffer.json +++ b/kubejs/data/tfg/loot_tables/entities/sniffer.json @@ -14,7 +14,7 @@ "function": "minecraft:set_count", "count": { "type": "tfc:animal_yield", - "min": 4, + "min": 6, "max": { "type": "minecraft:uniform", "min": 12, @@ -37,8 +37,8 @@ { "function": "minecraft:set_count", "count": { - "min": 1, - "max": 3, + "min": 7, + "max": 8, "type": "minecraft:uniform" } } diff --git a/kubejs/data/tfg/loot_tables/entities/wraptor.json b/kubejs/data/tfg/loot_tables/entities/wraptor.json new file mode 100644 index 000000000..02f50535c --- /dev/null +++ b/kubejs/data/tfg/loot_tables/entities/wraptor.json @@ -0,0 +1,80 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "type": "minecraft:entity", + "pools": [ + { + "name": "loot_pool", + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "tfg:food/raw_wraptor", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "tfc:animal_yield", + "min": 2, + "max": { + "type": "minecraft:uniform", + "min": 4, + "max": 7 + } + } + } + ] + } + ] + }, + { + "name": "loot_pool", + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bone", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2, + "max": 3, + "type": "minecraft:uniform" + } + } + ] + } + ] + }, + { + "name": "loot_pool", + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:feather", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 3, + "max": 5, + "type": "minecraft:uniform" + } + } + ] + } + ] + }, + { + "name": "loot_pool", + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "tfc:small_raw_hide" + } + ] + } + ] +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/loot.js b/kubejs/server_scripts/tfg/loot.js index 59a0f4c0d..bde84e8cc 100644 --- a/kubejs/server_scripts/tfg/loot.js +++ b/kubejs/server_scripts/tfg/loot.js @@ -152,44 +152,20 @@ function registerTFGLoots(event) { .addLoot(id) }) - // Animal drops - - event.addEntityLootModifier('tfg:glacian_ram') - .addLoot('tfc:small_sheepskin_hide') - .addWeightedLoot([1, 2], ['minecraft:bone']) - .addWeightedLoot([8, 12], ['tfg:food/raw_glacian_mutton']) + // Bonus animal drops with butchery knives event.addEntityLootModifier('tfg:glacian_ram') .matchMainHand('#forge:tools/butchery_knives') .addWeightedLoot([4, 6], ['tfg:food/raw_glacian_mutton']) - - - event.addEntityLootModifier('tfg:moon_rabbit') - .addLoot('tfc:small_raw_hide') - .addWeightedLoot([2, 3], ['minecraft:bone']) - .addLoot('tfg:food/raw_moon_rabbit') event.addEntityLootModifier('tfg:moon_rabbit') .matchMainHand('#forge:tools/butchery_knives') .addWeightedLoot([1, 2], ['tfg:food/raw_moon_rabbit']) - - event.addEntityLootModifier('tfg:sniffer') - .addLoot('tfc:large_raw_hide') - .addWeightedLoot([5, 8], ['minecraft:bone']) - .addWeightedLoot([16, 20], ['tfg:food/raw_sniffer_beef']) - event.addEntityLootModifier('tfg:sniffer') .matchMainHand('#forge:tools/butchery_knives') .addWeightedLoot([8, 10], ['tfg:food/raw_sniffer_beef']) - - event.addEntityLootModifier('tfg:wraptor') - .addLoot('tfc:small_raw_hide') - .addWeightedLoot([2, 3], ['minecraft:bone']) - .addWeightedLoot([2, 4], ['minecraft:feather']) - .addWeightedLoot([4, 7], ['tfg:food/raw_wraptor']) - event.addEntityLootModifier('tfg:wraptor') .matchMainHand('#forge:tools/butchery_knives') .addWeightedLoot([2, 3], ['tfg:food/raw_wraptor']) From 6ef371c99a01c7176a41955e2ffe70d74cd9178f Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 6 Oct 2025 16:07:12 +0100 Subject: [PATCH 14/69] adjustments for moon/mars mob HPs! --- CHANGELOG.md | 3 ++ defaultconfigs/wan_ancient_beasts-server.toml | 10 ++-- kubejs/server_scripts/main_server_script.js | 4 +- kubejs/server_scripts/tfg/entities.js | 46 +++++++++++++++++++ 4 files changed, 55 insertions(+), 8 deletions(-) create mode 100644 kubejs/server_scripts/tfg/entities.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 17caa04ae..3749f04be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,9 +3,12 @@ ## [Unreleased] ### Changes - Buffed how many stainless steel jar lids you can get per ingot from 16 to 48 @Pyritie +- Adjusted max HP of various moon and mars mobs @Pyritie ### Bug fixes - Fixed linux crash from recipe IDs (#1962) @Xaligal @Pyritie - Fixed missing texture for interplanetary wireless card (#1965, #1964) @Ko-lja +- Fixed glacian trees floating above ground @Pyritie +- Fixed tameable mars animals giving twice as much meat as they should @Pyritie ## [0.11.0] - 05-10-2025 - WARNING! If you're upgrading your world from 0.10 to 0.11, please read the upgrade guide [here](https://github.com/TerraFirmaGreg-Team/Modpack-Modern/wiki/%5BEN%5D-Upgrading-from-0.10-to-0.11). We do not recommend using Alpha versions for progression, but if you do, please make frequent backups! diff --git a/defaultconfigs/wan_ancient_beasts-server.toml b/defaultconfigs/wan_ancient_beasts-server.toml index 5c9109df5..6dfa60638 100644 --- a/defaultconfigs/wan_ancient_beasts-server.toml +++ b/defaultconfigs/wan_ancient_beasts-server.toml @@ -3,7 +3,7 @@ [sniffer] #Sniffer health [default: 75] #Range: 1.0 ~ 1024.0 - health = 150.0 + health = 90.0 #Sniffer armor [default: 3] #Range: 0.0 ~ 30.0 armor = 3.0 @@ -42,7 +42,7 @@ [crusher] #Crusher health [default: 50] #Range: 1.0 ~ 1024.0 - health = 150.0 + health = 120.0 #Crusher attack damage [default: 10] #Range: 0.0 ~ 1024.0 damage = 10.0 @@ -57,13 +57,13 @@ [glider] #Glider health [default: 25] #Range: 1.0 ~ 1024.0 - health = 150.0 + health = 100.0 #Soarer Attributes [soarer] #Soarer health [default: 40] #Range: 1.0 ~ 1024.0 - health = 200.0 + health = 150.0 #Soarer attack damage [default: 15] #Range: 0.0 ~ 1024.0 damage = 25.0 @@ -72,5 +72,5 @@ [surfer] #Surfer health [default: 30] #Range: 1.0 ~ 1024.0 - health = 150.0 + health = 100.0 diff --git a/kubejs/server_scripts/main_server_script.js b/kubejs/server_scripts/main_server_script.js index cb967d311..58776317d 100644 --- a/kubejs/server_scripts/main_server_script.js +++ b/kubejs/server_scripts/main_server_script.js @@ -291,6 +291,4 @@ TaCZServerEvents.gunDataLoad((event) => { TaCZServerEvents.attachmentDataLoad((event) => { attachmentDataLogic(event) -}) - - +}) \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/entities.js b/kubejs/server_scripts/tfg/entities.js new file mode 100644 index 000000000..3aefbec38 --- /dev/null +++ b/kubejs/server_scripts/tfg/entities.js @@ -0,0 +1,46 @@ +// priority: 0 +"use strict"; + +const NEW_MOB_MAX_HP = { + // moon mobs + "endermanoverhaul:end_enderman": 50 , + "endermanoverhaul:end_islands_enderman": 120, + "endermanoverhaul:windswept_hills_enderman": 70, + "endermanoverhaul:soulsand_valley_enderman": 80, + // mars mobs -- wan's ancient beasts has its own config for this + "endermanoverhaul:crimson_enderman": 60, + "endermanoverhaul:warped_enderman": 60, + "endermanoverhaul:badlands_enderman": 65, + "endermanoverhaul:cave_enderman": 60, + "ad_astra:martian_raptor": 50, + "tfg:glacian_ram": 50, + "tfg:wraptor": 60, + // sniffer uses the value in wan's ancient beasts config + "species:goober": 100, + "species:stackatick": 20, + "species:springling": 60, + "species:quake": 130, + "species:cruncher": 800 +} + +EntityEvents.spawned((event) => { + + // Easier to just keep all entities in here for balancing instead of spreading them around + + let { entity, entity: {type} } = event; + + console.log(`entity: ${entity}, type: ${type}`) + + let newHP = NEW_MOB_MAX_HP[type] ?? 0; + if (newHP === 0) + return; + + let baseHealth = entity.maxHealth; + let missingHealth = newHP - baseHealth; + + entity.modifyAttribute("minecraft:generic.max_health", "tfg_health_buff_id", missingHealth, "addition"); + + if (missingHealth > 0) { + entity.health += missingHealth; + } +}) \ No newline at end of file From ffcc7427425827c83371d65d1a81d8f8a7824d3c Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 6 Oct 2025 16:33:50 +0100 Subject: [PATCH 15/69] moved mars intro quest text to langs --- .../quests/chapters/ev__extreme_voltage.snbt | 25 +++++++++++-------- .../quests/chapters/space_survival.snbt | 11 ++++++-- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/config/ftbquests/quests/chapters/ev__extreme_voltage.snbt b/config/ftbquests/quests/chapters/ev__extreme_voltage.snbt index e7338d4aa..9bbdd492a 100644 --- a/config/ftbquests/quests/chapters/ev__extreme_voltage.snbt +++ b/config/ftbquests/quests/chapters/ev__extreme_voltage.snbt @@ -69,13 +69,16 @@ { dependencies: ["52AB0BDC64293253"] description: [ - "Before landing on &4Mars&r, there are a few important things to keep in mind.\\n\\nFirst, remember that &4Mars&r is a hostile planet. Expect &cmobs everywhere&r they hit hard, and they hit often. Bring your best &6weapons&r you don’t want to die the moment you touch down.\\n\\nThe planet is mostly a &edesert world&r, dotted with &aoasis islands&r where you’ll find &bwater&r, &ajungle&r biomes, and &7mountains&r much safer places to build your first base. Be careful though: the open desert is extremely dangerous.\\n\\nAll &bfluid veins&r are spread across Mars, except for one of the most important &eHeavy Ammoniacial Water&r which can only be found on these &aoasis islands&r. That’s another good reason to set up your base there.\\n\\nAnd one last tip: don’t kill everything you see. Some &aanimals&r can be &franched&r, and you’ll definitely need them later in your progression.\\n\\n" + "{quests.extreme_voltage.mars.desc.1}" "{@pagebreak}" - "Energy-wise, &4Mars&r will not be kind to you at first.\\n\\nNearly every common &6energy generation method&r is &cdisabled&r on the planet, which means you’ll have to rely almost entirely on &cFission&r to power your base.\\n\\nAt the very beginning, you can use &eAd Astra&r solar panels but don’t expect much from them. Their output is terrible, so it’s far better to bring along some &bfilled batteries&r such as &bLapotron Crystals&r to get started.\\n\\nAchieving energy stability on Mars will take time and effort, but once your systems are running smoothly, you’ll feel like &9unlimited power&r is right in the palm of your hand.\\n\\nStay alert, plan ahead, and Mars will reward your courage.\\n\\nBe sure to check out the &aSpace Survival&r chapter for more Mars-related things too!" + "{quests.extreme_voltage.mars.desc.2}" + "{@pagebreak}" + "{quests.extreme_voltage.mars.desc.3}" ] id: "2979AFD231E5B37B" shape: "gear" size: 2.0d + subtitle: "{quests.extreme_voltage.mars.subtitle}" tasks: [{ dimension: "ad_astra:moon" icon: "ad_astra:mars_globe" @@ -83,7 +86,7 @@ title: "I'm on the Moon" type: "dimension" }] - title: "I'm on Mars" + title: "{quests.extreme_voltage.mars.title}" x: -3.75d y: 7.0d } @@ -1460,8 +1463,8 @@ item: "gtceu:liquid_air_bucket" type: "item" }] - x: -11.0d - y: 2.5d + x: -8.5d + y: 1.5d } { dependencies: ["341751B307577B72"] @@ -1471,8 +1474,8 @@ item: "gtceu:oxygen_bucket" type: "item" }] - x: -12.0d - y: 3.5d + x: -9.5d + y: 2.5d } { dependencies: ["341751B307577B72"] @@ -1482,8 +1485,8 @@ item: "gtceu:argon_bucket" type: "item" }] - x: -11.0d - y: 3.5d + x: -8.5d + y: 2.5d } { dependencies: [ @@ -1804,8 +1807,8 @@ item: "gtceu:helium_bucket" type: "item" }] - x: -12.0d - y: 2.5d + x: -9.5d + y: 1.5d } { dependencies: ["7AC97F7850E31D95"] diff --git a/config/ftbquests/quests/chapters/space_survival.snbt b/config/ftbquests/quests/chapters/space_survival.snbt index 6fcad8138..0d107bb7f 100644 --- a/config/ftbquests/quests/chapters/space_survival.snbt +++ b/config/ftbquests/quests/chapters/space_survival.snbt @@ -712,10 +712,17 @@ y: -4.0d } { - description: [""] + description: [ + "{quests.extreme_voltage.mars.desc.1}" + "{@pagebreak}" + "{quests.extreme_voltage.mars.desc.2}" + "{@pagebreak}" + "{quests.extreme_voltage.mars.desc.3}" + ] id: "1777E6C81C8353D5" shape: "octagon" size: 3.0d + subtitle: "{quests.extreme_voltage.mars.subtitle}" tasks: [{ dimension: "ad_astra:moon" icon: "ad_astra:mars_globe" @@ -723,7 +730,7 @@ title: "I'm on the Moon" type: "dimension" }] - title: "{quests.space_survival.mars.title}" + title: "{quests.extreme_voltage.mars.title}" x: 13.5d y: -8.0d } From 58f5ca69272d7b49fe6dde78fd31938774064033 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 6 Oct 2025 16:43:34 +0100 Subject: [PATCH 16/69] bump up the tree detection a bit more --- config/fallingtrees_common.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/fallingtrees_common.json b/config/fallingtrees_common.json index f74c9d807..02bba7941 100644 --- a/config/fallingtrees_common.json +++ b/config/fallingtrees_common.json @@ -11,7 +11,7 @@ "trees": { "standardTree": { "algorithm": { - "maxLeavesRadius": 22, + "maxLeavesRadius": 25, "maxLogAmount": 512, "shouldFallOnMaxLogAmount": true, "shouldIgnorePersistentLeaves": true From d45e2f164a18a05e897d88ea545db7e7834d7457 Mon Sep 17 00:00:00 2001 From: The Compendium System / The Atlassian Collective <91026414+Xaligal@users.noreply.github.com> Date: Mon, 6 Oct 2025 18:48:53 +0200 Subject: [PATCH 17/69] Food n' Bags Bug Fixing Compilation (#1967) * oops I might've hit space and made linux upset mb gang * > metal bar > look inside > not a metal bar * sns is a mess huh * sns is a mess huh (fixed sns and sophisticated backpack stuff) * hot potato (pun intended) * made bulbkin pie not allergic to firmalife ovens --- defaultconfigs/sns-server.toml | 2 +- defaultconfigs/sophisticatedbackpacks-server.toml | 2 +- kubejs/server_scripts/betterend/recipes.js | 2 ++ kubejs/server_scripts/tfc/data.js | 3 +++ kubejs/server_scripts/tfg/data.js | 3 +++ 5 files changed, 10 insertions(+), 2 deletions(-) diff --git a/defaultconfigs/sns-server.toml b/defaultconfigs/sns-server.toml index e81e48da5..669b41362 100644 --- a/defaultconfigs/sns-server.toml +++ b/defaultconfigs/sns-server.toml @@ -33,7 +33,7 @@ slotCap = 64 #The maximum item size allowed in the container #Allowed Values: TINY, VERY_SMALL, SMALL, NORMAL, LARGE, VERY_LARGE, HUGE - allowedSize = "VERY_LARGE" + allowedSize = "NORMAL" ["Container Item Config"."Burlap Sack"] #Determines if this container will automatically pickup items diff --git a/defaultconfigs/sophisticatedbackpacks-server.toml b/defaultconfigs/sophisticatedbackpacks-server.toml index 9584e4406..5fac59eaa 100644 --- a/defaultconfigs/sophisticatedbackpacks-server.toml +++ b/defaultconfigs/sophisticatedbackpacks-server.toml @@ -2,7 +2,7 @@ #Server Settings [server] #List of items that are not allowed to be put in backpacks - e.g. "minecraft:shulker_box" - disallowedItems = [] + disallowedItems = ["sns:frame_pack", "sns:burlap_sack"] #Determines if container items (those that override canFitInsideContainerItems to false) are able to fit in backpacks containerItemsDisallowed = false #List of blocks that inventory interaction upgrades can't interact with - e.g. "minecraft:shulker_box" diff --git a/kubejs/server_scripts/betterend/recipes.js b/kubejs/server_scripts/betterend/recipes.js index 9a6dc0f55..7bdb90325 100644 --- a/kubejs/server_scripts/betterend/recipes.js +++ b/kubejs/server_scripts/betterend/recipes.js @@ -54,4 +54,6 @@ function registerBetterEndRecipes(event) { generateGreenHouseRecipe(event, '8x betterend:shadow_berry_seeds', 'tfg:semiheavy_ammoniacal_water', 8000, '24x betterend:shadow_berry_product', 'shadow_berry', 'ad_astra:mars', 8, null, GTValues.VA[GTValues.LV]) + + event.recipes.firmalife.oven('betterend:cave_pumpkin_pie_raw', 400, 60 * 20, 'betterend:cave_pumpkin_pie') } \ No newline at end of file diff --git a/kubejs/server_scripts/tfc/data.js b/kubejs/server_scripts/tfc/data.js index 3d4356f52..16be426b5 100644 --- a/kubejs/server_scripts/tfc/data.js +++ b/kubejs/server_scripts/tfc/data.js @@ -24,6 +24,9 @@ const registerTFCHeats = (event) => { event.itemHeat('tfc:groundcover/seaweed', 1.0, null, null) event.itemHeat('tfc:plant/leafy_kelp', 1.0, null, null) event.itemHeat('tfc:plant/winged_kelp', 1.0, null, null) + + // Baked Potato + event.itemHeat('tfc:food/baked_potato', 1.0, null, null) } diff --git a/kubejs/server_scripts/tfg/data.js b/kubejs/server_scripts/tfg/data.js index 8b87f1b05..58c95b491 100644 --- a/kubejs/server_scripts/tfg/data.js +++ b/kubejs/server_scripts/tfg/data.js @@ -24,6 +24,9 @@ function registerTFGHeatData(event) { event.itemHeat("tfg:sunflower_product", 1, null, null); event.itemHeat("tfg:roasted_sunflower_seeds", 1, null, null); event.itemHeat("#tfc:powders", 1, null, null); + + event.itemHeat('betterend:cave_pumpkin_pie_raw', 1.0, null, null); + event.itemHeat('betterend:cave_pumpkin_pie', 1.0, null, null); } /** @param {Internal.TFCDataEventJS} event */ From 7db93fb9ddb30e6c76fa85c5c76615f2914d15b0 Mon Sep 17 00:00:00 2001 From: The Compendium System / The Atlassian Collective <91026414+Xaligal@users.noreply.github.com> Date: Mon, 6 Oct 2025 18:50:47 +0200 Subject: [PATCH 18/69] New ULV Flax Cutter Recipe (#1968) * oops I might've hit space and made linux upset mb gang * > metal bar > look inside > not a metal bar * sns is a mess huh * sns is a mess huh (fixed sns and sophisticated backpack stuff) * hot potato (pun intended) * made bulbkin pie not allergic to firmalife ovens * flax cutter recipe --------- Co-authored-by: Pyritie --- kubejs/server_scripts/tfg/recipes.miscellaneous.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/kubejs/server_scripts/tfg/recipes.miscellaneous.js b/kubejs/server_scripts/tfg/recipes.miscellaneous.js index cabdd697e..b766fe1f4 100644 --- a/kubejs/server_scripts/tfg/recipes.miscellaneous.js +++ b/kubejs/server_scripts/tfg/recipes.miscellaneous.js @@ -1327,6 +1327,18 @@ function registerTFGMiscellaneousRecipes(event) { 'tfg:flax_tow' ).id('tfg:scraping/flax_tow') + event.recipes.gtceu.cutter('tfg:flax_line_in_cutter') + .itemInputs('tfg:flax_product') + .itemOutputs('2x tfg:flax_line', 'tfg:flax_waste') + .duration(60) + .EUt(2) + + event.recipes.gtceu.cutter('tfg:flax_tow_in_cutter') + .itemInputs('tfg:flax_waste') + .itemOutputs('1x tfg:flax_tow', '1x tfc:groundcover/humus') + .duration(60) + .EUt(2) + event.recipes.gtceu.centrifuge('tfg:flax_product') .itemInputs('tfg:flax_product') .itemOutputs('2x tfg:flax_line', 'tfg:flax_tow', 'tfc:groundcover/humus') From 7d345cf1c9b3adc03958d5fad4936b2db0c25c08 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 6 Oct 2025 18:13:49 +0100 Subject: [PATCH 19/69] oops the krypton wasn't looped --- kubejs/server_scripts/tfg/recipes.nuclear.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/kubejs/server_scripts/tfg/recipes.nuclear.js b/kubejs/server_scripts/tfg/recipes.nuclear.js index fba736cc3..810bb345d 100644 --- a/kubejs/server_scripts/tfg/recipes.nuclear.js +++ b/kubejs/server_scripts/tfg/recipes.nuclear.js @@ -94,6 +94,12 @@ function registerTFGNuclearRecipes(event) { .duration(20*9) .EUt(GTValues.VA[GTValues.MV]) + event.recipes.gtceu.distillery('mars_semiheavy_water') + .inputFluids(Fluid.of('tfg:semiheavy_ammoniacal_water', 1000)) + .outputFluids(Fluid.of('minecraft:water', 250)) + .duration(20*5) + .EUt(GTValues.VA[GTValues.MV]) + // Martian Sludge event.recipes.gtceu.chemical_bath('dirty_hexafluorosilicic_acid') From 9b30950aaa32961058e9fe54534e3cb6ecbdc3e5 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 6 Oct 2025 18:14:01 +0100 Subject: [PATCH 20/69] fix pink bed from glacian fur --- kubejs/server_scripts/ad_astra/recipes.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kubejs/server_scripts/ad_astra/recipes.js b/kubejs/server_scripts/ad_astra/recipes.js index ffcb2eeb4..c308a3b95 100644 --- a/kubejs/server_scripts/ad_astra/recipes.js +++ b/kubejs/server_scripts/ad_astra/recipes.js @@ -891,7 +891,7 @@ const registerAdAstraRecipes = (event) => { 'AAA', 'BBB' ], { - A: 'ad_astra:glacian_wool', + A: 'ad_astra:glacian_fur', B: '#tfc:lumber' }).id('tfg:shaped/glacian_bed') From ad39997f0230ef80869a2ae9e6e52d807227e7a5 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 6 Oct 2025 18:14:26 +0100 Subject: [PATCH 21/69] fix krypton imbalance --- kubejs/server_scripts/tfg/recipes.space.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kubejs/server_scripts/tfg/recipes.space.js b/kubejs/server_scripts/tfg/recipes.space.js index 88876ced3..4a039ea13 100644 --- a/kubejs/server_scripts/tfg/recipes.space.js +++ b/kubejs/server_scripts/tfg/recipes.space.js @@ -395,7 +395,7 @@ function registerTFGSpaceRecipes(event) { event.recipes.gtceu.mixer('tfg:mars_sap') .itemInputs('#forge:dusts/warpane', '#forge:dusts/crimsene') - .inputFluids(Fluid.of('gtceu:hydrochloric_acid', 1000), Fluid.of('gtceu:krypton', 1000)) + .inputFluids(Fluid.of('gtceu:hydrochloric_acid', 1000), Fluid.of('gtceu:krypton', 500)) .itemOutputs('#forge:dusts/mycelienzene') .duration(30 * 20) .EUt(GTValues.VA[GTValues.EV]) From 671b7169ddcca1360e0e6cbd35b7f023b4229391 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 6 Oct 2025 18:29:06 +0100 Subject: [PATCH 22/69] mars shield tweaks --- kubejs/server_scripts/species/recipes.js | 15 +++++++++++++-- .../server_scripts/wan_ancient_beasts/recipes.js | 14 ++------------ 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/kubejs/server_scripts/species/recipes.js b/kubejs/server_scripts/species/recipes.js index 83badb722..d95c062a7 100644 --- a/kubejs/server_scripts/species/recipes.js +++ b/kubejs/server_scripts/species/recipes.js @@ -92,8 +92,19 @@ function registerSpeciesRecipes(event) { A: '#forge:double_plates/copper', B: 'create:precision_mechanism', C: 'species:kinetic_core', - D: '#tfc:shields' - }).id('tfg:shaped/ricoshield') + D: 'tfc:metal/shield/blue_steel' + }).id('tfg:shaped/ricoshield_blue') + + event.shaped('species:ricoshield', [ + 'ABA', + 'ACA', + 'ADA' + ], { + A: '#forge:double_plates/copper', + B: 'create:precision_mechanism', + C: 'species:kinetic_core', + D: 'tfc:metal/shield/red_steel' + }).id('tfg:shaped/ricoshield_red') event.shaped('species:deflector_dummy', [ 'A', diff --git a/kubejs/server_scripts/wan_ancient_beasts/recipes.js b/kubejs/server_scripts/wan_ancient_beasts/recipes.js index 2f20cea4e..a3ebea443 100644 --- a/kubejs/server_scripts/wan_ancient_beasts/recipes.js +++ b/kubejs/server_scripts/wan_ancient_beasts/recipes.js @@ -53,22 +53,12 @@ const registerWABRecipes = (event) => { event.shaped('wan_ancient_beasts:reinforced_shield', [ 'BAB', - 'ACA', + 'BCB', 'BAB' - ], { - A: '#forge:plates/bismuth_bronze', - B: 'wan_ancient_beasts:crusher_spike', - C: 'wan_ancient_beasts:eater_tooth' - }).id('tfg:shaped/reinforced_shield') - - event.shaped('wan_ancient_beasts:reinforced_shield', [ - 'BAB', - ' C ', - 'B B' ], { A: 'wan_ancient_beasts:eater_tooth', B: 'wan_ancient_beasts:crusher_spike', - C: 'tfc:metal/shield/bismuth_bronze' + C: '#tfc:shields' }).id('tfg:shaped/reinforced_shield_from_shield') } From 722b2756f285b1986aa97fe47f083597e932934c Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 6 Oct 2025 18:29:20 +0100 Subject: [PATCH 23/69] buffed bulbkin pie, fixed egg tag --- kubejs/server_scripts/tfg/data.js | 4 ++-- kubejs/server_scripts/tfg/tags.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/kubejs/server_scripts/tfg/data.js b/kubejs/server_scripts/tfg/data.js index 8b87f1b05..2540905a9 100644 --- a/kubejs/server_scripts/tfg/data.js +++ b/kubejs/server_scripts/tfg/data.js @@ -554,8 +554,8 @@ function registerTFGFoodData(event) { food.decayModifier(2); food.water(5); food.protein(1); - food.fruit(4); - food.grain(2); + food.fruit(5); + food.grain(4); }); event.foodItem("betterend:chorus_mushroom_product", (food) => { diff --git a/kubejs/server_scripts/tfg/tags.js b/kubejs/server_scripts/tfg/tags.js index c0cd2f055..7e30a8117 100644 --- a/kubejs/server_scripts/tfg/tags.js +++ b/kubejs/server_scripts/tfg/tags.js @@ -767,7 +767,7 @@ const registerTFGItemTags = (event) => { //Mars animal region event.add('tfg:martian_eggs', 'tfg:sniffer_egg') event.add('tfg:martian_eggs', 'tfg:wraptor_egg') - event.add('tfc:eggs', '#tfg:martian_eggs') + event.add('forge:eggs', '#tfg:martian_eggs') event.add('tfg:martian_animal_foods', 'betterend:amber_root_product') event.add('tfg:martian_animal_foods', 'betterend:blossom_berry_product') From 12f6f0a09f75df67c5cad4feb4b554981e72d63b Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 6 Oct 2025 18:36:21 +0100 Subject: [PATCH 24/69] hey if eggs have dairy for some reason then so can this --- kubejs/server_scripts/tfg/data.js | 1 + 1 file changed, 1 insertion(+) diff --git a/kubejs/server_scripts/tfg/data.js b/kubejs/server_scripts/tfg/data.js index 7b282e3b9..d01ce9f96 100644 --- a/kubejs/server_scripts/tfg/data.js +++ b/kubejs/server_scripts/tfg/data.js @@ -559,6 +559,7 @@ function registerTFGFoodData(event) { food.protein(1); food.fruit(5); food.grain(4); + food.dairy(1); }); event.foodItem("betterend:chorus_mushroom_product", (food) => { From 998eaa287e48fb623ac01649fe5177e3c214f296 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 6 Oct 2025 20:58:56 +0100 Subject: [PATCH 25/69] I assume infinite hematite is ok since we already have infinite magnetite --- kubejs/server_scripts/tfg/recipes.space_ores.js | 1 + 1 file changed, 1 insertion(+) diff --git a/kubejs/server_scripts/tfg/recipes.space_ores.js b/kubejs/server_scripts/tfg/recipes.space_ores.js index d5e554464..5e6aa6393 100644 --- a/kubejs/server_scripts/tfg/recipes.space_ores.js +++ b/kubejs/server_scripts/tfg/recipes.space_ores.js @@ -195,6 +195,7 @@ function registerTFGSpaceOres(event) { .inputFluids(Fluid.of('gtceu:tritiated_water', 500)) .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/thorium'), 1, 10) .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/uraninite'), 1, 10) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/hematite'), 1, 10) .dimension('ad_astra:mars') .duration(20 * 5) .EUt(GTValues.VA[GTValues.IV]); From 6ea05e109ec2052558f75a1196d80422e10284a5 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 6 Oct 2025 21:03:50 +0100 Subject: [PATCH 26/69] stackatick items --- kubejs/server_scripts/species/tags.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kubejs/server_scripts/species/tags.js b/kubejs/server_scripts/species/tags.js index 84a2816c6..17525850e 100644 --- a/kubejs/server_scripts/species/tags.js +++ b/kubejs/server_scripts/species/tags.js @@ -30,4 +30,6 @@ const registerSpeciesItemTags = (event) => { event.add('tfc:compost_greens', 'species:alphacene_moss_block') event.add('minecraft:wart_blocks', 'species:alphacene_mushroom_block') + + event.add('stackatick_tempt_items', 'tfc:sweetener') } From 96526a31a5f18b50c88210012684146f98bc4e66 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 6 Oct 2025 21:37:32 +0100 Subject: [PATCH 27/69] fixed blackstone/keratophyre supports --- CHANGELOG.md | 1 + kubejs/server_scripts/tfg/recipes.rocks.js | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3749f04be..5ef09a48f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ - Fixed missing texture for interplanetary wireless card (#1965, #1964) @Ko-lja - Fixed glacian trees floating above ground @Pyritie - Fixed tameable mars animals giving twice as much meat as they should @Pyritie +- Fixed pyroxenite and keratophyre rocks in various recipes like stone supports @Pyritie ## [0.11.0] - 05-10-2025 - WARNING! If you're upgrading your world from 0.10 to 0.11, please read the upgrade guide [here](https://github.com/TerraFirmaGreg-Team/Modpack-Modern/wiki/%5BEN%5D-Upgrading-from-0.10-to-0.11). We do not recommend using Alpha versions for progression, but if you do, please make frequent backups! diff --git a/kubejs/server_scripts/tfg/recipes.rocks.js b/kubejs/server_scripts/tfg/recipes.rocks.js index cf63c7437..f8fa93ca3 100644 --- a/kubejs/server_scripts/tfg/recipes.rocks.js +++ b/kubejs/server_scripts/tfg/recipes.rocks.js @@ -41,7 +41,7 @@ function registerTFGRockRecipes(event) { { loose: 'tfg:loose/dripstone', block: 'tfg:rock/cobble_dripstone' }, { loose: 'tfg:brick/dripstone', block: '4x create:cut_dripstone_bricks' }, - { loose: 'tfg:loose/crackrack', block: 'tfg:rock/cobble_crackrack' }, + { loose: 'beneath:crackrack_rock', block: 'tfg:rock/cobble_crackrack' }, { loose: 'tfg:loose/moon_stone', block: 'ad_astra:moon_cobblestone' }, { loose: 'tfg:brick/moon_stone', block: '4x ad_astra:moon_stone_bricks' }, @@ -94,7 +94,7 @@ function registerTFGRockRecipes(event) { const COBBLE_TO_LOOSE = [ { cobble: 'minecraft:blackstone', loose: 'beneath:blackstone_pebble' }, { cobble: 'tfg:rock/cobble_dripstone', loose: 'tfg:loose/dripstone' }, - { cobble: 'tfg:rock/cobble_crackrack', loose: 'tfg:loose/crackrack' }, + { cobble: 'tfg:rock/cobble_crackrack', loose: 'beneath:crackrack_rock' }, { cobble: 'tfg:rock/cobble_moon_deepslate', loose: 'tfg:loose/moon_deepslate' }, { cobble: 'gtceu:red_granite_cobblestone', loose: 'tfg:brick/red_granite' }, { cobble: 'tfg:rock/cobble_permafrost', loose: 'tfg:loose/permafrost' }, @@ -111,7 +111,7 @@ function registerTFGRockRecipes(event) { { loose: 'tfg:loose/deepslate', gravel: 'tfg:rock/gravel_deepslate' }, { loose: 'beneath:blackstone_pebble', gravel: 'tfg:rock/gravel_blackstone' }, { loose: 'tfg:loose/dripstone', gravel: 'tfg:rock/gravel_dripstone' }, - { loose: 'tfg:loose/crackrack', gravel: 'tfg:rock/gravel_crackrack' }, + { loose: 'beneath:crackrack_rock', gravel: 'tfg:rock/gravel_crackrack' }, { loose: 'tfg:loose/moon_stone', gravel: 'tfg:rock/gravel_moon' }, { loose: 'tfg:loose/moon_deepslate', gravel: 'tfg:rock/gravel_moon_deepslate' }, { loose: 'tfg:loose/glacio_stone', gravel: 'tfg:rock/gravel_glacio' }, @@ -131,7 +131,7 @@ function registerTFGRockRecipes(event) { const LOOSE_TO_BRICKS = [ { loose: 'tfg:loose/deepslate', brick: 'tfg:brick/deepslate' }, { loose: 'tfg:loose/dripstone', brick: 'tfg:brick/dripstone' }, - { loose: 'tfg:loose/crackrack', brick: 'minecraft:nether_brick' }, + { loose: 'beneath:crackrack_rock', brick: 'minecraft:nether_brick' }, { loose: 'tfg:loose/moon_stone', brick: 'tfg:brick/moon_stone' }, { loose: 'tfg:loose/moon_deepslate', brick: 'tfg:brick/moon_deepslate' }, { loose: 'tfg:loose/mars_stone', brick: 'tfg:brick/mars_stone' }, @@ -469,7 +469,7 @@ function registerTFGRockRecipes(event) { dust: 'gtceu:netherrack_dust', loose: null, stonecutting: true }, // Raw { raw: 'tfg:rock/cobble_crackrack', stair: 'tfg:rock/cobble_crackrack_stairs', slab: 'tfg:rock/cobble_crackrack_slab', wall: 'tfg:rock/cobble_crackrack_wall', - dust: 'gtceu:netherrack_dust', loose: 'tfg:loose/crackrack', stonecutting: true }, // Cobble + dust: 'gtceu:netherrack_dust', loose: 'beneath:crackrack_rock', stonecutting: true }, // Cobble { raw: 'tfg:rock/mossy_cobble_crackrack', stair: 'tfg:rock/mossy_cobble_crackrack_stairs', slab: 'tfg:rock/mossy_cobble_crackrack_slab', wall: 'tfg:rock/mossy_cobble_crackrack_wall', dust: 'gtceu:netherrack_dust', loose: null, stonecutting: true }, // Cobble - Mossy From 23bc2d5bd1c410b884756aeea641cda9c4e4f1c7 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 6 Oct 2025 21:37:41 +0100 Subject: [PATCH 28/69] I said, fixed supports --- kubejs/server_scripts/tfg/recipes.supports.js | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/kubejs/server_scripts/tfg/recipes.supports.js b/kubejs/server_scripts/tfg/recipes.supports.js index 79727734a..ec17c332e 100644 --- a/kubejs/server_scripts/tfg/recipes.supports.js +++ b/kubejs/server_scripts/tfg/recipes.supports.js @@ -116,19 +116,19 @@ function registerTFGSupportRecipes(event) { // REDO w/ table and loop const EXO_STONE_SUPPORTS = [ - { loose: 'tfg:loose/deepslate', support: 'tfg:migmatite_support' }, - { loose: 'tfg:loose/blackstone', support: 'tfg:pyroxenite_support' }, - { loose: 'tfg:loose/dripstone', support: 'tfg:travertine_support' }, - { loose: 'tfg:loose/crackrack', support: 'tfg:keratophyre_support' }, - { loose: 'tfg:loose/moon_stone', support: 'tfg:anorthosite_support' }, - { loose: 'tfg:loose/moon_deepslate', support: 'tfg:norite_support' }, - { loose: 'tfg:loose/mars_stone', support: 'tfg:argillite_support' }, - { loose: 'tfg:loose/venus_stone', support: 'tfg:trachyte_support' }, - { loose: 'tfg:loose/mercury_stone', support: 'tfg:komatiite_support' }, - { loose: 'tfg:loose/glacio_stone', support: 'tfg:phonolite_support' }, - { loose: 'tfg:loose/permafrost', support: 'tfg:permafrost_support' }, - { loose: 'tfg:loose/red_granite', support: 'tfg:red_granite_support' }, - { loose: 'gtceu:stone_ingot', support: 'tfg:stone_support' } + { loose: 'tfg:loose/deepslate', support: 'tfg:migmatite_support' }, + { loose: 'beneath:blackstone_pebble', support: 'tfg:pyroxenite_support' }, + { loose: 'tfg:loose/dripstone', support: 'tfg:travertine_support' }, + { loose: 'beneath:crackrack_rock', support: 'tfg:keratophyre_support' }, + { loose: 'tfg:loose/moon_stone', support: 'tfg:anorthosite_support' }, + { loose: 'tfg:loose/moon_deepslate', support: 'tfg:norite_support' }, + { loose: 'tfg:loose/mars_stone', support: 'tfg:argillite_support' }, + { loose: 'tfg:loose/venus_stone', support: 'tfg:trachyte_support' }, + { loose: 'tfg:loose/mercury_stone', support: 'tfg:komatiite_support' }, + { loose: 'tfg:loose/glacio_stone', support: 'tfg:phonolite_support' }, + { loose: 'tfg:loose/permafrost', support: 'tfg:permafrost_support' }, + { loose: 'tfg:loose/red_granite', support: 'tfg:red_granite_support' }, + { loose: 'gtceu:stone_ingot', support: 'tfg:stone_support' } ] EXO_STONE_SUPPORTS.forEach(s => { From 142b93890230b1dc7a04de9a08dc3100fe734aa1 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 6 Oct 2025 21:37:50 +0100 Subject: [PATCH 29/69] why is this disabled? --- kubejs/startup_scripts/beneath/constants.js | 1 - 1 file changed, 1 deletion(-) diff --git a/kubejs/startup_scripts/beneath/constants.js b/kubejs/startup_scripts/beneath/constants.js index 69fcec829..86a0d999d 100644 --- a/kubejs/startup_scripts/beneath/constants.js +++ b/kubejs/startup_scripts/beneath/constants.js @@ -3,7 +3,6 @@ global.BENEATH_DISABLED_ITEMS = [ "beneath:cobblerack", - "beneath:crackrack_rock", "beneath:lost_page", "beneath:ore/slimed_netherrack", "beneath:raw_slime", From 7973b44cbaaaa2648bda1ef3d4387782db629a78 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 6 Oct 2025 21:37:58 +0100 Subject: [PATCH 30/69] and this isn't? --- kubejs/startup_scripts/create_additions/constants.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kubejs/startup_scripts/create_additions/constants.js b/kubejs/startup_scripts/create_additions/constants.js index 8cee92602..400bd3ba7 100644 --- a/kubejs/startup_scripts/create_additions/constants.js +++ b/kubejs/startup_scripts/create_additions/constants.js @@ -35,5 +35,6 @@ global.CREATE_ADDITIONS_DISABLED_ITEMS = [ 'createaddition:festive_spool', 'createaddition:small_light_connector', 'createaddition:electrum_block', - 'createaddition:portable_energy_interface' + 'createaddition:portable_energy_interface', + 'createaddition:straw' ]; From e51cf2f07b4f0e911e3144865fd7456aa17e89ff Mon Sep 17 00:00:00 2001 From: Jason Nash <47706293+Nashy1232@users.noreply.github.com> Date: Mon, 6 Oct 2025 22:30:33 +0100 Subject: [PATCH 31/69] all pressure plates to circ 3 (#1970) --- kubejs/server_scripts/ad_astra/recipes.js | 2 +- kubejs/server_scripts/afc/recipes.js | 2 +- kubejs/server_scripts/gregtech/recipes.js | 2 +- kubejs/server_scripts/gregtech/utility.js | 2 +- kubejs/server_scripts/minecraft/recipes.js | 2 +- kubejs/server_scripts/tfc/recipes.stone.js | 2 +- kubejs/server_scripts/tfc/recipes.wood.js | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/kubejs/server_scripts/ad_astra/recipes.js b/kubejs/server_scripts/ad_astra/recipes.js index c308a3b95..85c582633 100644 --- a/kubejs/server_scripts/ad_astra/recipes.js +++ b/kubejs/server_scripts/ad_astra/recipes.js @@ -784,7 +784,7 @@ const registerAdAstraRecipes = (event) => { event.recipes.gtceu.assembler(`tfg:ad_astra_${x.type}_pressure_plate`) .itemInputs('#forge:small_springs', `2x ad_astra:${x.type}_plating_slab`) .itemOutputs(`ad_astra:${x.type}_plating_pressure_plate`) - .circuit(0) + .circuit(3) .duration(50) .EUt(2) diff --git a/kubejs/server_scripts/afc/recipes.js b/kubejs/server_scripts/afc/recipes.js index 5ec40fb12..fbed049eb 100644 --- a/kubejs/server_scripts/afc/recipes.js +++ b/kubejs/server_scripts/afc/recipes.js @@ -63,7 +63,7 @@ const registerAFCRecipes = (event) => { event.recipes.gtceu.assembler(`${wood}_pressure_plate`) .itemInputs('#forge:small_springs', `2x afc:wood/planks/${wood}_slab`) - .circuit(0) + .circuit(3) .itemOutputs(`2x afc:wood/planks/${wood}_pressure_plate`) .duration(50) .EUt(2) diff --git a/kubejs/server_scripts/gregtech/recipes.js b/kubejs/server_scripts/gregtech/recipes.js index 2d2ca5e76..15a8d949f 100644 --- a/kubejs/server_scripts/gregtech/recipes.js +++ b/kubejs/server_scripts/gregtech/recipes.js @@ -1381,7 +1381,7 @@ const registerGTCEURecipes = (event) => { event.recipes.gtceu.assembler('gtceu:treated_pressure_plate') .itemInputs('#forge:small_springs', '2x gtceu:treated_wood_slab') .itemOutputs('gtceu:treated_wood_pressure_plate') - .circuit(0) + .circuit(3) .duration(50) .EUt(2) diff --git a/kubejs/server_scripts/gregtech/utility.js b/kubejs/server_scripts/gregtech/utility.js index 8d2d19e9a..bbe10117d 100644 --- a/kubejs/server_scripts/gregtech/utility.js +++ b/kubejs/server_scripts/gregtech/utility.js @@ -452,7 +452,7 @@ function woodBuilder(event, name, lumber, logs, log, stripped_log, plank, stair, .itemInputs(`2x ${slab}`, '#forge:springs') .itemOutputs(`2x ${pressure_plate}`) .duration(50) - .circuit(0) + .circuit(3) .EUt(GTValues.VA[GTValues.ULV]) } diff --git a/kubejs/server_scripts/minecraft/recipes.js b/kubejs/server_scripts/minecraft/recipes.js index 34c87eeaf..1e94ebd0c 100644 --- a/kubejs/server_scripts/minecraft/recipes.js +++ b/kubejs/server_scripts/minecraft/recipes.js @@ -1107,7 +1107,7 @@ const registerMinecraftRecipes = (event) => { event.recipes.gtceu.assembler(`minecraft:${x.type}_pressure_plate`) .itemInputs('#forge:small_springs', `2x ${x.material}`) .itemOutputs(`minecraft:${x.type}_pressure_plate`) - .circuit(0) + .circuit(3) .duration(50) .EUt(2) }) diff --git a/kubejs/server_scripts/tfc/recipes.stone.js b/kubejs/server_scripts/tfc/recipes.stone.js index cc057b9f7..635057bce 100644 --- a/kubejs/server_scripts/tfc/recipes.stone.js +++ b/kubejs/server_scripts/tfc/recipes.stone.js @@ -49,7 +49,7 @@ function registerTFCStoneRecipes(event) { event.recipes.gtceu.assembler(`${stone}_raw_pressure_plate`) .itemInputs('#forge:small_springs', `2x tfc:rock/raw/${stone}_slab`) - .circuit(0) + .circuit(3) .itemOutputs(`2x tfc:rock/pressure_plate/${stone}`) .duration(50) .EUt(2) diff --git a/kubejs/server_scripts/tfc/recipes.wood.js b/kubejs/server_scripts/tfc/recipes.wood.js index 7afa73464..7ede26945 100644 --- a/kubejs/server_scripts/tfc/recipes.wood.js +++ b/kubejs/server_scripts/tfc/recipes.wood.js @@ -41,7 +41,7 @@ function registerTFCWoodRecipes(event) { event.recipes.gtceu.assembler(`${wood}_pressure_plate`) .itemInputs('#forge:small_springs', `2x tfc:wood/planks/${wood}_slab`) - .circuit(0) + .circuit(3) .itemOutputs(`2x tfc:wood/planks/${wood}_pressure_plate`) .duration(50) .EUt(2) From 3fb490fe040599df8f08e1ff21b3b975f740e9e8 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Tue, 7 Oct 2025 01:20:10 +0100 Subject: [PATCH 32/69] a bunch of small tweaks --- kubejs/server_scripts/ad_astra/recipes.js | 4 +-- .../endermanoverhaul/recipes.js | 24 ++++++++++++++ .../server_scripts/endermanoverhaul/tags.js | 2 -- kubejs/server_scripts/sandworm/recipes.js | 2 +- kubejs/server_scripts/species/recipes.js | 32 ++++++++++++------- kubejs/server_scripts/tfg/data.js | 2 +- .../tfg/recipes.miscellaneous.js | 4 +-- .../wan_ancient_beasts/recipes.js | 5 +-- kubejs/startup_scripts/gtceu/materials.js | 1 + 9 files changed, 54 insertions(+), 22 deletions(-) diff --git a/kubejs/server_scripts/ad_astra/recipes.js b/kubejs/server_scripts/ad_astra/recipes.js index c308a3b95..95c346a1b 100644 --- a/kubejs/server_scripts/ad_astra/recipes.js +++ b/kubejs/server_scripts/ad_astra/recipes.js @@ -881,9 +881,9 @@ const registerAdAstraRecipes = (event) => { ) event.recipes.gtceu.assembler('tfg:assembler/glacian_fur') - .itemInputs('8x tfg:glacian_wool') + .itemInputs('tfg:glacian_wool') .circuit(10) - .itemOutputs('8x ad_astra:glacian_fur') + .itemOutputs('ad_astra:glacian_fur') .duration(100) .EUt(4) diff --git a/kubejs/server_scripts/endermanoverhaul/recipes.js b/kubejs/server_scripts/endermanoverhaul/recipes.js index 3b18ed299..9ca5a8bc2 100644 --- a/kubejs/server_scripts/endermanoverhaul/recipes.js +++ b/kubejs/server_scripts/endermanoverhaul/recipes.js @@ -15,4 +15,28 @@ function registerEndermanOverhaulRecipes(event) { .category(GTRecipeCategories.MACERATOR_RECYCLING) .duration(50) .EUt(GTValues.VA[GTValues.ULV]) + + event.shaped('endermanoverhaul:corrupted_shield', [ + 'ABA', + 'ECE', + 'ADA' + ], { + A: 'endermanoverhaul:enderman_tooth', + B: 'endermanoverhaul:corrupted_pearl', + C: 'tfc:metal/shield/blue_steel', + D: '#forge:plates/ender_pearl', + E: '#forge:plates/titanium' + }).id('tfg:shaped/corrupted_shield_blue') + + event.shaped('endermanoverhaul:corrupted_shield', [ + 'ABA', + 'ACA', + 'ADA' + ], { + A: 'endermanoverhaul:enderman_tooth', + B: 'endermanoverhaul:corrupted_pearl', + C: 'tfc:metal/shield/red_steel', + D: '#forge:plates/ender_pearl', + E: '#forge:plates/titanium' + }).id('tfg:shaped/corrupted_shield_red') } \ No newline at end of file diff --git a/kubejs/server_scripts/endermanoverhaul/tags.js b/kubejs/server_scripts/endermanoverhaul/tags.js index 6ba95244b..8b31e5a38 100644 --- a/kubejs/server_scripts/endermanoverhaul/tags.js +++ b/kubejs/server_scripts/endermanoverhaul/tags.js @@ -3,9 +3,7 @@ const registerEndermanOverhaulItemTags = (event) => { const DISABLED_ITEMS = [ - 'endermanoverhaul:enderman_tooth', 'endermanoverhaul:corrupted_blade', - 'endermanoverhaul:corrupted_shield', 'endermanoverhaul:savanna_hood', 'endermanoverhaul:snowy_hood', diff --git a/kubejs/server_scripts/sandworm/recipes.js b/kubejs/server_scripts/sandworm/recipes.js index 049625458..c5cb82480 100644 --- a/kubejs/server_scripts/sandworm/recipes.js +++ b/kubejs/server_scripts/sandworm/recipes.js @@ -11,5 +11,5 @@ const registerSandwormRecipes = (event) => { .itemOutputs('sandworm_mod:thumper') .duration(200) .circuit(10) - .EUt(GTValues.VA[GTValues.EV]*2); + .EUt(GTValues.VA[GTValues.EV]); } \ No newline at end of file diff --git a/kubejs/server_scripts/species/recipes.js b/kubejs/server_scripts/species/recipes.js index d95c062a7..14b95dcdf 100644 --- a/kubejs/server_scripts/species/recipes.js +++ b/kubejs/server_scripts/species/recipes.js @@ -73,37 +73,45 @@ function registerSpeciesRecipes(event) { event.shapeless('species:cracked_wraptor_egg', ['tfg:wraptor_egg', '#forge:tools/hammers']).id('tfg:shapeless/crack_egg') event.shapeless('2x tfg:wraptor_sugar', ['species:cracked_wraptor_egg']).id('tfg:shapeless/juice_egg') - event.recipes.gtceu.extractor('tfg:juice_egg_mv') + event.recipes.gtceu.extractor('tfg:juice_wraptor_egg_mv') .itemInputs('species:cracked_wraptor_egg') .itemOutputs('4x tfg:wraptor_sugar') .duration(100) .EUt(GTValues.VA[GTValues.MV]) - event.recipes.gtceu.extractor('tfg:juice_egg_full') + event.recipes.gtceu.extractor('tfg:juice_wraptor_egg_full') .itemInputs('tfg:wraptor_egg') .itemOutputs('4x tfg:wraptor_sugar') .duration(200) .EUt(GTValues.VA[GTValues.MV]) + event.recipes.gtceu.extractor('tfg:juice_sniffer_egg') + .itemInputs('tfg:sniffer_egg') + .outputFluids(Fluid.of('firmalife:cream', 1000)) + .duration(100) + .EUt(GTValues.VA[GTValues.MV]) + event.shaped('species:ricoshield', [ - 'ABA', + 'EBE', 'ACA', - 'ADA' + 'EDE' ], { - A: '#forge:double_plates/copper', + A: '#forge:springs/steel', B: 'create:precision_mechanism', - C: 'species:kinetic_core', - D: 'tfc:metal/shield/blue_steel' + C: 'tfc:metal/shield/blue_steel', + D: 'species:kinetic_core', + E: '#forge:plates/titanium' }).id('tfg:shaped/ricoshield_blue') event.shaped('species:ricoshield', [ - 'ABA', + 'EBE', 'ACA', - 'ADA' + 'EDE' ], { - A: '#forge:double_plates/copper', + A: '#forge:springs/steel', B: 'create:precision_mechanism', - C: 'species:kinetic_core', - D: 'tfc:metal/shield/red_steel' + C: 'tfc:metal/shield/red_steel', + D: 'species:kinetic_core', + E: '#forge:plates/titanium' }).id('tfg:shaped/ricoshield_red') event.shaped('species:deflector_dummy', [ diff --git a/kubejs/server_scripts/tfg/data.js b/kubejs/server_scripts/tfg/data.js index d01ce9f96..d2d49bbd7 100644 --- a/kubejs/server_scripts/tfg/data.js +++ b/kubejs/server_scripts/tfg/data.js @@ -554,7 +554,7 @@ function registerTFGFoodData(event) { event.foodItem("betterend:cave_pumpkin_pie", (food) => { food.hunger(4); food.saturation(4); - food.decayModifier(2); + food.decayModifier(1.5); food.water(5); food.protein(1); food.fruit(5); diff --git a/kubejs/server_scripts/tfg/recipes.miscellaneous.js b/kubejs/server_scripts/tfg/recipes.miscellaneous.js index b766fe1f4..a0a650681 100644 --- a/kubejs/server_scripts/tfg/recipes.miscellaneous.js +++ b/kubejs/server_scripts/tfg/recipes.miscellaneous.js @@ -917,7 +917,7 @@ function registerTFGMiscellaneousRecipes(event) { .outputFluids(Fluid.of('tfg:molten_aes', 200)) .circuit(4) .duration(80) - .blastFurnaceTemp(3400) + .blastFurnaceTemp(3000) .EUt(GTValues.VA[GTValues.EV]) event.recipes.gtceu.electric_blast_furnace('tfg:smelt_wraptor_wool') .itemInputs('tfg:wraptor_wool') @@ -925,7 +925,7 @@ function registerTFGMiscellaneousRecipes(event) { .outputFluids(Fluid.of('tfg:molten_aes', 100)) .circuit(8) .duration(60) - .blastFurnaceTemp(3400) + .blastFurnaceTemp(3000) .EUt(GTValues.VA[GTValues.EV]) event.recipes.tfc.damage_inputs_shapeless_crafting( diff --git a/kubejs/server_scripts/wan_ancient_beasts/recipes.js b/kubejs/server_scripts/wan_ancient_beasts/recipes.js index a3ebea443..2b65d3851 100644 --- a/kubejs/server_scripts/wan_ancient_beasts/recipes.js +++ b/kubejs/server_scripts/wan_ancient_beasts/recipes.js @@ -53,12 +53,13 @@ const registerWABRecipes = (event) => { event.shaped('wan_ancient_beasts:reinforced_shield', [ 'BAB', - 'BCB', + 'DCD', 'BAB' ], { A: 'wan_ancient_beasts:eater_tooth', B: 'wan_ancient_beasts:crusher_spike', - C: '#tfc:shields' + C: '#tfc:shields', + D: '#forge:plates/titanium' }).id('tfg:shaped/reinforced_shield_from_shield') } diff --git a/kubejs/startup_scripts/gtceu/materials.js b/kubejs/startup_scripts/gtceu/materials.js index af5b86ddd..76958809f 100644 --- a/kubejs/startup_scripts/gtceu/materials.js +++ b/kubejs/startup_scripts/gtceu/materials.js @@ -185,6 +185,7 @@ const registerGTCEuMaterialModification = (event) => { GTMaterials.Beryllium.addFlags(GENERATE_DUSTY_ORES); GTMaterials.Thorium.addFlags(GENERATE_DUSTY_ORES); GTMaterials.Uraninite.addFlags(GENERATE_DUSTY_ORES); + GTMaterials.Hematite.addFlags(GENERATE_DUSTY_ORES); //#endregion From d8e33a4c6dab32bc8850c43cda4c26affa61ebfc Mon Sep 17 00:00:00 2001 From: Pyritie Date: Tue, 7 Oct 2025 01:30:24 +0100 Subject: [PATCH 33/69] forgot this loot table --- .../loot_tables/entities/cave_enderman.json | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/kubejs/data/endermanoverhaul/loot_tables/entities/cave_enderman.json b/kubejs/data/endermanoverhaul/loot_tables/entities/cave_enderman.json index 63f8e6b51..d585a244c 100644 --- a/kubejs/data/endermanoverhaul/loot_tables/entities/cave_enderman.json +++ b/kubejs/data/endermanoverhaul/loot_tables/entities/cave_enderman.json @@ -35,6 +35,27 @@ } ], "rolls": 2.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "endermanoverhaul:enderman_tooth" + } + ], + "rolls": 1.0 } ] } \ No newline at end of file From 9258c667ab71ae94c8411f7eee0eb912e0c4bae4 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Tue, 7 Oct 2025 01:30:33 +0100 Subject: [PATCH 34/69] langs and quests! --- .../quests/chapters/ev__extreme_voltage.snbt | 119 ++++++--- .../quests/chapters/gregtech_energy.snbt | 19 +- .../quests/chapters/lv__low_voltage.snbt | 2 +- .../quests/chapters/space_survival.snbt | 238 ++++++++++++------ kubejs/assets/tfg/lang/en_us.json | 140 ++++++++++- kubejs/assets/tfg/lang/fr_fr.json | 6 +- kubejs/assets/tfg/lang/ru_ru.json | 2 +- kubejs/assets/tfg/lang/uk_ua.json | 2 +- 8 files changed, 406 insertions(+), 122 deletions(-) diff --git a/config/ftbquests/quests/chapters/ev__extreme_voltage.snbt b/config/ftbquests/quests/chapters/ev__extreme_voltage.snbt index 9bbdd492a..f5f983a14 100644 --- a/config/ftbquests/quests/chapters/ev__extreme_voltage.snbt +++ b/config/ftbquests/quests/chapters/ev__extreme_voltage.snbt @@ -25,10 +25,21 @@ x: -3.5d y: -4.0d } + { + id: "66960076A74E9B79" + linked_quest: "0CA5B715B76E4A5B" + shape: "diamond" + x: 9.5d + y: -2.0d + } ] quests: [ { - description: ["You’ve built new &6chemistry lines&r, manufactured advanced &balloys&r, and even launched a &dRocket&r to reach the Moon. We hope you enjoyed the ride because now things get even more complex, with powerful new machines and demanding processes ahead.\\n\\nIn the &5EV Chapter&r, your main objective will be to craft your very first &1IV&r and &dLuV&r Circuits. Along the way, several key challenges await you:\\n\\n• Build your first &6Alloy Blast Smelter&r a faster version of the EBF. With it, you’ll be able to construct your first Large Machine: the &6Large Centrifuge&r, essential for the Nuclear Fission Line. It also lets you upgrade ore processing with a faster Thermal Centrifuge.\\n\\n• Master the new &eTungsten Line&r a &dTerraFirmaGreg&r–specific production chain. Looping all the required materials will test both your knowledge and your patience.\\n\\n• Prepare to fly to &4Mars&r where you’ll become an &aextraterrestrial farmer&r while also learning to harness the &cpower of the atom&r.\\n\\nGood luck this is where GregTech begins to show its true depth!"] + description: [ + "{quests.extreme_voltage.welcome_to_ev.desc.1}" + "{@pagebreak}" + "{quests.extreme_voltage.welcome_to_ev.desc.2}" + ] id: "4EA8888B12D75BF1" shape: "gear" size: 3.0d @@ -48,11 +59,12 @@ "55FB2776B724FB63" "3FBDC8552F7D8008" ] - description: [""] + description: ["{quests.extreme_voltage.t2_rocket.desc}"] icon_scale: 2.0d id: "52AB0BDC64293253" shape: "none" size: 2.0d + subtitle: "{quests.extreme_voltage.t2_rocket.subtitle}" tasks: [{ id: "00802CE875F2FB24" item: { @@ -62,7 +74,7 @@ } type: "item" }] - title: "The next generation Rocket" + title: "{quests.extreme_voltage.t2_rocket.title}" x: -3.75d y: 3.0d } @@ -151,15 +163,23 @@ } { dependencies: ["4EA8888B12D75BF1"] - description: ["&6The Distillation Tower&r is a direct multiblock upgrade of the &6Distillery&r. You won't have to choose outputs anymore the DT will handle them all automatically, at an increased power cost.\\n\\nThis machine will be your bread and butter for anything involving &ePetrochem&r or &eOrganic distillation.\\n\\nLike the &6Cleanroom&r, the DT can be made taller though not wider. Starting from the second layer, each added level requires an &9Output Hatch&r and grants one additional fluid output slot; if a level lacks its output hatch, the corresponding fluid will be voided. Count the number of outputs with &dEMI&r so you know how many layers you need. As always, use the Multiblock Preview tab in &dEMI&r and click the multiblock to see where you can place each part.\\n\\n&cNote:&r Be careful not to over-overclock the DT when producing fuels excessive OC can reduce the overall power yield, especially for Diesel. Do the math and double-check your calculations."] + description: [ + "{quests.extreme_voltage.distillation_tower.desc.1}" + "{@pagebreak}" + "{quests.extreme_voltage.distillation_tower.desc.2}" + "{@pagebreak}" + "{quests.extreme_voltage.distillation_tower.desc.3}" + ] id: "3A2E442E4D84C891" shape: "octagon" size: 2.0d + subtitle: "{quests.extreme_voltage.distillation_tower.subtitle}" tasks: [{ id: "4F7F66B31C51745B" item: "gtceu:distillation_tower" type: "item" }] + title: "{quests.extreme_voltage.distillation_tower.title}" x: -7.0d y: 0.0d } @@ -390,31 +410,37 @@ "2979AFD231E5B37B" "5EC5566546591DEE" ] - description: ["The &6Nuclear Fuel Factory&r has one purpose: producing fuel rods for your &cFission Reactor&r.\\n\\nIt supports &9Parallel Hatches&r which you’ll unlock soon but they aren’t mandatory yet. Functionally, it works much like the Pyrolyse Oven: the &ebetter the coils&r you install, the faster the recipes will run.\\n\\nSince fuel rod production is both &cslow&r and &cexpensive&r, we strongly recommend using the &ahighest tier coils&r available. Don’t waste your time with Cupronickel you’ll only be nerfing yourself."] + description: ["{quests.extreme_voltage.nuclear_fuel_factory.desc}"] id: "2AE4C12203E5F15E" + subtitle: "{quests.extreme_voltage.nuclear_fuel_factory.subtitle}" tasks: [{ id: "6FF1B21AD971D795" item: "gtceu:nuclear_fuel_factory" type: "item" }] + title: "{quests.extreme_voltage.nuclear_fuel_factory.title}" x: 6.0d y: 7.0d } { dependencies: ["2979AFD231E5B37B"] + description: ["{quests.space_survival.mineral_rich_wool.desc}"] id: "51BEA1053F203050" + subtitle: "{quests.space_survival.mineral_rich_wool.subtitle}" tasks: [{ id: "03F10750FD9BBAA6" item: "tfg:sniffer_wool" type: "item" }] + title: "{quests.space_survival.mineral_rich_wool.title}" x: -2.5d y: 6.0d } { - description: ["To run your Fission Reactor, you’ll need a steady supply of &bHeavy Water&r and there’s only one place to find it.\\n\\nIt’s located in &adeep fluid veins&r found exclusively beneath the &aoasis islands&r of Mars. Grab your &6Ore Prospector&r, switch it to &bFluid Mode&r, and start scanning.\\n\\nBecause the amount of &bHeavy Water&r required to keep your reactor running is enormous, you should seriously consider investing in a &6Large Centrifuge&r to produce it yourself.\\n\\nInstall a &516A EV Energy Hatch&r, and you’ll be ready for true mass production ensuring your reactor never runs dry.\\n\\nReliable cooling means reliable power build smart."] + description: ["{quests.extreme_voltage.heavy_water.desc}"] icon: "tfg:heavy_water_bucket" id: "4AD41E9FA7814EA1" + subtitle: "{quests.extreme_voltage.heavy_water.subtitle}" tasks: [ { id: "642113FC75A34D13" @@ -445,6 +471,7 @@ type: "checkmark" } ] + title: "{quests.extreme_voltage.heavy_water.title}" x: 8.5d y: 5.5d } @@ -469,16 +496,35 @@ dependencies: [ "77CB4AE5B3AF5263" "4AD41E9FA7814EA1" + "2BE373381980C85F" + ] + description: [ + "{quests.gregtech_energy.fission_reactor.desc.1}" + "{@pagebreak}" + "{quests.gregtech_energy.fission_reactor.desc.2}" + "{@pagebreak}" + "{quests.gregtech_energy.fission_reactor.desc.3}" + "{@pagebreak}" + "{quests.gregtech_energy.fission_reactor.desc.4}" + "{@pagebreak}" + "{quests.gregtech_energy.fission_reactor.desc.5}" + "{@pagebreak}" + "{quests.gregtech_energy.fission_reactor.desc.6}" + "{@pagebreak}" + "{quests.gregtech_energy.fission_reactor.desc.7}" + "{@pagebreak}" + "{quests.gregtech_energy.fission_reactor.desc.8}" ] - description: ["Read the extensive explication made by Vazde the mod author in the Gregtech Energy Chapter"] id: "29E0829816B9DBA0" shape: "octagon" size: 2.0d + subtitle: "{quests.gregtech_energy.fission_reactor.subtitle}" tasks: [{ id: "2C3F3D0BA3CD96E2" item: "deafission:fission_reactor_mk1" type: "item" }] + title: "{quests.gregtech_energy.fission_reactor.title}" x: 8.5d y: 7.0d } @@ -622,18 +668,24 @@ "618D55F4BF91731F" "075434DAB3D9F0EA" ] - description: ["The &6Heat Exchanger&r is a critical component for your Fission Line not only for cooling but also for producing &eHigh Pressure Steam&r, the steam that powers your Nuclear Turbine.\\n\\nIt features &bPerfect Overclocking&r and &bSubtick Processing&r. If these terms sound unfamiliar, we strongly recommend reviewing the &dGregTech Energy Chapter&r to fully understand how they affect performance.\\n\\nDon’t hold back install a &516A EV Energy Hatch&r right from the start so you’ll never have to worry about speed or throughput limitations.\\n\\nWe also provide you with a &9Machine Controller&r to attach to your Heat Exchanger’s main controller. We’ve noticed that the machine can sometimes disable itself unexpectedly, so be sure to enable &ePrevent Power Failing&r. This will counter the GTm mechanic that shuts down machines when they momentarily lose power."] + description: [ + "{quests.extreme_voltage.heat_exchanger.desc.1}" + "{@pagebreak}" + "{quests.extreme_voltage.heat_exchanger.desc.2}" + ] id: "75725B3F6603F1D0" rewards: [{ id: "79711B337329A3E4" item: "gtceu:machine_controller_cover" type: "item" }] + subtitle: "{quests.extreme_voltage.heat_exchanger.subtitle}" tasks: [{ id: "67CB661D4F20EC3A" item: "gtceu:heat_exchanger" type: "item" }] + title: "{quests.extreme_voltage.heat_exchanger.title}" x: 14.5d y: 7.0d } @@ -992,7 +1044,10 @@ y: 12.5d } { - dependencies: ["513322E59D1FD011"] + dependencies: [ + "617CF3335584DC8D" + "0CA5B715B76E4A5B" + ] icon: "gtceu:ostrum_harvester" id: "236F53188110F6D5" tasks: [ @@ -1087,7 +1142,7 @@ } ] title: "EV Superconductor" - x: 12.0d + x: 10.0d y: 8.0d } { @@ -1305,10 +1360,11 @@ } { dependencies: ["4EA8888B12D75BF1"] - description: [""] + description: ["{quests.extreme_voltage.ev_components.desc}"] icon: "gtceu:ev_electric_motor" id: "3DE2AF7FC388F29C" size: 1.0d + subtitle: "{quests.extreme_voltage.ev_components.subtitle}" tasks: [ { id: "47CBA539F745DDE6" @@ -1346,7 +1402,7 @@ type: "item" } ] - title: "The \"Fun\" will never stop" + title: "{quests.extreme_voltage.ev_components.title}" x: -5.5d y: 1.5d } @@ -1615,19 +1671,6 @@ x: 17.0d y: 6.5d } - { - dependencies: ["617CF3335584DC8D"] - icon: "minecraft:red_sand" - id: "513322E59D1FD011" - tasks: [{ - biome: "tfg:mars/martian_deep_desert" - id: "11C5B107B2144363" - title: "Visit the Deep Desert" - type: "biome" - }] - x: 10.5d - y: -0.5d - } { dependencies: ["236F53188110F6D5"] id: "691A36800DC755C1" @@ -1782,6 +1825,20 @@ item: "gtceu:uraninite_dust" type: "item" } + { + id: "43E02B6BE521142B" + item: { + Count: 1 + ForgeCaps: { + "tfc:item_heat": { + heat: 0.0f + ticks: 0L + } + } + id: "gtceu:hematite_dust" + } + type: "item" + } ] x: 15.5d y: 1.0d @@ -1825,10 +1882,11 @@ y: 13.5d } { - description: ["With Fission, you gain access to a brand new &6Dedicated Turbine&r!\\n\\nIt works just like the previous turbines but, similar to the Gas Turbine, it requires at least an &5EV Rotor Holder&r to operate.\\n\\nThe coils inside this turbine must be &7Cupronickel&r, and they don’t affect performance in any way they’re purely aesthetic (but we have to admit, they look pretty good).\\n\\nIn this quest, we suggest two &aRotors&r that fit nicely for the turbine at thisstage, but feel free to experiment and use any &brotor&r that suits your setup best."] + description: ["{quests.extreme_voltage.nuclear_turbine.desc}"] id: "1655573AE1C8484B" shape: "octagon" size: 1.5d + subtitle: "{quests.extreme_voltage.nuclear_turbine.subtitle}" tasks: [ { id: "464798A8B69DC8B3" @@ -1864,26 +1922,30 @@ type: "item" } ] + title: "{quests.extreme_voltage.nuclear_turbine.title}" x: 7.0d y: 9.0d } { dependencies: ["601088B7920140B2"] - description: ["The &dPlutonium Fuel Rod&r runs at extremely high temperatures so high, in fact, that you’ll need to use &bRefrigerant Pellets&r inside your reactor to prevent it from going into cooldown mode.\\n\\nThese pellets are quite expensive to produce, but you should still be able to mass-produce them early on, at least enough to keep your first few plutonium rods operational.\\n\\nLater on, if you don’t like constantly crafting these consumables, you’ll gain access to &6advanced reactor components&r. With those installed, your reactor will be able to safely reach up to &e600 Max Heat&r greatly improving efficiency and stability.\\n\\nInvest in better internal parts early to spend less time babysitting your power core."] + description: ["{quests.extreme_voltage.refrigerant_pellet.desc}"] hide_dependency_lines: true id: "08195E9FA1396936" + subtitle: "{quests.extreme_voltage.refrigerant_pellet.subtitle}" tasks: [{ id: "1B4C7B8C2EDFE595" item: "tfg:refrigerant_pellet" type: "item" }] + title: "{quests.extreme_voltage.refrigerant_pellet.title}" x: 18.0d y: 10.5d } { dependencies: ["29E0829816B9DBA0"] - description: ["One of the most interesting features of the Fission Reactor is its ability to have blocks added inside to modify its &emaximum heat capacity&r.\\n\\nYou can place &6Framed Blocks&r within the corners of the reactor, allowing for up to &e20 blocks&r in total. Alternatively, you can use &9Item Holders&r and insert cooling items with input buses, these help manage heat buildup effectively.\\n\\nIt’s also important to note that this internal setup is the &conly way&r to enable the &brecipe processing&r part of the Fission Reactor.\\n\\nSmart internal configuration will make the difference between a stable reactor and one on cooldown so plan your layout carefully."] + description: ["{quests.extreme_voltage.reactor_components.desc}"] id: "63A8FE8F9C8EB5B3" + subtitle: "{quests.extreme_voltage.reactor_components.subtitle}" tasks: [ { id: "7028407F5DD546D0" @@ -1906,6 +1968,7 @@ type: "item" } ] + title: "{quests.extreme_voltage.reactor_components.title}" x: 10.0d y: 5.5d } diff --git a/config/ftbquests/quests/chapters/gregtech_energy.snbt b/config/ftbquests/quests/chapters/gregtech_energy.snbt index 808bbca54..f3ba8662b 100644 --- a/config/ftbquests/quests/chapters/gregtech_energy.snbt +++ b/config/ftbquests/quests/chapters/gregtech_energy.snbt @@ -964,24 +964,24 @@ { dependencies: ["7AF726555D721DFC"] description: [ - "The &dFission Reactor&r is certainly an uncommon sight in GregTech - both in theme, and how it works. But fear not, we are here to guide you with this multi-purpose big-brain multiblock!\\n\\nWe'll spare you the physics for now, &efellow engineer&r. The most important thing you should know is that the reactor is like a big thermal &dbattery-generator&r. You input proper fuel, and get &cheat&r (just like &6EU/t&r) that gets stored in the reactor as &crising temperature&r (stored &6EU&r).\\n\\nYou can then transfer this heat to &9coolant fluids&r for running turbines, or performing EBF-style crafting recipes. Sometimes you may even have &ctoo much&r of it. And oh, you also get new elements to make new fuels and circuits and stuff. Maybe explore the solar system a bit more? Boring stuff.\\n\\n&7Flip the page to learn more.&r" + "{quests.gregtech_energy.fission_reactor.desc.1}" "{@pagebreak}" - "To start off, get your hands on some &dThorium&r. Remember to wear all the relevant PPE - &eDeatek Intergalactic&r is not responsible for any bodily harm resulting from improper handling of fissile materials. We really shouldn't have to remind you at this point anymore. Check the hazards quest if you need a refresher.\\n\\nNext, craft some empty &dFuel Rods&r and fill them with the &dNuclear Fuel Processing Plant&r. The rods" - "are reusable, so you don't have to make too many. In fact, you might want to make just a single one for now.\\n\\nYou'll of course need a completed reactor, too. Check the EMI preview. Note how there is a central column of Fuel Holders, and then some optional columns for Components and Material Holders - more of these later.\\n\\nWait. Why just a &osingle&r rod? Oh, are &ewe&r glad you asked. Let's delve deep into the reactor mechanics in the next quest." + "{quests.gregtech_energy.fission_reactor.desc.2}" "{@pagebreak}" - "The more fuel rods you have installed in the reactor, the &chotter&r it gets. And the hotter it is, the more heat it is able to transfer out to the coolant fluid and processable items. But physics has its limits, and the reactor can only ever get &cso hot&r, so don't install too many fuel cells.\\n\\nBut fear not! Unlike how the &0big-oil&r propaganda machine insists, nuclear energy is &aperfectly safe&r. Should the heat level of the reactor border dangerous territory, the reactor enters an &9automatic cooldown sequence&r, and won't start again until all heat has been &asafely dissipated&r. It's quite slow, though.\\n\\nThere has to be a way to make it hotter and faster? Once again, good thing you asked! &eOur brilliant engineers&r have a solution for you!" + "{quests.gregtech_energy.fission_reactor.desc.3}" "{@pagebreak}" - "In addition to the 5 &dFuel Holders&r, you can install &oup to&r 20 &dComponents&r. The reactors from some other manufacturers require very exact positioning, but our reactor is smarter. The &6stats&r of all installed ones will simply be &6summed up&r, and that's it!\\n\\nCurrently, the reactor is able to utilize them in three&8*&r different ways:\\n&e1)&r Max temperature &7(insulator)&r\\n&e2)&r Efficiency &7(fuel lasts longer)&r\\n&e3)&r Throttle &7(slows down the reactions)&r\\n\\n&8*)&r It's possible your local galaxy doesn't have the necessary materials for all of them. We estimate to find materials only for the first category.\\n\\nBut be wary. Rising the &ctemperature&r comes with a &cdownside&r." + "{quests.gregtech_energy.fission_reactor.desc.4}" "{@pagebreak}" - "While a &chotter&r reactor makes coolants and processing &cfaster&r, it is also more demaning for the fuel rods. Each fuel rod has limited durability, and this scales linearly with the temperature.\\n\\nAs you need more fuel rods for the higher heat, this in effect makes the damage scale &nquadratically&r. If you want to heat coolants the most efficiently, you'll use low temperature. But if you want faster fissile conversion, use as high a heat as the insulation allows." + "{quests.gregtech_energy.fission_reactor.desc.5}" "{@pagebreak}" - "You are finally ready to take a look at the various recipes involving the reactor; check where the &dcontroller&r is used, and you'll find three &eEMI&r tabs:\\n\\n&e1)&r Fission Reactor &7(fuels and compatible coolants)&r\\n&e2)&r Fission Heat Processing &7(think: EBF)&r\\n&e3)&r Fission\\nProducts &7(when the fuel runs out)&r\\n&e4)&r The multiblock preview\\n\\nVarious &afuels&r are only compatible with certain &9coolant fluids&r, so pay attention to this. And once a fuel rod is completely used up, statistical certainty can safely state it having &btra&dns&rf&dor&bmed&r into new elements.\\n\\nThe processing recipes on the other hand can run regardless of the fuel, as long as the temperature level is high enough." + "{quests.gregtech_energy.fission_reactor.desc.6}" "{@pagebreak}" - "The simplified math is as follows: with sufficient coolant fluid and a &c100%&r heat fuel rod, the reactor will reach a temperature of about &c200&r. This can also be referred to as heat level, or just heat. Having &dtwo&r &c100%&r fuel cells is equal to &done&r &c200%&r cell, and both lead to about &c400&r heat.\\n\\nThis is because the fuel rod generates &6200 HU/t&r (heat units). Coolant fluids are able to extract &61 HU/t&r per &c1&r degree of heat.\\n\\nIf the reactor's max heat is &c190&r, a &c100%&r fuel cell will overheat it. You can increase this with the components, or alternatively &dactive coolants&r via the processing system. Each recipe has a heat impact." + "{quests.gregtech_energy.fission_reactor.desc.7}" "{@pagebreak}" - "For example, if the recipe's temperature is &c100&r, and impact &6-10 HU/t&r, it is able to cool down the reactor by &619 HU/t &rat &c190&r degrees.\\n\\nThat makes it possible to run the reactor with lower max heat, and not overheat! If the temperature is below &c100&r, it won't run at all - just like EBF recipes have limits.\\n\\nThis is all &ewe&r can teach you for now. Come back later to see if there was been any advancements, &efellow nuclear engineer&r!" + "{quests.gregtech_energy.fission_reactor.desc.8}" ] id: "4512E5DE7A84F809" + subtitle: "{quests.gregtech_energy.fission_reactor.subtitle}" tasks: [ { id: "4BAECE3F4EC86920" @@ -994,6 +994,7 @@ type: "item" } ] + title: "{quests.gregtech_energy.fission_reactor.title}" x: -7.5d y: -1.0d } diff --git a/config/ftbquests/quests/chapters/lv__low_voltage.snbt b/config/ftbquests/quests/chapters/lv__low_voltage.snbt index 5e30a903a..7f8c30714 100644 --- a/config/ftbquests/quests/chapters/lv__low_voltage.snbt +++ b/config/ftbquests/quests/chapters/lv__low_voltage.snbt @@ -315,7 +315,7 @@ Count: 1 id: "ftbfiltersystem:smart_filter" tag: { - "ftbfiltersystem:filter": "or(item(vintageimprovements:lathe)item(gtceu:lv_lathe))" + "ftbfiltersystem:filter": "or(item(vintageimprovements:belt_grinder)item(gtceu:lv_lathe))" } } title: "{quests.low_voltage.lv_lathe.task}" diff --git a/config/ftbquests/quests/chapters/space_survival.snbt b/config/ftbquests/quests/chapters/space_survival.snbt index 0d107bb7f..309394180 100644 --- a/config/ftbquests/quests/chapters/space_survival.snbt +++ b/config/ftbquests/quests/chapters/space_survival.snbt @@ -724,10 +724,10 @@ size: 3.0d subtitle: "{quests.extreme_voltage.mars.subtitle}" tasks: [{ - dimension: "ad_astra:moon" + dimension: "ad_astra:mars" icon: "ad_astra:mars_globe" id: "4A794ADEE7A89594" - title: "I'm on the Moon" + title: "{quests.extreme_voltage.mars.task}" type: "dimension" }] title: "{quests.extreme_voltage.mars.title}" @@ -735,55 +735,58 @@ y: -8.0d } { - dependencies: ["5AC5AAB9B3758E30"] + dependencies: ["1777E6C81C8353D5"] + dependency_requirement: "one_completed" + description: ["{quests.space_survival.semiheavy_ammoniacal_water.desc}"] + icon: "tfg:semiheavy_ammoniacal_water_bucket" id: "4259CD4F819806AB" + subtitle: "{quests.space_survival.semiheavy_ammoniacal_water.subtitle}" tasks: [{ - id: "4DB592981780B997" + id: "1221D18D1C6690BD" item: "tfg:semiheavy_ammoniacal_water_bucket" type: "item" }] - x: 14.5d - y: -5.0d + title: "{quests.space_survival.semiheavy_ammoniacal_water.title}" + x: 15.0d + y: -6.5d } { dependencies: ["1777E6C81C8353D5"] + description: ["{quests.space_survival.mars_islands.desc}"] icon: "tfg:grass/rusticus_mycelium" id: "5AC5AAB9B3758E30" + subtitle: "{quests.space_survival.mars_islands.subtitle}" tasks: [{ id: "019AC4216D25FA19" type: "checkmark" }] + title: "{quests.space_survival.mars_islands.title}" x: 13.5d y: -4.0d } { dependencies: ["1777E6C81C8353D5"] - icon: "ad_astra:mars_sand" - id: "26FB2DB58A28BE6A" - tasks: [{ - id: "5C0832BD72EB54C7" - type: "checkmark" - }] - x: 10.0d - y: -8.0d - } - { - dependencies: ["26FB2DB58A28BE6A"] + description: ["{quests.space_survival.mars_desert.desc}"] id: "70F93982FC045A08" + subtitle: "{quests.space_survival.mars_desert.subtitle}" tasks: [{ biome: "tfg:mars/martian_deep_desert" icon: "minecraft:red_sand" id: "4935048F5603F79B" + title: "{quests.space_survival.mars_desert.task}" type: "biome" }] + title: "{quests.space_survival.mars_desert.title}" x: 10.0d - y: -7.0d + y: -8.0d } { - dependencies: ["26FB2DB58A28BE6A"] + dependencies: ["70F93982FC045A08"] + description: ["{quests.space_survival.sandworm.desc}"] id: "62A5111836CB4D37" optional: true shape: "heart" + subtitle: "{quests.space_survival.sandworm.subtitle}" tasks: [ { id: "028ACAA581D97577" @@ -797,6 +800,7 @@ type: "item" } ] + title: "{quests.space_survival.sandworm.title}" x: 9.0d y: -8.0d } @@ -806,108 +810,141 @@ "2F711C064635EF2D" ] dependency_requirement: "one_completed" + description: ["{quests.space_survival.spice.desc}"] id: "0CA5B715B76E4A5B" + shape: "hexagon" + size: 1.5d + subtitle: "{quests.space_survival.spice.subtitle}" tasks: [{ icon: "tfg:spice" id: "00C333C49F5BBFC2" observe_type: 0 timer: 0L + title: "{quests.space_survival.spice.task}" to_observe: "tfg:spice" type: "observation" }] + title: "{quests.space_survival.spice.title}" x: 10.0d y: -6.0d } { dependencies: ["1777E6C81C8353D5"] + description: ["{quests.space_survival.mars_poles.desc}"] icon: "tfg:mars_ice" id: "3768570EC6535DBB" + subtitle: "{quests.space_survival.mars_poles.subtitle}" tasks: [{ id: "677DF79B4DE1D571" type: "checkmark" }] + title: "{quests.space_survival.mars_poles.title}" x: 17.0d y: -8.0d } { dependencies: ["5AC5AAB9B3758E30"] + description: ["{quests.space_survival.heavy_ammoniacal_water.desc}"] + icon: "tfg:heavy_ammoniacal_water_bucket" id: "204DDAFEA40C0146" + subtitle: "{quests.space_survival.heavy_ammoniacal_water.subtitle}" tasks: [{ - id: "4A86DF6B1EB149DB" + id: "33C86463603C272D" item: "tfg:heavy_ammoniacal_water_bucket" type: "item" }] - x: 12.5d - y: -5.0d + title: "{quests.space_survival.heavy_ammoniacal_water.title}" + x: 15.0d + y: -4.0d } { dependencies: ["00E2E32B33A65301"] + description: ["{quests.space_survival.glacian_wool.desc}"] id: "0967CE7F5DFF5CF6" + subtitle: "{quests.space_survival.glacian_wool.subtitle}" tasks: [{ + count: 7L id: "2713B99184310ED3" item: "tfg:glacian_wool" type: "item" }] + title: "{quests.space_survival.glacian_wool.title}" x: 17.0d y: -6.0d } { dependencies: ["5AC5AAB9B3758E30"] + description: ["{quests.space_survival.soarer.desc}"] icon: "wan_ancient_beasts:soarer_egg" id: "2F711C064635EF2D" + optional: true shape: "heart" + subtitle: "{quests.space_survival.soarer.subtitle}" tasks: [{ - id: "43FA9228D7E788F4" - type: "checkmark" + icon: "wan_ancient_beasts:soarer_egg" + id: "30A4901728CBF789" + observe_type: 5 + timer: 0L + title: "{quests.space_survival.soarer.task}" + to_observe: "wan_ancient_beasts:soarer" + type: "observation" }] + title: "{quests.space_survival.soarer.title}" x: 10.0d y: -4.0d } { dependencies: ["5AC5AAB9B3758E30"] - id: "24E25ED8D00F0918" - tasks: [{ - icon: "species:wraptor_egg" - id: "2B5C32298882BD0E" - observe_type: 5 - timer: 0L - to_observe: "tfg:wraptor" - type: "observation" - }] - x: 10.0d - y: 0.0d - } - { - dependencies: ["5AC5AAB9B3758E30"] + description: ["{quests.space_survival.sniffer_or_wraptor.desc}"] id: "5F0D553D08A5985C" - tasks: [{ - icon: "minecraft:sniffer_egg" - id: "6339BB0940C0BE77" - observe_type: 5 - timer: 0L - to_observe: "tfg:sniffer" - type: "observation" - }] + subtitle: "{quests.space_survival.sniffer_or_wraptor.subtitle}" + tasks: [ + { + icon: "minecraft:sniffer_egg" + id: "6339BB0940C0BE77" + observe_type: 5 + timer: 0L + title: "{quests.space_survival.sniffer_or_wraptor.task_1}" + to_observe: "tfg:sniffer" + type: "observation" + } + { + icon: "species:wraptor_egg" + id: "76B6F02F4DCFC4A0" + observe_type: 5 + timer: 0L + title: "{quests.space_survival.sniffer_or_wraptor.task_2}" + to_observe: "tfg:wraptor" + type: "observation" + } + ] + title: "{quests.space_survival.sniffer_or_wraptor.title}" x: 10.0d y: -2.0d } { dependencies: ["3768570EC6535DBB"] + description: ["{quests.space_survival.glacian_ram.desc}"] id: "00E2E32B33A65301" + subtitle: "{quests.space_survival.glacian_ram.subtitle}" tasks: [{ icon: "ad_astra:glacian_ram_spawn_egg" id: "20B88332B3FED126" observe_type: 5 timer: 0L + title: "{quests.space_survival.glacian_ram.task}" to_observe: "tfg:glacian_ram" type: "observation" }] + title: "{quests.space_survival.glacian_ram.title}" x: 17.0d y: -7.0d } { dependencies: ["5AC5AAB9B3758E30"] + description: ["{quests.space_survival.mars_tapping.desc}"] id: "155F421FC2F39C3C" + subtitle: "{quests.space_survival.mars_tapping.subtitle}" tasks: [ { icon: "beneath:wood/log/crimson" @@ -926,13 +963,16 @@ type: "observation" } ] + title: "{quests.space_survival.mars_tapping.title}" x: 15.5d - y: -1.5d + y: -2.0d } { dependencies: ["5AC5AAB9B3758E30"] + description: ["{quests.space_survival.mars_crops.desc}"] guide_page: "tfc:field_guide tfc:tfg_tips/space_crops" id: "52E45601E8575846" + subtitle: "{quests.space_survival.mars_crops.subtitle}" tasks: [{ id: "72E35CA3CF29585B" item: { @@ -942,16 +982,20 @@ "ftbfiltersystem:filter": "or(item(betterend:amber_root_seeds)item(betterend:blossom_berry_seeds)item(betterend:cave_pumpkin_plant_seeds)item(betterend:chorus_mushroom_seeds)item(betterend:shadow_berry_seeds)item(betterend:bolux_mushroom_seeds))" } } + title: "{quests.space_survival.mars_crops.task}" type: "item" }] + title: "{quests.space_survival.mars_crops.title}" x: 13.5d y: -1.5d } { dependencies: ["0967CE7F5DFF5CF6"] + description: ["{quests.space_survival.t2_space_suit.desc}"] id: "6D7ADBBCEF5770B6" shape: "hexagon" size: 1.5d + subtitle: "{quests.space_survival.t2_space_suit.subtitle}" tasks: [ { id: "0D11FBA73B54918F" @@ -998,16 +1042,16 @@ type: "item" } ] + title: "{quests.space_survival.t2_space_suit.title}" x: 17.0d - y: -4.0d + y: 0.5d } { - dependencies: [ - "24E25ED8D00F0918" - "5F0D553D08A5985C" - ] + dependencies: ["5F0D553D08A5985C"] dependency_requirement: "one_completed" + description: ["{quests.space_survival.mineral_rich_wool.desc}"] id: "75DE44FFAC51DD60" + subtitle: "{quests.space_survival.mineral_rich_wool.subtitle}" tasks: [{ id: "4295E3343126DFEF" item: { @@ -1020,40 +1064,51 @@ title: "Any #tfg:mineral_rich_wool" type: "item" }] - x: 9.0d + title: "{quests.space_survival.mineral_rich_wool.title}" + x: 10.0d y: -1.0d } { dependencies: ["75DE44FFAC51DD60"] + description: ["{quests.space_survival.aes_insulation.desc}"] id: "14710D52AE1732FD" shape: "hexagon" size: 1.5d + subtitle: "{quests.space_survival.aes_insulation.subtitle}" tasks: [{ id: "44970A2CAF24030A" item: "tfg:mli_shielding" type: "item" }] - x: 9.0d - y: 1.0d + title: "{quests.space_survival.aes_insulation.title}" + x: 10.0d + y: 0.5d } { dependencies: [ - "24E25ED8D00F0918" "52E45601E8575846" + "5F0D553D08A5985C" ] + description: ["{quests.space_survival.bulbkin_pie.desc}"] icon: { Count: 1 ForgeCaps: { "tfc:food": { - creationDate: 22686000L + creationDate: 23118000L traits: [ ] } + "tfc:item_heat": { + heat: 0.0f + ticks: 0L + } } id: "betterend:cave_pumpkin_pie" } id: "1AC201876984D248" + optional: true shape: "heart" size: 1.5d + subtitle: "{quests.space_survival.bulbkin_pie.subtitle}" tasks: [{ id: "5F863BCE6DAA30D6" item: { @@ -1065,42 +1120,52 @@ } type: "item" }] + title: "{quests.space_survival.bulbkin_pie.title}" x: 13.5d y: 0.0d } { dependencies: ["155F421FC2F39C3C"] + description: ["{quests.space_survival.iodine.desc}"] id: "00202200344F3456" + subtitle: "{quests.space_survival.iodine.subtitle}" tasks: [{ id: "0F811696C5BB0AA5" item: "gtceu:iodine_dust" type: "item" }] + title: "{quests.space_survival.iodine.title}" x: 15.5d - y: 0.0d + y: -1.0d } { dependencies: ["5AC5AAB9B3758E30"] + description: ["{quests.space_survival.surfer.desc}"] id: "43EBECA48E341C47" optional: true shape: "heart" + subtitle: "{quests.space_survival.surfer.subtitle}" tasks: [{ - id: "0417B5DE47BE08CA" - item: "wan_ancient_beasts:surfer_egg" - type: "item" + icon: "wan_ancient_beasts:surfer_egg" + id: "7D1D6851ABB1B5E7" + observe_type: 5 + timer: 0L + title: "{quests.space_survival.surfer.task}" + to_observe: "wan_ancient_beasts:surfer" + type: "observation" }] + title: "{quests.space_survival.surfer.title}" x: 10.0d y: -3.0d } { - dependencies: [ - "5F0D553D08A5985C" - "24E25ED8D00F0918" - ] + dependencies: ["5F0D553D08A5985C"] dependency_requirement: "one_completed" + description: ["{quests.space_survival.mars_nest.desc}"] id: "63F1FC03DC3198AB" optional: true shape: "heart" + subtitle: "{quests.space_survival.mars_nest.subtitle}" tasks: [{ id: "71BA5426AA25BED0" item: { @@ -1110,17 +1175,20 @@ "ftbfiltersystem:filter": "or(item(tfg:large_nest_box)item(tfg:large_nest_box_warped))" } } + title: "{quests.space_survival.mars_nest.task}" type: "item" }] - x: 10.0d - y: -1.0d + title: "{quests.space_survival.mars_nest.title}" + x: 9.0d + y: -2.0d } { dependencies: ["6D7ADBBCEF5770B6"] - description: [""] + description: ["{quests.space_survival.venus.desc}"] id: "5F3B9E4565922E77" shape: "octagon" size: 3.0d + subtitle: "{quests.space_survival.venus.subtitle}" tasks: [{ dimension: "ad_astra:venus" icon: "ad_astra:venus_globe" @@ -1128,15 +1196,16 @@ type: "dimension" }] title: "{quests.space_survival.venus.title}" - x: 20.5d - y: -2.0d + x: 10.5d + y: 4.5d } { dependencies: ["6D7ADBBCEF5770B6"] - description: [""] + description: ["{quests.space_survival.mercury.desc}"] id: "5F937028722EB4C6" shape: "octagon" size: 3.0d + subtitle: "{quests.space_survival.mercury.subtitle}" tasks: [{ dimension: "ad_astra:mercury" icon: "ad_astra:mercury_globe" @@ -1144,8 +1213,31 @@ type: "dimension" }] title: "{quests.space_survival.mercury.title}" - x: 20.5d - y: -6.0d + x: 18.0d + y: 4.5d + } + { + dependencies: ["1777E6C81C8353D5"] + description: ["{quests.space_survival.mars_shields.desc}"] + id: "6E757133FA00C40D" + optional: true + shape: "heart" + subtitle: "{quests.space_survival.mars_shields.subtitle}" + tasks: [{ + id: "603BD6E2915EB75B" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + "ftbfiltersystem:filter": "or(item(species:ricoshield)item(wan_ancient_beasts:reinforced_shield)item(endermanoverhaul:corrupted_shield))" + } + } + title: "{quests.space_survival.mras_shields.task}" + type: "item" + }] + title: "{quests.space_survival.mars_shields.title}" + x: 12.0d + y: -6.5d } ] subtitle: ["{quests.space_survival.subtitle}"] diff --git a/kubejs/assets/tfg/lang/en_us.json b/kubejs/assets/tfg/lang/en_us.json index ad7df32f9..ebf3b004b 100644 --- a/kubejs/assets/tfg/lang/en_us.json +++ b/kubejs/assets/tfg/lang/en_us.json @@ -866,7 +866,7 @@ "item.tfg.twigs.alphacene": "Alphacene Twig", "item.tfg.crimsene_gem": "Crimsene Rosin", "item.tfg.warpane_gem": "Warpane Rosin", - "item.tfg.glacian_wool": "Glacian Ram Wool", + "item.tfg.glacian_wool": "Glacian Wool", "item.tfg.sniffer_wool": "Mineral Rich Tufts", "item.tfg.sniffer_egg": "Sniffer Egg", "item.tfg.wraptor_wool": "Mineral Rich Down Feathers", @@ -1695,10 +1695,47 @@ "quests.development.hull_zpm.subtitle": "Soft and Wetware", "quests.development.hull_zpm.desc": "This is the &9Wetware&r Circuit line.\n\nIt will be the biggest automation challenge to face in this modpack. Best of luck.", "quests.extreme_voltage": "&5EV&r - Extreme Voltage", - "quests.extreme_voltage.subtitle": "Reach Mars, discover Nuclear Fission and build new massive multiblocks", + "quests.extreme_voltage.subtitle": "Reach Mars, discover Nuclear Fission, and build new massive multiblocks", "quests.extreme_voltage.welcome_to_ev.title": "This is Extreme Voltage", "quests.extreme_voltage.welcome_to_ev.subtitle": "Let's go Nuclear on Mars", - "quests.extreme_voltage.welcome_to_ev.desc": "", + "quests.extreme_voltage.welcome_to_ev.desc.1": "You’ve built new &6chemistry lines&r, manufactured advanced &balloys&r, and even launched a &dRocket&r to reach the Moon. We hope you enjoyed the ride, because now things get even more complex, with powerful new machines and demanding processes ahead.\n\nIn the &5EV Chapter&r, your main objective will be to craft your very first &1IV&r and &dLuV&r Circuits.", + "quests.extreme_voltage.welcome_to_ev.desc.2": "Along the way, several key challenges await you:\n\n• Build your first &6Alloy Blast Smelter&r, a faster version of the EBF, specialized for alloys. With it, you’ll be able to construct your first Large Machine: the &6Large Centrifuge&r, essential for the Nuclear Fission Line. It also lets you upgrade ore processing with a faster Thermal Centrifuge.\n\n• Master our original &eTungsten Line&r - looping all the required materials will test both your knowledge and your patience.\n\n• Prepare to fly to &4Mars&r where you’ll become an &aextraterrestrial farmer&r while also learning to harness the &cpower of the atom&r.\n\nGood luck, this is where GregTech begins to show its true depth!", + "quests.extreme_voltage.distillation_tower.title": "The Distillation Tower", + "quests.extreme_voltage.distillation_tower.subtitle": "Mr. President, another Distillation Tower has hit the factory floor", + "quests.extreme_voltage.distillation_tower.desc.1": "&6The Distillation Tower&r (DT) is a direct multiblock upgrade of the &6Distillery&r. You won't have to choose outputs any more as the DT will handle them all automatically, at an increased power cost.\n\nThis machine will be your future bread and butter for anything involving &ePetrochem&r or &eOrganic distillation.", + "quests.extreme_voltage.distillation_tower.desc.2": "Like the &6Cleanroom&r, the DT can be made taller, though not wider. Starting from the second layer, each added level requires an &9Output Hatch&r and grants one additional fluid output slot; if a level lacks its output hatch, the corresponding fluid will be voided. Count the number of outputs with &dEMI&r so you know how many layers you need. As always, use the Multiblock Preview tab in &dEMI&r and click the multiblock to see where you can place each part.", + "quests.extreme_voltage.distillation_tower.desc.3": "&cNote:&r Be careful not to over-overclock the DT when producing fuels! Excessive overclocking can reduce the overall power yield, especially for Diesel. Do the math and double-check your calculations.", + "quests.extreme_voltage.ev_components.title": "The \"Fun\" will never stop", + "quests.extreme_voltage.ev_components.subtitle": "", + "quests.extreme_voltage.ev_components.desc": "", + "quests.extreme_voltage.t2_rocket.title": "The next generation rocket", + "quests.extreme_voltage.t2_rocket.subtitle": "This one's purple", + "quests.extreme_voltage.t2_rocket.desc": "", + "quests.extreme_voltage.mars.title": "I'm on &4Mars&r", + "quests.extreme_voltage.mars.subtitle": "The Red Planet", + "quests.extreme_voltage.mars.desc.1": "Before landing on &4Mars&r, there are a few important things to keep in mind.\n\nFirst, like the Moon, &4Mars&r will have some hostile surface mobs as well. If you haven't already figured out how to make your Space Suit stay with you after dying or invested in new EV-tier weaponry, you'll have a rough time.\n\nThe planet is mostly a &edesert world&r, dotted with \"&aislands&r\" where you’ll find &bwater&r, lush fauna, and much safer places to build your first base. On the other hand, the open desert is extremely dangerous if you don't watch your step!", + "quests.extreme_voltage.mars.desc.2": "All &bfluid veins&r are spread across Mars, except for &eHeavy Ammoniacial Water&r which can only be found outside of the desert. That’s another good reason to set up your base there.\n\nEnergy-wise, &4Mars&r will not be kind to you at first.\n\nNearly every common &6energy generation method&r is &cdisabled&r on the planet, which means you’ll have to rely almost entirely on &cFission&r to power your base.\n\nAt the very beginning, we recommend bringing along some &bfilled batteries&r such as &bLapotron Crystals&r to get started.\n\nAchieving energy stability on Mars will take time and effort, but once your systems are running smoothly, you’ll feel like &9unlimited power&r is right in the palm of your hand.\n\nStay alert, plan ahead, and Mars will reward your courage.", + "quests.extreme_voltage.mars.desc.3": "And one last tip: don’t kill everything you see. Some &aanimals&r can be &franched&r, and you’ll definitely need them later in your progression.\n\nBe sure to check out the &aSpace Survival&r chapter for more Mars-related tips too!", + "quests.extreme_voltage.mars.task": "Land on Mars", + "quests.extreme_voltage.nuclear_fuel_factory.title": "Nuclear Fuel Factory", + "quests.extreme_voltage.nuclear_fuel_factory.subtitle": "Hot Rod", + "quests.extreme_voltage.nuclear_fuel_factory.desc": "The &6Nuclear Fuel Factory&r has one purpose: producing fuel rods for your &cFission Reactor&r.\n\nIt supports &9Parallel Hatches&r which you’ll unlock soon but they aren’t mandatory yet. Functionally, it works much like the Pyrolyse Oven: the &ebetter the coils&r you install, the faster the recipes will run.\n\nSince fuel rod production is both &cslow&r and &cexpensive&r, we strongly recommend using the &ahighest tier coils&r available. Don’t waste your time with Cupronickel, you’ll only be nerfing yourself.", + "quests.extreme_voltage.heavy_water.title": "Heavy Water", + "quests.extreme_voltage.heavy_water.subtitle": "Water for the Hardcore", + "quests.extreme_voltage.heavy_water.desc": "To run your Fission Reactor, you’ll need a steady supply of &bHeavy Water&r, and there’s only one place to find it.\n\nIt’s located in &adeep fluid veins&r found exclusively beneath the &alush islands&r of Mars. Grab your &6Ore Prospector&r, switch it to &bFluid Mode&r, and start scanning.\n\nBecause the amount of &bHeavy Water&r required to keep your reactor running is enormous, you should seriously consider investing in a &6Large Centrifuge&r to produce it yourself.\n\nInstall a &516A EV Energy Hatch&r, and you’ll be ready for true mass production ensuring your reactor never runs dry.\n\nReliable cooling means reliable power - build smart!", + "quests.extreme_voltage.nuclear_turbine.title": "Nuclear Steam Turbine", + "quests.extreme_voltage.nuclear_turbine.subtitle": "Steam power's back, baby", + "quests.extreme_voltage.nuclear_turbine.desc": "With Fission, you gain access to a brand new &6Dedicated Turbine&r!\n\nIt works just like the previous turbines, but similar to the Gas Turbine, it requires at least an &5EV Rotor Holder&r to operate.\n\nThe coils inside this turbine must be &7Cupronickel&r, and they don’t affect performance in any way they’re purely aesthetic (but we have to admit, they look pretty good).\n\nIn this quest, we suggest two &aRotors&r that fit nicely for the turbine at this stage, but feel free to experiment and use any &brotor&r that suits your setup best.", + "quests.extreme_voltage.reactor_components.title": "Reactor Heat Management", + "quests.extreme_voltage.reactor_components.subtitle": "Active and Passive ways to cool your reactor", + "quests.extreme_voltage.reactor_components.desc": "One of the most interesting features of the Fission Reactor is its ability to have blocks added inside to modify its &emaximum heat capacity&r.\n\nYou can place &6Framed Blocks&r within the corners of the reactor, allowing for up to &e20 blocks&r in total. Alternatively, you can use &9Item Holders&r and insert cooling items with input buses, which also help manage heat buildup effectively.\n\nIt’s also important to note that this internal setup is the &conly way&r to enable the &brecipe processing&r part of the Fission Reactor.\n\nSmart internal configuration will make the difference between a stable reactor and one on cooldown, so plan your layout carefully!", + "quests.extreme_voltage.heat_exchanger.title": "Heat Exchanger", + "quests.extreme_voltage.heat_exchanger.subtitle": "All that heat's gotta go somewhere!", + "quests.extreme_voltage.heat_exchanger.desc.1": "The &6Heat Exchanger&r is a critical component for your Fission Line - not only for cooling, but also for producing &eHigh Pressure Steam&r, the steam that powers your Nuclear Turbine.\n\nIt features &bPerfect Overclocking&r and &bSubtick Processing&r. If these terms sound unfamiliar, we strongly recommend reviewing the &dGregTech Energy Chapter&r to fully understand how they affect performance.", + "quests.extreme_voltage.heat_exchanger.desc.2": "Don’t hold back! Install a &516A EV Energy Hatch&r right from the start so you’ll never have to worry about speed or throughput limitations.\n\nWe also provide you with a &9Machine Controller&r to attach to your Heat Exchanger’s main controller. We’ve noticed that the machine can sometimes disable itself unexpectedly, so be sure to enable &ePrevent Power Failing&r. This will counter the GTm mechanic that shuts down machines when they momentarily lose power.", + "quests.extreme_voltage.refrigerant_pellet.title": "Refrigerant Pellets", + "quests.extreme_voltage.refrigerant_pellet.subtitle": "A temporary solution to extreme temperatures", + "quests.extreme_voltage.refrigerant_pellet.desc": "The &dPlutonium Fuel Rod&r runs at extremely high temperatures - so high, in fact, that you’ll need to use &bRefrigerant Pellets&r inside your reactor to prevent it from going into cooldown mode.\n\nThese pellets are quite expensive to produce, but you should still be able to mass-produce them early on, at least enough to keep your first few plutonium rods operational.\n\nLater on, if you don’t like constantly crafting these consumables, you’ll gain access to &6advanced reactor components&r. With those installed, your reactor will be able to safely reach up to &e600 Max Heat&r, greatly improving efficiency and stability.\n\nInvest in better internal parts early, to spend less time babysitting your power core.", "quests.gregtech_energy": "GregTech Energy", "quests.gregtech_energy.subtitle": "So how does all of that work?", "quests.gregtech_energy.start.title": "Let's do some explaining", @@ -1849,6 +1886,16 @@ "quests.gregtech_energy.rotor.desc.1": "Rotor Holders naturally require a Rotor to use, but there's a lot of options and they all have different stats, so what do they all mean?\n\nHigher &9Efficiency&r will increase the time each mB of fuel is used for, effectively reducing fuel usage. Meanwhile, &9Power&r will increase how much EU the turbine will generate. Lastly, &9Durability&r should be obvious.", "quests.gregtech_energy.rotor.desc.2": "Ideally, you'll want to maximize all three, but the choice will depend on how much fuel you're producing, how many turbines you have, and how often you want to replace them, so there's no definitive correct answer. &8(Besides neutronium, of course...)&r\n\nThat being said, if you're completely lost, we recommend Vanadium Steel in &6HV&r, Ultimet in &5EV&r, and HSS-S in &9IV&r.\n\nUnfortunately, you can't automatically pipe new rotors into rotor holders as they need the block in front of them to be completely empty, but a &aMechanical Arm&r will work!", "quests.gregtech_energy.rotor.task": "Any Turbine Rotor", + "quests.gregtech_energy.fission_reactor.title": "Fission Reactor MK I", + "quests.gregtech_energy.fission_reactor.subtitle": "Strap yourself in, this is complicated", + "quests.gregtech_energy.fission_reactor.desc.1": "The &dFission Reactor&r is certainly an uncommon sight in GregTech - both in theme, and how it works. But fear not, we are here to guide you with this multi-purpose big-brain multiblock!\n\nWe'll spare you the physics for now, &efellow engineer&r. The most important thing you should know is that the reactor is like a big thermal &dbattery-generator&r. You input proper fuel, and get &cheat&r (just like &6EU/t&r) that gets stored in the reactor as &crising temperature&r (stored &6EU&r).\n\nYou can then transfer this heat to &9coolant fluids&r for running turbines, or performing EBF-style crafting recipes. Sometimes you may even have &ctoo much&r of it. And oh, you also get new elements to make new fuels and circuits and stuff. Maybe explore the solar system a bit more? Boring stuff.", + "quests.gregtech_energy.fission_reactor.desc.2": "To start off, get your hands on some &dThorium&r. Remember to wear all the relevant PPE - &eDeatek Intergalactic&r is not responsible for any bodily harm resulting from improper handling of fissile materials. We really shouldn't have to remind you at this point anymore. Check the hazards quest if you need a refresher.\n\nNext, craft some empty &dFuel Rods&r and fill them with the &dNuclear Fuel Processing Plant&r. The rods are reusable, so you don't have to make too many. In fact, you might want to make just a single one for now.\n\nYou'll of course need a completed reactor, too. Check the EMI preview. Note how there is a central column of Fuel Holders, and then some optional columns for Components and Material Holders - more of these later.\n\nWait. Why just a &osingle&r rod? Oh, are &ewe&r glad you asked. Let's delve deep into the reactor mechanics in the next page.", + "quests.gregtech_energy.fission_reactor.desc.3": "The more fuel rods you have installed in the reactor, the &chotter&r it gets. And the hotter it is, the more heat it is able to transfer out to the coolant fluid and processable items. But physics has its limits, and the reactor can only ever get &cso hot&r, so don't install too many fuel cells.\n\nBut fear not! Unlike how the &0big-oil&r propaganda machine insists, nuclear energy is &aperfectly safe&r. Should the heat level of the reactor border dangerous territory, the reactor enters an &9automatic cooldown sequence&r, and won't start again until all heat has been &asafely dissipated&r. It's quite slow, though.\n\nThere has to be a way to make it hotter and faster? Once again, good thing you asked! &eOur brilliant engineers&r have a solution for you!", + "quests.gregtech_energy.fission_reactor.desc.4": "In addition to the 5 &dFuel Holders&r, you can install &oup to&r 20 &dComponents&r. The reactors from some other manufacturers require very exact positioning, but our reactor is smarter. The &6stats&r of all installed ones will simply be &6summed up&r, and that's it!\n\nCurrently, the reactor is able to utilize them in three&8*&r different ways:\n&e1)&r Max temperature &7(insulator)&r\n&e2)&r Efficiency &7(fuel lasts longer)&r\n&e3)&r Throttle &7(slows down the reactions)&r\n\n&8*)&r It's possible your local galaxy doesn't have the necessary materials for all of them. We estimate to find materials only for the first category.\n\nBut be wary. Rising the &ctemperature&r comes with a &cdownside&r.", + "quests.gregtech_energy.fission_reactor.desc.5": "While a &chotter&r reactor makes coolants and processing &cfaster&r, it is also more demaning for the fuel rods. Each fuel rod has limited durability, and this scales linearly with the temperature.\n\nAs you need more fuel rods for the higher heat, this in effect makes the damage scale &nquadratically&r. If you want to heat coolants the most efficiently, you'll use low temperature. But if you want faster fissile conversion, use as high a heat as the insulation allows.", + "quests.gregtech_energy.fission_reactor.desc.6": "You are finally ready to take a look at the various recipes involving the reactor; check where the &dcontroller&r is used, and you'll find three &eEMI&r tabs:\n\n&e1)&r Fission Reactor &7(fuels and compatible coolants)&r\n&e2)&r Fission Heat Processing &7(think: EBF)&r\n&e3)&r Fission\nProducts &7(when the fuel runs out)&r\n&e4)&r The multiblock preview\n\nVarious &afuels&r are only compatible with certain &9coolant fluids&r, so pay attention to this. And once a fuel rod is completely used up, statistical certainty can safely state it having &btra&dns&rf&dor&bmed&r into new elements.\n\nThe processing recipes on the other hand can run regardless of the fuel, as long as the temperature level is high enough.", + "quests.gregtech_energy.fission_reactor.desc.7": "The simplified math is as follows: with sufficient coolant fluid and a &c100%&r heat fuel rod, the reactor will reach a temperature of about &c200&r. This can also be referred to as heat level, or just heat. Having &dtwo&r &c100%&r fuel cells is equal to &done&r &c200%&r cell, and both lead to about &c400&r heat.\n\nThis is because the fuel rod generates &6200 HU/t&r (heat units). Coolant fluids are able to extract &61 HU/t&r per &c1&r degree of heat.\n\nIf the reactor's max heat is &c190&r, a &c100%&r fuel cell will overheat it. You can increase this with the components, or alternatively &dactive coolants&r via the processing system. Each recipe has a heat impact.", + "quests.gregtech_energy.fission_reactor.desc.8": "For example, if the recipe's temperature is &c100&r, and impact &6-10 HU/t&r, it is able to cool down the reactor by &619 HU/t &rat &c190&r degrees.\n\nThat makes it possible to run the reactor with lower max heat, and not overheat! If the temperature is below &c100&r, it won't run at all - just like EBF recipes have limits.\n\nThis is all &ewe&r can teach you for now. Come back later to see if there was been any advancements, &efellow nuclear engineer&r!", "quests.high_voltage": "&6HV&r - High Voltage", "quests.high_voltage.subtitle": "Upgrade your power, learn about the Cleanroom, make more chemicals, and get ready for Space", "quests.high_voltage.energium_crystals.title": "Super Batteries", @@ -2552,7 +2599,7 @@ "quests.medium_voltage.mv_cpu.desc": "&aThe &eCPU&r is one of the most important pieces of technology in your factory.\n\nThe &eCPU Wafer&r is a special one—it can be upgraded later through a &2Chemical Reaction&r.\n\nBut for now, you’ll need the &eCPU Chip&r to craft the best &bMV&r circuits available at this stage.\n\nMake sure to produce a few extra, as they’ll be essential for future upgrades.", "quests.medium_voltage.lsb.title": "Getting very steamy", "quests.medium_voltage.lsb.subtitle": "If you have unlimited fuel, it can still be good", - "quests.medium_voltage.lsb.desc": "If you're &lstill&r running off the &3Large Bronze Boiler&r, you may want to upgrade to the &3Large Steel Boiler&r.\n\nIt's slightly more efficient than the &3LBB&r, and produces &d1800 EU/t worth of Steam&r.\n\nWe'd recommend you try other power options at this point.", + "quests.medium_voltage.lsb.desc": "If you're &lstill&r running off the &3Large Bronze Boiler&r, you may want to upgrade to the &3Large Steel Boiler&r.\n\nIt's slightly more efficient than the &3LBB&r, and produces &d1800 mB/t of Steam&r.\n\nWe'd recommend you try other power options at this point.", "quests.metal_age": "Metallurgy Age", "quests.metal_age.subtitle": "Your First Technological Advancements.", "quests.metal_age.weld_bronze_ingots.title": "Welding Bronze", @@ -2780,7 +2827,7 @@ "quests.ore_proc.thermal_centrifuge.task": "Any Thermal Centrifuge", "quests.ore_proc.sifter.title": "The Sifter", "quests.ore_proc.sifter.subtitle": "The Skyblock Simulator", - "quests.ore_proc.sifter.desc": "The &6Sifter&r should be used for all your &aGems&r. It gives far more yield per ore than any other method, and is the only way to obtain Exquisite and Flawless gems before &6HV&r laser engraving.\n\nHigher tier sifters have higher output bonuses, even if you underclock the machine!", + "quests.ore_proc.sifter.desc": "The &6Sifter&r should be used for all your &aGems&r. It gives far more yield per ore than any other method, and is the only way to obtain Exquisite and Flawless gems before &6HV&r laser engraving.", "quests.ore_proc.sifter.task": "Any Sifter", "quests.ore_proc.centrifuge_sifter.title": "Centrifuging the dust", "quests.ore_proc.centrifuge_sifter.subtitle": "Byproducts of byproducts", @@ -2893,6 +2940,87 @@ "quests.space_survival.soulbound.subtitle": "You're a long way from spawn", "quests.space_survival.soulbound.desc.1": "In TerraFirmaGreg, you can set your spawn on any dimension (even The Beneath!), but unless you've got a bunch of extra space suits lying around, respawning on the Moon might complicate things.\n\nFirst of all, you'll definitely want your bed to be inside an oxygenated area, so you don't immediately die as soon as you respawn (though in case of a blackout, you should have enough time to break your bed and reset your spawn).", "quests.space_survival.soulbound.desc.2": "Secondly, you can upgrade each piece of your Space Suit with a &bSoul Pearl&r. This will make them stay equipped when you die!\n\nYou can get these from any of the tougher, hostile Endermen on the Moon.\n\nWe promise it's sci-fi and not magic.", + "quests.space_survival.mars_desert.title": "The Martian Desert", + "quests.space_survival.mars_desert.subtitle": "Sand, sand everywhere", + "quests.space_survival.mars_desert.desc": "The majority of Mars is covered in a vast desert. Not much lives here except the occasional Stackatick, and of course the giant &6Sandworms&r. If this is your first time here, you'll want to find somewhere more hospitable! Otherwise, you'll want to keep searching...", + "quests.space_survival.mars_desert.task": "Visit the Martian Deep Desert biome", + "quests.space_survival.sandworm.title": "The Sandworm", + "quests.space_survival.sandworm.subtitle": "SHAI-HULUD", + "quests.space_survival.sandworm.desc": "If you make too much noise in the desert, you might attract the attention of the mighty &6Sandworm&r! It's more of an environmental hazard than a boss to kill, so your best way of surviving it is to run away!\n\nIf you manage to hit its head enough times with &bexplosion damage&r, it will leave you alone... for a while.\n\nThankfully, the Sandworm can only damage entities, not buildings, and is only attracted to the footsteps of &6players&r, so wild animals and trains won't anger it.", + "quests.space_survival.spice.title": "Ostrum Deposits", + "quests.space_survival.spice.subtitle": "Spice Melange", + "quests.space_survival.spice.desc": "&dOstrum Deposits&r are immovable blocks that you can only find in the Martian Deep Desert, far away from any of the more lush areas. They spawn in small blobs, and can be broken to make space for your Ostrum Harvester if they're on a slope. Try using a &6Spyglass&r to find them from a distance!\n\nYou'll have to figure out some long-distance logistics to ship your Ostrum back to your base. (Try a train, Accumulators can transport power!)\n\nOstrum is a crucial resource for both &5EV&r progression as well as keeping your Fission Reactors fed.", + "quests.space_survival.spice.task": "The spice must flow", + "quests.space_survival.mars_islands.title": "The Martian Jungles", + "quests.space_survival.mars_islands.subtitle": "Is that a dinosaur?!", + "quests.space_survival.mars_islands.desc": "Dotted around the vast Martian deserts are small \"islands\" of life and vegetation, which are probably where you'll want to set up your base. Surviving here will be much easier than in the desert!", + "quests.space_survival.semiheavy_ammoniacal_water.title": "Semiheavy Ammoniacal Water", + "quests.space_survival.semiheavy_ammoniacal_water.subtitle": "Fancy a drink?", + "quests.space_survival.semiheavy_ammoniacal_water.desc": "The water on Mars is &bSemiheavy&r which means it contains one Deuterium atom, and is also full of &aAmmonia&r, a great antifreeze, which is how it can stay liquid despite the very low temperatures.\n\nIt's technically drinkable, but you'll likely want to distill it into normal Water first. You can also move source blocks of Semiheavy Ammoniacal Water around and get more of it via an Aqueous Accumulator, just like regular Water.\n\nYou can also centrifuge the Ammonium Chloride out from it and electrolyze it as a source of &3Nitrogen&r. Easy Nitrox from just one source!", + "quests.space_survival.heavy_ammoniacal_water.title": "Heavy Ammoniacal Water", + "quests.space_survival.heavy_ammoniacal_water.subtitle": "The Cooler Ammoniacal Water", + "quests.space_survival.heavy_ammoniacal_water.desc": "&2Heavy Ammoniacal Water&r is another kind of fluid that can only be found deep underground via a Fluid Drilling Rig. You can only find it in these lush areas of Mars, not the desert!\n\nYou can separate it into Heavy Water, which is important for Fission power.", + "quests.space_survival.mars_poles.title": "The Martian Poles", + "quests.space_survival.mars_poles.subtitle": "Cold enough for CO₂ to freeze!", + "quests.space_survival.mars_poles.desc": "Is Mars not cold enough for you?\n\nHead up (or down) towards one of its poles at Z=+15000/-5000. If anything's able to live there, surely it must have amazing insulative properties...", + "quests.space_survival.glacian_ram.title": "Glacian Sheep", + "quests.space_survival.glacian_ram.subtitle": "Life at -110 C", + "quests.space_survival.glacian_ram.desc": "&dGlacian Rams&r and &dEwes&r can only be found on the Martian poles. You might want to bring a breeding couple back to your base.\n\nGot a long journey? Consider using an AE2 Spatial Storage Cell to carry them around in your pocket.", + "quests.space_survival.glacian_ram.task": "Find a Glacian Ram or Ewe", + "quests.space_survival.glacian_wool.title": "Glacian Wool", + "quests.space_survival.glacian_wool.subtitle": "What an incredible insulator!", + "quests.space_survival.glacian_wool.desc": "Unlike regular Sheep on Earth, killing a Glacian one will only give you normal Wool. You'll need to build up their familiarity and shear them if you want the special &dGlacian Wool&r.\n\nYou'll need 7 of it for a full Tungstensteel Space Suit, but you can also use it as a great component for your Fission Reactor to increase its maximum heat.\n\nYou can also turn it into regular Wool Yarn and Cloth if you want more of that for some reason.", + "quests.space_survival.t2_space_suit.title": "Tungstensteel Space Suit", + "quests.space_survival.t2_space_suit.subtitle": "Extremophilia!", + "quests.space_survival.t2_space_suit.desc": "With this next space suit, you'll be able to survive both the &bcoldest&r and the &chottest&r environments that space can throw at you! It's required to stop you from immediately combusting as soon as you set foot on &6Venus&r and &5Mercury&r.\n\nAs a bonus, it also comes with some extra armor and air capacity!", + "quests.space_survival.mars_tapping.title": "Crimsene and Warpane", + "quests.space_survival.mars_tapping.subtitle": "You LOVE tree tapping!", + "quests.space_survival.mars_tapping.desc": "Crimson and Warped Mushrooms can be tree tapped for &4Crimsene&r and &3Warpane&r respectively.\n\nYou'll need both to get started on producing &9Iodine&r, but they don't often grow in the same place, so you might need to travel a bit. Crimson Mushrooms grow more on the East side of Mars, while Warped grow more on the West.\n\nDon't forget that you can tap directly into open GregTech fluid pipes!\n\n&9Tip:&r Want to show off? You can also build a canoe out of Crimson Stems, and build a Rowboat or Sloop out of Warped ones!", + "quests.space_survival.iodine.title": "The Iodine Line", + "quests.space_survival.iodine.subtitle": "Mushroom chemistry!", + "quests.space_survival.iodine.desc": "Mix together the Crimsene and Warpane, along with some Krypton from Mars Air Distillation (it's looped) and the heat from your Fission Reactor, and you'll get Iodine!\n\nThis process is slow, but you shouldn't need a lot of it for now, and there will be better methods of obtaining Iodine on further planets.", + "quests.space_survival.mars_crops.title": "Martian Crops", + "quests.space_survival.mars_crops.subtitle": "They give HOW much nutrition?!", + "quests.space_survival.mars_crops.desc": "Mars is home to six new crops - three &afruit&r, two &2vegetable&r, and one &6grain&r. They're packed full of nutrients and can be used to prepare similar food to those on Earth, such as sandwiches, soups, and meal bags.\n\nA few of them are toxic if eaten raw, however, so be sure to cook it first!\n\nCheck the Field Guide for full details on how to grow each one. You can grow them in the dirt, in a Firmalife Greenhouse, or in an Electric Greenhouse.", + "quests.space_survival.mars_crops.task": "Any Martian Seed", + "quests.space_survival.bulbkin_pie.title": "Mars Cuisine", + "quests.space_survival.bulbkin_pie.subtitle": "Even more culinary atrocities at your disposal", + "quests.space_survival.bulbkin_pie.desc": "Wraptor Eggs can be extracted for a Sugar substitute, while Sniffer eggs are full of Cream.\n\n&eBulbkin Pie&r is probably the pinnacle of Mars' food, boasting high amounts of four different kinds of nutrition, at the expense of being a bit of a pain to craft.\n\n&9Tip:&r It's not really a food, but you can also mix together Bulbkin Chunks and Alphacene Mushroom Blocks to get Glowstone Dust.", + "quests.space_survival.soarer.title": "Soarer", + "quests.space_survival.soarer.subtitle": "Need a lift?", + "quests.space_survival.soarer.desc": "Airplanes don't work on Mars, and your space suit doesn't have a jetpack, so there's no other way to fly, right?\n\nIf you're able to find an elusive &4Soarer&r, you can tame them with raw fish and equip them with a Saddle to glide through the Martian skies with ease.\n\nThey can't fly forever though, indicated by the wing icons on the top left, and will need to land occasionally. Still, they're a great option for long-distance travel, and won't upset the sandworm either!\n\n&9Note&r: Soarers are unable to survive on particularly hot planets such as &6Venus&r.", + "quests.space_survival.soarer.task": "Find a Soarer", + "quests.space_survival.surfer.title": "Surfer", + "quests.space_survival.surfer.subtitle": "Need a swim?", + "quests.space_survival.surfer.desc": "&bSurfers&r can be found in the small bodies of water. You can tame them by sneaking up to them while they're lying on the shore, and feeding them raw fish. Once tamed, you can equip them with a saddle to swim quickly underwater too.\n\nThis doesn't sound particularly useful on Mars, but remember that you can transport entities around through AE2's Spatial Storage Disks, and there will be a certain oceanic icy moon in the future...\n\n&9Note&r: Surfers are unable to survive on particularly hot planets such as &6Venus&r.", + "quests.space_survival.surfer.task": "Find a Surfer", + "quests.space_survival.sniffer_or_wraptor.title": "Sniffers and Wraptors", + "quests.space_survival.sniffer_or_wraptor.subtitle": "Cow and Chicken", + "quests.space_survival.sniffer_or_wraptor.desc": "&2Sniffers&r and &dWraptors&r can be found all over Mars and can be domesticated for meat, eggs, and most importantly, their mineral-rich tufts and feathers.\n\nThey eat any Martian crops, and you can automatically breed and feed them with the Feeding Troughs just like on Earth.", + "quests.space_survival.sniffer_or_wraptor.task_1": "Find a Sniffer", + "quests.space_survival.sniffer_or_wraptor.task_2": "Find a Wraptor", + "quests.space_survival.mars_nest.title": "Large Thatch Nest", + "quests.space_survival.mars_nest.subtitle": "A big nest for big eggs", + "quests.space_survival.mars_nest.desc": "You remember how to gather thatch, right?\n\nWarped and Crimson Thatch can be gathered from various small plants, as well as any Warped and Crimson Lamella you happen to find.\n\nJust like birds on Earth, Sniffers and Wraptors require nests to lay their eggs. Only, y'know, much bigger.", + "quests.space_survival.mars_nest.task": "Either Nest", + "quests.space_survival.mineral_rich_wool.title": "Mineral-Rich Wool", + "quests.space_survival.mineral_rich_wool.subtitle": "Built up from years of dust storms", + "quests.space_survival.mineral_rich_wool.desc": "Once your Sniffers or Wraptors are familiar enough, you can shear them for mineral-rich tufts of fur or feathers.\n\nThese can be melted down in an EBF for an infinite and cheap source of Alkaline Earth Silicate, and are also a required component of &6Bio-AES Reinforced R-Polyurethane Foam.", + "quests.space_survival.aes_insulation.title": "Multi-Layer Insulated Shielding", + "quests.space_survival.aes_insulation.subtitle": "Not an ice cream sandwich", + "quests.space_survival.aes_insulation.desc": "This may not be used for much at the moment, but it will be a critical component of your &1IV&r rocket in the future.", + "quests.space_survival.mars_shields.title": "Advanced Shields", + "quests.space_survival.mars_shields.subtitle": "Isn't it about time you upgraded your old metal shield?", + "quests.space_survival.mars_shields.desc": "The &3Reinforced Shield&r deals damage back to attackers, like the Thorns enchant in normal Minecraft. Its crafting materials can be found from Crunchers and Eaters.\n\nThe &5Corrupted Shield&r randomly teleports attackers, which can be good for keeping them away from you... but it can also teleport them behind you. You can get the teeth from the Cave Endermen under the surface.\n\nThe &4Ricoshield&r absorbs an amount of damage before releasing a shockwave, hurting anything else nearby. You can find the Kinetic Core as a rare drop from the hostile golems in the Martian caves.", + "quests.space_survival.mras_shields.task": "Any Advanced Shield", + "quests.space_survival.mercury.title": "I'm on &5Mercury&r...?", + "quests.space_survival.mercury.subtitle": "Wait, what happened here?!", + "quests.space_survival.mercury.desc": "&5Mercury&r will be a secondary planet for the upcoming &1IV&r rework in TFG 0.12. Stay tuned!", + "quests.space_survival.mercury.task": "Land on Mercury", + "quests.space_survival.venus.title": "I'm on &6Venus&r!", + "quests.space_survival.venus.subtitle": "Cloudy with a chance of sulfuric acid rain", + "quests.space_survival.venus.desc": "&6Venus&r will be the primary planet for the upcoming &1IV&r rework in TFG 0.12. Stay tuned!", + "quests.space_survival.venus.task": "Land on Venus", "quests.steam_age": "Early Automation", "quests.steam_age.subtitle": "From Primitive Machines to Steam Power", "quests.steam_age.basic_greate.title": "Basics of Greate", @@ -3053,7 +3181,7 @@ "quests.steam_age.organization.desc": "Struggling to keep up with all the recipes and items you need? Here's a couple options which may help:\n\n&3Clipboard&r: This handy item is a portable to-do list, letting you check off items as you like.\n\n&3Crafting Blueprint&r: Keeps track of frequent recipes, letting you craft batches without having to find the recipe in JEI.\n\n&3JEI's Bookmarks&r: You can press the \"Add/Remove Bookmark\" key (default \"A\") when hovering over an item in JEI to bookmark it. You can also bookmark whole recipes by pressing this key on the output!", "quests.steam_age.resin_boards.title": "Resin-Coated Boards", "quests.steam_age.resin_boards.subtitle": "I guess you could say we're... bored of LaTeX?", - "quests.steam_age.resin_boards.desc": "Did you know you can automate latex production through mechanical pumps? Now you do!", + "quests.steam_age.resin_boards.desc": "Did you know tree taps can drip directly into GregTech pipes and drums? Now you do!", "quests.steam_age.circuit_boards.title": "Electronics #2: Circuit Boards", "quests.steam_age.circuit_boards.subtitle": "The easier component for circuits", "quests.steam_age.circuit_boards.desc": "Combine those Resin Circuit Boards with some Copper Wires and you've got the base for your first &aCircuit&r!", diff --git a/kubejs/assets/tfg/lang/fr_fr.json b/kubejs/assets/tfg/lang/fr_fr.json index 1adbe7f5f..1a0002ebc 100644 --- a/kubejs/assets/tfg/lang/fr_fr.json +++ b/kubejs/assets/tfg/lang/fr_fr.json @@ -861,7 +861,7 @@ "item.tfg.twigs.alphacene": "Alphacene Twig", "item.tfg.crimsene_gem": "Crimsene Rosin", "item.tfg.warpane_gem": "Warpane Rosin", - "item.tfg.glacian_wool": "Glacian Ram Wool", + "item.tfg.glacian_wool": "Glacian Wool", "item.tfg.sniffer_wool": "Mineral Rich Tufts", "item.tfg.sniffer_egg": "Sniffer Egg", "item.tfg.wraptor_wool": "Mineral Rich Down Feathers", @@ -2528,7 +2528,7 @@ "quests.medium_voltage.mv_cpu.desc": "&aThe &eCPU&r is one of the most important pieces of technology in your factory.\n\nThe &eCPU Wafer&r is a special one—it can be upgraded later through a &2Chemical Reaction&r.\n\nBut for now, you’ll need the &eCPU Chip&r to craft the best &bMV&r circuits available at this stage.\n\nMake sure to produce a few extra, as they’ll be essential for future upgrades.", "quests.medium_voltage.lsb.title": "Getting very steamy", "quests.medium_voltage.lsb.subtitle": "If you have unlimited fuel, it can still be good", - "quests.medium_voltage.lsb.desc": "If you're &lstill&r running off the &3Large Bronze Boiler&r, you may want to upgrade to the &3Large Steel Boiler&r.\n\nIt's slightly more efficient than the &3LBB&r, and produces &d1800 EU/t worth of Steam&r.\n\nWe'd recommend you try other power options at this point.", + "quests.medium_voltage.lsb.desc": "If you're &lstill&r running off the &3Large Bronze Boiler&r, you may want to upgrade to the &3Large Steel Boiler&r.\n\nIt's slightly more efficient than the &3LBB&r, and produces &d1800 mB/t of Steam&r.\n\nWe'd recommend you try other power options at this point.", "quests.metal_age": "Metallurgy Age", "quests.metal_age.subtitle": "Your First Technological Advancements.", "quests.metal_age.weld_bronze_ingots.title": "Welding Bronze", @@ -2756,7 +2756,7 @@ "quests.ore_proc.thermal_centrifuge.task": "Any Thermal Centrifuge", "quests.ore_proc.sifter.title": "The Sifter", "quests.ore_proc.sifter.subtitle": "The Skyblock Simulator", - "quests.ore_proc.sifter.desc": "The &6Sifter&r should be used for all your &aGems&r. It gives far more yield per ore than any other method, and is the only way to obtain Exquisite and Flawless gems before &6HV&r laser engraving.\n\nHigher tier sifters have higher output bonuses, even if you underclock the machine!", + "quests.ore_proc.sifter.desc": "The &6Sifter&r should be used for all your &aGems&r. It gives far more yield per ore than any other method, and is the only way to obtain Exquisite and Flawless gems before &6HV&r laser engraving.", "quests.ore_proc.sifter.task": "Any Sifter", "quests.ore_proc.centrifuge_sifter.title": "Centrifuging the dust", "quests.ore_proc.centrifuge_sifter.subtitle": "Byproducts of byproducts", diff --git a/kubejs/assets/tfg/lang/ru_ru.json b/kubejs/assets/tfg/lang/ru_ru.json index 6c4d8f374..b57fe5d5b 100644 --- a/kubejs/assets/tfg/lang/ru_ru.json +++ b/kubejs/assets/tfg/lang/ru_ru.json @@ -577,7 +577,7 @@ "item.tfg.twigs.strophar": "Strophar Twig", "item.tfg.twigs.glacian": "Glacian Twig", "item.tfg.twigs.alphacene": "Alphacene Twig", - "item.tfg.glacian_wool": "Glacian Ram Wool", + "item.tfg.glacian_wool": "Glacian Wool", "item.tfg.sniffer_wool": "Mineral Rich Tufts", "item.tfg.sniffer_egg": "Sniffer Egg", "item.tfg.wraptor_wool": "Mineral Rich Down Feathers", diff --git a/kubejs/assets/tfg/lang/uk_ua.json b/kubejs/assets/tfg/lang/uk_ua.json index 1f57f1af3..05d9c78d2 100644 --- a/kubejs/assets/tfg/lang/uk_ua.json +++ b/kubejs/assets/tfg/lang/uk_ua.json @@ -2537,7 +2537,7 @@ "quests.medium_voltage.mv_cpu.desc": "&aПроцесор&e (Cpu)&r — одна з найважливіших технологій у твоїй фабриці. \n\n&eПластина процесора&r (Cpu Wafer) особлива—її можна покращити пізніше через &2хімічну реакцію&r. \n\nАле поки що тобі знадобиться &eЧіп процесора&r (Cpu Chip) для створення найкращих &bMV&r схем, доступних на цьому етапі. \n\nОбов’язково зроби кілька додаткових, адже вони будуть необхідні для майбутніх покращень.", "quests.medium_voltage.lsb.title": "Стає дуже парко", "quests.medium_voltage.lsb.subtitle": "Якщо у тебе необмежене паливо, це все одно може бути корисним", - "quests.medium_voltage.lsb.desc": "Якщо ти &lдосі&r використовуєш &3Великий бронзовий котел&r, можливо, варто оновитися до &3Великого сталевого котла&r. \n\nВін трохи ефективніший за &3ВБК&r і виробляє &d1800 EU/t пари&r. \n\nМи б рекомендували тобі спробувати інші варіанти енергопостачання на цьому етапі.", + "quests.medium_voltage.lsb.desc": "Якщо ти &lдосі&r використовуєш &3Великий бронзовий котел&r, можливо, варто оновитися до &3Великого сталевого котла&r. \n\nВін трохи ефективніший за &3ВБК&r і виробляє &d1800 mB/t пари&r. \n\nМи б рекомендували тобі спробувати інші варіанти енергопостачання на цьому етапі.", "quests.metal_age": "Епоха Металургії", "quests.metal_age.subtitle": "Ваші перші технологічні досягнення.", "quests.metal_age.weld_bronze_ingots.title": "Зварювання Бронзи", From 21b2446160ce8b02be25d65c7d498a25f9b906c8 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Tue, 7 Oct 2025 01:58:41 +0100 Subject: [PATCH 35/69] cl --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ef09a48f..9520a5d86 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ ### Changes - Buffed how many stainless steel jar lids you can get per ingot from 16 to 48 @Pyritie - Adjusted max HP of various moon and mars mobs @Pyritie +- Added quest text for the mars section of the space survival chapter @Pyritie +- Added field guide entry for mars crops @Pyritie ### Bug fixes - Fixed linux crash from recipe IDs (#1962) @Xaligal @Pyritie - Fixed missing texture for interplanetary wireless card (#1965, #1964) @Ko-lja From 03e382702de287d323035e6776204fd60487e118 Mon Sep 17 00:00:00 2001 From: GameStar <56610486+BlueBoat29@users.noreply.github.com> Date: Tue, 7 Oct 2025 05:34:59 -0500 Subject: [PATCH 36/69] more cooling tower stuff (#1971) * stuff * eh * stuff * stuff to save * stuff * texture stuff * lang --- .../assets/tfg/blockstates/cooling_tower.json | 19 ++++ kubejs/assets/tfg/lang/en_us.json | 3 + .../models/block/machines/cooling_tower.json | 90 ++++++++++++++++++ .../assets/tfg/models/item/cooling_tower.json | 3 + .../block/casings/heat_pipe_casing.png | Bin 821 -> 836 bytes .../block/casings/heat_pipe_casing_ctm.png | Bin 4998 -> 1047 bytes .../tfg/recipes.miscellaneous.js | 9 +- kubejs/server_scripts/tfg/recipes.nuclear.js | 37 +++++++ kubejs/startup_scripts/gtceu/materials.js | 2 +- kubejs/startup_scripts/tfg/blocks.js | 13 +-- kubejs/startup_scripts/tfg/materials.js | 7 ++ 11 files changed, 169 insertions(+), 14 deletions(-) create mode 100644 kubejs/assets/tfg/blockstates/cooling_tower.json create mode 100644 kubejs/assets/tfg/models/block/machines/cooling_tower.json create mode 100644 kubejs/assets/tfg/models/item/cooling_tower.json diff --git a/kubejs/assets/tfg/blockstates/cooling_tower.json b/kubejs/assets/tfg/blockstates/cooling_tower.json new file mode 100644 index 000000000..dd1239578 --- /dev/null +++ b/kubejs/assets/tfg/blockstates/cooling_tower.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "tfg:block/machines/cooling_tower", + "y": 90 + }, + "facing=north": { + "model": "tfg:block/machines/cooling_tower" + }, + "facing=south": { + "model": "tfg:block/machines/cooling_tower", + "y": 180 + }, + "facing=west": { + "model": "tfg:block/machines/cooling_tower", + "y": 270 + } + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/lang/en_us.json b/kubejs/assets/tfg/lang/en_us.json index ebf3b004b..f9b8b1c36 100644 --- a/kubejs/assets/tfg/lang/en_us.json +++ b/kubejs/assets/tfg/lang/en_us.json @@ -555,6 +555,7 @@ "block.tfg.casings.bioculture_rotor_primary": "Primary Bioculture Rotor", "block.tfg.casings.bioculture_rotor_secondary": "Secondary Bioculture Rotor", "block.tfg.casings.machine_casing_ostrum_carbon": "Ostrum Machine Casing", + "block.tfg.casings.heat_pipe_casing": "Heat Pipe Casing", "block.tfg.glacian_wool_frame": "Framed Glacian Wool", "block.tfg.aes_insulation_frame": "Framed AES Insulation", "block.tfg.sand.fluorapatite.blue": "Blue Fluorapatite Sand", @@ -635,6 +636,7 @@ "block.tfg.titanium_concrete_bricks_square": "Square Titanium-Rebar Concrete Bricks", "block.tfg.nuclear_turbine": "Nuclear Steam Turbine", "block.tfg.evaporation_tower": "Evaporation Tower", + "block.tfg.cooling_tower": "Nuclear Cooling Tower", "block.tfg.growth_monitor": "Growth Monitor", "block.tfg.sample_rack": "Sample Rack", "block.tfg.casings.machine_casing_sterilizing_pipes": "Sterilizing Pipes", @@ -1024,6 +1026,7 @@ "material.tfg.cooked_mycelienzane": "1,3-Mycelienzane", "material.tfg.iodomethane": "Iodomethane", "material.tfg.trideuteroiodomethane": "Trideuteroiodomethane", + "material.tfg.thermally_conductive_fluid": "Thermally Conductive Fluid", "ore_vein.tfg.deep_sheldonite": "Cooperite & Bornite", "ore_vein.tfg.deep_garnet_amethyst": "Amethyst & Garnet", "ore_vein.tfg.deep_garnet_opal": "Opal & Garnet", diff --git a/kubejs/assets/tfg/models/block/machines/cooling_tower.json b/kubejs/assets/tfg/models/block/machines/cooling_tower.json new file mode 100644 index 000000000..b910175a4 --- /dev/null +++ b/kubejs/assets/tfg/models/block/machines/cooling_tower.json @@ -0,0 +1,90 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "tfg:cooling_tower", + "texture_overrides": { + "all": "tfg:block/casings/machine_casing_ostrum_carbon" + }, + "variants": { + "is_formed=false,recipe_logic_status=idle": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_ostrum_carbon", + "overlay_front": "gtceu:block/multiblock/generator/large_steam_turbine/overlay_front", + "overlay_front_emissive": "gtceu:block/multiblock/generator/large_steam_turbine/overlay_front_emissive" + } + } + }, + "is_formed=false,recipe_logic_status=suspend": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_ostrum_carbon", + "overlay_front": "gtceu:block/multiblock/generator/large_steam_turbine/overlay_front_paused", + "overlay_front_emissive": "gtceu:block/multiblock/generator/large_steam_turbine/overlay_front_paused_emissive" + } + } + }, + "is_formed=false,recipe_logic_status=waiting": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_ostrum_carbon", + "overlay_front": "gtceu:block/multiblock/generator/large_steam_turbine/overlay_front_active", + "overlay_front_emissive": "gtceu:block/multiblock/generator/large_steam_turbine/overlay_front_active_emissive" + } + } + }, + "is_formed=false,recipe_logic_status=working": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_ostrum_carbon", + "overlay_front": "gtceu:block/multiblock/generator/large_steam_turbine/overlay_front_active", + "overlay_front_emissive": "gtceu:block/multiblock/generator/large_steam_turbine/overlay_front_active_emissive" + } + } + }, + "is_formed=true,recipe_logic_status=idle": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_ostrum_carbon", + "overlay_front": "gtceu:block/multiblock/generator/large_steam_turbine/overlay_front", + "overlay_front_emissive": "gtceu:block/multiblock/generator/large_steam_turbine/overlay_front_emissive" + } + } + }, + "is_formed=true,recipe_logic_status=suspend": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_ostrum_carbon", + "overlay_front": "gtceu:block/multiblock/generator/large_steam_turbine/overlay_front_paused", + "overlay_front_emissive": "gtceu:block/multiblock/generator/large_steam_turbine/overlay_front_paused_emissive" + } + } + }, + "is_formed=true,recipe_logic_status=waiting": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_ostrum_carbon", + "overlay_front": "gtceu:block/multiblock/generator/large_steam_turbine/overlay_front_active", + "overlay_front_emissive": "gtceu:block/multiblock/generator/large_steam_turbine/overlay_front_active_emissive" + } + } + }, + "is_formed=true,recipe_logic_status=working": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_ostrum_carbon", + "overlay_front": "gtceu:block/multiblock/generator/large_steam_turbine/overlay_front_active", + "overlay_front_emissive": "gtceu:block/multiblock/generator/large_steam_turbine/overlay_front_active_emissive" + } + } + } + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/item/cooling_tower.json b/kubejs/assets/tfg/models/item/cooling_tower.json new file mode 100644 index 000000000..87f1fd1ad --- /dev/null +++ b/kubejs/assets/tfg/models/item/cooling_tower.json @@ -0,0 +1,3 @@ +{ + "parent": "tfg:block/machines/cooling_tower" +} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/block/casings/heat_pipe_casing.png b/kubejs/assets/tfg/textures/block/casings/heat_pipe_casing.png index 1538c493e2c36620ec812779f239e1c158dd4454..193d41b54022816d0cfb997e2bb312e3c50659b3 100644 GIT binary patch delta 660 zcmdnWc7$z$qd@T1AT7Qyfxr_1bKfjd+BJ1zpniQ-!JYo{?{eku85YK+t-2}77;@HV z(#91tPOj_P7yjd7vtv(^U(zx;f8Avl3v2EkK74(*!TDD;@6KOb{=|o^!sQXiW!~z3QTcl6^!pa#GGY~J7d+ITcQzkMTG;#4EX~zfb)FiZ z<|?pzR7Z;eSkTm4C#t>~6l*J~4Zfx|+NJRDkjw7fJ9JIx5|6%qEl)nE33 z-})cR&Xl652Tp8k;0p2RlmEkCSDyWBx!T<&4k9n=HoomQJg}YHBx~E>+ML_H!Uuly z#ANE$FXcN^Hz_VVbD{Erdg&cI@-jck73^f@v3)s7(Q?xCWfP3gGrv#&;v1RpKcvU2rP=?4!4B=iHmRkfFY-}e36`7Kli(U6miO^ivS zH)oUXDB35fBpCNz5hMkSh>Z)i?cyOnL&=-L-T1x<$IfivSep_YA#h{#twPqSZF1_}TFVdQ&MBb@0L<<@7XSbN delta 645 zcmX@Ywv}yyqd@dhEm2o%kHQlHr5n4uET&Bi)UU57xYJ+$U9S8+L;m7JB8#=TG*+!# z{>V^qcC_f9^)FmGoF$I5oZ!)&7-@f&Opuq;-n3(ORnfyEMFuKh%2^7yg>3%udScBnx`WIizgdbur zqKm7t-#-4rcp@PDwE2O9iUx5@-jq%+|6cO#+xwYe_4enyi%xsqnBh5jBcmZFr``b zrf9z2Hmj>ePOf>Y`@ZLqT+7UMZ?F`WSv~3fBNhjtqXDtMo+a&j5Ha;ni1@AJXRVEY zPq#KWYpD9})1vZw&mHw}peR2rGbfdSL1SX=L|c!;4l+mMgSQ50@r4Nlo(P!x zW|7jasgso%wd<#gL>;LrxYJ+$U9S8+!@{_u0g_tud)* zt3Qde72WdcdTrt^a9HS(heJz`mY2q1rx{_rBEp`x`pZ7>TmNI(nNl?Mz=@3wTp=EP z@_+d2%Cny>SG&8!LF7f<#<%^32exyYWNrIfn{&HY_`q+Tm`vUJrF>`VCdFlEE>vDn zFTG<&Ugjscf}PAfwl60sTGmgRzHGvI=J)Aed?OPch<#YUbFb<5!e0zaR<3?3{osLs zgnq!cs`m2l+rEE$KQpb~{&Pstt z_W6UI+WpO2*b|(%gilno_c}kCT};||Lr_p-X~Rs#^Ti5E z4o8ko8y@oJLMYJJ(_fUpD6=FyVMJ1y+od;mQ$8xsOMZ(oSc22{yOLG zEzecBW?3ah7j`;m2yN6@xlQE9y4v3kp)K#0W(ab?@@c+0QRI`&#;Wos7r9LXmfB z?^AgX91uHNknvHYtsv?2H2M4WMi;+S-QlcvyeND2`RCZ4`vJyf2=03Lf4T_Iu7<-WU${uLNlko_wtn&H#aZQnMXRGbHn8S3TIv3H`kY5#;~&*x s?&Ec7?Mi_kMC$*>ewtS|tETCp{uS?V-=#5I4uevar>mdKI;Vst09IzjNB{r; literal 4998 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}$ErdiN`ey06$*;-(=u~X z6-p`#QWa7wGSe6sDsJTl+~z&3!1E`)tFJ+R&oM<`tsn%Tdpo9hs?h?AaOy2F8|5XXgM< zXJ?p?7#J$%)K0YZIP4&EG(LE#)>OW-39lwBw7Pk;%VL_A*g>aE?Jchoie8GFWO@X} z$go~-YL@Q~WfxD6m5pI_{J?x9wjiivqR{{AB2h;w3hwlmf0rwN&#*8ub=6IA=8&^S zmpXUMIK94WUpP+^4`YkK)EO()jk_av^sTS1_)#VPF!J5=e=>)?4yH7?tMnP(-Oyp) zk#4R#_p@E$gsG~nKju`NTEH!2Uld#RqqlhFS*G(mQa8WY6i$fH`MTlG;Warcju;crdkk8itc#klAE zfvMNNUY~W~j{3{qbz*i*Ot%jlEe)Uiz2UTM!WYl!JS%l8Gr5i`eW-K0KZV^buW_O2 z^6lsB{Nx*SO1IW9%g8WIRy`G0UisZ2KmY%{mtVd!Gw2lE-+h;vhk=1FG&3ZkB*NFn zDmgz_FEJ%QDOIl`w}1fzZ0suv5|gu2OB9k)(=+pImEP~(ucVNfVyhHx>TBRz;GCL~ z=}}db8eHWUl3bOYY?-2DZ^va*VO5b^kegbPs8ErclUHn2VXFi-*D9~r3M8zrqySb@ zl5MLL;TxdfoL`ixV4`QDXQ1m^ky&P>WXGjoQ-9F1v$^t z#a0Pqzg0?pa%PGZn3-s5ZjzW{lBR27WNe^olA4^To0Mc^q-$cHoM>QfU~Z6@VuECp zXI^nhVqS78$f%0k0=>-46f2`NGjn4Lvt(VB?6jP&Q z^F$;g{EITvGxHL2kX;2bDg|VenYm?}p?Q+7X{xEEu8DE7k#3?%s*$d#rCGA2S(1rC zN}2)KsFY+YxBQ~q#1dPj%-qEERQ-aybg%>{z^xnuJZ+VX^dL&XA^|yxC29FZxwcB- znRzMs<;4iaA(^?U!6k{H@H8|xwXn3XG%zzZFf+0+fp{FOKPlFkUSNfS_t7mxH*|1)d~s<;A~-)m<;hkabj6&3fLQPspO2ry!6x*TP0|Mg=xve zk{HaAjZ=-xj8b*e%u|hYO-v0fbrX#YjdW9!l8nug&COGcQ!G(UFV0UZDNig)bxcpq zE3s8_&&(|Vhn0c`G^#XF)t6_ag5trz$W+(BQrE~V#L(2r(9p`nTuGny-b+bKHaE2} zG10X&O)}OsNij;+wM;We)lD%?OiWF(OiMLLG)HwVh2Ddw2xFM{Z1h0|A}lg(^f96v zq5!D`wc}ENhy}U0*>TzEgNt!ckq!+nP?<_Y3{7S4fq^N&)5S3);_%yW+k9b1 zf!d8>J^s^<{$x4GIWZ$>Mw?cXlB%!OuP+`Yf7t#p+c$RcePmt{w7Y8xM`Pcy#)xmZ zDv!QKZCbD+`u@GTo5x)jeGJ)GTWnnX``(*1<#GFKzOuKe7UqAgK4r{(`TC`6JV9Q2 zs&%yL;*anD`1T*SPi5QXyAxY$BWzd%8)tG(E|d1JlKpcc&v5Q}U7vX4?&8RI))L++y1*1wW%qOeAHS0JL-JoCT%KU!+oLs*j=i~i& zf9Nb>RCKx5cD%W9dVRR}OuOku+*u0SC)Trvyyji6Hci60Dj@si*E6?Sm%cx-l96F2 zTU+>Kt@3$K)c*e}`}f)M!PSQ5{QH&{JeXDeXBXyO61jBXV?w|l`AZFj>sF`BKdpx6md5b1mDFVdQ I&MBb@07L;c8~^|S diff --git a/kubejs/server_scripts/tfg/recipes.miscellaneous.js b/kubejs/server_scripts/tfg/recipes.miscellaneous.js index a0a650681..b97a068ba 100644 --- a/kubejs/server_scripts/tfg/recipes.miscellaneous.js +++ b/kubejs/server_scripts/tfg/recipes.miscellaneous.js @@ -1402,15 +1402,10 @@ function registerTFGMiscellaneousRecipes(event) { .duration(100) .EUt(4) - event.recipes.gtceu.assembler('tfg:ostrum_carbon_casing') - .itemInputs('2x #forge:plates/ostrum', '2x #forge:plates/titanium_carbide', '#forge:frames/black_steel') - .itemOutputs('2x tfg:casings/machine_casing_ostrum_carbon') - .circuit(6) - .duration(20 * (2.5)) - .EUt(GTValues.VH[GTValues.LV]) + event.recipes.gtceu.assembler('tfg:titanium_concrete') - .itemInputs('2x #forge:rods/titanium', '4x #forge:dusts/kaolinite') + .itemInputs('2x #forge:rods/titanium', '#forge:dusts/kaolinite') .inputFluids(Fluid.of('gtceu:concrete', 144 * 1.5)) .itemOutputs('tfg:titanium_concrete') .circuit(2) diff --git a/kubejs/server_scripts/tfg/recipes.nuclear.js b/kubejs/server_scripts/tfg/recipes.nuclear.js index 810bb345d..dec2f01bd 100644 --- a/kubejs/server_scripts/tfg/recipes.nuclear.js +++ b/kubejs/server_scripts/tfg/recipes.nuclear.js @@ -434,6 +434,43 @@ function registerTFGNuclearRecipes(event) { .duration(20*1.5) //#endregion + + //#region Cooling Tower + event.recipes.gtceu.assembler('tfg:ostrum_carbon_casing') + .itemInputs('2x #forge:plates/ostrum', '2x #forge:plates/titanium_carbide', '#forge:dense_plates/hsla_steel', '#forge:frames/black_steel') + .itemOutputs('2x tfg:casings/machine_casing_ostrum_carbon') + .circuit(6) + .duration(20 * (2.5)) + .EUt(GTValues.VH[GTValues.LV]) + + event.recipes.gtceu.mixer('tfg:thermally_conductive_fluid') + .itemInputs('7x #forge:dusts/gallium', '2x #forge:dusts/tin', '#forge:dusts/zinc') + .outputFluids(Fluid.of('tfg:thermally_conductive_fluid', 1000)) + .circuit(2) + .EUt(GTValues.VA[GTValues.EV]) + .duration(20*20) + + event.recipes.gtceu.assembler('tfg:heat_pipe_casing') + .itemInputs('4x gtceu:copper_large_fluid_pipe', '4x gtceu:copper_normal_fluid_pipe', '4x #forge:plates/hsla_steel') + .inputFluids(Fluid.of('tfg:thermally_conductive_fluid', 1000)) + .itemOutputs('tfg:casings/heat_pipe_casing') + .circuit(6) + .EUt(GTValues.VA[GTValues.IV] * 2) + .duration(20*4) + + event.shaped('tfg:cooling_tower', [ + 'ABA', + 'CDC', + 'EBE' + ], { + A: 'gtceu:ostrum_normal_fluid_pipe', + B: 'gtceu:platinum_single_cable', + C: '#gtceu:circuits/iv', + D: 'gtceu:iv_machine_hull', + E: 'gtceu:iv_fluid_regulator' + }).id('tfg:shaped/cooling_tower') + + //#endregion //#region FLiBe Line - SCRAP FROM MARS TO VENUS diff --git a/kubejs/startup_scripts/gtceu/materials.js b/kubejs/startup_scripts/gtceu/materials.js index 76958809f..acc8d4070 100644 --- a/kubejs/startup_scripts/gtceu/materials.js +++ b/kubejs/startup_scripts/gtceu/materials.js @@ -274,7 +274,7 @@ const registerGTCEuMaterialModification = (event) => { GTMaterials.Ultimet.addFlags(GENERATE_ROTOR) - GTMaterials.HSLASteel.addFlags(GENERATE_BOLT_SCREW) + GTMaterials.HSLASteel.addFlags(GENERATE_BOLT_SCREW, GENERATE_DENSE) GTMaterials.Invar.addFlags(GENERATE_RING); GTMaterials.Magnalium.addFlags(GENERATE_RING); diff --git a/kubejs/startup_scripts/tfg/blocks.js b/kubejs/startup_scripts/tfg/blocks.js index 0d5bbc9de..de1a9db78 100644 --- a/kubejs/startup_scripts/tfg/blocks.js +++ b/kubejs/startup_scripts/tfg/blocks.js @@ -17,13 +17,14 @@ const registerTFGBlocks = (event) => { .tagBlock('minecraft:mineable/wrench') .mapColor('color_black') .speedFactor(1.1) - .activeOffset(5, 1, 5) - .activeVelocity(0.0, 0.1, 0.0) - //.activeParticle('tfc:smoke_0') - .activeCount(50) - .activeForced(true) + .activeOffset(3.5, 2, 3.5) + .activeVelocity(0.0, 0.0, 0.0) + .activeParticle('tfg:cooling_steam') + .activeBase(0.0, 12.5, 0.0) + .activeCount(8) + .activeForced(false) .hasTicker(true) - + // #region Machine Casings global.TFG_MACHINE_CASINGS.forEach(type => { diff --git a/kubejs/startup_scripts/tfg/materials.js b/kubejs/startup_scripts/tfg/materials.js index 89357c886..aad39269c 100644 --- a/kubejs/startup_scripts/tfg/materials.js +++ b/kubejs/startup_scripts/tfg/materials.js @@ -512,4 +512,11 @@ const registerTFGMaterials = (event) => { .color(0xDD9DED) // #endregion + + // #region conductor + event.create('tfg:thermally_conductive_fluid') + .liquid() + .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING) + .components('7x gallium', '2x tin', '1x zinc') + .color('0x34cfeb') } From 07ea3815f56ad1cae8cd7e69d322d946f131abed Mon Sep 17 00:00:00 2001 From: Pyritie Date: Tue, 7 Oct 2025 12:30:25 +0100 Subject: [PATCH 37/69] you can now pick up axolotls --- config/carryon-common.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/carryon-common.toml b/config/carryon-common.toml index cc88cd710..b46d9a87d 100644 --- a/config/carryon-common.toml +++ b/config/carryon-common.toml @@ -57,7 +57,7 @@ [whitelist] #Whitelist. Read about the format here: https://github.com/Tschipp/CarryOn/wiki/Black---and-Whitelist-Config #Entities that CAN be picked up (useWhitelistEntities must be true) - allowedEntities = ["tfc:turkey", "tfc:isopod", "tfc:lobster", "tfc:frog", "tfc:penguin", "tfc:turtle", "tfc:horseshoe_crab", "tfc:crayfish", "tfc:grouse", "tfc:pheasant", "tfc:peafowl", "tfc:rat", "tfc:chicken", "tfc:duck", "tfc:quail", "tfc:rabbit", "tfg:moon_rabbit", "species:birt", "species:stackatick", "species:springling", "tfg:glacian_ram"] + allowedEntities = ["minecraft:axolotl", "tfc:turkey", "tfc:isopod", "tfc:lobster", "tfc:frog", "tfc:penguin", "tfc:turtle", "tfc:horseshoe_crab", "tfc:crayfish", "tfc:grouse", "tfc:pheasant", "tfc:peafowl", "tfc:rat", "tfc:chicken", "tfc:duck", "tfc:quail", "tfc:rabbit", "tfg:moon_rabbit", "species:birt", "species:stackatick", "species:springling", "tfg:glacian_ram"] #Blocks that CAN be picked up (useWhitelistBlocks must be true) allowedBlocks = ["framedblocks:framed_chest", "tfc:wood/chest/*", "tfc:wood/trapped_chest/*", "afc:wood/chest/*", "afc:wood/trapped_chest/*", "#forge:chests/wooden"] #Entities that CAN have other entities stacked on top of them (useWhitelistStacking must be true) From c6cb1e9144df7b54bf1ac63b79d7b308d9ea634b Mon Sep 17 00:00:00 2001 From: Pyritie Date: Tue, 7 Oct 2025 12:57:55 +0100 Subject: [PATCH 38/69] changed windmills' air requirements since the main reason we're using the windmill part in the first place is to stop them on the moon/orbits lol --- config/createpickywheels-common.toml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config/createpickywheels-common.toml b/config/createpickywheels-common.toml index 5981a7f82..c2cd14b6f 100644 --- a/config/createpickywheels-common.toml +++ b/config/createpickywheels-common.toml @@ -30,19 +30,19 @@ windmillPenalty = 1.0 #The minimum floor area required. Default: 1/4 of the max area [PI * 32 ^ 2]. #Range: > 1 - windmillThreshold = 804 + windmillThreshold = 1 #The minimum length of air current required. #Range: > 1 - windmillRequiredRange = 24 + windmillRequiredRange = 1 #The minimum amount of points that must hit windmillRequiredRange. #Range: > 1 - windmillRequiredRangePoints = 128 + windmillRequiredRangePoints = 1 #The maximum distance a waterwheel can consider air blocks from. #Range: > 1 windmillMaxRange = 32 #The percentage of Generated Speed only given if windmills are raised enough. #Range: 0.0 ~ 1.0 - windmillAbovePenalty = 1.0 + windmillAbovePenalty = 0.25 #The height required for the full benefit from windmillAbovePenalty. #Range: > 1 windmillAbove = 3 From 60f927daae0ea4ed3b52384c729e38706ddc2047 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Tue, 7 Oct 2025 12:58:42 +0100 Subject: [PATCH 39/69] cl --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9520a5d86..4f1f1d752 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - Adjusted max HP of various moon and mars mobs @Pyritie - Added quest text for the mars section of the space survival chapter @Pyritie - Added field guide entry for mars crops @Pyritie +- Changed the amount of open space windmills require to be extremely more lenient, so they should always work in tree farms @Pyritie ### Bug fixes - Fixed linux crash from recipe IDs (#1962) @Xaligal @Pyritie - Fixed missing texture for interplanetary wireless card (#1965, #1964) @Ko-lja From 784ba3e03129bc9eaa368c6ba062dca8b13b668b Mon Sep 17 00:00:00 2001 From: Pyritie Date: Tue, 7 Oct 2025 16:34:42 +0100 Subject: [PATCH 40/69] lang for https://github.com/TerraFirmaGreg-Team/Modpack-Modern/issues/1945 --- kubejs/assets/tfg/lang/en_us.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kubejs/assets/tfg/lang/en_us.json b/kubejs/assets/tfg/lang/en_us.json index f9b8b1c36..b57e6df5d 100644 --- a/kubejs/assets/tfg/lang/en_us.json +++ b/kubejs/assets/tfg/lang/en_us.json @@ -1020,13 +1020,13 @@ "material.tfg.tungsten_oxide": "Tungsten Oxide", "material.tfg.sodium_tungstate": "Sodium Tungstate", "material.tfg.tetrafluoroethane": "Tetrafluoroethane", + "material.tfg.thermally_conductive_fluid": "Thermally Conductive Fluid", "material.tfg.crimsene": "Crimsene", "material.tfg.warpane": "Warpane", "material.tfg.mycelienzene": "Mycelienzene", "material.tfg.cooked_mycelienzane": "1,3-Mycelienzane", "material.tfg.iodomethane": "Iodomethane", "material.tfg.trideuteroiodomethane": "Trideuteroiodomethane", - "material.tfg.thermally_conductive_fluid": "Thermally Conductive Fluid", "ore_vein.tfg.deep_sheldonite": "Cooperite & Bornite", "ore_vein.tfg.deep_garnet_amethyst": "Amethyst & Garnet", "ore_vein.tfg.deep_garnet_opal": "Opal & Garnet", @@ -1330,6 +1330,7 @@ "tfg.tooltip.component.refrigerant_pellet": "Can be used as an input in the Fission Reactor to cool it down, requires a Material Holder", "tfg.tooltip.component.nuclear_turbine_1": "§eBase Production:§r 4096 EU/t", "tfg.tooltip.component.nuclear_turbine_2": "Each Rotor Holder above §5EV§r §7adds§r 10% efficiency and multiplies EU/t by 2.", + "tfg.machine.food_refrigerator_power_usage": "§7Consumes %s EU/t while active to keep your food fresh.", "tfc.jei.flint_knapping": "Flint Knapping", "tfc.jei.straw_knapping": "Straw Knapping", "tfc.recipe.barrel.tfg.barrel.dyeing.decorative_vase.black": "Dyeing", From 8cfe1a0b556505b9afa410cd9e50bfbfe1d45709 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Tue, 7 Oct 2025 16:43:04 +0100 Subject: [PATCH 41/69] new quest text for the LWW --- config/ftbquests/quests/chapters/questssteam_age.snbt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/ftbquests/quests/chapters/questssteam_age.snbt b/config/ftbquests/quests/chapters/questssteam_age.snbt index ec037fdc6..4f068a59b 100644 --- a/config/ftbquests/quests/chapters/questssteam_age.snbt +++ b/config/ftbquests/quests/chapters/questssteam_age.snbt @@ -1653,15 +1653,15 @@ } { dependencies: ["32046292AA5B0E30"] - description: ["{quests.steam_age.water_wheel.desc}"] + description: ["{quests.steam_age.large_water_wheel.desc}"] id: "56A068A5488CB273" - subtitle: "{quests.steam_age.water_wheel.subtitle}" + subtitle: "{quests.steam_age.large_water_wheel.subtitle}" tasks: [{ id: "5772AD3BB700FD84" item: "create:large_water_wheel" type: "item" }] - title: "{quests.steam_age.water_wheel.title}" + title: "{quests.steam_age.large_water_wheel.title}" x: -3.5d y: -2.0d } From 153ae765229552803055ee6898bafd18d14ce70c Mon Sep 17 00:00:00 2001 From: Pyritie Date: Tue, 7 Oct 2025 18:22:41 +0100 Subject: [PATCH 42/69] Feature/mars piles and layers (#1975) * changes for some sand layer/pile stuff * Martian wind (#1883) * add texture for wind * add multiple martian wind types * fix semiheavy concurrent with tfg core * rename wind to match convention * fix blockstate registration error * why is this even turned on by default * translate code regions + placeholder bundle recipe * add mars climate controller * add debug stick functions * cleanup * add layer block models * add jsons * cleanup --------- Signed-off-by: Zippity * refactor * undo bundle * added a bunch of missing snow pile tags * item model changes * more snow piled tags * add dust storm severity biome tags * some cleanup --------- Signed-off-by: Zippity Co-authored-by: Zippity --- config/modernfix-mixins.properties | 2 +- .../fluid/semiheavy_ammoniacal_water.json | 7 + .../tfg/blockstates/pile/hematitic_sand.json | 28 ++++ .../pile/hematitic_sand_covering.json | 28 ++++ .../blockstates/pile/mars_sand_covering.json | 28 ++++ .../blockstates/pile/mars_snow_covering.json | 31 ++++ .../blockstates/pile/venus_sand_covering.json | 28 ++++ .../semiheavy_ammoniacal_water.json | 7 - kubejs/assets/tfg/lang/en_us.json | 12 +- .../semiheavy_ammoniacal_water.json | 0 .../pile/hematitic_sand/sand_height10.json | 7 + .../pile/hematitic_sand/sand_height12.json | 7 + .../pile/hematitic_sand/sand_height14.json | 7 + .../pile/hematitic_sand/sand_height2.json | 7 + .../pile/hematitic_sand/sand_height4.json | 7 + .../pile/hematitic_sand/sand_height6.json | 7 + .../pile/hematitic_sand/sand_height8.json | 7 + .../mars_sand/mars_sand/sand_height10.json | 7 - .../mars_sand/mars_sand/sand_height12.json | 7 - .../mars_sand/mars_sand/sand_height14.json | 7 - .../mars_sand/mars_sand/sand_height2.json | 7 - .../mars_sand/mars_sand/sand_height4.json | 7 - .../mars_sand/mars_sand/sand_height6.json | 7 - .../mars_sand/mars_sand/sand_height8.json | 7 - .../block/pile/mars_snow/sand_height10.json | 7 + .../block/pile/mars_snow/sand_height12.json | 7 + .../block/pile/mars_snow/sand_height14.json | 7 + .../block/pile/mars_snow/sand_height2a.json | 7 + .../block/pile/mars_snow/sand_height2b.json | 7 + .../block/pile/mars_snow/sand_height2c.json | 7 + .../block/pile/mars_snow/sand_height2d.json | 7 + .../block/pile/mars_snow/sand_height4.json | 7 + .../block/pile/mars_snow/sand_height6.json | 7 + .../block/pile/mars_snow/sand_height8.json | 7 + .../tfg/models/item/pile/hematitic_sand.json | 3 + .../item/pile/hematitic_sand_covering.json | 3 + .../tfg/models/item/pile/mars_sand.json | 2 +- .../models/item/pile/mars_sand_covering.json | 3 + .../models/item/pile/mars_snow_covering.json | 3 + .../models/item/pile/venus_sand_covering.json | 3 + .../assets/tfg/particles/dark_mars_wind.json | 5 + .../assets/tfg/particles/light_mars_wind.json | 5 + .../tfg/particles/medium_mars_wind.json | 5 + .../tfg/textures/particle/colored_wind.png | Bin 0 -> 519 bytes kubejs/server_scripts/ad_astra/tags.js | 14 ++ kubejs/server_scripts/minecraft/recipes.js | 150 ++++++++++-------- kubejs/server_scripts/tfg/events.mars.js | 78 +++++++++ kubejs/server_scripts/tfg/tags.js | 10 ++ kubejs/startup_scripts/tfg/blocks.js | 39 ----- kubejs/startup_scripts/tfg/blocks.plants.js | 10 +- .../startup_scripts/tfg/register_climates.js | 38 ++++- 51 files changed, 540 insertions(+), 170 deletions(-) create mode 100644 kubejs/assets/tfg/blockstates/fluid/semiheavy_ammoniacal_water.json create mode 100644 kubejs/assets/tfg/blockstates/pile/hematitic_sand.json create mode 100644 kubejs/assets/tfg/blockstates/pile/hematitic_sand_covering.json create mode 100644 kubejs/assets/tfg/blockstates/pile/mars_sand_covering.json create mode 100644 kubejs/assets/tfg/blockstates/pile/mars_snow_covering.json create mode 100644 kubejs/assets/tfg/blockstates/pile/venus_sand_covering.json delete mode 100644 kubejs/assets/tfg/blockstates/semiheavy_ammoniacal_water.json rename kubejs/assets/tfg/models/block/{ => fluid}/semiheavy_ammoniacal_water.json (100%) create mode 100644 kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height10.json create mode 100644 kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height12.json create mode 100644 kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height14.json create mode 100644 kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height2.json create mode 100644 kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height4.json create mode 100644 kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height6.json create mode 100644 kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height8.json delete mode 100644 kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height10.json delete mode 100644 kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height12.json delete mode 100644 kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height14.json delete mode 100644 kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height2.json delete mode 100644 kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height4.json delete mode 100644 kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height6.json delete mode 100644 kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height8.json create mode 100644 kubejs/assets/tfg/models/block/pile/mars_snow/sand_height10.json create mode 100644 kubejs/assets/tfg/models/block/pile/mars_snow/sand_height12.json create mode 100644 kubejs/assets/tfg/models/block/pile/mars_snow/sand_height14.json create mode 100644 kubejs/assets/tfg/models/block/pile/mars_snow/sand_height2a.json create mode 100644 kubejs/assets/tfg/models/block/pile/mars_snow/sand_height2b.json create mode 100644 kubejs/assets/tfg/models/block/pile/mars_snow/sand_height2c.json create mode 100644 kubejs/assets/tfg/models/block/pile/mars_snow/sand_height2d.json create mode 100644 kubejs/assets/tfg/models/block/pile/mars_snow/sand_height4.json create mode 100644 kubejs/assets/tfg/models/block/pile/mars_snow/sand_height6.json create mode 100644 kubejs/assets/tfg/models/block/pile/mars_snow/sand_height8.json create mode 100644 kubejs/assets/tfg/models/item/pile/hematitic_sand.json create mode 100644 kubejs/assets/tfg/models/item/pile/hematitic_sand_covering.json create mode 100644 kubejs/assets/tfg/models/item/pile/mars_sand_covering.json create mode 100644 kubejs/assets/tfg/models/item/pile/mars_snow_covering.json create mode 100644 kubejs/assets/tfg/models/item/pile/venus_sand_covering.json create mode 100644 kubejs/assets/tfg/particles/dark_mars_wind.json create mode 100644 kubejs/assets/tfg/particles/light_mars_wind.json create mode 100644 kubejs/assets/tfg/particles/medium_mars_wind.json create mode 100644 kubejs/assets/tfg/textures/particle/colored_wind.png create mode 100644 kubejs/server_scripts/tfg/events.mars.js diff --git a/config/modernfix-mixins.properties b/config/modernfix-mixins.properties index 80e2cfd43..0a656c7f5 100644 --- a/config/modernfix-mixins.properties +++ b/config/modernfix-mixins.properties @@ -109,7 +109,7 @@ # User overrides go here. mixin.bugfix.packet_leak=true mixin.feature.disable_unihex_font=true -mixin.feature.spark_profile_launch=true +mixin.feature.spark_profile_launch=false mixin.perf.clear_mixin_classinfo=true mixin.perf.deduplicate_location=true mixin.perf.dynamic_entity_renderers=true diff --git a/kubejs/assets/tfg/blockstates/fluid/semiheavy_ammoniacal_water.json b/kubejs/assets/tfg/blockstates/fluid/semiheavy_ammoniacal_water.json new file mode 100644 index 000000000..fa37b90bf --- /dev/null +++ b/kubejs/assets/tfg/blockstates/fluid/semiheavy_ammoniacal_water.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tfg:block/fluid/semiheavy_ammoniacal_water" + } + } +} diff --git a/kubejs/assets/tfg/blockstates/pile/hematitic_sand.json b/kubejs/assets/tfg/blockstates/pile/hematitic_sand.json new file mode 100644 index 000000000..fdafc0543 --- /dev/null +++ b/kubejs/assets/tfg/blockstates/pile/hematitic_sand.json @@ -0,0 +1,28 @@ +{ + "variants": { + "layers=1": { + "model": "tfg:block/pile/hematitic_sand/sand_height2" + }, + "layers=2": { + "model": "tfg:block/pile/hematitic_sand/sand_height4" + }, + "layers=3": { + "model": "tfg:block/pile/hematitic_sand/sand_height6" + }, + "layers=4": { + "model": "tfg:block/pile/hematitic_sand/sand_height8" + }, + "layers=5": { + "model": "tfg:block/pile/hematitic_sand/sand_height10" + }, + "layers=6": { + "model": "tfg:block/pile/hematitic_sand/sand_height12" + }, + "layers=7": { + "model": "tfg:block/pile/hematitic_sand/sand_height14" + }, + "layers=8": { + "model": "minecraft:block/red_sand" + } + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/blockstates/pile/hematitic_sand_covering.json b/kubejs/assets/tfg/blockstates/pile/hematitic_sand_covering.json new file mode 100644 index 000000000..fdafc0543 --- /dev/null +++ b/kubejs/assets/tfg/blockstates/pile/hematitic_sand_covering.json @@ -0,0 +1,28 @@ +{ + "variants": { + "layers=1": { + "model": "tfg:block/pile/hematitic_sand/sand_height2" + }, + "layers=2": { + "model": "tfg:block/pile/hematitic_sand/sand_height4" + }, + "layers=3": { + "model": "tfg:block/pile/hematitic_sand/sand_height6" + }, + "layers=4": { + "model": "tfg:block/pile/hematitic_sand/sand_height8" + }, + "layers=5": { + "model": "tfg:block/pile/hematitic_sand/sand_height10" + }, + "layers=6": { + "model": "tfg:block/pile/hematitic_sand/sand_height12" + }, + "layers=7": { + "model": "tfg:block/pile/hematitic_sand/sand_height14" + }, + "layers=8": { + "model": "minecraft:block/red_sand" + } + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/blockstates/pile/mars_sand_covering.json b/kubejs/assets/tfg/blockstates/pile/mars_sand_covering.json new file mode 100644 index 000000000..9d06e7331 --- /dev/null +++ b/kubejs/assets/tfg/blockstates/pile/mars_sand_covering.json @@ -0,0 +1,28 @@ +{ + "variants": { + "layers=1": { + "model": "tfg:block/pile/mars_sand/sand_height2" + }, + "layers=2": { + "model": "tfg:block/pile/mars_sand/sand_height4" + }, + "layers=3": { + "model": "tfg:block/pile/mars_sand/sand_height6" + }, + "layers=4": { + "model": "tfg:block/pile/mars_sand/sand_height8" + }, + "layers=5": { + "model": "tfg:block/pile/mars_sand/sand_height10" + }, + "layers=6": { + "model": "tfg:block/pile/mars_sand/sand_height12" + }, + "layers=7": { + "model": "tfg:block/pile/mars_sand/sand_height14" + }, + "layers=8": { + "model": "ad_astra:block/mars_sand" + } + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/blockstates/pile/mars_snow_covering.json b/kubejs/assets/tfg/blockstates/pile/mars_snow_covering.json new file mode 100644 index 000000000..e9a85c6f5 --- /dev/null +++ b/kubejs/assets/tfg/blockstates/pile/mars_snow_covering.json @@ -0,0 +1,31 @@ +{ + "variants": { + "layers=1": [ + { "model": "tfg:block/pile/mars_snow/sand_height2a" }, + { "model": "tfg:block/pile/mars_snow/sand_height2b" }, + { "model": "tfg:block/pile/mars_snow/sand_height2c" }, + { "model": "tfg:block/pile/mars_snow/sand_height2d" } + ], + "layers=2": { + "model": "tfg:block/pile/mars_snow/sand_height4" + }, + "layers=3": { + "model": "tfg:block/pile/mars_snow/sand_height6" + }, + "layers=4": { + "model": "tfg:block/pile/mars_snow/sand_height8" + }, + "layers=5": { + "model": "tfg:block/pile/mars_snow/sand_height10" + }, + "layers=6": { + "model": "tfg:block/pile/mars_snow/sand_height12" + }, + "layers=7": { + "model": "tfg:block/pile/mars_snow/sand_height14" + }, + "layers=8": { + "model": "tfg:block/pile/mars_snow/sand_height14" + } + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/blockstates/pile/venus_sand_covering.json b/kubejs/assets/tfg/blockstates/pile/venus_sand_covering.json new file mode 100644 index 000000000..c6e51b655 --- /dev/null +++ b/kubejs/assets/tfg/blockstates/pile/venus_sand_covering.json @@ -0,0 +1,28 @@ +{ + "variants": { + "layers=1": { + "model": "tfg:block/pile/venus_sand/sand_height2" + }, + "layers=2": { + "model": "tfg:block/pile/venus_sand/sand_height4" + }, + "layers=3": { + "model": "tfg:block/pile/venus_sand/sand_height6" + }, + "layers=4": { + "model": "tfg:block/pile/venus_sand/sand_height8" + }, + "layers=5": { + "model": "tfg:block/pile/venus_sand/sand_height10" + }, + "layers=6": { + "model": "tfg:block/pile/venus_sand/sand_height12" + }, + "layers=7": { + "model": "tfg:block/pile/venus_sand/sand_height14" + }, + "layers=8": { + "model": "ad_astra:block/venus_sand" + } + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/blockstates/semiheavy_ammoniacal_water.json b/kubejs/assets/tfg/blockstates/semiheavy_ammoniacal_water.json deleted file mode 100644 index 1f695a4f2..000000000 --- a/kubejs/assets/tfg/blockstates/semiheavy_ammoniacal_water.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "tfg:block/semiheavy_ammoniacal_water" - } - } -} \ No newline at end of file diff --git a/kubejs/assets/tfg/lang/en_us.json b/kubejs/assets/tfg/lang/en_us.json index b57e6df5d..d1dfead03 100644 --- a/kubejs/assets/tfg/lang/en_us.json +++ b/kubejs/assets/tfg/lang/en_us.json @@ -423,6 +423,16 @@ "block.tfg.pile.moon_sand": "Lunar Sand", "block.tfg.pile.mars_sand": "Argillite Sand", "block.tfg.pile.venus_sand": "Trachyte Sand", + "block.tfg.layer.white_sand": "White Sand", + "block.tfg.layer.black_sand": "Black Sand", + "block.tfg.layer.brown_sand": "Brown Sand", + "block.tfg.layer.red_sand": "Red Sand", + "block.tfg.layer.yellow_sand": "Yellow Sand", + "block.tfg.layer.green_sand": "Green Sand", + "block.tfg.layer.pink_sand": "Pink Sand", + "block.tfg.layer.moon_sand": "Lunar Sand", + "block.tfg.layer.mars_sand": "Argillite Sand", + "block.tfg.layer.venus_sand": "Trachyte Sand", "block.tfg.lunar_roots": "Lunar Lightblooms", "block.tfg.lunar_sprouts": "Lunar Lightgrass", "block.tfg.lunar_chorus_plant": "Chorus Plant", @@ -4130,4 +4140,4 @@ "quests.tfg_tips.tools_tips.harvest_basket.subtitle": "For competitive pie bakers.", "quests.tfg_tips.tools_tips.harvest_basket.task": "Any #tfg:harvester", "quests.tfg_tips.tools_tips.harvest_basket.desc": "&l&2Harvest Baskets&r&r are a new tool made just for &5TFG&r! These baskets can be used to harvest whole trees and bushes of fruit in one right-click! A regular &6Harvest Basket&r has a base durability of &n128&r. But an &3Aluminium Harvest Basket&r takes no damage on use." -} \ No newline at end of file +} diff --git a/kubejs/assets/tfg/models/block/semiheavy_ammoniacal_water.json b/kubejs/assets/tfg/models/block/fluid/semiheavy_ammoniacal_water.json similarity index 100% rename from kubejs/assets/tfg/models/block/semiheavy_ammoniacal_water.json rename to kubejs/assets/tfg/models/block/fluid/semiheavy_ammoniacal_water.json diff --git a/kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height10.json b/kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height10.json new file mode 100644 index 000000000..019511674 --- /dev/null +++ b/kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height10.json @@ -0,0 +1,7 @@ +{ + "parent": "tfg:block/ash_pile/ash_height10", + "textures": { + "particle": "minecraft:block/red_sand", + "texture": "minecraft:block/red_sand" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height12.json b/kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height12.json new file mode 100644 index 000000000..a52a756ed --- /dev/null +++ b/kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height12.json @@ -0,0 +1,7 @@ +{ + "parent": "tfg:block/ash_pile/ash_height12", + "textures": { + "particle": "minecraft:block/red_sand", + "texture": "minecraft:block/red_sand" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height14.json b/kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height14.json new file mode 100644 index 000000000..d76e9c589 --- /dev/null +++ b/kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height14.json @@ -0,0 +1,7 @@ +{ + "parent": "tfg:block/ash_pile/ash_height14", + "textures": { + "particle": "minecraft:block/red_sand", + "texture": "minecraft:block/red_sand" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height2.json b/kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height2.json new file mode 100644 index 000000000..2404a288d --- /dev/null +++ b/kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height2.json @@ -0,0 +1,7 @@ +{ + "parent": "tfg:block/ash_pile/ash_height2", + "textures": { + "particle": "minecraft:block/red_sand", + "texture": "minecraft:block/red_sand" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height4.json b/kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height4.json new file mode 100644 index 000000000..583f4074b --- /dev/null +++ b/kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height4.json @@ -0,0 +1,7 @@ +{ + "parent": "tfg:block/ash_pile/ash_height4", + "textures": { + "particle": "minecraft:block/red_sand", + "texture": "minecraft:block/red_sand" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height6.json b/kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height6.json new file mode 100644 index 000000000..bab336bf9 --- /dev/null +++ b/kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height6.json @@ -0,0 +1,7 @@ +{ + "parent": "tfg:block/ash_pile/ash_height6", + "textures": { + "particle": "minecraft:block/red_sand", + "texture": "minecraft:block/red_sand" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height8.json b/kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height8.json new file mode 100644 index 000000000..d3c81f3d5 --- /dev/null +++ b/kubejs/assets/tfg/models/block/pile/hematitic_sand/sand_height8.json @@ -0,0 +1,7 @@ +{ + "parent": "tfg:block/ash_pile/ash_height8", + "textures": { + "particle": "minecraft:block/red_sand", + "texture": "minecraft:block/red_sand" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height10.json b/kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height10.json deleted file mode 100644 index 0de7aea87..000000000 --- a/kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height10.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "tfg:block/ash_pile/ash_height10", - "textures": { - "particle": "ad_astra:block/mars_sand", - "texture": "ad_astra:block/mars_sand" - } -} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height12.json b/kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height12.json deleted file mode 100644 index 14d3ac5fb..000000000 --- a/kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height12.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "tfg:block/ash_pile/ash_height12", - "textures": { - "particle": "ad_astra:block/mars_sand", - "texture": "ad_astra:block/mars_sand" - } -} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height14.json b/kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height14.json deleted file mode 100644 index 71aea26fa..000000000 --- a/kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height14.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "tfg:block/ash_pile/ash_height14", - "textures": { - "particle": "ad_astra:block/mars_sand", - "texture": "ad_astra:block/mars_sand" - } -} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height2.json b/kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height2.json deleted file mode 100644 index d4e1c8bcf..000000000 --- a/kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height2.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "tfg:block/ash_pile/ash_height2", - "textures": { - "particle": "ad_astra:block/mars_sand", - "texture": "ad_astra:block/mars_sand" - } -} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height4.json b/kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height4.json deleted file mode 100644 index 050895c4b..000000000 --- a/kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height4.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "tfg:block/ash_pile/ash_height4", - "textures": { - "particle": "ad_astra:block/mars_sand", - "texture": "ad_astra:block/mars_sand" - } -} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height6.json b/kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height6.json deleted file mode 100644 index 6e7d5c6e2..000000000 --- a/kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height6.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "tfg:block/ash_pile/ash_height6", - "textures": { - "particle": "ad_astra:block/mars_sand", - "texture": "ad_astra:block/mars_sand" - } -} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height8.json b/kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height8.json deleted file mode 100644 index 6f6fbf5e5..000000000 --- a/kubejs/assets/tfg/models/block/pile/mars_sand/mars_sand/sand_height8.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "tfg:block/ash_pile/ash_height8", - "textures": { - "particle": "ad_astra:block/mars_sand", - "texture": "ad_astra:block/mars_sand" - } -} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height10.json b/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height10.json new file mode 100644 index 000000000..cc0161991 --- /dev/null +++ b/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height10.json @@ -0,0 +1,7 @@ +{ + "parent": "tfg:block/ash_pile/ash_height10", + "textures": { + "particle": "tfg:block/mars_snow_1", + "texture": "tfg:block/mars_snow_1" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height12.json b/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height12.json new file mode 100644 index 000000000..9b983e389 --- /dev/null +++ b/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height12.json @@ -0,0 +1,7 @@ +{ + "parent": "tfg:block/ash_pile/ash_height12", + "textures": { + "particle": "tfg:block/mars_snow_1", + "texture": "tfg:block/mars_snow_1" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height14.json b/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height14.json new file mode 100644 index 000000000..5d6ff41b6 --- /dev/null +++ b/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height14.json @@ -0,0 +1,7 @@ +{ + "parent": "tfg:block/ash_pile/ash_height14", + "textures": { + "particle": "tfg:block/mars_snow_1", + "texture": "tfg:block/mars_snow_1" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height2a.json b/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height2a.json new file mode 100644 index 000000000..d206b6ed8 --- /dev/null +++ b/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height2a.json @@ -0,0 +1,7 @@ +{ + "parent": "tfg:block/ash_pile/ash_height2", + "textures": { + "particle": "tfg:block/mars_snow_1", + "texture": "tfg:block/mars_snow_1" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height2b.json b/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height2b.json new file mode 100644 index 000000000..db0887a72 --- /dev/null +++ b/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height2b.json @@ -0,0 +1,7 @@ +{ + "parent": "tfg:block/ash_pile/ash_height2", + "textures": { + "particle": "tfg:block/mars_snow_2", + "texture": "tfg:block/mars_snow_2" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height2c.json b/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height2c.json new file mode 100644 index 000000000..e19753aa7 --- /dev/null +++ b/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height2c.json @@ -0,0 +1,7 @@ +{ + "parent": "tfg:block/ash_pile/ash_height2", + "textures": { + "particle": "tfg:block/mars_snow_3", + "texture": "tfg:block/mars_snow_3" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height2d.json b/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height2d.json new file mode 100644 index 000000000..c58d63e03 --- /dev/null +++ b/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height2d.json @@ -0,0 +1,7 @@ +{ + "parent": "tfg:block/ash_pile/ash_height2", + "textures": { + "particle": "tfg:block/mars_snow_4", + "texture": "tfg:block/mars_snow_4" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height4.json b/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height4.json new file mode 100644 index 000000000..fe94ee100 --- /dev/null +++ b/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height4.json @@ -0,0 +1,7 @@ +{ + "parent": "tfg:block/ash_pile/ash_height4", + "textures": { + "particle": "tfg:block/mars_snow_1", + "texture": "tfg:block/mars_snow_1" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height6.json b/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height6.json new file mode 100644 index 000000000..5259c9727 --- /dev/null +++ b/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height6.json @@ -0,0 +1,7 @@ +{ + "parent": "tfg:block/ash_pile/ash_height6", + "textures": { + "particle": "tfg:block/mars_snow_1", + "texture": "tfg:block/mars_snow_1" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height8.json b/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height8.json new file mode 100644 index 000000000..b2f3fda8e --- /dev/null +++ b/kubejs/assets/tfg/models/block/pile/mars_snow/sand_height8.json @@ -0,0 +1,7 @@ +{ + "parent": "tfg:block/ash_pile/ash_height8", + "textures": { + "particle": "tfg:block/mars_snow_1", + "texture": "tfg:block/mars_snow_1" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/item/pile/hematitic_sand.json b/kubejs/assets/tfg/models/item/pile/hematitic_sand.json new file mode 100644 index 000000000..84b6a18ba --- /dev/null +++ b/kubejs/assets/tfg/models/item/pile/hematitic_sand.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/red_sand" +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/item/pile/hematitic_sand_covering.json b/kubejs/assets/tfg/models/item/pile/hematitic_sand_covering.json new file mode 100644 index 000000000..84b6a18ba --- /dev/null +++ b/kubejs/assets/tfg/models/item/pile/hematitic_sand_covering.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/red_sand" +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/item/pile/mars_sand.json b/kubejs/assets/tfg/models/item/pile/mars_sand.json index dbb02a0b1..7d8220476 100644 --- a/kubejs/assets/tfg/models/item/pile/mars_sand.json +++ b/kubejs/assets/tfg/models/item/pile/mars_sand.json @@ -1,3 +1,3 @@ { - "parent": "ad_astra:block/mars_sand" + "parent": "ad_astra:block/mars_sand" } \ No newline at end of file diff --git a/kubejs/assets/tfg/models/item/pile/mars_sand_covering.json b/kubejs/assets/tfg/models/item/pile/mars_sand_covering.json new file mode 100644 index 000000000..dbb02a0b1 --- /dev/null +++ b/kubejs/assets/tfg/models/item/pile/mars_sand_covering.json @@ -0,0 +1,3 @@ +{ + "parent": "ad_astra:block/mars_sand" +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/item/pile/mars_snow_covering.json b/kubejs/assets/tfg/models/item/pile/mars_snow_covering.json new file mode 100644 index 000000000..a47ad0e83 --- /dev/null +++ b/kubejs/assets/tfg/models/item/pile/mars_snow_covering.json @@ -0,0 +1,3 @@ +{ + "parent": "tfg:block/pile/mars_snow" +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/item/pile/venus_sand_covering.json b/kubejs/assets/tfg/models/item/pile/venus_sand_covering.json new file mode 100644 index 000000000..36b263dd9 --- /dev/null +++ b/kubejs/assets/tfg/models/item/pile/venus_sand_covering.json @@ -0,0 +1,3 @@ +{ + "parent": "ad_astra:block/venus_sand" +} \ No newline at end of file diff --git a/kubejs/assets/tfg/particles/dark_mars_wind.json b/kubejs/assets/tfg/particles/dark_mars_wind.json new file mode 100644 index 000000000..d23064460 --- /dev/null +++ b/kubejs/assets/tfg/particles/dark_mars_wind.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "tfg:colored_wind" + ] +} diff --git a/kubejs/assets/tfg/particles/light_mars_wind.json b/kubejs/assets/tfg/particles/light_mars_wind.json new file mode 100644 index 000000000..d23064460 --- /dev/null +++ b/kubejs/assets/tfg/particles/light_mars_wind.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "tfg:colored_wind" + ] +} diff --git a/kubejs/assets/tfg/particles/medium_mars_wind.json b/kubejs/assets/tfg/particles/medium_mars_wind.json new file mode 100644 index 000000000..d23064460 --- /dev/null +++ b/kubejs/assets/tfg/particles/medium_mars_wind.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "tfg:colored_wind" + ] +} diff --git a/kubejs/assets/tfg/textures/particle/colored_wind.png b/kubejs/assets/tfg/textures/particle/colored_wind.png new file mode 100644 index 0000000000000000000000000000000000000000..2761795009c8f98339adf26fd5574090a370293c GIT binary patch literal 519 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQi-V13aCb6$*;-(=u~X z85lGs)=sqbI2<6->K}YmX)0gYghvw=T6M4n3c9aM64aTp&1p5Cn*QHrHD1rI?!^zH z3O=N7eD&bbn$^v#6*&GiSXf$V?(*pTuG%VQXt!fe|L1#_cgp1zOji4tR;w|DZtf{j z(tGx4b<%xprVa%cQ#He2|1`19A7bLafB5)U@7U%&@Bi*(o6>ZWVZMjW@sh(z_Y~&c z+){Gx_mRY~X(Eq`9~CxBsnk8$_2!fG^GS!9&htp${9;o$BSNQiIV@lJ zN3-bUlT{59lNn7{OpvkvA^&II+Q>PxN+vfIF8F?Qo4s4ZzSspM0!@u+g zUax;-`zCyw{Kd_^TaIyI?t@3W7N4v>@RZNs%M$OlCmwZL3nN(WoqsX=(}4%N7xq6p zx3;$LGP{EJ=BRy)e0+@;g;Lj7@3FpMyS@JXmgnD@*Uc^3zk93qaRvqkTTd6q5R2aA z1PRt=nK^c~zy80wyZis+;KLpM#yx)@9%g3?4-a3HHM2nS!^6YuNiv=CAVv0@yxk5a burhQBiL3DHIjm%0U|{fc^>bP0l+XkKmCf+S literal 0 HcmV?d00001 diff --git a/kubejs/server_scripts/ad_astra/tags.js b/kubejs/server_scripts/ad_astra/tags.js index c724fef7d..ea67864e2 100644 --- a/kubejs/server_scripts/ad_astra/tags.js +++ b/kubejs/server_scripts/ad_astra/tags.js @@ -428,6 +428,20 @@ const registerAdAstraBiomeTags = (event) => { event.add('tfg:has_light_sand_particles', 'tfg:mars/rusticus_edge') event.add('tfg:has_light_sand_particles', 'tfg:mars/sangnum_edge') event.add('tfg:has_light_sand_particles', 'tfg:mars/martian_river') + + event.add('tfg:has_mild_dust_storms', 'tfg:mars/martian_mountains') + event.add('tfg:has_mild_dust_storms', 'tfg:mars/martian_river') + event.add('tfg:has_mild_dust_storms', 'tfg:mars/amber_hills') + event.add('tfg:has_mild_dust_storms', 'tfg:mars/rusticus_hills') + event.add('tfg:has_mild_dust_storms', 'tfg:mars/sangnum_hills') + event.add('tfg:has_moderate_dust_storms', 'tfg:mars/amber_plains') + event.add('tfg:has_moderate_dust_storms', 'tfg:mars/amber_edge') + event.add('tfg:has_moderate_dust_storms', 'tfg:mars/rusticus_plains') + event.add('tfg:has_moderate_dust_storms', 'tfg:mars/rusticus_edge') + event.add('tfg:has_moderate_dust_storms', 'tfg:mars/sangnum_plains') + event.add('tfg:has_moderate_dust_storms', 'tfg:mars/sangnum_edge') + event.add('tfg:has_severe_dust_storms', 'tfg:mars/martian_dunes') + event.add('tfg:has_severe_dust_storms', 'tfg:mars/martian_deep_desert') } const registerAdAstraEntityTypeTags = (event) => { diff --git a/kubejs/server_scripts/minecraft/recipes.js b/kubejs/server_scripts/minecraft/recipes.js index 1e94ebd0c..2d1866904 100644 --- a/kubejs/server_scripts/minecraft/recipes.js +++ b/kubejs/server_scripts/minecraft/recipes.js @@ -10,7 +10,7 @@ const registerMinecraftRecipes = (event) => { removeMinecraftRecipes(event) registerMinecraftDyeRecipes(event) - //#region Выход: Земля + //#region Выход: Земля, dirt event.recipes.gtceu.macerator('dirt_from_bio_chaff') .itemInputs('gtceu:bio_chaff') @@ -20,7 +20,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Стекло + //#region Выход: Стекло, glass event.recipes.gtceu.arc_furnace('glass_from_sand') .itemInputs('#forge:sand') @@ -30,12 +30,12 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Добавление + //#region Добавление, copper for (let i = 0; i < global.MINECRAFT_COPPER_BLOCKS_RECIPE_COMPONENTS.length; i++) { let element = global.MINECRAFT_COPPER_BLOCKS_RECIPE_COMPONENTS[i]; - // Создание ржавчины + // Создание ржавчины, oxidation if (i < global.MINECRAFT_COPPER_BLOCKS_RECIPE_COMPONENTS.length / 2 - 1) { let element2 = global.MINECRAFT_COPPER_BLOCKS_RECIPE_COMPONENTS[i + 1] @@ -113,7 +113,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Кремний + //#region Выход: Кремний, flint event.shapeless('minecraft:flint', [ '#tfc:rock/gravel', @@ -133,7 +133,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Шаблон баннера + //#region Выход: Шаблон баннера, banner template event.shapeless('minecraft:flower_banner_pattern', [ 'minecraft:paper', @@ -142,7 +142,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Бумага + //#region Выход: Бумага, paper event.recipes.gtceu.chemical_bath('paper_from_papyrus_distilled') .itemInputs('tfc:papyrus') @@ -167,7 +167,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Сахар + //#region Выход: Сахар, sugar event.recipes.gtceu.centrifuge('sugar_from_sugarcane') .itemInputs('tfc:food/sugarcane') @@ -184,7 +184,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Блок сена + //#region Выход: Блок сена, hay block event.recipes.gtceu.packer('hay_block') .itemInputs('9x tfc:straw') @@ -194,7 +194,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Светильник Джека + //#region Выход: Светильник Джека, jack o' lantern event.recipes.gtceu.canner('jack_o_lantern') .itemInputs('tfc:pumpkin') @@ -204,7 +204,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Светящийся арбуз + //#region Выход: Светящийся арбуз, glistering melon event.shaped('minecraft:glistering_melon_slice', [ 'AAA', @@ -229,7 +229,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Сухая губка + //#region Выход: Сухая губка, dry sponge event.recipes.tfc.heating('minecraft:wet_sponge', 790) .resultItem('minecraft:sponge') @@ -246,7 +246,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Тонированное стекло + //#region Выход: Тонированное стекло, tinted glass event.recipes.gtceu.alloy_smelter('tfg:minecraft/tinted_glass') .itemInputs('minecraft:glass', 'tfc:powder/amethyst') @@ -256,7 +256,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Пустая карта + //#region Выход: Пустая карта, maps event.recipes.gtceu.assembler('map') .itemInputs('8x minecraft:paper', 'firmaciv:firmaciv_compass') @@ -266,7 +266,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Книга + //#region Выход: Книга, books event.shapeless('minecraft:book', [ '#forge:paper', '#forge:paper', '#forge:paper', '#forge:leather', 'tfc:glue' @@ -286,7 +286,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region + //#region Output: name tags event.recipes.gtceu.assembler('tfg:assembler/name_tag') .itemInputs('5x #forge:string', '#forge:paper') @@ -295,7 +295,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Компаратор + //#region Выход: Компаратор, comparator // Компаратор event.shaped('minecraft:comparator', [ @@ -328,6 +328,10 @@ const registerMinecraftRecipes = (event) => { C: '#tfc:rock/smooth' }).id('tfg:shaped/comparator_nether_quartz'); + //#endregion + + //#region Output: redstone lamp + event.replaceInput({ id: 'gtceu:shaped/redstone_lamp' }, 'minecraft:glass_pane', '#forge:glass_panes') event.recipes.gtceu.assembler('redstone_lamp') .itemInputs('1x #forge:glass', '1x minecraft:glowstone', '1x #forge:rods/red_alloy') @@ -337,7 +341,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Рамка + //#region Выход: Рамка, item frame event.recipes.gtceu.assembler('item_frame') .itemInputs('8x #tfc:lumber', '#forge:leather') @@ -347,7 +351,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Свето-рамка + //#region Выход: Свето-рамка, glowing item frame event.shapeless('minecraft:glow_item_frame', [ 'minecraft:item_frame', @@ -362,7 +366,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Картина + //#region Выход: Картина, painting event.recipes.gtceu.assembler('painting') .itemInputs('#tfc:high_quality_cloth', '8x #forge:rods/wood') @@ -373,11 +377,11 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Факел + //#region Выход: Факел, torch - //#region В Верстаке + //#region В Верстаке, workbench recipes - // Из серы + // Из серы, from sulfur event.shaped('2x tfc:dead_torch', [ 'A', 'B' @@ -386,7 +390,7 @@ const registerMinecraftRecipes = (event) => { B: '#tfc:can_be_lit_on_torch' }).id('gtceu:shaped/torch_sulfur') - // Из фосфора + // Из фосфора, from phosphorous event.shaped('6x tfc:dead_torch', [ 'A', 'B' @@ -395,7 +399,7 @@ const registerMinecraftRecipes = (event) => { B: '#tfc:can_be_lit_on_torch' }).id('gtceu:shaped/torch_phosphorus') - // Из пыли кокса + // Из пыли кокса, from coke dust event.shaped('8x tfc:dead_torch', [ 'A', 'B' @@ -404,7 +408,7 @@ const registerMinecraftRecipes = (event) => { B: '#tfc:can_be_lit_on_torch' }).id('gtceu:shaped/torch_coke_dust') - // Из гема кокса + // Из гема кокса, from coke gems event.shaped('8x tfc:dead_torch', [ 'A', 'B' @@ -413,7 +417,7 @@ const registerMinecraftRecipes = (event) => { B: '#tfc:can_be_lit_on_torch' }).id('gtceu:shaped/torch_coke') - // Из пыли угля + // Из пыли угля, from coal dust event.shaped('4x tfc:dead_torch', [ 'A', 'B' @@ -422,7 +426,7 @@ const registerMinecraftRecipes = (event) => { B: '#tfc:can_be_lit_on_torch' }).id('gtceu:shaped/torch_coal_dust') - // Из гема угля + // Из гема угля, from coal event.shaped('4x tfc:dead_torch', [ 'A', 'B' @@ -431,7 +435,7 @@ const registerMinecraftRecipes = (event) => { B: '#tfc:can_be_lit_on_torch' }).id('tfg:crafting/torch_coal') - // Из пыли древесного угля + // Из пыли древесного угля, from charcoal dust event.shaped('4x tfc:dead_torch', [ 'A', 'B' @@ -440,7 +444,7 @@ const registerMinecraftRecipes = (event) => { B: '#tfc:can_be_lit_on_torch' }).id('gtceu:shaped/torch_charcoal_dust') - // Из гема древесного угля + // Из гема древесного угля, from charcoal event.shaped('4x tfc:dead_torch', [ 'A', 'B' @@ -449,7 +453,7 @@ const registerMinecraftRecipes = (event) => { B: '#tfc:can_be_lit_on_torch' }).id('tfg:crafting/torch_charcoal') - // Из резины + // Из резины, from sticky resin event.shaped('3x tfc:dead_torch', [ 'A', 'B' @@ -460,51 +464,51 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region В сборщике + //#region В сборщике, assembler recipes - // Из серы + // Из серы, from sulfur event.recipes.gtceu.assembler('torch_sulfur') .itemInputs('#tfc:can_be_lit_on_torch', 'gtceu:sulfur_dust') .itemOutputs('2x tfc:dead_torch') .duration(100) .EUt(1) - // Из фосфора + // Из фосфора, from phosphorous event.recipes.gtceu.assembler('torch_phosphorus') .itemInputs('#tfc:can_be_lit_on_torch', 'gtceu:phosphorus_dust') .itemOutputs('6x tfc:dead_torch') .duration(100) .EUt(1) - // Из гема кокса + // Из гема коксаm, from coke gems event.recipes.gtceu.assembler('torch_coke_gem') .itemInputs('#tfc:can_be_lit_on_torch', 'gtceu:coke_gem') .itemOutputs('8x tfc:dead_torch') .duration(100) .EUt(1) - // Из пыли кокса + // Из пыли коксаm, from coke dust event.recipes.gtceu.assembler('torch_coke_dust') .itemInputs('#tfc:can_be_lit_on_torch', 'gtceu:coke_dust') .itemOutputs('8x tfc:dead_torch') .duration(100) .EUt(1) - // Из гема ванильного угля + // Из гема ванильного угляm, from coal event.recipes.gtceu.assembler('torch_coal') .itemInputs('#tfc:can_be_lit_on_torch', 'minecraft:coal') .itemOutputs('4x tfc:dead_torch') .duration(100) .EUt(1) - // Из пыли ванильного угля + // Из пыли ванильного угляm, from coal dust event.recipes.gtceu.assembler('torch_coal_dust') .itemInputs('#tfc:can_be_lit_on_torch', 'gtceu:coal_dust') .itemOutputs('4x tfc:dead_torch') .duration(100) .EUt(1) - // Из пыли древесного угля + // Из пыли древесного угляm, from charcoal dust event.recipes.gtceu.assembler('torch_charcoal_dust') .itemInputs('#tfc:can_be_lit_on_torch', 'gtceu:charcoal_dust') .itemOutputs('4x tfc:dead_torch') @@ -514,13 +518,13 @@ const registerMinecraftRecipes = (event) => { //#endregion - // Мертвый факел в обычный + // Мертвый факел в обычный, smelt dead torch event.smelting('tfc:torch', 'tfc:dead_torch') .id('tfg:smelting/dead_torch_to_torch') //#endregion - //#region Выход: Ведро + //#region Выход: Ведро, buckets event.recipes.tfc.welding('minecraft:bucket', 'tfc:metal/bucket/red_steel', 'tfc:metal/bucket/blue_steel', 6) .id('tfg:anvil/vanilla_bucket') @@ -546,7 +550,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Тигель + //#region Выход: Тигель, cauldron event.shaped('minecraft:cauldron', [ 'A A', @@ -566,7 +570,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Воронка + //#region Выход: Воронка, hopper event.shaped('minecraft:hopper', [ 'A A', @@ -588,7 +592,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Поршень (Piston) + //#region Выход: Поршень, piston event.recipes.gtceu.assembler('piston') .itemInputs(ChemicalHelper.get(TagPrefix.rod, GTMaterials.WroughtIron, 1),ChemicalHelper.get(TagPrefix.gearSmall, GTMaterials.Brass, 1) , '3x #tfc:lumber', '4x #forge:cobblestone') @@ -599,7 +603,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Шерсть + //#region Выход: Шерсть, wool event.recipes.gtceu.assembler('wool_from_string') .itemInputs('8x #forge:string') @@ -615,7 +619,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Лук + //#region Выход: Лук, bow event.recipes.gtceu.assembler('bow') .itemInputs('3x #forge:string', '3x #forge:rods/wooden') @@ -625,7 +629,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Наблюдатель + //#region Выход: Наблюдатель, observer event.shaped('minecraft:observer', [ 'AAA', @@ -677,7 +681,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Раздатчик + //#region Выход: Раздатчик, dispenser event.recipes.gtceu.assembler('dispenser') .itemInputs('7x #forge:cobblestone', 'minecraft:redstone', 'minecraft:bow') @@ -699,7 +703,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Выбрасыватель + //#region Выход: Выбрасыватель, dropper event.recipes.gtceu.assembler('dropper') .itemInputs('7x #forge:cobblestone', '2x minecraft:redstone') @@ -720,7 +724,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Рельсы + //#region Выход: Рельсы, rail event.recipes.gtceu.assembler('rail') .itemInputs('6x #forge:rods/wrought_iron', '#forge:rods/wooden') @@ -731,7 +735,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Заряженные рельсы + //#region Выход: Заряженные рельсы, powered rail event.recipes.gtceu.assembler('powered_rail') .itemInputs('6x #forge:rods/gold', '2x #forge:rods/wooden', '#forge:dusts/redstone') @@ -742,7 +746,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Активаторные рельсы + //#region Выход: Активаторные рельсы, activator rail event.recipes.gtceu.assembler('activator_rail') .itemInputs('6x #forge:rods/wrought_iron', '#forge:rods/wooden', 'minecraft:redstone_torch') @@ -753,7 +757,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Нажимные рельсы + //#region Выход: Нажимные рельсы, detector rail event.recipes.gtceu.assembler('detector_rail') .itemInputs('6x #forge:rods/wrought_iron', '#forge:rods/wooden', '#minecraft:stone_pressure_plates') @@ -764,7 +768,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Веревка + //#region Выход: Веревка, lead event.shaped('minecraft:lead', [ ' AA', @@ -786,7 +790,7 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Кирпич + //#region Выход: Кирпич, bricks event.shaped('4x minecraft:bricks', [ 'BAB', @@ -799,9 +803,9 @@ const registerMinecraftRecipes = (event) => { //#endregion - //#region Выход: Элитра + //#region Выход: Элитра, elytra - // Ну и херь я придумал + // Ну и херь я придумал, here's some bullshit i came up with event.recipes.gtceu.assembler('tfg:minecraft/elytra') .itemInputs('16x tfg:polycaprolactam_fabric', '16x #forge:foils/aluminium', '8x tfg:phantom_silk', '4x #forge:rings/aluminium', '2x #forge:rods/long/vanadium_steel', '2x #forge:small_springs/aluminium', '1x #forge:small_gears/aluminium') .circuit(4) @@ -920,7 +924,7 @@ const registerMinecraftRecipes = (event) => { // #endregion - //#region Кожа из кожаных предметов + //#region Кожа из кожаных предметов, leather recycling event.recipes.gtceu.macerator('tfg:leather_from_saddle') .itemInputs('minecraft:saddle') .itemOutputs('minecraft:leather') @@ -975,13 +979,13 @@ const registerMinecraftRecipes = (event) => { .EUt(GTValues.VA[GTValues.ULV]) //#endregion - // Slime + //#region Slime event.smelting('tfc:glue', 'minecraft:slime_ball') .id('tfg:smelting/slime_to_glue') event.smelting('tfc:glue', 'minecraft:magma_cream') .id('tfg:smelting/magma_cream_to_glue') - // Clay + //#region Clay event.shaped('minecraft:clay', [ 'AA', 'AA' @@ -993,7 +997,9 @@ const registerMinecraftRecipes = (event) => { event.shapeless('4x minecraft:clay_ball', ['minecraft:clay']) .id('tfg:shapeless/clay_block_to_balls') - // Mushrooms + //#endregion + + //#region Mushrooms event.shapeless('4x minecraft:red_mushroom', ['minecraft:red_mushroom_block', '#forge:tools/knives']) .id('tfg:shapeless/cut_red_mushroom_block') @@ -1027,8 +1033,9 @@ const registerMinecraftRecipes = (event) => { .duration(200) .EUt(GTValues.VA[GTValues.ULV]) + //#endregion - // Stonecutter + //#region Stonecutter event.shaped('minecraft:stonecutter', [ @@ -1046,8 +1053,9 @@ const registerMinecraftRecipes = (event) => { event.stonecutting('minecraft:smooth_quartz', 'minecraft:quartz_block') event.stonecutting('create:cut_deepslate', 'minecraft:polished_deepslate') + //#endregion - //Glowing Ink Sacs + //#region Glowing Ink Sacs event.recipes.gtceu.chemical_bath('minecraft:glow_inc_sac4') .itemInputs("gtceu:thorium_dust", "4x #forge:dyes/black") @@ -1063,7 +1071,9 @@ const registerMinecraftRecipes = (event) => { .duration(40) .EUt(GTValues.VA[GTValues.MV]) - // Gunpowder + //#endregion + + //#region Gunpowder event.shapeless('4x minecraft:gunpowder', ['#forge:tools/mortars', '2x #forge:dusts/saltpeter', '#forge:dusts/sulfur', '3x #forge:dusts/charcoal']) @@ -1085,7 +1095,10 @@ const registerMinecraftRecipes = (event) => { event.replaceInput({ id: 'minecraft:writable_book' }, 'minecraft:ink_sac', '#forge:dyes/black') - //Pressure Plates + // #endregion + + //#region Pressure Plates + const PRESSURE_PLATES = [ {type: 'bamboo', material: 'minecraft:bamboo_slab'}, {type: 'polished_blackstone', material: 'minecraft:polished_blackstone_slab'}, @@ -1112,7 +1125,10 @@ const registerMinecraftRecipes = (event) => { .EUt(2) }) - // Greenhouse + // #endregion + + //#region Greenhouse + generateGreenHouseRecipe(event, '8x minecraft:bamboo', '#tfc:any_fresh_water', 4000, '64x minecraft:bamboo', 'bamboo', 'minecraft:overworld', 8, '8x minecraft:bamboo', GTValues.VA[GTValues.LV]) @@ -1125,6 +1141,8 @@ const registerMinecraftRecipes = (event) => { '24x minecraft:brown_mushroom', 'brown_mushroom', 'minecraft:the_nether', 8, '4x minecraft:brown_mushroom', GTValues.VA[GTValues.LV]) + // #endregion + // Minecart w/ Furnace event.shapeless('minecraft:furnace_minecart', ['minecraft:water_bucket', 'gtceu:hp_steam_solid_boiler', 'minecraft:minecart']); diff --git a/kubejs/server_scripts/tfg/events.mars.js b/kubejs/server_scripts/tfg/events.mars.js new file mode 100644 index 000000000..d2b5ef2ab --- /dev/null +++ b/kubejs/server_scripts/tfg/events.mars.js @@ -0,0 +1,78 @@ +//"use strict"; + +//const $Vec2 = Java.loadClass("net.minecraft.world.phys.Vec2") + +//ItemEvents.firstLeftClicked('gtceu:long_copper_rod', event => { +// //if (event.getItem().getHoverName().getString() !== "zippity") return; + +// let player = event.player; +// player.sendSystemMessage(event.getItem().getHoverName()); +// let biome = event.getLevel().getBiome(player.blockPosition()); + +// // player.sendSystemMessage("debug stick of dooooom!"); +// let currentWind = TFC.climate.getWindVector(player.level, player.blockPosition()); + +// let tags = Array( +// ResourceLocation.tryParse("tfg:has_light_sand_particles"), +// ResourceLocation.tryParse("tfg:has_medium_sand_particles"), +// ResourceLocation.tryParse("tfg:has_dark_sand_particles") +// ) +// // player.sendSystemMessage(`current biome tags are ${biome.getTagKeys().toString()}`); +// player.sendSystemMessage(biome.tags().map(tag => tag.location()).filter(element => tags.indexOf(element) > -1).toList()); +// let text = `current wind vector is x: ${currentWind.x.toPrecision(2)} z: ${currentWind.y.toPrecision(2)}`; +// player.sendSystemMessage(text); +//}); + +//// scale wind up (down) on (crouch +) left click +//ItemEvents.firstLeftClicked('gtceu:long_tin_rod', event => { +// //if (event.getItem().getHoverName().getString() !== "zippity") return; +// const player = event.getPlayer() + +// const climateManager = global.getMarsClimateController(); +// const wind = climateManager.getWind(); +// const windVec = new $Vec2(wind.x, wind.z); +// const increment = player.isCrouching() ? -0.1 : 0.1; + +// player.sendSystemMessage(`current x: ${windVec.x.toFixed(1)}, z: ${windVec.y.toFixed(1)}`); + +// let scaledVec = windVec.add(increment); +// let newX = 0.0; +// let newY = 0.0; + +// // i can't modify windVec's properties without rhino throwing a shitfit so here have some extra variables +// newX = scaledVec.x +// newY = scaledVec.y + +// if (scaledVec.lengthSquared() >= 1.0) { +// newX = scaledVec.normalized().scale(0.99).x; +// newY = scaledVec.normalized().scale(0.99).y; +// } +// newX = newX <= 0.1 ? 0.1 : newX +// newY = newY <= 0.1 ? 0.1 : newY + +// climateManager.setWind({x: newX, z: newY}) +// player.sendSystemMessage(`new x: ${newX.toFixed(1)}, z: ${newY.toFixed(1)}`); +//}); + +//ItemEvents.firstRightClicked('gtceu:long_tin_rod', event => { +// //if (event.getItem().getHoverName().getString() !== "zippity") return; +// const player = event.getPlayer(); + +// const climateManager = global.getMarsClimateController(); +// const wind = climateManager.getWind(); +// const windVec = new $Vec2(wind.x, wind.z); + +// const initAngle = Math.atan2(windVec.y, windVec.x); // angle to x axis +// let increment = player.isCrouching() ? 15 : -15; +// increment = JavaMath.toRadians(increment) + +// player.sendSystemMessage(`current angle: ${JavaMath.toDegrees(initAngle).toFixed(1)}`); + +// let newX = (windVec.x * JavaMath.cos(increment)) - (windVec.y * JavaMath.sin(increment)) +// let newY = (windVec.x * JavaMath.sin(increment)) + (windVec.y * JavaMath.cos(increment)) + +// player.sendSystemMessage(`new x: ${newX.toFixed(1)}, z: ${newY.toFixed(1)}`); + +// climateManager.setWind({x: newX, z: newY}); +// player.sendSystemMessage(`new angle: ${JavaMath.toDegrees(Math.atan2(newY, newX)).toFixed(1)}`); +//}); \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/tags.js b/kubejs/server_scripts/tfg/tags.js index 7e30a8117..29264dac2 100644 --- a/kubejs/server_scripts/tfg/tags.js +++ b/kubejs/server_scripts/tfg/tags.js @@ -17,6 +17,7 @@ const registerTFGItemTags = (event) => { event.add('tfg:water_breathing_ingredients', 'tfg:rapeseed_product') event.add('tfg:night_vision_ingredients', 'tfg:sunflower_product') + // Actually "layers", can't rename them without screwing with peoples' worlds event.add('c:hidden_from_recipe_viewers', 'tfg:ash_pile') event.add('c:hidden_from_recipe_viewers', 'tfg:pile/black_sand') event.add('c:hidden_from_recipe_viewers', 'tfg:pile/brown_sand') @@ -28,6 +29,13 @@ const registerTFGItemTags = (event) => { event.add('c:hidden_from_recipe_viewers', 'tfg:pile/mars_sand') event.add('c:hidden_from_recipe_viewers', 'tfg:pile/moon_sand') event.add('c:hidden_from_recipe_viewers', 'tfg:pile/venus_sand') + event.add('c:hidden_from_recipe_viewers', 'tfg:pile/hematitic_sand') + + // Actually "piles", the kind that can hide plants inside them + event.add('c:hidden_from_recipe_viewers', 'tfg:pile/mars_sand_covering') + event.add('c:hidden_from_recipe_viewers', 'tfg:pile/venus_sand_covering') + event.add('c:hidden_from_recipe_viewers', 'tfg:pile/hematitic_sand_covering') + event.add('c:hidden_from_recipe_viewers', 'tfg:pile/mars_snow_covering') //temporary hidden items event.add('c:hidden_from_recipe_viewers', 'tfg:geyser_source_small') @@ -1070,6 +1078,8 @@ const registerTFGBlockTags = (event) => { event.add('minecraft:mushroom_grow_block', '#tfc:dirt') event.add('minecraft:mushroom_grow_block', '#tfc:grass') + event.add('minecraft:mushroom_grow_block', '#forge:sand') + event.add('minecraft:mushroom_grow_block', '#forge:gravel') // #endregion event.add('tfg:harvester_harvestable', '#tfc:fruit_tree_leaves') diff --git a/kubejs/startup_scripts/tfg/blocks.js b/kubejs/startup_scripts/tfg/blocks.js index de1a9db78..bb449ff8e 100644 --- a/kubejs/startup_scripts/tfg/blocks.js +++ b/kubejs/startup_scripts/tfg/blocks.js @@ -329,45 +329,6 @@ const registerTFGBlocks = (event) => { // #endregion - // #region Layer blocks - - event.create('tfg:ash_pile', 'tfg:layer_block') - .existingItem('tfc:powder/wood_ash') - .mapColor('color_light_gray') - - event.create('tfg:pile/black_sand', 'tfg:layer_block') - .existingItem('tfc:sand/black') - - event.create('tfg:pile/brown_sand', 'tfg:layer_block') - .existingItem('tfc:sand/brown') - - event.create('tfg:pile/green_sand', 'tfg:layer_block') - .existingItem('tfc:sand/green') - - event.create('tfg:pile/pink_sand', 'tfg:layer_block') - .existingItem('tfc:sand/pink') - - event.create('tfg:pile/red_sand', 'tfg:layer_block') - .existingItem('tfc:sand/red') - - event.create('tfg:pile/white_sand', 'tfg:layer_block') - .existingItem('tfc:sand/white') - - event.create('tfg:pile/yellow_sand', 'tfg:layer_block') - .existingItem('tfc:sand/yellow') - - event.create('tfg:pile/mars_sand', 'tfg:layer_block') - .existingItem('ad_astra:mars_sand') - - event.create('tfg:pile/moon_sand', 'tfg:layer_block') - .existingItem('ad_astra:moon_sand') - - event.create('tfg:pile/venus_sand', 'tfg:layer_block') - .existingItem('ad_astra:venus_sand') - - - // #endregion - // #region Reconstituted Stone event.create(`tfg:rock/stone_wall`, 'wall') diff --git a/kubejs/startup_scripts/tfg/blocks.plants.js b/kubejs/startup_scripts/tfg/blocks.plants.js index 9ebd16834..47208d86b 100644 --- a/kubejs/startup_scripts/tfg/blocks.plants.js +++ b/kubejs/startup_scripts/tfg/blocks.plants.js @@ -229,8 +229,8 @@ const registerTFGCrops = (event) => { dead.tagBlock('minecraft:mineable/hoe') }) - event.create('betterend:chorus_mushroom_wild', 'tfc:wild_crop') - .type('default') + event.create('betterend:chorus_mushroom_wild', 'tfc:wild_crop') + .type('default') .box(2, 0, 2, 14, 4, 14) .translationKey('block.betterend.chorus_mushroom_wild') .soundType('nether_wart') @@ -264,8 +264,8 @@ const registerTFGCrops = (event) => { dead.box(2, 0, 2, 14, 3, 14) }) - event.create('betterend:shadow_berry_wild', 'tfc:wild_crop') - .type('default') + event.create('betterend:shadow_berry_wild', 'tfc:wild_crop') + .type('default') .box(2, 0, 2, 14, 3, 14) .soundType('crop') .seeds('betterend:shadow_berry_seeds') @@ -299,7 +299,7 @@ const registerTFGCrops = (event) => { dead.box(2, 0, 2, 14, 5, 14) }) - event.create('betterend:bolux_mushroom_wild', 'tfc:wild_crop') + event.create('betterend:bolux_mushroom_wild', 'tfc:wild_crop') .box(2, 0, 2, 14, 5, 14) .type('default') .soundType('nether_wart') diff --git a/kubejs/startup_scripts/tfg/register_climates.js b/kubejs/startup_scripts/tfg/register_climates.js index 6328fbdfd..d88c5a1a2 100644 --- a/kubejs/startup_scripts/tfg/register_climates.js +++ b/kubejs/startup_scripts/tfg/register_climates.js @@ -30,6 +30,40 @@ function invLerp(x, y, a) { return (a - x) / (y - x); } +/** + * allows runtime control of wind vector; called every tick + * @returns {Object} singleton manager object + */ +global.getMarsClimateController = function() { + if (!global._MARS_CLIMATE_CONTROLLER) { + console.info("Initializing MARS_CLIMATE_CONTROLLER..."); + global._MARS_CLIMATE_CONTROLLER = { + windX: 0, + windZ: 0, + + getWind: function() { + return {x: this.windX, z: this.windZ}; + }, + + setWind: function(vector) { + const strength = Math.hypot(vector.x, vector.z); + // if (strength > 1.0) throw new RangeError("Vector length > 1"); + this.windX = vector.x; + this.windZ = vector.z; + }, + + createCallbackForBuilder: function(builder) { + var self = this; + return function() { + const wind = self.getWind(); + return builder.vector(wind.x, wind.z); + }; + } + }; + } + return global._MARS_CLIMATE_CONTROLLER; +}; + /** * @param {number} averageTemp Output from calcAverageTemp @@ -172,6 +206,8 @@ TFCEvents.registerClimateModel(event => { builder.setAirFog((level, pos, calendarTicks) => 0) builder.setWaterFog((level, pos, calendarTicks) => 0.1) - builder.setWindVector((level, block, calendarTicks) => builder.vector(0.25, 0.1)) + + const controller = global.getMarsClimateController(); + builder.setWindVector(controller.createCallbackForBuilder(builder)); }) }) \ No newline at end of file From 15185f3bb2a8a3b30ffd163599066225a30a139d Mon Sep 17 00:00:00 2001 From: Pyritie Date: Tue, 7 Oct 2025 18:53:57 +0100 Subject: [PATCH 43/69] fixes https://github.com/TerraFirmaGreg-Team/Modpack-Modern/issues/1976 --- kubejs/server_scripts/create_factory_logistics/recipes.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/kubejs/server_scripts/create_factory_logistics/recipes.js b/kubejs/server_scripts/create_factory_logistics/recipes.js index 029c91d54..d0af4d8ea 100644 --- a/kubejs/server_scripts/create_factory_logistics/recipes.js +++ b/kubejs/server_scripts/create_factory_logistics/recipes.js @@ -3,7 +3,12 @@ function registerCreateFactoryLogisticsRecipes(event) { - event.remove({ mod: 'create_factory_logistics' }) + event.remove({ + not: [ + { id: 'create_factory_logistics:network_link_qualification_create_factory_abstractions_empty' }, + { id: 'create_factory_logistics:network_link_qualification_create_factory_abstractions_item' }, + { id: 'create_factory_logistics:network_link_qualification_create_factory_logistics_fluid' }, + ], mod: 'create_factory_logistics' }) event.recipes.createSequencedAssembly([ From 774a104b77197b4ed753394330254ce753074637 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Tue, 7 Oct 2025 19:19:22 +0100 Subject: [PATCH 44/69] small noise adjustment --- .../density_function/mars/factor.json | 1634 +++++++++-------- 1 file changed, 830 insertions(+), 804 deletions(-) diff --git a/kubejs/data/tfg/worldgen/density_function/mars/factor.json b/kubejs/data/tfg/worldgen/density_function/mars/factor.json index 53028e107..016389e67 100644 --- a/kubejs/data/tfg/worldgen/density_function/mars/factor.json +++ b/kubejs/data/tfg/worldgen/density_function/mars/factor.json @@ -1,806 +1,832 @@ { - "type": "minecraft:flat_cache", - "argument": { - "type": "minecraft:cache_2d", - "argument": { - "type": "minecraft:add", - "argument1": 10.0, - "argument2": { - "type": "minecraft:mul", - "argument1": { - "type": "minecraft:blend_alpha" - }, - "argument2": { - "type": "minecraft:add", - "argument1": -10.0, - "argument2": { - "type": "minecraft:spline", - "spline": { - "coordinate": "tfg:mars/continents", - "points": [ - { - "derivative": 0.0, - "location": -0.19, - "value": 6 - }, - { - "derivative": 0.0, - "location": -0.15, - "value": { - "coordinate": "tfg:mars/erosion", - "points": [ - { - "derivative": 0.0, - "location": -0.6, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.2, - "value": 6.3 - }, - { - "derivative": 0.0, - "location": 0.2, - "value": 6.25 - } - ] - } - }, - { - "derivative": 0.0, - "location": -0.5, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.05, - "value": 6.3 - }, - { - "derivative": 0.0, - "location": 0.05, - "value": 2.67 - } - ] - } - }, - { - "derivative": 0.0, - "location": -0.35, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.2, - "value": 6.3 - }, - { - "derivative": 0.0, - "location": 0.2, - "value": 6.25 - } - ] - } - }, - { - "derivative": 0.0, - "location": -0.25, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.2, - "value": 6.3 - }, - { - "derivative": 0.0, - "location": 0.2, - "value": 6.25 - } - ] - } - }, - { - "derivative": 0.0, - "location": -0.1, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.05, - "value": 2.67 - }, - { - "derivative": 0.0, - "location": 0.05, - "value": 6.3 - } - ] - } - }, - { - "derivative": 0.0, - "location": 0.03, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.2, - "value": 6.3 - }, - { - "derivative": 0.0, - "location": 0.2, - "value": 6.25 - } - ] - } - }, - { - "derivative": 0.0, - "location": 0.35, - "value": 6.25 - }, - { - "derivative": 0.0, - "location": 0.45, - "value": { - "coordinate": "tfg:mars/ridges_folded", - "points": [ - { - "derivative": 0.0, - "location": -0.9, - "value": 6.25 - }, - { - "derivative": 0.0, - "location": -0.69, - "value": 6.0 - } - ] - } - }, - { - "derivative": 0.0, - "location": 0.55, - "value": { - "coordinate": "tfg:mars/ridges_folded", - "points": [ - { - "derivative": 0.0, - "location": -0.9, - "value": 6.25 - }, - { - "derivative": 0.0, - "location": -0.69, - "value": 5.47 - } - ] - } - }, - { - "derivative": 0.0, - "location": 0.62, - "value": 6.25 - } - ] - } - }, - { - "derivative": 0.0, - "location": -0.1, - "value": { - "coordinate": "tfg:mars/erosion", - "points": [ - { - "derivative": 0.0, - "location": -0.6, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.2, - "value": 6.3 - }, - { - "derivative": 0.0, - "location": 0.2, - "value": 5.47 - } - ] - } - }, - { - "derivative": 0.0, - "location": -0.5, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.05, - "value": 6.3 - }, - { - "derivative": 0.0, - "location": 0.05, - "value": 2.67 - } - ] - } - }, - { - "derivative": 0.0, - "location": -0.35, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.2, - "value": 6.3 - }, - { - "derivative": 0.0, - "location": 0.2, - "value": 5.47 - } - ] - } - }, - { - "derivative": 0.0, - "location": -0.25, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.2, - "value": 6.3 - }, - { - "derivative": 0.0, - "location": 0.2, - "value": 5.47 - } - ] - } - }, - { - "derivative": 0.0, - "location": -0.1, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.05, - "value": 2.67 - }, - { - "derivative": 0.0, - "location": 0.05, - "value": 6.3 - } - ] - } - }, - { - "derivative": 0.0, - "location": 0.03, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.2, - "value": 6.3 - }, - { - "derivative": 0.0, - "location": 0.2, - "value": 5.47 - } - ] - } - }, - { - "derivative": 0.0, - "location": 0.35, - "value": 5.47 - }, - { - "derivative": 0.0, - "location": 0.45, - "value": { - "coordinate": "tfg:mars/ridges_folded", - "points": [ - { - "derivative": 0.0, - "location": -0.9, - "value": 5.47 - }, - { - "derivative": 0.0, - "location": -0.69, - "value": 4.47 - } - ] - } - }, - { - "derivative": 0.0, - "location": 0.55, - "value": { - "coordinate": "tfg:mars/ridges_folded", - "points": [ - { - "derivative": 0.0, - "location": -0.9, - "value": 5.47 - }, - { - "derivative": 0.0, - "location": -0.69, - "value": 4.47 - } - ] - } - }, - { - "derivative": 0.0, - "location": 0.62, - "value": 5.47 - } - ] - } - }, - { - "derivative": 0.0, - "location": 0.03, - "value": { - "coordinate": "tfg:mars/erosion", - "points": [ - { - "derivative": 0.0, - "location": -0.6, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.2, - "value": 6.3 - }, - { - "derivative": 0.0, - "location": 0.2, - "value": 5.08 - } - ] - } - }, - { - "derivative": 0.0, - "location": -0.5, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.05, - "value": 6.3 - }, - { - "derivative": 0.0, - "location": 0.05, - "value": 2.67 - } - ] - } - }, - { - "derivative": 0.0, - "location": -0.35, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.2, - "value": 6.3 - }, - { - "derivative": 0.0, - "location": 0.2, - "value": 5.08 - } - ] - } - }, - { - "derivative": 0.0, - "location": -0.25, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.2, - "value": 6.3 - }, - { - "derivative": 0.0, - "location": 0.2, - "value": 5.08 - } - ] - } - }, - { - "derivative": 0.0, - "location": -0.1, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.05, - "value": 2.67 - }, - { - "derivative": 0.0, - "location": 0.05, - "value": 6.3 - } - ] - } - }, - { - "derivative": 0.0, - "location": 0.03, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.2, - "value": 6.3 - }, - { - "derivative": 0.0, - "location": 0.2, - "value": 5.08 - } - ] - } - }, - { - "derivative": 0.0, - "location": 0.35, - "value": 5.08 - }, - { - "derivative": 0.0, - "location": 0.45, - "value": { - "coordinate": "tfg:mars/ridges_folded", - "points": [ - { - "derivative": 0.0, - "location": -0.9, - "value": 5.08 - }, - { - "derivative": 0.0, - "location": -0.69, - "value": 4.08 - } - ] - } - }, - { - "derivative": 0.0, - "location": 0.55, - "value": { - "coordinate": "tfg:mars/ridges_folded", - "points": [ - { - "derivative": 0.0, - "location": -0.9, - "value": 5.08 - }, - { - "derivative": 0.0, - "location": -0.69, - "value": 4.08 - } - ] - } - }, - { - "derivative": 0.0, - "location": 0.62, - "value": 5.08 - } - ] - } - }, - { - "derivative": 0.0, - "location": 0.06, - "value": { - "coordinate": "tfg:mars/erosion", - "points": [ - { - "derivative": 0.0, - "location": -0.6, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.2, - "value": 6.3 - }, - { - "derivative": 0.0, - "location": 0.2, - "value": 4.69 - } - ] - } - }, - { - "derivative": 0.0, - "location": -0.5, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.05, - "value": 6.3 - }, - { - "derivative": 0.0, - "location": 0.05, - "value": 2.67 - } - ] - } - }, - { - "derivative": 0.0, - "location": -0.35, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.2, - "value": 6.3 - }, - { - "derivative": 0.0, - "location": 0.2, - "value": 4.69 - } - ] - } - }, - { - "derivative": 0.0, - "location": -0.25, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.2, - "value": 6.3 - }, - { - "derivative": 0.0, - "location": 0.2, - "value": 4.69 - } - ] - } - }, - { - "derivative": 0.0, - "location": -0.1, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.05, - "value": 2.67 - }, - { - "derivative": 0.0, - "location": 0.05, - "value": 6.3 - } - ] - } - }, - { - "derivative": 0.0, - "location": 0.03, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.2, - "value": 6.3 - }, - { - "derivative": 0.0, - "location": 0.2, - "value": 4.69 - } - ] - } - }, - { - "derivative": 0.0, - "location": 0.05, - "value": { - "coordinate": "tfg:mars/ridges_folded", - "points": [ - { - "derivative": 0.0, - "location": 0.45, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.2, - "value": 6.3 - }, - { - "derivative": 0.0, - "location": 0.2, - "value": 4.69 - } - ] - } - }, - { - "derivative": 0.0, - "location": 0.7, - "value": 2.56 - } - ] - } - }, - { - "derivative": 0.0, - "location": 0.4, - "value": { - "coordinate": "tfg:mars/ridges_folded", - "points": [ - { - "derivative": 0.0, - "location": 0.45, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.2, - "value": 6.3 - }, - { - "derivative": 0.0, - "location": 0.2, - "value": 4.69 - } - ] - } - }, - { - "derivative": 0.0, - "location": 0.7, - "value": 2.56 - } - ] - } - }, - { - "derivative": 0.0, - "location": 0.45, - "value": { - "coordinate": "tfg:mars/ridges_folded", - "points": [ - { - "derivative": 0.0, - "location": -0.7, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.2, - "value": 6.3 - }, - { - "derivative": 0.0, - "location": 0.2, - "value": 4.69 - } - ] - } - }, - { - "derivative": 0.0, - "location": -0.15, - "value": 3.37 - } - ] - } - }, - { - "derivative": 0.0, - "location": 0.55, - "value": { - "coordinate": "tfg:mars/ridges_folded", - "points": [ - { - "derivative": 0.0, - "location": -0.7, - "value": { - "coordinate": "tfg:mars/ridges", - "points": [ - { - "derivative": 0.0, - "location": -0.2, - "value": 6.3 - }, - { - "derivative": 0.0, - "location": 0.2, - "value": 4.69 - } - ] - } - }, - { - "derivative": 0.0, - "location": -0.15, - "value": 3.37 - } - ] - } - }, - { - "derivative": 0.0, - "location": 0.58, - "value": 4.69 - } - ] - } - } - ] - } - } - } - } - } - } + "type": "minecraft:flat_cache", + "argument": { + "type": "minecraft:cache_2d", + "argument": { + "type": "minecraft:add", + "argument1": 10.0, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:blend_alpha" + }, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": "tfg:mars/continents", + "points": [ + { + "derivative": 0.0, + "location": -1.1, + "value": 0 + }, + { + "derivative": 0.0, + "location": -0.26, + "value": 0 + }, + { + "derivative": 0.0, + "location": -0.15, + "value": 1 + } + ] + } + }, + "argument2": { + "type": "minecraft:add", + "argument1": -10.0, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": "tfg:mars/continents", + "points": [ + { + "derivative": 0.0, + "location": -0.19, + "value": 6 + }, + { + "derivative": 0.0, + "location": -0.15, + "value": { + "coordinate": "tfg:mars/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.6, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 6.25 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.5, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 2.67 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 6.25 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.25, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 6.25 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 2.67 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 6.3 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.03, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 6.25 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.35, + "value": 6.25 + }, + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "tfg:mars/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.9, + "value": 6.25 + }, + { + "derivative": 0.0, + "location": -0.69, + "value": 6.0 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.55, + "value": { + "coordinate": "tfg:mars/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.9, + "value": 6.25 + }, + { + "derivative": 0.0, + "location": -0.69, + "value": 5.47 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.62, + "value": 6.25 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "tfg:mars/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.6, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 5.47 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.5, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 2.67 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 5.47 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.25, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 5.47 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 2.67 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 6.3 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.03, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 5.47 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.35, + "value": 5.47 + }, + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "tfg:mars/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.9, + "value": 5.47 + }, + { + "derivative": 0.0, + "location": -0.69, + "value": 4.47 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.55, + "value": { + "coordinate": "tfg:mars/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.9, + "value": 5.47 + }, + { + "derivative": 0.0, + "location": -0.69, + "value": 4.47 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.62, + "value": 5.47 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.03, + "value": { + "coordinate": "tfg:mars/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.6, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 5.08 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.5, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 2.67 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 5.08 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.25, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 5.08 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 2.67 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 6.3 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.03, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 5.08 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.35, + "value": 5.08 + }, + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "tfg:mars/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.9, + "value": 5.08 + }, + { + "derivative": 0.0, + "location": -0.69, + "value": 4.08 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.55, + "value": { + "coordinate": "tfg:mars/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.9, + "value": 5.08 + }, + { + "derivative": 0.0, + "location": -0.69, + "value": 4.08 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.62, + "value": 5.08 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.06, + "value": { + "coordinate": "tfg:mars/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.6, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 4.69 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.5, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 2.67 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 4.69 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.25, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 4.69 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 2.67 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 6.3 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.03, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 4.69 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.05, + "value": { + "coordinate": "tfg:mars/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 4.69 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.7, + "value": 2.56 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.4, + "value": { + "coordinate": "tfg:mars/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 4.69 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.7, + "value": 2.56 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "tfg:mars/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.7, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 4.69 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.15, + "value": 3.37 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.55, + "value": { + "coordinate": "tfg:mars/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.7, + "value": { + "coordinate": "tfg:mars/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 4.69 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.15, + "value": 3.37 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.58, + "value": 4.69 + } + ] + } + } + ] + } + } + } + } + } + } + } } \ No newline at end of file From f6e49354880d9380a59849f152c79f5dbcfdedbe Mon Sep 17 00:00:00 2001 From: The Compendium System / The Atlassian Collective <91026414+Xaligal@users.noreply.github.com> Date: Tue, 7 Oct 2025 20:22:41 +0200 Subject: [PATCH 45/69] 144mb Chocolate Melting (#1977) * oops I might've hit space and made linux upset mb gang * > metal bar > look inside > not a metal bar * sns is a mess huh * sns is a mess huh (fixed sns and sophisticated backpack stuff) * hot potato (pun intended) * made bulbkin pie not allergic to firmalife ovens * flax cutter recipe * chocolate is now 144mb yay * accident * no more chocolate dupe --------- Co-authored-by: Redeix --- kubejs/server_scripts/firmalife/recipes.js | 24 ++++++++++++++++++++++ kubejs/server_scripts/tfg/recipes.food.js | 3 +-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/kubejs/server_scripts/firmalife/recipes.js b/kubejs/server_scripts/firmalife/recipes.js index e832d76b3..6c8238308 100644 --- a/kubejs/server_scripts/firmalife/recipes.js +++ b/kubejs/server_scripts/firmalife/recipes.js @@ -761,4 +761,28 @@ const registerFirmaLifeRecipes = (event) => { Fluid.of('tfcchannelcasting:milk_chocolate', 100)) .outputItem(TFC.isp.of('firmalife:food/chocolate_ice_cream').copyFood()) .id('tfg:mixing_bowl/chocolate_ice_cream') + + // Chocolate Melting + const setChocolateHeating = (variant) => { + const itemID = `firmalife:food/${variant}_chocolate` + const fluidID = `tfcchannelcasting:${variant}_chocolate` + const recipeID = `firmalife:heating/${variant}_chocolate` + const castingRecipeID = `tfcchannelcasting:casting/${variant}_chocolate` + + event.remove({ id: recipeID }) + event.remove({ id: castingRecipeID }) + event.remove({ id: `${castingRecipeID}_fire_ingot` }) + event.remove({ type: 'tfc:heating', ingredient: { item: itemID } }) + + event.recipes.tfc.heating(itemID, 200) + .resultFluid(Fluid.of(fluidID, 144)) + .id(recipeID) + + event.recipes.tfc.casting(`${itemID}`, 'tfc:ceramic/ingot_mold', TFC.fluidStackIngredient(`${fluidID}`, 144), 0) + event.recipes.tfc.casting(`${itemID}`, 'tfc:ceramic/fire_ingot_mold', TFC.fluidStackIngredient(`${fluidID}`, 144), 0) + } + + setChocolateHeating('white') + setChocolateHeating('milk') + setChocolateHeating('dark') } diff --git a/kubejs/server_scripts/tfg/recipes.food.js b/kubejs/server_scripts/tfg/recipes.food.js index 4848474cd..70a078e20 100644 --- a/kubejs/server_scripts/tfg/recipes.food.js +++ b/kubejs/server_scripts/tfg/recipes.food.js @@ -285,7 +285,7 @@ function registerTFGFoodRecipes(event) { }) }) - + // Milks processorRecipe(`white_chocolate_blend`, 300, 16, { @@ -912,7 +912,6 @@ function registerTFGFoodRecipes(event) { itemOutputs: ["species:birtday_cake"] }) - // These don't need the ISP handling, they're just here to keep all the food recipes together event.recipes.gtceu.mixer('tfg:tfc/olive_oil_water') From 4a736b3ca9f461384fc2de9fc958cbc26a8b4e89 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Tue, 7 Oct 2025 22:16:37 +0100 Subject: [PATCH 46/69] better limiters for moonbase structures --- .../template_pool/moon/moonbase_ends.json | 39 ++++++++----- .../template_pool/moon/moonbase_hubs.json | 55 ++++++++++++------- 2 files changed, 59 insertions(+), 35 deletions(-) diff --git a/kubejs/data/tfg/worldgen/template_pool/moon/moonbase_ends.json b/kubejs/data/tfg/worldgen/template_pool/moon/moonbase_ends.json index a8536e036..0ad215434 100644 --- a/kubejs/data/tfg/worldgen/template_pool/moon/moonbase_ends.json +++ b/kubejs/data/tfg/worldgen/template_pool/moon/moonbase_ends.json @@ -39,30 +39,39 @@ } }, { - "weight": 50, + "weight": 100, "element": { - "location": "tfg:moon/moonbase/end/moonbase_dish", - "processors": "minecraft:empty", - "projection": "rigid", - "element_type": "minecraft:single_pool_element" + "element_type": "lithostitched:limited", + "delegate": { + "location": "tfg:moon/moonbase/end/moonbase_dish", + "processors": "minecraft:empty", + "projection": "rigid" + }, + "limit": 1 } }, { - "weight": 30, + "weight": 100, "element": { - "location": "tfg:moon/moonbase/end/moonbase_launch_pad", - "processors": "minecraft:empty", - "projection": "rigid", - "element_type": "minecraft:single_pool_element" + "element_type": "lithostitched:limited", + "delegate": { + "location": "tfg:moon/moonbase/end/moonbase_launch_pad", + "processors": "minecraft:empty", + "projection": "rigid" + }, + "limit": 1 } }, { - "weight": 50, + "weight": 100, "element": { - "location": "tfg:moon/moonbase/end/moonbase_solar", - "processors": "minecraft:empty", - "projection": "rigid", - "element_type": "minecraft:single_pool_element" + "element_type": "lithostitched:limited", + "delegate": { + "location": "tfg:moon/moonbase/end/moonbase_solar", + "processors": "minecraft:empty", + "projection": "rigid" + }, + "limit": 1 } } ] diff --git a/kubejs/data/tfg/worldgen/template_pool/moon/moonbase_hubs.json b/kubejs/data/tfg/worldgen/template_pool/moon/moonbase_hubs.json index 24112c60a..1b4c0c7a4 100644 --- a/kubejs/data/tfg/worldgen/template_pool/moon/moonbase_hubs.json +++ b/kubejs/data/tfg/worldgen/template_pool/moon/moonbase_hubs.json @@ -59,46 +59,61 @@ { "weight": 100, "element": { - "location": "tfg:moon/moonbase/hub/moonbase_farm1", - "processors": "minecraft:empty", - "projection": "rigid", - "element_type": "minecraft:single_pool_element" + "element_type": "lithostitched:limited", + "delegate": { + "location": "tfg:moon/moonbase/hub/moonbase_farm1", + "processors": "minecraft:empty", + "projection": "rigid" + }, + "limit": 2 } }, { "weight": 100, "element": { - "location": "tfg:moon/moonbase/hub/moonbase_beds", - "processors": "minecraft:empty", - "projection": "rigid", - "element_type": "minecraft:single_pool_element" + "element_type": "lithostitched:limited", + "delegate": { + "location": "tfg:moon/moonbase/hub/moonbase_beds", + "processors": "minecraft:empty", + "projection": "rigid" + }, + "limit": 1 } }, { "weight": 100, "element": { - "location": "tfg:moon/moonbase/hub/moonbase_library", - "processors": "minecraft:empty", - "projection": "rigid", - "element_type": "minecraft:single_pool_element" + "element_type": "lithostitched:limited", + "delegate": { + "location": "tfg:moon/moonbase/hub/moonbase_library", + "processors": "minecraft:empty", + "projection": "rigid" + }, + "limit": 1 } }, { "weight": 100, "element": { - "location": "tfg:moon/moonbase/hub/moonbase_pantry", - "processors": "minecraft:empty", - "projection": "rigid", - "element_type": "minecraft:single_pool_element" + "element_type": "lithostitched:limited", + "delegate": { + "location": "tfg:moon/moonbase/hub/moonbase_pantry", + "processors": "minecraft:empty", + "projection": "rigid" + }, + "limit": 1 } }, { "weight": 100, "element": { - "location": "tfg:moon/moonbase/hub/moonbase_workshop", - "processors": "minecraft:empty", - "projection": "rigid", - "element_type": "minecraft:single_pool_element" + "element_type": "lithostitched:limited", + "delegate": { + "location": "tfg:moon/moonbase/hub/moonbase_workshop", + "processors": "minecraft:empty", + "projection": "rigid" + }, + "limit": 1 } } ] From eb03fe5999081a07e1532110cb9cd4d22b317a0b Mon Sep 17 00:00:00 2001 From: Pyritie Date: Tue, 7 Oct 2025 22:26:32 +0100 Subject: [PATCH 47/69] whoops --- .../data/tfg/worldgen/template_pool/moon/moonbase_ends.json | 3 +++ .../data/tfg/worldgen/template_pool/moon/moonbase_hubs.json | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/kubejs/data/tfg/worldgen/template_pool/moon/moonbase_ends.json b/kubejs/data/tfg/worldgen/template_pool/moon/moonbase_ends.json index 0ad215434..fa2c96912 100644 --- a/kubejs/data/tfg/worldgen/template_pool/moon/moonbase_ends.json +++ b/kubejs/data/tfg/worldgen/template_pool/moon/moonbase_ends.json @@ -43,6 +43,7 @@ "element": { "element_type": "lithostitched:limited", "delegate": { + "element_type": "minecraft:single_pool_element", "location": "tfg:moon/moonbase/end/moonbase_dish", "processors": "minecraft:empty", "projection": "rigid" @@ -55,6 +56,7 @@ "element": { "element_type": "lithostitched:limited", "delegate": { + "element_type": "minecraft:single_pool_element", "location": "tfg:moon/moonbase/end/moonbase_launch_pad", "processors": "minecraft:empty", "projection": "rigid" @@ -67,6 +69,7 @@ "element": { "element_type": "lithostitched:limited", "delegate": { + "element_type": "minecraft:single_pool_element", "location": "tfg:moon/moonbase/end/moonbase_solar", "processors": "minecraft:empty", "projection": "rigid" diff --git a/kubejs/data/tfg/worldgen/template_pool/moon/moonbase_hubs.json b/kubejs/data/tfg/worldgen/template_pool/moon/moonbase_hubs.json index 1b4c0c7a4..5db8aa6f8 100644 --- a/kubejs/data/tfg/worldgen/template_pool/moon/moonbase_hubs.json +++ b/kubejs/data/tfg/worldgen/template_pool/moon/moonbase_hubs.json @@ -61,6 +61,7 @@ "element": { "element_type": "lithostitched:limited", "delegate": { + "element_type": "minecraft:single_pool_element", "location": "tfg:moon/moonbase/hub/moonbase_farm1", "processors": "minecraft:empty", "projection": "rigid" @@ -73,6 +74,7 @@ "element": { "element_type": "lithostitched:limited", "delegate": { + "element_type": "minecraft:single_pool_element", "location": "tfg:moon/moonbase/hub/moonbase_beds", "processors": "minecraft:empty", "projection": "rigid" @@ -85,6 +87,7 @@ "element": { "element_type": "lithostitched:limited", "delegate": { + "element_type": "minecraft:single_pool_element", "location": "tfg:moon/moonbase/hub/moonbase_library", "processors": "minecraft:empty", "projection": "rigid" @@ -97,6 +100,7 @@ "element": { "element_type": "lithostitched:limited", "delegate": { + "element_type": "minecraft:single_pool_element", "location": "tfg:moon/moonbase/hub/moonbase_pantry", "processors": "minecraft:empty", "projection": "rigid" @@ -109,6 +113,7 @@ "element": { "element_type": "lithostitched:limited", "delegate": { + "element_type": "minecraft:single_pool_element", "location": "tfg:moon/moonbase/hub/moonbase_workshop", "processors": "minecraft:empty", "projection": "rigid" From fd182dfddd06835d6bca2867bf929e61c439e997 Mon Sep 17 00:00:00 2001 From: TomPlop Date: Tue, 7 Oct 2025 17:43:16 -0400 Subject: [PATCH 48/69] First fixes for Mars Fission (#1978) * First fixes for Mars Fission * Fix ShapeInfo --- kubejs/server_scripts/tfg/recipes.nuclear.js | 12 ++++----- kubejs/startup_scripts/gtceu/machines.js | 28 +++++++++++--------- 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/kubejs/server_scripts/tfg/recipes.nuclear.js b/kubejs/server_scripts/tfg/recipes.nuclear.js index dec2f01bd..805130453 100644 --- a/kubejs/server_scripts/tfg/recipes.nuclear.js +++ b/kubejs/server_scripts/tfg/recipes.nuclear.js @@ -19,7 +19,7 @@ function registerTFGNuclearRecipes(event) { .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.assembler('tfg:fuel_holder') - .itemInputs('gtceu:ev_machine_hull', '4x gtceu:uranium_triplatinum_single_wire', '4x gtceu:ev_robot_arm', '4x gtceu:titanium_gear', '2x #gtceu:circuits/ev') + .itemInputs('gtceu:ev_machine_hull', '4x gtceu:ev_robot_arm', '4x gtceu:titanium_gear', '2x #gtceu:circuits/ev') .itemOutputs('deafission:fuel_holder') .duration(20*30) .circuit(1) @@ -36,7 +36,7 @@ function registerTFGNuclearRecipes(event) { .EUt(GTValues.V[GTValues.HV]) event.recipes.gtceu.nuclear_fuel_factory('tfg:uranium_pellet') - .inputFluids(Fluid.of('gtceu:uranium_waste', 10000)) + .inputFluids(Fluid.of('gtceu:radioactive_waste', 10000)) .itemInputs('16x #forge:rods/uranium_235', '32x #forge:rods/uranium', '32x #forge:rods/uranium', '32x #forge:rods/uranium', '32x #forge:rods/uranium', 'tfg:empty_rod') .itemOutputs('tfg:uranium_rod') @@ -122,7 +122,7 @@ function registerTFGNuclearRecipes(event) { event.recipes.gtceu.gas_pressurizer('nuclear_residue') .inputFluids(Fluid.of('gtceu:martian_sludge', 1000)) .inputFluids(Fluid.of('gtceu:formamide', 1000)) - .inputFluids(Fluid.of('gtceu:radioactive_waste', 1000)) + .inputFluids(Fluid.of('gtceu:uranium_waste', 1000)) .outputFluids(Fluid.of('gtceu:radon', 1000)) .itemOutputs('#forge:dusts/nuclear_residue') .duration(20*10) @@ -212,7 +212,7 @@ function registerTFGNuclearRecipes(event) { event.recipes.deafission.fission_reactor_fuel('tfg:thorium') .itemInputs(Item.of('tfg:thorium_rod')) - .outputFluids(Fluid.of('gtceu:uranium_waste', 2500)) + .outputFluids(Fluid.of('gtceu:radioactive_waste', 2500)) .itemOutputs(Item.of('tfg:empty_rod')) .dimension('ad_astra:mars') .hideDuration(true); @@ -239,7 +239,7 @@ function registerTFGNuclearRecipes(event) { event.recipes.deafission.fission_reactor_fuel('tfg:uranium') .itemInputs(Item.of('tfg:uranium_rod')) - .outputFluids(Fluid.of('gtceu:radioactive_waste', 50000)) + .outputFluids(Fluid.of('gtceu:uranium_waste', 50000)) .itemOutputs(Item.of('tfg:empty_rod')) .hideDuration(true); @@ -264,7 +264,7 @@ function registerTFGNuclearRecipes(event) { event.recipes.deafission.fission_reactor_fuel('tfg:plutonium') .itemInputs(Item.of('tfg:plutonium_rod')) - .outputFluids(Fluid.of('gtceu:tritiated_water', 5000)) + .outputFluids(Fluid.of('gtceu:tritiated_water', 5184)) .itemOutputs(Item.of('tfg:empty_rod')) .hideDuration(true); diff --git a/kubejs/startup_scripts/gtceu/machines.js b/kubejs/startup_scripts/gtceu/machines.js index 950bb1cbf..05a7ccb17 100644 --- a/kubejs/startup_scripts/gtceu/machines.js +++ b/kubejs/startup_scripts/gtceu/machines.js @@ -387,11 +387,11 @@ const registerGTCEuMachines = (event) => { .appearanceBlock(() => Block.getBlock('gtceu:nonconducting_casing')) .pattern(definition => FactoryBlockPattern.start() .aisle(' ' ,'A A', 'AAAAA', 'ACCCA', 'AACAA', ' AAA ') - .aisle(' G ' ,' ', 'BBBBB', 'B B', 'BB BB', ' BFB ') - .aisle(' GGG ' ,' ', 'ADDDA', 'D D', 'A A', ' BFB ') - .aisle('GGGGG' ,' ', 'ADDDA', 'D D', 'A A', ' BFB ') - .aisle(' GGG ' ,' ', 'ADDDA', 'D D', 'A A', ' BFB ') - .aisle(' G ' ,' ', 'BBBBB', 'B B', 'BB BB', ' BFB ') + .aisle(' G ' ,' ', 'BBBBB', 'B###B', 'BB#BB', ' BFB ') + .aisle(' GGG ' ,' ', 'ADDDA', 'D###D', 'A###A', ' BFB ') + .aisle('GGGGG' ,' ', 'ADDDA', 'D###D', 'A###A', ' BFB ') + .aisle(' GGG ' ,' ', 'ADDDA', 'D###D', 'A###A', ' BFB ') + .aisle(' G ' ,' ', 'BBBBB', 'B###B', 'BB#BB', ' BFB ') .aisle(' ' ,'A A', 'AAAAA', 'ACXCA', 'AACAA', ' AAA ') .where('X', Predicates.controller(Predicates.blocks(definition.get()))) .where('A', Predicates.blocks('gtceu:secure_maceration_casing')) @@ -422,11 +422,11 @@ const registerGTCEuMachines = (event) => { .appearanceBlock(() => Block.getBlock('gtceu:nonconducting_casing')) .pattern(definition => FactoryBlockPattern.start() .aisle('A A', 'AAAAA', 'ACCCA', 'AAEAA', ' AAA ') - .aisle(' ', 'BBBBB', 'B B', 'BB BB', ' BFB ') - .aisle(' ', 'ADDDA', 'D D', 'A A', ' BFB ') - .aisle(' ', 'ADDDA', 'D D', 'A A', ' BFB ') - .aisle(' ', 'ADDDA', 'D D', 'A A', ' BFB ') - .aisle(' ', 'BBBBB', 'B B', 'BB BB', ' BFB ') + .aisle(' ', 'BBBBB', 'B###B', 'BB#BB', ' BFB ') + .aisle(' ', 'ADDDA', 'D###D', 'A###A', ' BFB ') + .aisle(' ', 'ADDDA', 'D###D', 'A###A', ' BFB ') + .aisle(' ', 'ADDDA', 'D###D', 'A###A', ' BFB ') + .aisle(' ', 'BBBBB', 'B###B', 'BB#BB', ' BFB ') .aisle('A A', 'AAAAA', 'ACXCA', 'AACAA', ' AAA ') .where('X', Predicates.controller(Predicates.blocks(definition.get()))) .where('A', Predicates.blocks('tfg:casings/machine_casing_iron_desh')) @@ -459,7 +459,7 @@ const registerGTCEuMachines = (event) => { .aisle('BAAAAAAAA', 'B#######D', 'BBBBBBBAA', ' BCCCB ', ' BBBBB ' ) .aisle('AAAAAAAAA', 'A#######D', 'BB###BBAA', ' C###C ', ' BHHHB ' ) .aisle('BEBEBEAAA', 'BEBEBEA#D', 'BBBBBBBAA', ' BCCCB ', ' BBBBB ' ) - .aisle('A#####AFA', 'A#####AXA', 'AAAAAAAFA', ' ', ' ' ) + .aisle('A AFA', 'A AXA', 'AAAAAAAFA', ' ', ' ' ) .where('X', Predicates.controller(Predicates.blocks(definition.get()))) .where('A', Predicates.blocks('tfg:casings/machine_casing_mars') .or(Predicates.abilities(PartAbility.INPUT_ENERGY).setMinGlobalLimited(1).setMaxGlobalLimited(2))) @@ -467,7 +467,8 @@ const registerGTCEuMachines = (event) => { .where('C', Predicates.blocks('tfg:casings/machine_casing_vacuum_engine_intake')) .where('D', Predicates.blocks('gtceu:heat_vent')) .where('E', Predicates.blocks('tfg:casings/machine_casing_mars') - .or(Predicates.abilities(PartAbility.IMPORT_FLUIDS).setMaxGlobalLimited(6))) + .or(Predicates.abilities(PartAbility.IMPORT_FLUIDS).setMaxGlobalLimited(6)) + .or(Predicates.abilities(PartAbility.IMPORT_ITEMS).setMaxGlobalLimited(6))) .where('F', Predicates.blocks('tfg:casings/machine_casing_mars') .or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1))) .where('H', Predicates.blocks('tfg:casings/machine_casing_mars') @@ -481,7 +482,7 @@ const registerGTCEuMachines = (event) => { .aisle('KKAAAAAAA', 'AAAAAAAAA', 'AAAAAAAAA', ' ', ' ' ) .aisle('BAAAAAAAA', 'B D', 'BBBBBBBAA', ' BCCCB ', ' BBBBB ' ) .aisle('AAAAAAAAA', 'A D', 'BB BBAA', ' C C ', ' BIAHB ' ) - .aisle('BEBEBEAAA', 'BEBEBEA#D', 'BBBBBBBAA', ' BCCCB ', ' BBBBB ' ) + .aisle('BEBEBEAAA', 'BEBFBEA#D', 'BBBBBBBAA', ' BCCCB ', ' BBBBB ' ) .aisle('A AMA', 'A AXA', 'AAAAAAAAA', ' ', ' ' ) .where('X', controller, Direction.SOUTH) .where('A', Block.getBlock('tfg:casings/machine_casing_mars')) @@ -489,6 +490,7 @@ const registerGTCEuMachines = (event) => { .where('C', Block.getBlock('tfg:casings/machine_casing_vacuum_engine_intake')) .where('D', Block.getBlock('gtceu:heat_vent')) .where('E', GTMachines.FLUID_IMPORT_HATCH[GTValues.EV], Direction.SOUTH) + .where('F', GTMachines.ITEM_IMPORT_BUS[GTValues.EV], Direction.SOUTH) .where('H', GTMachines.ITEM_EXPORT_BUS[GTValues.EV], Direction.UP) .where('I', GTMachines.FLUID_EXPORT_HATCH[GTValues.EV], Direction.UP) .where('M', GTMachines.AUTO_MAINTENANCE_HATCH, Direction.SOUTH) From 6a007a03798d9b9caf87796e979b5dfad7c08078 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Tue, 7 Oct 2025 22:48:32 +0100 Subject: [PATCH 49/69] forgot to remove this logging --- kubejs/server_scripts/tfg/entities.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/kubejs/server_scripts/tfg/entities.js b/kubejs/server_scripts/tfg/entities.js index 3aefbec38..9317a2899 100644 --- a/kubejs/server_scripts/tfg/entities.js +++ b/kubejs/server_scripts/tfg/entities.js @@ -29,8 +29,6 @@ EntityEvents.spawned((event) => { let { entity, entity: {type} } = event; - console.log(`entity: ${entity}, type: ${type}`) - let newHP = NEW_MOB_MAX_HP[type] ?? 0; if (newHP === 0) return; From 33f30889450f20deb2ab5fb36e77a0f70d7e1607 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Tue, 7 Oct 2025 22:55:32 +0100 Subject: [PATCH 50/69] missing mineable tags for sand piles --- kubejs/server_scripts/tfg/tags.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/kubejs/server_scripts/tfg/tags.js b/kubejs/server_scripts/tfg/tags.js index 29264dac2..60079a8c0 100644 --- a/kubejs/server_scripts/tfg/tags.js +++ b/kubejs/server_scripts/tfg/tags.js @@ -1120,6 +1120,22 @@ const registerTFGBlockTags = (event) => { event.add('tfcambiental:cold_stuff', 'tfg:dry_ice') event.add('minecraft:ice', 'tfg:mars_ice') event.add('minecraft:ice', 'tfg:dry_ice') + + event.add('minecraft:mineable/shovel', 'tfg:ash_pile') + event.add('minecraft:mineable/shovel', 'tfg:pile/black_sand') + event.add('minecraft:mineable/shovel', 'tfg:pile/white_sand') + event.add('minecraft:mineable/shovel', 'tfg:pile/brown_sand') + event.add('minecraft:mineable/shovel', 'tfg:pile/red_sand') + event.add('minecraft:mineable/shovel', 'tfg:pile/yellow_sand') + event.add('minecraft:mineable/shovel', 'tfg:pile/pink_sand') + event.add('minecraft:mineable/shovel', 'tfg:pile/green_sand') + event.add('minecraft:mineable/shovel', 'tfg:pile/moon_sand') + event.add('minecraft:mineable/shovel', 'tfg:pile/mars_sand') + event.add('minecraft:mineable/shovel', 'tfg:pile/venus_sand') + event.add('minecraft:mineable/shovel', 'tfg:pile/hematitic_sand') + event.add('minecraft:mineable/shovel', 'tfg:pile/mars_sand_covering') + event.add('minecraft:mineable/shovel', 'tfg:pile/venus_sand_covering') + event.add('minecraft:mineable/shovel', 'tfg:pile/hematitic_sand_covering') } //#endregion From 7b568cc3453b9ba801b9e2a6544755d1c70b63b9 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Tue, 7 Oct 2025 22:55:40 +0100 Subject: [PATCH 51/69] sand piles in the mars desert --- .../biome/mars/martian_deep_desert.json | 9 +-- .../worldgen/biome/mars/martian_dunes.json | 5 +- .../mars/surface/pile_hematitic_sand.json | 55 +++++++++++++++++++ .../mars/surface/pile_mars_sand.json | 26 ++++----- .../mars/surface/pile_red_sand.json | 26 ++++----- .../mars/surface/pile_hematitic_sand.json | 19 +++++++ .../mars/surface/pile_mars_sand.json | 2 +- .../mars/surface/pile_red_sand.json | 2 +- .../surface/pile_venus_sand_no_water.json | 2 +- 9 files changed, 110 insertions(+), 36 deletions(-) create mode 100644 kubejs/data/tfg/worldgen/configured_feature/mars/surface/pile_hematitic_sand.json create mode 100644 kubejs/data/tfg/worldgen/placed_feature/mars/surface/pile_hematitic_sand.json diff --git a/kubejs/data/tfg/worldgen/biome/mars/martian_deep_desert.json b/kubejs/data/tfg/worldgen/biome/mars/martian_deep_desert.json index 62a67e208..31f6e1288 100644 --- a/kubejs/data/tfg/worldgen/biome/mars/martian_deep_desert.json +++ b/kubejs/data/tfg/worldgen/biome/mars/martian_deep_desert.json @@ -34,11 +34,12 @@ "#tfg:mars_underground_decoration", [ "tfg:mars/surface/small_skull_and_bones", - "tfg:mars/surface/large_skull_and_bones" - ], - [ - + "tfg:mars/surface/large_skull_and_bones", + "tfg:mars/surface/pile_hematitic_sand", + "tfg:mars/surface/pile_red_sand", + "tfg:mars/surface/pile_mars_sand" ], + [], [ "tfg:glow_lichen", "tfg:mars/terrain/mars_poles" diff --git a/kubejs/data/tfg/worldgen/biome/mars/martian_dunes.json b/kubejs/data/tfg/worldgen/biome/mars/martian_dunes.json index 2359b826f..d51fb49f4 100644 --- a/kubejs/data/tfg/worldgen/biome/mars/martian_dunes.json +++ b/kubejs/data/tfg/worldgen/biome/mars/martian_dunes.json @@ -35,7 +35,10 @@ "tfc:raw_boulder_small_patch", "tfc:cobble_boulder_small_patch", "tfg:mars/surface/small_skull_and_bones", - "tfg:mars/surface/large_skull_and_bones" + "tfg:mars/surface/large_skull_and_bones", + "tfg:mars/surface/pile_hematitic_sand", + "tfg:mars/surface/pile_red_sand", + "tfg:mars/surface/pile_mars_sand" ], [ "tfg:mars/surface/selagine" diff --git a/kubejs/data/tfg/worldgen/configured_feature/mars/surface/pile_hematitic_sand.json b/kubejs/data/tfg/worldgen/configured_feature/mars/surface/pile_hematitic_sand.json new file mode 100644 index 000000000..ee38d552f --- /dev/null +++ b/kubejs/data/tfg/worldgen/configured_feature/mars/surface/pile_hematitic_sand.json @@ -0,0 +1,55 @@ +{ + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:randomized_int_state_provider", + "property": "layers", + "values": { + "type": "minecraft:biased_to_bottom", + "value": { + "min_inclusive": 1, + "max_inclusive": 2 + } + }, + "source": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "tfg:pile/hematitic_sand" + } + } + } + } + }, + "placement": [ + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + { + "type": "minecraft:matching_block_tag", + "offset": [ 0, -1, 0 ], + "tag": "forge:sand" + } + ] + } + } + ] + }, + "tries": 8, + "xz_spread": 16, + "y_spread": 2 + } +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/configured_feature/mars/surface/pile_mars_sand.json b/kubejs/data/tfg/worldgen/configured_feature/mars/surface/pile_mars_sand.json index 3453d126b..b6611d55d 100644 --- a/kubejs/data/tfg/worldgen/configured_feature/mars/surface/pile_mars_sand.json +++ b/kubejs/data/tfg/worldgen/configured_feature/mars/surface/pile_mars_sand.json @@ -32,20 +32,18 @@ { "type": "minecraft:block_predicate_filter", "predicate": { - "type": "minecraft:matching_blocks", - "blocks": "minecraft:air" - } - }, - { - "type": "minecraft:block_predicate_filter", - "predicate": { - "type": "minecraft:has_sturdy_face", - "offset": [ - 0, - -1, - 0 - ], - "direction": "up" + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + { + "type": "minecraft:matching_block_tag", + "offset": [ 0, -1, 0 ], + "tag": "forge:sand" + } + ] } } ] diff --git a/kubejs/data/tfg/worldgen/configured_feature/mars/surface/pile_red_sand.json b/kubejs/data/tfg/worldgen/configured_feature/mars/surface/pile_red_sand.json index f3c1886a7..77e33b33f 100644 --- a/kubejs/data/tfg/worldgen/configured_feature/mars/surface/pile_red_sand.json +++ b/kubejs/data/tfg/worldgen/configured_feature/mars/surface/pile_red_sand.json @@ -32,20 +32,18 @@ { "type": "minecraft:block_predicate_filter", "predicate": { - "type": "minecraft:matching_blocks", - "blocks": "minecraft:air" - } - }, - { - "type": "minecraft:block_predicate_filter", - "predicate": { - "type": "minecraft:has_sturdy_face", - "offset": [ - 0, - -1, - 0 - ], - "direction": "up" + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + { + "type": "minecraft:matching_block_tag", + "offset": [ 0, -1, 0 ], + "tag": "forge:sand" + } + ] } } ] diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/pile_hematitic_sand.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/pile_hematitic_sand.json new file mode 100644 index 000000000..443b76c8b --- /dev/null +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/pile_hematitic_sand.json @@ -0,0 +1,19 @@ +{ + "feature": "tfg:mars/surface/pile_hematitic_sand", + "placement": [ + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:biome" + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + } + ] +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/pile_mars_sand.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/pile_mars_sand.json index a670b969c..13823153d 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/pile_mars_sand.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/pile_mars_sand.json @@ -3,7 +3,7 @@ "placement": [ { "type": "minecraft:count", - "count": 3 + "count": 2 }, { "type": "minecraft:in_square" diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/pile_red_sand.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/pile_red_sand.json index 96619fec1..30581cfa8 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/pile_red_sand.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/pile_red_sand.json @@ -3,7 +3,7 @@ "placement": [ { "type": "minecraft:count", - "count": 3 + "count": 2 }, { "type": "minecraft:in_square" diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/pile_venus_sand_no_water.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/pile_venus_sand_no_water.json index 820123395..16f3faf50 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/pile_venus_sand_no_water.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/pile_venus_sand_no_water.json @@ -3,7 +3,7 @@ "placement": [ { "type": "minecraft:count", - "count": 3 + "count": 2 }, { "type": "minecraft:in_square" From 75a2726d613ce2e119eb7b4c6d947e7b5d450d62 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Tue, 7 Oct 2025 23:18:16 +0100 Subject: [PATCH 52/69] quicksand nerfs --- .../worldgen/configured_feature/mars/terrain/red_quicksand.json | 1 + kubejs/server_scripts/wan_ancient_beasts/tags.js | 2 ++ 2 files changed, 3 insertions(+) diff --git a/kubejs/data/tfg/worldgen/configured_feature/mars/terrain/red_quicksand.json b/kubejs/data/tfg/worldgen/configured_feature/mars/terrain/red_quicksand.json index 1c7c6642b..ecfbdaa8e 100644 --- a/kubejs/data/tfg/worldgen/configured_feature/mars/terrain/red_quicksand.json +++ b/kubejs/data/tfg/worldgen/configured_feature/mars/terrain/red_quicksand.json @@ -8,6 +8,7 @@ "min_radius": 2, "max_radius": 3, "height": 1, + "integrity": 0.75, "states": [ { "replace": "minecraft:red_sand", diff --git a/kubejs/server_scripts/wan_ancient_beasts/tags.js b/kubejs/server_scripts/wan_ancient_beasts/tags.js index e729229b6..faba038ac 100644 --- a/kubejs/server_scripts/wan_ancient_beasts/tags.js +++ b/kubejs/server_scripts/wan_ancient_beasts/tags.js @@ -9,6 +9,8 @@ const registerWABBlockTags = (event) => { // don't put sand layers on these, otherwise they'll fall through event.add('minecraft:snow_layer_cannot_survive_on', 'wan_ancient_beasts:quick_sand') event.add('minecraft:snow_layer_cannot_survive_on', 'wan_ancient_beasts:quick_red_sand') + event.add('minecraft:mineable/shovel', 'wan_ancient_beasts:quick_sand') + event.add('minecraft:mineable/shovel', 'wan_ancient_beasts:quick_red_sand') } const registerWABItemTags = (event) => { From 2befba5fd58ba658fa05f7e55759e613effdf7fe Mon Sep 17 00:00:00 2001 From: Pyritie Date: Tue, 7 Oct 2025 23:38:48 +0100 Subject: [PATCH 53/69] adds wind sounds to mars/venus/europa --- .../basic/dimensions/ad_astra.json | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 kubejs/assets/ambientsounds/basic/dimensions/ad_astra.json diff --git a/kubejs/assets/ambientsounds/basic/dimensions/ad_astra.json b/kubejs/assets/ambientsounds/basic/dimensions/ad_astra.json new file mode 100644 index 000000000..026482ab9 --- /dev/null +++ b/kubejs/assets/ambientsounds/basic/dimensions/ad_astra.json @@ -0,0 +1,23 @@ +{ + "name": "ad_astra", + "dimension-names": [ + "mars", + "venus", + "glacio" + ], + "biome-selector": { + "always": false + }, + "regions": [ + { + "name": "wind", + "volume": 0.3, + "bad-regions": [ + "cave-ambience" + ], + "sound-collections": [ + "wind" + ] + } + ] +} From f92ded749e52335e723dd61d8afc83c74c61dfe2 Mon Sep 17 00:00:00 2001 From: TomPlop Date: Wed, 8 Oct 2025 14:46:19 -0400 Subject: [PATCH 54/69] Fix Rod and nerf dry ice (#1982) Signed-off-by: TomPlop --- kubejs/server_scripts/tfg/recipes.nuclear.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/kubejs/server_scripts/tfg/recipes.nuclear.js b/kubejs/server_scripts/tfg/recipes.nuclear.js index 805130453..f32a1dc05 100644 --- a/kubejs/server_scripts/tfg/recipes.nuclear.js +++ b/kubejs/server_scripts/tfg/recipes.nuclear.js @@ -59,7 +59,7 @@ function registerTFGNuclearRecipes(event) { .EUt(GTValues.V[GTValues.IV]) */ event.recipes.gtceu.lathe('tfg:empty_rod') - .itemInputs('gtceu:cobalt_large_restrictive_item_pipe', 'tfg:empty_rod') + .itemInputs('gtceu:cobalt_large_restrictive_item_pipe') .itemOutputs('tfg:empty_rod') .duration(20*15) .EUt(GTValues.VA[GTValues.HV]) @@ -293,8 +293,8 @@ function registerTFGNuclearRecipes(event) { event.recipes.deafission.fission_reactor_processing('tfg:dry_ice') .itemInputs('tfg:dry_ice') .blastFurnaceTemp(100) - .addData("heat_per_tick", 10) - .duration(20*1) + .addData("heat_per_tick", 5) + .duration(10) event.recipes.deafission.fission_reactor_processing('tfg:refrigerant_pellet') .itemInputs('tfg:refrigerant_pellet') @@ -684,4 +684,4 @@ function registerTFGNuclearRecipes(event) { */ -} \ No newline at end of file +} From 6c09147e3a2199ea8148516cac41edd58a94f256 Mon Sep 17 00:00:00 2001 From: The Compendium System / The Atlassian Collective <91026414+Xaligal@users.noreply.github.com> Date: Wed, 8 Oct 2025 20:49:41 +0200 Subject: [PATCH 55/69] Soups in the Food Processors (#1980) * oops I might've hit space and made linux upset mb gang * > metal bar > look inside > not a metal bar * sns is a mess huh * sns is a mess huh (fixed sns and sophisticated backpack stuff) * hot potato (pun intended) * made bulbkin pie not allergic to firmalife ovens * soup --------- Co-authored-by: Redeix --- kubejs/server_scripts/tfg/recipes.food.js | 106 ++++++++++++++++++++++ 1 file changed, 106 insertions(+) diff --git a/kubejs/server_scripts/tfg/recipes.food.js b/kubejs/server_scripts/tfg/recipes.food.js index 70a078e20..566c5f7a2 100644 --- a/kubejs/server_scripts/tfg/recipes.food.js +++ b/kubejs/server_scripts/tfg/recipes.food.js @@ -912,6 +912,112 @@ function registerTFGFoodRecipes(event) { itemOutputs: ["species:birtday_cake"] }) + // Soup + processorRecipe("grain_soup", 300, 8, { + circuit: 20, + itemInputs: [ + '3x #tfc:bowls', + '2x #tfc:foods/grains', + '3x #tfc:foods/usable_in_soup' + ], + fluidInputs: [Fluid.of('minecraft:water', 100)], + itemOutputs: ['3x tfc:food/grain_soup'], + itemOutputProvider: TFC.isp.of('3x tfc:food/grain_soup').meal( + (food) => food.hunger(5).water(1).saturation(1).decayModifier(4.5), + [ + (portion) => portion + .ingredient(Ingredient.of('#tfc:foods/usable_in_soup')) + .nutrientModifier(1) + .saturationModifier(0.8) + .waterModifier(0.8) + ] + ) + }) + + processorRecipe("fruit_soup", 200, 8, { + circuit: 21, + itemInputs: [ + '3x #tfc:bowls', + '2x #tfc:foods/fruits', + '3x #tfc:foods/usable_in_soup' + ], + fluidInputs: [Fluid.of('minecraft:water', 100)], + itemOutputs: ['3x tfc:food/fruit_soup'], + itemOutputProvider: TFC.isp.of('3x tfc:food/fruit_soup').meal( + (food) => food.hunger(5).water(1).saturation(1).decayModifier(4.5), + [ + (portion) => portion + .ingredient(Ingredient.of('#tfc:foods/usable_in_soup')) + .nutrientModifier(1) + .saturationModifier(0.8) + .waterModifier(0.8) + ] + ) + }) + + processorRecipe("vegetables_soup", 200, 8, { + circuit: 22, + itemInputs: [ + '3x #tfc:bowls', + '2x #tfc:foods/vegetables', + '3x #tfc:foods/usable_in_soup' + ], + fluidInputs: [Fluid.of('minecraft:water', 100)], + itemOutputs: ['3x tfc:food/vegetables_soup'], + itemOutputProvider: TFC.isp.of('3x tfc:food/vegetables_soup').meal( + (food) => food.hunger(5).water(1).saturation(1).decayModifier(4.5), + [ + (portion) => portion + .ingredient(Ingredient.of('#tfc:foods/usable_in_soup')) + .nutrientModifier(1) + .saturationModifier(0.8) + .waterModifier(0.8) + ] + ) + }) + + processorRecipe("protein_soup", 200, 8, { + circuit: 23, + itemInputs: [ + '3x #tfc:bowls', + '2x #tfc:foods/meats', + '3x #tfc:foods/usable_in_soup' + ], + fluidInputs: [Fluid.of('minecraft:water', 100)], + itemOutputs: ['3x tfc:food/protein_soup'], + itemOutputProvider: TFC.isp.of('3x tfc:food/protein_soup').meal( + (food) => food.hunger(5).water(1).saturation(1).decayModifier(4.5), + [ + (portion) => portion + .ingredient(Ingredient.of('#tfc:foods/usable_in_soup')) + .nutrientModifier(1) + .saturationModifier(0.8) + .waterModifier(0.8) + ] + ) + }) + + processorRecipe("dairy_soup", 200, 8, { + circuit: 24, + itemInputs: [ + '3x #tfc:bowls', + '2x #tfc:foods/dairy', + '3x #tfc:foods/usable_in_soup' + ], + fluidInputs: [Fluid.of('minecraft:water', 100)], + itemOutputs: ['3x tfc:food/dairy_soup'], + itemOutputProvider: TFC.isp.of('3x tfc:food/dairy_soup').meal( + (food) => food.hunger(5).water(1).saturation(1).decayModifier(4.5), + [ + (portion) => portion + .ingredient(Ingredient.of('#tfc:foods/usable_in_soup')) + .nutrientModifier(1) + .saturationModifier(0.8) + .waterModifier(0.8) + ] + ) + }) + // 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') From 2a95c8fc488883ecac669d20b8c43520bcb7ac12 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Wed, 8 Oct 2025 21:12:23 +0100 Subject: [PATCH 56/69] langs --- kubejs/assets/tfg/lang/en_us.json | 27 ++++++++++++--------------- kubejs/assets/tfg/lang/fr_fr.json | 2 +- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/kubejs/assets/tfg/lang/en_us.json b/kubejs/assets/tfg/lang/en_us.json index d1dfead03..f2bc6a98a 100644 --- a/kubejs/assets/tfg/lang/en_us.json +++ b/kubejs/assets/tfg/lang/en_us.json @@ -422,17 +422,11 @@ "block.tfg.pile.pink_sand": "Pink Sand", "block.tfg.pile.moon_sand": "Lunar Sand", "block.tfg.pile.mars_sand": "Argillite Sand", + "block.tfg.pile.mars_sand_covering": "Argillite Sand", "block.tfg.pile.venus_sand": "Trachyte Sand", - "block.tfg.layer.white_sand": "White Sand", - "block.tfg.layer.black_sand": "Black Sand", - "block.tfg.layer.brown_sand": "Brown Sand", - "block.tfg.layer.red_sand": "Red Sand", - "block.tfg.layer.yellow_sand": "Yellow Sand", - "block.tfg.layer.green_sand": "Green Sand", - "block.tfg.layer.pink_sand": "Pink Sand", - "block.tfg.layer.moon_sand": "Lunar Sand", - "block.tfg.layer.mars_sand": "Argillite Sand", - "block.tfg.layer.venus_sand": "Trachyte Sand", + "block.tfg.pile.venus_sand_covering": "Trachyte Sand", + "block.tfg.pile.hematitic_sand": "Hematitic Sand", + "block.tfg.pile.hematitic_sand_covering": "Hematitic Sand", "block.tfg.lunar_roots": "Lunar Lightblooms", "block.tfg.lunar_sprouts": "Lunar Lightgrass", "block.tfg.lunar_chorus_plant": "Chorus Plant", @@ -1340,7 +1334,7 @@ "tfg.tooltip.component.refrigerant_pellet": "Can be used as an input in the Fission Reactor to cool it down, requires a Material Holder", "tfg.tooltip.component.nuclear_turbine_1": "§eBase Production:§r 4096 EU/t", "tfg.tooltip.component.nuclear_turbine_2": "Each Rotor Holder above §5EV§r §7adds§r 10% efficiency and multiplies EU/t by 2.", - "tfg.machine.food_refrigerator_power_usage": "§7Consumes %s EU/t while active to keep your food fresh.", + "tfg.machine.food_refrigerator_power_usage": "§7Consumes§r %s EU/t §7while active to keep your food fresh.§r", "tfc.jei.flint_knapping": "Flint Knapping", "tfc.jei.straw_knapping": "Straw Knapping", "tfc.recipe.barrel.tfg.barrel.dyeing.decorative_vase.black": "Dyeing", @@ -1908,7 +1902,7 @@ "quests.gregtech_energy.fission_reactor.desc.4": "In addition to the 5 &dFuel Holders&r, you can install &oup to&r 20 &dComponents&r. The reactors from some other manufacturers require very exact positioning, but our reactor is smarter. The &6stats&r of all installed ones will simply be &6summed up&r, and that's it!\n\nCurrently, the reactor is able to utilize them in three&8*&r different ways:\n&e1)&r Max temperature &7(insulator)&r\n&e2)&r Efficiency &7(fuel lasts longer)&r\n&e3)&r Throttle &7(slows down the reactions)&r\n\n&8*)&r It's possible your local galaxy doesn't have the necessary materials for all of them. We estimate to find materials only for the first category.\n\nBut be wary. Rising the &ctemperature&r comes with a &cdownside&r.", "quests.gregtech_energy.fission_reactor.desc.5": "While a &chotter&r reactor makes coolants and processing &cfaster&r, it is also more demaning for the fuel rods. Each fuel rod has limited durability, and this scales linearly with the temperature.\n\nAs you need more fuel rods for the higher heat, this in effect makes the damage scale &nquadratically&r. If you want to heat coolants the most efficiently, you'll use low temperature. But if you want faster fissile conversion, use as high a heat as the insulation allows.", "quests.gregtech_energy.fission_reactor.desc.6": "You are finally ready to take a look at the various recipes involving the reactor; check where the &dcontroller&r is used, and you'll find three &eEMI&r tabs:\n\n&e1)&r Fission Reactor &7(fuels and compatible coolants)&r\n&e2)&r Fission Heat Processing &7(think: EBF)&r\n&e3)&r Fission\nProducts &7(when the fuel runs out)&r\n&e4)&r The multiblock preview\n\nVarious &afuels&r are only compatible with certain &9coolant fluids&r, so pay attention to this. And once a fuel rod is completely used up, statistical certainty can safely state it having &btra&dns&rf&dor&bmed&r into new elements.\n\nThe processing recipes on the other hand can run regardless of the fuel, as long as the temperature level is high enough.", - "quests.gregtech_energy.fission_reactor.desc.7": "The simplified math is as follows: with sufficient coolant fluid and a &c100%&r heat fuel rod, the reactor will reach a temperature of about &c200&r. This can also be referred to as heat level, or just heat. Having &dtwo&r &c100%&r fuel cells is equal to &done&r &c200%&r cell, and both lead to about &c400&r heat.\n\nThis is because the fuel rod generates &6200 HU/t&r (heat units). Coolant fluids are able to extract &61 HU/t&r per &c1&r degree of heat.\n\nIf the reactor's max heat is &c190&r, a &c100%&r fuel cell will overheat it. You can increase this with the components, or alternatively &dactive coolants&r via the processing system. Each recipe has a heat impact.", + "quests.gregtech_energy.fission_reactor.desc.7": "The simplified math is as follows: with sufficient coolant fluid and a &c100%%&r heat fuel rod, the reactor will reach a temperature of about &c200&r. This can also be referred to as heat level, or just heat. Having &dtwo&r &c100%%&r fuel cells is equal to &done&r &c200%%&r cell, and both lead to about &c400&r heat.\n\nThis is because the fuel rod generates &6200 HU/t&r (heat units). Coolant fluids are able to extract &61 HU/t&r per &c1&r degree of heat.\n\nIf the reactor's max heat is &c190&r, a &c100%%&r fuel cell will overheat it. You can increase this with the components, or alternatively &dactive coolants&r via the processing system. Each recipe has a heat impact.", "quests.gregtech_energy.fission_reactor.desc.8": "For example, if the recipe's temperature is &c100&r, and impact &6-10 HU/t&r, it is able to cool down the reactor by &619 HU/t &rat &c190&r degrees.\n\nThat makes it possible to run the reactor with lower max heat, and not overheat! If the temperature is below &c100&r, it won't run at all - just like EBF recipes have limits.\n\nThis is all &ewe&r can teach you for now. Come back later to see if there was been any advancements, &efellow nuclear engineer&r!", "quests.high_voltage": "&6HV&r - High Voltage", "quests.high_voltage.subtitle": "Upgrade your power, learn about the Cleanroom, make more chemicals, and get ready for Space", @@ -2866,7 +2860,7 @@ "quests.space_survival.subtitle": "The one place that hasn't been corrupted by capitalism... Space!", "quests.space_survival.preparations.title": "Pre-Launch Preparations", "quests.space_survival.preparations.subtitle": "Make sure you're ready!", - "quests.space_survival.preparations.desc": "Eager to launch into the final frontier? We totally get the enthusiasm but you can't just hurl yourself into space and hope to survive! ^9Preparation&r is key to survival, or you'll just end up back in the Stone Age banging rocks together for a few seconds before suffocating to death.\n\nMake sure you have at least the following:\n- A Space Suit and a full drum of breathable gas\n- A Rocket with another full drum of spare Fuel\n- A Launch Pad so you can return\n- Plenty of food and water\n- A weapon and shield in case the Moon's haunted...", + "quests.space_survival.preparations.desc": "Eager to launch into the final frontier? We totally get the enthusiasm but you can't just hurl yourself into space and hope to survive! &9Preparation&r is key to survival, or you'll just end up back in the Stone Age banging rocks together for a few seconds before suffocating to death.\n\nMake sure you have at least the following:\n- A Space Suit and a full drum of breathable gas\n- A Rocket with another full drum of spare Fuel\n- A Launch Pad so you can return\n- Plenty of food and water\n- A weapon and shield in case the Moon's haunted...", "quests.space_survival.food.title": "Space Food", "quests.space_survival.food.subtitle": "Long lasting food for long journeys", "quests.space_survival.food.desc": "Consider bringing along some &dSpace Food&r for the journey ahead! It's simple to make and comes with a long shelf life. &9Freeze-Dried Fruit&r are a tasty snack, &bMeal Bags&r can hold any normal kind of food you'd have on Earth, and there's also &aCalorie Paste&r for a nutritionally complete but gross meal. You can reuse the Foil Packs when you're finished, too!", @@ -3064,7 +3058,10 @@ "quests.steam_age.helve_hammer.desc": "Does crafting all those plates for a Bloomery look tedious? The &3Helve Hammer&r will automatically (but slowly) flatten double ingots into plates for you. You'll still have to do the welding yourself though. Simply place an anvil directly under the hammer and throw your double ingots onto it, then right-click the hammer to get your plates out.\n\nHigher tier anvils will also require fewer hits to make plates from the previous tier.", "quests.steam_age.water_wheel.title": "Water Wheels", "quests.steam_age.water_wheel.subtitle": "Hope you set up your base near a river!", - "quests.steam_age.water_wheel.desc": "Water wheels provide much more power than the Animal Crank, at the expense of requiring flowing water. You don't have the ability to move water sources yet, so you'll need to find some sort of river or waterfall to power these.\n\nYou can get treated wood by soaking any planks in creosote from your Coke Oven.", + "quests.steam_age.water_wheel.desc": "Water wheels provide much more power than the Animal Crank, at the expense of requiring flowing water. You don't have the ability to move water sources yet, so you'll need to find a river to power these. Oceans and Lakes can also provide a little power, but if you're far inland, you're better off looking at building a windmill.\n\nYou can get treated wood by soaking any planks in creosote from your Coke Oven.", + "quests.steam_age.large_water_wheel.title": "Large Water Wheels", + "quests.steam_age.large_water_wheel.subtitle": "Larger, stronger, more expensive", + "quests.steam_age.large_water_wheel.desc": "Large water wheels provide four times as much power as the small water wheels, but still require flowing water from a river. Oceans and Lakes can also provide a little power, but if you're far inland, you're better off looking at building a windmill or steam engine.\n\nYou can get treated wood by soaking any planks in creosote from your Coke Oven.", "quests.steam_age.windmill.title": "Windmills", "quests.steam_age.windmill.subtitle": "Pairs well with tulips", "quests.steam_age.windmill.desc": "If you aren't near flowing water, a windmill is another effective option for a better source of power. Bigger windmills provide more stress units and faster speeds.\n\nYou can get treated wood by soaking any planks in creosote from your Coke Oven.", @@ -4140,4 +4137,4 @@ "quests.tfg_tips.tools_tips.harvest_basket.subtitle": "For competitive pie bakers.", "quests.tfg_tips.tools_tips.harvest_basket.task": "Any #tfg:harvester", "quests.tfg_tips.tools_tips.harvest_basket.desc": "&l&2Harvest Baskets&r&r are a new tool made just for &5TFG&r! These baskets can be used to harvest whole trees and bushes of fruit in one right-click! A regular &6Harvest Basket&r has a base durability of &n128&r. But an &3Aluminium Harvest Basket&r takes no damage on use." -} +} \ No newline at end of file diff --git a/kubejs/assets/tfg/lang/fr_fr.json b/kubejs/assets/tfg/lang/fr_fr.json index 1a0002ebc..2fbece932 100644 --- a/kubejs/assets/tfg/lang/fr_fr.json +++ b/kubejs/assets/tfg/lang/fr_fr.json @@ -2781,7 +2781,7 @@ "quests.space_survival.subtitle": "The one place that hasn't been corrupted by capitalism... Space!", "quests.space_survival.preparations.title": "Pre-Launch Preparations", "quests.space_survival.preparations.subtitle": "Make sure you're ready!", - "quests.space_survival.preparations.desc": "Eager to launch into the final frontier? We totally get the enthusiasm but you can't just hurl yourself into space and hope to survive! ^9Preparation&r is key to survival, or you'll just end up back in the Stone Age banging rocks together for a few seconds before suffocating to death.\n\nMake sure you have at least the following:\n- A Space Suit and a full drum of breathable gas\n- A Rocket with another full drum of spare Fuel\n- A Launch Pad so you can return\n- Plenty of food and water\n- A weapon and shield in case the Moon's haunted...", + "quests.space_survival.preparations.desc": "Eager to launch into the final frontier? We totally get the enthusiasm but you can't just hurl yourself into space and hope to survive! &9Preparation&r is key to survival, or you'll just end up back in the Stone Age banging rocks together for a few seconds before suffocating to death.\n\nMake sure you have at least the following:\n- A Space Suit and a full drum of breathable gas\n- A Rocket with another full drum of spare Fuel\n- A Launch Pad so you can return\n- Plenty of food and water\n- A weapon and shield in case the Moon's haunted...", "quests.space_survival.food.title": "Space Food", "quests.space_survival.food.subtitle": "Long lasting food for long journeys", "quests.space_survival.food.desc": "Consider bringing along some &dSpace Food&r for the journey ahead! It's simple to make and comes with a long shelf life. &9Freeze-Dried Fruit&r are a tasty snack, &bMeal Bags&r can hold any normal kind of food you'd have on Earth, and there's also &aCalorie Paste&r for a nutritionally complete but gross meal. You can reuse the Foil Packs when you're finished, too!", From 36958f6f4cbd153cceaa051c615a3931a59cc636 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Wed, 8 Oct 2025 21:12:58 +0100 Subject: [PATCH 57/69] + more langs --- kubejs/assets/beneath/lang/zh_cn.json | 8 ++ kubejs/assets/gtceu/lang/zh_cn.json | 1 + kubejs/assets/tfg/lang/zh_cn.json | 170 +++++++++++++++++++++++--- 3 files changed, 164 insertions(+), 15 deletions(-) diff --git a/kubejs/assets/beneath/lang/zh_cn.json b/kubejs/assets/beneath/lang/zh_cn.json index 07463cb13..a1e784785 100644 --- a/kubejs/assets/beneath/lang/zh_cn.json +++ b/kubejs/assets/beneath/lang/zh_cn.json @@ -9,8 +9,16 @@ "block.beneath.ore.blackstone_sylvite": "钾石盐矿石", "block.beneath.crackrack": "角斑岩", "block.beneath.soul_clay": "泥泞黏土", + "block.beneath.wood.log.crimson": "绯红菌柄", + "block.beneath.wood.stripped_log.crimson": "去皮绯红菌柄", + "block.beneath.wood.wood.crimson": "绯红菌核", + "block.beneath.wood.stripped_wood.crimson": "去皮绯红菌核", "block.beneath.wood.fallen_leaves.crimson": "绯红瓣叶落叶", "block.beneath.wood.leaves.crimson": "绯红瓣叶", + "block.beneath.wood.log.warped": "诡异菌柄", + "block.beneath.wood.stripped_log.warped": "去皮诡异菌柄", + "block.beneath.wood.wood.warped": "诡异菌核", + "block.beneath.wood.stripped_wood.warped": "去皮诡异菌核", "block.beneath.wood.fallen_leaves.warped": "诡异瓣叶落叶", "block.beneath.wood.leaves.warped": "诡异瓣叶", "item.beneath.cursed_hide": "耐火皮革", diff --git a/kubejs/assets/gtceu/lang/zh_cn.json b/kubejs/assets/gtceu/lang/zh_cn.json index 4043e6a45..8900bf3e2 100644 --- a/kubejs/assets/gtceu/lang/zh_cn.json +++ b/kubejs/assets/gtceu/lang/zh_cn.json @@ -168,6 +168,7 @@ "gtceu.jei.bedrock_fluid.semiheavy_ammoniacal_water": "火星半重氨水", "gtceu.jei.bedrock_fluid.liquid_carbon_dioxide": "火星液态二氧化碳", "gtceu.jei.bedrock_fluid.heavy_ammoniacal_water": "火星重氨水", + "gtceu.jei.bedrock_fluid.liquid_ice": "火星冰", "tagprefix.sword_head": "%s剑头", "tagprefix.pickaxe_head": "%s镐头", "tagprefix.shovel_head": "%s铲头", diff --git a/kubejs/assets/tfg/lang/zh_cn.json b/kubejs/assets/tfg/lang/zh_cn.json index 95735b295..935772d25 100644 --- a/kubejs/assets/tfg/lang/zh_cn.json +++ b/kubejs/assets/tfg/lang/zh_cn.json @@ -422,7 +422,11 @@ "block.tfg.pile.pink_sand": "粉沙", "block.tfg.pile.moon_sand": "月沙", "block.tfg.pile.mars_sand": "泥板岩沙", + "block.tfg.pile.mars_sand_covering": "泥板岩沙", "block.tfg.pile.venus_sand": "粗面岩沙", + "block.tfg.pile.venus_sand_covering": "粗面岩沙", + "block.tfg.pile.hematitic_sand": "赤铁矿沙", + "block.tfg.pile.hematitic_sand_covering": "赤铁矿沙", "block.tfg.lunar_roots": "月球光绽花", "block.tfg.lunar_sprouts": "月球光颖草", "block.tfg.lunar_chorus_plant": "紫颂植株", @@ -555,6 +559,9 @@ "block.tfg.casings.bioculture_rotor_primary": "主生物培养转子", "block.tfg.casings.bioculture_rotor_secondary": "副生物培养转子", "block.tfg.casings.machine_casing_ostrum_carbon": "紫金机械方块", + "block.tfg.casings.heat_pipe_casing": "高温管道外壳", + "block.tfg.glacian_wool_frame": "霜原羊毛框架", + "block.tfg.aes_insulation_frame": "碱土硅酸盐绝缘框架", "block.tfg.sand.fluorapatite.blue": "蓝色氟磷灰石沙", "block.tfg.sandstone.raw.fluorapatite.blue": "天然蓝色氟磷灰石砂岩", "block.tfg.sandstone.wall.raw.fluorapatite.blue": "天然蓝色氟磷灰石砂岩墙", @@ -633,6 +640,7 @@ "block.tfg.titanium_concrete_bricks_square": "方形钛筋混凝土砖", "block.tfg.nuclear_turbine": "核动力蒸汽轮机", "block.tfg.evaporation_tower": "蒸发塔", + "block.tfg.cooling_tower": "核能冷却塔", "block.tfg.growth_monitor": "生长监控器", "block.tfg.sample_rack": "样本架", "block.tfg.casings.machine_casing_sterilizing_pipes": "除菌管道", @@ -786,6 +794,11 @@ "item.tfg.unfired_chalk": "未烧制的粉笔", "item.tfg.armor_stand_arms": "带手臂的盔甲架", "item.tfg.flint_club_head": "燧石棒头", + "item.tfg.unfinished_electron_tube": "未完成的电子管", + "item.tfg.unfinished_vacuum_tube": "未完成的真空管", + "item.tfg.unfinished_basic_electronic_circuit": "未完成的基础电子电路", + "item.tfg.unfinished_good_electronic_circuit": "未完成的优质电子电路", + "item.tfg.unfinished_inscriber_accumulation_press": "未完成的累积压印模板", "item.tfg.brick.deepslate": "混合岩砖", "item.tfg.brick.dripstone": "石灰华砖", "item.tfg.loose.moon_stone": "松散斜长岩", @@ -951,14 +964,16 @@ "item.tfg.twigs.strophar": "孑节树枝", "item.tfg.twigs.glacian": "霜原树枝", "item.tfg.twigs.alphacene": "阿尔法辛树枝", + "item.tfg.crimsene_gem": "绯红树脂", + "item.tfg.warpane_gem": "诡异树脂", "item.tfg.glacian_wool": "霜原羊毛", - "item.tfg.sniffer_wool": "嗅探兽毛", + "item.tfg.sniffer_wool": "矿物富集绒毛", "item.tfg.sniffer_egg": "嗅探兽蛋", - "item.tfg.wraptor_wool": "矿物丰饶羽绒", + "item.tfg.wraptor_wool": "矿物富集羽毛", "item.tfg.wraptor_egg": "诡恐鸟蛋", "item.tfg.wraptor_sugar": "诡恐鸟糖", "item.tfg.aes_polyurethane": "生物AES增强R-聚氨酯泡沫", - "item.tfg.mli_shielding": "多层绝缘屏蔽层", + "item.tfg.mli_shielding": "多层隔热屏蔽层", "item.tfg.rocket_cone_t3": "高级火箭鼻锥", "item.tfg.rocket_fin_t3": "高级火箭尾翼", "item.tfg.elite_power_thruster": "§a精英电力推进器", @@ -1020,6 +1035,7 @@ "item.tfg.vial.filled": "%s样品瓶", "item.tfg.lab_equipment": "实验器材", "item.tfg.dirty_lab_equipment": "污染的实验器材", + "item.tfg.wireless_card": "星际无线升级卡", "material.tfg.latex": "乳胶", "material.tfg.vulcanized_latex": "硫化乳胶", "material.tfg.fluix": "福鲁伊克斯", @@ -1098,9 +1114,17 @@ "material.tfg.regolith_mush": "泥泞风化土", "material.tfg.apt": "仲钨酸铵", "material.tfg.ammonium_tungstate": "钨酸铵", - "material.tfg.tungsten-bismuth_oxide_composite": "氧化铋复合材料", + "material.tfg.tungsten_bismuth_oxide_composite": "钨铋氧化物复合材料", "material.tfg.tungsten_oxide": "氧化钨", "material.tfg.sodium_tungstate": "钨酸钠", + "material.tfg.tetrafluoroethane": "四氟乙烷", + "material.tfg.thermally_conductive_fluid": "导热液", + "material.tfg.crimsene": "绯红液", + "material.tfg.warpane": "诡异液", + "material.tfg.mycelienzene": "菌丝苯", + "material.tfg.cooked_mycelienzane": "1,3-菌丝烷", + "material.tfg.iodomethane": "碘甲烷", + "material.tfg.trideuteroiodomethane": "三氘代碘甲烷", "ore_vein.tfg.deep_sheldonite": "硫铂矿, 斑铜矿", "ore_vein.tfg.deep_garnet_amethyst": "紫水晶, 石榴石", "ore_vein.tfg.deep_garnet_opal": "蛋白石, 石榴石", @@ -1328,6 +1352,9 @@ "tfg.emi.liquid_bb_superheat": "§l过热", "emi.category.tfg.blaze_burner": "烈焰人燃烧室燃料", "emi.category.tfg.block_interaction": "方块改动", + "emi.category.deafission.fission_reactor_coolant": "裂变反应堆冷却剂", + "emi.category.deafission.fission_reactor_processing": "裂变反应堆材料支架", + "emi.category.deafission.fission_reactor_fuel": "裂变反应堆燃料", "tfg.toast.ore_prospector_none": "范围内未发现矿石。", "tfg.toast.ore_prospector_message": "在此方向 %s §6格范围内发现矿石:%s", "tfg.tooltip.ore_prospector_stats": "扫描范围:%s,截面:%s x %s。", @@ -1389,6 +1416,19 @@ "tfg.tooltip.single_itemstack_bus.0": "§6物品槽位数量:§f1", "tfg.tooltip.single_itemstack_bus.1": "§6堆叠数量:§f1", "tfg.tooltip.growth_chamber": "通过增加层数,该机器可以同时运行更多配方。", + "tfg.tooltip.wireless_card_1": "支持无线连接,无论相隔多远,即使是不同行星之间也能联通!", + "tfg.tooltip.wireless_card_2": "物品仍可通过终端传输,但会消耗极高的电力。", + "tfg.tooltip.wireless_card_3": "星际物流需求请使用 §d轨道炮§r 。", + "tfg.tooltip.component.blue_ice": "可置于裂变反应堆内,使热量上限提升 §90.5§r", + "tfg.tooltip.component.aes_insulation_frame": "可置于裂变反应堆内,使热量上限提升 §91§r", + "tfg.tooltip.component.glacian_fur": "可置于裂变反应堆内,使热量上限提升 §92§r", + "tfg.tooltip.component.impure_moderate_core_frame": "可置于裂变反应堆内,使热量上限提升 §95§r", + "tfg.tooltip.component.moderate_core_frame": "可置于裂变反应堆内,使热量上限提升 §910§r", + "tfg.tooltip.component.dry_ice": "可作为裂变反应堆的输入物以冷却反应堆,需要材料支架", + "tfg.tooltip.component.refrigerant_pellet": "可作为裂变反应堆的输入物以冷却反应堆,需要材料支架", + "tfg.tooltip.component.nuclear_turbine_1": "§e基础产出:§r 4096 EU/t", + "tfg.tooltip.component.nuclear_turbine_2": "每个高于 §5EV§r 阶段的转子支架 §7可提升§r 10% 效率,并使 EU/t 产出翻倍。", + "tfg.machine.food_refrigerator_power_usage": "§7工作时消耗§r %s EU/t §7以保持食物新鲜。§r", "tfc.jei.flint_knapping": "燧石打制", "tfc.jei.straw_knapping": "秸秆敲制", "tfc.recipe.barrel.tfg.barrel.dyeing.decorative_vase.black": "染色", @@ -1450,6 +1490,13 @@ "tfc.recipe.barrel.tfg.sealed_barrel.prepared_leather_gloves": "浸泡皮革手套", "tfc.recipe.barrel.tfg.barrel.rapeseed_to_oil": "提取菜籽油", "tfc.recipe.barrel.tfg.barrel.sunflower_to_oil": "提取葵花籽油", + "tfc.recipe.barrel.tfg.barrel.maple_syrup_to_sugar": "制糖", + "tfc.recipe.barrel.tfg.barrel.birch_syrup_to_sugar": "制糖", + "tfc.recipe.barrel.tfg.barrel.light_concrete": "混凝土固化", + "tfc.recipe.barrel.tfg.barrel.reinforced_light_concrete_support": "混凝土固化", + "tfc.recipe.barrel.tfg.barrel.dark_concrete": "染色", + "tfc.recipe.barrel.tfg.barrel.dark_concrete_support": "染色", + "tfc.recipe.barrel.tfg.barrel.reinforced_dark_concrete_support": "染色", "gtceu.aqueous_accumulator": "蓄水器", "tfg.food_recipe.brining": "盐水腌制", "tfg.food_recipe.smoking": "熏制", @@ -1585,6 +1632,8 @@ "quests.ae2.cutting_knife.desc": "切割刀是用于轻松重命名所有ME组件的工具。为何需要此功能?若你为样板供应器重新命名,其名称将显示在样板终端中,这对于追踪每个样板供应器具体连接哪台机器非常实用。\n\n例如,将某个样板供应器命名为 &o小型齿轮挤压机&r ,便可让你轻松了解该挤压机内已装配小型齿轮模具,因此仅需将小型齿轮的合成样板放入其中。", "quests.ae2.cutting_knife.task": "任意切割刀", "quests.ae2.pattern_box.desc": "样板盒可以在一个物品栏槽位中携带所有空白和编码样板,只要盒子在你的物品栏中,它们就会在任何AE2设备界面中可见。", + "quests.ae2.interplanetary_wireless.subtitle": "把东西忘在家里了?", + "quests.ae2.interplanetary_wireless.desc": "这张特殊卡片可以升级你的无线终端,让你能在任何距离下访问网络,哪怕是不同的世界!这听起来好得令人难以置信?它有一个重大缺点——传输物品会消耗巨量能源。\n\n你可以通过在物品栏中配置一些能源卡和设置为放电模式的电池来勉强解决,但当你把东西忘在地球基地又不想飞回去时,它应该能足够好用。\n\n要进行恰当的自动化传输,你还是需要一个轨道炮。", "quests.ae2.iv.title": "IV级AE2", "quests.ae2.iv.desc": "一旦你达到&1IV&r等级,整个分支即可完全解锁。", "quests.ae2.accumulation_press.desc": "要获得这个&e新型压印模板&r,你需要投入一些资源。\n\n首先,你必须用&1两个IV级能源仓&r升级你的聚爆压缩机。\n\n然后,如果你还没有的话,为自己准备一台新的IV级激光蚀刻机。\n\n最后,准备大量的工业TNT——这是&c唯一有效&r的TNT类型。\n\n仔细计划,这一步要求相当高!", @@ -1897,6 +1946,16 @@ "quests.gregtech_energy.rotor.desc.1": "转子支架自然需要安装转子才能使用,但可选种类繁多且属性各异,这些数值究竟意味着什么?\n\n更高的&9效率&r会延长每 mB 燃料的燃烧时间,从而有效降低燃料消耗。而&9功率&r则直接提升涡轮机的发电量。至于&9耐久度&r,其作用不言自明。", "quests.gregtech_energy.rotor.desc.2": "理想情况下,你自然希望三项属性全部最大化,但具体选择取决于你的燃料产量、拥有的涡轮机数量以及你愿意更换转子的频率,因此并无绝对的正确答案。&8(当然,中子ium转子除外…)&r\n\n话虽如此,如果你毫无头绪,我们推荐:在&6HV&r阶段使用钒钢转子,在&5EV&r阶段使用哈氏合金转子,在&9IV&r阶段使用高速钢-S转子。\n\n遗憾的是,你无法通过管道自动将新转子输入转子支架,因其前方必须保持完全空旷,但使用&a机械臂&r则可实现自动化更换!", "quests.gregtech_energy.rotor.task": "任意涡轮转子", + "quests.gregtech_energy.fission_reactor.title": "裂变反应堆 MK I", + "quests.gregtech_energy.fission_reactor.subtitle": "系好安全带,这很复杂", + "quests.gregtech_energy.fission_reactor.desc.1": "&d裂变反应堆&r在格雷科技中确实是个非同寻常的存在——无论是其设计主题还是运作原理。但请别担心,我们将通过这个多功能的高精尖多方块结构为您提供详细指导!\n\n&e工程师阁下&r,我们暂且不深入探讨复杂的物理原理。您需要了解的核心要点是:这座反应堆如同一个巨型的&d蓄热式发电机&r。注入合适燃料后,它将产生&c热能&r(就像&6EU/t&r电力),这些能量会以&c升温&r形式储存在反应堆内(相当于储存&6EU&r)。\n\n随后您可以将这些热能传递给&9冷却剂&r来驱动涡轮机,或是执行类似电弧炉的合成配方。有时甚至会出现&c热量过剩&r的情况。对了,您还能获得新元素来制造新型燃料、电路等物资。或许该多去太阳系其他地方探索探索?当然这些都是后话了。", + "quests.gregtech_energy.fission_reactor.desc.2": "首先,你需要先获取一些 &d钍&r。请务必穿戴好所有相关的&e个人防护装备&r——&eDeatek Intergalactic&r 对于因不当处理裂变材料造成的任何身体伤害概不负责。说真的,到了这个阶段我们本不该再提醒你了。如果你需要复习,请查看关于危险品的任务说明。\n\n接下来,制作一些空的 &d燃料棒&r,并使用 &d核燃料处理厂&r 为其填充燃料。燃料棒是可重复使用的,因此你不需要制作太多。事实上,我们建议你目前只制作一根就够了。\n\n当然,你还需要一个建造完成的反应堆。请查看 EMI 预览。注意结构中有一列核心的燃料支架,以及一些可选的组件柱和材料支架柱——这些我们稍后会详细解释。\n\n等等。为什么只建议制作&o一根&r燃料棒呢?哦,&e我们&r很高兴你提出了这个问题。让我们在下一页深入探讨反应堆的运行机制。", + "quests.gregtech_energy.fission_reactor.desc.3": "反应堆内安装的&c燃料棒越多&r,其运行温度就&c越高&r。而温度越高,能够传递给冷却剂流体和可处理物品的热量就越多。但物理规律自有其极限,反应堆的温度存在&c理论上限&r,因此切勿安装过多燃料棒。\n\n但请别担心!与&0大石油集团&r宣传机器所宣称的不同,核能其实是&a绝对安全&r的。当反应堆热量水平接近危险阈值时,它会自动启动&9冷却程序&r,直至所有热量被&a安全耗散&r后才会重新启动——尽管这个过程相当缓慢。\n\n难道没有既能提升温度又能加快效率的方法吗?再次感谢您的提问!&e我们才华横溢的工程师团队&r早已为此准备了完美方案!", + "quests.gregtech_energy.fission_reactor.desc.4": "除了 5 个 &d燃料支架&r 外,您还可以安装 &o最多&r 20 个 &d组件&r。其他厂商的反应堆可能需要非常精确的定位,但我们的反应堆更加智能。所有已安装组件的 &6属性&r 将简单地 &6叠加计算&r,仅此而已!\n\n目前,反应堆能以三种&8*&r方式利用这些组件:\n&e1)&r 提升最高温度 &7(绝缘体)&r\n&e2)&r 提高效率 &7(延长燃料持续时间)&r\n&e3)&r 控制节流 &7(减缓反应速度)&r\n\n&8*)&r 您所在星系的资源可能无法支持所有类型。我们预估目前仅能找到第一类组件所需的材料。\n\n但请谨记:提升 &c温度&r 会带来相应的 &c代价&r。", + "quests.gregtech_energy.fission_reactor.desc.5": "虽然&c更高&r的运行温度能加快冷却剂处理和材料加工&c速度&r,但也会显著增加燃料棒的&c损耗&r。每根燃料棒都有有限的耐久度,其损耗速度与温度呈&c线性&r增长关系。\n\n由于更高的热量需要安装更多燃料棒,这实际上使得总体损耗&n呈二次方增长&r。若追求冷却剂加热的&c最高能效&r,建议采用低温运行;但若需要&c最大化裂变物质转化速度&r,则应在绝缘材料允许范围内使用最高温度。", + "quests.gregtech_energy.fission_reactor.desc.6": "现在您终于可以查看反应堆相关的各种配方了。请查看使用 &d控制器&r 的配方,您将会发现三个 &eEMI&r 标签页:\n\n&e1)&r 裂变反应堆 &7(燃料与兼容冷却剂)&r\n&e2)&r 裂变热处理 &7(类似于电弧炉)&r\n&e3)&r 裂变产物 &7(当燃料耗尽时)&r\n&e4)&r 多方块结构预览\n\n请注意,不同的 &a燃料&r 仅与特定的 &9冷却剂流体&r 兼容。一旦燃料棒完全耗尽,可以确定它已经 &b转&d变&r 成了新的元素。\n\n另一方面,只要温度水平足够高,处理配方就可以运行,与所使用的燃料种类无关。", + "quests.gregtech_energy.fission_reactor.desc.7": "简化的计算原理如下:在拥有充足冷却剂流体和一根 &c100%%&r 热值燃料棒的情况下,反应堆将达到约 &c200&r 的温度(可称作热量等级或简称为热量)。使用 &d两根&r &c100%%&r 燃料棒等效于使用 &d一根&r &c200%%&r 燃料棒,二者均可使热量达到约 &c400&r。\n\n这是因为每根燃料棒可产生 &6200 HU/t&r(热力单位)。冷却剂流体每 &c1&r 度热量可提取 &61 HU/t&r。\n\n若反应堆的最大热量上限为 &c190&r,则 &c100%%&r 的燃料棒将导致其过热。您可以通过安装组件提升该上限,或通过处理系统使用 &d主动冷却剂&r。每个处理配方均会产生特定的热量影响。", + "quests.gregtech_energy.fission_reactor.desc.8": "例如,若某配方的需求温度为 &c100&r,热量影响为 &6-10 HU/t&r,当反应堆处于 &c190&r 度时,该配方实际可提供 &619 HU/t &r的冷却效果。\n\n这意味着您可以在反应堆最大热量上限较低的情况下持续运行,同时避免过热!若温度低于 &c100&r,配方将完全停止运行——正如电弧炉配方也存在温度限制。\n\n以上便是&e我们&r当前能传授给您的全部知识。请随时关注技术进展,&e尊敬的核能工程师阁下&r!", "quests.metal_age": "冶金时代", "quests.metal_age.subtitle": "你的第一次技术进步。", "quests.metal_age.weld_bronze_ingots.title": "焊接青铜", @@ -2124,7 +2183,7 @@ "quests.ore_proc.thermal_centrifuge.task": "任何热力离心机", "quests.ore_proc.sifter.title": "筛矿机", "quests.ore_proc.sifter.subtitle": "空岛模拟器", - "quests.ore_proc.sifter.desc": "&6筛矿机&r应用于你所有的&a宝石&r。它每块矿石的产量远高于任何其他方法,并且是在&6HV&r激光蚀刻机之前获得无瑕和完美宝石的唯一方法。\n\n更高等级的筛矿机有更高的输出加成,即使你降频使用机器也是如此!", + "quests.ore_proc.sifter.desc": "&6筛矿机&r应用于你所有的&a宝石&r。它每块矿石的产量远高于任何其他方法,并且是在&6HV&r激光蚀刻机之前获得无瑕和完美宝石的唯一方法。", "quests.ore_proc.sifter.task": "任何筛矿机", "quests.ore_proc.centrifuge_sifter.title": "离心矿粉", "quests.ore_proc.centrifuge_sifter.subtitle": "副产物的副产物", @@ -2237,6 +2296,87 @@ "quests.space_survival.soulbound.subtitle": "你离出生点很远了", "quests.space_survival.soulbound.desc.1": "在TerraFirmaGreg整合包中,你可以在任何维度(甚至包括&6幽冥之地&r!)设置重生点,但除非你备有大量多余的&9航天服&r,否则在月球重生可能会引发一系列连锁问题。\n\n首要,你的床必须放置在&a充氧区域&r内部,否则重生瞬间将立即因窒息死亡(不过若发生停电事故,您仍应有足够时间破坏床具并重新设置重生点)。", "quests.space_survival.soulbound.desc.2": "其次,你可以用一个“灵魂宝珠”升级你的每一件航天服。这样在你死亡时它们也会保持穿戴状态!\n\n你可以从月球上任何更强大且具有攻击性的末影人身上获取这些灵魂宝珠。\n\n我们保证这是科幻设定,而非魔法元素。", + "quests.space_survival.mars_desert.title": "火星荒漠", + "quests.space_survival.mars_desert.subtitle": "沙,到处都是沙", + "quests.space_survival.mars_desert.desc": "火星的绝大部分地表都被广袤无垠的沙漠覆盖。除偶尔出没的叠爪兽与巨型&6沙虫&r外,这片土地几乎荒无人烟。若是初临此地,您应当寻找更适宜生存的区域!否则…唯有在这无垠沙海中继续探寻……", + "quests.space_survival.mars_desert.task": "前往火星深层沙漠生物群系", + "quests.space_survival.sandworm.title": "沙虫", + "quests.space_survival.sandworm.subtitle": "沙胡德", + "quests.space_survival.sandworm.desc": "在沙漠中制造过大声响可能会引来强大的&6沙虫&r!它更像是需要规避的环境威胁而非可讨伐的首领,因此存活下来的最佳方式就是立即逃离!\n\n若能用&b爆炸伤害&r多次击中其头部,它会暂时停止追击…但效果仅能维持片刻。\n\n值得庆幸的是,沙虫仅能对生物造成伤害而无法破坏建筑,且只会被&6玩家&r的脚步声吸引,因此野生动物与火车行驶不会惊动它们。", + "quests.space_survival.spice.title": "紫金矿床", + "quests.space_survival.spice.subtitle": "美琅脂", + "quests.space_survival.spice.desc": "&d紫金矿床&r是仅分布于火星深层沙漠的固定生成方块,远离所有富饶区域。它们以小型矿簇形态生成,若位于斜坡位置可被破坏以便为紫金采集器腾出空间。建议使用&6望远镜&r进行远距离定位!\n\n您需要建立长距离物流系统将紫金输送回基地(可尝试铁路运输,蓄电器能实现电力同步传输!)\n\n紫金既是&5EV&r阶段发展的关键资源,也是维系裂变反应堆持续运转的重要燃料。", + "quests.space_survival.spice.task": "美琅脂的流转永不停息", + "quests.space_survival.mars_islands.title": "火星丛林", + "quests.space_survival.mars_islands.subtitle": "那是恐龙吗?!", + "quests.space_survival.mars_islands.desc": "在广袤的火星沙漠中,散布着许多孕育着生命与植被的「岛屿」地带,想必这正是您建立基地的首选之地。在此处生存的难度将远低于沙漠环境!", + "quests.space_survival.semiheavy_ammoniacal_water.title": "半重氨水", + "quests.space_survival.semiheavy_ammoniacal_water.subtitle": "想来一杯吗?", + "quests.space_survival.semiheavy_ammoniacal_water.desc": "火星上的水属于&b半重水&r(含有一个氘原子),同时富含&a氨&r——这种高效的防冻成分使其能在极低温度下保持液态。\n\n理论上它可直接饮用,但建议先通过蒸馏提纯为普通水。与常规水类似,您可移动半重氨水源块,并通过蓄水器无限增殖。\n\n还可通过离心分离提取其中的氯化铵,再经电解获得&3氮气&r。仅凭单一水源即可制备简易氮氧呼吸气体!", + "quests.space_survival.heavy_ammoniacal_water.title": "重氨水", + "quests.space_survival.heavy_ammoniacal_water.subtitle": "更酷的氨水", + "quests.space_survival.heavy_ammoniacal_water.desc": "&2重氨水&r是另一种特殊流体,只能通过流体钻探设备在地下深处获取。请注意,它仅分布于火星的富饶生态区域,沙漠地带并无踪迹!\n\n通过分离处理可得到重水,这是裂变能源体系中的重要原料。", + "quests.space_survival.mars_poles.title": "火星极地", + "quests.space_survival.mars_poles.subtitle": "低温足以让二氧化碳凝结!", + "quests.space_survival.mars_poles.desc": "觉得火星还不够寒冷?\n\n请一路向北(或向南)前往Z=+15000/-15000的极地区域。若有生物能在彼处生存,其必定拥有绝佳的保温特性……", + "quests.space_survival.glacian_ram.title": "霜原羊", + "quests.space_survival.glacian_ram.subtitle": "生存于零下110度的生命", + "quests.space_survival.glacian_ram.desc": "&d霜原公羊&r与&d霜原母羊&r仅分布于火星极地。你最好能带一对回基地进行繁殖。\n\n需要长途旅行?可以考虑使用 AE2 空间存储单元将它们放入口袋随身携带。", + "quests.space_survival.glacian_ram.task": "找到霜原公羊或母羊", + "quests.space_survival.glacian_wool.title": "霜原羊毛", + "quests.space_survival.glacian_wool.subtitle": "令人惊叹的隔热材料!", + "quests.space_survival.glacian_wool.desc": "与地球上的普通绵羊不同,宰杀霜原羊仅能获得普通羊毛。若想获取特殊的&d霜原羊毛&r,您需要通过培养亲密度并使用剪刀采集。\n\n制作全套钨钢太空服需要消耗7份霜原羊毛,此外它还能作为裂变反应堆的优质组件来提升热量上限。\n\n若您因某些需求想要更多普通毛线或布料,也可将其转化为常规羊毛制品。", + "quests.space_survival.t2_space_suit.title": "钨钢航天服", + "quests.space_survival.t2_space_suit.subtitle": "极端主义!", + "quests.space_survival.t2_space_suit.desc": "穿上这套新一代太空服,您将能抵御宇宙中的&b极寒&r与&c酷热&r环境!它是您踏上&6金星&r和&5水星&r时,防止自身因高温而瞬间自燃的必备装备。\n\n此外,它还额外提供了一定的护甲值和氧气容量!", + "quests.space_survival.mars_tapping.title": "绯红液与诡异液", + "quests.space_survival.mars_tapping.subtitle": "你可真是钟情于采集树液啊!", + "quests.space_survival.mars_tapping.desc": "绯红菌和诡异菌可通过树液采集器分别获取&4绯红液&r与&3诡异液&r。\n\n这两种液体是生产&9碘&r的必备原料,但由于它们通常不生长在同一区域,您可能需要长途跋涉。绯红菌多分布于火星东半球,而诡异菌则更常见于西半球。\n\n请注意:您可以直接将采集器接入格雷科技的开放式流体管道!\n\n&9小贴士:&r想要展示创意?您还可以用绯红菌柄制作独木舟,用诡异菌柄建造划艇或帆船!", + "quests.space_survival.iodine.title": "碘生产线", + "quests.space_survival.iodine.subtitle": "蘑菇化学!", + "quests.space_survival.iodine.desc": "将绯红液与诡异液混合,同时注入来自火星空气蒸馏系统(该流程可循环运作)的氪气,再借助裂变反应堆提供的高温环境,便可制得碘!\n\n此过程较为缓慢,但现阶段需求量不大,且后续在其它行星上还将解锁更高效的碘获取方法。", + "quests.space_survival.mars_crops.title": "火星作物", + "quests.space_survival.mars_crops.subtitle": "它们能提供多少营养?!", + "quests.space_survival.mars_crops.desc": "火星新增了六种作物——包括三种&a水果&r、两种&2蔬菜&r和一种&6谷物&r。它们富含营养,可用于制作类似地球食物的餐点,如三明治、汤品和餐包。\n\n但请注意,部分作物若直接&c生食含有毒性&r,务必烹饪后食用!\n\n具体种植方法请查阅《野外指南》:这些作物既可栽种在普通泥土中,也适应Firmalife温室与电力温室环境。", + "quests.space_survival.mars_crops.task": "任意火星种子", + "quests.space_survival.bulbkin_pie.title": "火星美食", + "quests.space_survival.bulbkin_pie.subtitle": "更多黑暗料理现已加入您的新领域", + "quests.space_survival.bulbkin_pie.desc": "诡恐鸟蛋可提取作为糖的替代品,而嗅探兽蛋则富含奶油原料。\n\n&e球根南瓜派&r堪称火星美食的巅峰之作,能同时提供四种不同类型的丰厚营养,但制作过程颇为繁琐。\n\n&9小贴士:&r虽然不属于食品范畴,但你还可以将球根南瓜块与阿尔法菌蘑菇块混合制作成荧石粉。", + "quests.space_survival.soarer.title": "翱翔鸟", + "quests.space_survival.soarer.subtitle": "需要搭个便车吗?", + "quests.space_survival.soarer.desc": "在火星上飞机无法使用,而太空服也没有配备喷气背包,难道就没有其他飞行方法了吗?\n\n如果你能找到行踪飘忽的&4翱翔鸟&r,可以用生鱼驯服它们并装上鞍,即可轻松翱翔于火星天际。\n\n不过它们无法永久飞行——注意界面左上角的翼形图标,需要不时降落休息。这仍是长途旅行的绝佳选择,而且不会惊动沙虫!\n\n&9注意&r:翱翔鸟无法在&6金星&r等高温行星生存。", + "quests.space_survival.soarer.task": "找到翱翔鸟", + "quests.space_survival.surfer.title": "破浪兽", + "quests.space_survival.surfer.subtitle": "需要游个泳吗?", + "quests.space_survival.surfer.desc": "&b破浪兽&r可在火星的小型水域中发现。当它们躺在岸边时,你可以潜行靠近并用生鱼驯服。驯服后装备上鞍,便能借助它们在水中快速游动。\n\n这在火星听起来或许不太实用,但请记住你可以通过AE2的&b空间存储磁盘&r跨星球运输实体——未来某颗冰封的海洋星球或许正需要它们……\n\n&9注意&r:破浪兽无法在&6金星&r等高温行星生存。", + "quests.space_survival.surfer.task": "找到破浪兽", + "quests.space_survival.sniffer_or_wraptor.title": "嗅探兽和诡恐鸟", + "quests.space_survival.sniffer_or_wraptor.subtitle": "牛和鸡", + "quests.space_survival.sniffer_or_wraptor.desc": "&2嗅探兽&r与&d诡恐鸟&r遍布火星各地,驯养后可稳定产出肉类、蛋类,更重要的是能获取它们富含矿物质的绒毛与羽毛。\n\n它们以所有火星作物为食,您可像在地球上一样使用饲料槽实现自动化喂养与繁殖。", + "quests.space_survival.sniffer_or_wraptor.task_1": "找到嗅探兽", + "quests.space_survival.sniffer_or_wraptor.task_2": "找到诡恐鸟", + "quests.space_survival.mars_nest.title": "大型茅草巢", + "quests.space_survival.mars_nest.subtitle": "巨型巢穴承载巨型蛋", + "quests.space_survival.mars_nest.desc": "您还记得如何收集茅草吧?\n\n诡异与绯红茅草可从各种小型植物中获取,也包括您偶然发现的任意诡异/绯红菌褶。\n\n正如地球的鸟类,嗅探兽与诡恐鸟也需要巢穴来产卵——只不过嘛,您懂的,它们的体型摆在这儿。", + "quests.space_survival.mars_nest.task": "任意巢", + "quests.space_survival.mineral_rich_wool.title": "矿物富集绒毛", + "quests.space_survival.mineral_rich_wool.subtitle": "由多年沙尘暴积淀形成", + "quests.space_survival.mineral_rich_wool.desc": "当您的嗅探兽或诡恐鸟培养足够亲密度后,可通过剪毛获取这些富含矿物质的绒毛或羽毛。\n\n这些材料可在电力高炉中熔炼,稳定产出成本低廉的碱土硅酸盐,同时也是制作&6生物AES增强R型聚氨酯泡沫&r的必要组件。", + "quests.space_survival.aes_insulation.title": "多层隔热屏蔽层", + "quests.space_survival.aes_insulation.subtitle": "这可不是冰淇淋三明治", + "quests.space_survival.aes_insulation.desc": "该物品目前用途有限,但未来将成为你的&1IV&r级火箭的关键构成部分。", + "quests.space_survival.mars_shields.title": "高级盾牌", + "quests.space_survival.mars_shields.subtitle": "是时候该升级你的旧式金属盾牌了?", + "quests.space_survival.mars_shields.desc": "&3强化盾牌&r能将伤害反弹给攻击者,效果类似原版 Minecraft 中的荆棘附魔。其合成材料可从破碎者和噬颚兽处获取。\n\n&5腐化盾牌&r会随机传送攻击者,虽能有效拉开距离……但也可能将其传至你身后。所需牙齿来自地下洞穴中的末影人。\n\n&4冲击盾牌&r可吸收一定伤害后释放震荡波,对周围所有生物造成伤害。其动能核心是火星洞穴中敌对傀儡的稀有掉落物。", + "quests.space_survival.mras_shields.task": "任意高级盾牌", + "quests.space_survival.mercury.title": "我在&5水星&r上!", + "quests.space_survival.mercury.subtitle": "等等,这里发生过什么?!", + "quests.space_survival.mercury.desc": "&5水星&r将在即将到来的 TFG 0.12 版本中,作为 &1IV&r 阶段的次级行星登场。敬请期待!", + "quests.space_survival.mercury.task": "登陆水星", + "quests.space_survival.venus.title": "我在&6金星&r上!", + "quests.space_survival.venus.subtitle": "多云,局部有硫酸雨", + "quests.space_survival.venus.desc": "&6金星&r将成为 TFG 0.12 版本中 &1IV&r 阶段重制的核心行星。敬请期待!", + "quests.space_survival.venus.task": "登陆金星", "quests.stone_age": "石器时代", "quests.stone_age.subtitle": "简陋开端", "quests.stone_age.foods.title": "饿了?", @@ -2267,21 +2407,21 @@ "quests.stone_age.hydration.title": "机制:水分", "quests.stone_age.hydration.subtitle": "又一个需要填满的条……", "quests.stone_age.hydration.desc": "水是一种重要的资源,不仅仅是为了保持水分!建议在淡水湖或河流附近建立基地,这样你就可以方便地取水。其他物品也可以解渴,例如某些类型的食物或饮料。\n\n然而,当你在探索时,并不是总能找到水源,所以这里有一些随身携带饮水的方法。每次饮用会消耗容器中 100mB 的水。", - "quests.stone_age.leather_flask.title": "皮革水囊", + "quests.stone_age.leather_flask.title": "皮革水壶", "quests.stone_age.leather_flask.subtitle": "老忠实", - "quests.stone_age.leather_flask.desc": "皮革水囊可能是仅次于陶罐的第二简单的便携式水解决方案。它可以容纳 500mb,或者足够喝五次。\n\n皮革水囊在使用时会受损,但破损时,如果你手头有皮革,可以修复它。膀胱可以从大型野生动物身上获得。", - "quests.stone_age.iron_flask.title": "铁制水壶", + "quests.stone_age.leather_flask.desc": "皮革水壶可能是仅次于陶壶的第二简单的便携式水解决方案。它可以容纳 500mb,或者足够喝五次。\n\n皮革水壶在使用时会受损,但破损时,如果你手头有皮革,可以修复它。膀胱可以从大型野生动物身上获得。", + "quests.stone_age.iron_flask.title": "锻铁水壶", "quests.stone_age.iron_flask.subtitle": "现在这个可以有用很长一段时间了", - "quests.stone_age.iron_flask.desc": "铁制水壶是皮革水囊的升级版。它比皮革水囊耐用得多,可以容纳足够 20 次饮用的液体。", + "quests.stone_age.iron_flask.desc": "锻铁水壶是皮革水壶的升级版。它比皮革水壶耐用得多,可以容纳足够 20 次饮用的液体。", "quests.stone_age.water_bucket.title": "水桶", "quests.stone_age.water_bucket.subtitle": "不像你想的那么容易得到", "quests.stone_age.water_bucket.desc": "随身携带水源是永不枯竭的简单方法,但有点笨重。\n\n不幸的是,木桶不能用来喝水,因为它们不能移动源方块,所以尝试在世界上放置它只会产生一个非常小的水坑。", "quests.stone_age.glass_bottles.title": "玻璃瓶", "quests.stone_age.glass_bottles.subtitle": "不如皮革水囊酷", "quests.stone_age.glass_bottles.desc": "玻璃瓶和皮革水囊一样有效,可容纳 500mb 的水。然而,吹制玻璃瓶要等到以后,一旦你有能力塑造黄铜才行。", - "quests.stone_age.water_jug.title": "陶罐", + "quests.stone_age.water_jug.title": "水壶", "quests.stone_age.water_jug.subtitle": "相对容易获得的水", - "quests.stone_age.water_jug.desc": "陶罐是你可以制作的最早的液体容器,但它只能容纳 100mb,所以你每次喝完都需要重新装满它。\n\n陶罐相对脆弱,在你饮用时有随机几率会破碎!", + "quests.stone_age.water_jug.desc": "陶壶是你可以制作的最早的液体容器,但它只能容纳 100mb,所以你每次喝完都需要重新装满它。\n\n陶壶相对脆弱,在你饮用时有随机几率会破碎!", "quests.stone_age.temperature.title": "天气", "quests.stone_age.temperature.subtitle": "今天的天气?痛苦。", "quests.stone_age.temperature.desc": "一个新的世界始于初夏,每个月持续 8 天。季节会变化,随之而来的是温度的变化,这将影响农作物、果树、灌木……还有你!\n\n体温是你需要控制并保持稳定的东西。生命值和饥饿值之间的小三角形显示你当前的温度及其变化趋势。按住潜行键以查看确切数字——左边的数字是你有多湿,右边的数字是温度。", @@ -2386,7 +2526,7 @@ "quests.stone_age.leather.desc": "野生动物被击杀时会掉落生皮。生皮无法直接当作皮革使用,需要先经过鞣制加工方可使用。\n\n与黏土、石材类似,皮革也可以通过敲制工艺进行加工。通过敲制皮革可以制作出皮革盔甲、水囊等物品。\n若您不愿为获取皮革而猎杀动物,且生活在热带环境中,可将菠萝加工为菠萝纤维革作为皮革替代品。这种方式尤其适合素食主义玩家。", "quests.stone_age.leather_armor.title": "皮革护甲", "quests.stone_age.leather_armor.subtitle": "非常基本的保护", - "quests.stone_age.leather_armor.desc": "与《我的世界》原版设定相同,皮革护甲作为最基础的防具套装,虽然防护能力有限,但能帮助穿戴者抵御风吹日晒,并对劈砍类伤害提供还算不错的防御力。", + "quests.stone_age.leather_armor.desc": "与“我的世界”原版设定相同,皮革护甲作为最基础的防具套装,虽然防护能力有限,但能帮助穿戴者抵御风吹日晒,并对劈砍类伤害提供还算不错的防御力。", "quests.stone_age.mining_prep.title": "采矿准备", "quests.stone_age.mining_prep.subtitle": "希望你记得是在哪儿发现的那些矿石标记物!", "quests.stone_age.mining_prep.desc.1": "要跨越石器时代,您将需要大量金属,仅靠拾取地表零星的矿粒是远远不够的。必须向地下深挖,开启真正的采矿之旅。\n假设您&o确实&r标记过铜矿的发现位置,请找到矿石标记分布区域的中心点开始挖掘!矿脉可能埋藏颇深,但只要坚持到底,终将收获丰厚的矿藏。下一页为您准备了首次采矿探险所需的装备清单!", @@ -2395,16 +2535,16 @@ "quests.stone_age.hazards.subtitle": "以为地表很困难?再想想。", "quests.stone_age.hazards.desc.1": "除了怪物,采矿时最大的挑战是处理塌方。如果一个天然石头或矿石方块下面有空气,它被认为是“无支撑的”,并且每次附近方块被开采时都有几率开始塌方。洞穴顶部覆盖着硬化石头,这不会导致坍塌。为了减轻这种情况,最安全的事情就是只挖掘地板,但如果你想安全地挖掘任何其他东西,你必须学习如何使用支撑梁!这些是用原木和锯子制作的。", "quests.stone_age.hazards.desc.2": "《野外指南》中有关于支撑梁工作原理的详细说明和图解,但简而言之:您需要以不超过四格的间距进行布置。只有顶部垂直放置的梁才能实际承重,且其作用范围有限。", - "quests.stone_age.copper_for_anvil.title": "制作砧的铜", + "quests.stone_age.copper_for_anvil.title": "为制作砧准备铜锭", "quests.stone_age.copper_for_anvil.subtitle": "你最好习惯弄到 14 个某种锭。", "quests.stone_age.copper_for_anvil.desc": "砧的制作确实所费不菲!每个砧需要消耗14块金属锭,这些金属锭还需经过焊接加工成7块双锭。\n\n若您尚未开始采矿,现在是时候行动了——毕竟要收集126块小铜粒可是项艰巨的任务。", "quests.stone_age.get_raw_rock.title": "天然岩石", "quests.stone_age.get_raw_rock.subtitle": "不,它不只是“石头”", "quests.stone_age.get_raw_rock.desc": "要制作铜砧,您需要先准备好基础石砧和木炭炉。制作石砧需先获取一块天然火成岩。\n\n获取天然岩石时,请小心挖掘目标岩石&l周边&r的方块。当天然岩石的六个面全部暴露在空气中时,它便会脱落为可拾取的物品形态。最后,对一块天然火成岩右键单击即可将其转化为您的石砧。", - "quests.stone_age.create_forge.title": "锻炉", + "quests.stone_age.create_forge.title": "木炭炉", "quests.stone_age.create_forge.subtitle": "顺带一提,织物不存在。", "quests.stone_age.create_forge.desc": "木炭炉是一种先进的工作站,可用于将材料加热至高温。其加热速度相比坑窑显著更快,且温度控制更为精准。\n\n制作锻炉至少需要7块木炭和5个岩石类方块(如天然岩石或圆石)。\n木炭炉的燃料仅可使用木炭、煤炭或焦炭,不可使用原木。\n\n具体制作方法请查阅《野外指南》中关于木炭坑和木炭炉的详细图文教程。", - "quests.stone_age.rock_anvil.title": "石砧", + "quests.stone_age.rock_anvil.title": "石头砧", "quests.stone_age.rock_anvil.subtitle": "其使用寿命较为有限", "quests.stone_age.rock_anvil.desc": "砧是早期金属加工的基础。要制作真正的金属砧,您需要使用前一级别的砧进行金属锭的焊接操作。由于铜属于最初阶的金属,您必须通过岩石砧台来完成铜锭的焊接——只需用锤子右键单击天然火成岩即可制作石砧。需要注意的是,石砧的功能极为有限,仅能进行焊接操作。若要实现金属的塑形锻造,您仍需升级至对应的金属砧。", "quests.stone_age.quern.title": "手推磨和磨盘", From 88885dd65c02b59e409ba261e33bd328dca875bd Mon Sep 17 00:00:00 2001 From: Pyritie Date: Wed, 8 Oct 2025 21:25:01 +0100 Subject: [PATCH 58/69] changelog --- CHANGELOG.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f1f1d752..ff052e719 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,12 +7,35 @@ - Added quest text for the mars section of the space survival chapter @Pyritie - Added field guide entry for mars crops @Pyritie - Changed the amount of open space windmills require to be extremely more lenient, so they should always work in tree farms @Pyritie +- Soups are now craftable in the food processor (#1980) @Xaligal @Newlumberjack-sys +- Chocolate now melts into 144mB to work better with the ingot molds (#1977) @Xaligal @Newlumberjack-sys +- Added more sand to the mars desert @Pyritie +- Nerfed the hell out of mars quicksand @Pyritie +- All pressure plate crafting recipes now use circuit #3 (#1970) @Nashy1232 +- Plutonium fuel rods now make exactly enough tritiated water for 9 nano wafers (#1978) @TomPlop +- Nerfed dry ice in the fission reactor (#1982) @TomPlop +- Added wind ambient sounds to mars @Pyritie +- Changed the minimum requirements for windmills so now they should still work even in overgrown tree farms @Pyritie +- Axolotls can now be picked up and carried @Pyritie +- Sniffer eggs can now be extracted for Cream @Pyritie +- Adjusted the HP of various mars + moon animals/mobs @Pyritie ### Bug fixes - Fixed linux crash from recipe IDs (#1962) @Xaligal @Pyritie +- Fixed Nuclear and Uranium Waste fluids being the wrong way around (#1978) @TomPlop - Fixed missing texture for interplanetary wireless card (#1965, #1964) @Ko-lja - Fixed glacian trees floating above ground @Pyritie - Fixed tameable mars animals giving twice as much meat as they should @Pyritie - Fixed pyroxenite and keratophyre rocks in various recipes like stone supports @Pyritie +- Fixed uncraftable nuclear fuel rods (#1982) @TomPlop +- Fixed Ostrum Linear Accelerator's multiblock assembly requirements (#1978) @TomPlop +- Fixed the pink bed glacian fur recipe so it now actually needs glacian fur @Pyritie +- Fixed the krypton in the iodine line so it's properly looped +- Fixed not being able to put Bulbkin pie in a firmalife oven @Xaligal +- Fixed missing heat data on baked potatoes @Xaligal +- Fixed being able to nest backpacks and frame packs inside each other infinitely @Xaligal +### Translation updates +- Chinese (simplified) @jmecn +- Ukranian @MetEnBouldry ## [0.11.0] - 05-10-2025 - WARNING! If you're upgrading your world from 0.10 to 0.11, please read the upgrade guide [here](https://github.com/TerraFirmaGreg-Team/Modpack-Modern/wiki/%5BEN%5D-Upgrading-from-0.10-to-0.11). We do not recommend using Alpha versions for progression, but if you do, please make frequent backups! From ef1c220be0194dc3bcc5e46cbcf9d176eab5f3c0 Mon Sep 17 00:00:00 2001 From: TomPlop Date: Wed, 8 Oct 2025 17:12:53 -0400 Subject: [PATCH 59/69] Nerf fluorine cost for refrigerant pellet (#1983) Signed-off-by: TomPlop --- kubejs/server_scripts/tfg/recipes.nuclear.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kubejs/server_scripts/tfg/recipes.nuclear.js b/kubejs/server_scripts/tfg/recipes.nuclear.js index f32a1dc05..4716a7235 100644 --- a/kubejs/server_scripts/tfg/recipes.nuclear.js +++ b/kubejs/server_scripts/tfg/recipes.nuclear.js @@ -309,7 +309,7 @@ function registerTFGNuclearRecipes(event) { .duration(20*36) event.recipes.gtceu.vacuum_freezer('tfg:tetrafluoroethane_gem') - .inputFluids(Fluid.of('tfg:tetrafluoroethane', 1000)) + .inputFluids(Fluid.of('tfg:tetrafluoroethane', 100)) .itemOutputs(Item.of('tfg:tetrafluoroethane_gem', 1)) .EUt(GTValues.VA[GTValues.EV]) .duration(20*14) From b03e7357c2719daeab2638e79405d515c1391409 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Wed, 8 Oct 2025 22:22:55 +0100 Subject: [PATCH 60/69] cl --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ff052e719..ca6795ffb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ - Buffed how many stainless steel jar lids you can get per ingot from 16 to 48 @Pyritie - Adjusted max HP of various moon and mars mobs @Pyritie - Added quest text for the mars section of the space survival chapter @Pyritie -- Added field guide entry for mars crops @Pyritie +- Added field guide entries for mars crops and space animals @Pyritie - Changed the amount of open space windmills require to be extremely more lenient, so they should always work in tree farms @Pyritie - Soups are now craftable in the food processor (#1980) @Xaligal @Newlumberjack-sys - Chocolate now melts into 144mB to work better with the ingot molds (#1977) @Xaligal @Newlumberjack-sys @@ -19,6 +19,7 @@ - Axolotls can now be picked up and carried @Pyritie - Sniffer eggs can now be extracted for Cream @Pyritie - Adjusted the HP of various mars + moon animals/mobs @Pyritie +- Reduced the fluorine cost of refrigerant pellets to 10% (#1983) @TomPlop ### Bug fixes - Fixed linux crash from recipe IDs (#1962) @Xaligal @Pyritie - Fixed Nuclear and Uranium Waste fluids being the wrong way around (#1978) @TomPlop From 2cf16acc29b8c55c60880e6a3fdf42b7f248d4dc Mon Sep 17 00:00:00 2001 From: Pyritie Date: Wed, 8 Oct 2025 22:44:40 +0100 Subject: [PATCH 61/69] Feature/space fauna (#1984) * start of space fauna entry * added 3 * pakku * finished this --- .../quests/chapters/space_survival.snbt | 4 + .../en_us/entries/tfg_tips/space_crops.json | 1 + .../en_us/entries/tfg_tips/space_fauna.json | 192 ++++++++++++++++++ .../tfg/textures/gui/field_guide/sandworm.png | Bin 0 -> 61888 bytes pakku-lock.json | 168 +++++++-------- 5 files changed, 281 insertions(+), 84 deletions(-) create mode 100644 kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_tips/space_fauna.json create mode 100644 kubejs/assets/tfg/textures/gui/field_guide/sandworm.png diff --git a/config/ftbquests/quests/chapters/space_survival.snbt b/config/ftbquests/quests/chapters/space_survival.snbt index 309394180..818155c15 100644 --- a/config/ftbquests/quests/chapters/space_survival.snbt +++ b/config/ftbquests/quests/chapters/space_survival.snbt @@ -875,6 +875,7 @@ { dependencies: ["5AC5AAB9B3758E30"] description: ["{quests.space_survival.soarer.desc}"] + guide_page: "tfc:field_guide tfc:tfg_tips/space_fauna 20" icon: "wan_ancient_beasts:soarer_egg" id: "2F711C064635EF2D" optional: true @@ -896,6 +897,7 @@ { dependencies: ["5AC5AAB9B3758E30"] description: ["{quests.space_survival.sniffer_or_wraptor.desc}"] + guide_page: "tfc:field_guide tfc:tfg_tips/space_fauna 11" id: "5F0D553D08A5985C" subtitle: "{quests.space_survival.sniffer_or_wraptor.subtitle}" tasks: [ @@ -925,6 +927,7 @@ { dependencies: ["3768570EC6535DBB"] description: ["{quests.space_survival.glacian_ram.desc}"] + guide_page: "tfc:field_guide tfc:tfg_tips/space_fauna 15" id: "00E2E32B33A65301" subtitle: "{quests.space_survival.glacian_ram.subtitle}" tasks: [{ @@ -1141,6 +1144,7 @@ { dependencies: ["5AC5AAB9B3758E30"] description: ["{quests.space_survival.surfer.desc}"] + guide_page: "tfc:field_guide tfc:tfg_tips/space_fauna 17" id: "43EBECA48E341C47" optional: true shape: "heart" diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_tips/space_crops.json b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_tips/space_crops.json index 6c44043af..2f32f2dfd 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_tips/space_crops.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_tips/space_crops.json @@ -5,6 +5,7 @@ "pages": [ { "type": "patchouli:text", + "title": "Extraterrestrial Crops", "text": "It turns out Earth isn't the only celestial body with life. During your travels, you may come across other kinds of edible fauna. These all use the same mechanics you're used to on Earth (with some exceptions), and can be grown either in normal Farmland, in a Firmalife $(l:firmalife/greenhouse)Greenhouse$(), or in a GregTech Electric Greenhouse depending on your needs." }, { diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_tips/space_fauna.json b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_tips/space_fauna.json new file mode 100644 index 000000000..aee2a93de --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_tips/space_fauna.json @@ -0,0 +1,192 @@ +{ + "name": "Extraterrestrial Fauna", + "category": "tfc:tfg_tips", + "icon": "minecraft:sniffer_egg", + "pages": [ + { + "type": "patchouli:text", + "title": "Extraterrestrial Fauna", + "text": "Space is home to many other kinds of animals than those you'd find on Earth. A few animals are hostile and will attack the player, but most are passive. Only a few of them are $(l:mechanics/animal_husbandry)domesticatable$() like the livestock on Earth.$(br)Animals you find on other worlds can be divided into two categories: $(item)hot$() and $(item)cold$(). Animals can only survive on planets that either have a similar climate to where they came from, or on $(thing)temperate$() planets like Earth." + }, + { + "type": "patchouli:text", + "text": "Space animals do not require an oxygenated environment, but it will make the area count as \"temperate\" for their survival. For example, if you bring a cold-dwelling animal (like a Sniffer) to a hot planet (like Venus), it will catch on fire, unless it's inside an oxygenated environment.$(br)This makes Earth the ideal place to build a zoo, if you'd like.$(br)You can transport animals between planets using AE2's Spatial Storage system." + }, + { + "type": "patchouli:spotlight", + "item": "tfg:marker/moon", + "title": "Moon Animals", + "text": "$(item)The Moon$() may be pretty barren, but it still has a few animals that call it home.$(br2)It's considered a $(thing)Cold$() world despite the pretty extreme temperature swings.", + "anchor": "moon" + }, + { + "type": "patchouli:entity", + "entity": "tfg:moon_rabbit{NoAI:1b,birth:-100000000L,oldDay:9223372036854775807L,geneticSize:16,MoonRabbitType:5}", + "scale": 1.3, + "offset": -0.3, + "name": "Moon Rabbit", + "text": "Besides their coloring, $(thing)Moon Rabbits$() have identical stats to Earth rabbits. They also eat Chorus Fruit." + }, + { + "type": "patchouli:entity", + "entity": "species:limpet", + "scale": 0.8, + "name": "Limpet", + "text": "$(thing)Limpets$() are a type of snail with ore on their shell. You can obtain the ore with any mining tool. They are passive and can be eaten." + }, + { + "type": "patchouli:entity", + "entity": "ad_astra:star_crawler", + "scale": 0.4, + "name": "Star Crawler", + "text": "$(thing)Star Crawlers$() are a type of starfish. They are hostile and can be eaten." + }, + { + "type": "patchouli:entity", + "entity": "species:birt", + "scale": 0.9, + "name": "Birt", + "text": "$(thing)Birts$() are a type of bird? They lay eggs in their nests, are passive unless attacked, and can be eaten. Their eggs can be thrown to stun targets." + }, + { + "type": "patchouli:empty", + "draw_filler": true + }, + { + "type": "patchouli:spotlight", + "item": "tfg:marker/mars", + "title": "Mars Animals", + "text": "$(item)Mars$() is the planet with an environment closest to Earth's, featuring a wide variety of animals to interact with and crops to feed them (and yourself) with... outside of the huge desert, where almost nothing lives.$(br2)Mars is a $(thing)Cold$() planet.", + "anchor": "mars" + }, + { + "type": "patchouli:image", + "images": [ "tfg:textures/gui/field_guide/sandworm.png" ], + "border": true, + "title": "The Sandworm", + "text": "$(thing)Sandworms$() are alerted by player footsteps. They are the reason almost nothing else lives in the desert.$(br)" + }, + { + "type": "patchouli:text", + "title": "Sniffers", + "text": "$(thing)Sniffers$() are domesticatable animals found between -30 and -102°C. They require a Large Nest to lay their eggs and can be shorn for $(item)Sniffer Tufts$(). Their eggs can be cooked or extracted for Cream. They eat any Mars crop.", + "anchor": "sniffer" + }, + { + "type": "patchouli:entity", + "entity": "tfg:sniffer{NoAI:1b,birth:-100000000L,oldDay:9223372036854775807L,geneticSize:16}", + "scale": 0.45, + "name": " ", + "text": "A sniffer." + }, + { + "type": "patchouli:text", + "title": "Wraptors", + "text": "$(thing)Wraptors$() are domesticatable animals found between -15 and -100°C. They require a Large Nest to lay their eggs and can be shorn for $(item)Wraptor Feathers$(). Their eggs can be cooked or extracted for Wraptor Sugar. They eat any Mars crop.", + "anchor": "wraptor" + }, + { + "type": "patchouli:entity", + "entity": "tfg:wraptor{NoAI:1b,birth:-100000000L,oldDay:9223372036854775807L,geneticSize:16}", + "scale": 0.8, + "name": " ", + "text": "A wraptor." + }, + { + "type": "patchouli:text", + "title": "Glacian Sheep", + "text": "Preferring extremely cold environments below -108°C, $(thing)Glacian Sheep$() are domesticatable animals. They can be shorn for $(item)Glacian Wool$(), an amazing insulator. They eat any Mars crop.", + "anchor": "glacian_sheep" + }, + { + "type": "patchouli:entity", + "entity": "tfg:glacian_ram{NoAI:1b,birth:-100000000L,oldDay:9223372036854775807L,geneticSize:16}", + "scale": 0.7, + "name": " ", + "text": "A glacian ram/ewe." + }, + { + "type": "patchouli:entity", + "entity": "wan_ancient_beasts:surfer", + "scale": 0.35, + "offset": 0.2, + "name": "Surfer", + "text": "$(thing)Surfers$() are semiaquatic passive animals. You can tame them with $(item)Raw Fish$() to ride them underwater. They can also be eaten." + }, + { + "type": "patchouli:entity", + "entity": "wan_ancient_beasts:eater", + "scale": 0.5, + "name": "Eater", + "text": "A top predator, $(thing)Eaters$() are hostile animals found above -109°C. If you can manage to take one down, they can be eaten." + }, + { + "type": "patchouli:entity", + "entity": "species:cruncher", + "scale": 0.7, + "name": "Cruncher", + "text": "$(thing)Crunchers$() are territorial $(item)miniboss$() predators. Feed them meat to stop their regeneration." + }, + { + "type": "patchouli:entity", + "entity": "wan_ancient_beasts:soarer", + "scale": 0.4, + "offset": 1.0, + "name": "Soarer", + "text": "$(thing)Soarers$() are passive animals found above -106°C. You can tame them with $(item)Raw Fish$() to use them as a flying mount. They can also be eaten." + }, + { + "type": "patchouli:entity", + "entity": "wan_ancient_beasts:glider", + "scale": 0.4, + "offset": 0.2, + "name": "Glider", + "text": "Despite their name, $(thing)Gliders$() cannot be tamed or ridden. They are passive and live in areas above -105°C. They enjoy music and can be eaten." + }, + { + "type": "patchouli:entity", + "entity": "wan_ancient_beasts:crusher", + "scale": 0.5, + "offset": 0.5, + "name": "Crusher", + "text": "$(thing)Crushers$() are wild animals found in herds in areas above -100°C. They can be killed for their meat and hard spikes." + }, + { + "type": "patchouli:entity", + "entity": "species:springling", + "scale": 0.9, + "name": "Springling", + "text": "$(thing)Springlings$() are wild animals found above -108°C. Feeding them $(item)Saplings$() will let you ride them and extend their extremely long necks." + }, + { + "type": "patchouli:entity", + "entity": "species:goober", + "scale": 0.6, + "name": "Goober", + "text": "$(thing)Goobers$() are lazy wild animals found above -109°C. They are passive and can be eaten." + }, + { + "type": "patchouli:entity", + "entity": "wan_ancient_beasts:walker", + "scale": 0.6, + "offset": 2.2, + "name": "Walker", + "text": "The gigantic $(thing)Walkers$() inhabit areas above -97°C. They are passive and can be eaten." + }, + { + "type": "patchouli:entity", + "entity": "wan_ancient_beasts:toxlacanth", + "scale": 0.35, + "name": "Toxlacanth", + "text": "$(thing)Toxlacanths$() are aquatic prey animals. It is recommended to kill them from a distance and cook their meat before eating." + }, + { + "type": "patchouli:entity", + "entity": "species:stackatick", + "scale": 0.4, + "name": "Stackatick", + "text": "One of the few animals that can survive the Martian desert, $(thing)Stackaticks$() are passive animals. They cannot be eaten." + } + ], + "read_by_default": true +} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/gui/field_guide/sandworm.png b/kubejs/assets/tfg/textures/gui/field_guide/sandworm.png new file mode 100644 index 0000000000000000000000000000000000000000..e18cb192fac2d5b161a76a95e4e8f119da51636c GIT binary patch literal 61888 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 Date: Wed, 8 Oct 2025 22:55:38 +0100 Subject: [PATCH 62/69] dino hp adjustments --- defaultconfigs/wan_ancient_beasts-server.toml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/defaultconfigs/wan_ancient_beasts-server.toml b/defaultconfigs/wan_ancient_beasts-server.toml index 6dfa60638..c665ed8e1 100644 --- a/defaultconfigs/wan_ancient_beasts-server.toml +++ b/defaultconfigs/wan_ancient_beasts-server.toml @@ -3,7 +3,7 @@ [sniffer] #Sniffer health [default: 75] #Range: 1.0 ~ 1024.0 - health = 90.0 + health = 80.0 #Sniffer armor [default: 3] #Range: 0.0 ~ 30.0 armor = 3.0 @@ -15,7 +15,7 @@ [eater] #Eater health [default: 100] #Range: 1.0 ~ 1024.0 - health = 300.0 + health = 250.0 #Eater attack damage [default: 30] #Range: 0.0 ~ 1024.0 damage = 30.0 @@ -30,7 +30,7 @@ [walker] #Walker health [default: 200] #Range: 1.0 ~ 1024.0 - health = 400.0 + health = 350.0 #Walker armor [default: 5] #Range: 0.0 ~ 30.0 armor = 8.0 @@ -42,7 +42,7 @@ [crusher] #Crusher health [default: 50] #Range: 1.0 ~ 1024.0 - health = 120.0 + health = 90.0 #Crusher attack damage [default: 10] #Range: 0.0 ~ 1024.0 damage = 10.0 @@ -57,13 +57,13 @@ [glider] #Glider health [default: 25] #Range: 1.0 ~ 1024.0 - health = 100.0 + health = 80.0 #Soarer Attributes [soarer] #Soarer health [default: 40] #Range: 1.0 ~ 1024.0 - health = 150.0 + health = 110.0 #Soarer attack damage [default: 15] #Range: 0.0 ~ 1024.0 damage = 25.0 @@ -72,5 +72,5 @@ [surfer] #Surfer health [default: 30] #Range: 1.0 ~ 1024.0 - health = 100.0 + health = 80.0 From 1b327bf83e933b40253b181537efebb7e8c85682 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Wed, 8 Oct 2025 23:22:13 +0100 Subject: [PATCH 63/69] something fishy is going on --- .../field_guide/en_us/entries/tfg_tips/space_fauna.json | 4 ++-- kubejs/data/tfg/worldgen/biome/mars/amber_hills.json | 4 ++-- kubejs/data/tfg/worldgen/biome/mars/amber_plains.json | 4 ++-- kubejs/data/tfg/worldgen/biome/mars/martian_mountains.json | 4 ++-- kubejs/data/tfg/worldgen/biome/mars/rusticus_hills.json | 4 ++-- kubejs/data/tfg/worldgen/biome/mars/rusticus_plains.json | 4 ++-- kubejs/data/tfg/worldgen/biome/mars/sangnum_hills.json | 4 ++-- kubejs/data/tfg/worldgen/biome/mars/sangnum_plains.json | 4 ++-- 8 files changed, 16 insertions(+), 16 deletions(-) diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_tips/space_fauna.json b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_tips/space_fauna.json index aee2a93de..7e5ba31b9 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_tips/space_fauna.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_tips/space_fauna.json @@ -149,7 +149,7 @@ "scale": 0.5, "offset": 0.5, "name": "Crusher", - "text": "$(thing)Crushers$() are wild animals found in herds in areas above -100°C. They can be killed for their meat and hard spikes." + "text": "$(thing)Crushers$() are semihostile animals found in herds in areas above -100°C. They can be killed for their meat and hard spikes." }, { "type": "patchouli:entity", @@ -185,7 +185,7 @@ "entity": "species:stackatick", "scale": 0.4, "name": "Stackatick", - "text": "One of the few animals that can survive the Martian desert, $(thing)Stackaticks$() are passive animals. They cannot be eaten." + "text": "One of the few animals that can survive the Martian desert, $(thing)Stackaticks$() are passive prey animals. They cannot be eaten." } ], "read_by_default": true diff --git a/kubejs/data/tfg/worldgen/biome/mars/amber_hills.json b/kubejs/data/tfg/worldgen/biome/mars/amber_hills.json index 6c33e10b3..280fb90d7 100644 --- a/kubejs/data/tfg/worldgen/biome/mars/amber_hills.json +++ b/kubejs/data/tfg/worldgen/biome/mars/amber_hills.json @@ -190,8 +190,8 @@ }, { "type": "wan_ancient_beasts:surfer", - "maxCount": 3, - "minCount": 2, + "maxCount": 2, + "minCount": 1, "weight": 100 } ] diff --git a/kubejs/data/tfg/worldgen/biome/mars/amber_plains.json b/kubejs/data/tfg/worldgen/biome/mars/amber_plains.json index 31daa1542..f72c1f9de 100644 --- a/kubejs/data/tfg/worldgen/biome/mars/amber_plains.json +++ b/kubejs/data/tfg/worldgen/biome/mars/amber_plains.json @@ -191,8 +191,8 @@ }, { "type": "wan_ancient_beasts:surfer", - "maxCount": 3, - "minCount": 2, + "maxCount": 2, + "minCount": 1, "weight": 100 } ] diff --git a/kubejs/data/tfg/worldgen/biome/mars/martian_mountains.json b/kubejs/data/tfg/worldgen/biome/mars/martian_mountains.json index fd3adef6d..b764745be 100644 --- a/kubejs/data/tfg/worldgen/biome/mars/martian_mountains.json +++ b/kubejs/data/tfg/worldgen/biome/mars/martian_mountains.json @@ -187,8 +187,8 @@ }, { "type": "wan_ancient_beasts:surfer", - "maxCount": 3, - "minCount": 2, + "maxCount": 2, + "minCount": 1, "weight": 100 } ] diff --git a/kubejs/data/tfg/worldgen/biome/mars/rusticus_hills.json b/kubejs/data/tfg/worldgen/biome/mars/rusticus_hills.json index d70050440..43eb9f5c7 100644 --- a/kubejs/data/tfg/worldgen/biome/mars/rusticus_hills.json +++ b/kubejs/data/tfg/worldgen/biome/mars/rusticus_hills.json @@ -190,8 +190,8 @@ }, { "type": "wan_ancient_beasts:surfer", - "maxCount": 3, - "minCount": 2, + "maxCount": 2, + "minCount": 1, "weight": 100 } ] diff --git a/kubejs/data/tfg/worldgen/biome/mars/rusticus_plains.json b/kubejs/data/tfg/worldgen/biome/mars/rusticus_plains.json index 0a6d4446f..40f8d9518 100644 --- a/kubejs/data/tfg/worldgen/biome/mars/rusticus_plains.json +++ b/kubejs/data/tfg/worldgen/biome/mars/rusticus_plains.json @@ -191,8 +191,8 @@ }, { "type": "wan_ancient_beasts:surfer", - "maxCount": 3, - "minCount": 2, + "maxCount": 2, + "minCount": 1, "weight": 100 } ] diff --git a/kubejs/data/tfg/worldgen/biome/mars/sangnum_hills.json b/kubejs/data/tfg/worldgen/biome/mars/sangnum_hills.json index ca4418cf4..2b14b2fc0 100644 --- a/kubejs/data/tfg/worldgen/biome/mars/sangnum_hills.json +++ b/kubejs/data/tfg/worldgen/biome/mars/sangnum_hills.json @@ -190,8 +190,8 @@ }, { "type": "wan_ancient_beasts:surfer", - "maxCount": 3, - "minCount": 2, + "maxCount": 2, + "minCount": 1, "weight": 100 } ] diff --git a/kubejs/data/tfg/worldgen/biome/mars/sangnum_plains.json b/kubejs/data/tfg/worldgen/biome/mars/sangnum_plains.json index 368bbe1c3..b9ce5b374 100644 --- a/kubejs/data/tfg/worldgen/biome/mars/sangnum_plains.json +++ b/kubejs/data/tfg/worldgen/biome/mars/sangnum_plains.json @@ -191,8 +191,8 @@ }, { "type": "wan_ancient_beasts:surfer", - "maxCount": 3, - "minCount": 2, + "maxCount": 2, + "minCount": 1, "weight": 100 } ] From 1a815a129e7ee36f94f102cd14e559d9c9ad05a1 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Wed, 8 Oct 2025 23:22:24 +0100 Subject: [PATCH 64/69] added required data for new fission cooling --- kubejs/server_scripts/tfg/recipes.nuclear.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/kubejs/server_scripts/tfg/recipes.nuclear.js b/kubejs/server_scripts/tfg/recipes.nuclear.js index 4716a7235..039697afd 100644 --- a/kubejs/server_scripts/tfg/recipes.nuclear.js +++ b/kubejs/server_scripts/tfg/recipes.nuclear.js @@ -224,7 +224,8 @@ function registerTFGNuclearRecipes(event) { .outputFluids(Fluid.of('gtceu:dense_steam', 2)) .perTick(false) .dimension('ad_astra:mars') - .duration(1); + .addData("coolant_heat_per_tick", 1) + .duration(1); // Recipe for Uranium Reactor Just keeping it in case we got mod issues /* event.recipes.gtceu.fission_reactor('uranium_radioactive') @@ -249,7 +250,8 @@ function registerTFGNuclearRecipes(event) { .inputFluids(Fluid.of('tfg:heavy_water', 20)) .outputFluids(Fluid.of('gtceu:radioactive_steam', 10)) .perTick(false) - .duration(1); + .addData("coolant_heat_per_tick", 1) + .duration(1); // Recipe for Plutonium Reactor Just keeping it in case we got mod issues /* event.recipes.gtceu.fission_reactor('plutonium_irradiated') @@ -274,7 +276,8 @@ function registerTFGNuclearRecipes(event) { .inputFluids(Fluid.of('tfg:heavy_water', 25)) .outputFluids(Fluid.of('gtceu:irradiated_steam', 40)) .perTick(false) - .duration(1); + .addData("coolant_heat_per_tick", 1) + .duration(1); // Fission Reactor for Energy Just keeping it in case we got mod issues /* From 98a0bf9e1895a214d63f2f9a56de72610087c42c Mon Sep 17 00:00:00 2001 From: Pyritie Date: Wed, 8 Oct 2025 23:22:51 +0100 Subject: [PATCH 65/69] changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ca6795ffb..443378d78 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,7 @@ - Fixed not being able to put Bulbkin pie in a firmalife oven @Xaligal - Fixed missing heat data on baked potatoes @Xaligal - Fixed being able to nest backpacks and frame packs inside each other infinitely @Xaligal +- Eaters are now actually hostile @Pyritie ### Translation updates - Chinese (simplified) @jmecn - Ukranian @MetEnBouldry From bae24058c3e670e592d62290c98924dff2650d30 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Wed, 8 Oct 2025 23:56:29 +0100 Subject: [PATCH 66/69] removing these just in case they're what's spawning the warrior --- .../nahida_biome_modifier_adds.json | 25 ------------------- .../nahida_biome_modifier_removes.json | 21 ---------------- 2 files changed, 46 deletions(-) delete mode 100644 kubejs/data/primitive_creatures/forge/biome_modifier/nahida_biome_modifier_adds.json delete mode 100644 kubejs/data/primitive_creatures/forge/biome_modifier/nahida_biome_modifier_removes.json diff --git a/kubejs/data/primitive_creatures/forge/biome_modifier/nahida_biome_modifier_adds.json b/kubejs/data/primitive_creatures/forge/biome_modifier/nahida_biome_modifier_adds.json deleted file mode 100644 index 78e62ffd2..000000000 --- a/kubejs/data/primitive_creatures/forge/biome_modifier/nahida_biome_modifier_adds.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "forge:add_spawns", - "biomes": [ - "tfc:plains", - "tfc:hills", - "tfc:lowlands", - "tfc:low_canyons", - "tfc:rolling_hills", - "tfc:badlands", - "tfc:inverted_badlands", - "tfc:plateau", - "tfc:canyons", - "tfc:old_mountains", - "tfc:volcanic_mountains", - "tfc:shore", - "tfc:tidal_flats", - "tfc:salt_marsh" - ], - "spawners": { - "type": "primitive_creatures:nahida", - "weight": 2, - "minCount": 1, - "maxCount": 1 - } -} \ No newline at end of file diff --git a/kubejs/data/primitive_creatures/forge/biome_modifier/nahida_biome_modifier_removes.json b/kubejs/data/primitive_creatures/forge/biome_modifier/nahida_biome_modifier_removes.json deleted file mode 100644 index 537070638..000000000 --- a/kubejs/data/primitive_creatures/forge/biome_modifier/nahida_biome_modifier_removes.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:remove_spawns", - "biomes": [ - "tfc:deep_ocean", - "tfc:deep_ocean_trench", - "tfc:lake", - "tfc:mountain_lake", - "tfc:mountains", - "tfc:ocean", - "tfc:ocean_reef", - "tfc:oceanic_mountain_lake", - "tfc:oceanic_mountains", - "tfc:old_mountain_lake", - "tfc:plateau_lake", - "tfc:river", - "tfc:volcanic_mountain_lake", - "tfc:volcanic_oceanic_mountain_lake", - "tfc:volcanic_oceanic_mountains" - ], - "entity_types": "primitive_creatures:nahida" -} \ No newline at end of file From 36f0dd07f9ec8a255d8c54036e53122a318af6c2 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Wed, 8 Oct 2025 23:56:36 +0100 Subject: [PATCH 67/69] pakku --- pakku-lock.json | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/pakku-lock.json b/pakku-lock.json index 42ee0255a..6f81d6cfe 100644 --- a/pakku-lock.json +++ b/pakku-lock.json @@ -13760,7 +13760,7 @@ "files": [ { "type": "modrinth", - "file_name": "TerraFirmaGreg-Core-Modern-0.8.0.jar", + "file_name": "TerraFirmaGreg-Core-Modern-0.8.1.jar", "mc_versions": [ "1.20.1" ], @@ -13769,23 +13769,23 @@ "neoforge" ], "release_type": "release", - "url": "https://cdn.modrinth.com/data/lNttW2Xl/versions/y8JSrLy0/TerraFirmaGreg-Core-Modern-0.8.0.jar", - "id": "y8JSrLy0", + "url": "https://cdn.modrinth.com/data/lNttW2Xl/versions/7CCFJYVG/TerraFirmaGreg-Core-Modern-0.8.1.jar", + "id": "7CCFJYVG", "parent_id": "lNttW2Xl", "hashes": { - "sha512": "787d4f80a61f63ddf9e55439caa917144c7899c189ec470ba5173047bbaeac59953854cdcbb1e4f8d0dd8db8f40c8a49d7b75d752f5a1a11965cf13000160471", - "sha1": "b87dfdc9e162a6ab064296b5f48fd73abac2a314" + "sha512": "d4206e8c0eccaacdb304de69cfb75ec466e07b6fbf035fcdc24e37c561824e31200088f7322345e854528a80dac50d55daed13e9961cb4a83636d0a8c4e0c07b", + "sha1": "71417a385c9a406aebf8e9827b4ccc830072aa5c" }, "required_dependencies": [ - "7tG215v7", - "JaCEZUhg" + "JaCEZUhg", + "7tG215v7" ], - "size": 9166446, - "date_published": "2025-10-05T16:37:05.157397Z" + "size": 9184973, + "date_published": "2025-10-08T22:33:51.510751Z" }, { "type": "curseforge", - "file_name": "TerraFirmaGreg-Core-Modern-0.8.0.jar", + "file_name": "TerraFirmaGreg-Core-Modern-0.8.1.jar", "mc_versions": [ "1.20.1" ], @@ -13794,19 +13794,19 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/7070/468/TerraFirmaGreg-Core-Modern-0.8.0.jar", - "id": "7070468", + "url": "https://edge.forgecdn.net/files/7084/536/TerraFirmaGreg-Core-Modern-0.8.1.jar", + "id": "7084536", "parent_id": "513402", "hashes": { - "sha1": "b87dfdc9e162a6ab064296b5f48fd73abac2a314", - "md5": "257da213b78e0ea114f3598d545b25bc" + "sha1": "71417a385c9a406aebf8e9827b4ccc830072aa5c", + "md5": "ab87dd9abde4785f68e130de55b1b0d9" }, "required_dependencies": [ "890405", "302973" ], - "size": 9166446, - "date_published": "2025-10-05T16:37:00.323Z" + "size": 9184973, + "date_published": "2025-10-08T22:33:46.437Z" } ] }, From 180abcd610c1c584ee83d34f65ebbd71096a2607 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Wed, 8 Oct 2025 23:57:08 +0100 Subject: [PATCH 68/69] 0.11.1 cl --- CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 443378d78..78ab88666 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## [Unreleased] ### Changes +### Bug fixes + +## [0.11.1] - 08-10-2025 +### Changes - Buffed how many stainless steel jar lids you can get per ingot from 16 to 48 @Pyritie - Adjusted max HP of various moon and mars mobs @Pyritie - Added quest text for the mars section of the space survival chapter @Pyritie @@ -37,7 +41,6 @@ - Eaters are now actually hostile @Pyritie ### Translation updates - Chinese (simplified) @jmecn -- Ukranian @MetEnBouldry ## [0.11.0] - 05-10-2025 - WARNING! If you're upgrading your world from 0.10 to 0.11, please read the upgrade guide [here](https://github.com/TerraFirmaGreg-Team/Modpack-Modern/wiki/%5BEN%5D-Upgrading-from-0.10-to-0.11). We do not recommend using Alpha versions for progression, but if you do, please make frequent backups! From 4615054c543b1d8131e26f531b717cfa4a147b09 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 Oct 2025 04:05:42 +0500 Subject: [PATCH 69/69] Bump softprops/action-gh-release in the dependencies group (#1969) Bumps the dependencies group with 1 update: [softprops/action-gh-release](https://github.com/softprops/action-gh-release). Updates `softprops/action-gh-release` from 2.3.3 to 2.3.4 - [Release notes](https://github.com/softprops/action-gh-release/releases) - [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md) - [Commits](https://github.com/softprops/action-gh-release/compare/v2.3.3...v2.3.4) --- updated-dependencies: - dependency-name: softprops/action-gh-release dependency-version: 2.3.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1db19c5fb..fc9988e60 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -438,7 +438,7 @@ jobs: - name: 🚀 Create release id: release - uses: softprops/action-gh-release@v2.3.3 + uses: softprops/action-gh-release@v2.3.4 with: name: ${{ needs.info.outputs.project_version }} tag_name: ${{ needs.info.outputs.project_version }}