Spindle Rework (#3345)

* Initial Commit

I basically cloned how the rod mold was added and adapted it to be the spindle head.
Ive gotten everything except how to add a tag to fluid copper and how to actually make the casting recipe work.

* Response to PR comments

Merged all recipes into the recipes.cloth file, and added anvil and casting recipes.
This commit is contained in:
DrEthan77
2026-03-10 14:07:41 -06:00
committed by GitHub
parent a6b3c7b472
commit 51ce6625cb
14 changed files with 116 additions and 5 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 394 B

View File

@@ -137,6 +137,8 @@ const registerFirmaLifeRecipes = (event) => {
.itemOutputs('8x firmalife:pineapple_yarn')
.duration(50)
.EUt(7)
event.remove({ id: 'firmalife:crafting/pineapple_yarn' })
// Pineapple Leather
event.recipes.gtceu.assembler(`tfg:firmalife/pineapple_leather`)

View File

@@ -143,4 +143,6 @@ function removeTFCRecipes(event) {
event.remove({ id: 'tfc:heating/metal/weak_red_steel_ingot' })
event.remove({ id: 'tfc:casting/weak_red_steel_ingot' })
event.remove({ id: 'tfc:casting/weak_red_steel_fire_ingot' })
event.remove({ id: 'tfc:crafting/wool_yarn' })
}

View File

@@ -53,6 +53,7 @@ function registerTFGHeatData(event) {
event.itemHeat('tfg:food/cooked_burger_patty', 1.0, null, null);
event.itemHeat('tfg:unfired_rod_mold', 1.0, null, null);
event.itemHeat('tfg:unfired_spindle_head_mold', 1.0, null, null);
event.itemHeat('tfg:unfired_small_gear_mold', 1.0, null, null);
event.itemHeat('tfg:unfired_nugget_mold', 1.0, null, null);
@@ -329,9 +330,11 @@ function registerTFGItemSize(event) {
event.itemSize(
orArray([
"tfg:unfired_rod_mold",
"tfg:unfired_spindle_head_mold",
"tfg:unfired_small_gear_mold",
"tfg:unfired_nugget_mold",
"tfg:rod_mold",
"tfg:spindle_head_mold",
"tfg:small_gear_mold",
"tfg:nugget_mold"
]),

View File

@@ -146,9 +146,9 @@ function registerTFGMarsRecipes(event) {
.EUt(4)
event.recipes.tfc.damage_inputs_shapeless_crafting(
event.shapeless('8x tfc:wool_yarn', [
'tfc:spindle',
'tfg:glacian_wool'
event.shapeless('8x tfc:wool_yarn', [
'tfg:glacian_wool',
'#tfg:tools/spindles'
]).id('tfg:shapeless/glacian_wool_to_yarn'))
event.recipes.gtceu.wiremill('tfg:glacian_wool_yarn')

View File

@@ -51,6 +51,7 @@ function registerTFGClayRecipes(event) {
{ input: "firmalife:oven_bottom", output: "firmalife:cured_oven_bottom", name: "oven_bottom" },
{ input: "firmalife:oven_hopper", output: "firmalife:cured_oven_hopper", name: "oven_hopper" },
{ input: "tfg:unfired_rod_mold", output: "tfg:rod_mold", name: "rod_mold" },
{ input: "tfg:unfired_spindle_head_mold", output: "tfg:spindle_head_mold", name: "spindle_head_mold" },
{ input: "tfg:unfired_small_gear_mold", output: "tfg:small_gear_mold", name: "small_gear_mold" },
{ input: "tfg:unfired_nugget_mold", output: "tfg:nugget_mold", name: "nugget_mold" }
]);
@@ -216,6 +217,8 @@ function registerTFGClayRecipes(event) {
// heating
event.recipes.tfc.heating('tfg:unfired_rod_mold', 1399)
.resultItem('tfg:rod_mold')
event.recipes.tfc.heating('tfg:unfired_spindle_head_mold', 1399)
.resultItem('tfg:spindle_head_mold')
event.recipes.tfc.heating('tfg:unfired_small_gear_mold', 1399)
.resultItem('tfg:small_gear_mold')
event.recipes.tfc.heating('tfg:unfired_nugget_mold', 1399)

View File

@@ -51,10 +51,23 @@ function registerTFGClothRecipes(event) {
'tfg:block/polycaprolactam_fabric_block'
)
event.recipes.tfc.damage_inputs_shapeless_crafting(
event.shapeless('8x firmalife:pineapple_yarn', [
'firmalife:pineapple_fiber',
'#tfg:tools/spindles'
]).id('tfg:shapeless/pineapple_yarn')
)
event.recipes.tfc.damage_inputs_shapeless_crafting(
event.shapeless('8x tfc:wool_yarn', [
'tfc:wool',
'#tfg:tools/spindles'
]).id('tfg:shapeless/wool_yarn')
)
event.recipes.tfc.damage_inputs_shapeless_crafting(
event.shapeless('16x tfg:phantom_thread', [
'minecraft:phantom_membrane',
'tfc:spindle'
'#tfg:tools/spindles'
]).id('tfg:shapeless/phantom_thread'))
// Wool Yarn
@@ -110,6 +123,39 @@ function registerTFGClothRecipes(event) {
generateMixerRecipe(event, 'tfc:jute', "#tfg:clean_water 200",
'tfc:jute_fiber', null, [], 100, 4, 16, 'tfg:tfc/jute_fiber')
//#region Spindle Recipes
event.shaped('tfg:copper_spindle', [
'A',
'B'
], {
A: 'tfg:copper_spindle_head',
B: '#forge:rods/wooden'
}).id('tfg:shaped/copper_spindle')
event.recipes.tfc.casting(
'tfg:copper_spindle_head',
'tfg:spindle_head_mold',
TFC.fluidStackIngredient('gtceu:copper', 72),
.1
).id('tfg:casting/copper_spindle_head')
event.recipes.tfc.anvil(
'tfg:copper_spindle_head',
'gtceu:copper_rod',
[
'shrink_last',
'upset_second_last',
'shrink_third_last'
]
).bonus(true)
.tier(1)
.id('tfg:anvil/copper_spindle_head')
//#endregion
//#region flax stuff
event.shapeless('1x tfg:flax_bundle', ['9x tfg:flax_product'])
@@ -210,7 +256,7 @@ function registerTFGClothRecipes(event) {
event.recipes.tfc.damage_inputs_shapeless_crafting(
event.shapeless('4x tfg:linen_thread', [
'tfg:flax_line',
'tfc:spindle'
'#tfg:tools/spindles'
]).id('tfg:shapeless/linen_thread')
)
@@ -254,4 +300,5 @@ function registerTFGClothRecipes(event) {
.duration(100)
.EUt(4)
//#endregion
}

View File

@@ -372,5 +372,16 @@ function registerTFGKnappingRecipes(event) {
])
.ingredient('5x minecraft:clay_ball')
.id('tfg:fire_clay_knapping/unfired_nugget_mold')
event.recipes.tfc.knapping('tfg:unfired_spindle_head_mold', 'tfc:clay', [
"XXXXX",
"XX XX",
" ",
"XX XX",
"XXXXX"
])
.ingredient('5x minecraft:clay_ball')
.id('tfg:clay_knapping/unfired_spindle_head_mold')
}

View File

@@ -39,6 +39,8 @@ function registerTFGPrimitiveItemTags(event) {
event.add('tfg:tools/ore_prospectors/black_steel', 'tfc:metal/propick/black_steel')
event.add('tfg:tools/ore_prospectors/blue_steel', 'tfc:metal/propick/blue_steel')
event.add('tfg:tools/ore_prospectors/red_steel', 'tfc:metal/propick/red_steel')
event.add('tfg:tools/spindles', 'tfc:spindle')
// Paper from wood
event.add('tfg:hardwood_strips', 'tfg:hardwood_strip')
@@ -126,4 +128,5 @@ function registerTFGPrimitiveFluidTags(event) {
event.add('tfg:usable_in_nugget_mold', material.getFluid().getFluidType().toString())
}
})
event.add('tfg:usable_in_spindle_head_mold', 'gtceu:copper');
}

View File

@@ -38,6 +38,14 @@ function registerTFGPrimitiveItems(event) {
event.create('tfg:armor_stand_arms')
event.create('tfg:copper_spindle')
.tag('tfg:tools/spindles')
.maxDamage(120)
.texture('tfg:item/copper_spindle')
event.create('tfg:copper_spindle_head')
.texture('tfg:item/copper_spindle_head')
event.create('tfg:harvest_basket')
.parentModel('tfg:item/harvest_basket')
.maxDamage(256)
@@ -172,6 +180,31 @@ function registerTFGPrimitiveItems(event) {
"XXXXXXXXXXXXXX"
])
event.create('tfg:spindle_head_mold', 'tfc:mold')
.capacity(72)
.texture("base", "tfg:item/mold/fired/spindle_head_empty")
.texture("fluid", "tfg:item/mold/fired/spindle_head_overlay")
.tag('tfc:fired_molds')
.tag('tfc:molds')
.fluidTagAccept('tfg:usable_in_spindle_head_mold')
.tfcccAllowedInMoldTable([
"XXXXXXXXXXXXXX",
"XXXXXXXXXXXXXX",
"XXXXXXXXXX XX",
"XXXXXXXXX XX",
"XXXXXX XXX",
"XXXXX XXXX",
"XXXX XXXXX",
"XXXX XXXXXX",
"XXXX XXXXXXX",
"XXX XXXXXXXX",
"XX XXXXXXXXX",
"XX XXXXXXXXXX",
"XXXXXXXXXXXXXX",
"XXXXXXXXXXXXXX"
])
event.create('tfg:small_gear_mold', 'tfc:mold')
.capacity(144)
.texture("base", "tfg:item/mold/fired/small_gear_mold_empty")
@@ -227,6 +260,13 @@ function registerTFGPrimitiveItems(event) {
.tag('tfc:fire_clay_recycle_5')
.tag('tfc:molds')
.tag('tfc:unfired_pottery')
event.create('tfg:unfired_spindle_head_mold')
.texture("tfg:item/mold/unfired/unfired_spindle_head_mold")
.tag('tfc:unfired_molds')
.tag('tfc:clay_recycle_5')
.tag('tfc:molds')
.tag('tfc:unfired_pottery')
event.create('tfg:unfired_small_gear_mold')
.texture("tfg:item/mold/unfired/unfired_small_gear_mold")