Stone dust rework (#2782)

* geology

* starting some loot table stuff

* more stuff

* swap some rocks

* refactor

* phew

* drive-by fix

* all done I think

* remove sylvite

* oh yeah baby it's all coming together

* cleaned up some lines that didn't do anything, added more comments, removed log spam

* blah blah

* fix drying mat

* fix ladders

* tfc, beneath, and moon stuff done...? this is gonna take 5ever

* a

* some sand stuff, more stone types

* wrong way around

* unifying various brick block recipes

* remove shaped create deco brick recipes

* some progress on block creation

* we got into the create world screen!

* getting somewhere

* Reloaded with no KubeJS errors!

* new assets

* I thiiiink that's about everything

* fix some stonecutting

* recipe declared but never used
This commit is contained in:
Pyritie 2026-01-19 22:39:15 +00:00 committed by GitHub
parent 72226deac0
commit 89030d3564
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
73 changed files with 2894 additions and 5936 deletions

View file

@ -905,7 +905,7 @@
Count: 1
id: "ftbfiltersystem:smart_filter"
tag: {
"ftbfiltersystem:filter": "item_tag(forge:mars_stone_dusts)"
"ftbfiltersystem:filter": "item_tag(forge:dusts/ochrum)"
}
}
type: "item"

View file

@ -0,0 +1,116 @@
{
"__COMMENT__": "This file was auto generated by the LanguageMerger, read the file \".README IF TRANSLATING\" found in \"minecraft/kubejs\" for more information.",
"block.buildinggadgets2.render_block": "Служебный блок рендера (НЕ ИСПОЛЬЗОВАТЬ)",
"block.buildinggadgets2.template_manager": "Менеджер шаблонов",
"buildinggadgets2.book.landing_text": "Строить стало проще! (Даже если Грег опять требует EU.)",
"buildinggadgets2.book.name": "Гаджеты для чайников",
"buildinggadgets2.buttons.copy": "Копирование",
"buildinggadgets2.buttons.load": "Загрузить",
"buildinggadgets2.buttons.materials": "Материалы",
"buildinggadgets2.buttons.paste": "Вставка",
"buildinggadgets2.buttons.render": "Режим рендера",
"buildinggadgets2.buttons.save": "Сохранить",
"buildinggadgets2.fade": "Затухание",
"buildinggadgets2.grow": "Расширение области",
"buildinggadgets2.growup": "Расширение вверх",
"buildinggadgets2.gui.range": "Рабочий радиус",
"buildinggadgets2.keymapping.mode-switch": "Смена режима гаджета",
"buildinggadgets2.messages.anchorcleared": "Якорь сброшен",
"buildinggadgets2.messages.anchorset": "Якорь установлен: ",
"buildinggadgets2.messages.areatoolarge": "Превышен допустимый размер области. Максимум: %d. Текущий: %d",
"buildinggadgets2.messages.bindfailed": "Ошибка привязки: недопустимый блок",
"buildinggadgets2.messages.bindremoved": "Привязка удалена",
"buildinggadgets2.messages.bindsuccess": "Инвентарь привязан к: %s",
"buildinggadgets2.messages.copyblocks": "Скопировано блоков: %d",
"buildinggadgets2.messages.copycoordsfailed": "Ошибка копирования координат",
"buildinggadgets2.messages.cutblocks": "Вырезано блоков: %d",
"buildinggadgets2.messages.cutinprogress": "Операция вырезания выполняется",
"buildinggadgets2.messages.invalidblock": "Недопустимый блок",
"buildinggadgets2.messages.namealreadyexists": "Указанное имя уже используется",
"buildinggadgets2.messages.namerequired": "Для редпринта требуется имя",
"buildinggadgets2.messages.notenoughenergy": "Недостаточно EU для выполнения операции. Требуется: %d EU. Доступно: %d EU",
"buildinggadgets2.messages.outofpower": "Энергия гаджета исчерпана",
"buildinggadgets2.messages.overwritecut": "В гаджете уже сохранены данные. Повторное действие перезапишет их",
"buildinggadgets2.messages.range_set": "Рабочий радиус установлен: %d",
"buildinggadgets2.messages.redprintgivefail": "Не удалось выдать редпринт %s игроку %s",
"buildinggadgets2.messages.redprintremovefail": "Ошибка удаления редпринта: %s",
"buildinggadgets2.messages.redprintremovesuccess": "Редпринт удалён: %s",
"buildinggadgets2.messages.relativepaste": "Относительная вставка: [%s]",
"buildinggadgets2.messages.render_set": "Тип рендера установлен: %s",
"buildinggadgets2.messages.undofailedunloaded": "Отмена невозможна: чанки не загружены: %s",
"buildinggadgets2.modes.build_to_me": "Построение к игроку",
"buildinggadgets2.modes.copy": "Режим копирования",
"buildinggadgets2.modes.cut": "Режим вырезания",
"buildinggadgets2.modes.grid": "Сеточный режим",
"buildinggadgets2.modes.horizontal_row": "Горизонтальный ряд",
"buildinggadgets2.modes.horizontal_wall": "Горизонтальная стена",
"buildinggadgets2.modes.paste": "Режим вставки",
"buildinggadgets2.modes.stairs": "Лестничный режим",
"buildinggadgets2.modes.surface": "Режим поверхности",
"buildinggadgets2.modes.vertical_column": "Вертикальная колонна",
"buildinggadgets2.modes.vertical_wall": "Вертикальная стена",
"buildinggadgets2.radialmenu.anchor": "Якорь",
"buildinggadgets2.radialmenu.bind": "Привязка инвентаря",
"buildinggadgets2.radialmenu.connected_area": "Связанная область",
"buildinggadgets2.radialmenu.copypastemenu": "Меню параметров",
"buildinggadgets2.radialmenu.cut": "Вырезание",
"buildinggadgets2.radialmenu.fuzzy": "Нечёткое сопоставление",
"buildinggadgets2.radialmenu.materiallist": "Список материалов",
"buildinggadgets2.radialmenu.raytracefluids": "Учитывать жидкости",
"buildinggadgets2.radialmenu.rotate": "Поворот",
"buildinggadgets2.radialmenu.undo": "Отмена операции",
"buildinggadgets2.riseup": "Подъём",
"buildinggadgets2.screen.absolutecoords": "Абсолютные координаты",
"buildinggadgets2.screen.affecttiles": "Обрабатывать блок-сущности",
"buildinggadgets2.screen.cancel": "Отмена",
"buildinggadgets2.screen.clear": "Очистить",
"buildinggadgets2.screen.close": "Закрыть",
"buildinggadgets2.screen.confirm": "Подтвердить",
"buildinggadgets2.screen.copyheading": "Параметры выделения",
"buildinggadgets2.screen.copysubheading": "Абсолютный режим использует координаты блоков",
"buildinggadgets2.screen.depth": "Глубина",
"buildinggadgets2.screen.destructiontoolarge": "Область разрушения превышает лимит",
"buildinggadgets2.screen.down": "Вниз",
"buildinggadgets2.screen.end": "Конец",
"buildinggadgets2.screen.invalidjson": "Недопустимый JSON",
"buildinggadgets2.screen.left": "Влево",
"buildinggadgets2.screen.missingasc": "Не хватает (по возр.)",
"buildinggadgets2.screen.missingdesc": "Не хватает (по убыв.)",
"buildinggadgets2.screen.namefieldtext": "имя?",
"buildinggadgets2.screen.paste_replace": "Заменять блоки (дроп отсутствует)",
"buildinggadgets2.screen.pasteheading": "Параметры размещения",
"buildinggadgets2.screen.placeatop": "Разместить сверху",
"buildinggadgets2.screen.relativecoords": "Относительные координаты",
"buildinggadgets2.screen.requiredasc": "Требуется (по возр.)",
"buildinggadgets2.screen.requireddesc": "Требуется (по убыв.)",
"buildinggadgets2.screen.revert": "Сброс",
"buildinggadgets2.screen.right": "Вправо",
"buildinggadgets2.screen.sortaz": "Сортировать А–Я",
"buildinggadgets2.screen.sortza": "Сортировать Я–А",
"buildinggadgets2.screen.start": "Начало",
"buildinggadgets2.screen.templateplaceholder": "Имя шаблона",
"buildinggadgets2.screen.up": "Вверх",
"buildinggadgets2.snap": "ЩЁЛК!",
"buildinggadgets2.squish": "Сжатие",
"buildinggadgets2.templatename": "Имя: %s",
"buildinggadgets2.tooltips.blockstate": "Блок: %s",
"buildinggadgets2.tooltips.boundto": "Привязано к: %s:%s",
"buildinggadgets2.tooltips.energy": "Энергия: %d / %d EU",
"buildinggadgets2.tooltips.holdshift": "Удерживайте Shift для технической информации",
"buildinggadgets2.tooltips.mode": "Режим: %s",
"buildinggadgets2.tooltips.range": "Рабочий радиус: %d",
"buildinggadgets2.voidwarning": "ВНИМАНИЕ: удалённые блоки не оставляют дроп",
"item.buildinggadgets2.gadget_building": "Строительный гаджет",
"item.buildinggadgets2.gadget_copy_paste": "Гаджет копирования и вставки",
"item.buildinggadgets2.gadget_cut_paste": "Гаджет вырезания и вставки",
"item.buildinggadgets2.gadget_destruction": "Гаджет разрушения",
"item.buildinggadgets2.gadget_exchanging": "Гаджет замены",
"item.buildinggadgets2.redprint": "Редпринт",
"item.buildinggadgets2.template": "Шаблон",
"itemGroup.buildinggadgets2": "Строительные гаджеты 2",
"key.buildinggadgets2.anchor": "Якорь",
"key.buildinggadgets2.category": "Строительные гаджеты 2",
"key.buildinggadgets2.range": "Рабочий радиус",
"key.buildinggadgets2.settings_menu": "Меню параметров",
"key.buildinggadgets2.undo": "Отмена"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 546 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 936 B

After

Width:  |  Height:  |  Size: 657 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 499 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 507 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 458 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 631 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 476 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 540 B

After

Width:  |  Height:  |  Size: 350 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 553 B

After

Width:  |  Height:  |  Size: 358 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 573 B

After

Width:  |  Height:  |  Size: 365 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 568 B

After

Width:  |  Height:  |  Size: 360 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 555 B

After

Width:  |  Height:  |  Size: 360 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 388 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 B

View file

@ -40,8 +40,8 @@
"hardened": "tfg:rock/hardened_red_granite",
"gravel": "tfg:rock/gravel_red_granite",
"cobble": "gtceu:red_granite_cobblestone",
"sand": "tfc:sand/red",
"sandstone": "tfc:raw_sandstone/red",
"sand": "minecraft:red_sand",
"sandstone": "minecraft:red_sandstone",
"spike": "tfg:spike/red_granite_spike",
"loose": "tfg:loose/red_granite"
},

View file

@ -1,9 +0,0 @@
{
"asset_name": "glass_tfc",
"description": {
"color": "#c2c2c6",
"translate": "trim_material.tfc.glass_tfc"
},
"ingredient": "gtceu:exquisite_glass_gem",
"item_model_index": 0.189
}

View file

@ -1,9 +0,0 @@
{
"asset_name": "glass_tfc",
"description": {
"color": "#c2c2c6",
"translate": "trim_material.tfc.glass_tfc"
},
"ingredient": "gtceu:exquisite_glass_gem",
"item_model_index": 0.189
}

View file

@ -131,25 +131,25 @@ const registerChalkRecipes = (evt) => {
//Mix dusts for chalk sticks with clay to make an unfired chalk stick. Greggy or Create lets you use tiny dusts if needed
evt.recipes.firmalife.mixing_bowl()
.itemIngredients(["minecraft:clay_ball", "#chalk:dusts_for_chalks"])
.itemIngredients(["minecraft:clay_ball", "tfg:sedimentary_carbonate_dust"])
.outputItem("tfg:unfired_chalk")
.id(`chalk:mixing_bowl/unfired_chalk_stick_from_dust`)
evt.recipes.tfc.heating(`tfg:unfired_chalk`, 700)
.resultItem(`chalk:white_chalk`)
.id(`chalk:heating/undyed_chalk`)
global.MINECRAFT_DYE_NAMES.forEach(dyeName => {
evt.recipes.tfc.barrel_sealed(1000)
.inputItem('chalk:white_chalk')
.inputItem('#chalk:chalks')
.inputFluid(Fluid.of(`tfc:${dyeName}_dye`, 25))
.outputItem(`chalk:${dyeName}_chalk`)
.id(`chalk:barrel/dye/${dyeName}_chalk`)
//gt mixer works as is
evt.recipes.gtceu.chemical_bath(`chalk:gt_mixer/${dyeName}_chalk_from_dust`)
.itemInputs(["minecraft:clay_ball", `#chalk:dusts_for_chalks`])
.itemInputs(["minecraft:clay_ball", `tfg:sedimentary_carbonate_dust`])
.inputFluids([Fluid.of(`tfc:${dyeName}_dye`, 36)])
.itemOutputs([`chalk:${dyeName}_chalk`])
.duration(600)
@ -157,7 +157,7 @@ const registerChalkRecipes = (evt) => {
.category(GTRecipeCategories.CHEM_DYES);
//create mixer creates the unfired colored stick, unless heated.
let createIngredients = ["minecraft:clay_ball", `#chalk:dusts_for_chalks`, Fluid.of(`tfc:${dyeName}_dye`, 36)]
let createIngredients = ["minecraft:clay_ball", `tfg:sedimentary_carbonate_dust`, Fluid.of(`tfc:${dyeName}_dye`, 36)]
evt.recipes.create.mixing(`tfg:wet_${dyeName}_chalk`, createIngredients)
.id(`chalk:create_mixer/wet_${dyeName}_chalk_from_dust`);

View file

@ -5,8 +5,4 @@
* @param {TagEvent.Item} evt
*/
const registerChalkItemTags = (evt) => {
evt.add(`chalk:dusts_for_chalks`, `tfg:chalk_dust`)
evt.add(`chalk:dusts_for_chalks`, `tfg:limestone_dust`)
evt.add(`chalk:dusts_for_chalks`, `tfg:dripstone_dust`)
evt.add(`chalk:dusts_for_chalks`, `tfg:claystone_dust`)
}

View file

@ -138,42 +138,52 @@ const registerCreatedecoRecipes = (event) => {
//#endregion
//#region Brick Recipes
const brickTypes = ['blue', 'verdant', 'pearl', 'dean', 'dusk', 'scarlet', 'umber']
const powderTypes = ['lapis_lazuli', 'malachite', 'soda_ash', 'limonite', 'charcoal', 'hematite', 'cassiterite']
event.recipes.gtceu.assembler(`assembler_bricks`)
.itemInputs('5x minecraft:brick')
.inputFluids(Fluid.of('gtceu:concrete', 144))
.itemOutputs(`4x minecraft:bricks`)
.duration(50)
.circuit(2)
.EUt(7)
brickTypes.forEach(type => {
const dyeTypes = ['blue', 'green', 'white', 'yellow', 'black', 'red', 'brown']
global.CREATE_DECO_BRICK_TYPES.forEach((type, index) => {
event.remove({ output: `createdeco:${type}_bricks` });
});
event.remove({ output: `createdeco:${type}_brick_stairs` });
event.remove({ output: `createdeco:short_${type}_brick_stairs` });
event.remove({ output: `createdeco:tiled_${type}_brick_stairs` });
event.remove({ output: `createdeco:long_${type}_brick_stairs` });
event.remove({ output: `createdeco:corner_${type}_brick_stairs` });
event.remove({ output: `createdeco:cracked_${type}_brick_stairs` });
event.remove({ output: `createdeco:mossy_${type}_brick_stairs` });
event.remove({ output: `createdeco:${type}_brick_slab` });
event.remove({ output: `createdeco:short_${type}_brick_slab` });
event.remove({ output: `createdeco:tiled_${type}_brick_slab` });
event.remove({ output: `createdeco:long_${type}_brick_slab` });
event.remove({ output: `createdeco:corner_${type}_brick_slab` });
event.remove({ output: `createdeco:cracked_${type}_brick_slab` });
event.remove({ output: `createdeco:mossy_${type}_brick_slab` });
event.remove({ output: `createdeco:${type}_brick_wall` });
event.remove({ output: `createdeco:short_${type}_brick_wall` });
event.remove({ output: `createdeco:tiled_${type}_brick_wall` });
event.remove({ output: `createdeco:long_${type}_brick_wall` });
event.remove({ output: `createdeco:corner_${type}_brick_wall` });
event.remove({ output: `createdeco:cracked_${type}_brick_wall` });
event.remove({ output: `createdeco:mossy_${type}_brick_wall` });
brickTypes.forEach((type, index) => {
const powder = `tfc:powder/${powderTypes[index]}`;
event.shaped(Item.of(`createdeco:${type}_bricks`, 4),
[
if (type !== "red") {
const dye = `#forge:dyes/${dyeTypes[index]}`;
event.shaped(`4x createdeco:${type}_bricks`, [
'BDB',
'MBM',
'BMB'
],
{
], {
B: `minecraft:brick`,
D: powder,
D: dye,
M: `tfc:mortar`
});
event.recipes.gtceu.assembler(`createdeco:${type}_bricks`)
.itemInputs('5x minecraft:brick', powder)
.inputFluids(Fluid.of('gtceu:concrete', 144))
.itemOutputs(`4x createdeco:${type}_bricks`)
.circuit(3)
.duration(50)
.EUt(7)
event.recipes.gtceu.assembler(`createdeco:${type}_bricks`)
.itemInputs('5x minecraft:brick', dye)
.inputFluids(Fluid.of('gtceu:concrete', 144))
.itemOutputs(`4x createdeco:${type}_bricks`)
.circuit(3)
.duration(50)
.EUt(7)
}
});
//#endregion

View file

@ -90,7 +90,7 @@ const registerDomumOrnamentumRecipes = (event) => {
A: '#forge:plates/wrought_iron',
B: '#tfc:lumber',
C: '#forge:plates/brass',
D: '#forge:small_gears',
D: '#forge:small_gears/brass',
E: '#forge:buzz_saw_heads'
}).id('domum_ornamentum:architectscutter');
@ -145,126 +145,126 @@ const registerDomumOrnamentumRecipes = (event) => {
//Brown Bricks
event.shaped(Item.of('domum_ornamentum:brown_bricks', 4),
[
'BAB',
'CBC',
'BAB'
'BMB',
'MBM',
'BDB'
],
{
A: 'tfc:brick/chert',
B: 'tfc:mortar',
C: 'minecraft:brick',
B: `minecraft:brick`,
D: '#forge:dyes/brown',
M: `tfc:mortar`
}).id('domum_ornamentum:brown_bricks');
event.shaped(Item.of('domum_ornamentum:brown_stone_bricks', 4),
[
'BCB',
'ABA',
'BCB'
'BMB',
'MBM',
'BDB'
],
{
A: 'tfc:brick/chert',
B: 'tfc:mortar',
C: 'minecraft:brick',
B: `#tfg:stone_brick`,
D: '#forge:dyes/brown',
M: `tfc:mortar`
}).id('domum_ornamentum:brown_stone_bricks');
//Beige Bricks
event.shaped(Item.of('domum_ornamentum:beige_bricks', 4),
[
'BAB',
'CBC',
'BAB'
'BMB',
'MBM',
'BDB'
],
{
A: 'tfc:brick/conglomerate',
B: 'tfc:mortar',
C: 'minecraft:brick',
B: `minecraft:brick`,
D: '#forge:dyes/light_gray',
M: `tfc:mortar`
}).id('domum_ornamentum:beige_bricks');
event.shaped(Item.of('domum_ornamentum:beige_stone_bricks', 4),
[
'BCB',
'ABA',
'BCB'
'BMB',
'MBM',
'BDB'
],
{
A: 'tfc:brick/conglomerate',
B: 'tfc:mortar',
C: 'minecraft:brick',
B: `#tfg:stone_brick`,
D: '#forge:dyes/light_gray',
M: `tfc:mortar`
}).id('domum_ornamentum:beige_stone_bricks');
//Cream Bricks
event.shaped(Item.of('domum_ornamentum:cream_bricks', 4),
[
'BAB',
'CBC',
'BAB'
'BMB',
'MBM',
'BDB'
],
{
A: 'tfc:brick/gneiss',
B: 'tfc:mortar',
C: 'minecraft:brick',
B: `minecraft:brick`,
D: '#forge:dyes/orange',
M: `tfc:mortar`
}).id('domum_ornamentum:cream_bricks');
event.shaped(Item.of('domum_ornamentum:cream_stone_bricks', 4),
[
'BCB',
'ABA',
'BCB'
'BMB',
'MBM',
'BDB'
],
{
A: 'tfc:brick/gneiss',
B: 'tfc:mortar',
C: 'minecraft:brick',
B: `#tfg:stone_brick`,
D: '#forge:dyes/orange',
M: `tfc:mortar`
}).id('domum_ornamentum:cream_stone_bricks');
//Roan Bricks
event.shaped(Item.of('domum_ornamentum:roan_bricks', 4),
[
'BAB',
'CBC',
'BAB'
'BMB',
'MBM',
'BDB'
],
{
A: 'tfc:brick/claystone',
B: 'tfc:mortar',
C: 'minecraft:brick',
B: `minecraft:brick`,
D: '#forge:dyes/red',
M: `tfc:mortar`
}).id('domum_ornamentum:roan_bricks');
event.shaped(Item.of('domum_ornamentum:roan_stone_bricks', 4),
[
'BCB',
'ABA',
'BCB'
'BMB',
'MBM',
'BDB'
],
{
A: 'tfc:brick/claystone',
B: 'tfc:mortar',
C: 'minecraft:brick',
B: `#tfg:stone_brick`,
D: '#forge:dyes/red',
M: `tfc:mortar`
}).id('domum_ornamentum:roan_stone_bricks');
//Sand Bricks
event.shaped(Item.of('domum_ornamentum:sand_bricks', 4),
[
'BAB',
'CBC',
'BAB'
'BMB',
'MBM',
'BDB'
],
{
A: 'tfc:brick/limestone',
B: 'tfc:mortar',
C: 'minecraft:brick',
B: `minecraft:brick`,
D: '#forge:dyes/yellow',
M: `tfc:mortar`
}).id('domum_ornamentum:sand_bricks');
event.shaped(Item.of('domum_ornamentum:sand_stone_bricks', 4),
[
'BCB',
'ABA',
'BCB'
'BMB',
'MBM',
'BDB'
],
{
A: 'tfc:brick/limestone',
B: 'tfc:mortar',
C: 'minecraft:brick',
B: `#tfg:stone_brick`,
D: '#forge:dyes/yellow',
M: `tfc:mortar`
}).id('domum_ornamentum:sand_stone_bricks');
//#endregion
};

View file

@ -405,7 +405,7 @@ const registerFramedBlocksRecipes = (event) => {
}).id('framedblocks:framed_fence_gate')
// Framed Ladder
event.shaped('3x framedblocks:framed_ladder', [
event.shaped('8x framedblocks:framed_ladder', [
'A A',
'ABA',
'A A'
@ -416,24 +416,26 @@ const registerFramedBlocksRecipes = (event) => {
// Framing Saw
event.shaped('framedblocks:framing_saw', [
' B ',
'AAA',
' E ',
'CAC',
'BDB'
], {
A: 'framedblocks:framed_cube',
B: 'gtceu:wrought_iron_buzz_saw_blade'
}).id('framedblocks:framing_saw')
A: '#forge:plates/wrought_iron',
B: 'framedblocks:framed_cube',
C: '#forge:plates/brass',
D: '#forge:small_gears/brass',
E: '#forge:buzz_saw_heads'
}).id('framedblocks:framing_saw');
// Powered Framing Saw
event.shaped('framedblocks:powered_framing_saw', [
'ABA',
'CAD',
'EEE'
'A',
'B',
'C'
], {
A: '#forge:glass',
B: 'gtceu:wrought_iron_buzz_saw_blade',
C: 'gtceu:lv_electric_motor',
D: 'gtceu:lv_electric_motor',
E: 'framedblocks:framed_cube'
B: 'framedblocks:framing_saw',
C: 'gtceu:lv_electric_motor'
}).id('framedblocks:powered_framing_saw')
// Framed Chest

View file

@ -382,10 +382,15 @@ const registerGTCEURecipes = (event) => {
.EUt(GTValues.VA[GTValues.LV])
// Ladder consistency
const nonAdAstraLumber = Ingredient.of('#tfc:lumber').subtract('tfg:wood/lumber/aeronos').subtract('tfg:wood/lumber/strophar');
event.replaceOutput({ id: 'gtceu:assembler/ladder' }, 'minecraft:ladder', '8x minecraft:ladder')
event.replaceInput({ id: 'tfc:crafting/vanilla/ladder' }, '#tfc:lumber', nonAdAstraLumber)
event.recipes.gtceu.assembler('tfg:ladder_from_lumber')
.itemInputs('#tfc:lumber')
.itemInputs(nonAdAstraLumber.withCount(7))
.itemOutputs('8x minecraft:ladder')
.circuit(7)
.duration(40)

View file

@ -723,7 +723,7 @@ function removeGTCEURecipes(event) {
removeMaceratorRecipe(event, 'macerate_marble')
removeMaceratorRecipe(event, 'macerate_red_granite')
removeMaceratorRecipe(event, 'macerate_calcite')
removeMaceratorRecipe(event, 'macerate_wool')
removeMaceratorRecipe(event, 'macerate_enchanting_table')

View file

@ -756,6 +756,22 @@ const registerMinecraftRecipes = (event) => {
B: 'minecraft:brick'
}).id('tfc:crafting/bricks')
event.recipes.gtceu.assembler(`assembler_bricks`)
.itemInputs('5x minecraft:brick')
.inputFluids(Fluid.of('gtceu:concrete', 144))
.itemOutputs(`4x minecraft:bricks`)
.duration(50)
.circuit(2)
.EUt(7)
event.recipes.gtceu.alloy_smelter('tfg:brick_dust_to_brick')
.itemInputs('#forge:dusts/brick')
.notConsumable('gtceu:ingot_casting_mold')
.itemOutputs('minecraft:brick')
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
.category(GTRecipeCategories.INGOT_MOLDING)
//#endregion
//#region Выход: Элитра, elytra
@ -963,22 +979,18 @@ const registerMinecraftRecipes = (event) => {
//#region Stonecutter
event.shaped('minecraft:stonecutter',
[
' E ',
'CAC',
'BDB'
],
{
A: '#forge:plates/wrought_iron',
B: '#tfc:lumber',
C: '#forge:plates/brass',
D: '#forge:small_gears',
E: '#forge:buzz_saw_heads'
}).id('tfg:shaped/stonecutter');
event.shaped('minecraft:stonecutter', [
' E ',
'CAC',
'BDB'
], {
A: '#forge:plates/wrought_iron',
B: '#tfc:lumber',
C: '#forge:plates/brass',
D: '#forge:small_gears/brass',
E: '#forge:buzz_saw_heads'
}).id('tfg:shaped/stonecutter');
event.stonecutting('minecraft:smooth_quartz', 'minecraft:quartz_block')
event.stonecutting('create:cut_deepslate', 'minecraft:polished_deepslate')
//#endregion
//#region Glowing Ink Sacs
@ -1059,12 +1071,12 @@ const registerMinecraftRecipes = (event) => {
// #endregion
// Minecart w/ Furnace
event.shapeless('minecraft:furnace_minecart', ['minecraft:water_bucket', 'gtceu:hp_steam_solid_boiler', 'minecraft:minecart']);
// Minecart w/ Furnace
event.shapeless('minecraft:furnace_minecart', ['minecraft:water_bucket', 'gtceu:hp_steam_solid_boiler', 'minecraft:minecart']);
event.recipes.gtceu.assembler('minecraft:furnace_minecart')
.itemInputs('minecraft:water_bucket', 'gtceu:hp_steam_solid_boiler', 'minecraft:minecart')
.itemOutputs('minecraft:furnace_minecart')
.duration(100)
.EUt(4)
event.recipes.gtceu.assembler('minecraft:furnace_minecart')
.itemInputs('minecraft:water_bucket', 'gtceu:hp_steam_solid_boiler', 'minecraft:minecart')
.itemOutputs('minecraft:furnace_minecart')
.duration(100)
.EUt(4)
}

View file

@ -35,8 +35,6 @@ const registerMinecraftItemTags = (event) => {
event.add('tfc:bells', 'minecraft:bell')
event.add('tfc:hematitic_sand', 'minecraft:red_sand')
event.add('tfc:makes_black_dye', 'minecraft:ink_sac')
event.add('tfc:makes_white_dye', 'minecraft:bone_meal')
@ -45,6 +43,7 @@ const registerMinecraftItemTags = (event) => {
event.add("tfg:rubber_plants", "minecraft:spore_blossom")
event.add('tfg:stonecutting/crackrack', 'minecraft:nether_brick_fence')
}
const registerMinecraftBlockTags = (event) => {

View file

@ -263,6 +263,12 @@ function registerTFCItemTags(event) {
event.add("tfc:green_gravel", "tfc:rock/gravel/schist");
// Розовый
event.add("tfc:pink_gravel", "tfc:rock/gravel/granite");
// Glassworking sands
event.add('tfc:hematitic_sand', 'minecraft:red_sand');
event.add('tfc:hematitic_sand', 'ad_astra:mars_sand');
event.add('tfc:hematitic_sand', 'ad_astra:venus_sand');
event.add('tfc:olivine_sand', 'ad_astra:moon_sand');
// Теги для объединения наковален
event.add("tfc:red_or_blue_anvil", "tfc:metal/anvil/blue_steel");
@ -444,6 +450,8 @@ function registerTFCItemTags(event) {
event.add(`tfg:hanging_sign/${metal}/hardwood`, `beneath:wood/hanging_sign/${metal}/warped`)
event.add(`tfg:hanging_sign/${metal}/softwood`, `beneath:wood/hanging_sign/${metal}/crimson`)
})
event.add('tfc:fluxstone', 'tfg:loose/dripstone')
}
/** @param {TagEvent.Block} event */
@ -484,14 +492,7 @@ function registerTFCBlockTags(event) {
event.add("tfc:can_start_collapse", "#tfc:rock/smooth");
event.add("tfc:can_trigger_collapse", "#tfc:rock/smooth");
// Возможность обрушения руды
event.add("tfc:can_collapse", "#forge:ores");
event.add("tfc:can_start_collapse", "#forge:ores");
event.add("tfc:can_trigger_collapse", "#forge:ores");
event.add("tfc:monster_spawns_on", "#forge:ores");
event.add("tfc:prospectable", "#forge:ores");
// Glassworking blocks
event.add("tfc:glass_basin_blocks", "create:brass_block");
event.add("tfc:glass_pouring_table", "create:brass_block");

View file

@ -1,254 +1,3 @@
/**
* @typedef {Object} BrickVariant
* @property {string} brick_type - The name of the brick variant.
* @property {string|null} brick - Main brick block ID.
* @property {string|null} brick_stairs - Brick stairs block ID.
* @property {string|null} brick_slab - Brick slab block ID.
* @property {string|null} brick_wall - Brick wall block ID.
* @property {string|null} cracked_brick - Cracked brick block ID.
* @property {string|null} cracked_stairs - Cracked brick stairs block ID.
* @property {string|null} cracked_slab - Cracked brick slab block ID.
* @property {string|null} cracked_wall - Cracked brick wall block ID.
* @property {string|null} mossy_brick - Mossy brick block ID.
* @property {string|null} mossy_stairs - Mossy brick stairs block ID.
* @property {string|null} mossy_slab - Mossy brick slab block ID.
* @property {string|null} mossy_wall - Mossy brick wall block ID.
* @property {string|null} smooth_brick - Smooth brick block ID.
* @property {string|null} smooth_stairs - Smooth brick stairs block ID.
* @property {string|null} smooth_slab - Smooth brick slab block ID.
* @property {string|null} smooth_wall - Smooth brick wall block ID.
* @property {string|null} chiseled_brick - Chiseled brick block ID.
*/
const AA_REGULAR_STONES = ['moon', 'mars', 'venus', 'mercury', 'glacio']
// #region BRICK_INDEX
/** @type {BrickVariant[]} */
global.BRICK_INDEX = (global.TFC_STONE_TYPES ? global.TFC_STONE_TYPES : []).map(tfc_stone => ({
brick_type: tfc_stone,
brick: `tfc:rock/bricks/${tfc_stone}`, brick_stairs: `tfc:rock/bricks/${tfc_stone}_stairs`, brick_slab: `tfc:rock/bricks/${tfc_stone}_slab`, brick_wall: `tfc:rock/bricks/${tfc_stone}_wall`,
cracked_brick: `tfc:rock/cracked_bricks/${tfc_stone}`, cracked_stairs: `tfc:rock/cracked_bricks/${tfc_stone}_stairs`, cracked_slab: `tfc:rock/cracked_bricks/${tfc_stone}_slab`, cracked_wall: `tfc:rock/cracked_bricks/${tfc_stone}_wall`,
mossy_brick: `tfc:rock/mossy_bricks/${tfc_stone}`, mossy_stairs: `tfc:rock/mossy_bricks/${tfc_stone}_stairs`, mossy_slab: `tfc:rock/mossy_bricks/${tfc_stone}_slab`, mossy_wall: `tfc:rock/mossy_bricks/${tfc_stone}_wall`,
smooth_brick: `tfc:rock/smooth/${tfc_stone}`, smooth_stairs: `tfc:rock/smooth/${tfc_stone}_stairs`, smooth_slab: `tfc:rock/smooth/${tfc_stone}_slab`, smooth_wall: `tfc:rock/smooth/${tfc_stone}_wall`,
chiseled_brick: `tfc:rock/chiseled/${tfc_stone}`
}));
(global.CREATE_DECO_BRICK_TYPES ? global.CREATE_DECO_BRICK_TYPES : []).slice(0, -1).forEach(create_brick => {
global.BRICK_INDEX.push({
brick_type: create_brick,
brick: `createdeco:${create_brick}_bricks`, brick_stairs: `createdeco:${create_brick}_brick_stairs`, brick_slab: `createdeco:${create_brick}_brick_slab`, brick_wall: `createdeco:${create_brick}_brick_wall`,
cracked_brick: `createdeco:cracked_${create_brick}_bricks`, cracked_stairs: `createdeco:cracked_${create_brick}_brick_stairs`, cracked_slab: `createdeco:cracked_${create_brick}_brick_slab`, cracked_wall: `createdeco:cracked_${create_brick}_brick_wall`,
mossy_brick: `createdeco:mossy_${create_brick}_bricks`, mossy_stairs: `createdeco:mossy_${create_brick}_brick_stairs`, mossy_slab: `createdeco:mossy_${create_brick}_brick_slab`, mossy_wall: `createdeco:mossy_${create_brick}_brick_wall`,
smooth_brick: `createdeco:corner_${create_brick}_bricks`, smooth_stairs: `createdeco:corner_${create_brick}_brick_stairs`, smooth_slab: `createdeco:corner_${create_brick}_brick_slab`, smooth_wall: `createdeco:corner_${create_brick}_brick_wall`,
chiseled_brick: `createdeco:tiled_${create_brick}_bricks`
})
});
global.BRICK_INDEX = global.BRICK_INDEX.concat([
// { brick_type: '',
// brick: '', brick_stairs: '', brick_slab: '', brick_wall: '',
// cracked_brick: '', cracked_stairs: '', cracked_slab: '', cracked_wall: '',
// mossy_brick: '', mossy_stairs: '', mossy_slab: '', mossy_wallL: '',
// smooth_brick: '', smooth_stairs: '', smooth_slab: '', smooth_wall: '',
// chiseled_brick: '' },
{
brick_type: 'red',
brick: 'minecraft:bricks', brick_stairs: 'minecraft:brick_stairs', brick_slab: 'minecraft:brick_slab', brick_wall: 'minecraft:brick_wall',
cracked_brick: 'createdeco:cracked_red_bricks', cracked_stairs: 'createdeco:cracked_red_brick_stairs', cracked_slab: 'createdeco:cracked_red_brick_slab', cracked_wall: 'createdeco:cracked_red_brick_wall',
mossy_brick: 'createdeco:mossy_red_bricks', mossy_stairs: 'createdeco:mossy_red_brick_stairs', mossy_slab: 'createdeco:mossy_red_brick_slab', mossy_wall: 'createdeco:mossy_red_brick_wall',
smooth_brick: 'createdeco:corner_red_bricks', smooth_stairs: 'createdeco:corner_red_brick_stairs', smooth_slab: 'createdeco:corner_red_brick_slab', smooth_wall: 'createdeco:corner_red_brick_wall',
chiseled_brick: 'createdeco:tiled_red_bricks'
},
{
brick_type: 'light_concrete',
brick: 'gtceu:light_concrete_bricks', brick_stairs: null, brick_slab: null, brick_wall: null,
cracked_brick: 'gtceu:cracked_light_concrete_bricks', cracked_stairs: null, cracked_slab: null, cracked_wall: null,
mossy_brick: 'gtceu:mossy_light_concrete_bricks', mossy_stairs: null, mossy_slab: null, mossy_wall: null,
smooth_brick: 'gtceu:polished_light_concrete', smooth_stairs: null, smooth_slab: null, smooth_wall: null,
chiseled_brick: 'gtceu:chiseled_light_concrete'
},
{
brick_type: 'dark_concrete',
brick: 'gtceu:dark_concrete_bricks', brick_stairs: null, brick_slab: null, brick_wall: null,
cracked_brick: 'gtceu:cracked_dark_concrete_bricks', cracked_stairs: null, cracked_slab: null, cracked_wall: null,
mossy_brick: 'gtceu:mossy_dark_concrete_bricks', mossy_stairs: null, mossy_slab: null, mossy_wall: null,
smooth_brick: 'gtceu:polished_dark_concrete', smooth_stairs: null, smooth_slab: null, smooth_wall: null,
chiseled_brick: 'gtceu:chiseled_dark_concrete'
},
{
brick_type: 'deepslate',
brick: 'minecraft:deepslate_bricks', brick_stairs: 'minecraft:deepslate_brick_stairs', brick_slab: 'minecraft:deepslate_brick_slab', brick_wall: 'minecraft:deepslate_brick_wall',
cracked_brick: 'minecraft:cracked_deepslate_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_deepslate_stairs', cracked_slab: 'tfg:rock/cracked_bricks_deepslate_slab', cracked_wall: 'tfg:rock/cracked_bricks_deepslate_wall',
mossy_brick: 'tfg:rock/mossy_bricks_deepslate', mossy_stairs: 'tfg:rock/mossy_bricks_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_bricks_deepslate_slab', mossy_wall: 'tfg:rock/mossy_bricks_deepslate_wall',
smooth_brick: 'minecraft:polished_deepslate', smooth_stairs: 'minecraft:polished_deepslate_stairs', smooth_slab: 'minecraft:polished_deepslate_slab', smooth_wall: 'minecraft:polished_deepslate_wall',
chiseled_brick: 'minecraft:chiseled_deepslate'
},
{
brick_type: 'deepslate_tiles',
brick: 'minecraft:deepslate_tiles', brick_stairs: 'minecraft:deepslate_tile_stairs', brick_slab: 'minecraft:deepslate_tile_slab', brick_wall: 'minecraft:deepslate_tile_wall',
cracked_brick: 'minecraft:cracked_deepslate_tiles', cracked_stairs: 'tfg:rock/cracked_tiles_deepslate_stairs', cracked_slab: 'tfg:rock/cracked_tiles_deepslate_slab', cracked_wall: 'tfg:rock/cracked_tiles_deepslate_wall',
mossy_brick: null, mossy_stairs: null, mossy_slab: null, mossy_wall: null,
smooth_brick: 'minecraft:polished_deepslate', smooth_stairs: 'minecraft:polished_deepslate_stairs', smooth_slab: 'minecraft:polished_deepslate_slab', smooth_wall: 'minecraft:polished_deepslate_wall',
chiseled_brick: 'minecraft:chiseled_deepslate'
},
{
brick_type: 'blackstone',
brick: 'minecraft:polished_blackstone_bricks', brick_stairs: 'minecraft:polished_blackstone_brick_stairs', brick_slab: 'minecraft:polished_blackstone_brick_slab', brick_wall: 'minecraft:polished_blackstone_brick_wall',
cracked_brick: 'minecraft:cracked_polished_blackstone_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_blackstone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_blackstone_slab', cracked_wall: 'tfg:rock/cracked_bricks_blackstone_wall',
mossy_brick: 'tfg:rock/mossy_bricks_blackstone', mossy_stairs: 'tfg:rock/mossy_bricks_blackstone_stairs', mossy_slab: 'tfg:rock/mossy_bricks_blackstone_slab', mossy_wall: 'tfg:rock/mossy_bricks_blackstone_wall',
smooth_brick: 'minecraft:polished_blackstone', smooth_stairs: 'minecraft:polished_blackstone_stairs', smooth_slab: 'minecraft:polished_blackstone_slab', smooth_wall: 'minecraft:polished_blackstone_wall',
chiseled_brick: 'minecraft:chiseled_polished_blackstone'
},
{
brick_type: 'dripstone',
brick: 'create:cut_dripstone_bricks', brick_stairs: 'create:cut_dripstone_brick_stairs', brick_slab: 'create:cut_dripstone_brick_slab', brick_wall: 'create:cut_dripstone_brick_wall',
cracked_brick: 'tfg:rock/cracked_bricks_dripstone', cracked_stairs: 'tfg:rock/cracked_bricks_dripstone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_dripstone_slab', cracked_wall: 'tfg:rock/cracked_bricks_dripstone_wall',
mossy_brick: 'tfg:rock/mossy_bricks_dripstone', mossy_stairs: 'tfg:rock/mossy_bricks_dripstone_stairs', mossy_slab: 'tfg:rock/mossy_bricks_dripstone_slab', mossy_wall: 'tfg:rock/mossy_bricks_dripstone_wall',
smooth_brick: 'create:polished_cut_dripstone', smooth_stairs: 'create:polished_cut_dripstone_stairs', smooth_slab: 'create:polished_cut_dripstone_slab', smooth_wall: 'create:polished_cut_dripstone_wall',
chiseled_brick: 'create:small_dripstone_bricks'
},
{
brick_type: 'crackrack',
brick: 'minecraft:nether_bricks', brick_stairs: 'minecraft:nether_bricks_stairs', brick_slab: 'minecraft:nether_bricks_slab', brick_wall: 'minecraft:nether_bricks_wall',
cracked_brick: 'minecraft:cracked_nether_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_nether_stairs', cracked_slab: 'tfg:rock/cracked_bricks_nether_slab', cracked_wall: 'tfg:rock/cracked_bricks_nether_wall',
mossy_brick: 'tfg:rock/mossy_bricks_nether', mossy_stairs: 'tfg:rock/mossy_bricks_nether_stairs', mossy_slab: 'tfg:rock/mossy_bricks_nether_slab', mossy_wall: 'tfg:rock/mossy_bricks_nether_wall',
smooth_brick: 'tfg:rock/polished_crackrack', smooth_stairs: 'tfg:rock/polished_crackrack_stairs', smooth_slab: 'tfg:rock/polished_crackrack_slab', smooth_wall: 'tfg:rock/polished_crackrack_wall',
chiseled_brick: 'minecraft:chiseled_nether_bricks'
},
{
brick_type: 'moon_deepslate',
brick: 'tfg:rock/bricks_moon_deepslate', brick_stairs: 'tfg:rock/bricks_moon_deepslate_stairs', brick_slab: 'tfg:rock/bricks_moon_deepslate_slab', brick_wall: 'tfg:rock/bricks_moon_deepslate_wall',
cracked_brick: 'tfg:rock/cracked_bricks_moon_deepslate', cracked_stairs: 'tfg:rock/cracked_bricks_moon_deepslate_stairs', cracked_slab: 'tfg:rock/cracked_bricks_moon_slab', cracked_wall: 'tfg:rock/cracked_bricks_moon_wall',
mossy_brick: 'tfg:rock/mossy_bricks_moon_deepslate', mossy_stairs: 'tfg:rock/mossy_bricks_moon_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_bricks_moon_slab', mossy_wall: 'tfg:rock/mossy_bricks_moon_deepslate_wall',
smooth_brick: 'tfg:rock/polished_moon_deepslate', smooth_stairs: 'tfg:rock/polished_moon_deepslate_stairs', smooth_slab: 'ad_astra:polished_moon_stone_slab', smooth_wall: 'tfg:rock/polished_moon_deepslate_wall',
chiseled_brick: 'tfg:rock/chiseled_bricks_moon_deepslate'
},
{
brick_type: 'permafrost',
brick: 'ad_astra:permafrost_bricks', brick_stairs: 'ad_astra:permafrost_brick_stairs', brick_slab: 'ad_astra:permafrost_brick_slab', brick_wall: 'ad_astra:permafrost_brick_wall',
cracked_brick: 'ad_astra:cracked_permafrost_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_permafrost_stairs', cracked_slab: 'tfg:rock/cracked_bricks_permafrost_slab', cracked_wall: 'tfg:rock/cracked_bricks_permafrost_wall',
mossy_brick: 'tfg:rock/mossy_bricks_permafrost', mossy_stairs: 'tfg:rock/mossy_bricks_permafrost_stairs', mossy_slab: 'tfg:rock/mossy_bricks_permafrost_slab', mossy_wall: 'tfg:rock/mossy_bricks_permafrost_wall',
smooth_brick: 'ad_astra:polished_permafrost', smooth_stairs: 'ad_astra:polished_permafrost_stairs', smooth_slab: 'ad_astra:polished_permafrost_slab', smooth_wall: 'tfg:rock/polished_permafrost_wall',
chiseled_brick: 'ad_astra:chiseled_permafrost_bricks'
},
{
brick_type: 'red_granite',
brick: 'gtceu:red_granite_bricks', brick_stairs: 'tfg:rock/bricks_red_granite_stairs', brick_slab: 'tfg:rock/bricks_red_granite_slab', brick_wall: 'tfg:rock/bricks_red_granite_wall',
cracked_brick: 'gtceu:cracked_red_granite_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_red_granite_stairs', cracked_slab: 'tfg:rock/cracked_bricks_red_granite_slab', cracked_wall: 'tfg:rock/cracked_bricks_red_granite_wall',
mossy_brick: 'gtceu:mossy_red_granite_bricks', mossy_stairs: 'tfg:rock/mossy_bricks_red_granite_stairs', mossy_slab: 'tfg:rock/mossy_bricks_red_granite_slab', mossy_wall: 'tfg:rock/mossy_bricks_red_granite_wall',
smooth_brick: 'gtceu:polished_red_granite', smooth_stairs: 'tfg:rock/polished_red_granite_stairs', smooth_slab: 'tfg:rock/polished_red_granite_slab', smooth_wall: 'tfg:rock/polished_red_granite_wall',
chiseled_brick: 'gtceu:chiseled_red_granite'
},
{
brick_type: 'venus_sandstone',
brick: 'ad_astra:venus_sandstone_bricks', brick_stairs: 'ad_astra:venus_sandstone_brick_stairs', brick_slab: 'ad_astra:venus_sandstone_brick_slab', brick_wall: 'tfg:rock/bricks_venus_sandstone_wall',
cracked_brick: 'ad_astra:cracked_venus_sandstone_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_venus_sandstone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_venus_sandstone_slab', cracked_wall: 'tfg:rock/cracked_bricks_stone_wall',
mossy_brick: null, mossy_stairs: null, mossy_slab: null, mossy_wall: null,
smooth_brick: null, smooth_stairs: null, smooth_slab: null, smooth_wall: null,
chiseled_brick: null
},
{
brick_type: 'stone',
brick: 'minecraft:stone_bricks', brick_stairs: 'minecraft:stone_brick_stairs', brick_slab: 'minecraft:stone_brick_slab', brick_wall: 'minecraft:stone_brick_wall',
cracked_brick: 'minecraft:cracked_stone_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_stone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_stone_slab', cracked_wall: 'tfg:rock/cracked_bricks_stone_wall',
mossy_brick: 'minecraft:mossy_stone_bricks', mossy_stairs: 'minecraft:mossy_stone_brick_stairs', mossy_slab: 'minecraft:mossy_stone_brick_slab', mossy_wall: 'minecraft:mossy_stone_brick_wall',
smooth_brick: 'minecraft:smooth_stone', smooth_stairs: 'tfg:rock/smooth_stone_stairs', smooth_slab: 'minecraft:smooth_stone_slab', smooth_wall: 'tfg:rock/smooth_stone_wall',
chiseled_brick: 'minecraft:chiseled_stone_bricks'
}
]);
global.BRICK_INDEX = global.BRICK_INDEX.concat((AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => (
{
brick_type: stone,
brick: `ad_astra:${stone}_stone_bricks`, brick_stairs: `ad_astra:${stone}_stone_brick_stairs`, brick_slab: `ad_astra:${stone}_stone_brick_slab`, brick_wall: `ad_astra:${stone}_stone_brick_wall`,
cracked_brick: `ad_astra:cracked_${stone}_stone_bricks`, cracked_stairs: `tfg:rock/cracked_bricks_${stone}_stairs`, cracked_slab: `tfg:rock/cracked_bricks_${stone}_slab`, cracked_wall: `tfg:rock/cracked_bricks_${stone}_wall`,
mossy_brick: `tfg:rock/mossy_bricks_${stone}`, mossy_stairs: `tfg:rock/mossy_bricks_${stone}_stairs`, mossy_slab: `tfg:rock/mossy_bricks_${stone}_slab`, mossy_wall: `tfg:rock/mossy_bricks_${stone}_wall`,
smooth_brick: `ad_astra:polished_${stone}_stone`, smooth_stairs: `ad_astra:polished_${stone}_stone_stairs`, smooth_slab: `ad_astra:polished_${stone}_stone_slab`, smooth_wall: `tfg:rock/polished_${stone}_wall`,
chiseled_brick: `ad_astra:chiseled_${stone}_stone_bricks`
}
)))
// #endregion BRICK_INDEX
// #region COBBLE_INDEX
global.COBBLE_INDEX = (global.TFC_STONE_TYPES ? global.TFC_STONE_TYPES : []).map(tfc_stone => ({
cobble_type: tfc_stone,
block: `tfc:rock/cobble/${tfc_stone}`, stairs: `tfc:rock/cobble/${tfc_stone}_stairs`, slab: `tfc:rock/cobble/${tfc_stone}_slab`, wall: `tfc:rock/cobble/${tfc_stone}_wall`,
mossy_block: `tfc:rock/mossy_cobble/${tfc_stone}`, mossy_stairs: `tfc:rock/mossy_cobble/${tfc_stone}_stairs`, mossy_slab: `tfc:rock/mossy_cobble/${tfc_stone}_slab`, mossy_wall: `tfc:rock/mossy_cobble/${tfc_stone}_wall`
}));
global.COBBLE_INDEX = global.COBBLE_INDEX.concat([
{
cobble_type: 'deepslate',
block: 'minecraft:cobbled_deepslate', stairs: 'minecraft:cobbled_deepslate_stairs', slab: 'minecraft:cobbled_deepslate_slab', wall: 'minecraft:cobbled_deepslate_wall',
mossy_block: 'tfg:rock/mossy_cobble_deepslate', mossy_stairs: 'tfg:rock/mossy_cobble_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_cobble_deepslate_slab', mossy_wall: 'tfg:rock/mossy_cobble_deepslate_wall'
},
{
cobble_type: 'blackstone',
block: 'tfg:rock/cobble_blackstone', stairs: 'tfg:rock/cobble_blackstone_stairs', slab: 'tfg:rock/cobble_blackstone_slab', wall: 'tfg:rock/cobble_blackstone_wall',
mossy_block: 'tfg:rock/mossy_cobble_blackstone', mossy_stairs: 'tfg:rock/mossy_cobble_blackstone_stairs', mossy_slab: 'tfg:rock/mossy_cobble_blackstone_slab', mossy_wall: 'tfg:rock/mossy_cobble_blackstone_wall'
},
{
cobble_type: 'dripstone',
block: 'tfg:rock/cobble_dripstone', stairs: 'tfg:rock/cobble_dripstone_stairs', slab: 'tfg:rock/cobble_dripstone_slab', wall: 'tfg:rock/cobble_dripstone_wall',
mossy_block: 'tfg:rock/mossy_cobble_dripstone', mossy_stairs: 'tfg:rock/mossy_cobble_dripstone_stairs', mossy_slab: 'tfg:rock/mossy_cobble_dripstone_slab', mossy_wall: 'tfg:rock/mossy_cobble_dripstone_wall'
},
{
cobble_type: 'crackrack',
block: 'tfg:rock/cobble_crackrack', stairs: 'tfg:rock/cobble_crackrack_stairs', slab: 'tfg:rock/cobble_crackrack_slab', wall: 'tfg:rock/cobble_crackrack_wall',
mossy_block: 'tfg:rock/mossy_cobble_crackrack', mossy_stairs: 'tfg:rock/mossy_cobble_crackrack_stairs', mossy_slab: 'tfg:rock/mossy_cobble_crackrack_slab', mossy_wall: 'tfg:rock/mossy_cobble_crackrack_wall'
},
{
cobble_type: 'moon_deepslate',
block: 'tfg:rock/cobble_moon_deepslate', stairs: 'tfg:rock/cobble_moon_deepslate_stairs', slab: 'tfg:rock/cobble_moon_deepslate_slab', wall: 'tfg:rock/cobble_moon_deepslate_wall',
mossy_block: 'tfg:rock/mossy_cobble_moon_deepslate', mossy_stairs: 'tfg:rock/mossy_cobble_moon_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_cobble_moon_deepslate_slab', mossy_wall: 'tfg:rock/mossy_cobble_moon_deepslate_wall'
},
{
cobble_type: 'permafrost',
block: 'tfg:rock/cobble_permafrost', stairs: 'tfg:rock/cobble_permafrost_stairs', slab: 'tfg:rock/cobble_permafrost_slab', wall: 'tfg:rock/cobble_permafrost_wall',
mossy_block: 'tfg:rock/mossy_cobble_permafrost', mossy_stairs: 'tfg:rock/mossy_cobble_permafrost_stairs', mossy_slab: 'tfg:rock/mossy_cobble_permafrost_slab', mossy_wall: 'tfg:rock/mossy_cobble_permafrost_wall'
},
{
cobble_type: 'red_granite',
block: 'gtceu:red_granite_cobblestone', stairs: 'tfg:rock/cobble_red_granite_stairs', slab: 'tfg:rock/cobble_red_granite_slab', wall: 'tfg:rock/cobble_red_granite_wall',
mossy_block: 'gtceu:mossy_red_granite_cobblestone', mossy_stairs: 'tfg:rock/mossy_cobble_red_granite_stairs', mossy_slab: 'tfg:rock/mossy_cobble_red_granite_slab', mossy_wall: 'tfg:rock/mossy_cobble_red_granite_wall'
},
{
cobble_type: 'stone',
block: 'minecraft:cobblestone', stairs: 'minecraft:cobblestone_stairs', slab: 'minecraft:cobblestone_slab', wall: 'minecraft:cobblestone_wall',
mossy_block: 'minecraft:mossy_cobblestone', mossy_stairs: 'minecraft:mossy_cobblestone_stairs', mossy_slab: 'minecraft:mossy_cobblestone_slab', mossy_wall: 'minecraft:mossy_cobblestone_wall'
}
]);
global.COBBLE_INDEX = global.COBBLE_INDEX.concat((AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => (
{
cobble_type: stone,
block: `ad_astra:${stone}_cobblestone`, stairs: `ad_astra:${stone}_cobblestone_stairs`, slab: `ad_astra:${stone}_cobblestone_slab`, wall: `tfg:rock/cobble_${stone}_wall`,
mossy_block: `tfg:rock/mossy_cobble_${stone}`, mossy_stairs: `tfg:rock/mossy_cobble_${stone}_stairs`, mossy_slab: `tfg:rock/mossy_cobble_${stone}_slab`, mossy_wall: `tfg:rock/mossy_cobble_${stone}_wall`
}
)))
// #endregion COBBLE_INDEX
/**
* Function for replacing a block with another block by crouch-right-clicking with a tool.
*
@ -408,85 +157,80 @@ function transformBlockWithItem(event, inputBlock, outputBlock, itemId, consumeI
event.server.runCommandSilent(`execute in ${event.block.level.name.getString()} run setblock ${block.x} ${block.y} ${block.z} ${outputBlock}${state}`)
};
// ================================================
// Looking to add a recipe to JEI? It's in TFG-Core
// ================================================
// Declare Events
BlockEvents.rightClicked(event => {
//Brick index events
for (const b of global.BRICK_INDEX) {
//brick -> cracked
transformBlockWithTool(event, b.brick, b.cracked_brick, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
transformBlockWithTool(event, b.brick_stairs, b.cracked_stairs, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
transformBlockWithTool(event, b.brick_slab, b.cracked_slab, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
transformBlockWithTool(event, b.brick_wall, b.cracked_wall, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
//brick -> mossy
transformBlockWithItem(event, b.brick, b.mossy_brick, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, b.brick, b.mossy_brick, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, b.brick_stairs, b.mossy_stairs, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, b.brick_stairs, b.mossy_stairs, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, b.brick_slab, b.mossy_slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, b.brick_slab, b.mossy_slab, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, b.brick_wall, b.mossy_wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, b.brick_wall, b.mossy_wall, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
//cracked -> mossy
transformBlockWithItem(event, b.cracked_brick, b.mossy_brick, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, b.cracked_brick, b.mossy_brick, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, b.cracked_stairs, b.mossy_stairs, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, b.cracked_stairs, b.mossy_stairs, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, b.cracked_slab, b.mossy_slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, b.cracked_slab, b.mossy_slab, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, b.cracked_wall, b.mossy_wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, b.cracked_wall, b.mossy_wall, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
//mossy -> cracked
transformBlockWithTool(event, b.mossy_brick, b.cracked_brick, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
transformBlockWithTool(event, b.mossy_stairs, b.cracked_stairs, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
transformBlockWithTool(event, b.mossy_slab, b.cracked_slab, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
transformBlockWithTool(event, b.mossy_wall, b.cracked_wall, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
//mossy -> brick
transformBlockWithTool(event, b.mossy_brick, b.brick, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithItem(event, b.mossy_brick, b.brick, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithTool(event, b.mossy_stairs, b.brick_stairs, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithItem(event, b.mossy_stairs, b.brick_stairs, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithTool(event, b.mossy_slab, b.brick_slab, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithItem(event, b.mossy_slab, b.brick_slab, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithTool(event, b.mossy_wall, b.brick_wall, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithItem(event, b.mossy_wall, b.brick_wall, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
//cracked -> brick
transformBlockWithItem(event, b.cracked_brick, b.brick, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true);
transformBlockWithItem(event, b.cracked_stairs, b.brick_stairs, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true);
transformBlockWithItem(event, b.cracked_slab, b.brick_slab, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true);
transformBlockWithItem(event, b.cracked_wall, b.brick_wall, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true);
// brick -> smooth
transformBlockWithTool(event, b.brick, b.smooth_brick, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true);
transformBlockWithTool(event, b.mossy_brick, b.smooth_brick, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true);
transformBlockWithTool(event, b.cracked_brick, b.smooth_brick, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true);
// smooth -> brick
transformBlockWithTool(event, b.smooth_brick, b.cracked_brick, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
transformBlockWithItem(event, b.smooth_brick, b.mossy_brick, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, b.smooth_brick, b.mossy_brick, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithTool(event, b.smooth_brick, b.brick, '#forge:tools/files', true, 'minecraft:block.beehive.shear', 'minecraft:crit', true);
for (let [rockId, rock] of Object.entries(global.BIG_ROCK_TABLE)) {
if (rock.bricks != null) {
if (rock.bricks.cracked != null) {
//brick -> cracked
transformBlockWithTool(event, rock.bricks.block, rock.bricks.cracked.block, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
transformBlockWithTool(event, rock.bricks.stair, rock.bricks.cracked.stair, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
transformBlockWithTool(event, rock.bricks.slab, rock.bricks.cracked.slab, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
transformBlockWithTool(event, rock.bricks.wall, rock.bricks.cracked.wall, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
//cracked -> brick
transformBlockWithItem(event, rock.bricks.cracked.block, rock.bricks.block, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true);
transformBlockWithItem(event, rock.bricks.cracked.stair, rock.bricks.stair, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true);
transformBlockWithItem(event, rock.bricks.cracked.slab, rock.bricks.slab, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true);
transformBlockWithItem(event, rock.bricks.cracked.wall, rock.bricks.wall, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true);
}
if (rock.bricks.mossy != null) {
//brick -> mossy
transformBlockWithItem(event, rock.bricks.block, rock.bricks.mossy.block, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, rock.bricks.stair, rock.bricks.mossy.stair, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, rock.bricks.slab, rock.bricks.mossy.slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, rock.bricks.wall, rock.bricks.mossy.wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
//mossy -> brick
transformBlockWithTool(event, rock.bricks.mossy.block, rock.bricks.block, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithItem(event, rock.bricks.mossy.block, rock.bricks.block, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithTool(event, rock.bricks.mossy.stair, rock.bricks.stair, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithItem(event, rock.bricks.mossy.stair, rock.bricks.stair, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithTool(event, rock.bricks.mossy.slab, rock.bricks.slab, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithItem(event, rock.bricks.mossy.slab, rock.bricks.slab, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithTool(event, rock.bricks.mossy.wall, rock.bricks.wall, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithItem(event, rock.bricks.mossy.wall, rock.bricks.wall, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
}
if (rock.bricks.cracked != null && rock.bricks.mossy != null) {
//cracked -> mossy
transformBlockWithItem(event, rock.bricks.cracked.block, rock.bricks.mossy.block, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, rock.bricks.cracked.stair, rock.bricks.mossy.stair, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, rock.bricks.cracked.slab, rock.bricks.mossy.slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, rock.bricks.cracked.wall, rock.bricks.mossy.wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
//mossy -> cracked
transformBlockWithTool(event, rock.bricks.mossy.block, rock.bricks.cracked.block, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
transformBlockWithTool(event, rock.bricks.mossy.stair, rock.bricks.cracked.stair, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
transformBlockWithTool(event, rock.bricks.mossy.slab, rock.bricks.cracked.slab, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
transformBlockWithTool(event, rock.bricks.mossy.wall, rock.bricks.cracked.wall, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true);
}
if (rock.polished != null) {
// brick -> smooth
transformBlockWithTool(event, rock.bricks.block, rock.polished.block, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true);
transformBlockWithTool(event, rock.bricks.mossy.block, rock.polished.block, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true);
transformBlockWithTool(event, rock.bricks.cracked.block, rock.polished.block, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true);
}
}
if (rock.cobble != null && rock.cobble.mossy) {
//cobble -> mossy
transformBlockWithItem(event, rock.cobble.block, rock.cobble.mossy.block, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, rock.cobble.stair, rock.cobble.mossy.stair, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, rock.cobble.slab, rock.cobble.mossy.slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, rock.cobble.wall, rock.cobble.mossy.wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
//mossy -> cobble
transformBlockWithTool(event, rock.cobble.mossy.block, rock.cobble.block, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithItem(event, rock.cobble.mossy.block, rock.cobble.block, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithTool(event, rock.cobble.mossy.stair, rock.cobble.stair, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithItem(event, rock.cobble.mossy.stair, rock.cobble.stair, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithTool(event, rock.cobble.mossy.slab, rock.cobble.slab, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithItem(event, rock.cobble.mossy.slab, rock.cobble.slab, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithTool(event, rock.cobble.mossy.wall, rock.cobble.wall, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithItem(event, rock.cobble.mossy.wall, rock.cobble.wall, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
}
}
//Cobble index events
for (const c of global.COBBLE_INDEX) {
//cobble -> mossy
transformBlockWithItem(event, c.block, c.mossy_block, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, c.block, c.mossy_block, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, c.stairs, c.mossy_stairs, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, c.stairs, c.mossy_stairs, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, c.slab, c.mossy_slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, c.slab, c.mossy_slab, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, c.wall, c.mossy_wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
transformBlockWithItem(event, c.wall, c.mossy_wall, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true);
//mossy -> cobble
transformBlockWithTool(event, c.mossy_block, c.block, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithItem(event, c.mossy_block, c.block, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithTool(event, c.mossy_stairs, c.stairs, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithItem(event, c.mossy_stairs, c.stairs, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithTool(event, c.mossy_slab, c.slab, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithItem(event, c.mossy_slab, c.slab, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithTool(event, c.mossy_wall, c.wall, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
transformBlockWithItem(event, c.mossy_wall, c.wall, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true);
}
//Misc Events
transformBlockWithItem(event, 'gtceu:incoloy_ma_956_frame', 'tfg:glacian_wool_frame', 'tfg:glacian_wool', true, 2, 'block.wool.place', 'minecraft:happy_villager', true);
transformBlockWithToolReturn(event, 'tfg:glacian_wool_frame', 'gtceu:incoloy_ma_956_frame', 'tfg:glacian_wool', 2,'#forge:tools/wire_cutters', true, 'minecraft:block.beehive.shear', 'minecraft:crit', true);

View file

@ -38,7 +38,6 @@ const materials = [
{materialName: 'quartzite_tfc', nameColor: '#b8bab8', itemName: 'gtceu:exquisite_quartzite_gem', indexNumber: 0.186},
{materialName: 'realgar_tfc', nameColor: '#c22e28', itemName: 'gtceu:exquisite_realgar_gem', indexNumber: 0.187},
{materialName: 'malachite_tfc', nameColor: '#00b789', itemName: 'gtceu:exquisite_malachite_gem', indexNumber: 0.188},
{materialName: 'glass_tfc', nameColor: '#c2c2c6', itemName: 'gtceu:exquisite_glass_gem', indexNumber: 0.189},
{materialName: 'olivine_tfc', nameColor: '#7fad03', itemName: 'gtceu:exquisite_olivine_gem', indexNumber: 0.171},
{materialName: 'opal_tfc', nameColor: '#bdadb6', itemName: 'gtceu:exquisite_opal_gem', indexNumber: 0.172},
{materialName: 'amethyst_tfc', nameColor: '#9b78ba', itemName: 'gtceu:exquisite_amethyst_gem', indexNumber: 0.173},

View file

@ -326,22 +326,6 @@ function registerTFGMarsBlockTags(event) {
event.add('tfg:decorative_plant_attachable', 'tfg:warped_wart_block')
event.add('tfg:decorative_plant_attachable', 'betterend:cave_bush')
event.add('tfg:decorative_plant_attachable', 'betterend:lucernia_leaves')
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')
}
function registerTFGMarsBiomeTags(event) {

View file

@ -37,7 +37,7 @@ function registerTFGMoonRegolithRecipes(event) {
//#region Regolith Vapor Processing
event.recipes.gtceu.mixer('tfg:regolith_slurry_suspension')
.itemInputs('ad_astra:moon_sand', 'tfg:dry_ice')
.itemInputs('#forge:dusts/asurine', 'tfg:dry_ice')
.itemOutputs('#forge:dusts/regolith_mush')
.dimension('ad_astra:moon')
.duration(20 * 60)

View file

@ -5,97 +5,44 @@
* @param {Internal.RecipesEventJS} event
*/
function registerTFGCollapseRecipes(event) {
// Rocks
for (let [rockId, rock] of Object.entries(global.BIG_ROCK_TABLE)) {
// #region Nether
event.recipes.tfc.collapse('minecraft:cobbled_deepslate', 'minecraft:deepslate')
event.recipes.tfc.collapse('minecraft:cobbled_deepslate', 'tfg:rock/hardened_deepslate')
event.recipes.tfc.collapse('tfg:rock/cobble_blackstone', 'minecraft:blackstone')
event.recipes.tfc.collapse('tfg:rock/cobble_blackstone', 'tfg:rock/hardened_blackstone')
event.recipes.tfc.collapse('tfg:rock/cobble_dripstone', 'minecraft:dripstone_block')
event.recipes.tfc.collapse('tfg:rock/cobble_dripstone', 'tfg:rock/hardened_dripstone')
event.recipes.tfc.collapse('tfg:rock/cobble_crackrack', 'beneath:crackrack')
event.recipes.tfc.collapse('tfc:rock/cobble/basalt', 'minecraft:basalt')
if (rock.cobble != null) {
if (rock.raw != null) {
event.recipes.tfc.collapse(rock.cobble.block, rock.raw.block);
}
if (rock.hardened != null) {
event.recipes.tfc.collapse(rock.cobble.block, rock.hardened);
}
event.recipes.tfc.collapse('minecraft:cobbled_deepslate', '#forge:ores_in_ground/deepslate')
event.recipes.tfc.collapse('tfg:rock/cobble_blackstone', '#forge:ores_in_ground/pyroxenite')
event.recipes.tfc.collapse('tfg:rock/cobble_dripstone', '#forge:ores_in_ground/dripstone')
event.recipes.tfc.collapse(rock.cobble.block, `#forge:ores_in_ground/${rockId}`)
event.recipes.tfc.landslide(rock.cobble.block, rock.cobble.block);
if (rock.cobble.mossy != null) {
event.recipes.tfc.landslide(rock.cobble.mossy.block, rock.cobble.mossy.block);
}
}
if (rock.gravel != null) {
event.recipes.tfc.landslide(rock.gravel, rock.gravel);
}
}
event.recipes.tfc.collapse('#tfg:rock_slabs').id('tfg:collapse/rock_slabs')
event.recipes.tfc.collapse('#tfg:rock_stairs').id('tfg:collapse/rock_stairs')
event.recipes.tfc.collapse('#tfg:rock_walls').id('tfg:collapse/rock_walls')
// Nether
event.recipes.tfc.collapse('tfc:rock/cobble/basalt', 'minecraft:basalt')
event.recipes.tfc.landslide('tfg:ash_pile', 'tfg:ash_pile')
event.recipes.tfc.landslide('minecraft:cobbled_deepslate', 'minecraft:cobbled_deepslate')
event.recipes.tfc.landslide('tfg:rock/mossy_cobble_deepslate', 'tfg:rock/mossy_cobble_deepslate')
event.recipes.tfc.landslide('tfg:rock/cobble_blackstone', 'tfg:rock/cobble_blackstone')
event.recipes.tfc.landslide('tfg:rock/mossy_cobble_blackstone', 'tfg:rock/mossy_cobble_blackstone')
event.recipes.tfc.landslide('tfg:rock/cobble_dripstone', 'tfg:rock/cobble_dripstone')
event.recipes.tfc.landslide('tfg:rock/mossy_cobble_dripstone', 'tfg:rock/mossy_cobble_dripstone')
event.recipes.tfc.landslide('tfg:rock/cobble_crackrack', 'tfg:rock/cobble_crackrack')
event.recipes.tfc.landslide('tfg:rock/mossy_cobble_crackrack', 'tfg:rock/mossy_cobble_crackrack')
event.recipes.tfc.landslide('tfg:rock/gravel_deepslate', 'tfg:rock/gravel_deepslate')
event.recipes.tfc.landslide('tfg:rock/gravel_blackstone', 'tfg:rock/gravel_blackstone')
event.recipes.tfc.landslide('tfg:rock/gravel_dripstone', 'tfg:rock/gravel_dripstone')
event.recipes.tfc.landslide('tfg:rock/gravel_crackrack', 'tfg:rock/gravel_crackrack')
// #endregion Nether
// #region Space
event.recipes.tfc.collapse('ad_astra:moon_cobblestone', 'ad_astra:moon_stone')
event.recipes.tfc.collapse('ad_astra:moon_cobblestone', 'tfg:rock/hardened_moon_stone')
event.recipes.tfc.landslide('ad_astra:moon_cobblestone', 'ad_astra:moon_cobblestone')
event.recipes.tfc.collapse('ad_astra:moon_cobblestone', '#forge:ores_in_ground/moon_stone')
event.recipes.tfc.landslide('tfg:rock/mossy_cobble_moon', 'tfg:rock/mossy_cobble_moon')
event.recipes.tfc.landslide('tfg:rock/gravel_moon', 'tfg:rock/gravel_moon')
event.recipes.tfc.collapse('ad_astra:moon_deepslate', 'ad_astra:moon_deepslate')
event.recipes.tfc.collapse('ad_astra:moon_deepslate', 'tfg:rock/hardened_moon_deepslate')
event.recipes.tfc.collapse('ad_astra:moon_deepslate', '#forge:ores_in_ground/moon_deepslate')
event.recipes.tfc.landslide('tfg:rock/cobble_moon_deepslate', 'tfg:rock/cobble_moon_deepslate')
event.recipes.tfc.landslide('tfg:rock/mossy_cobble_moon_deepslate', 'tfg:rock/mossy_cobble_moon_deepslate')
event.recipes.tfc.landslide('tfg:rock/gravel_moon_deepslate', 'tfg:rock/gravel_moon_deepslate')
// Space
event.recipes.tfc.landslide('ad_astra:moon_sand', 'ad_astra:moon_sand')
event.recipes.tfc.collapse('ad_astra:glacio_cobblestone', 'ad_astra:glacio_stone')
event.recipes.tfc.collapse('ad_astra:glacio_cobblestone', 'tfg:rock/hardened_glacio_stone')
event.recipes.tfc.collapse('ad_astra:glacio_cobblestone', '#forge:ores_in_ground/glacio_stone')
event.recipes.tfc.landslide('ad_astra:glacio_cobblestone', 'ad_astra:glacio_cobblestone')
event.recipes.tfc.landslide('tfg:rock/mossy_cobble_glacio', 'tfg:rock/mossy_cobble_glacio')
event.recipes.tfc.landslide('tfg:rock/gravel_glacio', 'tfg:rock/gravel_glacio')
event.recipes.tfc.collapse('ad_astra:mars_cobblestone', 'ad_astra:mars_stone')
event.recipes.tfc.collapse('ad_astra:mars_cobblestone', 'tfg:rock/hardened_mars_stone')
event.recipes.tfc.collapse('ad_astra:mars_cobblestone', '#forge:ores_in_ground/mars_stone')
event.recipes.tfc.landslide('ad_astra:mars_cobblestone', 'ad_astra:mars_cobblestone')
event.recipes.tfc.landslide('tfg:rock/mossy_cobble_mars', 'tfg:rock/mossy_cobble_mars')
event.recipes.tfc.landslide('tfg:rock/gravel_mars', 'tfg:rock/gravel_mars')
event.recipes.tfc.landslide('ad_astra:mars_sand', 'ad_astra:mars_sand')
event.recipes.tfc.collapse('ad_astra:venus_cobblestone', 'ad_astra:venus_stone')
event.recipes.tfc.collapse('ad_astra:venus_cobblestone', 'tfg:rock/hardened_venus_stone')
event.recipes.tfc.collapse('ad_astra:venus_cobblestone', '#forge:ores_in_ground/venus_stone')
event.recipes.tfc.landslide('ad_astra:venus_cobblestone', 'ad_astra:venus_cobblestone')
event.recipes.tfc.landslide('tfg:rock/mossy_cobble_venus', 'tfg:rock/mossy_cobble_venus')
event.recipes.tfc.landslide('tfg:rock/gravel_venus', 'tfg:rock/gravel_venus')
event.recipes.tfc.landslide('ad_astra:venus_sand', 'ad_astra:venus_sand')
event.recipes.tfc.collapse('ad_astra:mercury_cobblestone', 'ad_astra:mercury_stone')
event.recipes.tfc.collapse('ad_astra:mercury_cobblestone', 'tfg:rock/hardened_mercury_stone')
event.recipes.tfc.collapse('ad_astra:mercury_cobblestone', '#forge:ores_in_ground/mercury_stone')
event.recipes.tfc.landslide('ad_astra:mercury_cobblestone', 'ad_astra:mercury_cobblestone')
event.recipes.tfc.landslide('tfg:rock/mossy_cobble_mercury', 'tfg:rock/mossy_cobble_mercury')
event.recipes.tfc.landslide('tfg:rock/gravel_mercury', 'tfg:rock/gravel_mercury')
event.recipes.tfc.collapse('tfg:rock/cobble_permafrost', 'ad_astra:permafrost')
event.recipes.tfc.collapse('tfg:rock/cobble_permafrost', '#forge:ores_in_ground/permafrost')
event.recipes.tfc.landslide('tfg:rock/cobble_permafrost', 'tfg:rock/cobble_permafrost')
event.recipes.tfc.landslide('tfg:rock/mossy_cobble_permafrost', 'tfg:rock/mossy_cobble_permafrost')
event.recipes.tfc.landslide('tfg:rock/gravel_permafrost', 'tfg:rock/gravel_permafrost')
event.recipes.tfc.collapse('gtceu:red_granite_cobblestone', 'gtceu:red_granite')
event.recipes.tfc.collapse('gtceu:red_granite_cobblestone', 'tfg:rock/hardened_red_granite')
event.recipes.tfc.collapse('gtceu:red_granite_cobblestone', '#forge:ores_in_ground/red_granite')
event.recipes.tfc.landslide('gtceu:red_granite_cobblestone', 'gtceu:red_granite_cobblestone')
event.recipes.tfc.landslide('tfg:rock/mossy_cobble_red_granite', 'tfg:rock/mossy_cobble_red_granite')
event.recipes.tfc.landslide('tfg:rock/gravel_red_granite', 'tfg:rock/gravel_red_granite')
event.recipes.tfc.landslide('minecraft:red_sand', 'minecraft:red_sand')
event.recipes.tfc.landslide('tfg:grass/mars_dirt', 'tfg:grass/mars_dirt')
@ -119,15 +66,7 @@ function registerTFGCollapseRecipes(event) {
event.recipes.tfc.landslide('tfg:sand/fluorapatite/orange', 'tfg:sand/fluorapatite/orange')
event.recipes.tfc.landslide('tfg:sand/fluorapatite/white', 'tfg:sand/fluorapatite/white')
event.recipes.tfc.landslide('tfg:sand/fluorapatite/yellow', 'tfg:sand/fluorapatite/yellow')
// #endregion
// #region Other
event.recipes.tfc.collapse('#tfg:rock_slabs').id('tfg:collapse/rock_slabs')
event.recipes.tfc.collapse('#tfg:rock_stairs').id('tfg:collapse/rock_stairs')
event.recipes.tfc.collapse('#tfg:rock_walls').id('tfg:collapse/rock_walls')
event.recipes.tfc.collapse('minecraft:cobblestone', 'minecraft:stone')
event.recipes.tfc.landslide('minecraft:cobblestone', 'minecraft:cobblestone')
event.recipes.tfc.landslide('minecraft:mossy_cobblestone', 'minecraft:mossy_cobblestone')
// #endregion
// Other
event.recipes.tfc.collapse("#forge:raw_ore_blocks");
}

View file

@ -1,19 +1,28 @@
"use strict";
function registerTFGConcreteRecipes(event) {
event.remove({ id: 'gtceu:mixer/concrete_from_marble' })
event.remove({ id: 'greate:mixing/integration/gtceu/mixer/concrete_from_marble' })
const recipe = event.recipes.gtceu.mixer('concrete_from_marble')
.itemInputs(Ingredient.of('#tfg:stone_dusts').subtract('gtceu:marble_dust').withCount(2), 'gtceu:marble_dust', 'gtceu:gypsum_dust')
event.recipes.gtceu.mixer('tfg:concrete_from_marble')
.itemInputs(
Ingredient.of('#tfg:stone_dusts').subtract('tfg:sedimentary_carbonate_dust').withCount(2),
'#forge:dusts/sedimentary_carbonate',
'gtceu:gypsum_dust')
.inputFluids("#tfg:clean_water 1000")
.outputFluids('gtceu:concrete 1152')
.duration(40)
.EUt(16)
generateMixerRecipe(event, ['3x #tfg:stone_dusts', 'gtceu:clay_dust'],
"#tfg:clean_water 500", [], null, 'gtceu:concrete 576', 20, 16, 64, 'concrete_from_clay')
"#tfg:clean_water 500", [], null, 'gtceu:concrete 576', 20, 16, 64, 'tfg:concrete_from_clay')
generateMixerRecipe(event, ['3x #tfg:stone_dusts', 'gtceu:calcite_dust', 'gtceu:gypsum_dust'],
"#tfg:clean_water 1000", [], null, 'gtceu:concrete 1152', 40, 16, 64, 'concrete_from_calcite')
"#tfg:clean_water 1000", [], null, 'gtceu:concrete 1152', 40, 16, 64, 'tfg:concrete_from_calcite')
//GT light/dark concrete recipe fix
@ -61,7 +70,7 @@ function registerTFGConcreteRecipes(event) {
// Handcrafted artisanal concrete
event.recipes.firmalife.mixing_bowl()
.ingredients(['#tfg:stone_dusts', '#tfg:stone_dusts', '#forge:dusts/marble', '#forge:dusts/gypsum'], Fluid.of('minecraft:water', 1000))
.ingredients(['#tfg:stone_dusts', '#tfg:stone_dusts', '#forge:dusts/sedimentary_carbonate', '#forge:dusts/gypsum'], Fluid.of('minecraft:water', 1000))
.outputFluid(Fluid.of('gtceu:concrete', 1000))
event.recipes.firmalife.mixing_bowl()

File diff suppressed because it is too large Load diff

View file

@ -3,7 +3,6 @@
function registerTFGSandRecipes(event) {
// Нефтеносный -> Желтый песок
event.recipes.gtceu.centrifuge('oilsands_ore_separation')
.itemInputs('#forge:ores/oilsands')
.chancedOutput('tfc:sand/yellow', 5000, 5000)
@ -11,7 +10,6 @@ function registerTFGSandRecipes(event) {
.duration(200)
.EUt(30)
// Пыль нефтеносного песка -> Желтый песок
event.recipes.gtceu.centrifuge('oilsands_dust_separation')
.itemInputs('gtceu:oilsands_dust')
.chancedOutput('tfc:sand/yellow', 5000, 5000)
@ -19,7 +17,6 @@ function registerTFGSandRecipes(event) {
.duration(200)
.EUt(30)
// Земля -> Желтый песок
event.recipes.gtceu.centrifuge('dirt_separation')
.itemInputs('#tfc:dirt')
.chancedOutput('gtceu:plant_ball', 1250, 700)
@ -28,9 +25,8 @@ function registerTFGSandRecipes(event) {
.duration(250)
.EUt(30)
// Рецепты где нужно итерироваться по всем цветам
global.SAND_COLORS.forEach(sandColor => {
// Песчанник -> Песок
// Raw sandstone -> sand
event.recipes.gtceu.forge_hammer(`raw_${sandColor}_sandstone_to_sand`)
.itemInputs(`tfc:raw_sandstone/${sandColor}`)
.itemOutputs(`4x tfc:sand/${sandColor}`)
@ -41,7 +37,7 @@ function registerTFGSandRecipes(event) {
.recipeTier(1)
.id(`greate:pressing/raw_${sandColor}_sandstone_to_sand`)
// Гладкий песчанник -> Песок
// Smooth sandstone -> sand
event.recipes.gtceu.forge_hammer(`smooth_${sandColor}_sandstone_to_sand`)
.itemInputs(`tfc:smooth_sandstone/${sandColor}`)
.itemOutputs(`4x tfc:sand/${sandColor}`)
@ -52,7 +48,7 @@ function registerTFGSandRecipes(event) {
.recipeTier(1)
.id(`greate:pressing/smooth_${sandColor}_sandstone_to_sand`)
// Обрезанный песчанник -> Песок
// Cut sandstone -> sand
event.recipes.gtceu.forge_hammer(`cut_${sandColor}_sandstone_to_sand`)
.itemInputs(`tfc:cut_sandstone/${sandColor}`)
.itemOutputs(`4x tfc:sand/${sandColor}`)
@ -63,154 +59,87 @@ function registerTFGSandRecipes(event) {
.recipeTier(1)
.id(`greate:pressing/cut_${sandColor}_sandstone_to_sand`)
// Песок -> Песчанник
// Sand -> sandstone
event.recipes.gtceu.compressor(`sand_${sandColor}_to_sandstone`)
.itemInputs(`4x tfc:sand/${sandColor}`)
.itemOutputs(`tfc:raw_sandstone/${sandColor}`)
.duration(400)
.EUt(2)
// Песчанник -> Гладкий песчанник
// Gravel -> Sand
event.recipes.gtceu.forge_hammer(`${sandColor}_gravel_to_sand`)
.itemInputs(`#tfc:${sandColor}_gravel`)
.itemOutputs(`tfc:sand/${sandColor}`)
.duration(20*3.5)
.EUt(2)
event.recipes.greate.pressing(`tfc:sand/${sandColor}`, `#tfc:${sandColor}_gravel`)
.recipeTier(1)
.id(`greate:pressing/${sandColor}_gravel_to_sand`)
// Smooth -> Raw
event.stonecutting(`tfc:smooth_sandstone/${sandColor}`, `tfc:raw_sandstone/${sandColor}`)
.id(`tfg:stonecutting/raw_sandstone_${sandColor}_to_smooth_sandstone`)
// Песчанник -> Обрезанный песчанник
// Cut -> Raw
event.stonecutting(`tfc:cut_sandstone/${sandColor}`, `tfc:raw_sandstone/${sandColor}`)
.id(`raw_sandstone_${sandColor}_to_cut_sandstone`)
// Песчанник -> Ступень
// Raw -> Stairs
event.remove({ id: `tfc:crafting/sandstone/${sandColor}_raw_stairs` })
event.stonecutting(`tfc:raw_sandstone/${sandColor}_stairs`, `tfc:raw_sandstone/${sandColor}`)
.id(`tfg:stonecutting/${sandColor}_sandstone_to_stairs`)
// Песчанник -> Плита
// Raw -> Slab
event.remove({ id: `tfc:crafting/sandstone/${sandColor}_raw_slab` })
event.stonecutting(`2x tfc:raw_sandstone/${sandColor}_slab`, `tfc:raw_sandstone/${sandColor}`)
.id(`tfg:stonecutting/${sandColor}_sandstone_to_slabs`)
// Песчанник -> Стена
// Raw -> Wall
event.remove({ id: `tfc:crafting/sandstone/${sandColor}_raw_wall` })
event.stonecutting(`tfc:raw_sandstone/${sandColor}_wall`, `tfc:raw_sandstone/${sandColor}`)
.id(`tfg:stonecutting/${sandColor}_sandstone_to_wall`)
// Гладкий песчанник -> Ступень
// Smooth -> Stairs
event.remove({ id: `tfc:crafting/sandstone/${sandColor}_smooth_stairs` })
event.stonecutting(`tfc:smooth_sandstone/${sandColor}_stairs`, `tfc:smooth_sandstone/${sandColor}`)
.id(`tfg:stonecutting/${sandColor}_smooth_sandstone_to_stairs`)
// Гладкий песчанник -> Плита
// Smooth -> Slab
event.remove({ id: `tfc:crafting/sandstone/${sandColor}_smooth_slab` })
event.stonecutting(`2x tfc:smooth_sandstone/${sandColor}_slab`, `tfc:smooth_sandstone/${sandColor}`)
.id(`tfg:stonecutting/${sandColor}_smooth_sandstone_to_slab`)
// Гладкий песчанник -> Стена
// Smooth -> Wall
event.remove({ id: `tfc:crafting/sandstone/${sandColor}_smooth_wall` })
event.stonecutting(`tfc:smooth_sandstone/${sandColor}_wall`, `tfc:smooth_sandstone/${sandColor}`)
.id(`tfg:stonecutting/${sandColor}_smooth_sandstone_to_wall`)
// Обрезанный песчанник -> Ступень
// Cut -> Stairs
event.remove({ id: `tfc:crafting/sandstone/${sandColor}_cut_stairs` })
event.stonecutting(`tfc:cut_sandstone/${sandColor}_stairs`, `tfc:cut_sandstone/${sandColor}`)
.id(`tfg:stonecutting/${sandColor}_cut_sandstone_to_stairs`)
// Обрезанный песчанник -> Плита
// Cut -> Slab
event.remove({ id: `tfc:crafting/sandstone/${sandColor}_cut_slab` })
event.stonecutting(`2x tfc:cut_sandstone/${sandColor}_slab`, `tfc:cut_sandstone/${sandColor}`)
.id(`tfg:stonecutting/${sandColor}_cut_sandstone_to_slab`)
// Обрезанный песчанник -> Стена
// Cut -> Wall
event.remove({ id: `tfc:crafting/sandstone/${sandColor}_cut_wall` })
event.stonecutting(`tfc:cut_sandstone/${sandColor}_wall`, `tfc:cut_sandstone/${sandColor}`)
.id(`tfg:stonecutting/${sandColor}_cut_sandstone_to_wall`)
})
// Коричневый гравий -> Песок
event.recipes.gtceu.forge_hammer('brown_gravel_to_sand')
.itemInputs('#tfc:brown_gravel')
.itemOutputs('tfc:sand/brown')
.duration(20*3.5)
.EUt(2)
event.recipes.greate.pressing('tfc:sand/brown', '#tfc:brown_gravel')
.recipeTier(1)
.id(`greate:pressing/brown_gravel_to_sand`)
// Белый гравий -> Песок
event.recipes.gtceu.forge_hammer('white_gravel_to_sand')
.itemInputs('#tfc:white_gravel')
.itemOutputs('tfc:sand/white')
.duration(20*3.5)
.EUt(2)
event.recipes.greate.pressing('tfc:sand/white', '#tfc:white_gravel')
.recipeTier(1)
.id(`greate:pressing/white_gravel_to_sand`)
// Черный гравий -> Песок
event.recipes.gtceu.forge_hammer('black_gravel_to_sand')
.itemInputs('#tfc:black_gravel')
.itemOutputs('tfc:sand/black')
.duration(20*3.5)
.EUt(2)
event.recipes.greate.pressing('tfc:sand/black', '#tfc:black_gravel')
.recipeTier(1)
.id(`greate:pressing/black_gravel_to_sand`)
// Красный гравий -> Песок
event.recipes.gtceu.forge_hammer('red_gravel_to_sand')
.itemInputs('#tfc:red_gravel')
.itemOutputs('tfc:sand/red')
.duration(20*3.5)
.EUt(2)
event.recipes.greate.pressing('tfc:sand/red', '#tfc:red_gravel')
.recipeTier(1)
.id(`greate:pressing/red_gravel_to_sand`)
// Желтый гравий -> Песок
event.recipes.gtceu.forge_hammer('yellow_gravel_to_sand')
.itemInputs('#tfc:yellow_gravel')
.itemOutputs('tfc:sand/yellow')
.duration(20*3.5)
.EUt(2)
event.recipes.greate.pressing('tfc:sand/yellow', '#tfc:yellow_gravel')
.recipeTier(1)
.id(`greate:pressing/yellow_gravel_to_sand`)
// Зеленый гравий -> Песок
event.recipes.gtceu.forge_hammer('green_gravel_to_sand')
.itemInputs('#tfc:green_gravel')
.itemOutputs('tfc:sand/green')
.duration(20*3.5)
.EUt(2)
event.recipes.greate.pressing('tfc:sand/green', '#tfc:green_gravel')
.recipeTier(1)
.id(`greate:pressing/green_gravel_to_sand`)
// Розовый гравий -> Песок
event.recipes.gtceu.forge_hammer('pink_gravel_to_sand')
.itemInputs('#tfc:pink_gravel')
.itemOutputs('tfc:sand/pink')
.duration(20*3.5)
.EUt(2)
event.recipes.greate.pressing('tfc:sand/pink', '#tfc:pink_gravel')
.recipeTier(1)
.id(`greate:pressing/pink_gravel_to_sand`)
// Quartz sand
event.shaped('gtceu:quartz_sand_dust', [
'A',
@ -231,4 +160,18 @@ function registerTFGSandRecipes(event) {
.itemOutputs('gtceu:silicon_dioxide_dust')
.duration(500)
.EUt(25)
event.recipes.gtceu.centrifuge('gtceu:quartz_sand_separation')
.EUt(GTValues.VA[GTValues.LV])
.duration(60)
.itemInputs('2x gtceu:quartz_sand_dust')
.itemOutputs('gtceu:quartzite_dust')
.chancedOutput('#forge:dusts/nether_quartz', 2000, 0)
event.recipes.gtceu.autoclave('tfg:quartz_sand_autoclave')
.itemInputs('gtceu:quartz_sand_dust')
.inputFluids(Fluid.of('minecraft:water', 250))
.chancedOutput('gtceu:quartzite_gem', 4500, 0)
.duration(60 * 20)
.EUt(GTValues.VA[GTValues.LV])
}

View file

@ -6,280 +6,18 @@
*/
function registerTFGStoneDustRecipes(event) {
// Same outputs as base GT, but with small dusts instead
event.recipes.gtceu.centrifuge('gtceu:stone_dust_separation')
.itemInputs('gtceu:stone_dust')
.chancedOutput('#forge:small_dusts/quartzite', 2500, 0)
.chancedOutput('#forge:small_dusts/potassium_feldspar', 2500, 0)
.chancedOutput('#forge:small_dusts/marble', 2222, 0)
.chancedOutput('#forge:small_dusts/calcite', 2222, 0)
.chancedOutput('#forge:small_dusts/biotite', 1111, 0)
.chancedOutput('#forge:small_dusts/metal_mixture', 825, 80)
.chancedOutput('#forge:small_dusts/sodalite', 550, 55)
.duration(12 * 20)
.EUt(GTValues.VA[GTValues.HV])
event.remove({ id: 'gtceu:electrolyzer/decomposition_electrolyzing_blackstone' })
event.recipes.gtceu.centrifuge('gtceu:decomposition_centrifuging__diorite')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Diorite, 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Clay, 1), 4500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Mirabilite, 1), 2000, 0)
.outputFluids(Fluid.of('gtceu:oxygen', 5))
event.recipes.gtceu.centrifuge('gtceu:decomposition_centrifuging__marble')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Marble, 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Calcite, 1), 6000, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Magnesium, 1), 1500, 0)
.outputFluids(Fluid.of('gtceu:oxygen', 12))
event.recipes.gtceu.centrifuge('gtceu:decomposition_centrifuging__andesite')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Andesite, 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Asbestos, 1), 6000, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Saltpeter, 1), 2000, 0)
event.recipes.gtceu.centrifuge('gtceu:decomposition_centrifuging__basalt')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Basalt, 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Flint, 1), 5000, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Olivine, 1), 1500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Calcite, 1), 1500, 0)
event.recipes.gtceu.centrifuge('gtceu:decomposition_centrifuging__granite')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Granite, 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Redrock, 1), 3000, 0)
.outputFluids(Fluid.of('gtceu:oxygen', 5))
event.recipes.gtceu.centrifuge('gtceu:decomposition_centrifuging__deepslate')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Deepslate, 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Olivine, 1), 3500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 3500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Biotite, 1), 2000, 0)
.outputFluids(Fluid.of('gtceu:oxygen', 12))
event.recipes.gtceu.centrifuge('blackstone_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Blackstone, 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Magnesium, 1), 4500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Graphite, 1), 3500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Gold, 1), 3500, 0)
.outputFluids(Fluid.of('gtceu:oxygen', 16))
event.recipes.gtceu.centrifuge('red_granite_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.GraniteRed, 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Hematite, 1), 4500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Perlite, 1), 3500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Redrock, 1), 1500, 0)
.outputFluids(Fluid.of('gtceu:oxygen', 8))
// TFC
event.recipes.gtceu.centrifuge('gabbro_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('gabbro'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Magnetite, 1), 2500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 1500, 0)
event.recipes.gtceu.centrifuge('shale_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('shale'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Sodium, 1), 6500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 1500, 0)
.outputFluids(Fluid.of('gtceu:oxygen', 16))
event.recipes.gtceu.centrifuge('claystone_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('claystone'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Hematite, 1), 3500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Clay, 1), 3000, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Bauxite, 1), 2500, 0)
.outputFluids(Fluid.of('gtceu:oxygen', 5))
event.recipes.gtceu.centrifuge('limestone_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('limestone'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Calcium, 1), 5500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 1500, 0)
.outputFluids(Fluid.of('gtceu:oxygen', 36))
event.recipes.gtceu.centrifuge('conglomerate_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('conglomerate'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Hematite, 1), 3500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.TricalciumPhosphate, 1), 3500, 0)
.outputFluids(Fluid.of('gtceu:oxygen', 5))
event.recipes.gtceu.centrifuge('dolomite_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('dolomite'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Magnesium, 1), 6500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Calcium, 1), 5500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 3500, 0)
.outputFluids(Fluid.of('gtceu:oxygen', 16))
event.recipes.gtceu.centrifuge('chert_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('chert'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Redrock, 1), 5500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 3500, 0)
.outputFluids(Fluid.of('gtceu:oxygen', 24))
event.recipes.gtceu.centrifuge('chalk_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('chalk'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Calcium, 1), 6500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Carbon, 1), 3500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 1500, 0)
.outputFluids(Fluid.of('gtceu:oxygen', 12))
event.recipes.gtceu.centrifuge('rhyolite_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('rhyolite'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 1500, 0)
event.recipes.gtceu.centrifuge('dacite_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('dacite'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Sodium, 1), 6500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Calcium, 1), 5500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Kyanite, 1), 3500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 1500, 0)
.outputFluids(Fluid.of('gtceu:oxygen', 12))
event.recipes.gtceu.centrifuge('slate_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('slate'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Sapphire, 1), 1500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 1500, 0)
.outputFluids(Fluid.of('gtceu:oxygen', 24))
event.recipes.gtceu.centrifuge('phyllite_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('phyllite'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Quartzite, 1), 5500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.CalciumChloride, 1), 1500, 0)
.outputFluids(Fluid.of('gtceu:oxygen', 5))
event.recipes.gtceu.centrifuge('schist_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('schist'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Mica, 1), 6500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Talc, 1), 5500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.MetalMixture, 1), 500, 0)
.outputFluids(Fluid.of('gtceu:oxygen', 12))
event.recipes.gtceu.centrifuge('gneiss_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('gneiss'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Quartzite, 1), 6500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Biotite, 1), 3500, 0)
.outputFluids(Fluid.of('gtceu:oxygen', 5))
event.recipes.gtceu.centrifuge('dripstone_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('dripstone'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.CalciumCarbonate, 1), 8500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.CalciumHydroxide, 1), 1500, 0)
.outputFluids(Fluid.of('gtceu:oxygen', 12))
// Ad astra
event.recipes.gtceu.centrifuge('moon_stone_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(10 * 20)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('moon_stone'), 1))
.chancedOutput('ae2:sky_dust', 5000, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Calcium, 1), 4500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Magnetite, 1), 2000, 0)
.outputFluids(Fluid.of('gtceu:helium_3', 200))
event.recipes.gtceu.centrifuge('moon_deepslate_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(10 * 20)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('moon_deepslate'), 1))
.chancedOutput('ae2:sky_dust', 5000, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Olivine, 1), 4500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Calcium, 1), 3000, 0)
.outputFluids(Fluid.of('gtceu:helium_3', 200))
event.recipes.gtceu.centrifuge('glacio_stone_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(10 * 20)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('glacio_stone'), 1))
.chancedOutput('ae2:sky_dust', 3000, 500)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Sodium, 1), 4000, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Potassium, 1), 3000, 0)
.outputFluids(Fluid.of('gtceu:oxygen', 50), Fluid.of('gtceu:helium_3', 300))
event.recipes.gtceu.centrifuge('mars_stone_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('mars_stone'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, TFGHelpers.getMaterial('aluminium_silicate'), 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Hematite, 1), 4500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Calcite, 1), 4000, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Beryllium, 1), 2000, 0)
.outputFluids(Fluid.of('gtceu:oxygen', 36))
event.recipes.gtceu.centrifuge('venus_stone_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('venus_stone'), 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, TFGHelpers.getMaterial('aluminium_silicate'), 1), 3500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Potassium, 1), 2500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Lithium, 1), 2000, 0)
.outputFluids(Fluid.of('gtceu:oxygen', 32))
// AE2
@ -294,35 +32,20 @@ function registerTFGStoneDustRecipes(event) {
event.recipes.gtceu.centrifuge('asurine_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.duration(10 * 20)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('asurine'), 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.CertusQuartz, 1), 4500, 0)
.chancedOutput('ae2:sky_dust', 6000, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.CertusQuartz, 1), 5000, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Olivine, 1), 4500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Zinc, 1), 3500, 0)
.outputFluids(Fluid.of('gtceu:helium_3', 200))
event.recipes.gtceu.centrifuge('ochrum_dust_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, TFGHelpers.getMaterial('ochrum'), 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Gold, 1), 3500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Silver, 1), 3500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Quartzite, 1), 5000, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Hematite, 1), 3500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Gold, 1), 3500, 0)
// Misc dust
event.recipes.gtceu.centrifuge('gtceu:quartz_sand_separation')
.EUt(30)
.duration(60)
.itemInputs('2x gtceu:quartz_sand_dust')
.itemOutputs('gtceu:quartzite_dust')
.chancedOutput('#forge:dusts/nether_quartz', 2000, 0)
// Keratophyre
event.recipes.gtceu.centrifuge('netherrack_separation')
.EUt(GTValues.VA[GTValues.MV])
.duration(480)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Netherrack, 1))
.itemOutputs(ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.SiliconDioxide, 1))
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Graphite, 1), 3500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Sodium, 1), 4500, 0)
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Sulfur, 1), 3500, 0)
.outputFluids(Fluid.of('gtceu:oxygen', 12))
}

View file

@ -9,36 +9,6 @@ function registerTFCStoneRecipes(event) {
global.TFC_STONE_TYPES.forEach(stone => {
let stoneMaterial = TFGHelpers.getMaterial(stone);
let stoneDust = ChemicalHelper.get(TagPrefix.dust, stoneMaterial, 1)
// Brick (item)
event.recipes.gtceu.cutter(`tfg:tfc/${stone}_loose_to_brick`)
.itemInputs(`tfc:rock/loose/${stone}`)
.itemOutputs(`tfc:brick/${stone}`)
.duration(10)
.EUt(2)
//#region Raw Stone
// Breaker Duping
event.recipes.gtceu.rock_breaker(`${stone}_raw`)
.notConsumable(`tfc:rock/raw/${stone}`)
.itemOutputs(`tfc:rock/raw/${stone}`)
.duration(16)
.EUt(7)
// Hammering
event.recipes.gtceu.forge_hammer(`${stone}_raw_to_cobble`)
.itemInputs(`tfc:rock/raw/${stone}`)
.itemOutputs(`tfc:rock/cobble/${stone}`)
.duration(10)
.EUt(7)
event.recipes.greate.pressing(`tfc:rock/cobble/${stone}`, `tfc:rock/raw/${stone}`)
.recipeTier(0)
.id(`greate:pressing/${stone}_raw_to_cobble`)
// Raw Pressure Plate
event.shaped(`tfc:rock/pressure_plate/${stone}`, [
' B ',
@ -63,40 +33,10 @@ function registerTFCStoneRecipes(event) {
generateCutterRecipe(event, `tfc:rock/pressure_plate/${stone}`, `6x tfc:rock/button/${stone}`, 50, 2, `${stone}_raw_button`)
// Cobble Packing
event.recipes.gtceu.packer(`tfc:gtceu/packer/packing_loose_${stone}_to_cobble`)
.itemInputs(`4x tfc:rock/loose/${stone}`)
.itemOutputs(`1x tfc:rock/cobble/${stone}`)
.circuit(1)
.duration(30)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.packer(`tfc:gtceu/packer/packing_mossy_loose_${stone}_to_cobble`)
.itemInputs(`4x tfc:rock/mossy_loose/${stone}`)
.itemOutputs(`1x tfc:rock/mossy_cobble/${stone}`)
.circuit(1)
.duration(30)
.EUt(GTValues.VA[GTValues.ULV])
// Cobble Unpacking
event.recipes.gtceu.packer(`tfc:gtceu/packer/unpacking_${stone}_cobble_into_loose`)
.itemInputs(`1x tfc:rock/cobble/${stone}`)
.itemOutputs(`4x tfc:rock/loose/${stone}`)
.circuit(1)
.duration(20)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.packer(`tfc:gtceu/packer/unpacking_mossy_${stone}_cobble_into_loose`)
.itemInputs(`1x tfc:rock/mossy_cobble/${stone}`)
.itemOutputs(`4x tfc:rock/mossy_loose/${stone}`)
.circuit(1)
.duration(20)
.EUt(GTValues.VA[GTValues.ULV])
//#endregion
event.shapeless(`3x tfc:rock/button/${stone}`, [`tfc:rock/pressure_plate/${stone}`, '#forge:tools/saws'])
.id(`tfg:shapeless/${stone}_pressure_plate_to_button`)
// #region Stonecutting
// Raw
event.remove({ id: `tfc:crafting/rock/${stone}_raw_stairs` })
event.remove({ id: `tfc:crafting/rock/${stone}_raw_slab` })
@ -106,11 +46,13 @@ function registerTFCStoneRecipes(event) {
event.remove({ id: `tfc:crafting/rock/${stone}_cobble_stairs` })
event.remove({ id: `tfc:crafting/rock/${stone}_cobble_slab` })
event.remove({ id: `tfc:crafting/rock/${stone}_cobble_wall` })
event.remove({ id: `tfc:crafting/rock/${stone}_cobble_wall_undo` })
// Mossy Cobble
event.remove({ id: `tfc:crafting/rock/${stone}_mossy_cobble_stairs` })
event.remove({ id: `tfc:crafting/rock/${stone}_mossy_cobble_slab` })
event.remove({ id: `tfc:crafting/rock/${stone}_mossy_cobble_wall` })
event.remove({ id: `tfc:crafting/rock/${stone}_mossy_cobble_wall_undo` })
// Smooth
event.remove({ id: `tfc:crafting/rock/${stone}_smooth_stairs` })
@ -131,408 +73,6 @@ function registerTFCStoneRecipes(event) {
event.remove({ id: `tfc:crafting/rock/${stone}_mossy_bricks_stairs` })
event.remove({ id: `tfc:crafting/rock/${stone}_mossy_bricks_slab` })
event.remove({ id: `tfc:crafting/rock/${stone}_mossy_bricks_wall` })
// Hardened -> Smooth
event.stonecutting(`tfc:rock/smooth/${stone}`, `tfc:rock/hardened/${stone}`).id(`hardened_${stone}_to_smooth`)
// Chiseled Brick -> Brick
event.stonecutting(`tfc:rock/chiseled/${stone}`, `tfc:rock/bricks/${stone}`).id(`chiseled_${stone}`)
// #endregion
//#region Cobblestone
// Breaker Dupe
event.recipes.gtceu.rock_breaker(`${stone}_cobble`)
.notConsumable(`tfc:rock/cobble/${stone}`)
.itemOutputs(`tfc:rock/cobble/${stone}`)
.duration(16)
.EUt(7)
// Hammering Cobble -> Gravel
event.recipes.gtceu.forge_hammer(`${stone}_cobble_to_gravel`)
.itemInputs(`tfc:rock/cobble/${stone}`)
.itemOutputs(`tfc:rock/gravel/${stone}`)
.duration(10)
.EUt(7)
event.recipes.greate.pressing(`tfc:rock/gravel/${stone}`, `tfc:rock/cobble/${stone}`)
.recipeTier(0)
.id(`greate:pressing/${stone}_cobble_to_gravel`)
// #endregion
//#region Bricks Glueing
event.recipes.gtceu.assembler(`bricks_${stone}`)
.itemInputs(`5x tfc:brick/${stone}`)
.circuit(1)
.inputFluids(Fluid.of('gtceu:concrete', 72))
.itemOutputs(`4x tfc:rock/bricks/${stone}`)
.duration(50)
.EUt(2)
//#endregion
//#region Cracking Bricks
event.recipes.gtceu.forge_hammer(`cracked_bricks_${stone}`)
.itemInputs(`tfc:rock/bricks/${stone}`)
.itemOutputs(`tfc:rock/cracked_bricks/${stone}`)
.duration(25)
.EUt(7)
event.recipes.greate.pressing(`tfc:rock/cracked_bricks/${stone}`, `tfc:rock/bricks/${stone}`)
.recipeTier(0)
.id(`greate:pressing/cracked_bricks_${stone}`)
//#endregion
//#region Mossy Cobble
// Cobble -> Mossy Cobble
event.recipes.gtceu.assembler(`${stone}_cobble_rocks_to_mossy_cobble`)
.itemInputs(`tfc:rock/cobble/${stone}`, '#tfc:compost_greens_low')
.circuit(0)
.inputFluids("#tfg:clean_water 144")
.itemOutputs(`tfc:rock/mossy_cobble/${stone}`)
.duration(50)
.EUt(2)
//#endregion
//#region Bricks -> Mossy Bricks
event.recipes.gtceu.assembler(`mossy_bricks_${stone}`)
.itemInputs(`tfc:rock/bricks/${stone}`, '#tfc:compost_greens_low')
.circuit(0)
.inputFluids("#tfg:clean_water 144")
.itemOutputs(`tfc:rock/mossy_bricks/${stone}`)
.duration(50)
.EUt(2)
//#endregion
//#region Hardened
event.recipes.gtceu.assembler(`hardened_${stone}`)
.itemInputs(`5x tfc:rock/raw/${stone}`)
.circuit(0)
.inputFluids(Fluid.of('gtceu:concrete', 72))
.itemOutputs(`2x tfc:rock/hardened/${stone}`)
.duration(250)
.EUt(8)
//#endregion
//#region Smooth
event.recipes.gtceu.assembler(`smooth_${stone}`)
.itemInputs(`8x tfc:rock/raw/${stone}`)
.circuit(2)
.inputFluids(Fluid.of('gtceu:concrete', 72))
.itemOutputs(`8x tfc:rock/smooth/${stone}`)
.duration(250)
.EUt(8)
//#endregion
//#region Aqueduct
event.recipes.gtceu.assembler(`aqueduct_${stone}`)
.itemInputs(`3x tfc:brick/${stone}`)
.circuit(3)
.inputFluids(Fluid.of('gtceu:concrete', 16))
.itemOutputs(`tfc:rock/aqueduct/${stone}`)
.duration(50)
.EUt(2)
//#endregion
//#region Macerator
//
//
//
//
//#region Whole Blocks
// Raw
event.recipes.gtceu.macerator(`raw_${stone}_to_dust`)
.itemInputs(`tfc:rock/raw/${stone}`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Hardened
event.recipes.gtceu.macerator(`hardened_${stone}_to_dust`)
.itemInputs(`tfc:rock/hardened/${stone}`)
.itemOutputs(stoneDust.withCount(2))
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Cobble
event.recipes.gtceu.macerator(`cobble_${stone}_to_dust`)
.itemInputs(`tfc:rock/cobble/${stone}`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Mossy Cobble
event.recipes.gtceu.macerator(`mossy_cobble_${stone}_to_dust`)
.itemInputs(`tfc:rock/mossy_cobble/${stone}`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Smooth
event.recipes.gtceu.macerator(`smooth_${stone}_to_dust`)
.itemInputs(`tfc:rock/smooth/${stone}`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Bricks
event.recipes.gtceu.macerator(`bricks_${stone}_to_dust`)
.itemInputs(`tfc:rock/bricks/${stone}`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Cracked Bricks
event.recipes.gtceu.macerator(`cracked_bricks_${stone}_to_dust`)
.itemInputs(`tfc:rock/cracked_bricks/${stone}`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Mossy Bricks
event.recipes.gtceu.macerator(`mossy_bricks_${stone}_to_dust`)
.itemInputs(`tfc:rock/mossy_bricks/${stone}`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Chiseled
event.recipes.gtceu.macerator(`chiseled_${stone}_to_dust`)
.itemInputs(`tfc:rock/chiseled/${stone}`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
//#endregion
//#region Stairs
// Raw
event.recipes.gtceu.macerator(`raw_stairs_${stone}_to_dust`)
.itemInputs(`tfc:rock/raw/${stone}_stairs`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Cobble
event.recipes.gtceu.macerator(`cobble_stairs_${stone}_to_dust`)
.itemInputs(`tfc:rock/cobble/${stone}_stairs`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Mossy Cobble
event.recipes.gtceu.macerator(`mossy_cobble_stairs_${stone}_to_dust`)
.itemInputs(`tfc:rock/mossy_cobble/${stone}_stairs`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Smooth
event.recipes.gtceu.macerator(`smooth_stairs_${stone}_to_dust`)
.itemInputs(`tfc:rock/smooth/${stone}_stairs`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Bricks
event.recipes.gtceu.macerator(`bricks_stairs_${stone}_to_dust`)
.itemInputs(`tfc:rock/bricks/${stone}_stairs`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Cracked Bricks
event.recipes.gtceu.macerator(`cracked_bricks_stairs_${stone}_to_dust`)
.itemInputs(`tfc:rock/cracked_bricks/${stone}_stairs`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Mossy Bricks
event.recipes.gtceu.macerator(`mossy_bricks_stairs_${stone}_to_dust`)
.itemInputs(`tfc:rock/mossy_bricks/${stone}_stairs`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
//#endregion
//#region Slab
// Raw
event.recipes.gtceu.macerator(`raw_slab_${stone}_to_dust`)
.itemInputs(`2x tfc:rock/raw/${stone}_slab`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Cobble
event.recipes.gtceu.macerator(`cobble_slab_${stone}_to_dust`)
.itemInputs(`tfc:rock/cobble/${stone}_slab`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Mossy Cobble
event.recipes.gtceu.macerator(`mossy_cobble_slab_${stone}_to_dust`)
.itemInputs(`2x tfc:rock/mossy_cobble/${stone}_slab`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Smooth
event.recipes.gtceu.macerator(`smooth_slab_${stone}_to_dust`)
.itemInputs(`2x tfc:rock/smooth/${stone}_slab`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Bricks
event.recipes.gtceu.macerator(`bricks_slab_${stone}_to_dust`)
.itemInputs(`2x tfc:rock/bricks/${stone}_slab`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Cracked Bricks
event.recipes.gtceu.macerator(`cracked_bricks_slab_${stone}_to_dust`)
.itemInputs(`2x tfc:rock/cracked_bricks/${stone}_slab`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Mossy Bricks
event.recipes.gtceu.macerator(`mossy_bricks_slab_${stone}_to_dust`)
.itemInputs(`2x tfc:rock/mossy_bricks/${stone}_slab`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
//#endregion
//#region Walls
event.recipes.tfc.chisel(`tfc:rock/raw/${stone}_wall`, `tfc:rock/raw/${stone}_slab`, 'smooth')
event.recipes.tfc.chisel(`tfc:rock/cobble/${stone}_wall`, `tfc:rock/cobble/${stone}_slab`, 'smooth')
event.recipes.tfc.chisel(`tfc:rock/smooth/${stone}_wall`, `tfc:rock/smooth/${stone}_slab`, 'smooth')
event.recipes.tfc.chisel(`tfc:rock/bricks/${stone}_wall`, `tfc:rock/bricks/${stone}_slab`, 'smooth')
event.recipes.tfc.chisel(`tfc:rock/cracked_bricks/${stone}_wall`, `tfc:rock/cracked_bricks/${stone}_slab`, 'smooth')
event.recipes.tfc.chisel(`tfc:rock/mossy_cobble/${stone}_wall`, `tfc:rock/mossy_cobble/${stone}_slab`, 'smooth')
event.recipes.tfc.chisel(`tfc:rock/mossy_bricks/${stone}_wall`, `tfc:rock/mossy_bricks/${stone}_slab`, 'smooth')
// Raw
event.recipes.gtceu.macerator(`raw_wall_${stone}_to_dust`)
.itemInputs(`2x tfc:rock/raw/${stone}_wall`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Cobble
event.recipes.gtceu.macerator(`cobble_wall_${stone}_to_dust`)
.itemInputs(`2x tfc:rock/cobble/${stone}_wall`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Mossy Cobble
event.recipes.gtceu.macerator(`mossy_cobble_wall_${stone}_to_dust`)
.itemInputs(`2x tfc:rock/mossy_cobble/${stone}_wall`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Smooth
event.recipes.gtceu.macerator(`smooth_wall_${stone}_to_dust`)
.itemInputs(`2x tfc:rock/smooth/${stone}_wall`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Bricks
event.recipes.gtceu.macerator(`bricks_wall_${stone}_to_dust`)
.itemInputs(`2x tfc:rock/bricks/${stone}_wall`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Cracked Bricks
event.recipes.gtceu.macerator(`cracked_bricks_wall_${stone}_to_dust`)
.itemInputs(`2x tfc:rock/cracked_bricks/${stone}_wall`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
// Mossy Bricks
event.recipes.gtceu.macerator(`mossy_bricks_wall_${stone}_to_dust`)
.itemInputs(`2x tfc:rock/mossy_bricks/${stone}_wall`)
.itemOutputs(stoneDust)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
//#endregion
//#region Recycle beam
let dustSmall = ChemicalHelper.get(TagPrefix.dustSmall, stoneMaterial, 1);
event.recipes.gtceu.macerator(`${stone}_support_to_dust`)
.itemInputs(`tfg:${stone}_support`)
.itemOutputs(dustSmall)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING);
//#endregion
//#endregion
event.recipes.tfc.collapse(`tfc:rock/cobble/${stone}`, `#forge:ores_in_ground/${stone}`)
.id(`tfg:collapse/${stone}_gt_ores`)
})
}

View file

@ -2,433 +2,365 @@
function registerTFGStoneItemTags(event) {
event.add('tfc:fluxstone', 'tfg:loose/dripstone')
function addToTfcTag(rock, block) {
if (rock.tfcTag != null) {
event.add(rock.tfcTag, block);
}
}
// Brick Index
const BRICK_KEYS = [
"brick",
"brick_stairs",
"brick_slab",
"brick_wall",
"cracked_brick",
"cracked_stairs",
"cracked_slab",
"cracked_wall",
"mossy_brick",
"mossy_stairs",
"mossy_slab",
"mossy_wall",
"smooth_brick",
"smooth_stairs",
"smooth_slab",
"smooth_wall",
"chiseled_brick"
];
global.BRICK_INDEX.forEach(brickObj => {
BRICK_KEYS.forEach(key => {
const id = brickObj[key];
if (typeof id === 'string' && id) {
event.add('tfg:brick_index', id);
function addToMaterialTag(material, block) {
if (material != null) {
if (block.endsWith('_slab') || block.endsWith('_wall')) {
event.add(`tfg:stone_composition/${material}_half`, block);
}
});
});
// Mars stone dust
event.add('forge:mars_stone_dusts', 'tfg:venus_stone_dust')
event.add('forge:mars_stone_dusts', 'gtceu:granite_red_dust')
event.add('forge:mars_stone_dusts', 'tfg:mars_stone_dust')
else {
event.add(`tfg:stone_composition/${material}`, block);
}
}
}
//#region Stone Dusts Tag
event.add('tfg:stone_dusts', 'tfg:gabbro_dust')
event.add('tfg:stone_dusts', 'tfg:shale_dust')
event.add('tfg:stone_dusts', 'tfg:claystone_dust')
event.add('tfg:stone_dusts', 'tfg:limestone_dust')
event.add('tfg:stone_dusts', 'tfg:conglomerate_dust')
event.add('tfg:stone_dusts', 'tfg:dolomite_dust')
event.add('tfg:stone_dusts', 'tfg:chert_dust')
event.add('tfg:stone_dusts', 'tfg:chalk_dust')
event.add('tfg:stone_dusts', 'tfg:rhyolite_dust')
event.add('tfg:stone_dusts', 'tfg:dacite_dust')
event.add('tfg:stone_dusts', 'gtceu:quartzite_dust')
event.add('tfg:stone_dusts', 'tfg:slate_dust')
event.add('tfg:stone_dusts', 'tfg:phyllite_dust')
event.add('tfg:stone_dusts', 'tfg:schist_dust')
event.add('tfg:stone_dusts', 'tfg:gneiss_dust')
event.add('tfg:stone_dusts', 'gtceu:marble_dust')
event.add('tfg:stone_dusts', 'gtceu:basalt_dust')
event.add('tfg:stone_dusts', 'gtceu:diorite_dust')
event.add('tfg:stone_dusts', 'gtceu:andesite_dust')
event.add('tfg:stone_dusts', 'gtceu:granite_dust')
event.add('tfg:stone_dusts', 'gtceu:deepslate_dust')
event.add('tfg:stone_dusts', 'gtceu:blackstone_dust')
event.add('tfg:stone_dusts', 'tfg:dripstone_dust')
event.add('tfg:stone_dusts', 'tfg:moon_stone_dust')
event.add('tfg:stone_dusts', 'tfg:moon_deepslate_dust')
event.add('tfg:stone_dusts', 'tfg:mars_stone_dust')
event.add('tfg:stone_dusts', 'tfg:venus_stone_dust')
event.add('tfg:stone_dusts', 'tfg:mercury_stone_dust')
event.add('tfg:stone_dusts', 'tfg:glacio_stone_dust')
const SHAPES = ['stair', 'slab', 'wall'];
for (let [rockId, rock] of Object.entries(global.BIG_ROCK_TABLE)) {
let material = null;
if (rock.material != null)
material = rock.material.replace(/tfg:/g, '');
if (rock.raw != null) {
event.add('tfc:rock/raw', rock.raw.block);
event.add('forge:stone', rock.raw.block);
addToTfcTag(rock.raw.block);
addToMaterialTag(material, rock.raw.block);
SHAPES.forEach(shape => {
if (rock.raw[shape] != null) {
event.add(`tfg:rock_${shape}s`, rock.raw[shape]);
addToTfcTag(rock.raw[shape]);
addToMaterialTag(material, rock.raw[shape]);
}
})
}
if (rock.cobble != null) {
event.add('tfg:interaction/cobble', rock.cobble.block);
event.add('forge:cobblestone', rock.cobble.block);
event.add('forge:cobblestone/normal', rock.cobble.block);
addToTfcTag(rock.cobble.block);
addToMaterialTag(material, rock.cobble.block);
SHAPES.forEach(shape => {
if (rock.cobble[shape] != null) {
event.add(`tfg:interaction/cobble_${shape.replace(/stair/g, 'stairs')}`, rock.cobble[shape]);
event.add(`tfg:rock_${shape}s`, rock.cobble[shape]);
addToTfcTag(rock.cobble[shape]);
addToMaterialTag(material, rock.cobble[shape]);
}
})
if (rock.cobble.mossy != null) {
event.add('tfg:interaction/mossy_cobble', rock.cobble.mossy.block);
event.add('forge:cobblestone/mossy', rock.cobble.block);
addToTfcTag(rock.cobble.mossy.block);
addToMaterialTag(material, rock.cobble.mossy.block);
SHAPES.forEach(shape => {
if (rock.cobble.mossy[shape] != null) {
event.add(`tfg:interaction/mossy_cobble_${shape.replace(/stair/g, 'stairs')}`, rock.cobble.mossy[shape]);
event.add(`tfg:rock_${shape}s`, rock.cobble.mossy[shape]);
addToTfcTag(rock.cobble.mossy[shape]);
addToMaterialTag(material, rock.cobble.mossy[shape]);
}
})
}
}
if (rock.bricks != null) {
event.add('tfg:brick_index', rock.bricks.block);
event.add('tfg:interaction/brick', rock.bricks.block);
event.add('minecraft:stone_bricks', rock.bricks.block);
event.add('forge:stone_bricks', rock.bricks.block);
event.add('tfc:rock/bricks', rock.bricks.block);
addToTfcTag(rock.bricks.block);
addToMaterialTag(material, rock.bricks.block);
SHAPES.forEach(shape => {
if (rock.bricks[shape] != null) {
event.add('tfg:brick_index', rock.bricks[shape]);
event.add(`tfg:interaction/brick_${shape.replace(/stair/g, 'stairs')}`, rock.bricks[shape]);
event.add(`tfg:brick_${shape}s`, rock.bricks[shape]);
addToTfcTag(rock.bricks[shape]);
addToMaterialTag(material, rock.bricks[shape]);
}
})
if (rock.bricks.mossy != null) {
event.add('tfg:brick_index', rock.bricks.mossy.block);
event.add('tfg:interaction/mossy_brick', rock.bricks.mossy.block);
event.add('tfc:rock/bricks', rock.bricks.block);
event.add('tfc:rock/mossy_bricks', rock.bricks.block);
addToTfcTag(rock.bricks.mossy.block);
addToMaterialTag(material, rock.bricks.mossy.block);
SHAPES.forEach(shape => {
if (rock.bricks.mossy[shape] != null) {
event.add('tfg:brick_index', rock.bricks.mossy[shape]);
event.add(`tfg:interaction/mossy_brick_${shape.replace(/stair/g, 'stairs')}`, rock.bricks.mossy[shape]);
event.add(`tfg:brick_${shape}s`, rock.bricks.mossy[shape]);
addToTfcTag(rock.bricks.mossy[shape]);
addToMaterialTag(material, rock.bricks.mossy[shape]);
}
})
}
if (rock.bricks.cracked != null) {
event.add('tfg:brick_index', rock.bricks.cracked.block);
event.add('tfg:interaction/cracked_brick', rock.bricks.cracked.block);
event.add('tfc:rock/bricks', rock.bricks.block);
event.add('tfc:rock/cracked_bricks', rock.bricks.block);
addToTfcTag(rock.bricks.cracked.block);
addToMaterialTag(material, rock.bricks.cracked.block);
SHAPES.forEach(shape => {
if (rock.bricks.cracked[shape] != null) {
event.add('tfg:brick_index', rock.bricks.cracked[shape]);
event.add(`tfg:interaction/cracked_brick_${shape.replace(/stair/g, 'stairs')}`, rock.bricks.cracked[shape]);
event.add(`tfg:brick_${shape}s`, rock.bricks.cracked[shape]);
addToTfcTag(rock.bricks.cracked[shape]);
addToMaterialTag(material, rock.bricks.cracked[shape]);
}
})
}
}
if (rock.polished != null) {
event.add('tfg:brick_index', rock.polished.block);
event.add('tfg:interaction/smooth_brick', rock.polished.block);
event.add('tfc:rock/smooth', rock.polished.block);
event.add('forge:smooth_stone', rock.polished.block);
addToTfcTag(rock.polished.block);
addToMaterialTag(material, rock.polished.block);
if (rock.stonecutterTag != null) {
event.add(rock.stonecutterTag, rock.polished.block);
}
SHAPES.forEach(shape => {
if (rock.polished[shape] != null) {
event.add('tfg:brick_index', rock.polished[shape]);
event.add(`tfg:rock_${shape}s`, rock.polished[shape]);
addToTfcTag(rock.polished[shape]);
addToMaterialTag(material, rock.polished[shape]);
if (shape == 'slab') {
event.add('forge:smooth_stone_slabs', rock.polished.slab);
}
}
})
}
if (rock.chiseled != null) {
event.add('tfc:rock/bricks', rock.chiseled.block);
event.add('tfc:rock/chiseled_bricks', rock.chiseled.block);
addToTfcTag(rock.chiseled.block);
addToMaterialTag(material, rock.chiseled.block);
if (rock.stonecutterTag != null) {
event.add(rock.stonecutterTag, rock.chiseled.block);
addToMaterialTag(material, rock.chiseled.block);
}
}
if (rock.gravel != null) {
addToTfcTag(rock.gravel);
addToMaterialTag(material, rock.gravel);
if (rock.gravelTag != null) {
event.add(rock.gravelTag, rock.gravel);
}
}
if (rock.hardened != null) {
addToTfcTag(rock.hardened);
addToMaterialTag(material, rock.hardened);
}
if (rock.loose != null) {
event.add('rnr:loose_rock_items', rock.loose);
addToTfcTag(rock.loose);
}
if (rock.brick != null) {
event.add('tfg:stone_brick', rock.brick);
addToTfcTag(rock.brick);
}
if (rock.support != null) {
addToTfcTag(rock.support);
addToMaterialTag(material, rock.support);
}
if (rock.aqueduct != null) {
addToTfcTag(rock.aqueduct);
addToMaterialTag(material, rock.aqueduct);
}
if (rock.spike != null) {
addToTfcTag(rock.spike);
}
if (rock.pillar != null) {
addToTfcTag(rock.pillar);
addToMaterialTag(material, rock.pillar);
if (rock.stonecutterTag != null) {
event.add(rock.stonecutterTag, rock.pillar);
}
}
if (rock.pillar2 != null) {
addToTfcTag(rock.pillar2);
addToMaterialTag(material, rock.pillar2);
if (rock.stonecutterTag != null) {
event.add(rock.stonecutterTag, rock.pillar2);
}
}
if (rock.stonecutting != null) {
rock.stonecutting.forEach(blockForms => {
event.add('tfc:rock/bricks', blockForms.block);
event.add('tfc:rock/chiseled_bricks', blockForms.block);
addToTfcTag(blockForms.block);
addToMaterialTag(material, blockForms.block);
if (rock.stonecutterTag != null) {
event.add(rock.stonecutterTag, blockForms.block);
}
SHAPES.forEach(shape => {
if (blockForms[shape] != null) {
addToTfcTag(blockForms[shape]);
addToMaterialTag(material, blockForms[shape]);
if (rock.stonecutterTag != null) {
event.add(rock.stonecutterTag, blockForms[shape]);
}
}
})
})
}
}
// Stone Dusts Tag
event.add('tfg:stone_dusts', 'gtceu:stone_dust')
event.add('tfg:stone_dusts', 'gtceu:red_granite_dust')
event.add('tfg:stone_dusts', 'gtceu:netherrack_dust')
//#endregion
event.add('tfg:stone_dusts', 'tfg:sedimentary_clastic_dust')
event.add('tfg:stone_dusts', 'tfg:sedimentary_carbonate_dust')
event.add('tfg:stone_dusts', 'tfg:sedimentary_organic_dust')
event.add('tfg:stone_dusts', 'tfg:metamorphic_dust')
event.add('tfg:stone_dusts', 'tfg:igneous_ultramafic_dust')
event.add('tfg:stone_dusts', 'tfg:igneous_mafic_dust')
event.add('tfg:stone_dusts', 'tfg:igneous_intermediate_dust')
event.add('tfg:stone_dusts', 'tfg:igneous_felsic_dust')
const SHAPES = ['stairs', 'slab', 'wall']
const SHAPES_AA = ['stairs', 'slab']
const STONE_TYPES = {
deepslate: "metamorphic",
blackstone: "igneous_intrusive",
dripstone: "sedimentary",
crackrack: "igneous_intrusive",
basalt: "igneous_extrusive",
moon: "igneous_intrusive",
moon_deepslate: "igneous_intrusive",
mars: "sedimentary",
venus: "igneous_extrusive",
mercury: "igneous_intrusive",
glacio: "igneous_extrusive",
red_granite: "igneous_intrusive"
}
function getStoneType(stone) {
const stoneType = STONE_TYPES[stone.toLowerCase()];
return stoneType ? stoneType : `Stone "${stone}" not found`;
}
const AA_REGULAR_STONES = ['moon', 'mars', 'venus', 'mercury', 'glacio']
// #region Nether blocks
// Deepslate (Migmatite) [Metamorphic]
const create_deepslate_blocks = Ingredient.of('#create:stone_types/deepslate').itemIds.toArray().map(String);
create_deepslate_blocks.forEach(block => {
event.add(`tfc:${STONE_TYPES.deepslate}_items`, block)
})
event.add(`tfc:${STONE_TYPES.deepslate}_items`, 'minecraft:deepslate')
event.add(`tfc:${STONE_TYPES.deepslate}_items`, 'minecraft:cobbled_deepslate')
SHAPES.forEach(shape => {
event.add(`tfc:${STONE_TYPES.deepslate}_items`, `minecraft:cobbled_deepslate_${shape}`)
event.add(`tfg:rock_${shape}`.replace(/ss/g, 's'), `minecraft:cobbled_deepslate_${shape}`)
})
event.add('forge:smooth_stone', 'minecraft:polished_deepslate')
event.add(`tfc:${STONE_TYPES.deepslate}_items`, 'minecraft:polished_deepslate')
event.add('tfc:rock/smooth', 'minecraft:polished_deepslate')
event.add('create:stone_types/deepslate', 'minecraft:polished_deepslate')
SHAPES.forEach(shape => {
event.add(`tfc:${STONE_TYPES.deepslate}_items`, `minecraft:polished_deepslate_${shape}`)
event.add(`tfg:rock_${shape}`.replace(/ss/g, 's'), `minecraft:polished_deepslate_${shape}`)
})
event.add('forge:stone_bricks', 'minecraft:deepslate_bricks')
event.add(`tfc:${STONE_TYPES.deepslate}_items`, 'minecraft:deepslate_bricks')
event.add('tfc:rock/bricks', 'minecraft:deepslate_bricks')
event.add('forge:stone_bricks', 'minecraft:deepslate_tiles')
event.add(`tfc:${STONE_TYPES.deepslate}_items`, 'minecraft:deepslate_tiles')
event.add('tfc:rock/bricks', 'minecraft:deepslate_tiles')
event.add('tfc:rock/chiseled_bricks', 'minecraft:deepslate_tiles')
SHAPES.forEach(shape => {
event.add(`tfc:${STONE_TYPES.deepslate}_items`, `minecraft:deepslate_tile_${shape}`)
event.add(`tfg:brick_${shape}`.replace(/ss/g, 's'), `minecraft:deepslate_tile_${shape}`)
})
event.add('forge:stone_bricks', 'minecraft:cracked_deepslate_tiles')
event.add(`tfc:${STONE_TYPES.deepslate}_items`, 'minecraft:cracked_deepslate_tiles')
event.add('tfc:rock/bricks', 'minecraft:cracked_deepslate_tiles')
event.add('tfc:rock/chiseled_bricks', 'minecraft:cracked_deepslate_tiles')
event.add('forge:stone_bricks', 'minecraft:chiseled_deepslate')
event.add(`tfc:${STONE_TYPES.deepslate}_items`, 'minecraft:chiseled_deepslate')
event.add('tfc:rock/bricks', 'minecraft:chiseled_deepslate')
event.add('tfc:rock/chiseled_bricks', 'minecraft:chiseled_deepslate')
// Blackstone (Pyroxenite) [Igneous Intrusive]
event.remove('tfc:metamorphic_rock', 'beneath:blackstone_pebble')
event.add(`tfc:${STONE_TYPES.blackstone}_rock`, 'beneath:blackstone_pebble')
event.add(`tfc:${STONE_TYPES.blackstone}_items`, 'beneath:blackstone_pebble')
event.add('rnr:loose_rock_items', 'beneath:blackstone_pebble')
event.add(`tfc:${STONE_TYPES.blackstone}_items`, 'beneath:blackstone_brick')
event.add('forge:stone', 'minecraft:blackstone')
event.add(`tfc:${STONE_TYPES.blackstone}_items`, 'minecraft:blackstone')
SHAPES.forEach(shape => {
event.add(`tfc:${STONE_TYPES.blackstone}_items`, `minecraft:blackstone_${shape}`)
event.add(`tfg:rock_${shape}`.replace(/ss/g, 's'), `minecraft:blackstone_${shape}`)
})
event.add(`tfc:${STONE_TYPES.blackstone}_items`, 'minecraft:gilded_blackstone')
event.add('forge:smooth_stone', 'minecraft:polished_blackstone')
event.add(`tfc:${STONE_TYPES.blackstone}_items`, 'minecraft:polished_blackstone')
event.add('tfc:rock/smooth', 'minecraft:polished_blackstone')
event.add('forge:stone_bricks', 'minecraft:polished_blackstone_bricks')
event.add(`tfc:${STONE_TYPES.blackstone}_items`, 'minecraft:polished_blackstone_bricks')
event.add('tfc:rock/bricks', 'minecraft:polished_blackstone_bricks')
SHAPES.forEach(shape => {
event.add(`tfc:${STONE_TYPES.blackstone}_items`, `minecraft:polished_blackstone_${shape}`)
event.add(`tfg:rock_${shape}`.replace(/ss/g, 's'), `minecraft:polished_blackstone_${shape}`)
})
event.add('forge:stone_bricks', 'minecraft:cracked_polished_blackstone_bricks')
event.add(`tfc:${STONE_TYPES.blackstone}_items`, 'minecraft:cracked_polished_blackstone_bricks')
event.add('tfc:rock/bricks', 'minecraft:cracked_polished_blackstone_bricks')
event.add('tfc:rock/cracked_bricks', 'minecraft:cracked_polished_blackstone_bricks')
SHAPES.forEach(shape => {
event.add(`tfc:${STONE_TYPES.blackstone}_items`, `minecraft:polished_blackstone_brick_${shape}`)
event.add(`tfg:brick_${shape}`.replace(/ss/g, 's'), `minecraft:polished_blackstone_brick_${shape}`)
})
event.add('forge:stone_bricks', 'minecraft:polished_blackstone_bricks')
event.add(`tfc:${STONE_TYPES.blackstone}_items`, 'minecraft:polished_blackstone_bricks')
event.add('tfc:rock/bricks', 'minecraft:polished_blackstone_bricks')
event.add('forge:stone_bricks', 'minecraft:chiseled_polished_blackstone')
event.add(`tfc:${STONE_TYPES.blackstone}_items`, 'minecraft:chiseled_polished_blackstone')
event.add('tfc:rock/bricks', 'minecraft:chiseled_polished_blackstone')
event.add('tfc:rock/chiseled_bricks', 'minecraft:chiseled_polished_blackstone')
event.add(`tfc:${STONE_TYPES.blackstone}_items`, 'beneath:blackstone_aqueduct')
// Dripstone (Travertine) [Sedimentary]
const create_dripstone_blocks = Ingredient.of('#create:stone_types/dripstone').itemIds.toArray().map(String);
create_dripstone_blocks.forEach(block => {
event.add(`tfc:${STONE_TYPES.dripstone}_items`, block)
})
event.add('forge:stone', 'minecraft:dripstone_block')
event.add(`tfc:${STONE_TYPES.dripstone}_items`, 'minecraft:dripstone_block')
event.add('forge:smooth_stone', 'create:cut_dripstone')
event.add(`tfc:${STONE_TYPES.dripstone}_items`, 'create:cut_dripstone')
event.add('tfc:rock/smooth', 'create:cut_dripstone')
SHAPES.forEach(shape => {
event.add(`tfc:${STONE_TYPES.dripstone}_items`, `create:cut_dripstone_${shape}`)
event.add(`tfg:rock_${shape}`.replace(/ss/g, 's'), `create:cut_dripstone_${shape}`)
})
event.add('forge:smooth_stone', 'ad_astra:polished_cut_dripstone')
event.add('tfc:rock/smooth', 'create:polished_cut_dripstone')
SHAPES.forEach(shape => {
event.add(`tfc:${STONE_TYPES.dripstone}_items`, `create:polished_cut_dripstone_${shape}`)
event.add(`tfg:rock_${shape}`.replace(/ss/g, 's'), `create:polished_cut_dripstone_${shape}`)
})
event.add('forge:stone_bricks', 'create:cut_dripstone_bricks')
event.add(`tfc:${STONE_TYPES.dripstone}_items`, 'create:cut_dripstone_bricks')
event.add('tfc:rock/bricks', 'create:cut_dripstone_bricks')
SHAPES.forEach(shape => {
event.add(`tfc:${STONE_TYPES.dripstone}_items`, `create:cut_dripstone_brick_${shape}`)
event.add(`tfg:brick_${shape}`.replace(/ss/g, 's'), `create:cut_dripstone_brick_${shape}`)
})
event.add('forge:stone_bricks', 'create:small_dripstone_bricks')
event.add(`tfc:${STONE_TYPES.dripstone}_items`, 'create:small_dripstone_bricks')
event.add('tfc:rock/bricks', 'create:small_dripstone_bricks')
event.add('tfc:rock/chiseled_bricks', 'create:small_dripstone_bricks')
SHAPES.forEach(shape => {
event.add(`tfc:${STONE_TYPES.dripstone}_items`, `create:small_dripstone_brick_${shape}`)
event.add(`tfg:brick_${shape}`.replace(/ss/g, 's'), `create:small_dripstone_brick_${shape}`)
})
// Crackrack / "Nether" (Keratophyre) [Igneous Intrusive]
event.add('forge:stone', 'beneath:crackrack')
event.add(`tfc:${STONE_TYPES.crackrack}_items`, 'beneath:crackrack')
event.add('forge:stone_bricks', 'minecraft:nether_bricks')
event.add(`tfc:${STONE_TYPES.crackrack}_items`, 'minecraft:nether_bricks')
event.add('tfc:rock/bricks', 'minecraft:nether_bricks')
SHAPES.forEach(shape => {
event.add(`tfc:${STONE_TYPES.crackrack}_items`, `minecraft:nether_brick_${shape}`)
event.add(`tfg:brick_${shape}`.replace(/ss/g, 's'), `minecraft:nether_brick_${shape}`)
})
event.add('forge:stone_bricks', 'minecraft:cracked_nether_bricks')
event.add(`tfc:${STONE_TYPES.crackrack}_items`, 'minecraft:cracked_nether_bricks')
event.add('tfc:rock/bricks', 'minecraft:cracked_nether_bricks')
event.add('tfc:rock/cracked_bricks', 'minecraft:cracked_nether_bricks')
event.add('forge:stone_bricks', 'minecraft:chiseled_nether_bricks')
event.add(`tfc:${STONE_TYPES.crackrack}_items`, 'minecraft:chiseled_nether_bricks')
event.add('tfc:rock/bricks', 'minecraft:chiseled_nether_bricks')
event.add('tfc:rock/chiseled_bricks', 'minecraft:chiseled_nether_bricks')
// Basalt
// Extra basalt blocks
event.add('forge:stone', 'minecraft:basalt')
event.add(`tfc:${STONE_TYPES.basalt}_items`, 'minecraft:basalt')
event.add(`tfc:igneous_extrusive_items`, 'minecraft:basalt')
event.add('forge:smooth_stone', 'minecraft:smooth_basalt')
event.add(`tfc:${STONE_TYPES.basalt}_items`, 'minecraft:smooth_basalt')
event.add(`tfc:igneous_extrusive_items`, 'minecraft:smooth_basalt')
event.add('tfc:rock/smooth', 'minecraft:smooth_basalt')
event.add('forge:smooth_stone', 'minecraft:polished_basalt')
event.add(`tfc:${STONE_TYPES.basalt}_items`, 'minecraft:polished_basalt')
event.add(`tfc:igneous_extrusive_items`, 'minecraft:polished_basalt')
event.add('tfc:rock/smooth', 'minecraft:polished_basalt')
// #endregion
}
// #region Space blocks
AA_REGULAR_STONES.forEach(stone => {
event.add('forge:stone', `ad_astra:${stone}_stone`)
event.add(`tfc:${getStoneType(stone)}_items`, `ad_astra:${stone}_stone`)
SHAPES_AA.forEach(shape => {
event.add(`tfc:${getStoneType(stone)}_items`, `ad_astra:${stone}_stone_${shape}`)
event.add(`tfg:rock_${shape}`.replace(/ss/g, 's'), `ad_astra:${stone}_stone_${shape}`)
})
function registerTFGStoneBlockTags(event) {
event.add('forge:cobblestone', `ad_astra:${stone}_cobblestone`)
event.add('forge:cobblestone/normal', `ad_astra:${stone}_cobblestone`)
event.add(`tfc:${getStoneType(stone)}_items`, `ad_astra:${stone}_cobblestone`)
const SHAPES = ['stair', 'slab', 'wall'];
SHAPES_AA.forEach(shape => {
event.add(`tfc:${getStoneType(stone)}_items`, `ad_astra:${stone}_cobblestone_${shape}`)
event.add(`tfg:rock_${shape}`.replace(/ss/g, 's'), `ad_astra:${stone}_cobblestone_${shape}`)
})
for (let [rockId, rock] of Object.entries(global.BIG_ROCK_TABLE)) {
event.add('forge:smooth_stone', `ad_astra:polished_${stone}_stone`)
event.add(`tfc:${getStoneType(stone)}_items`, `ad_astra:polished_${stone}_stone`)
event.add('tfc:rock/smooth', `ad_astra:polished_${stone}_stone`)
if (rock.raw != null) {
event.add('forge:stone', rock.raw.block)
event.add('tfc:breaks_when_isolated', rock.raw.block)
event.add('tfc:rock/raw', rock.raw.block)
event.add('minecraft:mineable/pickaxe', rock.raw.block)
event.add('tfc:can_carve', rock.raw.block)
// Collapse tags also require a collapse recipe to work.
// Don't add the recipe if you don't want them to actually collapse!
event.add('tfc:can_collapse', rock.raw.block)
event.add('tfc:can_trigger_collapse', rock.raw.block)
event.add('tfc:can_start_collapse', rock.raw.block)
event.add('tfc:powderkeg_breaking_blocks', rock.raw.block)
event.add('tfc:bloomery_insulation', rock.raw.block)
event.add('firmalife:oven_insulation', rock.raw.block)
event.add('tfc:forge_insulation', rock.raw.block)
SHAPES_AA.forEach(shape => {
event.add(`tfc:${getStoneType(stone)}_items`, `ad_astra:polished_${stone}_stone_${shape}`)
event.add(`tfg:rock_${shape}`.replace(/ss/g, 's'), `ad_astra:polished_${stone}_stone_${shape}`)
})
SHAPES.forEach(shape => {
if (rock.raw[shape] != null) {
event.add(`tfg:rock_${shape}s`, rock.raw[shape]);
}
})
}
event.add('forge:stone_bricks', `ad_astra:${stone}_stone_bricks`)
event.add(`tfc:${getStoneType(stone)}_items`, `ad_astra:${stone}_stone_bricks`)
event.add('tfc:rock/bricks', `ad_astra:${stone}_stone_bricks`)
if (rock.hardened != null) {
event.add('minecraft:mineable/pickaxe', rock.hardened)
event.add('tfc:can_collapse', rock.hardened)
event.add('tfc:can_trigger_collapse', rock.hardened)
event.add('tfc:powderkeg_breaking_blocks', rock.hardened)
event.add('tfc:bloomery_insulation', rock.hardened)
event.add('firmalife:oven_insulation', rock.hardened)
event.add('tfc:forge_insulation', rock.hardened)
event.add('tfc:can_carve', rock.hardened)
}
if (rock.cobble != null) {
event.add('tfc:can_landslide', rock.cobble.block)
event.add('forge:cobblestone', rock.cobble.block)
}
SHAPES.forEach(shape => {
event.add(`tfc:${getStoneType(stone)}_items`, `ad_astra:${stone}_stone_brick_${shape}`)
event.add(`tfg:brick_${shape}`.replace(/ss/g, 's'), `ad_astra:${stone}_stone_brick_${shape}`)
})
if (rock.gravel != null) {
event.add('tfc:can_landslide', rock.gravel)
}
event.add('forge:stone_bricks', `ad_astra:cracked_${stone}_stone_bricks`)
event.add(`tfc:${getStoneType(stone)}_items`, `ad_astra:cracked_${stone}_stone_bricks`)
event.add('tfc:rock/bricks', `ad_astra:cracked_${stone}_stone_bricks`)
event.add('tfc:rock/cracked_bricks', `ad_astra:cracked_${stone}_stone_bricks`)
if (rock.polished != null) {
event.add('tfc:bloomery_insulation', rock.polished.block);
event.add('tfc:forge_insulation', rock.polished.block);
event.add('firmalife:oven_insulation', rock.polished.block);
event.add('forge:stone_bricks', `ad_astra:chiseled_${stone}_stone_bricks`)
event.add(`tfc:${getStoneType(stone)}_items`, `ad_astra:chiseled_${stone}_stone_bricks`)
event.add('tfc:rock/bricks', `ad_astra:chiseled_${stone}_stone_bricks`)
event.add('tfc:rock/chiseled_bricks', `ad_astra:chiseled_${stone}_stone_bricks`)
SHAPES.forEach(shape => {
if (rock.polished[shape] != null) {
event.add(`tfg:rock_${shape}s`, rock.polished[shape]);
}
})
}
SHAPES_AA.forEach(shape => {
event.add(`tfc:${getStoneType(stone)}_items`, `ad_astra:chiseled_${stone}_stone_brick_${shape}`)
event.add(`tfg:brick_${shape}`.replace(/ss/g, 's'), `ad_astra:chiseled_${stone}_stone_brick_${shape}`)
})
if (rock.chiseled != null) {
event.add('tfc:bloomery_insulation', rock.chiseled.block);
event.add('tfc:forge_insulation', rock.chiseled.block);
event.add('firmalife:oven_insulation', rock.chiseled.block);
}
event.add(`tfc:${getStoneType(stone)}_items`, `ad_astra:${stone}_pillar`)
})
if (rock.bricks != null) {
event.add('tfc:bloomery_insulation', rock.bricks.block);
event.add('tfc:forge_insulation', rock.bricks.block);
event.add('firmalife:oven_insulation', rock.bricks.block);
// Moon Deepslate (Norite) [Igneous Intrusive]
event.add('forge:stone', 'ad_astra:moon_deepslate')
event.add(`tfc:${STONE_TYPES.moon_deepslate}_items`, 'ad_astra:moon_deepslate')
// Red Granite [Igneous Intrusive]
event.add('forge:stone', 'gtceu:red_granite')
event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:red_granite')
if (rock.bricks.mossy != null) {
event.add('tfc:bloomery_insulation', rock.bricks.mossy.block);
event.add('tfc:forge_insulation', rock.bricks.mossy.block);
event.add('firmalife:oven_insulation', rock.bricks.mossy.block);
}
event.add('forge:cobblestone', 'gtceu:red_granite_cobblestone')
event.add('forge:cobblestone/normal', 'gtceu:red_granite_cobblestone')
event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:red_granite_cobblestone')
event.add('forge:cobblestone', 'gtceu:mossy_red_granite_cobblestone')
event.add('forge:cobblestone/normal', 'gtceu:mossy_red_granite_cobblestone')
event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:mossy_red_granite_cobblestone')
event.add('forge:smooth_stone', 'gtceu:polished_red_granite')
event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:polished_red_granite')
event.add('tfc:rock/smooth', 'gtceu:polished_red_granite')
event.add('forge:stone_bricks', 'gtceu:red_granite_bricks')
event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:red_granite_bricks')
event.add('tfc:rock/bricks', 'gtceu:red_granite_bricks')
event.add('forge:stone_bricks', 'gtceu:mossy_red_granite_bricks')
event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:mossy_red_granite_bricks')
event.add('tfc:rock/bricks', 'gtceu:mossy_red_granite_bricks')
event.add('tfc:rock/mossy_bricks', 'gtceu:mossy_red_granite_bricks')
event.add('forge:stone_bricks', 'gtceu:cracked_red_granite_bricks')
event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:cracked_red_granite_bricks')
event.add('tfc:rock/bricks', 'gtceu:cracked_red_granite_bricks')
event.add('tfc:rock/cracked_bricks', 'gtceu:cracked_red_granite_bricks')
event.add('forge:stone_bricks', 'gtceu:red_granite_tile')
event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:red_granite_tile')
event.add('tfc:rock/bricks', 'gtceu:red_granite_tile')
event.add('tfc:rock/chiseled_bricks', 'gtceu:red_granite_tile')
event.add('forge:stone_bricks', 'gtceu:square_red_granite_bricks')
event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:square_red_granite_bricks')
event.add('tfc:rock/bricks', 'gtceu:square_red_granite_bricks')
event.add('tfc:rock/chiseled_bricks', 'gtceu:square_red_granite_bricks')
event.add('forge:stone_bricks', 'gtceu:red_granite_windmill_a')
event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:red_granite_windmill_a')
event.add('tfc:rock/bricks', 'gtceu:red_granite_windmill_a')
event.add('tfc:rock/chiseled_bricks', 'gtceu:red_granite_windmill_a')
event.add('forge:stone_bricks', 'gtceu:red_granite_windmill_b')
event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:red_granite_windmill_b')
event.add('tfc:rock/bricks', 'gtceu:red_granite_windmill_b')
event.add('tfc:rock/chiseled_bricks', 'gtceu:red_granite_windmill_b')
event.add('forge:stone_bricks', 'gtceu:small_red_granite_bricks')
event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:small_red_granite_bricks')
event.add('tfc:rock/bricks', 'gtceu:small_red_granite_bricks')
event.add('tfc:rock/chiseled_bricks', 'gtceu:small_red_granite_bricks')
event.add('forge:stone_bricks', 'gtceu:red_granite_small_tile')
event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:red_granite_small_tile')
event.add('tfc:rock/bricks', 'gtceu:red_granite_small_tile')
event.add('tfc:rock/chiseled_bricks', 'gtceu:red_granite_small_tile')
event.add('forge:stone_bricks', 'gtceu:chiseled_red_granite')
event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:chiseled_red_granite')
event.add('tfc:rock/bricks', 'gtceu:chiseled_red_granite')
event.add('tfc:rock/chiseled_bricks', 'gtceu:chiseled_red_granite')
// Smooth stone slabs
event.add('forge:smooth_stone_slabs', 'tfg:rock/polished_crackrack_slab')
event.add('forge:smooth_stone_slabs', 'tfg:rock/polished_moon_deepslate_slab')
event.add('forge:smooth_stone_slabs', 'tfg:rock/polished_red_granite_slab')
// Permafrost (???) [NA]
event.remove('tfc:metamorphic_rock', 'tfg:loose/permafrost')
event.add('forge:stone', 'ad_astra:permafrost')
event.add('forge:smooth_stone', 'ad_astra:polished_permafrost')
event.add('tfc:rock/smooth', 'ad_astra:polished_permafrost')
event.add('forge:stone_bricks', 'ad_astra:permafrost_bricks')
event.add('tfc:rock/bricks', 'ad_astra:permafrost_bricks')
event.add('forge:stone_bricks', 'ad_astra:cracked_permafrost_bricks')
event.add('tfc:rock/bricks', 'ad_astra:cracked_permafrost_bricks')
event.add('tfc:rock/cracked_bricks', 'ad_astra:cracked_permafrost_bricks')
event.add('forge:stone_bricks', 'ad_astra:chiseled_permafrost_bricks')
event.add('tfc:rock/bricks', 'ad_astra:chiseled_permafrost_bricks')
event.add('tfc:rock/chiseled_bricks', 'ad_astra:chiseled_permafrost_bricks')
if (rock.bricks.cracked != null) {
event.add('tfc:bloomery_insulation', rock.bricks.cracked.block);
event.add('tfc:forge_insulation', rock.bricks.cracked.block);
event.add('firmalife:oven_insulation', rock.bricks.cracked.block);
}
}
if (rock.stonecutting != null) {
rock.stonecutting.forEach(blockForms => {
event.add('tfc:bloomery_insulation', blockForms.block);
event.add('tfc:forge_insulation', blockForms.block);
event.add('firmalife:oven_insulation', blockForms.block);
})
}
}
}

View file

@ -1,58 +1,68 @@
// priority: 10
"use strict";
const STONE_TYPES_TO_COBBLE = {
gabbro: 'tfc:rock/cobble/gabbro',
shale: 'tfc:rock/cobble/shale',
claystone: 'tfc:rock/cobble/claystone',
limestone: 'tfc:rock/cobble/limestone',
conglomerate: 'tfc:rock/cobble/conglomerate',
dolomite: 'tfc:rock/cobble/dolomite',
chert: 'tfc:rock/cobble/chert',
chalk: 'tfc:rock/cobble/chalk',
rhyolite: 'tfc:rock/cobble/rhyolite',
dacite: 'tfc:rock/cobble/dacite',
quartzite: 'tfc:rock/cobble/quartzite',
slate: 'tfc:rock/cobble/slate',
phyllite: 'tfc:rock/cobble/phyllite',
schist: 'tfc:rock/cobble/schist',
gneiss: 'tfc:rock/cobble/gneiss',
marble: 'tfc:rock/cobble/marble',
basalt: 'tfc:rock/cobble/basalt',
diorite: 'tfc:rock/cobble/diorite',
andesite: 'tfc:rock/cobble/andesite',
granite: 'tfc:rock/cobble/granite',
deepslate: 'minecraft:cobbled_deepslate',
pyroxenite: 'tfg:rock/cobble_blackstone',
dripstone: 'tfg:rock/cobble_dripstone',
keratophyre: 'tfg:rock/cobble_crackrack',
moon_stone: 'ad_astra:moon_cobblestone',
moon_deepslate: 'tfg:rock/cobble_moon_deepslate',
mars_stone: 'ad_astra:mars_cobblestone',
venus_stone: 'ad_astra:venus_cobblestone',
mercury_stone: 'ad_astra:mercury_cobblestone',
glacio_stone: 'ad_astra:glacio_cobblestone',
permafrost: 'tfg:rock/cobble_permafrost'
}
const registerTFGOreLoots = (event) => {
// Have to define these here because normal loot table jsons don't support checking for hammers
const registerTFGOreLoots = (event) => {
// Rock to cobble, cobble to gravel
for (let [rockId, rock] of Object.entries(global.BIG_ROCK_TABLE)) {
if (rock.raw != null && rock.cobble != null) {
event.addBlockLootModifier(rock.raw.block)
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot(rock.cobble.block)
}
// Crush raw rock into cobble
global.TFC_STONE_TYPES.forEach(stoneType => {
event.addBlockLootModifier(`tfc:rock/raw/${stoneType}`)
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot(STONE_TYPES_TO_COBBLE[stoneType]);
if (rock.hardened != null && rock.cobble != null) {
event.addBlockLootModifier(rock.hardened)
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot(rock.cobble.block)
}
if (rock.cobble != null && rock.gravel != null) {
event.addBlockLootModifier(rock.cobble.block)
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot(rock.gravel)
if (rock.cobble.mossy != null) {
event.addBlockLootModifier(rock.cobble.mossy.block)
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot(rock.gravel)
}
}
}
// Sand
global.SAND_COLORS.forEach(sandColor => {
let tag_array = Ingredient.of(`#tfc:${sandColor}_gravel`).itemIds.toArray().map(String);
tag_array.forEach(item => {
event.addBlockLootModifier(item)
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot(`tfc:sand/${sandColor}`)
})
})
// Defined in kubejs/startup_scripts/tfg/constants.js
global.HAMMERING.forEach(x => {
event.addBlockLootModifier(x.raw)
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot(x.hammered)
if (x.raw.startsWith('#')) {
let tag_array = Ingredient.of(x.raw).itemIds.toArray().map(String);
tag_array.forEach(item => {
event.addBlockLootModifier(item)
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot(x.hammered)
})
}
else {
event.addBlockLootModifier(x.raw)
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot(x.hammered)
}
})
// Other rocks
event.addBlockLootModifier('minecraft:gilded_blackstone')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
@ -61,6 +71,16 @@ const registerTFGOreLoots = (event) => {
LootEntry.of('tfc:powder/native_gold')
)
event.addBlockLootModifier('beneath:ore/blackstone_sylvite')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([
Item.of('gtceu:rich_raw_rock_salt').withChance(0.2),
Item.of('gtceu:raw_rock_salt').withChance(0.6),
Item.of('gtceu:poor_raw_rock_salt').withChance(0.2)
])
.addLoot(LootEntry.of('tfg:igneous_ultramafic_dust').when((c) => c.randomChance(0.2)))
.addLoot(LootEntry.of('gtceu:tiny_rock_salt_dust').when(c => c.randomChance(0.05)));
// Go through all materials
const $GreateMaterials = Java.loadClass("electrolyte.greate.registry.GreateMaterials")
@ -83,30 +103,23 @@ const registerTFGOreLoots = (event) => {
let richRawOre = ChemicalHelper.get(TFGTagPrefix.richRawOre, material, 1)
let normalRawOre = ChemicalHelper.get(TagPrefix.rawOre, material, 1)
let poorRawOre = ChemicalHelper.get(TFGTagPrefix.poorRawOre, material, 1)
let dustOre = ChemicalHelper.get(TagPrefix.dustTiny, material, 1)
let rawOreBlock = ChemicalHelper.get(TagPrefix.rawOreBlock, material, 1).getItem().id;
event.addBlockLootModifier(rawOreBlock)
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([4, 6],
[
richRawOre.withChance(0.2),
normalRawOre.withChance(0.6),
poorRawOre.withChance(0.2)
]);
.addWeightedLoot([4, 6], [
richRawOre.withChance(0.2),
normalRawOre.withChance(0.6),
poorRawOre.withChance(0.2)
])
.addLoot(LootEntry.of(dustOre).when(c => c.randomChance(0.2)));
// Stone ores
global.ORE_BEARING_STONES.forEach(stoneType => {
let stoneTypeMaterial = TFGHelpers.getMaterial(stoneType)
// Material doesn't work here because of reasons
if (stoneTypeMaterial === null) {
if (stoneType === "pyroxenite")
stoneTypeMaterial = GTMaterials.Blackstone;
else if (stoneType === "deepslate")
stoneTypeMaterial = GTMaterials.Deepslate;
}
let stoneTypeMaterial = GTMaterials.get(global.BIG_ROCK_TABLE[stoneType === "pyroxenite" ? "blackstone" : stoneType].material);
let stoneTypeDust = ChemicalHelper.get(TagPrefix.dust, stoneTypeMaterial, 1)
let namespace = material === $GreateMaterials.RoseQuartz ? 'greate' : 'gtceu';
@ -118,14 +131,13 @@ const registerTFGOreLoots = (event) => {
normalRawOre.withChance(0.6),
poorRawOre.withChance(0.2)
])
.addLoot(
LootEntry.of(stoneTypeDust).when((c) => c.randomChance(0.25))
)
.addLoot(LootEntry.of(stoneTypeDust).when((c) => c.randomChance(0.2)))
.addLoot(LootEntry.of(dustOre).when(c => c.randomChance(0.05)));
// break with hammer
event.addBlockLootModifier(`${namespace}:${stoneType}_${material.getName()}_ore`)
.matchMainHand('#forge:tools/hammers')
.addLoot(STONE_TYPES_TO_COBBLE[stoneType]);
.addLoot(LootEntry.of(GTBlocks.COBBLE_BLOCKS.get(TagPrefix.get(stoneType)).get().getBlock().id));
})
}
})

View file

@ -87,7 +87,7 @@ function registerTFGNuclearRecipes(event) {
// Martian Sludge
event.recipes.gtceu.chemical_bath('dirty_hexafluorosilicic_acid')
.itemInputs('32x #forge:mars_stone_dusts')
.itemInputs('32x #forge:dusts/ochrum')
.inputFluids(Fluid.of('gtceu:hydrofluoric_acid', 1000))
.outputFluids(Fluid.of('gtceu:dirty_hexafluorosilicic_acid', 1000))
.duration(20*8)

View file

@ -87,97 +87,7 @@ function registerTFGSupportRecipes(event) {
.duration(40)
.EUt(GTValues.VA[GTValues.ULV])
// Stone Supports
global.TFC_STONE_TYPES.forEach(stone => {
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped(`8x tfg:${stone}_support`, [
'AB ',
'AC ',
'AC '
], {
A: `tfc:rock/loose/${stone}`,
B: '#tfc:chisels',
C: 'tfc:mortar'
}).id(`tfg:shaped/${stone}_support`))
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped(`8x tfg:${stone}_support`, [
'AB ',
'AC ',
'AC '
], {
A: `tfc:rock/mossy_loose/${stone}`,
B: '#tfc:chisels',
C: 'tfc:mortar'
}).id(`tfg:shaped/mossy/${stone}_support`))
event.recipes.gtceu.assembler(`tfg:gtceu/assembler/${stone}_support`)
.circuit(11)
.inputFluids(Fluid.of('gtceu:concrete', 36))
.itemOutputs(`8x tfg:${stone}_support`)
.itemInputs(`3x tfc:rock/loose/${stone}`)
.duration(40)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.assembler(`tfg:gtceu/assembler/mossy/${stone}_support`)
.circuit(11)
.inputFluids(Fluid.of('gtceu:concrete', 36))
.itemOutputs(`8x tfg:${stone}_support`)
.itemInputs(`3x tfc:rock/mossy_loose/${stone}`)
.duration(40)
.EUt(GTValues.VA[GTValues.ULV])
})
// REDO w/ table and loop
const EXO_STONE_SUPPORTS = [
{ loose: 'tfg:loose/deepslate', support: 'tfg:migmatite_support', material: 'deepslate' },
{ loose: 'beneath:blackstone_pebble', support: 'tfg:pyroxenite_support', material: 'blackstone', },
{ loose: 'tfg:loose/dripstone', support: 'tfg:travertine_support', material: 'dripstone' },
{ loose: 'tfg:loose/crackrack', support: 'tfg:keratophyre_support', material: 'netherrack' },
{ loose: 'tfg:loose/moon_stone', support: 'tfg:anorthosite_support', material: 'moon_stone' },
{ loose: 'tfg:loose/moon_deepslate', support: 'tfg:norite_support', material: 'moon_deepslate' },
{ loose: 'tfg:loose/mars_stone', support: 'tfg:argillite_support', material: 'mars_stone' },
{ loose: 'tfg:loose/venus_stone', support: 'tfg:trachyte_support', material: 'venus_stone', },
{ loose: 'tfg:loose/mercury_stone', support: 'tfg:komatiite_support', material: 'mercury_stone' },
{ loose: 'tfg:loose/glacio_stone', support: 'tfg:phonolite_support', material: 'glacio_stone' },
{ loose: 'tfg:loose/permafrost', support: 'tfg:permafrost_support', material: 'ice' },
{ loose: 'tfg:loose/red_granite', support: 'tfg:red_granite_support', material: 'granite_red' },
{ loose: 'gtceu:stone_ingot', support: 'tfg:stone_support', material: 'stone' }
]
EXO_STONE_SUPPORTS.forEach(s => {
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped(`8x ${s.support}`, [
'AB ',
'AC ',
'AC '
], {
A: s.loose,
B: '#tfc:chisels',
C: 'tfc:mortar'
}).id(`tfg:shaped/${s.support.split(':')[1]}`)
)
event.recipes.gtceu.assembler(`tfg:gtceu/assembler/${s.support.split(':')[1]}`)
.circuit(11)
.inputFluids(Fluid.of('gtceu:concrete', 36))
.itemOutputs(`8x ${s.support}`)
.itemInputs(`3x ${s.loose}`)
.duration(40)
.EUt(GTValues.VA[GTValues.ULV])
let regexMatch = s.support.match(/tfg:(.*?)_support/);
let supportName = regexMatch[1];
let stoneMaterial = TFGHelpers.getMaterial(s.material);
let dustSmall = ChemicalHelper.get(TagPrefix.dustSmall, stoneMaterial, 1)
event.recipes.gtceu.macerator(`${supportName}_support_to_dust`)
.itemInputs(s.support)
.itemOutputs(dustSmall)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING);
})
// Stone supports are in recipes.rocks.js
// Metal Supports
event.shaped('8x tfg:rebar_support', [

View file

@ -1,63 +0,0 @@
// priority: 0
"use strict";
function registerBlockInteractionItemTags(event) {
/**
* @typedef {Object} BrickVariant
* @property {string} brick_type - The name of the brick variant.
* @property {string|null} brick - Main brick block ID.
* @property {string|null} brick_stairs - Brick stairs block ID.
* @property {string|null} brick_slab - Brick slab block ID.
* @property {string|null} brick_wall - Brick wall block ID.
* @property {string|null} cracked_brick - Cracked brick block ID.
* @property {string|null} cracked_stairs - Cracked brick stairs block ID.
* @property {string|null} cracked_slab - Cracked brick slab block ID.
* @property {string|null} cracked_wall - Cracked brick wall block ID.
* @property {string|null} mossy_brick - Mossy brick block ID.
* @property {string|null} mossy_stairs - Mossy brick stairs block ID.
* @property {string|null} mossy_slab - Mossy brick slab block ID.
* @property {string|null} mossy_wall - Mossy brick wall block ID.
* @property {string|null} smooth_brick - Smooth brick block ID.
* @property {string|null} smooth_stairs - Smooth brick stairs block ID.
* @property {string|null} smooth_slab - Smooth brick slab block ID.
* @property {string|null} smooth_wall - Smooth brick wall block ID.
* @property {string|null} chiseled_brick - Chiseled brick block ID.
*/
for (const b of global.BRICK_INDEX) {
if (b.brick !== null) { event.add('tfg:interaction/brick', b.brick) }
if (b.brick_stairs !== null) { event.add('tfg:interaction/brick_stairs', b.brick_stairs) }
if (b.brick_slab !== null) { event.add('tfg:interaction/brick_slab', b.brick_slab) }
if (b.brick_wall !== null) { event.add('tfg:interaction/brick_wall', b.brick_wall) }
if (b.cracked_brick !== null) { event.add('tfg:interaction/cracked_brick', b.cracked_brick) }
if (b.cracked_stairs !== null) { event.add('tfg:interaction/cracked_brick_stairs', b.cracked_stairs) }
if (b.cracked_slab !== null) { event.add('tfg:interaction/cracked_brick_slab', b.cracked_slab) }
if (b.cracked_wall !== null) { event.add('tfg:interaction/cracked_brick_wall', b.cracked_wall) }
if (b.mossy_brick !== null) { event.add('tfg:interaction/mossy_brick', b.mossy_brick) }
if (b.mossy_stairs !== null) { event.add('tfg:interaction/mossy_brick_stairs', b.mossy_stairs) }
if (b.mossy_slab !== null) { event.add('tfg:interaction/mossy_brick_slab', b.mossy_slab) }
if (b.mossy_wall !== null) { event.add('tfg:interaction/mossy_brick_wall', b.mossy_wall) }
if (b.smooth_brick !== null) { event.add('tfg:interaction/smooth_brick', b.smooth_brick) }
//event.add('tfg:interaction/smooth_bricks', b.smooth_stairs)
//event.add('tfg:interaction/smooth_bricks', b.smooth_slab)
//event.add('tfg:interaction/smooth_bricks', b.smooth_wall)
}
for (const c of global.COBBLE_INDEX) {
event.add('tfg:interaction/cobble', c.block)
event.add('tfg:interaction/cobble_stairs', c.stairs)
event.add('tfg:interaction/cobble_slab', c.slab)
event.add('tfg:interaction/cobble_wall', c.wall)
event.add('tfg:interaction/mossy_cobble', c.mossy_block)
event.add('tfg:interaction/mossy_cobble_stairs', c.mossy_stairs)
event.add('tfg:interaction/mossy_cobble_slab', c.mossy_slab)
event.add('tfg:interaction/mossy_cobble_wall', c.mossy_wall)
}
}

View file

@ -4,7 +4,6 @@ const registerTFGItemTags = (event) => {
registerTFGTrimItemTags(event)
registerTFGFacadeWhitelistItemTags(event)
registerBlockInteractionItemTags(event)
registerTFGStoneItemTags(event)
registerTFGFoodItemTags(event);
registerTFGMedicineItemTags(event);
@ -109,6 +108,7 @@ const registerTFGBlockTags = (event) => {
registerTFGPrimitiveBlockTags(event)
registerTFGFoodBlockTags(event)
registerTFGStoneBlockTags(event)
registerTFGGeneralWorldgenBlockTags(event)
registerTFGBeneathBlockTags(event)
registerTFGMoonBlockTags(event)

View file

@ -2,21 +2,4 @@
function registerTFGVenusRecipes(event) {
event.stonecutting('betterend:flavolite', '#tfg:leucitite_blocks')
event.stonecutting('betterend:flavolite_bricks', '#tfg:leucitite_blocks')
event.stonecutting('betterend:flavolite_pillar', '#tfg:leucitite_blocks')
event.stonecutting('betterend:flavolite_polished', '#tfg:leucitite_blocks')
event.stonecutting('betterend:flavolite_tiles', '#tfg:leucitite_blocks')
event.stonecutting('betterend:sandy_jadestone', '#tfg:lamproite_blocks')
event.stonecutting('betterend:sandy_jadestone_bricks', '#tfg:lamproite_blocks')
event.stonecutting('betterend:sandy_jadestone_pillar', '#tfg:lamproite_blocks')
event.stonecutting('betterend:sandy_jadestone_polished', '#tfg:lamproite_blocks')
event.stonecutting('betterend:sandy_jadestone_tiles', '#tfg:lamproite_blocks')
event.stonecutting('betterend:sulphuric_rock', '#tfg:ignimbrite_blocks')
event.stonecutting('betterend:sulphuric_rock_bricks', '#tfg:ignimbrite_blocks')
event.stonecutting('betterend:sulphuric_rock_pillar', '#tfg:ignimbrite_blocks')
event.stonecutting('betterend:sulphuric_rock_polished', '#tfg:ignimbrite_blocks')
event.stonecutting('betterend:sulphuric_rock_tiles', '#tfg:ignimbrite_blocks')
}

View file

@ -1,23 +1,6 @@
"use strict";
function registerTFGVenusItemTags(event) {
event.add('tfg:leucitite_blocks', 'betterend:flavolite')
event.add('tfg:leucitite_blocks', 'betterend:flavolite_bricks')
event.add('tfg:leucitite_blocks', 'betterend:flavolite_pillar')
event.add('tfg:leucitite_blocks', 'betterend:flavolite_polished')
event.add('tfg:leucitite_blocks', 'betterend:flavolite_tiles')
event.add('tfg:lamproite_blocks', 'betterend:sandy_jadestone')
event.add('tfg:lamproite_blocks', 'betterend:sandy_jadestone_bricks')
event.add('tfg:lamproite_blocks', 'betterend:sandy_jadestone_pillar')
event.add('tfg:lamproite_blocks', 'betterend:sandy_jadestone_polished')
event.add('tfg:lamproite_blocks', 'betterend:sandy_jadestone_tiles')
event.add('tfg:ignimbrite_blocks', 'betterend:sulphuric_rock')
event.add('tfg:ignimbrite_blocks', 'betterend:sulphuric_rock_bricks')
event.add('tfg:ignimbrite_blocks', 'betterend:sulphuric_rock_pillar')
event.add('tfg:ignimbrite_blocks', 'betterend:sulphuric_rock_polished')
event.add('tfg:ignimbrite_blocks', 'betterend:sulphuric_rock_tiles')
}

View file

@ -22,28 +22,6 @@ function registerTFGGeneralWorldgenItemTags(event) {
event.add('c:hidden_from_recipe_viewers', 'tfg:pile/hematitic_sand_covering')
event.add('c:hidden_from_recipe_viewers', 'tfg:pile/mars_snow_covering')
event.add('forge:cobblestone', 'ad_astra:moon_cobblestone')
event.add('forge:cobblestone', 'ad_astra:mars_cobblestone')
event.add('forge:cobblestone', 'ad_astra:venus_cobblestone')
event.add('forge:cobblestone', 'ad_astra:mercury_cobblestone')
event.add('forge:cobblestone', 'ad_astra:glacio_cobblestone')
event.add('forge:smooth_stone_slab', 'ad_astra:polished_moon_stone_slab')
event.add('forge:smooth_stone_slab', 'ad_astra:polished_mars_stone_slab')
event.add('forge:smooth_stone_slab', 'ad_astra:polished_venus_stone_slab')
event.add('forge:smooth_stone_slab', 'ad_astra:polished_mercury_stone_slab')
event.add('forge:smooth_stone_slab', 'ad_astra:polished_glacio_stone_slab')
event.add('forge:smooth_stone_slab', 'ad_astra:polished_permafrost_slab')
event.add('forge:smooth_stone_slab', 'minecraft:polished_deepslate_slab')
event.add('forge:smooth_stone_slab', 'minecraft:polished_blackstone_slab')
event.add('forge:smooth_stone_slab', 'minecraft:polished_blackstone_brick_slab')
event.add('tfc:rock/smooth', 'minecraft:smooth_stone')
event.add('tfc:rock/raw', 'minecraft:deepslate')
event.add('tfc:rock/raw', 'minecraft:blackstone')
event.add('tfc:rock/raw', 'minecraft:dripstone_block')
event.add('minecraft:wart_blocks', 'ad_astra:aeronos_cap')
event.add('minecraft:wart_blocks', 'ad_astra:strophar_cap')
event.add('minecraft:wart_blocks', 'minecraft:mushroom_stem')
@ -53,79 +31,9 @@ function registerTFGGeneralWorldgenItemTags(event) {
function registerTFGGeneralWorldgenBlockTags(event) {
// All new stones
global.EXTRATERRESTRIAL_RAW_ROCKS.forEach(rock => {
event.add('forge:stone', rock)
event.add('tfc:breaks_when_isolated', rock)
event.add('tfc:rock/raw', rock)
event.add('minecraft:mineable/pickaxe', rock)
event.add('tfc:can_carve', rock)
// Collapse tags also require a collapse recipe to work.
// Don't add the recipe if you don't want them to actually collapse!
event.add('tfc:can_collapse', rock)
event.add('tfc:can_trigger_collapse', rock)
event.add('tfc:can_start_collapse', rock)
event.add('tfc:powderkeg_breaking_blocks', rock)
event.add('tfc:bloomery_insulation', rock)
event.add('firmalife:oven_insulation', rock)
event.add('tfc:forge_insulation', rock)
})
global.EXTRATERRESTRIAL_HARDENED_ROCKS.forEach(rock => {
event.add('minecraft:mineable/pickaxe', rock)
event.add('tfc:can_collapse', rock)
event.add('tfc:can_trigger_collapse', rock)
event.add('tfc:powderkeg_breaking_blocks', rock)
event.add('tfc:bloomery_insulation', rock)
event.add('firmalife:oven_insulation', rock)
event.add('tfc:forge_insulation', rock)
event.add('tfc:can_carve', rock)
})
event.add('tfc:can_landslide', 'minecraft:cobbled_deepslate')
event.add('forge:cobblestone/normal', 'minecraft:cobbled_deepslate')
event.add('tfc:breaks_when_isolated', 'minecraft:deepslate')
event.add('tfc:breaks_when_isolated', 'minecraft:blackstone')
event.add('tfc:breaks_when_isolated', 'minecraft:gilded_blackstone')
event.add('tfc:breaks_when_isolated', 'minecraft:dripstone_block')
event.add('forge:stone', 'minecraft:blackstone')
event.add('tfg:rock_stairs', 'minecraft:cobbled_deepslate_stairs')
event.add('tfg:rock_slabs', 'minecraft:cobbled_deepslate_slab')
event.add('tfg:rock_walls', 'minecraft:cobbled_deepslate_wall')
event.add('tfg:brick_stairs', 'minecraft:deepslate_brick_stairs')
event.add('tfg:brick_slabs', 'minecraft:deepslate_brick_slab')
event.add('tfg:brick_walls', 'minecraft:deepslate_brick_wall')
event.add('tfg:brick_stairs', 'minecraft:deepslate_tile_stairs')
event.add('tfg:brick_slabs', 'minecraft:deepslate_tile_slab')
event.add('tfg:brick_walls', 'minecraft:deepslate_tile_wall')
event.add('tfg:rock_stairs', 'minecraft:blackstone_stairs')
event.add('tfg:rock_slabs', 'minecraft:blackstone_slab')
event.add('tfg:rock_walls', 'minecraft:blackstone_wall')
event.add('tfg:brick_stairs', 'minecraft:blackstone_stairs')
event.add('tfg:brick_slabs', 'minecraft:blackstone_slab')
event.add('tfg:brick_walls', 'minecraft:blackstone_wall')
event.add('tfc:bloomery_insulation', 'minecraft:polished_deepslate');
event.add('tfc:forge_insulation', 'minecraft:polished_deepslate');
event.add('tfc:bloomery_insulation', 'minecraft:polished_blackstone');
event.add('tfc:forge_insulation', 'minecraft:polished_blackstone');
event.add('tfc:bloomery_insulation', 'minecraft:deepslate_tiles');
event.add('tfc:forge_insulation', 'minecraft:deepslate_tiles');
event.add('tfc:bloomery_insulation', 'minecraft:cracked_deepslate_tiles');
event.add('tfc:forge_insulation', 'minecraft:cracked_deepslate_tiles');
event.add('tfc:bloomery_insulation', 'minecraft:chiseled_deepslate');
event.add('tfc:forge_insulation', 'minecraft:chiseled_deepslate');
event.add('tfc:bloomery_insulation', 'minecraft:chiseled_polished_blackstone');
event.add('tfc:forge_insulation', 'minecraft:chiseled_polished_blackstone');
event.add('tfc:bloomery_insulation', 'minecraft:gilded_blackstone');
event.add('tfc:forge_insulation', 'minecraft:gilded_blackstone');
event.add('tfc:bloomery_insulation', 'minecraft:basalt');
event.add('tfc:forge_insulation', 'minecraft:basalt');
event.add('tfc:bloomery_insulation', 'minecraft:smooth_basalt');
event.add('tfc:forge_insulation', 'minecraft:smooth_basalt');
// Ores
event.add("minecraft:mineable/pickaxe", "#forge:ores");
@ -135,11 +43,15 @@ function registerTFGGeneralWorldgenBlockTags(event) {
event.add("tfc:can_start_collapse", "#forge:ores");
event.add("tfc:can_trigger_collapse", "#forge:ores");
event.add("c:hidden_from_recipe_viewers", "#forge:ores");
event.add("tfc:monster_spawns_on", "#forge:ores");
event.add("tfc:prospectable", "#forge:ores");
event.add("tfc:can_collapse", "#forge:raw_ore_blocks");
event.add("tfc:can_start_collapse", "#forge:raw_ore_blocks");
event.add("tfc:can_trigger_collapse", "#forge:raw_ore_blocks");
event.add("c:hidden_from_recipe_viewers", "#forge:raw_ore_blocks");
event.add("tfc:monster_spawns_on", "#forge:raw_ore_blocks");
event.add("tfc:prospectable", "#forge:raw_ore_blocks");
// Let GT indicators be covered by snow
forEachMaterial((material) => {
@ -162,51 +74,26 @@ function registerTFGGeneralWorldgenBlockTags(event) {
}
});
// More rock tags
event.add('tfc:can_landslide', 'ad_astra:moon_sand')
event.add('tfc:can_landslide', 'ad_astra:mars_sand')
event.add('tfc:can_landslide', 'ad_astra:venus_sand')
event.add('tfc:can_landslide', 'minecraft:red_sand')
event.add('tfc:can_landslide', 'ad_astra:moon_cobblestone')
event.add('tfc:can_landslide', 'ad_astra:mars_cobblestone')
event.add('tfc:can_landslide', 'ad_astra:venus_cobblestone')
event.add('tfc:can_landslide', 'ad_astra:mercury_cobblestone')
event.add('tfc:can_landslide', 'ad_astra:glacio_cobblestone')
event.add('tfc:can_landslide', 'gtceu:red_granite_cobblestone')
event.add('forge:cobblestone', 'ad_astra:moon_cobblestone')
event.add('forge:cobblestone', 'ad_astra:mars_cobblestone')
event.add('forge:cobblestone', 'ad_astra:venus_cobblestone')
event.add('forge:cobblestone', 'ad_astra:mercury_cobblestone')
event.add('forge:cobblestone', 'ad_astra:glacio_cobblestone')
event.add('tfc:can_landslide', 'ad_astra:moon_cobblestone_slab')
event.add('tfc:can_landslide', 'ad_astra:mars_cobblestone_slab')
event.add('tfc:can_landslide', 'ad_astra:venus_cobblestone_slab')
event.add('tfc:can_landslide', 'ad_astra:mercury_cobblestone_slab')
event.add('tfc:can_landslide', 'ad_astra:glacio_cobblestone_slab')
event.add('tfc:can_landslide', 'ad_astra:moon_cobblestone_stairs')
event.add('tfc:can_landslide', 'ad_astra:mars_cobblestone_stairs')
event.add('tfc:can_landslide', 'ad_astra:venus_cobblestone_stairs')
event.add('tfc:can_landslide', 'ad_astra:mercury_cobblestone_stairs')
event.add('tfc:can_landslide', 'ad_astra:glacio_cobblestone_stairs')
event.add('tfg:rock_stairs', 'ad_astra:moon_stone_stairs')
event.add('tfg:rock_stairs', 'ad_astra:mars_stone_stairs')
event.add('tfg:rock_stairs', 'ad_astra:venus_stone_stairs')
event.add('tfg:rock_stairs', 'ad_astra:mercury_stone_stairs')
event.add('tfg:rock_stairs', 'ad_astra:glacio_stone_stairs')
event.add('tfg:rock_slabs', 'ad_astra:moon_stone_slab')
event.add('tfg:rock_slabs', 'ad_astra:mars_stone_slab')
event.add('tfg:rock_slabs', 'ad_astra:venus_stone_slab')
event.add('tfg:rock_slabs', 'ad_astra:mercury_stone_slab')
event.add('tfg:rock_slabs', 'ad_astra:glacio_stone_slab')
event.add('tfc:can_landslide', '#forge:sand')
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')
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')
}

View file

@ -6,10 +6,26 @@ function registerCreateMaterials(event) {
event.create('asurine')
.color(0x7DB8D1)
.secondaryColor(0x4C5D7B)
.components('1x certus_quartz', '1x olivine', '1x zinc')
.dust()
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
event.create('ochrum')
.color(0xB6995E)
.secondaryColor(0x865840)
.components('1x quartzite', '1x hematite', '1x gold')
.dust()
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
event.create('crimsite')
.color(0xA0504B)
.secondaryColor(0x7D2F3B)
.dust()
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
event.create('veridium')
.color(0x4F957C)
.secondaryColor(0x2A5C4A)
.dust()
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
}

View file

@ -1,4 +1,4 @@
// priority: -100
// priority: 0
"use strict";
/** @global */

View file

@ -186,26 +186,23 @@ global.GTCEU_DISABLED_ITEMS = /** @type {const} */ ([
"gtceu:titanium_boots",
// Sculk
"gtceu:tiny_echo_shard_dust",
"gtceu:small_echo_shard_dust",
"gtceu:echo_shard_dust",
"gtceu:echo_shard_block",
"gtceu:echo_shard_plate",
"gtceu:echo_shard_rod",
"gtceu:chipped_echo_shard_gem",
"gtceu:flawed_echo_shard_gem",
"gtceu:flawless_echo_shard_gem",
"gtceu:exquisite_echo_shard_gem",
"gtceu:echo_shard_plate",
"gtceu:echo_shard_rod",
"gtceu:echo_shard_block",
"gtceu:tiny_sculk_dust",
"gtceu:small_sculk_dust",
"gtceu:sculk_dust",
"gtceu:tiny_echo_shard_dust",
"gtceu:small_echo_shard_dust",
"gtceu:echo_shard_dust",
// Ender eye
"gtceu:ender_eye_plate",
"gtceu:ender_eye_block",
"gtceu:ender_eye_dust",
"gtceu:small_ender_eye_dust",
"gtceu:ender_eye_plate",
"gtceu:tiny_ender_eye_dust",
"gtceu:small_ender_eye_dust",
"gtceu:ender_eye_dust",
// Marble
"gtceu:marble",
@ -220,30 +217,42 @@ global.GTCEU_DISABLED_ITEMS = /** @type {const} */ ([
"gtceu:hv_bedrock_ore_miner",
"gtceu:ev_bedrock_ore_miner",
// Plutonium ores
"gtceu:raw_plutonium",
"gtceu:poor_raw_plutonium",
"gtceu:rich_raw_plutonium",
"gtceu:raw_plutonium_block",
"gtceu:refined_plutonium_ore",
"gtceu:purified_plutonium_ore",
"gtceu:crushed_plutonium_ore",
"gtceu:impure_plutonium_dust",
"gtceu:pure_plutonium_dust",
"gtceu:plutonium_surface_rock",
// (Normal) thorium bits
"gtceu:thorium_nugget",
"gtceu:thorium_ingot",
"gtceu:thorium_block",
"gtceu:thorium_plate",
"gtceu:double_thorium_plate",
"gtceu:thorium_rod",
"gtceu:thorium_bucket",
// Replaced with our own
"gtceu:paracetamol_pill",
"gtceu:rad_away_pill"
"gtceu:rad_away_pill",
// GT gets upset if you try to remove the dust property from these
"gtceu:blackstone_dust",
"gtceu:small_blackstone_dust",
"gtceu:tiny_blackstone_dust",
"gtceu:basalt_dust",
"gtceu:small_basalt_dust",
"gtceu:tiny_basalt_dust",
"gtceu:granite_dust",
"gtceu:small_granite_dust",
"gtceu:tiny_granite_dust",
"gtceu:marble_dust",
"gtceu:small_marble_dust",
"gtceu:tiny_marble_dust",
"gtceu:diorite_dust",
"gtceu:small_diorite_dust",
"gtceu:tiny_diorite_dust",
"gtceu:netherrack_dust",
"gtceu:small_netherrack_dust",
"gtceu:tiny_netherrack_dust",
"gtceu:granite_red_dust",
"gtceu:small_granite_red_dust",
"gtceu:tiny_granite_red_dust",
"gtceu:deepslate_dust",
"gtceu:small_deepslate_dust",
"gtceu:tiny_deepslate_dust",
"gtceu:andesite_dust",
"gtceu:small_andesite_dust",
"gtceu:tiny_andesite_dust"
]);
//#endregion

View file

@ -392,6 +392,9 @@ const registerGTCEuMaterialModification = (event) => {
let zirconium_diboride = TFGHelpers.getMaterial('zirconium_diboride');
zirconium_diboride.setProperty(PropertyKey.BLAST, new $BLAST_PROPERTY(4500, "high", GTValues.VA[GTValues.EV], 2700, GTValues.VA[GTValues.HV], 12.5*20));
// Remove properties
GTMaterials.Glass.getProperties().removeProperty(PropertyKey.GEM)
// Color Adjustments
GTMaterials.BismuthBronze.setMaterialARGB(0x5A966E)
GTMaterials.BismuthBronze.setMaterialSecondaryARGB(0x203E2A)
@ -458,8 +461,6 @@ const registerGTCEuMaterialModification = (event) => {
// Components and formulas
GTMaterials.CertusQuartz.setComponents('1x unknown', '1x silicon', '2x oxygen')
GTMaterials.Glowstone.setComponents('1x gold', '1x redstone')
GTMaterials.GraniteRed.setComponents([])
GTMaterials.GraniteRed.setFormula("?")
GTMaterials.Thorium.setFormula('ThO2')
GTMaterials.Americium.setFormula('Am²⁴³')
}

View file

@ -44,7 +44,6 @@ GTCEuStartupEvents.registry('gtceu:machine', event => {
GTCEuStartupEvents.registry('gtceu:tag_prefix', event => {
registerAE2TagPrefixes(event)
registerGTCEuTagPrefixes(event)
registerTFCTagPrefixes(event)
registerTFGTagPrefixes(event)
})

View file

@ -6,10 +6,8 @@ const registerTFGBlocks = (event) => {
registerTFGCrops(event)
registerTFGVaseBlocks(event)
registerTFGSupportBlocks(event)
registerTFGAqueductBlocks(event)
registerTFGRockBlocks(event)
registerTFGVanillaStoneBlocks(event)
registerTFGSupportBlocks(event)
registerTFGWorldGenTrees(event)
registerTFGWorldGenBeneathDecoBlocks(event)

View file

@ -25,39 +25,6 @@ global.AIRCRAFT_UPGRADES = [
"titanium_hull_reinforcement"
]
/**
* @type {string[]} - Item IDs
*/
global.EXTRATERRESTRIAL_RAW_ROCKS = [
'minecraft:deepslate',
'minecraft:blackstone',
'minecraft:dripstone_block',
'ad_astra:moon_stone',
'ad_astra:moon_deepslate',
'ad_astra:mars_stone',
'ad_astra:venus_stone',
'ad_astra:mercury_stone',
'ad_astra:glacio_stone',
'gtceu:red_granite',
'beneath:crackrack'
]
/**
* @type {string[]} - Item IDs
*/
global.EXTRATERRESTRIAL_HARDENED_ROCKS = [
'tfg:rock/hardened_moon_stone',
'tfg:rock/hardened_moon_deepslate',
'tfg:rock/hardened_mars_stone',
'tfg:rock/hardened_venus_stone',
'tfg:rock/hardened_mercury_stone',
'tfg:rock/hardened_glacio_stone',
'tfg:rock/hardened_red_granite',
'tfg:rock/hardened_deepslate',
'tfg:rock/hardened_blackstone',
'tfg:rock/hardened_dripstone',
'tfg:rock/hardened_crackrack'
]
/**
* @type {string[]} - Stone Names
@ -192,116 +159,24 @@ global.FOOD_FRUIT = [
{name: 'shadow_berry', id: 'betterend:shadow_berry_cooked', saturation: 1, water: 5, fruit: 1.5, decay: 2 }
];
global.STONE_CHARACS = { // Sets of stone block properties used for block registry.
deepslate: { sound: 'deepslate', type: "metamorphic", mapColor: 'terracotta_grey' },
blackstone: { sound: 'stone', type: "igneous_intrusive", mapColor: 'color_black' },
dripstone: { sound: 'dripstone_block', type: "sedimentary", mapColor: 'terracotta_brown' },
crackrack: { sound: 'netherrack', type: "igneous_intrusive", mapColor: 'crimson_stem' },
nether: { sound: 'nether_bricks', type: "igneous_intrusive", mapColor: 'nether' },
moon: { sound: 'stone', type: "igneous_intrusive", mapColor: 'terracotta_cyan' },
moon_deepslate: { sound: 'deepslate', type: "igneous_intrusive", mapColor: 'terracotta_blue' },
mars: { sound: 'stone', type: "sedimentary", mapColor: 'terracotta_orange' },
venus: { sound: 'stone', type: "igneous_extrusive", mapColor: 'terracotta_yellow' },
mercury: { sound: 'stone', type: "igneous_intrusive", mapColor: 'terracotta_purple' },
glacio: { sound: 'stone', type: "igneous_extrusive", mapColor: 'terracotta_light_blue' },
permafrost: { sound: 'stone', type: null, mapColor: 'snow' },
red_granite: { sound: 'stone', type: "igneous_intrusive", mapColor: 'terracotta_red' },
reconstituted: { sound: 'stone', type: null, mapColor: 'stone' },
light_concrete: { sound: 'stone', type: null, mapColor: 'color_light_gray' },
dark_concrete: { sound: 'stone', type: null, mapColor: 'color_gray' }
}
/** @type {Hammering[]} */
global.HAMMERING = [ // Crushing relationships for manual block hammering, create press hammering and gtceu forge hammer crushing.
// Beneath
{ raw: 'minecraft:deepslate', hammered: 'minecraft:cobbled_deepslate', duration: 10, eu: 7 },
{ raw: 'tfg:rock/hardened_deepslate', hammered: 'minecraft:cobbled_deepslate', duration: 10, eu: 7 },
{ raw: 'minecraft:cobbled_deepslate', hammered: 'tfg:rock/gravel_deepslate', duration: 10, eu: 7 },
{ raw: 'tfg:rock/mossy_cobble_deepslate', hammered: 'tfg:rock/gravel_deepslate', duration: 10, eu: 7 },
{ raw: 'tfg:rock/gravel_deepslate', hammered: 'tfc:sand/black', duration: 70, eu: 16 },
{ raw: 'minecraft:blackstone', hammered: 'tfg:rock/cobble_blackstone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/hardened_blackstone', hammered: 'tfg:rock/cobble_blackstone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/cobble_blackstone', hammered: 'tfg:rock/gravel_blackstone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/mossy_cobble_blackstone', hammered: 'tfg:rock/gravel_blackstone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/gravel_blackstone', hammered: 'tfc:sand/black', duration: 70, eu: 16 },
{ raw: 'minecraft:dripstone_block', hammered: 'tfg:rock/cobble_dripstone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/hardened_dripstone', hammered: 'tfg:rock/cobble_dripstone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/cobble_dripstone', hammered: 'tfg:rock/gravel_dripstone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/mossy_cobble_dripstone', hammered: 'tfg:rock/gravel_dripstone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/gravel_dripstone', hammered: 'tfc:sand/brown', duration: 70, eu: 16 },
{ raw: 'beneath:crackrack', hammered: 'tfg:rock/cobble_crackrack', duration: 10, eu: 7 },
{ raw: 'tfg:rock/cobble_crackrack', hammered: 'tfg:rock/gravel_crackrack', duration: 10, eu: 7 },
{ raw: 'tfg:rock/mossy_cobble_crackrack', hammered: 'tfg:rock/gravel_crackrack', duration: 10, eu: 7 },
{ raw: 'tfg:rock/gravel_crackrack', hammered: 'tfc:sand/pink', duration: 70, eu: 16 },
{ raw: 'minecraft:basalt', hammered: 'tfc:rock/cobble/basalt', duration: 10, eu: 7 },
// Moon
{ raw: 'ad_astra:moon_stone', hammered: 'ad_astra:moon_cobblestone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/hardened_moon_stone', hammered: 'ad_astra:moon_cobblestone', duration: 10, eu: 7 },
{ raw: 'ad_astra:moon_cobblestone', hammered: 'tfg:rock/gravel_moon', duration: 10, eu: 7 },
{ raw: 'tfg:rock/mossy_cobble_moon', hammered: 'tfg:rock/gravel_moon', duration: 10, eu: 7 },
{ raw: 'tfg:rock/gravel_moon', hammered: 'ad_astra:moon_sand', duration: 70, eu: 16 },
{ raw: 'ad_astra:moon_deepslate', hammered: 'tfg:rock/cobble_moon_deepslate', duration: 10, eu: 7 },
{ raw: 'tfg:rock/hardened_moon_deepslate', hammered: 'tfg:rock/cobble_moon_deepslate', duration: 10, eu: 7 },
{ raw: 'tfg:rock/cobble_moon_deepslate', hammered: 'tfg:rock/gravel_moon_deepslate', duration: 10, eu: 7 },
{ raw: 'tfg:rock/mossy_cobble_moon_deepslate', hammered: 'tfg:rock/gravel_moon_deepslate', duration: 10, eu: 7 },
{ raw: 'tfg:rock/gravel_moon_deepslate', hammered: 'ad_astra:moon_sand', duration: 10, eu: 16 },
{ raw: 'ad_astra:glacio_stone', hammered: 'ad_astra:glacio_cobblestone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/hardened_glacio_stone', hammered: 'ad_astra:glacio_cobblestone', duration: 10, eu: 7 },
{ raw: 'ad_astra:glacio_cobblestone', hammered: 'tfg:rock/gravel_glacio', duration: 10, eu: 7 },
{ raw: 'tfg:rock/mossy_cobble_glacio', hammered: 'tfg:rock/gravel_glacio', duration: 10, eu: 7 },
{ raw: 'tfg:rock/gravel_glacio', hammered: 'tfc:sand/white', duration: 70, eu: 16 },
// Mars
{ raw: 'ad_astra:mars_stone', hammered: 'ad_astra:mars_cobblestone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/hardened_mars_stone', hammered: 'ad_astra:mars_cobblestone', duration: 10, eu: 7 },
{ raw: 'ad_astra:mars_cobblestone', hammered: 'tfg:rock/gravel_mars', duration: 10, eu: 7 },
{ raw: 'tfg:rock/mossy_cobble_mars', hammered: 'tfg:rock/gravel_mars', duration: 10, eu: 7 },
{ raw: 'tfg:rock/gravel_mars', hammered: 'ad_astra:mars_sand', duration: 70, eu: 16 },
{ raw: 'minecraft:red_sandstone', hammered: '4x minecraft:red_sand', duration: 10, eu: 16 },
{ raw: 'gtceu:red_granite', hammered: 'gtceu:red_granite_cobblestone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/hardened_red_granite', hammered: 'gtceu:red_granite_cobblestone', duration: 10, eu: 7 },
{ raw: 'gtceu:red_granite_cobblestone', hammered: 'tfg:rock/gravel_red_granite', duration: 10, eu: 7 },
{ raw: 'gtceu:mossy_red_granite_cobblestone', hammered: 'tfg:rock/gravel_red_granite', duration: 10, eu: 7 },
{ raw: 'tfg:rock/gravel_red_granite', hammered: 'minecraft:red_sand', duration: 70, eu: 16 },
// Venus
{ raw: 'ad_astra:venus_stone', hammered: 'ad_astra:venus_cobblestone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/hardened_venus_stone', hammered: 'ad_astra:venus_cobblestone', duration: 10, eu: 7 },
{ raw: 'ad_astra:venus_cobblestone', hammered: 'tfg:rock/gravel_venus', duration: 10, eu: 7 },
{ raw: 'tfg:rock/mossy_cobble_venus', hammered: 'tfg:rock/gravel_venus', duration: 10, eu: 7 },
{ raw: 'tfg:rock/gravel_venus', hammered: 'ad_astra:venus_sand', duration: 70, eu: 16 },
{ raw: 'ad_astra:venus_sandstone', hammered: '4x ad_astra:venus_sand', duration: 70, eu: 16 },
// Mercury
{ raw: 'ad_astra:mercury_stone', hammered: 'ad_astra:mercury_cobblestone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/hardened_mercury_stone', hammered: 'ad_astra:mercury_cobblestone', duration: 10, eu: 7 },
{ raw: 'ad_astra:mercury_cobblestone', hammered: 'tfg:rock/gravel_mercury', duration: 10, eu: 7 },
{ raw: 'tfg:rock/mossy_cobble_mercury', hammered: 'tfg:rock/gravel_mercury', duration: 10, eu: 7 },
{ raw: 'tfg:rock/gravel_mercury', hammered: 'tfc:sand/red', duration: 70, eu: 16 },
// Europa
{ raw: 'ad_astra:permafrost', hammered: 'tfg:rock/cobble_permafrost', duration: 10, eu: 7 },
{ raw: 'tfg:rock/cobble_permafrost', hammered: 'tfg:rock/gravel_permafrost', duration: 10, eu: 7 },
{ raw: 'tfg:rock/mossy_cobble_permafrost', hammered: 'tfg:rock/gravel_permafrost', duration: 10, eu: 7 },
{ raw: 'tfg:rock/gravel_permafrost', hammered: '4x gtceu:ice_dust', duration: 70, eu: 16 },
// Misc
{ raw: 'ad_astra:conglomerate', hammered: 'tfc:rock/gravel/conglomerate', duration: 10, eu: 7 },
{ raw: 'minecraft:stone', hammered: 'minecraft:cobblestone', duration: 10, eu: 7 }
]
{ raw: 'minecraft:basalt', hammered: 'tfc:rock/cobble/basalt', duration: 10, eu: 7 },
{ raw: 'tfg:rock/gravel_permafrost', hammered: '4x gtceu:ice_dust', duration: 70, eu: 16 },
// TODO: make a big sand/sandstone table like the rock table?
{ raw: 'minecraft:red_sandstone', hammered: '4x minecraft:red_sand', duration: 10, eu: 16 },
{ raw: 'ad_astra:venus_sandstone', hammered: '4x ad_astra:venus_sand', duration: 70, eu: 16 },
{ raw: 'tfg:sandstone/raw/fluorapatite/blue', hammered: '4x tfg:sand/fluorapatite/blue', duration: 70, eu: 16 },
{ raw: 'tfg:sandstone/raw/fluorapatite/green', hammered: '4x tfg:sand/fluorapatite/green', duration: 70, eu: 16 },
{ raw: 'tfg:sandstone/raw/fluorapatite/brown', hammered: '4x tfg:sand/fluorapatite/brown', duration: 70, eu: 16 },
{ raw: 'tfg:sandstone/raw/fluorapatite/orange', hammered: '4x tfg:sand/fluorapatite/orange', duration: 70, eu: 16 },
{ raw: 'tfg:sandstone/raw/fluorapatite/white', hammered: '4x tfg:sand/fluorapatite/white', duration: 70, eu: 16 },
{ raw: 'tfg:sandstone/raw/fluorapatite/yellow', hammered: '4x tfg:sand/fluorapatite/yellow', duration: 70, eu: 16 },
{ raw: '#tfg:moon_gravel', hammered: 'ad_astra:moon_sand', duration: 70, eu: 16 },
{ raw: '#tfg:mars_gravel', hammered: 'ad_astra:mars_sand', duration: 70, eu: 16 },
{ raw: '#tfg:venus_gravel', hammered: 'ad_astra:venus_sand', duration: 70, eu: 16 },
{ raw: '#tfg:hematitic_gravel', hammered: 'minecraft:red_sand', duration: 70, eu: 16 },
]
global.COOLING_FOODS = [
'firmalife:food/vanilla_ice_cream',

View file

@ -55,314 +55,23 @@ function registerTFGSupportBlocks(event) {
.mapColor('crimson_stem')
.tagBlock('minecraft:mineable/axe')
.requiresTool(false)
// Stone
global.TFC_STONE_TYPES.forEach(stone => {
event.create(`tfg:${stone}_support`, 'tfc:support')
.textureAll(`tfc:block/rock/raw/${stone}`)
.horizontal(horizontal => {
horizontal.textureAll(`tfc:block/rock/raw/${stone}`)
horizontal.soundType('stone')
horizontal.hardness(5)
horizontal.resistance(8)
horizontal.mapColor('color_gray')
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType('stone')
.hardness(5)
.resistance(8)
.mapColor('color_gray')
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
})
event.create(`tfg:migmatite_support`, 'tfc:support')
.textureAll('minecraft:block/deepslate')
.horizontal(horizontal => {
horizontal.textureAll('minecraft:block/deepslate')
horizontal.soundType(global.STONE_CHARACS.deepslate.sound)
horizontal.hardness(5)
horizontal.resistance(8)
horizontal.mapColor(global.STONE_CHARACS.deepslate.mapColor)
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType(global.STONE_CHARACS.deepslate.sound)
.hardness(5)
.resistance(8)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
event.create(`tfg:pyroxenite_support`, 'tfc:support')
.textureAll('minecraft:block/blackstone')
.horizontal(horizontal => {
horizontal.textureAll('minecraft:block/blackstone')
horizontal.soundType(global.STONE_CHARACS.blackstone.sound)
horizontal.hardness(5)
horizontal.resistance(8)
horizontal.mapColor(global.STONE_CHARACS.blackstone.mapColor)
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType(global.STONE_CHARACS.blackstone.sound)
.hardness(5)
.resistance(8)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
event.create(`tfg:travertine_support`, 'tfc:support')
.textureAll('minecraft:block/dripstone_block')
.horizontal(horizontal => {
horizontal.textureAll('minecraft:block/dripstone_block')
horizontal.soundType(global.STONE_CHARACS.dripstone.sound)
horizontal.hardness(5)
horizontal.resistance(8)
horizontal.mapColor(global.STONE_CHARACS.dripstone.mapColor)
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType(global.STONE_CHARACS.dripstone.sound)
.hardness(5)
.resistance(8)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
event.create(`tfg:keratophyre_support`, 'tfc:support')
.textureAll('beneath:block/crackrack')
.horizontal(horizontal => {
horizontal.textureAll('beneath:block/crackrack')
horizontal.soundType(global.STONE_CHARACS.crackrack.sound)
horizontal.hardness(5)
horizontal.resistance(8)
horizontal.mapColor(global.STONE_CHARACS.crackrack.mapColor)
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType(global.STONE_CHARACS.crackrack.sound)
.hardness(5)
.resistance(8)
.mapColor(global.STONE_CHARACS.crackrack.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
event.create(`tfg:anorthosite_support`, 'tfc:support')
.textureAll('ad_astra:block/moon_stone')
.horizontal(horizontal => {
horizontal.textureAll('ad_astra:block/moon_stone')
horizontal.soundType(global.STONE_CHARACS.moon.sound)
horizontal.hardness(5)
horizontal.resistance(8)
horizontal.mapColor(global.STONE_CHARACS.moon.mapColor)
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType(global.STONE_CHARACS.moon.sound)
.hardness(5)
.resistance(8)
.mapColor(global.STONE_CHARACS.moon.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
event.create(`tfg:norite_support`, 'tfc:support')
.textureAll('ad_astra:block/moon_deepslate')
.horizontal(horizontal => {
horizontal.textureAll('ad_astra:block/moon_deepslate')
horizontal.soundType(global.STONE_CHARACS.moon_deepslate.sound)
horizontal.hardness(5)
horizontal.resistance(8)
horizontal.mapColor(global.STONE_CHARACS.moon_deepslate.mapColor)
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType(global.STONE_CHARACS.moon_deepslate.sound)
.hardness(5)
.resistance(8)
.mapColor(global.STONE_CHARACS.moon_deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
event.create(`tfg:argillite_support`, 'tfc:support')
.textureAll('ad_astra:block/mars_stone')
.horizontal(horizontal => {
horizontal.textureAll('ad_astra:block/mars_stone')
horizontal.soundType(global.STONE_CHARACS.mars.sound)
horizontal.hardness(5)
horizontal.resistance(8)
horizontal.mapColor(global.STONE_CHARACS.mars.mapColor)
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType(global.STONE_CHARACS.mars.sound)
.hardness(5)
.resistance(8)
.mapColor(global.STONE_CHARACS.mars.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
event.create(`tfg:trachyte_support`, 'tfc:support')
.textureAll('ad_astra:block/venus_stone')
.horizontal(horizontal => {
horizontal.textureAll('ad_astra:block/venus_stone')
horizontal.soundType(global.STONE_CHARACS.venus.sound)
horizontal.hardness(5)
horizontal.resistance(8)
horizontal.mapColor(global.STONE_CHARACS.venus.mapColor)
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType(global.STONE_CHARACS.venus.sound)
.hardness(5)
.resistance(8)
.mapColor(global.STONE_CHARACS.venus.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
event.create(`tfg:komatiite_support`, 'tfc:support')
.textureAll('ad_astra:block/mercury_stone')
.horizontal(horizontal => {
horizontal.textureAll('ad_astra:block/mercury_stone')
horizontal.soundType(global.STONE_CHARACS.mercury.sound)
horizontal.hardness(5)
horizontal.resistance(8)
horizontal.mapColor(global.STONE_CHARACS.mercury.mapColor)
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType(global.STONE_CHARACS.mercury.sound)
.hardness(5)
.resistance(8)
.mapColor(global.STONE_CHARACS.mercury.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
event.create(`tfg:phonolite_support`, 'tfc:support')
.textureAll('ad_astra:block/glacio_stone')
.horizontal(horizontal => {
horizontal.textureAll('ad_astra:block/glacio_stone')
horizontal.soundType(global.STONE_CHARACS.glacio.sound)
horizontal.hardness(5)
horizontal.resistance(8)
horizontal.mapColor(global.STONE_CHARACS.glacio.mapColor)
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType(global.STONE_CHARACS.glacio.sound)
.hardness(5)
.resistance(8)
.mapColor(global.STONE_CHARACS.glacio.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
event.create(`tfg:permafrost_support`, 'tfc:support')
.textureAll('ad_astra:block/permafrost')
.horizontal(horizontal => {
horizontal.textureAll('ad_astra:block/permafrost')
horizontal.soundType(global.STONE_CHARACS.permafrost.sound)
horizontal.hardness(5)
horizontal.resistance(8)
horizontal.mapColor(global.STONE_CHARACS.permafrost.mapColor)
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType(global.STONE_CHARACS.permafrost.sound)
.hardness(5)
.resistance(8)
.mapColor(global.STONE_CHARACS.permafrost.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
event.create(`tfg:red_granite_support`, 'tfc:support')
.textureAll('gtceu:block/stones/red_granite/stone')
.horizontal(horizontal => {
horizontal.textureAll('gtceu:block/stones/red_granite/stone')
horizontal.soundType(global.STONE_CHARACS.red_granite.sound)
horizontal.hardness(5)
horizontal.resistance(8)
horizontal.mapColor(global.STONE_CHARACS.red_granite.mapColor)
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType(global.STONE_CHARACS.red_granite.sound)
.hardness(5)
.resistance(8)
.mapColor(global.STONE_CHARACS.red_granite.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
event.create(`tfg:stone_support`, 'tfc:support')
.textureAll('minecraft:block/stone')
.horizontal(horizontal => {
horizontal.textureAll('minecraft:block/stone')
horizontal.soundType(global.STONE_CHARACS.reconstituted.sound)
horizontal.hardness(5)
horizontal.resistance(8)
horizontal.mapColor(global.STONE_CHARACS.reconstituted.mapColor)
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType(global.STONE_CHARACS.reconstituted.sound)
.hardness(5)
.resistance(8)
.mapColor(global.STONE_CHARACS.reconstituted.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
// Concrete
event.create('tfg:light_concrete_support', 'tfc:support')
.textureAll('gtceu:block/stones/light_concrete/stone')
.horizontal(horizontal => {
horizontal.textureAll('gtceu:block/stones/light_concrete/stone')
horizontal.soundType(global.STONE_CHARACS.light_concrete.sound)
horizontal.hardness(5)
horizontal.resistance(16)
horizontal.mapColor(global.STONE_CHARACS.light_concrete.mapColor)
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType(global.STONE_CHARACS.light_concrete.sound)
.hardness(5)
.resistance(16)
.mapColor(global.STONE_CHARACS.light_concrete.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
// Reinforced Concrete
event.create('tfg:reinforced_light_concrete_support', 'tfc:support')
.textureAll('gtceu:block/stones/light_concrete/stone')
.horizontal(horizontal => {
horizontal.textureAll('gtceu:block/stones/light_concrete/stone')
horizontal.soundType(global.STONE_CHARACS.light_concrete.sound)
horizontal.soundType(global.BIG_ROCK_TABLE.light_concrete.sound)
horizontal.hardness(5)
horizontal.resistance(64)
horizontal.mapColor(global.STONE_CHARACS.light_concrete.mapColor)
horizontal.mapColor(global.BIG_ROCK_TABLE.light_concrete.mapColor)
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType(global.STONE_CHARACS.light_concrete.sound)
.soundType(global.BIG_ROCK_TABLE.light_concrete.sound)
.hardness(5)
.resistance(64)
.mapColor(global.STONE_CHARACS.light_concrete.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
event.create('tfg:dark_concrete_support', 'tfc:support')
.textureAll('gtceu:block/stones/dark_concrete/stone')
.horizontal(horizontal => {
horizontal.textureAll('gtceu:block/stones/dark_concrete/stone')
horizontal.soundType(global.STONE_CHARACS.dark_concrete.sound)
horizontal.hardness(5)
horizontal.resistance(16)
horizontal.mapColor(global.STONE_CHARACS.dark_concrete.mapColor)
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType(global.STONE_CHARACS.dark_concrete.sound)
.hardness(5)
.resistance(16)
.mapColor(global.STONE_CHARACS.dark_concrete.mapColor)
.mapColor(global.BIG_ROCK_TABLE.light_concrete.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)
@ -370,17 +79,17 @@ function registerTFGSupportBlocks(event) {
.textureAll('gtceu:block/stones/dark_concrete/stone')
.horizontal(horizontal => {
horizontal.textureAll('gtceu:block/stones/dark_concrete/stone')
horizontal.soundType(global.STONE_CHARACS.dark_concrete.sound)
horizontal.soundType(global.BIG_ROCK_TABLE.dark_concrete.sound)
horizontal.hardness(5)
horizontal.resistance(64)
horizontal.mapColor(global.STONE_CHARACS.dark_concrete.mapColor)
horizontal.mapColor(global.BIG_ROCK_TABLE.dark_concrete.mapColor)
horizontal.tagBlock('minecraft:mineable/pickaxe')
horizontal.requiresTool(true)
})
.soundType(global.STONE_CHARACS.dark_concrete.sound)
.soundType(global.BIG_ROCK_TABLE.dark_concrete.sound)
.hardness(5)
.resistance(64)
.mapColor(global.STONE_CHARACS.dark_concrete.mapColor)
.mapColor(global.BIG_ROCK_TABLE.dark_concrete.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.requiresTool(true)

View file

@ -1,86 +0,0 @@
function registerTFGAqueductBlocks(event) {
// Nether
event.create('tfg:rock/aqueduct_deepslate', 'tfc:aqueduct')
.soundType(global.STONE_CHARACS.deepslate.sound)
.textureAll('minecraft:block/deepslate_bricks')
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.tagBoth('tfg:rock/aqueducts')
event.create('tfg:rock/aqueduct_dripstone', 'tfc:aqueduct')
.soundType(global.STONE_CHARACS.dripstone.sound)
.textureAll('create:block/palettes/stone_types/brick/dripstone_cut_brick')
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.tagBoth('tfg:rock/aqueducts')
event.create('tfg:rock/aqueduct_nether', 'tfc:aqueduct')
.soundType(global.STONE_CHARACS.nether.sound)
.textureAll('minecraft:block/nether_bricks')
.mapColor(global.STONE_CHARACS.nether.mapColor)
.tagBoth(`tfc:${global.STONE_CHARACS.nether.type}_items`)
.tagBoth('tfg:rock/aqueducts')
event.create('tfg:rock/aqueduct_moon_stone', 'tfc:aqueduct')
.soundType(global.STONE_CHARACS.moon.sound)
.textureAll('ad_astra:block/moon_stone_bricks')
.mapColor(global.STONE_CHARACS.moon.mapColor)
.tagBoth(`tfc:${global.STONE_CHARACS.moon.type}_items`)
.tagBoth('tfg:rock/aqueducts')
event.create('tfg:rock/aqueduct_moon_deepslate', 'tfc:aqueduct')
.soundType(global.STONE_CHARACS.moon_deepslate.sound)
.textureAll('tfg:block/rock/bricks_moon_deepslate')
.mapColor(global.STONE_CHARACS.moon_deepslate.mapColor)
.tagBoth(`tfc:${global.STONE_CHARACS.moon_deepslate.type}_items`)
.tagBoth('tfg:rock/aqueducts')
event.create('tfg:rock/aqueduct_mars_stone', 'tfc:aqueduct')
.soundType(global.STONE_CHARACS.mars.sound)
.textureAll('ad_astra:block/mars_stone_bricks')
.mapColor(global.STONE_CHARACS.mars.mapColor)
.tagBoth(`tfc:${global.STONE_CHARACS.mars.type}_items`)
.tagBoth('tfg:rock/aqueducts')
event.create('tfg:rock/aqueduct_venus_stone', 'tfc:aqueduct')
.soundType(global.STONE_CHARACS.venus.sound)
.textureAll('ad_astra:block/venus_stone_bricks')
.mapColor(global.STONE_CHARACS.venus.mapColor)
.tagBoth(`tfc:${global.STONE_CHARACS.venus.type}_items`)
.tagBoth('tfg:rock/aqueducts')
event.create('tfg:rock/aqueduct_mercury_stone', 'tfc:aqueduct')
.soundType(global.STONE_CHARACS.mercury.sound)
.textureAll('ad_astra:block/mercury_stone_bricks')
.mapColor(global.STONE_CHARACS.mercury.mapColor)
.tagBoth(`tfc:${global.STONE_CHARACS.mercury.type}_items`)
.tagBoth('tfg:rock/aqueducts')
event.create('tfg:rock/aqueduct_glacio_stone', 'tfc:aqueduct')
.soundType(global.STONE_CHARACS.glacio.sound)
.textureAll('ad_astra:block/glacio_stone_bricks')
.mapColor(global.STONE_CHARACS.glacio.mapColor)
.tagBoth(`tfc:${global.STONE_CHARACS.glacio.type}_items`)
.tagBoth('tfg:rock/aqueducts')
event.create('tfg:rock/aqueduct_permafrost', 'tfc:aqueduct')
.soundType(global.STONE_CHARACS.permafrost.sound)
.textureAll('ad_astra:block/permafrost_bricks')
.mapColor(global.STONE_CHARACS.permafrost.mapColor)
.tagBoth('tfg:rock/aqueducts')
event.create('tfg:rock/aqueduct_red_granite', 'tfc:aqueduct')
.soundType(global.STONE_CHARACS.red_granite.sound)
.textureAll('gtceu:block/stones/red_granite/bricks')
.mapColor(global.STONE_CHARACS.red_granite.mapColor)
.tagBoth(`tfc:${global.STONE_CHARACS.red_granite.type}_items`)
.tagBoth('tfg:rock/aqueducts')
event.create('tfg:rock/aqueduct_stone', 'tfc:aqueduct')
.soundType(global.STONE_CHARACS.reconstituted.sound)
.textureAll('minecraft:block/stone_bricks')
.mapColor(global.STONE_CHARACS.reconstituted.mapColor)
.tagBoth('tfg:rock/aqueducts')
}

File diff suppressed because it is too large Load diff

View file

@ -1,56 +0,0 @@
"use strict";
function registerTFGVanillaStoneBlocks(event) {
event.create(`tfg:rock/stone_wall`, 'wall')
.soundType(global.STONE_CHARACS.reconstituted.sound)
.textureAll('minecraft:block/stone')
.tagBoth('tfg:rock_wall')
.mapColor(global.STONE_CHARACS.reconstituted.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
let SHAPES = ['stairs', 'wall']
SHAPES.forEach(shape => {
event.create(`tfg:rock/smooth_stone_${shape}`, shape)
.soundType(global.STONE_CHARACS.reconstituted.sound)
.textureAll('minecraft:block/smooth_stone')
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.mapColor(global.STONE_CHARACS.reconstituted.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
SHAPES = ['stairs', 'slab', 'wall']
SHAPES.forEach(shape => {
event.create(`tfg:rock/cracked_bricks_stone_${shape}`, shape)
.soundType(global.STONE_CHARACS.reconstituted.sound)
.textureAll('minecraft:block/cracked_stone_bricks')
.tagBoth(`tfg:brick_${shape}s`.replace(/ss/g, 's'))
.mapColor(global.STONE_CHARACS.reconstituted.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
event.create('tfg:rock/quartz_wall', 'wall')
.soundType('stone')
.textureAll('minecraft:block/quartz_block_side')
.tagBoth('tfg:rock_wall')
.mapColor('snow')
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/smooth_quartz_wall', 'wall')
.soundType('stone')
.textureAll('minecraft:block/quartz_block_bottom')
.tagBoth('tfg:rock_wall')
.mapColor('snow')
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
}

File diff suppressed because it is too large Load diff

View file

@ -2,42 +2,14 @@
function registerTFGRockItems(event) {
event.create('tfg:brick/deepslate')
.tag(`tfc:metamorphic_items`)
.translationKey('item.tfg.brick.deepslate')
for (let [rockId, rock] of Object.entries(global.BIG_ROCK_TABLE)) {
event.create('tfg:brick/dripstone')
.tag(`tfc:sedimentary_items`)
.translationKey('item.tfg.brick.dripstone')
if (rock.brick != null && rock.brick.startsWith('tfg:brick/')) {
let brickItem = event.create(rock.brick);
event.create('tfg:brick/moon_stone')
.tag(`tfc:igneous_intrusive_items`)
.translationKey('item.tfg.brick.moon_stone')
event.create('tfg:brick/moon_deepslate')
.tag(`tfc:igneous_intrusive_items`)
.translationKey('item.tfg.moon_deepslate')
event.create('tfg:brick/mars_stone')
.tag(`tfc:sedimentary_items`)
.translationKey('item.tfg.brick.mars_stone')
event.create('tfg:brick/venus_stone')
.tag(`tfc:igneous_extrusive_items`)
.translationKey('item.tfg.brick.venus_stone')
event.create('tfg:brick/mercury_stone')
.tag(`tfc:igneous_intrusive_items`)
.translationKey('item.tfg.brick.mercury_stone')
event.create('tfg:brick/glacio_stone')
.tag(`tfc:igneous_extrusive_items`)
.translationKey('item.tfg.brick.glacio_stone')
event.create('tfg:brick/permafrost')
.translationKey('item.tfg.brick.permafrost')
event.create('tfg:brick/red_granite')
.tag(`tfc:igneous_intrusive_items`)
.translationKey('item.tfg.red_granite')
if (rock.tfcTag != null) {
brickItem.tag(rock.tfcTag)
}
}
}
}

View file

@ -2,42 +2,31 @@
"use strict";
const registerTFGRockMaterials = (event) => {
const registerStoneMaterial = (rockType, color) =>
event.create(`tfg:${rockType}`)
.dust()
.color(color)
.iconSet(GTMaterialIconSet.ROUGH)
.flags(
GTMaterialFlags.MORTAR_GRINDABLE,
GTMaterialFlags.NO_SMASHING,
GTMaterialFlags.NO_SMELTING
)
/* TFC Stone Types Materials */
registerStoneMaterial('gabbro', 0x7F8081)
registerStoneMaterial('shale', 0x686567)
registerStoneMaterial('claystone', 0xAF9377)
registerStoneMaterial('limestone', 0xA09885)
registerStoneMaterial('conglomerate', 0xA3977F)
registerStoneMaterial('dolomite', 0x515155)
registerStoneMaterial('chert', 0x7A6756)
registerStoneMaterial('chalk', 0xA4A39F)
registerStoneMaterial('rhyolite', 0x726D69)
registerStoneMaterial('dacite', 0x979797)
registerStoneMaterial('slate', 0x989287)
registerStoneMaterial('phyllite', 0x706B61)
registerStoneMaterial('schist', 0x6E735C)
registerStoneMaterial('gneiss', 0x6A6D60)
// Specialized icon sets for TFC's own
modifyTFGIconSets(event)
registerStoneMaterial('dripstone', 0x927965)
const registerStoneMaterial = (rockType, color, components) =>
event.create(`tfg:${rockType}`)
.color(color)
.dust()
.iconSet(GTMaterialIconSet.ROUGH)
.components(components)
.flags(
GTMaterialFlags.MORTAR_GRINDABLE,
GTMaterialFlags.NO_SMASHING,
GTMaterialFlags.NO_SMELTING,
GTMaterialFlags.DISABLE_DECOMPOSITION);
registerStoneMaterial('moon_stone', 0x506869)
registerStoneMaterial('moon_deepslate', 0x45474D)
registerStoneMaterial('mars_stone', 0xD08957)
registerStoneMaterial('venus_stone', 0xD5A664)
registerStoneMaterial('mercury_stone', 0x723E49)
registerStoneMaterial('glacio_stone', 0x9897BF)
// event.create() returns a material builder, not the actual material
registerStoneMaterial('sedimentary_clastic', 0xAF9377, ['quartzite', 'potassium_feldspar']);
registerStoneMaterial('sedimentary_carbonate', 0xADA67A, ['quartzite', 'calcite']);
registerStoneMaterial('sedimentary_organic', 0xA8706B, ['flint', 'unknown']);
// Specialized icon sets for TFC's own
modifyTFGIconSets(event)
registerStoneMaterial('metamorphic', 0x876981, ['marble', 'deepslate']);
registerStoneMaterial('igneous_ultramafic', 0x45474D, ['blackstone']);
registerStoneMaterial('igneous_mafic', 0x525D6B, ['basalt']);
registerStoneMaterial('igneous_intermediate', 0x71818A, ['andesite']);
registerStoneMaterial('igneous_felsic', 0x97B2BF, ['granite_red']);
}

View file

@ -1,10 +1,8 @@
// priority: 0
"use strict";
const registerTFCTagPrefixes = (event) => {
const registerTFGRocksTagPrefixes = (event) => {
// These ores break worldgen if removed somehow?
// TagPrefix.ORES.remove(TagPrefix.ore)
TagPrefix.ORES.remove(TagPrefix.oreTuff)
TagPrefix.ORES.remove(TagPrefix.oreSand)
TagPrefix.ORES.remove(TagPrefix.oreRedSand)
@ -13,24 +11,21 @@ const registerTFCTagPrefixes = (event) => {
TagPrefix.ORES.remove(TagPrefix.oreEndstone)
TagPrefix.ORES.remove(TagPrefix.oreNetherrack)
TagPrefix.ORES.remove(TagPrefix.oreBlackstone)
TagPrefix.ORES.remove(TagPrefix.oreBasalt)
TagPrefix.ORES.remove(TagPrefix.oreAndesite)
TagPrefix.ORES.remove(TagPrefix.oreDiorite)
TagPrefix.ORES.remove(TagPrefix.oreGranite)
const shouldGenerateOre = (material) => {
return material.hasProperty(PropertyKey.ORE) && material !== GTMaterials.Plutonium239;
return material.hasProperty(PropertyKey.ORE);
}
global.TFC_STONE_TYPES.forEach(stoneTypeName => {
const material = GTCEuAPI.materialManager.getMaterial(stoneTypeName)
event.create(`${stoneTypeName}`, 'ore')
.stateSupplier(() => Block.getBlock('minecraft:stone').defaultBlockState())
.baseModelLocation(`tfc:block/rock/raw/${stoneTypeName}`)
.unificationEnabled(true)
.materialSupplier(() => material)
.materialIconType(GTMaterialIconType.ore)
.generationCondition(shouldGenerateOre)
@ -48,7 +43,6 @@ const registerTFCTagPrefixes = (event) => {
.unificationEnabled(true)
.materialIconType(GTMaterialIconType.ore)
.generationCondition(shouldGenerateOre)
.materialSupplier(() => GTMaterials.Blackstone)
TFGHelpers.registerCobbleBlock('pyroxenite', 'tfg:rock/cobble_blackstone');
@ -58,7 +52,6 @@ const registerTFCTagPrefixes = (event) => {
.unificationEnabled(true)
.materialIconType(GTMaterialIconType.ore)
.generationCondition(shouldGenerateOre)
.materialSupplier(() => GTCEuAPI.materialManager.getMaterial('dripstone'))
TFGHelpers.registerCobbleBlock('dripstone', 'tfg:rock/cobble_dripstone');

View file

@ -3,6 +3,8 @@
function registerTFGTagPrefixes(event) {
registerTFGRocksTagPrefixes(event)
excludeAllGemsButNormal(GTMaterials.get('tfg:apt'));
TagPrefix.block.setIgnored(GTMaterials.get('tfg:apt'));
excludeAllGemsButNormal(GTMaterials.get('tfg:tetrafluoroethane'));

View file

@ -242,14 +242,13 @@ function registerTFGWorldGenVenusDecoBlocks(event) {
.mapColor('gold')
.box(3, 0, 3, 13, 6, 13)
const flavolite = [ 'flavolite', 'flavolite_bricks', 'flavolite_polished', 'flavolite_tiles' ];
flavolite.forEach(f => {
event.create(`betterend:${f}`)
.soundType('deepslate')
.mapColor('sand')
.requiresTool(true)
.tagBlock('minecraft:mineable/pickaxe')
})
event.create(`betterend:flavolite`, 'tfc:raw_rock')
.soundType('deepslate')
.mapColor('sand')
.requiresTool(true)
.tagBlock('minecraft:mineable/pickaxe')
.naturallySupported(false)
event.create(`betterend:flavolite_pillar`)
.property(BlockProperties.AXIS)
@ -259,28 +258,36 @@ function registerTFGWorldGenVenusDecoBlocks(event) {
.requiresTool(true)
.tagBlock('minecraft:mineable/pickaxe')
const jadestone = [ 'sandy_jadestone', 'sandy_jadestone_bricks', 'sandy_jadestone_polished', 'sandy_jadestone_tiles' ];
jadestone.forEach(j => {
event.create(`betterend:${j}`)
.soundType('stone')
.mapColor('color_light_green')
const flavolite = [ 'flavolite_bricks', 'flavolite_polished', 'flavolite_tiles' ];
flavolite.forEach(f => {
event.create(`betterend:${f}`)
.soundType('deepslate')
.mapColor('sand')
.requiresTool(true)
.tagBlock('minecraft:mineable/pickaxe')
})
event.create(`betterend:sandy_jadestone`, 'tfc:raw_rock')
.soundType('stone')
.mapColor('grass')
.requiresTool(true)
.tagBlock('minecraft:mineable/pickaxe')
.naturallySupported(false)
event.create(`betterend:sandy_jadestone_pillar`)
.property(BlockProperties.AXIS)
.placementState((event) => event.set(BlockProperties.AXIS, event.clickedFace.axis))
.soundType('stone')
.mapColor('color_light_green')
.mapColor('grass')
.requiresTool(true)
.tagBlock('minecraft:mineable/pickaxe')
const sulphuric_rock = [ 'sulphuric_rock', 'sulphuric_rock_bricks', 'sulphuric_rock_polished', 'sulphuric_rock_tiles' ];
sulphuric_rock.forEach(s => {
event.create(`betterend:${s}`)
.soundType('dripstone_block')
.mapColor('terracotta_light_gray')
const jadestone = [ 'sandy_jadestone_bricks', 'sandy_jadestone_polished', 'sandy_jadestone_tiles' ];
jadestone.forEach(j => {
event.create(`betterend:${j}`)
.soundType('stone')
.mapColor('grass')
.requiresTool(true)
.tagBlock('minecraft:mineable/pickaxe')
})
@ -293,6 +300,15 @@ function registerTFGWorldGenVenusDecoBlocks(event) {
.requiresTool(true)
.tagBlock('minecraft:mineable/pickaxe')
const sulphuric_rock = [ 'sulphuric_rock', 'sulphuric_rock_bricks', 'sulphuric_rock_polished', 'sulphuric_rock_tiles' ];
sulphuric_rock.forEach(s => {
event.create(`betterend:${s}`)
.soundType('dripstone_block')
.mapColor('terracotta_light_gray')
.requiresTool(true)
.tagBlock('minecraft:mineable/pickaxe')
})
// Plants
event.create('betterend:hydralux_sapling', 'tfg:decorative_plant')