From 89030d3564eebd77b0a3c19155e399d1004001e6 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 19 Jan 2026 22:39:15 +0000 Subject: [PATCH 1/2] 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 --- .../quests/chapters/ev__extreme_voltage.snbt | 2 +- kubejs/assets/buildinggadgets2/lang/lang.json | 116 + .../textures/block/rock/cobble_flavolite.png | Bin 0 -> 546 bytes .../block/rock/cobble_moon_deepslate.png | Bin 936 -> 657 bytes .../block/rock/cobble_sandy_jadestone.png | Bin 0 -> 485 bytes .../textures/block/rock/cobble_scorchia.png | Bin 0 -> 499 bytes .../tfg/textures/block/rock/cobble_scoria.png | Bin 0 -> 507 bytes .../textures/block/rock/gravel_flavolite.png | Bin 0 -> 464 bytes .../block/rock/gravel_sandy_jadestone.png | Bin 0 -> 458 bytes .../textures/block/rock/gravel_scorchia.png | Bin 0 -> 630 bytes .../tfg/textures/block/rock/gravel_scoria.png | Bin 0 -> 631 bytes .../tfg/textures/item/brick/flavolite.png | Bin 0 -> 476 bytes .../tfg/textures/item/brick/glacio_stone.png | Bin 540 -> 350 bytes .../tfg/textures/item/brick/mars_stone.png | Bin 553 -> 358 bytes .../tfg/textures/item/brick/mercury_stone.png | Bin 573 -> 365 bytes .../tfg/textures/item/brick/moon_stone.png | Bin 568 -> 360 bytes .../textures/item/brick/sandy_jadestone.png | Bin 0 -> 506 bytes .../tfg/textures/item/brick/scorchia.png | Bin 0 -> 359 bytes .../assets/tfg/textures/item/brick/scoria.png | Bin 0 -> 364 bytes .../tfg/textures/item/brick/venus_stone.png | Bin 555 -> 360 bytes .../tfg/textures/item/loose/flavolite.png | Bin 0 -> 304 bytes .../textures/item/loose/sandy_jadestone.png | Bin 0 -> 388 bytes .../tfg/textures/item/loose/scorchia.png | Bin 0 -> 372 bytes .../assets/tfg/textures/item/loose/scoria.png | Bin 0 -> 374 bytes kubejs/data/ad_astra/dimension/mars.json | 4 +- .../minecraft/trim_material/glass_tfc.json | 9 - kubejs/data/tfc/trim_material/glass_tfc.json | 9 - kubejs/server_scripts/chalk/recipes.js | 12 +- kubejs/server_scripts/chalk/tags.js | 4 - kubejs/server_scripts/createdeco/recipes.js | 64 +- .../domum_ornamentum/recipes.js | 122 +- .../server_scripts/framed_blocks/recipes.js | 28 +- kubejs/server_scripts/gregtech/recipes.js | 7 +- .../gregtech/recipes.removes.js | 2 +- kubejs/server_scripts/minecraft/recipes.js | 56 +- kubejs/server_scripts/minecraft/tags.js | 3 +- kubejs/server_scripts/tfc/tags.js | 17 +- .../server_scripts/tfg/events.interactions.js | 396 +--- .../tfg/json_tool.armor_trim.js | 1 - kubejs/server_scripts/tfg/mars/tags.mars.js | 16 - .../tfg/moon/recipes.regolith.js | 2 +- .../tfg/natural_blocks/recipes.collapse.js | 127 +- .../tfg/natural_blocks/recipes.concrete.js | 19 +- .../tfg/natural_blocks/recipes.rocks.js | 1679 ++++---------- .../tfg/natural_blocks/recipes.sand.js | 137 +- .../tfg/natural_blocks/recipes.stone_dusts.js | 297 +-- .../tfg/natural_blocks/recipes.tfc_stone.js | 468 +--- .../tfg/natural_blocks/tags.stones.js | 736 +++--- .../tfg/ores_and_materials/loot.ores.js | 144 +- .../tfg/powergen/nuclear/recipes.nuclear.js | 2 +- .../tfg/primitive/recipes.supports.js | 92 +- kubejs/server_scripts/tfg/tags.interaction.js | 63 - kubejs/server_scripts/tfg/tags.js | 2 +- .../server_scripts/tfg/venus/recipes.venus.js | 17 - kubejs/server_scripts/tfg/venus/tags.venus.js | 17 - .../tfg/worldgen/tags.general_worldgen.js | 155 +- kubejs/startup_scripts/create/materials.js | 16 + .../startup_scripts/createdeco/constants.js | 2 +- kubejs/startup_scripts/gtceu/constants.js | 69 +- .../gtceu/material_modification.js | 5 +- kubejs/startup_scripts/main_startup_script.js | 1 - kubejs/startup_scripts/tfg/blocks.js | 4 +- kubejs/startup_scripts/tfg/constants.js | 157 +- .../tfg/primitive/blocks.supports.js | 309 +-- .../tfg/stone_types/blocks.aqueducts.js | 86 - .../tfg/stone_types/blocks.rocks.js | 1987 ++--------------- .../tfg/stone_types/blocks.vanilla_stone.js | 56 - .../tfg/stone_types/constants.rocks.js | 1145 ++++++++++ .../tfg/stone_types/items.rocks.js | 44 +- .../tfg/stone_types/materials.rocks.js | 57 +- .../stone_types/tag_prefixes.rocks.js} | 11 +- kubejs/startup_scripts/tfg/tag_prefixes.js | 2 + .../tfg/venus/blocks.venus_deco.js | 54 +- 73 files changed, 2894 insertions(+), 5936 deletions(-) create mode 100644 kubejs/assets/buildinggadgets2/lang/lang.json create mode 100644 kubejs/assets/tfg/textures/block/rock/cobble_flavolite.png create mode 100644 kubejs/assets/tfg/textures/block/rock/cobble_sandy_jadestone.png create mode 100644 kubejs/assets/tfg/textures/block/rock/cobble_scorchia.png create mode 100644 kubejs/assets/tfg/textures/block/rock/cobble_scoria.png create mode 100644 kubejs/assets/tfg/textures/block/rock/gravel_flavolite.png create mode 100644 kubejs/assets/tfg/textures/block/rock/gravel_sandy_jadestone.png create mode 100644 kubejs/assets/tfg/textures/block/rock/gravel_scorchia.png create mode 100644 kubejs/assets/tfg/textures/block/rock/gravel_scoria.png create mode 100644 kubejs/assets/tfg/textures/item/brick/flavolite.png create mode 100644 kubejs/assets/tfg/textures/item/brick/sandy_jadestone.png create mode 100644 kubejs/assets/tfg/textures/item/brick/scorchia.png create mode 100644 kubejs/assets/tfg/textures/item/brick/scoria.png create mode 100644 kubejs/assets/tfg/textures/item/loose/flavolite.png create mode 100644 kubejs/assets/tfg/textures/item/loose/sandy_jadestone.png create mode 100644 kubejs/assets/tfg/textures/item/loose/scorchia.png create mode 100644 kubejs/assets/tfg/textures/item/loose/scoria.png delete mode 100644 kubejs/data/minecraft/trim_material/glass_tfc.json delete mode 100644 kubejs/data/tfc/trim_material/glass_tfc.json delete mode 100644 kubejs/server_scripts/tfg/tags.interaction.js delete mode 100644 kubejs/startup_scripts/tfg/stone_types/blocks.aqueducts.js delete mode 100644 kubejs/startup_scripts/tfg/stone_types/blocks.vanilla_stone.js create mode 100644 kubejs/startup_scripts/tfg/stone_types/constants.rocks.js rename kubejs/startup_scripts/{tfc/tag_prefixes.js => tfg/stone_types/tag_prefixes.rocks.js} (90%) diff --git a/config/ftbquests/quests/chapters/ev__extreme_voltage.snbt b/config/ftbquests/quests/chapters/ev__extreme_voltage.snbt index 587b6037c..40fd2428b 100644 --- a/config/ftbquests/quests/chapters/ev__extreme_voltage.snbt +++ b/config/ftbquests/quests/chapters/ev__extreme_voltage.snbt @@ -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" diff --git a/kubejs/assets/buildinggadgets2/lang/lang.json b/kubejs/assets/buildinggadgets2/lang/lang.json new file mode 100644 index 000000000..dc82296e0 --- /dev/null +++ b/kubejs/assets/buildinggadgets2/lang/lang.json @@ -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": "Отмена" +} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/block/rock/cobble_flavolite.png b/kubejs/assets/tfg/textures/block/rock/cobble_flavolite.png new file mode 100644 index 0000000000000000000000000000000000000000..b647a107422f9fb03e21855c268b676e7dfce888 GIT binary patch literal 546 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4kiW$h6xih%orFLI14-?iy0XB4ude`@%$Aj z3=E7{JY5_^G$#56ZS1;ZAW*w)jjjIiB*l)&Pqk(r?LM0q6T8>7?!mvec8a-nilMhc z_9gN1ZB#7yI9Jh$PePh|qKL4Ilw$9_GkdO)213NV`~4b zs_(U{Ja_Sx0*m-V1>6ce+dXF$?)z9*`+v>6*W2HJYvZ*3%HXzks#H(p=Es~3lf83m z^Ga1*YS((OHF$7nCZ98pz1EAgUDBhhI7RBs74|Q+ z7V$f-rp$4^y>h$5q_ic+XOv#CD#*wZ<#hB_VsN-_7Ici^#OhyBm4`382RWx-H#5;W zXU?+p*89`d3~ikaZ0<*^vDFIEwN>QUoL9T*(x?BeC%wJ!h0v}ZSUw|VqzT_91$Ix?Cl$D=iqMd;O^w?6&xCEYv*ci zVQ*w);pG$L;}>G@=x$~0WMOGuhde7aN}%5*A}&mO=s@9N;_;o|OV z3sT_f=Hch)g5*@<{uPcZQ~RXm0<7WVPa|%5ES9)>=_mj=j#{Z z;~yFoo9yc5Yiwd=W$pOhk^LwG0|RG)M`SSr1K(i~W;~w1B87p0L9)a(q9iy!t)x7$ zD3u`~F*C13&(AeP!Bo#s&(N@oL+l&_1H)%e7sn8dV9~R$qnaEov)}-y z2$Ra;D;is8Ih;A?TK4T<{?eE4f6aRy%aD?M`NplhnbuPZy9)(&WLsDNUUz-kvBvWZ z0?apGwp~n|vxHNesp@9n{M$XU>Y68+MGP!nHrw{3`glC*-6U5~&*N7Y6_I{%=Sx49 zf*I$m?s8vWbo8kxE2Gmyh5dTo(yJ8NyKc>p-g@>}-{ydzI|>DQnj4<3b$-wB%$tuv zYwvXa{=OP1n_yq3XvIm>Bct}2^`rn vk(OHN(r5owmaUuqC#)@EeWk^zKlU5EFgZf>FlgfP?VpR znUl)EpfRy_qOHea2brVs!AF%uS*<%XQdant1q$Bv675b{xJ5Lo)L`cq?pY=(ntFXr z*#{5yA6?bly?Gtqx+aAmjF0pzGYb1^4F9-CmH5@$fWK{6wDVm zpA%*Ey!MfRwkOv|%a1LN;wp7dcD?x|{e013rt>_KGq2bbc0}luZMbuAP0ETRmyaa6 zUe$;{v1?7iy+>=pveuOP|2vcr7wuU*_Zi2d2qz}bjtPOzlA;kE7gkM7QgZ!m$p3%C zWB*CsYT=SSGTbYiTA%zl`2Ruq_O!&TOTJvk8s3TD{wKj)Ro0kxciaB{+})K-Kjt@T zuYJ4Ttl_5rrPsN-H7sB9nZ>W?`rc#KD{ok+9&4oH{^_y^7wdz+J^M7-dG0ao&CbhT zTRX>&LGo4BPc{n+mSf#h_P+c0&LKVj|Gdnv-`Ki;O^-g5Z=fq&cMLf;OXKRqH#WU(%q~(1_G`7!;*8lkFH_X zY~wAAUwUEnzW>Z6-eNAykpkUQjtZSTnx~s zU%49gt#7ncud=aJPwFWPFFSnT@Iwc$?ee+TgR)FBE!BVB+pKmme-qoZD8?N}JnmOd zUUA^Bg^};&bUsCvwnT#kzlwSl&KdrnbGC`end8b*g#&6LsXL|J_k5pL65GXl(ftZ@ zLeN(p#fVK(*KT#K(0N;NzgH|`<8FV$_p76CzTYLl-`=e2=(Rl|?p(U`iUZrS3wt+6x2=6Hz+|cZ nPqzO}TjMT~ct$IH_yT8MJy4(a; z4wK%^o6l7hzk0Y(w0gsq*XH@p%#Gvg{`}#4@b~T4PtR6WR{0sqpUKOo|eVg2>rH!g+)d0W{O9x=F> zu2=HQS>PbK__ELZnCtAj#ihGe@#G$VqjXN+d2`JPv9I?Gd%V6%o|BN> zKRfO8wh0ztEBw}F8x?Q}T5XAaA3N*ijRXBWDIMQ0l%1?_k?4DBTopLAYtfHcX;s^! zmd{+aYsIM!KYiEVFOF=e=zDeYbnM}{^Uu03lxd~)M@%;lk6B{BU#?Tm|NY!Y9Let) zc|JW{c5{}Er?KpbR6^Ti~ECv%2R@eR)zmeDI`SX!F}%-n@lq^b`~JmjYld4#=6q*on6|G> zV-`FQ_iRb6 z*nZ(w%h{(DN3ZMoFni=WEfHaOx{k-UTWfLtJDsON7M!h%PNn%S*LYel)0WRwHa9pV zQbVGharSzrjXXCu%zgRg)3W7|Yd`(y_Vw}ia;F7FFdxX2V6@mFxK^~NOvTV|?rdD6Z^CV^eoUNzsHx{E7l$~CP^6Gf`bH?9gQo2@1`S#9s^MJqQ;FyA%& z^>N0b|DP3g`0`XTXB$Z^-MVNUPi}D1W|L#l5r+$AF3Ov{vLc)@=lai_TP$BRJR6J} zf4}oc~p1R7VlJvSyw_CWbd3foo)X4;YEJQE%$syt|e@qa?ke<^D2Fwg^!pQ-D6;2 OVDNPHb6Mw<&;$UmTH_-C literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/rock/gravel_flavolite.png b/kubejs/assets/tfg/textures/block/rock/gravel_flavolite.png new file mode 100644 index 0000000000000000000000000000000000000000..6be6fc499e64196146dc66b819d9bd5e40c1e879 GIT binary patch literal 464 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4kiW$h6xih%orFLI14-?iy0XB4ude`@%$Aj z3=E7-o-U3d8WVkke6tTZ2+UpADEsQ*gr?Oh)4wfX+4IHxd-@OgC=I88B}x)!*myU$ zpL(MJxW%`q*+U@lnZ(tdTC;Z_y`$UU?lR4?a+zF9xlQtAqPo|mZ0F36lSp=s^+yBEwl1swk*hX{u% z)*8i%rSe{Mc@pz9hIPTtXa$WTRhg#O=j%_r zowb)!DOvULZ^mdKI;Vst0O%vn9smFU literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/rock/gravel_sandy_jadestone.png b/kubejs/assets/tfg/textures/block/rock/gravel_sandy_jadestone.png new file mode 100644 index 0000000000000000000000000000000000000000..5d4fdd15eb7cf86dab35e825cd12b064063207c1 GIT binary patch literal 458 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4kiW$h6xih%orFLI14-?iy0XB4ude`@%$Aj z3=E7lo-U3d8WUrKE@mAv5ZU|MYxTipQQTXVpDnCjVG#d!=HDxIN%fC!e>iBQro*x{ zKs#*ZHl;TYa~A46d8qdM&g99HZT9Tl|H?9u#B*2(l9U9mPRqkOO6#mg}_ zRycfp%&|=NT!3=SD;{pi@4uQiN+gygo_Ot}cxT(Hw*hR=VhbLp82)~~q?%Xy+yS=I z-Ip?q&-X{Ado8)76~fu(@w9B|?rB`1R&zvG-O;(;sx@(j=qZN(?0UZU+~n%dwS2Uw z|9DuXtoqycbP0l+XkKAsf}A literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/rock/gravel_scorchia.png b/kubejs/assets/tfg/textures/block/rock/gravel_scorchia.png new file mode 100644 index 0000000000000000000000000000000000000000..62c082a39316ccd1645bb5c88ffede98646ba7e9 GIT binary patch literal 630 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_mY#PZ!4!i{8}9zW%ozL|pkFBpi!(nS7#8q?Kir*9MKqt9UgJ z(y+CQxvp-Mx-MCr7BIJ`{k)W1 zzBw|xRoX)5l@x5E>c97Uha`nH>1o{32^m6j~saP?PdG{>fwXCg9F{PWZ^LKPSD zMTKUBZrr^h`_2K!)m@j(^*=667cn_|U{|EJ^4^U}nQJ#(y_G)i+|Hf5j+HW}TroWA zImc+9g}VRqXmR~lv+f=|x$z^v!fwHB0z7`d+kEmxCM_@STJz-Dt6LgdS`U0$+OBWg zwZ`N{*BTZ7=PHF=x-70?vmT_F8_g7n+{w4`gjdbWg`ufCvO^{3-z-Tp_~xeg_QM2! zdAnrpgY&8{?7Oo)TIHj@T)6fz@#hh`-A31^>{PPh+IgM7q+0Rx(Md+v@6_&gc9Wgf zt$IzZIKJvw_GItm)id{;EvT>ifAHMukFTHm`kzg-ws~^;`1)w)rJ-N%Yee(*DQWvQ zhFuL?(0tjh(#rhs)in=qPKY%xm=M^WW2OAt)>Pl*VOD6apy#723w$4ytUWOO-mKL^ zI~tRXeta*^71G=^>7GW)dCL#_@4qtZA5&g4%~k0CqnDg(!njvoJ;W>X&!_m?Td}B6 mn{{D7+H+6E6t0*5!JWA~{H2!dzoiTe3=E#GelF{r5}E+xY9IIj literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/rock/gravel_scoria.png b/kubejs/assets/tfg/textures/block/rock/gravel_scoria.png new file mode 100644 index 0000000000000000000000000000000000000000..f358f4ac588c7397190a4a7dd70947e685d22809 GIT binary patch literal 631 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_mZgPZ!4!i{8-5j{dg|B--So#Ff<3c(ZSDWHO5KUf`Q!QGBEHf71Sz``e21J%UYr zr>=1Dn!T#=*2XhZ2l*7mzMh=;$MXJfoB7|@ZTh@@^JTk@T{F%VG3XuF{9NNYjc>-e zq9q~`(aK916ujBbd=|ZS?akjmAOGggThCC&x6&XXP$E8O)vQFJ1&12Sj%qFXyzxee zsTR+MZEOisTvA>#XtwJ2g&tXC@K5Mso||XO6g~z`*6u?;G;(iWj_g|}vslF`oG;eW z>Y7>o)v1qv-JTKQy03YgM1s|6!_c?U`HMM%uX?=Puq|!pJ%gRq3S6vW=c_r`U-R$=lPGJ&U-4WqB<@6`n2oed_F2%SE@J-i(+xPd5IN@|$jDS+_s8uh~eSzW=)^@KR0rnzegp zoi2Q}d0Wh_h+SC@t2ZQytnNsCDDd{lR+(FWkDfG~eBXG@+L`A*m23C@E}ODAz=UVb zTFtGF;b#?Io_fo$*TOPw=e-{fv#vk2Si1O7L*S*J=bH-V6>x`#=N&&`6JNRYbIsKf zfz>bWW;^doO;~%gGDg04%B=}YnRmH=y1cfwFsAmbz+JuX{n_^_mR^5-;dN<1qC;Sw r#f|(cdE3{2`Tg6**7{BNWBX5r(dOT@!++uMMg2m{88hbFp(?^^u+j`3pd|Gjqm>T}aCcmCa~|BsE4 zL-9h?<4U3>#wfEGs{{m9TAoc_b=(x98%E z9Gaq`p=BFF>^_z`@4uhE|NiC(9ShstLP=(GZ!A|ougTp!rE8N;UC7hGsjSB&YVNZi zC{_I;bLjm1i1pVku0>6CukwQ9$u?0#*}ZRJM_c^ZPc7HLcfVtOFM$IkG{M*ZeJK^Cb7l|GNl zU+gB@Hcbs$6Sn#q!-93$Tdt{iHogDdlGq`@q^TMjDtj<;n&JHOj5~Jh5k2?v=F}e_ z-c4oQ74bHGr|g_%nzPR?+r4|op4uJk=GUK>8AvSHs@9jhNk_SB(S0ZT*DETEYx5fU f{s@1`e<`gHbnK2yoAPA_1_lOCS3j3^P6i(`mI@6}1RS%(co8tkVxy=i-N<>ZW`&d2X9*#6?eW)T}Uo39#{ zUi|@kRz!A9m3XYtlvHluzj5xrHE)?09(TU~ecprz_g&`Y?y|XEa=Ge*w93y=k%f~w z?#_Og`S-z2*hfodsQBRN5KDoZh0QyEwoHx6B_pk0$ z%c_iB-7E@zP7HDJChXZeSuVJq)QYX};N#lkCH}8#mqy{SMN=N#y|VX!WcM=_!A70f zDHpadSUeB#dN_yq1#56;$)e1^j*Thy5!FH(OB2c%eQ)>gUF&|g?PuQpb;%<&bk?n)g?odEyBbd&k2PqEGF4-2ZU>ivGx%v2gd(6>+{v3=9km Mp00i_>zopr0QGl{S^xk5 delta 493 zcmcb|G>2t^W&Jr%7sn8b-m8;*vxNgC+|IY0eByWcj6|08#Tm;?53ZQqq+Q>%|KQpk z8aoQtN;|G7S^Qv|(^~05MZHxbT^+3bk(Jw)f@EJ0kO$7Gwrao40;LT(qn2e2>YeQyoGt zu$N}d-_K~UXZ{xHHy3j~mwc(O{P{?CT5965Nj<5@Gu)+JUR|}i9ltFzM0!u;zXKm8 zG|F{8@aoi7T{@L3UOM+x?)=Wq;1^EMgHvT0j+X`ezJ9q!;?U=cPZ^vHr#Ds2<(TZ4 z%y4^~Wst;DXNPA2)0SOUnsp&y`x7y+ zWw#$~t+d(6eW1Dhau-v<%SR;vC+52G9MPD5UE;jlQ6JUnqn5gH)4M9>u{^lKnZ_~rZWv+CENSV_Ut>pKeIayE$BS7K=Rt!`wDZ<>!fO(Eencdk1(Ek zB+IZZJ@7Q!?c4VAFOoN|1l4fkiXpe(eQ6^>>pkh0b^F9r7v#Vd1d~xa#yc^=e{GJ!%N&hqoFJ& z>3eF#{M*b8f-EIE+{zpkW~P!8JLIP_JYw!@%w5b8oN&W%Ur3k7ZO7YUizE}iq+eXP z%*535-yvqjW#{EC_f2(td)__RMPpLg!lo?SgRzuZ0{%eDT; zgx>1UYo^w?W5F7pwa3`cEZN;yVdZHw^Ju+o^R050 z|H-Xodslxedno7^#b{u%Y4+BqQl{sfcj_5tCNN3#s>x<1pK|Q_zK+qw>wfLo&mA+F ztT*=E37EFv@(~Y@Gt-}{2Bitj3~Jf8Of+lC>!8mzckZYyS)6et+alBT(A|@7i>K&X+lMUhC$Z zdfj~3QY_p~IKTDG-pE&4sw&I%&;R@Ouu5urpZulxXhw$gyfc44djFUG&Gt!isl=bi TDKi-u7#KWV{an^LB{Ts5OMLIe diff --git a/kubejs/assets/tfg/textures/item/brick/mercury_stone.png b/kubejs/assets/tfg/textures/item/brick/mercury_stone.png index 51f69a0803fb3445b2b9a0d860b40f68faf2c1e7..ecd2c905c3968481743dbdb469db655c1101cddc 100644 GIT binary patch delta 317 zcmdnX@|J0WWxc$oi(`mI@6|~g^9~sZIK*EG>zysOxTIkz_oQfKh{_YRk%s+wm9^bd9 zsY%9puUxq7vFF!MG8;lq zIo-YM!SE}HX+uYnS=Mn=2MP6_HfHXb&1`bK?B6;Q=S+~(E{YA9w<>CaoOXss&w(`t zejS@^8Rlu9C=GmH8OFU!=(6UiZx!n{+@1Zw?JYx=<2vqna_>4e+3pL_xt__L@$6T? zr00?ho3Gy4xc|YuxQ9EN7O0y=th+3>hF|sR%j&kY)jxmANObNz=^tPmmdKI;Vst0Ak;&mD8aJIw*_V~<|mvPzkxp+p6xy9t+WZ2I>sLQI`AYlcY`0ta zyXxL;^0pMYDk&q$ctF2C-S^I}v(48pPm=ziyz-{#lOHb=!)@%1op-piA9((`z(9)m z!M`6C{P*`yS#ssV3XWBZZpV+sbZy+jshy#l-d|Gr#drDX)Cv17Sled{|UhiNRzZbvcpAElzZ@;nOyz*ZR3=9k$p00i_>zopr08x<#lK=n! diff --git a/kubejs/assets/tfg/textures/item/brick/moon_stone.png b/kubejs/assets/tfg/textures/item/brick/moon_stone.png index 72baa3320e28cb01318ab7d7c576ce6651d5e144..14f1a3369466c0381ca44367232281d2df8e4928 100644 GIT binary patch delta 312 zcmdnN@`7oCWxbTAi(`mI@6|~g^O_9=9OQEsYAno}+t|BQ{=!2011AnWFMBDp(s@~p zW7?#JT_Tei#14ABm~ew>kx6!Sx4-)S^7Nk%?z_xck~?R~+YRsTH2K)c*+1%Ydy;+f z`t$audMwT-xSelpI>O0xYZJ>0&pFu>1ei3Jwzdl7Y&z4`bEI=}{g&F=dS|c9g%2}T z7@Rm5_K9<^$~w<{K<)Glmx--sT$%kBovZj z@P6l&-eccmxGXr^gf6ctzq!A^lim0HQL7?I!chK;V5pY$$r`i0cbJt8C;wq9T^w%mJK;d~h5KFd-7|NX Vzkc4<#=yY9;OXk;vd$@?2>=R9mjVC) delta 522 zcmaFCw1Z`WW&JBp7sn8b-m8AtTK6x!e6A!aYk{t;+}0aWCK)Cyix;^0-VqRA zcVtJyl1;5!|4E4d67J#L#`f4abBo}|jeEfQ$S$F)>1C#}$u9=-|+&e`p)oYepl7{E%ylwdbzoXa`ZrnY)cD6Z# zgv1?o2c28|2UdNPoPMM6iD0Me?~A<5({(NeuB~%7=MmX2AMY>Gux_0~cB{>``fF-? zC(603cS_PY`SPP-7*}N&S7p~~)*^m6u1BBM`&k30<(6yo>?*E2sca>!Go9B<{+{v) zqx|V{n`WG~vS)Z;qJD19*2%wxL-vIh?!KFGOPnS0Sk(O=XTP{J95`_@xa@GwgCfp7 iC!dy?{*C^{7E zT;ALAuc16vUO;C1de@I17AVKPwKZn&I$3GH^4-G+MGo%|C70cQ{O#*u`x`g!o2>pS zI>$})JTJ#z#=qQy?c`{)ev{xUBMzN{_n@&|Ga;h?kzi}sAjvwih+TF N!PC{xWt~$(69A`~bA3Mj{e1r1f&H9{Q^kT_zAybRmGUX>%YoYWd=ASuuS|b+&-6v4TFz(L zyE_h>-Dmt@ciuqhpX!SFE^DSsbAO+F;+eq)zZ%7LFOj{H4-Mi6urOehmZ1p$WTIaU7cP zC%N#RQ{D>NpMQUBDwn8;)~tqUHG;h= zu~Q_~MPF~Lon2{TQU2~s?T7qR#i1{EuKHsseqG`2cDXE*ckdZO_wDtUu`OTc*c{g$ zD{?vO%1u{8hSU85x=MPEcguw9rKNV<&YLway+`=r&Q&$Ffj@3vaQMbKWA@g7?RQnY zjBLWEG9~PaFqHbHJ>hMF$(z~ge&X7TRFr-DpHwzJ-nr_E{1VqK4ZOKc`Qkxbm%emN zVX{Brr|IIEHs{8KDa#k+RD7?rI67mQ`#ibVIZZRdlv9l2!x?tpm*;wR%<7d#*`$XHoi@*V)I%S?oL`L(jMD-an{+Yt6Y4$yP6gs;d-Mn zWzm_d<#9<{+&nlhaQzb69XwMz{6_osRW@8b*LdDLo!V2oL?^ba;c{v0)jjolm<(p? z+kEF{u5Xwy>0*h`G(GErSi`G1*R;zg-K;6R#~zmC|4Fz+YVMM^?A&op|H5h*=elnF V(_mHfpMima!PC{xWt~$(69Br3jGzDj delta 508 zcmaFCw3=mtW&K@G7sn8b-m8;NXA38a9IZE=InzhY_wpp8`MFJ*JY|9tgkA~%WsV7* zpx5fOJ+iA>euqZMLhhGdF*BzAh|uDirsTAQV`@-r#^(khV?#CGEF;fkJMn81w>^q_ z|IY55<@93xKjs^^7${E{OM7x}*EjPEmsdYmX~=sSahRRsc;CeOvpJ`@w-=pSFPW;Z zvEAbJN}j%>oUWI5|Jv&}eQSF8jD3GxK5`UwZ@$D4$?)R}Bim#5i+|YK7GBP;Td+QA z$6UR=+qzXJF|5(Q|Mbn#_O3~1=S zIA5H2U#;s2OYC#ec7Ol(ITx4|;%j#SDj@q=PbZ>M#Kou1A)(~Q@_ z*fcCZp80?n6NA0h)|yK8EvyYIfBpPX*PP$GKEu=`D6uusx=oVf(p$3)tqTG)N{v!l zIa+dGJ!QJ+(&M3Yw%Pr=jsLp)@!=v3KX+=*lPvnMN)D>>< zHlJQT_n!B&=gXda3~5^RSl~ diff --git a/kubejs/assets/tfg/textures/item/loose/flavolite.png b/kubejs/assets/tfg/textures/item/loose/flavolite.png new file mode 100644 index 0000000000000000000000000000000000000000..570c904ee6ed262a081c5227ec78609e21793356 GIT binary patch literal 304 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_p*lo-U3d7QJ^TE%akG6mUH+6!LV*s+a0}^&J%Fxh)QSv0PBYq^aK_|C_K`=-Cq+ z->=Nvb(huqP^ho^^KbXIeYifWPO7GUU(E5nQQFHtryhR8BjcmVsGzh$OX<)i9qY-N zE!6@FEe$gn7p$5RWTy6ASx2cwAmX~H;K4Hip$uM{Yr9^r^Pf=c7HYUzY;U`5?D}a7 zu650vSe)nFFYk2Y&cTI^@;sia6$8&hI#XtFFaxUvxKcp&sLl%eS|GxUO0!&EwvjwLFk>&c{3Pd*2x7HuA36%BB#; zl`iXb^vv@0JGMT5_bal5i^sir6(^I2Ca0nTL%Qwir|j1v^77}g9C&Caqun}X($gfz zH6n^EbG9}poG(&R>M{JfoZXlGugTF!Z;pq@cilZy={8Aa?b>Yi)JP$x1@o7EEl7^{ zicEiS`g|UvR^#S%bynG(QhB_Ymu4+qG?C{En0u9gS?yShBvNu*Z)fs^Rocmq|5Q zH(p$O(_z^?HD&sHPAB;Wqty%rOBLeOudGu1|MS{}-M4vtjvtuHbbIr<;KHQ`rZyR^ z=5Ug~Y$$Qx|HI$Z+tv%ict2Vxa@6jvn;H7%lP!aM{(A-=b^e%h%m49-7GkEIPHqM{-ghu a_)4js1#-<9pBNYz7(8A5T-G@yGywp9W19p3 literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/loose/scoria.png b/kubejs/assets/tfg/textures/item/loose/scoria.png new file mode 100644 index 0000000000000000000000000000000000000000..cddb2dcd26237802e4290351f8355cd7b6848b65 GIT binary patch literal 374 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_nkAPZ!4!i{85v&t@G;5OD2Zlxbi;L%~tUCBxBMJnz=`dS>yrUfg;-Ax=`CTK@b8h63otU;~zg=R6*0qp@8t1NjWfcq$Qf9n; zI8Wgb*Li-;F5|vjGxlzwOM9kFzCHiNpR&j6*6lKzbhd5TqgwS#pZ{`KGn#u?Ul;qg c_y=pqot|rJG{gQdFfcH9y85}Sb4q9e0QFj)m;e9( literal 0 HcmV?d00001 diff --git a/kubejs/data/ad_astra/dimension/mars.json b/kubejs/data/ad_astra/dimension/mars.json index 56143d3e6..4d9fc2375 100644 --- a/kubejs/data/ad_astra/dimension/mars.json +++ b/kubejs/data/ad_astra/dimension/mars.json @@ -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" }, diff --git a/kubejs/data/minecraft/trim_material/glass_tfc.json b/kubejs/data/minecraft/trim_material/glass_tfc.json deleted file mode 100644 index 386f866a6..000000000 --- a/kubejs/data/minecraft/trim_material/glass_tfc.json +++ /dev/null @@ -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 -} \ No newline at end of file diff --git a/kubejs/data/tfc/trim_material/glass_tfc.json b/kubejs/data/tfc/trim_material/glass_tfc.json deleted file mode 100644 index 386f866a6..000000000 --- a/kubejs/data/tfc/trim_material/glass_tfc.json +++ /dev/null @@ -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 -} \ No newline at end of file diff --git a/kubejs/server_scripts/chalk/recipes.js b/kubejs/server_scripts/chalk/recipes.js index 8ebe2909d..51ff9664c 100644 --- a/kubejs/server_scripts/chalk/recipes.js +++ b/kubejs/server_scripts/chalk/recipes.js @@ -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`); diff --git a/kubejs/server_scripts/chalk/tags.js b/kubejs/server_scripts/chalk/tags.js index b8c6642ff..681145b65 100644 --- a/kubejs/server_scripts/chalk/tags.js +++ b/kubejs/server_scripts/chalk/tags.js @@ -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`) } \ No newline at end of file diff --git a/kubejs/server_scripts/createdeco/recipes.js b/kubejs/server_scripts/createdeco/recipes.js index 862e7a9b8..ff015f84f 100644 --- a/kubejs/server_scripts/createdeco/recipes.js +++ b/kubejs/server_scripts/createdeco/recipes.js @@ -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 diff --git a/kubejs/server_scripts/domum_ornamentum/recipes.js b/kubejs/server_scripts/domum_ornamentum/recipes.js index efcd5245c..1cdacb52d 100644 --- a/kubejs/server_scripts/domum_ornamentum/recipes.js +++ b/kubejs/server_scripts/domum_ornamentum/recipes.js @@ -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 }; \ No newline at end of file diff --git a/kubejs/server_scripts/framed_blocks/recipes.js b/kubejs/server_scripts/framed_blocks/recipes.js index 260d3f25b..571a8438b 100644 --- a/kubejs/server_scripts/framed_blocks/recipes.js +++ b/kubejs/server_scripts/framed_blocks/recipes.js @@ -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 diff --git a/kubejs/server_scripts/gregtech/recipes.js b/kubejs/server_scripts/gregtech/recipes.js index dc213996a..cc007dfc9 100644 --- a/kubejs/server_scripts/gregtech/recipes.js +++ b/kubejs/server_scripts/gregtech/recipes.js @@ -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) diff --git a/kubejs/server_scripts/gregtech/recipes.removes.js b/kubejs/server_scripts/gregtech/recipes.removes.js index f4353e569..a566cfdec 100644 --- a/kubejs/server_scripts/gregtech/recipes.removes.js +++ b/kubejs/server_scripts/gregtech/recipes.removes.js @@ -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') diff --git a/kubejs/server_scripts/minecraft/recipes.js b/kubejs/server_scripts/minecraft/recipes.js index 3aa3c0ce3..738582ec0 100644 --- a/kubejs/server_scripts/minecraft/recipes.js +++ b/kubejs/server_scripts/minecraft/recipes.js @@ -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) } diff --git a/kubejs/server_scripts/minecraft/tags.js b/kubejs/server_scripts/minecraft/tags.js index 6f1e0529f..2c029750c 100644 --- a/kubejs/server_scripts/minecraft/tags.js +++ b/kubejs/server_scripts/minecraft/tags.js @@ -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) => { diff --git a/kubejs/server_scripts/tfc/tags.js b/kubejs/server_scripts/tfc/tags.js index 8356510e9..595c83b78 100644 --- a/kubejs/server_scripts/tfc/tags.js +++ b/kubejs/server_scripts/tfc/tags.js @@ -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"); diff --git a/kubejs/server_scripts/tfg/events.interactions.js b/kubejs/server_scripts/tfg/events.interactions.js index 963d0160d..6a46842ac 100644 --- a/kubejs/server_scripts/tfg/events.interactions.js +++ b/kubejs/server_scripts/tfg/events.interactions.js @@ -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); diff --git a/kubejs/server_scripts/tfg/json_tool.armor_trim.js b/kubejs/server_scripts/tfg/json_tool.armor_trim.js index d7bbc80b6..688d5c890 100644 --- a/kubejs/server_scripts/tfg/json_tool.armor_trim.js +++ b/kubejs/server_scripts/tfg/json_tool.armor_trim.js @@ -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}, diff --git a/kubejs/server_scripts/tfg/mars/tags.mars.js b/kubejs/server_scripts/tfg/mars/tags.mars.js index a6605e02c..12ac9db8a 100644 --- a/kubejs/server_scripts/tfg/mars/tags.mars.js +++ b/kubejs/server_scripts/tfg/mars/tags.mars.js @@ -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) { diff --git a/kubejs/server_scripts/tfg/moon/recipes.regolith.js b/kubejs/server_scripts/tfg/moon/recipes.regolith.js index 1d43f7489..3ccc3fc83 100644 --- a/kubejs/server_scripts/tfg/moon/recipes.regolith.js +++ b/kubejs/server_scripts/tfg/moon/recipes.regolith.js @@ -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) diff --git a/kubejs/server_scripts/tfg/natural_blocks/recipes.collapse.js b/kubejs/server_scripts/tfg/natural_blocks/recipes.collapse.js index 25c6a741b..bc51a4789 100644 --- a/kubejs/server_scripts/tfg/natural_blocks/recipes.collapse.js +++ b/kubejs/server_scripts/tfg/natural_blocks/recipes.collapse.js @@ -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"); } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/natural_blocks/recipes.concrete.js b/kubejs/server_scripts/tfg/natural_blocks/recipes.concrete.js index b305c5209..fe60118ed 100644 --- a/kubejs/server_scripts/tfg/natural_blocks/recipes.concrete.js +++ b/kubejs/server_scripts/tfg/natural_blocks/recipes.concrete.js @@ -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() diff --git a/kubejs/server_scripts/tfg/natural_blocks/recipes.rocks.js b/kubejs/server_scripts/tfg/natural_blocks/recipes.rocks.js index 7a95b5fe0..8918df150 100644 --- a/kubejs/server_scripts/tfg/natural_blocks/recipes.rocks.js +++ b/kubejs/server_scripts/tfg/natural_blocks/recipes.rocks.js @@ -5,407 +5,464 @@ * @param {Internal.RecipesEventJS} event */ function registerTFGRockRecipes(event) { + function rawToPolished(id, addChiselRecipes, input, output) { + if (addChiselRecipes) { + event.recipes.tfc.chisel(output, input, 'smooth') + .id(`tfg:chisel/${id}`); - - // #region GLUEING_TOGETHER - // raw rock to hardened, bricks to brick blocks - const GLUEING_TOGETHER = [ - { loose: 'tfg:brick/deepslate', block: '4x minecraft:deepslate_bricks' }, - { loose: 'beneath:blackstone_brick', block: '4x minecraft:polished_blackstone_bricks' }, - { loose: 'tfg:brick/dripstone', block: '4x create:cut_dripstone_bricks' }, - { loose: 'minecraft:nether_brick', block: '4x minecraft:nether_bricks' }, - { loose: 'tfg:brick/moon_stone', block: '4x ad_astra:moon_stone_bricks' }, - { loose: 'tfg:brick/moon_deepslate', block: '4x tfg:rock/bricks_moon_deepslate' }, - { loose: 'tfg:brick/mars_stone', block: '4x ad_astra:mars_stone_bricks' }, - { loose: 'tfg:brick/venus_stone', block: '4x ad_astra:venus_stone_bricks' }, - { loose: 'tfg:brick/red_granite', block: '4x gtceu:red_granite_bricks' }, - { loose: 'tfg:brick/mercury_stone', block: '4x ad_astra:mercury_stone_bricks' }, - { loose: 'tfg:brick/glacio_stone', block: '4x ad_astra:glacio_stone_bricks' }, - { loose: 'tfg:brick/permafrost', block: '4x ad_astra:permafrost_bricks' }, - { loose: 'minecraft:popped_chorus_fruit', block: '4x minecraft:purpur_block' }, - { loose: 'gtceu:stone_ingot', block: '4x minecraft:stone_bricks' }, - - { loose: 'minecraft:deepslate', block: '2x tfg:rock/hardened_deepslate' }, - { loose: 'minecraft:blackstone', block: '2x tfg:rock/hardened_blackstone' }, - { loose: 'minecraft:dripstone_block', block: '2x tfg:rock/hardened_dripstone' }, - { loose: 'ad_astra:moon_stone', block: '2x tfg:rock/hardened_moon_stone' }, - { loose: 'ad_astra:moon_deepslate', block: '2x tfg:rock/hardened_moon_deepslate'}, - { loose: 'ad_astra:mars_stone', block: '2x tfg:rock/hardened_mars_stone'}, - { loose: 'ad_astra:venus_stone', block: '2x tfg:rock/hardened_venus_stone'}, - { loose: 'ad_astra:mercury_stone', block: '2x tfg:rock/hardened_mercury_stone'}, - { loose: 'ad_astra:glacio_stone', block: '2x tfg:rock/hardened_glacio_stone'}, - { loose: 'gtceu:red_granite', block: '2x tfg:rock/hardened_red_granite'} - ] - - GLUEING_TOGETHER.forEach(x => { - const id = linuxUnfucker(`${x.loose}_to_${x.block}`); - - event.shaped(x.block, [ - 'ABA', - 'BAB', - 'ABA' - ], { - A: x.loose, - B: 'tfc:mortar' - }).id(`tfg:shaped/${id}`) - - event.recipes.gtceu.assembler(`tfg:${id}`) - .itemInputs(`5x ${x.loose}`) - .inputFluids(Fluid.of('gtceu:concrete', 72)) - .itemOutputs(x.block) - .circuit(1) - .duration(50) - .EUt(2) - }) - // #endregion GLUEING_TOGETHER - - // #region COBBLE_TO_LOOSE - const COBBLE_TO_LOOSE = [ - { cobble: 'tfg:rock/cobble_blackstone', loose: 'beneath:blackstone_pebble' }, - { cobble: 'minecraft:cobbled_deepslate', loose: 'tfg:loose/deepslate' }, - { cobble: 'tfg:rock/cobble_dripstone', loose: 'tfg:loose/dripstone' }, - { cobble: 'tfg:rock/cobble_crackrack', loose: 'tfg:loose/crackrack' }, - { cobble: 'ad_astra:moon_cobblestone', loose: 'tfg:loose/moon_stone' }, - { cobble: 'tfg:rock/cobble_moon_deepslate', loose: 'tfg:loose/moon_deepslate' }, - { cobble: 'ad_astra:mars_cobblestone', loose: 'tfg:loose/mars_stone' }, - { cobble: 'ad_astra:venus_cobblestone', loose: 'tfg:loose/venus_stone' }, - { cobble: 'ad_astra:mercury_cobblestone', loose: 'tfg:loose/mercury_stone' }, - { cobble: 'ad_astra:glacio_cobblestone', loose: 'tfg:loose/glacio_stone' }, - { cobble: 'gtceu:red_granite_cobblestone', loose: 'tfg:loose/red_granite' }, - { cobble: 'tfg:rock/cobble_permafrost', loose: 'tfg:loose/permafrost' } - ] - - COBBLE_TO_LOOSE.forEach(x => { - const cobbleId = linuxUnfucker(x.cobble); - - event.shapeless(`4x ${x.loose}`, [x.cobble]) - .id(`tfg:shapeless/unpacking_${cobbleId}`); - - event.shaped(x.cobble, [ - 'AA', - 'AA' - ], { - A: x.loose - }) - .id(`tfg:shaped/packing_${cobbleId}`); - - event.recipes.gtceu.packer(`tfg:unpacking_${cobbleId}`) - .itemInputs(`1x ${x.cobble}`) - .itemOutputs(`4x ${x.loose}`) - .circuit(1) - .duration(20) - .EUt(GTValues.VA[GTValues.ULV]) - - event.recipes.gtceu.packer(`tfg:packing_${cobbleId}`) - .itemInputs(`4x ${x.loose}`) - .itemOutputs(`1x ${x.cobble}`) - .circuit(1) - .duration(20) - .EUt(GTValues.VA[GTValues.ULV]) - }) - // #endregion COBBLE_TO_LOOSE - - // #region LOOSE_TO_BRICKS - const LOOSE_TO_BRICKS = [ - { loose: 'tfg:loose/deepslate', brick: 'tfg:brick/deepslate' }, - { loose: 'tfg:loose/dripstone', brick: 'tfg:brick/dripstone' }, - { loose: 'tfg:loose/crackrack', brick: 'minecraft:nether_brick' }, - { loose: 'tfg:loose/moon_stone', brick: 'tfg:brick/moon_stone' }, - { loose: 'tfg:loose/moon_deepslate', brick: 'tfg:brick/moon_deepslate' }, - { loose: 'tfg:loose/mars_stone', brick: 'tfg:brick/mars_stone' }, - { loose: 'tfg:loose/venus_stone', brick: 'tfg:brick/venus_stone' }, - { loose: 'tfg:loose/mercury_stone', brick: 'tfg:brick/mercury_stone' }, - { loose: 'tfg:loose/glacio_stone', brick: 'tfg:brick/glacio_stone' }, - { loose: 'tfg:loose/permafrost', brick: 'tfg:brick/permafrost' }, - { loose: 'tfg:loose/red_granite', brick: 'tfg:brick/red_granite' }, - { loose: 'beneath:blackstone_pebble', brick: 'beneath:blackstone_brick' } - ] - - LOOSE_TO_BRICKS.forEach(x => { - const id = linuxUnfucker(`${x.loose}_to_${x.brick}`); - - event.recipes.tfc.damage_inputs_shapeless_crafting(event.shapeless( - x.brick, [x.loose, '#tfc:chisels'] - )) - .id(`tfg:shapeless/${id}`); - - event.recipes.gtceu.cutter(`tfg:${id}`) - .itemInputs(x.loose) - .itemOutputs(x.brick) - .duration(10) - .EUt(2); - }) - // #endregion LOOSE_TO_BRICKS - - // #region AQUEDUCTS - const AQUEDUCTS = [ - { brick: 'tfg:brick/deepslate', aqueduct: 'tfg:rock/aqueduct_deepslate' }, - { brick: 'beneath:blackstone_brick', aqueduct: 'beneath:blackstone_aqueduct' }, - { brick: 'tfg:brick/dripstone', aqueduct: 'tfg:rock/aqueduct_dripstone' }, - { brick: 'minecraft:nether_brick', aqueduct: 'tfg:rock/aqueduct_nether' }, - { brick: 'tfg:brick/moon_stone', aqueduct: 'tfg:rock/aqueduct_moon_stone' }, - { brick: 'tfg:brick/moon_deepslate', aqueduct: 'tfg:rock/aqueduct_moon_deepslate' }, - { brick: 'tfg:brick/mars_stone', aqueduct: 'tfg:rock/aqueduct_mars_stone' }, - { brick: 'tfg:brick/venus_stone', aqueduct: 'tfg:rock/aqueduct_venus_stone' }, - { brick: 'tfg:brick/mercury_stone', aqueduct: 'tfg:rock/aqueduct_mercury_stone' }, - { brick: 'tfg:brick/glacio_stone', aqueduct: 'tfg:rock/aqueduct_glacio_stone' }, - { brick: 'tfg:brick/permafrost', aqueduct: 'tfg:rock/aqueduct_permafrost' }, - { brick: 'tfg:brick/red_granite', aqueduct: 'tfg:rock/aqueduct_red_granite' }, - { brick: 'gtceu:stone_ingot', aqueduct: 'tfg:rock/aqueduct_stone' } - ] - - AQUEDUCTS.forEach(x => { - const id = linuxUnfucker(`${x.brick}_to_${x.aqueduct}`); - - event.shaped(x.aqueduct, [ - 'A A', - 'BAB' - ], { - A: x.brick, - B: 'tfc:mortar' - }) - .id(`tfg:shaped/${id}`); - - event.recipes.gtceu.assembler(`tfg:${id}`) - .itemInputs(`3x ${x.brick}`) - .circuit(3) - .inputFluids(Fluid.of('gtceu:concrete', 16)) - .itemOutputs(x.aqueduct) - .duration(50) - .EUt(2); - }) - // #endregion AQUEDUCT - - // #region COBBLE TO MOSSY COBBLE - - const COBBLE_TO_MOSSY = [ - { cobble: 'minecraft:cobblestone', mossy: 'minecraft:mossy_cobblestone' }, - { cobble: 'tfg:rock/cobble_blackstone', mossy: 'tfg:rock/mossy_cobble_blackstone' }, - { cobble: 'minecraft:cobbled_deepslate', mossy: 'tfg:rock/mossy_cobble_deepslate' }, - { cobble: 'tfg:rock/cobble_dripstone', mossy: 'tfg:rock/mossy_cobble_dripstone' }, - { cobble: 'tfg:rock/cobble_crackrack', mossy: 'tfg:rock/mossy_cobble_crackrack' }, - { cobble: 'ad_astra:moon_cobblestone', mossy: 'tfg:rock/mossy_cobble_moon' }, - { cobble: 'tfg:rock/cobble_moon_deepslate', mossy: 'tfg:rock/mossy_cobble_moon_deepslate' }, - { cobble: 'ad_astra:mars_cobblestone', mossy: 'tfg:rock/mossy_cobble_mars' }, - { cobble: 'ad_astra:venus_cobblestone', mossy: 'tfg:rock/mossy_cobble_venus' }, - { cobble: 'ad_astra:mercury_cobblestone', mossy: 'tfg:rock/mossy_cobble_mercury' }, - { cobble: 'ad_astra:glacio_cobblestone', mossy: 'tfg:rock/mossy_cobble_glacio' }, - { cobble: 'tfg:rock/cobble_permafrost', mossy: 'tfg:rock/mossy_cobble_permafrost' }, - { cobble: 'gtceu:red_granite_cobblestone', mossy: 'gtceu:mossy_red_granite_cobblestone' }, - { cobble: 'gtceu:light_concrete_cobblestone', mossy: 'gtceu:mossy_light_concrete_cobblestone' }, - { cobble: 'gtceu:dark_concrete_cobblestone', mossy: 'gtceu:mossy_dark_concrete_cobblestone' } - ]; - - COBBLE_TO_MOSSY.forEach(x => { - - event.recipes.gtceu.assembler(`tfg:${linuxUnfucker(x.mossy)}_cobble_rocks_to_mossy_cobble`) - .itemInputs(x.cobble, '#tfc:compost_greens_low') - .circuit(0) - .inputFluids("#tfg:clean_water 144") - .itemOutputs(x.mossy) - .duration(50) - .EUt(2) - }) - - // #endregion - - // #region RAW_TO_POLISHED - const RAW_TO_POLISHED = [ - // Beneath - { raw: 'minecraft:deepslate', polished: 'minecraft:polished_deepslate' }, - { raw: 'tfg:rock/hardened_deepslate', polished: 'minecraft:polished_deepslate' }, - { raw: 'create:cut_deepslate', polished: 'create:polished_cut_deepslate' }, - { raw: 'minecraft:deepslate_bricks', polished: 'minecraft:deepslate_tiles' }, - { raw: 'minecraft:deepslate_tiles', polished: 'minecraft:chiseled_deepslate' }, - { raw: 'minecraft:chiseled_deepslate', polished: 'minecraft:deepslate_bricks' }, - - { raw: 'minecraft:blackstone', polished: 'minecraft:polished_blackstone' }, - { raw: 'tfg:rock/hardened_blackstone', polished: 'minecraft:polished_blackstone' }, - { raw: 'minecraft:polished_blackstone_bricks', polished: 'minecraft:chiseled_polished_blackstone' }, - { raw: 'minecraft:chiseled_polished_blackstone', polished: 'minecraft:polished_blackstone_bricks' }, - - { raw: 'minecraft:dripstone_block', polished: 'create:polished_cut_dripstone' }, - { raw: 'tfg:rock/hardened_dripstone', polished: 'create:polished_cut_dripstone' }, - { raw: 'create:cut_dripstone', polished: 'create:polished_cut_dripstone' }, - { raw: 'create:cut_dripstone_bricks', polished: 'create:small_dripstone_bricks' }, - { raw: 'create:small_dripstone_bricks', polished: 'create:cut_dripstone_bricks' }, - - { raw: 'beneath:crackrack', polished: 'tfg:rock/polished_crackrack' }, - { raw: 'minecraft:nether_bricks', polished: 'minecraft:chiseled_nether_bricks' }, - { raw: 'minecraft:chiseled_nether_bricks', polished: 'minecraft:nether_bricks' }, - - { raw: 'minecraft:basalt', polished: 'minecraft:smooth_basalt' }, - { raw: 'minecraft:smooth_basalt', polished: 'minecraft:polished_basalt' }, - - // Moon - { raw: 'ad_astra:moon_stone', polished: 'ad_astra:polished_moon_stone' }, - { raw: 'tfg:rock/hardened_moon_stone', polished: 'ad_astra:polished_moon_stone' }, - { raw: 'ad_astra:moon_stone_bricks', polished: 'ad_astra:chiseled_moon_stone_bricks' }, - { raw: 'ad_astra:chiseled_moon_stone_bricks', polished: 'ad_astra:moon_stone_bricks' }, - - { raw: 'ad_astra:moon_deepslate', polished: 'tfg:rock/polished_moon_deepslate' }, - { raw: 'tfg:rock/hardened_moon_deepslate', polished: 'tfg:rock/polished_moon_deepslate' }, - { raw: 'tfg:rock/bricks_moon_deepslate', polished: 'tfg:rock/chiseled_bricks_moon_deepslate' }, - { raw: 'tfg:rock/chiseled_bricks_moon_deepslate', polished: 'tfg:rock/bricks_moon_deepslate' }, - - { raw: 'ad_astra:glacio_stone', polished: 'ad_astra:polished_glacio_stone' }, - { raw: 'tfg:rock/hardened_glacio_stone', polished: 'ad_astra:polished_glacio_stone' }, - { raw: 'ad_astra:glacio_stone_bricks', polished: 'ad_astra:chiseled_glacio_stone_bricks' }, - { raw: 'ad_astra:chiseled_glacio_stone_bricks', polished: 'ad_astra:glacio_stone_bricks' }, - - // Mars - { raw: 'ad_astra:mars_stone', polished: 'ad_astra:polished_mars_stone' }, - { raw: 'tfg:rock/hardened_mars_stone', polished: 'ad_astra:polished_mars_stone' }, - { raw: 'ad_astra:mars_stone_bricks', polished: 'ad_astra:chiseled_mars_stone_bricks' }, - { raw: 'ad_astra:chiseled_mars_stone_bricks', polished: 'ad_astra:mars_stone_bricks' }, - - { raw: 'ad_astra:venus_stone', polished: 'ad_astra:polished_venus_stone' }, - { raw: 'tfg:rock/hardened_venus_stone', polished: 'ad_astra:polished_venus_stone' }, - { raw: 'ad_astra:venus_stone_bricks', polished: 'ad_astra:chiseled_venus_stone_bricks' }, - { raw: 'ad_astra:venus_sandstone', polished: 'ad_astra:venus_sandstone_bricks' }, - { raw: 'ad_astra:venus_sandstone_bricks', polished: 'ad_astra:venus_sandstone' }, - - { raw: 'gtceu:red_granite', polished: 'gtceu:polished_red_granite' }, - { raw: 'tfg:rock/hardened_red_granite', polished: 'gtceu:polished_red_granite' }, - { raw: 'gtceu:red_granite_bricks', polished: 'gtceu:red_granite_tile' }, - { raw: 'gtceu:red_granite_tile', polished: 'gtceu:square_red_granite_bricks' }, - { raw: 'gtceu:square_red_granite_bricks', polished: 'gtceu:red_granite_windmill_a' }, - { raw: 'gtceu:red_granite_windmill_a', polished: 'gtceu:red_granite_windmill_b' }, - { raw: 'gtceu:red_granite_windmill_b', polished: 'gtceu:small_red_granite_bricks' }, - { raw: 'gtceu:small_red_granite_bricks', polished: 'gtceu:red_granite_small_tile' }, - { raw: 'gtceu:red_granite_small_tile', polished: 'gtceu:chiseled_red_granite' }, - { raw: 'gtceu:chiseled_red_granite', polished: 'gtceu:red_granite_bricks' }, - - { raw: 'minecraft:smooth_red_sandstone', polished: 'minecraft:cut_red_sandstone' }, - { raw: 'minecraft:cut_red_sandstone', polished: 'minecraft:chiseled_red_sandstone' }, - { raw: 'minecraft:chiseled_red_sandstone', polished: 'minecraft:smooth_red_sandstone' }, - - // Mercury - { raw: 'ad_astra:mercury_stone', polished: 'ad_astra:polished_mercury_stone' }, - { raw: 'tfg:rock/hardened_mercury_stone', polished: 'ad_astra:polished_mercury_stone' }, - { raw: 'ad_astra:mercury_stone_bricks', polished: 'ad_astra:chiseled_mercury_stone_bricks' }, - { raw: 'ad_astra:chiseled_mercury_stone_bricks', polished: 'ad_astra:mercury_stone_bricks' }, - - // Europa - { raw: 'ad_astra:permafrost', polished: 'ad_astra:polished_permafrost' }, - { raw: 'ad_astra:permafrost_bricks', polished: 'ad_astra:chiseled_permafrost_bricks' }, - { raw: 'ad_astra:chiseled_permafrost_bricks', polished: 'ad_astra:permafrost_tiles' }, - { raw: 'ad_astra:permafrost_tiles', polished: 'ad_astra:chiseled_permafrost_bricks' }, - - // Misc - { raw: 'ae2:sky_stone_block', polished: 'ae2:smooth_sky_stone_block' }, - { raw: 'ae2:smooth_sky_stone_block', polished: 'ae2:sky_stone_brick' }, - { raw: 'ae2:sky_stone_brick', polished: 'ae2:sky_stone_small_brick' }, - { raw: 'ae2:sky_stone_small_brick', polished: 'ae2:smooth_sky_stone_block' }, - { raw: 'tfc:alabaster/raw', polished: 'tfc:alabaster/polished' }, - - // Concrete - { raw: 'tfg:titanium_concrete', polished: 'tfg:polished_titanium_concrete' }, - - // Recon Stone - { raw: 'minecraft:stone', polished: 'minecraft:smooth_stone' }, - { raw: 'minecraft:smooth_stone', polished: 'minecraft:stone' }, - - { raw: 'minecraft:stone_bricks', polished: 'minecraft:chiseled_stone_bricks' }, - { raw: 'minecraft:chiseled_stone_bricks', polished: 'minecraft:stone_bricks' }, - - // Quartz - { raw: 'minecraft:quartz_block', polished: 'minecraft:smooth_quartz' }, - { raw: 'minecraft:smooth_quartz', polished: 'minecraft:quartz_bricks' }, - { raw: 'minecraft:quartz_bricks', polished: 'minecraft:chiseled_quartz_block' }, - { raw: 'minecraft:chiseled_quartz_block', polished: 'minecraft:quartz_block' }, - - // Certus Quartz - { raw: 'ae2:quartz_block', polished: 'gtceu:certus_quartz_block' }, - { raw: 'gtceu:certus_quartz_block', polished: 'ae2:cut_quartz_block' }, - { raw: 'ae2:cut_quartz_block', polished: 'ae2:quartz_bricks' }, - { raw: 'ae2:quartz_bricks', polished: 'ae2:chiseled_quartz_block' }, - { raw: 'ae2:chiseled_quartz_block', polished: 'ae2:quartz_block' }, - - // Other @Create Blocks - { raw: 'create:cut_andesite', polished: 'create:polished_cut_andesite' }, - { raw: 'create:cut_granite', polished: 'create:polished_cut_granite' }, - { raw: 'create:cut_diorite', polished: 'create:polished_cut_diorite' }, - { raw: 'create:limestone', polished: 'create:polished_cut_limestone' }, - { raw: 'create:cut_limestone', polished: 'create:polished_cut_limestone' }, - - { raw: 'minecraft:calcite', polished: 'create:polished_cut_calcite' }, - { raw: 'create:cut_calcite', polished: 'create:polished_cut_calcite' }, - { raw: 'create:asurine', polished: 'create:polished_cut_asurine' }, - { raw: 'create:cut_asurine', polished: 'create:polished_cut_asurine' }, - { raw: 'create:crimsite', polished: 'create:polished_cut_crimsite' }, - { raw: 'create:cut_crimsite', polished: 'create:polished_cut_crimsite' }, - { raw: 'create:ochrum', polished: 'create:polished_cut_ochrum' }, - { raw: 'create:cut_ochrum', polished: 'create:polished_cut_ochrum' }, - { raw: 'create:scorchia', polished: 'create:polished_cut_scorchia' }, - { raw: 'create:cut_scorchia', polished: 'create:polished_cut_scorchia' }, - { raw: 'create:scoria', polished: 'create:polished_cut_scoria' }, - { raw: 'create:cut_scoria', polished: 'create:polished_cut_scoria' }, - { raw: 'minecraft:tuff', polished: 'create:polished_cut_tuff' }, - { raw: 'create:cut_tuff', polished: 'create:polished_cut_tuff' }, - { raw: 'create:veridium', polished: 'create:polished_cut_veridium' }, - { raw: 'create:cut_veridium', polished: 'create:polished_cut_veridium' } - ] - - RAW_TO_POLISHED.forEach(x => { - const id = linuxUnfucker(`${x.raw}_to_${x.polished}`); - - event.recipes.tfc.chisel(`${x.polished}`, `${x.raw}`, 'smooth') - .id(`tfg:chisel/${id}`); - - event.recipes.tfc.damage_inputs_shapeless_crafting(event.shapeless( - x.polished, [x.raw, '#tfc:chisels'] - )) - .id(`tfg:shapeless/${id}`); + event.recipes.tfc.damage_inputs_shapeless_crafting(event.shapeless( + output, [input, '#tfc:chisels'] + )) + .id(`tfg:shapeless/${id}`); + } event.recipes.gtceu.laser_engraver(`tfg:${id}`) - .itemInputs(x.raw) - .itemOutputs(x.polished) + .itemInputs(input) + .itemOutputs(output) .notConsumable('tfc:lens') .duration(30) .EUt(GTValues.VA[GTValues.ULV]); - }) + } - // #endregion RAW_TO_POLISHED + rawToPolished('vanilla_basalt_to_smooth', true, 'minecraft:basalt', 'minecraft:smooth_basalt'); + rawToPolished('vanilla_smooth_to_polished', true, 'minecraft:smooth_basalt', 'minecraft:polished_basalt'); + + function looseToCobble(id, rock, loose, rockEntry) { + if (!rock.isTFC) { + event.shapeless(`4x ${loose}`, [rockEntry.block]) + .id(`tfg:shapeless/unpacking_${id}_cobble`); + + event.shaped(rockEntry.block, [ + 'AA', + 'AA' + ], { + A: loose + }) + .id(`tfg:shaped/packing_${id}_cobble`); + + if (rockEntry.stair != null) { + event.shapeless(`3x ${loose}`, [rockEntry.stair]); + } + if (rockEntry.slab != null) { + event.shapeless(`2x ${loose}`, [rockEntry.slab]); + } + } + + event.recipes.gtceu.packer(`tfg:unpacking_${id}_cobble`) + .itemInputs(`1x ${rockEntry.block}`) + .itemOutputs(`4x ${loose}`) + .circuit(1) + .duration(20) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.packer(`tfg:packing_${id}_cobble`) + .itemInputs(`4x ${loose}`) + .itemOutputs(`1x ${rockEntry.block}`) + .circuit(1) + .duration(20) + .EUt(GTValues.VA[GTValues.ULV]) + + if (rockEntry.wall != null) { + event.shapeless(`2x ${loose}`, [rockEntry.wall]); + } + } + + function changeForms(rockId, rock, blockEntry) { + if (!rock.isTFC) { + if (blockEntry.stair != null) { + if (blockEntry.block != null) { + let id = linuxUnfucker(`${blockEntry.block}_to_${blockEntry.stair}`); + + event.recipes.tfc.chisel(blockEntry.stair, blockEntry.block, 'stair') + .id(`tfg:chisel/${id}`); + + event.stonecutting(blockEntry.stair, blockEntry.block) + .id(`tfg:stonecutter/${id}`); + } + } + if (blockEntry.slab != null) { + if (blockEntry.block != null) { + let id = linuxUnfucker(`${blockEntry.block}_to_${blockEntry.slab}`); + + event.recipes.tfc.chisel(blockEntry.slab, blockEntry.block, 'slab') + .extraDrop(blockEntry.slab) + .id(`tfg:chisel/${id}`); + + event.stonecutting(`2x ${blockEntry.slab}`, blockEntry.block) + .id(`tfg:stonecutting/${id}`); + } + } + } + if (blockEntry.wall != null) { + if (blockEntry.block != null) { + if (!rock.isTFC) { + event.stonecutting(blockEntry.wall, blockEntry.block) + .id(`tfg:stonecutting/${linuxUnfucker(blockEntry.block)}_to_${linuxUnfucker(blockEntry.wall)}`) + } + } + if (blockEntry.slab != null) { + event.recipes.tfc.chisel(blockEntry.wall, blockEntry.slab, 'smooth'); + } + } + } + + for (let [rockId, rock] of Object.entries(global.BIG_ROCK_TABLE)) { + + // Raw to Hardened + if (rock.raw != null && rock.hardened != null) { + if (!rock.isTFC) { + event.shaped(`2x ${rock.hardened}`, [ + 'ABA', + 'BAB', + 'ABA' + ], { + A: rock.raw.block, + B: 'tfc:mortar' + }).id(`tfg:shaped/${rockId}_raw_to_hardened`) + } + + event.recipes.gtceu.assembler(`tfg:${rockId}_raw_to_hardened`) + .itemInputs(`4x ${rock.raw.block}`) + .inputFluids(Fluid.of('gtceu:concrete', 72)) + .itemOutputs(`2x ${rock.hardened}`) + .circuit(1) + .duration(50) + .EUt(2) + } + + // Raw to cobble + if (rock.raw != null && rock.cobble != null) { + event.recipes.gtceu.forge_hammer(`${rockId}_raw_to_cobble`) + .itemInputs(rock.raw.block) + .itemOutputs(rock.cobble.block) + .duration(10) + .EUt(7) + + event.recipes.greate.pressing(rock.cobble.block, rock.raw.block) + .recipeTier(0) + .id(`greate:pressing/${rockId}_raw_to_cobble`) + } + + // Loose to cobble + if (rock.loose != null && rock.cobble != null) { + looseToCobble(rockId, rock, rock.loose, rock.cobble); + + if (rock.mossyLoose != null && rock.cobble.mossy != null) { + looseToCobble(`mossy_${rockId}`, rock, rock.mossyLoose, rock.cobble.mossy); + } + } + + // Loose to brick + if (rock.loose != null && rock.brick != null) { + if (!rock.isTFC) { + event.recipes.tfc.damage_inputs_shapeless_crafting(event.shapeless( + rock.brick, [rock.loose, '#tfc:chisels'] + )) + .id(`tfg:shapeless/${rockId}_loose_to_brick`); + } + + event.recipes.gtceu.cutter(`tfg:${rockId}_loose_to_brick`) + .itemInputs(rock.loose) + .itemOutputs(rock.brick) + .duration(10) + .EUt(2); + } + + if (rock.mossyLoose != null && rock.brick != null) { + if (!rock.isTFC) { + event.recipes.tfc.damage_inputs_shapeless_crafting(event.shapeless( + rock.brick, [rock.mossyLoose, '#tfc:chisels'] + )) + .id(`tfg:shapeless/${rockId}_mossy_loose_to_brick`); + } + + event.recipes.gtceu.cutter(`tfg:${rockId}_mossy_loose_to_brick`) + .itemInputs(rock.mossyLoose) + .itemOutputs(rock.brick) + .duration(10) + .EUt(2); + } + + // Cobble to Gravel + if (rock.cobble != null && rock.gravel != null) { + event.recipes.gtceu.forge_hammer(`${rockId}_cobble_to_gravel`) + .itemInputs(rock.cobble.block) + .itemOutputs(rock.gravel) + .duration(10) + .EUt(7) + + event.recipes.greate.pressing(rock.gravel, rock.cobble.block) + .recipeTier(0) + .id(`greate:pressing/${rockId}_cobble_to_gravel`) + } + + // Cobble to mossy cobble + if (rock.cobble != null && rock.cobble.mossy != null) { + event.recipes.gtceu.mixer(`tfg:${rockId}_cobble_rocks_to_mossy_cobble`) + .itemInputs(rock.cobble.block, '#tfc:compost_greens_low') + .circuit(1) + .inputFluids("#tfg:clean_water 144") + .itemOutputs(rock.cobble.mossy.block) + .duration(50) + .EUt(2) + } + + // Bricks to brick blocks + if (rock.brick != null && rock.bricks != null) { + if (!rock.isTFC) { + event.shaped(`4x ${rock.bricks.block}`, [ + 'ABA', + 'BAB', + 'ABA' + ], { + A: rock.brick, + B: 'tfc:mortar' + }).id(`tfg:shaped/${rockId}_brick_to_bricks`) + } + + event.recipes.gtceu.assembler(`tfg:${rockId}_brick_to_bricks`) + .itemInputs(`5x ${rock.brick}`) + .inputFluids(Fluid.of('gtceu:concrete', 72)) + .itemOutputs(`4x ${rock.bricks.block}`) + .circuit(1) + .duration(50) + .EUt(2) + } + + // Bricks to mossy bricks + if (rock.bricks != null && rock.bricks.mossy != null) { + event.recipes.gtceu.mixer(`tfg:${rockId}_bricks_to_mossy_bricks`) + .itemInputs(rock.bricks.block, '#tfc:compost_greens_low') + .circuit(1) + .inputFluids("#tfg:clean_water 144") + .itemOutputs(rock.bricks.mossy.block) + .duration(50) + .EUt(2) + } + + // Bricks to cracked bricks + if (rock.bricks != null && rock.bricks.cracked != null) { + if (!rock.isTFC) { + event.recipes.tfc.damage_inputs_shapeless_crafting(event.shapeless( + rock.bricks.cracked.block, [rock.bricks.block, '#tfc:hammers'] + )) + .id(`tfg:shapeless/${rockId}_bricks_to_cracked`); + } + + event.recipes.gtceu.forge_hammer(`tfg:${rockId}_bricks_to_cracked`) + .itemInputs(rock.bricks.block) + .itemOutputs(rock.bricks.cracked.block) + .duration(12) + .EUt(8); + + event.recipes.greate.pressing(rock.bricks.cracked.block, rock.bricks.block) + .recipeTier(0) + .id(`tfg:pressing/${rockId}_bricks_to_cracked`); + } + + // Raw to polished + if (rock.raw != null && rock.polished != null) { + rawToPolished(`${rockId}_raw_to_polished`, !rock.isTFC, rock.raw.block, rock.polished.block); + + event.recipes.gtceu.assembler(`tfg:${rockId}_raw_to_polished`) + .itemInputs(`8x ${rock.raw.block}`) + .circuit(2) + .inputFluids(Fluid.of('gtceu:concrete', 72)) + .itemOutputs(`8x ${rock.polished.block}`) + .duration(250) + .EUt(8) + } + + if (rock.hardened != null && rock.polished != null) { + rawToPolished(`${rockId}_hardened_to_polished`, !rock.isTFC, rock.hardened, rock.polished.block); + } + + if (rock.chiseled != null && rock.bricks != null) { + rawToPolished(`${rockId}_bricks_to_chiseled`, !rock.isTFC, rock.bricks.block, rock.chiseled.block); + } + + // Aqueducts + if (rock.brick != null && rock.aqueduct != null) { + if (!rock.isTFC) { + event.shaped(rock.aqueduct, [ + 'A A', + 'BAB' + ], { + A: rock.brick, + B: 'tfc:mortar' + }) + .id(`tfg:shaped/${rockId}_aqueduct`); + } + + event.recipes.gtceu.assembler(`tfg:${rockId}_aqueduct`) + .itemInputs(`3x ${rock.brick}`) + .circuit(3) + .inputFluids(Fluid.of('gtceu:concrete', 16)) + .itemOutputs(rock.aqueduct) + .duration(50) + .EUt(2); + } + + // Pillars + if (rock.bricks != null && rock.pillar != null) { + event.shaped(`2x ${rock.pillar}`, [ + 'A', + 'A' + ], { + A: rock.bricks.block + }) + .id(`tfg:shaped/${rockId}_pillar`); + + event.stonecutting(rock.pillar, rock.bricks.block) + .id(`tfg:stonecutting/${rockId}_pillar`); + } + + if (rock.bricks != null && rock.pillar2 != null) { + event.shaped(`2x ${rock.pillar2}`, [ + 'AA' + ], { + A: rock.bricks.block + }) + .id(`tfg:shaped/${rockId}_pillar2`); + + event.stonecutting(rock.pillar2, rock.bricks.block) + .id(`tfg:stonecutting/${rockId}_pillar2`); + } + + // Chiseling + if (rock.raw != null) { + changeForms(rockId, rock, rock.raw); + } + if (rock.cobble != null) { + changeForms(rockId, rock, rock.cobble); + if (rock.cobble.mossy != null) { + changeForms(rockId, rock, rock.cobble.mossy); + } + } + if (rock.bricks != null) { + changeForms(rockId, rock, rock.bricks); + if (rock.bricks.mossy != null) { + changeForms(rockId, rock, rock.bricks.mossy); + } + if (rock.bricks.cracked != null) { + changeForms(rockId, rock, rock.bricks.cracked); + } + } + if (rock.polished != null) { + changeForms(rockId, rock, rock.polished); + } + if (rock.chiseled != null) { + changeForms(rockId, rock, rock.chiseled); + } + if (rock.stonecutting != null) { + rock.stonecutting.forEach(stonecuttingEntry => { + changeForms(rockId, rock, stonecuttingEntry); + }) + } + + // Stonecutting + if (rock.stonecutterTag != null) { + // The create tags are already filled out, so just add the polished/chiseled blocks to it + if (rock.stonecutterTag.startsWith('create')) { + if (rock.polished != null) + event.stonecutting(rock.polished.block, `#${rock.stonecutterTag}`); + if (rock.chiseled != null) + event.stonecutting(rock.chiseled.block, `#${rock.stonecutterTag}`); + } + else { + let tag_array = Ingredient.of(`#${rock.stonecutterTag}`).itemIds.toArray().map(String); + tag_array.forEach(item => { + event.stonecutting(item, Ingredient.of(`#${rock.stonecutterTag}`).subtract(item)) + .id(`tfg:stonecutter/${linuxUnfucker(item)}`) + }) + } + } + + // Supports + if (rock.support != null && rock.loose != null) { + event.recipes.tfc.damage_inputs_shaped_crafting( + event.shaped(`8x ${rock.support}`, [ + 'AB ', + 'AC ', + 'AC ' + ], { + A: rock.loose, + B: '#tfc:chisels', + C: 'tfc:mortar' + }).id(`tfg:shaped/${rockId}_support`) + ) + + event.recipes.gtceu.assembler(`tfg:${rockId}_support`) + .circuit(11) + .inputFluids(Fluid.of('gtceu:concrete', 36)) + .itemOutputs(`8x ${rock.support}`) + .itemInputs(`3x ${rock.loose}`) + .duration(40) + .EUt(GTValues.VA[GTValues.ULV]) + } + + if (rock.support != null && rock.mossyLoose != null) { + event.recipes.tfc.damage_inputs_shaped_crafting( + event.shaped(`8x ${rock.support}`, [ + 'AB ', + 'AC ', + 'AC ' + ], { + A: rock.mossyLoose, + B: '#tfc:chisels', + C: 'tfc:mortar' + }).id(`tfg:shaped/${rockId}_mossy_support`) + ) + + event.recipes.gtceu.assembler(`tfg:${rockId}_mossy_support`) + .circuit(11) + .inputFluids(Fluid.of('gtceu:concrete', 36)) + .itemOutputs(`8x ${rock.support}`) + .itemInputs(`3x ${rock.mossyLoose}`) + .duration(40) + .EUt(GTValues.VA[GTValues.ULV]) + } + + // Rock duping + if (rock.isTFC) { + if (rock.raw != null) { + event.recipes.gtceu.rock_breaker(`tfg:${rockId}_raw`) + .notConsumable(rock.raw.block) + .itemOutputs(rock.raw.block) + .duration(20) + .EUt(GTValues.VA[GTValues.ULV]) + } + + if (rock.cobble != null) { + event.recipes.gtceu.rock_breaker(`tfg:${rockId}_cobble`) + .notConsumable(rock.cobble.block) + .itemOutputs(rock.cobble.block) + .duration(20) + .EUt(GTValues.VA[GTValues.ULV]) + } + } else if (rock.dimensions != null && rock.dimensions != []) { + if (rock.raw != null) { + let rawRecipe = event.recipes.gtceu.rock_breaker(`tfg:${rockId}_raw`) + .notConsumable(rock.raw.block) + .itemOutputs(rock.raw.block) + .duration(20) + .EUt(GTValues.VA[GTValues.ULV]) + rock.dimensions.forEach(dim => rawRecipe.dimension(dim)); + } + + if (rock.cobble != null) { + let cobbleRecipe = event.recipes.gtceu.rock_breaker(`tfg:${rockId}_cobble`) + .notConsumable(rock.cobble.block) + .itemOutputs(rock.cobble.block) + .duration(20) + .EUt(GTValues.VA[GTValues.ULV]) + rock.dimensions.forEach(dim => cobbleRecipe.dimension(dim)); + } + } + } - // #region CRACKING - const CRACKING = [ - { raw: 'minecraft:deepslate_bricks', cracked: 'minecraft:cracked_deepslate_bricks' }, - { raw: 'minecraft:deepslate_tiles', cracked: 'minecraft:cracked_deepslate_tiles' }, - { raw: 'minecraft:nether_bricks', cracked: 'minecraft:cracked_nether_bricks' }, - { raw: 'ad_astra:moon_stone_bricks', cracked: 'ad_astra:cracked_moon_stone_bricks' }, - { raw: 'tfg:rock/bricks_moon_deepslate', cracked: 'tfg:rock/cracked_bricks_moon_deepslate' }, - { raw: 'ad_astra:mars_stone_bricks', cracked: 'ad_astra:cracked_mars_stone_bricks' }, - { raw: 'ad_astra:venus_stone_bricks', cracked: 'ad_astra:cracked_venus_stone_bricks' }, - { raw: 'ad_astra:venus_sandstone_bricks', cracked: 'ad_astra:cracked_venus_sandstone_bricks' }, - { raw: 'ad_astra:mercury_stone_bricks', cracked: 'ad_astra:cracked_mercury_stone_bricks' }, - { raw: 'ad_astra:glacio_stone_bricks', cracked: 'ad_astra:cracked_glacio_stone_bricks' }, - { raw: 'ad_astra:permafrost_bricks', cracked: 'ad_astra:cracked_permafrost_bricks' }, - { raw: 'gtceu:red_granite_bricks', cracked: 'gtceu:cracked_red_granite_bricks' } - ] - CRACKING.forEach(x => { - const id = linuxUnfucker(`${x.raw}_to_${x.cracked}`); - - event.recipes.tfc.damage_inputs_shapeless_crafting(event.shapeless( - x.cracked, [x.raw, '#tfc:hammers'] - )) - .id(`tfg:shapeless/${id}`); - - event.recipes.gtceu.forge_hammer(`tfg:${id}`) - .itemInputs(x.raw) - .itemOutputs(x.cracked) - .duration(12) - .EUt(8); - - event.recipes.greate.pressing(x.cracked, x.raw) - .recipeTier(0) - .id(`tfg:pressing/${id}`); - }) - // #endregion CRACKING - - // #region HAMMERING - // Defined in kubejs/startup_scripts/tfg/constants.js + // Misc hammering recipes global.HAMMERING.forEach(x => { const id = linuxUnfucker(`${x.raw}_to_${x.hammered}`); @@ -419,572 +476,6 @@ function registerTFGRockRecipes(event) { .recipeTier(x.eu <= 8 ? 0 : 1) .id(`tfg:pressing/${id}`); }) - // #endregion HAMMERING - - // #region CUT_GRIND - // - // (spacing for region titles) - // - let CUT_GRIND = [ - { raw: 'minecraft:bricks', stair: 'minecraft:brick_stairs', slab: 'minecraft:brick_slab', wall: 'minecraft:brick_wall', - dust: 'gtceu:brick_dust', loose: null, stonecutting: false }, - // #region Nether - // Deepslate - { raw: 'minecraft:deepslate', stair: 'tfg:rock/deepslate_stairs', slab: 'tfg:rock/deepslate_slab', wall: 'tfg:rock/deepslate_wall', - dust: 'gtceu:deepslate_dust', loose: null, stonecutting: false }, // Raw - - { raw: 'minecraft:cobbled_deepslate', stair: 'minecraft:cobbled_deepslate_stairs', slab: 'minecraft:cobbled_deepslate_slab', wall: 'minecraft:cobbled_deepslate_wall', - dust: 'gtceu:deepslate_dust', loose: 'tfg:loose/deepslate', stonecutting: false }, // Cobble - - { raw: 'tfg:rock/mossy_cobble_deepslate', stair: 'tfg:rock/mossy_cobble_deepslate_stairs', slab: 'tfg:rock/mossy_cobble_deepslate_slab', wall: 'tfg:rock/mossy_cobble_deepslate_wall', - dust: 'gtceu:deepslate_dust', loose: null, stonecutting: true }, // Cobble - Mossy - - { raw: 'minecraft:polished_deepslate', stair: 'minecraft:polished_deepslate_stairs', slab: 'minecraft:polished_deepslate_slab', wall: 'minecraft:polished_deepslate_wall', - dust: 'gtceu:deepslate_dust', loose: null, stonecutting: false }, // Smooth - - { raw: 'create:cut_deepslate', stair: 'create:cut_deepslate_stairs', slab: 'create:cut_deepslate_slab', wall: 'create:cut_deepslate_wall', - dust: 'gtceu:deepslate_dust', loose: null, stonecutting: false }, // Smooth - Extra - - { raw: 'create:polished_cut_deepslate', stair: 'create:polished_cut_deepslate_stairs', slab: 'create:polished_cut_deepslate_slab', wall: 'create:polished_cut_deepslate_wall', - dust: 'gtceu:deepslate_dust', loose: null, stonecutting: false }, // Smooth - Extra - - { raw: 'minecraft:deepslate_bricks', stair: 'minecraft:deepslate_brick_stairs', slab: 'minecraft:deepslate_brick_slab', wall: 'minecraft:deepslate_brick_wall', - dust: 'gtceu:deepslate_dust', loose: null, stonecutting: false }, // Bricks - - { raw: 'minecraft:cracked_deepslate_bricks', stair: 'tfg:rock/cracked_bricks_deepslate_stairs', slab: 'tfg:rock/cracked_bricks_deepslate_slab', wall: 'tfg:rock/cracked_bricks_deepslate_wall', - dust: 'gtceu:deepslate_dust', loose: null, stonecutting: true }, // Bricks - Cracked - - { raw: 'tfg:rock/mossy_bricks_deepslate', stair: 'tfg:rock/mossy_bricks_deepslate_stairs', slab: 'tfg:rock/mossy_bricks_deepslate_slab', wall: 'tfg:rock/mossy_bricks_deepslate_wall', - dust: 'gtceu:deepslate_dust', loose: null, stonecutting: true }, // Bricks - Mossy - - { raw: 'minecraft:deepslate_tiles', stair: 'minecraft:deepslate_tile_stairs', slab: 'minecraft:deepslate_tile_slab', wall: 'minecraft:deepslate_tile_wall', - dust: 'gtceu:deepslate_dust', loose: null, stonecutting: false }, // Bricks - Extra - - { raw: 'minecraft:cracked_deepslate_tiles', stair: 'tfg:rock/cracked_tiles_deepslate_stairs', slab: 'tfg:rock/cracked_tiles_deepslate_slab', wall: 'tfg:rock/cracked_tiles_deepslate_wall', - dust: 'gtceu:deepslate_dust', loose: null, stonecutting: true }, // Bricks - Cracked - Extra - - { raw: 'create:cut_deepslate_bricks', stair: 'create:cut_deepslate_brick_stairs', slab: 'create:cut_deepslate_brick_slab', wall: 'create:cut_deepslate_brick_wall', - dust: 'gtceu:deepslate_dust', loose: null, stonecutting: false }, // Bricks - Extra - - { raw: 'create:small_deepslate_bricks', stair: 'create:small_deepslate_brick_stairs', slab: 'create:small_deepslate_brick_slab', wall: 'create:small_deepslate_brick_wall', - dust: 'gtceu:deepslate_dust', loose: null, stonecutting: false }, // Bricks - Extra - - // Blackstone - { raw: 'minecraft:blackstone', stair: 'minecraft:blackstone_stairs', slab: 'minecraft:blackstone_slab', wall: 'minecraft:blackstone_wall', - dust: 'gtceu:blackstone_dust', loose: null, stonecutting: false }, // Raw - - { raw: 'tfg:rock/cobble_blackstone', stair: 'tfg:rock/cobble_blackstone_stairs', slab: 'tfg:rock/cobble_blackstone_slab', wall: 'tfg:rock/cobble_blackstone_wall', - dust: 'gtceu:blackstone_dust', loose: 'beneath:blackstone_pebble', stonecutting: true }, // Cobble - - { raw: 'tfg:rock/mossy_cobble_blackstone', stair: 'tfg:rock/mossy_cobble_blackstone_stairs', slab: 'tfg:rock/mossy_cobble_blackstone_slab', wall: 'tfg:rock/mossy_cobble_blackstone_wall', - dust: 'gtceu:blackstone_dust', loose: null, stonecutting: true }, // Cobble - Mossy - - { raw: 'minecraft:polished_blackstone', stair: 'minecraft:polished_blackstone_stairs', slab: 'minecraft:polished_blackstone_slab', wall: 'minecraft:polished_blackstone_wall', - dust: 'gtceu:blackstone_dust', loose: null, stonecutting: false }, // Smooth - - { raw: 'minecraft:polished_blackstone_bricks', stair: 'minecraft:polished_blackstone_brick_stairs', slab: 'minecraft:polished_blackstone_brick_slab', wall: 'minecraft:polished_blackstone_brick_wall', - dust: 'gtceu:blackstone_dust', loose: null, stonecutting: false }, // Bricks - - { raw: 'minecraft:cracked_polished_blackstone_bricks', stair: 'tfg:rock/cracked_bricks_blackstone_stairs', slab: 'tfg:rock/cracked_bricks_blackstone_slab', wall: 'tfg:rock/cracked_bricks_blackstone_wall', - dust: 'gtceu:blackstone_dust', loose: null, stonecutting: true }, // Bricks - Cracked - - { raw: 'tfg:rock/mossy_bricks_blackstone', stair: 'tfg:rock/mossy_bricks_blackstone_stairs', slab: 'tfg:rock/mossy_bricks_blackstone_slab', wall: 'tfg:rock/mossy_bricks_blackstone_wall', - dust: 'gtceu:blackstone_dust', loose: null, stonecutting: true }, // Bricks - Mossy - - // Dripstone - { raw: 'minecraft:dripstone_block', stair: 'tfg:rock/dripstone_stairs', slab: 'tfg:rock/dripstone_slab', wall: 'tfg:rock/dripstone_wall', - dust: 'tfg:dripstone_dust', loose: null, stonecutting: true }, // Raw - - { raw: 'tfg:rock/cobble_dripstone', stair: 'tfg:rock/cobble_dripstone_stairs', slab: 'tfg:rock/cobble_dripstone_slab', wall: 'tfg:rock/cobble_dripstone_wall', - dust: 'tfg:dripstone_dust', loose: 'tfg:loose/dripstone', stonecutting: true }, // Cobble - - { raw: 'tfg:rock/mossy_cobble_dripstone', stair: 'tfg:rock/mossy_cobble_dripstone_stairs', slab: 'tfg:rock/mossy_cobble_dripstone_slab', wall: 'tfg:rock/mossy_cobble_dripstone_wall', - dust: 'tfg:dripstone_dust', loose: null, stonecutting: true }, // Cobble - Mossy - - { raw: 'create:polished_cut_dripstone', stair: 'create:polished_cut_dripstone_stairs', slab: 'create:polished_cut_dripstone_slab', wall: 'create:polished_cut_dripstone_wall', - dust: 'tfg:dripstone_dust', loose: null, stonecutting: false }, // Smooth - - { raw: 'create:cut_dripstone', stair: 'create:cut_dripstone_stairs', slab: 'create:cut_dripstone_slab', wall: 'create:cut_dripstone_wall', - dust: 'tfg:dripstone_dust', loose: null, stonecutting: false }, // Smooth - - { raw: 'create:cut_dripstone_bricks', stair: 'create:cut_dripstone_brick_stairs', slab: 'create:cut_dripstone_brick_slab', wall: 'create:cut_dripstone_brick_wall', - dust: 'tfg:dripstone_dust', loose: null, stonecutting: false }, // Bricks - - { raw: 'tfg:rock/cracked_bricks_dripstone', stair: 'tfg:rock/cracked_bricks_dripstone_stairs', slab: 'tfg:rock/cracked_bricks_dripstone_slab', wall: 'tfg:rock/cracked_bricks_dripstone_wall', - dust: 'tfg:dripstone_dust', loose: null, stonecutting: true }, // Bricks - Cracked - - { raw: 'tfg:rock/mossy_bricks_dripstone', stair: 'tfg:rock/mossy_bricks_dripstone_stairs', slab: 'tfg:rock/mossy_bricks_dripstone_slab', wall: 'tfg:rock/mossy_bricks_dripstone_wall', - dust: 'tfg:dripstone_dust', loose: null, stonecutting: true }, // Bricks - Mossy - - { raw: 'create:small_dripstone_bricks', stair: 'create:small_dripstone_brick_stairs', slab: 'create:small_dripstone_brick_slab', wall: 'create:small_dripstone_brick_wall', - dust: 'tfg:dripstone_dust', loose: null, stonecutting: false }, // Bricks - Extra - - // Crackrack / Nether - { raw: 'beneath:crackrack', stair: 'tfg:rock/crackrack_stairs', slab: 'tfg:rock/crackrack_slab', wall: 'tfg:rock/crackrack_wall', - dust: 'gtceu:netherrack_dust', loose: null, stonecutting: true }, // Raw - - { raw: 'tfg:rock/cobble_crackrack', stair: 'tfg:rock/cobble_crackrack_stairs', slab: 'tfg:rock/cobble_crackrack_slab', wall: 'tfg:rock/cobble_crackrack_wall', - dust: 'gtceu:netherrack_dust', loose: 'tfg:loose/crackrack', stonecutting: true }, // Cobble - - { raw: 'tfg:rock/mossy_cobble_crackrack', stair: 'tfg:rock/mossy_cobble_crackrack_stairs', slab: 'tfg:rock/mossy_cobble_crackrack_slab', wall: 'tfg:rock/mossy_cobble_crackrack_wall', - dust: 'gtceu:netherrack_dust', loose: null, stonecutting: true }, // Cobble - Mossy - - { raw: 'tfg:rock/polished_crackrack', stair: 'tfg:rock/polished_crackrack_stairs', slab: 'tfg:rock/polished_crackrack_slab', wall: 'tfg:rock/polished_crackrack_wall', - dust: 'gtceu:netherrack_dust', loose: null, stonecutting: true }, // Smooth - - { raw: 'minecraft:nether_bricks', stair: 'minecraft:nether_brick_stairs', slab: 'minecraft:nether_brick_slab', wall: 'minecraft:nether_brick_wall', - dust: 'gtceu:netherrack_dust', loose: null, stonecutting: true }, // Bricks - - { raw: 'minecraft:cracked_nether_bricks', stair: 'tfg:rock/cracked_bricks_nether_stairs', slab: 'tfg:rock/cracked_bricks_nether_slab', wall: 'tfg:rock/cracked_bricks_nether_wall', - dust: 'gtceu:netherrack_dust', loose: null, stonecutting: true }, // Bricks - Cracked - - { raw: 'tfg:rock/mossy_bricks_nether', stair: 'tfg:rock/mossy_bricks_nether_stairs', slab: 'tfg:rock/mossy_bricks_nether_slab', wall: 'tfg:rock/mossy_bricks_nether_wall', - dust: 'gtceu:netherrack_dust', loose: null, stonecutting: true }, // Bricks - Mossy - - { raw: 'minecraft:nether_brick_wall', stair: null, slab: null, wall: 'minecraft:nether_brick_fence', - dust: null, loose: null, stonecutting: true }, - // #endregion Nether - ] - - // #region Space - const AA_REGULAR_STONES = ['moon', 'mars', 'venus', 'mercury', 'glacio'] - - CUT_GRIND = CUT_GRIND.concat( (AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => ( - { raw: `ad_astra:${stone}_stone`, stair: `ad_astra:${stone}_stone_stairs`, slab: `ad_astra:${stone}_stone_slab`, wall: `tfg:rock/${stone}_stone_wall`, - dust: `tfg:${stone}_stone_dust`, loose: null, stonecutting: true } // Raw - )) ) - CUT_GRIND = CUT_GRIND.concat( (AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => ( - { raw: `ad_astra:${stone}_cobblestone`, stair: `ad_astra:${stone}_cobblestone_stairs`, slab: `ad_astra:${stone}_cobblestone_slab`, wall: `tfg:rock/cobble_${stone}_wall`, - dust: `tfg:${stone}_stone_dust`, loose: `tfg:loose/${stone}_stone`, stonecutting: true } // Cobble - )) ) - CUT_GRIND = CUT_GRIND.concat( (AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => ( - { raw: `tfg:rock/mossy_cobble_${stone}`, stair: `tfg:rock/mossy_cobble_${stone}_stairs`, slab: `tfg:rock/mossy_cobble_${stone}_slab`, wall: `tfg:rock/mossy_cobble_${stone}_wall`, - dust: `tfg:${stone}_stone_dust`, loose: null, stonecutting: true } // Cobble - Mossy - )) ) - CUT_GRIND = CUT_GRIND.concat( (AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => ( - { raw: `ad_astra:polished_${stone}_stone`, stair: `ad_astra:polished_${stone}_stone_stairs`, slab: `ad_astra:polished_${stone}_stone_slab`, wall: `tfg:rock/polished_${stone}_wall`, - dust: `tfg:${stone}_stone_dust`, loose: null, stonecutting: true } // Smooth - )) ) - CUT_GRIND = CUT_GRIND.concat( (AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => ( - { raw: `ad_astra:${stone}_stone_bricks`, stair: `ad_astra:${stone}_stone_brick_stairs`, slab: `ad_astra:${stone}_stone_brick_slab`, wall: `ad_astra:${stone}_stone_brick_wall`, - dust: `tfg:${stone}_stone_dust`, loose: null, stonecutting: true } // Bricks - )) ) - CUT_GRIND = CUT_GRIND.concat( (AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => ( - { raw: `ad_astra:cracked_${stone}_stone_bricks`, stair: `tfg:rock/cracked_bricks_${stone}_stairs`, slab: `tfg:rock/cracked_bricks_${stone}_slab`, wall: `tfg:rock/cracked_bricks_${stone}_wall`, - dust: `tfg:${stone}_stone_dust`, loose: null, stonecutting: true } // Bricks - Cracked - )) ) - CUT_GRIND = CUT_GRIND.concat( (AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => ( - { raw: `tfg:rock/mossy_bricks_${stone}`, stair: `tfg:rock/mossy_bricks_${stone}_stairs`, slab: `tfg:rock/mossy_bricks_${stone}_slab`, wall: `tfg:rock/mossy_bricks_${stone}_wall`, - dust: `tfg:${stone}_stone_dust`, loose: null, stonecutting: true } // Bricks - Mossy - )) ) - CUT_GRIND = CUT_GRIND.concat( (AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => ( - { raw: `ad_astra:chiseled_${stone}_stone_bricks`, stair: `ad_astra:chiseled_${stone}_stone_stairs`, slab: `ad_astra:chiseled_${stone}_stone_slab`, wall: `tfg:rock/chiseled_bricks_${stone}_wall`, - dust: `tfg:${stone}_stone_dust`, loose: null, stonecutting: true } // Bricks - Extra - )) ) - - CUT_GRIND = CUT_GRIND.concat([ - // Moon Deepstone - { raw: 'ad_astra:moon_deepslate', stair: 'tfg:rock/moon_deepslate_stairs', slab: 'tfg:rock/moon_deepslate_slab', wall: 'tfg:rock/moon_deepslate_wall', - dust: 'tfg:moon_deepslate_dust', loose: null, stonecutting: true }, // Raw - - { raw: 'tfg:rock/cobble_moon_deepslate', stair: 'tfg:rock/cobble_moon_deepslate_stairs', slab: 'tfg:rock/cobble_moon_deepslate_slab', wall: 'tfg:rock/cobble_moon_deepslate_wall', - dust: 'tfg:moon_deepslate_dust', loose: 'tfg:loose/moon_deepslate', stonecutting: true }, // Cobble - - { raw: 'tfg:rock/mossy_cobble_moon_deepslate', stair: 'tfg:rock/mossy_cobble_moon_deepslate_stairs', slab: 'tfg:rock/mossy_cobble_moon_deepslate_slab', wall: 'tfg:rock/mossy_cobble_moon_deepslate_wall', - dust: 'tfg:moon_deepslate_dust', loose: null, stonecutting: true }, // Cobble - Mossy - - { raw: 'tfg:rock/polished_moon_deepslate', stair: 'tfg:rock/polished_moon_deepslate_stairs', slab: 'tfg:rock/polished_moon_deepslate_slab', wall: 'tfg:rock/polished_moon_deepslate_wall', - dust: 'tfg:moon_deepslate_dust', loose: null, stonecutting: true }, // Smooth - - { raw: 'tfg:rock/bricks_moon_deepslate', stair: 'tfg:rock/bricks_moon_deepslate_stairs', slab: 'tfg:rock/bricks_moon_deepslate_slab', wall: 'tfg:rock/bricks_moon_deepslate_wall', - dust: 'tfg:moon_deepslate_dust', loose: null, stonecutting: true }, // Bricks - - { raw: 'tfg:rock/cracked_bricks_moon_deepslate', stair: 'tfg:rock/cracked_bricks_moon_deepslate_stairs', slab: 'tfg:rock/cracked_bricks_moon_deepslate_slab', wall: 'tfg:rock/cracked_bricks_moon_deepslate_wall', - dust: 'tfg:moon_deepslate_dust', loose: null, stonecutting: true }, // Bricks - Cracked - - { raw: 'tfg:rock/mossy_bricks_moon_deepslate', stair: 'tfg:rock/mossy_bricks_moon_deepslate_stairs' , slab: 'tfg:rock/mossy_bricks_moon_deepslate_slab', wall: 'tfg:rock/mossy_bricks_moon_deepslate_wall', - dust: 'tfg:moon_deepslate_dust', loose: null, stonecutting: true }, // Bricks - Mossy - - { raw: 'tfg:rock/chiseled_bricks_moon_deepslate', stair: 'tfg:rock/chiseled_bricks_moon_deepslate_stairs', slab: 'tfg:rock/chiseled_bricks_moon_deepslate_slab', wall: 'tfg:rock/chiseled_bricks_moon_deepslate_wall', - dust: 'tfg:moon_deepslate_dust', loose: null, stonecutting: true }, // Bricks - Extra - - // Permafrost - { raw: 'ad_astra:permafrost', stair: 'tfg:rock/permafrost_stairs', slab: 'tfg:rock/permafrost_slab', wall: 'tfg:rock/permafrost_wall', - dust: 'gtceu:ice_dust', loose: null, stonecutting: true }, // Raw - - { raw: 'tfg:rock/cobble_permafrost', stair: 'tfg:rock/cobble_permafrost_stairs', slab: 'tfg:rock/cobble_permafrost_slab', wall: 'tfg:rock/cobble_permafrost_wall', - dust: 'gtceu:ice_dust', loose: 'tfg:loose/permafrost', stonecutting: true }, // Cobble - - { raw: 'tfg:rock/mossy_cobble_permafrost', stair: 'tfg:rock/mossy_cobble_permafrost_stairs', slab: 'tfg:rock/mossy_cobble_permafrost_slab', wall: 'tfg:rock/mossy_cobble_permafrost_wall', - dust: 'gtceu:ice_dust', loose: null, stonecutting: true }, // Cobble - Mossy - - { raw: 'ad_astra:polished_permafrost', stair: 'ad_astra:polished_permafrost_stairs', slab: 'ad_astra:polished_permafrost_slab', wall: 'tfg:rock/polished_permafrost_wall', - dust: 'gtceu:ice_dust', loose: null, stonecutting: true }, // Smooth - - { raw: 'ad_astra:permafrost_bricks', stair: 'ad_astra:permafrost_brick_stairs', slab: 'ad_astra:permafrost_brick_slab', wall: 'ad_astra:permafrost_brick_wall', - dust: 'gtceu:ice_dust', loose: null, stonecutting: true }, // Bricks - - { raw: 'ad_astra:cracked_permafrost_bricks', stair: 'tfg:rock/cracked_bricks_permafrost_stairs', slab: 'tfg:rock/cracked_bricks_permafrost_slab', wall: 'tfg:rock/cracked_bricks_permafrost_wall', - dust: 'gtceu:ice_dust', loose: null, stonecutting: true }, // Bricks - Cracked - - { raw: 'tfg:rock/mossy_bricks_permafrost', stair: 'tfg:rock/mossy_bricks_permafrost_stairs', slab: 'tfg:rock/mossy_bricks_permafrost_slab', wall: 'tfg:rock/mossy_bricks_permafrost_wall', - dust: 'gtceu:ice_dust', loose: null, stonecutting: true }, // Bricks - Mossy - - { raw: 'ad_astra:chiseled_permafrost_bricks', stair: 'ad_astra:chiseled_permafrost_brick_stairs', slab: 'ad_astra:chiseled_permafrost_brick_slab', wall: 'tfg:rock/chiseled_bricks_permafrost_wall', - dust: 'gtceu:ice_dust', loose: null, stonecutting: true }, // Bricks - Extra - - // Red Granite - { raw: 'gtceu:red_granite', stair: 'tfg:rock/red_granite_stairs', slab: 'tfg:rock/red_granite_slab', wall: 'tfg:rock/red_granite_wall', - dust: 'gtceu:granite_red_dust', loose: null, stonecutting: true }, // Raw - - { raw: 'gtceu:red_granite_cobblestone', stair: 'tfg:rock/cobble_red_granite_stairs', slab: 'tfg:rock/cobble_red_granite_slab', wall: 'tfg:rock/cobble_red_granite_wall', - dust: 'gtceu:granite_red_dust', loose: 'tfg:loose/red_granite', stonecutting: true }, // Cobble - - { raw: 'gtceu:mossy_red_granite_cobblestone', stair: 'tfg:rock/mossy_cobble_red_granite_stairs', slab: 'tfg:rock/mossy_cobble_red_granite_slab', wall: 'tfg:rock/mossy_cobble_red_granite_wall', - dust: 'gtceu:granite_red_dust', loose: null, stonecutting: true }, // Cobble - Mossy - - { raw: 'gtceu:polished_red_granite', stair: 'tfg:rock/polished_red_granite_stairs', slab: 'tfg:rock/polished_red_granite_slab', wall: 'tfg:rock/polished_red_granite_wall', - dust: 'gtceu:granite_red_dust', loose: null, stonecutting: true }, // Smooth - - { raw: 'gtceu:red_granite_bricks', stair: 'tfg:rock/bricks_red_granite_stairs', slab: 'tfg:rock/bricks_red_granite_slab', wall: 'tfg:rock/bricks_red_granite_wall', - dust: 'gtceu:granite_red_dust', loose: null, stonecutting: true }, // Bricks - - { raw: 'gtceu:cracked_red_granite_bricks', stair: 'tfg:rock/cracked_bricks_red_granite_stairs', slab: 'tfg:rock/cracked_bricks_red_granite_slab', wall: 'tfg:rock/cracked_bricks_red_granite_wall', - dust: 'gtceu:granite_red_dust', loose: null, stonecutting: true }, // Bricks - Cracked - - { raw: 'gtceu:mossy_red_granite_bricks', stair: 'tfg:rock/mossy_bricks_red_granite_stairs', slab: 'tfg:rock/mossy_bricks_red_granite_slab', wall: 'tfg:rock/mossy_bricks_red_granite_wall', - dust: 'gtceu:granite_red_dust', loose: null, stonecutting: true }, // Bricks - Mossy - - // Red Sandstone - { raw: 'minecraft:red_sandstone', stair: 'minecraft:red_sandstone_stairs', slab: 'minecraft:red_sandstone_slab', wall: 'minecraft:red_sandstone_wall', - dust: null, loose: null, stonecutting: true }, // Raw - - { raw: 'minecraft:smooth_red_sandstone', stair: 'minecraft:smooth_red_sandstone_stairs', slab: 'minecraft:smooth_red_sandstone_slab', wall: 'tfg:rock/smooth_red_sandstone_wall', - dust: null, loose: null, stonecutting: true }, // Smooth - - { raw: 'minecraft:cut_red_sandstone', stair: 'tfg:rock/cut_red_sandstone_stairs', slab: 'minecraft:smooth_red_sandstone_slab', wall: 'tfg:rock/cut_red_sandstone_wall', - dust: null, loose: null, stonecutting: true }, // Smooth - Extra - - // Venus Sandstone - { raw: 'ad_astra:venus_sandstone_bricks', stair: 'ad_astra:venus_sandstone_brick_stairs', slab: 'ad_astra:venus_sandstone_brick_slab', wall: 'tfg:rock/bricks_venus_sandstone_wall', - dust: null, loose: null, stonecutting: true }, // Bricks - - { raw: 'ad_astra:cracked_venus_sandstone_bricks', stair: 'tfg:rock/cracked_bricks_venus_sandstone_stairs', slab: 'tfg:rock/cracked_bricks_venus_sandstone_slab', wall: 'tfg:rock/cracked_bricks_venus_sandstone_wall', - dust: null, loose: null, stonecutting: true }, // Bricks - Cracked - - // Certus Quartz - { raw: 'ae2:quartz_block', stair: 'ae2:quartz_stairs', slab: 'ae2:quartz_slab', wall: 'ae2:quartz_wall', - dust: null, loose: null, stonecutting: false }, // Raw - - { raw: 'ae2:cut_quartz_block', stair: 'ae2:cut_quartz_stairs', slab: 'ae2:cut_quartz_slab', wall: 'ae2:cut_quartz_wall', - dust: null, loose: null, stonecutting: false }, // Smooth - - { raw: 'ae2:quartz_bricks', stair: 'ae2:quartz_brick_stairs', slab: 'ae2:quartz_brick_slab', wall: 'ae2:quartz_brick_wall', - dust: null, loose: null, stonecutting: false }, // Bricks - - { raw: 'ae2:chiseled_quartz_block', stair: 'ae2:chiseled_quartz_stairs', slab: 'ae2:chiseled_quartz_slab', wall: 'ae2:chiseled_quartz_wall', - dust: null, loose: null, stonecutting: false }, // Chiseled - - { raw: 'ae2:quartz_pillar', stair: 'ae2:quartz_pillar_stairs', slab: 'ae2:quartz_pillar_slab', wall: 'ae2:quartz_pillar_wall', - dust: null, loose: null, stonecutting: false }, // Pillar - - // Other Space Blocks - { raw: 'ae2:sky_stone_block', stair: 'ae2:sky_stone_stairs', slab: 'ae2:sky_stone_slab', wall: 'ae2:sky_stone_wall', - dust: 'ae2:sky_dust', loose: null, stonecutting: true }, - - { raw: 'ae2:smooth_sky_stone_block', stair: 'ae2:smooth_sky_stone_stairs', slab: 'ae2:smooth_sky_stone_slab', wall: 'ae2:smooth_sky_stone_wall', - dust: 'ae2:sky_dust', loose: null, stonecutting: true }, - - { raw: 'ae2:sky_stone_brick', stair: 'ae2:sky_stone_brick_stairs', slab: 'ae2:sky_stone_brick_slab', wall: 'ae2:sky_stone_brick_wall', - dust: 'ae2:sky_dust', loose: null, stonecutting: true }, - - { raw: 'ae2:sky_stone_small_brick', stair: 'ae2:sky_stone_small_brick_stairs', slab: 'ae2:sky_stone_small_brick_slab', wall: 'ae2:sky_stone_small_brick_wall', - dust: 'ae2:sky_dust', loose: null, stonecutting: true }, - - { raw: 'ae2:fluix_block', stair: 'ae2:fluix_stairs', slab: 'ae2:fluix_slab', wall: 'ae2:fluix_wall', - dust: 'ae2:fluix_dust', loose: null, stonecutting: true }, - - { raw: 'minecraft:purpur_block', stair: 'minecraft:purpur_stairs', slab: 'minecraft:purpur_slab', wall: null, - dust: null, loose: null, stonecutting: true }, - // #endregion Space - - // #region Vanilla Blocks - // Reconstituted Stone - { raw: 'minecraft:stone', stair: 'minecraft:stone_stairs', slab: 'minecraft:stone_slab', wall: 'tfg:rock/stone_wall', - dust: 'gtceu:stone_dust', loose: null, stonecutting: true }, // Raw - - { raw: 'minecraft:cobblestone', stair: 'minecraft:cobblestone_stairs', slab: 'minecraft:cobblestone_slab', wall: 'minecraft:cobblestone_wall', - dust: 'gtceu:stone_dust', loose: null, stonecutting: true }, // Cobble - - { raw: 'minecraft:mossy_cobblestone', stair: 'minecraft:mossy_cobblestone_stairs', slab: 'minecraft:mossy_cobblestone_slab', wall: 'minecraft:mossy_cobblestone_wall', - dust: 'gtceu:stone_dust', loose: null, stonecutting: true }, // Cobble - Mossy - - { raw: 'minecraft:smooth_stone', stair: 'tfg:rock/smooth_stone_stairs', slab: 'minecraft:smooth_stone_slab', wall: 'tfg:rock/smooth_stone_wall', - dust: 'gtceu:stone_dust', loose: null, stonecutting: true }, // Smooth - - { raw: 'minecraft:stone_bricks', stair: 'minecraft:stone_brick_stairs', slab: 'minecraft:stone_brick_slab', wall: 'minecraft:stone_brick_wall', - dust: 'gtceu:stone_dust', loose: null, stonecutting: true }, // Brick - - { raw: 'minecraft:cracked_stone_bricks', stair: 'tfg:rock/cracked_bricks_stone_stairs', slab: 'tfg:rock/cracked_bricks_stone_slab', wall: 'tfg:rock/cracked_bricks_stone_wall', - dust: 'gtceu:stone_dust', loose: null, stonecutting: true }, // Brick - Cracked - - { raw: 'minecraft:mossy_stone_bricks', stair: 'minecraft:mossy_stone_brick_stairs', slab: 'minecraft:mossy_stone_brick_slab', wall: 'minecraft:mossy_stone_brick_wall', - dust: 'gtceu:stone_dust', loose: null, stonecutting: true }, // Brick - Mossy - - // Quartz - { raw: 'minecraft:quartz_block', stair: 'minecraft:quartz_stairs', slab: 'minecraft:quartz_slab', wall: 'tfg:rock/quartz_wall', - dust: null, loose: null, stonecutting: false }, // Raw - - { raw: 'minecraft:smooth_quartz', stair: 'minecraft:smooth_quartz_stairs', slab: 'minecraft:quartz_slab', wall: 'tfg:rock/smooth_quartz_wall', - dust: null, loose: null, stonecutting: false }, // Smooth - - // #endregion Vanilla Blocks - // #region @Create Stones - // @Create Andesite - { raw: 'create:cut_andesite', stair: 'create:cut_andesite_stairs', slab: 'create:cut_andesite_slab', wall: 'create:cut_andesite_wall', - dust: 'gtceu:andesite_dust', loose: null, stonecutting: false }, // Raw - - { raw: 'create:polished_cut_andesite', stair: 'create:polished_cut_andesite_stairs', slab: 'create:polished_cut_andesite_slab', wall: 'create:polished_cut_andesite_wall', - dust: 'gtceu:andesite_dust', loose: null, stonecutting: false }, // Smooth - - { raw: 'create:cut_andesite_bricks', stair: 'create:cut_andesite_brick_stairs', slab: 'create:cut_andesite_brick_slab', wall: 'create:cut_andesite_brick_wall', - dust: 'gtceu:andesite_dust', loose: null, stonecutting: false }, // Bricks - - { raw: 'create:small_andesite_bricks', stair: 'create:small_andesite_brick_stairs', slab: 'create:small_andesite_brick_slab', wall: 'create:small_andesite_brick_wall', - dust: 'gtceu:andesite_dust', loose: null, stonecutting: false }, // Bricks - Extra - - // @Create Calcite - { raw: 'create:cut_calcite', stair: 'create:cut_calcite_stairs', slab: 'create:cut_calcite_slab', wall: 'create:cut_calcite_wall', - dust: 'gtceu:calcite_dust', loose: null, stonecutting: false }, // Raw - - { raw: 'create:polished_cut_calcite', stair: 'create:polished_cut_calcite_stairs', slab: 'create:polished_cut_calcite_slab', wall: 'create:polished_cut_calcite_wall', - dust: 'gtceu:calcite_dust', loose: null, stonecutting: false }, // Smooth - - { raw: 'create:cut_calcite_bricks', stair: 'create:cut_calcite_brick_stairs', slab: 'create:cut_calcite_brick_slab', wall: 'create:cut_calcite_brick_wall', - dust: 'gtceu:calcite_dust', loose: null, stonecutting: false }, // Bricks - - { raw: 'create:small_calcite_bricks', stair: 'create:small_calcite_brick_stairs', slab: 'create:small_calcite_brick_slab', wall: 'create:small_calcite_brick_wall', - dust: 'gtceu:calcite_dust', loose: null, stonecutting: false }, // Bricks - Extra - - // @Create Granite (Chert) - { raw: 'create:cut_granite', stair: 'create:cut_granite_stairs', slab: 'create:cut_granite_slab', wall: 'create:cut_granite_wall', - dust: 'tfg:chert_dust', loose: null, stonecutting: false }, // Raw - - { raw: 'create:polished_cut_granite', stair: 'create:polished_cut_granite_stairs', slab: 'create:polished_cut_granite_slab', wall: 'create:polished_cut_granite_wall', - dust: 'tfg:chert_dust', loose: null, stonecutting: false }, // Smooth - - { raw: 'create:cut_granite_bricks', stair: 'create:cut_granite_brick_stairs', slab: 'create:cut_granite_brick_slab', wall: 'create:cut_granite_brick_wall', - dust: 'tfg:chert_dust', loose: null, stonecutting: false }, // Bricks - - { raw: 'create:small_granite_bricks', stair: 'create:small_granite_brick_stairs', slab: 'create:small_granite_brick_slab', wall: 'create:small_granite_brick_wall', - dust: 'tfg:chert_dust', loose: null, stonecutting: false }, // Bricks - Extra - - // @Create Diorite - { raw: 'create:cut_diorite', stair: 'create:cut_diorite_stairs', slab: 'create:cut_diorite_slab', wall: 'create:cut_diorite_wall', - dust: 'gtceu:diorite_dust', loose: null, stonecutting: false }, // Raw - - { raw: 'create:polished_cut_diorite', stair: 'create:polished_cut_diorite_stairs', slab: 'create:polished_cut_diorite_slab', wall: 'create:polished_cut_diorite_wall', - dust: 'gtceu:diorite_dust', loose: null, stonecutting: false }, // Smooth - - { raw: 'create:cut_diorite_bricks', stair: 'create:cut_diorite_brick_stairs', slab: 'create:cut_diorite_brick_slab', wall: 'create:cut_diorite_brick_wall', - dust: 'gtceu:diorite_dust', loose: null, stonecutting: false }, // Bricks - - { raw: 'create:small_diorite_bricks', stair: 'create:small_diorite_brick_stairs', slab: 'create:small_diorite_brick_slab', wall: 'create:small_diorite_brick_wall', - dust: 'gtceu:diorite_dust', loose: null, stonecutting: false }, // Bricks - Extra - - // @Create Limestone - { raw: 'create:cut_limestone', stair: 'create:cut_limestone_stairs', slab: 'create:cut_limestone_slab', wall: 'create:cut_limestone_wall', - dust: 'tfg:limestone_dust', loose: null, stonecutting: false }, // Raw - - { raw: 'create:polished_cut_limestone', stair: 'create:polished_cut_limestone_stairs', slab: 'create:polished_cut_limestone_slab', wall: 'create:polished_cut_limestone_wall', - dust: 'tfg:limestone_dust', loose: null, stonecutting: false }, // Smooth - - { raw: 'create:cut_limestone_bricks', stair: 'create:cut_limestone_brick_stairs', slab: 'create:cut_limestone_brick_slab', wall: 'create:cut_limestone_brick_wall', - dust: 'tfg:limestone_dust', loose: null, stonecutting: false }, // Bricks - - { raw: 'create:small_limestone_bricks', stair: 'create:small_limestone_brick_stairs', slab: 'create:small_limestone_brick_slab', wall: 'create:small_limestone_brick_wall', - dust: 'tfg:limestone_dust', loose: null, stonecutting: false }, // Bricks - Extra - - // @Create Asurine - { raw: 'create:cut_asurine', stair: 'create:cut_asurine_stairs', slab: 'create:cut_asurine_slab', wall: 'create:cut_asurine_wall', - dust: 'gtceu:asurine_dust', loose: null, stonecutting: false }, // Raw - - { raw: 'create:polished_cut_asurine', stair: 'create:polished_cut_asurine_stairs', slab: 'create:polished_cut_asurine_slab', wall: 'create:polished_cut_asurine_wall', - dust: 'gtceu:asurine_dust', loose: null, stonecutting: false }, // Smooth - - { raw: 'create:cut_asurine_bricks', stair: 'create:cut_asurine_brick_stairs', slab: 'create:cut_asurine_brick_slab', wall: 'create:cut_asurine_brick_wall', - dust: 'gtceu:asurine_dust', loose: null, stonecutting: false }, // Bricks - - { raw: 'create:small_asurine_bricks', stair: 'create:small_asurine_brick_stairs', slab: 'create:small_asurine_brick_slab', wall: 'create:small_asurine_brick_wall', - dust: 'gtceu:asurine_dust', loose: null, stonecutting: false }, // Bricks - Extra - - // @Create Crimsite - { raw: 'create:cut_crimsite', stair: 'create:cut_crimsite_stairs', slab: 'create:cut_crimsite_slab', wall: 'create:cut_crimsite_wall', - dust: null, loose: null, stonecutting: false }, // Raw - - { raw: 'create:polished_cut_crimsite', stair: 'create:polished_cut_crimsite_stairs', slab: 'create:polished_cut_crimsite_slab', wall: 'create:polished_cut_crimsite_wall', - dust: null, loose: null, stonecutting: false }, // Smooth - - { raw: 'create:cut_crimsite_bricks', stair: 'create:cut_crimsite_brick_stairs', slab: 'create:cut_crimsite_brick_slab', wall: 'create:cut_crimsite_brick_wall', - dust: null, loose: null, stonecutting: false }, // Bricks - - { raw: 'create:small_crimsite_bricks', stair: 'create:small_crimsite_brick_stairs', slab: 'create:small_crimsite_brick_slab', wall: 'create:small_crimsite_brick_wall', - dust: null, loose: null, stonecutting: false }, // Bricks - Extra - - // @Create Ochrum - { raw: 'create:cut_ochrum', stair: 'create:cut_ochrum_stairs', slab: 'create:cut_ochrum_slab', wall: 'create:cut_ochrum_wall', - dust: 'gtceu:ochrum_dust', loose: null, stonecutting: false }, // Raw - - { raw: 'create:polished_cut_ochrum', stair: 'create:polished_cut_ochrum_stairs', slab: 'create:polished_cut_ochrum_slab', wall: 'create:polished_cut_ochrum_wall', - dust: 'gtceu:ochrum_dust', loose: null, stonecutting: false }, // Smooth - - { raw: 'create:cut_ochrum_bricks', stair: 'create:cut_ochrum_brick_stairs', slab: 'create:cut_ochrum_brick_slab', wall: 'create:cut_ochrum_brick_wall', - dust: 'gtceu:ochrum_dust', loose: null, stonecutting: false }, // Bricks - - { raw: 'create:small_ochrum_bricks', stair: 'create:small_ochrum_brick_stairs', slab: 'create:small_ochrum_brick_slab', wall: 'create:small_ochrum_brick_wall', - dust: 'gtceu:ochrum_dust', loose: null, stonecutting: false }, // Bricks - Extra - - // @Create Scorchia - { raw: 'create:cut_scorchia', stair: 'create:cut_scorchia_stairs', slab: 'create:cut_scorchia_slab', wall: 'create:cut_scorchia_wall', - dust: null, loose: null, stonecutting: false }, // Raw - - { raw: 'create:polished_cut_scorchia', stair: 'create:polished_cut_scorchia_stairs', slab: 'create:polished_cut_scorchia_slab', wall: 'create:polished_cut_scorchia_wall', - dust: null, loose: null, stonecutting: false }, // Smooth - - { raw: 'create:cut_scorchia_bricks', stair: 'create:cut_scorchia_brick_stairs', slab: 'create:cut_scorchia_brick_slab', wall: 'create:cut_scorchia_brick_wall', - dust: null, loose: null, stonecutting: false }, // Bricks - - { raw: 'create:small_scorchia_bricks', stair: 'create:small_scorchia_brick_stairs', slab: 'create:small_scorchia_brick_slab', wall: 'create:small_scorchia_brick_wall', - dust: null, loose: null, stonecutting: false }, // Bricks - Extra - - // @Create Scoria - { raw: 'create:cut_scoria', stair: 'create:cut_scoria_stairs', slab: 'create:cut_scoria_slab', wall: 'create:cut_scoria_wall', - dust: null, loose: null, stonecutting: false }, // Raw - - { raw: 'create:polished_cut_scoria', stair: 'create:polished_cut_scoria_stairs', slab: 'create:polished_cut_scoria_slab', wall: 'create:polished_cut_scoria_wall', - dust: null, loose: null, stonecutting: false }, // Smooth - - { raw: 'create:cut_scoria_bricks', stair: 'create:cut_scoria_brick_stairs', slab: 'create:cut_scoria_brick_slab', wall: 'create:cut_scoria_brick_wall', - dust: null, loose: null, stonecutting: false }, // Bricks - - { raw: 'create:small_scoria_bricks', stair: 'create:small_scoria_brick_stairs', slab: 'create:small_scoria_brick_slab', wall: 'create:small_scoria_brick_wall', - dust: null, loose: null, stonecutting: false }, // Bricks - Extra - - // @Create Tuff - { raw: 'create:cut_tuff', stair: 'create:cut_tuff_stairs', slab: 'create:cut_tuff_slab', wall: 'create:cut_tuff_wall', - dust: null, loose: null, stonecutting: false }, // Raw - - { raw: 'create:polished_cut_tuff', stair: 'create:polished_cut_tuff_stairs', slab: 'create:polished_cut_tuff_slab', wall: 'create:polished_cut_tuff_wall', - dust: null, loose: null, stonecutting: false }, // Smooth - - { raw: 'create:cut_tuff_bricks', stair: 'create:cut_tuff_brick_stairs', slab: 'create:cut_tuff_brick_slab', wall: 'create:cut_tuff_brick_wall', - dust: null, loose: null, stonecutting: false }, // Bricks - - { raw: 'create:small_tuff_bricks', stair: 'create:small_tuff_brick_stairs', slab: 'create:small_tuff_brick_slab', wall: 'create:small_tuff_brick_wall', - dust: null, loose: null, stonecutting: false }, // Bricks - Extra - - // @Create Veridium - { raw: 'create:cut_veridium', stair: 'create:cut_veridium_stairs', slab: 'create:cut_veridium_slab', wall: 'create:cut_veridium_wall', - dust: null, loose: null, stonecutting: false }, // Raw - - { raw: 'create:polished_cut_veridium', stair: 'create:polished_cut_veridium_stairs', slab: 'create:polished_cut_veridium_slab', wall: 'create:polished_cut_veridium_wall', - dust: null, loose: null, stonecutting: false }, // Smooth - - { raw: 'create:cut_veridium_bricks', stair: 'create:cut_veridium_brick_stairs', slab: 'create:cut_veridium_brick_slab', wall: 'create:cut_veridium_brick_wall', - dust: null, loose: null, stonecutting: false }, // Bricks - - { raw: 'create:small_veridium_bricks', stair: 'create:small_veridium_brick_stairs', slab: 'create:small_veridium_brick_slab', wall: 'create:small_veridium_brick_wall', - dust: null, loose: null, stonecutting: false }, // Bricks - Extra - - // #endregion @Create Stones - ]) - - CUT_GRIND.forEach(x => { - if (x.raw != null && x.dust != null) { - event.recipes.gtceu.macerator(`tfg:macerate_${linuxUnfucker(x.raw)}`) - .itemInputs(x.raw) - .itemOutputs(x.dust) - .duration(150) - .EUt(2) - .category(GTRecipeCategories.MACERATOR_RECYCLING) - } - if (x.stair != null) { - if (x.raw != null) { - const id = linuxUnfucker(`${x.raw}_to_${x.stair}`); - - event.recipes.tfc.chisel(x.stair, x.raw, 'stair') - .id(`tfg:chisel/${id}`); - - if (x.stonecutting) { - event.stonecutting(x.stair, x.raw) - .id(`tfg:stonecutter/${id}`); - } - } - - if (x.dust != null) { - event.recipes.gtceu.macerator(`tfg:macerate_${linuxUnfucker(x.stair)}`) - .itemInputs(x.stair) - .itemOutputs(x.dust) - .duration(150) - .EUt(2) - .category(GTRecipeCategories.MACERATOR_RECYCLING); - } - - if (x.loose != null) { - event.shapeless(`3x ${x.loose}`, [x.stair]); - } - } - if (x.slab != null) { - if (x.raw != null) { - const id = linuxUnfucker(`${x.raw}_to_${x.slab}`); - - event.recipes.tfc.chisel(x.slab, x.raw, 'slab') - .extraDrop(x.slab) - .id(`tfg:chisel/${id}`); - - if (x.stonecutting) { - event.stonecutting(`2x ${x.slab}`, x.raw) - .id(`tfg:stonecutting/${id}`); - } - } - - if (x.dust != null) { - event.recipes.gtceu.macerator(`tfg:macerate_${linuxUnfucker(x.slab)}`) - .itemInputs(`2x ${x.slab}`) - .itemOutputs(x.dust) - .duration(150) - .EUt(2) - .category(GTRecipeCategories.MACERATOR_RECYCLING); - } - - if (x.loose != null) { - event.shapeless(`2x ${x.loose}`, [x.slab]); - } - } - if (x.wall != null) { - if (x.raw != null) { - if (x.stonecutting) { - event.stonecutting(x.wall, x.raw) - .id(`tfg:stonecutting/${linuxUnfucker(x.raw)}_to_${linuxUnfucker(x.wall)}`) - } - } - if (x.slab != null) { - event.recipes.tfc.chisel(x.wall, x.slab, 'smooth'); - } - - if (x.dust != null) { - event.recipes.gtceu.macerator(`tfg:macerate_${linuxUnfucker(x.wall)}`) - .itemInputs(`2x ${x.wall}`) - .itemOutputs(x.dust) - .duration(150) - .EUt(2) - .category(GTRecipeCategories.MACERATOR_RECYCLING); - } - if (x.loose != null) { - event.shapeless(`2x ${x.loose}`, [x.wall]); - } - } - }) // Alabaster event.recipes.gtceu.cutter("tfg:raw_alabaster_to_bricks") @@ -993,243 +484,41 @@ function registerTFGRockRecipes(event) { .duration(40) .EUt(2) - // #endregion CUT_GRIND + // TODO: do alabaster properly - // #region MACERATOR - // For all the blocks not already handles bu the CUTTER loop. - const MACERATOR = [ - { block: 'tfg:rock/hardened_deepslate', dust: 'gtceu:deepslate_dust' }, - { block: 'minecraft:chiseled_deepslate', dust: 'gtceu:deepslate_dust' }, - { block: 'tfg:rock/hardened_blackstone', dust: 'gtceu:blackstone_dust' }, - { block: 'minecraft:chiseled_polished_blackstone', dust: 'gtceu:blackstone_dust' }, - { block: 'tfg:rock/hardened_dripstone', dust: 'tfg:dripstone_dust' }, - { block: 'minecraft:chiseled_nether_bricks', dust: 'gtceu:netherrack_dust' }, - { block: 'tfg:rock/hardened_moon_stone', dust: 'tfg:moon_stone_dust' }, - { block: 'ad_astra:moon_pillar', dust: 'tfg:moon_stone_dust' }, - { block: 'tfg:rock/hardened_moon_deepslate', dust: 'tfg:moon_deepslate_dust' }, - { block: 'tfg:rock/pillar_moon_deepslate', dust: 'tfg:moon_deepslate_dust' }, - { block: 'tfg:rock/hardened_mars_stone', dust: 'tfg:mars_stone_dust' }, - { block: 'ad_astra:mars_pillar', dust: 'tfg:mars_stone_dust' }, - { block: 'tfg:rock/hardened_venus_stone', dust: 'tfg:venus_stone_dust' }, - { block: 'ad_astra:venus_pillar', dust: 'tfg:venus_stone_dust' }, - { block: 'tfg:rock/hardened_mercury_stone', dust: 'tfg:mercury_stone_dust' }, - { block: 'ad_astra:mercury_pillar', dust: 'tfg:mercury_stone_dust' }, - { block: 'tfg:rock/hardened_glacio_stone', dust: 'tfg:glacio_stone_dust' }, - { block: 'ad_astra:glacio_pillar', dust: 'tfg:glacio_stone_dust' }, - { block: 'tfg:rock/hardened_red_granite', dust: 'gtceu:granite_red_dust' }, - { block: 'gtceu:red_granite_tile', dust: 'gtceu:granite_red_dust' }, - { block: 'gtceu:square_red_granite_bricks', dust: 'gtceu:granite_red_dust' }, - { block: 'gtceu:red_granite_windmill_a', dust: 'gtceu:granite_red_dust' }, - { block: 'gtceu:red_granite_windmill_b', dust: 'gtceu:granite_red_dust' }, - { block: 'gtceu:small_red_granite_bricks', dust: 'gtceu:granite_red_dust' }, - { block: 'gtceu:red_granite_small_tile', dust: 'gtceu:granite_red_dust' }, - { block: 'gtceu:chiseled_red_granite', dust: 'gtceu:granite_red_dust' } - ] + // MACERATOR + let ROCK_COMPOSITIONS = []; + for (let [rockId, rock] of Object.entries(global.BIG_ROCK_TABLE)) { + if (rock.material != null && !ROCK_COMPOSITIONS.includes(rock.material)) { + ROCK_COMPOSITIONS.push(rock.material); + } + } - MACERATOR.forEach(x => { - event.recipes.gtceu.macerator(`tfg:macerate_${linuxUnfucker(x.block)}`) - .itemInputs(x.block) - .itemOutputs(x.dust) + ROCK_COMPOSITIONS.forEach(composition => { + let material = GTMaterials.get(composition); + + let compositionId = composition.replace(/tfg:/g, ''); + + event.recipes.gtceu.macerator(`tfg:macerate_${compositionId}`) + .itemInputs(`#tfg:stone_composition/${compositionId}`) + .itemOutputs(ChemicalHelper.getDust(material, GTValues.M)) .duration(150) .EUt(2) .category(GTRecipeCategories.MACERATOR_RECYCLING); - }) - //#endregion - // #endregion MACERATOR - - // #region STONECUTTER - const STONECUTTER = [ - [ 'minecraft:deepslate_bricks', 'minecraft:deepslate_tiles', 'minecraft:chiseled_deepslate' ], - [ 'minecraft:polished_blackstone_bricks', 'minecraft:chiseled_polished_blackstone' ], - [ 'minecraft:nether_bricks', 'minecraft:nether_bricks' ], - [ 'ad_astra:moon_stone_bricks', 'ad_astra:chiseled_moon_stone_bricks', ], - [ 'tfg:rock/bricks_moon_deepslate', 'tfg:rock/chiseled_bricks_moon_deepslate', ], - [ 'ad_astra:mars_stone_bricks', 'ad_astra:chiseled_mars_stone_bricks', ], - [ 'ad_astra:venus_stone_bricks', 'ad_astra:chiseled_venus_stone_bricks', ], - [ 'ad_astra:mercury_stone_bricks', 'ad_astra:chiseled_mercury_stone_bricks', ], - [ 'ad_astra:glacio_stone_bricks', 'ad_astra:chiseled_glacio_stone_bricks', ], - [ 'ad_astra:permafrost_bricks', 'ad_astra:chiseled_permafrost_bricks', ], - [ 'gtceu:red_granite_bricks', 'gtceu:red_granite_tile', 'gtceu:square_red_granite_bricks', - 'gtceu:red_granite_windmill_a', 'gtceu:red_granite_windmill_b', 'gtceu:small_red_granite_bricks', - 'gtceu:red_granite_small_tile', 'gtceu:chiseled_red_granite' ], - [ 'minecraft:stone_bricks', 'minecraft:chiseled_stone_bricks' ] - ] - - STONECUTTER.forEach(set => { - set.forEach(block1 => { - set.forEach(block2 => { - if (block1 !== block2) { - event.stonecutting(block1, block2); - } - }) - }) - }) - // #endregion STONECUTTER - - // #region PILLARS - const PILLARS = [ - { raw: 'tfc:rock/smooth/andesite', pillar: 'create:andesite_pillar' }, - { raw: 'create:cut_andesite', pillar: 'create:andesite_pillar' }, - { raw: 'create:polished_cut_calcite', pillar: 'create:calcite_pillar' }, - { raw: 'tfc:rock/smooth/chert', pillar: 'create:granite_pillar' }, - { raw: 'create:cut_granite', pillar: 'create:granite_pillar' }, - { raw: 'tfc:rock/smooth/diorite', pillar: 'create:diorite_pillar' }, - { raw: 'create:cut_diorite', pillar: 'create:diorite_pillar' }, - { raw: 'tfc:rock/smooth/limestone', pillar: 'create:limestone_pillar' }, - { raw: 'create:cut_limestone', pillar: 'create:limestone_pillar' }, - { raw: 'minecraft:polished_deepslate', pillar: 'create:deepslate_pillar' }, - { raw: 'create:polished_cut_deepslate', pillar: 'create:deepslate_pillar' }, - { raw: 'create:polished_cut_dripstone', pillar: 'create:dripstone_pillar' }, - { raw: 'create:cut_dripstone', pillar: 'create:dripstone_pillar' }, - { raw: 'ad_astra:moon_stone_bricks', pillar: 'ad_astra:moon_pillar' }, - { raw: 'tfg:rock/pillar_moon_deepslate', pillar: 'tfg:rock/bricks_moon_deepslate' }, - { raw: 'ad_astra:mars_stone_bricks', pillar: 'ad_astra:mars_pillar' }, - { raw: 'ad_astra:venus_stone_bricks', pillar: 'ad_astra:venus_pillar' }, - { raw: 'ad_astra:mercury_stone_bricks', pillar: 'ad_astra:mercury_pillar' }, - { raw: 'ad_astra:glacio_stone_bricks', pillar: 'ad_astra:glacio_pillar' }, - { raw: 'ad_astra:permafrost_bricks', pillar: 'ad_astra:permafrost_pillar' }, - { raw: 'create:cut_asurine', pillar: 'create:asurine_pillar' }, - { raw: 'create:polished_cut_asurine', pillar: 'create:asurine_pillar' }, - { raw: 'create:cut_crimsite', pillar: 'create:crimsite_pillar' }, - { raw: 'create:polished_cut_crimsite', pillar: 'create:crimsite_pillar' }, - { raw: 'create:cut_ochrum', pillar: 'create:ochrum_pillar' }, - { raw: 'create:polished_cut_ochrum', pillar: 'create:ochrum_pillar' }, - { raw: 'create:cut_scorchia', pillar: 'create:scorchia_pillar' }, - { raw: 'create:polished_cut_scorchia', pillar: 'create:scorchia_pillar' }, - { raw: 'create:cut_scoria', pillar: 'create:scoria_pillar' }, - { raw: 'create:polished_cut_scoria', pillar: 'create:scoria_pillar' }, - { raw: 'create:cut_tuff', pillar: 'create:tuff_pillar' }, - { raw: 'create:polished_cut_tuff', pillar: 'create:tuff_pillar' }, - { raw: 'create:cut_veridium', pillar: 'create:veridium_pillar' }, - { raw: 'create:polished_cut_veridium', pillar: 'create:veridium_pillar' }, - { raw: 'minecraft:purpur_block', pillar: 'minecraft:purpur_pillar' }, - { raw: 'minecraft:quartz_block', pillar: 'minecraft:quartz_pillar' }, - { raw: 'ae2:quartz_block', pillar: 'ae2:quartz_pillar' } - ] - - PILLARS.forEach(x => { - const id = linuxUnfucker(`${x.raw}_to_${x.pillar}`); - - event.shaped(`2x ${x.pillar}`, [ - 'A', - 'A' - ], { - A: x.raw - }) - .id(`tfg:shaped/${id}`); - - event.stonecutting(x.pillar, x.raw) - .id(`tfg:stonecutting/${id}`); - }) - - // horizontal shaped recipes - const PILLARS_H = [ - { raw: 'tfc:rock/smooth/andesite', pillar: 'create:layered_andesite' }, - { raw: 'create:polished_cut_andesite', pillar: 'create:layered_andesite' }, - { raw: 'tfc:rock/smooth/chert', pillar: 'create:layered_granite' }, - { raw: 'create:polished_cut_granite', pillar: 'create:layered_granite' }, - { raw: 'create:polished_cut_calcite', pillar: 'create:layered_calcite' }, - { raw: 'tfc:rock/smooth/diorite', pillar: 'create:layered_diorite' }, - { raw: 'create:polished_cut_diorite', pillar: 'create:layered_diorite' }, - { raw: 'tfc:rock/smooth/limestone', pillar: 'create:layered_limestone' }, - { raw: 'create:polished_cut_limestone', pillar: 'create:layered_limestone' }, - { raw: 'minecraft:polished_deepslate', pillar: 'create:layered_deepslate' }, - { raw: 'create:polished_cut_deepslate', pillar: 'create:layered_deepslate' }, - { raw: 'create:cut_dripstone', pillar: 'create:layered_dripstone' }, - { raw: 'create:polished_cut_dripstone', pillar: 'create:layered_dripstone' }, - - { raw: 'create:cut_asurine', pillar: 'create:layered_asurine' }, - { raw: 'create:polished_cut_asurine', pillar: 'create:layered_asurine' }, - { raw: 'create:cut_crimsite', pillar: 'create:layered_crimsite' }, - { raw: 'create:polished_cut_crimsite', pillar: 'create:layered_crimsite' }, - { raw: 'create:cut_ochrum', pillar: 'create:layered_ochrum' }, - { raw: 'create:polished_cut_ochrum', pillar: 'create:layered_ochrum' }, - { raw: 'create:cut_scorchia', pillar: 'create:layered_scorchia' }, - { raw: 'create:polished_cut_scorchia', pillar: 'create:layered_scorchia' }, - { raw: 'create:cut_scoria', pillar: 'create:layered_scoria' }, - { raw: 'create:polished_cut_scoria', pillar: 'create:layered_scoria' }, - { raw: 'create:cut_tuff', pillar: 'create:layered_tuff' }, - { raw: 'create:polished_cut_tuff', pillar: 'create:layered_tuff' }, - { raw: 'create:cut_veridium', pillar: 'create:layered_veridium' }, - { raw: 'create:polished_cut_veridium', pillar: 'create:layered_veridium' } - ] - - PILLARS_H.forEach(x => { - event.shaped(`2x ${x.pillar}`, [ - 'AA' - ], { - A: x.raw - }) - }) - - // #endregion PILLARS - - // #region ROCK_DUPING (Breaker) - const ROCK_DUPING = [ - { block: 'minecraft:deepslate', dimension: null }, - { block: 'minecraft:cobbled_deepslate', dimension: null }, - { block: 'minecraft:blackstone', dimension: null }, - { block: 'tfg:rock/cobble_blackstone', dimension: null }, - { block: 'minecraft:dripstone_block', dimension: null }, - { block: 'tfg:rock/cobble_dripstone', dimension: null }, - { block: 'beneath:crackrack', dimension: null }, - { block: 'tfg:rock/cobble_crackrack', dimension: null }, - { block: 'minecraft:basalt', dimension: null }, - { block: 'minecraft:calcite', dimension: null }, - { block: 'ad_astra:moon_stone', dimension: 'ad_astra:moon' }, - { block: 'ad_astra:moon_cobblestone', dimension: 'ad_astra:moon' }, - { block: 'ad_astra:moon_deepslate', dimension: 'ad_astra:moon' }, - { block: 'tfg:rock/cobble_moon_deepslate', dimension: 'ad_astra:moon' }, - { block: 'ad_astra:glacio_stone', dimension: 'ad_astra:moon' }, - { block: 'ad_astra:glacio_cobblestone', dimension: 'ad_astra:moon' }, - { block: 'create:asurine', dimension: 'ad_astra:moon' }, - { block: 'ae2:sky_stone_block', dimension: 'ad_astra:moon' }, - { block: 'ad_astra:mars_stone', dimension: 'ad_astra:mars' }, - { block: 'ad_astra:mars_cobblestone', dimension: 'ad_astra:mars' }, - { block: 'ad_astra:venus_stone', dimension: 'ad_astra:mars' }, - { block: 'ad_astra:venus_cobblestone', dimension: 'ad_astra:mars' }, - { block: 'gtceu:red_granite', dimension: 'ad_astra:mars' }, - { block: 'gtceu:red_granite_cobblestone', dimension: 'ad_astra:mars' }, - { block: 'create:ochrum', dimension: 'ad_astra:mars' }, - { block: 'create:scoria', dimension: 'ad_astra:venus' }, - { block: 'minecraft:tuff', dimension: 'ad_astra:venus' }, - { block: 'betterend:flavolite', dimension: 'ad_astra:venus' }, - { block: 'betterend:sandy_jadestone', dimension: 'ad_astra:venus' }, - { block: 'betterend:sulphuric_rock', dimension: 'ad_astra:venus' }, - { block: 'betterend:brimstone', dimension: 'ad_astra:venus' }, - { block: 'ad_astra:mercury_stone', dimension: 'ad_astra:mercury' }, - { block: 'ad_astra:mercury_cobblestone', dimension: 'ad_astra:mercury' }, - { block: 'create:crimsite', dimension: 'ad_astra:mercury' }, - { block: 'create:scorchia', dimension: null }, - { block: 'ad_astra:permafrost', dimension: 'ad_astra:glacio' }, - { block: 'tfg:rock/cobble_permafrost', dimension: 'ad_astra:glacio' }, - { block: 'create:veridium', dimension: 'ad_astra:glacio' }, - { block: 'tfc:alabaster/raw', dimension: null } - ] - - ROCK_DUPING.forEach(x => { - const id = linuxUnfucker(x.block); - - if (x.dimension != null) { - event.recipes.gtceu.rock_breaker(`tfg:${id}`) - .notConsumable(x.block) - .itemOutputs(x.block) - .duration(16) - .EUt(7) - .dimension(x.dimension) - } else { - event.recipes.gtceu.rock_breaker(`tfg:${id}`) - .notConsumable(x.block) - .itemOutputs(x.block) - .duration(16) - .EUt(7) + // check if any items have this tag otherwise it errors + let half = Ingredient.of(`#tfg:stone_composition/${compositionId}_half`).itemIds.toArray(); + if (half.length > 0) { + event.recipes.gtceu.macerator(`tfg:macerate_${compositionId}_half`) + .itemInputs(half) + .itemOutputs(ChemicalHelper.getDust(material, GTValues.M / 2)) + .duration(150) + .EUt(2) + .category(GTRecipeCategories.MACERATOR_RECYCLING); } }) - // #endregion ROCK_DUPING (Breaker) - - // #region COMPRESSOR + // COMPRESSOR event.recipes.gtceu.compressor('tfg:permafrost') .itemInputs('4x tfg:loose/permafrost') .itemOutputs('ad_astra:permafrost') @@ -1242,13 +531,12 @@ function registerTFGRockRecipes(event) { .duration(40*20) .EUt(2) - // #endregion COMPRESSOR - //#region Magma Blocks + // Magma Blocks event.remove({id: 'gtceu:compressor/magma_block'}) event.remove({id: 'greate:splashing/obsidian'}) - //magma block + stone group + // Magma block + stone group const MAGMA_BLOCKS = [ { magma: 'minecraft:magma_block', rock: 'minecraft:blackstone' }, { magma: 'tfc:rock/magma/granite', rock: 'tfc:rock/raw/granite' }, @@ -1276,19 +564,6 @@ function registerTFGRockRecipes(event) { .EUt(GTValues.VA[GTValues.LV]) }) - //#endregion Magma Blocks - - //#region GT marble - event.stonecutting('gtceu:polished_marble', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_polished_marble') - event.stonecutting('gtceu:chiseled_marble', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_chiseled_marble') - event.stonecutting('gtceu:marble_tile', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_marble_tile') - event.stonecutting('gtceu:marble_small_tile', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_marble_small_tile') - event.stonecutting('gtceu:marble_windmill_a', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_marble_windmill_a') - event.stonecutting('gtceu:marble_windmill_b', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_marble_windmill_b') - event.stonecutting('gtceu:small_marble_bricks', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_small_marble_bricks') - event.stonecutting('gtceu:square_marble_bricks', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_square_marble_bricks') - //#endregion - // Blackstone Buttons removeCutterRecipe(event, 'blackstone_button') removeCutterRecipe(event, 'blackstone_button_water') diff --git a/kubejs/server_scripts/tfg/natural_blocks/recipes.sand.js b/kubejs/server_scripts/tfg/natural_blocks/recipes.sand.js index 6b035dca2..01760bc28 100644 --- a/kubejs/server_scripts/tfg/natural_blocks/recipes.sand.js +++ b/kubejs/server_scripts/tfg/natural_blocks/recipes.sand.js @@ -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]) } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/natural_blocks/recipes.stone_dusts.js b/kubejs/server_scripts/tfg/natural_blocks/recipes.stone_dusts.js index e753c0c09..26f82dfdd 100644 --- a/kubejs/server_scripts/tfg/natural_blocks/recipes.stone_dusts.js +++ b/kubejs/server_scripts/tfg/natural_blocks/recipes.stone_dusts.js @@ -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)) } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/natural_blocks/recipes.tfc_stone.js b/kubejs/server_scripts/tfg/natural_blocks/recipes.tfc_stone.js index d60074501..e74720fc3 100644 --- a/kubejs/server_scripts/tfg/natural_blocks/recipes.tfc_stone.js +++ b/kubejs/server_scripts/tfg/natural_blocks/recipes.tfc_stone.js @@ -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`) }) } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/natural_blocks/tags.stones.js b/kubejs/server_scripts/tfg/natural_blocks/tags.stones.js index 2df6ade7c..9a3fe6eaf 100644 --- a/kubejs/server_scripts/tfg/natural_blocks/tags.stones.js +++ b/kubejs/server_scripts/tfg/natural_blocks/tags.stones.js @@ -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); + }) + } + } } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/ores_and_materials/loot.ores.js b/kubejs/server_scripts/tfg/ores_and_materials/loot.ores.js index 60fb0ca79..32c1dab7a 100644 --- a/kubejs/server_scripts/tfg/ores_and_materials/loot.ores.js +++ b/kubejs/server_scripts/tfg/ores_and_materials/loot.ores.js @@ -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)); }) } }) diff --git a/kubejs/server_scripts/tfg/powergen/nuclear/recipes.nuclear.js b/kubejs/server_scripts/tfg/powergen/nuclear/recipes.nuclear.js index e548d5e55..fca0005e1 100644 --- a/kubejs/server_scripts/tfg/powergen/nuclear/recipes.nuclear.js +++ b/kubejs/server_scripts/tfg/powergen/nuclear/recipes.nuclear.js @@ -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) diff --git a/kubejs/server_scripts/tfg/primitive/recipes.supports.js b/kubejs/server_scripts/tfg/primitive/recipes.supports.js index 90a296b6d..dc5311736 100644 --- a/kubejs/server_scripts/tfg/primitive/recipes.supports.js +++ b/kubejs/server_scripts/tfg/primitive/recipes.supports.js @@ -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', [ diff --git a/kubejs/server_scripts/tfg/tags.interaction.js b/kubejs/server_scripts/tfg/tags.interaction.js deleted file mode 100644 index ad0c2bea0..000000000 --- a/kubejs/server_scripts/tfg/tags.interaction.js +++ /dev/null @@ -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) - } -} diff --git a/kubejs/server_scripts/tfg/tags.js b/kubejs/server_scripts/tfg/tags.js index f1f792a98..240456478 100644 --- a/kubejs/server_scripts/tfg/tags.js +++ b/kubejs/server_scripts/tfg/tags.js @@ -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) diff --git a/kubejs/server_scripts/tfg/venus/recipes.venus.js b/kubejs/server_scripts/tfg/venus/recipes.venus.js index 51e2a90cc..b8225e15c 100644 --- a/kubejs/server_scripts/tfg/venus/recipes.venus.js +++ b/kubejs/server_scripts/tfg/venus/recipes.venus.js @@ -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') } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/venus/tags.venus.js b/kubejs/server_scripts/tfg/venus/tags.venus.js index e9be39331..7b480c219 100644 --- a/kubejs/server_scripts/tfg/venus/tags.venus.js +++ b/kubejs/server_scripts/tfg/venus/tags.venus.js @@ -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') } diff --git a/kubejs/server_scripts/tfg/worldgen/tags.general_worldgen.js b/kubejs/server_scripts/tfg/worldgen/tags.general_worldgen.js index 55ba87c95..6a8a9aeb9 100644 --- a/kubejs/server_scripts/tfg/worldgen/tags.general_worldgen.js +++ b/kubejs/server_scripts/tfg/worldgen/tags.general_worldgen.js @@ -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') } diff --git a/kubejs/startup_scripts/create/materials.js b/kubejs/startup_scripts/create/materials.js index f3dd87136..93b91c9c0 100644 --- a/kubejs/startup_scripts/create/materials.js +++ b/kubejs/startup_scripts/create/materials.js @@ -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) } \ No newline at end of file diff --git a/kubejs/startup_scripts/createdeco/constants.js b/kubejs/startup_scripts/createdeco/constants.js index 3387d561e..68800e997 100644 --- a/kubejs/startup_scripts/createdeco/constants.js +++ b/kubejs/startup_scripts/createdeco/constants.js @@ -1,4 +1,4 @@ -// priority: -100 +// priority: 0 "use strict"; /** @global */ diff --git a/kubejs/startup_scripts/gtceu/constants.js b/kubejs/startup_scripts/gtceu/constants.js index 5cc22aa8c..d6d660eae 100644 --- a/kubejs/startup_scripts/gtceu/constants.js +++ b/kubejs/startup_scripts/gtceu/constants.js @@ -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 diff --git a/kubejs/startup_scripts/gtceu/material_modification.js b/kubejs/startup_scripts/gtceu/material_modification.js index 75885b8e7..fbcf005a3 100644 --- a/kubejs/startup_scripts/gtceu/material_modification.js +++ b/kubejs/startup_scripts/gtceu/material_modification.js @@ -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²⁴³') } \ No newline at end of file diff --git a/kubejs/startup_scripts/main_startup_script.js b/kubejs/startup_scripts/main_startup_script.js index 52bf3b253..f3be25bfb 100644 --- a/kubejs/startup_scripts/main_startup_script.js +++ b/kubejs/startup_scripts/main_startup_script.js @@ -44,7 +44,6 @@ GTCEuStartupEvents.registry('gtceu:machine', event => { GTCEuStartupEvents.registry('gtceu:tag_prefix', event => { registerAE2TagPrefixes(event) registerGTCEuTagPrefixes(event) - registerTFCTagPrefixes(event) registerTFGTagPrefixes(event) }) diff --git a/kubejs/startup_scripts/tfg/blocks.js b/kubejs/startup_scripts/tfg/blocks.js index c358ce8c7..68aa954ed 100644 --- a/kubejs/startup_scripts/tfg/blocks.js +++ b/kubejs/startup_scripts/tfg/blocks.js @@ -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) diff --git a/kubejs/startup_scripts/tfg/constants.js b/kubejs/startup_scripts/tfg/constants.js index ecaab9035..f838803e0 100644 --- a/kubejs/startup_scripts/tfg/constants.js +++ b/kubejs/startup_scripts/tfg/constants.js @@ -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', diff --git a/kubejs/startup_scripts/tfg/primitive/blocks.supports.js b/kubejs/startup_scripts/tfg/primitive/blocks.supports.js index be0b6aa3f..b843316a6 100644 --- a/kubejs/startup_scripts/tfg/primitive/blocks.supports.js +++ b/kubejs/startup_scripts/tfg/primitive/blocks.supports.js @@ -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) diff --git a/kubejs/startup_scripts/tfg/stone_types/blocks.aqueducts.js b/kubejs/startup_scripts/tfg/stone_types/blocks.aqueducts.js deleted file mode 100644 index ce661e143..000000000 --- a/kubejs/startup_scripts/tfg/stone_types/blocks.aqueducts.js +++ /dev/null @@ -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') - -} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/stone_types/blocks.rocks.js b/kubejs/startup_scripts/tfg/stone_types/blocks.rocks.js index be5727415..8b49bb1b7 100644 --- a/kubejs/startup_scripts/tfg/stone_types/blocks.rocks.js +++ b/kubejs/startup_scripts/tfg/stone_types/blocks.rocks.js @@ -1,1790 +1,243 @@ "use strict"; function registerTFGRockBlocks(event) { - - const SHAPES = ['stairs', 'slab', 'wall'] - const AA_REGULAR_STONES = ['moon', 'mars', 'venus', 'mercury', 'glacio'] + const SHAPES = ['stair', 'slab', 'wall']; - // #region Raw Stones + function createMissingForms(rock, blockEntry) { + if (blockEntry === undefined || blockEntry === null) + return; - SHAPES.forEach(shape => { - event.create(`tfg:rock/deepslate_${shape}`, shape) - .soundType(global.STONE_CHARACS.deepslate.sound) - .textureAll('minecraft:block/deepslate') - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) + let texture = blockEntry.texture ?? blockEntry.block.replace(/:/g, ":block/"); - SHAPES.forEach(shape => { - event.create(`tfg:rock/dripstone_${shape}`, shape) - .soundType(global.STONE_CHARACS.dripstone.sound) - .textureAll('minecraft:block/dripstone_block') - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) - .mapColor(global.STONE_CHARACS.dripstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) + if (blockEntry.block.startsWith('tfg:rock/')) { + let block = event.create(blockEntry.block) + .textureAll(texture) + .soundType(rock.sound ?? 'stone') + .mapColor(rock.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) - SHAPES.forEach(shape => { - event.create(`tfg:rock/crackrack_${shape}`, shape) - .soundType(global.STONE_CHARACS.crackrack.sound) - .textureAll('beneath:block/crackrack') - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`) - .mapColor(global.STONE_CHARACS.crackrack.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/moon_stone_wall', 'wall') - .soundType(global.STONE_CHARACS.moon.sound) - .textureAll('ad_astra:block/moon_stone') - .tagBoth('tfg:rock_walls') - .tagBoth(`tfc:${global.STONE_CHARACS.moon.type}_items`) - .mapColor(global.STONE_CHARACS.moon.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) + if (rock.tfcTag != null) { + block.tagBoth(rock.tfcTag); + } + } - SHAPES.forEach(shape => { - event.create(`tfg:rock/moon_deepslate_${shape}`, shape) - .soundType(global.STONE_CHARACS.moon_deepslate.sound) - .textureAll('ad_astra:block/moon_deepslate') - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.moon_deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.moon_deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) + SHAPES.forEach(shape => { + if (blockEntry[shape] != null && blockEntry[shape].startsWith('tfg:rock/')) { + let block = event.create(blockEntry[shape], shape.replace(/stair/g, 'stairs')) + .textureAll(texture) + .soundType(rock.sound ?? 'stone') + .mapColor(rock.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) - event.create('tfg:rock/mars_stone_wall', 'wall') - .soundType(global.STONE_CHARACS.mars.sound) - .textureAll('ad_astra:block/mars_stone') - .tagBoth('tfg:rock_walls') - .tagBoth(`tfc:${global.STONE_CHARACS.mars.type}_items`) - .mapColor(global.STONE_CHARACS.mars.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/venus_stone_wall', 'wall') - .soundType(global.STONE_CHARACS.venus.sound) - .textureAll('ad_astra:block/venus_stone') - .tagBoth('tfg:rock_walls') - .tagBoth(`tfc:${global.STONE_CHARACS.venus.type}_items`) - .mapColor(global.STONE_CHARACS.venus.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/mercury_stone_wall', 'wall') - .soundType(global.STONE_CHARACS.mercury.sound) - .textureAll('ad_astra:block/mercury_stone') - .tagBoth('tfg:rock_walls') - .tagBoth(`tfc:${global.STONE_CHARACS.mercury.type}_items`) - .mapColor(global.STONE_CHARACS.mercury.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/glacio_stone_wall', 'wall') - .soundType(global.STONE_CHARACS.glacio.sound) - .textureAll('ad_astra:block/glacio_stone') - .tagBoth('tfg:rock_walls') - .tagBoth(`tfc:${global.STONE_CHARACS.glacio.type}_items`) - .mapColor(global.STONE_CHARACS.glacio.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/permafrost_${shape}`, shape) - .soundType(global.STONE_CHARACS.permafrost.sound) - .textureAll('ad_astra:block/permafrost') - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .mapColor(global.STONE_CHARACS.permafrost.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/red_granite_${shape}`, shape) - .soundType(global.STONE_CHARACS.red_granite.sound) - .textureAll('gtceu:block/stones/red_granite/stone') - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.red_granite.type}_items`) - .mapColor(global.STONE_CHARACS.red_granite.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // #endregion Raw Stones - - // #region Hardened Stones - event.create('tfg:rock/hardened_deepslate') - .soundType(global.STONE_CHARACS.deepslate.sound) - .property(BlockProperties.AXIS) - .requiresTool(true) - .item(item => { - item.modelJson({ parent: 'minecraft:item/deepslate' }) + if (rock.tfcTag != null) { + block.tagBoth(rock.tfcTag); + } + } }) - .tagBlock('tfc:can_carve') - .tagBoth('forge:stone') - .tagBoth('tfc:rock/hardened') - .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) + } - event.create('tfg:rock/hardened_blackstone') - .soundType(global.STONE_CHARACS.blackstone.sound) - .requiresTool(true) - .item(item => { - item.modelJson({ parent: 'minecraft:item/blackstone' }) - }) - .tagBlock('tfc:can_carve') - .tagBoth('forge:stone') - .tagBoth('tfc:rock/hardened') - .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) - .mapColor(global.STONE_CHARACS.blackstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - event.create('tfg:rock/hardened_dripstone') - .soundType(global.STONE_CHARACS.dripstone.sound) - .stoneSoundType() - .requiresTool(true) - .item(item => { - item.modelJson({ parent: 'minecraft:item/dripstone_block' }) - }) - .tagBlock('tfc:can_carve') - .tagBoth('forge:stone') - .tagBoth('tfc:rock/hardened') - .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) - .mapColor(global.STONE_CHARACS.dripstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) + for (let [rockId, rock] of Object.entries(global.BIG_ROCK_TABLE)) { + // Do raw separately because of the tfc:raw_rock builder + let rawTexture = ""; + if (rock.raw != null) { + rawTexture = rock.raw.texture ?? rock.raw.block.replace(/:/g, ":block/"); - event.create('tfg:rock/hardened_moon_stone') - .soundType(global.STONE_CHARACS.moon.sound) - .requiresTool(true) - .item(item => { - item.modelJson({ parent: 'ad_astra:item/moon_stone' }) - }) - .tagBlock('tfc:can_carve') - .tagBoth('forge:stone') - .tagBoth('tfc:rock/hardened') - .tagBoth(`tfc:${global.STONE_CHARACS.moon.type}_items`) - .mapColor(global.STONE_CHARACS.moon.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) + if (rock.raw.block.startsWith('tfg:rock/')) { + let block = event.create(rock.raw.block, 'tfc:raw_rock') + .textureAll(rawTexture) + .soundType(rock.sound ?? 'stone') + .mapColor(rock.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + .naturallySupported(false) - event.create('tfg:rock/hardened_moon_deepslate') - .soundType(global.STONE_CHARACS.moon_deepslate.sound) - .requiresTool(true) - .item(item => { - item.modelJson({ parent: 'ad_astra:item/moon_deepslate' }) - }) - .tagBlock('tfc:can_carve') - .tagBoth('forge:stone') - .tagBoth('tfc:rock/hardened') - .tagBoth(`tfc:${global.STONE_CHARACS.moon_deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.moon_deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) + if (rock.tfcTag != null) { + block.tagBoth(rock.tfcTag); + } + } - event.create('tfg:rock/hardened_mars_stone') - .soundType(global.STONE_CHARACS.mars.sound) - .requiresTool(true) - .item(item => { - item.modelJson({ parent: 'ad_astra:item/mars_stone' }) - }) - .tagBlock('tfc:can_carve') - .tagBoth('forge:stone') - .tagBoth('tfc:rock/hardened') - .tagBoth(`tfc:${global.STONE_CHARACS.mars.type}_items`) - .mapColor(global.STONE_CHARACS.mars.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) + SHAPES.forEach(shape => { + if (rock.raw[shape] != null && rock.raw[shape].startsWith('tfg:rock/')) { + let block = event.create(rock.raw[shape], shape.replace(/stair/g, 'stairs')) + .textureAll(rawTexture) + .soundType(rock.sound ?? 'stone') + .mapColor(rock.mapColor) + .tagBoth(`tfg:rock_${shape}s`) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) - event.create('tfg:rock/hardened_venus_stone') - .soundType(global.STONE_CHARACS.venus.sound) - .requiresTool(true) - .item(item => { - item.modelJson({ parent: 'ad_astra:item/venus_stone' }) - }) - .tagBlock('tfc:can_carve') - .tagBoth('forge:stone') - .tagBoth('tfc:rock/hardened') - .tagBoth(`tfc:${global.STONE_CHARACS.venus.type}_items`) - .mapColor(global.STONE_CHARACS.venus.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) + if (rock.tfcTag != null) { + block.tagBoth(rock.tfcTag); + } + } + }) + } - event.create('tfg:rock/hardened_mercury_stone') - .soundType(global.STONE_CHARACS.mercury.sound) - .requiresTool(true) - .item(item => { - item.modelJson({ parent: 'ad_astra:item/mercury_stone' }) - }) - .tagBlock('tfc:can_carve') - .tagBoth('forge:stone') - .tagBoth('tfc:rock/hardened') - .tagBoth(`tfc:${global.STONE_CHARACS.mercury.type}_items`) - .mapColor(global.STONE_CHARACS.mercury.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) + createMissingForms(rock, rock.cobble); + if (rock.cobble != null) { + createMissingForms(rock, rock.cobble.mossy); + } + createMissingForms(rock, rock.bricks); + if (rock.bricks != null) { + createMissingForms(rock, rock.bricks.mossy); + createMissingForms(rock, rock.bricks.cracked); + } + createMissingForms(rock, rock.polished); + createMissingForms(rock, rock.chiseled); - event.create('tfg:rock/hardened_glacio_stone') - .soundType(global.STONE_CHARACS.glacio.sound) - .requiresTool(true) - .item(item => { - item.modelJson({ parent: 'ad_astra:item/glacio_stone' }) - }) - .tagBlock('tfc:can_carve') - .tagBoth('forge:stone') - .tagBoth('tfc:rock/hardened') - .tagBoth(`tfc:${global.STONE_CHARACS.glacio.type}_items`) - .mapColor(global.STONE_CHARACS.glacio.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) + if (rock.stonecutting != null) { + rock.stonecutting.forEach(stonecuttingEntry => { + createMissingForms(rock, stonecuttingEntry); + createMissingForms(rock, stonecuttingEntry.mossy); + createMissingForms(rock, stonecuttingEntry.cracked); + }); + } - event.create('tfg:rock/hardened_red_granite') - .soundType(global.STONE_CHARACS.red_granite.sound) - .requiresTool(true) - .item(item => { - item.modelJson({ parent: 'gtceu:item/red_granite' }) - }) - .tagBlock('tfc:can_carve') - .tagBoth('forge:stone') - .tagBoth('tfc:rock/hardened') - .tagBoth(`tfc:${global.STONE_CHARACS.red_granite.type}_items`) - .mapColor(global.STONE_CHARACS.red_granite.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) + // Individual blocks - // #endregion Hardened Stones - - // #region Loose Stones - event.create('tfg:loose/deepslate', 'tfc:loose_rock') - .soundType(global.STONE_CHARACS.deepslate.sound) - .itemTexture('tfg:item/loose/deepslate') - .rockTypeModel(global.STONE_CHARACS.deepslate.type) - .translationKey("block.tfg.loose.deepslate") - .mapColor(global.STONE_CHARACS.deepslate.mapColor) - .tagBlock('tfc:loose_rocks') - .tagItem('tfc:any_knapping') - .tagItem('tfc:rock_knapping') - .tagItem(`tfc:${global.STONE_CHARACS.deepslate.type}_rock`) - .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) - .tagItem("rnr:loose_rock_items") + // Hardened + if (rock.raw != null && rock.hardened != null && rock.hardened.startsWith('tfg:rock/')) { + let hardened = event.create(rock.hardened) + .textureAll(rawTexture) + .soundType(rock.sound ?? 'stone') + .property(BlockProperties.AXIS) + .requiresTool(true) + .tagBlock('tfc:can_carve') + .tagBoth('forge:stone') + .tagBoth('tfc:rock/hardened') + .mapColor(rock.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) - event.create('tfg:loose/dripstone', 'tfc:loose_rock') - .soundType(global.STONE_CHARACS.dripstone.sound) - .itemTexture('tfg:item/loose/dripstone') - .rockTypeModel(global.STONE_CHARACS.dripstone.type) - .translationKey("block.tfg.loose.dripstone") - .mapColor(global.STONE_CHARACS.blackstone.mapColor) - .tagBlock('tfc:loose_rocks') - .tagItem('tfc:any_knapping') - .tagItem('tfc:rock_knapping') - .tagItem(`tfc:${global.STONE_CHARACS.dripstone.type}_rock`) - .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) - .tagItem("rnr:loose_rock_items") - - event.create('tfg:loose/crackrack', 'tfc:loose_rock') - .soundType(global.STONE_CHARACS.crackrack.sound) - .itemTexture('tfg:item/loose/crackrack') - .rockTypeModel(global.STONE_CHARACS.crackrack.type) - .translationKey("block.tfg.loose.crackrack") - .mapColor(global.STONE_CHARACS.crackrack.mapColor) - .tagBlock('tfc:loose_rocks') - .tagItem('tfc:any_knapping') - .tagItem('tfc:rock_knapping') - .tagItem(`tfc:${global.STONE_CHARACS.crackrack.type}_rock`) - .tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`) - .tagItem("rnr:loose_rock_items") - - event.create('tfg:loose/moon_stone', 'tfc:loose_rock') - .soundType(global.STONE_CHARACS.moon.sound) - .itemTexture('tfg:item/loose/moon_stone') - .rockTypeModel(global.STONE_CHARACS.moon.type) - .tagBlock('tfc:loose_rocks') - .tagItem('tfc:any_knapping') - .tagItem('tfc:rock_knapping') - .tagItem(`tfc:${global.STONE_CHARACS.moon.type}_rock`) - .tagBoth(`tfc:${global.STONE_CHARACS.moon.type}_items`) - .tagItem("rnr:loose_rock_items") - - event.create('tfg:loose/moon_deepslate', 'tfc:loose_rock') - .soundType(global.STONE_CHARACS.moon_deepslate.sound) - .itemTexture('tfg:item/loose/moon_deepslate') - .rockTypeModel(global.STONE_CHARACS.moon_deepslate.type) - .tagBlock('tfc:loose_rocks') - .tagItem('tfc:any_knapping') - .tagItem('tfc:rock_knapping') - .tagItem(`tfc:${global.STONE_CHARACS.moon_deepslate.type}_rock`) - .tagBoth(`tfc:${global.STONE_CHARACS.moon_deepslate.type}_items`) - .tagItem("rnr:loose_rock_items") - - event.create('tfg:loose/mars_stone', 'tfc:loose_rock') - .soundType(global.STONE_CHARACS.mars.sound) - .itemTexture('tfg:item/loose/mars_stone') - .rockTypeModel(global.STONE_CHARACS.mars.type) - .tagBlock('tfc:loose_rocks') - .tagItem('tfc:any_knapping') - .tagItem('tfc:rock_knapping') - .tagItem(`tfc:${global.STONE_CHARACS.mars.type}_rock`) - .tagBoth(`tfc:${global.STONE_CHARACS.mars.type}_items`) - .tagItem("rnr:loose_rock_items") - - event.create('tfg:loose/venus_stone', 'tfc:loose_rock') - .soundType(global.STONE_CHARACS.venus.sound) - .itemTexture('tfg:item/loose/venus_stone') - .rockTypeModel(global.STONE_CHARACS.venus.type) - .tagBlock('tfc:loose_rocks') - .tagItem('tfc:any_knapping') - .tagItem('tfc:rock_knapping') - .tagItem(`tfc:${global.STONE_CHARACS.venus.type}_rock`) - .tagBoth(`tfc:${global.STONE_CHARACS.venus.type}_items`) - .tagItem("rnr:loose_rock_items") - - event.create('tfg:loose/mercury_stone', 'tfc:loose_rock') - .soundType(global.STONE_CHARACS.mercury.sound) - .itemTexture('tfg:item/loose/mercury_stone') - .rockTypeModel(global.STONE_CHARACS.mercury.type) - .tagBlock('tfc:loose_rocks') - .tagItem('tfc:any_knapping') - .tagItem('tfc:rock_knapping') - .tagItem(`tfc:${global.STONE_CHARACS.mercury.type}_rock`) - .tagBoth(`tfc:${global.STONE_CHARACS.mercury.type}_items`) - .tagItem("rnr:loose_rock_items") - - event.create('tfg:loose/glacio_stone', 'tfc:loose_rock') - .soundType(global.STONE_CHARACS.glacio.sound) - .itemTexture('tfg:item/loose/glacio_stone') - .rockTypeModel(global.STONE_CHARACS.glacio.type) - .tagBlock('tfc:loose_rocks') - .tagItem('tfc:any_knapping') - .tagItem('tfc:rock_knapping') - .tagItem(`tfc:${global.STONE_CHARACS.glacio.type}_rock`) - .tagBoth(`tfc:${global.STONE_CHARACS.glacio.type}_items`) - .tagItem("rnr:loose_rock_items") - - event.create('tfg:loose/permafrost', 'tfc:loose_rock') - .soundType(global.STONE_CHARACS.permafrost.sound) - .itemTexture('tfg:item/loose/permafrost') - .rockTypeModel(global.STONE_CHARACS.permafrost.type) - .tagBlock('tfc:loose_rocks') - .tagItem('tfc:any_knapping') - .tagItem('tfc:rock_knapping') - .tagItem("rnr:loose_rock_items") - - event.create('tfg:loose/red_granite', 'tfc:loose_rock') - .soundType(global.STONE_CHARACS.red_granite.sound) - .itemTexture('tfg:item/loose/red_granite') - .rockTypeModel(global.STONE_CHARACS.red_granite.type) - .tagBlock('tfc:loose_rocks') - .tagItem('tfc:any_knapping') - .tagItem('tfc:rock_knapping') - .tagItem(`tfc:${global.STONE_CHARACS.red_granite.type}_rock`) - .tagBoth(`tfc:${global.STONE_CHARACS.red_granite.type}_items`) - .tagItem("rnr:loose_rock_items") - - // #endregion Loose stones - - // #region Spikes - - event.create('tfg:spike/deepslate_spike', 'tfc:rock_spike') - .textureAll('minecraft:block/deepslate') - .soundType(global.STONE_CHARACS.deepslate.sound) - .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .hardness(0.8) - .resistance(0.8) - .requiresTool(true) - - event.create('tfg:spike/blackstone_spike', 'tfc:rock_spike') - .textureAll('minecraft:block/blackstone') - .soundType(global.STONE_CHARACS.blackstone.sound) - .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) - .mapColor(global.STONE_CHARACS.blackstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .hardness(0.8) - .resistance(0.8) - .requiresTool(true) - - event.create('tfg:spike/dripstone_spike', 'tfc:rock_spike') - .textureAll('minecraft:block/dripstone_block') - .soundType(global.STONE_CHARACS.dripstone.sound) - .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) - .mapColor(global.STONE_CHARACS.dripstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .hardness(0.8) - .resistance(0.8) - .requiresTool(true) - - event.create('tfg:spike/moon_stone_spike', 'tfc:rock_spike') - .textureAll('ad_astra:block/moon_stone') - .soundType(global.STONE_CHARACS.moon.sound) - .tagBlock('minecraft:mineable/pickaxe') - .hardness(0.8) - .resistance(0.8) - .requiresTool(true) - - event.create('tfg:spike/moon_deepslate_spike', 'tfc:rock_spike') - .textureAll('ad_astra:block/moon_deepslate') - .soundType(global.STONE_CHARACS.moon_deepslate.sound) - .tagBlock('minecraft:mineable/pickaxe') - .hardness(0.8) - .resistance(0.8) - .requiresTool(true) - - event.create('tfg:spike/mars_stone_spike', 'tfc:rock_spike') - .textureAll('ad_astra:block/mars_stone') - .soundType(global.STONE_CHARACS.mars.sound) - .tagBlock('minecraft:mineable/pickaxe') - .hardness(0.8) - .resistance(0.8) - .requiresTool(true) - - event.create('tfg:spike/venus_stone_spike', 'tfc:rock_spike') - .textureAll('ad_astra:block/venus_stone') - .soundType(global.STONE_CHARACS.venus.sound) - .tagBlock('minecraft:mineable/pickaxe') - .hardness(0.8) - .resistance(0.8) - .requiresTool(true) - - event.create('tfg:spike/mercury_stone_spike', 'tfc:rock_spike') - .textureAll('ad_astra:block/mercury_stone') - .soundType(global.STONE_CHARACS.mercury.sound) - .tagBlock('minecraft:mineable/pickaxe') - .hardness(0.8) - .resistance(0.8) - .requiresTool(true) - - event.create('tfg:spike/glacio_stone_spike', 'tfc:rock_spike') - .textureAll('ad_astra:block/glacio_stone') - .soundType(global.STONE_CHARACS.glacio.sound) - .tagBlock('minecraft:mineable/pickaxe') - .hardness(0.8) - .resistance(0.8) - .requiresTool(true) - - event.create('tfg:spike/permafrost_spike', 'tfc:rock_spike') - .textureAll('ad_astra:block/permafrost') - .soundType(global.STONE_CHARACS.permafrost.sound) - .tagBlock('minecraft:mineable/pickaxe') - .hardness(0.8) - .resistance(0.8) - .requiresTool(true) - - event.create('tfg:spike/red_granite_spike', 'tfc:rock_spike') - .textureAll('gtceu:block/stones/red_granite/stone') - .soundType(global.STONE_CHARACS.red_granite.sound) - .tagBlock('minecraft:mineable/pickaxe') - .hardness(0.8) - .resistance(0.8) - .requiresTool(true) - - // #endregion Spikes - - // #region Cobblestones - - // Deepslate - event.create('tfg:rock/mossy_cobble_deepslate') - .soundType(global.STONE_CHARACS.deepslate.sound) - .tagBoth('forge:cobblestone') - .tagBoth('forge:cobblestone/normal') - .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_cobble_deepslate_${shape}`, shape) - .soundType(global.STONE_CHARACS.deepslate.sound) - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // Blackstone - event.create('tfg:rock/cobble_blackstone') - .soundType(global.STONE_CHARACS.blackstone.sound) - .tagBoth('forge:cobblestone') - .tagBoth('forge:cobblestone/normal') - .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) - .mapColor(global.STONE_CHARACS.blackstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/cobble_blackstone_${shape}`, shape) - .soundType(global.STONE_CHARACS.blackstone.sound) - .textureAll('minecraft:block/blackstone_top') - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) - .mapColor(global.STONE_CHARACS.blackstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/mossy_cobble_blackstone') - .soundType(global.STONE_CHARACS.blackstone.sound) - .tagBoth('forge:cobblestone') - .tagBoth('forge:cobblestone/normal') - .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) - .mapColor(global.STONE_CHARACS.blackstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_cobble_blackstone_${shape}`, shape) - .soundType(global.STONE_CHARACS.blackstone.sound) - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) - .mapColor(global.STONE_CHARACS.blackstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // Dripstone - event.create('tfg:rock/cobble_dripstone') - .soundType(global.STONE_CHARACS.dripstone.sound) - .tagBoth('forge:cobblestone') - .tagBoth('forge:cobblestone/normal') - .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) - .mapColor(global.STONE_CHARACS.dripstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/cobble_dripstone_${shape}`, shape) - .soundType(global.STONE_CHARACS.dripstone.sound) - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) - .mapColor(global.STONE_CHARACS.dripstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/mossy_cobble_dripstone') - .soundType(global.STONE_CHARACS.dripstone.sound) - .tagBoth('forge:cobblestone') - .tagBoth('forge:cobblestone/normal') - .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) - .mapColor(global.STONE_CHARACS.dripstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_cobble_dripstone_${shape}`, shape) - .soundType(global.STONE_CHARACS.dripstone.sound) - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) - .mapColor(global.STONE_CHARACS.dripstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // Crackrack - event.create('tfg:rock/cobble_crackrack') - .soundType(global.STONE_CHARACS.crackrack.sound) - .tagBoth('forge:cobblestone') - .tagBoth('forge:cobblestone/normal') - .tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`) - .mapColor(global.STONE_CHARACS.crackrack.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/cobble_crackrack_${shape}`, shape) - .soundType(global.STONE_CHARACS.crackrack.sound) - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`) - .mapColor(global.STONE_CHARACS.crackrack.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/mossy_cobble_crackrack') - .soundType(global.STONE_CHARACS.crackrack.sound) - .tagBoth('forge:cobblestone') - .tagBoth('forge:cobblestone/normal') - .tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`) - .mapColor(global.STONE_CHARACS.crackrack.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_cobble_crackrack_${shape}`, shape) - .soundType(global.STONE_CHARACS.crackrack.sound) - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`) - .mapColor(global.STONE_CHARACS.crackrack.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // Moon - event.create('tfg:rock/cobble_moon_wall', 'wall') - .soundType(global.STONE_CHARACS.moon.sound) - .textureAll('ad_astra:block/moon_cobblestone') - .tagBoth('tfg:rock_walls') - .tagBoth(`tfc:${global.STONE_CHARACS.moon.type}_items`) - .mapColor(global.STONE_CHARACS.moon.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/mossy_cobble_moon') - .soundType(global.STONE_CHARACS.moon.sound) - .tagBoth('forge:cobblestone') - .tagBoth('forge:cobblestone/normal') - .tagBoth(`tfc:${global.STONE_CHARACS.moon.type}_items`) - .mapColor(global.STONE_CHARACS.moon.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_cobble_moon_${shape}`, shape) - .soundType(global.STONE_CHARACS.moon.sound) - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.moon.type}_items`) - .mapColor(global.STONE_CHARACS.moon.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // Moon Deepslate - event.create('tfg:rock/cobble_moon_deepslate') - .soundType(global.STONE_CHARACS.moon_deepslate.sound) - .tagBoth('forge:cobblestone') - .tagBoth('forge:cobblestone/normal') - .tagBoth(`tfc:${global.STONE_CHARACS.moon_deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.moon_deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/cobble_moon_deepslate_${shape}`, shape) - .soundType(global.STONE_CHARACS.moon_deepslate.sound) - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.moon_deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.moon_deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/mossy_cobble_moon_deepslate') - .soundType(global.STONE_CHARACS.moon_deepslate.sound) - .tagBoth('forge:cobblestone') - .tagBoth('forge:cobblestone/normal') - .tagBoth(`tfc:${global.STONE_CHARACS.moon_deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.moon_deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_cobble_moon_deepslate_${shape}`, shape) - .soundType(global.STONE_CHARACS.moon_deepslate.sound) - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.moon_deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.moon_deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // Mars - event.create('tfg:rock/cobble_mars_wall', 'wall') - .soundType(global.STONE_CHARACS.mars.sound) - .textureAll('ad_astra:block/mars_cobblestone') - .tagBoth('tfg:rock_walls') - .tagBoth(`tfc:${global.STONE_CHARACS.mars.type}_items`) - .mapColor(global.STONE_CHARACS.mars.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) + if (rock.tfcTag != null) { + hardened.tagBoth(rock.tfcTag); + } + } - event.create('tfg:rock/mossy_cobble_mars') - .soundType(global.STONE_CHARACS.mars.sound) - .tagBoth('forge:cobblestone') - .tagBoth('forge:cobblestone/normal') - .tagBoth(`tfc:${global.STONE_CHARACS.mars.type}_items`) - .mapColor(global.STONE_CHARACS.mars.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_cobble_mars_${shape}`, shape) - .soundType(global.STONE_CHARACS.mars.sound) - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.mars.type}_items`) - .mapColor(global.STONE_CHARACS.mars.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - // Venus - event.create('tfg:rock/cobble_venus_wall', 'wall') - .soundType(global.STONE_CHARACS.venus.sound) - .textureAll('ad_astra:block/venus_cobblestone') - .tagBoth('tfg:rock_walls') - .tagBoth(`tfc:${global.STONE_CHARACS.venus.type}_items`) - .mapColor(global.STONE_CHARACS.venus.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) + // Loose + if (rock.raw != null && rock.loose != null && rock.loose.startsWith('tfg:loose/')) { + let looseRock = event.create(rock.loose, 'tfc:loose_rock') + .soundType(rock.sound ?? 'stone') + .itemTexture(rock.loose.replace(/:/g, ":item/")) + .textureAll(rawTexture) + .mapColor(rock.mapColor) + .tagBlock('tfc:loose_rocks') + .tagItem('tfc:any_knapping') + .tagItem('tfc:rock_knapping') + .tagBoth(rock.tfcTag) + .tagItem("rnr:loose_rock_items") + + if (rock.tfcTag != null) { + let tfcRockType = rock.tfcTag.replace(/tfc:/g, "").replace(/_items/g, ""); + looseRock.rockTypeModel(tfcRockType); + looseRock.tagBoth(rock.tfcTag) + looseRock.tagItem(`tfc:${tfcRockType}_rock`) + } + else { + looseRock.rockTypeModel('sedimentary'); + } + } + + // Spike + if (rock.raw != null && rock.spike != null && rock.spike.startsWith('tfg:spike/')) { + let spike = event.create(rock.spike, 'tfc:rock_spike') + .textureAll(rawTexture) + .soundType(rock.sound ?? 'stone') + .mapColor(rock.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .hardness(0.8) + .resistance(0.8) + .requiresTool(true) + + if (rock.tfcTag != null) { + spike.tagBoth(rock.tfcTag); + } + } + + // Gravel + if (rock.gravel != null && rock.gravel.startsWith('tfg:rock/')) { + let gravel = event.create(rock.gravel) + .soundType('gravel') + .tagBoth('forge:gravel') + .tagBoth('tfc:rock/gravel') + .mapColor(rock.mapColor) + .tagBlock('minecraft:mineable/shovel') + .tagBlock('tfc:can_landslide') + .fullBlock(true) + .opaque(true) + + if (rock.tfcTag != null) { + gravel.tagBoth(rock.tfcTag); + } + if (rock.gravelTag != null) { + gravel.tagItem(rock.gravelTag) + } + } + + // Aqueducts + if (rock.bricks != null && rock.aqueduct != null && rock.aqueduct.startsWith('tfg:rock/')) { + let aqueduct = event.create(rock.aqueduct, 'tfc:aqueduct') + .soundType(rock.sound ?? 'stone') + .textureAll(rock.bricks.texture ?? rock.bricks.block.replace(/:/g, ":block/")) + .mapColor(rock.mapColor) + .tagBoth('tfg:rock/aqueducts') + + if (rock.tfcTag != null) { + aqueduct.tagBoth(rock.tfcTag); + } + } + + // Supports + if (rock.raw != null && rock.support != null && rock.support.startsWith('tfg:')) { + let support = event.create(rock.support, 'tfc:support') + .textureAll(rawTexture) + .horizontal(horizontal => { + horizontal.textureAll(rawTexture) + horizontal.soundType(rock.sound ?? 'stone') + horizontal.hardness(5) + horizontal.resistance(8) + horizontal.mapColor(rock.mapColor) + horizontal.tagBlock('minecraft:mineable/pickaxe') + horizontal.requiresTool(true) + }) + .soundType(rock.sound ?? 'stone') + .hardness(5) + .resistance(8) + .mapColor(rock.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .requiresTool(true) + + if (rock.tfcTag != null) { + support.tagBoth(rock.tfcTag); + } + } + + // Pillar + if (rock.pillar != null && rock.pillar.startsWith('tfg:rock/')) { + let block = event.create(rock.pillar) + .textureAll(rock.pillar.replace(/:/g, ":block/")) + .soundType(rock.sound ?? 'stone') + .mapColor(rock.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + if (rock.tfcTag != null) { + block.tagBoth(rock.tfcTag); + } + } + } - event.create('tfg:rock/mossy_cobble_venus') - .soundType(global.STONE_CHARACS.venus.sound) - .tagBoth('forge:cobblestone') - .tagBoth('forge:cobblestone/normal') - .tagBoth(`tfc:${global.STONE_CHARACS.venus.type}_items`) - .mapColor(global.STONE_CHARACS.venus.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_cobble_venus_${shape}`, shape) - .soundType(global.STONE_CHARACS.venus.sound) - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.venus.type}_items`) - .mapColor(global.STONE_CHARACS.venus.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // Mercury - event.create('tfg:rock/cobble_mercury_wall', 'wall') - .soundType(global.STONE_CHARACS.mercury.sound) - .textureAll('ad_astra:block/mercury_cobblestone') - .tagBoth('tfg:rock_walls') - .tagBoth(`tfc:${global.STONE_CHARACS.mercury.type}_items`) - .mapColor(global.STONE_CHARACS.mercury.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/mossy_cobble_mercury') - .soundType(global.STONE_CHARACS.mercury.sound) - .tagBoth('forge:cobblestone') - .tagBoth('forge:cobblestone/normal') - .tagBoth(`tfc:${global.STONE_CHARACS.mercury.type}_items`) - .mapColor(global.STONE_CHARACS.mercury.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_cobble_mercury_${shape}`, shape) - .soundType(global.STONE_CHARACS.mercury.sound) - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.mercury.type}_items`) - .mapColor(global.STONE_CHARACS.mercury.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // Glacio - event.create('tfg:rock/cobble_glacio_wall', 'wall') - .soundType(global.STONE_CHARACS.glacio.sound) - .textureAll('ad_astra:block/glacio_cobblestone') - .tagBoth('tfg:rock_walls') - .tagBoth(`tfc:${global.STONE_CHARACS.glacio.type}_items`) - .mapColor(global.STONE_CHARACS.glacio.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/mossy_cobble_glacio') - .soundType(global.STONE_CHARACS.glacio.sound) - .tagBoth('forge:cobblestone') - .tagBoth('forge:cobblestone/normal') - .tagBoth(`tfc:${global.STONE_CHARACS.glacio.type}_items`) - .mapColor(global.STONE_CHARACS.glacio.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_cobble_glacio_${shape}`, shape) - .soundType(global.STONE_CHARACS.glacio.sound) - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.glacio.type}_items`) - .mapColor(global.STONE_CHARACS.glacio.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // Permafrost - event.create('tfg:rock/cobble_permafrost') - .soundType(global.STONE_CHARACS.permafrost.sound) - .tagBoth('forge:cobblestone') - .mapColor(global.STONE_CHARACS.permafrost.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/cobble_permafrost_${shape}`, shape) - .textureAll('ad_astra:block/permafrost_top') - .soundType(global.STONE_CHARACS.permafrost.sound) - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .mapColor(global.STONE_CHARACS.permafrost.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/mossy_cobble_permafrost') - .soundType(global.STONE_CHARACS.permafrost.sound) - .tagBoth('forge:cobblestone') - .mapColor(global.STONE_CHARACS.permafrost.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_cobble_permafrost_${shape}`, shape) - .soundType(global.STONE_CHARACS.permafrost.sound) - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .mapColor(global.STONE_CHARACS.permafrost.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // Red Granite - SHAPES.forEach(shape => { - event.create(`tfg:rock/cobble_red_granite_${shape}`, shape) - .soundType(global.STONE_CHARACS.red_granite.sound) - .textureAll('gtceu:block/stones/red_granite/cobble') - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.red_granite.type}_items`) - .mapColor(global.STONE_CHARACS.red_granite.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_cobble_red_granite_${shape}`, shape) - .soundType(global.STONE_CHARACS.red_granite.sound) - .textureAll('gtceu:block/stones/red_granite/cobble_mossy') - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.red_granite.type}_items`) - .mapColor(global.STONE_CHARACS.red_granite.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // #endregion Cobblestones - - // #region Gravels - event.create('tfg:rock/gravel_deepslate') - .soundType('gravel') - .tagBoth('forge:gravel') - .tagBoth('tfc:rock/gravel') - .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.deepslate.mapColor) - .tagBlock('minecraft:mineable/shovel') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/gravel_blackstone') - .soundType('gravel') - .tagBoth('forge:gravel') - .tagBoth('tfc:rock/gravel') - .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) - .mapColor(global.STONE_CHARACS.blackstone.mapColor) - .tagBlock('minecraft:mineable/shovel') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/gravel_dripstone') - .soundType('gravel') - .tagBoth('forge:gravel') - .tagBoth('tfc:rock/gravel') - .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) - .mapColor(global.STONE_CHARACS.dripstone.mapColor) - .tagBlock('minecraft:mineable/shovel') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/gravel_crackrack') - .soundType('gravel') - .tagBoth('forge:gravel') - .tagBoth('tfc:rock/gravel') - .tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`) - .mapColor(global.STONE_CHARACS.crackrack.mapColor) - .tagBlock('minecraft:mineable/shovel') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/gravel_moon') - .soundType('gravel') - .tagBoth('forge:gravel') - .tagBoth('tfc:rock/gravel') - .tagBoth(`tfc:${global.STONE_CHARACS.moon.type}_items`) - .mapColor(global.STONE_CHARACS.moon.mapColor) - .tagBlock('minecraft:mineable/shovel') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/gravel_moon_deepslate') - .soundType('gravel') - .tagBoth('forge:gravel') - .tagBoth('tfc:rock/gravel') - .tagBoth(`tfc:${global.STONE_CHARACS.moon_deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.moon_deepslate.mapColor) - .tagBlock('minecraft:mineable/shovel') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/gravel_mars') - .soundType('gravel') - .tagBoth('forge:gravel') - .tagBoth('tfc:rock/gravel') - .tagBoth(`tfc:${global.STONE_CHARACS.mars.type}_items`) - .mapColor(global.STONE_CHARACS.mars.mapColor) - .tagBlock('minecraft:mineable/shovel') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/gravel_venus') - .soundType('gravel') - .tagBoth('forge:gravel') - .tagBoth('tfc:rock/gravel') - .tagBoth(`tfc:${global.STONE_CHARACS.venus.type}_items`) - .mapColor(global.STONE_CHARACS.venus.mapColor) - .tagBlock('minecraft:mineable/shovel') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/gravel_mercury') - .soundType('gravel') - .tagBoth('forge:gravel') - .tagBoth('tfc:rock/gravel') - .tagBoth(`tfc:${global.STONE_CHARACS.mercury.type}_items`) - .mapColor(global.STONE_CHARACS.mercury.mapColor) - .tagBlock('minecraft:mineable/shovel') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/gravel_glacio') - .soundType('gravel') - .tagBoth('forge:gravel') - .tagBoth('tfc:rock/gravel') - .tagBoth(`tfc:${global.STONE_CHARACS.glacio.type}_items`) - .mapColor(global.STONE_CHARACS.glacio.mapColor) - .tagBlock('minecraft:mineable/shovel') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/gravel_permafrost') - .soundType('gravel') - .tagBoth('forge:gravel') - .tagBoth('tfc:rock/gravel') - .mapColor(global.STONE_CHARACS.permafrost.mapColor) - .tagBlock('minecraft:mineable/shovel') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/gravel_red_granite') - .soundType('gravel') - .tagBoth('forge:gravel') - .tagBoth('tfc:rock/gravel') - .tagBoth(`tfc:${global.STONE_CHARACS.red_granite.type}_items`) - .mapColor(global.STONE_CHARACS.red_granite.mapColor) - .tagBlock('minecraft:mineable/shovel') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - // #endregion Gravels - - // #region Smooth (Polished/Cut) Stones - - event.create('tfg:rock/polished_crackrack') - .soundType(global.STONE_CHARACS.crackrack.sound) - .tagBoth('forge:smooth_stone') - .tagBoth('tfc:igneous_intrusive_items') - .tagBoth('tfc:rock/smooth') - .mapColor('crimson_stem') - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/polished_crackrack_${shape}`, shape) - .soundType(global.STONE_CHARACS.crackrack.sound) - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`) - .mapColor(global.STONE_CHARACS.crackrack.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/polished_moon_wall', 'wall') - .soundType(global.STONE_CHARACS.moon.sound) - .textureAll('ad_astra:block/polished_moon_stone') - .tagBoth('tfg:rock_walls') - .tagBoth(`tfc:${global.STONE_CHARACS.moon.type}_items`) - .mapColor(global.STONE_CHARACS.moon.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/polished_moon_deepslate') - .soundType(global.STONE_CHARACS.moon_deepslate.sound) - .tagBoth('forge:smooth_stone') - .tagBoth(`tfc:${global.STONE_CHARACS.moon_deepslate.type}_items`) - .tagBoth('tfc:rock/smooth') - .mapColor(global.STONE_CHARACS.moon_deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/polished_moon_deepslate_${shape}`, shape) - .soundType(global.STONE_CHARACS.moon_deepslate.sound) - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.moon_deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.moon_deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/polished_mars_wall', 'wall') - .soundType(global.STONE_CHARACS.mars.sound) - .textureAll('ad_astra:block/polished_mars_stone') - .tagBoth('tfg:rock_walls') - .tagBoth(`tfc:${global.STONE_CHARACS.mars.type}_items`) - .mapColor(global.STONE_CHARACS.mars.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/polished_venus_wall', 'wall') - .soundType(global.STONE_CHARACS.venus.sound) - .textureAll('ad_astra:block/polished_venus_stone') - .tagBoth('tfg:rock_walls') - .tagBoth(`tfc:${global.STONE_CHARACS.venus.type}_items`) - .mapColor(global.STONE_CHARACS.venus.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/polished_mercury_wall', 'wall') - .soundType(global.STONE_CHARACS.mercury.sound) - .textureAll('ad_astra:block/polished_mercury_stone') - .tagBoth('tfg:rock_walls') - .tagBoth(`tfc:${global.STONE_CHARACS.mercury.type}_items`) - .mapColor(global.STONE_CHARACS.mercury.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/polished_glacio_wall', 'wall') - .soundType(global.STONE_CHARACS.glacio.sound) - .textureAll('ad_astra:block/polished_glacio_stone') - .tagBoth('tfg:rock_walls') - .tagBoth(`tfc:${global.STONE_CHARACS.glacio.type}_items`) - .mapColor(global.STONE_CHARACS.glacio.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/polished_permafrost_wall', 'wall') - .soundType(global.STONE_CHARACS.permafrost.sound) - .textureAll('ad_astra:block/polished_permafrost') - .tagBoth('tfg:rock_walls') - .tagBoth(`tfc:${global.STONE_CHARACS.permafrost.type}_items`) - .mapColor(global.STONE_CHARACS.permafrost.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/polished_red_granite_${shape}`, shape) - .soundType(global.STONE_CHARACS.red_granite.sound) - .textureAll('gtceu:block/stones/red_granite/polished') - .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.red_granite.type}_items`) - .mapColor(global.STONE_CHARACS.red_granite.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // #endregion Smooth (Polished/Cut) Stones - - // #region Bricks / Decorative - - // Deepslate - SHAPES.forEach(shape => { - event.create(`tfg:rock/cracked_bricks_deepslate_${shape}`, shape) - .soundType(global.STONE_CHARACS.deepslate.sound) - .textureAll('minecraft:block/cracked_deepslate_bricks') - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/cracked_tiles_deepslate_${shape}`, shape) - .soundType(global.STONE_CHARACS.deepslate.sound) - .textureAll('minecraft:block/cracked_deepslate_tiles') - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/mossy_bricks_deepslate') - .soundType(global.STONE_CHARACS.deepslate.sound) - .tagBoth('minecraft:stone_bricks') - .tagBoth('forge:stone_bricks') - .tagBoth('tfc:rock/bricks') - .tagBoth('tfc:rock/mossy_bricks') - .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_bricks_deepslate_${shape}`, shape) - .soundType(global.STONE_CHARACS.deepslate.sound) - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // Blackstone - SHAPES.forEach(shape => { - event.create(`tfg:rock/cracked_bricks_blackstone_${shape}`, shape) - .soundType(global.STONE_CHARACS.blackstone.sound) - .textureAll('minecraft:block/cracked_polished_blackstone_bricks') - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) - .mapColor(global.STONE_CHARACS.blackstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/mossy_bricks_blackstone') - .soundType(global.STONE_CHARACS.blackstone.sound) - .tagBoth('minecraft:stone_bricks') - .tagBoth('forge:stone_bricks') - .tagBoth('tfc:rock/bricks') - .tagBoth('tfc:rock/mossy_bricks') - .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) - .mapColor(global.STONE_CHARACS.blackstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_bricks_blackstone_${shape}`, shape) - .soundType(global.STONE_CHARACS.blackstone.sound) - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`) - .mapColor(global.STONE_CHARACS.blackstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // Dripstone - event.create('tfg:rock/cracked_bricks_dripstone') - .soundType(global.STONE_CHARACS.dripstone.sound) - .tagBoth('minecraft:stone_bricks') - .tagBoth('forge:stone_bricks') - .tagBoth('tfc:rock/bricks') - .tagBoth('tfc:rock/mossy_bricks') - .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) - .mapColor(global.STONE_CHARACS.dripstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/cracked_bricks_dripstone_${shape}`, shape) - .soundType(global.STONE_CHARACS.dripstone.sound) - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) - .mapColor(global.STONE_CHARACS.dripstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/mossy_bricks_dripstone') - .soundType(global.STONE_CHARACS.dripstone.sound) - .tagBoth('minecraft:stone_bricks') - .tagBoth('forge:stone_bricks') - .tagBoth('tfc:rock/bricks') - .tagBoth('tfc:rock/mossy_bricks') - .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) - .mapColor(global.STONE_CHARACS.dripstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_bricks_dripstone_${shape}`, shape) - .soundType(global.STONE_CHARACS.dripstone.sound) - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`) - .mapColor(global.STONE_CHARACS.dripstone.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // Crackrack - SHAPES.forEach(shape => { - event.create(`tfg:rock/cracked_bricks_nether_${shape}`, shape) - .soundType(global.STONE_CHARACS.nether.sound) - .textureAll('minecraft:block/cracked_nether_bricks') - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.nether.type}_items`) - .mapColor(global.STONE_CHARACS.nether.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/mossy_bricks_nether') - .soundType(global.STONE_CHARACS.nether.sound) - .tagBoth('minecraft:stone_bricks') - .tagBoth('forge:stone_bricks') - .tagBoth('tfc:rock/bricks') - .tagBoth('tfc:rock/mossy_bricks') - .tagBoth(`tfc:${global.STONE_CHARACS.nether.type}_items`) - .mapColor(global.STONE_CHARACS.nether.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_bricks_nether_${shape}`, shape) - .soundType(global.STONE_CHARACS.nether.sound) - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.nether.type}_items`) - .mapColor(global.STONE_CHARACS.nether.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // Moon Stone - SHAPES.forEach(shape => { - event.create(`tfg:rock/cracked_bricks_moon_${shape}`, shape) - .soundType(global.STONE_CHARACS.moon.sound) - .textureAll('ad_astra:block/cracked_moon_stone_bricks') - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.moon.type}_items`) - .mapColor(global.STONE_CHARACS.moon.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/mossy_bricks_moon') - .soundType(global.STONE_CHARACS.moon.sound) - .tagBoth('minecraft:stone_bricks') - .tagBoth('forge:stone_bricks') - .tagBoth('tfc:rock/bricks') - .tagBoth('tfc:rock/mossy_bricks') - .tagBoth(`tfc:${global.STONE_CHARACS.moon.type}_items`) - .mapColor(global.STONE_CHARACS.moon.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_bricks_moon_${shape}`, shape) - .soundType(global.STONE_CHARACS.moon.sound) - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.moon.type}_items`) - .mapColor(global.STONE_CHARACS.moon.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/chiseled_bricks_moon_wall', 'wall') - .soundType(global.STONE_CHARACS.moon.sound) - .textureAll('ad_astra:block/chiseled_moon_stone_bricks') - .tagBoth('tfg:brick_walls') - .tagBoth(`tfc:${global.STONE_CHARACS.moon.type}_items`) - .mapColor(global.STONE_CHARACS.moon.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - // Moon Deepslate - event.create('tfg:rock/bricks_moon_deepslate') - .soundType(global.STONE_CHARACS.moon_deepslate.sound) - .tagBoth('minecraft:stone_bricks') - .tagBoth('forge:stone_bricks') - .tagBoth('tfc:rock/bricks') - .tagBoth(`tfc:${global.STONE_CHARACS.moon_deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.moon_deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/bricks_moon_deepslate_${shape}`, shape) - .soundType(global.STONE_CHARACS.moon_deepslate.sound) - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.moon_deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.moon_deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/cracked_bricks_moon_deepslate') - .soundType(global.STONE_CHARACS.moon_deepslate.sound) - .tagBoth('minecraft:stone_bricks') - .tagBoth('forge:stone_bricks') - .tagBoth('tfc:rock/bricks') - .tagBoth('tfc:rock/cracked_bricks') - .tagBoth(`tfc:${global.STONE_CHARACS.moon_deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.moon_deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/cracked_bricks_moon_deepslate_${shape}`, shape) - .soundType(global.STONE_CHARACS.moon_deepslate.sound) - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.moon_deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.moon_deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/mossy_bricks_moon_deepslate') - .soundType(global.STONE_CHARACS.moon_deepslate.sound) - .tagBoth('minecraft:stone_bricks') - .tagBoth('forge:stone_bricks') - .tagBoth('tfc:rock/bricks') - .tagBoth('tfc:rock/mossy_bricks') - .tagBoth(`tfc:${global.STONE_CHARACS.moon_deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.moon_deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_bricks_moon_deepslate_${shape}`, shape) - .soundType(global.STONE_CHARACS.moon_deepslate.sound) - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.moon_deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.moon_deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/chiseled_bricks_moon_deepslate') - .soundType(global.STONE_CHARACS.moon_deepslate.sound) - .tagBoth('minecraft:stone_bricks') - .tagBoth('forge:stone_bricks') - .tagBoth('tfc:rock/bricks') - .tagBoth('tfc:rock/chiseled_bricks') - .tagBoth(`tfc:${global.STONE_CHARACS.moon_deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.moon_deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/chiseled_bricks_moon_deepslate_${shape}`, shape) - .soundType(global.STONE_CHARACS.moon_deepslate.sound) - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.moon_deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.moon_deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/pillar_moon_deepslate') - .soundType(global.STONE_CHARACS.moon_deepslate.sound) - .property(BlockProperties.AXIS) - .placementState(event => event.set(BlockProperties.AXIS, event.clickedFace.axis)) - .tagBoth(`tfc:${global.STONE_CHARACS.moon_deepslate.type}_items`) - .mapColor(global.STONE_CHARACS.moon_deepslate.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - // Mars Stone - SHAPES.forEach(shape => { - event.create(`tfg:rock/cracked_bricks_mars_${shape}`, shape) - .soundType(global.STONE_CHARACS.mars.sound) - .textureAll('ad_astra:block/cracked_mars_stone_bricks') - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.mars.type}_items`) - .mapColor(global.STONE_CHARACS.mars.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/mossy_bricks_mars') - .soundType(global.STONE_CHARACS.mars.sound) - .tagBoth('minecraft:stone_bricks') - .tagBoth('forge:stone_bricks') - .tagBoth('tfc:rock/bricks') - .tagBoth('tfc:rock/mossy_bricks') - .tagBoth(`tfc:${global.STONE_CHARACS.mars.type}_items`) - .mapColor(global.STONE_CHARACS.mars.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_bricks_mars_${shape}`, shape) - .soundType(global.STONE_CHARACS.mars.sound) - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.mars.type}_items`) - .mapColor(global.STONE_CHARACS.mars.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/chiseled_bricks_mars_wall', 'wall') - .soundType(global.STONE_CHARACS.mars.sound) - .textureAll('ad_astra:block/chiseled_mars_stone_bricks') - .tagBoth('tfg:brick_walls') - .tagBoth(`tfc:${global.STONE_CHARACS.mars.type}_items`) - .mapColor(global.STONE_CHARACS.mars.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - // Venus Stone - SHAPES.forEach(shape => { - event.create(`tfg:rock/cracked_bricks_venus_${shape}`, shape) - .soundType(global.STONE_CHARACS.venus.sound) - .textureAll('ad_astra:block/cracked_venus_stone_bricks') - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.venus.type}_items`) - .mapColor(global.STONE_CHARACS.venus.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/mossy_bricks_venus') - .soundType(global.STONE_CHARACS.venus.sound) - .tagBoth('minecraft:stone_bricks') - .tagBoth('forge:stone_bricks') - .tagBoth('tfc:rock/bricks') - .tagBoth('tfc:rock/mossy_bricks') - .tagBoth(`tfc:${global.STONE_CHARACS.venus.type}_items`) - .mapColor(global.STONE_CHARACS.venus.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_bricks_venus_${shape}`, shape) - .soundType(global.STONE_CHARACS.venus.sound) - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.venus.type}_items`) - .mapColor(global.STONE_CHARACS.venus.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/chiseled_bricks_venus_wall', 'wall') - .soundType(global.STONE_CHARACS.venus.sound) - .textureAll('ad_astra:block/chiseled_venus_stone_bricks') - .tagBoth('tfg:brick_walls') - .tagBoth(`tfc:${global.STONE_CHARACS.venus.type}_items`) - .mapColor(global.STONE_CHARACS.venus.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - // Mercury Stone - SHAPES.forEach(shape => { - event.create(`tfg:rock/cracked_bricks_mercury_${shape}`, shape) - .soundType(global.STONE_CHARACS.mercury.sound) - .textureAll('ad_astra:block/cracked_mercury_stone_bricks') - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.mercury.type}_items`) - .mapColor(global.STONE_CHARACS.mercury.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/mossy_bricks_mercury') - .soundType(global.STONE_CHARACS.mercury.sound) - .tagBoth('minecraft:stone_bricks') - .tagBoth('forge:stone_bricks') - .tagBoth('tfc:rock/bricks') - .tagBoth('tfc:rock/mossy_bricks') - .tagBoth(`tfc:${global.STONE_CHARACS.mercury.type}_items`) - .mapColor(global.STONE_CHARACS.mercury.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_bricks_mercury_${shape}`, shape) - .soundType(global.STONE_CHARACS.mercury.sound) - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.mercury.type}_items`) - .mapColor(global.STONE_CHARACS.mercury.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/chiseled_bricks_mercury_wall', 'wall') - .soundType(global.STONE_CHARACS.mercury.sound) - .textureAll('ad_astra:block/chiseled_mercury_stone_bricks') - .tagBoth('tfg:brick_walls') - .tagBoth(`tfc:${global.STONE_CHARACS.mercury.type}_items`) - .mapColor(global.STONE_CHARACS.mercury.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - // Glacio Stone - SHAPES.forEach(shape => { - event.create(`tfg:rock/cracked_bricks_glacio_${shape}`, shape) - .soundType(global.STONE_CHARACS.glacio.sound) - .textureAll('ad_astra:block/cracked_glacio_stone_bricks') - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.glacio.type}_items`) - .mapColor(global.STONE_CHARACS.glacio.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/mossy_bricks_glacio') - .soundType(global.STONE_CHARACS.glacio.sound) - .tagBoth('minecraft:stone_bricks') - .tagBoth('forge:stone_bricks') - .tagBoth('tfc:rock/bricks') - .tagBoth('tfc:rock/mossy_bricks') - .tagBoth(`tfc:${global.STONE_CHARACS.glacio.type}_items`) - .mapColor(global.STONE_CHARACS.glacio.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_bricks_glacio_${shape}`, shape) - .soundType(global.STONE_CHARACS.glacio.sound) - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.glacio.type}_items`) - .mapColor(global.STONE_CHARACS.glacio.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/chiseled_bricks_glacio_wall', 'wall') - .soundType(global.STONE_CHARACS.glacio.sound) - .textureAll('ad_astra:block/chiseled_glacio_stone_bricks') - .tagBoth('tfg:brick_walls') - .tagBoth(`tfc:${global.STONE_CHARACS.glacio.type}_items`) - .mapColor(global.STONE_CHARACS.glacio.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - // Permafrost - SHAPES.forEach(shape => { - event.create(`tfg:rock/cracked_bricks_permafrost_${shape}`, shape) - .soundType(global.STONE_CHARACS.permafrost.sound) - .textureAll('ad_astra:block/cracked_permafrost_bricks') - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.permafrost.type}_items`) - .mapColor(global.STONE_CHARACS.permafrost.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/mossy_bricks_permafrost') - .soundType(global.STONE_CHARACS.permafrost.sound) - .tagBoth('minecraft:stone_bricks') - .tagBoth('forge:stone_bricks') - .tagBoth('tfc:rock/bricks') - .tagBoth('tfc:rock/mossy_bricks') - .mapColor(global.STONE_CHARACS.permafrost.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_bricks_permafrost_${shape}`, shape) - .soundType(global.STONE_CHARACS.permafrost.sound) - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .mapColor(global.STONE_CHARACS.permafrost.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - event.create('tfg:rock/chiseled_bricks_permafrost_wall', 'wall') - .soundType(global.STONE_CHARACS.permafrost.sound) - .textureAll('ad_astra:block/chiseled_permafrost_bricks') - .tagBoth('tfg:brick_walls') - .mapColor(global.STONE_CHARACS.permafrost.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - - // Red Granite - - SHAPES.forEach(shape => { - event.create(`tfg:rock/bricks_red_granite_${shape}`, shape) - .soundType(global.STONE_CHARACS.red_granite.sound) - .textureAll('gtceu:block/stones/red_granite/bricks') - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.red_granite.type}_items`) - .mapColor(global.STONE_CHARACS.red_granite.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/cracked_bricks_red_granite_${shape}`, shape) - .soundType(global.STONE_CHARACS.red_granite.sound) - .textureAll('gtceu:block/stones/red_granite/bricks_cracked') - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.red_granite.type}_items`) - .mapColor(global.STONE_CHARACS.red_granite.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - SHAPES.forEach(shape => { - event.create(`tfg:rock/mossy_bricks_red_granite_${shape}`, shape) - .soundType(global.STONE_CHARACS.red_granite.sound) - .textureAll('gtceu:block/stones/red_granite/bricks_mossy') - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .tagBoth(`tfc:${global.STONE_CHARACS.red_granite.type}_items`) - .mapColor(global.STONE_CHARACS.red_granite.mapColor) - .tagBlock('minecraft:mineable/pickaxe') - .fullBlock(true) - .opaque(true) - }) - - // #endregion Bricks / Decorative // #region Sandstone event.create('tfg:rock/smooth_red_sandstone_wall', 'wall') @@ -1814,17 +267,17 @@ function registerTFGRockBlocks(event) { event.create('tfg:rock/bricks_venus_sandstone_wall', 'wall') .soundType('stone') .textureAll('ad_astra:block/venus_sandstone_bricks') - .mapColor(global.STONE_CHARACS.venus.mapColor) + .mapColor(global.BIG_ROCK_TABLE.venus_stone.mapColor) .tagBlock('minecraft:mineable/pickaxe') .fullBlock(true) .opaque(true) SHAPES.forEach(shape => { - event.create(`tfg:rock/cracked_bricks_venus_sandstone_${shape}`, shape) - .soundType(global.STONE_CHARACS.venus.sound) + event.create(`tfg:rock/cracked_bricks_venus_sandstone_${shape}`, shape.replace(/stair/g, 'stairs')) + .soundType(global.BIG_ROCK_TABLE.venus_stone.sound) .textureAll('ad_astra:block/cracked_venus_sandstone_bricks') - .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) - .mapColor(global.STONE_CHARACS.venus.mapColor) + .tagBoth(`tfg:brick_${shape}s`) + .mapColor(global.BIG_ROCK_TABLE.venus_stone.mapColor) .tagBlock('minecraft:mineable/pickaxe') .fullBlock(true) .opaque(true) diff --git a/kubejs/startup_scripts/tfg/stone_types/blocks.vanilla_stone.js b/kubejs/startup_scripts/tfg/stone_types/blocks.vanilla_stone.js deleted file mode 100644 index 98d0e933a..000000000 --- a/kubejs/startup_scripts/tfg/stone_types/blocks.vanilla_stone.js +++ /dev/null @@ -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) - -} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/stone_types/constants.rocks.js b/kubejs/startup_scripts/tfg/stone_types/constants.rocks.js new file mode 100644 index 000000000..bd9ee61f1 --- /dev/null +++ b/kubejs/startup_scripts/tfg/stone_types/constants.rocks.js @@ -0,0 +1,1145 @@ +// priority: -1 +"use strict"; + +/** + * @typedef {Object} BlockForms + * @property {string} block + * @property {string?} stair + * @property {string?} slab + * @property {string?} wall + * @property {BlockForms?} mossy - If this block has a mossy variant + * @property {BlockForms?} cracked - If this block has a cracked variant + */ + +/** + * @typedef {Object} RockType + * @property {String?} material + * Material ID if this rock type can be macerated + * @property {String?} tfcTag + * Item tag that everything in this rock type should be added to + * @property {boolean} isTFC + * If this is a built-in TFC rock type or not + * @property {String?} stonecutterTag + * Item tag for stonecutting + * @property {String?} gravelTag + * Item tag for what kind of sand this gravel should be turned into + * @property {String?} mapColor + * @property {String?} sound + * @property {String[]?} dimensions + * Used for generating rock breaker recipes. + * TFC rocks can be used on any dimension, null/empty array on other types will not have any recipes. + * @property {String?} hardened + * @property {String?} gravel + * @property {String?} loose + * @property {String?} mossyLoose + * @property {String?} brick + * ID of the brick item + * @property {String?} support + * @property {String?} aqueduct + * @property {String?} spike + * @property {String?} pillar + * @property {String?} pillar2 + * @property {BlockForms?} raw + * @property {BlockForms?} cobble + * @property {BlockForms?} bricks + * @property {BlockForms?} polished + * @property {BlockForms?} chiseled + * @property {BlockForms[]?} stonecutting + * Extra blocks that you can use a stonecutter to get + */ + +/** + * Generates an object of block, stair, slab, and wall strings. + * @param {String} id + * The internal ID of a rock type. For example, migmatite is 'deepslate'. + * @param {String} pattern + * A pattern to use to generate the other rock form strings. + * %s will be replaced with the id above. + * "_stairs", "_slab", or "_wall" will be appended on the end. + * @param {BlockForms?} [mossy=null] + * If this rock block has a mossy subset, put it here. + * @param {BlockForms?} [cracked=null] + * If this rock block has a cracked subset, put it here. + * @returns {BlockForms?} + */ +function generateForms(id, pattern, mossy, cracked) { + let replaced = pattern.replace('%s', id); + return { + block: `${replaced}`, + stair: `${replaced}_stairs`, + slab: `${replaced}_slab`, + wall: `${replaced}_wall`, + mossy: mossy, + cracked: cracked + }; +} + +/** + * Generates an object of block, stair, slab, and wall strings. + * @param {String} id + * The internal ID of a rock type. For example, migmatite is 'deepslate'. + * @param {String} pattern + * A pattern to use to generate the other rock form strings. + * %s will be replaced with the id above. + * "_stairs", "_slab", or "_wall" will be appended on the end. + * @param {BlockForms} table + * Another table of forms to overwrite this one. Good if there's already an existing block. + * @param {BlockForms?} [mossy=null] + * If this rock block has a mossy subset, put it here. + * @param {BlockForms?} [cracked=null] + * If this rock block has a cracked subset, put it here. + * @returns {BlockForms} + */ +function generateFormsExisting(id, pattern, table, mossy, cracked) { + let generated = generateForms(id, pattern, mossy, cracked); + + if (table.block == null) + table.block = generated.block; + if (table.stair == null) + table.stair = generated.stair; + if (table.slab == null) + table.slab = generated.slab; + if (table.wall == null) + table.wall = generated.wall; + if (table.mossy == null) + table.mossy = generated.mossy; + if (table.cracked == null) + table.cracked = generated.cracked; + + return table; +} + + +/** + * Same as above but a special case for Ad Astra because they're allergic to walls. + * @param {String} id + * The internal ID of a rock type. For example, migmatite is 'deepslate'. + * @param {String} pattern + * A pattern to use to generate the other rock form strings. + * %s will be replaced with the id above. + * "_stairs", "_slab", or "_wall" will be appended on the end. + * @param {String} wall + * The TFG wall block. + * @param {BlockForms?} [mossy=null] + * If this rock block has a mossy subset, put it here. + * @param {BlockForms?} [cracked=null] + * If this rock block has a cracked subset, put it here. + * @returns {BlockForms} + */ +function generateFormsExceptWall(id, pattern, wall, mossy, cracked) { + let replaced = pattern.replace('%s', id); + return { + block: replaced, + stair: `${replaced}_stairs`, + slab: `${replaced}_slab`, + wall: wall, + mossy: mossy, + cracked: cracked + }; +} + +/** + * Fills out a rock type for the TFC blocks, since they already exist and have known IDs. + * @param {String} id + * The internal ID of a rock type. + * @param {RockType} table + * The table with all the other blocks. + * @returns {RockType} + */ +function generateTFC(id, table) { + table.stonecutterTag = `tfg:stone_types/${id}`; + table.hardened = `tfc:rock/hardened/${id}`; + table.gravel = `tfc:rock/gravel/${id}`; + table.loose = `tfc:rock/loose/${id}`; + table.mossyLoose = `tfc:rock/mossy_loose/${id}`; + table.brick = `tfc:brick/${id}`; + table.support = `tfg:${id}_support`; + table.aqueduct = `tfc:rock/aqueduct/${id}`; + table.spike = `tfc:rock/spike/${id}`; + + table.raw = generateForms(id, 'tfc:rock/raw/%s'), + table.cobble = generateForms(id, 'tfc:rock/cobble/%s', + generateForms(id, 'tfc:rock/mossy_cobble/%s')); + table.bricks = generateForms(id, 'tfc:rock/bricks/%s', + generateForms(id, 'tfc:rock/mossy_bricks/%s'), + generateForms(id, 'tfc:rock/cracked_bricks/%s')); + table.polished = generateForms(id, 'tfc:rock/smooth/%s'); + table.chiseled = { block: `tfc:rock/chiseled/${id}` }; + + table.isTFC = true; + return table; +} + +/** + * Generates some missing rock-type blocks that don't have stair/slab/wall blocks. + * @param {String} id + * The internal ID of a rock type. For example, migmatite is 'deepslate'. + * @param {RockType} table + * A table of different rock blocks. + * @returns {RockType} + */ +function generateMissing(id, table) { + table.stonecutterTag = `tfg:stonecutting/${id}`; + if (table.hardened === undefined) + table.hardened = `tfg:rock/hardened_${id}`; + if (table.gravel === undefined) + table.gravel = `tfg:rock/gravel_${id}`; + if (table.loose === undefined) + table.loose = `tfg:loose/${id}`; + if (table.brick === undefined) + table.brick = `tfg:brick/${id}`; + if (table.support === undefined) + table.support = `tfg:${id}_support`; + if (table.aqueduct === undefined) + table.aqueduct = `tfg:rock/aqueduct_${id}`; + if (table.spike === undefined) + table.spike = `tfg:spike/${id}_spike`; + + table.isTFC = false; + return table; +} + +// This can also be used for things that aren't really rock types, if you want to generate similar recipes. +/** @global */ +global.BIG_ROCK_TABLE = /** @type {{String, RockType}} */ ({ + + ///////////////////////////////////////////////////////////////////////////////////////////// + // TFC ROCKS + ///////////////////////////////////////////////////////////////////////////////////////////// + + "gabbro": generateTFC('gabbro', { + material: 'tfg:igneous_mafic', + tfcTag: 'tfc:igneous_intrusive_items' + }), + "diorite": generateTFC('diorite', { + material: 'tfg:igneous_intermediate', + tfcTag: 'tfc:igneous_intrusive_items', + pillar: 'create:diorite_pillar', + pillar2: 'create:layered_diorite', + stonecutterTag: 'create:stone_types/diorite', + stonecutting: [ + generateForms('diorite', 'create:cut_%s'), + generateForms('diorite', 'create:polished_cut_%s'), + generateFormsExisting('diorite', 'create:cut_%s_brick', { block: 'create:cut_diorite_bricks' }), + generateFormsExisting('diorite', 'create:small_%s_brick', { block: 'create:small_diorite_bricks' }) + ] + }), + "granite": generateTFC('granite', { + material: 'tfg:igneous_felsic', + tfcTag: 'tfc:igneous_intrusive_items' + }), + "basalt": generateTFC('basalt', { + material: 'tfg:igneous_mafic', + tfcTag: 'tfc:igneous_extrusive_items', + pillar: 'minecraft:polished_basalt', + pillar2: 'minecraft:smooth_basalt', + }), + "andesite": generateTFC('andesite', { + material: 'tfg:igneous_intermediate', + tfcTag: 'tfc:igneous_extrusive_items', + pillar: 'create:andesite_pillar', + pillar2: 'create:layered_andesite', + stonecutterTag: 'create:stone_types/andesite', + stonecutting: [ + generateForms('andesite', 'create:cut_%s'), + generateForms('andesite', 'create:polished_cut_%s'), + generateFormsExisting('andesite', 'create:cut_%s_brick', { block: 'create:cut_andesite_bricks' }), + generateFormsExisting('andesite', 'create:small_%s_brick', { block: 'create:small_andesite_bricks' }) + ] + }), + "dacite": generateTFC('dacite', { + material: 'tfg:igneous_intermediate', + tfcTag: 'tfc:igneous_extrusive_items' + }), + "rhyolite": generateTFC('rhyolite', { + material: 'tfg:igneous_felsic', + tfcTag: 'tfc:igneous_extrusive_items' + }), + "shale": generateTFC('shale', { + material: 'tfg:sedimentary_clastic', + tfcTag: 'tfc:sedimentary_items' + }), + "claystone": generateTFC('claystone', { + material: 'tfg:sedimentary_clastic', + tfcTag: 'tfc:sedimentary_items' + }), + "conglomerate": generateTFC('conglomerate', { + material: 'tfg:sedimentary_clastic', + tfcTag: 'tfc:sedimentary_items' + }), + "limestone": generateTFC('limestone', { + material: 'tfg:sedimentary_carbonate', + tfcTag: 'tfc:sedimentary_items', + pillar: 'create:limestone_pillar', + pillar2: 'create:layered_limestone', + stonecutterTag: 'create:stone_types/limestone', + stonecutting: [ + { block: 'create:limestone' }, + generateForms('limestone', 'create:cut_%s'), + generateForms('limestone', 'create:polished_cut_%s'), + generateFormsExisting('limestone', 'create:cut_%s_brick', { block: 'create:cut_limestone_bricks' }), + generateFormsExisting('limestone', 'create:small_%s_brick', { block: 'create:small_limestone_bricks' }) + ] + }), + "dolomite": generateTFC('dolomite', { + material: 'tfg:sedimentary_carbonate', + tfcTag: 'tfc:sedimentary_items' + }), + "chalk": generateTFC('chalk', { + material: 'tfg:sedimentary_carbonate', + tfcTag: 'tfc:sedimentary_items' + }), + "chert": generateTFC('chert', { + material: 'tfg:sedimentary_organic', + tfcTag: 'tfc:sedimentary_items', + pillar: 'create:granite_pillar', + pillar2: 'create:layered_granite', + stonecutterTag: 'create:stone_types/granite', + stonecutting: [ + generateForms('granite', 'create:cut_%s'), + generateForms('granite', 'create:polished_cut_%s'), + generateFormsExisting('granite', 'create:cut_%s_brick', { block: 'create:cut_granite_bricks' }), + generateFormsExisting('granite', 'create:small_%s_brick', { block: 'create:small_granite_bricks' }) + ] + }), + "slate": generateTFC('slate', { + material: 'tfg:metamorphic', + tfcTag: 'tfc:metamorphic_items' + }), + "phyllite": generateTFC('phyllite', { + material: 'tfg:metamorphic', + tfcTag: 'tfc:metamorphic_items' + }), + "schist": generateTFC('schist', { + material: 'tfg:metamorphic', + tfcTag: 'tfc:metamorphic_items' + }), + "gneiss": generateTFC('gneiss', { + material: 'tfg:metamorphic', + tfcTag: 'tfc:metamorphic_items' + }), + "marble": generateTFC('marble', { + material: 'tfg:metamorphic', + tfcTag: 'tfc:metamorphic_items', + stonecutting: [ + { block: 'gtceu:polished_marble' }, + { block: 'gtceu:chiseled_marble' }, + { block: 'gtceu:marble_tile' }, + { block: 'gtceu:marble_small_tile' }, + { block: 'gtceu:marble_windmill_a' }, + { block: 'gtceu:marble_windmill_b' }, + { block: 'gtceu:small_marble_bricks' }, + { block: 'gtceu:square_marble_bricks' } + ] + }), + "quartzite": generateTFC('quartzite', { + material: 'tfg:metamorphic', + tfcTag: 'tfc:metamorphic_items' + }), + + ///////////////////////////////////////////////////////////////////////////////////////////// + // BENEATH ROCKS + ///////////////////////////////////////////////////////////////////////////////////////////// + + // Nether quartz + "nether_quartz": { + // No material because GT already has recycling for these + sound: 'stone', + mapColor: 'quartz', + raw: { + block: 'minecraft:quartz_block', + stair: 'minecraft:quartz_stairs', + slab: 'minecraft:quartz_slab', + wall: 'tfg:rock/quartz_wall', + texture: 'minecraft:block/quartz_block_side' + }, + polished: { + block: 'minecraft:smooth_quartz', + stair: 'minecraft:smooth_quartz_stairs', + slab: 'minecraft:smooth_quartz_slab', + wall: 'tfg:rock/smooth_quartz_wall', + texture: 'minecraft:block/quartz_block_bottom' + } + }, + // Migmatite + "deepslate": generateMissing('deepslate', { + material: 'tfg:metamorphic', + tfcTag: 'tfc:metamorphic_items', + gravelTag: 'tfc:black_gravel', + sound: 'deepslate', + mapColor: 'terracotta_grey', + dimensions: ['minecraft:overworld', 'minecraft:the_nether', 'ad_astra:venus'], + support: 'tfg:migmatite_support', + pillar: 'create:deepslate_pillar', + pillar2: 'create:layered_deepslate', + stonecutterTag: 'create:stone_types/deepslate', + raw: generateFormsExisting('deepslate', 'tfg:rock/%s', { block: 'minecraft:deepslate' }), + cobble: generateForms('deepslate', 'minecraft:cobbled_%s', + generateForms('deepslate', 'tfg:rock/mossy_cobble_%s')), + bricks: generateFormsExisting('deepslate', 'minecraft:%s_brick', { block: 'minecraft:deepslate_bricks' }, + generateForms('deepslate', 'tfg:rock/mossy_bricks_%s'), + generateFormsExisting('deepslate', 'tfg:rock/cracked_bricks_%s', { block: 'minecraft:cracked_deepslate_bricks' })), + polished: generateForms('deepslate', 'minecraft:polished_%s'), + chiseled: { block: 'minecraft:chiseled_deepslate' }, + stonecutting: [ + generateFormsExisting('deepslate', 'minecraft:%s_tile', { block: 'minecraft:deepslate_tiles' }, null, + generateFormsExisting('deepslate', 'tfg:rock/cracked_tiles_%s', { block: 'minecraft:cracked_deepslate_tiles' })), + generateForms('deepslate', 'create:cut_%s'), + generateForms('deepslate', 'create:polished_cut_%s'), + generateFormsExisting('deepslate', 'create:cut_%s_brick', { block: 'create:cut_deepslate_bricks' }), + generateFormsExisting('deepslate', 'create:small_%s_brick', { block: 'create:small_deepslate_bricks' }) + ] + }), + // Travertine + "dripstone": generateMissing('dripstone', { + material: 'tfg:sedimentary_carbonate', + tfcTag: 'tfc:sedimentary_items', + gravelTag: 'tfc:brown_gravel', + sound: 'dripstone_block', + mapColor: 'terracotta_brown', + dimensions: ['minecraft:overworld', 'minecraft:the_nether', 'ad_astra:venus'], + support: 'tfg:travertine_support', + pillar: 'create:dripstone_pillar', + pillar2: 'create:layered_dripstone', + stonecutterTag: 'create:stone_types/dripstone', + raw: generateFormsExisting('dripstone', 'tfg:rock/%s', { block: 'minecraft:dripstone_block' }), + cobble: generateForms('dripstone', 'tfg:rock/cobble_%s', + generateForms('dripstone', 'tfg:rock/mossy_cobble_%s')), + bricks: generateFormsExisting('dripstone', 'create:cut_%s_brick', { + block: 'create:cut_dripstone_bricks', + texture: 'create:block/palettes/stone_types/brick/dripstone_cut_brick' + }, + generateForms('dripstone', 'tfg:rock/mossy_bricks_%s'), + generateForms('dripstone', 'tfg:rock/cracked_bricks_%s')), + polished: generateForms('dripstone', 'create:cut_%s'), + stonecutting: [ + generateForms('dripstone', 'create:polished_cut_%s'), + generateFormsExisting('dripstone', 'create:small_%s_brick', { block: 'create:small_dripstone_bricks' }) + ] + }), + // Pyroxenite + "blackstone": generateMissing('blackstone', { + material: 'tfg:igneous_ultramafic', + tfcTag: 'tfc:igneous_intrusive_items', + gravelTag: 'tfc:black_gravel', + sound: 'stone', + mapColor: 'color_black', + dimensions: ['minecraft:overworld', 'minecraft:the_nether', 'ad_astra:mercury'], + support: 'tfg:pyroxenite_support', + pillar: 'beneath:ancient_altar', + loose: 'beneath:blackstone_pebble', + brick: 'beneath:blackstone_brick', + aqueduct: 'beneath:blackstone_aqueduct', + raw: generateForms('blackstone', 'minecraft:%s'), + cobble: generateFormsExisting('blackstone', 'tfg:rock/cobble_%s', { texture: 'minecraft:block/blackstone_top' }, + generateForms('blackstone', 'tfg:rock/mossy_cobble_%s')), + bricks: generateFormsExisting('blackstone', 'minecraft:polished_%s_brick', { block: 'minecraft:polished_blackstone_bricks' }, + generateForms('blackstone', 'tfg:rock/mossy_bricks_%s'), + generateFormsExisting('blackstone', 'tfg:rock/cracked_bricks_%s', { block: 'minecraft:cracked_polished_blackstone_bricks' })), + polished: generateForms('blackstone', 'minecraft:polished_%s'), + chiseled: { block: 'minecraft:chiseled_polished_blackstone' }, + }), + // Keratophyre + "crackrack": generateMissing('crackrack', { + material: 'tfg:igneous_intermediate', + tfcTag: 'tfc:igneous_extrusive_items', + gravelTag: 'tfc:pink_gravel', + sound: 'netherrack', + mapColor: 'crimson_stem', + dimensions: ['minecraft:overworld', 'minecraft:the_nether', 'ad_astra:venus'], + support: 'tfg:keratophyre_support', + brick: 'minecraft:nether_brick', + aqueduct: 'tfg:rock/aqueduct_nether', + raw: generateFormsExisting('crackrack', 'tfg:rock/%s', { block: 'beneath:crackrack' }), + cobble: generateForms('crackrack', 'tfg:rock/cobble_%s', + generateForms('crackrack', 'tfg:rock/mossy_cobble_%s')), + bricks: generateFormsExisting('nether', 'minecraft:%s_brick', { block: 'minecraft:nether_bricks' }, + generateForms('nether', 'tfg:rock/mossy_bricks_%s'), + generateFormsExisting('nether', 'tfg:rock/cracked_bricks_%s', { block: 'minecraft:cracked_nether_bricks' })), + polished: generateForms('crackrack', 'tfg:rock/polished_%s'), + chiseled: { block: 'minecraft:chiseled_nether_bricks' }, + stonecutting: [ + { block: 'minecraft:nether_brick_fence' } + ] + }), + "calcite": { + material: 'calcite', + tfcTag: 'tfc:sedimentary_items', + stonecutterTag: 'create:stone_types/calcite', + isTFC: false, + dimensions: ['minecraft:overworld', 'minecraft:the_nether', 'ad_astra:venus'], + pillar: 'create:calcite_pillar', + pillar2: 'create:layered_calcite', + raw: { block: 'minecraft:calcite' }, + stonecutting: [ + generateForms('calcite', 'create:cut_%s'), + generateForms('calcite', 'create:polished_cut_%s'), + generateFormsExisting('calcite', 'create:cut_%s_brick', { block: 'create:cut_calcite_bricks' }), + generateFormsExisting('calcite', 'create:small_%s_brick', { block: 'create:small_calcite_bricks' }) + ] + }, + "tuff": { + material: 'tfg:igneous_felsic', + tfcTag: 'tfc:igneous_extrusive_items', + stonecutterTag: 'create:stone_types/tuff', + isTFC: false, + sound: 'tuff', + mapColor: 'terracotta_gray', + dimensions: ['minecraft:overworld', 'minecraft:the_nether', 'ad_astra:venus'], + pillar: 'create:tuff_pillar', + pillar2: 'create:layered_tuff', + raw: { block: 'minecraft:tuff' }, + stonecutting: [ + generateForms('tuff', 'create:cut_%s'), + generateForms('tuff', 'create:polished_cut_%s'), + generateFormsExisting('tuff', 'create:cut_%s_brick', { block: 'create:cut_tuff_bricks' }), + generateFormsExisting('tuff', 'create:small_%s_brick', { block: 'create:small_tuff_bricks' }) + ] + }, + + ///////////////////////////////////////////////////////////////////////////////////////////// + // MOON ROCKS + ///////////////////////////////////////////////////////////////////////////////////////////// + + // Anorthosite + "moon_stone": generateMissing('moon_stone', { + material: 'tfg:igneous_mafic', + tfcTag: 'tfc:igneous_intrusive_items', + gravelTag: 'tfg:moon_gravel', + sound: 'stone', + mapColor: 'terracotta_cyan', + dimensions: ['ad_astra:moon'], + support: 'tfg:anorthosite_support', + pillar: 'ad_astra:moon_pillar', + gravel: 'tfg:rock/gravel_moon', + raw: generateFormsExceptWall('moon_stone', 'ad_astra:%s', 'tfg:rock/moon_stone_wall'), + cobble: generateFormsExceptWall('moon', 'ad_astra:%s_cobblestone', 'tfg:rock/cobble_moon_wall', + generateForms('moon', 'tfg:rock/mossy_cobble_%s')), + bricks: generateFormsExisting('moon_stone', 'ad_astra:%s_brick', { block: 'ad_astra:moon_stone_bricks' }, + generateForms('moon', 'tfg:rock/mossy_bricks_%s'), + generateFormsExisting('moon', 'tfg:rock/cracked_bricks_%s', { block: 'ad_astra:cracked_moon_stone_bricks' })), + polished: generateFormsExceptWall('moon_stone', 'ad_astra:polished_%s', 'tfg:rock/polished_moon_wall'), + chiseled: { + block: 'ad_astra:chiseled_moon_stone_bricks', + stair: 'ad_astra:chiseled_moon_stone_stairs', + slab: 'ad_astra:chiseled_moon_stone_slab', + wall: 'tfg:rock/chiseled_bricks_moon_wall' + } + }), + // Norite + "moon_deepslate": generateMissing('moon_deepslate', { + material: 'tfg:igneous_mafic', + tfcTag: 'tfc:igneous_intrusive_items', + gravelTag: 'tfg:moon_gravel', + sound: 'deepslate', + mapColor: 'terracotta_blue', + dimensions: ['ad_astra:moon', 'ad_astra:venus'], + support: 'tfg:norite_support', + pillar: 'tfg:rock/pillar_moon_deepslate', + raw: generateFormsExisting('moon_deepslate', 'tfg:rock/%s', { block: 'ad_astra:moon_deepslate' }), + cobble: generateForms('moon_deepslate', 'tfg:rock/cobble_%s', + generateForms('moon_deepslate', 'tfg:rock/mossy_cobble_%s')), + bricks: generateForms('moon_deepslate', 'tfg:rock/bricks_%s', + generateForms('moon_deepslate', 'tfg:rock/mossy_bricks_%s'), + generateForms('moon_deepslate', 'tfg:rock/cracked_bricks_%s')), + polished: generateForms('moon_deepslate', 'tfg:rock/polished_%s'), + chiseled: generateForms('moon_deepslate', 'tfg:rock/chiseled_bricks_%s') + }), + // Phonolite + "glacio_stone": generateMissing('glacio_stone', { + material: 'tfg:igneous_intermediate', + tfcTag: 'tfc:igneous_extrusive_items', + gravelTag: 'tfc:white_gravel', + sound: 'stone', + mapColor: 'terracotta_purple', + dimensions: ['ad_astra:moon'], + support: 'tfg:phonolite_support', + pillar: 'ad_astra:glacio_pillar', + gravel: 'tfg:rock/gravel_glacio', + raw: generateFormsExceptWall('glacio_stone', 'ad_astra:%s', 'tfg:rock/glacio_stone_wall'), + cobble: generateFormsExceptWall('glacio', 'ad_astra:%s_cobblestone', 'tfg:rock/cobble_glacio_wall', + generateForms('glacio', 'tfg:rock/mossy_cobble_%s')), + bricks: generateFormsExisting('glacio_stone', 'ad_astra:%s_brick', { block: 'ad_astra:glacio_stone_bricks' }, + generateForms('glacio', 'tfg:rock/mossy_bricks_%s'), + generateFormsExisting('glacio', 'tfg:rock/cracked_bricks_%s', { block: 'ad_astra:cracked_glacio_stone_bricks' })), + polished: generateFormsExceptWall('glacio_stone', 'ad_astra:polished_%s', 'tfg:rock/polished_glacio_wall'), + chiseled: { + block: 'ad_astra:chiseled_glacio_stone_bricks', + stair: 'ad_astra:chiseled_glacio_stone_stairs', + slab: 'ad_astra:chiseled_glacio_stone_slab', + wall: 'tfg:rock/chiseled_bricks_glacio_wall' + } + }), + // Suevite + "sky_stone": { + isTFC: false, + dimensions: ['ad_astra:moon'], + stonecutterTag: 'tfg:stone_types/suevite', + raw: generateFormsExisting('sky_stone', 'ae2:%s', { block: 'ae2:sky_stone_block' }), + polished: generateFormsExisting('sky_stone', 'ae2:smooth_%s', { block: 'ae2:smooth_sky_stone_block' }), + bricks: generateForms('sky_stone', 'ae2:%s_brick'), + chiseled: generateForms('sky_stone', 'ae2:%s_small_brick') + }, + "purpur": { + isTFC: false, + brick: 'minecraft:popped_chorus_fruit', + bricks: { + block: 'minecraft:purpur_block', + stair: 'minecraft:purpur_stairs', + slab: 'minecraft:purpur_slab' + }, + pillar: 'minecraft:purpur_pillar' + }, + + ///////////////////////////////////////////////////////////////////////////////////////////// + // MARS ROCKS + ///////////////////////////////////////////////////////////////////////////////////////////// + + // Argillite + "mars_stone": generateMissing('mars_stone', { + material: 'tfg:sedimentary_clastic', + tfcTag: 'tfc:sedimentary_items', + gravelTag: 'tfg:mars_gravel', + sound: 'stone', + mapColor: 'terracotta_orange', + dimensions: ['ad_astra:mars'], + support: 'tfg:argillite_support', + pillar: 'ad_astra:mars_pillar', + gravel: 'tfg:rock/gravel_mars', + raw: generateFormsExceptWall('mars_stone', 'ad_astra:%s', 'tfg:rock/mars_stone_wall'), + cobble: generateFormsExceptWall('mars', 'ad_astra:%s_cobblestone', 'tfg:rock/cobble_mars_wall', + generateForms('mars', 'tfg:rock/mossy_cobble_%s')), + bricks: generateFormsExisting('mars_stone', 'ad_astra:%s_brick', { block: 'ad_astra:mars_stone_bricks' }, + generateForms('mars', 'tfg:rock/mossy_bricks_%s'), + generateFormsExisting('mars', 'tfg:rock/cracked_bricks_%s', { block: 'ad_astra:cracked_mars_stone_bricks'})), + polished: generateFormsExceptWall('mars_stone', 'ad_astra:polished_%s', 'tfg:rock/polished_mars_wall'), + chiseled: { + block: 'ad_astra:chiseled_mars_stone_bricks', + stair: 'ad_astra:chiseled_mars_stone_stairs', + slab: 'ad_astra:chiseled_mars_stone_slab', + wall: 'tfg:rock/chiseled_bricks_mars_wall' + } + }), + // Trachyte + "venus_stone": generateMissing('venus_stone', { + material: 'tfg:igneous_felsic', + tfcTag: 'tfc:igneous_extrusive_items', + gravelTag: 'tfg:venus_gravel', + sound: 'stone', + mapColor: 'terracotta_yellow', + dimensions: ['ad_astra:mars', 'ad_astra:venus'], + support: 'tfg:trachyte_support', + pillar: 'ad_astra:venus_pillar', + gravel: 'tfg:rock/gravel_venus', + raw: generateFormsExceptWall('venus_stone', 'ad_astra:%s', 'tfg:rock/venus_stone_wall'), + cobble: generateFormsExceptWall('venus', 'ad_astra:%s_cobblestone', 'tfg:rock/cobble_venus_wall', + generateForms('venus', 'tfg:rock/mossy_cobble_%s')), + bricks: generateFormsExisting('venus_stone', 'ad_astra:%s_brick', { block: 'ad_astra:venus_stone_bricks' }, + generateForms('venus', 'tfg:rock/mossy_bricks_%s'), + generateFormsExisting('venus', 'tfg:rock/cracked_bricks_%s', { block: 'ad_astra:cracked_venus_stone_bricks' })), + polished: generateFormsExceptWall('venus_stone', 'ad_astra:polished_%s', 'tfg:rock/polished_venus_wall'), + chiseled: { + block: 'ad_astra:chiseled_venus_stone_bricks', + stair: 'ad_astra:chiseled_venus_stone_stairs', + slab: 'ad_astra:chiseled_venus_stone_slab', + wall: 'tfg:rock/chiseled_bricks_venus_wall' + } + }), + "red_granite": generateMissing('red_granite', { + material: 'tfg:igneous_felsic', + tfcTag: 'tfc:igneous_intrusive_items', + gravelTag: 'tfg:hematitic_gravel', + sound: 'stone', + mapColor: 'terracotta_red', + dimensions: ['ad_astra:mars', 'ad_astra:venus'], + support: 'tfg:red_granite_support', + raw: { + block: 'gtceu:red_granite', + stair: 'tfg:rock/red_granite_stair', + slab: 'tfg:rock/red_granite_slab', + wall: 'tfg:rock/red_granite_wall', + texture: 'gtceu:block/stones/red_granite/stone' + }, + cobble: generateFormsExisting('red_granite', 'tfg:rock/cobble_%s', { + block: 'gtceu:red_granite_cobblestone', + texture: 'gtceu:block/stones/red_granite/cobble', + mossy: generateFormsExisting('red_granite', 'tfg:rock/mossy_cobble_%s', { + block: 'gtceu:mossy_red_granite_cobblestone', + texture: 'gtceu:block/stones/red_granite/cobble_mossy' + }), + }), + bricks: generateFormsExisting('red_granite', 'tfg:rock/bricks_%s', { + block: 'gtceu:red_granite_bricks', + texture: 'gtceu:block/stones/red_granite/bricks', + mossy: generateFormsExisting('red_granite', 'tfg:rock/mossy_bricks_%s', { + block: 'gtceu:mossy_red_granite_bricks', + texture: 'gtceu:block/stones/red_granite/bricks_mossy' + }), + cracked: generateFormsExisting('red_granite', 'tfg:rock/cracked_bricks_%s', { + block: 'gtceu:cracked_red_granite_bricks', + texture: 'gtceu:block/stones/red_granite/bricks_cracked' + }) + }), + polished: generateFormsExisting('red_granite', 'tfg:rock/polished_%s', { + block: 'gtceu:polished_red_granite', + texture: 'gtceu:block/stones/red_granite/polished' + }), + chiseled: { block: 'gtceu:chiseled_red_granite' }, + stonecutting: [ + { block: 'gtceu:red_granite_tile' }, + { block: 'gtceu:red_granite_small_tile' }, + { block: 'gtceu:red_granite_windmill_a' }, + { block: 'gtceu:red_granite_windmill_b' }, + { block: 'gtceu:small_red_granite_bricks' }, + { block: 'gtceu:square_red_granite_bricks' } + ] + }), + + + ///////////////////////////////////////////////////////////////////////////////////////////// + // VENUS ROCKS + ///////////////////////////////////////////////////////////////////////////////////////////// + + //"geyserite": { + // material: organic, + // tfcTag: 'tfc:sedimentary', + // dimensions: ['ad_astra:venus'], + // raw: { block: 'tfg:rock/raw/geyserite' } + //}, + // Ignimbrite + "flavolite": generateMissing('flavolite', { + material: 'tfg:igneous_felsic', + tfcTag: 'tfc:igneous_extrusive_items', + sound: 'deepslate', + mapColor: 'sand', + gravelTag: 'tfc:yellow_gravel', + dimensions: ['ad_astra:venus'], + pillar: 'betterend:flavolite_pillar', + support: 'tfg:flavolite_support', + raw: generateFormsExisting('flavolite', 'tfg:rock/%s', { block: 'betterend:flavolite' }), + cobble: generateForms('flavolite', 'tfg:rock/cobble_%s'), + bricks: generateFormsExisting('flavolite', 'tfg:rock/bricks_%s', { block: 'betterend:flavolite_bricks' }), + polished: generateFormsExisting('flavolite', 'tfg:rock/polished_%s', { block: 'betterend:flavolite_polished' }), + chiseled: generateFormsExisting('flavolite', 'tfg:rock/chiseled_%s', { block: 'betterend:flavolite_tiles' }) + }), + // Lamproite + "sandy_jadestone": generateMissing('sandy_jadestone', { + material: 'tfg:igneous_ultramafic', + tfcTag: 'tfc:igneous_extrusive_items', + gravelTag: 'tfc:green_gravel', + sound: 'stone', + mapColor: 'grass', + dimensions: ['ad_astra:venus'], + pillar: 'betterend:sandy_jadestone_pillar', + support: 'tfg:lamproite_support', + raw: generateFormsExisting('sandy_jadestone', 'tfg:rock/%s', { block: 'betterend:sandy_jadestone' }), + cobble: generateForms('sandy_jadestone', 'tfg:rock/cobble_%s'), + bricks: generateFormsExisting('sandy_jadestone', 'tfg:rock/bricks_%s', { block: 'betterend:sandy_jadestone_bricks' }), + polished: generateFormsExisting('sandy_jadestone', 'tfg:rock/polished_%s', { block: 'betterend:sandy_jadestone_polished' }), + chiseled: generateFormsExisting('sandy_jadestone', 'tfg:rock/chiseled_%s', { block: 'betterend:sandy_jadestone_tiles' }) + }), + // Thermal Vent Deposit + "sulphuric_rock": { + material: 'tfg:igneous_mafic', + isTFC: false, + sound: 'dripstone_block', + mapColor: 'terracotta_light_gray', + tfcTag: 'tfc:igneous_extrusive_items', + stonecutterTag: 'tfg:stone_types/thermal_vent_deposit', + dimensions: ['ad_astra:venus'], + pillar: 'betterend:sulphuric_rock_pillar', + raw: { block: 'betterend:sulphuric_rock' }, + bricks: { block: 'betterend:sulphuric_rock_bricks' }, + polished: { block: 'betterend:sulphuric_rock_polished' }, + chiseled: { block: 'betterend:sulphuric_rock_tiles' } + }, + "scoria": generateMissing('scoria', { + material: 'tfg:igneous_mafic', + tfcTag: 'tfc:igneous_extrusive_items', + gravelTag: 'tfc:brown_gravel', + sound: 'stone', + mapColor: 'terracotta_brown', + dimensions: ['ad_astra:venus'], + pillar: 'create:scoria_pillar', + pillar2: 'create:layered_scoria', + raw: generateFormsExisting('scoria', 'tfg:rock/%s', { + block: 'create:scoria', + texture: 'create:block/palettes/stone_types/scoria' + }), + cobble: generateForms('scoria', 'tfg:rock/cobble_%s'), + bricks: generateFormsExisting('scoria', 'create:cut_%s_brick', { + block: 'create:cut_scoria_bricks', + texture: 'create:block/palettes/stone_types/brick/scoria_cut_brick' + }), + polished: generateForms('scoria', 'create:polished_cut_%s'), + stonecutting: [ + generateForms('scoria', 'create:cut_%s'), + generateFormsExisting('scoria', 'create:small_%s_brick', { block: 'create:small_scoria_bricks' }) + ] + }), + "scorchia": generateMissing('scorchia', { + material: 'tfg:igneous_mafic', + tfcTag: 'tfc:igneous_extrusive_items', + gravelTag: 'tfc:black_gravel', + sound: 'stone', + mapColor: 'terracotta_black', + dimensions: ['ad_astra:moon', 'ad_astra:mars', 'ad_astra:venus'], + pillar: 'create:scorchia_pillar', + pillar2: 'create:layered_scorchia', + raw: generateFormsExisting('scorchia', 'tfg:rock/%s', { + block: 'create:scorchia', + texture: 'create:block/palettes/stone_types/scorchia' + }), + cobble: generateForms('scorchia', 'tfg:rock/cobble_%s'), + bricks: generateFormsExisting('scorchia', 'create:cut_%s_brick', { + block: 'create:cut_scorchia_bricks', + texture: 'create:block/palettes/stone_types/brick/scorchia_cut_brick' + }), + polished: generateForms('scorchia', 'create:polished_cut_%s'), + stonecutting: [ + generateForms('scorchia', 'create:cut_%s'), + generateFormsExisting('scorchia', 'create:small_%s_brick', { block: 'create:small_scorchia_bricks' }) + ] + }), + // Mesa caprock + "caprock": { + material: 'tfg:sedimentary_clastic', + tfcTag: 'tfc:sedimentary_items', + isTFC: false, + dimensions: ['ad_astra:venus'], + raw: { block: 'ad_astra:conglomerate' }, + gravel: 'tfc:rock/gravel/conglomerate', + polished: { block: 'ad_astra:polished_conglomerate' } + }, + + ///////////////////////////////////////////////////////////////////////////////////////////// + // MERCURY ROCKS + ///////////////////////////////////////////////////////////////////////////////////////////// + + // Komatiite + "mercury_stone": generateMissing('mercury_stone', { + material: 'tfg:igneous_ultramafic', + tfcTag: 'tfc:igneous_intrusive_items', + gravelTag: 'tfc:white_gravel', + sound: 'stone', + mapColor: 'terracotta_purple', + dimensions: ['ad_astra:mercury'], + support: 'tfg:komatiite_support', + pillar: 'ad_astra:mercury_pillar', + gravel: 'tfg:rock/gravel_mercury', + raw: generateFormsExceptWall('mercury_stone', 'ad_astra:%s', 'tfg:rock/mercury_stone_wall'), + cobble: generateFormsExceptWall('mercury', 'ad_astra:%s_cobblestone', 'tfg:rock/cobble_mercury_wall', + generateForms('mercury', 'tfg:rock/mossy_cobble_%s')), + bricks: generateFormsExisting('mercury_stone', 'ad_astra:%s_brick', { block: 'ad_astra:mercury_stone_bricks' }, + generateForms('mercury', 'tfg:rock/mossy_bricks_%s'), + generateFormsExisting('mercury', 'tfg:rock/cracked_bricks_%s', { block: 'ad_astra:cracked_mercury_stone_bricks' })), + polished: generateFormsExceptWall('mercury_stone', 'ad_astra:polished_%s', 'tfg:rock/polished_mercury_wall'), + chiseled: { + block: 'ad_astra:chiseled_mercury_stone_bricks', + stair: 'ad_astra:chiseled_mercury_stone_stairs', + slab: 'ad_astra:chiseled_mercury_stone_slab', + wall: 'tfg:rock/chiseled_bricks_mercury_wall' + } + }), + + + ///////////////////////////////////////////////////////////////////////////////////////////// + // EUROPA ROCKS + ///////////////////////////////////////////////////////////////////////////////////////////// + + // do we want to rename this + "permafrost": generateMissing('permafrost', { + material: 'ice', + sound: 'stone', + mapColor: 'snow', + dimensions: ['ad_astra:glacio'], + support: 'tfg:permafrost_support', + pillar: 'ad_astra:permafrost_pillar', + raw: generateFormsExisting('permafrost', 'tfg:rock/%s', { block: 'ad_astra:permafrost' }), + cobble: generateFormsExisting('permafrost', 'tfg:rock/cobble_%s', { texture: 'ad_astra:block/permafrost_top' }, + generateForms('permafrost', 'tfg:rock/mossy_cobble_%s')), + bricks: generateFormsExisting('permafrost', 'ad_astra:%s_brick', { block: 'ad_astra:permafrost_bricks' }, + generateForms('permafrost', 'tfg:rock/mossy_bricks_%s'), + generateFormsExisting('permafrost', 'tfg:rock/cracked_bricks_%s', { block: 'ad_astra:cracked_permafrost_bricks' })), + polished: generateFormsExceptWall('permafrost', 'ad_astra:polished_%s', 'tfg:rock/polished_permafrost_wall'), + chiseled: { + block: 'ad_astra:chiseled_permafrost_bricks', + stair: 'ad_astra:chiseled_permafrost_brick_stairs', + slab: 'ad_astra:chiseled_permafrost_brick_slab', + wall: 'tfg:rock/chiseled_bricks_permafrost_wall' + }, + stonecutting: [ + { block: 'ad_astra:permafrost_tiles' } + ] + }), + + + ///////////////////////////////////////////////////////////////////////////////////////////// + // SYNTHETIC ROCKS + ///////////////////////////////////////////////////////////////////////////////////////////// + + "stone": { + material: 'stone', + sound: 'stone', + mapColor: 'stone', + support: 'tfg:stone_support', + brick: 'gtceu:stone_ingot', + aqueduct: 'tfg:rock/aqueduct_stone', + stonecutterTag: 'tfg:stone_types/reconstituted_stone', + raw: generateFormsExceptWall('stone', 'minecraft:%s', 'tfg:rock/stone_wall'), + cobble: generateForms('cobblestone', 'minecraft:%s', + generateForms('cobblestone', 'minecraft:mossy_%s')), + bricks: generateFormsExisting('stone', 'minecraft:%s_brick', { block: 'minecraft:stone_bricks' }, + generateFormsExisting('stone', 'minecraft:mossy_%s_brick', { block: 'minecraft:mossy_stone_bricks' }), + generateFormsExisting('stone', 'tfg:rock/cracked_bricks_%s', { block: 'minecraft:cracked_stone_bricks' })), + polished: { + block: 'minecraft:smooth_stone', + stair: 'tfg:rock/smooth_stone_stairs', + slab: 'minecraft:smooth_stone_slab', + wall: 'tfg:rock/smooth_stone_wall' + }, + chiseled: { block: 'minecraft:chiseled_stone_bricks' } + }, + "light_concrete": { + material: 'concrete', + sound: 'stone', + mapColor: 'color_light_gray', + support: 'tfg:light_concrete_support', + stonecutterTag: 'tfg:stone_types/light_concrete', + raw: { + block: 'gtceu:light_concrete', + texture: 'gtceu:block/stones/light_concrete/stone' + }, + cobble: { + block: 'gtceu:light_concrete_cobblestone', + mossy: { block: 'gtceu:mossy_light_concrete_cobblestone' } + }, + bricks: { + block: 'gtceu:light_concrete_bricks', + mossy: { block: 'gtceu:mossy_light_concrete_bricks' }, + cracked: { block: 'gtceu:cracked_light_concrete_bricks' } + }, + chiseled: { block: 'gtceu:chiseled_light_concrete' }, + polished: { block: 'gtceu:polished_light_concrete' }, + stonecutting: [ + { block: 'gtceu:light_concrete_tile' }, + { block: 'gtceu:light_concrete_small_tile' }, + { block: 'gtceu:light_concrete_windmill_a' }, + { block: 'gtceu:light_concrete_windmill_b' }, + { block: 'gtceu:small_light_concrete_bricks' }, + { block: 'gtceu:square_light_concrete_bricks' } + ] + }, + "dark_concrete": { + material: 'concrete', + sound: 'stone', + mapColor: 'color_gray', + support: 'tfg:dark_concrete_support', + stonecutterTag: 'tfg:stone_types/dark_concrete', + raw: { + block: 'gtceu:dark_concrete', + texture: 'gtceu:block/stones/dark_concrete/stone' + }, + cobble: { + block: 'gtceu:dark_concrete_cobblestone', + mossy: { block: 'gtceu:mossy_dark_concrete_cobblestone' } + }, + bricks: { + block: 'gtceu:dark_concrete_bricks', + mossy: { block: 'gtceu:mossy_dark_concrete_bricks' }, + cracked: { block: 'gtceu:cracked_dark_concrete_bricks' } + }, + chiseled: { block: 'gtceu:chiseled_dark_concrete' }, + polished: { block: 'gtceu:polished_dark_concrete' }, + stonecutting: [ + { block: 'gtceu:dark_concrete_tile' }, + { block: 'gtceu:dark_concrete_small_tile' }, + { block: 'gtceu:dark_concrete_windmill_a' }, + { block: 'gtceu:dark_concrete_windmill_b' }, + { block: 'gtceu:small_dark_concrete_bricks' }, + { block: 'gtceu:square_dark_concrete_bricks' } + ] + }, + "titanium_concrete": { + sound: 'stone', + stonecutterTag: 'tfg:stone_types/titanium_concrete', + raw: { block: 'tfg:titanium_concrete' }, + bricks: { block: 'tfg:titanium_concrete_bricks' }, + chiseled: { block: 'tfg:titanium_concrete_tile' }, + polished: { block: 'tfg:polished_titanium_concrete' }, + stonecutting: [ + { block: 'tfg:titanium_concrete_tile_small' }, + { block: 'tfg:titanium_concrete_bricks_small' }, + { block: 'tfg:titanium_concrete_bricks_square' } + ] + }, + "brick": { + material: 'brick', + sound: 'stone', + stonecutterTag: 'tfg:stone_types/red_bricks', + bricks: generateFormsExisting('brick', 'minecraft:%s', { block: 'minecraft:bricks' }, + generateFormsExisting('red_brick', 'createdeco:mossy_%s', { block: 'createdeco:mossy_red_bricks' }), + generateFormsExisting('red_brick', 'createdeco:cracked_%s', { block: 'createdeco:cracked_red_bricks' })), + polished: generateFormsExisting('red_brick', 'createdeco:corner_%s', { block: 'createdeco:corner_red_bricks' }), + stonecutting: [ + generateFormsExisting('red_brick', 'createdeco:short_%s', { block: 'createdeco:short_red_bricks' }), + generateFormsExisting('red_brick', 'createdeco:tiled_%s', { block: 'createdeco:tiled_red_bricks' }), + generateFormsExisting('red_brick', 'createdeco:long_%s', { block: 'createdeco:long_red_bricks' }) + ] + }, + + // TODO: vanilla clay bricks and create deco's colored ones + + ///////////////////////////////////////////////////////////////////////////////////////////// + // CREATE'S OTHER ROCKS + ///////////////////////////////////////////////////////////////////////////////////////////// + + "asurine": { + material: 'asurine', + dimensions: ['ad_astra:moon'], + pillar: 'create:asurine_pillar', + pillar2: 'create:layered_asurine', + stonecutterTag: 'create:stone_types/asurine', + raw: { block: 'create:asurine' }, + bricks: generateFormsExisting('asurine', 'create:cut_%s_brick', { block: 'create:cut_asurine_bricks' }), + polished: generateForms('asurine', 'create:polished_cut_%s'), + stonecutting: [ + generateForms('asurine', 'create:cut_%s'), + generateFormsExisting('asurine', 'create:small_%s_brick', { block: 'create:small_asurine_bricks' }) + ] + }, + "ochrum": { + material: 'ochrum', + dimensions: ['ad_astra:mars'], + pillar: 'create:ochrum_pillar', + pillar2: 'create:layered_ochrum', + stonecutterTag: 'create:stone_types/ochrum', + raw: { block: 'create:ochrum' }, + bricks: generateFormsExisting('ochrum', 'create:cut_%s_brick', { block: 'create:cut_ochrum_bricks' }), + polished: generateForms('ochrum', 'create:polished_cut_%s'), + stonecutting: [ + generateForms('ochrum', 'create:cut_%s'), + generateFormsExisting('ochrum', 'create:small_%s_brick', { block: 'create:small_ochrum_bricks' }) + ] + }, + "crimsite": { + material: 'crimsite', + dimensions: ['ad_astra:venus'], + pillar: 'create:crimsite_pillar', + pillar2: 'create:layered_crimsite', + stonecutterTag: 'create:stone_types/crimsite', + raw: { block: 'create:crimsite' }, + bricks: generateFormsExisting('crimsite', 'create:cut_%s_brick', { block: 'create:cut_crimsite_bricks' }), + polished: generateForms('crimsite', 'create:polished_cut_%s'), + stonecutting: [ + generateForms('crimsite', 'create:cut_%s'), + generateFormsExisting('crimsite', 'create:small_%s_brick', { block: 'create:small_crimsite_bricks' }) + ] + }, + "veridium": { + material: 'veridium', + dimensions: ['ad_astra:glacio'], + pillar: 'create:veridium_pillar', + pillar2: 'create:layered_veridium', + stonecutterTag: 'create:stone_types/veridium', + raw: { block: 'create:veridium' }, + bricks: generateFormsExisting('veridium', 'create:cut_%s_brick', { block: 'create:cut_veridium_bricks' }), + polished: generateForms('veridium', 'create:polished_cut_%s'), + stonecutting: [ + generateForms('veridium', 'create:cut_%s'), + generateFormsExisting('veridium', 'create:small_%s_brick', { block: 'create:small_veridium_bricks' }) + ] + } +}) + +global.CREATE_DECO_BRICK_TYPES.forEach(color => { + // handled above + if (color === "red") + return; + + global.BIG_ROCK_TABLE[`${color}_brick`] = { + material: 'brick', + sound: 'stone', + stonecutterTag: `tfg:stone_types/${color}_brick`, + bricks: generateFormsExisting(color, 'createdeco:%s_brick', { block: `createdeco:${color}_bricks` }, + generateFormsExisting(color, 'createdeco:mossy_%s_brick', { block: `createdeco:mossy_${color}_bricks` }), + generateFormsExisting(color, 'createdeco:cracked_%s_brick', { block: `createdeco:cracked_${color}_bricks` })), + polished: generateFormsExisting(color, 'createdeco:corner_%s_brick', { block: `createdeco:corner_${color}_bricks` }), + stonecutting: [ + generateFormsExisting(color, 'createdeco:short_%s_brick', { block: `createdeco:short_${color}_bricks` }), + generateFormsExisting(color, 'createdeco:tiled_%s_brick', { block: `createdeco:tiled_${color}_bricks` }), + generateFormsExisting(color, 'createdeco:long_%s_brick', { block: `createdeco:long_${color}_bricks` }) + ] + } +}); + +/* ROCKS: + +igneous: +mafic = rich in magnesium and iron +felsic = rich in feldspar and quartz + +sedimentary: +clastic = rich in quartz, feldspar, clay, mica +carbonate = calcium carbonate (calcite etc) +chemical = stuff like flint, halite, sylvite, gypsum +organic = coal basically + +potassium_feldspar = aluminium + silicate, with sodium, calcium, potassium, barium +biotite = a type of mica (potassium, magnesium, iron, aluminium, silicon, and a little fluorine) + +gabbro: intrusive igneous mafic +diorite: intrusive igneous intermediate +granite: intrusive igneous felsic + +basalt: extrusive igneous mafic +andesite: extrusive igneous intermediate +dacite: extrusive igneous intermediate +rhyolite: extrusive igneous felsic + +shale: sedimentary clastic +claystone: sedimentary clastic +cong: sedimentary clastic +limestone: sedimentary carbonate +dolomite: sedimentary carbonate +chalk: sedimentary carbonate +chert: sedimentary chemical? apparently it's similar to flint + +slate: metamorphic from sedimentary clastic +pyllite: metamorphic from sedimentary clastic +schist: metamorphic from slate, phyllite, or igneous intrusive +gneiss: metamorphic from slate, phyllite, or igneous intrusive +marble: metamorphic from sedimentary carbonate +quartzite: metamorphic from chert + +tuff: either IE or sedi depending on who you ask - might be ok to move to earth at some point. Either in the beneath or if we port 1.21 tfc worldgen +travertine: sedimentary carbonate +migmatite: metamorphic from slate, phyllite, or igneous intrusive +pyroxenite: intrusive igneous ultramafic +keratophyre:extrusive igneous intermediate +calcite: sedimentary carbonate +obsidian: extrusive igneous felsic + +suevite ? melted rock from meteor impacts +anorthosite intrusive igneous mafic +norite intrusive igneous mafic +phonolite extrusive igneous intermediate + +argillite sedimentary clastic +trachyte extrusive igneous felsic +red granite intrusive igneous felsic + +lamproite extrusive igneous ultramafic +ignimbrite either IE or meta depending on who you ask - mostly made of tuff + pumice/scoria +sulphuric_rock mafic +scoria extrusive igneous mafic +geyserite sedimentary chemical (mostly made of opal/silica) + +komatiite intrusive igneous ultramafic +permafrost ? not really a rock + +(unused) +syenite intrusive igneous felsic (opposite of trachyte) +diabase intrusive igneous mafic (apparently common on earth?) +perlite extrusive igneous felsic (hydrated obsidian, also used in ceramics?) +*/ \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/stone_types/items.rocks.js b/kubejs/startup_scripts/tfg/stone_types/items.rocks.js index 8cf86dbb8..bea3b62ef 100644 --- a/kubejs/startup_scripts/tfg/stone_types/items.rocks.js +++ b/kubejs/startup_scripts/tfg/stone_types/items.rocks.js @@ -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) + } + } + } } \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/stone_types/materials.rocks.js b/kubejs/startup_scripts/tfg/stone_types/materials.rocks.js index ee90eda0a..e5604e50b 100644 --- a/kubejs/startup_scripts/tfg/stone_types/materials.rocks.js +++ b/kubejs/startup_scripts/tfg/stone_types/materials.rocks.js @@ -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']); } \ No newline at end of file diff --git a/kubejs/startup_scripts/tfc/tag_prefixes.js b/kubejs/startup_scripts/tfg/stone_types/tag_prefixes.rocks.js similarity index 90% rename from kubejs/startup_scripts/tfc/tag_prefixes.js rename to kubejs/startup_scripts/tfg/stone_types/tag_prefixes.rocks.js index 8b864f8ac..81354e3ef 100644 --- a/kubejs/startup_scripts/tfc/tag_prefixes.js +++ b/kubejs/startup_scripts/tfg/stone_types/tag_prefixes.rocks.js @@ -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'); diff --git a/kubejs/startup_scripts/tfg/tag_prefixes.js b/kubejs/startup_scripts/tfg/tag_prefixes.js index d521ca895..695ed3041 100644 --- a/kubejs/startup_scripts/tfg/tag_prefixes.js +++ b/kubejs/startup_scripts/tfg/tag_prefixes.js @@ -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')); diff --git a/kubejs/startup_scripts/tfg/venus/blocks.venus_deco.js b/kubejs/startup_scripts/tfg/venus/blocks.venus_deco.js index c5fd668ca..0a7be13f0 100644 --- a/kubejs/startup_scripts/tfg/venus/blocks.venus_deco.js +++ b/kubejs/startup_scripts/tfg/venus/blocks.venus_deco.js @@ -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') From c4cfcf4973dde7287ceab3edf65f3ef46fc21ed3 Mon Sep 17 00:00:00 2001 From: Redeix Date: Mon, 19 Jan 2026 16:54:56 -0600 Subject: [PATCH 2/2] pisciculture fishery quest update --- .../quests/chapters/hv__high_voltage.snbt | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/config/ftbquests/quests/chapters/hv__high_voltage.snbt b/config/ftbquests/quests/chapters/hv__high_voltage.snbt index 15446cbb0..27c1881c2 100644 --- a/config/ftbquests/quests/chapters/hv__high_voltage.snbt +++ b/config/ftbquests/quests/chapters/hv__high_voltage.snbt @@ -1675,23 +1675,12 @@ dependencies: ["7CC79617A4965F25"] description: [ "{quests.high_voltage.pisciculture.desc.1}" + "" + "{image:tfg:textures/quests/pisciculture_fishery.png width:100 height:100 align:center}" "{@pagebreak}" "{quests.high_voltage.pisciculture.desc.2}" ] - icon: { - Count: 1 - ForgeCaps: { - "tfc:food": { - creationDate: -9223372036854775808L - traits: [ ] - } - "tfc:item_heat": { - heat: 0.0f - ticks: 0L - } - } - id: "tfc:food/tropical_fish" - } + icon: "tfc:bucket/tropical_fish" id: "04ADA3B900F182A0" optional: true shape: "heart"