From 31b6da9f1c3b9cbdff93dd26f37199e55199704e Mon Sep 17 00:00:00 2001 From: Redeix <59435925+Redeix@users.noreply.github.com> Date: Tue, 15 Jul 2025 11:41:08 -0500 Subject: [PATCH] Integrated Ad Astra wood & and added wood recipe utility (#1346) * - Yeast recipe conflict fix * - Fixed seed oil voiding in barrels. And item weight inconsistency. * - Reduced loading screen logo size by 4MB * - Update Changelog * - Compressed loading screen images to maybe help with ram * - Added default gui scale to make the main menu look better on first launch * - Update Changelog * - Added utility script for adding circuits to existing recipes * fixed changelog conflict Signed-off-by: Redeix <59435925+Redeix@users.noreply.github.com> * - Added harvest baskets * - Fixed baked potato recipe mixing from oven * - Allowed elytras to be repaired regardless of damage * - Fixed sea water barrel recipe * - Gave plants tags to bushes so they can have other uses * - Pushed stubborn models * - updated Changelog * - Changelog typo * - Integrated Ad Astra wood * - Updated changelog --------- Signed-off-by: Redeix <59435925+Redeix@users.noreply.github.com> --- CHANGELOG.md | 1 + .../ad_astra/models/item/aeronos_stem.json | 6 + .../ad_astra/models/item/glacian_log.json | 6 + .../models/item/stripped_glacian_log.json | 6 + .../ad_astra/models/item/strophar_stem.json | 6 + .../ad_astra/textures/item/aeronos_stem.png | Bin 0 -> 451 bytes .../ad_astra/textures/item/glacian_log.png | Bin 0 -> 434 bytes .../textures/item/glacian_stripped.png | Bin 0 -> 373 bytes .../ad_astra/textures/item/strophar_stem.png | Bin 0 -> 482 bytes kubejs/assets/tfg/lang/en_us.json | 9 + .../block/support/aeronos_support.png | Bin 0 -> 27723 bytes .../block/support/glacian_support.png | Bin 0 -> 432 bytes .../block/support/strophar_support.png | Bin 0 -> 27728 bytes .../tfg/textures/item/wood/lumber/aeronos.png | Bin 0 -> 371 bytes .../tfg/textures/item/wood/lumber/glacian.png | Bin 0 -> 386 bytes .../textures/item/wood/lumber/strophar.png | Bin 0 -> 379 bytes kubejs/client_scripts/tooltips.js | 5 + kubejs/server_scripts/ad_astra/data.js | 4 + kubejs/server_scripts/ad_astra/recipes.js | 36 +++ kubejs/server_scripts/ad_astra/tags.js | 22 ++ kubejs/server_scripts/gregtech/utility.js | 207 +++++++++++++++++- kubejs/server_scripts/tfg/data.js | 4 + kubejs/startup_scripts/ad_astra/constants.js | 8 +- kubejs/startup_scripts/tfg/blocks.supports.js | 20 ++ kubejs/startup_scripts/tfg/items.js | 10 +- 25 files changed, 340 insertions(+), 10 deletions(-) create mode 100644 kubejs/assets/ad_astra/models/item/aeronos_stem.json create mode 100644 kubejs/assets/ad_astra/models/item/glacian_log.json create mode 100644 kubejs/assets/ad_astra/models/item/stripped_glacian_log.json create mode 100644 kubejs/assets/ad_astra/models/item/strophar_stem.json create mode 100644 kubejs/assets/ad_astra/textures/item/aeronos_stem.png create mode 100644 kubejs/assets/ad_astra/textures/item/glacian_log.png create mode 100644 kubejs/assets/ad_astra/textures/item/glacian_stripped.png create mode 100644 kubejs/assets/ad_astra/textures/item/strophar_stem.png create mode 100644 kubejs/assets/tfg/textures/block/support/aeronos_support.png create mode 100644 kubejs/assets/tfg/textures/block/support/glacian_support.png create mode 100644 kubejs/assets/tfg/textures/block/support/strophar_support.png create mode 100644 kubejs/assets/tfg/textures/item/wood/lumber/aeronos.png create mode 100644 kubejs/assets/tfg/textures/item/wood/lumber/glacian.png create mode 100644 kubejs/assets/tfg/textures/item/wood/lumber/strophar.png diff --git a/CHANGELOG.md b/CHANGELOG.md index ff675b6fa..8684aec31 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,7 @@ - Fixed baked potato recipe missing from oven (#1338) @Redeix - Fixed sea water barrel recipes (#1338) @Redeix - Fixed Quests #1318 #1291 and finish other quests related stuffs @TomPlop +- Integrated Ad Astra wood types with tfc (#1346) @Redeix ## [0.10.0] - 13.07.2025 - [!WARNING] If you're upgrading your world from 0.9 to 0.10, please read the upgrade guide [here](https://github.com/TerraFirmaGreg-Team/Modpack-Modern/wiki/%5BEN%5D-Upgrading-from-0.9-to-0.10). We do not recommend using Alpha versions for progression, but if you do, please make frequent backups! diff --git a/kubejs/assets/ad_astra/models/item/aeronos_stem.json b/kubejs/assets/ad_astra/models/item/aeronos_stem.json new file mode 100644 index 000000000..da775f84b --- /dev/null +++ b/kubejs/assets/ad_astra/models/item/aeronos_stem.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "ad_astra:item/aeronos_stem" + } +} \ No newline at end of file diff --git a/kubejs/assets/ad_astra/models/item/glacian_log.json b/kubejs/assets/ad_astra/models/item/glacian_log.json new file mode 100644 index 000000000..195fdca45 --- /dev/null +++ b/kubejs/assets/ad_astra/models/item/glacian_log.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "ad_astra:item/glacian_log" + } +} \ No newline at end of file diff --git a/kubejs/assets/ad_astra/models/item/stripped_glacian_log.json b/kubejs/assets/ad_astra/models/item/stripped_glacian_log.json new file mode 100644 index 000000000..ee96860d2 --- /dev/null +++ b/kubejs/assets/ad_astra/models/item/stripped_glacian_log.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "ad_astra:item/glacian_stripped" + } +} \ No newline at end of file diff --git a/kubejs/assets/ad_astra/models/item/strophar_stem.json b/kubejs/assets/ad_astra/models/item/strophar_stem.json new file mode 100644 index 000000000..8e07cc64c --- /dev/null +++ b/kubejs/assets/ad_astra/models/item/strophar_stem.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "ad_astra:item/strophar_stem" + } +} \ No newline at end of file diff --git a/kubejs/assets/ad_astra/textures/item/aeronos_stem.png b/kubejs/assets/ad_astra/textures/item/aeronos_stem.png new file mode 100644 index 0000000000000000000000000000000000000000..411e5f772dfbb7f30cb7ffe83875bcb24fe08e7e GIT binary patch literal 451 zcmV;!0X+VRP)L(_L@cFcik|za5hh6A=(^y_>W~{T^r^obNF)q~1+* zRU2lU7a-n6=BSLNy{ND3bM*XVAIZWw$7hxTc)0%pK=yUrY1`dKd=&ovil=p?}!!{O-}DI|?+u8{5q9%+LCwJivBj5UVo-I8=QCtb~% z-Yu`5pxz#~yN$?LyUB8a2m+3I-UUiyIaf6*3Q1RUGPibsko>c@yN!6=KjAJHT%qCRUQX1R!ZUB#1WB%6y;9S+$L+nHRV26puJin6fe-UX7fbaDJ9(nn>2S7z3 tk=C56n$xN7{)l=H@JL4c(cael{tp0hu_~St!lVEI002ovPDHLkV1mh-!Y2R# literal 0 HcmV?d00001 diff --git a/kubejs/assets/ad_astra/textures/item/glacian_log.png b/kubejs/assets/ad_astra/textures/item/glacian_log.png new file mode 100644 index 0000000000000000000000000000000000000000..2cbd873a7d28d5e2d88867ae52ff2f568d35b43a GIT binary patch literal 434 zcmV;j0ZsmiP)L(>+cCK@`C8KRC>0Kp;Snt=7WCd)R0qHhL5b4`IPk zw4vt!-oV7diN!30Y(QjT*?~c3;`&Y z)j=e`y{OeHI8Fg61%tuZ?nx;!5esPT?;**a>ozhG3rHz2W=If>GZBEBho{vZ(Cc<` zQ54$@!Z5Um=e5w<$Cx2f3Zf`ZAvS|;L@8x6(c0(UEz+(_t}BAux|3bRUbmCmu0;~O zh?n#SQ+zXFG@8?{OIwc=u!~5!{%1ijKP)R5*>L(a&yzKoH0AFDp?bBwg{)rWcc%c?^Uft7&UgV_n-9}ezmA4fEcVfAQ$jw1km)=4L{T5nLU^V|C~I*w4G4}cyG2!?(m)wQGC<&>3D44~tPAn0`> z0;IbGr>qo6g}xwqG`NWfU`$22J4hNp5FJN1lc@Sb8!<^HXKkVFCEe! z_AyD;=-5UifkTX`8cF0smm=uh9-*BCAQ*?T+#)Y9rfQ^U0PQ61&lGuq3Vnicct&d} zE`U0c?vEFv+#R8fxOL)4gunFc84;|0R+vf57rbZNxr6iinW^Ebv^1K|er5jv^KaLsdb_z0q0k zC}IH-VY`h9cdCLUX~yWR2f*h~A58_A&X!WnL!(h+yH|9ACXRbb&}pKgg!T75B7!mI z0I?@1k!IbeUat|Ugii3McziMB@_fMM`GE1o@Sp`d2W2eg6Z3Y|M;8TQsBFPQ{Djs8 zuItckw^-e6c=!H;obW8Bv!&dxcjUT2L~L=l-D249kYza!@srI}fD%zr@=^)_t&8d_ zyo8h&+ikbl>>}2iJ-+V&Q09&TC9=BP0N}a~zVD%RLHZ-NDtVkYTq-3;+NC07*qoM6N<$g4uK2qW}N^ literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/lang/en_us.json b/kubejs/assets/tfg/lang/en_us.json index 53bf9952c..7d36577ed 100644 --- a/kubejs/assets/tfg/lang/en_us.json +++ b/kubejs/assets/tfg/lang/en_us.json @@ -131,6 +131,12 @@ "block.tfg.migmatite_support": "Migmatite Support", "block.tfg.travertine_support_horizontal": "Travertine Horizontal Support", "block.tfg.travertine_support": "Travertine Support", + "block.tfg.glacian_support": "Glacian Support", + "block.tfg.glacian_support_horizontal": "Glacian Horizontal Support", + "block.tfg.strophar_support": "Strophar Support", + "block.tfg.strophar_support_horizontal": "Strophar Horizontal Support", + "block.tfg.aeronos_support": "Aeronos Support", + "block.tfg.aeronos_support_horizontal": "Aeronos Horizontal Support", "block.tfg.rock.hardened_deepslate": "Hardened Migmatite", "block.tfg.rock.hardened_blackstone": "Hardened Pyroxenite", "block.tfg.rock.hardened_dripstone": "Hardened Travertine", @@ -442,6 +448,9 @@ "item.tfg.compressed_trimix_3_bucket": "50/30/20 Trimix-3 Bucket", "item.tfg.harvest_basket": "Harvest Basket", "item.tfg.aluminium_harvest_basket": "Aluminium Harvest Basket", + "item.tfg.wood.lumber.aeronos": "Aeronos Lumber", + "item.tfg.wood.lumber.strophar": "Strophar Lumber", + "item.tfg.wood.lumber.glacian": "Glacian Lumber", "material.tfg.latex": "Latex", "material.tfg.vulcanized_latex": "Vulcanized Latex", "material.tfg.fluix": "Fluix", diff --git a/kubejs/assets/tfg/textures/block/support/aeronos_support.png b/kubejs/assets/tfg/textures/block/support/aeronos_support.png new file mode 100644 index 0000000000000000000000000000000000000000..dd8dcaa667d1d23e93a739e18659c11d5b09fa15 GIT binary patch literal 27723 zcmcJYYpk#7S=KkkV5w3qM1p);EDWiJch+-wpVLZro1weI3}Kftok+zHd5$yN&faUg z)|x{LXkrwq{m>$6sGtNe`oU-fOcdLI(OUY2nixDJS`(Da2O%OJuu*CF-T!^)RQ9y@ zLTRUa_TF9VS?~KC?)$p0>$;!+pMU2&zTrz>|5dNQcJ11iKK0~{r}_8qlmET$ckt_n zzVErnzrN(|lYjK$+O^;PFeU%p%Wd*NKJqiiN4LiH<8KW&&CR=So6p^P@_py?UGICx zGyQ$<>17E)6T~_efq`| z_kR|Dx_lSelarTTdg-y3{9|Y5&z{&)7{i@7xA7I*#e45u)|a(}ty>#)1NN4eSr|IbVD>Zmsuz!7qKdGN*4ld;aYF=Govm{PEG~ zr|azec4ZcC-LB8hle>4GJv_zDo2O6Rxwx!%`h4of^GKnW5}(UYBsxgG&}deI4f*s_+0t>wvR4H;j=&a!6=XO zeitm{#r>o9_4V2NzkB}HTOR$;#>SEA*tZpy-BR1_R#NDj9j(kbt@SIv`9w|`L)<&S zuRWF@+3l@wygFOL?T)F)bz3v{HDakTPyJZS_Sp9=r0BQVSen*D*oH5z1SU7Nq8@9{ z`>bu>49~PB7M2O!%{KFN+2l2>ar&{w-dswX&n|DJ$XK@Qo3+D*=vNQDsmF>fxz2O7 zT+B9tY?xNU)_V=P*X3&q>amiYEw#K27v~o1UU@jPw&`XGIq$m-UOiS$tM3!_Q!se(sx@ap#0OcKH?~0kHMyw^T}J zvTSH8so$}WHfmc$#WuHnKg|8|EM_lhSnqn)@2@q|h`f}Wscz0Q_cgk)Szme3ID8CU z`&`yow-1hD@MUeSaJE@Nc3R5QPAA*G>c?`~_sOmb``8)>N)FQ6vX5=7*wz~AJz-6n zv(36yXV-Rk+iE!hJ85a}iOn0;b8pQc&{h_1kk4k{GwT@b*4Y#L9L4NTz3;7AF8buQ zJ#xT9XB~4+1aW8Ensv<8)UnXoUc4J+3)wT4-zRa^@NoM~IS`^;)bEMCx=?&0+=RUCmia2f zHbxDz&epT*M!mn1-D~Nbq234)ll@imn%gk3ctb8C+v~^Tu;gsERZ}F&lOJp5fJZi# zi99rMQa@JOW9Bf&S`SmjI+{MVeRZOCsjGXd9xK~Ql*$A@N7@LyV+#vFz6?jakXfoa zPFUjoU?UN_IMM70^0wzZ`f0}`*NtHGd$o*|hzaB&4tU6Nh8p32uc^fqvrkq(Up2---Mj9UpU#sW|=FZn2Onn0rDyBamyeJZA7MyBJrGO`SVz@5V6yTbiyA zT;&WUUeu3a_S9$eL5-Q1;W?aJ+mevlo#32O;^q^%E-h2+Q0E~K01zn}qE_D77(2hP zT-J{!?!@9OwP_yi;IQZu```JJ;}Z3D}h3PxdtTT#!KDMvOo?I(DQVZKk z2aHMXU=n9o#rCAfCXR=4uo=YF&ejT2Tbb^*Wd&VZQ-?n0xXPvo2S`Y+ZBt?)B?p1p zm!2nJ(dy4olgh%Ag4Rl#-3dH}!_H#%Y=Q$#C;gsig*4AB5xH2$B!Es3b*iSbS3#Lh zowr?gV*fRlSMZ9DBAc*XD9m@B5W{3XlX;R1uIb@7R0W*ePt487tUDJC-Lmuvola z%^k2K@t(u8nN|qeEUfRixRB__%*j#^bR0#I<1FdNB44xgTeHwm?A0JOawhy!G(-5< z+SIX->MXS}DHB{S6f%+@S7P%ISSc#xuy%Ev@GZ>UldUb|Y@`a}D!ZQ|vQebYVnf%j zBY-r4y*B46U}rK6yhH;>1MI_cfqGXxUl1L>1Y(XO7Lvd?kIBP8u2FaBiPfySt_A*; zK1n<&kR&5X4K^kLrWa@turc)(J_Q#ZVoncn>=h`Wj}rv@MUBq!sgQH)Kr9^U z4)_ntaoo*R$BEs?3TXxYau90N3bOCJU?$Ju-i7T@*R{J(Y)TK~J*c;baB0nYijPsI zC)?!})q8b^i_Oj?VS*dQ2Xjwcl>-jRK=6rIsI6d@h|+}mn&5MGrkkw=Zvw|b>JD(3 zdd>`4J+J0Fyd3y}xu-M&V@f^5-pwwM)x7#_@31+r zT)-vIPH4;$abf~F({f+~1FfPzk9F_ML(_J{{$h7Rc*N$(wSg)WBuo5I&liZCAT5D3 zS#~>nB7-HUhk`AH?@URkAFDgc6*!nd_5su*i*yRC)i~EXv^V^pdaUMwk>u@>2&wQn z#KIKdYDc$7GzOwc|6JWwzS&W6H zx7DA=G1;3Ds4BSwj*rMM0NC3Kmm{>O(Z{dp`1$ZA%V#--vhPg|V1R|*#&+#fU8g~} zlW8fdY!O1u$eyqqDF|=gj%7$*|6B{DZv@!5>Zp+^iJ7lnw?0;imJrnx5est?JUUXfMx@0h&t&u5_>#~k?fOqEjh=S1|_yhE+d1wa9lg9|IFCawjFA(;F$)cYRHT&9EQ1yvAu zpvAZ18c}ij5>q$mbo#kRRfQ^~ILO2aNPKj@2*zv(wI!L1vY^I==muyl#OS&pJi1_j z1}RFh<^iAZr9cF29*QiTK_CJ%9l)XFM{+irG&uIY`u!XgZPS z+9B~P{}*9borhvTb|>9awofpom;5N40=!Uf?Bab{{r)1dSl0l8KoqvA?A0_R7S3q^ z0kiAzSB!8S0+-MuzyMP7WvB^}u~6B}>Pe5kVuXzq@RkaJI>E_-b3o_W0qh}kKvHUa z56K0xXO^f)5%T2>wGJN*l*57IshO8rhlx2$V1_N3kS7Kvh?zqnt^0t$g52KqxGpAKZM2^}@>8?N9B9xQoB|4BK#m`hdaY7`0JXr95Qy*7rhQMZ)pn))$ zO&P006(#bSsThZlOV#tmL+xUB$ct!d2#eHKglq^t9*O8fMAMH2mjE#Z-A=|3pMz-9 z0>|pC2tE+p`sZqncf_-{ENpLDf=ytnw$R|2BANrYzhl~k2e7g5bBFb z!A3p5N`(lJ6q8nkL-z8H#gNnX>R}q#E;*{tBhhphI0@<^el_ukpdV8*J7gw!t9S*C zHSI7>_(4cwIPTc1cxuowH^jmPJ+wRACyLL7HqD1UA1ONoaF;G3BzD{ON#6m2GBEhQhy*Lp- zOJKPGX^2Ka=vsIl3I?k%kc#kCsOJkHPmzuc5HpS_Y7KN`@}oxqCSY{9A^me@_(JB2 zgh<{-GZft&HH;8J`34z0ntr~ZqcNyZ9Do7^e=+xgW3cu?I-}^yLBEbLd_4$(gHcF0 zKBfxR5Z%gR?F4{c!7rD1L%=tCbyAQb$v~*>ghpgPJTPtLu&d)l0@Pr;<>U-%cXpGI zbDRLk05Y8zTAUgK;9bS<#X6#Y!r~nK6LN<3R*@F)>m*AiZQ$mpt!8yb)j&a3q3N$3m&AD2O0R06HKz))B^)QVU8T!+)eu)ayts=J5JZ zZ2((wa~wD;N*VwFh8>=;TXjy$pbrqML!L#G3OQK!MBn1%f}Td$6V7&jK?Vcx95+Pj0#3b7EG z6wC?C#KWtuJD`4WEKM*b2=yK=L`UA?eSN@8>Fl)nJpt#7>4*oB1_){xme7HM;W;oW z@@OoydcKHW4ZDxbIQ%^Z9g16&NZShjMtF?V_|MiCD> zV!2eHnA5y)3fL;CB&qhucLR=1JNLyQO<8cErCkMgyX20BXUp0gqfOvEeO~~!Sqg$o zp&@h?+e@$sOc*p~Bj#g6)?*W_11r&7BTGo`5PtQLYjHRac0P?6dfub}+;FJ^!tu~j zavWBH=pzLd!HY1K)Nz70g9D}A$5*;wnrPCXXBjKOLBgHvR-J1L4+RB;F*JDG?bMPG zM7a6^C1}zMbzjeQATQ!8mFO@L-x&q|YX@@H!3tyGCUL9dS1IW9iyi~o38dVUI3e!& z94Bs17(0{-_5Q+ZF;Yi@K@;6D$Wy~a!asxu?p2WS6*w#OMbZ#}zKF3I&jVplavE9= zNjr)6SN~kNj>I^F@`d|__{Bl$2@}O)dpRnQ7WMPhaHx>ipnM~`)xi^(Sp_(1oJr6E z^jxXut7q^$W;-m}hbBEBA<&*91*c3Jr*lrti5B826u=_6Qov)=<{hy-GHE41dh=(m z&b9a&tfRqXqxXkQCOTggR~hHAI7Vym%j$Ooaf8mpvM60^g%U>{Yd&w=mQf!6RJ6gctMHT2nnTq$7&Fz zk=P}t0R)`HXt*V0cse85dI5z;Jr-z{jYMOi^cdj$1~XwJBW%#1nP;xTu;g3Cct>w7YUKaP}9^vFWQ zAcXOYbT4MaKBOV6_<9^&k*y9K%oHpKp)6bnEuYX5JBf(aQ@t;(CR#7W@P#0NNk{S{ zf(&#Rk4Pe@A`Pq8k)psDyan(!X&chRLJbMMlYns$R||lz9t*M(Ivh?RR&mmZMgfyd z!nF%jfCK0X`-|)va6!ZS;+I2500k53p%3Z%Km1xi^L`rDcu;j!ZLYH&&!Fuk#bBLO;EMj4V&Nb>>bG|nUaJBW1y=I9DB zr_w8eOBetFp~hb2JR0l)qMTrXr_-#c^AIl)J5)V;Rh-|VHDzqM@Dp@S!E!?rs4-K; z&XEo!+GO9uGl4AF8EoBNqlIpz8&bXRNrQYn8W@NfIze&=ooV#oOyFwoYI12+uWosQk1(}323l%v*z=?R&@sR4DtB|@V%%Bf& zCkXe*X_uvFcm?UA=Mn++Sd)7Q44Pp`2o=Z(oN}rU%1PXO3n72%bw1=htcnA_NkJEd znPtmUqJdlk=bBRK3Y=vp+mVmK`=RIo0ttkq~Qlb z)B)_&??|}74zPpu)sF?AjZ=cM9bS%_4^0|Rtyo52O(;__ zuBpdDKcILe55Y2G^O4kOpq(&qb2|u5vaI*#G%lFfMW~{TMAa6~9X$060U=CxC zsh&4~Xb{woMfnNU zM2Gz&Bxo<y^bB?5m?0B)FshzKaXy6xb&GIVMnsF5+%@ryvn6%5F};5o^P2i*!j8f53W zW2VqTrOrbgnn_IPoM?m!oackiMFl98CS>XPVb%J)(S*b$*>2!O0BU;yCUR0 zRb|reuL$ofHv=&i^CcciF7x4JN)CqHE&w6*zDG-XNm$TA#8-HegO6`gH9+|-G&+8eK6lWff^|bo zAtYDHwS-i#J+2JtUtHXqqVFrmpM~29t`-j^MqSAwvfagIOEpR#FBW3;{#uTymum)O z0mzRO-B1?dnGaT)l1Qd8fWpb;)c=J9m651Vi}e`X}ot3IAVw;`f!z3C4E#M)OD>0Bptn;G)u0{ zlzP(ZMvR7dM^MAwtoNl2ri5!+VB@eGiLSue7Q%zOfoMp<7KqHPo_lf)+8KSB9*jwg z00VlsGz0-EK`vDA`n)|Dh$aqToVcr^^lov71yvRR7_3Q!tjCzZdP2Ii)&}a@gV(1< z&UVIC;JT;J)9dGcr*ms!2iyl2lOP&Hx6{7JJtD=iiX1Gx&kFLIhA%)80S2Mi@z zgk$n_SX|*gK0GgSho9VgN5zgx&M+i0uI54C!Kzu=`0D4va6~f!woY88+-f4R5YIN( zrvZ8BuYq@0=UQ$XB0AIV0}7F5R>3C34mg-ZF%MydbftbS`Wv{YMz%bh6`oVUzTjxf z>OwR@eCum>$~rtD^jvc<8dalUChC?6&Vl@c;ba@@_bOV;^7Jewh+j6DaNEdVFw->r zIC{gbfC~qnF_4b5HQ(d5fpI%tSadK9()8+Z@t}IX3hB90r!@(P_x*+F9qbggJvA~K zta>ak7PXHU$kEEB2bKiF8KU|Ymo5ggpvHwT#k4{r-_v_72}Ek-f?$k$^0N2o{LK-kkEApq84YHI!JCqz$Az>pPiz{ITNLK4Vq24VT-Bajtm(KS%#K5Y%t8`74|9(@=)a* z=AFuz%LTw+a(xFkZDO*L3plT^zc6;vtHYj1EHzo_?&3qlsCj+=JW3 z8-S2+8|)SBkRvL{t#RQiME$k_KB!Aq>CRk9aPqUaq%-O|iXlpQzpgPN!Yt?hjHB*U3sx zhR{M#k+kU`8=+2HJ%7)Q&kF^VdrrZsqAPI9@!Vq@<*r&w{XmbU_8ny`?%)MQux1jd zIoqImN@mD9krRDZ?|Z0E?rsIkp)|^k4Dyb!YhrJ*EP`8P67_RY=cClJaM)pF!wOzy zK$aJKCvEuLt*9OgBAf6fJ^gek;Ljn5QEk!l<2?Jp!(CiqEQq8=PU{B61ZNcq7h54` zoBzV`aNnt#+g^12Vv0j|C%H)<81bHJ1631Xf@VjVrhhIZOu8qSb{IV_niWhgcQhK1 zIme;MJs0Zv67}B@l&K>LsfT-qJC2xw5x`r{0_j#g7DimTiX6?5jvDT&qk!j@H1utt zK5vM`t*$$kv1W9_+S?F z_qb6eM5-9MOAIj?^Ce5zv9eHF5eNZaSMZW8ZhmFOC^Q_7D9oJVEQb^2iaJZ}DAxq4 z@fT(jKP-8OMiaDhI-_A@sFtx{K$j0R_(%0oJh=9sUBhLSFoay0Pn(t8R&=8&bqGUnz1W1HepEz!@Ust} zs*o^UAb`RXA{#<}NqYbU4oak4)|iz zi=Y3|=|&OC9Ij2e&AEY);42@Dfjz&Bz-cBUzs94-XPi0p;gs-t|1(8?E02DETKjYL z&a;zG#5pA2Lm9E9QlW-P`>z04y&^W?YrW%}8j7w7q_ zHrCyGUinm?d46&Ic%7f!KB{-`K7XrM*@Y)B-Wm5lEa&0gKDs4b7{eS#AfNDa%BR%4@cBQthC=KMwl2wzmeJ1sUq81-_RwJ(UiBeP5B`czhLYbt{75SP z@bE*e<{i%MIUiZ|wQu;;FY|F%|Lv(8k3aLK@B8k*_|L!bciP|c@&EXtFLVBN@A}oh z|CSGb`m28W$N&1re*eefpZ%$qKfQkPM?Ub%U;5fV{+a*&umAn^pZVy&_-8-;)=#>> z{dM2?r~mCQ{@nXN@q@qqW8d?|pZtR#c%T23_=`XBBOgfL|Moxd`Varh|NSkme9HW% zC%^sY|ILR#`0-D@n2!JOkLD--&pI{ptI`X@i}!yo(w^U?49TVMXlXTIyN^*22I zkw5mvZ~q5>;j2G-Cw$@)KYAmaJ$+;TtAF?e&O5R^p*LGf9U-efAcH8+5WvJUjN72on}cmC%G|HrR={}YdY&oBMlpZcPwf8d`!{rKMq VKPw;i_0-$napUiP{dfGC-vBh}DUARC literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/support/glacian_support.png b/kubejs/assets/tfg/textures/block/support/glacian_support.png new file mode 100644 index 0000000000000000000000000000000000000000..1e62a9079f84abb986692a9724dfb492b9376416 GIT binary patch literal 432 zcmV;h0Z;ykP)Px$YDq*vR5*=&liy0iFcijr7B|R7PlXM&un4;m*?amLK8BC7TQ52oNCkV!7BB<7 z$daYoFgH!pe&>9DPHx^`-+omU5dmOoCTyFI+E&E1b9<&{lJ?qqWIjS$Pob?xL{L?( ztsFeM9i?+^J)6%BMdyydACmw%_}V^V%2Fu$UeVUW*rm$01HN_ty=~y90dpU0`;U+caOH zz`6EFHGiL)$%Q|CuN3R`2e}XD)OT)wA*p_Ngs}@LtX4}ZBf*0swLG#&9T*H(*ZIHz zPPv|g{lQ<2HUFnruRpMMcA^FsQyGgy_qFv@MuLQR&@^8F+?9c5Od!S^yK3v{oU-}c z1O}_sGD+CE{UCt|dRorY1 z!`|D6SgJr=kzRxbE>H@HgQ(P?3W1Pl3nD=v0g)Ot5=B66K!RTM0%(v(S_vY4>pzD$ zbeyayG;zi=lfB>leeYqdXFboe-v4KwyZ+&KJ@!M7UAlDXUC(~x>ht{jarxixc?ZA# z)aPD~{Og@}KJw$|moEL@ACUk3u1i1t*WP>S(x3j;jTc_Lc=6iDPx|StC+awD^NBZZ z-QlY*U3&6^Z``T|H+pwAKe&NE`KUqGuQ4sJzu`@kvGrgC*QpO zLVxp>UdH7Qe&FcIH%=Jf*1V`kZ``_h`~2jME0+)Bp74A5>*LEuhcCH!<;vx!^{meiy~a=ck^66Re)0VL_IxV7oi9Ip^PQ8Y&t|4C%aeJJ;e*Q<~r``L8d9_~5E0>*Np^U8e3pSqY{8RYj zi7|J-^ctIJ)QkGoFV35bFIacN775?^#i!%O`t(fsNwZfo?ih0c@b zSkl&4v#v!uM{)PR|LSRfRaRKO|LzGHr=2mr{VcH;Gs`NQ&$(}7-@{g%DO;`TrC%~ zjj+e9wi349YskGWUt3U*mF#S(fv2t3queF6}##R?o zRjsX?nW6VG_qu!i+~@3bw0T?6IGOvtwN?BUTPdw3U*_D^&sEHDh39h7_O1IpZQ0te z)4Em&Bkr4z?SEg7;A5w{~Q^92D|ig-^`3VC)Baaw-^Z{txvzDQaY1m zLt9Dxj(xOI+aiRvx$XO5?w4mVdr8B3*Ry_qt&v9LrQA$)bDp`c(T&ae%7ez?W9ZuF zvc|f7a1?_tYiotG%?h&9Ql54?+4faGmdn0Rc2(HN);Lgdkk*!cY-7c?)==*WYto!; z)~!0bw!_<2%L&*?OM6dj-l(2?YX*U~vT%cZHv67g$7r|Cp4iC+W_Rj+Z_RSiC%5g9 z15Ro&Th56f?rdALj=7pT7FyejcY_R-J!AQO5?2imx6hOVA=)+d*(OeL=1SeX^LBGx z&SMN?8>5rFy6GnB$J%}Cp3G@YBvBR4W61;_>st-RC8D8zPwdr&;v3;6+E89wx$^<`0+6cU33m}=k3`e|>S*kit zSmOO)BN4hd(d-HGw&y(hX~!hjjbQY9wTzUA3FILTc*t^w8sUGhsl^quPgXx)HO9JT z+(NZZ_C0goiToTLA9IhXIQ`jfv5+g6dqO)SkZZF%X7DY$7*~%?ojYvr#xVa|nywIB zR^HhdJHN2w zwzT&?8_{U*>i9+Ytaaz5W_EM)J7>Gv29`4wjKT`HqMk3uxoe&DzvsGdPNph%wl1iS zSjdKOL%ml4)Gbt3w_rKofV#dFmV>!ZKE-9*DC#rhyeCkw(Q62dz=;O?#I;8pMTJi@TiXZ_p5O3#ztjLWnPu9Rc*{MgW1)*71#+Y8P=LTLnS54Xb=y~L%Uq|3-*}dS2*|!Adk{9J{+cn)70hp&>$2@y-t?)=KY%3iw zCb@%2oM9E)lOCHm9?HRH5LY`}D@bi+y4#i&bZt!?`k3P?n<5+_A-T3qiG`FL1ZrP; zo`6NGKSNC_3r`AKD{Xcs@DvU^i`laY4m6$gd!iN6JhMdPVjYtJIziN_n$BJYWjb}< zcHNB$0Oz^Da=YOj^B97HYYO1cG#_Dq^|3o$uhdhRlvS4E!$?kJ+S|rXVXMqo!7kddJh_3z;`J(o zgE_=|4$o#IDIxlDF$y2??@ywwNV1v z!3N8j^PnFqm>!5UfN*dj(T|yvr6A}yiXz8Z(vL;HX6d(P4f#~=C>_Lrv{Tyu(3$_TJ-%=EAC=+wQaAeNfVaN1it>I@QHJVT% z)Fh`hXdD7{;jcmKWvchr4p`kIyh++^Vf6&x7s_1t#gwVCVsYwNxKnP=hlH(IMf~R zAC}{|o2iZyyN?yp3jF0D)Tk9?-*>@Gp2NKh+o7&&cc0jl9>#l6Zx7+pn)MVPqfAe> z%PXq)>JAs1ok_w3H;NDDp13Lp9Fl?H6Ca_rf>|O;6Y6V%&)J!7widhz90#d8z-8(= zD}dm#laiKFCT-y^sYA8w{qDkENCmq(u9EAaBML!z$^z`fFERkX%f=ETW`Jc-@2^Ou zUpUq#vU==$3nuUIt4w2oD)KX`IXQ70&6wS^$zU~|EC_Sd0-@Ydn7_Cd=9ZN z1-RPLt+&ZQH0htKyUI5^ik9j`q*)vv(ON=bG+6Eu^>MXFPsu@=b&|ZN%)LSRgp9Fp zR~|-MzgLF^GZ_d~%1D-wv1(vc$mnJ`UqEbq`~u*HWjeK}@DrW6mzsU^jVQQ>4sWYJ zk7KeoBT!Xx2OJ-fUjVST6)s0;QKOGv)A94+O_tAc3T5A$8o&T+w~p=Fr@BsqZYR@H zR@owinvp$WIZ_bbydBGsy#BdX5GV~BR~(<9g(Q+a{J=(n*te|fQ36yYh zhhx54Wh@~70{_Ag6!l&OO4baiAxOz@q!IG=Zs0^yYcl~U+*HReqB490c%qZ-QD4|! z4Vo5JV4>-lfI^_2uMnmS-XU2vq663ve9ues$_O9;&@uEiOaP5Q5<-kKJ%W8HLxJKO zJS~~l?xmX^m_scm^#>y8hJPeJf(&y9B_yUSw~y4 zI_AK)XR73a`m)&VO`Z!rVY9CKn(K^CpVPpjhylpg;TH=hR%|Jd&warb&L)JH5JN`5CIuLwTRZ_5#`~kU>ZOcIjdt1p+2{X zzz^-njEk08DG;F65Dd#$Wi@qNC1Rnjb7;`_5f`lFp$Q8)c8E+n*kMIIU(t~35fO;1 zEI<)Xw0g9Y-tsC5JQt06e??Rv5nMKtsA1q9VNfFT1#S{jG(b10=PP0k>J;jv|Aho2 zlpK)^Dl$X(f-{HFB$`g-xpqkW z%Kt^!Rp+4?klji5lZ9EckQ)fBo@wT00Fb> z@mGv+9RiooBftPs^JS0c(CCArarFL41vuoK?5}kWf`kO z6(#bSsThZlOV#tmL+xUB$ct!d2#eHKglq^t9*O8fMAMH2mjE#Z-A=|3pMz-90>|pC z2tE+p`sZqncf_-{ENpLDf=ytnw$R|2BANrYzhl~mp1_o5bBFb!A3p5 zN`(lJ6q8nkL-z8H#gNnX>R}q#E;*{tBhhphI0@<^el_ukpdV8*J7gw!tM~{SYuaI& z@Pm-VaNMz1@zkJWZis~odT4nzh;|(b46xUv*`3uFzey(Mkd~-}S|@mw?$vQ35%5qt z5URXj6T>=|iQa)D&7%KOckOEYMTyvLz~#vc?Vx%>eVxplh=o`VMS@l1dvPLwmcViW z(h!Y;(6#V96bx2jAQj=OP|p`Yo+2F?AZ8p<)Eel>w zW+=KlY8WAc@(nV0H2r)*M`KW-H~<9-{$lO}$6)P)bVkvYgMJ-h_<9fm2cwX1d`uOr zA-a{t+6e%C1ixJ34FTWm)k#5$Bm<$g6B?2I@W8Z{!>*1K2~cA^oG4n1P?$0nRx}|4 z$aG?8acT^JcNM=E>xljdi*xW#$QjyOMOwhGlk_@r0{1f4jU@#8iaP<2zhLt5L}7cw zkFo3Lo&=3I2z(D2BODCe5N0W;NF;RP2S!HyeBtK^jYlFslDvg;uRz`n)jhDNfKI(G zni^A22}ME#=McX*)`=J8S)tGa6m!+bLRilh#JjSKOHTM`YiI8z!Ok~WVZk|NsihP@exs8ojVeS;|ZTcF@=H&_XwYZ)fR22HB4Sj(BPA5}(m{ZS zi4X|QUbSROYNY8YC#EP_>UBddL60799|!)4PYy7 zjss^!Ndo}Du)`B}tIlZ|^Z{a(=m6I-4!*RB%@$mM%#Hhwu&do)BAEFAH`Ji(QOHF{ zUf@Eak8{{jK~Cxzjnah*z$396cJW$M4?)|Lw{d08;$ZRBXNZ1-Op(Z*K#GImkhw?R zq2?QiVwKuz==T?%nhfa-MJ|92?2P9WN}0d(l(YtTuOADswiuEa3Kc>{AwPn6z|rVf z2-2g%qpRmWC1#h@Xl7@Vq0@oCsMFw5%)q-_QNBN8du=n=*Wj6jfy1ZsSIq*=l;M;#{KQ znA5y)3fL;CB&qhucLR=1JNLyQO<8cErCkMgyX20BXUp0gqfOvEeO~~!Sqg$op&@h? z+e@$sOc*p~Bj#g6)?*W_11r&7BTGo`5PtQLYjHRac0P?6dfub}+;FJ^!tu~javWBH z=pzLd!HY1K)Nz70g9D}A$5*;wnrPCXXBjKOLBgHvR-J1L4+RB;F*JDG?bMPGM7a6^ zC1}zMbzjeQATQ!8mFO@L-x&q|YX@@D8-`@NB8giaze+);U-THzP9Wu;#0hcF=QweD z!q}lysP`9Mi;+4K44UYML7o~W68<4PaIb=lAAz$%UnC6y=!+Pe@jMU)C8wd~khGI{ zfA!CW>qv|fBa>DFq&I)|>RgMj z!8#gDXlaB80KoBF;ws}j7RP7}ep&sFKrZ$Xo4|^&BlCqYgocl&6~swEYicZ4rU+`p zoP=rqZtoTp1O6{`ZwfV94D=X)oj#~Wu^&m_34LJVXF@dx5ick)8zG^z?^q3@G!nby zG=PAU7!9|C3{PhyTQ8vSsK)}WvXN*klpX_|-(V(eWP}YGl)R@oV5)Pin0w&`DOw~9 zrbAA{6HckcHfwz(tJkDiD3?h#+ggyU;6U>BSUl#AS8zE0Zo;eMm!C@%1>mB3m6em?>BeLRq*DT0WsAb`lY-r+QynO|)K$;R`_klaAy^1R3Zs z9+5;)MH*JGBSnERcnjcd(l(@rg&GoiCjsLit`-1aJr-mobU2(stm32*jRGc_gliY5 z00+<`>@Tuwzy%HOi(d{M0TfKAhd!k51Er6tS7S`#GhqiZ8)_Rq=isXqJF9pVDY>LI zQ=K27qwRr^Ks7$#FA|$jq;zB83d`g*JufHrM#?d1G(pv7H*kguowfto97836Lf?Bz z%!3l;r6wIa(o0F+UPy@O6V!i=x7XwQihBS{4XM#mkmdu`?XWRdIfc)|9d3!cWjS1(!{^WZ2=yms5-7RZ}Gs!)%Gi4UhKR1Td6cYU>);sp#~3zJV{ zgx;e|^X0;I3VWY50KgU2> z*AwL)4N<5<(j(O}p%Jq@=h8YC^gb92fs??_J4$moksckH8E4M6GSb-$u(z&5Z|cY5MDD~@JOLySw03YIl_b0c5r@7L8U*!YQGP--5hB1j z3%zGNh3?%PnWBRCngaB!Fh;l^Nz z=JiC{Tyi@=l4z*T+tBS2+L1AtA$Gg)U*K2i4Fvf>5%B8T`GSLshoAvYM@n(y89~+o-`^s2!79jhfG{wcv*WZEAJ+1qehHaYC*`^34lDA20l#|Fz z9Ez;2-64$!!he?uA_7XUZaX-x44oPXYGh1x{2~x?1p~4#cuun7LAQdB2HAP;m?^YS zsq;{WW)c%RCmNxGrx1MzN(RGXqHSw&#?>*p(|c#QwE|I9GVB4bQfq9|t_XQgRhjhr zE5bX=%|MLBe2IsW%X~PQl7k_)3qVM{@6nQ|jDfxIjQ4T}8nsZQT$jQHE&v|&Skj0- zMR!N$5PgW}BAOyS0ms?0d+@5E}{fcjh1&?O77ryxUCAP{-Nj~0HA){Z7Gm}OT8^ogYX)Qi$d44= zP!{5u58PR{W8l)S<3h)Qx57-2fY5XkkvkflYSfNmiR20pb*>#Sk912Ao-;lLVxe5n zKn=rf0Z7t#ooLz6zT7)9fu4_dg>FD*OS#oWr)RSH} zVl>1%f*ST_y)SJrC0x@28;9LUbOp|~5FXqOL_-R;KxA(9+>>k2&gjeZU`$#B7|_F| zAqY?ja-o9P=k38jG;sjq#9bAocZ)kLsImaSU`;AyJ;nsq6Vj!%Hc;0dygoH@wll5* z*FAlnUO)Fcom&$-;6AvR1ko6}o%TiU5h;#U&OZ8ZY9oTV2s6x)6?jU|qHL{LyOr8#l zN4Sp<&x_pQC->e_v7?eR42g`ZdC+&TYF0MB`nfP1(M*7?6PGEsnn*0fv(5EsKpy&Q z;N8`^mfMDi&b0f0LZq2hunDmP4kl5|Ls%hQsh^Af1}>_REe~gf=TxvSINGwh5KR!@ z`r4hc4o?U@*W8On)hL*Wx@CfMApc-E*~a?4iq^6`J&OtAmrW+zHu4wDGz~wF-mpi& zg#*tRNJrY5?{eF~xE(JnIv56NdUd#XP(5FT^jxXangqmq{zCK)b_&~`8W{~%Jr)>? z+D8oJXywuaO9J5xQGJU`7lT<)<3gBXTA`8e>AjW&A~kZsp@zAZ38b-zf7H*#y-^ez z$Z~j1bwmj8@XGM;0H$p!y)fzrNsOiM9U=egKT&%E}cML8{`nKFzi8Hi&CqQ$l!)hTIqU} zI~p?^4qq*f0}RjLeDz+XIUa6EI4dr~ko+j2o}5O#$156cZ`AubCX_qnIc8xRkGCk- zGjffR-1P*)!_)$;pvH1soK#8wa#b2H%CRA*5ub@PL~t^kdOLfvtp0Mxf?S67Z^!hIo8nX>oVZ@}VD#OOol`=DE=3Xg?yP z4*1o`4u%CtQhun%Y8~Ae%9krZ=sP)R(uRo9xhO?$ZQv3;{a77G6SGXY2e*wk3MXp? zGwq4ALBN1V)}L+sA-D+0+al~Bc}>gS@)N2z7uu*1lP6}-xTEHCy> z+VHtsQ9Tw!HsMQp`sq@@pF>cyLg1LAd(t6ts4{*oK+-TY=xX{{tL&$ zeWz+}d(riaDGuG8hnjK}D{<)Aa>7HQPVf46YRxr8T(P%*C9ET$J zT&U+u)PF-zrj8_}9_}6PIARJ$0B<=9q+9h^7;)t)ax_CaYPhS80-jsa(6@p5yde^| zy6#xgDlF9oye}Bw;Ik5o4Xg#W0ImlByQrUQ@+ML`a=`iJ&~GKTN6=e~t3ViA{T;?~ zEeEVSQC@D01b=ac@I+&k;<`Xe%J2wzh_SfVMlJ=yMGLCuZ3}f3_0Yk^2eY8R$Bi-} zQpLz!Vu;C@FImElm4(uZKnVDH1TWd*=2upXLc`&R!pteoayU`0sI%0La!sHbe_=N9 z!;*(+G(jt;Ga5FAY8eX#booGoe^?*I{cHc(HC$E+L&%l+v{}h*MTgrM=vcwfCRU_} zbvxYuZuEU_WFaUWE^EOY#{3>S(n$_jM7YQ2VSSwUzgzQ>1HW|#KKSm1n&YJ5&A`4> zgM-Ne8VDRBm;JHm+z$Ho-`zprfL3O0Qdb3Ta3e2KhcE=!i%kgXhegEuKbx`wi5}Ah z0w_EovLWP`vLKWWzlz_w&OEC2jT9A zDja|JPha5i_{@oq+>lRW`1HNcP59*eGY>vN;pp&TA1AfThnQTs+~or}=D2+CuWvl$ zvnn)8bpQKbe|a(}?sJ$egty=N!5nvg`uXX)c)gy@r(WW7ExzXme;mKv!=KmJzWbxo zjUtpeT$^;8a|0p4mqdWg8|gc6n#ss-^XTyfXHI-LA-vxEOp)Ktqu-m>{&Kzj(&Q6y zjxYcAUj~*In+gOSBqaDmE;@lwMuQ@<3iao~#SeR#hkoYC@9@j?)7!7jv$t%lJN2yc zsXp`U{L1BZc6#fm-nn!0Mz699k6*hz?tNI!gS~xpaeDOaPf~f?NgMO*##{ElTYt)f zM>zWb`18K!j?;ax%iY<3>tXpFUZg|(xEltJ|L+KK_s>`F&g3()Hir-NIeAzt(C$G# z;pc=;sd@Fge{Kzh*!OH*k{vCho&LXmZjJ1r!!*3*L!9pa6`u?xzkTqLRQ%z=hg!|s zoZB-#vMT)aANs?5+|_S9d-bUo-v7Cu_?*4|efIl5^p$`8`4@lknICxUtMTQ(_{&#* z_7}hJZ~ypHPd)d8U;fKC-v6!7{=3KC@u}wo|CC;#I={o<4V<~@JqmybVJjz9CQ z&wk-op1Jxn|LD*D%2$s*|3CiHM{oVzpZM9|{Bs}s!glv^XI!Ql>b!!=0|UR@DKdtmw)jC;|D(> TpZWFdhpu1!dq4W8{`~&|5oRIf literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/wood/lumber/aeronos.png b/kubejs/assets/tfg/textures/item/wood/lumber/aeronos.png new file mode 100644 index 0000000000000000000000000000000000000000..aaf28be6cd0fa68bbee448deb608754b24dcad77 GIT binary patch literal 371 zcmV-(0gV2MP)LlR-|yFc1L8PV6*NRf!@b#BaFq2j0gYxbYy=N~LMz zIPsc8Yb&HdLBbb1j&^o-S5`4b{~oTu+Rn}=-%F9HAt=P6eD;C!|io0zJeg=7PffIBrgdoo$-$+!e15`I`DQ2L%Tx#>Z&7()QsLz7L$ zka7~QfS4wd_VIK8Lhk`0pr!ys!t^Q!yHkT4FaNbJ=1br@kyJlGv)gk%9sn>^jj8IK z=*A#fG`l?_0j-O?r`30DKFhMgz5!}ItRKCU Rro8|F002ovPDHLkV1oJ(nLYpj literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/wood/lumber/glacian.png b/kubejs/assets/tfg/textures/item/wood/lumber/glacian.png new file mode 100644 index 0000000000000000000000000000000000000000..b844a3c4e5f22a8075a390e2a163268042f76f5b GIT binary patch literal 386 zcmV-|0e$|7P)Lld)>UFc5}6gOi&Vq~kvQ{~c1+TK==f0B=t(0O(NLc{F8P)`$@` zRQ&w@`UB9RwgB^J%KUo5Vmae8`?5t|4njr%VuZW<8?Gh+A`ORn&tf_A;6VU@NQ2ga zj}P^phsWDN$f$dvb>KmlKpa4=vkH+0k;bcND~Xe+7jm*-gmqT=*PW7~p0q6}G4e}= z1G#gblCvH-6>SK>uH1PgZOFJ&uK?>N;`a7*G_Wme01K!t05Q_N^2O_{@_8NVehVBY z;`{@os|{)T0YIEY#7X2qX9}E(bhSZ@phN90fhdEP)LlTA*;Fc5{m#J1`*DpCm&m3k|d9D>7e2$tLnscIxj zeq7r%i`FKjL8*i{GqyZ$-kWDv^L@kTS=)6VCc z+f9Wo)J@cK0B1e->lH!>nzpAiM;;&6NF`=L@|ZMjPr1}7@63_yrkVxG#|Pz7C!kwE zuynj7{Amlew7;C1lQenzsMdeaL3YovRr{ z7DEt#UHzGu3_;|mJ_AB@B*vjT0M4BN0+5XXaMrU}sPQpP+hdHS`8tD0C8i~Cb|mQs z*w=?ts0)QI6wdld35mtNKH#iJDv@GbeP>fX2@q$YiytYm<0Yo|@D~8i`pj8Bv~2Qs ZegmG3p#*}>rPcrd002ovPDHLkV1n=ipO*jt literal 0 HcmV?d00001 diff --git a/kubejs/client_scripts/tooltips.js b/kubejs/client_scripts/tooltips.js index 7e490807f..33750b17a 100644 --- a/kubejs/client_scripts/tooltips.js +++ b/kubejs/client_scripts/tooltips.js @@ -84,6 +84,11 @@ const registerTooltips = (event) => text.add(1, text.of('§79 x 5 x 9')) }) }) + global.AD_ASTRA_WOOD.forEach(wood => { + event.addAdvanced([`tfg:${wood.name}_support`], (item, advanced, text) => { + text.add(1, text.of('§79 x 5 x 9')) + }) + }) event.addAdvanced(['tfg:light_concrete_support', 'tfg:dark_concrete_support', 'tfg:rebar_support'], (item, advanced, text) => { text.add(1, text.of('§717 x 9 x 17')) }) diff --git a/kubejs/server_scripts/ad_astra/data.js b/kubejs/server_scripts/ad_astra/data.js index 08bdc5e7e..6ddcc9c82 100644 --- a/kubejs/server_scripts/ad_astra/data.js +++ b/kubejs/server_scripts/ad_astra/data.js @@ -17,4 +17,8 @@ function registerTFCDataForAdAstra(event) { food.dairy(5) food.decayModifier(10) }) + + global.AD_ASTRA_WOOD.forEach(wood => { + event.fuel(wood.logs, 800, 1500, null) + }) } \ No newline at end of file diff --git a/kubejs/server_scripts/ad_astra/recipes.js b/kubejs/server_scripts/ad_astra/recipes.js index 81db3bb12..0550c1b29 100644 --- a/kubejs/server_scripts/ad_astra/recipes.js +++ b/kubejs/server_scripts/ad_astra/recipes.js @@ -697,4 +697,40 @@ const registerAdAstraRecipes = (event) => { }) //#endregion + + //#region Wood + event.remove({ type: 'greate:cutting', input: '#ad_astra:aeronos_caps' }) + event.remove({ type: 'greate:cutting', input: 'ad_astra:aeronos_planks' }) + event.remove({ type: 'greate:cutting', input: '#ad_astra:strophar_caps' }) + event.remove({ type: 'greate:cutting', input: 'ad_astra:glacian_log' }) + event.remove({ type: 'greate:cutting', input: 'ad_astra:stripped_glacian_log' }) + event.remove({ type: 'greate:cutting', input: 'ad_astra:strophar_planks' }) + event.remove({ type: 'greate:cutting', input: 'ad_astra:glacian_planks' }) + + global.AD_ASTRA_WOOD.forEach(wood => { + woodBuilder(event, wood.name, wood.lumber, wood.logs, wood.log, wood.stripped_log, wood.plank, wood.stair, wood.slab, wood.door, wood.trapdoor, wood.fence, wood.fence_gate, wood.support, wood.pressure_plate, wood.button) + }) + + event.shaped('16x ad_astra:aeronos_ladder', [ + 'A A', + 'ABA', + 'A A' + ], { + A: 'tfg:wood/lumber/aeronos', + B: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Wood, 1), + }).id('tfg:shaped/aeronos_ladder') + + event.shaped('16x ad_astra:strophar_ladder', [ + 'A A', + 'ABA', + 'A A' + ], { + A: 'tfg:wood/lumber/strophar', + B: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Wood, 1), + }).id('tfg:shaped/strophar_ladder') + + generateGreenHouseRecipe(event, '8x ad_astra:glacian_fur', 16000, '64x ad_astra:glacian_log', 'tfg:green_house/glacian_tree', 'ad_astra:moon', 8, '8x ad_astra:glacian_leaves', GTValues.VA[GTValues.MV]) + generateGreenHouseRecipe(event, '8x ad_astra:strophar_mushroom', 16000, '64x ad_astra:strophar_stem', 'tfg:green_house/strophar_mushroom', 'ad_astra:moon', 8, '16x ad_astra:strophar_cap', GTValues.VA[GTValues.MV]) + generateGreenHouseRecipe(event, '8x ad_astra:aeronos_mushroom', 16000, '64x ad_astra:aeronos_stem', 'tfg:green_house/aeronos_mushroom', 'ad_astra:moon', 8, '16x ad_astra:aeronos_cap', GTValues.VA[GTValues.MV]) + //#endregion } diff --git a/kubejs/server_scripts/ad_astra/tags.js b/kubejs/server_scripts/ad_astra/tags.js index 026491856..7d637ef6c 100644 --- a/kubejs/server_scripts/ad_astra/tags.js +++ b/kubejs/server_scripts/ad_astra/tags.js @@ -81,6 +81,28 @@ const registerAdAstraItemTags = (event) => { event.add('ad_astra:space_suit_items', 'gtceu:quarktech_helmet') event.add('ad_astra:space_suit_items', 'gtceu:quarktech_leggings') event.add('ad_astra:space_suit_items', 'gtceu:quarktech_boots') + + event.remove('minecraft:wool', 'ad_astra:glacian_fur') + + global.AD_ASTRA_WOOD.forEach(wood => { + + if (wood.log) { + event.add('minecraft:logs', wood.log) + event.add('minecraft:logs_that_burn', wood.log) + } + + if (wood.stripped_log) { + event.add('minecraft:logs', wood.stripped_log) + event.add('minecraft:logs_that_burn', wood.stripped_log) + } + + if (wood.isHardwood == true) { + event.add('tfg:hardwood', wood.logs) + } else { + event.add('tfg:softwood', wood.logs) + } + }) + } const registerAdAstraBlockTags = (event) => { diff --git a/kubejs/server_scripts/gregtech/utility.js b/kubejs/server_scripts/gregtech/utility.js index d0b60cccc..05653ebb4 100644 --- a/kubejs/server_scripts/gregtech/utility.js +++ b/kubejs/server_scripts/gregtech/utility.js @@ -60,14 +60,16 @@ const generateCutterRecipe = (event, input, output, duration, EUt, id) => { * Function for generating greenhouse recipes. * * @param {*} event - * @param {string} input -Item - * @param {number} fluid_amount -mB - * @param {string} output -Item + * @param {string} input -Item (Not consumed) + * @param {number} fluid_amount -mB (uses #tfg:clean_water) + * @param {string} output -Item (Chanced output uses input item) * @param {string} id -Recipe ID * @param {string} dimension -Dimension ID * @param {number} fertiliser_count + * @param {string} output_seconday -Item (Optional, if there should be a third output) + * @param {string} tier - GTValues.VA[] (Optional, defaults to LV) */ -const generateGreenHouseRecipe = (event, input, fluid_amount, output, id, dimension, fertiliser_count) => { +const generateGreenHouseRecipe = (event, input, fluid_amount, output, id, dimension, fertiliser_count, output_secondary, tier) => { // Без удобрения (Without fertilizer) let r = event.recipes.gtceu.greenhouse(id) @@ -78,10 +80,18 @@ const generateGreenHouseRecipe = (event, input, fluid_amount, output, id, dimens .chancedOutput(input, 750, 0) .chancedOutput(input, 500, 0) .duration(36000) // 30 mins - .EUt(GTValues.VA[GTValues.LV]) - if (dimension != null) + if (dimension != null){ r.dimension(dimension) + } + if (output_secondary != null){ + r.chancedOutput(output_secondary, 750, 0) + } + if (tier != null){ + r.EUt(tier) + } else { + r.EUt(GTValues.VA[GTValues.LV]) + } // С удобрением (With fertilizer) r = event.recipes.gtceu.greenhouse(`${id}_fertilized`) @@ -93,10 +103,18 @@ const generateGreenHouseRecipe = (event, input, fluid_amount, output, id, dimens .chancedOutput(input, 4000, 0) .chancedOutput(input, 3000, 0) .duration(12000) // 10 mins - .EUt(GTValues.VA[GTValues.LV]) - if (dimension != null) + if (dimension != null){ r.dimension(dimension) + } + if (output_secondary != null){ + r.chancedOutput(output_secondary, 4000, 0) + } + if (tier != null){ + r.EUt(tier) + } else { + r.EUt(GTValues.VA[GTValues.LV]) + } } //#endregion @@ -279,4 +297,177 @@ function addCircuitToRecipe(event, recipeId, circuitNumber) { recipe.json.add("inputs", inputs); }); } +//#endregion + +//#region Wood Builder + +/** + * Generates most basic wooden recipes. + * + * All parameters are optional. Name is used for the ID. + * + * @param {*} event + * @param {string} name -Name of the wood. + * @param {string} lumber -ID for the lumber. + * @param {string} logs -Tag or ID for all the logs. + * @param {string} log -ID for the regular log. + * @param {string} stripped_log -ID for the stripped log. + * @param {string} plank -ID for planks. + * @param {string} stair -ID for stairs. + * @param {string} slab -ID for slabs. + * @param {string} door -ID for the door. + * @param {string} trapdoor -ID for the trapdoor. + * @param {string} fence -ID for the fence. + * @param {string} fence_gate -ID for the fence gate. + * @param {string} support -ID for the support. + * @param {string} pressure_plate -ID for the pressure plate. + * @param {string} button -ID for the button. + */ +function woodBuilder(event, name, lumber, logs, log, stripped_log, plank, stair, slab, door, trapdoor, fence, fence_gate, support, pressure_plate, button) { + + if (log && stripped_log && name) { + event.recipes.gtceu.lathe(`tfg:cutter/${name}_stripped_log_from_log`) + .itemInputs(log) + .itemOutputs(stripped_log) + .duration(50) + .EUt(GTValues.VA[GTValues.ULV]) + } + + if (logs && lumber && name) { + event.shapeless(`8x ${lumber}`, + [logs, '#forge:tools/saws'] + ).id(`tfg:shapeless/${name}_lumber_from_log`) + + generateCutterRecipe(event, logs, `16x ${lumber}`, 50, 7, `cutter_${name}_lumber_from_log`) + } + + if (plank && lumber && name) { + event.shapeless(`4x ${lumber}`, + [plank, '#forge:tools/saws'] + ).id(`tfg:shapeless/${name}_lumber_from_plank`) + + generateCutterRecipe(event, plank, `4x ${lumber}`, 50, 7, `cutter_${name}_lumber_from_plank`) + + event.shaped(plank, [ + 'AA', + 'AA' + ], { + A: lumber, + }).id(`tfg:shaped/${name}_plank_from_lumber`) + } + + if (slab && lumber && name) { + event.shapeless(`2x ${lumber}`, + [slab, '#forge:tools/saws'] + ).id(`tfg:shapeless/${name}_lumber_from_slab`) + + generateCutterRecipe(event, slab, `2x ${lumber}`, 50, 7, `cutter_${name}_lumber_from_slab`) + } + + if (slab && plank && name) { + event.shaped(`6x ${slab}`, [ + 'AAA' + ], { + A: plank, + }).id(`tfg:shaped/${name}_slab_from_plank`) + } + + if (stair && lumber && name) { + event.shapeless(`3x ${lumber}`, + [stair, '#forge:tools/saws'] + ).id(`tfg:shapeless/${name}_lumber_from_stair`) + + generateCutterRecipe(event, stair, `3x ${lumber}`, 50, 7, `cutter_${name}_lumber_from_stair`) + } + + if (stair && plank && name) { + event.shaped(`8x ${stair}`, [ + 'A ', + 'AA ', + 'AAA' + ], { + A: plank, + }).id(`tfg:shaped/${name}_stair_from_plank`) + } + + if (door && lumber && name) { + event.shaped(`2x ${door}`, [ + 'AA', + 'AA', + 'AA' + ], { + A: lumber, + }).id(`tfg:shaped/${name}_door_from_lumber`) + } + + if (trapdoor && lumber && name) { + event.shaped(`3x ${trapdoor}`, [ + 'AAA', + 'AAA' + ], { + A: lumber, + }).id(`tfg:shaped/${name}_trapdoor_from_lumber_and_plank`) + } + + if (fence && lumber && plank && name) { + event.shaped(`8x ${fence}`, [ + 'ABA', + 'ABA' + ], { + A: lumber, + B: plank, + }).id(`tfg:shaped/${name}_fence_from_lumber_and_plank`) + } + + if (fence_gate && lumber && plank && name) { + event.shaped(`2x ${fence_gate}`, [ + 'ABA', + 'ABA' + ], { + A: plank, + B: lumber, + }).id(`tfg:shaped/${name}_fence_gate_from_lumber_and_plank`) + } + + if (support && logs && name) { + event.shapeless(`8x ${support}`, + [`2x ${logs}`, '#forge:tools/saws'] + ).id(`tfg:shapeless/${name}_support_from_logs`) + + event.recipes.gtceu.assembler(`tfg:assembler/${name}_support_from_logs`) + .itemInputs(`2x ${logs}`) + .itemOutputs(`8x ${support}`) + .duration(50) + .circuit(4) + .EUt(GTValues.VA[GTValues.ULV]) + } + + if (pressure_plate && slab && name) { + event.shaped(pressure_plate, [ + ' B ', + 'ACA', + ' D ' + ], { + A: slab, + B: '#forge:tools/hammers', + C: '#forge:springs', + D: '#forge:tools/screwdrivers', + }).id(`tfg:shaped/${name}_pressure_plate`) + + event.recipes.gtceu.assembler(`tfg:assembler/${name}_pressure_plate`) + .itemInputs(`2x ${slab}`, '#forge:springs') + .itemOutputs(`2x ${pressure_plate}`) + .duration(50) + .circuit(0) + .EUt(GTValues.VA[GTValues.ULV]) + } + + if (button && pressure_plate && name) { + event.recipes.gtceu.cutter(`tfg:cutter/${name}_button_from_pressure_plate`) + .itemInputs(pressure_plate) + .itemOutputs(`6x ${button}`) + .duration(50) + .EUt(GTValues.VA[GTValues.ULV]) + } +} //#endregion \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/data.js b/kubejs/server_scripts/tfg/data.js index 33d264fe8..197596cfa 100644 --- a/kubejs/server_scripts/tfg/data.js +++ b/kubejs/server_scripts/tfg/data.js @@ -69,6 +69,10 @@ const registerTFGSupportData = (event) => { event.support(`tfg:${stone}_support_horizontal`, 2, 2, 4, `${stone}_support`) }) + + global.AD_ASTRA_WOOD.forEach(wood => { + event.support(`tfg:${wood.name}_support_horizontal`, 2, 2, 4, `${wood.name}_support`) + }) } diff --git a/kubejs/startup_scripts/ad_astra/constants.js b/kubejs/startup_scripts/ad_astra/constants.js index 1c30eda43..8e1f8bd7f 100644 --- a/kubejs/startup_scripts/ad_astra/constants.js +++ b/kubejs/startup_scripts/ad_astra/constants.js @@ -109,4 +109,10 @@ global.BREATHABLE_COMPRESSED_AIRS = 'tfg:compressed_heliox_3', 'tfg:compressed_trimix', 'tfg:compressed_trimix_3' -]; \ No newline at end of file +]; + +global.AD_ASTRA_WOOD = [ + {name: 'aeronos', logs: '#ad_astra:aeronos_caps', log: 'ad_astra:aeronos_stem', stripped_log: null, lumber: 'tfg:wood/lumber/aeronos', plank: 'ad_astra:aeronos_planks', stair: 'ad_astra:aeronos_stairs', slab: 'ad_astra:aeronos_slab', fence: 'ad_astra:aeronos_fence', fence_gate: 'ad_astra:aeronos_fence_gate', door: 'ad_astra:aeronos_door', trapdoor: 'ad_astra:aeronos_trapdoor', button: null, pressure_plate: null, support: 'tfg:aeronos_support', isHardwood: false}, + {name: 'strophar', logs: '#ad_astra:strophar_caps', log: 'ad_astra:strophar_stem', stripped_log: null, lumber: 'tfg:wood/lumber/strophar', plank: 'ad_astra:strophar_planks', stair: 'ad_astra:strophar_stairs', slab: 'ad_astra:strophar_slab', fence:'ad_astra:strophar_fence', fence_gate: 'ad_astra:strophar_fence_gate', door:'ad_astra:strophar_door', trapdoor: 'ad_astra:strophar_trapdoor', button: null, pressure_plate: null, support: 'tfg:strophar_support', isHardwood: false}, + {name: 'glacian', logs: '#ad_astra:glacian_logs', log: 'ad_astra:glacian_log', stripped_log: 'ad_astra:stripped_glacian_log', lumber: 'tfg:wood/lumber/glacian', plank: 'ad_astra:glacian_planks', stair: 'ad_astra:glacian_stairs', slab: 'ad_astra:glacian_slab', fence: 'ad_astra:glacian_fence', fence_gate: 'ad_astra:glacian_fence_gate', door: 'ad_astra:glacian_door', trapdoor: 'ad_astra:glacian_trapdoor', button: 'ad_astra:glacian_button', pressure_plate: 'ad_astra:glacian_pressure_plate', support: 'tfg:glacian_support', isHardwood: true}, +] \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/blocks.supports.js b/kubejs/startup_scripts/tfg/blocks.supports.js index 06425f725..05b7653d9 100644 --- a/kubejs/startup_scripts/tfg/blocks.supports.js +++ b/kubejs/startup_scripts/tfg/blocks.supports.js @@ -138,4 +138,24 @@ function registerTFGSupportBlocks(event) { .requiresTool(true) }) + global.AD_ASTRA_WOOD.forEach(wood => { + event.create(`tfg:${wood.name}_support`, 'tfc:support') + .textureAll(`tfg:block/support/${wood.name}_support`) + .horizontal(horizontal => { + horizontal.textureAll(`tfg:block/support/${wood.name}_support`) + horizontal.soundType('wood') + horizontal.hardness(2) + horizontal.resistance(2) + horizontal.mapColor('color_orange') + horizontal.tagBlock('minecraft:mineable/axe') + horizontal.requiresTool(false) + }) + .soundType('wood') + .hardness(2) + .resistance(2) + .mapColor('color_orange') + .tagBlock('minecraft:mineable/axe') + .requiresTool(false) + }) + } \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/items.js b/kubejs/startup_scripts/tfg/items.js index c4fb442c7..9b7a5b89d 100644 --- a/kubejs/startup_scripts/tfg/items.js +++ b/kubejs/startup_scripts/tfg/items.js @@ -13,12 +13,20 @@ const registerTFGItems = (event) => { event.create('tfg:vitrified_pearl') // #endregion - // #region Orbit dimension markers + // #region Space + + // Orbit dimension markers event.create('tfg:marker/earth_orbit').tag('c:hidden_from_recipe_viewers') event.create('tfg:marker/moon_orbit').tag('c:hidden_from_recipe_viewers') event.create('tfg:marker/mars_orbit').tag('c:hidden_from_recipe_viewers') event.create('tfg:marker/venus_orbit').tag('c:hidden_from_recipe_viewers') event.create('tfg:marker/mercury_orbit').tag('c:hidden_from_recipe_viewers') + + global.AD_ASTRA_WOOD.forEach(wood => { + event.create(`tfg:wood/lumber/${wood.name}`) + .translationKey(`item.tfg.${wood.name}_lumber`) + .tag('tfc:lumber') + }) // #endregion // #region Paper making