Finished Implementation, added to Field Guide
This commit is contained in:
parent
68b08cddc3
commit
382fa8c4c5
8 changed files with 313 additions and 30 deletions
|
|
@ -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
|
||||
}
|
||||
BIN
kubejs/assets/tfg/textures/blocks/soaked_unrefined_paper.png
Normal file
BIN
kubejs/assets/tfg/textures/blocks/soaked_unrefined_paper.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 968 B |
Binary file not shown.
|
After Width: | Height: | Size: 1 KiB |
|
|
@ -1,38 +1,12 @@
|
|||
// 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(
|
||||
'#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)
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ ServerEvents.tags('item', event => {
|
|||
registerSophisticatedBackpacksItemTags(event)
|
||||
registerTFCAmbientalItemTags(event)
|
||||
registerTFCItemTags(event)
|
||||
registerTFGItemTags(event)
|
||||
})
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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')
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
12
kubejs/server_scripts/tfg/tags.js
Normal file
12
kubejs/server_scripts/tfg/tags.js
Normal file
|
|
@ -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')
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue