From 51ce6625cbc6fb42104f70471e33b1bddd4a9166 Mon Sep 17 00:00:00 2001 From: DrEthan77 <20546072+DrEthan77@users.noreply.github.com> Date: Tue, 10 Mar 2026 14:07:41 -0600 Subject: [PATCH] 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. --- .../tfg/textures/item/copper_spindle.png | Bin 0 -> 1582 bytes .../tfg/textures/item/copper_spindle_head.png | Bin 0 -> 4120 bytes .../item/mold/fired/spindle_head_empty.png | Bin 0 -> 1690 bytes .../item/mold/fired/spindle_head_overlay.png | Bin 0 -> 1840 bytes .../unfired/unfired_spindle_head_mold.png | Bin 0 -> 394 bytes kubejs/server_scripts/firmalife/recipes.js | 2 + kubejs/server_scripts/tfc/recipes.removes.js | 2 + kubejs/server_scripts/tfg/data.js | 3 ++ .../server_scripts/tfg/mars/recipes.mars.js | 6 +-- .../tfg/primitive/recipes.clay.js | 3 ++ .../tfg/primitive/recipes.cloth.js | 51 +++++++++++++++++- .../tfg/primitive/recipes.knapping.js | 11 ++++ .../tfg/primitive/tags.primitive.js | 3 ++ .../tfg/primitive/items.primitive.js | 40 ++++++++++++++ 14 files changed, 116 insertions(+), 5 deletions(-) create mode 100644 kubejs/assets/tfg/textures/item/copper_spindle.png create mode 100644 kubejs/assets/tfg/textures/item/copper_spindle_head.png create mode 100644 kubejs/assets/tfg/textures/item/mold/fired/spindle_head_empty.png create mode 100644 kubejs/assets/tfg/textures/item/mold/fired/spindle_head_overlay.png create mode 100644 kubejs/assets/tfg/textures/item/mold/unfired/unfired_spindle_head_mold.png diff --git a/kubejs/assets/tfg/textures/item/copper_spindle.png b/kubejs/assets/tfg/textures/item/copper_spindle.png new file mode 100644 index 0000000000000000000000000000000000000000..3de579eaad921c5de5653c5d94191673d2a82645 GIT binary patch literal 1582 zcmbVMU1%Id9AA5(cuiyD2U>lw%T{fq-QC%}Tyi(fdb!@k=AfIV=}9AgaC5t}cWZ8U zw!53&T@c!8DGIUmO*l%GzWCHgo)uCQOfjZXMX-nxsk9FwH3-sR;heoMqC|^bnBAG# z-~adj{=Ypww!de~6I&RD>B)?yC+N2~Sod$H?;XF_5&eXn(HA|2>3%p^_c66|+Zm>7 z)yz)%lj;Ge5lcWi$z!2nITXz>Ly3xmv?=Vfd0a4Ug}e3f0>_%V!X1gKKy^~MXpYXf z`0&hFR-2j9;yRajjvcB%N?>6hu@$Rid$6K#4PHq1!L`V-4TwLbaLGU+JE@MdDdJ*Q z0s`PQ001jTh5Z6H24&oj_pmaMqaqj(Ja7G;^I2;QsOKC1Axx3kTV#-8Syj&Bm14H!|LO#2E)t!=tt zIUQQtYlVsiO{^eClmrmC)d1>R2j@(?rG|1{6LAS!*!De&l{#3bNPOZI$-hu{e*aAY z4X>(pbZlsgWpz||{>U-vMk^p2qP=X@!Quq=$h52Bkz>@%oq;zFOt~2O#LW^?YA0*F zZ89ql3NqVw#I$u%_MTlQfYZpw3P-axz=H@6Vp$o$XcWpZ9t=PLnoyPKrcvDx8ix`U zTL-0Oqaz>P6|8H}Ag+a|!={A_Saj?H$9BR9Q=~*(s+d|AX;`7EFk^c@vNfDZD;)J% zFijmsG(C^Be1tbNS}R!ZkMS`SiSZFh*JFU*Ns`u7&}iMYoJ4B881!M&5AmNaHvX;a**2UGf?(U3LiEs?W7wv{%cWB)yGd2(gu9+e zC$q74v^({BBJ}i$@O!7E!KLH9pFeXG3x6!^PF+vD8XErK^5T=F-cZe`hR05?egFQ6 zwLM#7m#%$ue0#EXwI_V`g_EYy)lDgOh&PPf?S-el44+BfxpwgOK%m^vuXudTw9tjlTdSED}us literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/copper_spindle_head.png b/kubejs/assets/tfg/textures/item/copper_spindle_head.png new file mode 100644 index 0000000000000000000000000000000000000000..2b2a907324d2c1a821028e182e74965789e9f56e GIT binary patch literal 4120 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 Q^h(#YHn+o-nR*@l2QKmny#N3J literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/mold/fired/spindle_head_empty.png b/kubejs/assets/tfg/textures/item/mold/fired/spindle_head_empty.png new file mode 100644 index 0000000000000000000000000000000000000000..df793d5f307c46794bf608ea09526d0463c9e88c GIT binary patch literal 1690 zcmbVNe@q)y9KQ~R!ociDRQ4m;^U%n2*L%IT(4KTyC{lz1vL>*ED97Eq_CoK6ch|LG zmQ@fk5{)d`CgP9n4>SE^F~lv#xFy5svf;!;_s5njNXQcYn^SP=45q#-ZG#3~+$Hbc zd-p!?^Zot3(e~EHvXX5j1VNNF1p^&;-e`>ni|~8rQkuh4u@>BC5X6Qp*02#1@0Jrp z;m=aI%j^oZu)HeUIYI43_N1&~G(ptVCN+-lLni1&5lQipx6hs@fh73IPIm}~w0abk zf&)6*JJ1^D2l{xgK-TU7HAxl|$jIbCQjRGGoAi+xUKX#d&ol`#5VOxm`YnN=E7T6^ zRUH8bv_p!A5CX<+Z?q$^nn5nK8!(V@)3AzWswszub-P&T2HA(i5_LgjI|9#T<>8%= zjGCs#(sUw`uqT{$RgcgPuh&aMhGrNFBPgR^F}WnA7!^5&05W)8(o9KJfW^r5s&Ugt zVr^H80*MmwWw;UMpXS5 z>iqHF1Yq}uLU|c$>LSZ|5r)~YADfYN$eL&)+^-?J0~u;u=TXCctY(E}jmFmNh%;3^ ztg5kGu-bDf1E$)}fXYru5!8gSYt;o5;7sHran!0P=%k=0%s5zwmu2v}iiL0m8d3#G z>|YD&WLO-f)li%^0%vmf1PeSXs=CZ!gC&`ZAX-x*B*?pwtyg2Jjs;`woEa@bA+|{| zOitlZQ@}@Jo9&V$usrAHTpj^ZRZfT~&gF7Zy&gfJkWl47E|KYluIk+VfXc_M$mZ?~ z|MPyEF5&9pV)xBs)tr?QY)~?Au==wVu@}9ZUBx7j$pV(+t?c%ZycJd?klD}DeS2Vq zHW5Xb^gqJA0y9+6OmI5#N3gfVZ}7|MbZx;CsnM~)Bhfe0;PvMBHyz*bl<{SH?%dMGZywpa znYd~k`?2TouT#%|w4lx%JaOnsu=zy!SBGW@^PPs_-?y?SPpw;;y>(~4=+#p0i-@&)^iX|U_U45*yCGIep*XDnnZLFN|6DRLpyIrfz^gJ575ii{FJy;Kj5;!i# zAMQUlG5=z6@t5`2$L>7SdZD27gRS1FNoi#JPd6{olaGB?xBV?KS-0-uhZCRd=t>O@ zm9?B7ShBU;yjogK6h1qWijMo$9}djFRKTNebgEpeGa3Q|u+cS&S-=nFa KHSlp=&){Decs!2) literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/mold/fired/spindle_head_overlay.png b/kubejs/assets/tfg/textures/item/mold/fired/spindle_head_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..09ecc21d5ed5859eeb7bc9f02941aeed966cdcae GIT binary patch literal 1840 zcmb_dO^f727>=?GYs;b_?7ChIwV9??+W# zTVGo_)p(+zY1*moYG*^eAFZB~3+n&LKW|mRD5xDf6esN3`LCPi7$LTOD$=C-IUZTd;vI+DFL~i?Fv2v(y1?&2fD7bDR13`um z(y?o-7(8xa?(hpbM%Xn`)5I-kwTbHxXa3a82LmZ{Vw$7T$Qap% zDEg-5d7g=|i7`|NSng+%j$u}wn=^EH$%-VGiOBSdk%nSd`ar3jhLPqqZC1`wrIKcj zX>M8us=}H8BUa<`-C{U#9x;;-dCD_cDy&sw^MR0}9Ec;R>(941Q0WbV+Q*?<(zJF_ z%H=&3#w;O+qRZZX&dm*8irs?oiNfwDw z`OHlQyhA1TfvQ>)A{(N14_n0Yh^3}Yg3uHih$xBo?}TFFAY!3gpsH;mD(OAJ5hJlE zQmO(@QrhQcp7nuVr;#j)p(vDNrOuwH2m;d0N=Y-uyB!~>n2jWfNE}(rcDMzbp%+6O zJ1+D>%wgo&jK|n^kmJnlJA&<2m7Uv1%D#zOZL8gKpu=MhL+Z33<%-0mcGJSt3PZ=8 z+rLsIYIo7$v3aUJSG5FLO-fa){n?J#Gg6uZcRJajO$m}5hawW?NZHW_Ur z>|r_&{Z8qa*e-FbdHWql`Yf$%K(jtq$E695AI$xA;!$_U4;> zyXiDlg`6y@Bf1*a_k)_$Hw@2Io(gq;oQ37D>h5`|+ga?j-}(8y#fGMzJhA!rjgOwb zy7vB;zkT)H_}#N-oGa&duKm0526#UC;gi#6zS;TdgM|;_Yj3{(;IsKtUo?I>A+LY_ h=Uez=cd&B$!onjB@Xue~kJX*lU0&;a{lb;2{{dyoJzf9+ literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/mold/unfired/unfired_spindle_head_mold.png b/kubejs/assets/tfg/textures/item/mold/unfired/unfired_spindle_head_mold.png new file mode 100644 index 0000000000000000000000000000000000000000..6952b0804943594c08f319435a68d7e9bc3a1ade GIT binary patch literal 394 zcmV;50d@X~P)O$P3n0x`_MHH;x%l|t;=+om49Ett;L?2W%rz9T*|oV~I<gjxC*rh{lCTnqh&2tl7vT1nwo6=I4(eG928pnvn$*$FQgZ`BxZCvxb!$Se)Vh zZ4AvIHO${$J!??VF#;5TQG{e0B1IVEbb2bdz zJhmG{Gl~JS`o>@y=4_C2VP1QD { .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`) diff --git a/kubejs/server_scripts/tfc/recipes.removes.js b/kubejs/server_scripts/tfc/recipes.removes.js index 985346d0a..e8d2f3755 100644 --- a/kubejs/server_scripts/tfc/recipes.removes.js +++ b/kubejs/server_scripts/tfc/recipes.removes.js @@ -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' }) } diff --git a/kubejs/server_scripts/tfg/data.js b/kubejs/server_scripts/tfg/data.js index 9bf8ab910..b68fb8710 100644 --- a/kubejs/server_scripts/tfg/data.js +++ b/kubejs/server_scripts/tfg/data.js @@ -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" ]), diff --git a/kubejs/server_scripts/tfg/mars/recipes.mars.js b/kubejs/server_scripts/tfg/mars/recipes.mars.js index 9c72f2dfe..b49beb0e9 100644 --- a/kubejs/server_scripts/tfg/mars/recipes.mars.js +++ b/kubejs/server_scripts/tfg/mars/recipes.mars.js @@ -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') diff --git a/kubejs/server_scripts/tfg/primitive/recipes.clay.js b/kubejs/server_scripts/tfg/primitive/recipes.clay.js index 9641000c8..173ce01a2 100644 --- a/kubejs/server_scripts/tfg/primitive/recipes.clay.js +++ b/kubejs/server_scripts/tfg/primitive/recipes.clay.js @@ -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) diff --git a/kubejs/server_scripts/tfg/primitive/recipes.cloth.js b/kubejs/server_scripts/tfg/primitive/recipes.cloth.js index 725c86449..0e1ebcf9a 100644 --- a/kubejs/server_scripts/tfg/primitive/recipes.cloth.js +++ b/kubejs/server_scripts/tfg/primitive/recipes.cloth.js @@ -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 + } diff --git a/kubejs/server_scripts/tfg/primitive/recipes.knapping.js b/kubejs/server_scripts/tfg/primitive/recipes.knapping.js index 7518c3dcc..a227a874b 100644 --- a/kubejs/server_scripts/tfg/primitive/recipes.knapping.js +++ b/kubejs/server_scripts/tfg/primitive/recipes.knapping.js @@ -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') + } diff --git a/kubejs/server_scripts/tfg/primitive/tags.primitive.js b/kubejs/server_scripts/tfg/primitive/tags.primitive.js index 776a5a08b..bbcee5021 100644 --- a/kubejs/server_scripts/tfg/primitive/tags.primitive.js +++ b/kubejs/server_scripts/tfg/primitive/tags.primitive.js @@ -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'); } \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/primitive/items.primitive.js b/kubejs/startup_scripts/tfg/primitive/items.primitive.js index 2d2888bbb..eca21bec9 100644 --- a/kubejs/startup_scripts/tfg/primitive/items.primitive.js +++ b/kubejs/startup_scripts/tfg/primitive/items.primitive.js @@ -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")