From 72ae40a2b4ae0a8f8a386fed5661704c6aa44d40 Mon Sep 17 00:00:00 2001 From: TomPlop Date: Mon, 1 Dec 2025 08:42:45 -0500 Subject: [PATCH] Rework Early Game Fuel (#2309) * Add materials and multiblock * try to fix conflict * Fix conflict * Fix conflict * Rework tungsten line (#5) * fix materials * Update Ostrum to core * Fix conflict * fix conflict * Fix fucking conflict * Upload more changes * Add more things * Introduce new gas fuel * Add Anthracite * Add Syngas early game and more modifications * More fixes * Add textures to fluid --- .../ostrum_linear_accelerator.json | 19 ++ .../machines/ostrum_linear_accelerator.json | 90 ++++++ .../item/ostrum_linear_accelerator.json | 3 + .../block/fluids/fluid.reformate_gas.png | Bin 0 -> 20054 bytes .../fluids/fluid.reformate_gas.png.mcmeta | 5 + .../textures/block/fluids/fluid.syngas.png | Bin 0 -> 19721 bytes .../block/fluids/fluid.syngas.png.mcmeta | 5 + kubejs/server_scripts/gregtech/recipes.js | 61 ---- .../gregtech/recipes.machines.js | 4 +- kubejs/server_scripts/tfg/early_power.js | 264 ++++++++++++++++++ .../tfg/nuclear/recipes.nuclear.js | 32 ++- .../tfg/nuclear/recipes.ostrum.js | 83 ++++++ kubejs/server_scripts/tfg/recipes.js | 2 + .../server_scripts/tfg/recipes.space_ores.js | 49 ---- kubejs/startup_scripts/gtceu/machines.js | 43 ++- kubejs/startup_scripts/gtceu/recipe_types.js | 17 +- kubejs/startup_scripts/main_startup_script.js | 1 + kubejs/startup_scripts/tfg/materials.js | 13 +- .../tfg/materials.power_rework.js | 54 ++++ 19 files changed, 609 insertions(+), 136 deletions(-) create mode 100644 kubejs/assets/tfg/blockstates/ostrum_linear_accelerator.json create mode 100644 kubejs/assets/tfg/models/block/machines/ostrum_linear_accelerator.json create mode 100644 kubejs/assets/tfg/models/item/ostrum_linear_accelerator.json create mode 100644 kubejs/assets/tfg/textures/block/fluids/fluid.reformate_gas.png create mode 100644 kubejs/assets/tfg/textures/block/fluids/fluid.reformate_gas.png.mcmeta create mode 100644 kubejs/assets/tfg/textures/block/fluids/fluid.syngas.png create mode 100644 kubejs/assets/tfg/textures/block/fluids/fluid.syngas.png.mcmeta create mode 100644 kubejs/server_scripts/tfg/early_power.js create mode 100644 kubejs/server_scripts/tfg/nuclear/recipes.ostrum.js create mode 100644 kubejs/startup_scripts/tfg/materials.power_rework.js diff --git a/kubejs/assets/tfg/blockstates/ostrum_linear_accelerator.json b/kubejs/assets/tfg/blockstates/ostrum_linear_accelerator.json new file mode 100644 index 000000000..5c213dc91 --- /dev/null +++ b/kubejs/assets/tfg/blockstates/ostrum_linear_accelerator.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "tfg:block/machines/ostrum_linear_accelerator", + "y": 90 + }, + "facing=north": { + "model": "tfg:block/machines/ostrum_linear_accelerator" + }, + "facing=south": { + "model": "tfg:block/machines/ostrum_linear_accelerator", + "y": 180 + }, + "facing=west": { + "model": "tfg:block/machines/ostrum_linear_accelerator", + "y": 270 + } + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/machines/ostrum_linear_accelerator.json b/kubejs/assets/tfg/models/block/machines/ostrum_linear_accelerator.json new file mode 100644 index 000000000..aed8c8b02 --- /dev/null +++ b/kubejs/assets/tfg/models/block/machines/ostrum_linear_accelerator.json @@ -0,0 +1,90 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "tfg:ostrum_linear_accelerator", + "texture_overrides": { + "all": "tfg:block/casings/machine_casing_mars" + }, + "variants": { + "is_formed=false,recipe_logic_status=idle": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_mars", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_emissive" + } + } + }, + "is_formed=false,recipe_logic_status=suspend": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_mars", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_paused", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_paused_emissive" + } + } + }, + "is_formed=false,recipe_logic_status=waiting": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_mars", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active_emissive" + } + } + }, + "is_formed=false,recipe_logic_status=working": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_mars", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active_emissive" + } + } + }, + "is_formed=true,recipe_logic_status=idle": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_mars", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_emissive" + } + } + }, + "is_formed=true,recipe_logic_status=suspend": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_mars", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_paused", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_paused_emissive" + } + } + }, + "is_formed=true,recipe_logic_status=waiting": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_mars", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active_emissive" + } + } + }, + "is_formed=true,recipe_logic_status=working": { + "model": { + "parent": "gtceu:block/machine/template/cube_all/sided", + "textures": { + "all": "tfg:block/casings/machine_casing_mars", + "overlay_front": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active", + "overlay_front_emissive": "gtceu:block/multiblock/gcym/large_centrifuge/overlay_front_active_emissive" + } + } + } + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/item/ostrum_linear_accelerator.json b/kubejs/assets/tfg/models/item/ostrum_linear_accelerator.json new file mode 100644 index 000000000..88514629b --- /dev/null +++ b/kubejs/assets/tfg/models/item/ostrum_linear_accelerator.json @@ -0,0 +1,3 @@ +{ + "parent": "tfg:block/machines/ostrum_linear_accelerator" +} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.reformate_gas.png b/kubejs/assets/tfg/textures/block/fluids/fluid.reformate_gas.png new file mode 100644 index 0000000000000000000000000000000000000000..115a2347d3635f389618d4ec13cc0736b633d6b9 GIT binary patch literal 20054 zcmeAS@N?(olHy`uVBq!ia0y~yU=UznU_QXX#K6F?**&j?fkA=6)5S5QV$RgPHz%o_ zoT|EP+id-fDc6`5?AA0AS$IO{iF9ggnMq-(GueQC8kNN!Bkr zRJdje=FNU}_x;Y}oBn^e|NnmCtbHYagJb^}+z_v{J7-*Hbe{X)_1?$74R}rqU0QzR z{@?SbE#lfXo-md%_;|i){{#PdsfpDLe%Jgb|8IPM*4ymtWrMSKO=6dE-k)c7zi!>@ zni z|3@Uf|KuI$EWLX@G3U#9=g@~QKl1+Bq1(kMKJWSIO%J|#**smRS=cul0Vm%sJ zXzYDq`=fB?zB3i!-2YbJj^5x@Irq72xt5*HcGmWnbst1>L#MLxU0J06IaA{F=4&Nf zHiikIlOI zYsC@Py_`SXSC<|UessHjcg(s?4NtFo%CCA=x&QR_c%5I(=QAY^Ju_CjSdk%>g=5zrw_Td+|voKJs|b$CFf+jGnXr$_$Jp@-0Hb6 zw}i*yqfnlmf9X-x?^X{^2N}M){M*CQK1|i6^skxOLOqqIJ6^1L`g)mQwYi6`be`3` z?0p#*_jp^xcGk{Sd13LOc8=HG@YVU=ZAB~i^envGR`OR^%vm$}*RyFmd%8V5d2N;* zbi7d)6V@H=#JfRLAm7HSY}uv;57jk=KiL08>Rb4`)mnJnofYsPv+Azx*{+a9Q=UEK z6MuIyY2(wMUMpFq72LfQW6m6T<6@9UiYkl1=1afRe+LJ$c3j<;BhOVNYP2q37?7>ncB=_l>^A<*FF1C;zf}{^Z}y&#UvKW^>joOJRL)C;ClA zr((~hZg0oizgD&^5!ti{poBLeK#qax=l$k|vN zTsH5S)nvN|TXs}?B%MfnshRd!>9t$5d+mng1N~~1$(maE_S5gS2R7SH2~10Wb$Irf zU408P51a~V{o2T#AZ=bO|NQ#8<@FKMD=#@uzw%&@{7z}huZ;f}DK^@D;8gT}%^2CS zk5~QoweMmFYaLH>XKwJUzqQqJ&3&!Cc55bY`Pr@>=~(~!;JNDf>vqSU$=!dG_cc*; z_Z{!1+jqlFmt;*@@$g!E|CfX2z3Zn;`H@&q!^Gde+Ud|F-A6_0?`J$dwSV9IiUTjJ z_yzLwCeJ-qWjyy^TtT|JT!M8#QTC1(0kSh@UM`>2dw9pYifc**@w+AJS>uJh`{EvBtd$-Q? z_CIe#{~Zug@;LoS{Y1>;gf{lcYZ%Y+m@s~K=sjKRl2Wn8%RJcY`HtY?FQ>n;s2$Jf<=f8kmtL(BT-3sT!}ImwBMvz(H!7tvIoxOR*L~fXoAcACa{1c& zh%NDE$D($r*1ua@gu-;eJyz9ehNE&9FqT);owh^qi_t#Z3NkEfflwxf(wy{Y23h9zf5-98@8SLeURuUavs^w`gYN{K4{dj}UR*E%Hf zmgCyog@@PpESnhE;Ix%z|KblPm4hn0-!?Cu@rz-t{pGbE4C8(=ns?b>SmLF}ckTdp zM*qPJ%T7&{IJ4zU5VNaWcdj5`^U}rYd?gwYA3rU9zgncvKPIWI{gT!@hD}Jz{0Q+aEHp1@mLT@2URe>JeLR^bcCeJvHnbWgyJ z&+z`1CE6AL7xHgzTFU&{V8vISxsEo!8cyucI_2-X`JRvq!^RtP*2wN-FTbd1u)w{g z(}v&n&b`e|>Ym4YLysEf7inx(N}N^g@;gF!#*fD~kIS8-?pUvl_#%94?Tz*NvFR@x zGBlPwT$vg<% zu4C(bp@>zsO<}rI+ft3<73xU0Dj=b2R%~ z>@=L`ReZ15;b-``@$}@aA6UJ%vN}y}YFbVzVv3+z2&|(V3i{dNn3& z*Q75qw|uZ}-5ptzapQ8+?-d`u@cv>*-q_~zV@nl-ouNuWq-xN=h3^aX(jpaW>$mF7 z71EMB=`#P<10#kqX1#Xt$g{cYYHkT}Mc+4^G`GNXX;Y8Q%x<|?QsUdA6Q67gi+dvf z&AVrXZ2R;bn~yKE(@3cbFI_zQdQJ23iclk4w#6Q&Ij`{sS6JDUZh73`C}+|2SgZ&EZ; zg5Gw8Woo2bvb?x{eO>btt2~WQJDQ^|th}#NvL?Z|NL!$2PA8+o$(Yp}jXar_eYtam z{rx+I`7_;%+fEd&>q-p|UnA|gXYZtvNW(Dio#6+SLKdD1a`@rQESFT9{mFU0`SuR| zq@7-_H5+{P1}XjKV%4p^chBpf-@%5i&^1eV*Y&=*b3a9Oinmzn+76+DUoD>sIq;rrT^Doq z?`s1Eg_oHRo@f=ac378j`hN zD@Zlm?Rt#1#_?l`f@>VqcZ$|uS5)~EtZM!3%@WPYirsAuQr(b{BztQ#m z-FNDth+Cgpqvs@VZp*#d^vkpKf|Z`_awkba?=`O=I(dgC#?+RD$JF0)sv2Wl0&7T%3 z>}-g<5&DINJmrr;e@8ezW z>!KV5+(L6B=U;Mi)Qgy(H#D~Nf&D;#27FIrfdpseC+GTal7ek=95Jq;=9bx9pepODexfPR!RoaE4jx;5)XrT|Up_$_`Y{I4b>f^LKYu?kKaA-lf5<>$&Rt ze71{C6)c_|@?>I!u~ zjjk=&I^&a#-&UO^&N>|loPo0spFJMut!ekVWv5N&)^_O+5!ZkFY9D)ee$9fMF5aNF z*3FB}Gy)b*-N?4m=}`7zw>dZ1XVo;!W0Np37f)BYer7t-d&W#t$8-4 zX7!gvxyP*T3g5AKy=n8=rsBA#94C%&KPxYCUFy1BS5iWZN6Y!_t)j4Rdv~k8|1vA) z%B;Y?&lWd*b=GT3ao9$7ma*P9eVlP-X72Pp=R4|)_OD)X!(i9rw^@g$6ii*daf|Hn zzkAC5rtV7l6y7RxRCVU0^SOt&g)fYfd($PXbWA)ViF19>>Fk;IW|P*O(W=y2zR&&D zlajfu2bIDj+!xzso?fC@vd?0H!;*ISyv2@<=30bv)Lf_PhpQz_mb{E%0= zy;bXOMq&2li$1G;M0XjM%f73g=EX8Mqa@tz)XE}>Z%Y@P4en*Ue`5P;ah;loPf>kW zo%SV5R@s#9?V5IdZsrR9DTgk}%H6qNeSiO#*t%tjTSbd6^TFs*imdYIAX8@kJuH)l$k-+G*H-4?P^ZM*B^t7-@J1yU0j<5S&?@A;Uieqov{ z^RhXrp5^Y9Jefl>JGU*mCSrW*#*Zz+flo#MzkYf8^`w{ky8>p;S~WAv*kY-m%_;%D zX_v44J9y14cFm!+4j!u=6+hf*7J0j9iGxI!Y9q_Di0}>U*&&N9!nTGdiAEi}w{*?+ zJ=^AV*kYotVBUr>sd85HfA>n?$L@cWx5%!b^1;7lm-3_x<){4E zD<7vXo3ia%u$5AB_TJRZ!C@7e3zP2e;=6t@-m6o2|l#vKBw@7~51CY4WF_*_&X+aX2{{hq^idWnFVs& zugaMoZ07Y*RaE$(UEbyT{shk&-@8@O$BMnCwjaG9x$20@|AsH~t`|)USyj?uopblx z6-^1#-ZgEv)^AC5mF4JaE|*j~6Y1(*)_FQ{Lx#e#o2OT4a-LnmuciK^=;a>s8D`Oc z7A&}WowG^tjN3P#SMjslo^RD8*+;a(T`fu3yT(3XgApcFI^}e3?8@9Z^j=vs! z%B)=RDqK?~X=A0>iv^Ejd*2*?C^74u>|w@lPiEM^c_sDz|JO^ht1n0dnFmU6>fU@? zaB6zpkEbHJ}+0p0C$F_Jwd0gmxe)c<-eII|ZIj<@(y7Nd;=aBFjw~LA| z7ss#N?EkxVW_kKj&b`@F@BFDOO4z<=kC?8Fjh0#A`9)Hf!)N{8zh~be9qVl+wi|t_ z&86eakG8Q_izoW_U+&a?wm#&XU)-{&gqJycBY9gH_3!TJWQ|rg^Rio#WcYI0`@{_` z7I7aFCQe`Z?(HSF=pzNsk`6Tdi;?&jqGL3@F>8uu*olw{K|&tk-V=niIl8-5c^@&_ z7_ux)`OECcp2~JReL+G%Y179r{o+*@^cJZahaXFwR9N14!K894plFmm%VPy zA5Oz-(&F1CxvyW+^tQfx>H6tZv8D;U#+k(jTekmtoY+4>J}@}ChtJ`K=j~lpT--sk z;?F-1dfD*M%tGGpyL(&E^X@tN^BWgtL}<_I5>`VRUGG)YqY%;wmMHke_w5mw9e7% zpE-Xi94Oou%4zqZ`9RGz_BqmCKdx`z9&uQ3P0sDKq?vD?79C{#y=qp{g2;a_KQ0WK z`Sxp#Uff!^HH6d)prQ zo_RN$%r)<^PfJ$5wo1@V?A)L0mnF>^q%RAYlm(k>Dee;F?+Mtra-!$|pMUROf3m1I z+(M@AQ;)%m>EDH?)i1xnUe470cYj^gHoFH8_RsO#q56$+%U^*rkCy-c`+uT(+?`1U zvR9Vwnl*3A4!<19l+!;Vruoai`W1cOSzf?oNA0;Ovs~3)1tf&kF0|utao&Ao8(+}; zh2{G?_TFwc>YlN_AjMu~{|1kZC#Q|%d*3*pRikN&vp;79qCz?&V5eDf7P^vAWs^Tf~O*jWCEpa8zNncC)Wr#W6c zb7q@_w!TTs!`=NGpS&tb>q}FrN()^6`Zx29^s`MLw{2mFeXkw7qV1pEpMV?3C){ma z?Zw)6^-;3q`}GAYPA&h-m&E@60E>#_-*t~_1MVeC7^Vnq{QP^VbJnX;>rLJJ*9iIb zoLqkQTy@`P+1bxtzx;Cg=cD_nOwQ|HF)K5q2mPyGzrJbThI=fV`~Ez(x3TwJzA;<4 zu6uo5o>c24pUf`#f1m4vH$5vc3X5ntq%Og3{^u6IxNCK@*PNq=>wm2eh!H>7tX?BC zKcn>_#|9psf?yGS?f55`+7DK)Tz#TK?cJd>XTBc)JFm5jRp88xY+HtNk(%`hMMuNd zwz2-GpKP6eQ%P~b{JFeb=W`r3PWjPl?sq(HGxIf;e{E~x(~lY#Jbdl7_TxqFtQom$ z(+_EWIBb!V5SkYnykEo3{e;}&Wi8@X+>ska^G|)&IB;U|E~&{&q;AjIXm;4*PeAUM z#2Kc|n+lu`o1L0_z;Np9vR@B-Kdjv#H7711HtVW+X<3s^LTmbuIQcIvQSMg-uO%*6 zaOYQZfehCM^@g_FM?NgqD0{O=_2a(l?VJ8QEO4mmQP|g^XTfK6l(|gn3y;^)jj8sw zGW++;kFnx8xqfX&c%Me?z4t*A_3Yo>ijTj)@5OC))>`$H%Ho)w=eybtP5J--b+pId ztRp`nUe*WhaS1+t?ac0tZ+oS*a5ztrC-d6%oklGj<((>sA|a$0_6H%w-nbYs{(-sfX8}SS+Rbrt8$z5*YZ0`7X`t|DlwIVTsl230hTe)HV>`(Va{C>K3^ldP$zwur= zv}Z%u{d3~eQwogrr}Is`^;J?vyQJ-ge(~vP)s5MY%IbqZtx@w7eCUy_x^Z&ll`Tn$ z$)7J6*}fFHV0_?H&C?mjI&_qGDsEz0oyvE%V_*0lmZt_h3ewj;3VwTf_1vuMk~ZoN zCf|SWDw=p+ZPtY2vuZyS+gmY|e(msZxK_IS)9t0RuT&ngmkX_))oN>#ZTg&Lox;6b zl{pJaGGen9try(J@A+ASW25n%bIKi)7S+!D;uzuOo9ngNV(|gSl_!H!#ag3w{w$Sv zt8{0Y;H+buB5yvsdU#Jbw4rrF-W=(I%2{(JOxRp3-4gqG+omrS>TB2*!m~(Mb`v+1I|BEd&S3_wCA^(%Ljk|e*NXfVdpDi^R(5wgD>a*&XtIKaX5b8 z-l`Ct6^nLT2~2Ig^=WzR>Oz)lkqWavd{*D8RmQY>tMPIBjcgMdmX{sp)M^iY6|R3j zZeL=m{mQLJc16uQTrRk4e({@))%E(lti9aeAK5?(C3cVbPoV`Pa2@g?ZE0 z#iZ^I-s-pYoNCr)t0NstYIv43SL`#Lyez8M=h2;->u=bVuh<$j=j@8v+;R33zxSFh zuL&IC*G(LrO?>C~>u;lT;-|_RyLAssly&|r)QPSA|F*uerbWN*;)XwgkJ%$K`ZJR5 zzGvKZq20c|x^(kN;q2*|h4+85Kguh68XS9j!c{G9#a*vNR#)wkyYC_qopySkmVD^% z{6^S1-nUoC-w+Uxb#P61zV+NQ{wG|&0}i?vOqk7+(0lg5 zVuLTPWxVkpZ2GO|v|L@I*|g-POw4Zm)}M33Jgx`F+A6-E^^os8-{-rrr56rvO?!RF zqpD)E)UC^pZm*Z^ag~?%)VnhIq|WR4SEq|;%=xEi{I{uX)kd#<=S8obP1?2a(B>n> z*ZwTX+Sz^l)i>9O?C*X3Ui`f)-?qH=*=DHNo1Jk*ea&UdxsR`fZsR`mSFHTj-o;Ko z9xmD0wpGLNsn|nrnH;m-%MQG8O}^f=NHRn&FN;a>q4&q`dONwfiySw$u86v$q_f>K z*yG*v`pTLgMON!m*LCPiyX(9TzI{igLHG~nKgXGK_ji5W;M%gvX1lJEshW)6QU#v* z<-4zYAGvF>AxC89<7s7~y>mXjE$ZyOBHwc2#nkmz54}-jYs_(O5jedv%4Tnjo{#bC z|8M_4S+*f`qGa>YiNP@{)6QsYbIp>!8_}yDyZ>I?lrr6@=*$I`O=q8#{@~$bKE$@4 z`#<|?ovA0Dx3F*QG5S*&Ui#Ic|51KJ{`-mB1Zwu|kYd>SZqC9pXJ#M%_3F{`@36H1 zZ~fW(<{ePjk@;LS*t28a_K;GAu*nai<$HfL+m-yiyJTwC_gR{Sz23>@YuGlQUDEd> zR{n&?tRIVQLbu%50~MMlbCJ+QyO1N;Vptyjxejd1xi4S-fBD|KgRCRW9-?k#XN8fxt8p)C* zZ{w*ea(Aox+x-6p2R>bNoY$7Ja4Exhe? zA}g_mcT@DX6Au-7<)>Tn~-(W*rm1adSS)F>y9KernIl5-sP+ zL45~g(x$C@(s|OotU4||g#A__eETCabAgv$l2UUu!R@?hlXfb(V{sEz%`l zZhcyR%H6}O=XQh&OuPT8dDAR=xo`33r)xe?GhTjN?o)$~{oC@V-@ZibnE!pZ{_}3f znJ$f56)n%38f)&o7rYa5*=WwQ1#F^>1{cpLczkh5ba3L>{BxU_VBNj90zbRUGLJDQ z%yv~c68153g592A-t~5U1uA6+yeDe->{D2yVe&4*T$Fk0&5gR38K)ahm>|C@(&OaC zIPXNyyk!dlPsn8Hr;A=qN;|hwYJu>z<;yZ(ubO7}rBkjedS(n8>*a3(uRs6X(0(oc zmt5S1(iNMv{%-MJ?HR2qbN|@kn#p!wIIB~Pc-dN;A71u+B)GuQSpV+@O^#bhyOP_J z1K+Cp@7z{gKmGmZH*NDzt++iSWtUYxN9U*at`3j(?7GT+%0*Fcrpw7Ek_$YoTq0Kq z|M?en=S#?q8C4%QCn&6PKfie6hFzh@J7dDqE$8tcyLqF0UMu&Mk@Jtppy={0}P3tcD`yXw}MT$W#}|AHy@ zwqNf<2aCAg{QWVj?PsYS`YD&Stv;%8HS_EJf?>PUSNC1hmHTkV%>Vb^_ErBvS(+az1*-WM7jBDKC9~5rbm>f+W1YW^s^V-`=&F>Qbzv_n zu9>0wJwW_$z~eBR^4a_*#^Rv@3CabIp<&{&lXo^O+RZ!Zw4!m+r1QUR=Ltpe8yl*s zX(|?X6?K1$UGi-HmV57~zq|5%@4K?A5xZiKe_CyjBrmn>$&~%3_xO%^e`r_H zT_ulpv@Lw{twByC?Zj6z9=~0;m6*g8FD~{vTB_uGd#AptcU;`-&`24vS1zZ&1>B4~ z>a-~{#BTkweLeAMQGM)3Q&}TUUOOYF#8`q|A=j#M+Y$iHsq{2x4U%v6--bp02) z_Suf(^ZpzTnkO>nM_mg;dMS&h&YI{mjbgbU_>ViUzs2=vOP<6+q5bpDuVs+iqrFwL z;&Zj4QN(<`6Q7!!t%k$)v4WUw5UPesStC zPb%O2^CFubl@)IBOj1 zQe83O_!TZKOT7N3aLyMp3^^HT@bu>4B474ts#4ct3fC;@&GQd_aBTO}V|$J;x2)`6 z%3E&glWLY7bzSg^*t>wFpRw=nyIy1FQfA?M=p-2Y|8@HFtQRxXoMWnAxyF_SY`(Jb z)U4)OI~gVO#HkU&ZjNf97ZdiM=smsQ&%5J~3%6`}*14$tKvSW}n*9Nq4JWnJADuXL zeZ#%Nm!FpKJlmU)r^7z;X8mT#ps?z&U`64i`voS=@BcphI59PDY3M1Z-3Xf**;dKu9nJ{>sWF0<6ikYHlpdAOXGVVUMjw3cGB;e zZ>`eDMe}soCe;T`5prIgD0t6TmhbSjoccAFFYKFdvgMgnw!Xj)L;Wctt@efHv6gCr z%i8|5H?A%Hex{5`z^`%ZgzOo~F)^7Jsy=^WmA^X9S(+h@_qf+5D&K>E}pJ zuEl{7M@}WHKjPHCS>?O8CDre))jcPb*5X~0mfgHAW8?i#GrD{BhTUwREkn;fN-=!i z?efX#_s!J>Qu7-(tu49D`a#F&gg~C@ozGfE?A@2MS4JLLZT()$^sYtjgEvalncuc2%&JaY ztkC_MZ}(Kn+~K1%?=0>Y?pGr9XJ%XSI;cP4SQWGPmqN~*-AOlEj_<0` zi55x~@{4VGB4bq4WDfkjVp4rAQQY`~!ZhnC+YUXfYMt;w=yylTInfT+BGZQ*J3cSX z=Dfb3qj}$~$$>i>F4UY^aVk6SY~a4Fmn3@*i~SJ#q`Ho$J4r`d&~Bdw@4T%X>-vqm z15P?zsC^v}AhGno>m{8xMN_7)e2_NPfHzXidWPXcz1Zbn8B@iY%MRx*i_CQ`O#Q+c zA$+!0E%%$+th?WrR4%aDxaEgsa{pcLD;iE;N`CLwQrdjVH~U^o%CE^^6_-4$Zs*Hy zQz=M#_sV|$s#llic`SV)ANKol_Oz-wf`KQeb*|yA&bjkCRp!R+y(f~@g-uQexvV?3 zD`D@|$C+WK*WMkz;2iaD$NjfA%2GQ{D>5D0B$(v0@ooJ+m5=9)H|rgc-C0~O*i`NJ zXYKc251dLrR4i)R?pUf59A-Al>aAJprH%_PK3QDqZ2cSZb4dxv#e z`mxkog)NU2Ihx}tHs#i?xa4zr(@Eo-{S!_KM1+6-^)h^tjp%RPRc8Og?ldO|y3Fmo zoaS~f#Dz;(ZbQ&QOU<5S-%Z;^V_ZZZUvbLuf3r}+z~@lH(YdK|uYbv{HHuOQ4OZOC z9r=IPk+(CJ->l2NIj7>!n>62^W7<+DcE>Q+_@;I3-w5Rv_r22;4LZGoU#{q`*)(s)fFLu|!fDre9_>x5z3Uda|Lm=A z3I#O=Gf#>vd}UxPu*%;jVp@&FUd|`q%c}Mqd*3_B>xN}0tM>H$n^;aK%uS!U`1GcC z`?y-q$>rU=5%M|j!dbRfFcu3JtX9~S@ulOPMRCC+DW1Al3U^|+>J%PN zczBfk+|iA<3})Tb+__R{uE)Gr7w3s~I!|(%B3v2Twe5(Cl=)HhR=Lo`s^dB;Z4E^} zS7Z)9a;iL{#QIsXf8$c~42!vZsj5@U_M~j{O$&2MvOGD{)w5td|89@_X9B0(*OT|K zFniZ_-`YcU#s;(_vjhRq_hYB%QM#KUnXpHvJ_K%euUE;`_Q^ zvHN}p9g**`zHw1vTg~^b757Aw+B}v=#u#6Z-dFu-`Z=BI3Fo?b^SaXW9`pq(%LcEw zFA&}x_r=CfXX=x}93AgH2P)@y$9|gnzAn(wtH1hq`FzXCel_1`ZmeChbyIn<^64ku z6W_=EGKl&4?&P!Uu|MDSE;+rv=KI`N8?GBxxB8pcd_QadY`6aVuLm>V-+#Efz4DZN z{?B*Q??2pq|7c*#iSl^ePKL^VdNrNqYU?AXJ4LNu$~S!_%ejT8Rar{Ij$+)GjdyZ@&A11>1Y=J^WEL)Qb!b~bT{SQzNdP> zw(@j&ePHy3!`7vfII1V7oi4Xm-&eipV2Jd$hRrNnET$Z6n0%r<->buKn_ZudyHoJ) zjtd%X`#;^?{fSY$P%+iSOfrlcV?jo-!{}?{w5if9~D?ba#BvYE$$3 zwNm%C&n`K=NA*uqc%E`<{jM)vy$N>ndGFim9uB^Ir86jY`mfr3)j#dr9G5IP@#wWl zUH|)iB9CnQYrYFT?hKnK$m+fU# z)T=d3AY#JfpX@c?H!54H*UnhUf3&>j`){R>cm3~wzPsA6=KTA$D<;MM35!nt_6W7oso^DnO!Qo8?lj#lR@o}3@=y6X>=uV232yypAf4M!6X zm)rmG|9JQKzr#|R$HN}D*L+WYwEO?cT+7Eom%@V&KWcmb@5!_2PnsU>U9CM?^7+H$ zeZRjxIKyf8XLZe=??2vgO3%F#T@iliZOG0u$$wQ^vNxJneBx%8_;Td>U!Et+@?3eJ zGoAZmUGsgZcl$oS!anNj*=~OM4|ns^<@OZ(Z+KtlyK#+!-S^`)-??(U_w!|H_domYSM$BQ%dtCnm4B}D zf`3aUsQW)mEI(Xs|H9UH)-1#Owt0UyX5Kncp6_<1df#uuk83tNH>-%>Z!R|!{+PNr zuYCTcFVk;akM~Qr|GqI{ySK#+-TQy%{CLOOXBz$|>e{@?@`Y0#|JWA1RiEqrn(Uor zc~hpRX-!_Fb|hlimdc2q@3aj?q%;!MtB;r0Pqe)I>8|jxI9%Xmk9VK@f4*D3<+H`Z(*_m$t}m{ca?|8!@zdSz z9HFlqWe=>|EYHN`p!kXR{@#X@Pp7?)%UN%BEAeo7eyxJNLC;BLCYV6-$^ZgS0 zB)+LvpEXoH-96pq?#H{+pX^reTeC-nCt= zxmzUYcg?K4AMbA7{JdlKZH=qC_iL9QN=V&TZF4Nz-sVcFz7Vr{!{+`U?>_6^w{3Z~ z@tH`S*hz)v-Hy@wepj9@kDuVaXM0*z)N<2{pT5_8*Siq))km)OL$|m|%%catPL;23 zb6g{LE-!NT{AH8hmmGM&aCwVr^s%O&eedJ^b1(mY|7iDiqbG(QsU4fe@7D@mV!Z$P zZo2fo-^Y?aHl-ag|0hyE{r$cPrdqB^r}BF8bF$wp=e_@TQo_DRyVt*NE;(_gFWTeO zmZ!VL4;@ow50g3jyrtOY-Y2PbrzD)Yj$h1={hzk4`g3>Dhq?8IM{3TO-+z+5)7mNM z+L4O22iR+?Cw)y}y|ZGj=Dyo0ad|hd#I!AWEAi`6XXfgkMJb=ZZCiV-{ONA-g+2HA z7n`pus9XPf-t1?d`TI``)%F~{eLUu8&)bzB3NEy7bNFz+YIbDmY0JD5yx)#TWv|=Q zXMHPkP4DDY>x|PnpIC(TE8X9F@7JbfzrWSr_#d0<^r2GrV)udBp?jQNj)}4HUES!m z>EUkv*<}?GKi_>mQf}Xq7r1*jzonB&v&oA1vyZ%fWX-C+u`b4t;oH5S<9R(VgTiV9 zew?Y!@a{}sa!vjI-f{tY>IyEPgkL}paq`H+0~#^-OJ&%X9O zQLg|0g7?8pr9X=pXG~6xo!cI$e{zq}kv8jn)zU`(of}TZPxD>!M)cYj>wUlTp6*uP z%S~#mxT1G2`%P%S?C;d_RPkojw+9C zPJ4gv%D&rG36FN4w-r=8)^fAvd-KnC$6L1WWs3OMd~a&H`6@d@X4N;PeZPxtT~WW? zqIE3n`iGmAAv)!qoZMfNSBKk}y!^|*>a5|#?@H%ZrCYhVCp~_qa`?j3_jO{yKU8@$ z?tZv?{&Szl;?%?C=Q}qa%=n{qRFAJ_L7P<6@_?yDS^=G2>raI&jG8F@=-_F!``l7r zXIxuY$k<)XKKWVS%I-?*cUL$>%4Z7gH?RA0`{$h8lU0YmHdpwD9EyChTb(7m_2g6m z8@D~P?@sxAUitoC&zSC9x8mIKikKK>Ng<{@$XBu-GOFcX&RpFfX z$2~6=LD@wF6t!{qI;_BuU@(o{&eSy^0a+EWjz@=LP;y8J)GOb_+BX>M@#65 z^VzC{Dv4*Kb(1{yWm_xBWV1T$o4u|zG_&2P{YZJfb<(xIlQrL+Vr*tB)c1vaD6V|E zyI;p|S$2$&&z*|9Hr{t1>pVP=<#;fp@AjIlD{SW0kFVI=!-L~(BT1oi6>WQaz zzR2BIy`A-JdHlTx6P4o?^Y``Ce7`);(ZGC#N%Q7E5hcr~WM$0~)Vwld`a1VF#cO7( z3RQD8Uwxi@z0xnE=d_i(2-}f|(ft-}Zf8qapX^rOd->DU3HcjUrB>`ev_|W08+*Lh z$Gi3>U!A@AR!i@z7U!*$&MepEcy+C>Uv>G`nTw@jyer}sZM(B=y3&60qtz-|$+LJ_ zQ+`~|H`w*>jd1DP9Hkw1_Nn*zY&I>`c>nWVY~zR3appDOt8BjS(4TeIzvg?P$!gOh zk4}~Qo22ATo92AzW$))rT5ny?pY3~ksyu$e`??&~yH#o(?HBh>%zO9RdfCdZBjx)q zyq&~(QTA+YoS@dx#s>l4etIWWi=OQJ`7XVGl6Cm9okzEqx4aQJx@}XLPUk6)n(uEm z{kZBMD9`lsUG?_pYgcc7xZ8fB{D0Z$a{J{Piv{l2PW|!j=QP`WF_9jeys>Fw?=vH> zP5iE^7<8t*-@s(gcia1)RtPP&ww~wMS@XT7Gv(3l>q#3!{@f~EcJ4$7*IJWK%lX@C zzDHei3aQz;O1NIMIZE?4yL(N}EdSrJWp>qjG|Zgln5c?hF0Y;9K4F zT2P(s)cWcCKi+kpC_f+WAYjF@aMqasora3C)8+Xh!3)bw&bn+Ad3iVG$?pBRuV$An z-m-JKz=p;1ck`sov3@co_3LUo4|6@HPg47&<7e$Tqa;%hYTmCOcsY5->~_WJmY-rL zdDeU{eX{#|_w^jVqSDNogXXT^A8&cMd%w%R-%6XZ4!`3HZwYu2>k=wZv_GyPMunSM zr$VQ{;>bZ6F}@({dt6WcZ@bp++iLmg?&KNMHm?ZTQt-R8=DVP@z|VKtE*IX%+UK(E zDXE(5{^IOR?)(03wGE;zPeKakXsiA0Roi*@4(GGo^@8_pW0Lb`70z5{C>pptrB?j& zUE?J@6W_;av_3eu-}PDeM78;OKi+MP_`!U$Zq?aIhWx^@kBv`CP1_%9wJ+9l&e6!4 z_huWNs&0#mxH`E#$no5(>Tai5uxmnxtoOxp8D*EJrri0J^v5E{YIS@6+8^&O`xHId z9j|CT@yF5RWSQU@C(7f)zEzog*S`N(>#1h4QTxY~U0UV~{~O-lyO?LQ;MZ9>kL=D& z@|xZiTHUK6^KN2wt?Uu=)|1?uPn6pq-}w5*k2zmdPZY6)!`s2=S7kmTS zn%-A)%uTtMBXGfem$jg^%rY;NyUTCHeLVkg_9Fg`n=ZeL|M~8C%Dc}QpSc_#bvtW? ztd;+DBC9$0)V7-MRn-T|x;~sL&(E2}Fq>8BcDe7*U7t2y6Of*naPD?R&$XKGKR)-? zeCIiPCzC(3;Ah+Wf1)eDpV_YvJo(5F$AN~_)XaJTs8^M^_jwm;r&diCci){P6# z?A^;NHP>28HsVP6`RVL+d7h6`7W7X39QEg~y*z(?ZS`_n{{u6OqPmvWtoh1jzmsX1 zM-PKoi@m)ppZ=mh9qa;otdBMRtvQ>h($~@!aCc_t`w;JiTmJp}cCYq$dA$0*--Vy5 zdliaWfAntt^hNgm-qp3ik9NynmQGN5`1*Uz_sB=P5nCws8 zI{xKuaYk_d{Ke4+4DGVb&sI+?IhS>CzUT_6e&h8u-=DoI`^mBY?nXB5i}C_z&S?cm zOu8U)X!EgypC#s>P?;{`c-=|I@0@m@)}&z9spam>uM8agsvHHj)beVG*Y0_``#Xcc zmAA1q-?uL~_9IS3&A9d6!O3?&-d&w`XL-Z1qvEfan@;DP>hpcFTmNLaf0(g{kV$=*pX6bpH~|Gv6*J4&zf?oH7{3l4P31w<8I z`z`+{P0`38(n4?3`kogH67;K_BTCwz?Oq;ODArYA@?E9;=CxX~mH{_3U#iyd^zM%36|^=bVeI)8AL!n;ySXSASVt=3{HtCo(Me50vhod*0~G z&$3@>H$UCooqhR)#Q(Q{Q&jGq>f2ZM3DgR*baA(r`L^c3JpFv>eZLn(9_#=4Zu5^r zhd;EPx43rrRQdVu_80iq)O`PIBGvqA;}UyWzW?9;{foYCDl?LCx+b_c;E?MVuTZ6j*-v&~Up{{wFSon#vNbtE z)$dM~pI`rj*StFSn#5A8;Qe~>VRnty`>HSMrS_?BcB#)Vm)O{KJAe0m&F-^GUy~Tl zO#1PzbyMn#faS7pRlis}|5R?2JiC~U{pL}1hFiXGPL!`-mUUWDBhtvV`}vXb_y4kA zE?D)&VpY+RJ8F>uuP&5M5AnOFeaN@wyI`S!Vr^^M>p%03Zhcy^sDl5x<&=n}M|7`- zn)A)g>ev}qWwvfDD@*6OI++)*uJY)LJ?s9lH&)~Bw9gu1?tBwm&9;P{IaOa-|9Q{k zLblsgKR!C|`(0mGqw}+B^2^(&%I_!LdfygidInzO=Q$D*T3E}){=dNDO#XX=fb8-G75~ovU)xvn{qt&#-oG~6wog#e z+S|ZdH)WH@snQ!C?q2U!%HWjAW8`LjE_Af|zM0gjeV^{`7I}5+uTko*zO#F0eft0H z>(NE|mbpvjZ2s}C`P)XWGSkSKyXV8?XL+1G?O0=O;XTiLbCnnSyPxmw9(;3^V{YoN zzsKem^~rAh*0<~9q+>m%f#>&KTQHM-dw)cL?*8nPVLRh3J0DE3T%x>SDu>SfPj{bZ zHsp4?uuk26NTuaqvHAvw)j{bm`4_(5l$3VFW*O6glv4+CZO>L!WX#gNU)%C?-J`Wd zI@+u=tCTzR6*lkRH{XU$<=#T+BVWGPe7`&YsL10qM~U@5+kSAi=L>W{_nMNSocHtH z#N`hj#9UFB#r|xbi2Z;0|KB}Mm_OEM%zD{-Cdui+%%AVRHt`G36qs3@(sNaje>LZV z^Cs(se!k;>wA(#wuhEgsaSU5qFt0V6JMUNKA8R=X9;PL#|0 zlx}C)e8|vXMb^`9FEbmy64u?w)_N{J+_7B7N_s*>5~N(%{%&1K2w=$vO;?1!^l@vYDDc96bKwL(m0_X|B1qPjB5`{XH^g#^i~7ieU+wA%Dwj zzH7}F+jeT+$K-a4%(Lt)(~qAh_s@HM=i`f_&q8ZHJ;;2-d;jn4rJob}#1kS9-SWuY z|9toVPj$aSGt*a3KQ;Hbw)(4uI(?;&cAI~HajHCiL)}S}_wn)f(+qcIB?L+ATv-_Q9s z@BO@`Erw^EQsx~{mj2xKe&3$wyVYl(IsBwkZ|}l$%u{E2t$Vclyo|RF(bWp=T@n? zD~n8UO*0PqZM&~}JG4cxmIMr`PdW$sZ~IfBW~#(^KEqncd&J|J=mA^53lew>?~TwEX|8Epav9&uH8{ zf9<8>llH0a_xaU)=a}>FspB*M7tAqd*B`pd?Roh6WlJZY-yHYDK5y=?`M%?%|L?oM z{L+K(28x{tyqpi}wdlDiq}*~A_J6gZw63vh!U>O?$6l&A8{O1jS`mM}>z(G6XS>r^ zURz?z$8)m${ioWl^yw|PbU!|r<+RO1uTHpHp!l4K`nkn+D*JwaJ~>sSnEmaQm}9c* zSys+Evf$>E+xFXQzOyGqoh?8A-fm6JcTUEp{WiHj-?hpw?^IvRA+xaQt2aw-uh{!n z??2vEKX*iT%JcG{?<9k?uE#TpKX@zu`EGjQr_kMw{XgUuD$0MXcK$0bvhjw%Y{6pI zxA)^2cm9)?>*Ki0xm`#m;%!YIGuz~cxt)&`m)hIg94NjmF8#md%KZf!qyChx;W?YO z`04Gfx8m=|#jmgV{$xu0Y_9XUyN?(Bw-ih_d9=G;;C}5~kClR7`(ssB{VLk|fctv- z3$vQ<)`9PnX8+Lpta?NJskXNN#+45x3}Y*jiWUX$`E=L%K-MRV%3{|y+IeS{&&2S` zl(H+||9i3KyD;~omsbN-y>~A%*!g(3{IV0}_NyN_{Zp)ot}WQ7Qa!`=)b#kD?=s(+ z*L?SXw0nNu&v)6M@2<`}c_#04d45rk^}gR%S4q#PI$v(@y6^X$n(v0K9Sk3B_CMZT z?vyo)@A;nYxTDs&1$)i6o-Y4beLg(s?1}RC;hWpuzwA8x%J+`tV#SkD$>Ofo8*5hZ z_x^lmYA%v8T%;aL2eDOW^)%ds2(Yr&1D^1tVGc0cXU%?=Yz+qk{v z`-zohQh#EeWKYO6SheNFJC?Mc*Qe)Ct~eT+_r&8{booJ7k6VU)e{WasOpAPeq}-ls zhS72HYl>Uc@BhtTzFE@qN~JI7MX`VrzkZnXTWVWYf4y@@puu9=y4UOT^w&*oOR^C% zlKykLYJb;XIkh#%{@iA-`Ob0qQMPdIYiq%M)1z|(5u160N z`}Q9%mlwKU`{VnEyY-fH_qpz?PON=)G}z{Q%la>B$J_1qyX~vqYd3xG@j%aW{JFn( zWP3~KZ?*i$n|41QG@-C|+tG%{%kTD`&T1;~U@?38)MsDyr&5nOw|2S7dS`XV zOs*Mp9y8qiboX)I9_=^gmmF8?TQD+sV6nkI(jR z-r_MPr}uoiyZX+Vi8DXWdw=i30fB!nD|qBT-VHCW`5xD6z3;ct$Gh1NcI~xHc)EN0 z`xRV=^V!7@&o9@#%*b&`VN+bufp_IMHfi6tjdjU8alVh~{+_s9KQ7p>c>K)af`RBxhf~?PrUzo z&&<;3Gv)dLw}WGEXG>0foRz%e;ckE5ZQMWKeOC-*TlMdt&-l8&e9=cX@5>WkH>Pn_KH43AJgVk9hwqamH;vE5>31^x zTz)ri`81ibhdWos?~>c}E^+nuc^?`SqCRGwF8?naFB$2k!g$};J&F5;z?U2A1?T?l z`Vksar+ojf$1vG|$&5_r6`tUFMf8cvUWA*Yn-+$4nO% zzsxvYp5Ojp+nVN%fs5WoM#p>=04?W z(cSTQclwFG-uhV1PxV53w?3a@=$Xpr%I-ur!5w?ACAz-oCNs1Eu4{^z^mPj|y}mhd&t zW-mAHj(oKH{JNU&UGH*L-ltSQ-TnOamusGPj@Eqlnqr|n>Aw2vkF^?~t)6*K>&f&y z8!gVW{OoPDe|-1%TFO1rdcOZ~`Fu`Wzw&357i&7-1a59Pd-MDI`VHS?Om$3`Gp+x5 zP|;(4cyas^vF0D|GJF0`*2`RzJlDDS>F(=yT93WC_iJHa&G(~vf>$QIkJG=tx9{5d zQyzk^D*suEvVU<4`*?T%>bHXY6NPkq17D(+9wg_Z5OEobJ2@B2Nq^x^f-OCx^1 zll1YaYe-9cDReqDI%D7OM{9K4Yrg+lxs2hgKv<{E=BNz&oeNvGi59lG*L-ijswIAZ z@0Z3Imc~ow{4rZydckN(%CVa7ADaGZ?5j?_G-unilBv;2zK=`i3E%%)`C|9SQ|0;1 zk$s%p@6J2wd(KfSuGgt`l5*Wwz1iYv^uFr78*4jjzTYehQ~7jvdU?%vr$3U*!k)5x zzuy}9Giqs}i44d6`CoHhgU{Dl_95?$|qykqw} z?RTu1t+lzW^o6PM%8d_qzSrrl`QHC%_x2p?H+SmKm(TCa7drjxpWuDl`{BZQKi_>- zv3fS`z1%s@Qw`DoKFQwy%X2U$^QP0I-S^e^RiBIcb^FEx`F{6HFDAa9=lh}9{?FSY zLv`l$bAG&gTytXjI`?mL)%#}a-P-hEx4LH9D&y%{t97*R@11iiX*(fTB{T-XKNMioZEh9ea&}orRxSs^PI0LNpD>5S@T^~hI?lT6Of#z3KO#?_U1BPW}Ghn>#-7-nX^&nCyO7r2EXP zXMt59dngX74FU6Gy7*x`^n^nKy15BOvz*Uuzl6ds_lt?j@Nu|jn`Xx$T`dJV!>a%`?bmy4C_LcUw?m& zE2Pau>zm?zTlM*eC3?<&%6H~^;w8RYXKAX?1kH~JyPhfEi#k)Lc zU2fjla``WIB6m3B-`w0_VqNfD$#c=qz02)BHMrLvm}Z;*x+i=`*33U9s4M^J?sivIljN4tr{8P7KefHT_qSy5limF_t2Of?S15h2`L1aE z*vvX-s-f#dhps>O-oJW(vuuqqzdeZO;R1zSsOt-|=*}{GVfD z4+B3>-Ouvtf=Tz~n{zn?!}k65JUcB$R@^3JuElGPMDg3_|1<1#cqUL05%!RQfq}u( L)z4*}Q$iB}_ilzl literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.reformate_gas.png.mcmeta b/kubejs/assets/tfg/textures/block/fluids/fluid.reformate_gas.png.mcmeta new file mode 100644 index 000000000..c5d457f93 --- /dev/null +++ b/kubejs/assets/tfg/textures/block/fluids/fluid.reformate_gas.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 1 + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.syngas.png b/kubejs/assets/tfg/textures/block/fluids/fluid.syngas.png new file mode 100644 index 0000000000000000000000000000000000000000..aa275d6cf6bd398a8684ff0ea90543b71c579db9 GIT binary patch literal 19721 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%0AWN#`+B*HJz@Tv=)D` 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 NgQu&X%Q~loCIDD?*zEuS literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.syngas.png.mcmeta b/kubejs/assets/tfg/textures/block/fluids/fluid.syngas.png.mcmeta new file mode 100644 index 000000000..c5d457f93 --- /dev/null +++ b/kubejs/assets/tfg/textures/block/fluids/fluid.syngas.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 1 + } +} \ No newline at end of file diff --git a/kubejs/server_scripts/gregtech/recipes.js b/kubejs/server_scripts/gregtech/recipes.js index b289ec1b2..b40802279 100644 --- a/kubejs/server_scripts/gregtech/recipes.js +++ b/kubejs/server_scripts/gregtech/recipes.js @@ -1826,65 +1826,4 @@ const registerGTCEURecipes = (event) => { event.replaceInput( {output: 'gtceu:nano_saber'}, 'gtceu:ruridit_plate', '#forge:plates/ostrum_iodide' ) - // Change - - // The 9x buff for large boiler recipes above does not apply to this for some reason, so it gets 3x duration for an effective 1/3 reduction instead - - event.forEachRecipe({ id: /gtceu:large_boiler\/(minecraft_ladder|gtceu_wood_frame)/ }, recipe => { - var newDuration = recipe.get("duration") - recipe.set("duration", newDuration*3) - }) - - event.forEachRecipe({ id: /gtceu:steam_boiler\/(minecraft_ladder|gtceu_wood_frame)/ }, recipe => { - var newDuration = recipe.get("duration") - recipe.set("duration", newDuration/3) - }) - - // Allow oil in small boilers - - event.remove({ id: "gtceu:large_boiler/gtceu_oil" }) - event.remove({ id: "gtceu:large_boiler/gtceu_oil_heavy" }) - event.remove({ id: "gtceu:large_boiler/gtceu_fish_oil" }) - // This generates both a small boiler and large boiler recipe. Remove it above to avoid a duplicate - event.recipes.gtceu.steam_boiler('tfg:oil') - .inputFluids(Fluid.of('gtceu:oil', 200)) - .duration(200) - .dimension('minecraft:overworld') - - event.recipes.gtceu.steam_boiler('tfg:heavy_oil') - .inputFluids(Fluid.of('gtceu:oil_heavy', 32)) - .duration(200) - .dimension('minecraft:overworld') - - event.recipes.gtceu.steam_boiler('tfg:fish_oil') - .inputFluids(Fluid.of('gtceu:fish_oil', 160)) - .duration(200) - .dimension('minecraft:overworld') - - // These aren't in base GT, but they have the same stats as oil - event.recipes.gtceu.steam_boiler('tfg:raw_oil') - .inputFluids(Fluid.of('gtceu:oil_medium', 200)) - .duration(200) - .dimension('minecraft:overworld') - - event.recipes.gtceu.steam_boiler('tfg:light_oil') - .inputFluids(Fluid.of('gtceu:oil_light', 200)) - .duration(200) - .dimension('minecraft:overworld') - - // Same stats as fish oil - event.recipes.gtceu.steam_boiler('tfg:olive_oil') - .inputFluids(Fluid.of('tfc:olive_oil', 160)) - .duration(200) - .dimension('minecraft:overworld') - - event.recipes.gtceu.steam_boiler('tfg:seed_oil') - .inputFluids(Fluid.of('gtceu:seed_oil', 160)) - .duration(200) - .dimension('minecraft:overworld') - - event.recipes.gtceu.steam_boiler('tfg:soybean_oil') - .inputFluids(Fluid.of('firmalife:soybean_oil', 160)) - .duration(200) - .dimension('minecraft:overworld') } diff --git a/kubejs/server_scripts/gregtech/recipes.machines.js b/kubejs/server_scripts/gregtech/recipes.machines.js index 78e59b039..39b786f03 100644 --- a/kubejs/server_scripts/gregtech/recipes.machines.js +++ b/kubejs/server_scripts/gregtech/recipes.machines.js @@ -1119,7 +1119,7 @@ function registerGTCEuMachineRecipes(event) { // Multiblock - event.shaped('gtceu:ostrum_linear_accelerator', [ + event.shaped('tfg:ostrum_linear_accelerator', [ 'USU', 'WZW', 'PTP' @@ -1131,7 +1131,7 @@ function registerGTCEuMachineRecipes(event) { T: '#forge:single_cables/platinum', P: 'gtceu:iv_electric_pump' } - ).id('gtceu:shaped/ostrum_linear_accelerator') + ).id('tfg:shaped/ostrum_linear_accelerator') event.recipes.gtceu.assembler('tfg:ostrum_harvester') .itemInputs( diff --git a/kubejs/server_scripts/tfg/early_power.js b/kubejs/server_scripts/tfg/early_power.js new file mode 100644 index 000000000..da5dfcefb --- /dev/null +++ b/kubejs/server_scripts/tfg/early_power.js @@ -0,0 +1,264 @@ +// priority: 0 + +function registerTFGEarlyPower(event) { + + const $ChanceLogic = Java.loadClass('com.gregtechceu.gtceu.api.recipe.chance.logic.ChanceLogic') + + // New Fuels + + // Syngas + + event.custom({ + type: 'vintageimprovements:vacuumizing', + ingredients: [{ item: 'minecraft:charcoal' }, { fluid: 'gtceu:creosote', amount: 250 }], + results: [{ fluid: 'tfg:syngas', amount: 100 }], + heatRequirement: "heated", + processingTime: 750 + }).id('tfg:vi/vacuumizing/syngas_from_charcoal') + + event.custom({ + type: 'vintageimprovements:vacuumizing', + ingredients: [{ item: 'minecraft:coal' }, { fluid: 'gtceu:creosote', amount: 250 }], + results: [{ fluid: 'tfg:syngas', amount: 200 }], + heatRequirement: "heated", + processingTime: 750 + }).id('tfg:vi/vacuumizing/syngas_from_coal') + + event.custom({ + type: 'vintageimprovements:vacuumizing', + ingredients: [{ item: 'gtceu:coke_gem' }, { fluid: 'gtceu:creosote', amount: 250 }], + results: [{ fluid: 'tfg:syngas', amount: 400 }], + heatRequirement: "heated", + processingTime: 750 + }).id('tfg:vi/vacuumizing/syngas_from_coke') + + event.custom({ + type: 'vintageimprovements:vacuumizing', + ingredients: [{ item: 'beneath:cursecoal' }, { fluid: 'gtceu:creosote', amount: 250 }], + results: [{ fluid: 'tfg:syngas', amount: 400 }], + heatRequirement: "heated", + processingTime: 750 + }).id('tfg:vi/vacuumizing/syngas_from_anthracite') + + //#region Reformate Gas + + // Charcoal + + event.recipes.gtceu.coal_liquefaction_tower('tfg:raw_aromatic_mix_charcoal') + .itemInputs(Item.of('minecraft:charcoal', 24)) + .inputFluids(Fluid.of('gtceu:creosote', 1000)) + .outputFluids(Fluid.of('gtceu:coal_tar', 500), Fluid.of('tfg:syngas', 3200), Fluid.of('tfg:raw_aromatic_mix', 1000)) + .duration(20*600) + .circuit(1) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.coal_liquefaction_tower('tfg:raw_aromatic_mix_charcoal_hydrogen') + .itemInputs(Item.of('minecraft:charcoal', 24)) + .inputFluids(Fluid.of('gtceu:creosote', 1000)) + .perTick(true) + .chancedFluidInput(Fluid.of('gtceu:hydrogen', 1), 1000, 0) + .perTick(false) + .outputFluids(Fluid.of('gtceu:coal_tar', 500), Fluid.of('tfg:syngas', 3200), Fluid.of('tfg:raw_aromatic_mix', 1000)) + .duration(20*200) + .circuit(2) + .EUt(GTValues.VHA[GTValues.LV]) + + // Coal + + event.recipes.gtceu.coal_liquefaction_tower('tfg:raw_aromatic_mix_coal') + .itemInputs(Item.of('minecraft:coal', 10)) + .inputFluids(Fluid.of('gtceu:creosote', 1000)) + .outputFluids(Fluid.of('gtceu:coal_tar', 1000), Fluid.of('tfg:syngas', 6400), Fluid.of('tfg:raw_aromatic_mix', 1000)) + .duration(20*600) + .circuit(1) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.coal_liquefaction_tower('tfg:raw_aromatic_mix_coal_hydrogen') + .itemInputs(Item.of('minecraft:coal', 10)) + .inputFluids(Fluid.of('gtceu:creosote', 1000)) + .perTick(true) + .chancedFluidInput(Fluid.of('gtceu:hydrogen', 1), 1000, 0) + .perTick(false) + .outputFluids(Fluid.of('gtceu:coal_tar', 1000), Fluid.of('tfg:syngas', 6400), Fluid.of('tfg:raw_aromatic_mix', 1000)) + .duration(20*200) + .circuit(2) + .EUt(GTValues.VHA[GTValues.LV]) + + // Coke + + event.recipes.gtceu.coal_liquefaction_tower('tfg:raw_aromatic_mix_coke') + .itemInputs(Item.of('gtceu:coke_gem', 5)) + .inputFluids(Fluid.of('gtceu:creosote', 1000)) + .outputFluids(Fluid.of('gtceu:coal_tar', 2000), Fluid.of('tfg:syngas', 12800), Fluid.of('tfg:raw_aromatic_mix', 1000)) + .duration(20*600) + .circuit(1) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.coal_liquefaction_tower('tfg:raw_aromatic_mix_coke_hydrogen') + .itemInputs(Item.of('gtceu:coke_gem', 5)) + .inputFluids(Fluid.of('gtceu:creosote', 1000)) + .perTick(true) + .chancedFluidInput(Fluid.of('gtceu:hydrogen', 1), 1000, 0) + .perTick(false) + .outputFluids(Fluid.of('gtceu:coal_tar', 2000), Fluid.of('tfg:syngas', 12800), Fluid.of('tfg:raw_aromatic_mix', 1000)) + .duration(20*200) + .circuit(2) + .EUt(GTValues.VHA[GTValues.LV]) + + // Anthracite + + event.recipes.gtceu.coal_liquefaction_tower('tfg:raw_aromatic_mix_anthracite') + .itemInputs(Item.of('beneath:cursecoal', 5)) + .inputFluids(Fluid.of('gtceu:creosote', 1000)) + .outputFluids(Fluid.of('gtceu:coal_tar', 2000), Fluid.of('tfg:syngas', 12800), Fluid.of('tfg:raw_aromatic_mix', 1000)) + .duration(20*600) + .circuit(1) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.coal_liquefaction_tower('tfg:raw_aromatic_mix_anthracite_hydrogen') + .itemInputs(Item.of('beneath:cursecoal', 5)) + .inputFluids(Fluid.of('gtceu:creosote', 1000)) + .perTick(true) + .chancedFluidInput(Fluid.of('gtceu:hydrogen', 1), 1000, 0) + .perTick(false) + .outputFluids(Fluid.of('gtceu:coal_tar', 2000), Fluid.of('tfg:syngas', 12800), Fluid.of('tfg:raw_aromatic_mix', 1000)) + .duration(20*200) + .circuit(2) + .EUt(GTValues.VHA[GTValues.LV]) + + // Aromatic Processing + + event.recipes.gtceu.chemical_reactor('tfg:aromatic_feedstock') + .inputFluids(Fluid.of('tfg:raw_aromatic_mix', 1000), Fluid.of('gtceu:benzene', 525), Fluid.of('gtceu:steam', 1000)) + .outputFluids(Fluid.of('tfg:aromatic_feedstock', 1000)) + .duration(20*30) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.chemical_reactor('tfg:reformed_aromatic_feedstock') + .chancedInput(Item.of('gtceu:tiny_rhenium_dust'), 100, 0) // 1% chance + .inputFluids(Fluid.of('tfg:aromatic_feedstock', 1000)) + .outputFluids(Fluid.of('tfg:reformed_aromatic_feedstock', 1000)) + .duration(20*18) + .EUt(GTValues.VA[GTValues.MV]) + + // Reformate Gas Alternative Step + + event.recipes.gtceu.cracker('tfg:reformate_gas_cracker') + .inputFluids(Fluid.of('tfg:reformed_aromatic_feedstock', 1000), Fluid.of('gtceu:steam', 2000)) + .outputFluids(Fluid.of('tfg:reformate_gas', 2000)) + .outputFluids(Fluid.of('tfg:cracker_off_gas', 1000)) + .duration(20*60) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.chemical_reactor('tfg:reformate_gas') + .inputFluids(Fluid.of('tfg:reformed_aromatic_feedstock', 1000), Fluid.of('gtceu:steam', 1000)) + .outputFluids(Fluid.of('tfg:reformate_gas', 2000)) + .duration(20*60) + .EUt(GTValues.VA[GTValues.MV]) + + // Recycling + + event.recipes.gtceu.electrolyzer('tfg:cracker_off_gas_recycling') + .inputFluids(Fluid.of('tfg:cracker_off_gas', 1000)) + .outputFluids(Fluid.of('gtceu:carbon_dioxide', 500), Fluid.of('gtceu:hydrogen', 500)) + .chancedOutput(Item.of('gtceu:tiny_rhenium_dust'), 100, 0) // 1% chance + .duration(20*4.5) + .EUt(GTValues.VA[GTValues.HV]) + + // Modify Recipe to balance new line + + event.remove({ id: 'gtceu:extractor/charcoal_extraction' }) + event.recipes.gtceu.extractor('tfg:charcoal_extraction') + .itemInputs(Item.of('minecraft:charcoal')) + .outputFluids(Fluid.of('gtceu:wood_tar', 100)) + .duration(20*6.4) + .EUt(GTValues.VA[GTValues.MV]) + + //#endregion + + //#region Rebalance Fuel + + // Change + + // The 9x buff for large boiler recipes above does not apply to this for some reason, so it gets 3x duration for an effective 1/3 reduction instead + + event.forEachRecipe({ id: /gtceu:large_boiler\/(minecraft_ladder|gtceu_wood_frame)/ }, recipe => { + var newDuration = recipe.get("duration") + recipe.set("duration", newDuration*3) + }) + + event.forEachRecipe({ id: /gtceu:steam_boiler\/(minecraft_ladder|gtceu_wood_frame)/ }, recipe => { + var newDuration = recipe.get("duration") + recipe.set("duration", newDuration/3) + }) + + // Allow oil in small boilers + + event.remove({ id: "gtceu:large_boiler/gtceu_oil" }) + event.remove({ id: "gtceu:large_boiler/gtceu_oil_heavy" }) + event.remove({ id: "gtceu:large_boiler/gtceu_fish_oil" }) + // This generates both a small boiler and large boiler recipe. Remove it above to avoid a duplicate + event.recipes.gtceu.steam_boiler('tfg:oil') + .inputFluids(Fluid.of('gtceu:oil', 200)) + .duration(200) + .dimension('minecraft:overworld') + + event.recipes.gtceu.steam_boiler('tfg:heavy_oil') + .inputFluids(Fluid.of('gtceu:oil_heavy', 32)) + .duration(200) + .dimension('minecraft:overworld') + + event.recipes.gtceu.steam_boiler('tfg:fish_oil') + .inputFluids(Fluid.of('gtceu:fish_oil', 160)) + .duration(200) + .dimension('minecraft:overworld') + + // These aren't in base GT, but they have the same stats as oil + event.recipes.gtceu.steam_boiler('tfg:raw_oil') + .inputFluids(Fluid.of('gtceu:oil_medium', 200)) + .duration(200) + .dimension('minecraft:overworld') + + event.recipes.gtceu.steam_boiler('tfg:light_oil') + .inputFluids(Fluid.of('gtceu:oil_light', 200)) + .duration(200) + .dimension('minecraft:overworld') + + // Same stats as fish oil + event.recipes.gtceu.steam_boiler('tfg:olive_oil') + .inputFluids(Fluid.of('tfc:olive_oil', 160)) + .duration(200) + .dimension('minecraft:overworld') + + event.recipes.gtceu.steam_boiler('tfg:seed_oil') + .inputFluids(Fluid.of('gtceu:seed_oil', 160)) + .duration(200) + .dimension('minecraft:overworld') + + event.recipes.gtceu.steam_boiler('tfg:soybean_oil') + .inputFluids(Fluid.of('firmalife:soybean_oil', 160)) + .duration(200) + .dimension('minecraft:overworld') + + //#region New Power Generation + + // Add Syngas + + event.recipes.gtceu.steam_boiler('tfg:syngas') // Small Boiler and Large Boiler divided by 4 + .inputFluids(Fluid.of('tfg:syngas', 100)) + .duration(40*20*4) + .dimension('minecraft:overworld') + + event.recipes.gtceu.gas_turbine('tfg:syngas') // Gas Turbine + .inputFluids(Fluid.of('tfg:syngas', 1)) + .EUt(-(32)) + .duration(20*0.2) + + // Reformate Gas + + event.recipes.gtceu.gas_turbine('tfg:reformate_gas') // Gas Turbine + .inputFluids(Fluid.of('tfg:reformate_gas', 1)) + .EUt(-(32)) + .duration(20*1) + +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/nuclear/recipes.nuclear.js b/kubejs/server_scripts/tfg/nuclear/recipes.nuclear.js index 7791089f8..29df43882 100644 --- a/kubejs/server_scripts/tfg/nuclear/recipes.nuclear.js +++ b/kubejs/server_scripts/tfg/nuclear/recipes.nuclear.js @@ -56,14 +56,14 @@ function registerTFGNuclearRecipes(event) { .duration(20*600) .EUt(GTValues.VA[GTValues.EV]) .dimension('ad_astra:mars') - +/* event.recipes.gtceu.nuclear_fuel_factory('tfg:tbu_232_rod') .inputFluids(Fluid.of('gtceu:nuclear_waste', 32000)) .itemInputs('2x #forge:rods/thorium_232', 'tfg:empty_rod') .itemOutputs('tfg:tbu_232_rod') .duration(20*300) .EUt(GTValues.V[GTValues.IV]) - +*/ event.recipes.gtceu.assembler('tfg:empty_rod') .itemInputs('3x gtceu:cobalt_large_restrictive_item_pipe', '3x gtceu:lead_huge_fluid_pipe') .itemOutputs('tfg:empty_rod') @@ -181,20 +181,32 @@ function registerTFGNuclearRecipes(event) { event.recipes.gtceu.heat_exchanger('uranium_steam') .perTick(true) .inputFluids(Fluid.of('minecraft:water', 10)) - .inputFluids(Fluid.of('gtceu:radioactive_steam', 10)) + .inputFluids(Fluid.of('gtceu:radioactive_steam', 1600)) .inputFluids(Fluid.of('gtceu:ammonium_formate', 10)) - .outputFluids(Fluid.of('gtceu:dense_steam', 10)) + .outputFluids(Fluid.of('gtceu:dense_steam', 1600)) .outputFluids(Fluid.of('gtceu:formamide', 10)) .perTick(false) .duration(20*5) .EUt(1) + .circuit(1) + .dimension('ad_astra:mars') + + event.recipes.gtceu.heat_exchanger('uranium_steam_power_only') + .perTick(true) + .inputFluids(Fluid.of('minecraft:water', 10)) + .inputFluids(Fluid.of('gtceu:radioactive_steam', 1600)) + .outputFluids(Fluid.of('gtceu:dense_steam', 1600)) + .perTick(false) + .duration(20*5) + .EUt(1) + .circuit(2) .dimension('ad_astra:mars') event.recipes.gtceu.heat_exchanger('plutonium_steam') .perTick(true) .inputFluids(Fluid.of('minecraft:water', 10)) - .inputFluids(Fluid.of('gtceu:irradiated_steam', 10)) - .outputFluids(Fluid.of('gtceu:dense_steam', 10)) + .inputFluids(Fluid.of('gtceu:irradiated_steam', 1600)) + .outputFluids(Fluid.of('gtceu:dense_steam', 1600)) .perTick(false) .duration(20*5) .EUt(1) @@ -229,7 +241,7 @@ function registerTFGNuclearRecipes(event) { .notConsumable(Item.of('tfg:thorium_rod')) .perTick(true) .inputFluids(Fluid.of('tfg:heavy_water', 2)) - .outputFluids(Fluid.of('gtceu:dense_steam', 2)) + .outputFluids(Fluid.of('gtceu:dense_steam', 480)) .perTick(false) .dimension('ad_astra:mars') .addData("coolant_heat_per_tick", 1) @@ -248,7 +260,7 @@ function registerTFGNuclearRecipes(event) { .notConsumable(Item.of('tfg:uranium_rod')) .perTick(true) .inputFluids(Fluid.of('tfg:heavy_water', 20)) - .outputFluids(Fluid.of('gtceu:radioactive_steam', 10)) + .outputFluids(Fluid.of('gtceu:radioactive_steam', 1600)) .perTick(false) .addData("coolant_heat_per_tick", 1) .duration(1) @@ -267,7 +279,7 @@ function registerTFGNuclearRecipes(event) { .notConsumable(Item.of('tfg:plutonium_rod')) .perTick(true) .inputFluids(Fluid.of('tfg:heavy_water', 25)) - .outputFluids(Fluid.of('gtceu:irradiated_steam', 40)) + .outputFluids(Fluid.of('gtceu:irradiated_steam', 6400)) .perTick(false) .addData("coolant_heat_per_tick", 1) .duration(1) @@ -435,7 +447,7 @@ function registerTFGNuclearRecipes(event) { //#region Power Generation event.recipes.gtceu.nuclear_turbine('dense_steam') - .inputFluids(Fluid.of('gtceu:dense_steam', 1)) + .inputFluids(Fluid.of('gtceu:dense_steam', 160)) .EUt(-(32)) .duration(20*1.5) diff --git a/kubejs/server_scripts/tfg/nuclear/recipes.ostrum.js b/kubejs/server_scripts/tfg/nuclear/recipes.ostrum.js new file mode 100644 index 000000000..779b382ad --- /dev/null +++ b/kubejs/server_scripts/tfg/nuclear/recipes.ostrum.js @@ -0,0 +1,83 @@ + // priority: 0 + +function registerTFGNOstrumRecipes(event) { + + var $HeatRecipeCapability = Java.loadClass("fi.dea.mc.deafission.common.data.recipe.HeatRecipeCapability"); + var $HeatIngredient = Java.loadClass("fi.dea.mc.deafission.common.data.recipe.HeatIngredient"); + const $ChanceLogic = Java.loadClass('com.gregtechceu.gtceu.api.recipe.chance.logic.ChanceLogic') + + // Ostrum Linear Accelerator Recipes + + // .input($HeatRecipeCapability.CAP, new $HeatIngredient(X, Y)) where X is Minimal Temperature to run and where Y is HU consummed per craft +/* + event.recipes.gtceu.ostrum_linear_accelerator('tfg:ostrum_transformation') + .inputFluids('gtceu:residual_radioactive_concoction 100') + .itemInputs('32x #forge:dusts/ostrum') + .chancedFluidOutputLogic($ChanceLogic.XOR) + .chancedFluidOutput('gtceu:lightweight_ostrum_vapor', 6000, 0) + .chancedFluidOutput('gtceu:ostrum_vapor', 3000, 0) + .chancedFluidOutput('gtceu:dense_ostrum_vapor', 1000, 0) + .dimension('ad_astra:mars') + .duration(20 * 5) + .EUt(GTValues.VA[GTValues.EV]); + + event.recipes.gtceu.ostrum_linear_accelerator('tfg:lightweight_ostrum_vapor_t1') + .perTick(true) + .inputFluids('gtceu:residual_radioactive_concoction 1') + .perTick(false) + .inputFluids(Fluid.of('gtceu:lightweight_ostrum_vapor',1000)) + .inputFluids(Fluid.of('gtceu:radon', 10)) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/thorium'), 1, 10) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/silver'), 1, 10) + .itemOutputsRanged(Item.of('gtceu:dusty_raw_tricalcium_phosphate'), 1, 10) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/bauxite'), 1, 10) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/lead'), 1, 10) + //.input($HeatRecipeCapability.CAP, new $HeatIngredient(100, 500)) + .dimension('ad_astra:mars') + .duration(20 * 20) + .circuit(1); + + event.recipes.gtceu.ostrum_linear_accelerator('tfg:lightweight_ostrum_vapor_t2') + .perTick(true) + .inputFluids('gtceu:residual_radioactive_concoction 1') + .inputFluids(Fluid.of('tfg:semiheavy_water', 1)) + .perTick(false) + .inputFluids(Fluid.of('gtceu:lightweight_ostrum_vapor',1000)) + .inputFluids(Fluid.of('gtceu:radon', 10)) + .inputFluids(Fluid.of('gtceu:krypton', 10)) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/thorium'), 10, 20) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/silver'), 1, 10) + .itemOutputsRanged(Item.of('gtceu:dusty_raw_tricalcium_phosphate'), 1, 10) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/bauxite'), 1, 10) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/lead'), 1, 10) + .itemOutputsRanged(Item.of('gtceu:dusty_raw_pitchblende'), 1, 10) + //.input($HeatRecipeCapability.CAP, new $HeatIngredient(100, 500)) + .dimension('ad_astra:mars') + .duration(20 * 20) + .EUt(GTValues.VA[GTValues.IV]) + .circuit(2); + + event.recipes.gtceu.ostrum_linear_accelerator('tfg:lightweight_ostrum_vapor_t3') + .perTick(true) + .inputFluids('gtceu:residual_radioactive_concoction 1') + .inputFluids(Fluid.of('tfg:semiheavy_water', 1)) + .perTick(false) + .inputFluids(Fluid.of('gtceu:lightweight_ostrum_vapor',1000)) + .inputFluids(Fluid.of('gtceu:radon', 10)) + .inputFluids(Fluid.of('gtceu:krypton', 10)) + .inputFluids(Fluid.of('gtceu:tritiated_water', 10)) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/thorium'), 10, 20) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/silver'), 1, 10) + .itemOutputsRanged(Item.of('gtceu:dusty_raw_tricalcium_phosphate'), 1, 10) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/bauxite'), 1, 10) + .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/lead'), 10, 10) + .itemOutputsRanged(Item.of('gtceu:dusty_raw_pitchblende'), 10, 20) + .input($HeatRecipeCapability.CAP, new $HeatIngredient(100, 500)) + .dimension('ad_astra:mars') + .duration(20 * 20) + .EUt(GTValues.VA[GTValues.IV]) + .circuit(3); +*/ + //#endregion + +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/recipes.js b/kubejs/server_scripts/tfg/recipes.js index 7f37614ce..858f97f91 100644 --- a/kubejs/server_scripts/tfg/recipes.js +++ b/kubejs/server_scripts/tfg/recipes.js @@ -9,6 +9,7 @@ const registerTFGRecipes = (event) => { registerTFGPapermakingRecipes(event) registerTFGRockRecipes(event) registerTFGCollapseRecipes(event) + registerTFGEarlyPower(event) registerTFGMoldRecipes(event) registerTFGMedicineRecipes(event) registerTFGMiscellaneousRecipes(event) @@ -20,6 +21,7 @@ const registerTFGRecipes = (event) => { registerTFGStoneDustRecipes(event) registerTFGNuclearRecipes(event) registerTFGNuclearComponentsRecipes(event) + registerTFGNOstrumRecipes(event) registerTFGBiochemRecipes(event) registerTFGSpaceOres(event) } diff --git a/kubejs/server_scripts/tfg/recipes.space_ores.js b/kubejs/server_scripts/tfg/recipes.space_ores.js index 80a2a5ffe..72ab73e03 100644 --- a/kubejs/server_scripts/tfg/recipes.space_ores.js +++ b/kubejs/server_scripts/tfg/recipes.space_ores.js @@ -153,55 +153,6 @@ function registerTFGSpaceOres(event) { .duration(20 * 30) .EUt(GTValues.VA[GTValues.LV]); - - // Ostrum Linear Accelerator Recipes - - event.recipes.gtceu.ostrum_linear_accelerator('tfg:ostrum_transformation') - .inputFluids('gtceu:residual_radioactive_concoction 100') - .itemInputs('32x #forge:dusts/ostrum') - .chancedFluidOutputLogic($ChanceLogic.XOR) - .chancedFluidOutput('gtceu:lightweight_ostrum_vapor', 6000, 0) - .chancedFluidOutput('gtceu:ostrum_vapor', 3000, 0) - .chancedFluidOutput('gtceu:dense_ostrum_vapor', 1000, 0) - .dimension('ad_astra:mars') - .duration(20 * 5) - .EUt(GTValues.VA[GTValues.EV]); - - event.recipes.gtceu.ostrum_linear_accelerator('tfg:lightweight_ostrum') - .inputFluids('gtceu:lightweight_ostrum_vapor 1000') - .inputFluids('gtceu:residual_radioactive_concoction 100') - .inputFluids(Fluid.of('tfg:heavy_water', 1000)) - .itemOutputsRanged('#forge:dusty_raw_materials/pitchblende', 1, 10) - .itemOutputsRanged('#forge:dusty_raw_materials/silver', 1, 10) - .itemOutputsRanged('#forge:dusty_raw_materials/tricalcium_phosphate', 1, 10) - .dimension('ad_astra:mars') - .duration(20 * 5) - .EUt(GTValues.VA[GTValues.IV]); - - event.recipes.gtceu.ostrum_linear_accelerator('tfg:ostrum') - .inputFluids('gtceu:ostrum_vapor 1000') - .inputFluids('gtceu:residual_radioactive_concoction 100') - .inputFluids(Fluid.of('gtceu:radon', 100)) - .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/bauxite'), 1, 10) - .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/lead'), 1, 10) - .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/beryllium'), 1, 10) - .dimension('ad_astra:mars') - .duration(20 * 5) - .EUt(GTValues.VA[GTValues.IV]); - - event.recipes.gtceu.ostrum_linear_accelerator('tfg:dense_ostrum') - .inputFluids('gtceu:dense_ostrum_vapor 1000') - .inputFluids('gtceu:residual_radioactive_concoction 100') - .inputFluids(Fluid.of('gtceu:tritiated_water', 500)) - .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/thorium'), 1, 10) - .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/uraninite'), 1, 10) - .itemOutputsRanged(Item.of('#forge:dusty_raw_materials/hematite'), 1, 10) - .dimension('ad_astra:mars') - .duration(20 * 5) - .EUt(GTValues.VA[GTValues.IV]); - - //#endregion - // #region Zirconium event.recipes.gtceu.chemical_reactor('tfg:silicon_tetrachloride') diff --git a/kubejs/startup_scripts/gtceu/machines.js b/kubejs/startup_scripts/gtceu/machines.js index 45e7d1b21..855fb2722 100644 --- a/kubejs/startup_scripts/gtceu/machines.js +++ b/kubejs/startup_scripts/gtceu/machines.js @@ -270,8 +270,8 @@ const registerGTCEuMachines = (event) => { .recipeType('nuclear_fuel_factory') .recipeModifiers( [ - GTRecipeModifiers.PARALLEL_HATCH, - (machine, recipe) => GTRecipeModifiers.pyrolyseOvenOverclock(machine, recipe), + GTRecipeModifiers.PARALLEL_HATCH, + (machine, recipe) => GTRecipeModifiers.pyrolyseOvenOverclock(machine, recipe), GTRecipeModifiers.BATCH_MODE ] ) @@ -451,7 +451,7 @@ const registerGTCEuMachines = (event) => { event.create('ostrum_linear_accelerator', 'multiblock') .rotationState(RotationState.NON_Y_AXIS) - .recipeType('ostrum_linear_accelerator') + .recipeType('dummy_recipe') .recipeModifiers([GTRecipeModifiers.PARALLEL_HATCH, GTRecipeModifiers.OC_NON_PERFECT, GTRecipeModifiers.BATCH_MODE]) .appearanceBlock(() => Block.getBlock('tfg:casings/machine_casing_mars')) .pattern(definition => FactoryBlockPattern.start() @@ -502,4 +502,39 @@ const registerGTCEuMachines = (event) => { 'tfg:block/casings/machine_casing_mars', 'gtceu:block/machines/thermal_centrifuge') -} + //#region Power Rework + + // Coal Liquefaction Tower + + event.create('coal_liquefaction_tower', 'multiblock') + .machine((holder) => new CoilWorkableElectricMultiblockMachine(holder)) + .rotationState(RotationState.NON_Y_AXIS) + .recipeType('coal_liquefaction_tower') + .recipeModifiers([(machine, recipe) => GTRecipeModifiers.crackerOverclock(machine, recipe), GTRecipeModifiers.BATCH_MODE]) + .appearanceBlock(() => Block.getBlock('gtceu:solid_machine_casing')) + .pattern(definition => FactoryBlockPattern.start() + .aisle('CCC', 'D D', 'D D', 'DED', 'DED', 'BBB') + .aisle('CCC', ' Y ', ' E ', 'E#E', 'EEE', 'BMB') + .aisle('CXC', 'D D', 'D D', 'DED', 'DED', 'BBB' ) + .where('X', Predicates.controller(Predicates.blocks(definition.get()))) + .where('A', Predicates.blocks('gtceu:secure_maceration_casing')) + .where('B', Predicates.blocks('gtceu:solid_machine_casing').setMinGlobalLimited(4) + .or(Predicates.abilities(PartAbility.IMPORT_FLUIDS).setPreviewCount(2)) + .or(Predicates.abilities(PartAbility.IMPORT_ITEMS).setPreviewCount(1))) + .where('C', Predicates.blocks('gtceu:solid_machine_casing') + .or(Predicates.abilities(PartAbility.EXPORT_FLUIDS).setPreviewCount(2)) + .or(Predicates.abilities(PartAbility.INPUT_ENERGY).setMinGlobalLimited(1).setMaxGlobalLimited(2).setPreviewCount(1)) + .or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1).setPreviewCount(1))) + .where('D', Predicates.blocks('create:metal_girder')) + .where('E', Predicates.blocks('gtceu:steam_machine_casing')) + .where('Y', Predicates.heatingCoils()) + .where('M', Predicates.abilities(PartAbility.MUFFLER).setExactLimit(1)) + .where('#', Predicates.air()) + .where(' ', Predicates.any()) + .build() + ) + .workableCasingModel( + 'gtceu:block/casings/solid/machine_casing_solid_steel', + 'gtceu:block/multiblock/distillation_tower') + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/gtceu/recipe_types.js b/kubejs/startup_scripts/gtceu/recipe_types.js index 4550c419c..7f345b855 100644 --- a/kubejs/startup_scripts/gtceu/recipe_types.js +++ b/kubejs/startup_scripts/gtceu/recipe_types.js @@ -39,10 +39,11 @@ const registerGTCEuRecipeTypes = (event) => { event.create('heat_exchanger') .category('heat_exchanger') .setEUIO('in') - .setMaxIOSize(0, 0, 4, 4) + .setMaxIOSize(1, 0, 3, 3) .setSlotOverlay(false, false, GuiTextures.ATOMIC_OVERLAY_1) .setProgressBar(GuiTextures.PROGRESS_BAR_GAS_COLLECTOR, FillDirection.LEFT_TO_RIGHT) .setSound(GTSoundEntries.TURBINE) + /* Just keeping it in case we got mod issues event.create('fission_reactor') .category('fission_reactor') @@ -68,12 +69,20 @@ const registerGTCEuRecipeTypes = (event) => { .setProgressBar(GuiTextures.PROGRESS_BAR_GAS_COLLECTOR, FillDirection.LEFT_TO_RIGHT) .setSound(GTSoundEntries.TURBINE) - event.create('ostrum_linear_accelerator') - .category('ostrum_linear_accelerator') + event.create('dummy_recipe') + .category('dumme_recipe') .setEUIO('in') .setMaxIOSize(1, 3, 3, 3) .setSlotOverlay(false, false, GuiTextures.EXTRACTOR_OVERLAY) .setProgressBar(GuiTextures.PROGRESS_BAR_EXTRACT, FillDirection.LEFT_TO_RIGHT) .setSound(GTSoundEntries.BATH) -} + event.create('coal_liquefaction_tower') + .category('coal_liquefaction_tower') + .setEUIO('in') + .setMaxIOSize(2, 0, 3, 3) + .setSlotOverlay(false, false, GuiTextures.HEATING_OVERLAY_1) + .setProgressBar(GuiTextures.PROGRESS_BAR_DISTILLATION_TOWER, FillDirection.LEFT_TO_RIGHT) + .setSound(GTSoundEntries.COMBUSTION) + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/main_startup_script.js b/kubejs/startup_scripts/main_startup_script.js index 8cbdb2757..27c4287d5 100644 --- a/kubejs/startup_scripts/main_startup_script.js +++ b/kubejs/startup_scripts/main_startup_script.js @@ -60,6 +60,7 @@ GTCEuStartupEvents.registry('gtceu:material', event => { registerTFGMaterials(event) registerTFGNuclearMaterials(event) registerTFGBiolineMaterials(event) + registerTFGPowerReworkMaterials(event) }) GTCEuStartupEvents.registry('gtceu:material_icon_set', event => { diff --git a/kubejs/startup_scripts/tfg/materials.js b/kubejs/startup_scripts/tfg/materials.js index 27a1e6339..604dc83df 100644 --- a/kubejs/startup_scripts/tfg/materials.js +++ b/kubejs/startup_scripts/tfg/materials.js @@ -437,12 +437,12 @@ const registerTFGMaterials = (event) => { .components('2x hydrogen', '12x tungsten', '42x oxygen') .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - event.create('tfg:ammonium_tungstate') - .dust() - .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES, GTMaterialFlags.DISABLE_DECOMPOSITION) - .iconSet(GTMaterialIconSet.DULL) - .components('10x ammonia', '1x tfg:tungstate') - .color('0xfafafa') + event.create('tfg:ammonium_tungstate') + .dust() + .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES, GTMaterialFlags.DISABLE_DECOMPOSITION) + .iconSet(GTMaterialIconSet.DULL) + .components('10x ammonia', '2x hydrogen', '12x tungsten', '42x oxygen') + .color('0xfafafa') event.create('tfg:apt') .gem() @@ -495,6 +495,7 @@ const registerTFGMaterials = (event) => { GTMaterialFlags.EXCLUDE_BLOCK_CRAFTING_BY_HAND_RECIPES, GTMaterialFlags.GENERATE_GEAR ) + .fluidPipeProperties(4250, 1700, true, false, false, false) // #endregion diff --git a/kubejs/startup_scripts/tfg/materials.power_rework.js b/kubejs/startup_scripts/tfg/materials.power_rework.js new file mode 100644 index 000000000..bace22a6d --- /dev/null +++ b/kubejs/startup_scripts/tfg/materials.power_rework.js @@ -0,0 +1,54 @@ + // priority: 0 +"use strict"; + +const registerTFGPowerReworkMaterials = (event) => { + +// Syngas +event.create('tfg:syngas') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(650)) + .components('11x carbon', '20x hydrogen', '12x oxygen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0x7da6c2) + .secondaryColor(0xcfe3ee) + +// Raw Aromatic Mix +event.create('tfg:raw_aromatic_mix') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(420)) + .components('137x carbon', '154x hydrogen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0x8a4b3d) + .secondaryColor(0xd8b6ac) + +// Aromatic Feedstock +event.create('tfg:aromatic_feedstock') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(450)) + .components('67x carbon', '74x hydrogen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0x915c2f) + .secondaryColor(0xe2c49b) + +// Reformed Aromatic Feedstock +event.create('tfg:reformed_aromatic_feedstock') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(500)) + .components('133x carbon', '146x hydrogen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0x4e6b83) + .secondaryColor(0xbacdde) + +// Reformate Gas +event.create('tfg:reformate_gas') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(540)) + .components('13x carbon', '63x hydrogen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0x6c7f4e) + .secondaryColor(0xc7d8b1) + +// Cracker Off-Gas +event.create('tfg:cracker_off_gas') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(480)) + .components('31x carbon', '128x hydrogen', '2x oxygen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xa36f2a) + .secondaryColor(0xecd8ae) + +}