From 568db164303ad1029db998c45ae6eb90804e6973 Mon Sep 17 00:00:00 2001 From: Redeix Date: Tue, 9 Sep 2025 00:17:04 -0500 Subject: [PATCH] Dna syringes and stainless steel needle (#1759) Co-authored-by: Pyritie --- .../tfg/models/item/clean_dna_syringe.json | 40 ++++++++++++++++ .../tfg/models/item/dirty_dna_syringe.json | 40 ++++++++++++++++ .../tfg/models/item/filled_dna_syringe.json | 42 +++++++++++++++++ .../textures/item/dna_syringe_background.png | Bin 0 -> 468 bytes .../tfg/textures/item/dna_syringe_base.png | Bin 0 -> 205 bytes .../tfg/textures/item/dna_syringe_clean.png | Bin 0 -> 565 bytes .../tfg/textures/item/dna_syringe_dirty.png | Bin 0 -> 469 bytes .../tfg/textures/item/dna_syringe_empty.png | Bin 0 -> 464 bytes .../tfg/textures/item/dna_syringe_overlay.png | Bin 0 -> 191 bytes .../textures/item/stainless_steel_needle.png | Bin 0 -> 354 bytes kubejs/server_scripts/comforts/recipes.js | 2 +- kubejs/server_scripts/diggerhelmet/recipes.js | 4 +- kubejs/server_scripts/sacksnstuff/recipes.js | 8 ++-- .../server_scripts/tfg/recipes.bioreactor.js | 43 ++++++++++++++++++ kubejs/server_scripts/tfg/tags.js | 5 ++ kubejs/startup_scripts/tfg/items.js | 4 ++ 16 files changed, 181 insertions(+), 7 deletions(-) create mode 100644 kubejs/assets/tfg/models/item/clean_dna_syringe.json create mode 100644 kubejs/assets/tfg/models/item/dirty_dna_syringe.json create mode 100644 kubejs/assets/tfg/models/item/filled_dna_syringe.json create mode 100644 kubejs/assets/tfg/textures/item/dna_syringe_background.png create mode 100644 kubejs/assets/tfg/textures/item/dna_syringe_base.png create mode 100644 kubejs/assets/tfg/textures/item/dna_syringe_clean.png create mode 100644 kubejs/assets/tfg/textures/item/dna_syringe_dirty.png create mode 100644 kubejs/assets/tfg/textures/item/dna_syringe_empty.png create mode 100644 kubejs/assets/tfg/textures/item/dna_syringe_overlay.png create mode 100644 kubejs/assets/tfg/textures/item/stainless_steel_needle.png diff --git a/kubejs/assets/tfg/models/item/clean_dna_syringe.json b/kubejs/assets/tfg/models/item/clean_dna_syringe.json new file mode 100644 index 000000000..c8fb2dd97 --- /dev/null +++ b/kubejs/assets/tfg/models/item/clean_dna_syringe.json @@ -0,0 +1,40 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "tfg:item/dna_syringe_clean" + }, + "display": { + "thirdperson_righthand": { + "rotation": [0, 90, 40], + "translation": [0, 3, 1], + "scale": [0.4, 0.4, 0.4] + }, + "thirdperson_lefthand": { + "rotation": [0, 90, -40], + "translation": [0, 3, 1], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_righthand": { + "rotation": [0, 90, -20], + "translation": [1.13, 3.2, 0.25], + "scale": [0.6, 0.6, 0.6] + }, + "firstperson_lefthand": { + "rotation": [0, -90, 20], + "translation": [1.13, 3.2, 0.25], + "scale": [0.6, 0.6, 0.6] + }, + "ground": { + "translation": [0, 2, 0], + "scale": [0.5, 0.5, 0.5] + }, + "head": { + "rotation": [49, 4, -70], + "translation": [-9.75, -3.25, 1.75], + "scale": [0.4, 0.4, 0.4] + }, + "fixed": { + "rotation": [0, -180, 0] + } + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/item/dirty_dna_syringe.json b/kubejs/assets/tfg/models/item/dirty_dna_syringe.json new file mode 100644 index 000000000..366dcdcd6 --- /dev/null +++ b/kubejs/assets/tfg/models/item/dirty_dna_syringe.json @@ -0,0 +1,40 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "tfg:item/dna_syringe_dirty" + }, + "display": { + "thirdperson_righthand": { + "rotation": [0, 90, 40], + "translation": [0, 3, 1], + "scale": [0.4, 0.4, 0.4] + }, + "thirdperson_lefthand": { + "rotation": [0, 90, -40], + "translation": [0, 3, 1], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_righthand": { + "rotation": [0, 90, -20], + "translation": [1.13, 3.2, 0.25], + "scale": [0.6, 0.6, 0.6] + }, + "firstperson_lefthand": { + "rotation": [0, -90, 20], + "translation": [1.13, 3.2, 0.25], + "scale": [0.6, 0.6, 0.6] + }, + "ground": { + "translation": [0, 2, 0], + "scale": [0.5, 0.5, 0.5] + }, + "head": { + "rotation": [49, 4, -70], + "translation": [-9.75, -3.25, 1.75], + "scale": [0.4, 0.4, 0.4] + }, + "fixed": { + "rotation": [0, -180, 0] + } + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/item/filled_dna_syringe.json b/kubejs/assets/tfg/models/item/filled_dna_syringe.json new file mode 100644 index 000000000..75804ad56 --- /dev/null +++ b/kubejs/assets/tfg/models/item/filled_dna_syringe.json @@ -0,0 +1,42 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "tfg:item/dna_syringe_background", + "layer1": "tfg:item/dna_syringe_base", + "layer2": "tfg:item/dna_syringe_overlay" + }, + "display": { + "thirdperson_righthand": { + "rotation": [0, 90, 40], + "translation": [0, 3, 1], + "scale": [0.4, 0.4, 0.4] + }, + "thirdperson_lefthand": { + "rotation": [0, 90, -40], + "translation": [0, 3, 1], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_righthand": { + "rotation": [0, 90, -20], + "translation": [1.13, 3.2, 0.25], + "scale": [0.6, 0.6, 0.6] + }, + "firstperson_lefthand": { + "rotation": [0, -90, 20], + "translation": [1.13, 3.2, 0.25], + "scale": [0.6, 0.6, 0.6] + }, + "ground": { + "translation": [0, 2, 0], + "scale": [0.5, 0.5, 0.5] + }, + "head": { + "rotation": [49, 4, -70], + "translation": [-9.75, -3.25, 1.75], + "scale": [0.4, 0.4, 0.4] + }, + "fixed": { + "rotation": [0, -180, 0] + } + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/item/dna_syringe_background.png b/kubejs/assets/tfg/textures/item/dna_syringe_background.png new file mode 100644 index 0000000000000000000000000000000000000000..423714168fc0743111341d59e4816bed706620be GIT binary patch literal 468 zcmV;_0W1EAP)DlCi4dKoo|*k=t7)u*DV@`T!|xl2X*d-hfOhAHoN) zThdwGE+oaiz=&uQE6Z&bBA47k1#M)*KET=LCYRjRy|M#`nFI6v|3AY~BEtW!BuV7y z(aWCa)%x*xEW6zf^=N|Saw&lN_WWI}FJE~oUIA3&QMljltLybDzl&eI{QLo+fX@?@ zaM=ezASDcdh}^9>j-@;wk4J{Xp@;}tYtdRGBKHM8!daHFUa!$w%iE5KaPtq6BoW{D z6~O6qVmh75;cy^|BALx*ReaC$s5xd?Chd0nQ|Hp%b=_J5H5!d*wOVvK9RX_2lgXrV z&hs44^GMT_+8}kiU5qg}j)P@ca=Bbo5Cjz*MG<+P1CXXEz`KC&`#6pRfH4N!wy`Wr zw%e_GOYs+66WH(fve|6t^?H>^7>2m6%V03L2?I2eB#{zsHk%Yhp^P!gwr#aqt*STQ zf&m(Un$PDI3=oDP=kpn3j0(f>E(|~%$7ETC)>;;e#Xl$WR{a6E%}xZpTp@V?0000< KMNUMnLSTX{($Vk$ literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/dna_syringe_base.png b/kubejs/assets/tfg/textures/item/dna_syringe_base.png new file mode 100644 index 0000000000000000000000000000000000000000..a14de9b39a323ff22bc157fc504d2cd921022054 GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP_W+9 z#WBR9_wA&OyayC`SbW14E=ZR@Qoymypm~Ov@$uyzK}WrurM;)=y#C*{U6$e2%H-33 znfEcS-I{(RiaVL-cML;ZY_@8Q>nblLr!zd>*-UxHA)-o5X>R9kUYT`TfN7-`!-Zrq z!Qkw)2YZ)GEPlOr@svkFUM9~?lnefAzi0M4w;UHx3vIVCg!0N*)A AKmY&$ literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/dna_syringe_clean.png b/kubejs/assets/tfg/textures/item/dna_syringe_clean.png new file mode 100644 index 0000000000000000000000000000000000000000..235ca110cb1da53ebc3766a740e1f931f87a8025 GIT binary patch literal 565 zcmV-50?Pe~P)Dk+F*tQ4q#|PmYMDh}FhQgoxV(#lTfrBI@hKLKBQZ zkQ9PV%JeQaSJ~NEJU4~+AA}7F0gFK7urcg$#v+MaIE5@4^bTPx?y@GA#KM8c48wfi zd~ZHPgxQ;qt%FmIlbE0PJWn=O4FPPPU)^^c2Y`G&FP%<@GwTR0o}#vGTL8{lSLD+5 zThi%t0Mtr?SKmZZvEvMI@5M_=rBc|oE#JcldmldlC;&D8_qQQ(;~b=7f5|=_!TX=^ z>}rym4DkughKQ5c4wBSiuk&KNB?bZ{sbv~cG%Lpe+TLFBH1 zu34m+%l!u>y9d6($wiP$LqpnvLsUc%yh9vfC_yZ}l%Q~x(?RYfSB*-({dwQ_JV!a_ znDs=&y_ywnwOa1-=Qmy)@cF|V2dK5eqAM*daCxNw)Z9zq<#GYQ#lO#q4toF!;Mo8X zaVxJ^y~s|AjauDMNal$>2mcaXyC zo7;!O;gIoo%=N~ncfXEK^lfsJEqL?^BI0VbS|^3;^?G$M7_g_8a&Rs{L|ha_ZgO_o z+-Nj9*4paY>0SoQ*~Nnes@Ln`c^>zht+iF(_f`4JSLWY;qrxy`G#X8Xa}t})rb?UB`No*c`eX0|2eaINo#*9nthu4_00000 LNkvXXu0mjfPXpAB literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/dna_syringe_empty.png b/kubejs/assets/tfg/textures/item/dna_syringe_empty.png new file mode 100644 index 0000000000000000000000000000000000000000..df98c59e69f751477ff2f8d57418140db0b98a46 GIT binary patch literal 464 zcmV;>0WbcEP)Dl0R!AK^VrLInr5dHx?mWu?I>BrdbFaxLAZK?5=b{ z?ECe6N3_fPJF!GNpP3gXfR?RJ|0#LeAzHm|?ps(1we@#Rvn>$(8Ix8gTmo__&=0D%7* z7-P6zua{|>!gXD|KK;bE+j~(ikgPqk*^DF?Bp2K5b|Ix?r_-U7k`IqRK(d~JF@`}9 zECFD*+hM=oBhPaLLC`zYx7JoSI8W~P`;6mwF&d2+$1$XokW!-C?fzw8jA52#tV*6t zCQGe#Z#W#5Z@1Rs9HL0m6rShdARdp$y*$rxEY@11)oQ`_eI!YOlaCZd5dfgkXjCR^ zt+Cl`002pn{7F5Am}MEmFoaU7H2jyiG%&`{^E}Mwb2yGuHc?8U*=&kB@i7Ath9Mls zK~WS!DJ7IrB8nndYiq?P5U10rI3yqHE2T>6RpJi}J~Qtv91Egj(2N%V0000rJ5v$3(WqAcsa(@oT@&$6GK+t;{^3 zYsj@@`hqD+o=c{f=)aESV$!pIuJbKxZDQKoy39VqvNVTx=W-9cvrQ|npZ1_ea>C4& l*KWOS+5Z0ldkxbD#^~HL8ymGPdx4fSc)I$ztaD0e0ssY0L6!gj literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/stainless_steel_needle.png b/kubejs/assets/tfg/textures/item/stainless_steel_needle.png new file mode 100644 index 0000000000000000000000000000000000000000..7af3c9dac219560a32ad07587a2aa85e947a04c1 GIT binary patch literal 354 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wk0|TRo zr;B5VMQ`$-|NrfoRU0^u{rLG^|DwhIRd4Ov7>_hF$5eL$?{}L~idsculwA;jz8X3u=2dlzjO7KAvZGd4BZafUw&q6VkG{zHjer)MEyM z=3R?e^7Iw5?drdow573H2HuHlu(V#k>FfV~`+A8_TG5g~{Lrs`W%JAAgK3|e-PcP_ z)1SpGZVyy{_>JV{z}z+_wVYYGxoahq9tTNGG=0pZq1TX^mXMIpveUsiTK@8V4+c5z vBqOg4JWZ1>@yXk@g&JEM8?Rz~!o=`_@iJr4Mt>V%pfPy5`njxgN@xNA__dV< literal 0 HcmV?d00001 diff --git a/kubejs/server_scripts/comforts/recipes.js b/kubejs/server_scripts/comforts/recipes.js index 563c8820d..981d16f8d 100644 --- a/kubejs/server_scripts/comforts/recipes.js +++ b/kubejs/server_scripts/comforts/recipes.js @@ -13,7 +13,7 @@ const registerComfortsRecipes = (event) => { //sleeping bag event.recipes.tfc.damage_inputs_shapeless_crafting( - event.shapeless("comforts:sleeping_bag_white", [ "3x #tfc:high_quality_cloth", 'tfc:bone_needle' ]) + event.shapeless("comforts:sleeping_bag_white", [ "3x #tfc:high_quality_cloth", '#tfc:sewing_needles' ]) ).id('comforts:shaped/sleeping_bag_white'); event.shaped("comforts:hammock_white", [ diff --git a/kubejs/server_scripts/diggerhelmet/recipes.js b/kubejs/server_scripts/diggerhelmet/recipes.js index b9a9305bd..4b4400559 100644 --- a/kubejs/server_scripts/diggerhelmet/recipes.js +++ b/kubejs/server_scripts/diggerhelmet/recipes.js @@ -47,10 +47,10 @@ function registerDiggerHelmetRecipes(event) { }).id('tfg:shaped/auto_drink_modifier_rubber') event.recipes.tfc.damage_inputs_shapeless_crafting( - event.shapeless('diggerhelmet:silk_lining', ['tfcambiental:silk_cowl', '#forge:string', 'tfc:bone_needle']) + event.shapeless('diggerhelmet:silk_lining', ['tfcambiental:silk_cowl', '#forge:string', '#tfc:sewing_needles']) ).id('tfg:shapeless/diggerhelmet/silk_lining') event.recipes.tfc.damage_inputs_shapeless_crafting( - event.shapeless('diggerhelmet:wool_lining', ['tfcambiental:wool_hat', '#forge:string', 'tfc:bone_needle']) + event.shapeless('diggerhelmet:wool_lining', ['tfcambiental:wool_hat', '#forge:string', '#tfc:sewing_needles']) ).id('tfg:shapeless/diggerhelmet/wool_lining') } \ No newline at end of file diff --git a/kubejs/server_scripts/sacksnstuff/recipes.js b/kubejs/server_scripts/sacksnstuff/recipes.js index 0f71ec058..5bf5ed48a 100644 --- a/kubejs/server_scripts/sacksnstuff/recipes.js +++ b/kubejs/server_scripts/sacksnstuff/recipes.js @@ -64,7 +64,7 @@ const registerSNSRecipes = (event) => { B: 'sns:leather_strip', C: 'sns:unfinished_leather_sack', //D: 'minecraft:name_tag', - E: 'tfc:bone_needle' + E: '#tfc:sewing_needles' } ) ).id('sns:crafting/leather_sack') @@ -79,7 +79,7 @@ const registerSNSRecipes = (event) => { B: 'sns:leather_strip', C: 'sns:unfinished_leather_sack', D: 'minecraft:name_tag', - E: 'tfc:bone_needle' + E: '#tfc:sewing_needles' } ) ).id('sns:crafting/leather_sack_coil')*/ @@ -94,7 +94,7 @@ const registerSNSRecipes = (event) => { B: '#forge:leather', C: 'sns:unfinished_leather_sack', D: 'minecraft:name_tag', - E: 'tfc:bone_needle' + E: '#tfc:sewing_needles' } ) ).id('sns:crafting/ore_sack') @@ -121,7 +121,7 @@ const registerSNSRecipes = (event) => { B: 'sns:reinforced_fabric', C: 'sns:pack_frame', D: 'minecraft:name_tag', - E: 'tfc:bone_needle' + E: '#tfc:sewing_needles' } ) ).id('sns:crafting/frame_pack') diff --git a/kubejs/server_scripts/tfg/recipes.bioreactor.js b/kubejs/server_scripts/tfg/recipes.bioreactor.js index fe5da21c3..e62367aa7 100644 --- a/kubejs/server_scripts/tfg/recipes.bioreactor.js +++ b/kubejs/server_scripts/tfg/recipes.bioreactor.js @@ -189,5 +189,48 @@ function registerTFGBioreactorRecipes(event) { event.shapeless('tfg:casings/bioculture_rotor_primary', [ 'tfg:casings/bioculture_rotor_secondary' ]).id('tfg:shapeless/bioculture_rotor_secondary_to_primary') + + event.replaceInput({input: 'tfc:bone_needle'}, 'tfc:bone_needle', '#tfc:sewing_needles') + + event.recipes.gtceu.wiremill('tfg:stainless_steel_needle') + .itemInputs(ChemicalHelper.get(TagPrefix.pipeNormalFluid, GTMaterials.StainlessSteel, 1)) + .itemOutputs('tfg:stainless_steel_needle') + .duration(2*60*20) + .circuit(4) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.assembler('tfg:empty_dna_syringe') + .itemInputs( + ChemicalHelper.get(TagPrefix.ring, GTMaterials.StyreneButadieneRubber, 2), + ChemicalHelper.get(TagPrefix.pipeNormalFluid, GTMaterials.Polytetrafluoroethylene, 1), + ChemicalHelper.get(TagPrefix.rod, GTMaterials.Polytetrafluoroethylene, 1), + 'tfg:stainless_steel_needle' + ) + .inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 288)) + .itemOutputs('tfg:empty_dna_syringe') + .duration(4*60*20) + .circuit(4) + .EUt(GTValues.VA[GTValues.EV]) + .cleanroom(CleanroomType.CLEANROOM) + + event.shapeless('tfg:dirty_dna_syringe', [ + 'tfg:filled_dna_syringe' + ]).id('tfg:shapeless/filled_dna_syringe_emptying') + + event.recipes.gtceu.chemical_bath('tfg:ethanol_cleaning_syringe') + .itemInputs('tfg:dirty_dna_syringe') + .inputFluids(Fluid.of('gtceu:ethanol', 500)) + .itemOutputs('tfg:clean_dna_syringe') + .duration(10*20) + .EUt(GTValues.VA[GTValues.MV]) + .cleanroom(CleanroomType.CLEANROOM) + + event.recipes.gtceu.chemical_bath('tfg:hydrogen_peroxide_cleaning_syringe') + .itemInputs('tfg:dirty_dna_syringe') + .inputFluids(Fluid.of('gtceu:hydrogen_peroxide', 200)) + .itemOutputs('tfg:clean_dna_syringe') + .duration(10*20) + .EUt(GTValues.VA[GTValues.MV]) + .cleanroom(CleanroomType.CLEANROOM) //#endregion } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/tags.js b/kubejs/server_scripts/tfg/tags.js index 10c75cd65..034ae3f3a 100644 --- a/kubejs/server_scripts/tfg/tags.js +++ b/kubejs/server_scripts/tfg/tags.js @@ -78,6 +78,11 @@ const registerTFGItemTags = (event) => { 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:empty_dna_syringes', 'tfg:empty_dna_syringe') + event.add('tfg:empty_dna_syringes', 'tfg:clean_dna_syringe') + + event.add('tfc:sewing_needles', 'tfg:stainless_steel_needle') + //#endregion // #region Paper from wood diff --git a/kubejs/startup_scripts/tfg/items.js b/kubejs/startup_scripts/tfg/items.js index 8a84d7294..729dbfeca 100644 --- a/kubejs/startup_scripts/tfg/items.js +++ b/kubejs/startup_scripts/tfg/items.js @@ -233,6 +233,10 @@ const registerTFGItems = (event) => { .parentModel('tfg:item/aluminium_harvest_basket') .unstackable() + event.create('tfg:stainless_steel_needle') + .translationKey('item.tfg.stainless_steel_needle') + .unstackable() + //Fishing Nets event.create('tfg:fishing_net/wood') .translationKey('item.tfg.fishing_net.wood')