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" } diff --git a/kubejs/assets/gtceu/lang/en_us.json b/kubejs/assets/gtceu/lang/en_us.json index a9bbbd31c..45a950aed 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 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", "block.gtceu.greenhouse": "Electric Greenhouse", 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..b0b7f17e0 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/papermaking.json @@ -0,0 +1,157 @@ +{ + "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 $(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", + "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", + "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" + }, + { + "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$(). 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 $(thing)Boiling it with Lye$() in a $(l:firmalife/oven_appliances#vat)Vat$() or a $(l:mechanics/pot)Pot$()." + }, + { + "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/lang/en_us.json b/kubejs/assets/tfg/lang/en_us.json index b7bb82218..95e5e214e 100644 --- a/kubejs/assets/tfg/lang/en_us.json +++ b/kubejs/assets/tfg/lang/en_us.json @@ -1,6 +1,12 @@ { "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/assets/tfg/textures/blocks/soaked_unrefined_paper.png b/kubejs/assets/tfg/textures/blocks/soaked_unrefined_paper.png new file mode 100644 index 000000000..8bc656a1b Binary files /dev/null and b/kubejs/assets/tfg/textures/blocks/soaked_unrefined_paper.png differ 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 000000000..e85bec165 Binary files /dev/null and b/kubejs/assets/tfg/textures/blocks/thermochemically_treated_hardwood_dust.png differ 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 000000000..c30892733 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/hardwood_strip.png differ 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 000000000..1f2a4343b Binary files /dev/null and b/kubejs/assets/tfg/textures/item/soaked_hardwood_strip.png differ diff --git a/kubejs/assets/tfg/textures/item/soaked_unrefined_paper.png b/kubejs/assets/tfg/textures/item/soaked_unrefined_paper.png new file mode 100644 index 000000000..6c57011df Binary files /dev/null and b/kubejs/assets/tfg/textures/item/soaked_unrefined_paper.png differ diff --git a/kubejs/server_scripts/gregtech/recipes.js b/kubejs/server_scripts/gregtech/recipes.js index 8798f98cc..0f83f7e4c 100644 --- a/kubejs/server_scripts/gregtech/recipes.js +++ b/kubejs/server_scripts/gregtech/recipes.js @@ -2,12 +2,11 @@ const registerGTCEURecipes = (event) => { //#region Выход: Удобрение - // В обычном миксере event.recipes.gtceu.mixer('fertilizer') .itemInputs( '#tfc:dirt', - '2x #forge:dusts/wood', + '2x #tfg:wood_dusts', '4x #forge:sand' ) .circuit(1) @@ -20,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 22338e50d..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) }) /** @@ -140,6 +141,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/recipes.js b/kubejs/server_scripts/tfc/recipes.js index e0e6f6fad..7ef02ecca 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`) @@ -3598,6 +3598,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.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') } diff --git a/kubejs/server_scripts/tfc/tags.js b/kubejs/server_scripts/tfc/tags.js index 5174daf72..ff72b210e 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 new file mode 100644 index 000000000..765c43999 --- /dev/null +++ b/kubejs/server_scripts/tfg/recipes.js @@ -0,0 +1,155 @@ + +const registerTFGRecipes = (event) => +{ + var generateVatRecipe = (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) + } + + 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'}) + + //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 + 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') + + //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 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/tfc/constants.js b/kubejs/startup_scripts/tfc/constants.js index 3bfdd88b5..3003956d4 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', 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