The big green PR (#2694)

* blocks

* more textures

* more textures more textures

* blocks

* more textures

* more textures more textures

* blocks

* more textures

* more textures more textures

* blocks

* more textures

* more textures more textures

* firmalife gh stuff

* chloroplasts and brick regex

* gh recipes

* pisciculture fishery

* I am going insane

* more casings = more gooder

* rotten voiding cover

* greenhouse glory

* Is this it chat

* not needed

Signed-off-by: Redeix <redeix.m@gmail.com>

* missed in conflicts

Signed-off-by: Redeix <redeix.m@gmail.com>

* consumerism

* re-add tag import

* remove unused object map

* id normalizer function

---------

Signed-off-by: Redeix <redeix.m@gmail.com>
This commit is contained in:
Redeix 2026-01-10 19:30:46 -06:00 committed by GitHub
parent 3899512635
commit 900e1de8e9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
340 changed files with 3654 additions and 798 deletions

View file

@ -57,50 +57,6 @@ const registerTFCRecipes = (event) => {
event.recipes.tfc.quern(element.output, element.input)
.id(`tfg:quern/${element.name}`)
})
//#region Рецепты электрической теплицы
// Дерево
global.TFC_WOOD_TYPES.forEach(wood => {
generateGreenHouseRecipe(event, `8x tfc:wood/sapling/${wood}`, '#tfc:any_fresh_water', 16000, `64x tfc:wood/log/${wood}`,
`tfg:greenhouse/${wood}`, 'minecraft:overworld', 16, `32x tfc:wood/sapling/${wood}`, GTValues.VH[GTValues.LV])
})
global.AFC_SAPLINGS.forEach(x => {
generateGreenHouseRecipe(event, `8x afc:wood/sapling/${x.sapling}`, '#tfc:any_fresh_water', 16000, `64x ${x.log}`,
`tfg:greenhouse/${x.sapling}`, 'minecraft:overworld', 16, `32x afc:wood/sapling/${x.sapling}`, GTValues.VH[GTValues.LV])
})
// Семена фруктов
global.TFC_GREENHOUSE_FRUIT_RECIPE_COMPONENTS.forEach(element => {
generateGreenHouseRecipe(event, element.input, '#tfc:any_fresh_water', element.fluid_amount, element.output,
element.name, 'minecraft:overworld', 8, element.input, GTValues.VH[GTValues.LV])
})
// Семена овощей
global.TFC_GREENHOUSE_VEGETABLE_RECIPE_COMPONENTS.forEach(element => {
generateGreenHouseRecipe(event, element.input, '#tfc:any_fresh_water', element.fluid_amount, element.output,
element.name, null, 8, element.input, GTValues.VH[GTValues.LV])
})
// Семена ягод
global.TFC_GREENHOUSE_BERRY_RECIPE_COMPONENTS.forEach(element => {
generateGreenHouseRecipe(event, element.input, '#tfc:any_fresh_water', element.fluid_amount, element.output,
element.name, null, 8, element.input, GTValues.VH[GTValues.LV])
})
// Растения
Ingredient.of('#tfc:plants').subtract('#tfc:wild_fruits').stacks.forEach(element => {
const itemId = element.id;
const recipeId = `greenhouse_${itemId.replace(':', '_')}`;
generateGreenHouseRecipe(event, itemId, '#tfc:any_fresh_water', 8000, `8x ${itemId}`,
recipeId, null, 8, itemId, GTValues.VH[GTValues.LV]);
});
//#endregion
// Доменная печь
event.recipes.gtceu.shaped('tfc:blast_furnace', [
'AAA',

View file

@ -1,6 +1,8 @@
// priority: 0
"use strict";
const ForgeRegistries = Java.loadClass('net.minecraftforge.registries.ForgeRegistries');
/** @param {TagEvent.Item} event */
function registerTFCItemTags(event) {
// Теги для соответствия инструментов TFC и GT
@ -511,11 +513,21 @@ function registerTFCBlockTags(event) {
event.add("tfc:forge_invisible_whitelist", "greate:stainless_steel_mechanical_pump");
event.add("tfc:forge_invisible_whitelist", "greate:titanium_mechanical_pump");
//Allows any block with the word "brick" in its id to be used as bloomery and forge insulation.
//Add blacklisted words to the const with | between.
const brick_blacklist = "drying|slab|stairs|wall|additionalplacements";
event.add("tfc:bloomery_insulation", `/^(?=.*brick)(?!.*(${brick_blacklist})).*/`);
event.add("tfc:forge_insulation", `/^(?=.*brick)(?!.*(${brick_blacklist})).*/`);
// Allows any block with the word "brick" in its id to be used as bloomery and forge insulation.
// Optimized to compute matching blocks once instead of regex scanning per tag like before.
// Blacklist removes blocks that are unwanted.
const blacklist = ["drying", "slab", "stairs", "wall", "additionalplacements", "fence", "roof", "bridge"];
const matches = [];
ForgeRegistries.BLOCKS.getValues().forEach(block => {
const id = String(ForgeRegistries.BLOCKS.getKey(block));
if (id.includes("brick") && !blacklist.some(no_no_word => id.includes(no_no_word))) {
matches.push(id);
};
});
["tfc:bloomery_insulation", "tfc:forge_insulation"].forEach(tag => {
matches.forEach(id => event.add(tag, id));
});
event.add("tfc:forge_insulation", 'create:depot');
global.TFC_STONE_TYPES.forEach((stone) => {