This commit is contained in:
2025-12-19 09:16:42 +01:00
parent 29bf2531cb
commit 02f84d0b48
3 changed files with 62 additions and 673 deletions

View File

@@ -110,3 +110,51 @@ ServerEvents.recipes(event => {
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.cutter('tfg:cut_engineering_lubricant')
.itemInputs('tfg:engineering_wafer')
.itemOutputs('8x ae2:printed_engineering_processor')
.inputFluids(Fluid.of('gtceu:lubricant', 84))
.duration(900)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.cutter('tfg:cut_calculation_water')
.itemInputs('tfg:calculation_wafer')
.itemOutputs('8x ae2:printed_calculation_processor')
.inputFluids(Fluid.of('minecraft:water', 338))
.duration(1800)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.cutter('tfg:cut_calculation_distilled_water')
.itemInputs('tfg:calculation_wafer')
.itemOutputs('8x ae2:printed_calculation_processor')
.inputFluids(Fluid.of('gtceu:distilled_water', 254))
.duration(1350)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.cutter('tfg:cut_calculation_lubricant')
.itemInputs('tfg:calculation_wafer')
.itemOutputs('8x ae2:printed_calculation_processor')
.inputFluids(Fluid.of('gtceu:lubricant', 84))
.duration(900)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.cutter('tfg:cut_logic_water')
.itemInputs('tfg:logic_wafer')
.itemOutputs('8x ae2:printed_logic_processor')
.inputFluids(Fluid.of('minecraft:water', 338))
.duration(1800)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.cutter('tfg:cut_logic_distilled_water')
.itemInputs('tfg:logic_wafer')
.itemOutputs('8x ae2:printed_logic_processor')
.inputFluids(Fluid.of('gtceu:distilled_water', 254))
.duration(1350)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.cutter('tfg:cut_logic_lubricant')
.itemInputs('tfg:logic_wafer')
.itemOutputs('8x ae2:printed_logic_processor')
.inputFluids(Fluid.of('gtceu:lubricant', 84))
.duration(900)
.EUt(GTValues.VA[GTValues.MV])
})

View File

@@ -1,539 +1,11 @@
From 741950beaacbb4363e1fb96770f2cf580f68d113 Mon Sep 17 00:00:00 2001
From: Jika <vandechat@tutanota.com>
Date: Mon, 8 Dec 2025 20:41:13 +0100
Subject: [PATCH] Port gregitas certus to waffer chain
---
.../textures/item/calculation_wafer.png | Bin 0 -> 6075 bytes
.../kubejs/textures/item/certus_boule.png | Bin 0 -> 5887 bytes
.../kubejs/textures/item/certus_wafer.png | Bin 0 -> 6135 bytes
.../textures/item/engineering_wafer.png | Bin 0 -> 6102 bytes
.../kubejs/textures/item/logic_wafer.png | Bin 0 -> 6094 bytes
kubejs/assets/tfg/lang/en_us.json | 13 +-
.../server_scripts/ae2/certus_wafer_chain.js | 121 ++++++++++++++++++
.../startup_scripts/ae2/certus_materials.js | 37 ++++++
kubejs/startup_scripts/ae2/materials.js | 4 +-
.../gtceu/material_modification.certus.js | 7 +
kubejs/startup_scripts/tfg/element.certus.js | 8 ++
kubejs/startup_scripts/tfg/items.certus.js | 20 +++
12 files changed, 207 insertions(+), 3 deletions(-)
create mode 100644 kubejs/assets/kubejs/textures/item/calculation_wafer.png
create mode 100644 kubejs/assets/kubejs/textures/item/certus_boule.png
create mode 100644 kubejs/assets/kubejs/textures/item/certus_wafer.png
create mode 100644 kubejs/assets/kubejs/textures/item/engineering_wafer.png
create mode 100644 kubejs/assets/kubejs/textures/item/logic_wafer.png
create mode 100644 kubejs/server_scripts/ae2/certus_wafer_chain.js
create mode 100644 kubejs/startup_scripts/ae2/certus_materials.js
create mode 100644 kubejs/startup_scripts/gtceu/material_modification.certus.js
create mode 100644 kubejs/startup_scripts/tfg/element.certus.js
create mode 100644 kubejs/startup_scripts/tfg/items.certus.js
diff --git a/kubejs/assets/kubejs/textures/item/calculation_wafer.png b/kubejs/assets/kubejs/textures/item/calculation_wafer.png
new file mode 100644
index 0000000000000000000000000000000000000000..b2192d49600c2fcc9478ae5aa833791ae535fb73
GIT binary patch
literal 6075
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
OWT2<3pUXO@geCxERaFK6
literal 0
HcmV?d00001
diff --git a/kubejs/assets/kubejs/textures/item/certus_boule.png b/kubejs/assets/kubejs/textures/item/certus_boule.png
new file mode 100644
index 0000000000000000000000000000000000000000..1706a26525644cc129b0a694dc4f4fae30c23c1a
GIT binary patch
literal 5887
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
literal 0
HcmV?d00001
diff --git a/kubejs/assets/kubejs/textures/item/certus_wafer.png b/kubejs/assets/kubejs/textures/item/certus_wafer.png
new file mode 100644
index 0000000000000000000000000000000000000000..c27fb674d0de8642dbe8bc40ebfdeb571e135903
GIT binary patch
literal 6135
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
X{rd+OS8aWF4`iUHtDnm{r-UW|`T~q&
literal 0
HcmV?d00001
diff --git a/kubejs/assets/kubejs/textures/item/engineering_wafer.png b/kubejs/assets/kubejs/textures/item/engineering_wafer.png
new file mode 100644
index 0000000000000000000000000000000000000000..2a3b34bf1f30756074b074444917c043100f7c9c
GIT binary patch
literal 6102
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
F0syb6h&KQL
literal 0
HcmV?d00001
diff --git a/kubejs/assets/kubejs/textures/item/logic_wafer.png b/kubejs/assets/kubejs/textures/item/logic_wafer.png
new file mode 100644
index 0000000000000000000000000000000000000000..5222fb8863d5ccd8a1985e31c4b04c2923f763e5
GIT binary patch
literal 6094
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s-H&um1lmsP~D-;yvr)B1(
zDwI?fq$;FVWTr7NRNPt{o>^q9$@BNT<}(hDB*Ei}YiCKH`S^TeiF(<b8qc&lPuaK?
zk5o@Ou<ZZm?*{b`5Bp@z>6Z%P5R;!C^Qfoq*58w_eXp(k{xfm?x#l}}n0Y2HnEE&P
z@WuU4Qsi|4-OlefUh<V^%JIf0eYLelC1R6a3NF6fx3GkV^F5;#+oyZecs(Eg)}6BN
zcG+8(@7K><UomIdnd!FQ{@iw5aNXvb;4?iHvHXb}WGDO-RhDGla*wks!0CS1@!Op8
z{tPFy=e*;eW}3X~Rh*XXhNAB;w%)PX{Pf3)6T&AR=Ea}l{ds+j&WrnN-+cM<Balz#
z@wXS8e_8)!SY4a9vHK0v0>1R%>tSL1RSOQEU3&GvR)*P(hD$P@PyV2>XqS@6thL)7
ztenzu@Q8wYuMzL7)oVi@E_$42vFLD2<g@_QqDNYj?ak$-WK=zcSx=T;<TJ~U&(NKn
zW14Mx^i=PHQ!L3Xn)Y>P{MCC5gBwr0>J|NyG%w+B@5wtg&b&PrEEfD?{qWVMUTr-S
z+h3Q;Wgbi$QfF(-yQkHtvxv1z?(I3puD22lE)lm5OQy6bZ*Y60IidH=L=Fcnj#CA5
zj}|gAKe08pILY^tHE+uEOEZKrS8hu0;C-TzmT<^>0!QAYlnGDgxc_lk-m&n_QS0}$
zA1<!;w`1qj`yt@OvsvSr#>JU0k~<8ud<<8w2wv~Fc$M1O&dCcheu)J6%nCXsnVlAK
zZpPe&6N(=y9Tm;@(%6{csT$tmUwZX=K=RdDS$TJsEUepdA?fn8sCQQcz3!IYckYj^
zepRV(rESK;Hu=OO3zd6oHkW1m{qU#3)N0Mgq%5stvrRpc_xN1UQLigvJ9NW>>2YCD
zL&LL^Gee8|)Qcw@&kp!^#CXn^$(!9K8ydW@+9+RAm|kIQHS@Rso|!M?DjwfAN>?kj
zPkE=Dzdj=Sv&5?IjdNRtL$puW^^~7oQz=&_ANBd>0sq_oZ(iWY^V+dMqHdM#iX7EB
zHD8-2{anf~Kg}%oRt2Z9VouxV77nk2%T-;r{M?fs-W?Ks*J;~Z%_#P(d$xrIy}kO*
z^V{yVTej3@Z?*1wF;ms8#xK)JGn<!hV!4Hn*X?_O!SiIVI9{!r<G*8$Y_P?qJ518j
zs(13XwcaXxC3DzzPt#Y^sI<dV*9BO|8D#5A&vL1{<9YJ^O$$}_bLTcZ%!|wtb$;0M
z^24^1a<4ge>TX%CS#&?&va3CBiYR+VZ}dX<lUe(Y=7;Zdn6g8*wSQ;M`@&l$`O~g%
z-6{9!X_@|{mpfvY&%E${;jz-(D~JDgBxm%8i1*lYD=Tf0S2FU7wB0Od^VIuODs%d@
z{_}wms~Xnd*tXkm+g}Ct3rUsDGw1R~d-_gzTz=)<{STsEr!BfXZk^_^K0AN;+{(7C
z&%3oa!?Q9pk3WrEovvTvzcqJ@m11GR`8Z~c_;#jhD+?1ptFxzn%L!E{sYb7C{^@W`
z@^D(Cz}J+vAnq-`w<F4uDpD4^&Eb9R?se_8XT(}{wQPaQb8M5M`5PL|8+Nefe%^8U
z?Sr;+iHl2Rgi6)p!cx=wey{k%erL1tgg;tLax?SQ>k6-$tL8E9*!X77rytV`T@Tv4
z{K1mt#I}2`*3EOb&#Qgt{g*9Y<+APG#5oiFWp7(>{nHLVt8TaZt^4IemCUUxzOzSP
zne*nlTas*M(k3t6X-A%hpOy^jQ@pw{{rki!pAx4(3Xh)MUn;!z+oPi;H=XYI{L!>I
z@M7cAxXYb~Ph1h6dn!`n?a3W0rOT)P5Y7=(^?jirlYKmX9rruNSt>7AM!ss>QBhs;
zyX@5KKO5B_>3fL(cQ5zPp7-ZiZDM1xa~-qO`Yl_hGn+2Ap8R|2mhioN;W;~!nIadd
z8{S`j?)9}AnTit|y<eQVYPtMyZ64dQ-%Dz{g5HE(D&JUn_ys>#zeHWYE}7nEzcp&^
z&bsgSXX-+W0@XSH-~MOa?kFi75c<r3fq}OyGbExU!q>+tIX_n~F(p4KRj(qqfB^(-
z>?;Zqle1Gx6p~WYGxKbf-tXS8q>!0ns}yePYv5bpoSKp8QB{;0T;&&%T$P<{nWAKG
z$7NGtRgqhen_7~nP?4LHS8P>bs{}UJDzDfIB&@Hb09I0xZL1XF8=&BvUzDm~qGzIK
zpzB(ZS!SeU$E9FXl#*r@<l+W3q9`TJRw<*Tq`*pFzr4I$uiRKKzbIYb(9+UU-@r)U
z$Vj&+B~7=uGOr}DLN~8i8Ds>+442g6<f6=ilFa-(1(2DEN%^HEwn|D|3JMBP!z*$N
ze0|}@=M_UkAvr%+zap_f-%!s$KQ~t&Sx0e+Ygq|?9mOG)1*!T$sm1xFMaikIWvO{3
z%E(5fB*XO=losWHy_1rxpPG}Jo0?ZrtZ%4ih+?I?r*8mU2Pg>AGjj{Tx+-!DP*j#=
zrXd0g#Wx@suy>FhQjuE#Hy1@U%<o{u;4rds$xki?InUF@RtaRkRZ4zxW{MS<nV4j5
zl4_iqq??qKn5=7(W^SaLm~3RKYiVI=WM-IZmS|>bhGdjyUU5lcUUDkPsEXVIz0AxM
zt0be8MB@~LRNW+#lw@5K3nOD)3llSQU5iw+M5DB%)Few2OC%%wi!#$Q^AdBAT?H~K
zB{Rj!G{xM=!qPBV*F4R@NY}(9$xt`RC^1zxHQB<<&@j!!I5jZ^Y*b3Jm0NyMZeoe8
zQf6*qda8awUOHF;6yR2l0iL!>MtTMak${}UlC=DyTwA5^%)FHR@?wNkNM>$oa7iL4
zJPpka42&%d4NZ(KEsV@8jSz~$Qj3Z+^YcKa8XD*sLxKbpF;@OXnW=dtiJ+8ft7Hh)
zQIT6<<y@4SSdw29lAoVrs|0eCf{~sf#6ciw-_(-Cl*E!mm&B4(TO}g{BV#K=Ln}ke
z5JLki15+y#BW(jCD+46;`6-!cm4sB=fwG4UB+@-Hi%as0D#1dKJQbW;2;o7vIhi2U
z3JMC~Y+;p{4Dmv7Vp%FAjNwwr8Hsu6sVTNf&;$$9l8GfT7@3+RC8Z>p>6)0O8tIyt
zCtK<!SteWPCRwDJCmC9%rkNy~g98a}dU1YQNqJ&Xs$+U;UWu)eduDC{III*jpi!lX
zs=hoU6%-E!M#j2^hPsF#Ggi`vc+W;3RARt<Yom`59uNgcMT{Mn0z@px#m$b(Mju?x
zfyz9HfuJ&nmKYijw6sD&Vbl_m!gn;dMuUr_5FknMXzCgbE|NlkB*mkti)z8eh3HJB
z=B3ywl`GlX@l5NfVqjokOY(MiVQ6LOU}$OG);WiPfq}EYBeIx*K~EWk87r3BmoYFf
zu$OrHy0Sm#7Up2p)-@DyXJBBF_H=O!u@GbwV0r%=)M29tGvd-6oK^fES#IsLUaV?a
zkQIU0FpXk@{0v&E$_!kboDA>&d}sK>T>PK$FC)W-X+0<gp>RN&IoR14l%ypYehcw4
z7>Y?Sd}H~?@Q0OwfuC7|;n~Aa3<r;IW>`N1VF(k*RuG117Ubn&kW-LlkP+f#`1N)h
z!*5n*2G;xA7(T!G!|?OnO9op#Lx$iCg!fRqAS*7)peQTDz$MJbAkD_j@a`iMgE%uk
z!$$^YhQIIsFmN$(FueKkih%)cEdvAC3n1GigasL-#6%gSxh^m;v9L1y|MQ=Lk%67z
z@82H`|Ns4A`1IeN;r`1941fRqV|e@V6T`3He;7ak3wMF0iV}mcoCE`xfC0n5uN(}Y
zZ!ThB`2PoN*+0g=47~q$G3bi@V>tO(k%66+6>I>=>u>}93v)7j{`ZIB*SVz(j10^S
z|Ni`BU}R!s_ycmm|Gx~EU#T;^`S^)}mH7|D*B?JXdchd(n_oZwGjM)mV))GB&%nYS
z%kcl-Uxt7Gelq<3{}+sPM6Wa0D?euV{pSzE-@pIBnn48E1t7mLFfjZN^NVE=;`q(*
z<JU6=M&|zv_de+{$a9@zIPpl4;rE}v-~jv2@Rxy+krC{FkO6QPfH=RuKVf+B=^De=
zKOY(X{`tl5{?liMfB*h4eEt3d9C%-U{AA!_XJ=pp2R%p!G!`IC1_n@U7^tg&o%!VD
zD+U&37KYE?zJd81Y;0gdKwelg6_Kow%z_vLG6ck8V`Tw{_O~BD8UFo;WQ%|Q{xPhZ
s-iM+Gg#*$E!!UzDe2|loZ3T%@4RZ;-{^44;!4YJjr>mdKI;Vst0IH~r?f?J)
literal 0
HcmV?d00001
diff --git a/kubejs/assets/tfg/lang/en_us.json b/kubejs/assets/tfg/lang/en_us.json
index eb772657..da888230 100644
--- a/kubejs/assets/tfg/lang/en_us.json
+++ b/kubejs/assets/tfg/lang/en_us.json
@@ -887,6 +887,11 @@
"item.tfg.flintlock_mechanism": "Flintlock Mechanism",
"item.tfg.advanced_clockwork_mechanism": "Advanced Clockwork Mechanism",
"item.tfg.certus_mechanism": "Certus Mechanism",
+ "item.tfg.certus_boule": "Certus Boule",
+ "item.tfg.certus_wafer": "Certus Wafer",
+ "item.tfg.engineering_wafer": "Engineering Wafer",
+ "item.tfg.calculation_wafer": "Calculation Wafer",
+ "item.tfg.logic_wafer": "Logic Wafer",
"item.tfg.small_bullet_casing": "Small Bullet Casing",
"item.tfg.large_bullet_casing": "Large Bullet Casing",
"item.tfg.shell_bullet_casing": "Shell Bullet Casing",
@@ -1116,6 +1121,12 @@
"material.tfg.refined_nuclear_residue": "Refined Nuclear Residue",
"material.tfg.mars_air": "Mars Air",
"material.tfg.liquid_mars_air": "Liquid Mars Air",
+ "material.tfg.certus": "Certus",
+ "material.tfg.trichlorocertane": "Trichlorocertane",
+ "material.tfg.dichlorocertane": "Dichlorocertane",
+ "material.tfg.chlorocertane": "Chlorocertane",
+ "material.tfg.certus_tetrachloride": "Certus Tetrachloride",
+ "material.tfg.certane": "Certane",
"material.tfg.certus_regolith": "Certus Regolith",
"material.tfg.goethe_regolith": "Goethe Regolith",
"material.tfg.bright_regolith": "Bright Regolith",
@@ -4650,4 +4661,4 @@
"quests.tfg_tips.tools_tips.concrete_roads.title": "Concrete Roads",
"quests.tfg_tips.tools_tips.concrete_roads.subtitle": "Almost worth all the effort.",
"quests.tfg_tips.tools_tips.concrete_roads.desc": "&6Wet concrete mix&r can be applied to base course to create roads which give a &b&l30%%&r&r bonus to movement speed. \n\n&4Be careful&r when creating concrete roads. There are a lot of rules to follow to make sure you don't end up with cracked or ruined surfaces. Consult the &3Field Guide&r for detailed instructions."
-}
\ No newline at end of file
+}
diff --git a/kubejs/server_scripts/ae2/certus_wafer_chain.js b/kubejs/server_scripts/ae2/certus_wafer_chain.js
new file mode 100644
index 00000000..815cbd97
--- /dev/null
index f877f7a2..c53d8ecb 100644
--- a/kubejs/server_scripts/ae2/certus_wafer_chain.js
+++ b/kubejs/server_scripts/ae2/certus_wafer_chain.js
@@ -0,0 +1,112 @@
+// Certus wafer processing chain extracted from the original AE2 recipes patch.
+ServerEvents.recipes(event => {
+ // Remove legacy processor print recipes (inscriber and forming press variants)
+ event.remove({ id: 'ae2:inscriber/engineering_processor_print' })
+ event.remove({ id: 'ae2:inscriber/calculation_processor_print' })
+ event.remove({ id: 'ae2:inscriber/logic_processor_print' })
+ event.remove({ id: 'ae2:printed_calculation_processor' })
+ event.remove({ id: 'ae2:printed_calculation_processor_moon' })
+ event.remove({ id: 'ae2:printed_engineering_processor' })
+ event.remove({ id: 'ae2:printed_engineering_processor_moon' })
+ event.remove({ id: 'ae2:printed_logic_processor' })
+ event.remove({ id: 'ae2:printed_logic_processor_moon' })
+
+ // Certus chemistry
+ event.recipes.gtceu.electrolyzer('tfg:certus_quartz_electrolysis')
+ .itemInputs('ae2:certus_quartz_dust')
+ .itemOutputs('tfg:certus_dust', 'gtceu:silicon_dioxide_dust')
+ .duration(20 * 40)
+ .EUt(GTValues.VA[GTValues.MV])
+
+ event.recipes.gtceu.chemical_reactor('tfg:trichlorocertane')
+ .itemInputs('tfg:certus_dust')
+ .inputFluids(Fluid.of('gtceu:hydrochloric_acid', 3000))
+ .outputFluids(Fluid.of('tfg:trichlorocertane', 1000), Fluid.of('gtceu:hydrogen', 2000))
+ .duration(40)
+ .EUt(GTValues.VA[GTValues.MV])
+
+ event.recipes.gtceu.chemical_reactor('tfg:dichlorocertane')
+ .inputFluids(Fluid.of('tfg:trichlorocertane', 2000))
+ .outputFluids(Fluid.of('tfg:dichlorocertane', 1000))
+ .itemOutputs('ae2:certus_quartz_crystal')
+ .duration(40)
+ .EUt(GTValues.VA[GTValues.MV])
+
+ event.recipes.gtceu.chemical_reactor('tfg:chlorocertane')
+ .inputFluids(Fluid.of('tfg:dichlorocertane', 2000))
+ .outputFluids(Fluid.of('tfg:chlorocertane', 1000), Fluid.of('tfg:certus_tetrachloride', 1000))
+ .duration(40)
+ .EUt(GTValues.VA[GTValues.MV])
+
+ event.recipes.gtceu.chemical_reactor('tfg:certane')
+ .inputFluids(Fluid.of('tfg:chlorocertane', 2000))
+ .outputFluids(Fluid.of('tfg:certane', 1000), Fluid.of('tfg:dichlorocertane', 1000))
+ .duration(40)
+ .EUt(GTValues.VA[GTValues.MV])
+
+ // Boule and wafer fabrication
+ event.recipes.gtceu.electric_blast_furnace('tfg:certus_boule')
+ .itemInputs('gtceu:silicon_wafer')
+ .inputFluids(Fluid.of('tfg:certane', 16000))
+ .itemOutputs('tfg:certus_boule')
+ .blastFurnaceTemp(1800)
+ .duration(1600)
+ .EUt(GTValues.VA[GTValues.MV])
+
+ event.recipes.gtceu.cutter('tfg:cut_certus_boule_water')
+ .itemInputs('tfg:certus_boule')
+ .itemOutputs('16x tfg:certus_wafer')
+ .inputFluids(Fluid.of('minecraft:water', 45))
+ .duration(600)
+ .EUt(48)
+
+ event.recipes.gtceu.cutter('tfg:cut_certus_boule_distilled_water')
+ .itemInputs('tfg:certus_boule')
+ .itemOutputs('16x tfg:certus_wafer')
+ .inputFluids(Fluid.of('gtceu:distilled_water', 34))
+ .duration(450)
+ .EUt(48)
+
+ event.recipes.gtceu.cutter('tfg:cut_certus_boule_lubricant')
+ .itemInputs('tfg:certus_boule')
+ .itemOutputs('16x tfg:certus_wafer')
+ .inputFluids(Fluid.of('gtceu:lubricant', 11))
+ .duration(300)
+ .EUt(48)
+
+ event.recipes.gtceu.laser_engraver('tfg:engrave_engineering_certus')
+ .itemInputs('tfg:certus_wafer')
+ .notConsumable('ae2:engineering_processor_press')
+ .itemOutputs('tfg:engineering_wafer')
+ .duration(900)
+ .EUt(GTValues.VA[GTValues.MV])
+
+ event.recipes.gtceu.laser_engraver('tfg:engrave_calculation_certus')
+ .itemInputs('tfg:certus_wafer')
+ .notConsumable('ae2:calculation_processor_press')
+ .itemOutputs('tfg:calculation_wafer')
+ .duration(900)
+ .EUt(GTValues.VA[GTValues.MV])
+
+ event.recipes.gtceu.laser_engraver('tfg:engrave_logic_certus')
+ .itemInputs('tfg:certus_wafer')
+ .notConsumable('ae2:logic_processor_press')
+ .itemOutputs('tfg:logic_wafer')
+ .duration(900)
+ .EUt(GTValues.VA[GTValues.MV])
+
+ event.recipes.gtceu.cutter('tfg:cut_engineering_water')
+ .itemInputs('tfg:engineering_wafer')
+ .itemOutputs('8x ae2:printed_engineering_processor')
+ .inputFluids(Fluid.of('minecraft:water', 338))
+ .duration(1800)
+ .EUt(GTValues.VA[GTValues.MV])
+
+ event.recipes.gtceu.cutter('tfg:cut_engineering_distilled_water')
+ .itemInputs('tfg:engineering_wafer')
+ .itemOutputs('8x ae2:printed_engineering_processor')
+ .inputFluids(Fluid.of('gtceu:distilled_water', 254))
+ .duration(1350)
+ .EUt(GTValues.VA[GTValues.MV])
+
+ event.recipes.gtceu.cutter('tfg:cut_engineering_lubricant')
@@ -110,3 +110,51 @@ ServerEvents.recipes(event => {
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.cutter('tfg:cut_engineering_lubricant')
+ .itemInputs('tfg:engineering_wafer')
+ .itemOutputs('8x ae2:printed_engineering_processor')
+ .inputFluids(Fluid.of('gtceu:lubricant', 84))
@@ -582,129 +54,3 @@ index 00000000..815cbd97
+ .duration(900)
+ .EUt(GTValues.VA[GTValues.MV])
+})
diff --git a/kubejs/startup_scripts/ae2/certus_materials.js b/kubejs/startup_scripts/ae2/certus_materials.js
new file mode 100644
index 00000000..7ff6590d
--- /dev/null
+++ b/kubejs/startup_scripts/ae2/certus_materials.js
@@ -0,0 +1,37 @@
+// priority: 0
+"use strict";
+
+// Additional AE2 materials for the certus wafer chain
+GTCEuStartupEvents.registry('gtceu:material', event => {
+ event.create('tfg:certus')
+ .gem()
+ .dust()
+ .iconSet(GTMaterialIconSet.CERTUS)
+ .color(0xc5e3de)
+ .element(GTElements.get('certus'))
+
+ event.create('tfg:trichlorocertane')
+ .liquid()
+ .color(0xb1d9f0)
+ .components('1x tfg:certus', '1x hydrogen', '3x chlorine')
+
+ event.create('tfg:dichlorocertane')
+ .liquid()
+ .color(0x90cfd1)
+ .components('1x tfg:certus', '2x hydrogen', '2x chlorine')
+
+ event.create('tfg:chlorocertane')
+ .liquid()
+ .color(0xccede3)
+ .components('1x tfg:certus', '3x hydrogen', '1x chlorine')
+
+ event.create('tfg:certus_tetrachloride')
+ .liquid()
+ .color(0xccede3)
+ .components('1x tfg:certus', '4x chlorine')
+
+ event.create('tfg:certane')
+ .liquid()
+ .color(0xccede3)
+ .components('1x tfg:certus', '4x hydrogen')
+})
diff --git a/kubejs/startup_scripts/ae2/materials.js b/kubejs/startup_scripts/ae2/materials.js
index d4ab8056..1d7e47d3 100644
--- a/kubejs/startup_scripts/ae2/materials.js
+++ b/kubejs/startup_scripts/ae2/materials.js
@@ -11,7 +11,7 @@ const registerAE2Materials = (event) => {
GTMaterialFlags.CRYSTALLIZABLE,
GTMaterialFlags.DISABLE_DECOMPOSITION
)
- .components('1x unknown', '1x nether_quartz', '1x certus_quartz')
+ .components('1x nether_quartz', '1x certus_quartz')
.color(0x8f5ccb)
.secondaryColor(0x252f5a)
-}
\ No newline at end of file
+}
diff --git a/kubejs/startup_scripts/gtceu/material_modification.certus.js b/kubejs/startup_scripts/gtceu/material_modification.certus.js
new file mode 100644
index 00000000..a6df4d86
--- /dev/null
+++ b/kubejs/startup_scripts/gtceu/material_modification.certus.js
@@ -0,0 +1,7 @@
+// priority: 0
+
+// Adjust formulas for certus-based materials
+GTCEuStartupEvents.materialModification(event => {
+ GTMaterials.get('tfg:fluix').setFormula('?(CtSiO2)(SiO2)', true)
+ GTMaterials.CertusQuartz.setFormula('CtSiO2', true)
+})
diff --git a/kubejs/startup_scripts/tfg/element.certus.js b/kubejs/startup_scripts/tfg/element.certus.js
new file mode 100644
index 00000000..861d3994
--- /dev/null
+++ b/kubejs/startup_scripts/tfg/element.certus.js
@@ -0,0 +1,8 @@
+// priority: 0
+
+GTCEuStartupEvents.registry('gtceu:element', event => {
+ event.create('certus')
+ .protons(14)
+ .neutrons(18)
+ .symbol('Ct')
+})
diff --git a/kubejs/startup_scripts/tfg/items.certus.js b/kubejs/startup_scripts/tfg/items.certus.js
new file mode 100644
index 00000000..8d433101
--- /dev/null
+++ b/kubejs/startup_scripts/tfg/items.certus.js
@@ -0,0 +1,20 @@
+// priority: 0
+"use strict";
+
+// Certus wafer chain items
+StartupEvents.registry('item', event => {
+ event.create('tfg:certus_boule')
+ .texture('kubejs:item/certus_boule')
+
+ event.create('tfg:certus_wafer')
+ .texture('kubejs:item/certus_wafer')
+
+ event.create('tfg:engineering_wafer')
+ .texture('kubejs:item/engineering_wafer')
+
+ event.create('tfg:calculation_wafer')
+ .texture('kubejs:item/calculation_wafer')
+
+ event.create('tfg:logic_wafer')
+ .texture('kubejs:item/logic_wafer')
+})
--
2.52.0
diff --git a/kubejs/startup_scripts/gtceu/material_modification.js b/kubejs/startup_scripts/gtceu/material_modification.js
index 2f2c05b6..e1c32f83 100644
--- a/kubejs/startup_scripts/gtceu/material_modification.js
+++ b/kubejs/startup_scripts/gtceu/material_modification.js
@@ -436,7 +436,7 @@ const registerGTCEuMaterialModification = (event) => {
let zirconium_diboride = TFGHelpers.getMaterial('zirconium_diboride');
zirconium_diboride.setProperty(PropertyKey.BLAST, new $BLAST_PROPERTY(4500, "high", GTValues.VA[GTValues.EV], 2700, GTValues.VA[GTValues.HV], 12.5*20));
- GTMaterials.CertusQuartz.setComponents('1x unknown', '1x silicon', '2x oxygen')
+ GTMaterials.CertusQuartz.setComponents('1x certus', '1x silicon', '2x oxygen')
GTMaterials.GraniteRed.setComponents([])
GTMaterials.GraniteRed.setFormula("?")
}

View File

@@ -33,10 +33,9 @@ index 73a1c96e..5c7fac4c 100644
+ id: "6D4E21B4C1B0ACFB"
+ subtitle: "{quests.ae2.certane_chem_one.subtitle}"
+ tasks: [{
+ amount: 1000L
+ fluid: "tfg:trichlorocertane"
+ item: "tfg:trichlorocertane_bucket"
+ id: "4B7F0548E5C9B211"
+ type: "fluid"
+ type: "item"
+ }]
+ title: "{quests.ae2.certane_chem_one.title}"
+ x: -9.5d
@@ -49,10 +48,9 @@ index 73a1c96e..5c7fac4c 100644
+ id: "533D7E0B4C1F0B77"
+ subtitle: "{quests.ae2.certane_chem_two.subtitle}"
+ tasks: [{
+ amount: 1000L
+ fluid: "tfg:dichlorocertane"
+ item: "tfg:dichlorocertane_bucket"
+ id: "43A028F0B3BCE0F4"
+ type: "fluid"
+ type: "item"
+ }]
+ title: "{quests.ae2.certane_chem_two.title}"
+ x: -8.0d
@@ -65,10 +63,9 @@ index 73a1c96e..5c7fac4c 100644
+ id: "0E6BA12358D01D42"
+ subtitle: "{quests.ae2.certane_chem_three.subtitle}"
+ tasks: [{
+ amount: 1000L
+ fluid: "tfg:chlorocertane"
+ item: "tfg:chlorocertane_bucket"
+ id: "0BFB1E2F5629A971"
+ type: "fluid"
+ type: "item"
+ }]
+ title: "{quests.ae2.certane_chem_three.title}"
+ x: -6.5d
@@ -81,10 +78,9 @@ index 73a1c96e..5c7fac4c 100644
+ id: "5DA0B4E3FECBA611"
+ subtitle: "{quests.ae2.certane_loop.subtitle}"
+ tasks: [{
+ amount: 1000L
+ fluid: "tfg:certane"
+ item: "tfg:certane_bucket"
+ id: "33A4A6DCB77128C1"
+ type: "fluid"
+ type: "item"
+ }]
+ title: "{quests.ae2.certane_loop.title}"
+ x: -5.0d
@@ -190,4 +186,3 @@ index bcb4565e..0d104c78 100644
"quests.ae2.ae_processor.desc": "All three &eProcessors&r will be used extensively across Applied Energistics 2 recipes.\n\nThis also gives you a great opportunity to see how effective the &3Moon&r recipes can be for crafting them.\n\nBut in the end, the choice is yours — build your infrastructure where it suits you best.",
--
2.51.1.dirty