From 6c36949dc1595f10aa843510547eff0c280767d9 Mon Sep 17 00:00:00 2001 From: Nebby_G Date: Sat, 18 Jan 2025 12:11:03 -0300 Subject: [PATCH 1/7] Hardwood Materials, items made --- kubejs/assets/tfg/lang/en_us.json | 5 +++++ kubejs/server_scripts/tfg/recipes.js | 0 kubejs/startup_scripts/main_startup_script.js | 6 ++++++ kubejs/startup_scripts/tfg/items.js | 11 +++++++++++ kubejs/startup_scripts/tfg/materials.js | 16 ++++++++++++++++ 5 files changed, 38 insertions(+) create mode 100644 kubejs/server_scripts/tfg/recipes.js create mode 100644 kubejs/startup_scripts/tfg/items.js create mode 100644 kubejs/startup_scripts/tfg/materials.js diff --git a/kubejs/assets/tfg/lang/en_us.json b/kubejs/assets/tfg/lang/en_us.json index 3a3f5f2ec..1085824a8 100644 --- a/kubejs/assets/tfg/lang/en_us.json +++ b/kubejs/assets/tfg/lang/en_us.json @@ -1,6 +1,11 @@ { "material.tfg.latex": "Latex", "material.tfg.fluix": "Fluix", + "material.gtceu.thermochemically_treated_hardwood": "Thermochemically Treated Hardwood", + "material.gtceu.hardwood": "Hardwood", + "item.tfg.hardwood_strip": "Hardwood Strip", + "item.tfg.soaked_hardwood_strip": "Soaked Hardwood Strip", + "item.tfg.spade_head_extruder_mold": "Extruder Mold (Spade Head)", "quests.naming-1": "t - Title", diff --git a/kubejs/server_scripts/tfg/recipes.js b/kubejs/server_scripts/tfg/recipes.js new file mode 100644 index 000000000..e69de29bb diff --git a/kubejs/startup_scripts/main_startup_script.js b/kubejs/startup_scripts/main_startup_script.js index 3cf9d793a..8813b7a61 100644 --- a/kubejs/startup_scripts/main_startup_script.js +++ b/kubejs/startup_scripts/main_startup_script.js @@ -5,6 +5,7 @@ */ StartupEvents.registry('item', event => { registerGTCEuItems(event) + registerTFGItems(event) }) /** @@ -48,6 +49,11 @@ GTCEuStartupEvents.registry('gtceu:machine', event => { registerGTCEuMachines(event) }) +GTCEuStartupEvents.registry('gtceu:material', event => +{ + registerTFGMaterials(event) +}) + /** * Событие регистрации информации о составе предмета. */ diff --git a/kubejs/startup_scripts/tfg/items.js b/kubejs/startup_scripts/tfg/items.js new file mode 100644 index 000000000..4d56520d4 --- /dev/null +++ b/kubejs/startup_scripts/tfg/items.js @@ -0,0 +1,11 @@ +const registerTFGItems = (event) => +{ + event.create('tfg:hardwood_strip') + .translationKey('item.tfg.hardwood_strip') + + event.create('tfg:soaked_hardwood_strip') + .translationKey('item.tfg.soaked_hardwood_strip') + + event.create('tfg:soaked_unrefined_paper') + .translationKey('item.tfg.soaked_unrefined_paper') +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials.js b/kubejs/startup_scripts/tfg/materials.js new file mode 100644 index 000000000..2e5b8db1b --- /dev/null +++ b/kubejs/startup_scripts/tfg/materials.js @@ -0,0 +1,16 @@ +const registerTFGMaterials = (event) => +{ + event.create('hardwood') + .dust() + .flags(GTMaterialFlags.FLAMMABLE) + .iconSet(GTMaterialIconSet.FINE) + .color('0x7a5225') + .secondaryColor('0x7a5225') + + event.create('thermochemically_treated_hardwood') + .dust() + .flags(GTMaterialFlags.FLAMMABLE) + .iconSet(GTMaterialIconSet.FINE) + .color('0x52482c') + .secondaryColor('0x52482c') +} \ No newline at end of file From 9f9a9f229afc14cf47950d4ed8b99d468d77425c Mon Sep 17 00:00:00 2001 From: Nebby_G Date: Sun, 19 Jan 2025 21:30:03 -0300 Subject: [PATCH 2/7] More Hardwood work --- kubejs/assets/gtceu/lang/en_us.json | 12 +++++++++ kubejs/assets/tfg/lang/en_us.json | 1 + kubejs/server_scripts/gregtech/recipes.js | 27 ++++++++++++++++++++- kubejs/server_scripts/main_server_script.js | 1 + kubejs/server_scripts/tfc/tags.js | 14 +++++++++++ kubejs/server_scripts/tfg/recipes.js | 4 +++ kubejs/startup_scripts/tfc/constants.js | 26 ++++++++++++++++++++ 7 files changed, 84 insertions(+), 1 deletion(-) diff --git a/kubejs/assets/gtceu/lang/en_us.json b/kubejs/assets/gtceu/lang/en_us.json index a9bbbd31c..ad836a083 100644 --- a/kubejs/assets/gtceu/lang/en_us.json +++ b/kubejs/assets/gtceu/lang/en_us.json @@ -1,4 +1,16 @@ { + "item.gtceu.tiny_wood_dust": "Tiny Pile of Softwood Pulp", + "item.gtceu.small_wood_dust": "Small Pile of Softwood Pulp", + "item.gtceu.wood_dust": "Softwood Pulp", + + "item.gtceu.tiny_hardwood_dust": "Tiny Pile of Hardwood Pulp", + "item.gtceu.small_hardwood_dust": "Small Pile of Hardwood Pulp", + "item.gtceu.hardwood_dust": "Hardwood Pulp", + + "item.gtceu.tiny_thermochemically_treated_hardwood_dust": "Tiny Pile of Thermochemicall Treated Hardwood Pulp", + "item.gtceu.small_thermochemically_treated_hardwood_dust": "Small Pile of Thermochemicall Treated Hardwood Pulp", + "item.gtceu.thermochemically_treated_hardwood_dust": "Thermochemically Treated Hardwood Pulp", + "gtceu.jei.bedrock_fluid.tfc_salt_water_deposit": "Sea Water Deposit", "block.gtceu.greenhouse": "Electric Greenhouse", diff --git a/kubejs/assets/tfg/lang/en_us.json b/kubejs/assets/tfg/lang/en_us.json index 1085824a8..65ef6553a 100644 --- a/kubejs/assets/tfg/lang/en_us.json +++ b/kubejs/assets/tfg/lang/en_us.json @@ -1,6 +1,7 @@ { "material.tfg.latex": "Latex", "material.tfg.fluix": "Fluix", + "material.gtceu.thermochemically_treated_hardwood": "Thermochemically Treated Hardwood", "material.gtceu.hardwood": "Hardwood", "item.tfg.hardwood_strip": "Hardwood Strip", diff --git a/kubejs/server_scripts/gregtech/recipes.js b/kubejs/server_scripts/gregtech/recipes.js index e3c64a36d..437c83c53 100644 --- a/kubejs/server_scripts/gregtech/recipes.js +++ b/kubejs/server_scripts/gregtech/recipes.js @@ -1,8 +1,33 @@ // priority: 0 const registerGTCEURecipes = (event) => { + + //#region Hardwood Dust from Hardwood + //Lathe - Replace regular logs tag with softwood tag + event.replaceInput({id: 'gtceu:lathe/lathe_logs'}, '#minecraft:logs', '#tfg:softwood') + //Create identical lathe recipe for hardwood + event.recipes.gtceu.lathe('lathe_hardwood') + .itemInputs('#tfg:hardwood') + .itemOutputs('4x gtceu:long_wood_rod', '2x gtceu:hardwood_dust') + .duration(160) + .EUt(7) + + //Replace any recipe that outputs wood dust to use hardwood dust if it's ID string contains the name of one of the hardwood types. + //This absolutely fuckin sucks but it works + event.forEachRecipe({output: 'gtceu:wood_dust'}, r =>{ + global.TFC_HARDWOOD_TYPES.forEach(hardwoodType => + { + if(r.id.toString().includes(hardwoodType)) + { + r.replaceOutput('gtceu:wood_dust', 'gtceu:hardwood_dust') + r.replaceOutput('gtceu:small_wood_dust', 'gtceu:small_hardwood_dust') + r.replaceOutput('gtceu:tiny_wood_dust', 'gtceu_tiny_hardwood_dust') + return; + } + }) + }) + //#region Выход: Удобрение - // В обычном миксере event.recipes.gtceu.mixer('fertilizer') .itemInputs( diff --git a/kubejs/server_scripts/main_server_script.js b/kubejs/server_scripts/main_server_script.js index 22338e50d..69bdd6317 100644 --- a/kubejs/server_scripts/main_server_script.js +++ b/kubejs/server_scripts/main_server_script.js @@ -140,6 +140,7 @@ ServerEvents.recipes(event => { registerSophisticatedBackpacksRecipes(event) registerTfceaRecipes(event) registerTFCRecipes(event) + registerTFGRecipes(event) registerTFCGroomingStationRecipes(event) registerToolBeltRecipes(event) registerTreeTapRecipes(event) diff --git a/kubejs/server_scripts/tfc/tags.js b/kubejs/server_scripts/tfc/tags.js index 65671d769..dc8488ab3 100644 --- a/kubejs/server_scripts/tfc/tags.js +++ b/kubejs/server_scripts/tfc/tags.js @@ -86,6 +86,20 @@ const registerTFCItemTags = (event) => { event.add('tfg:bladed_axles', `tfc:wood/bladed_axle/${woodType}`) }) + //Hardwood Tags + global.TFC_HARDWOOD_TYPES.forEach(woodType => { + event.add('tfg:hardwood', `#tfc:${woodType}_logs`) + event.add('tfg:stripped_hardwood', `tfc:wood/stripped_log/${woodType}`) + event.add('tfg:stripped_hardwood', `tfc:wood/stripped_wood/${woodType}`) + }); + + //Softwood Tags + global.TFC_SOFTWOOD_TYPES.forEach(woodType =>{ + event.add('tfg:softwood', `#tfc:${woodType}_logs`) + event.add('tfg:stripped_softwood', `tfc:wood/stripped_log/${woodType}`) + event.add('tfg:stripped_softwood', `tfc:wood/stripped_wood/${woodType}`) + }) + // Теги для сосудов по цветам global.MINECRAFT_DYE_NAMES.forEach(dye => { event.add('tfg:colorized_unfired_vessels', `tfc:ceramic/${dye}_unfired_vessel`) diff --git a/kubejs/server_scripts/tfg/recipes.js b/kubejs/server_scripts/tfg/recipes.js index e69de29bb..1662033c1 100644 --- a/kubejs/server_scripts/tfg/recipes.js +++ b/kubejs/server_scripts/tfg/recipes.js @@ -0,0 +1,4 @@ +const registerTFGRecipes = (event) => +{ + event.recipes.tfc.damage_inputs_shapeless_crafting(event.shapeless('4x tfg:hardwood_strip', ['#minecraft:axes', '#tfg:stripped_hardwood'])) +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfc/constants.js b/kubejs/startup_scripts/tfc/constants.js index 5b91aaa30..b7fb4e32e 100644 --- a/kubejs/startup_scripts/tfc/constants.js +++ b/kubejs/startup_scripts/tfc/constants.js @@ -707,6 +707,32 @@ global.TFC_WOOD_TYPES = [ "willow" ]; +global.TFC_HARDWOOD_TYPES = [ + "acacia", + "ash", + "aspen", + "birch", + "blackwood", + "chestnut", + "hickory", + "maple", + "oak", + "rosewood", + "sycamore" +]; + +global.TFC_SOFTWOOD_TYPES = [ + "douglas_fir", + "kapok", + "mangrove", + "palm", + "pine", + "sequoia", + "spruce", + "white_cedar", + "willow" +]; + global.TFC_MUD_TYPES = [ 'silt', 'loam', From 68b08cddc3fe4e2937823fa1b6175b1ce237cbb0 Mon Sep 17 00:00:00 2001 From: Nebby_G Date: Sun, 19 Jan 2025 21:30:53 -0300 Subject: [PATCH 3/7] Merge upstream --- .../field_guide/en_us/categories/tfg.json | 6 ++ .../field_guide/en_us/entries/test_entry.json | 11 +++ .../field_guide/ru_ru/mechanics/bloomery.json | 80 ++++++++++++++++++ .../tfg/textures/item/hardwood_strip.png | Bin 0 -> 4570 bytes .../textures/item/soaked_hardwood_strip.png | Bin 0 -> 4615 bytes .../textures/item/soaked_unrefined_paper.png | Bin 0 -> 6010 bytes 6 files changed, 97 insertions(+) create mode 100644 kubejs/assets/tfc/patchouli_books/field_guide/en_us/categories/tfg.json create mode 100644 kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/test_entry.json create mode 100644 kubejs/assets/tfc/patchouli_books/field_guide/ru_ru/mechanics/bloomery.json create mode 100644 kubejs/assets/tfg/textures/item/hardwood_strip.png create mode 100644 kubejs/assets/tfg/textures/item/soaked_hardwood_strip.png create mode 100644 kubejs/assets/tfg/textures/item/soaked_unrefined_paper.png diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/categories/tfg.json b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/categories/tfg.json new file mode 100644 index 000000000..551f335c2 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/categories/tfg.json @@ -0,0 +1,6 @@ +{ + "name": "Changes in TFG", + "description": "Differences in TerraFirmaGreg that are different from base TFC.", + "icon": "gtceu:basic_electronic_circuit", + "sortnum": 200 +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/test_entry.json b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/test_entry.json new file mode 100644 index 000000000..5a90e2893 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/test_entry.json @@ -0,0 +1,11 @@ +{ + "name": "Placeholder", + "icon": "firmaciv:canoe_paddle", + "category": "tfc:tfg", + "pages": [ + { + "type": "patchouli:text", + "text": "Let me know of any ideas for what can go in this section! I'm looking for things that people often ask questions about and need some help with" + } + ] +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/ru_ru/mechanics/bloomery.json b/kubejs/assets/tfc/patchouli_books/field_guide/ru_ru/mechanics/bloomery.json new file mode 100644 index 000000000..f25be2c1a --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/ru_ru/mechanics/bloomery.json @@ -0,0 +1,80 @@ +{ + "__comment__": "This file was automatically created by mcresources", + "name": "Доменная печь", + "category": "tfc:mechanics", + "icon": "tfc:bloomery", + "pages": [ + { + "type": "patchouli:text", + "text": "$(thing)Доменная печь$() используется для плавки $(thing)Железной руды$() в $(thing)Железные слитки$(), которые могут быть обработаны в $(thing)Кованое железо$(). Железные руды это $(l:the_world/ores_and_minerals#hematite)гематит$(), $(l:the_world/ores_and_minerals#limonite)лимонит$() и $(l:the_world/ores_and_minerals#magnetite)магнетит$(). Эти руды плавятся в $(thing)Чугун$(), а не в $(thing)Кованое железо$(). Все предметы, содержащие железо, плавятся в чугун. Чтобы превратить их в используемое железо, необходима доменная печь. Любой железный предмет может быть использован в доменной печи, включая железные инструменты и чугунные слитки!" + }, + { + "type": "patchouli:crafting", + "recipe": "tfc:crafting/bloomery", + "text": "Доменная печь сделана из 8 $(thing)Бронзовых двойных листов$()." + }, + { + "type": "patchouli:multiblock", + "multiblock_id": "tfc:bloomery", + "name": "Сыродутный горн", + "text": "Доменная печь минимального размера. Блок доменной печи открывается и закрывается с помощью $(item)$(k:key.use)$().", + "enable_visualize": true + }, + { + "type": "patchouli:text", + "text": "Сыродутный горн может содержать до 48 $(thing)входящих предметов$(), с 16 предметами каждого типа на слой трубы. Чтобы добавить слои к трубе, сложите два дополнительных слоя каменных блоков.$(br2)Чтобы добавить предметы в горн, поднимитесь наверх и бросьте предметы внутрь. Должна сформироваться башня из серой руды." + }, + { + "type": "patchouli:image", + "images": [ + "tfc:textures/gui/book/tutorial/bloomery_hole.png" + ], + "text": "Добавление предметов в сыродутный горн.", + "border": true + }, + { + "type": "patchouli:text", + "text": "Сыродутный горн потребляет $(thing)1 угля$() и $(thing)144 мБ чугуна$(), чтобы произвести одну $(thing)крица$(). После заполнения горна комбинацией $(thing)угля$() и $(thing)руды$(), зажгите блок горна и подождите 15 часов, пока руда плавится. Когда горн погаснет, он оставит блок $(thing)крицы$(). Он содержит $(thing)сырую железную крицу$(), которую можно добыть, дробя $(thing)крицу$() киркой." + }, + { + "type": "patchouli:multiblock", + "multiblock": { + "pattern": [ + [ + "X" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:bloom[layers=8]" + } + }, + "name": "Блок слитка", + "text": "Большая $(thing)крица$().", + "enable_visualize": false + }, + { + "type": "tfc:anvil_recipe", + "recipe": "tfc:anvil/refined_iron_bloom", + "text": "$(thing)Сырой железный слиток$() должен быть обработан на $(l:mechanics/anvils)наковальне$(), чтобы сделать $(thing)Очищенный железный слиток$()." + }, + { + "type": "tfc:anvil_recipe", + "recipe": "tfc:anvil/metal/ingot/wrought_iron", + "text": "$(thing)Очищенный железный слиток$() должен быть обработан на $(l:mechanics/anvils)наковальне$(), чтобы сделать $(thing)Кованые железные слитки$()." + }, + { + "type": "patchouli:text", + "text": "$(li)Если в сыродутном горне окажется больше предметов, чем он может вместить на основе своего дымохода, он попытается вытолкнуть их наружу.$()$(li)Чтобы забрать свои предметы из незажженного горна, не ломайте башню из расплавленных блоков. Сломайте блок сыродутного горна.$()$(li)Слитки будут плавиться только в чугун, а не в кованое железо. Их нужно обрабатывать!$()", + "title": "Заметки кузнеца" + } + ], + "read_by_default": true, + "extra_recipe_mappings": { + "tfc:bloom": 6, + "tfc:raw_iron_bloom": 7, + "tfc:refined_iron_bloom": 8 + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/item/hardwood_strip.png b/kubejs/assets/tfg/textures/item/hardwood_strip.png new file mode 100644 index 0000000000000000000000000000000000000000..c308927331d50d36bb84133d361800444a53d2de GIT binary patch literal 4570 zcmeHKdsGu=77tpa%0p48kA`IkReVk6k%T-XB29P%h@_aJ2rW!zCSfGWgv>w!M|`kq ztJ0%j5tc)#7T0R6Zrw!@YYSNMQ5PTWc3VMR)Yj*zRM*!oKK4sM#IrqTkLPUvBj-$J z=DYX)?!CWz?|0@~ZJ3)FIBL=;fj|(bOVXx;`xwvl@(A!B{?8`_xE(4nF5uG%7vylV zX2wcGe6fRuXg6aP2;7}ELs#HeP{70cAz^JuYq_S@czr}z%aoewTJ`En4^I&RN3J|7 zOZ3}Nw$;>pxjbm+!scdFm=`tf`mx~dkd)so@xAx{130o#_(+nrPw@shtTDLgj$vvr04pX;KUgGQiP$2MG$!IhNoksIC zACN^|X@xrJD?`Z2w0ZFrYm#QXtDv@(<&F<6nEB?+vX$Rt1lH znvR`o)PMSg7^A6~V=!&4PeRPynK}3WrY{_SA@h9c(u|f$`NZyVs~b|~GcN{SJfly! zav)7;nyibM9aS&AT6Sn%cJ*6JE@krzy8jRnxuG^HD0ppq(8gIcRRLA*RfkbHgxfQ*Zm;*u%@}-`bSf^m7l{Wv>@Jwsa@w_wESH zy}98|NtS=O&+x9+_QI?U_m>?H%YC4$4meivuyMufKJM5C_G_QEtW9jk2U$0SACI21 z%DiXsaG`M6rTDMkzVCLiSI$2End#{9Yue>JxbNI6y`b@m7|>t~^rg=3Ac%=|I|wqL<{=YpVeD#A&*v>7h@sS?`7%AKcWCH5CaJ_p&nua0Buny1B_)cT zJu1en0suCeCm^@YYUfmLwaAOB0?(dhL!*(vx1JQ?} zr8&~cICzG&Lmo`R#1`^ukqF44r}5bwdi?;ro$F@-@PW7q2ZD)F#AZVVTX1}Q5di5A z=vOT`BbZYpo#xm=CrQT_(RMy^Fa$*o*gFcHR&P2KiO^Qs22?rV6?@KQqE2rZu<%e| zVQdbs6(IXLO`b77BkQ@?JQ8m@g98EP1Gvv=Kh52%47Bumm6jz7J>luJYLUmkiegEI zQh6WEI7(u2g#?zN7zIl)i5xaXN24$$qX?OaqRcXhX%Ljo&hdnuq&-joT+9F*g%p!x zv_b|e&9Z1%ib_b>B*kf1NsF7ZaX-)=oC1D*Ll?RFfP^g)}OiBPCCkYuW zB`FFf6a)(6Qrv`7W=w|TloyI3RSB%qMu2iMHo`(94!gxG@DQ$wGw9SJT#PIf;^T3Vm%lrir@(?!P5W~#bqiKQ(OMNpnk1ptY>wC2_-eH0u?^vh^vM&XW zD5Co~23UO}GLNuZXt00uH|*1O=2x15G@GJj6s3R_5()T|m%~lNaK5h^`^JUWkDgQXcBA zA-Z0OffrI9>aPDAU89~Irf56(0&;<)Qiv(e4vtwPOeu+4aBmVk2{9b7fTxj;q)bjA z@DKJ}K1->b3b5$M>-6z{*L;FQQ9rI~Rz5gPuh41ZjEdtsEA{NRbH=Rt@UEq!wsDVe zy=nXP?HTRckK8-7JGS{r*{er~ZAqRwE!mLwk+sfh9sSN&qhA!%R+rFOe7;oH(;B-` zb*IL%aBnFl{opU>BOXkNZFhxUA6X?1wuCR{q&ihJq&mpXT$@Mz9RfzUVTr~M;x znSATyvv1#BI_}Jj&;A^E`0wxEsI9V1wdv2j+%%s_(S~)lWllQ1Hs&(jzV_6GN7cT9 z@BcN;)ib5slCk|t>&?pBsmE_zTJ}wJOl{!!;T`<$3teaNtPCJ6?rOWSc3kBT)z?fK zOgjB!W8MA8n^BWDUs?ZU0J@{LmD^waAaDBZC&sh2nI5B~QT%TDH01221oA)1ES0pnZh z&ZZ?#3jU~d@*QF24@Wqo|IO5hla1MCEUL3%!bAaoHNA7yy3t#Gd)_OUaj|*LJ3aZ@ o6=}0#pWF&6LU#E-M(z$jy}3E@m%8vUP$GdYey(=c>$zqB0g#%KM*si- literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/soaked_hardwood_strip.png b/kubejs/assets/tfg/textures/item/soaked_hardwood_strip.png new file mode 100644 index 0000000000000000000000000000000000000000..1f2a4343b0fc03fe0acb1dc85013fe0d613afabf GIT binary patch literal 4615 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 RHbK0@d^`iF#Y>r+{{zVDJg5Kw literal 0 HcmV?d00001 From 382fa8c4c5c9fac781c6d612b552534aebc31e03 Mon Sep 17 00:00:00 2001 From: Nebby_G Date: Mon, 20 Jan 2025 14:29:42 -0300 Subject: [PATCH 4/7] Finished Implementation, added to Field Guide --- .../en_us/entries/mechanics/papermaking.json | 156 ++++++++++++++++++ .../blocks/soaked_unrefined_paper.png | Bin 0 -> 968 bytes ...thermochemically_treated_hardwood_dust.png | Bin 0 -> 1071 bytes kubejs/server_scripts/gregtech/recipes.js | 30 +--- kubejs/server_scripts/main_server_script.js | 1 + kubejs/server_scripts/tfc/recipes.js | 13 +- kubejs/server_scripts/tfg/recipes.js | 131 +++++++++++++++ kubejs/server_scripts/tfg/tags.js | 12 ++ 8 files changed, 313 insertions(+), 30 deletions(-) create mode 100644 kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/papermaking.json create mode 100644 kubejs/assets/tfg/textures/blocks/soaked_unrefined_paper.png create mode 100644 kubejs/assets/tfg/textures/blocks/thermochemically_treated_hardwood_dust.png create mode 100644 kubejs/server_scripts/tfg/tags.js diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/papermaking.json b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/papermaking.json new file mode 100644 index 000000000..fd2fb32d6 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/papermaking.json @@ -0,0 +1,156 @@ +{ + "name": "Papermaking", + "category": "tfc:mechanics", + "icon": "tfc:unrefined_paper", + "pages": [ + { + "type": "patchouli:text", + "text": "$(thing)Paper$() is either made from the processed stalk of the $(l:mechanics/crops#papyrus)Papyrus$() crop, from $(l:mechanics/papermaking#parchment)Animal Hides$(), or from a lengthy process using specific types of Wood. Paper is useful for written materials like $(thing)Books$() and $(thing)Maps$()." + }, + { + "type": "patchouli:crafting", + "recipe": "tfc:crafting/papyrus_strips", + "text": "Papyrus must first be cut into strips with a $(thing)Knife$()" + }, + { + "type": "tfc:sealed_barrel_recipe", + "recipe": "tfc:barrel/soaked_papyrus_strip", + "text": "Then, papyrus strips are soaked in a $(l:mechanics/barrels)Barrel$() of $(thing)Water$()." + }, + { + "type": "tfc:loom_recipe", + "recipe": "tfc:loom/unrefined_paper", + "text": "Then, soaked papyrus strips are woven together in a loom to make $(thing)Unrefined Paper$(). Finally, it must be placed on a log and $(l:mechanics/leather_making#scraping)Scraped$() to make $(thing)Paper$()." + }, + { + "type": "patchouli:crafting", + "recipe": "tfc:crafting/vanilla/map", + "recipe2": "tfc:crafting/vanilla/name_tag" + }, + { + "type": "patchouli:crafting", + "recipe": "minecraft:writable_book", + "recipe2": "minecraft:book" + }, + { + "type": "patchouli:crafting", + "recipe": "tfc:crafting/wood/pine_lectern", + "recipe2": "tfc:crafting/wood/kapok_bookshelf" + }, + { + "type": "patchouli:text", + "text": "Flip to the next page for information on papermaking via the parchment process." + }, + { + "type": "patchouli:text", + "anchor": "parchment", + "text": "$(thing)Parchment Paper$() starts with a scraped hide. Review the $(l:mechanics/leather_making)leather making chapter$() to learn how to make it. Parchment requires treatment with a few different items. First, $(thing)Pumice$() is needed. Pumice is found on the ground near $(l:the_world/geology)Volcanoes$(), or from $(l:mechanics/sluices)Sluicing$() or $(l:mechanics/panning)Panning$() ore deposits with Andesite, Rhyolite, or Dacite in them.", + "title": "Parchment" + }, + { + "type": "patchouli:multiblock", + "multiblock": { + "pattern": [ + [ + "X" + ], + [ + "0" + ] + ], + "mapping": { + "X": "tfc:groundcover/pumice" + } + }, + "name": "Pumice", + "text": "A Pumice rock placed on the ground.", + "enable_visualize": false + }, + { + "type": "patchouli:crafting", + "recipe": "tfc:crafting/large_treated_hide", + "text": "Crafting pumice, a hammer, and scraped hide gives sections of $(thing)Treated Hide$()." + }, + { + "type": "patchouli:crafting", + "recipe": "tfc:crafting/parchment", + "text": "Treated hide, $(l:mechanics/glassworking#lime)lime powder$(), flour, and a fresh egg will complete the treatment process and yield usable paper." + }, + { + "type": "patchouli:text", + "text": "$(thing)Creating Paper from Wood$() is an ancient process that requires processing of sturdy types of wood into sheets, which are broken down into a pulp, and then pressed, dried and scraped to make paper.$(br2)Note that softer types of wood are not suitable for making paper", + "title": "Paper from Wood" + }, + { + "type": "patchouli:text", + "text": "First you need to find Hardwood:$(br2)Acacia$(br)Ash$(br)Aspen$(br)Birch$(br)Blackwood$(br)Chestnut$(br)Hickory$(br)Maple$(br)Oak$(br)Rosewood$(br)Sycamore" + }, + { + "type": "patchouli:spotlight", + "title": "Stripped Hardwood", + "item": {"tag": "tfg:stripped_hardwood"}, + "text": "The process begins by stripping the $(thing)Hardwood$()'s bark off to expose the internal fibers of the log, You can strip the log by placing it down and right clicking it with an axe" + }, + { + "type": "patchouli:crafting", + "title": "Hardwood Strip", + "recipe": "tfg:crafting/strip_hardwood", + "text": "Next, the stripped wood is shaven with an axe to obtain $(item)Hardwood Strips$(). This can be done using an Axe or more sophisticated methods" + }, + { + "type": "tfc:sealed_barrel_recipe", + "title": "Soaked Hardwood Strip", + "recipe": "tfg:barrel/soak_hardwood_strip", + "text": "Then, the individual strips are soaked in a $(l:mechanics/barrels)Barrel$() of $(thing)Water$(). This $(thing)debilitates the structural integrity$() of the $(thing)wood$() so it can be $(thing)broken down further$()" + }, + { + "type": "tfc:quern_recipe", + "recipe": "tfg:quern/soaked_hardwood_strip", + "title": "Hardwood Pulp", + "text": "Afterwards, utilize the $(l:mechanics/quern)Quern$() to break down the soaked strips into $(item)Hardwood Pulp$()" + }, + { + "type": "patchouli:crafting", + "recipe": "gtceu:shaped/small_dust_assembling_hardwood", + "title": "Piling up the Pulp", + "text": "While the quern gives you small piles of pulp, you'll want to combine them together in a $(thing)Workbench. $(bold)More sophisticated methods of crushing the strips yield higher amounts of pulp$()" + }, + { + "type": "patchouli:spotlight", + "item": "gtceu:thermochemically_treated_hardwood_dust", + "title": "Breaking down the Pulp", + "text": "Before the pulp can be processed further into paper, it needs to be broken down further by $(l:firmalife/oven_appliances#vat)Boiling it with Lye in a Vat$(). At least 200 Milibuckets of Lye must be present in the vat for the process to complete." + }, + { + "type": "patchouli:empty" + }, + { + "type": "patchouli:spotlight", + "item": "tfg:soaked_unrefined_paper", + "title": "Pressing the Pulp", + "text": "After broken down by boiling it with Lye, the $(item)Thermochemically Treated Hardwood Pulp$() can be pressed down into a sheet of $(item)Soaked Unrefined Paper$()" + }, + { + "type": "tfc:anvil_recipe", + "recipe": "tfg:anvil/soaked_unrefined_paper", + "text": "You can utilize an $(l:mechanics/anvils)Anvil$() to beat down the pulp into a sheet" + }, + { + "type": "patchouli:spotlight", + "title": "Stomping in Barrel", + "item": {"tag": "firmalife:stomping_barrels"}, + "text": "Alternatively, you can stomp the Thermochemically Treated Hardwood Pulp in a $(l:firmalife/wine)Stomping Barrel$()" + }, + { + "type": "tfc:drying_recipe", + "recipe": "tfg:drying/unrefined_paper", + "text": "The final step is $(l:firmalife/drying)Drying$() the $(item)Soaked Unrefined Paper$() into $(item)Unrefined Paper$(), Which then can be Scraped into $(item)Paper$() as shown before." + }, + { + "type": "patchouli:text", + "title": "Cutting Steps...?", + "text": "Advancing in the Tech-Tree will allow you to create paper from wood with less overall steps, check $(thing)EMI$() for the different approaches you can take for making paper with wood." + } + ], + "read_by_default": true + } \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/blocks/soaked_unrefined_paper.png b/kubejs/assets/tfg/textures/blocks/soaked_unrefined_paper.png new file mode 100644 index 0000000000000000000000000000000000000000..8bc656a1b495de4565a527d4d52eedacff86ff67 GIT binary patch literal 968 zcmV;(12_DMP)EX>4Tx04R}tkv&MmP!xqvQ>7wR5i^K5WT*~e7Zq_VRV;#q(pG5I!Q`cX(4-+r zad8w}3l9D)RvlcNb#-tR1i>E=cfm=~MM}IcDYS_7!sC6MchBLy`v9R{W}4L%0W{q< zld-6j$*xL)SNI^J9}^gqnPtRNi)nPMuY2mIx(oBH&V7GYpPI86;FE|W%rI@@4dU5N z+u*!UEV81k5}y-Knshyrf_h=zejWk1-&y3p8qu^L^|%jT6BC3|#3gf29u0eUe^l zX`v%vU>mr&ZfVLMaJd5vKN+$qyON)lkk13}XY@^3VCWX;UGwJFJjdw+kfvEJ-v9@P zz<7bO*E_tsr+se!_B7}B1FJQ1z5IZKp#T5?24YJ`L;wH)w*dbXP`qaV000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2k8M64m1i*{(1nlX69FmdnVSEHRgkTe51R~%EY(NAE0bb>Kue*w%J>vySaHNj9`_}F1 zTk`zb(-efvB$<;$f~gRZm}%S3q}IeuDK$_Pyp-Vc!4m*(PF_-LkU-xV<567#$joNl6%j$rlp7abEGnPH`oHWXCA zBNBIAboWH%oujIg<)i)x9A%-sCr{Y@7qg)NpsJ{g@Cn_JOr83$tjALas z)qxb z?_?&W1W6)dm?^`Mh=9*GclUOPXcK3qEoG`~Z|^bh6TmP_RH2MRbCLv1aMbM2}D|y&4fSok^S;a7Ivus0000 literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/blocks/thermochemically_treated_hardwood_dust.png b/kubejs/assets/tfg/textures/blocks/thermochemically_treated_hardwood_dust.png new file mode 100644 index 0000000000000000000000000000000000000000..e85bec1652826b65c280d1ca46c128ef31c98649 GIT binary patch literal 1071 zcmV+~1kn45P)EX>4Tx04R}tkv&MmP!xqvQ>7wR5i^K5WT*~e7Zq_VRV;#q(pG5I!Q`cX(4-+r zad8w}3l9D)RvlcNb#-tR1i>E=cfm=~MM}IcDYS_7!sC6MchBLy`v9R{W}4L%0W{q< zld-6j$*xL)SNI^J9}^gqnPtRNi)nPMuY2mIx(oBH&V7GYpPI86;FE|W%rI@@4dU5N z+u*!UEV81k5}y-Knshyrf_h=zejWk1-&y3p8qu^L^|%jT6BC3|#3gf29u0eUe^l zX`v%vU>mr&ZfVLMaJd5vKN+$qyON)lkk13}XY@^3VCWX;UGwJFJjdw+kfvEJ-v9@P zz<7bO*E_tsr+se!_B7}B1FJQ1z5IZKp#T5?24YJ`L;wH)w*dbXP`qaV000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2k8M64lf7^-IT`w00JvXL_t(I%RQ1ymMkX>L@z=> ze(F`bpS=dJ!&C2n7w@>;-^$7aggnS{Gh!k|#8rg9|N7IPpH^<$fojCvnMz_m8UVwc zDJQxaV>kdY3T6X$5D{U!ABY43P;2M?^G?o6>qbfXy*#D(J^ZyDfTJZVA%Hs^wNtzC zV=ds0JG5@ZD70n(bTfJ%T$TcWxI6Z+rYc;P!nzcW+L=p2LLf$AjB)-&C|UXcNeBT6 z0e2`R5k>gA9kg!P7_3Vnr^p!ou>Ba6K+=f9X)|f0){fbL06Cp1xBI~uPEN{jr*|VI zWemrCARk{lIVrsx+r1K_pfLil-76oT`$=BqRMbdooe%;gE3!<9xAzUz$TH_|Wq?0^ zUikfarFY}LSN5Y3LLjAxNWk6E=igT5Dbu=9YiBA6cW1bB+bSWPcTY*d!TkhoHh6jc zLSElC_S%Rd&@btzC9KN>O~P(lC+fnP750F { - - //#region Hardwood Dust from Hardwood - //Lathe - Replace regular logs tag with softwood tag - event.replaceInput({id: 'gtceu:lathe/lathe_logs'}, '#minecraft:logs', '#tfg:softwood') - //Create identical lathe recipe for hardwood - event.recipes.gtceu.lathe('lathe_hardwood') - .itemInputs('#tfg:hardwood') - .itemOutputs('4x gtceu:long_wood_rod', '2x gtceu:hardwood_dust') - .duration(160) - .EUt(7) - - //Replace any recipe that outputs wood dust to use hardwood dust if it's ID string contains the name of one of the hardwood types. - //This absolutely fuckin sucks but it works - event.forEachRecipe({output: 'gtceu:wood_dust'}, r =>{ - global.TFC_HARDWOOD_TYPES.forEach(hardwoodType => - { - if(r.id.toString().includes(hardwoodType)) - { - r.replaceOutput('gtceu:wood_dust', 'gtceu:hardwood_dust') - r.replaceOutput('gtceu:small_wood_dust', 'gtceu:small_hardwood_dust') - r.replaceOutput('gtceu:tiny_wood_dust', 'gtceu_tiny_hardwood_dust') - return; - } - }) - }) - //#region Выход: Удобрение // В обычном миксере event.recipes.gtceu.mixer('fertilizer') .itemInputs( '#tfc:dirt', - '2x #forge:dusts/wood', + '2x #tfg:wood_dusts', '4x #forge:sand' ) .circuit(1) @@ -45,7 +19,7 @@ const registerGTCEURecipes = (event) => { event.recipes.gtceu.create_mixer('fertilizer') .itemInputs( '#tfc:dirt', - '2x #forge:dusts/wood', + '2x #tfg:wood_dusts', '4x #forge:sand' ) .circuit(1) diff --git a/kubejs/server_scripts/main_server_script.js b/kubejs/server_scripts/main_server_script.js index 69bdd6317..86d2a9e31 100644 --- a/kubejs/server_scripts/main_server_script.js +++ b/kubejs/server_scripts/main_server_script.js @@ -26,6 +26,7 @@ ServerEvents.tags('item', event => { registerSophisticatedBackpacksItemTags(event) registerTFCAmbientalItemTags(event) registerTFCItemTags(event) + registerTFGItemTags(event) }) /** diff --git a/kubejs/server_scripts/tfc/recipes.js b/kubejs/server_scripts/tfc/recipes.js index 882dc1989..4a9b3d624 100644 --- a/kubejs/server_scripts/tfc/recipes.js +++ b/kubejs/server_scripts/tfc/recipes.js @@ -2460,7 +2460,7 @@ const registerTFCRecipes = (event) => { event.remove({ id: `tfc:crafting/wood/${wood}_water_wheel` }) // Бревна -> Пиломатериалы - generateCutterRecipe(event, `#tfc:${wood}_logs`, null, `16x tfc:wood/lumber/${wood}`, 400, 10, `${wood}_lumber_from_log`) + generateCutterRecipe(event, `#tfc:${wood}_logs`, 1, `16x tfc:wood/lumber/${wood}`, 400, 10, `${wood}_lumber_from_log`) // Доски -> Пиломатериалы generateCutterRecipe(event, `tfc:wood/planks/${wood}`, null, `4x tfc:wood/lumber/${wood}`, 400, 10, `${wood}_lumber_from_planks`) @@ -3579,6 +3579,15 @@ const registerTFCRecipes = (event) => { .duration(20) .EUt(7) } - //#endregion + + //More accesible solar drier + event.replaceInput({id: 'firmalife:crafting/solar_drier'}, 'gtceu:stainless_steel_rod', 'gtceu:silver_rod') + + //Wood ash + event.blasting('tfc:powder/wood_ash', 'tfc:powder/charcoal') + .id('blast_charcoal_powder') + + //Lye in mixer + generateMixerRecipe(event, 'tfc:powder/wood_ash', Fluid.of('minecraft:water', 200), [], null, Fluid.of('tfc:lye', 200), 100, 2, 64, 'lye_in_mixer') } diff --git a/kubejs/server_scripts/tfg/recipes.js b/kubejs/server_scripts/tfg/recipes.js index 1662033c1..62212eaa9 100644 --- a/kubejs/server_scripts/tfg/recipes.js +++ b/kubejs/server_scripts/tfg/recipes.js @@ -1,4 +1,135 @@ + const registerTFGRecipes = (event) => { + var registerVatRecipe = (id, inputItem, fluid, fluidAmount, output) => + { + event.custom({ + "type": "firmalife:vat", + "input_item": { + "ingredient": { + "item": inputItem + } + }, + "input_fluid": { + "ingredient": fluid, + "amount": fluidAmount + }, + "output_item": { + "item": output + } + }).id(id) + } + //remove chemical bath recipe + event.remove({id: 'gtceu:chemical_bath/paper_from_wood_dust'}) + event.remove({id: 'gtceu:chemical_bath/paper_from_wood_dust_distilled'}) + + //Lathe - Replace regular logs tag with softwood tag + event.replaceInput({id: 'gtceu:lathe/lathe_logs'}, '#minecraft:logs', '#tfg:softwood') + //Create identical lathe recipe for hardwood + event.recipes.gtceu.lathe('lathe_hardwood') + .itemInputs('#tfg:hardwood') + .itemOutputs('4x gtceu:long_wood_rod', '2x gtceu:hardwood_dust') + .duration(160) + .EUt(7) + + //Replace macerate logs into macerate softwood logs + event.replaceInput({id: 'gtceu:macerator/macerate_logs'}, '#minecraft:logs', '#tfg:softwood') + //Create identical macerator recipe for hardwood + event.recipes.gtceu.macerator('macerate_hardwood') + .itemInputs('#tfg:hardwood') + .itemOutputs('6x gtceu:hardwood_dust') + .chancedOutput('gtceu:hardwood_dust', 8000, 680) + .duration(70) + .EUt(2) + + //Replace any recipe that outputs wood dust to use hardwood dust if it's ID string contains the name of one of the hardwood types. + //This absolutely fuckin sucks but it works + event.forEachRecipe({output: 'gtceu:wood_dust'}, r =>{ + global.TFC_HARDWOOD_TYPES.forEach(hardwoodType => + { + if(r.id.toString().includes(hardwoodType)) + { + r.replaceOutput('gtceu:wood_dust', 'gtceu:hardwood_dust') + r.replaceOutput('gtceu:small_wood_dust', 'gtceu:small_hardwood_dust') + r.replaceOutput('gtceu:tiny_wood_dust', 'gtceu_tiny_hardwood_dust') + return; + } + }) + }) + + //Replace any input that uses softwood dust to use our custom tag (we cant add it to the forge tag because it will literally fuck everything up by making softwood pulp obtainable using hardwood pulp) + event.replaceInput([ + {not:{output: 'gtceu:small_wood_dust'}}, + {not:{output: 'gtceu:tiny_wood_dust'}} + ], 'gtceu:wood_dust', '#tfg:wood_dusts') + + //Craft hardwood strips event.recipes.tfc.damage_inputs_shapeless_crafting(event.shapeless('4x tfg:hardwood_strip', ['#minecraft:axes', '#tfg:stripped_hardwood'])) + .id('tfg:crafting/strip_hardwood') + generateCutterRecipe(event, `#tfg:hardwood`, 2, `8x tfg:hardwood_strip`, 200, 6, 'cutter/strip_hardwood') + + //Soak hardwood strips + event.recipes.tfc.barrel_sealed('12000') + .inputs('tfg:hardwood_strip', TFC.fluidStackIngredient('#tfc:water', 100)) + .outputItem('tfg:soaked_hardwood_strip') + .id('tfg:barrel/soak_hardwood_strip') + + //Create Hardwood Dust using Quern and Millstone/Crushing Wheels + event.recipes.createMilling(['3x gtceu:small_hardwood_dust', Item.of('gtceu:small_hardwood_dust').withChance(0.5)], 'tfg:soaked_hardwood_strip') + .processingTime(100) + .id('tfg:mill/mill_soaked_hardwood_strip') + event.recipes.gtceu.macerator('tfg:macerator/macerate_hardwood_strips') + .itemInputs('#tfg:hardwood_strips') + .itemOutputs('gtceu:hardwood_dust') + .duration(50) + .EUt(2) + event.recipes.tfc.quern('2x gtceu:small_hardwood_dust', 'tfg:soaked_hardwood_strip') + .id('tfg:quern/soaked_hardwood_strip') + + //Cook hardwood dust in lye + registerVatRecipe('tfg:vat/thermochemically_treat_hardwood_dust', 'gtceu:hardwood_dust', 'tfc:lye', 300, 'gtceu:thermochemically_treated_hardwood_dust') + registerVatRecipe('tfg:vat/thermochemically_treat_small_hardwood_dust', 'gtceu:small_hardwood_dust', 'tfc:lye', 75, 'gtceu:small_thermochemically_treated_hardwood_dust') + registerVatRecipe('tfg:vat/thermochemically_treat_tiny_hardwood_dust', 'gtceu:tiny_hardwood_dust', 'tfc:lye', 33, 'gtceu:tiny_thermochemically_treated_hardwood_dust') + generateMixerRecipe(event, 'gtceu:hardwood_dust', Fluid.of('tfc:lye', 150), 'gtceu:thermochemically_treated_hardwood_dust', null, [], 150, 4, 64, 'tfg:mixer/mix_hardwood_dust_with_lye') + generateMixerRecipe(event, 'gtceu:small_hardwood_dust', Fluid.of('tfc:lye', 37), 'gtceu:small_thermochemically_treated_hardwood_dust', null, [], 100, 3, 64, 'tfg:mixer/mix_small_hardwood_dust_with_lye') + generateMixerRecipe(event, 'gtceu:tiny_hardwood_dust', Fluid.of('tfc:lye', 16), 'gtceu:tiny_thermochemically_treated_hardwood_dust', null, [], 50, 2, 64, 'tfg:mixer/mix_tiny_hardwood_dust_with_lye') + + //Beat thermochemically treated hardwood dust into soaked unrefined paper + event.recipes.tfc.anvil('tfg:soaked_unrefined_paper', 'gtceu:thermochemically_treated_hardwood_dust', ['hit_last', 'hit_last', 'hit_last']) + .id('tfg:anvil/soaked_unrefined_paper') + event.recipes.createPressing(Item.of('tfg:soaked_unrefined_paper').withChance(0.8), 'gtceu:thermochemically_treated_hardwood_dust') + .id('tfg:pressing/soaked_unrefined_paper') + event.custom({ + type: "firmalife:stomping", + ingredient: { + item: "gtceu:thermochemically_treated_hardwood_dust" + }, + result:{ + item: 'tfg:soaked_unrefined_paper' + }, + input_texture: 'tfg:blocks/thermochemically_treated_hardwood_dust', + output_texture: 'tfg:blocks/soaked_unrefined_paper', + sound: 'minecraft:entity.slime.squish' + }).id('tfg:stomping/soaked_unrefined_paper') + + //Dry the soaked unrefined paper + event.recipes.firmalife.drying('tfc:unrefined_paper', 'tfg:soaked_unrefined_paper') + .id('tfg:drying/unrefined_paper') + + //alternatively, just put the thermochemically treated hardwood dust inside a forge hamemr + event.recipes.gtceu.forge_hammer('tfg:forge_hammer/paper_from_thermochemically_treated_hardwood_dust') + .itemInputs('gtceu:thermochemically_treated_hardwood_dust') + .itemOutputs('minecraft:paper') + .duration(20) + .EUt(4) + event.recipes.gtceu.forge_hammer('tfg:forge_hammer/paper_from_small_thermochemically_treated_hardwood_dust') + .itemInputs('4x gtceu:small_thermochemically_treated_hardwood_dust') + .itemOutputs('minecraft:paper') + .duration(30) + .EUt(4) + event.recipes.gtceu.forge_hammer('tfg:forge_hammer/paper_from_tiny_thermochemically_treated_hardwood_dust') + .itemInputs('9x gtceu:tiny_thermochemically_treated_hardwood_dust') + .itemOutputs('minecraft:paper') + .duration(40) + .EUt(4) } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/tags.js b/kubejs/server_scripts/tfg/tags.js new file mode 100644 index 000000000..43278537d --- /dev/null +++ b/kubejs/server_scripts/tfg/tags.js @@ -0,0 +1,12 @@ +const registerTFGItemTags = (event) => +{ + event.add('tfg:hardwood_strips', 'tfg:hardwood_strip') + event.add('tfg:hardwood_strips', 'tfg:soaked_hardwood_strip') + //Adding any of these dusts to the forge dusts/wood tag will make it so you can craft softwood pulp using hardwood pulp. which is not ok. + event.add('tfg:wood_dusts', 'gtceu:hardwood_dust') + event.add('tfg:tiny_wood_dusts', 'gtceu:tiny_hardwood_dust') + event.add('tfg:small_wood_dusts', 'gtceu:small_hardwood_dust') + event.add('tfg:wood_dusts', 'gtceu:wood_dust') + event.add('tfg:tiny_wood_dusts', 'gtceu:tiny_wood_dust') + event.add('tfg:small_wood_dusts', 'gtceu:small_wood_dust') +} \ No newline at end of file From 6bc6af4641de8b2ca2ada89d8a288c79efae2100 Mon Sep 17 00:00:00 2001 From: Nebby_G Date: Mon, 20 Jan 2025 20:57:32 -0300 Subject: [PATCH 5/7] Comply with Initial Review --- kubejs/assets/gtceu/lang/en_us.json | 6 +- .../field_guide/en_us/categories/tfg.json | 6 -- .../en_us/entries/mechanics/papermaking.json | 7 +- .../field_guide/en_us/entries/test_entry.json | 11 --- .../field_guide/ru_ru/mechanics/bloomery.json | 80 ------------------- kubejs/server_scripts/tfg/recipes.js | 28 ++++++- 6 files changed, 31 insertions(+), 107 deletions(-) delete mode 100644 kubejs/assets/tfc/patchouli_books/field_guide/en_us/categories/tfg.json delete mode 100644 kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/test_entry.json delete mode 100644 kubejs/assets/tfc/patchouli_books/field_guide/ru_ru/mechanics/bloomery.json diff --git a/kubejs/assets/gtceu/lang/en_us.json b/kubejs/assets/gtceu/lang/en_us.json index ad836a083..45a950aed 100644 --- a/kubejs/assets/gtceu/lang/en_us.json +++ b/kubejs/assets/gtceu/lang/en_us.json @@ -7,9 +7,9 @@ "item.gtceu.small_hardwood_dust": "Small Pile of Hardwood Pulp", "item.gtceu.hardwood_dust": "Hardwood Pulp", - "item.gtceu.tiny_thermochemically_treated_hardwood_dust": "Tiny Pile of Thermochemicall Treated Hardwood Pulp", - "item.gtceu.small_thermochemically_treated_hardwood_dust": "Small Pile of Thermochemicall Treated Hardwood Pulp", - "item.gtceu.thermochemically_treated_hardwood_dust": "Thermochemically Treated Hardwood Pulp", + "item.gtceu.tiny_thermochemically_treated_hardwood_dust": "Tiny Pile of Thermochemically Treated Hardwood Pulp", + "item.gtceu.small_thermochemically_treated_hardwood_dust": "Small Pile of Thermochemically Treated Hardwood Pulp", + "item.gtceu.thermochemically_treated_hardwood_dust": "Thermochemicallyy Treated Hardwood Pulp", "gtceu.jei.bedrock_fluid.tfc_salt_water_deposit": "Sea Water Deposit", diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/categories/tfg.json b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/categories/tfg.json deleted file mode 100644 index 551f335c2..000000000 --- a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/categories/tfg.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "Changes in TFG", - "description": "Differences in TerraFirmaGreg that are different from base TFC.", - "icon": "gtceu:basic_electronic_circuit", - "sortnum": 200 -} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/papermaking.json b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/papermaking.json index fd2fb32d6..b0b7f17e0 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/papermaking.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/papermaking.json @@ -5,7 +5,7 @@ "pages": [ { "type": "patchouli:text", - "text": "$(thing)Paper$() is either made from the processed stalk of the $(l:mechanics/crops#papyrus)Papyrus$() crop, from $(l:mechanics/papermaking#parchment)Animal Hides$(), or from a lengthy process using specific types of Wood. Paper is useful for written materials like $(thing)Books$() and $(thing)Maps$()." + "text": "$(thing)Paper$() is either made from the processed stalk of the $(l:mechanics/crops#papyrus)Papyrus$() crop, from $(l:mechanics/papermaking#parchment)Animal Hides$(), or $(l:mechanics/papermaking/paperfromwood)from a lengthy process using specific types of Wood$(). Paper is useful for written materials like $(thing)Books$() and $(thing)Maps$()." }, { "type": "patchouli:crafting", @@ -78,6 +78,7 @@ }, { "type": "patchouli:text", + "anchor": "paperfromwood", "text": "$(thing)Creating Paper from Wood$() is an ancient process that requires processing of sturdy types of wood into sheets, which are broken down into a pulp, and then pressed, dried and scraped to make paper.$(br2)Note that softer types of wood are not suitable for making paper", "title": "Paper from Wood" }, @@ -113,13 +114,13 @@ "type": "patchouli:crafting", "recipe": "gtceu:shaped/small_dust_assembling_hardwood", "title": "Piling up the Pulp", - "text": "While the quern gives you small piles of pulp, you'll want to combine them together in a $(thing)Workbench. $(bold)More sophisticated methods of crushing the strips yield higher amounts of pulp$()" + "text": "While the quern gives you small piles of pulp, you'll want to combine them together in a $(thing)Workbench$(). More sophisticated methods of crushing the strips yield higher amounts of pulp" }, { "type": "patchouli:spotlight", "item": "gtceu:thermochemically_treated_hardwood_dust", "title": "Breaking down the Pulp", - "text": "Before the pulp can be processed further into paper, it needs to be broken down further by $(l:firmalife/oven_appliances#vat)Boiling it with Lye in a Vat$(). At least 200 Milibuckets of Lye must be present in the vat for the process to complete." + "text": "Before the pulp can be processed further into paper, it needs to be broken down further by $(thing)Boiling it with Lye$() in a $(l:firmalife/oven_appliances#vat)Vat$() or a $(l:mechanics/pot)Pot$()." }, { "type": "patchouli:empty" diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/test_entry.json b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/test_entry.json deleted file mode 100644 index 5a90e2893..000000000 --- a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/test_entry.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "Placeholder", - "icon": "firmaciv:canoe_paddle", - "category": "tfc:tfg", - "pages": [ - { - "type": "patchouli:text", - "text": "Let me know of any ideas for what can go in this section! I'm looking for things that people often ask questions about and need some help with" - } - ] -} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/ru_ru/mechanics/bloomery.json b/kubejs/assets/tfc/patchouli_books/field_guide/ru_ru/mechanics/bloomery.json deleted file mode 100644 index f25be2c1a..000000000 --- a/kubejs/assets/tfc/patchouli_books/field_guide/ru_ru/mechanics/bloomery.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "__comment__": "This file was automatically created by mcresources", - "name": "Доменная печь", - "category": "tfc:mechanics", - "icon": "tfc:bloomery", - "pages": [ - { - "type": "patchouli:text", - "text": "$(thing)Доменная печь$() используется для плавки $(thing)Железной руды$() в $(thing)Железные слитки$(), которые могут быть обработаны в $(thing)Кованое железо$(). Железные руды это $(l:the_world/ores_and_minerals#hematite)гематит$(), $(l:the_world/ores_and_minerals#limonite)лимонит$() и $(l:the_world/ores_and_minerals#magnetite)магнетит$(). Эти руды плавятся в $(thing)Чугун$(), а не в $(thing)Кованое железо$(). Все предметы, содержащие железо, плавятся в чугун. Чтобы превратить их в используемое железо, необходима доменная печь. Любой железный предмет может быть использован в доменной печи, включая железные инструменты и чугунные слитки!" - }, - { - "type": "patchouli:crafting", - "recipe": "tfc:crafting/bloomery", - "text": "Доменная печь сделана из 8 $(thing)Бронзовых двойных листов$()." - }, - { - "type": "patchouli:multiblock", - "multiblock_id": "tfc:bloomery", - "name": "Сыродутный горн", - "text": "Доменная печь минимального размера. Блок доменной печи открывается и закрывается с помощью $(item)$(k:key.use)$().", - "enable_visualize": true - }, - { - "type": "patchouli:text", - "text": "Сыродутный горн может содержать до 48 $(thing)входящих предметов$(), с 16 предметами каждого типа на слой трубы. Чтобы добавить слои к трубе, сложите два дополнительных слоя каменных блоков.$(br2)Чтобы добавить предметы в горн, поднимитесь наверх и бросьте предметы внутрь. Должна сформироваться башня из серой руды." - }, - { - "type": "patchouli:image", - "images": [ - "tfc:textures/gui/book/tutorial/bloomery_hole.png" - ], - "text": "Добавление предметов в сыродутный горн.", - "border": true - }, - { - "type": "patchouli:text", - "text": "Сыродутный горн потребляет $(thing)1 угля$() и $(thing)144 мБ чугуна$(), чтобы произвести одну $(thing)крица$(). После заполнения горна комбинацией $(thing)угля$() и $(thing)руды$(), зажгите блок горна и подождите 15 часов, пока руда плавится. Когда горн погаснет, он оставит блок $(thing)крицы$(). Он содержит $(thing)сырую железную крицу$(), которую можно добыть, дробя $(thing)крицу$() киркой." - }, - { - "type": "patchouli:multiblock", - "multiblock": { - "pattern": [ - [ - "X" - ], - [ - "0" - ] - ], - "mapping": { - "X": "tfc:bloom[layers=8]" - } - }, - "name": "Блок слитка", - "text": "Большая $(thing)крица$().", - "enable_visualize": false - }, - { - "type": "tfc:anvil_recipe", - "recipe": "tfc:anvil/refined_iron_bloom", - "text": "$(thing)Сырой железный слиток$() должен быть обработан на $(l:mechanics/anvils)наковальне$(), чтобы сделать $(thing)Очищенный железный слиток$()." - }, - { - "type": "tfc:anvil_recipe", - "recipe": "tfc:anvil/metal/ingot/wrought_iron", - "text": "$(thing)Очищенный железный слиток$() должен быть обработан на $(l:mechanics/anvils)наковальне$(), чтобы сделать $(thing)Кованые железные слитки$()." - }, - { - "type": "patchouli:text", - "text": "$(li)Если в сыродутном горне окажется больше предметов, чем он может вместить на основе своего дымохода, он попытается вытолкнуть их наружу.$()$(li)Чтобы забрать свои предметы из незажженного горна, не ломайте башню из расплавленных блоков. Сломайте блок сыродутного горна.$()$(li)Слитки будут плавиться только в чугун, а не в кованое железо. Их нужно обрабатывать!$()", - "title": "Заметки кузнеца" - } - ], - "read_by_default": true, - "extra_recipe_mappings": { - "tfc:bloom": 6, - "tfc:raw_iron_bloom": 7, - "tfc:refined_iron_bloom": 8 - } -} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/recipes.js b/kubejs/server_scripts/tfg/recipes.js index 62212eaa9..765c43999 100644 --- a/kubejs/server_scripts/tfg/recipes.js +++ b/kubejs/server_scripts/tfg/recipes.js @@ -1,7 +1,7 @@ const registerTFGRecipes = (event) => { - var registerVatRecipe = (id, inputItem, fluid, fluidAmount, output) => + var generateVatRecipe = (id, inputItem, fluid, fluidAmount, output) => { event.custom({ "type": "firmalife:vat", @@ -19,6 +19,23 @@ const registerTFGRecipes = (event) => } }).id(id) } + + var generatePotRecipe = (id, maxAmountOfInputItems, inputItem, inputFluid, inputFluidAmount, outputItem, ticks, temperature) => + { + for(let i = 0; i < maxAmountOfInputItems; i++) + { + var iPlusOne = i + 1 + let inputsArray = new Array(iPlusOne) + for(let j = 0; j < iPlusOne; j++) + { + inputsArray[j] = inputItem + } + + event.recipes.tfc.pot(inputsArray, Fluid.of(inputFluid, inputFluidAmount * iPlusOne), ticks, temperature) + .itemOutput(`${iPlusOne}x ${outputItem}`) + .id(`tfg:pot/${iPlusOne}x_${id}`) + } + } //remove chemical bath recipe event.remove({id: 'gtceu:chemical_bath/paper_from_wood_dust'}) event.remove({id: 'gtceu:chemical_bath/paper_from_wood_dust_distilled'}) @@ -87,9 +104,12 @@ const registerTFGRecipes = (event) => .id('tfg:quern/soaked_hardwood_strip') //Cook hardwood dust in lye - registerVatRecipe('tfg:vat/thermochemically_treat_hardwood_dust', 'gtceu:hardwood_dust', 'tfc:lye', 300, 'gtceu:thermochemically_treated_hardwood_dust') - registerVatRecipe('tfg:vat/thermochemically_treat_small_hardwood_dust', 'gtceu:small_hardwood_dust', 'tfc:lye', 75, 'gtceu:small_thermochemically_treated_hardwood_dust') - registerVatRecipe('tfg:vat/thermochemically_treat_tiny_hardwood_dust', 'gtceu:tiny_hardwood_dust', 'tfc:lye', 33, 'gtceu:tiny_thermochemically_treated_hardwood_dust') + generateVatRecipe('tfg:vat/thermochemically_treat_hardwood_dust', 'gtceu:hardwood_dust', 'tfc:lye', 300, 'gtceu:thermochemically_treated_hardwood_dust') + generateVatRecipe('tfg:vat/thermochemically_treat_small_hardwood_dust', 'gtceu:small_hardwood_dust', 'tfc:lye', 75, 'gtceu:small_thermochemically_treated_hardwood_dust') + generateVatRecipe('tfg:vat/thermochemically_treat_tiny_hardwood_dust', 'gtceu:tiny_hardwood_dust', 'tfc:lye', 33, 'gtceu:tiny_thermochemically_treated_hardwood_dust') + generatePotRecipe('thermochemically_treat_hardwood_dust', 3, 'gtceu:hardwood_dust', 'tfc:lye', 300, 'gtceu:thermochemically_treated_hardwood_dust', 600, 300) + generatePotRecipe('thermochemically_treat_small_hardwood_dust', 5, 'gtceu:small_hardwood_dust', 'tfc:lye', 75, 'gtceu:small_thermochemically_treated_hardwood_dust', 600, 300) + generatePotRecipe('thermochemically_treat_tiny_hardwood_dust', 5, 'gtceu:tiny_hardwood_dust', 'tfc:lye', 33, 'gtceu:tiny_thermochemically_treated_hardwood_dust', 600, 300) generateMixerRecipe(event, 'gtceu:hardwood_dust', Fluid.of('tfc:lye', 150), 'gtceu:thermochemically_treated_hardwood_dust', null, [], 150, 4, 64, 'tfg:mixer/mix_hardwood_dust_with_lye') generateMixerRecipe(event, 'gtceu:small_hardwood_dust', Fluid.of('tfc:lye', 37), 'gtceu:small_thermochemically_treated_hardwood_dust', null, [], 100, 3, 64, 'tfg:mixer/mix_small_hardwood_dust_with_lye') generateMixerRecipe(event, 'gtceu:tiny_hardwood_dust', Fluid.of('tfc:lye', 16), 'gtceu:tiny_thermochemically_treated_hardwood_dust', null, [], 50, 2, 64, 'tfg:mixer/mix_tiny_hardwood_dust_with_lye') From 3f7a5c1503250e7e2815df531c470589640b0c9a Mon Sep 17 00:00:00 2001 From: Nebby_G Date: Mon, 20 Jan 2025 21:12:37 -0300 Subject: [PATCH 6/7] Add FTB Quests for Papermaking --- .../quests/chapters/primitive_age.snbt | 134 ++++++++++++++++-- 1 file changed, 121 insertions(+), 13 deletions(-) diff --git a/config/ftbquests/quests/chapters/primitive_age.snbt b/config/ftbquests/quests/chapters/primitive_age.snbt index be2e360b5..ba1178c58 100644 --- a/config/ftbquests/quests/chapters/primitive_age.snbt +++ b/config/ftbquests/quests/chapters/primitive_age.snbt @@ -3805,8 +3805,8 @@ item: "tfc:papyrus" type: "item" }] - x: 27.0d - y: 1.0d + x: 23.5d + y: -3.5d } { dependencies: ["0D47455ABB97C81D"] @@ -3816,8 +3816,8 @@ item: "tfc:papyrus_strip" type: "item" }] - x: 24.0d - y: 1.0d + x: 23.5d + y: -1.0d } { dependencies: [ @@ -3831,13 +3831,16 @@ type: "item" }] x: 19.5d - y: 1.0d + y: -1.0d } { dependencies: [ "147911B5CA3A7DD8" "6F769ABFCA894E24" + "0F9BE65A65F9CF4D" ] + dependency_requirement: "one_completed" + description: ["You can either use 4 Papyrus Strips in a Loom, or Dry a Soaked Unrefined Paper in a Drying Mat"] id: "7E8F9F6F35614B13" tasks: [{ id: "2677C234ED0D56FF" @@ -3862,7 +3865,7 @@ type: "item" }] x: 21.0d - y: -0.5d + y: -3.5d } { dependencies: ["2658E7679CD42ACD"] @@ -3872,7 +3875,7 @@ item: "minecraft:name_tag" type: "item" }] - x: 24.0d + x: 23.5d y: 3.0d } { @@ -3890,7 +3893,7 @@ type: "item" }] x: 22.0d - y: -1.5d + y: -4.5d } { dependencies: ["45D907EF7902A200"] @@ -4592,7 +4595,7 @@ match_nbt: false type: "item" }] - x: 27.0d + x: 26.5d y: 3.0d } { @@ -4661,12 +4664,13 @@ type: "item" }] x: 21.0d - y: -1.5d + y: -4.5d } { dependencies: [ "42FD437930CA74C7" "593CC9165759B714" + "2658E7679CD42ACD" ] dependency_requirement: "one_completed" hide_dependency_lines: true @@ -4677,7 +4681,7 @@ type: "item" }] x: 22.0d - y: -0.5d + y: -3.5d } { dependencies: [ @@ -5243,7 +5247,7 @@ item: "tfc:treated_hide" type: "item" }] - x: 24.5d + x: 21.5d y: -7.0d } { @@ -5255,9 +5259,113 @@ item: "tfc:groundcover/pumice" type: "item" }] - x: 27.0d + x: 21.5d + y: -8.5d + } + { + dependencies: ["07EACA7D4EB51EB8"] + description: ["Press the Thermochemically Treated Hardwood Pulp into a Sheet"] + id: "0F9BE65A65F9CF4D" + tasks: [{ + id: "06E98C5646CEF615" + item: "tfg:soaked_unrefined_paper" + type: "item" + }] + x: 21.5d + y: 1.0d + } + { + dependencies: ["2B95877FDA27F418"] + description: ["Cook the Hardwood Pulp in Lye using a Vat or a Pot"] + id: "07EACA7D4EB51EB8" + tasks: [{ + id: "2521D9D73CC0BCA5" + item: "gtceu:thermochemically_treated_hardwood_dust" + type: "item" + }] + x: 23.5d + y: 1.0d + } + { + dependencies: ["72B2543628818D03"] + description: ["Quern the Soaked Hardwood Strip to get Hardwood Pulp"] + id: "2B95877FDA27F418" + tasks: [{ + id: "392BBB461D37F945" + item: "gtceu:hardwood_dust" + type: "item" + }] + x: 26.5d + y: 1.0d + } + { + dependencies: [ + "6E24ECF6CEE950D1" + "5FD97BDCAA82B23A" + ] + description: ["Submerge the Hardwood Strip in a Barrel full of Water to Soak it"] + id: "72B2543628818D03" + tasks: [{ + id: "27EC545C4FD8B47E" + item: "tfg:soaked_hardwood_strip" + type: "item" + }] + x: 26.5d + y: -3.5d + } + { + dependencies: ["3579D6F2BC5DAABB"] + description: ["Put an Axe and a Stripped Hardwood Log in a Crafting Table to create the Strips"] + id: "5FD97BDCAA82B23A" + tasks: [{ + id: "0324746AB4D87295" + item: "tfg:hardwood_strip" + type: "item" + }] + x: 26.5d y: -7.0d } + { + dependencies: ["0CC8FB9750DF4E27"] + description: ["Right click a placed Hardwood Log to Strip it"] + id: "3579D6F2BC5DAABB" + tasks: [{ + id: "6831FBD90C8DD7A6" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + "ftbfiltersystem:filter": "ftbfiltersystem:item_tag(tfg:stripped_hardwood)" + } + } + title: "Any #tfg:stripped_hardwood" + type: "item" + }] + title: "Any Stripped Hardwood" + x: 26.5d + y: -8.5d + } + { + dependencies: ["76EF4D00586A8B74"] + description: ["Get any kind of Hardwood, check the Papermaking page for a list of valid wood types"] + hide_dependency_lines: true + id: "0CC8FB9750DF4E27" + tasks: [{ + id: "5067BA8D80512DF4" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + "ftbfiltersystem:filter": "ftbfiltersystem:item_tag(tfg:hardwood)" + } + } + title: "Any #tfg:hardwood" + type: "item" + }] + title: "Get Hardwood" + x: 24.5d + y: -8.5d + } ] title: "Primitive Age" } From 3dc98922a91b4a20180c3b9d0eaeadaa6bafdf9f Mon Sep 17 00:00:00 2001 From: Nebby_G Date: Tue, 21 Jan 2025 13:00:17 -0300 Subject: [PATCH 7/7] Replace blasting charcoal recipe --- kubejs/server_scripts/tfc/recipes.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kubejs/server_scripts/tfc/recipes.js b/kubejs/server_scripts/tfc/recipes.js index 4a9b3d624..c3b2166d8 100644 --- a/kubejs/server_scripts/tfc/recipes.js +++ b/kubejs/server_scripts/tfc/recipes.js @@ -3585,8 +3585,8 @@ const registerTFCRecipes = (event) => { event.replaceInput({id: 'firmalife:crafting/solar_drier'}, 'gtceu:stainless_steel_rod', 'gtceu:silver_rod') //Wood ash - event.blasting('tfc:powder/wood_ash', 'tfc:powder/charcoal') - .id('blast_charcoal_powder') + event.recipes.create.splashing([Item.of('tfc:powder/wood_ash').withChance(0.25), Item.of('minecraft:stick').withChance(0.25)], 'tfc:torch') + .id('tfg:splashing/wash_torch') //Lye in mixer generateMixerRecipe(event, 'tfc:powder/wood_ash', Fluid.of('minecraft:water', 200), [], null, Fluid.of('tfc:lye', 200), 100, 2, 64, 'lye_in_mixer')