From 0a8e68e7d0c48c7444c422ce14113aaf52faf9c3 Mon Sep 17 00:00:00 2001 From: Adrien Vidal Date: Tue, 16 Sep 2025 22:54:54 +0200 Subject: [PATCH] [Molden] Stone TFG-fication continued (#1845) * Fixed some rock type tags * Nether mossy cobbles * nether mossy bricks * mossy bricks * nether brick recipes + deepstate sets + typos * cobble interaction index * reformatting tables * Region delimiters for stone blocks * More shaped sets + deepslate recipes + missing landslide recipes + tables formatting for readability * Other nether shaped blocks + A bit or reorganizing of recipes.rocks.js * Many Space Stone Blocks + Stone Declaration Refactor + Many typo fixes + Moon Stone Recipes + Some Missing tags * Tags Refactor + Missing Blocks * definition fix * remove console debugs * Space stones cutting & Interractions + Breaker Duping Reformat + Missing Dripstone Brick + Missing Red Granite recipes + Misc bugfixes * small fix * Vanilla Stone + Red Sandstone Fix + Duper loop fix * Undo .gitignore changes * Venus sandstone stuff --- .../block/rock/cracked_bricks_dripstone.png | Bin 0 -> 1010 bytes .../block/rock/mossy_bricks_blackstone.png | Bin 0 -> 1168 bytes .../block/rock/mossy_bricks_deepslate.png | Bin 0 -> 1118 bytes .../block/rock/mossy_bricks_dripstone.png | Bin 0 -> 4740 bytes .../block/rock/mossy_bricks_glacio.png | Bin 0 -> 4787 bytes .../textures/block/rock/mossy_bricks_mars.png | Bin 0 -> 6182 bytes .../block/rock/mossy_bricks_mercury.png | Bin 0 -> 4707 bytes .../textures/block/rock/mossy_bricks_moon.png | Bin 0 -> 1095 bytes .../rock/mossy_bricks_moon_deepslate.png | Bin 0 -> 5969 bytes .../block/rock/mossy_bricks_nether.png | Bin 0 -> 1105 bytes .../block/rock/mossy_bricks_permafrost.png | Bin 0 -> 4816 bytes .../block/rock/mossy_bricks_venus.png | Bin 0 -> 5986 bytes .../block/rock/mossy_cobble_blackstone.png | Bin 0 -> 1303 bytes .../block/rock/mossy_cobble_crackrack.png | Bin 0 -> 6627 bytes .../block/rock/mossy_cobble_deepslate.png | Bin 0 -> 1266 bytes .../block/rock/mossy_cobble_dripstone.png | Bin 0 -> 5005 bytes .../block/rock/mossy_cobble_glacio.png | Bin 0 -> 4915 bytes .../textures/block/rock/mossy_cobble_mars.png | Bin 0 -> 6405 bytes .../block/rock/mossy_cobble_mercury.png | Bin 0 -> 4804 bytes .../textures/block/rock/mossy_cobble_moon.png | Bin 0 -> 1247 bytes .../rock/mossy_cobble_moon_deepslate.png | Bin 0 -> 1279 bytes .../block/rock/mossy_cobble_permafrost.png | Bin 0 -> 5039 bytes .../block/rock/mossy_cobble_venus.png | Bin 0 -> 6371 bytes .../tfg/textures/item/brick/dripstone.png | Bin 0 -> 845 bytes .../minecraft/recipes.removes.js | 20 + kubejs/server_scripts/tfg/events.js | 347 +++-- kubejs/server_scripts/tfg/recipes.collapse.js | 34 +- kubejs/server_scripts/tfg/recipes.rocks.js | 1275 ++++++++--------- kubejs/server_scripts/tfg/tags.js | 412 +++--- kubejs/startup_scripts/minecraft/constants.js | 28 +- kubejs/startup_scripts/tfg/blocks.js | 36 + kubejs/startup_scripts/tfg/blocks.nether.js | 494 ++++++- kubejs/startup_scripts/tfg/blocks.space.js | 1133 +++++++++++++-- kubejs/startup_scripts/tfg/constants.js | 113 +- kubejs/startup_scripts/tfg/items.js | 25 +- 35 files changed, 2626 insertions(+), 1291 deletions(-) create mode 100644 kubejs/assets/tfg/textures/block/rock/cracked_bricks_dripstone.png create mode 100644 kubejs/assets/tfg/textures/block/rock/mossy_bricks_blackstone.png create mode 100644 kubejs/assets/tfg/textures/block/rock/mossy_bricks_deepslate.png create mode 100644 kubejs/assets/tfg/textures/block/rock/mossy_bricks_dripstone.png create mode 100644 kubejs/assets/tfg/textures/block/rock/mossy_bricks_glacio.png create mode 100644 kubejs/assets/tfg/textures/block/rock/mossy_bricks_mars.png create mode 100644 kubejs/assets/tfg/textures/block/rock/mossy_bricks_mercury.png create mode 100644 kubejs/assets/tfg/textures/block/rock/mossy_bricks_moon.png create mode 100644 kubejs/assets/tfg/textures/block/rock/mossy_bricks_moon_deepslate.png create mode 100644 kubejs/assets/tfg/textures/block/rock/mossy_bricks_nether.png create mode 100644 kubejs/assets/tfg/textures/block/rock/mossy_bricks_permafrost.png create mode 100644 kubejs/assets/tfg/textures/block/rock/mossy_bricks_venus.png create mode 100644 kubejs/assets/tfg/textures/block/rock/mossy_cobble_blackstone.png create mode 100644 kubejs/assets/tfg/textures/block/rock/mossy_cobble_crackrack.png create mode 100644 kubejs/assets/tfg/textures/block/rock/mossy_cobble_deepslate.png create mode 100644 kubejs/assets/tfg/textures/block/rock/mossy_cobble_dripstone.png create mode 100644 kubejs/assets/tfg/textures/block/rock/mossy_cobble_glacio.png create mode 100644 kubejs/assets/tfg/textures/block/rock/mossy_cobble_mars.png create mode 100644 kubejs/assets/tfg/textures/block/rock/mossy_cobble_mercury.png create mode 100644 kubejs/assets/tfg/textures/block/rock/mossy_cobble_moon.png create mode 100644 kubejs/assets/tfg/textures/block/rock/mossy_cobble_moon_deepslate.png create mode 100644 kubejs/assets/tfg/textures/block/rock/mossy_cobble_permafrost.png create mode 100644 kubejs/assets/tfg/textures/block/rock/mossy_cobble_venus.png create mode 100644 kubejs/assets/tfg/textures/item/brick/dripstone.png diff --git a/kubejs/assets/tfg/textures/block/rock/cracked_bricks_dripstone.png b/kubejs/assets/tfg/textures/block/rock/cracked_bricks_dripstone.png new file mode 100644 index 0000000000000000000000000000000000000000..eff82d9047768d9d385131aab1d72bb1b5676cff GIT binary patch literal 1010 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQi-V13aCb6$*;-(=u~X z85lGs)=sqbIP4(Nc7It{=&GhNfx;63bKfjd>Ra07x*^~e*IKI?F~8V-r6!4pyC2;8 z;KBK%s|SxphO>t|3jAR#6rUp!yX46GNlx7o{O{g9-21+E=Wjj%DbZ!KVgntn>L`o$ zciz0S>c;1;I35Lu*AtHT*iMW)bD+59?&0I#cXOQowC;ED7wyW)jCK<(PL&*1x~DMj z?v|2szmF(}O%i!j{K&Ie&*RUD(wk4s&$+g<&XY7UT3Pu>U}MCagq_WiCj&auI}UfP z3fwoLH1gq|qmgT`M7*B&r}f~TZIhl^oi#kNv4v%lfa2mdBdrYr3uBd!x^$gOmirfY ze7?$bpLIqOmSO>|Tqi#^|3CQt-mKP_n&z4k%)8=qekaSkxXC)J^!7iyZEv4(KB#9~ zw`JS@TMWM>rX@0{=+c?_b|pXa2oISVi!Z z&*f{nNlVY)-1qYZ%WJC;y>B18;549Xx9g}>QbE#>MuF1wOrOAS6yfQ_7@dvI%^K?5-zU&dH(LMv?z%wVQb8I zyCcgO*Co3yd2DC6-slLIyL#idEd~sC)*VmNU&hm;w(lnQ=4_p7bLBMa!f$u)7PnxE zh|AZ{VC-*LS9JF6F2)08LZ2?~Ib~4k|Mm9u_&t@;t;efkKY#kFbH}$>-bQgRa07x*^~e*IKI?F~3-Sr6!4pyC2;8 z;KA{vs|SxphO>t|3jARx6rUp!yX44!)mAY>IhpT|@9sT**VyJ4Vmlkjf*%!r@{p>A1nAn)k)>~3E&%#4T>{dixa+pcTBgsb-7G+J* zPl*Y$$S({#9eQn#dVQk8^0iBL_!aXQ>L~WHxSUwAsKrR9CG)C>;lw3>SG3n(`KW$E zb@FN!w?5X81x`hO9@Kx>9c^rH`&5l}k;C)u-1;8o*xe3`({A5CzU{6Bj0}@7>#4Z!73JmC`Tyr-e*4axv#)4LuaT)G0|NtFlDE4H!+#K5uy^@n z1_lPs0*}aI1_o|n5N2eUHAjMhfq}im)7O>#B`1@xsle}q*4GRS43Z_T5hc#~xw)x% zB@E6*sfi`2DGKG8B^e6tp1uL$jeOz^3``lGE{-7usxd&D7J=KiKT;I8ODj{&P zc+y6dE*plh?avDDa6SDxCB=TV?H`dv)_JU&Of~Tr-eKt*EYOW ztJ~fv!gw-p>b;|S=0;2>)H;;-_ikl&*uR=lfY1GlUKwM-ZS^a+nU1ezkevFVT96_4 z>qRH7fcirDVzr~MJ2bU(c6%yVaZq$ zl93>GTx5Prk2)js%Ed{tFN%NeY>504u<+m!$wgaVoz`sVSRZ-AXXic5&->4AO%ADI zZdiG?=<8XhBiAKc%irH$_VXM8i7-CfQmJ+GnD*5Dv8$)7jPC#W)9~bDEt3};yK~Kr6<1zZ@J~(Ax0K6Rcu#+8 z4bx_eWtYzVi93EGxiYSmZE3GvvSGKEsxqU}wY-bY%@bcR2i$7dyk1IA_1P^$hI)nz Y2W|4}YUTDYFfcH9y85}Sb4q9e04h!jBme*a literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/rock/mossy_bricks_deepslate.png b/kubejs/assets/tfg/textures/block/rock/mossy_bricks_deepslate.png new file mode 100644 index 0000000000000000000000000000000000000000..46c837014a6cf6e7128790c7c43b054ef3bb231c GIT binary patch literal 1118 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 literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/rock/mossy_bricks_mars.png b/kubejs/assets/tfg/textures/block/rock/mossy_bricks_mars.png new file mode 100644 index 0000000000000000000000000000000000000000..753db480b312d2e100656d48aa569d722f47ab7d GIT binary patch literal 6182 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 literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/rock/mossy_bricks_mercury.png b/kubejs/assets/tfg/textures/block/rock/mossy_bricks_mercury.png new file mode 100644 index 0000000000000000000000000000000000000000..28739b695f90ca05a5cabd50f2a39be39a22038a GIT binary patch literal 4707 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4kiW$h6xih%orFL4pxOklmsP~D-;yvr)B1( zDwI?fq$;FVWTr7NRNTr9h~{Hfj4tE5LWJp~3AtrYD?XT9qM?|IAr8?Io|35N2|NV)7e9KFW z46Tg4c@DfydGP9xRkwN2^_#a>y|(Pse{z4G+5_I}w<3jCXRCf>U|?*`baoE#basY$ zhJm4CPVGc%kHZc!$M)MT(GnH3?yyK%(SJ}+>ruq22o~<8YcH&7KDkssd`1ILlTWiQn}vVDBB zY-Qm+b-s<0G=%31`@br2eB{2)n{R)i-mN!JXDZrGo~6zw$bFP=n$?V{C9M^07CPEm zPpdccou0GZLVK!I_T9<*4Q7OgUy507*<>+of`br~%9Q{&RyCz9tCmQ3T&z2D)IR6; zt;Puf>c5aOa^e(K4zV>}%s;NK2edB_q z+x}i#8IXksPAt^OIGtXA({qFrr3YjUkO5vuy2EGN(sTr9b zRYj@6RemAKRoTgwDN6QsTs9R}6}bhusU?XD6}dTi#a0!zN?>!X@`|lM!um=IU?nBl zwn`Dc0SeCfMX3rVdM0`Xx~>(OWkyPNTnaWtDQQ+gE^bgGic->Sl`=|73as??%gf94 z%8m8%i_-NCEiEne4UF`SjC6}q(sYX}^GXscbn}XpK}JB#a7isrF3Kz@$;{7F0GXMX zlwVq6tE9xGpr8OXydt;2*B5SlUNJNjlJj%*D-sLz4fPE4b942PbrhGlmX+YwQ5;fP zkg6Y)TAW{6l$`2XmYP?hjBG?oGF*Q_X;BW?J1NQfsX3{+sd**E`i6RjC|0_A`Ub#t zfPx@BGq(V&t0K1mMP*558X~Yzd;^jJdk5Je6}bg)b5T^o{0>$O4kIg<{Nz%Q^E_Q_ zl|c4erQ|1PrdWZQX%?v_7A9uKy2*wniMl4q#%a1qiAiR<7Rkn@7G^0XMrr1$NJe?) z6_+IDC8vUns>m(S%gju%vNSa@Nl7$I(zQ%8H`X;tOfuF@vM@{1HMcZ3HL^^yG`C1g zL^8s^C^J1XFEIz%RUo5MGE=OQQ<9C66H`)j6U{75bWIX1l5~?&QcZP@j8l@*EYr+W z49qRTMx`WMx#bt-CYIPLW#%TPr|K8vrGq6v0dD0O;AyL5q-TH-3CKw-Ny{(FwN(nw z%uC5HFGfg(Wag#@mn4G1)6m@1+`z!X*wW0<(%b}U71+eE)S}|d{5+7Uh6Z}ZCSdKL zh_Ui7%1q5GNd%=-TO~uVctvi3m2**QVo82cNPd2ftrExx1tUE}h=V}VzNsaNDTyVC zE{P?nwn|0@My6HP#rp8u=CfWu@Rt8Aw^HVa@Dha8!17!~zNThpY7MJ7~ zRf2^ec`7)y5W<6Sb234y6%-V}*}^I@8RCWF#In>Bus7gR$r*`x>8UBUO3(xg(~^lL zF(jIs8KoLoChM9dnwsmHn5L!aTBMnp=_XsGCK;rpStMB)K>`VGdU1YQNqJ&Xs$+U; zUWu)eduDC{III*jpi!lX>YDP5R8Tw^7@6uCSn48z%uGoi;yoLEP>BKat&KiLct8{& z6)|>P3J|d%7dJaD8+~v&2P*R*27<~QT4HEC(9#M8g;7gL3g6M-8VxRzLVzU2qp52& zxJU{Ck`#}oE~*6=7oszjnwMg$RIX%iw|t^NCIbTlXMsm#F#`j)FbFd;%$g&?z`(#> z;_2(k{*seL&{W`VKVKvR1Cx@ci(`n!`PhkP^DjFH9G(Am>*nm|s|%&3PI7Bl6*i~H znQ5iEK*7`cNB)l@I13-%W7g7II;GAn>&+I=Yu4Y^?UnI4e0|MDM%>KWEx4O$ z&AhiC{^@wSZ{tij?Pe-7Q{cc3>z*AN8sZ7}R(!uOU|bow3r?YiXnJR;CYyzk0bRp6;2#WblqBIG52S@X6bC{f{?6q63J?~!f-2Kc0$Ktb84lH z5Wu9-8!M@DX78d7%Z6F&EpyhJzTmA`^`d5?XJ(v@9D|4G)$7bFD(_^BmVu0C}CtWt33|M!2p&qbJZp6V*O+h^^}P|qX!a&|{p z)TB?%3#N*29ZUA(ZTv06m#43Fqv5l9X!N9251+iMV(R(Hws4Lf7ppRd&dz8#J^lLj wjc1lMUB8vwH$}4H{HK)md_P{Ra07x*^~e*IKI?F~3-Sr6!4pyC2;8 z;KA{vs|SxphO>t|3jARx6rUp!yX44!)mAY>IhpT|@9sT**VyJ4Vmlkjf*%!r@{p>A1nAn)k)>~3E&%#4T>{dixa+pcTBgsb-7G+J* zPl*Y$$S({#9eQn#dVQk8^0iBL_!aXQ>L~WHxSUwAsKrR9CG)C>;lw3>SG3n(`KW$E zb@FN!w?5X81x`hO9@Kx>9c^rH`&5l}k;C)u-1;8o*xe3`({A5CzU{6Bj0}@7>#4Z!73JmC`Tyr-e*4axv#)4LuaT)G0|NtFlDE4H!+#K5uy^@n z1_lPs0*}aI1_o|n5N2eUHAjMhfq}im)7O>#B`1>zhtBR5%flHM7$i$vBTAg}b8}Pk zN*J7rQWHy3QxwWGOEMJPJ$(bh8~MZ;7?|WeT^vI!PPa~eoqah#;#j@!WtHfxvdu5O z-j;kdG7J2$TY=-z^oRf7vR`bxw9?}4(wx(7`8&TnnWOgAdD`ZOZ2JTz3C}w{`+03} zv$~kenbC+E)7A3BZa3fy3PLZRLn`McB+%xONB)(5B*{Cw#QHBHCr zxu^ZSll8>2S`WNP>PQZATw<<#@qwpK!IVRWtJlbU(cJB)JNwk^@4G)wGRUjYiS_xh z{m`>Xb=y|4t$y5Mp?AjT`Q6u#qJvJJ`lxwjddUg~EzbgF$K1k=7VexES3lR$5lJ_m z?NW6uf=^j<#g*6Bzj-!2{e5Bq$JtM{yTla*itfc6+_LW*$Bx}z*JsO~R8ZJ4Yu5kF z_s2w*Tw0K@`EdPft%6_=*JVX9*RLrVoj29%3x1}*&BIst`(yFH_pIM2FNjdNzP0o5 z6rZOtcC{s^bJA|Fsr^@$uI#ooO<_sWja*^-mlMvfpYEaRc`@*R&w{7-mD072p9wj) z<6&ZpqVWMEEvv~ziD{1uKRU0yms}|jRK)O)X|;~j-+MYap$rTR44$rjF6*2UngFwe B?@9mw literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/rock/mossy_bricks_moon_deepslate.png b/kubejs/assets/tfg/textures/block/rock/mossy_bricks_moon_deepslate.png new file mode 100644 index 0000000000000000000000000000000000000000..f95cbc6d99a280716422f46027540f92bf143e27 GIT binary patch literal 5969 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 literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/rock/mossy_bricks_nether.png b/kubejs/assets/tfg/textures/block/rock/mossy_bricks_nether.png new file mode 100644 index 0000000000000000000000000000000000000000..759d6210d1d6b136997b33e187856483efcc807f GIT binary patch literal 1105 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(Pw!zt$o#k-`%JbKfjd>Ra07x*^~e*IKI?F~3-Sr6!4pyC2;8 z;KA{vs|SxphO>t|3jARx6rUp!yX44!)mAY>IhpT|@9sT**VyJ4Vmlkjf*%!r@{p>A1nAn)k)>~3E&%#4T>{dixa+pcTBgsb-7G+J* zPl*Y$$S({#9eQn#dVQk8^0iBL_!aXQ>L~WHxSUwAsKrR9CG)C>;lw3>SG3n(`KW$E zb@FN!w?5X81x`hO9@Kx>9c^rH`&5l}k;C)u-1;8o*xe3`({A5CzU{6Bj0}@7>#4Z!73JmC`Tyr-e*4axv#)4LuaT)G0|NtFlDE4H!+#K5uy^@n z1_lPs0*}aI1_o|n5N2eUHAjMhfq}im)7O>#B`1>zE7PS5SFSQJFi4iTMwB?`=jNv7 zl`uFLr6!i7rYMwWmSiZnd-?{1H}Z)yFfeI)x;TbdoX(wm+gsXE*~%-pQJqx zoTr8b_k42_T;4)!s%PK5`SNgC@xgi9^Y_jCJoo(^ z<413=t@~Ol|69lH^qkakPWulG2DgNka{es$e17AhzvSb(Shb3YkE@za`nE}|$-Q-; zl(R6PS};00cZ*(OZDWw+#huI!9fwOz7T%9NDsyD2gId9@yrpJlmO|`ny@l3ZycH1P zEZeKhvDD?g+T|rLTOD$?S&3;0E%@tYV0F5(>e7Q(CNtGmR5onUcpJuoMMw#`eB}UOXKmk&w1{DXS^_dmd7y^SSM}y_P9u9 zH+!+d_eU;pHEA7;SQ=B?b2HCs$&|}_%-j*0rbn+Y7rgB|-QAtf$f{iI)Y{YQuNnpW zF0PCD{4o3Q+2t~p=Ps=}qobzF<)j%|$-G$Kn8)DUCDxkx8SgI3?0hhFMsGsrHt`E@ zD}!AtCp`Gk^zb*Q_1;p3D@&7h-*osFG`W?RyPx-zi%Zrw_OP0h=lN%C(U`HH|G^cz zrw1-rmzewKEqjB#cwT?yzGtsC??1a%Vcxy;C07_27#KWV L{an^LB{Ts5ebDUY literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/rock/mossy_bricks_permafrost.png b/kubejs/assets/tfg/textures/block/rock/mossy_bricks_permafrost.png new file mode 100644 index 0000000000000000000000000000000000000000..ab0971c4ef0bd4822961a0fd1e2d02f57a4c29f4 GIT binary patch literal 4816 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 literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/rock/mossy_cobble_blackstone.png b/kubejs/assets/tfg/textures/block/rock/mossy_cobble_blackstone.png new file mode 100644 index 0000000000000000000000000000000000000000..abf7189e03829647f39dfd8c64ebb4ad6402b460 GIT binary patch literal 1303 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(Pw!zt$o#k-`%JbKfjd>Ra07x*^~e*IKI?F~3-Sr6!4pyC2;8 z;KA{vs|SxphO>t|3jARx6rUp!yX44!)mAY>IhpT|@9sT**VyJ4Vmlkjf*%!r@{p>A1nAn)k)>~3E&%#4T>{dixa+pcTBgsb-7G+J* zPl*Y$$S({#9eQn#dVQk8^0iBL_!aXQ>L~WHxSUwAsKrR9CG)C>;lw3>SG3n(`KW$E zb@FN!w?5X81x`hO9@Kx>9c^rH`&5l}k;C)u-1;8o*xe3`({A5CzU{6Bj0}@7>#4Z!73JmC`Tyr-e*4axv#)4LuaT)G0|NtFlDE4H!+#K5uy^@n z1_lPs0*}aI1_o|n5N2eUHAjMhfq}im)7O>#B`1@xk?NyK*ZCP37$i$vBTAg}b8}Pk zN*J7rQWHy3QxwWGOEMJPJ$(bh8~MZ;7?|FBx;TbdoVL9boqd~);poTxDW2O@v^R;| zPqHlRDPE|#`)OkAO^IX!i8rPFzYYEd$?|+Nl91+Y?%lZMu!{2ZTYbW}H!a?+8(FRK zwbH)eL3xXQea5qy*-B@=F$$FBN3u(vENa`My7}@d=T#5c^bW_{GMKDA`e57nm*1l~ zmfxST^I1Kc!-Jg+8gI3WLKp2^JW0*6PUz9!t?ifgJ$mP(c8Y1vUFDL)PBqnPIj43d z3br{j%-U*Im?F5g>qz5?91DfhMYqnMo>OyGnWvp)UiXEKbN7S@Uf3d*XmR9+#~|-juZ$c^>4A`PAw*<&M%ct@mO)dB0!S_HW&v^hwRZT!%sK z*z+C1^Ji}sRkdV2pdl)FW)N7g8#rvHAIzQqcfDzghU)1ey|{G^c8L+k zUaVzc{bSKz3{>v!}u3>H3Jru zMz{v3E%_!8Sa+nzil^@U!d(YKw4b=LUhRz3Pf5AyV6M}We*ao=;B*6Rq0Nz9i_$t4 z9r$718TI&O+m4z?${NOh3R@zkX|7~_)NZh;=@-Ov zOYHNpvtqmdD5=J8ZK9&rSI$nOqn0^=x7R70`4;K(E92K36`l`^8lK%VW4M=E__;so zu_piH;w2&V-nZ91_$~BsKU?GTMKfHdU6iul`S{myrU^OwCfp7`5j68?Dq};F!HPW@ zGSNM8o*J%GkN&Ygk}-X0f&Z2F0lB3Ux{M~xdEi&;lkQrPn_N@Vyk;54{QB}a{`Xjp ze3oI@{WQStW2Bwm1TL{nA!>WqGhL|v%hj-WayrYr?q3gC|1;Z4__V57Ub@Y|z`)?? L>gTe~DWM4fN0d-4 literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/rock/mossy_cobble_crackrack.png b/kubejs/assets/tfg/textures/block/rock/mossy_cobble_crackrack.png new file mode 100644 index 0000000000000000000000000000000000000000..08a30d89a5c60f02996d1b791ad09a54b4fbee27 GIT binary patch literal 6627 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 bz4eTnvdb3Rr#kS1hA%u_{an^LB{Ts5Hv5b; literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/rock/mossy_cobble_deepslate.png b/kubejs/assets/tfg/textures/block/rock/mossy_cobble_deepslate.png new file mode 100644 index 0000000000000000000000000000000000000000..ad67c7f9dc0762e847220fa84f80cc72cda2fd39 GIT binary patch literal 1266 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(Pw!zt$o#k-`%JbKfjd>Ra07x*^~e*IKI?F~3-Sr6!4pyC2;8 z;KA{vs|SxphO>t|3jARx6rUp!yX44!)mAY>IhpT|@9sT**VyJ4Vmlkjf*%!r@{p>A1nAn)k)>~3E&%#4T>{dixa+pcTBgsb-7G+J* zPl*Y$$S({#9eQn#dVQk8^0iBL_!aXQ>L~WHxSUwAsKrR9CG)C>;lw3>SG3n(`KW$E zb@FN!w?5X81x`hO9@Kx>9c^rH`&5l}k;C)u-1;8o*xe3`({A5CzU{6Bj0}@7>#4Z!73JmC`Tyr-e*4axv#)4LuaT)G0|NtFlDE4H!+#K5uy^@n z1_lPs0*}aI1_o|n5N2eUHAjMhfq}im)7O>#B`1@x1xM_n`` zXFC!W`uI)_%hX>}`1sJ#H#H3LN2Z=%CM~{eR@RzrY|Gl6X1#kd>C01dSp~gaQs4E#a^?PMw2^ zA#Ha<)#fuwd)OZot`_v|3t{K{b+qTPrsAI0j1#u6IkkT0olc$86M}@S>o?zj6B&2) z!X4Xlf3>Zy34Bj=TKYCHJ3^vtrjw!T=H!y4*PeUq{xn0y%i>NMgF&hA{qKw$`1LiW zh^b_DY0PZNbJ=CJU~lbj=C|RMTJicB-)r`ic&t?m$m*^9|MF&xm*;|MI`=DEw3O~X zeerCcbA1`VT}-3&!iR=4&j=n;iJ4ws6gVaXE$UItVMuNf zkY#Ju%dYLZ`e6a*!mfZb4wW2hL$U`_3Ns zg#VttAq*Ghi1z=#kuLV-hQvb4N*B{)tJ(vlxm-V$Zf)zXe6PIJWpZrZs_QrW8ZW={ z*!O>;(@z%}i5IpXZG*fvy^>uwJAH4}ksGfARA2y?{^JUhSzkKT| z{)Rj{8NFdvzDGCvo5|igH7|5a&Px|M&M5G3sq>?&9cSONE?s*-x7JaBCF9`7t}Ppu zUo_9S(v?xzoijUd8(+@#>~AaGmd7jdT%F1Pz-R5h4EHOm#SRu7{$nmaqd4$hqUyh& z4(1D;R+>89crq(lMIg?8;hOr?|3{kt^&ML0`unze!l9K(lg>rNRdXz?`21|r^PT0( z76k8lvd~&-|E7y}F7*%d;^$|6u9Z*Uam2*u&iVHn;#i*F*!Mp8*0%{kkKCO5&dvJI Za5XZPDXV%_kEr4s{qL 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 BMm_)l literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/rock/mossy_cobble_mars.png b/kubejs/assets/tfg/textures/block/rock/mossy_cobble_mars.png new file mode 100644 index 0000000000000000000000000000000000000000..1f967eb8d28ef1da2a0a7b2b4bb89f6440f8608d GIT binary patch literal 6405 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 T|EaD9jS+ad`njxgN@xNAdm=eE literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/rock/mossy_cobble_mercury.png b/kubejs/assets/tfg/textures/block/rock/mossy_cobble_mercury.png new file mode 100644 index 0000000000000000000000000000000000000000..bdf8434d191a926b50d9294ec82b413842ad34b0 GIT binary patch literal 4804 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 CZ!#kQ literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/rock/mossy_cobble_moon_deepslate.png b/kubejs/assets/tfg/textures/block/rock/mossy_cobble_moon_deepslate.png new file mode 100644 index 0000000000000000000000000000000000000000..9d50a7faeaffb63adff9acac894ca72e51fff76a GIT binary patch literal 1279 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(Pw!zt$o#k-`%JbKfjd>Ra07x*^~e*IKI?F~3-Sr6!4pyC2;8 z;KA{vs|SxphO>t|3jARx6rUp!yX44!)mAY>IhpT|@9sT**VyJ4Vmlkjf*%!r@{p>A1nAn)k)>~3E&%#4T>{dixa+pcTBgsb-7G+J* zPl*Y$$S({#9eQn#dVQk8^0iBL_!aXQ>L~WHxSUwAsKrR9CG)C>;lw3>SG3n(`KW$E zb@FN!w?5X81x`hO9@Kx>9c^rH`&5l}k;C)u-1;8o*xe3`({A5CzU{6Bj0}@7>#4Z!73JmC`Tyr-e*4axv#)4LuaT)G0|NtFlDE4H!+#K5uy^@n z1_lPs0*}aI1_o|n5N2eUHAjMhfq}im)7O>#B`1@J6rY&Qv;+nQ2FViFh!W@g+}zZ> z5(ej@)Wnk16ovB4k_-iRPv3y>Mm}){2BzztE{-7=lynf{lD?F0&CB;j%@3~q??=8|?(~NBC2AjWMe!oBT zSkcjYS9RU@olm{JNKd#d)OGXiiAr9Rq5)c@{M>dXB9v(ZSufx}of8+~jl7M}*<+@rDS`BR4+($a-U_QDpX*`PI#7S@kYozH~g> zW%2$TXWajW)Y&WkHF#<-uQvVp-m7r6sK;4{_xv}`&O4FA-5~DBcCf`lUn1^~fxR8e zUO&ma8FMRktm}@@Tgkgf_uSVOjld;UbG@{VBpuwc)VP>;QDMK4zQwGyA6~OHw>7^s zaTG5J=XBCMns$Gw+5FAvQByo!t`)4%5#D{>afzg3=)>!>=bra(k!L>hVOHAeR;DAX zZY!AcylVe#p|$j9=BXN%zsd5ubxvkCoxPF#^P%xulc)c+J~IjK)LVLcNfaxOe%^*T zYK>|ePESe|czFN(%4^vo0_}<)KXTOGSTtu{fR|ELeeA}6PkH}#OCOuZ?(pZSSn56F z8m@??n$t2D&3m~^?ZYA6a{K=s5jq0V_41$lzfYOQd!T4%O4%dDNgXFlZ)`2OlYT3~ oqNTul{q@D$J$G7KJc$o~({SSS(bwM@7#J8lUHx3vIVCg!05D@uVgLXD literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/rock/mossy_cobble_permafrost.png b/kubejs/assets/tfg/textures/block/rock/mossy_cobble_permafrost.png new file mode 100644 index 0000000000000000000000000000000000000000..60a150fa33a1a9792c049ff03edf8343d8b30918 GIT binary patch literal 5039 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7_E&{OlmsP~D-;yvr)B1( zDwI?fq$;FVWTr7NRNTr9aO7iFEcB{KMi&FhG3n_A0j7$a?Gn&sNOqYbLgn1Y4FdaCEqpP zWH0pk@p`)8&!dYMFYGs1m3ZVys|efKW!HQ+`x{kNx zc`$5MX&`1eXSr~lrWzu5nrG|vZ)BZ13as(obp_-5J4 z!h7m`8z*T9&lmQ8RpR)_eVsSo{zAQ5Z=TLnw4FRlollVaDBm=z8B=RH^K{llL3U2oJv$v)r=DV%h`;Atse80dA~nN?TSfk?^=!cjl;l&hN=j zCY=anQ$EhLDnQ{@-3R+0ch?5am{&BZ$#B8zqnqs98V~4QSQCBi`^HpLe}?5+fmSu)SltlRYSS9D@ z>LsS+C#C9DBQBlHCStb$zJphgs>q}eKEl#~=$>Fbx5m+O@q z>*W`v>l<2HTIw4Z=^Gj87Nw-=7FXt#Bv$C=6)S^`fSBQuTAW;zSx}OhpQivaGchT@ zw8U0PiAzC20cvLcqYE^#d@!LOq@q_QAY zKPa_0zqBYh)wL`&uS6Nyh?Hcw{({n?9I$s%lJ!$_Qgc)DN{aOj^$bz0bocZPfa?GS zL3(Cx0a#Z>ZUKtQlFT$jV4?U1Bm?#ivO_9z3*hFWsD}9+tQZ_dRxbI;r6A{dy4Wg# z?6*qEPtHuS0y9(1k_^l&j16>?Ez>M@O)M=^bS(^wEp(I3Of1celg&~M4J?q1^2{qP zNz6-51sPS5TcDSjnPO#}l453*Xq>E@l9XtyYhspatea?@WT?@u03i~PlUS0LUzBUB6rP!v zl3!kokP6AnO${zd1cj%exv9BBVo9P) zVo9p4l97Rtsg;4Hm4Qi!k%5(wv6YFbwtQrrrY2^IsHPX^r15{`a24%5ePSciZxLcID42f8BX|`ej+W_tDKQ zyQZW%E&dd=t+gU&hauPX>1zc=|C(eNHvd}Kv?9#-#sUwnZ95Z{XK|j?5}tV{=J+y> z+oj7t@6o>}zSp{T&+|RY<$L}$@aO;7V-h=`e}yjFRQ^8O!#T%J{caA=FyapI5Z0aO zF-t4ZC~}L}#D)8oJCq#!#q)1L^XA9X1xq$s^k26*pL2}sfZ=p@uFS5dS2?V6BN}Vc z=IRw2FW39`>%YWFv1o6gQt!k5%?<=FX^ zBmL_BO3TOo>vAygDG!&OH8Ue*?&q}=JeDx-5c|^{n_A`f*8befhunWY^|8B%r|a_w zT$}0nBsC>+;n4+7ioFX|dX_W^s+?@nH$68wXx_PHe#>f%L&9e`mKaKRKg_M~oU^P$ zi^F2Ow+k;@*VC&R(X*|7yC(^2@X4w%f2raN4%7r76**{(MU4{j;}u+K=7HT&pxS`mskg|J~nH)?Uvw)%kn;#*)s9uWMUR zt}cG_)r?`mPKyffuS<_@e3`PWcekNv_Zz{~ma9yzoBN#4x?9>>dF1xCHtjih$o}-6 zXLW)NQOjk|cKYuR$u;wsnUmvkJtE}On{8b+moGQjzfch1x%^<=gX7ZEJ6@mJu;o{}+=}ocl>LX1+k@D%JLDiO0)7o4H3-GrYLBoZ-S7 zo`tukthy1JnWnhq#Otr;AM)SoJZ;pp$5Cb0VeOrnpDi+U;*ZI1F)qq)nQ!M){FmoU z+8U1c@7^m+_Io__&K0ZeUh~}f1olfWI(^5d`}WpU{aqRpi&}y+`?h~C`gBVqzNVft z_fE>&_qi_~toUxYZT7pxTTP1c9%)J6)cL&n^PkH1V*O_JXD`|K+}&|nJ%4B5Qmroj eFF(3H|FPBy)SNeHJrf2R3-NUIb6Mw<&;$TWhkT#_ literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/rock/mossy_cobble_venus.png b/kubejs/assets/tfg/textures/block/rock/mossy_cobble_venus.png new file mode 100644 index 0000000000000000000000000000000000000000..34a2de3260d3d0cfc167d5e33594e2c5557bbc2e GIT binary patch literal 6371 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 literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/brick/dripstone.png b/kubejs/assets/tfg/textures/item/brick/dripstone.png new file mode 100644 index 0000000000000000000000000000000000000000..f94c348750ba0b4de78eb5cfaafdbbab62549373 GIT binary patch literal 845 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(OlnRLk|vf=3e;THSPYmGKtsPFT1_G^*5K=NIl-CMueGeNEX1 z5B48j)!e;#9pAbpg&&NM^ei-Yd365w=F&~FwRm@YcXj{n@`ej546eTEWLlLbxw69N z%(F1p|JuIHy1pgH{#o2- z@2NL4Ce@%wX91V!q{r<4oA2M9)%sG?TvLF#Mt|F1L%tv7jcIqc?eEXsUCC52zfpVb z+x2D*JN+-c&eg49VcFi;{d$|)d&cS32R=;JlbobnnaS14^r6n}{uJi6yvBc~+qYk{ z^OJAjDcxGbEF;4t?0PEh{ik>L&fWWGd->IS_QHEb%T7Khjb~tBU`z6LcVYMsf(!O8 zpUl9(z**oCS#NzbTNgMqR8wfbeU;65mR_4-0 zdL>DX`(Iv=f5D%UmX@C$#x`x!2Y-*LRt^QLj${TIwuiQI+_Jv24 zP8Uu+JhgAruLYkso!imb(v;sR{v$BO(roKPqu7@dJPu6BWo1}bbUXxHV3oV98Df1_lOCS3j3^P6 ({ - brick_type: tfc_stone, - brick: `tfc:rock/bricks/${tfc_stone}`, brick_stairs: `tfc:rock/bricks/${tfc_stone}_stairs`, brick_slab: `tfc:rock/bricks/${tfc_stone}_slab`, brick_wall: `tfc:rock/bricks/${tfc_stone}_wall`, + brick_type: tfc_stone, + brick: `tfc:rock/bricks/${tfc_stone}`, brick_stairs: `tfc:rock/bricks/${tfc_stone}_stairs`, brick_slab: `tfc:rock/bricks/${tfc_stone}_slab`, brick_wall: `tfc:rock/bricks/${tfc_stone}_wall`, cracked_brick: `tfc:rock/cracked_bricks/${tfc_stone}`, cracked_stairs: `tfc:rock/cracked_bricks/${tfc_stone}_stairs`, cracked_slab: `tfc:rock/cracked_bricks/${tfc_stone}_slab`, cracked_wall: `tfc:rock/cracked_bricks/${tfc_stone}_wall`, - mossy_brick: `tfc:rock/mossy_bricks/${tfc_stone}`, mossy_stairs: `tfc:rock/mossy_bricks/${tfc_stone}_stairs`, mossy_slab: `tfc:rock/mossy_bricks/${tfc_stone}_slab`, mossy_wall: `tfc:rock/mossy_bricks/${tfc_stone}_wall`, - smooth_brick: `tfc:rock/smooth/${tfc_stone}`, smooth_stairs: `tfc:rock/smooth/${tfc_stone}_stairs`, smooth_slab: `tfc:rock/smooth/${tfc_stone}_slab`, smooth_wall: `tfc:rock/smooth/${tfc_stone}_wall`, + mossy_brick: `tfc:rock/mossy_bricks/${tfc_stone}`, mossy_stairs: `tfc:rock/mossy_bricks/${tfc_stone}_stairs`, mossy_slab: `tfc:rock/mossy_bricks/${tfc_stone}_slab`, mossy_wall: `tfc:rock/mossy_bricks/${tfc_stone}_wall`, + smooth_brick: `tfc:rock/smooth/${tfc_stone}`, smooth_stairs: `tfc:rock/smooth/${tfc_stone}_stairs`, smooth_slab: `tfc:rock/smooth/${tfc_stone}_slab`, smooth_wall: `tfc:rock/smooth/${tfc_stone}_wall`, chiseled_brick: `tfc:rock/chiseled/${tfc_stone}` })); (global.CREATE_DECO_BRICK_TYPES ? global.CREATE_DECO_BRICK_TYPES : []).slice(0, -1).forEach(create_brick => { global.BRICK_INDEX.push({ - brick_type: create_brick, - brick: `createdeco:${create_brick}_bricks`, brick_stairs: `createdeco:${create_brick}_brick_stairs`, brick_slab: `createdeco:${create_brick}_brick_slab`, brick_wall: `createdeco:${create_brick}_brick_wall`, - cracked_brick: `createdeco:cracked_${create_brick}_bricks`, cracked_stairs: `createdeco:cracked_${create_brick}_brick_stairs`, cracked_slab: `createdeco:cracked_${create_brick}_brick_slab`, cracked_wall: `createdeco:cracked_${create_brick}_brick_wall`, - mossy_brick: `createdeco:mossy_${create_brick}_bricks`, mossy_stairs: `createdeco:mossy_${create_brick}_brick_stairs`, mossy_slab: `createdeco:mossy_${create_brick}_brick_slab`, mossy_wall: `createdeco:mossy_${create_brick}_brick_wall`, - smooth_brick: `createdeco:corner_${create_brick}_bricks`, smooth_stairs: `createdeco:corner_${create_brick}_brick_stairs`, smooth_slab: `createdeco:corner_${create_brick}_brick_slab`, smooth_wall: `createdeco:corner_${create_brick}_brick_wall`, + brick_type: create_brick, + brick: `createdeco:${create_brick}_bricks`, brick_stairs: `createdeco:${create_brick}_brick_stairs`, brick_slab: `createdeco:${create_brick}_brick_slab`, brick_wall: `createdeco:${create_brick}_brick_wall`, + cracked_brick: `createdeco:cracked_${create_brick}_bricks`, cracked_stairs: `createdeco:cracked_${create_brick}_brick_stairs`, cracked_slab: `createdeco:cracked_${create_brick}_brick_slab`, cracked_wall: `createdeco:cracked_${create_brick}_brick_wall`, + mossy_brick: `createdeco:mossy_${create_brick}_bricks`, mossy_stairs: `createdeco:mossy_${create_brick}_brick_stairs`, mossy_slab: `createdeco:mossy_${create_brick}_brick_slab`, mossy_wall: `createdeco:mossy_${create_brick}_brick_wall`, + smooth_brick: `createdeco:corner_${create_brick}_bricks`, smooth_stairs: `createdeco:corner_${create_brick}_brick_stairs`, smooth_slab: `createdeco:corner_${create_brick}_brick_slab`, smooth_wall: `createdeco:corner_${create_brick}_brick_wall`, chiseled_brick: `createdeco:tiled_${create_brick}_bricks` }) }); global.BRICK_INDEX = global.BRICK_INDEX.concat([ - // { - // brick_type: '', - // brick: '', brick_stairs: '', brick_slab: '', brick_wall: '', - // cracked_brick: '', cracked_stairs: '', cracked_slab: '', cracked_wall: '', - // mossy_brick: '', mossy_stairs: '', mossy_slab: '', mossy_wallL: '', - // smooth_brick: '', smooth_stairs: '', smooth_slab: '', smooth_wall: '', - // chiseled_brick: '' - // }, - { - brick_type: 'red', - brick: 'minecraft:bricks', brick_stairs: 'minecraft:brick_stairs', brick_slab: 'minecraft:brick_slab', brick_wall: 'minecraft:brick_wall', - cracked_brick: 'createdeco:cracked_red_bricks', cracked_stairs: 'createdeco:cracked_red_brick_stairs', cracked_slab: 'createdeco:cracked_red_brick_slab', cracked_wall: 'createdeco:cracked_red_brick_wall', - mossy_brick: 'createdeco:mossy_red_bricks', mossy_stairs: 'createdeco:mossy_red_brick_stairs', mossy_slab: 'createdeco:mossy_red_brick_slab', mossy_wall: 'createdeco:mossy_red_brick_wall', - smooth_brick: 'createdeco:corner_red_bricks', smooth_stairs: 'createdeco:corner_red_brick_stairs', smooth_slab: 'createdeco:corner_red_brick_slab', smooth_wall: 'createdeco:corner_red_brick_wall', - chiseled_brick: 'createdeco:tiled_red_bricks' - }, - { - brick_type: 'light_concrete', - brick: 'gtceu:light_concrete_bricks', brick_stairs: null, brick_slab: null, brick_wall: null, - cracked_brick: 'gtceu:cracked_light_concrete_bricks', cracked_stairs: null, cracked_slab: null, cracked_wall: null, - mossy_brick: 'gtceu:mossy_light_concrete_bricks', mossy_stairs: null, mossy_slab: null, mossy_wall: null, - smooth_brick: 'gtceu:polished_light_concrete', smooth_stairs: null, smooth_slab: null, smooth_wall: null, - chiseled_brick: 'gtceu:chiseled_light_concrete' - }, - { - brick_type: 'dark_concrete', - brick: 'gtceu:dark_concrete_bricks', brick_stairs: null, brick_slab: null, brick_wall: null, - cracked_brick: 'gtceu:cracked_dark_concrete_bricks', cracked_stairs: null, cracked_slab: null, cracked_wall: null, - mossy_brick: 'gtceu:mossy_dark_concrete_bricks', mossy_stairs: null, mossy_slab: null, mossy_wall: null, - smooth_brick: 'gtceu:polished_dark_concrete', smooth_stairs: null, smooth_slab: null, smooth_wall: null, - chiseled_brick: 'gtceu:chiseled_dark_concrete' - }, - { - brick_type: 'red_granite', - brick: 'gtceu:red_granite_bricks', brick_stairs: null, brick_slab: null, brick_wall: null, - cracked_brick: 'gtceu:cracked_red_granite_bricks', cracked_stairs: null, cracked_slab: null, cracked_wall: null, - mossy_brick: 'gtceu:mossy_red_granite_bricks', mossy_stairs: null, mossy_slab: null, mossy_wall: null, - smooth_brick: 'gtceu:polished_red_granite', smooth_stairs: null, smooth_slab: null, smooth_wall: null, - chiseled_brick: 'gtceu:chiseled_red_granite' - } +// { brick_type: '', +// brick: '', brick_stairs: '', brick_slab: '', brick_wall: '', +// cracked_brick: '', cracked_stairs: '', cracked_slab: '', cracked_wall: '', +// mossy_brick: '', mossy_stairs: '', mossy_slab: '', mossy_wallL: '', +// smooth_brick: '', smooth_stairs: '', smooth_slab: '', smooth_wall: '', +// chiseled_brick: '' }, + + { brick_type: 'red', + brick: 'minecraft:bricks', brick_stairs: 'minecraft:brick_stairs', brick_slab: 'minecraft:brick_slab', brick_wall: 'minecraft:brick_wall', + cracked_brick: 'createdeco:cracked_red_bricks', cracked_stairs: 'createdeco:cracked_red_brick_stairs', cracked_slab: 'createdeco:cracked_red_brick_slab', cracked_wall: 'createdeco:cracked_red_brick_wall', + mossy_brick: 'createdeco:mossy_red_bricks', mossy_stairs: 'createdeco:mossy_red_brick_stairs', mossy_slab: 'createdeco:mossy_red_brick_slab', mossy_wall: 'createdeco:mossy_red_brick_wall', + smooth_brick: 'createdeco:corner_red_bricks', smooth_stairs: 'createdeco:corner_red_brick_stairs', smooth_slab: 'createdeco:corner_red_brick_slab', smooth_wall: 'createdeco:corner_red_brick_wall', + chiseled_brick: 'createdeco:tiled_red_bricks' }, + + { brick_type: 'light_concrete', + brick: 'gtceu:light_concrete_bricks', brick_stairs: null, brick_slab: null, brick_wall: null, + cracked_brick: 'gtceu:cracked_light_concrete_bricks', cracked_stairs: null, cracked_slab: null, cracked_wall: null, + mossy_brick: 'gtceu:mossy_light_concrete_bricks', mossy_stairs: null, mossy_slab: null, mossy_wall: null, + smooth_brick: 'gtceu:polished_light_concrete', smooth_stairs: null, smooth_slab: null, smooth_wall: null, + chiseled_brick: 'gtceu:chiseled_light_concrete' }, + + { brick_type: 'dark_concrete', + brick: 'gtceu:dark_concrete_bricks', brick_stairs: null, brick_slab: null, brick_wall: null, + cracked_brick: 'gtceu:cracked_dark_concrete_bricks', cracked_stairs: null, cracked_slab: null, cracked_wall: null, + mossy_brick: 'gtceu:mossy_dark_concrete_bricks', mossy_stairs: null, mossy_slab: null, mossy_wall: null, + smooth_brick: 'gtceu:polished_dark_concrete', smooth_stairs: null, smooth_slab: null, smooth_wall: null, + chiseled_brick: 'gtceu:chiseled_dark_concrete' }, + + { brick_type: 'deepslate', + brick: 'minecraft:deepslate_bricks', brick_stairs: 'minecraft:deepslate_brick_stairs', brick_slab: 'minecraft:deepslate_brick_slab', brick_wall: 'minecraft:deepslate_brick_wall', + cracked_brick: 'minecraft:cracked_deepslate_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_deepslate_stairs', cracked_slab: 'tfg:rock/cracked_bricks_deepslate_slab', cracked_wall: 'tfg:rock/cracked_bricks_deepslate_wall', + mossy_brick: 'tfg:rock/mossy_bricks_deepslate', mossy_stairs: 'tfg:rock/mossy_bricks_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_bricks_deepslate_slab', mossy_wall: 'tfg:rock/mossy_bricks_deepslate_wall', + smooth_brick: 'minecraft:polished_deepslate', smooth_stairs: 'minecraft:polished_deepslate_stairs', smooth_slab: 'minecraft:polished_deepslate_slab', smooth_wall: 'minecraft:polished_deepslate_wall', + chiseled_brick: 'minecraft:chiseled_deepslate' }, + + { brick_type: 'deepslate_tiles', + brick: 'minecraft:deepslate_tiles', brick_stairs: 'minecraft:deepslate_tile_stairs', brick_slab: 'minecraft:deepslate_tile_slab', brick_wall: 'minecraft:deepslate_tile_wall', + cracked_brick: 'minecraft:cracked_deepslate_tiles', cracked_stairs: 'tfg:rock/cracked_tiles_deepslate_stairs', cracked_slab: 'tfg:rock/cracked_tiles_deepslate_slab', cracked_wall: 'tfg:rock/cracked_tiles_deepslate_wall', + mossy_brick: null, mossy_stairs: null, mossy_slab: null, mossy_wall: null, + smooth_brick: 'minecraft:polished_deepslate', smooth_stairs: 'minecraft:polished_deepslate_stairs', smooth_slab: 'minecraft:polished_deepslate_slab', smooth_wall: 'minecraft:polished_deepslate_wall', + chiseled_brick: 'minecraft:chiseled_deepslate' }, + + { brick_type: 'blackstone', + brick: 'minecraft:polished_blackstone_bricks', brick_stairs: 'minecraft:polished_blackstone_brick_stairs', brick_slab: 'minecraft:polished_blackstone_brick_slab', brick_wall: 'minecraft:polished_blackstone_brick_wall', + cracked_brick: 'minecraft:cracked_polished_blackstone_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_blackstone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_blackstone_slab', cracked_wall: 'tfg:rock/cracked_bricks_blackstone_wall', + mossy_brick: 'tfg:rock/mossy_bricks_blackstone', mossy_stairs: 'tfg:rock/mossy_bricks_blackstone_stairs', mossy_slab: 'tfg:rock/mossy_bricks_blackstone_slab', mossy_wall: 'tfg:rock/mossy_bricks_blackstone_wall', + smooth_brick: 'minecraft:polished_blackstone', smooth_stairs: 'minecraft:polished_blackstone_stairs', smooth_slab: 'minecraft:polished_blackstone_slab', smooth_wall: 'minecraft:polished_blackstone_wall', + chiseled_brick: 'minecraft:chiseled_blackstone' }, + + { brick_type: 'dripstone', + brick: 'create:cut_dripstone_bricks', brick_stairs: 'create:cut_dripstone_brick_stairs', brick_slab: 'create:cut_dripstone_brick_slab', brick_wall: 'create:cut_dripstone_brick_wall', + cracked_brick: 'tfg:rock/cracked_bricks_dripstone', cracked_stairs: 'tfg:rock/cracked_bricks_dripstone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_dripstone_slab', cracked_wall: 'tfg:rock/cracked_bricks_dripstone_wall', + mossy_brick: 'tfg:rock/mossy_bricks_dripstone', mossy_stairs: 'tfg:rock/mossy_bricks_dripstone_stairs', mossy_slab: 'tfg:rock/mossy_bricks_dripstone_slab', mossy_wall: 'tfg:rock/mossy_bricks_dripstone_wall', + smooth_brick: 'create:polished_cut_dripstone', smooth_stairs: 'create:polished_cut_dripstone_stairs', smooth_slab: 'create:polished_cut_dripstone_slab', smooth_wall: 'create:polished_cut_dripstone_wall', + chiseled_brick: 'create:small_dripstone_bricks' }, + + { brick_type: 'crackrack', + brick: 'minecraft:nether_bricks', brick_stairs: 'minecraft:nether_bricks_stairs', brick_slab: 'minecraft:nether_bricks_slab', brick_wall: 'minecraft:nether_bricks_wall', + cracked_brick: 'minecraft:cracked_nether_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_nether_stairs', cracked_slab: 'tfg:rock/cracked_bricks_nether_slab', cracked_wall: 'tfg:rock/cracked_bricks_nether_wall', + mossy_brick: 'tfg:rock/mossy_bricks_nether', mossy_stairs: 'tfg:rock/mossy_bricks_nether_stairs', mossy_slab: 'tfg:rock/mossy_bricks_nether_slab', mossy_wall: 'tfg:rock/mossy_bricks_nether_wall', + smooth_brick: 'tfg:rock/polished_crackrack', smooth_stairs: 'tfg:rock/polished_crackrack_stairs', smooth_slab: 'tfg:rock/polished_crackrack_slab', smooth_wall: 'tfg:rock/polished_crackrack_wall', + chiseled_brick: 'minecraft:chiseled_nether_bricks' }, + + { brick_type: 'moon_deepslate', + brick: 'tfg:rock/bricks_moon_deepslate', brick_stairs: 'tfg:rock/bricks_moon_deepslate_stairs', brick_slab: 'tfg:rock/bricks_moon_deepslate_slab', brick_wall: 'tfg:rock/bricks_moon_deepslate_wall', + cracked_brick: 'tfg:rock/cracked_bricks_moon_deepslate', cracked_stairs: 'tfg:rock/cracked_bricks_moon_deepslate_stairs', cracked_slab: 'tfg:rock/cracked_bricks_moon_slab', cracked_wall: 'tfg:rock/cracked_bricks_moon_wall', + mossy_brick: 'tfg:rock/mossy_bricks_moon_deepslate', mossy_stairs: 'tfg:rock/mossy_bricks_moon_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_bricks_moon_slab', mossy_wall: 'tfg:rock/mossy_bricks_moon_deepslate_wall', + smooth_brick: 'tfg:rock/polished_moon_deepslate', smooth_stairs: 'tfg:rock/polished_moon_deepslate_stairs', smooth_slab: 'ad_astra:polished_moon_stone_slab', smooth_wall: 'tfg:rock/polished_moon_deepslate_wall', + chiseled_brick: 'tfg:rock/chiseled_bricks_moon_deepslate' }, + + { brick_type: 'permafrost', + brick: 'ad_astra:permafrost_bricks', brick_stairs: 'ad_astra:permafrost_brick_stairs', brick_slab: 'ad_astra:permafrost_brick_slab', brick_wall: 'ad_astra:permafrost_brick_wall', + cracked_brick: 'ad_astra:cracked_permafrost_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_permafrost_stairs', cracked_slab: 'tfg:rock/cracked_bricks_permafrost_slab', cracked_wall: 'tfg:rock/cracked_bricks_permafrost_wall', + mossy_brick: 'tfg:rock/mossy_bricks_permafrost', mossy_stairs: 'tfg:rock/mossy_bricks_permafrost_stairs', mossy_slab: 'tfg:rock/mossy_bricks_permafrost_slab', mossy_wall: 'tfg:rock/mossy_bricks_permafrost_wall', + smooth_brick: 'ad_astra:polished_permafrost', smooth_stairs: 'ad_astra:polished_permafrost_stairs', smooth_slab: 'ad_astra:polished_permafrost_slab', smooth_wall: 'tfg:rock/polished_permafrost_wall', + chiseled_brick: 'ad_astra:chiseled_permafrost_bricks' }, + + { brick_type: 'red_granite', + brick: 'gtceu:red_granite_bricks', brick_stairs: 'tfg:rock/bricks_red_granite_stairs', brick_slab: 'tfg:rock/bricks_red_granite_slab', brick_wall: 'tfg:rock/bricks_red_granite_wall', + cracked_brick: 'gtceu:cracked_red_granite_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_red_granite_stairs', cracked_slab: 'tfg:rock/cracked_bricks_red_granite_slab', cracked_wall: 'tfg:rock/cracked_bricks_red_granite_wall', + mossy_brick: 'gtceu:mossy_red_granite_bricks', mossy_stairs: 'tfg:rock/mossy_bricks_red_granite_stairs', mossy_slab: 'tfg:rock/mossy_bricks_red_granite_slab', mossy_wall: 'tfg:rock/mossy_bricks_red_granite_wall', + smooth_brick: 'gtceu:polished_red_granite', smooth_stairs: 'tfg:rock/polished_red_granite_stairs', smooth_slab: 'tfg:rock/polished_red_granite_slab', smooth_wall: 'tfg:rock/polished_red_granite_wall', + chiseled_brick: 'gtceu:chiseled_red_granite' }, + + { brick_type: 'venus_sandstone', + brick: 'ad_astra:venus_sandstone_bricks', brick_stairs: 'ad_astra:venus_sandstone_brick_stairs', brick_slab: 'ad_astra:venus_sandstone_brick_slab', brick_wall: 'tfg:rock/bricks_venus_sandstone_wall', + cracked_brick: 'ad_astra:cracked_venus_sandstone_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_venus_sandstone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_venus_sandstone_slab', cracked_wall: 'tfg:rock/cracked_bricks_stone_wall', + mossy_brick: null, mossy_stairs: null, mossy_slab: null, mossy_wall: null, + smooth_brick: null, smooth_stairs: null, smooth_slab: null, smooth_wall: null, + chiseled_brick: null }, + + { brick_type: 'stone', + brick: 'minecraft:stone_bricks', brick_stairs: 'minecraft:stone_brick_stairs', brick_slab: 'minecraft:stone_brick_slab', brick_wall: 'minecraft:stone_brick_wall', + cracked_brick: 'minecraft:cracked_stone_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_stone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_stone_slab', cracked_wall: 'tfg:rock/cracked_bricks_stone_wall', + mossy_brick: 'minecraft:mossy_stone_bricks', mossy_stairs: 'minecraft:mossy_stone_brick_stairs', mossy_slab: 'minecraft:mossy_stone_brick_slab', mossy_wall: 'minecraft:mossy_stone_brick_wall', + smooth_brick: 'minecraft:smooth_stone', smooth_stairs: 'tfg:rock/smooth_stone_stairs', smooth_slab: 'minecraft:smooth_stone_slab', smooth_wall: 'tfg:rock/smooth_stone_wall', + chiseled_brick: 'minecraft:chiseled_stone_bricks' } ]); +global.BRICK_INDEX = global.BRICK_INDEX.concat( (AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => ( + { brick_type: stone, + brick: `ad_astra:${stone}_stone_bricks`, brick_stairs: `ad_astra:${stone}_stone_brick_stairs`, brick_slab: `ad_astra:${stone}_stone_brick_slab`, brick_wall: `ad_astra:${stone}_stone_brick_wall`, + cracked_brick: `ad_astra:cracked_${stone}_stone_bricks`, cracked_stairs: `tfg:rock/cracked_bricks_${stone}_stairs`, cracked_slab: `tfg:rock/cracked_bricks_${stone}_slab`, cracked_wall: `tfg:rock/cracked_bricks_${stone}_wall`, + mossy_brick: `tfg:rock/mossy_bricks_${stone}`, mossy_stairs: `tfg:rock/mossy_bricks_${stone}_stairs`, mossy_slab: `tfg:rock/mossy_bricks_${stone}_slab`, mossy_wall: `tfg:rock/mossy_bricks_${stone}_wall`, + smooth_brick: `ad_astra:polished_${stone}_stone`, smooth_stairs: `ad_astra:polished_${stone}_stone_stairs`, smooth_slab: `ad_astra:polished_${stone}_stone_slab`, smooth_wall: `tfg:rock/polished_${stone}_wall`, + chiseled_brick: `ad_astra:chiseled_${stone}_stone_bricks` } +)) ) + +// #endregion BRICK_INDEX + +// #region COBBLE_INDEX +global.COBBLE_INDEX = (global.TFC_STONE_TYPES ? global.TFC_STONE_TYPES : []).map(tfc_stone => ({ + cobble_type: tfc_stone, + block: `tfc:rock/cobble/${tfc_stone}`, stairs: `tfc:rock/cobble/${tfc_stone}_stairs`, slab: `tfc:rock/cobble/${tfc_stone}_slab`, wall: `tfc:rock/cobble/${tfc_stone}_wall`, + mossy_block: `tfc:rock/mossy_cobble/${tfc_stone}`, mossy_stairs: `tfc:rock/mossy_cobble/${tfc_stone}_stairs`, mossy_slab: `tfc:rock/mossy_cobble/${tfc_stone}_slab`, mossy_wall: `tfc:rock/mossy_cobble/${tfc_stone}_wall` +})); + +global.COBBLE_INDEX = global.COBBLE_INDEX.concat([ + { cobble_type: 'deepslate', + block: 'minecraft:cobbled_deepslate', stairs: 'minecraft:cobbled_deepslate_stairs', slab: 'minecraft:cobbled_deepslate_slab', wall: 'minecraft:cobbled_deepslate_wall', + mossy_block: 'tfg:rock/mossy_cobble_deepslate', mossy_stairs: 'tfg:rock/mossy_cobble_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_cobble_deepslate_slab', mossy_wall: 'tfg:rock/mossy_cobble_deepslate_wall' }, + + { cobble_type: 'blackstone', + block: 'tfg:rock/cobble_blackstone', stairs: 'tfg:rock/cobble_blackstone_stairs', slab: 'tfg:rock/cobble_blackstone_slab', wall: 'tfg:rock/cobble_blackstone_wall', + mossy_block: 'tfg:rock/mossy_cobble_blackstone', mossy_stairs: 'tfg:rock/mossy_cobble_blackstone_stairs', mossy_slab: 'tfg:rock/mossy_cobble_blackstone_slab', mossy_wall: 'tfg:rock/mossy_cobble_blackstone_wall' }, + + { cobble_type: 'dripstone', + block: 'tfg:rock/cobble_dripstone', stairs: 'tfg:rock/cobble_dripstone_stairs', slab: 'tfg:rock/cobble_dripstone_slab', wall: 'tfg:rock/cobble_dripstone_wall', + mossy_block: 'tfg:rock/mossy_cobble_dripstone', mossy_stairs: 'tfg:rock/mossy_cobble_dripstone_stairs', mossy_slab: 'tfg:rock/mossy_cobble_dripstone_slab', mossy_wall: 'tfg:rock/mossy_cobble_dripstone_wall' }, + + { cobble_type: 'crackrack', + block: 'tfg:rock/cobble_crackrack', stairs: 'tfg:rock/cobble_crackrack_stairs', slab: 'tfg:rock/cobble_crackrack_slab', wall: 'tfg:rock/cobble_crackrack_wall', + mossy_block: 'tfg:rock/mossy_cobble_crackrack', mossy_stairs: 'tfg:rock/mossy_cobble_crackrack_stairs', mossy_slab: 'tfg:rock/mossy_cobble_crackrack_slab', mossy_wall: 'tfg:rock/mossy_cobble_crackrack_wall' }, + + { cobble_type: 'moon_deepslate', + block: 'tfg:rock/cobble_moon_deepslate', stairs: 'tfg:rock/cobble_moon_deepslate_stairs', slab: 'tfg:rock/cobble_moon_deepslate_slab', wall: 'tfg:rock/cobble_moon_deepslate_wall', + mossy_block: 'tfg:rock/mossy_cobble_moon_deepslate', mossy_stairs: 'tfg:rock/mossy_cobble_moon_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_cobble_moon_deepslate_slab', mossy_wall: 'tfg:rock/mossy_cobble_moon_deepslate_wall' }, + + { cobble_type: 'permafrost', + block: 'tfg:rock/cobble_permafrost', stairs: 'tfg:rock/cobble_permafrost_stairs', slab: 'tfg:rock/cobble_permafrost_slab', wall: 'tfg:rock/cobble_permafrost_wall', + mossy_block: 'tfg:rock/mossy_cobble_permafrost', mossy_stairs: 'tfg:rock/mossy_cobble_permafrost_stairs', mossy_slab: 'tfg:rock/mossy_cobble_permafrost_slab', mossy_wall: 'tfg:rock/mossy_cobble_permafrost_wall' }, + + { cobble_type: 'red_granite', + block: 'gtceu:red_granite_cobblestone', stairs: 'tfg:rock/cobble_red_granite_stairs', slab: 'tfg:rock/cobble_red_granite_slab', wall: 'tfg:rock/cobble_red_granite_wall', + mossy_block: 'gtceu:mossy_red_granite_cobblestone', mossy_stairs: 'tfg:rock/mossy_cobble_red_granite_stairs', mossy_slab: 'tfg:rock/mossy_cobble_red_granite_slab', mossy_wall: 'tfg:rock/mossy_cobble_red_granite_wall' }, + + { cobble_type: 'stone', + block: 'minecraft:cobblestone', stairs: 'minecraft:cobblestone_stairs', slab: 'minecraft:cobblestone_slab', wall: 'minecraft:cobblestone_wall', + mossy_block: 'minecraft:mossy_cobblestone', mossy_stairs: 'minecraft:mossy_cobblestone_stairs', mossy_slab: 'minecraft:mossy_cobblestone_slab', mossy_wall: 'minecraft:mossy_cobblestone_wall' } +]); + +global.COBBLE_INDEX = global.COBBLE_INDEX.concat( (AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => ( + { cobble_type: stone, + block: `ad_astra:${stone}_cobblestone`, stairs: `ad_astra:${stone}_cobblestone_stairs`, slab: `ad_astra:${stone}_cobblestone_slab`, wall: `tfg:rock/cobble_${stone}_wall`, + mossy_block: `tfg:rock/mossy_cobble_${stone}`, mossy_stairs: `tfg:rock/mossy_cobble_${stone}_stairs`, mossy_slab: `tfg:rock/mossy_cobble_${stone}_slab`, mossy_wall: `tfg:rock/mossy_cobble_${stone}_wall` } +)) ) + +// #endregion COBBLE_INDEX + /** * Function for replacing a block with another block by crouch-right-clicking with a tool. * @@ -453,78 +573,79 @@ BlockEvents.rightClicked(event => { //Brick index events for (const b of global.BRICK_INDEX) { //brick -> cracked - transformBlockWithTool(event, b.brick, b.cracked_brick, '#forge:tools/hammers',true, 'minecraft:block.copper.hit', 'minecraft:crit', true); - transformBlockWithTool(event, b.brick_stairs, b.cracked_stairs, '#forge:tools/hammers',true, 'minecraft:block.copper.hit', 'minecraft:crit', true); - transformBlockWithTool(event, b.brick_slab, b.cracked_slab, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); - transformBlockWithTool(event, b.brick_wall, b.cracked_wall, '#forge:tools/hammers',true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + transformBlockWithTool(event, b.brick, b.cracked_brick, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + transformBlockWithTool(event, b.brick_stairs, b.cracked_stairs, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + transformBlockWithTool(event, b.brick_slab, b.cracked_slab, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + transformBlockWithTool(event, b.brick_wall, b.cracked_wall, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); //brick -> mossy - transformBlockWithItem(event, b.brick, b.mossy_brick, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.brick, b.mossy_brick, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.brick_stairs, b.mossy_stairs, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.brick_stairs, b.mossy_stairs, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.brick_slab, b.mossy_slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.brick_slab, b.mossy_slab, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.brick_wall, b.mossy_wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.brick_wall, b.mossy_wall, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.brick, b.mossy_brick, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.brick, b.mossy_brick, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.brick_stairs, b.mossy_stairs, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.brick_stairs, b.mossy_stairs, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.brick_slab, b.mossy_slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.brick_slab, b.mossy_slab, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.brick_wall, b.mossy_wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.brick_wall, b.mossy_wall, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); //cracked -> mossy - transformBlockWithItem(event, b.cracked_brick, b.mossy_brick, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.cracked_brick, b.mossy_brick, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.cracked_stairs, b.mossy_stairs, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.cracked_stairs, b.mossy_stairs, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.cracked_slab, b.mossy_slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.cracked_slab, b.mossy_slab, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.cracked_wall, b.mossy_wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.cracked_wall, b.mossy_wall, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.cracked_brick, b.mossy_brick, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.cracked_brick, b.mossy_brick, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.cracked_stairs, b.mossy_stairs, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.cracked_stairs, b.mossy_stairs, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.cracked_slab, b.mossy_slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.cracked_slab, b.mossy_slab, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.cracked_wall, b.mossy_wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.cracked_wall, b.mossy_wall, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); //mossy -> cracked - transformBlockWithTool(event, b.mossy_brick, b.cracked_brick, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); - transformBlockWithTool(event, b.mossy_stairs, b.cracked_stairs, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); - transformBlockWithTool(event, b.mossy_slab, b.cracked_slab, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); - transformBlockWithTool(event, b.mossy_wall, b.cracked_wall, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + transformBlockWithTool(event, b.mossy_brick, b.cracked_brick, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + transformBlockWithTool(event, b.mossy_stairs, b.cracked_stairs, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + transformBlockWithTool(event, b.mossy_slab, b.cracked_slab, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + transformBlockWithTool(event, b.mossy_wall, b.cracked_wall, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); //mossy -> brick - transformBlockWithTool(event, b.mossy_brick, b.brick, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.mossy_brick, b.brick, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithTool(event, b.mossy_stairs, b.brick_stairs, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.mossy_stairs, b.brick_stairs, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithTool(event, b.mossy_slab, b.brick_slab, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.mossy_slab, b.brick_slab, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithTool(event, b.mossy_wall, b.brick_wall, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.mossy_wall, b.mossy_wall, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithTool(event, b.mossy_brick, b.brick, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.mossy_brick, b.brick, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithTool(event, b.mossy_stairs, b.brick_stairs, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.mossy_stairs, b.brick_stairs, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithTool(event, b.mossy_slab, b.brick_slab, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.mossy_slab, b.brick_slab, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithTool(event, b.mossy_wall, b.brick_wall, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.mossy_wall, b.mossy_wall, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); //cracked -> brick - transformBlockWithItem(event, b.cracked_brick, b.brick, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true); - transformBlockWithItem(event, b.cracked_stairs, b.brick_stairs, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true); - transformBlockWithItem(event, b.cracked_slab, b.brick_slab, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true); - transformBlockWithItem(event, b.cracked_wall, b.brick_wall, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true); - // -> smooth - transformBlockWithTool(event, b.brick, b.smooth_brick, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true); - transformBlockWithTool(event, b.mossy_brick, b.smooth_brick, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true); - transformBlockWithTool(event, b.cracked_brick, b.smooth_brick, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true); - // smooth -> - transformBlockWithTool(event, b.smooth_brick, b.cracked_brick, '#forge:tools/hammers',true, 'minecraft:block.copper.hit', 'minecraft:crit', true); - transformBlockWithItem(event, b.smooth_brick, b.mossy_brick, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.smooth_brick, b.mossy_brick, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithTool(event, b.smooth_brick, b.brick, '#forge:tools/files', true, 'minecraft:block.beehive.shear', 'minecraft:crit', true); + transformBlockWithItem(event, b.cracked_brick, b.brick, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true); + transformBlockWithItem(event, b.cracked_stairs, b.brick_stairs, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true); + transformBlockWithItem(event, b.cracked_slab, b.brick_slab, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true); + transformBlockWithItem(event, b.cracked_wall, b.brick_wall, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true); + // brick -> smooth + transformBlockWithTool(event, b.brick, b.smooth_brick, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true); + transformBlockWithTool(event, b.mossy_brick, b.smooth_brick, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true); + transformBlockWithTool(event, b.cracked_brick, b.smooth_brick, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true); + // smooth -> brick + transformBlockWithTool(event, b.smooth_brick, b.cracked_brick, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + transformBlockWithItem(event, b.smooth_brick, b.mossy_brick, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.smooth_brick, b.mossy_brick, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithTool(event, b.smooth_brick, b.brick, '#forge:tools/files', true, 'minecraft:block.beehive.shear', 'minecraft:crit', true); } - //Other TFC Blocks - global.TFC_STONE_TYPES.forEach(stone => { + + //Cobble index events + for (const c of global.COBBLE_INDEX) { //cobble -> mossy - transformBlockWithItem(event, `tfc:rock/cobble/${stone}`, `tfc:rock/mossy_cobble/${stone}`, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, `tfc:rock/cobble/${stone}`, `tfc:rock/mossy_cobble/${stone}`, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, `tfc:rock/cobble/${stone}_stairs`, `tfc:rock/mossy_cobble/${stone}_stairs`, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, `tfc:rock/cobble/${stone}_stairs`, `tfc:rock/mossy_cobble/${stone}_stairs`, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, `tfc:rock/cobble/${stone}_slab`, `tfc:rock/mossy_cobble/${stone}_slab`, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, `tfc:rock/cobble/${stone}_slab`, `tfc:rock/mossy_cobble/${stone}_slab`, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, `tfc:rock/cobble/${stone}_wall`, `tfc:rock/mossy_cobble/${stone}_wall`, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, `tfc:rock/cobble/${stone}_wall`, `tfc:rock/mossy_cobble/${stone}_wall`, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.block, c.mossy_block, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.block, c.mossy_block, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.stairs, c.mossy_stairs, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.stairs, c.mossy_stairs, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.slab, c.mossy_slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.slab, c.mossy_slab, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.wall, c.mossy_wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.wall, c.mossy_wall, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); //mossy -> cobble - transformBlockWithTool(event, `tfc:rock/mossy_cobble/${stone}`, `tfc:rock/cobble/${stone}`, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithItem(event, `tfc:rock/mossy_cobble/${stone}`, `tfc:rock/cobble/${stone}`, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithTool(event, `tfc:rock/mossy_cobble/${stone}_stairs`, `tfc:rock/cobble/${stone}_stairs`, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithItem(event, `tfc:rock/mossy_cobble/${stone}_stairs`, `tfc:rock/cobble/${stone}_stairs`, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithTool(event, `tfc:rock/mossy_cobble/${stone}_slab`, `tfc:rock/cobble/${stone}_slab`, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithItem(event, `tfc:rock/mossy_cobble/${stone}_slab`, `tfc:rock/cobble/${stone}_slab`, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithTool(event, `tfc:rock/mossy_cobble/${stone}_wall`, `tfc:rock/cobble/${stone}_wall`, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithItem(event, `tfc:rock/mossy_cobble/${stone}_wall`, `tfc:rock/cobble/${stone}_wall`, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - }); + transformBlockWithTool(event, c.mossy_block, c.block, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.mossy_block, c.block, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithTool(event, c.mossy_stairs, c.stairs, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.mossy_stairs, c.stairs, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithTool(event, c.mossy_slab, c.slab, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.mossy_slab, c.slab, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithTool(event, c.mossy_wall, c.wall, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.mossy_wall, c.wall, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + } }); // Makes scythes, hoes, and knives take damage when cutting grass diff --git a/kubejs/server_scripts/tfg/recipes.collapse.js b/kubejs/server_scripts/tfg/recipes.collapse.js index 62e039d47..41b52c61a 100644 --- a/kubejs/server_scripts/tfg/recipes.collapse.js +++ b/kubejs/server_scripts/tfg/recipes.collapse.js @@ -22,9 +22,13 @@ function registerTFGCollapseRecipes(event) { event.recipes.tfc.landslide('tfg:ash_pile', 'tfg:ash_pile') event.recipes.tfc.landslide('minecraft:cobbled_deepslate', 'minecraft:cobbled_deepslate') + event.recipes.tfc.landslide('minecraft:mossy_cobbled_deepslate', 'minecraft:mossy_cobbled_deepslate') event.recipes.tfc.landslide('tfg:rock/cobble_blackstone', 'tfg:rock/cobble_blackstone') + event.recipes.tfc.landslide('tfg:rock/mossy_cobble_blackstone', 'tfg:rock/mossy_cobble_blackstone') event.recipes.tfc.landslide('tfg:rock/cobble_dripstone', 'tfg:rock/cobble_dripstone') + event.recipes.tfc.landslide('tfg:rock/mossy_cobble_dripstone', 'tfg:rock/mossy_cobble_dripstone') event.recipes.tfc.landslide('tfg:rock/cobble_crackrack', 'tfg:rock/cobble_crackrack') + event.recipes.tfc.landslide('tfg:rock/mossy_cobble_crackrack', 'tfg:rock/mossy_cobble_crackrack') event.recipes.tfc.landslide('tfg:rock/gravel_deepslate', 'tfg:rock/gravel_deepslate') event.recipes.tfc.landslide('tfg:rock/gravel_blackstone', 'tfg:rock/gravel_blackstone') @@ -38,53 +42,61 @@ function registerTFGCollapseRecipes(event) { event.recipes.tfc.collapse('ad_astra:moon_cobblestone', 'tfg:rock/hardened_moon_stone') event.recipes.tfc.landslide('ad_astra:moon_cobblestone', 'ad_astra:moon_cobblestone') event.recipes.tfc.collapse('ad_astra:moon_cobblestone', '#forge:ores_in_ground/moon_stone') + event.recipes.tfc.landslide('tfg:rock/mossy_cobble_moon', 'tfg:rock/mossy_cobble_moon') event.recipes.tfc.landslide('tfg:rock/gravel_moon', 'tfg:rock/gravel_moon') event.recipes.tfc.collapse('ad_astra:moon_deepslate', 'ad_astra:moon_deepslate') event.recipes.tfc.collapse('ad_astra:moon_deepslate', 'tfg:rock/hardened_moon_deepslate') event.recipes.tfc.collapse('ad_astra:moon_deepslate', '#forge:ores_in_ground/moon_deepslate') - event.recipes.tfc.landslide('tfg:rock/cobble_moon_deepslate', 'tfg:rock/cobble_moon_deepslate') + event.recipes.tfc.landslide('tfg:rock/cobble_moon_deepslate', 'tfg:rock/cobble_moon_deepslate') + event.recipes.tfc.landslide('tfg:rock/mossy_cobble_moon_deepslate', 'tfg:rock/mossy_cobble_moon_deepslate') event.recipes.tfc.landslide('tfg:rock/gravel_moon_deepslate', 'tfg:rock/gravel_moon_deepslate') event.recipes.tfc.landslide('ad_astra:moon_sand', 'ad_astra:moon_sand') event.recipes.tfc.collapse('ad_astra:glacio_cobblestone', 'ad_astra:glacio_stone') event.recipes.tfc.collapse('ad_astra:glacio_cobblestone', 'tfg:rock/hardened_glacio_stone') - event.recipes.tfc.landslide('ad_astra:glacio_cobblestone', 'ad_astra:glacio_cobblestone') event.recipes.tfc.collapse('ad_astra:glacio_cobblestone', '#forge:ores_in_ground/glacio_stone') + event.recipes.tfc.landslide('ad_astra:glacio_cobblestone', 'ad_astra:glacio_cobblestone') + event.recipes.tfc.landslide('tfg:rock/mossy_cobble_glacio', 'tfg:rock/mossy_cobble_glacio') event.recipes.tfc.landslide('tfg:rock/gravel_glacio', 'tfg:rock/gravel_glacio') event.recipes.tfc.collapse('ad_astra:mars_cobblestone', 'ad_astra:mars_stone') event.recipes.tfc.collapse('ad_astra:mars_cobblestone', 'tfg:rock/hardened_mars_stone') - event.recipes.tfc.landslide('ad_astra:mars_cobblestone', 'ad_astra:mars_cobblestone') event.recipes.tfc.collapse('ad_astra:mars_cobblestone', '#forge:ores_in_ground/mars_stone') + event.recipes.tfc.landslide('ad_astra:mars_cobblestone', 'ad_astra:mars_cobblestone') + event.recipes.tfc.landslide('tfg:rock/mossy_cobble_mars', 'tfg:rock/mossy_cobble_mars') event.recipes.tfc.landslide('tfg:rock/gravel_mars', 'tfg:rock/gravel_mars') event.recipes.tfc.landslide('ad_astra:mars_sand', 'ad_astra:mars_sand') event.recipes.tfc.collapse('ad_astra:venus_cobblestone', 'ad_astra:venus_stone') event.recipes.tfc.collapse('ad_astra:venus_cobblestone', 'tfg:rock/hardened_venus_stone') - event.recipes.tfc.landslide('ad_astra:venus_cobblestone', 'ad_astra:venus_cobblestone') event.recipes.tfc.collapse('ad_astra:venus_cobblestone', '#forge:ores_in_ground/venus_stone') + event.recipes.tfc.landslide('ad_astra:venus_cobblestone', 'ad_astra:venus_cobblestone') + event.recipes.tfc.landslide('tfg:rock/mossy_cobble_venus', 'tfg:rock/mossy_cobble_venus') event.recipes.tfc.landslide('tfg:rock/gravel_venus', 'tfg:rock/gravel_venus') event.recipes.tfc.landslide('ad_astra:venus_sand', 'ad_astra:venus_sand') event.recipes.tfc.collapse('ad_astra:mercury_cobblestone', 'ad_astra:mercury_stone') event.recipes.tfc.collapse('ad_astra:mercury_cobblestone', 'tfg:rock/hardened_mercury_stone') - event.recipes.tfc.landslide('ad_astra:mercury_cobblestone', 'ad_astra:mercury_cobblestone') event.recipes.tfc.collapse('ad_astra:mercury_cobblestone', '#forge:ores_in_ground/mercury_stone') + event.recipes.tfc.landslide('ad_astra:mercury_cobblestone', 'ad_astra:mercury_cobblestone') + event.recipes.tfc.landslide('tfg:rock/mossy_cobble_mercury', 'tfg:rock/mossy_cobble_mercury') event.recipes.tfc.landslide('tfg:rock/gravel_mercury', 'tfg:rock/gravel_mercury') event.recipes.tfc.collapse('tfg:rock/cobble_permafrost', 'ad_astra:permafrost') - event.recipes.tfc.landslide('tfg:rock/cobble_permafrost', 'tfg:rock/cobble_permafrost') event.recipes.tfc.collapse('tfg:rock/cobble_permafrost', '#forge:ores_in_ground/permafrost') + event.recipes.tfc.landslide('tfg:rock/cobble_permafrost', 'tfg:rock/cobble_permafrost') + event.recipes.tfc.landslide('tfg:rock/mossy_cobble_permafrost', 'tfg:rock/mossy_cobble_permafrost') event.recipes.tfc.landslide('tfg:rock/gravel_permafrost', 'tfg:rock/gravel_permafrost') - event.recipes.tfc.landslide('minecraft:red_sand', 'minecraft:red_sand') - event.recipes.tfc.landslide('gtceu:red_granite_cobblestone', 'gtceu:red_granite_cobblestone') event.recipes.tfc.collapse('gtceu:red_granite_cobblestone', 'gtceu:red_granite') event.recipes.tfc.collapse('gtceu:red_granite_cobblestone', 'tfg:rock/hardened_red_granite') event.recipes.tfc.collapse('gtceu:red_granite_cobblestone', '#forge:ores_in_ground/red_granite') + event.recipes.tfc.landslide('gtceu:red_granite_cobblestone', 'gtceu:red_granite_cobblestone') + event.recipes.tfc.landslide('tfg:rock/mossy_cobble_red_granite', 'tfg:rock/mossy_cobble_red_granite') event.recipes.tfc.landslide('tfg:rock/gravel_red_granite', 'tfg:rock/gravel_red_granite') + event.recipes.tfc.landslide('minecraft:red_sand', 'minecraft:red_sand') event.recipes.tfc.landslide('tfg:grass/mars_dirt', 'tfg:grass/mars_dirt') event.recipes.tfc.landslide('tfg:grass/mars_dirt', 'tfg:grass/amber_mycelium') @@ -99,4 +111,10 @@ function registerTFGCollapseRecipes(event) { event.recipes.tfc.landslide('tfc:red_kaolin_clay', 'tfg:grass/rusticus_kaolin_mycelium') event.recipes.tfc.landslide('tfc:red_kaolin_clay', 'tfg:grass/sangnum_kaolin_mycelium') // #endregion + + // #region Other + event.recipes.tfc.collapse('minecraft:cobblestone', 'minecraft:stone') + event.recipes.tfc.landslide('minecraft:cobblestone', 'minecraft:cobblestone') + event.recipes.tfc.landslide('minecraft:mossy_cobblestone', 'minecraft:mossy_cobblestone') + // #endregion } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/recipes.rocks.js b/kubejs/server_scripts/tfg/recipes.rocks.js index 6016c0f6c..48c7e2824 100644 --- a/kubejs/server_scripts/tfg/recipes.rocks.js +++ b/kubejs/server_scripts/tfg/recipes.rocks.js @@ -6,34 +6,44 @@ */ function registerTFGRockRecipes(event) { - // #region Nether rock recipes - + // #region GLUEING_TOGETHER // loose rocks to cobble, bricks to brick blocks - const GLUEING_TOGETHER = [ - { loose: 'tfg:loose/deepslate', block: 'minecraft:cobbled_deepslate' }, - { loose: 'beneath:blackstone_pebble', block: 'minecraft:blackstone' }, - { loose: 'tfg:brick/deepslate', block: '4x minecraft:deepslate_bricks' }, - { loose: 'tfg:loose/dripstone', block: 'tfg:rock/cobble_dripstone' }, - { loose: 'tfg:loose/crackrack', block: 'tfg:rock/cobble_crackrack' }, - { loose: 'tfg:loose/moon_stone', block: 'ad_astra:moon_cobblestone' }, - { loose: 'tfg:brick/moon_stone', block: '4x ad_astra:moon_stone_bricks' }, - { loose: 'tfg:loose/moon_deepslate', block: 'tfg:rock/cobble_moon_deepslate' }, - { loose: 'tfg:brick/moon_deepslate', block: '4x tfg:rock/bricks_moon_deepslate' }, - { loose: 'tfg:loose/moon_deepslate', block: 'ad_astra:moon_deepslate' }, - { loose: 'tfg:loose/mars_stone', block: 'ad_astra:mars_cobblestone' }, - { loose: 'tfg:brick/mars_stone', block: '4x ad_astra:mars_stone_bricks' }, - { loose: 'tfg:loose/venus_stone', block: 'ad_astra:venus_cobblestone' }, - { loose: 'tfg:brick/venus_stone', block: '4x ad_astra:venus_stone_bricks' }, - { loose: 'tfg:loose/red_granite', block: 'gtceu:red_granite_cobblestone' }, - { loose: 'tfg:brick/red_granite', block: '4x gtceu:red_granite_bricks' }, - { loose: 'tfg:loose/mercury_stone', block: 'ad_astra:mercury_cobblestone' }, - { loose: 'tfg:brick/mercury_stone', block: '4x ad_astra:mercury_stone_bricks' }, - { loose: 'tfg:loose/glacio_stone', block: 'ad_astra:glacio_cobblestone' }, - { loose: 'tfg:brick/glacio_stone', block: '4x ad_astra:glacio_stone_bricks' }, - { loose: 'tfg:loose/permafrost', block: 'tfg:rock/cobble_permafrost' }, - { loose: 'tfg:brick/permafrost', block: '4x ad_astra:permafrost_bricks' }, - { loose: 'minecraft:popped_chorus_fruit', block: '4x minecraft:purpur_block' } + { loose: 'tfg:loose/deepslate', block: 'minecraft:cobbled_deepslate' }, + { loose: 'tfg:brick/deepslate', block: '4x minecraft:deepslate_bricks' }, + + { loose: 'beneath:blackstone_pebble', block: 'minecraft:blackstone' }, + + { loose: 'tfg:loose/dripstone', block: 'tfg:rock/cobble_dripstone' }, + { loose: 'tfg:brick/dripstone', block: '4x create:cut_dripstone_bricks' }, + + { loose: 'tfg:loose/crackrack', block: 'tfg:rock/cobble_crackrack' }, + + { loose: 'tfg:loose/moon_stone', block: 'ad_astra:moon_cobblestone' }, + { loose: 'tfg:brick/moon_stone', block: '4x ad_astra:moon_stone_bricks' }, + + { loose: 'tfg:loose/moon_deepslate', block: 'tfg:rock/cobble_moon_deepslate' }, + { loose: 'tfg:brick/moon_deepslate', block: '4x tfg:rock/bricks_moon_deepslate' }, + + { loose: 'tfg:loose/mars_stone', block: 'ad_astra:mars_cobblestone' }, + { loose: 'tfg:brick/mars_stone', block: '4x ad_astra:mars_stone_bricks' }, + + { loose: 'tfg:loose/venus_stone', block: 'ad_astra:venus_cobblestone' }, + { loose: 'tfg:brick/venus_stone', block: '4x ad_astra:venus_stone_bricks' }, + + { loose: 'tfg:loose/red_granite', block: 'gtceu:red_granite_cobblestone' }, + { loose: 'tfg:brick/red_granite', block: '4x gtceu:red_granite_bricks' }, + + { loose: 'tfg:loose/mercury_stone', block: 'ad_astra:mercury_cobblestone' }, + { loose: 'tfg:brick/mercury_stone', block: '4x ad_astra:mercury_stone_bricks' }, + + { loose: 'tfg:loose/glacio_stone', block: 'ad_astra:glacio_cobblestone' }, + { loose: 'tfg:brick/glacio_stone', block: '4x ad_astra:glacio_stone_bricks' }, + + { loose: 'tfg:loose/permafrost', block: 'tfg:rock/cobble_permafrost' }, + { loose: 'tfg:brick/permafrost', block: '4x ad_astra:permafrost_bricks' }, + + { loose: 'minecraft:popped_chorus_fruit', block: '4x minecraft:purpur_block' } ] GLUEING_TOGETHER.forEach(x => { @@ -54,36 +64,38 @@ function registerTFGRockRecipes(event) { .duration(50) .EUt(2) }) + // #endregion GLUEING_TOGETHER - // Cobble to loose - + // #region COBBLE_TO_LOOSE const COBBLE_TO_LOOSE = [ - { cobble: 'minecraft:blackstone', loose: 'beneath:blackstone_pebble' }, - { cobble: 'tfg:rock/cobble_dripstone', loose: 'tfg:loose/dripstone' }, - { cobble: 'tfg:rock/cobble_crackrack', loose: 'tfg:loose/crackrack' }, + { cobble: 'minecraft:blackstone', loose: 'beneath:blackstone_pebble' }, + { cobble: 'tfg:rock/cobble_dripstone', loose: 'tfg:loose/dripstone' }, + { cobble: 'tfg:rock/cobble_crackrack', loose: 'tfg:loose/crackrack' }, { cobble: 'tfg:rock/cobble_moon_deepslate', loose: 'tfg:loose/moon_deepslate' }, - { cobble: 'gtceu:red_granite_cobblestone', loose: 'tfg:brick/red_granite' }, - { cobble: 'tfg:rock/cobble_permafrost', loose: 'tfg:loose/permafrost' }, + { cobble: 'gtceu:red_granite_cobblestone', loose: 'tfg:brick/red_granite' }, + { cobble: 'tfg:rock/cobble_permafrost', loose: 'tfg:loose/permafrost' }, + { cobble: 'gtceu:red_granite_cobblestone', loose: 'tfg:loose/red_granite' } ] COBBLE_TO_LOOSE.forEach(x => { event.shapeless(`4x ${x.loose}`, [x.cobble]) }) + // #endregion COBBLE_TO_LOOSE - // loose to gravel - + // #region LOOSE_TO_GRAVEL const LOOSE_TO_GRAVEL = [ - { loose: 'tfg:loose/deepslate', gravel: 'tfg:rock/gravel_deepslate' }, + { loose: 'tfg:loose/deepslate', gravel: 'tfg:rock/gravel_deepslate' }, { loose: 'beneath:blackstone_pebble', gravel: 'tfg:rock/gravel_blackstone' }, - { loose: 'tfg:loose/dripstone', gravel: 'tfg:rock/gravel_dripstone' }, - { loose: 'tfg:loose/crackrack', gravel: 'tfg:rock/gravel_crackrack' }, - { loose: 'tfg:loose/moon_stone', gravel: 'tfg:rock/gravel_moon' }, - { loose: 'tfg:loose/moon_deepslate', gravel: 'tfg:rock/gravel_moon_deepslate' }, - { loose: 'tfg:loose/glacio_stone', gravel: 'tfg:rock/gravel_glacio' }, - { loose: 'tfg:loose/mars_stone', gravel: 'tfg:rock/gravel_mars' }, - { loose: 'tfg:loose/venus_stone', gravel: 'tfg:rock/gravel_venus' }, - { loose: 'tfg:loose/mercury_stone', gravel: 'tfg:rock/gravel_mercury' }, - { loose: 'tfg:loose/permafrost', gravel: 'tfg:rock/gravel_permafrost' } + { loose: 'tfg:loose/dripstone', gravel: 'tfg:rock/gravel_dripstone' }, + { loose: 'tfg:loose/crackrack', gravel: 'tfg:rock/gravel_crackrack' }, + { loose: 'tfg:loose/moon_stone', gravel: 'tfg:rock/gravel_moon' }, + { loose: 'tfg:loose/moon_deepslate', gravel: 'tfg:rock/gravel_moon_deepslate' }, + { loose: 'tfg:loose/glacio_stone', gravel: 'tfg:rock/gravel_glacio' }, + { loose: 'tfg:loose/mars_stone', gravel: 'tfg:rock/gravel_mars' }, + { loose: 'tfg:loose/venus_stone', gravel: 'tfg:rock/gravel_venus' }, + { loose: 'tfg:loose/mercury_stone', gravel: 'tfg:rock/gravel_mercury' }, + { loose: 'tfg:loose/permafrost', gravel: 'tfg:rock/gravel_permafrost' }, + { loose: 'tfg:loose/red_granite', gravel: 'tfg:rock/gravel_red_granite' }, ] LOOSE_TO_GRAVEL.forEach(x => { @@ -91,18 +103,20 @@ function registerTFGRockRecipes(event) { event.shapeless(`16x ${x.loose}`, [`4x ${x.gravel}`]) }) - // loose to bricks - + // #region LOOSE_TO_BRICKS const LOOSE_TO_BRICKS = [ - { loose: 'tfg:loose/deepslate', brick: 'tfg:brick/deepslate' }, - { loose: 'tfg:loose/crackrack', brick: 'minecraft:nether_brick' }, - { loose: 'tfg:loose/moon_stone', brick: 'tfg:brick/moon_stone' }, + { loose: 'tfg:loose/deepslate', brick: 'tfg:brick/deepslate' }, + { loose: 'tfg:loose/dripstone', brick: 'tfg:brick/dripstone' }, + { loose: 'tfg:loose/crackrack', brick: 'minecraft:nether_brick' }, + { loose: 'tfg:loose/moon_stone', brick: 'tfg:brick/moon_stone' }, { loose: 'tfg:loose/moon_deepslate', brick: 'tfg:brick/moon_deepslate' }, - { loose: 'tfg:loose/mars_stone', brick: 'tfg:brick/mars_stone' }, - { loose: 'tfg:loose/venus_stone', brick: 'tfg:brick/venus_stone' }, - { loose: 'tfg:loose/mercury_stone', brick: 'tfg:brick/mercury_stone' }, - { loose: 'tfg:loose/glacio_stone', brick: 'tfg:brick/glacio_stone' }, - { loose: 'tfg:loose/permafrost', brick: 'tfg:brick/permafrost' } + { loose: 'tfg:loose/mars_stone', brick: 'tfg:brick/mars_stone' }, + { loose: 'tfg:loose/venus_stone', brick: 'tfg:brick/venus_stone' }, + { loose: 'tfg:loose/mercury_stone', brick: 'tfg:brick/mercury_stone' }, + { loose: 'tfg:loose/glacio_stone', brick: 'tfg:brick/glacio_stone' }, + { loose: 'tfg:loose/permafrost', brick: 'tfg:brick/permafrost' }, + { loose: 'tfg:loose/red_granite', brick: 'tfg:brick/red_granite' }, + ] LOOSE_TO_BRICKS.forEach(x => { @@ -116,89 +130,102 @@ function registerTFGRockRecipes(event) { .duration(40) .EUt(8) }) + // #endregion LOOSE_TO_BRICKS - // raw to polished - + // #region RAW_TO_POLISHED const RAW_TO_POLISHED = [ // Beneath - { raw: 'minecraft:deepslate', polished: 'minecraft:polished_deepslate' }, - { raw: 'tfg:rock/hardened_deepslate', polished: 'minecraft:polished_deepslate' }, - { raw: 'minecraft:deepslate_bricks', polished: 'minecraft:deepslate_tiles' }, - { raw: 'minecraft:deepslate_tiles', polished: 'minecraft:chiseled_deepslate' }, - { raw: 'minecraft:chiseled_deepslate', polished: 'minecraft:deepslate_bricks' }, + { raw: 'minecraft:deepslate', polished: 'minecraft:polished_deepslate' }, + { raw: 'tfg:rock/hardened_deepslate', polished: 'minecraft:polished_deepslate' }, + { raw: 'minecraft:deepslate_bricks', polished: 'minecraft:deepslate_tiles' }, + { raw: 'minecraft:deepslate_tiles', polished: 'minecraft:chiseled_deepslate' }, + { raw: 'minecraft:chiseled_deepslate', polished: 'minecraft:deepslate_bricks' }, - { raw: 'minecraft:blackstone', polished: 'minecraft:polished_blackstone' }, - { raw: 'tfg:rock/hardened_blackstone', polished: 'minecraft:polished_blackstone' }, - { raw: 'minecraft:polished_blackstone_bricks', polished: 'minecraft:chiseled_polished_blackstone' }, - { raw: 'minecraft:chiseled_polished_blackstone', polished: 'minecraft:polished_blackstone_bricks' }, + { raw: 'minecraft:blackstone', polished: 'minecraft:polished_blackstone' }, + { raw: 'tfg:rock/hardened_blackstone', polished: 'minecraft:polished_blackstone' }, + { raw: 'minecraft:polished_blackstone_bricks', polished: 'minecraft:chiseled_polished_blackstone' }, + { raw: 'minecraft:chiseled_polished_blackstone', polished: 'minecraft:polished_blackstone_bricks' }, - { raw: 'minecraft:dripstone_block', polished: 'create:polished_cut_dripstone' }, - { raw: 'tfg:rock/hardened_dripstone', polished: 'create:polished_cut_dripstone' }, - { raw: 'create:cut_dripstone_bricks', polished: 'create:small_dripstone_bricks' }, - { raw: 'create:small_dripstone_bricks', polished: 'create:cut_dripstone_bricks' }, + { raw: 'minecraft:dripstone_block', polished: 'create:polished_cut_dripstone' }, + { raw: 'tfg:rock/hardened_dripstone', polished: 'create:polished_cut_dripstone' }, + { raw: 'create:cut_dripstone_bricks', polished: 'create:small_dripstone_bricks' }, + { raw: 'create:small_dripstone_bricks', polished: 'create:cut_dripstone_bricks' }, - { raw: 'beneath:crackrack', polished: 'tfg:rock/polished_crackrack' }, + { raw: 'beneath:crackrack', polished: 'tfg:rock/polished_crackrack' }, + { raw: 'minecraft:nether_bricks', polished: 'minecraft:chiseled_nether_bricks' }, + { raw: 'minecraft:chiseled_nether_bricks', polished: 'minecraft:nether_bricks' }, - { raw: 'minecraft:basalt', polished: 'minecraft:smooth_basalt' }, - { raw: 'minecraft:smooth_basalt', polished: 'minecraft:polished_basalt' }, + { raw: 'minecraft:basalt', polished: 'minecraft:smooth_basalt' }, + { raw: 'minecraft:smooth_basalt', polished: 'minecraft:polished_basalt' }, // Moon - { raw: 'ad_astra:moon_stone', polished: 'ad_astra:polished_moon_stone' }, - { raw: 'tfg:rock/hardened_moon_stone', polished: 'ad_astra:polished_moon_stone' }, - { raw: 'ad_astra:moon_stone_bricks', polished: 'ad_astra:chiseled_moon_stone_bricks' }, - { raw: 'ad_astra:chiseled_moon_stone_bricks', polished: 'ad_astra:moon_stone_bricks' }, + { raw: 'ad_astra:moon_stone', polished: 'ad_astra:polished_moon_stone' }, + { raw: 'tfg:rock/hardened_moon_stone', polished: 'ad_astra:polished_moon_stone' }, + { raw: 'ad_astra:moon_stone_bricks', polished: 'ad_astra:chiseled_moon_stone_bricks' }, + { raw: 'ad_astra:chiseled_moon_stone_bricks', polished: 'ad_astra:moon_stone_bricks' }, - { raw: 'ad_astra:moon_deepslate', polished: 'tfg:rock/polished_moon_deepslate' }, - { raw: 'tfg:rock/hardened_moon_deepslate', polished: 'tfg:rock/polished_moon_deepslate' }, - { raw: 'tfg:rock/bricks_moon_deepslate', polished: 'tfg:rock/chiseled_bricks_moon_deepslate' }, + { raw: 'ad_astra:moon_deepslate', polished: 'tfg:rock/polished_moon_deepslate' }, + { raw: 'tfg:rock/hardened_moon_deepslate', polished: 'tfg:rock/polished_moon_deepslate' }, + { raw: 'tfg:rock/bricks_moon_deepslate', polished: 'tfg:rock/chiseled_bricks_moon_deepslate' }, { raw: 'tfg:rock/chiseled_bricks_moon_deepslate', polished: 'tfg:rock/bricks_moon_deepslate' }, - { raw: 'ad_astra:glacio_stone', polished: 'ad_astra:polished_glacio_stone' }, - { raw: 'tfg:rock/hardened_glacio_stone', polished: 'ad_astra:polished_glacio_stone' }, - { raw: 'ad_astra:glacio_stone_bricks', polished: 'ad_astra:chiseled_glacio_stone_bricks' }, - { raw: 'ad_astra:chiseled_glacio_stone_bricks', polished: 'ad_astra:glacio_stone_bricks' }, + { raw: 'ad_astra:glacio_stone', polished: 'ad_astra:polished_glacio_stone' }, + { raw: 'tfg:rock/hardened_glacio_stone', polished: 'ad_astra:polished_glacio_stone' }, + { raw: 'ad_astra:glacio_stone_bricks', polished: 'ad_astra:chiseled_glacio_stone_bricks' }, + { raw: 'ad_astra:chiseled_glacio_stone_bricks', polished: 'ad_astra:glacio_stone_bricks' }, // Mars - { raw: 'ad_astra:mars_stone', polished: 'ad_astra:polished_mars_stone' }, - { raw: 'tfg:rock/hardened_mars_stone', polished: 'ad_astra:polished_mars_stone' }, - { raw: 'ad_astra:mars_stone_bricks', polished: 'ad_astra:chiseled_mars_stone_bricks' }, - { raw: 'ad_astra:chiseled_mars_stone_bricks', polished: 'ad_astra:mars_stone_bricks' }, + { raw: 'ad_astra:mars_stone', polished: 'ad_astra:polished_mars_stone' }, + { raw: 'tfg:rock/hardened_mars_stone', polished: 'ad_astra:polished_mars_stone' }, + { raw: 'ad_astra:mars_stone_bricks', polished: 'ad_astra:chiseled_mars_stone_bricks' }, + { raw: 'ad_astra:chiseled_mars_stone_bricks', polished: 'ad_astra:mars_stone_bricks' }, - { raw: 'ad_astra:venus_stone', polished: 'ad_astra:polished_venus_stone' }, - { raw: 'tfg:rock/hardened_venus_stone', polished: 'ad_astra:polished_venus_stone' }, - { raw: 'ad_astra:venus_stone_bricks', polished: 'ad_astra:chiseled_venus_stone_bricks' }, - { raw: 'ad_astra:venus_sandstone', polished: 'ad_astra:venus_sandstone_bricks' }, - { raw: 'ad_astra:venus_sandstone_bricks', polished: 'ad_astra:venus_sandstone' }, + { raw: 'ad_astra:venus_stone', polished: 'ad_astra:polished_venus_stone' }, + { raw: 'tfg:rock/hardened_venus_stone', polished: 'ad_astra:polished_venus_stone' }, + { raw: 'ad_astra:venus_stone_bricks', polished: 'ad_astra:chiseled_venus_stone_bricks' }, + { raw: 'ad_astra:venus_sandstone', polished: 'ad_astra:venus_sandstone_bricks' }, + { raw: 'ad_astra:venus_sandstone_bricks', polished: 'ad_astra:venus_sandstone' }, - { raw: 'gtceu:red_granite', polished: 'gtceu:polished_red_granite' }, - { raw: 'tfg:rock/hardened_red_granite', polished: 'gtceu:polished_red_granite' }, - { raw: 'gtceu:red_granite_bricks', polished: 'gtceu:red_granite_tile' }, - { raw: 'gtceu:red_granite_tile', polished: 'gtceu:square_red_granite_bricks' }, - { raw: 'gtceu:square_red_granite_bricks', polished: 'gtceu:red_granite_windmill_a' }, - { raw: 'gtceu:red_granite_windmill_a', polished: 'gtceu:red_granite_windmill_b' }, - { raw: 'gtceu:red_granite_windmill_b', polished: 'gtceu:small_red_granite_bricks' }, - { raw: 'gtceu:small_red_granite_bricks', polished: 'gtceu:red_granite_small_tile' }, - { raw: 'gtceu:red_granite_small_tile', polished: 'gtceu:chiseled_red_granite' }, - { raw: 'gtceu:chiseled_red_granite', polished: 'gtceu:red_granite_bricks' }, + { raw: 'gtceu:red_granite', polished: 'gtceu:polished_red_granite' }, + { raw: 'tfg:rock/hardened_red_granite', polished: 'gtceu:polished_red_granite' }, + { raw: 'gtceu:red_granite_bricks', polished: 'gtceu:red_granite_tile' }, + { raw: 'gtceu:red_granite_tile', polished: 'gtceu:square_red_granite_bricks' }, + { raw: 'gtceu:square_red_granite_bricks', polished: 'gtceu:red_granite_windmill_a' }, + { raw: 'gtceu:red_granite_windmill_a', polished: 'gtceu:red_granite_windmill_b' }, + { raw: 'gtceu:red_granite_windmill_b', polished: 'gtceu:small_red_granite_bricks' }, + { raw: 'gtceu:small_red_granite_bricks', polished: 'gtceu:red_granite_small_tile' }, + { raw: 'gtceu:red_granite_small_tile', polished: 'gtceu:chiseled_red_granite' }, + { raw: 'gtceu:chiseled_red_granite', polished: 'gtceu:red_granite_bricks' }, + + { raw: 'minecraft:smooth_red_sandstone', polished: 'minecraft:cut_red_sandstone' }, + { raw: 'minecraft:cut_red_sandstone', polished: 'minecraft:chiseled_red_sandstone' }, + { raw: 'minecraft:chiseled_red_sandstone', polished: 'minecraft:smooth_red_sandstone' }, // Mercury - { raw: 'ad_astra:mercury_stone', polished: 'ad_astra:polished_mercury_stone' }, - { raw: 'tfg:rock/hardened_mercury_stone', polished: 'ad_astra:polished_mercury_stone' }, - { raw: 'ad_astra:mercury_stone_bricks', polished: 'ad_astra:chiseled_mercury_stone_bricks' }, - { raw: 'ad_astra:chiseled_mercury_stone_bricks', polished: 'ad_astra:mercury_stone_bricks' }, + { raw: 'ad_astra:mercury_stone', polished: 'ad_astra:polished_mercury_stone' }, + { raw: 'tfg:rock/hardened_mercury_stone', polished: 'ad_astra:polished_mercury_stone' }, + { raw: 'ad_astra:mercury_stone_bricks', polished: 'ad_astra:chiseled_mercury_stone_bricks' }, + { raw: 'ad_astra:chiseled_mercury_stone_bricks', polished: 'ad_astra:mercury_stone_bricks' }, // Europa - { raw: 'ad_astra:permafrost', polished: 'ad_astra:polished_permafrost' }, - { raw: 'ad_astra:permafrost_bricks', polished: 'ad_astra:chiseled_permafrost_bricks' }, - { raw: 'ad_astra:chiseled_permafrost_bricks', polished: 'ad_astra:permafrost_tiles' }, - { raw: 'ad_astra:permafrost_tiles', polished: 'ad_astra:chiseled_permafrost_bricks' }, + { raw: 'ad_astra:permafrost', polished: 'ad_astra:polished_permafrost' }, + { raw: 'ad_astra:permafrost_bricks', polished: 'ad_astra:chiseled_permafrost_bricks' }, + { raw: 'ad_astra:chiseled_permafrost_bricks', polished: 'ad_astra:permafrost_tiles' }, + { raw: 'ad_astra:permafrost_tiles', polished: 'ad_astra:chiseled_permafrost_bricks' }, // Misc - { raw: 'ae2:sky_stone_block', polished: 'ae2:smooth_sky_stone_block' }, - { raw: 'ae2:smooth_sky_stone_block', polished: 'ae2:sky_stone_brick' }, - { raw: 'ae2:sky_stone_brick', polished: 'ae2:sky_stone_small_brick' }, - { raw: 'ae2:sky_stone_small_brick', polished: 'ae2:smooth_sky_stone_block' }, - { raw: 'gtceu:certus_quartz_block', polished: 'ae2:cut_quartz_block' } + { raw: 'ae2:sky_stone_block', polished: 'ae2:smooth_sky_stone_block' }, + { raw: 'ae2:smooth_sky_stone_block', polished: 'ae2:sky_stone_brick' }, + { raw: 'ae2:sky_stone_brick', polished: 'ae2:sky_stone_small_brick' }, + { raw: 'ae2:sky_stone_small_brick', polished: 'ae2:smooth_sky_stone_block' }, + { raw: 'gtceu:certus_quartz_block', polished: 'ae2:cut_quartz_block' }, + + // Recon Stone + { raw: 'minecraft:stone', polished: 'minecraft:smooth_stone' }, + { raw: 'minecraft:smooth_stone', polished: 'minecraft:stone' }, + + { raw: 'minecraft:stone_bricks', polished: 'minecraft:chiseled_stone_bricks' }, + { raw: 'minecraft:chiseled_stone_bricks', polished: 'minecraft:stone_bricks' } ] RAW_TO_POLISHED.forEach(x => { @@ -224,64 +251,23 @@ function registerTFGRockRecipes(event) { //}).id(`tfg:vi/laser/tfg/${x.raw.replace(/:/g, '_')}_to_${x.polished.replace(/:/g, '_')}`) }) - // Stone Cutter Sets - const red_granite_cutter_set = Ingredient.of('#tfg:red_granite_cutter_set').itemIds.toArray().map(String); - red_granite_cutter_set.forEach(block => { - event.stonecutting(block, - Ingredient.of('#tfg:red_granite_cutter_set').subtract(block) - ).id(`tfg:stonecutter/${block.replace(/:/g, "/")}`) - - }) - - const moon_deepslate_cutter_set = Ingredient.of('#tfg:moon_deepslate_cutter_set').itemIds.toArray().map(String); - moon_deepslate_cutter_set.forEach(block => { - event.stonecutting(block, - Ingredient.of('#tfg:moon_deepslate_cutter_set').subtract(block) - ).id(`tfg:stonecutter/${block.replace(/:/g, "/")}`) - - }) - - // pillar shaped recipes - event.shaped( - Item.of('create:deepslate_pillar', 2), [ ' A ', ' A ' ], { A: 'minecraft:polished_deepslate' } - ) - event.shaped( - Item.of('create:layered_deepslate', 2), [ 'AA ' ], { A: 'minecraft:polished_deepslate' } - ) - - event.shaped( - Item.of('create:dripstone_pillar', 2), [ ' A ', ' A ' ], { A: 'create:polished_cut_dripstone' } - ) - event.shaped( - Item.of('create:layered_dripstone', 2), [ 'AA ' ], { A: 'create:polished_cut_dripstone' } - ) - - event.shaped( - Item.of('create:dripstone_pillar', 2), [ ' A ', ' A ' ], { A: 'create:polished_cut_dripstone' } - ) - event.shaped( - Item.of('create:layered_dripstone', 2), [ 'AA ' ], { A: 'create:polished_cut_dripstone' } - ) - - event.shaped( - Item.of('tfg:rock/pillar_moon_deepslate', 2), [ ' A ', ' A ' ], { A: 'tfg:rock/bricks_moon_deepslate' } - ) + // #endregion RAW_TO_POLISHED // cracked bricks const CRACKING = [ - { raw: 'minecraft:deepslate_bricks', cracked: 'minecraft:cracked_deepslate_bricks' }, - { raw: 'minecraft:deepslate_tiles', cracked: 'minecraft:cracked_deepslate_tiles' }, - { raw: 'ad_astra:moon_stone_bricks', cracked: 'ad_astra:cracked_moon_stone_bricks' }, - { raw: 'ad_astra:mars_stone_bricks', cracked: 'ad_astra:cracked_mars_stone_bricks' }, - { raw: 'ad_astra:venus_stone_bricks', cracked: 'ad_astra:cracked_venus_stone_bricks' }, + { raw: 'minecraft:deepslate_bricks', cracked: 'minecraft:cracked_deepslate_bricks' }, + { raw: 'minecraft:deepslate_tiles', cracked: 'minecraft:cracked_deepslate_tiles' }, + { raw: 'minecraft:nether_bricks', cracked: 'minecraft:cracked_nether_bricks' }, + { raw: 'ad_astra:moon_stone_bricks', cracked: 'ad_astra:cracked_moon_stone_bricks' }, + { raw: 'ad_astra:mars_stone_bricks', cracked: 'ad_astra:cracked_mars_stone_bricks' }, + { raw: 'ad_astra:venus_stone_bricks', cracked: 'ad_astra:cracked_venus_stone_bricks' }, { raw: 'ad_astra:venus_sandstone_bricks', cracked: 'ad_astra:cracked_venus_sandstone_bricks' }, - { raw: 'gtceu:red_granite_bricks', cracked: 'gtceu:cracked_red_granite_bricks' }, - { raw: 'ad_astra:mercury_stone_bricks', cracked: 'ad_astra:cracked_mercury_stone_bricks' }, - { raw: 'ad_astra:glacio_stone_bricks', cracked: 'ad_astra:cracked_glacio_stone_bricks' }, - { raw: 'ad_astra:permafrost_bricks', cracked: 'ad_astra:cracked_permafrost_bricks' }, - { raw: 'tfg:rock/bricks_moon_deepslate', cracked: 'tfg:rock/cracked_bricks_moon_deepslate' } - + { raw: 'gtceu:red_granite_bricks', cracked: 'gtceu:cracked_red_granite_bricks' }, + { raw: 'ad_astra:mercury_stone_bricks', cracked: 'ad_astra:cracked_mercury_stone_bricks' }, + { raw: 'ad_astra:glacio_stone_bricks', cracked: 'ad_astra:cracked_glacio_stone_bricks' }, + { raw: 'ad_astra:permafrost_bricks', cracked: 'ad_astra:cracked_permafrost_bricks' }, + { raw: 'tfg:rock/bricks_moon_deepslate', cracked: 'tfg:rock/cracked_bricks_moon_deepslate' } ] CRACKING.forEach(x => { @@ -315,341 +301,309 @@ function registerTFGRockRecipes(event) { // slabs, stairs, walls - const CUTTER = [ + // #region CUTTER + // + // (spacing for region titles) + // + let CUTTER = [ // #region Nether - { - raw: 'minecraft:cobbled_deepslate', - stair: 'minecraft:cobbled_deepslate_stairs', - slab: 'minecraft:cobbled_deepslate_slab', - wall: 'minecraft:cobbled_deepslate_wall', - dust: 'gtceu:deepslate_dust', - loose: 'tfg:loose/deepslate', - stonecutting: false - }, - { - raw: 'minecraft:polished_deepslate', - stair: 'minecraft:polished_deepslate_stairs', - slab: 'minecraft:polished_deepslate_slab', - wall: 'minecraft:polished_deepslate_wall', - dust: 'gtceu:deepslate_dust', - stonecutting: false - }, - { - raw: 'minecraft:deepslate_bricks', - stair: 'minecraft:deepslate_brick_stairs', - slab: 'minecraft:deepslate_brick_slab', - wall: 'minecraft:deepslate_brick_wall', - dust: 'gtceu:deepslate_dust', - stonecutting: false - }, - { - raw: 'minecraft:deepslate_tiles', - stair: 'minecraft:deepslate_tile_stairs', - slab: 'minecraft:deepslate_tile_slab', - wall: 'minecraft:deepslate_tile_wall', - dust: 'gtceu:deepslate_dust', - stonecutting: false - }, - { - raw: 'minecraft:blackstone', - stair: 'minecraft:blackstone_stairs', - slab: 'minecraft:blackstone_slab', - wall: 'minecraft:blackstone_wall', - dust: 'gtceu:blackstone_dust', - loose: 'beneath:blackstone_pebble', - stonecutting: false - }, - { - raw: 'minecraft:polished_blackstone', - stair: 'minecraft:polished_blackstone_stairs', - slab: 'minecraft:polished_blackstone_slab', - wall: 'minecraft:polished_blackstone_wall', - dust: 'gtceu:blackstone_dust', - stonecutting: false - }, - { - raw: 'minecraft:polished_blackstone_bricks', - stair: 'minecraft:polished_blackstone_brick_stairs', - slab: 'minecraft:polished_blackstone_brick_slab', - wall: 'minecraft:polished_blackstone_brick_wall', - dust: 'gtceu:blackstone_dust', - stonecutting: false - }, - // #endregion - // #region Space - { - raw: 'ad_astra:moon_cobblestone', - stair: 'ad_astra:moon_cobblestone_stairs', - slab: 'ad_astra:moon_cobblestone_slab', - dust: 'tfg:moon_stone_dust', - loose: 'tfg:loose/moon_stone', - stonecutting: true - }, - { - raw: 'ad_astra:mars_cobblestone', - stair: 'ad_astra:mars_cobblestone_stairs', - slab: 'ad_astra:mars_cobblestone_slab', - dust: 'tfg:mars_stone_dust', - loose: 'tfg:loose/mars_stone', - stonecutting: true - }, - { - raw: 'ad_astra:venus_cobblestone', - stair: 'ad_astra:venus_cobblestone_stairs', - slab: 'ad_astra:venus_cobblestone_slab', - dust: 'tfg:venus_stone_dust', - loose: 'tfg:loose/venus_stone', - stonecutting: true - }, - { - raw: 'ad_astra:mercury_cobblestone', - stair: 'ad_astra:mercury_cobblestone_stairs', - slab: 'ad_astra:mercury_cobblestone_slab', - dust: 'tfg:mercury_stone_dust', - loose: 'tfg:loose/mercury_stone', - stonecutting: true - }, - { - raw: 'ad_astra:glacio_cobblestone', - stair: 'ad_astra:glacio_cobblestone_stairs', - slab: 'ad_astra:glacio_cobblestone_slab', - dust: 'tfg:glacio_stone_dust', - loose: 'tfg:loose/glacio_stone', - stonecutting: true - }, - { - raw: 'ad_astra:moon_stone', - stair: 'ad_astra:moon_stone_stairs', - slab: 'ad_astra:moon_stone_slab', - dust: 'tfg:moon_stone_dust', - stonecutting: true - }, - { - raw: 'ad_astra:mars_stone', - stair: 'ad_astra:mars_stone_stairs', - slab: 'ad_astra:mars_stone_slab', - dust: 'tfg:mars_stone_dust', - stonecutting: true - }, - { - raw: 'ad_astra:venus_stone', - stair: 'ad_astra:venus_stone_stairs', - slab: 'ad_astra:venus_stone_slab', - dust: 'tfg:venus_stone_dust', - stonecutting: true - }, - { - raw: 'ad_astra:mercury_stone', - stair: 'ad_astra:mercury_stone_stairs', - slab: 'ad_astra:mercury_stone_slab', - dust: 'tfg:mercury_stone_dust', - stonecutting: true - }, - { - raw: 'ad_astra:glacio_stone', - stair: 'ad_astra:glacio_stone_stairs', - slab: 'ad_astra:glacio_stone_slab', - dust: 'tfg:glacio_stone_dust', - stonecutting: true - }, - { - raw: 'ad_astra:venus_sandstone_bricks', - stair: 'ad_astra:venus_sandstone_brick_stairs', - slab: 'ad_astra:venus_sandstone_brick_slab', - dust: '4x gtceu:venus_sand', - stonecutting: true - }, - { - raw: 'ad_astra:moon_stone_bricks', - stair: 'ad_astra:moon_stone_brick_stairs', - slab: 'ad_astra:moon_stone_brick_slab', - wall: 'ad_astra:moon_stone_brick_wall', - dust: 'tfg:moon_stone_dust', - stonecutting: true - }, - { - raw: 'ad_astra:mars_stone_bricks', - stair: 'ad_astra:mars_stone_brick_stairs', - slab: 'ad_astra:mars_stone_brick_slab', - wall: 'ad_astra:mars_stone_brick_wall', - dust: 'tfg:mars_stone_dust', - stonecutting: true - }, - { - raw: 'ad_astra:venus_stone_bricks', - stair: 'ad_astra:venus_stone_brick_stairs', - slab: 'ad_astra:venus_stone_brick_slab', - wall: 'ad_astra:venus_stone_brick_wall', - dust: 'tfg:venus_stone_dust', - stonecutting: true - }, - { - raw: 'ad_astra:mercury_stone_bricks', - stair: 'ad_astra:mercury_stone_brick_stairs', - slab: 'ad_astra:mercury_stone_brick_slab', - wall: 'ad_astra:mercury_stone_brick_wall', - dust: 'tfg:mercury_stone_dust', - stonecutting: true - }, - { - raw: 'ad_astra:glacio_stone_bricks', - stair: 'ad_astra:glacio_stone_brick_stairs', - slab: 'ad_astra:glacio_stone_brick_slab', - wall: 'ad_astra:glacio_stone_brick_wall', - dust: 'tfg:glacio_stone_dust', - stonecutting: true - }, - { - raw: 'ad_astra:permafrost_bricks', - stair: 'ad_astra:permafrost_brick_stairs', - slab: 'ad_astra:permafrost_brick_slab', - wall: 'ad_astra:permafrost_brick_wall', - dust: 'gtceu:ice_dust', - stonecutting: true - }, - { - raw: 'ad_astra:chiseled_moon_stone_bricks', - stair: 'ad_astra:chiseled_moon_stone_stairs', - slab: 'ad_astra:chiseled_moon_stone_slab', - dust: 'tfg:moon_stone_dust', - stonecutting: true - }, - { - raw: 'ad_astra:chiseled_mars_stone_bricks', - stair: 'ad_astra:chiseled_mars_stone_stairs', - slab: 'ad_astra:chiseled_mars_stone_slab', - dust: 'tfg:mars_stone_dust', - stonecutting: true - }, - { - raw: 'ad_astra:chiseled_venus_stone_bricks', - stair: 'ad_astra:chiseled_venus_stone_stairs', - slab: 'ad_astra:chiseled_venus_stone_slab', - dust: 'tfg:venus_stone_dust', - stonecutting: true - }, - { - raw: 'ad_astra:chiseled_mercury_stone_bricks', - stair: 'ad_astra:chiseled_mercury_stone_stairs', - slab: 'ad_astra:chiseled_mercury_stone_slab', - dust: 'tfg:mercury_stone_dust', - stonecutting: true - }, - { - raw: 'ad_astra:chiseled_glacio_stone_bricks', - stair: 'ad_astra:chiseled_glacio_stone_stairs', - slab: 'ad_astra:chiseled_glacio_stone_slab', - dust: 'tfg:glacio_stone_dust', - stonecutting: true - }, - { - raw: 'ad_astra:chiseled_permafrost_bricks', - stair: 'ad_astra:chiseled_permafrost_brick_stairs', - slab: 'ad_astra:chiseled_permafrost_brick_slab', - dust: 'gtceu:ice_dust', - stonecutting: true - }, - { - raw: 'ad_astra:polished_moon_stone', - stair: 'ad_astra:polished_moon_stone_stairs', - slab: 'ad_astra:polished_moon_stone_slab', - dust: 'tfg:moon_stone_dust', - stonecutting: true - }, - { - raw: 'ad_astra:polished_mars_stone', - stair: 'ad_astra:polished_mars_stone_stairs', - slab: 'ad_astra:polished_mars_stone_slab', - dust: 'tfg:mars_stone_dust', - stonecutting: true - }, - { - raw: 'ad_astra:polished_venus_stone', - stair: 'ad_astra:polished_venus_stone_stairs', - slab: 'ad_astra:polished_venus_stone_slab', - dust: 'tfg:venus_stone_dust', - stonecutting: true - }, - { - raw: 'ad_astra:polished_mercury_stone', - stair: 'ad_astra:polished_mercury_stone_stairs', - slab: 'ad_astra:polished_mercury_stone_slab', - dust: 'tfg:mercury_stone_dust', - stonecutting: true - }, - { - raw: 'ad_astra:polished_glacio_stone', - stair: 'ad_astra:polished_glacio_stone_stairs', - slab: 'ad_astra:polished_glacio_stone_slab', - dust: 'tfg:glacio_stone_dust', - stonecutting: true - }, - { - raw: 'ad_astra:polished_permafrost', - stair: 'ad_astra:polished_permafrost_stairs', - slab: 'ad_astra:polished_permafrost_slab', - dust: 'gtceu:ice_dust', - stonecutting: true - }, - { - raw: 'ae2:sky_stone_block', - stair: 'ae2:sky_stone_stairs', - slab: 'ae2:sky_stone_slab', - wall: 'ae2:sky_stone_wall', - dust: 'ae2:sky_dust', - stonecutting: true - }, - { - raw: 'ae2:smooth_sky_stone_block', - stair: 'ae2:smooth_sky_stone_stairs', - slab: 'ae2:smooth_sky_stone_slab', - wall: 'ae2:smooth_sky_stone_wall', - dust: 'ae2:sky_dust', - stonecutting: true - }, - { - raw: 'ae2:sky_stone_brick', - stair: 'ae2:sky_stone_brick_stairs', - slab: 'ae2:sky_stone_brick_slab', - wall: 'ae2:sky_stone_brick_wall', - dust: 'ae2:sky_dust', - stonecutting: true - }, - { - raw: 'ae2:sky_stone_small_brick', - stair: 'ae2:sky_stone_small_brick_stairs', - slab: 'ae2:sky_stone_small_brick_slab', - wall: 'ae2:sky_stone_small_brick_wall', - dust: 'ae2:sky_dust', - stonecutting: true - }, - { - raw: 'ae2:fluix_block', - stair: 'ae2:fluix_stairs', - slab: 'ae2:fluix_slab', - wall: 'ae2:fluix_wall', - dust: 'ae2:fluix_dust', - stonecutting: true - }, - { - raw: 'minecraft:purpur_block', - stair: 'minecraft:purpur_stairs', - slab: 'minecraft:purpur_slab', - dust: null, - stonecutting: true - } - // #endregion + // Deepslate + { raw: 'minecraft:deepslate', stair: 'tfg:rock/deepslate_stairs', slab: 'tfg:rock/deepslate_slab', wall: 'tfg:rock/deepslate_wall', + dust: null, loose: null, stonecutting: false }, // Raw + + { raw: 'minecraft:cobbled_deepslate', stair: 'minecraft:cobbled_deepslate_stairs', slab: 'minecraft:cobbled_deepslate_slab', wall: 'minecraft:cobbled_deepslate_wall', + dust: 'gtceu:deepslate_dust', loose: 'tfg:loose/deepslate', stonecutting: false }, // Cobble + + { raw: 'tfg:rock/mossy_cobble_deepslate', stair: 'tfg:rock/mossy_cobble_deepslate_stairs', slab: 'tfg:rock/mossy_cobble_deepslate_slab', wall: 'tfg:rock/mossy_cobble_deepslate_wall', + dust: null, loose: null, stonecutting: true }, // Cobble - Mossy + + { raw: 'minecraft:polished_deepslate', stair: 'minecraft:polished_deepslate_stairs', slab: 'minecraft:polished_deepslate_slab', wall: 'minecraft:polished_deepslate_wall', + dust: 'gtceu:deepslate_dust', loose: null, stonecutting: false }, // Smooth + + { raw: 'create:cut_deepslate', stair: 'create:cut_deepslate_stairs', slab: 'create:cut_deepslate_slab', wall: 'create:cut_deepslate_wall', + dust: 'gtceu:deepslate_dust', loose: null, stonecutting: false }, // Smooth - Extra + + { raw: 'create:polished_cut_deepslate', stair: 'create:polished_cut_deepslate_stairs', slab: 'create:polished_cut_deepslate_slab', wall: 'create:polished_cut_deepslate_wall', + dust: 'gtceu:deepslate_dust', loose: null, stonecutting: false }, // Smooth - Extra + + { raw: 'minecraft:deepslate_bricks', stair: 'minecraft:deepslate_brick_stairs', slab: 'minecraft:deepslate_brick_slab', wall: 'minecraft:deepslate_brick_wall', + dust: 'gtceu:deepslate_dust', loose: null, stonecutting: false }, // Bricks + + { raw: 'minecraft:cracked_deepslate_bricks', stair: 'tfg:rock/cracked_bricks_deepslate_stairs', slab: 'tfg:rock/cracked_bricks_deepslate_slab', wall: 'tfg:rock/cracked_bricks_deepslate_wall', + dust: 'gtceu:deepslate_dust', loose: null, stonecutting: true }, // Bricks - Cracked + + { raw: 'tfg:rock/mossy_bricks_deepslate', stair: 'tfg:rock/mossy_bricks_deepslate_stairs', slab: 'tfg:rock/mossy_bricks_deepslate_slab', wall: 'tfg:rock/mossy_bricks_deepslate_wall', + dust: 'gtceu:deepslate_dust', loose: null, stonecutting: true }, // Bricks - Mossy + + { raw: 'minecraft:deepslate_tiles', stair: 'minecraft:deepslate_tile_stairs', slab: 'minecraft:deepslate_tile_slab', wall: 'minecraft:deepslate_tile_wall', + dust: 'gtceu:deepslate_dust', loose: null, stonecutting: false }, // Bricks - Extra + + { raw: 'minecraft:cracked_deepslate_tiles', stair: 'tfg:rock/cracked_tiles_deepslate_stairs', slab: 'tfg:rock/cracked_tiles_deepslate_slab', wall: 'tfg:rock/cracked_tiles_deepslate_wall', + dust: 'gtceu:deepslate_dust', loose: null, stonecutting: true }, // Bricks - Cracked - Extra + + { raw: 'create:cut_deepslate_bricks', stair: 'create:cut_deepslate_brick_stairs', slab: 'create:cut_deepslate_brick_slab', wall: 'create:cut_deepslate_brick_wall', + dust: 'gtceu:deepslate_dust', loose: null, stonecutting: false }, // Bricks - Extra + + { raw: 'create:small_deepslate_bricks', stair: 'create:small_deepslate_brick_stairs', slab: 'create:small_deepslate_brick_slab', wall: 'create:small_deepslate_brick_wall', + dust: 'gtceu:deepslate_dust', loose: null, stonecutting: false }, // Bricks - Extra + + // Blackstone + { raw: 'minecraft:blackstone', stair: 'minecraft:blackstone_stairs', slab: 'minecraft:blackstone_slab', wall: 'minecraft:blackstone_wall', + dust: 'gtceu:blackstone_dust', loose: null, stonecutting: false }, // Raw + + { raw: 'tfg:rock/cobble_blackstone', stair: 'tfg:rock/cobble_blackstone_stairs', slab: 'tfg:rock/cobble_blackstone_slab', wall: 'tfg:rock/cobble_blackstone_wall', + dust: 'gtceu:blackstone_dust', loose: 'beneath:blackstone_pebble', stonecutting: true }, // Cobble + + { raw: 'tfg:rock/mossy_cobble_blackstone', stair: 'tfg:rock/mossy_cobble_blackstone_stairs', slab: 'tfg:rock/mossy_cobble_blackstone_slab', wall: 'tfg:rock/mossy_cobble_blackstone_wall', + dust: 'gtceu:blackstone_dust', loose: null, stonecutting: true }, // Cobble - Mossy + + { raw: 'minecraft:polished_blackstone', stair: 'minecraft:polished_blackstone_stairs', slab: 'minecraft:polished_blackstone_slab', wall: 'minecraft:polished_blackstone_wall', + dust: 'gtceu:blackstone_dust', loose: null, stonecutting: false }, // Smooth + + { raw: 'minecraft:polished_blackstone_bricks', stair: 'minecraft:polished_blackstone_brick_stairs', slab: 'minecraft:polished_blackstone_brick_slab', wall: 'minecraft:polished_blackstone_brick_wall', + dust: 'gtceu:blackstone_dust', loose: null, stonecutting: false }, // Bricks + + { raw: 'minecraft:cracked_polished_blackstone_bricks', stair: 'tfg:rock/cracked_bricks_blackstone_stairs', slab: 'tfg:rock/cracked_bricks_blackstone_slab', wall: 'tfg:rock/cracked_bricks_blackstone_wall', + dust: 'gtceu:blackstone_dust', loose: null, stonecutting: true }, // Bricks - Cracked + + { raw: 'tfg:rock/mossy_bricks_blackstone', stair: 'tfg:rock/mossy_bricks_blackstone_stairs', slab: 'tfg:rock/mossy_bricks_blackstone_slab', wall: 'tfg:rock/mossy_bricks_blackstone_wall', + dust: 'gtceu:blackstone_dust', loose: null, stonecutting: true }, // Bricks - Mossy + + // Dripstone + { raw: 'minecraft:dripstone_block', stair: 'tfg:rock/dripstone_stairs', slab: 'tfg:rock/dripstone_slab', wall: 'tfg:rock/dripstone_wall', + dust: 'tfg:dripstone_dust', loose: null, stonecutting: true }, // Raw + + { raw: 'tfg:rock/cobble_dripstone', stair: 'tfg:rock/cobble_dripstone_stairs', slab: 'tfg:rock/cobble_dripstone_slab', wall: 'tfg:rock/cobble_dripstone_wall', + dust: 'tfg:dripstone_dust', loose: 'tfg:loose/dripstone', stonecutting: true }, // Cobble + + { raw: 'tfg:rock/mossy_cobble_dripstone', stair: 'tfg:rock/mossy_cobble_dripstone_stairs', slab: 'tfg:rock/mossy_cobble_dripstone_slab', wall: 'tfg:rock/mossy_cobble_dripstone_wall', + dust: 'tfg:dripstone_dust', loose: null, stonecutting: true }, // Cobble - Mossy + + { raw: 'create:polished_cut_dripstone', stair: 'create:polished_cut_dripstone_stairs', slab: 'create:polished_cut_dripstone_slab', wall: 'create:polished_cut_dripstone_wall', + dust: 'tfg:dripstone_dust', loose: null, stonecutting: false }, // Smooth + + { raw: 'create:cut_dripstone', stair: 'create:cut_dripstone_stairs', slab: 'create:cut_dripstone_slab', wall: 'create:cut_dripstone_wall', + dust: 'tfg:dripstone_dust', loose: null, stonecutting: false }, // Smooth + + { raw: 'create:cut_dripstone_bricks', stair: 'create:cut_dripstone_brick_stairs', slab: 'create:cut_dripstone_brick_slab', wall: 'create:cut_dripstone_brick_wall', + dust: 'tfg:dripstone_dust', loose: null, stonecutting: false }, // Bricks + + { raw: 'tfg:rock/cracked_bricks_dripstone', stair: 'tfg:rock/cracked_bricks_dripstone_stairs', slab: 'tfg:rock/cracked_bricks_dripstone_slab', wall: 'tfg:rock/cracked_bricks_dripstone_wall', + dust: 'tfg:dripstone_dust', loose: null, stonecutting: true }, // Bricks - Cracked + + { raw: 'tfg:rock/mossy_bricks_dripstone', stair: 'tfg:rock/mossy_bricks_dripstone_stairs', slab: 'tfg:rock/mossy_bricks_dripstone_slab', wall: 'tfg:rock/mossy_bricks_dripstone_wall', + dust: 'tfg:dripstone_dust', loose: null, stonecutting: true }, // Bricks - Mossy + + { raw: 'create:small_dripstone_bricks', stair: 'create:small_dripstone_brick_stairs', slab: 'create:small_dripstone_brick_slab', wall: 'create:small_dripstone_brick_wall', + dust: 'tfg:dripstone_dust', loose: null, stonecutting: false }, // Bricks - Extra + + // Crackrack / Nether + { raw: 'beneath:crackrack', stair: 'tfg:rock/crackrack_stairs', slab: 'tfg:rock/crackrack_slab', wall: 'tfg:rock/crackrack_wall', + dust: 'gtceu:netherrack_dust', loose: null, stonecutting: true }, // Raw + + { raw: 'tfg:rock/cobble_crackrack', stair: 'tfg:rock/cobble_crackrack_stairs', slab: 'tfg:rock/cobble_crackrack_slab', wall: 'tfg:rock/cobble_crackrack_wall', + dust: 'gtceu:netherrack_dust', loose: 'tfg:loose/crackrack', stonecutting: true }, // Cobble + + { raw: 'tfg:rock/mossy_cobble_crackrack', stair: 'tfg:rock/mossy_cobble_crackrack_stairs', slab: 'tfg:rock/mossy_cobble_crackrack_slab', wall: 'tfg:rock/mossy_cobble_crackrack_wall', + dust: 'gtceu:netherrack_dust', loose: null, stonecutting: true }, // Cobble - Mossy + + { raw: 'tfg:rock/polished_crackrack', stair: 'tfg:rock/polished_crackrack_stairs', slab: 'tfg:rock/polished_crackrack_slab', wall: 'tfg:rock/polished_crackrack_wall', + dust: 'gtceu:netherrack_dust', loose: null, stonecutting: true }, // Smooth + + { raw: 'minecraft:nether_bricks', stair: 'minecraft:nether_brick_stairs', slab: 'minecraft:nether_brick_slab', wall: 'minecraft:nether_brick_wall', + dust: 'gtceu:netherrack_dust', loose: null, stonecutting: true }, // Bricks + + { raw: 'minecraft:cracked_nether_bricks', stair: 'tfg:rock/cracked_bricks_nether_stairs', slab: 'tfg:rock/cracked_bricks_nether_slab', wall: 'tfg:rock/cracked_bricks_nether_wall', + dust: 'gtceu:netherrack_dust', loose: null, stonecutting: true }, // Bricks - Cracked + + { raw: 'tfg:rock/mossy_bricks_nether', stair: 'tfg:rock/mossy_bricks_nether_stairs', slab: 'tfg:rock/mossy_bricks_nether_slab', wall: 'tfg:rock/mossy_bricks_nether_wall', + dust: 'gtceu:netherrack_dust', loose: null, stonecutting: true }, // Bricks - Mossy + + // #endregion Nether ] - + + // #region Space + const AA_REGULAR_STONES = ['moon', 'mars', 'venus', 'mercury', 'glacio'] + + CUTTER = CUTTER.concat( (AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => ( + { raw: `ad_astra:${stone}_stone`, stair: `ad_astra:${stone}_stone_stairs`, slab: `ad_astra:${stone}_stone_slab`, wall: `tfg:rock/${stone}_stone_wall`, + dust: `tfg:${stone}_stone_dust`, loose: null, stonecutting: true } // Raw + )) ) + CUTTER = CUTTER.concat( (AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => ( + { raw: `ad_astra:${stone}_cobblestone`, stair: `ad_astra:${stone}_cobblestone_stairs`, slab: `ad_astra:${stone}_cobblestone_slab`, wall: `tfg:rock/cobble_${stone}_wall`, + dust: `tfg:${stone}_stone_dust`, loose: `tfg:loose/${stone}_stone`, stonecutting: true } // Cobble + )) ) + CUTTER = CUTTER.concat( (AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => ( + { raw: `tfg:rock/mossy_cobble_${stone}`, stair: `tfg:rock/mossy_cobble_${stone}_stairs`, slab: `tfg:rock/mossy_cobble_${stone}_slab`, wall: `tfg:rock/mossy_cobble_${stone}_wall`, + dust: `tfg:${stone}_stone_dust`, loose: null, stonecutting: true } // Cobble - Mossy + )) ) + CUTTER = CUTTER.concat( (AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => ( + { raw: `ad_astra:polished_${stone}_stone`, stair: `ad_astra:polished_${stone}_stone_stairs`, slab: `ad_astra:polished_${stone}_stone_slab`, wall: `tfg:rock/polished_${stone}_wall`, + dust: `tfg:${stone}_stone_dust`, loose: null, stonecutting: true } // Smooth + )) ) + CUTTER = CUTTER.concat( (AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => ( + { raw: `ad_astra:${stone}_stone_bricks`, stair: `ad_astra:${stone}_stone_brick_stairs`, slab: `ad_astra:${stone}_stone_brick_slab`, wall: `ad_astra:${stone}_stone_brick_wall`, + dust: `tfg:${stone}_stone_dust`, loose: null, stonecutting: true } // Bricks + )) ) + CUTTER = CUTTER.concat( (AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => ( + { raw: `ad_astra:cracked_${stone}_stone_bricks`, stair: `tfg:rock/cracked_bricks_${stone}_stairs`, slab: `tfg:rock/cracked_bricks_${stone}_slab`, wall: `tfg:rock/cracked_bricks_${stone}_wall`, + dust: `tfg:${stone}_stone_dust`, loose: null, stonecutting: true } // Bricks - Cracked + )) ) + CUTTER = CUTTER.concat( (AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => ( + { raw: `tfg:rock/mossy_bricks_${stone}`, stair: `tfg:rock/mossy_bricks_${stone}_stairs`, slab: `tfg:rock/mossy_bricks_${stone}_slab`, wall: `tfg:rock/mossy_bricks_${stone}_wall`, + dust: `tfg:${stone}_stone_dust`, loose: null, stonecutting: true } // Bricks - Mossy + )) ) + CUTTER = CUTTER.concat( (AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => ( + { raw: `ad_astra:chiseled_${stone}_stone_bricks`, stair: `ad_astra:chiseled_${stone}_stone_stairs`, slab: `ad_astra:chiseled_${stone}_stone_slab`, wall: `tfg:rock/chiseled_bricks_${stone}_wall`, + dust: `tfg:${stone}_stone_dust`, loose: null, stonecutting: true } // Bricks - Extra + )) ) + + CUTTER = CUTTER.concat([ + // Moon Deepstone + { raw: 'ad_astra:moon_deepslate', stair: 'tfg:rock/moon_deepslate_stairs', slab: 'tfg:rock/moon_deepslate_slab', wall: 'tfg:rock/moon_deepslate_wall', + dust: 'tfg:moon_deepslate_dust', loose: null, stonecutting: true }, // Raw + + { raw: 'tfg:rock/cobble_moon_deepslate', stair: 'tfg:rock/cobble_moon_deepslate_stairs', slab: 'tfg:rock/cobble_moon_deepslate_slab', wall: 'tfg:rock/cobble_moon_deepslate_wall', + dust: 'tfg:moon_deepslate_dust', loose: 'tfg:loose/moon_deepslate', stonecutting: true }, // Cobble + + { raw: 'tfg:rock/mossy_cobble_moon_deepslate', stair: 'tfg:rock/mossy_cobble_moon_deepslate_stairs', slab: 'tfg:rock/mossy_cobble_moon_deepslate_slab', wall: 'tfg:rock/mossy_cobble_moon_deepslate_wall', + dust: 'tfg:moon_deepslate_dust', loose: null, stonecutting: true }, // Cobble - Mossy + + { raw: 'tfg:rock/polished_moon_deepslate', stair: 'tfg:rock/polished_moon_deepslate_stairs', slab: 'tfg:rock/polished_moon_deepslate_slab', wall: 'tfg:rock/polished_moon_deepslate_wall', + dust: 'gtceu:moon_deepslate_dust', loose: null, stonecutting: true }, // Smooth + + { raw: 'tfg:rock/bricks_moon_deepslate', stair: 'tfg:rock/bricks_moon_deepslate_stairs', slab: 'tfg:rock/bricks_moon_deepslate_slab', wall: 'tfg:rock/bricks_moon_deepslate_wall', + dust: 'gtceu:moon_deepslate_dust', loose: null, stonecutting: true }, // Bricks + + { raw: 'tfg:rock/cracked_bricks_moon_deepslate', stair: 'tfg:rock/cracked_bricks_moon_deepslate_stairs', slab: 'tfg:rock/cracked_bricks_moon_deepslate_slab', wall: 'tfg:rock/cracked_bricks_moon_deepslate_wall', + dust: 'gtceu:moon_deepslate_dust', loose: null, stonecutting: true }, // Bricks - Cracked + + { raw: 'tfg:rock/mossy_bricks_moon_deepslate', stair: 'tfg:rock/mossy_bricks_moon_deepslate_stairs' , slab: 'tfg:rock/mossy_bricks_moon_deepslate_slab', wall: 'tfg:rock/mossy_bricks_moon_deepslate_wall', + dust: 'gtceu:moon_deepslate_dust', loose: null, stonecutting: true }, // Bricks - Mossy + + { raw: 'tfg:rock/chiseled_bricks_moon_deepslate', stair: 'tfg:rock/chiseled_bricks_moon_deepslate_stairs', slab: 'tfg:rock/chiseled_bricks_moon_deepslate_slab', wall: 'tfg:rock/chiseled_bricks_moon_deepslate_wall', + dust: 'gtceu:moon_deepslate_dust', loose: null, stonecutting: true }, // Bricks - Extra + + // Permafrost + { raw: 'ad_astra:permafrost', stair: 'tfg:rock/permafrost_stairs', slab: 'tfg:rock/permafrost_slab', wall: 'tfg:rock/permafrost_wall', + dust: 'gtceu:ice_dust', loose: null, stonecutting: true }, // Raw + + { raw: 'tfg:rock/cobble_permafrost', stair: 'tfg:rock/cobble_permafrost_stairs', slab: 'tfg:rock/cobble_permafrost_slab', wall: 'tfg:rock/cobble_permafrost_wall', + dust: 'gtceu:ice_dust', loose: 'tfg:loose/permafrost', stonecutting: true }, // Cobble + + { raw: 'tfg:rock/mossy_cobble_permafrost', stair: 'tfg:rock/mossy_cobble_permafrost_stairs', slab: 'tfg:rock/mossy_cobble_permafrost_slab', wall: 'tfg:rock/mossy_cobble_permafrost_wall', + dust: 'gtceu:ice_dust', loose: null, stonecutting: true }, // Cobble - Mossy + + { raw: 'ad_astra:polished_permafrost', stair: 'ad_astra:polished_permafrost_stairs', slab: 'ad_astra:polished_permafrost_slab', wall: 'tfg:rock/polished_permafrost_wall', + dust: 'gtceu:ice_dust', loose: null, stonecutting: true }, // Smooth + + { raw: 'ad_astra:permafrost_bricks', stair: 'ad_astra:permafrost_brick_stairs', slab: 'ad_astra:permafrost_brick_slab', wall: 'ad_astra:permafrost_brick_wall', + dust: 'gtceu:ice_dust', loose: null, stonecutting: true }, // Bricks + + { raw: 'ad_astra:cracked_permafrost_bricks', stair: 'tfg:rock/cracked_bricks_permafrost_stairs', slab: 'tfg:rock/cracked_bricks_permafrost_slab', wall: 'tfg:rock/cracked_bricks_permafrost_wall', + dust: 'gtceu:ice_dust', loose: null, stonecutting: true }, // Bricks - Cracked + + { raw: 'tfg:rock/mossy_bricks_permafrost', stair: 'tfg:rock/mossy_bricks_permafrost_stairs', slab: 'tfg:rock/mossy_bricks_permafrost_slab', wall: 'tfg:rock/mossy_bricks_permafrost_wall', + dust: 'gtceu:ice_dust', loose: null, stonecutting: true }, // Bricks - Mossy + + { raw: 'ad_astra:chiseled_permafrost_bricks', stair: 'ad_astra:chiseled_permafrost_brick_stairs', slab: 'ad_astra:chiseled_permafrost_brick_slab', wall: 'tfg:rock/chiseled_bricks_permafrost_wall', + dust: 'gtceu:ice_dust', loose: null, stonecutting: true }, // Bricks - Extra + + // Red Granite + { raw: 'gtceu:red_granite', stair: 'tfg:rock/red_granite_stairs', slab: 'tfg:rock/red_granite_slab', wall: 'tfg:rock/red_granite_wall', + dust: 'gtceu:granite_red_dust', loose: null, stonecutting: true }, // Raw + + { raw: 'gtceu:red_granite_cobblestone', stair: 'tfg:rock/cobble_red_granite_stairs', slab: 'tfg:rock/cobble_red_granite_slab', wall: 'tfg:rock/cobble_red_granite_wall', + dust: 'gtceu:granite_red_dust', loose: 'tfg:loose/red_granite', stonecutting: true }, // Cobble + + { raw: 'gtceu:mossy_red_granite_cobblestone', stair: 'tfg:rock/mossy_cobble_red_granite_stairs', slab: 'tfg:rock/mossy_cobble_red_granite_slab', wall: 'tfg:rock/mossy_cobble_red_granite_wall', + dust: 'gtceu:granite_red_dust', loose: null, stonecutting: true }, // Cobble - Mossy + + { raw: 'gtceu:polished_red_granite', stair: 'tfg:rock/polished_red_granite_stairs', slab: 'tfg:rock/polished_red_granite_slab', wall: 'tfg:rock/polished_red_granite_wall', + dust: 'gtceu:granite_red_dust', loose: null, stonecutting: true }, // Smooth + + { raw: 'gtceu:red_granite_bricks', stair: 'tfg:rock/bricks_red_granite_stairs', slab: 'tfg:rock/bricks_red_granite_slab', wall: 'tfg:rock/bricks_red_granite_wall', + dust: 'gtceu:granite_red_dust', loose: null, stonecutting: true }, // Bricks + + { raw: 'gtceu:cracked_red_granite_bricks', stair: 'tfg:rock/cracked_bricks_red_granite_stairs', slab: 'tfg:rock/cracked_bricks_red_granite_slab', wall: 'tfg:rock/cracked_bricks_red_granite_wall', + dust: 'gtceu:granite_red_dust', loose: null, stonecutting: true }, // Bricks - Cracked + + { raw: 'gtceu:mossy_red_granite_bricks', stair: 'tfg:rock/mossy_bricks_red_granite_stairs', slab: 'tfg:rock/mossy_bricks_red_granite_slab', wall: 'tfg:rock/mossy_bricks_red_granite_wall', + dust: 'gtceu:granite_red_dust', loose: null, stonecutting: true }, // Bricks - Mossy + + // Red Sandstone + { raw: 'minecraft:red_sandstone', stair: 'minecraft:red_sandstone_stairs', slab: 'minecraft:red_sandstone_slab', wall: 'minecraft:red_sandstone_wall', + dust: null, loose: null, stonecutting: true }, // Raw + + { raw: 'minecraft:smooth_red_sandstone', stair: 'minecraft:smooth_red_sandstone_stairs', slab: 'minecraft:smooth_red_sandstone_slab', wall: 'tfg:rock/smooth_red_sandstone_wall', + dust: null, loose: null, stonecutting: true }, // Smooth + + { raw: 'minecraft:cut_red_sandstone', stair: 'tfg:rock/cut_red_sandstone_stairs', slab: 'minecraft:smooth_red_sandstone_slab', wall: 'tfg:rock/cut_red_sandstone_wall', + dust: null, loose: null, stonecutting: true }, // Smooth - Extra + + // Venus Sandstone + { raw: 'ad_astra:venus_sandstone_bricks', stair: 'ad_astra:venus_sandstone_brick_stairs', slab: 'ad_astra:venus_sandstone_brick_slab', wall: 'tfg:rock/bricks_venus_sandstone_wall', + dust: null, loose: null, stonecutting: true }, // Bricks + + { raw: 'ad_astra:cracked_venus_sandstone_bricks', stair: 'tfg:rock/cracked_bricks_venus_sandstone_stairs', slab: 'tfg:rock/cracked_bricks_venus_sandstone_slab', wall: 'tfg:rock/cracked_bricks_venus_sandstone_wall', + dust: null, loose: null, stonecutting: true }, // Bricks - Cracked + + // Other Space Blocks + { raw: 'ae2:sky_stone_block', stair: 'ae2:sky_stone_stairs', slab: 'ae2:sky_stone_slab', wall: 'ae2:sky_stone_wall', + dust: 'ae2:sky_dust', loose: null, stonecutting: true }, + + { raw: 'ae2:smooth_sky_stone_block', stair: 'ae2:smooth_sky_stone_stairs', slab: 'ae2:smooth_sky_stone_slab', wall: 'ae2:smooth_sky_stone_wall', + dust: 'ae2:sky_dust', loose: null, stonecutting: true }, + + { raw: 'ae2:sky_stone_brick', stair: 'ae2:sky_stone_brick_stairs', slab: 'ae2:sky_stone_brick_slab', wall: 'ae2:sky_stone_brick_wall', + dust: 'ae2:sky_dust', loose: null, stonecutting: true }, + + { raw: 'ae2:sky_stone_small_brick', stair: 'ae2:sky_stone_small_brick_stairs', slab: 'ae2:sky_stone_small_brick_slab', wall: 'ae2:sky_stone_small_brick_wall', + dust: 'ae2:sky_dust', loose: null, stonecutting: true }, + + { raw: 'ae2:fluix_block', stair: 'ae2:fluix_stairs', slab: 'ae2:fluix_slab', wall: 'ae2:fluix_wall', + dust: 'ae2:fluix_dust', loose: null, stonecutting: true }, + + { raw: 'minecraft:purpur_block', stair: 'minecraft:purpur_stairs', slab: 'minecraft:purpur_slab', wall: null, + dust: null, loose: null, stonecutting: true }, + + // #endregion Space + + // #region Other + { raw: 'minecraft:stone', stair: 'minecraft:stone_stairs', slab: 'minecraft:stone_slab', wall: 'tfg:rock/stone_wall', + dust: 'gtceu:stone_dust', loose: null, stonecutting: true }, // Raw + + { raw: 'minecraft:cobblestone', stair: 'minecraft:cobblestone_stairs', slab: 'minecraft:cobblestone_slab', wall: 'minecraft:cobblestone_wall', + dust: 'gtceu:stone_dust', loose: null, stonecutting: true }, // Cobble + + { raw: 'minecraft:mossy_cobblestone', stair: 'minecraft:mossy_cobblestone_stairs', slab: 'minecraft:mossy_cobblestone_slab', wall: 'minecraft:mossy_cobblestone_wall', + dust: 'gtceu:stone_dust', loose: null, stonecutting: true }, // Cobble - Mossy + + { raw: 'minecraft:smooth_stone', stair: 'tfg:rock/smooth_stone_stairs', slab: 'minecraft:smooth_stone_slab', wall: 'tfg:rock/smooth_stone_wall', + dust: 'gtceu:stone_dust', loose: null, stonecutting: true }, // Smooth + + { raw: 'minecraft:stone_bricks', stair: 'minecraft:stone_brick_stairs', slab: 'minecraft:stone_brick_slab', wall: 'minecraft:stone_brick_wall', + dust: 'gtceu:stone_dust', loose: null, stonecutting: true }, // Brick + + { raw: 'minecraft:cracked_stone_bricks', stair: 'tfg:rock/cracked_bricks_stone_stairs', slab: 'tfg:rock/cracked_bricks_stone_slab', wall: 'tfg:rock/cracked_bricks_stone_wall', + dust: 'gtceu:stone_dust', loose: null, stonecutting: true }, // Brick - Cracked + + { raw: 'minecraft:mossy_stone_bricks', stair: 'minecraft:mossy_stone_brick_stairs', slab: 'minecraft:mossy_stone_brick_slab', wall: 'minecraft:mossy_stone_brick_wall', + dust: 'gtceu:stone_dust', loose: null, stonecutting: true }, // Brick - Mossy + + // #endregion Other + ]) + CUTTER.forEach(x => { - if ("stair" in x) { + console.log(x.raw) + if (x.stair != null) { event.recipes.tfc.chisel(x.stair, x.raw, 'stair') if (x.stonecutting) { event.stonecutting(x.stair, x.raw).id(`${x.raw}_to_${x.stair}`.replace(/:/g, '_')) } - if (x.dust !== null) { + if (x.dust != null) { event.recipes.gtceu.macerator(`macerate_${x.stair}`.replace(/:/g, '_')) .itemInputs(x.stair) .itemOutputs(x.dust) @@ -658,18 +612,18 @@ function registerTFGRockRecipes(event) { .category(GTRecipeCategories.MACERATOR_RECYCLING) } - if ("loose" in x) { + if (x.loose != null) { event.shapeless(`3x ${x.loose}`, [x.stair]) } } - if ("slab" in x) { + if (x.slab != null) { event.recipes.tfc.chisel(x.slab, x.raw, 'slab').extraDrop(x.slab) if (x.stonecutting) { event.stonecutting(`2x ${x.slab}`, x.raw).id(`${x.raw}_to_${x.slab}`.replace(/:/g, '_')) } - if (x.dust !== null) { + if (x.dust != null) { event.recipes.gtceu.macerator(`macerate_${x.slab}`.replace(/:/g, '_')) .itemInputs(`2x ${x.slab}`) .itemOutputs(x.dust) @@ -678,18 +632,18 @@ function registerTFGRockRecipes(event) { .category(GTRecipeCategories.MACERATOR_RECYCLING) } - if ("loose" in x) { + if (x.loose != null) { event.shapeless(`2x ${x.loose}`, [x.slab]) } } - if ("wall" in x) { + if (x.wall != null) { event.recipes.tfc.chisel(x.wall, x.raw, 'smooth') if (x.stonecutting) { event.stonecutting(x.wall, x.raw).id(`${x.raw}_to_${x.wall}`.replace(/:/g, '_')) } - if (x.dust !== null) { + if (x.dust != null) { event.recipes.gtceu.macerator(`macerate_${x.wall}`.replace(/:/g, '_')) .itemInputs(x.wall) .itemOutputs(x.dust) @@ -699,21 +653,46 @@ function registerTFGRockRecipes(event) { } } - if ("loose" in x) { + if (x.loose != null) { event.shapeless(`4x ${x.loose}`, [x.raw]) } }) - // pillars + // Alabaster + event.recipes.gtceu.cutter("tfg:raw_alabaster_to_bricks") + .itemInputs("tfc:alabaster/raw") + .itemOutputs("4x tfc:alabaster_brick") + .duration(40) + .EUt(2) + // #endregion CUTTER + + // Stone Cutter Sets + const red_granite_cutter_set = Ingredient.of('#tfg:red_granite_cutter_set').itemIds.toArray().map(String); + red_granite_cutter_set.forEach(block => { + event.stonecutting(block, + Ingredient.of('#tfg:red_granite_cutter_set').subtract(block) + ).id(`tfg:stonecutter/${block.replace(/:/g, "/")}`) + + }) + + const moon_deepslate_cutter_set = Ingredient.of('#tfg:moon_deepslate_cutter_set').itemIds.toArray().map(String); + moon_deepslate_cutter_set.forEach(block => { + event.stonecutting(block, + Ingredient.of('#tfg:moon_deepslate_cutter_set').subtract(block) + ).id(`tfg:stonecutter/${block.replace(/:/g, "/")}`) + + }) + + // #region PILLARS const PILLARS = [ - { raw: 'ad_astra:moon_stone_bricks', pillar: 'ad_astra:moon_pillar' }, - { raw: 'ad_astra:mars_stone_bricks', pillar: 'ad_astra:mars_pillar' }, - { raw: 'ad_astra:venus_stone_bricks', pillar: 'ad_astra:venus_pillar' }, + { raw: 'ad_astra:moon_stone_bricks', pillar: 'ad_astra:moon_pillar' }, + { raw: 'ad_astra:mars_stone_bricks', pillar: 'ad_astra:mars_pillar' }, + { raw: 'ad_astra:venus_stone_bricks', pillar: 'ad_astra:venus_pillar' }, { raw: 'ad_astra:mercury_stone_bricks', pillar: 'ad_astra:mercury_pillar' }, - { raw: 'ad_astra:glacio_stone_bricks', pillar: 'ad_astra:glacio_pillar' }, - { raw: 'ad_astra:permafrost_bricks', pillar: 'ad_astra:permafrost_pillar' }, - { raw: 'minecraft:purpur_block', pillar: 'minecraft:purpur_pillar' } + { raw: 'ad_astra:glacio_stone_bricks', pillar: 'ad_astra:glacio_pillar' }, + { raw: 'ad_astra:permafrost_bricks', pillar: 'ad_astra:permafrost_pillar' }, + { raw: 'minecraft:purpur_block', pillar: 'minecraft:purpur_pillar' } ] PILLARS.forEach(x => { @@ -727,19 +706,45 @@ function registerTFGRockRecipes(event) { event.stonecutting(x.pillar, x.raw).id(`${x.raw}_to_${x.pillar}`.replace(/:/g, '_')) }) - // macerating + // pillar shaped recipes + event.shaped( + Item.of('create:deepslate_pillar', 2), [ ' A ', ' A ' ], { A: 'minecraft:polished_deepslate' } + ) + event.shaped( + Item.of('create:layered_deepslate', 2), [ 'AA ' ], { A: 'minecraft:polished_deepslate' } + ) + event.shaped( + Item.of('create:dripstone_pillar', 2), [ ' A ', ' A ' ], { A: 'create:polished_cut_dripstone' } + ) + event.shaped( + Item.of('create:layered_dripstone', 2), [ 'AA ' ], { A: 'create:polished_cut_dripstone' } + ) + + event.shaped( + Item.of('create:dripstone_pillar', 2), [ ' A ', ' A ' ], { A: 'create:polished_cut_dripstone' } + ) + event.shaped( + Item.of('create:layered_dripstone', 2), [ 'AA ' ], { A: 'create:polished_cut_dripstone' } + ) + + event.shaped( + Item.of('tfg:rock/pillar_moon_deepslate', 2), [ ' A ', ' A ' ], { A: 'tfg:rock/bricks_moon_deepslate' } + ) + // #endregion PILLARS + + // #region MACERATOR const MACERATOR = [ - { block: 'minecraft:deepslate', dust: 'gtceu:deepslate_dust' }, + { block: 'minecraft:deepslate', dust: 'gtceu:deepslate_dust' }, { block: 'minecraft:dripstone_block', dust: 'tfg:dripstone_dust' }, - { block: 'ad_astra:moon_stone', dust: 'tfg:moon_stone_dust' }, - { block: 'ad_astra:moon_deepslate', dust: 'tfg:moon_deepslate_dust' }, - { block: 'ad_astra:mars_stone', dust: 'tfg:mars_stone_dust' }, - { block: 'ad_astra:venus_stone', dust: 'tfg:venus_stone_dust' }, - { block: 'ad_astra:mercury_stone', dust: 'tfg:mercury_stone_dust' }, - { block: 'ad_astra:glacio_stone', dust: 'tfg:glacio_stone_dust' }, - { block: 'ad_astra:permafrost', dust: 'gtceu:ice_dust' }, - { block: 'ae2:sky_stone', dust: 'ae2:sky_dust' } + { block: 'ad_astra:moon_stone', dust: 'tfg:moon_stone_dust' }, + { block: 'ad_astra:moon_deepslate', dust: 'tfg:moon_deepslate_dust' }, + { block: 'ad_astra:mars_stone', dust: 'tfg:mars_stone_dust' }, + { block: 'ad_astra:venus_stone', dust: 'tfg:venus_stone_dust' }, + { block: 'ad_astra:mercury_stone', dust: 'tfg:mercury_stone_dust' }, + { block: 'ad_astra:glacio_stone', dust: 'tfg:glacio_stone_dust' }, + { block: 'ad_astra:permafrost', dust: 'gtceu:ice_dust' }, + { block: 'ae2:sky_stone', dust: 'ae2:sky_dust' } ] MACERATOR.forEach(x => { @@ -751,144 +756,81 @@ function registerTFGRockRecipes(event) { .category(GTRecipeCategories.MACERATOR_RECYCLING) }) - // rock breaker + //#region Crackrack/netherrack dust compat + event.recipes.gtceu.macerator(`raw_crackrack_to_dust`) + .itemInputs('beneath:crackrack') + .itemOutputs('gtceu:netherrack_dust') + .duration(150) + .EUt(2) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + event.recipes.gtceu.macerator('crackrack_cobble_to_dust') + .itemInputs('tfg:rock/cobble_crackrack') + .itemOutputs('gtceu:netherrack_dust') + .duration(150) + .EUt(2) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + //#endregion + + // #endregion MACERATOR + + // #region ROCK_DUPING (Breaker) const ROCK_DUPING = [ - 'minecraft:deepslate', - 'minecraft:cobbled_deepslate', - 'minecraft:blackstone', - 'tfg:rock/cobble_blackstone', - 'minecraft:dripstone_block', - 'tfg:rock/cobble_dripstone', - 'beneath:crackrack', - 'tfg:rock/cobble_crackrack', - 'minecraft:basalt' + { block: 'minecraft:deepslate', dimension: null }, + { block: 'minecraft:cobbled_deepslate', dimension: null }, + { block: 'minecraft:blackstone', dimension: null }, + { block: 'tfg:rock/cobble_blackstone', dimension: null }, + { block: 'minecraft:dripstone_block', dimension: null }, + { block: 'tfg:rock/cobble_dripstone', dimension: null }, + { block: 'beneath:crackrack', dimension: null }, + { block: 'tfg:rock/cobble_crackrack', dimension: null }, + { block: 'minecraft:basalt', dimension: null }, + { block: 'ad_astra:moon_stone', dimension: 'ad_astra:moon' }, + { block: 'ad_astra:moon_cobblestone', dimension: 'ad_astra:moon' }, + { block: 'ad_astra:moon_deepslate', dimension: 'ad_astra:moon' }, + { block: 'tfg:rock/cobble_moon_deepslate', dimension: 'ad_astra:moon' }, + { block: 'ad_astra:glacio_stone', dimension: 'ad_astra:moon' }, + { block: 'ad_astra:glacio_cobblestone', dimension: 'ad_astra:moon' }, + { block: 'ad_astra:mars_stone', dimension: 'ad_astra:mars' }, + { block: 'ad_astra:mars_cobblestone', dimension: 'ad_astra:mars' }, + { block: 'ad_astra:venus_stone', dimension: 'ad_astra:mars' }, + { block: 'ad_astra:venus_cobblestone', dimension: 'ad_astra:mars' }, + { block: 'gtceu:red_granite', dimension: 'ad_astra:mars' }, + { block: 'gtceu:red_granite_cobblestone', dimension: 'ad_astra:mars' }, + { block: 'ad_astra:mercury_stone', dimension: 'ad_astra:mercury' }, + { block: 'ad_astra:mercury_cobblestone', dimension: 'ad_astra:mercury' }, + { block: 'ad_astra:permafrost', dimension: 'ad_astra:glacio' }, + { block: 'tfg:rock/cobble_permafrost', dimension: 'ad_astra:glacio' }, + { block: 'tfc:alabaster/raw', dimension: null } ] ROCK_DUPING.forEach(x => { - event.recipes.gtceu.rock_breaker(x) - .notConsumable(x) - .itemOutputs(x) - .duration(16) - .EUt(7) + if (x.dimension != null) { + event.recipes.gtceu.rock_breaker(x.block) + .notConsumable(x.block) + .itemOutputs(x.block) + .duration(16) + .EUt(7) + .dimension(x.dimension) + } else { + event.recipes.gtceu.rock_breaker(x.block) + .notConsumable(x.block) + .itemOutputs(x.block) + .duration(16) + .EUt(7) + } }) - event.recipes.gtceu.rock_breaker('tfg:moon_stone') - .notConsumable('ad_astra:moon_stone') - .itemOutputs('ad_astra:moon_stone') - .duration(16) - .EUt(7) - .dimension('ad_astra:moon') - - event.recipes.gtceu.rock_breaker('tfg:moon_cobblestone') - .notConsumable('ad_astra:moon_cobblestone') - .itemOutputs('ad_astra:moon_cobblestone') - .duration(16) - .EUt(7) - .dimension('ad_astra:moon') - - event.recipes.gtceu.rock_breaker('tfg:moon_deepslate') - .notConsumable('ad_astra:moon_deepslate') - .itemOutputs('ad_astra:moon_deepslate') - .duration(16) - .EUt(7) - .dimension('ad_astra:moon') - - event.recipes.gtceu.rock_breaker('tfg:moon_deepslate_cobblestone') - .notConsumable('tfg:rock/cobble_moon_deepslate') - .itemOutputs('tfg:rock/cobble_moon_deepslate') - .duration(16) - .EUt(7) - .dimension('ad_astra:moon') - - event.recipes.gtceu.rock_breaker('tfg:glacio_stone') - .notConsumable('ad_astra:glacio_stone') - .itemOutputs('ad_astra:glacio_stone') - .duration(16) - .EUt(7) - .dimension('ad_astra:moon') - - event.recipes.gtceu.rock_breaker('tfg:glacio_cobblestone') - .notConsumable('ad_astra:glacio_cobblestone') - .itemOutputs('ad_astra:glacio_cobblestone') - .duration(16) - .EUt(7) - .dimension('ad_astra:moon') - - event.recipes.gtceu.rock_breaker('tfg:mars_stone') - .notConsumable('ad_astra:mars_stone') - .itemOutputs('ad_astra:mars_stone') - .duration(16) - .EUt(7) - .dimension('ad_astra:mars') - - event.recipes.gtceu.rock_breaker('tfg:mars_cobblestone') - .notConsumable('ad_astra:mars_cobblestone') - .itemOutputs('ad_astra:mars_cobblestone') - .duration(16) - .EUt(7) - .dimension('ad_astra:mars') - - event.recipes.gtceu.rock_breaker('tfg:venus_stone') - .notConsumable('ad_astra:venus_stone') - .itemOutputs('ad_astra:venus_stone') - .duration(16) - .EUt(7) - .dimension('ad_astra:mars') - - event.recipes.gtceu.rock_breaker('tfg:venus_cobblestone') - .notConsumable('ad_astra:venus_cobblestone') - .itemOutputs('ad_astra:venus_cobblestone') - .duration(16) - .EUt(7) - .dimension('ad_astra:mars') - - event.recipes.gtceu.rock_breaker('tfg:red_granite') - .notConsumable('gtceu:red_granite') - .itemOutputs('gtceu:red_granite') - .duration(16) - .EUt(7) - .dimension('ad_astra:mars') - - event.recipes.gtceu.rock_breaker('tfg:red_granite_cobblestone') - .notConsumable('gtceu:red_granite_cobblestone') - .itemOutputs('gtceu:red_granite_cobblestone') - .duration(16) - .EUt(7) - .dimension('ad_astra:mars') - - event.recipes.gtceu.rock_breaker('tfg:mercury_stone') - .notConsumable('ad_astra:mercury_stone') - .itemOutputs('ad_astra:mercury_stone') - .duration(16) - .EUt(7) - .dimension('ad_astra:mercury') - - event.recipes.gtceu.rock_breaker('tfg:mercury_cobblestone') - .notConsumable('ad_astra:mercury_cobblestone') - .itemOutputs('ad_astra:mercury_cobblestone') - .duration(16) - .EUt(7) - .dimension('ad_astra:mercury') + // #endregion ROCK_DUPING (Breaker) + // #region COMPRESSOR event.recipes.gtceu.compressor('tfg:permafrost') .itemInputs('4x tfg:loose/permafrost') .itemOutputs('ad_astra:permafrost') .duration(40*20) .EUt(2) .dimension('ad_astra:glacio') - - event.recipes.gtceu.rock_breaker('tfg:permafrost_cobblestone') - .notConsumable('tfg:rock/cobble_permafrost') - .itemOutputs('tfg:rock/cobble_permafrost') - .duration(16) - .EUt(7) - .dimension('ad_astra:glacio') - - // #endregion - - // #region sandstone - + event.recipes.gtceu.compressor('tfg:venus_sandstone') .itemInputs('4x ad_astra:venus_sand') .itemOutputs('ad_astra:venus_sandstone') @@ -896,7 +838,7 @@ function registerTFGRockRecipes(event) { .EUt(2) .dimension('ad_astra:mars') - // #endregion + // #endregion COMPRESSOR //#region Magma Blocks event.remove({id: 'gtceu:compressor/magma_block'}) @@ -904,14 +846,14 @@ function registerTFGRockRecipes(event) { //magma block + stone group const MAGMA_BLOCKS = [ - { magma: 'minecraft:magma_block', rock: 'minecraft:blackstone' }, - { magma: 'tfc:rock/magma/granite', rock: 'tfc:rock/raw/granite' }, - { magma: 'tfc:rock/magma/diorite', rock: 'tfc:rock/raw/diorite' }, - { magma: 'tfc:rock/magma/gabbro', rock: 'tfc:rock/raw/gabbro' }, + { magma: 'minecraft:magma_block', rock: 'minecraft:blackstone' }, + { magma: 'tfc:rock/magma/granite', rock: 'tfc:rock/raw/granite' }, + { magma: 'tfc:rock/magma/diorite', rock: 'tfc:rock/raw/diorite' }, + { magma: 'tfc:rock/magma/gabbro', rock: 'tfc:rock/raw/gabbro' }, { magma: 'tfc:rock/magma/rhyolite', rock: 'tfc:rock/raw/rhyolite' }, - { magma: 'tfc:rock/magma/basalt', rock: 'tfc:rock/raw/basalt' }, + { magma: 'tfc:rock/magma/basalt', rock: 'tfc:rock/raw/basalt' }, { magma: 'tfc:rock/magma/andesite', rock: 'tfc:rock/raw/andesite' }, - { magma: 'tfc:rock/magma/dacite', rock: 'tfc:rock/raw/dacite' } + { magma: 'tfc:rock/magma/dacite', rock: 'tfc:rock/raw/dacite' } ]; MAGMA_BLOCKS.forEach(block => { @@ -930,37 +872,6 @@ function registerTFGRockRecipes(event) { .duration(100) .EUt(GTValues.VA[GTValues.LV]) }) - //#endregion - //#region Alabaster - - event.recipes.gtceu.rock_breaker("tfg:alabaster") - .notConsumable("tfc:alabaster/raw") - .itemOutputs("tfc:alabaster/raw") - .duration(16) - .EUt(7) - - event.recipes.gtceu.cutter("tfg:raw_alabaster_to_bricks") - .itemInputs("tfc:alabaster/raw") - .itemOutputs("4x tfc:alabaster_brick") - .duration(40) - .EUt(2) - - //#endregion - - //#region Crackrack/netherrack dust compat - event.recipes.gtceu.macerator(`raw_crackrack_to_dust`) - .itemInputs('beneath:crackrack') - .itemOutputs('gtceu:netherrack_dust') - .duration(150) - .EUt(2) - .category(GTRecipeCategories.MACERATOR_RECYCLING) - - event.recipes.gtceu.macerator('crackrack_cobble_to_dust') - .itemInputs('tfg:rock/cobble_crackrack') - .itemOutputs('gtceu:netherrack_dust') - .duration(150) - .EUt(2) - .category(GTRecipeCategories.MACERATOR_RECYCLING) - //#endregion + //#endregion Magma Blocks } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/tags.js b/kubejs/server_scripts/tfg/tags.js index 0656fc05a..1e9c70e36 100644 --- a/kubejs/server_scripts/tfg/tags.js +++ b/kubejs/server_scripts/tfg/tags.js @@ -328,368 +328,362 @@ const registerTFGItemTags = (event) => { event.add('tfg:cannot_launch_in_railgun', 'create_factory_logistics:copper_jar_package_8x8') //#endregion + const SHAPES = ['stairs', 'slab', 'wall'] + const SHAPES_AA = ['stairs', 'slab'] + + const STONE_TYPES = { + deepslate: "metamorphic", + blackstone: "igneous_intrusive", + dripstone: "sedimentary", + crackrack: "igneous_intrusive", + basalt: "igneous_extrusive", + moon: "igneous_intrusive", + moon_deepslate: "igneous_intrusive", + mars: "sedimentary", + venus: "igneous_extrusive", + mercury: "igneous_intrusive", + glacio: "igneous_extrusive", + red_granite: "igneous_intrusive" + } + + function getStoneType(stone) { + const stoneType = STONE_TYPES[stone.toLowerCase()]; + return stoneType ? stoneType : `Stone "${stone}" not found`; + } + + const AA_REGULAR_STONES = ['moon', 'mars', 'venus', 'mercury', 'glacio'] + // #region Nether blocks - // Deepslate (Migmatite) + // Deepslate (Migmatite) [Metamorphic] const create_deepslate_blocks = Ingredient.of('#create:stone_types/deepslate').itemIds.toArray().map(String); create_deepslate_blocks.forEach(block => { - event.add('tfc:metamorphic_items', block) + event.add(`tfc:${STONE_TYPES.deepslate}_items`, block) }) - event.add('tfc:metamorphic_items', 'minecraft:deepslate') + event.add(`tfc:${STONE_TYPES.deepslate}_items`, 'minecraft:deepslate') - event.add('tfc:metamorphic_items', 'minecraft:cobbled_deepslate') + event.add(`tfc:${STONE_TYPES.deepslate}_items`, 'minecraft:cobbled_deepslate') + + SHAPES.forEach(shape => { + event.add(`tfc:${STONE_TYPES.deepslate}_items`, `minecraft:cobbled_deepslate_${shape}`) + event.add(`tfg:rock_${shape}`.replace(/ss/g, 's'), `minecraft:cobbled_deepslate_${shape}`) + }) event.add('forge:smooth_stone', 'minecraft:polished_deepslate') - event.add('tfc:metamorphic_items', 'minecraft:polished_deepslate') + event.add(`tfc:${STONE_TYPES.deepslate}_items`, 'minecraft:polished_deepslate') event.add('tfc:rock/smooth', 'minecraft:polished_deepslate') event.add('create:stone_types/deepslate', 'minecraft:polished_deepslate') + SHAPES.forEach(shape => { + event.add(`tfc:${STONE_TYPES.deepslate}_items`, `minecraft:polished_deepslate_${shape}`) + event.add(`tfg:rock_${shape}`.replace(/ss/g, 's'), `minecraft:polished_deepslate_${shape}`) + }) + event.add('forge:stone_bricks', 'minecraft:deepslate_bricks') - event.add('tfc:metamorphic_items', 'minecraft:deepslate_bricks') + event.add(`tfc:${STONE_TYPES.deepslate}_items`, 'minecraft:deepslate_bricks') event.add('tfc:rock/bricks', 'minecraft:deepslate_bricks') event.add('forge:stone_bricks', 'minecraft:deepslate_tiles') - event.add('tfc:metamorphic_items', 'minecraft:deepslate_tiles') + event.add(`tfc:${STONE_TYPES.deepslate}_items`, 'minecraft:deepslate_tiles') event.add('tfc:rock/bricks', 'minecraft:deepslate_tiles') event.add('tfc:rock/chiseled_bricks', 'minecraft:deepslate_tiles') + SHAPES.forEach(shape => { + event.add(`tfc:${STONE_TYPES.deepslate}_items`, `minecraft:deepslate_tile_${shape}`) + event.add(`tfg:brick_${shape}`.replace(/ss/g, 's'), `minecraft:deepslate_tile_${shape}`) + }) + + event.add('forge:stone_bricks', 'minecraft:cracked_deepslate_tiles') + event.add(`tfc:${STONE_TYPES.deepslate}_items`, 'minecraft:cracked_deepslate_tiles') + event.add('tfc:rock/bricks', 'minecraft:cracked_deepslate_tiles') + event.add('tfc:rock/chiseled_bricks', 'minecraft:cracked_deepslate_tiles') + event.add('forge:stone_bricks', 'minecraft:chiseled_deepslate') - event.add('tfc:metamorphic_items', 'minecraft:chiseled_deepslate') + event.add(`tfc:${STONE_TYPES.deepslate}_items`, 'minecraft:chiseled_deepslate') event.add('tfc:rock/bricks', 'minecraft:chiseled_deepslate') event.add('tfc:rock/chiseled_bricks', 'minecraft:chiseled_deepslate') - // Blackstone (Pyroxenite) + // Blackstone (Pyroxenite) [Igneous Intrusive] event.remove('tfc:metamorphic_rock', 'beneath:blackstone_pebble') - event.add('tfc:igneous_intrusive_rock', 'beneath:blackstone_pebble') + event.add(`tfc:${STONE_TYPES.blackstone}_rock`, 'beneath:blackstone_pebble') + event.add(`tfc:${STONE_TYPES.blackstone}_items`, 'beneath:blackstone_pebble') event.add('rnr:loose_rock_items', 'beneath:blackstone_pebble') - event.add('tfc:igneous_intrusive_items', 'beneath:blackstone_brick') + event.add(`tfc:${STONE_TYPES.blackstone}_items`, 'beneath:blackstone_brick') event.add('forge:stone', 'minecraft:blackstone') - event.add('tfc:igneous_intrusive_items', 'minecraft:blackstone') + event.add(`tfc:${STONE_TYPES.blackstone}_items`, 'minecraft:blackstone') - event.add('tfc:igneous_intrusive_items', 'minecraft:gilded_blackstone') + SHAPES.forEach(shape => { + event.add(`tfc:${STONE_TYPES.blackstone}_items`, `minecraft:blackstone_${shape}`) + event.add(`tfg:rock_${shape}`.replace(/ss/g, 's'), `minecraft:blackstone_${shape}`) + }) + + event.add(`tfc:${STONE_TYPES.blackstone}_items`, 'minecraft:gilded_blackstone') event.add('forge:smooth_stone', 'minecraft:polished_blackstone') - event.add('tfc:igneous_intrusive_items', 'minecraft:polished_blackstone') + event.add(`tfc:${STONE_TYPES.blackstone}_items`, 'minecraft:polished_blackstone') event.add('tfc:rock/smooth', 'minecraft:polished_blackstone') event.add('forge:stone_bricks', 'minecraft:polished_blackstone_bricks') - event.add('tfc:igneous_intrusive_items', 'minecraft:polished_blackstone_bricks') + event.add(`tfc:${STONE_TYPES.blackstone}_items`, 'minecraft:polished_blackstone_bricks') event.add('tfc:rock/bricks', 'minecraft:polished_blackstone_bricks') - event.add('forge:stone_bricks', 'minecraft:cracked_blackstone_bricks') - event.add('tfc:igneous_intrusive_items', 'minecraft:cracked_blackstone_bricks') - event.add('tfc:rock/bricks', 'minecraft:cracked_blackstone_bricks') - event.add('tfc:rock/cracked_bricks', 'minecraft:cracked_blackstone_bricks') + SHAPES.forEach(shape => { + event.add(`tfc:${STONE_TYPES.blackstone}_items`, `minecraft:polished_blackstone_${shape}`) + event.add(`tfg:rock_${shape}`.replace(/ss/g, 's'), `minecraft:polished_blackstone_${shape}`) + }) + + event.add('forge:stone_bricks', 'minecraft:cracked_polished_blackstone_bricks') + event.add(`tfc:${STONE_TYPES.blackstone}_items`, 'minecraft:cracked_polished_blackstone_bricks') + event.add('tfc:rock/bricks', 'minecraft:cracked_polished_blackstone_bricks') + event.add('tfc:rock/cracked_bricks', 'minecraft:cracked_polished_blackstone_bricks') + + SHAPES.forEach(shape => { + event.add(`tfc:${STONE_TYPES.blackstone}_items`, `minecraft:polished_blackstone_brick_${shape}`) + event.add(`tfg:brick_${shape}`.replace(/ss/g, 's'), `minecraft:polished_blackstone_brick_${shape}`) + }) event.add('forge:stone_bricks', 'minecraft:polished_blackstone_bricks') - event.add('tfc:igneous_intrusive_items', 'minecraft:polished_blackstone_bricks') + event.add(`tfc:${STONE_TYPES.blackstone}_items`, 'minecraft:polished_blackstone_bricks') event.add('tfc:rock/bricks', 'minecraft:polished_blackstone_bricks') - event.add('forge:stone_bricks', 'minecraft:polished_blackstone_bricks') - event.add('tfc:igneous_intrusive_items', 'minecraft:chiseled_polished_blackstone_bricks') - event.add('tfc:rock/bricks', 'minecraft:chiseled_polished_blackstone_bricks') - event.add('tfc:rock/chiseled_bricks', 'minecraft:chiseled_polished_blackstone_bricks') + event.add('forge:stone_bricks', 'minecraft:chiseled_polished_blackstone') + event.add(`tfc:${STONE_TYPES.blackstone}_items`, 'minecraft:chiseled_polished_blackstone') + event.add('tfc:rock/bricks', 'minecraft:chiseled_polished_blackstone') + event.add('tfc:rock/chiseled_bricks', 'minecraft:chiseled_polished_blackstone') - event.add('tfc:igneous_intrusive_items', 'minecraft:polished_blackstone_stairs') - event.add('tfg:rock_stairs', 'minecraft:polished_blackstone_stairs') + event.add(`tfc:${STONE_TYPES.blackstone}_items`, 'beneath:blackstone_aqueduct') - event.add('tfc:igneous_intrusive_items', 'minecraft:polished_blackstone_brick_slab') - event.add('tfg:rock_slabs', 'minecraft:polished_blackstone_slab') - - event.add('tfc:igneous_intrusive_items', 'minecraft:polished_blackstone_wall') - event.add('tfg:rock_walls', 'minecraft:polished_blackstone_wall') - - event.add('tfc:igneous_intrusive_items', 'minecraft:polished_blackstone_brick_stairs') - event.add('tfg:brick_stairs', 'minecraft:polished_blackstone_brick_stairs') - - event.add('tfc:igneous_intrusive_items', 'minecraft:polished_blackstone_brick_slab') - event.add('tfg:brick_slabs', 'minecraft:polished_blackstone_brick_slab') - - event.add('tfc:igneous_intrusive_items', 'minecraft:polished_blackstone_brick_wall') - event.add('tfg:brick_walls', 'minecraft:polished_blackstone_brick_wall') - - event.add('tfc:igneous_intrusive_items', 'beneath:blackstone_aqueduct') - - // Dripstone (Travertine) + // Dripstone (Travertine) [Sedimentary] const create_dripstone_blocks = Ingredient.of('#create:stone_types/dripstone').itemIds.toArray().map(String); create_dripstone_blocks.forEach(block => { - event.add('tfc:sedimentary_items', block) + event.add(`tfc:${STONE_TYPES.dripstone}_items`, block) }) event.add('forge:stone', 'minecraft:dripstone_block') - event.add('tfc:sedimentary_items', 'minecraft:dripstone_block') + event.add(`tfc:${STONE_TYPES.dripstone}_items`, 'minecraft:dripstone_block') event.add('forge:smooth_stone', 'create:cut_dripstone') - event.add('tfc:sedimentary_items', 'create:cut_dripstone') + event.add(`tfc:${STONE_TYPES.dripstone}_items`, 'create:cut_dripstone') event.add('tfc:rock/smooth', 'create:cut_dripstone') + SHAPES.forEach(shape => { + event.add(`tfc:${STONE_TYPES.dripstone}_items`, `create:cut_dripstone_${shape}`) + event.add(`tfg:rock_${shape}`.replace(/ss/g, 's'), `create:cut_dripstone_${shape}`) + }) + + event.add('forge:smooth_stone', 'ad_astra:polished_cut_dripstone') + event.add('tfc:rock/smooth', 'create:polished_cut_dripstone') + + SHAPES.forEach(shape => { + event.add(`tfc:${STONE_TYPES.dripstone}_items`, `create:polished_cut_dripstone_${shape}`) + event.add(`tfg:rock_${shape}`.replace(/ss/g, 's'), `create:polished_cut_dripstone_${shape}`) + }) + event.add('forge:stone_bricks', 'create:cut_dripstone_bricks') - event.add('tfc:igneous_intrusive_items', 'create:cut_dripstone_bricks') + event.add(`tfc:${STONE_TYPES.dripstone}_items`, 'create:cut_dripstone_bricks') event.add('tfc:rock/bricks', 'create:cut_dripstone_bricks') + SHAPES.forEach(shape => { + event.add(`tfc:${STONE_TYPES.dripstone}_items`, `create:cut_dripstone_brick_${shape}`) + event.add(`tfg:brick_${shape}`.replace(/ss/g, 's'), `create:cut_dripstone_brick_${shape}`) + }) + event.add('forge:stone_bricks', 'create:small_dripstone_bricks') - event.add('tfc:igneous_intrusive_items', 'create:small_dripstone_bricks') + event.add(`tfc:${STONE_TYPES.dripstone}_items`, 'create:small_dripstone_bricks') event.add('tfc:rock/bricks', 'create:small_dripstone_bricks') event.add('tfc:rock/chiseled_bricks', 'create:small_dripstone_bricks') - event.add('forge:smooth_stone', 'ad_astra:polished_mars_stone') - event.add('tfc:rock/smooth', 'create:polished_cut_dripstone') + SHAPES.forEach(shape => { + event.add(`tfc:${STONE_TYPES.dripstone}_items`, `create:small_dripstone_brick_${shape}`) + event.add(`tfg:brick_${shape}`.replace(/ss/g, 's'), `create:small_dripstone_brick_${shape}`) + }) - // Crackrack (Keratophyre) + // Crackrack / "Nether" (Keratophyre) [Igneous Intrusive] event.add('forge:stone', 'beneath:crackrack') - event.add('tfc:igneous_intrusive_items', 'beneath:crackrack') - event.add('tfc:igneous_intrusive_items', 'minecraft:nether_brick') + event.add(`tfc:${STONE_TYPES.crackrack}_items`, 'beneath:crackrack') event.add('forge:stone_bricks', 'minecraft:nether_bricks') - event.add('tfc:igneous_intrusive_items', 'minecraft:nether_bricks') + event.add(`tfc:${STONE_TYPES.crackrack}_items`, 'minecraft:nether_bricks') event.add('tfc:rock/bricks', 'minecraft:nether_bricks') + SHAPES.forEach(shape => { + event.add(`tfc:${STONE_TYPES.crackrack}_items`, `minecraft:nether_brick_${shape}`) + event.add(`tfg:brick_${shape}`.replace(/ss/g, 's'), `minecraft:nether_brick_${shape}`) + }) + + event.add('forge:stone_bricks', 'minecraft:cracked_nether_bricks') + event.add(`tfc:${STONE_TYPES.crackrack}_items`, 'minecraft:cracked_nether_bricks') + event.add('tfc:rock/bricks', 'minecraft:cracked_nether_bricks') + event.add('tfc:rock/cracked_bricks', 'minecraft:cracked_nether_bricks') + + event.add('forge:stone_bricks', 'minecraft:chiseled_nether_bricks') + event.add(`tfc:${STONE_TYPES.crackrack}_items`, 'minecraft:chiseled_nether_bricks') + event.add('tfc:rock/bricks', 'minecraft:chiseled_nether_bricks') + event.add('tfc:rock/chiseled_bricks', 'minecraft:chiseled_nether_bricks') + // Basalt event.add('forge:stone', 'minecraft:basalt') - event.add('tfc:igneous_extrusive_items', 'minecraft:basalt') + event.add(`tfc:${STONE_TYPES.basalt}_items`, 'minecraft:basalt') event.add('forge:smooth_stone', 'minecraft:smooth_basalt') - event.add('tfc:igneous_extrusive_items', 'minecraft:smooth_basalt') + event.add(`tfc:${STONE_TYPES.basalt}_items`, 'minecraft:smooth_basalt') event.add('tfc:rock/smooth', 'minecraft:smooth_basalt') event.add('forge:smooth_stone', 'minecraft:polished_basalt') - event.add('tfc:igneous_extrusive_items', 'minecraft:polished_basalt') + event.add(`tfc:${STONE_TYPES.basalt}_items`, 'minecraft:polished_basalt') event.add('tfc:rock/smooth', 'minecraft:polished_basalt') // #endregion // #region Space blocks - // Moon Stone (Anorthosite) - event.add('forge:stone', 'ad_astra:moon_stone') - event.add('tfc:igneous_intrusive_items', 'ad_astra:moon_stone') + AA_REGULAR_STONES.forEach(stone => { + event.add('forge:stone', `ad_astra:${stone}_stone`) + event.add(`tfc:${getStoneType(stone)}_items`, `ad_astra:${stone}_stone`) - event.add('forge:cobblestone', 'ad_astra:moon_stone') - event.add('forge:cobblestone/normal', 'ad_astra:moon_stone') - event.add('tfc:igneous_intrusive_items', 'ad_astra:moon_cobblestone') + SHAPES_AA.forEach(shape => { + event.add(`tfc:${getStoneType(stone)}_items`, `ad_astra:${stone}_stone_${shape}`) + event.add(`tfg:rock_${shape}`.replace(/ss/g, 's'), `ad_astra:${stone}_stone_${shape}`) + }) - event.add('forge:smooth_stone', 'ad_astra:polished_moon_stone') - event.add('tfc:igneous_intrusive_items', 'ad_astra:polished_moon_stone') - event.add('tfc:rock/smooth', 'ad_astra:polished_moon_stone') + event.add('forge:cobblestone', `ad_astra:${stone}_cobblestone`) + event.add('forge:cobblestone/normal', `ad_astra:${stone}_cobblestone`) + event.add(`tfc:${getStoneType(stone)}_items`, `ad_astra:${stone}_cobblestone`) - event.add('forge:stone_bricks', 'ad_astra:moon_stone_bricks') - event.add('tfc:igneous_intrusive_items', 'ad_astra:moon_stone_bricks') - event.add('tfc:rock/bricks', 'ad_astra:moon_stone_bricks') + SHAPES_AA.forEach(shape => { + event.add(`tfc:${getStoneType(stone)}_items`, `ad_astra:${stone}_cobblestone_${shape}`) + event.add(`tfg:rock_${shape}`.replace(/ss/g, 's'), `ad_astra:${stone}_cobblestone_${shape}`) + }) - event.add('forge:stone_bricks', 'ad_astra:cracked_moon_stone_bricks') - event.add('tfc:igneous_intrusive_items', 'ad_astra:cracked_moon_stone_bricks') - event.add('tfc:rock/bricks', 'ad_astra:cracked_moon_stone_bricks') - event.add('tfc:rock/cracked_bricks', 'ad_astra:cracked_moon_stone_bricks') + event.add('forge:smooth_stone', `ad_astra:polished_:${stone}_stone`) + event.add(`tfc:${getStoneType(stone)}_items`, `ad_astra:polished_${stone}_stone`) + event.add('tfc:rock/smooth', `ad_astra:polished_:${stone}_stone`) - event.add('forge:stone_bricks', 'ad_astra:chiseled_moon_stone_bricks') - event.add('tfc:igneous_intrusive_items', 'ad_astra:chiseled_moon_stone_bricks') - event.add('tfc:rock/bricks', 'ad_astra:chiseled_moon_stone_bricks') - event.add('tfc:rock/chiseled_bricks', 'ad_astra:chiseled_moon_stone_bricks') + SHAPES_AA.forEach(shape => { + event.add(`tfc:${getStoneType(stone)}_items`, `ad_astra:polished_${stone}_stone_${shape}`) + event.add(`tfg:rock_${shape}`.replace(/ss/g, 's'), `ad_astra:polished_${stone}_stone_${shape}`) + }) - event.add('tfc:igneous_intrusive_items', 'ad_astra:moon_pillar') - - - // Moon Deepslate (Norite) - event.add('forge:stone', 'ad_astra:moon_deepslate') - event.add('tfc:igneous_intrusive_items', 'ad_astra:moon_deepslate') - - // Glacio Stone (Phonolite) - event.add('forge:stone', 'ad_astra:glacio_stone') - event.add('tfc:igneous_intrusive_items', 'ad_astra:glacio_stone') - - event.add('forge:cobblestone', 'ad_astra:glacio_cobblestone') - event.add('forge:cobblestone/normal', 'ad_astra:glacio_cobblestone') - event.add('tfc:igneous_intrusive_items', 'ad_astra:glacio_cobblestone') - - event.add('forge:smooth_stone', 'ad_astra:polished_glacio_stone') - event.add('tfc:igneous_intrusive_items', 'ad_astra:polished_glacio_stone') - event.add('tfc:rock/smooth', 'ad_astra:polished_glacio_stone') - - event.add('forge:stone_bricks', 'ad_astra:glacio_stone_bricks') - event.add('tfc:igneous_intrusive_items', 'ad_astra:glacio_stone_bricks') - event.add('tfc:rock/bricks', 'ad_astra:glacio_stone_bricks') - - event.add('forge:stone_bricks', 'ad_astra:cracked_glacio_stone_bricks') - event.add('tfc:igneous_intrusive_items', 'ad_astra:cracked_glacio_stone_bricks') - event.add('tfc:rock/bricks', 'ad_astra:cracked_glacio_stone_bricks') - event.add('tfc:rock/cracked_bricks', 'ad_astra:cracked_glacio_stone_bricks') - - event.add('forge:stone_bricks', 'ad_astra:chiseled_glacio_stone_bricks') - event.add('tfc:igneous_intrusive_items', 'ad_astra:chiseled_glacio_stone_bricks') - event.add('tfc:rock/bricks', 'ad_astra:chiseled_glacio_stone_bricks') - event.add('tfc:rock/chiseled_bricks', 'ad_astra:chiseled_glacio_stone_bricks') + event.add('forge:stone_bricks', `ad_astra:${stone}_stone_bricks`) + event.add(`tfc:${getStoneType(stone)}_items`, `ad_astra:${stone}_stone_bricks`) + event.add('tfc:rock/bricks', `ad_astra:${stone}_stone_bricks`) - // Mars Stone (Argillite) - event.add('forge:stone', 'ad_astra:mars_stone') - event.add('tfc:sedimentary_items', 'ad_astra:mars_stone') + SHAPES.forEach(shape => { + event.add(`tfc:${getStoneType(stone)}_items`, `ad_astra:${stone}_stone_brick_${shape}`) + event.add(`tfg:brick_${shape}`.replace(/ss/g, 's'), `ad_astra:${stone}_stone_brick_${shape}`) + }) + + event.add('forge:stone_bricks', `ad_astra:cracked_${stone}_stone_bricks`) + event.add(`tfc:${getStoneType(stone)}_items`, `ad_astra:cracked_${stone}_stone_bricks`) + event.add('tfc:rock/bricks', `ad_astra:cracked_${stone}_stone_bricks`) + event.add('tfc:rock/cracked_bricks', `ad_astra:cracked_${stone}_stone_bricks`) + + event.add('forge:stone_bricks', `ad_astra:chiseled_${stone}_stone_bricks`) + event.add(`tfc:${getStoneType(stone)}_items`, `ad_astra:chiseled_${stone}_stone_bricks`) + event.add('tfc:rock/bricks', `ad_astra:chiseled_${stone}_stone_bricks`) + event.add('tfc:rock/chiseled_bricks', `ad_astra:chiseled_${stone}_stone_bricks`) + + SHAPES_AA.forEach(shape => { + event.add(`tfc:${getStoneType(stone)}_items`, `ad_astra:chiseled_${stone}_stone_brick_${shape}`) + event.add(`tfg:brick_${shape}`.replace(/ss/g, 's'), `ad_astra:chiseled_${stone}_stone_brick_${shape}`) + }) + + event.add(`tfc:${getStoneType(stone)}_items`, `ad_astra:${stone}_pillar`) + }) + + // Moon Deepslate (Norite) [Igneous Intrusive] + event.add('forge:stone', 'ad_astra:moon_deepslate') + event.add(`tfc:${STONE_TYPES.moon_deepslate}_items`, 'ad_astra:moon_deepslate') - event.add('forge:cobblestone', 'ad_astra:mars_cobblestone') - event.add('forge:cobblestone/normal', 'ad_astra:mars_cobblestone') - event.add('tfc:sedimentary_items', 'ad_astra:mars_cobblestone') - - event.add('forge:smooth_stone', 'ad_astra:polished_mars_stone') - event.add('tfc:sedimentary_items', 'ad_astra:polished_mars_stone') - event.add('tfc:rock/smooth', 'ad_astra:polished_mars_stone') - - event.add('forge:stone_bricks', 'ad_astra:mars_stone_bricks') - event.add('tfc:sedimentary_items', 'ad_astra:mars_stone_bricks') - event.add('tfc:rock/bricks', 'ad_astra:mars_stone_bricks') - - event.add('forge:stone_bricks', 'ad_astra:cracked_mars_stone_bricks') - event.add('tfc:sedimentary_items', 'ad_astra:cracked_mars_stone_bricks') - event.add('tfc:rock/bricks', 'ad_astra:cracked_mars_stone_bricks') - event.add('tfc:rock/cracked_bricks', 'ad_astra:cracked_mars_stone_bricks') - - event.add('forge:stone_bricks', 'ad_astra:chiseled_mars_stone_bricks') - event.add('tfc:sedimentary_items', 'ad_astra:chiseled_mars_stone_bricks') - event.add('tfc:rock/bricks', 'ad_astra:chiseled_mars_stone_bricks') - event.add('tfc:rock/chiseled_bricks', 'ad_astra:chiseled_mars_stone_bricks') - - // Venus Stone (Trachyte) - event.add('forge:stone', 'ad_astra:venus_stone') - event.add('tfc:igneous_extrusive_items', 'ad_astra:venus_stone') - - event.add('forge:cobblestone', 'ad_astra:venus_cobblestone') - event.add('forge:cobblestone/normal', 'ad_astra:venus_cobblestone') - event.add('tfc:igneous_extrusive_items', 'ad_astra:venus_cobblestone') - - event.add('forge:smooth_stone', 'ad_astra:polished_venus_stone') - event.add('tfc:igneous_extrusive_items', 'ad_astra:polished_venus_stone') - event.add('tfc:rock/smooth', 'ad_astra:polished_venus_stone') - - event.add('forge:stone_bricks', 'ad_astra:venus_stone_bricks') - event.add('tfc:igneous_extrusive_items', 'ad_astra:venus_stone_bricks') - event.add('tfc:rock/bricks', 'ad_astra:venus_stone_bricks') - - event.add('forge:stone_bricks', 'ad_astra:cracked_venus_stone_bricks') - event.add('tfc:igneous_extrusive_items', 'ad_astra:cracked_venus_stone_bricks') - event.add('tfc:rock/bricks', 'ad_astra:cracked_venus_stone_bricks') - event.add('tfc:rock/cracked_bricks', 'ad_astra:cracked_venus_stone_bricks') - - event.add('forge:stone_bricks', 'ad_astra:chiseled_venus_stone_bricks') - event.add('tfc:igneous_extrusive_items', 'ad_astra:chiseled_venus_stone_bricks') - event.add('tfc:rock/bricks', 'ad_astra:chiseled_venus_stone_bricks') - event.add('tfc:rock/chiseled_bricks', 'ad_astra:chiseled_venus_stone_bricks') - - // Red Granite + // Red Granite [Igneous Intrusive] event.add('forge:stone', 'gtceu:red_granite') - event.add('tfc:igneous_intrusive_items', 'gtceu:red_granite') + event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:red_granite') event.add('forge:cobblestone', 'gtceu:red_granite_cobblestone') event.add('forge:cobblestone/normal', 'gtceu:red_granite_cobblestone') - event.add('tfc:igneous_intrusive_items', 'gtceu:red_granite_cobblestone') + event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:red_granite_cobblestone') event.add('forge:cobblestone', 'gtceu:mossy_red_granite_cobblestone') event.add('forge:cobblestone/normal', 'gtceu:mossy_red_granite_cobblestone') - event.add('tfc:igneous_intrusive_items', 'gtceu:mossy_red_granite_cobblestone') + event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:mossy_red_granite_cobblestone') event.add('forge:smooth_stone', 'gtceu:polished_red_granite') - event.add('tfc:igneous_intrusive_items', 'gtceu:polished_red_granite') + event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:polished_red_granite') event.add('tfc:rock/smooth', 'gtceu:polished_red_granite') event.add('forge:stone_bricks', 'gtceu:red_granite_bricks') - event.add('tfc:igneous_intrusive_items', 'gtceu:red_granite_bricks') + event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:red_granite_bricks') event.add('tfc:rock/bricks', 'gtceu:red_granite_bricks') event.add('tfg:red_granite_cutter_set', 'gtceu:red_granite_bricks') event.add('forge:stone_bricks', 'gtceu:mossy_red_granite_bricks') - event.add('tfc:igneous_intrusive_items', 'gtceu:mossy_red_granite_bricks') + event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:mossy_red_granite_bricks') event.add('tfc:rock/bricks', 'gtceu:mossy_red_granite_bricks') event.add('tfc:rock/mossy_bricks', 'gtceu:mossy_red_granite_bricks') event.add('forge:stone_bricks', 'gtceu:cracked_red_granite_bricks') - event.add('tfc:igneous_intrusive_items', 'gtceu:cracked_red_granite_bricks') + event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:cracked_red_granite_bricks') event.add('tfc:rock/bricks', 'gtceu:cracked_red_granite_bricks') event.add('tfc:rock/cracked_bricks', 'gtceu:cracked_red_granite_bricks') event.add('forge:stone_bricks', 'gtceu:red_granite_tile') - event.add('tfc:igneous_intrusive_items', 'gtceu:red_granite_tile') + event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:red_granite_tile') event.add('tfc:rock/bricks', 'gtceu:red_granite_tile') event.add('tfc:rock/chiseled_bricks', 'gtceu:red_granite_tile') event.add('tfg:red_granite_cutter_set', 'gtceu:red_granite_tile') event.add('forge:stone_bricks', 'gtceu:square_red_granite_bricks') - event.add('tfc:igneous_intrusive_items', 'gtceu:square_red_granite_bricks') + event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:square_red_granite_bricks') event.add('tfc:rock/bricks', 'gtceu:square_red_granite_bricks') event.add('tfc:rock/chiseled_bricks', 'gtceu:square_red_granite_bricks') event.add('tfg:red_granite_cutter_set', 'gtceu:square_red_granite_bricks') event.add('forge:stone_bricks', 'gtceu:red_granite_windmill_a') - event.add('tfc:igneous_intrusive_items', 'gtceu:red_granite_windmill_a') + event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:red_granite_windmill_a') event.add('tfc:rock/bricks', 'gtceu:red_granite_windmill_a') event.add('tfc:rock/chiseled_bricks', 'gtceu:red_granite_windmill_a') event.add('tfg:red_granite_cutter_set', 'gtceu:red_granite_windmill_a') event.add('forge:stone_bricks', 'gtceu:red_granite_windmill_b') - event.add('tfc:igneous_intrusive_items', 'gtceu:red_granite_windmill_b') + event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:red_granite_windmill_b') event.add('tfc:rock/bricks', 'gtceu:red_granite_windmill_b') event.add('tfc:rock/chiseled_bricks', 'gtceu:red_granite_windmill_b') event.add('tfg:red_granite_cutter_set', 'gtceu:red_granite_windmill_b') event.add('forge:stone_bricks', 'gtceu:small_red_granite_bricks') - event.add('tfc:igneous_intrusive_items', 'gtceu:small_red_granite_bricks') + event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:small_red_granite_bricks') event.add('tfc:rock/bricks', 'gtceu:small_red_granite_bricks') event.add('tfc:rock/chiseled_bricks', 'gtceu:small_red_granite_bricks') event.add('tfg:red_granite_cutter_set', 'gtceu:small_red_granite_bricks') event.add('forge:stone_bricks', 'gtceu:red_granite_small_tile') - event.add('tfc:igneous_intrusive_items', 'gtceu:red_granite_small_tile') + event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:red_granite_small_tile') event.add('tfc:rock/bricks', 'gtceu:red_granite_small_tile') event.add('tfc:rock/chiseled_bricks', 'gtceu:red_granite_small_tile') event.add('tfg:red_granite_cutter_set', 'gtceu:red_granite_small_tile') event.add('forge:stone_bricks', 'gtceu:chiseled_red_granite') - event.add('tfc:igneous_intrusive_items', 'gtceu:chiseled_red_granite') + event.add(`tfc:${STONE_TYPES.red_granite}_items`, 'gtceu:chiseled_red_granite') event.add('tfc:rock/bricks', 'gtceu:chiseled_red_granite') event.add('tfc:rock/chiseled_bricks', 'gtceu:chiseled_red_granite') event.add('tfg:red_granite_cutter_set', 'gtceu:chiseled_red_granite') - // Mercury Stone (Komatiite) - event.add('forge:stone', 'ad_astra:mercury_stone') - event.add('tfc:igneous_intrusive_items', 'ad_astra:mercury_stone') - - event.add('forge:cobblestone', 'ad_astra:mercury_cobblestone') - event.add('forge:cobblestone/normal', 'ad_astra:mercury_cobblestone') - event.add('tfc:igneous_intrusive_items', 'ad_astra:mercury_cobblestone') - - event.add('forge:smooth_stone', 'ad_astra:polished_mercury_stone') - event.add('tfc:igneous_intrusive_items', 'ad_astra:polished_mercury_stone') - event.add('tfc:rock/smooth', 'ad_astra:polished_mercury_stone') - - event.add('forge:stone_bricks', 'ad_astra:mercury_stone_bricks') - event.add('tfc:igneous_intrusive_items', 'ad_astra:mercury_stone_bricks') - event.add('tfc:rock/bricks', 'ad_astra:mercury_stone_bricks') - - event.add('forge:stone_bricks', 'ad_astra:cracked_mercury_stone_bricks') - event.add('tfc:igneous_intrusive_items', 'ad_astra:cracked_mercury_stone_bricks') - event.add('tfc:rock/bricks', 'ad_astra:cracked_mercury_stone_bricks') - event.add('tfc:rock/cracked_bricks', 'ad_astra:cracked_mercury_stone_bricks') - - event.add('forge:stone_bricks', 'ad_astra:chiseled_mercury_stone_bricks') - event.add('tfc:igneous_intrusive_items', 'ad_astra:chiseled_mercury_stone_bricks') - event.add('tfc:rock/bricks', 'ad_astra:chiseled_mercury_stone_bricks') - event.add('tfc:rock/chiseled_bricks', 'ad_astra:chiseled_mercury_stone_bricks') - - // Permafrost (???) + // Permafrost (???) [NA] + event.remove('tfc:metamorphic_rock', 'tfg:loose/permafrost') event.add('forge:stone', 'ad_astra:permafrost') - event.add('tfc:sedimentary_items', 'ad_astra:permafrost') event.add('forge:smooth_stone', 'ad_astra:polished_permafrost') - event.add('tfc:sedimentary_items', 'ad_astra:polished_permafrost') event.add('tfc:rock/smooth', 'ad_astra:polished_permafrost') event.add('forge:stone_bricks', 'ad_astra:permafrost_bricks') - event.add('tfc:sedimentary_items', 'ad_astra:permafrost_bricks') event.add('tfc:rock/bricks', 'ad_astra:permafrost_bricks') event.add('forge:stone_bricks', 'ad_astra:cracked_permafrost_bricks') - event.add('tfc:sedimentary_items', 'ad_astra:cracked_permafrost_bricks') event.add('tfc:rock/bricks', 'ad_astra:cracked_permafrost_bricks') event.add('tfc:rock/cracked_bricks', 'ad_astra:cracked_permafrost_bricks') event.add('forge:stone_bricks', 'ad_astra:chiseled_permafrost_bricks') - event.add('tfc:igneous_intrusive_items', 'ad_astra:chiseled_permafrost_bricks') event.add('tfc:rock/bricks', 'ad_astra:chiseled_permafrost_bricks') event.add('tfc:rock/chiseled_bricks', 'ad_astra:chiseled_permafrost_bricks') @@ -734,7 +728,7 @@ const registerTFGItemTags = (event) => { event.add('tfg:mineral_rich_wool', 'tfg:sniffer_wool') //#endregion - //#region Пыли стоунтайпов в один тэг + //#region Stone Dusts Tag event.add('tfg:stone_dusts', 'tfg:gabbro_dust') event.add('tfg:stone_dusts', 'tfg:shale_dust') event.add('tfg:stone_dusts', 'tfg:claystone_dust') diff --git a/kubejs/startup_scripts/minecraft/constants.js b/kubejs/startup_scripts/minecraft/constants.js index 2c092c312..788eff86d 100644 --- a/kubejs/startup_scripts/minecraft/constants.js +++ b/kubejs/startup_scripts/minecraft/constants.js @@ -16,31 +16,9 @@ global.MINECRAFT_DISABLED_ITEMS = [ 'minecraft:infested_chiseled_stone_bricks', 'minecraft:infested_deepslate', - // Каменные блоки - 'minecraft:stone_stairs', - 'minecraft:stone_slab', - 'minecraft:stone_pressure_plate', - 'minecraft:stone_button', - 'minecraft:smooth_stone', - 'minecraft:smooth_stone_slab', - 'minecraft:cobblestone', - 'minecraft:cobblestone_stairs', - 'minecraft:cobblestone_slab', - 'minecraft:cobblestone_wall', - 'minecraft:stone_bricks', - 'minecraft:stone_brick_stairs', - 'minecraft:stone_brick_slab', - 'minecraft:stone_brick_wall', - 'minecraft:cracked_stone_bricks', - 'minecraft:chiseled_stone_bricks', - 'minecraft:mossy_stone_bricks', - 'minecraft:mossy_stone_brick_stairs', - 'minecraft:mossy_stone_brick_slab', - 'minecraft:mossy_stone_brick_wall', - 'minecraft:mossy_cobblestone', - 'minecraft:mossy_cobblestone_stairs', - 'minecraft:mossy_cobblestone_slab', - 'minecraft:mossy_cobblestone_wall', + // Stone + 'minecraft:stone_pressure_plate', + 'minecraft:stone_button', // Гранитовые блоки 'minecraft:granite', diff --git a/kubejs/startup_scripts/tfg/blocks.js b/kubejs/startup_scripts/tfg/blocks.js index 3b0cb3d21..278e1f022 100644 --- a/kubejs/startup_scripts/tfg/blocks.js +++ b/kubejs/startup_scripts/tfg/blocks.js @@ -244,4 +244,40 @@ const registerTFGBlocks = (event) => { .textureAll('tfg:item/deprecated') // #endregion + + // #region Reconstructed Stone + event.create(`tfg:rock/stone_wall`, 'wall') + .soundType('stone') + .textureAll('minecraft:block/stone') + .tagBoth('tfg:rock_wall') + .mapColor('stone') + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + let SHAPES = ['stairs', 'wall'] + SHAPES.forEach(shape => { + event.create(`tfg:rock/smooth_stone_${shape}`, shape) + .soundType('stone') + .textureAll('minecraft:block/smooth_stone') + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .mapColor('stone') + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + SHAPES = ['stairs', 'slab', 'wall'] + SHAPES.forEach(shape => { + event.create(`tfg:rock/cracked_bricks_stone_${shape}`, shape) + .soundType('stone') + .textureAll('minecraft:block/smooth_stone') + .tagBoth(`tfg:brick_${shape}s`.replace(/ss/g, 's')) + .mapColor('stone') + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // #endregion Reconstructed Stone } diff --git a/kubejs/startup_scripts/tfg/blocks.nether.js b/kubejs/startup_scripts/tfg/blocks.nether.js index 7e2026d03..27258c178 100644 --- a/kubejs/startup_scripts/tfg/blocks.nether.js +++ b/kubejs/startup_scripts/tfg/blocks.nether.js @@ -1,10 +1,58 @@ "use strict"; function registerTFGNetherBlocks(event) { + const SHAPES = ['stairs', 'slab', 'wall'] - // Hardened stones + const STONE_CHARACS = { + deepslate: { sound: 'deepslate', type: "metamorphic", mapColor: 'terracotta_grey' }, + blackstone: { sound: 'deepslate', type: "igneous_intrusive", mapColor: 'color_black' }, + dripstone: { sound: 'dripstone_block', type: "sedimentary", mapColor: 'terracotta' }, + crackrack: { sound: 'netherrack', type: "igneous_intrusive", mapColor: 'crimson_stem' }, + nether: { sound: 'nether_bricks', type: "igneous_intrusive", mapColor: 'nether' } + } + + // #region Raw Stones + SHAPES.forEach(shape => { + event.create(`tfg:rock/deepslate_${shape}`, shape) + .soundType(STONE_CHARACS.deepslate.sound) + .textureAll('minecraft:block/deepslate') + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.deepslate.type}_items`) + .mapColor(STONE_CHARACS.deepslate.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/dripstone_${shape}`, shape) + .soundType(STONE_CHARACS.dripstone.sound) + .textureAll('minecraft:block/dripstone_block') + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.dripstone.type}_items`) + .mapColor(STONE_CHARACS.dripstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/crackrack_${shape}`, shape) + .soundType(STONE_CHARACS.crackrack.sound) + .textureAll('beneath:block/crackrack') + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.crackrack.type}_items`) + .mapColor(STONE_CHARACS.crackrack.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // #endregion Raw Stones + + // #region Hardened Stones event.create('tfg:rock/hardened_deepslate') - .soundType('deepslate') + .soundType(STONE_CHARACS.deepslate.sound) .property(BlockProperties.AXIS) .requiresTool(true) .item(item => { @@ -13,14 +61,14 @@ function registerTFGNetherBlocks(event) { .tagBlock('tfc:can_carve') .tagBoth('forge:stone') .tagBoth('tfc:rock/hardened') - .tagBoth('tfc:metamorphic_items') + .tagBoth(`tfc:${STONE_CHARACS.deepslate.type}_items`) + .mapColor(STONE_CHARACS.deepslate.mapColor) .tagBlock('minecraft:mineable/pickaxe') - .mapColor('terracotta_grey') .fullBlock(true) .opaque(true) event.create('tfg:rock/hardened_blackstone') - .stoneSoundType() + .soundType(STONE_CHARACS.blackstone.sound) .requiresTool(true) .item(item => { item.modelJson({ parent: 'minecraft:item/blackstone' }) @@ -28,14 +76,14 @@ function registerTFGNetherBlocks(event) { .tagBlock('tfc:can_carve') .tagBoth('forge:stone') .tagBoth('tfc:rock/hardened') - .tagBoth('tfc:igneous_intrusive_items') - .mapColor('color_black') + .tagBoth(`tfc:${STONE_CHARACS.blackstone.type}_items`) + .mapColor(STONE_CHARACS.blackstone.mapColor) .tagBlock('minecraft:mineable/pickaxe') .fullBlock(true) .opaque(true) event.create('tfg:rock/hardened_dripstone') - .soundType('dripstone_block') + .soundType(STONE_CHARACS.dripstone.sound) .stoneSoundType() .requiresTool(true) .item(item => { @@ -44,116 +92,248 @@ function registerTFGNetherBlocks(event) { .tagBlock('tfc:can_carve') .tagBoth('forge:stone') .tagBoth('tfc:rock/hardened') - .tagBoth('tfc:sedimentary_items') + .tagBoth(`tfc:${STONE_CHARACS.dripstone.type}_items`) + .mapColor(STONE_CHARACS.dripstone.mapColor) .tagBlock('minecraft:mineable/pickaxe') - .mapColor('terracotta') .fullBlock(true) .opaque(true) - // Spikes - event.create('tfg:spike/dripstone_spike', 'tfc:rock_spike') - .textureAll('minecraft:block/dripstone_block') - .soundType('dripstone_block') - .tagBoth('tfc:sedimentary_items') - .hardness(0.8) - .resistance(0.8) - .requiresTool(true) - .tagBlock('minecraft:mineable/pickaxe') - + // #endregion Hardened stones + + // #region Spikes event.create('tfg:spike/deepslate_spike', 'tfc:rock_spike') .textureAll('minecraft:block/deepslate') - .soundType('deepslate') - .tagBoth('tfc:metamorphic_items') + .soundType(STONE_CHARACS.deepslate.sound) + .tagBoth(`tfc:${STONE_CHARACS.deepslate.type}_items`) + .tagBlock('minecraft:mineable/pickaxe') .hardness(0.8) .resistance(0.8) .requiresTool(true) - .tagBlock('minecraft:mineable/pickaxe') event.create('tfg:spike/blackstone_spike', 'tfc:rock_spike') .textureAll('minecraft:block/blackstone') - .stoneSoundType() - .tagBoth('tfc:igneous_intrusive_items') + .soundType(STONE_CHARACS.blackstone.sound) + .tagBoth(`tfc:${STONE_CHARACS.blackstone.type}_items`) + .tagBlock('minecraft:mineable/pickaxe') + .hardness(0.8) + .resistance(0.8) + .requiresTool(true) + + event.create('tfg:spike/dripstone_spike', 'tfc:rock_spike') + .textureAll('minecraft:block/dripstone_block') + .soundType(STONE_CHARACS.dripstone.sound) + .tagBoth(`tfc:${STONE_CHARACS.dripstone.type}_items`) + .tagBlock('minecraft:mineable/pickaxe') .hardness(0.8) .resistance(0.8) .requiresTool(true) - .tagBlock('minecraft:mineable/pickaxe') - // Loose rocks + // #endregion Spikes + + // #region Loose Stones event.create('tfg:loose/deepslate', 'tfc:loose_rock') + .soundType(STONE_CHARACS.deepslate.sound) .itemTexture('tfg:item/loose/deepslate') - .rockTypeModel('metamorphic') - .soundType('deepslate') + .rockTypeModel(STONE_CHARACS.deepslate.type) .translationKey("block.tfg.loose.deepslate") .tagBlock('tfc:loose_rocks') .tagItem('tfc:any_knapping') .tagItem('tfc:rock_knapping') - .tagItem('tfc:metamorphic_rock') + .tagItem(`tfc:${STONE_CHARACS.deepslate.type}_rock`) + .tagBoth(`tfc:${STONE_CHARACS.deepslate.type}_items`) .tagItem("rnr:loose_rock_items") event.create('tfg:loose/dripstone', 'tfc:loose_rock') + .soundType(STONE_CHARACS.dripstone.sound) .itemTexture('tfg:item/loose/dripstone') - .rockTypeModel('sedimentary') - .soundType('dripstone_block') + .rockTypeModel(STONE_CHARACS.dripstone.type) .translationKey("block.tfg.loose.dripstone") .tagBlock('tfc:loose_rocks') .tagItem('tfc:any_knapping') .tagItem('tfc:rock_knapping') - .tagItem('tfc:sedimentary_rock') + .tagItem(`tfc:${STONE_CHARACS.dripstone.type}_rock`) + .tagBoth(`tfc:${STONE_CHARACS.dripstone.type}_items`) .tagItem("rnr:loose_rock_items") event.create('tfg:loose/crackrack', 'tfc:loose_rock') + .soundType(STONE_CHARACS.crackrack.sound) .itemTexture('tfg:item/loose/crackrack') - .rockTypeModel('igneous_intrusive') - .soundType('basalt') + .rockTypeModel(STONE_CHARACS.crackrack.type) .translationKey("block.tfg.loose.crackrack") .tagBlock('tfc:loose_rocks') .tagItem('tfc:any_knapping') .tagItem('tfc:rock_knapping') - .tagItem('tfc:igneous_intrusive_rock') + .tagItem(`tfc:${STONE_CHARACS.crackrack.type}_rock`) + .tagBoth(`tfc:${STONE_CHARACS.crackrack.type}_items`) .tagItem("rnr:loose_rock_items") - // Cobblestones + // #endregion Loose rocks + + // #region Cobblestones + + // Deepslate + event.create('tfg:rock/mossy_cobble_deepslate') + .soundType(STONE_CHARACS.deepslate.sound) + .tagBoth('forge:cobblestone') + .tagBoth('forge:cobblestone/normal') + .tagBoth(`tfc:${STONE_CHARACS.deepslate.type}_items`) + .mapColor(STONE_CHARACS.deepslate.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('tfc:can_landslide') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_cobble_deepslate_${shape}`, shape) + .soundType(STONE_CHARACS.deepslate.sound) + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.deepslate.type}_items`) + .mapColor(STONE_CHARACS.deepslate.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // Blackstone event.create('tfg:rock/cobble_blackstone') - .soundType('stone') - .model('tfg:block/rock/cobble_blackstone') + .soundType(STONE_CHARACS.blackstone.sound) .tagBoth('forge:cobblestone') .tagBoth('forge:cobblestone/normal') - .tagBoth('tfc:igneous_intrusive_items') - .mapColor('color_black') + .tagBoth(`tfc:${STONE_CHARACS.blackstone.type}_items`) + .mapColor(STONE_CHARACS.blackstone.mapColor) .tagBlock('minecraft:mineable/pickaxe') .tagBlock('tfc:can_landslide') .fullBlock(true) .opaque(true) + SHAPES.forEach(shape => { + event.create(`tfg:rock/cobble_blackstone_${shape}`, shape) + .soundType(STONE_CHARACS.blackstone.sound) + .textureAll('minecraft:block/blackstone_top') + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.blackstone.type}_items`) + .mapColor(STONE_CHARACS.blackstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/mossy_cobble_blackstone') + .soundType(STONE_CHARACS.blackstone.sound) + .tagBoth('forge:cobblestone') + .tagBoth('forge:cobblestone/normal') + .tagBoth(`tfc:${STONE_CHARACS.blackstone.type}_items`) + .mapColor(STONE_CHARACS.blackstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('tfc:can_landslide') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_cobble_blackstone_${shape}`, shape) + .soundType(STONE_CHARACS.blackstone.sound) + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.blackstone.type}_items`) + .mapColor(STONE_CHARACS.blackstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // Dripstone event.create('tfg:rock/cobble_dripstone') - .soundType('dripstone_block') - .model('tfg:block/rock/cobble_dripstone') + .soundType(STONE_CHARACS.dripstone.sound) .tagBoth('forge:cobblestone') .tagBoth('forge:cobblestone/normal') - .tagBoth('tfc:sedimentary_items') - .mapColor('terracotta') + .tagBoth(`tfc:${STONE_CHARACS.dripstone.type}_items`) + .mapColor(STONE_CHARACS.dripstone.mapColor) .tagBlock('minecraft:mineable/pickaxe') .tagBlock('tfc:can_landslide') .fullBlock(true) .opaque(true) + SHAPES.forEach(shape => { + event.create(`tfg:rock/cobble_dripstone_${shape}`, shape) + .soundType(STONE_CHARACS.dripstone.sound) + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.dripstone.type}_items`) + .mapColor(STONE_CHARACS.dripstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/mossy_cobble_dripstone') + .soundType(STONE_CHARACS.dripstone.sound) + .tagBoth('forge:cobblestone') + .tagBoth('forge:cobblestone/normal') + .tagBoth(`tfc:${STONE_CHARACS.dripstone.type}_items`) + .mapColor(STONE_CHARACS.dripstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('tfc:can_landslide') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_cobble_dripstone_${shape}`, shape) + .soundType(STONE_CHARACS.dripstone.sound) + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.dripstone.type}_items`) + .mapColor(STONE_CHARACS.dripstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // Crackrack event.create('tfg:rock/cobble_crackrack') - .soundType('netherrack') - .model('tfg:block/rock/cobble_crackrack') + .soundType(STONE_CHARACS.crackrack.sound) .tagBoth('forge:cobblestone') .tagBoth('forge:cobblestone/normal') - .tagBoth('tfc:igneous_intrusive_items') - .mapColor('crimson_stem') + .tagBoth(`tfc:${STONE_CHARACS.crackrack.type}_items`) + .mapColor(STONE_CHARACS.crackrack.mapColor) .tagBlock('minecraft:mineable/pickaxe') .tagBlock('tfc:can_landslide') .fullBlock(true) .opaque(true) - // Smooth Stones + SHAPES.forEach(shape => { + event.create(`tfg:rock/cobble_crackrack_${shape}`, shape) + .soundType(STONE_CHARACS.crackrack.sound) + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.crackrack.type}_items`) + .mapColor(STONE_CHARACS.crackrack.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/mossy_cobble_crackrack') + .soundType(STONE_CHARACS.crackrack.sound) + .tagBoth('forge:cobblestone') + .tagBoth('forge:cobblestone/normal') + .tagBoth(`tfc:${STONE_CHARACS.crackrack.type}_items`) + .mapColor(STONE_CHARACS.crackrack.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('tfc:can_landslide') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_cobble_crackrack_${shape}`, shape) + .soundType(STONE_CHARACS.crackrack.sound) + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.crackrack.type}_items`) + .mapColor(STONE_CHARACS.crackrack.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // #region Smooth (Polished/Cut) Stones event.create('tfg:rock/polished_crackrack') - .soundType('basalt') - .model('tfg:block/rock/polished_crackrack') + .soundType(STONE_CHARACS.crackrack.sound) .tagBoth('forge:smooth_stone') .tagBoth('tfc:igneous_intrusive_items') .tagBoth('tfc:rock/smooth') @@ -162,14 +342,26 @@ function registerTFGNetherBlocks(event) { .fullBlock(true) .opaque(true) - // Gravels + SHAPES.forEach(shape => { + event.create(`tfg:rock/polished_crackrack_${shape}`, shape) + .soundType(STONE_CHARACS.crackrack.sound) + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.crackrack.type}_items`) + .mapColor(STONE_CHARACS.crackrack.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // #endregion Smooth (Polished/Cut) Stones + + // #region Gravels event.create('tfg:rock/gravel_deepslate') .soundType('gravel') - .model('tfg:block/rock/gravel_deepslate') .tagBoth('forge:gravel') .tagBoth('tfc:rock/gravel') - .tagBoth('tfc:metamorphic_items') - .mapColor('terracotta_grey') + .tagBoth(`tfc:${STONE_CHARACS.deepslate.type}_items`) + .mapColor(STONE_CHARACS.deepslate.mapColor) .tagBlock('minecraft:mineable/shovel') .tagBlock('tfc:can_landslide') .fullBlock(true) @@ -177,11 +369,10 @@ function registerTFGNetherBlocks(event) { event.create('tfg:rock/gravel_blackstone') .soundType('gravel') - .model('tfg:block/rock/gravel_blackstone') .tagBoth('forge:gravel') .tagBoth('tfc:rock/gravel') - .tagBoth('tfc:igneous_intrusive_items') - .mapColor('color_black') + .tagBoth(`tfc:${STONE_CHARACS.blackstone.type}_items`) + .mapColor(STONE_CHARACS.blackstone.mapColor) .tagBlock('minecraft:mineable/shovel') .tagBlock('tfc:can_landslide') .fullBlock(true) @@ -189,11 +380,10 @@ function registerTFGNetherBlocks(event) { event.create('tfg:rock/gravel_dripstone') .soundType('gravel') - .model('tfg:block/rock/gravel_dripstone') .tagBoth('forge:gravel') .tagBoth('tfc:rock/gravel') - .tagBoth('tfc:sedimentary_items') - .mapColor('terracotta') + .tagBoth(`tfc:${STONE_CHARACS.dripstone.type}_items`) + .mapColor(STONE_CHARACS.dripstone.mapColor) .tagBlock('minecraft:mineable/shovel') .tagBlock('tfc:can_landslide') .fullBlock(true) @@ -201,17 +391,189 @@ function registerTFGNetherBlocks(event) { event.create('tfg:rock/gravel_crackrack') .soundType('gravel') - .model('tfg:block/rock/gravel_crackrack') .tagBoth('forge:gravel') .tagBoth('tfc:rock/gravel') - .tagBoth('tfc:igneous_intrusive_items') - .mapColor('crimson_stem') + .tagBoth(`tfc:${STONE_CHARACS.crackrack.type}_items`) + .mapColor(STONE_CHARACS.crackrack.mapColor) .tagBlock('minecraft:mineable/shovel') .tagBlock('tfc:can_landslide') .fullBlock(true) .opaque(true) - // Plants + // #endregion Gravels + + // #region Bricks / Decorative + + // Deepslate + SHAPES.forEach(shape => { + event.create(`tfg:rock/cracked_bricks_deepslate_${shape}`, shape) + .soundType(STONE_CHARACS.deepslate.sound) + .textureAll('minecraft:block/cracked_deepslate_bricks') + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.deepslate.type}_items`) + .mapColor(STONE_CHARACS.deepslate.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/cracked_tiles_deepslate_${shape}`, shape) + .soundType(STONE_CHARACS.deepslate.sound) + .textureAll('minecraft:block/cracked_deepslate_tiles') + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.deepslate.type}_items`) + .mapColor(STONE_CHARACS.deepslate.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/mossy_bricks_deepslate') + .soundType(STONE_CHARACS.deepslate.sound) + .tagBoth('minecraft:stone_bricks') + .tagBoth('forge:stone_bricks') + .tagBoth('tfc:rock/bricks') + .tagBoth('tfc:rock/mossy_bricks') + .tagBoth(`tfc:${STONE_CHARACS.deepslate.type}_items`) + .mapColor(STONE_CHARACS.deepslate.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_bricks_deepslate_${shape}`, shape) + .soundType(STONE_CHARACS.deepslate.sound) + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.deepslate.type}_items`) + .mapColor(STONE_CHARACS.deepslate.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // Blackstone + SHAPES.forEach(shape => { + event.create(`tfg:rock/cracked_bricks_blackstone_${shape}`, shape) + .soundType(STONE_CHARACS.blackstone.sound) + .textureAll('minecraft:block/cracked_polished_blackstone_bricks') + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.blackstone.type}_items`) + .mapColor(STONE_CHARACS.blackstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/mossy_bricks_blackstone') + .soundType(STONE_CHARACS.blackstone.sound) + .tagBoth('minecraft:stone_bricks') + .tagBoth('forge:stone_bricks') + .tagBoth('tfc:rock/bricks') + .tagBoth('tfc:rock/mossy_bricks') + .tagBoth(`tfc:${STONE_CHARACS.blackstone.type}_items`) + .mapColor(STONE_CHARACS.blackstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_bricks_blackstone_${shape}`, shape) + .soundType(STONE_CHARACS.blackstone.sound) + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.blackstone.type}_items`) + .mapColor(STONE_CHARACS.blackstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // Dripstone + event.create('tfg:rock/cracked_bricks_dripstone') + .soundType(STONE_CHARACS.dripstone.sound) + .tagBoth('minecraft:stone_bricks') + .tagBoth('forge:stone_bricks') + .tagBoth('tfc:rock/bricks') + .tagBoth('tfc:rock/mossy_bricks') + .tagBoth(`tfc:${STONE_CHARACS.dripstone.type}_items`) + .mapColor(STONE_CHARACS.dripstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/cracked_bricks_dripstone_${shape}`, shape) + .soundType(STONE_CHARACS.dripstone.sound) + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.dripstone.type}_items`) + .mapColor(STONE_CHARACS.dripstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/mossy_bricks_dripstone') + .soundType(STONE_CHARACS.dripstone.sound) + .tagBoth('minecraft:stone_bricks') + .tagBoth('forge:stone_bricks') + .tagBoth('tfc:rock/bricks') + .tagBoth('tfc:rock/mossy_bricks') + .tagBoth(`tfc:${STONE_CHARACS.dripstone.type}_items`) + .mapColor(STONE_CHARACS.dripstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_bricks_dripstone_${shape}`, shape) + .soundType(STONE_CHARACS.dripstone.sound) + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.dripstone.type}_items`) + .mapColor(STONE_CHARACS.dripstone.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // Crackrack + SHAPES.forEach(shape => { + event.create(`tfg:rock/cracked_bricks_nether_${shape}`, shape) + .soundType(STONE_CHARACS.nether.sound) + .textureAll('minecraft:block/cracked_nether_bricks') + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.nether.type}_items`) + .mapColor(STONE_CHARACS.nether.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/mossy_bricks_nether') + .soundType(STONE_CHARACS.nether.sound) + .tagBoth('minecraft:stone_bricks') + .tagBoth('forge:stone_bricks') + .tagBoth('tfc:rock/bricks') + .tagBoth('tfc:rock/mossy_bricks') + .tagBoth(`tfc:${STONE_CHARACS.nether.type}_items`) + .mapColor(STONE_CHARACS.nether.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_bricks_nether_${shape}`, shape) + .soundType(STONE_CHARACS.nether.sound) + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.nether.type}_items`) + .mapColor(STONE_CHARACS.nether.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // #endregion Bricks / Decorative + + // #region Plants event.create('tfg:mushroom_roots', 'tfg:decorative_plant') .soundType('nether_wart') .tagItem('tfc:plants') diff --git a/kubejs/startup_scripts/tfg/blocks.space.js b/kubejs/startup_scripts/tfg/blocks.space.js index efc0014d9..1fd535691 100644 --- a/kubejs/startup_scripts/tfg/blocks.space.js +++ b/kubejs/startup_scripts/tfg/blocks.space.js @@ -1,9 +1,8 @@ "use strict"; function registerTFGSpaceBlocks(event) { - - // Dimension markers - + + // #region Dimension markers event.create('tfg:marker/moon') .stoneSoundType() .item(item => { @@ -40,10 +39,114 @@ function registerTFGSpaceBlocks(event) { .fullBlock(true) .opaque(true) - // Hardened stones + // #endregion Dimension markers + const SHAPES = ['stairs', 'slab', 'wall'] + + const STONE_CHARACS = { + moon: { sound: 'stone', type: "igneous_intrusive", mapColor: 'terracotta_cyan' }, + moon_deepslate: { sound: 'deepslate', type: "igneous_intrusive", mapColor: 'terracotta_blue' }, + mars: { sound: 'stone', type: "sedimentary", mapColor: 'terracotta_orange' }, + venus: { sound: 'stone', type: "igneous_extrusive", mapColor: 'terracotta_yellow' }, + mercury: { sound: 'stone', type: "igneous_intrusive", mapColor: 'terracotta_purple' }, + glacio: { sound: 'stone', type: "igneous_extrusive", mapColor: 'terracotta_light_blue' }, + permafrost: { sound: 'stone', type: null, mapColor: 'snow' }, + red_granite: { sound: 'stone', type: "igneous_intrusive", mapColor: 'terracotta_red' } + } + + const AA_REGULAR_STONES = ['moon', 'mars', 'venus', 'mercury', 'glacio'] + + // #region Raw Stones + event.create('tfg:rock/moon_stone_wall', 'wall') + .soundType(STONE_CHARACS.moon.sound) + .textureAll('ad_astra:block/moon_stone') + .tagBoth('tfg:rock_walls') + .tagBoth(`tfc:${STONE_CHARACS.moon.type}_items`) + .mapColor(STONE_CHARACS.moon.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/moon_deepslate_${shape}`, shape) + .soundType(STONE_CHARACS.moon_deepslate.sound) + .textureAll('ad_astra:block/moon_deepslate') + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.moon_deepslate.type}_items`) + .mapColor(STONE_CHARACS.moon_deepslate.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/mars_stone_wall', 'wall') + .soundType(STONE_CHARACS.mars.sound) + .textureAll('ad_astra:block/mars_stone') + .tagBoth('tfg:rock_walls') + .tagBoth(`tfc:${STONE_CHARACS.mars.type}_items`) + .mapColor(STONE_CHARACS.mars.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + event.create('tfg:rock/venus_stone_wall', 'wall') + .soundType(STONE_CHARACS.venus.sound) + .textureAll('ad_astra:block/venus_stone') + .tagBoth('tfg:rock_walls') + .tagBoth(`tfc:${STONE_CHARACS.venus.type}_items`) + .mapColor(STONE_CHARACS.venus.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + event.create('tfg:rock/mercury_stone_wall', 'wall') + .soundType(STONE_CHARACS.mercury.sound) + .textureAll('ad_astra:block/mercury_stone') + .tagBoth('tfg:rock_walls') + .tagBoth(`tfc:${STONE_CHARACS.mercury.type}_items`) + .mapColor(STONE_CHARACS.mercury.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + event.create('tfg:rock/glacio_stone_wall', 'wall') + .soundType(STONE_CHARACS.glacio.sound) + .textureAll('ad_astra:block/glacio_stone') + .tagBoth('tfg:rock_walls') + .tagBoth(`tfc:${STONE_CHARACS.glacio.type}_items`) + .mapColor(STONE_CHARACS.glacio.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/permafrost_${shape}`, shape) + .soundType(STONE_CHARACS.permafrost.sound) + .textureAll('ad_astra:block/permafrost') + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .mapColor(STONE_CHARACS.permafrost.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/red_granite_${shape}`, shape) + .soundType(STONE_CHARACS.red_granite.sound) + .textureAll('gtceu:block/stones/red_granite/stone') + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.red_granite.type}_items`) + .mapColor(STONE_CHARACS.red_granite.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // #endregion Raw Stones + + // #region Hardened Stones event.create('tfg:rock/hardened_moon_stone') - .stoneSoundType() + .soundType(STONE_CHARACS.moon.sound) .requiresTool(true) .item(item => { item.modelJson({ parent: 'ad_astra:item/moon_stone' }) @@ -51,14 +154,14 @@ function registerTFGSpaceBlocks(event) { .tagBlock('tfc:can_carve') .tagBoth('forge:stone') .tagBoth('tfc:rock/hardened') - .tagBoth('tfc:igneous_intrusive_items') + .tagBoth(`tfc:${STONE_CHARACS.moon.type}_items`) + .mapColor(STONE_CHARACS.moon.mapColor) .tagBlock('minecraft:mineable/pickaxe') - .mapColor('terracotta_cyan') .fullBlock(true) .opaque(true) event.create('tfg:rock/hardened_moon_deepslate') - .soundType('deepslate') + .soundType(STONE_CHARACS.moon_deepslate.sound) .requiresTool(true) .item(item => { item.modelJson({ parent: 'ad_astra:item/moon_deepslate' }) @@ -66,14 +169,14 @@ function registerTFGSpaceBlocks(event) { .tagBlock('tfc:can_carve') .tagBoth('forge:stone') .tagBoth('tfc:rock/hardened') - .tagBoth('tfc:igneous_intrusive_items') + .tagBoth(`tfc:${STONE_CHARACS.moon_deepslate.type}_items`) + .mapColor(STONE_CHARACS.moon_deepslate.mapColor) .tagBlock('minecraft:mineable/pickaxe') - .mapColor('terracotta_blue') .fullBlock(true) .opaque(true) event.create('tfg:rock/hardened_mars_stone') - .stoneSoundType() + .soundType(STONE_CHARACS.mars.sound) .requiresTool(true) .item(item => { item.modelJson({ parent: 'ad_astra:item/mars_stone' }) @@ -81,13 +184,14 @@ function registerTFGSpaceBlocks(event) { .tagBlock('tfc:can_carve') .tagBoth('forge:stone') .tagBoth('tfc:rock/hardened') + .tagBoth(`tfc:${STONE_CHARACS.mars.type}_items`) + .mapColor(STONE_CHARACS.mars.mapColor) .tagBlock('minecraft:mineable/pickaxe') - .mapColor('terracotta_orange') .fullBlock(true) .opaque(true) event.create('tfg:rock/hardened_venus_stone') - .stoneSoundType() + .soundType(STONE_CHARACS.venus.sound) .requiresTool(true) .item(item => { item.modelJson({ parent: 'ad_astra:item/venus_stone' }) @@ -95,13 +199,14 @@ function registerTFGSpaceBlocks(event) { .tagBlock('tfc:can_carve') .tagBoth('forge:stone') .tagBoth('tfc:rock/hardened') + .tagBoth(`tfc:${STONE_CHARACS.venus.type}_items`) + .mapColor(STONE_CHARACS.venus.mapColor) .tagBlock('minecraft:mineable/pickaxe') - .mapColor('terracotta_yellow') .fullBlock(true) .opaque(true) event.create('tfg:rock/hardened_mercury_stone') - .stoneSoundType() + .soundType(STONE_CHARACS.mercury.sound) .requiresTool(true) .item(item => { item.modelJson({ parent: 'ad_astra:item/mercury_stone' }) @@ -109,13 +214,14 @@ function registerTFGSpaceBlocks(event) { .tagBlock('tfc:can_carve') .tagBoth('forge:stone') .tagBoth('tfc:rock/hardened') + .tagBoth(`tfc:${STONE_CHARACS.mercury.type}_items`) + .mapColor(STONE_CHARACS.mercury.mapColor) .tagBlock('minecraft:mineable/pickaxe') - .mapColor('terracotta_purple') .fullBlock(true) .opaque(true) event.create('tfg:rock/hardened_glacio_stone') - .stoneSoundType() + .soundType(STONE_CHARACS.glacio.sound) .requiresTool(true) .item(item => { item.modelJson({ parent: 'ad_astra:item/glacio_stone' }) @@ -123,13 +229,14 @@ function registerTFGSpaceBlocks(event) { .tagBlock('tfc:can_carve') .tagBoth('forge:stone') .tagBoth('tfc:rock/hardened') + .tagBoth(`tfc:${STONE_CHARACS.glacio.type}_items`) + .mapColor(STONE_CHARACS.glacio.mapColor) .tagBlock('minecraft:mineable/pickaxe') - .mapColor('terracotta_light_blue') .fullBlock(true) .opaque(true) event.create('tfg:rock/hardened_red_granite') - .stoneSoundType() + .soundType(STONE_CHARACS.red_granite.sound) .requiresTool(true) .item(item => { item.modelJson({ parent: 'gtceu:item/red_granite' }) @@ -137,186 +244,455 @@ function registerTFGSpaceBlocks(event) { .tagBlock('tfc:can_carve') .tagBoth('forge:stone') .tagBoth('tfc:rock/hardened') + .tagBoth(`tfc:${STONE_CHARACS.red_granite.type}_items`) + .mapColor(STONE_CHARACS.red_granite.mapColor) .tagBlock('minecraft:mineable/pickaxe') - .mapColor('terracotta_red') .fullBlock(true) .opaque(true) - // Loose stones - + // #endregion Hardened Stones + + // #region Loose Stones event.create('tfg:loose/moon_stone', 'tfc:loose_rock') - .stoneSoundType() + .soundType(STONE_CHARACS.moon.sound) .itemTexture('tfg:item/loose/moon_stone') + .rockTypeModel(STONE_CHARACS.moon.type) .tagBlock('tfc:loose_rocks') .tagItem('tfc:any_knapping') .tagItem('tfc:rock_knapping') - .tagItem('tfc:igneous_intrusive_rock') + .tagItem(`tfc:${STONE_CHARACS.moon.type}_rock`) + .tagBoth(`tfc:${STONE_CHARACS.moon.type}_items`) .tagItem("rnr:loose_rock_items") event.create('tfg:loose/moon_deepslate', 'tfc:loose_rock') - .soundType('deepslate') + .soundType(STONE_CHARACS.moon_deepslate.sound) .itemTexture('tfg:item/loose/moon_deepslate') + .rockTypeModel(STONE_CHARACS.moon_deepslate.type) .tagBlock('tfc:loose_rocks') .tagItem('tfc:any_knapping') .tagItem('tfc:rock_knapping') - .tagItem('tfc:igneous_intrusive_rock') + .tagItem(`tfc:${STONE_CHARACS.moon_deepslate.type}_rock`) + .tagBoth(`tfc:${STONE_CHARACS.moon_deepslate.type}_items`) .tagItem("rnr:loose_rock_items") event.create('tfg:loose/mars_stone', 'tfc:loose_rock') - .stoneSoundType() + .soundType(STONE_CHARACS.mars.sound) .itemTexture('tfg:item/loose/mars_stone') + .rockTypeModel(STONE_CHARACS.mars.type) .tagBlock('tfc:loose_rocks') .tagItem('tfc:any_knapping') .tagItem('tfc:rock_knapping') - .tagItem('tfc:sedimentary_rock') + .tagItem(`tfc:${STONE_CHARACS.mars.type}_rock`) + .tagBoth(`tfc:${STONE_CHARACS.mars.type}_items`) .tagItem("rnr:loose_rock_items") event.create('tfg:loose/venus_stone', 'tfc:loose_rock') - .stoneSoundType() + .soundType(STONE_CHARACS.venus.sound) .itemTexture('tfg:item/loose/venus_stone') + .rockTypeModel(STONE_CHARACS.venus.type) .tagBlock('tfc:loose_rocks') .tagItem('tfc:any_knapping') .tagItem('tfc:rock_knapping') - .tagItem('tfc:igneous_extrusive_rock') + .tagItem(`tfc:${STONE_CHARACS.venus.type}_rock`) + .tagBoth(`tfc:${STONE_CHARACS.venus.type}_items`) .tagItem("rnr:loose_rock_items") event.create('tfg:loose/mercury_stone', 'tfc:loose_rock') - .stoneSoundType() + .soundType(STONE_CHARACS.mercury.sound) .itemTexture('tfg:item/loose/mercury_stone') + .rockTypeModel(STONE_CHARACS.mercury.type) .tagBlock('tfc:loose_rocks') .tagItem('tfc:any_knapping') .tagItem('tfc:rock_knapping') - .tagItem('tfc:igneous_intrusive_rock') + .tagItem(`tfc:${STONE_CHARACS.mercury.type}_rock`) + .tagBoth(`tfc:${STONE_CHARACS.mercury.type}_items`) .tagItem("rnr:loose_rock_items") event.create('tfg:loose/glacio_stone', 'tfc:loose_rock') - .stoneSoundType() + .soundType(STONE_CHARACS.glacio.sound) .itemTexture('tfg:item/loose/glacio_stone') + .rockTypeModel(STONE_CHARACS.glacio.type) .tagBlock('tfc:loose_rocks') .tagItem('tfc:any_knapping') .tagItem('tfc:rock_knapping') - .tagItem('tfc:igneous_extrusive_rock') + .tagItem(`tfc:${STONE_CHARACS.glacio.type}_rock`) + .tagBoth(`tfc:${STONE_CHARACS.glacio.type}_items`) .tagItem("rnr:loose_rock_items") event.create('tfg:loose/permafrost', 'tfc:loose_rock') - .stoneSoundType() + .soundType(STONE_CHARACS.permafrost.sound) .itemTexture('tfg:item/loose/permafrost') + .rockTypeModel(STONE_CHARACS.permafrost.type) .tagBlock('tfc:loose_rocks') .tagItem('tfc:any_knapping') .tagItem('tfc:rock_knapping') - .tagItem('tfc:metamorphic_rock') .tagItem("rnr:loose_rock_items") event.create('tfg:loose/red_granite', 'tfc:loose_rock') - .stoneSoundType() + .soundType(STONE_CHARACS.red_granite.sound) .itemTexture('tfg:item/loose/red_granite') + .rockTypeModel(STONE_CHARACS.red_granite.type) .tagBlock('tfc:loose_rocks') .tagItem('tfc:any_knapping') .tagItem('tfc:rock_knapping') - .tagItem('tfc:igneous_intrusive_rock') + .tagItem(`tfc:${STONE_CHARACS.red_granite.type}_rock`) + .tagBoth(`tfc:${STONE_CHARACS.red_granite.type}_items`) .tagItem("rnr:loose_rock_items") - // Spikes - + // #endregion Loose stones + + // #region Spikes event.create('tfg:spike/moon_stone_spike', 'tfc:rock_spike') .textureAll('ad_astra:block/moon_stone') - .stoneSoundType() + .soundType(STONE_CHARACS.moon.sound) + .tagBlock('minecraft:mineable/pickaxe') .hardness(0.8) .resistance(0.8) .requiresTool(true) - .tagBlock('minecraft:mineable/pickaxe') event.create('tfg:spike/moon_deepslate_spike', 'tfc:rock_spike') .textureAll('ad_astra:block/moon_deepslate') - .soundType('deepslate') + .soundType(STONE_CHARACS.moon_deepslate.sound) + .tagBlock('minecraft:mineable/pickaxe') .hardness(0.8) .resistance(0.8) .requiresTool(true) - .tagBlock('minecraft:mineable/pickaxe') event.create('tfg:spike/mars_stone_spike', 'tfc:rock_spike') .textureAll('ad_astra:block/mars_stone') - .stoneSoundType() + .soundType(STONE_CHARACS.mars.sound) + .tagBlock('minecraft:mineable/pickaxe') .hardness(0.8) .resistance(0.8) .requiresTool(true) - .tagBlock('minecraft:mineable/pickaxe') event.create('tfg:spike/venus_stone_spike', 'tfc:rock_spike') .textureAll('ad_astra:block/venus_stone') - .stoneSoundType() + .soundType(STONE_CHARACS.venus.sound) + .tagBlock('minecraft:mineable/pickaxe') .hardness(0.8) .resistance(0.8) .requiresTool(true) - .tagBlock('minecraft:mineable/pickaxe') event.create('tfg:spike/mercury_stone_spike', 'tfc:rock_spike') .textureAll('ad_astra:block/mercury_stone') - .stoneSoundType() + .soundType(STONE_CHARACS.mercury.sound) + .tagBlock('minecraft:mineable/pickaxe') .hardness(0.8) .resistance(0.8) .requiresTool(true) - .tagBlock('minecraft:mineable/pickaxe') event.create('tfg:spike/glacio_stone_spike', 'tfc:rock_spike') .textureAll('ad_astra:block/glacio_stone') - .stoneSoundType() + .soundType(STONE_CHARACS.glacio.sound) + .tagBlock('minecraft:mineable/pickaxe') .hardness(0.8) .resistance(0.8) .requiresTool(true) - .tagBlock('minecraft:mineable/pickaxe') event.create('tfg:spike/permafrost_spike', 'tfc:rock_spike') .textureAll('ad_astra:block/permafrost') - .stoneSoundType() + .soundType(STONE_CHARACS.permafrost.sound) + .tagBlock('minecraft:mineable/pickaxe') .hardness(0.8) .resistance(0.8) .requiresTool(true) - .tagBlock('minecraft:mineable/pickaxe') event.create('tfg:spike/red_granite_spike', 'tfc:rock_spike') .textureAll('gtceu:block/stones/red_granite/stone') - .stoneSoundType() + .soundType(STONE_CHARACS.red_granite.sound) + .tagBlock('minecraft:mineable/pickaxe') .hardness(0.8) .resistance(0.8) .requiresTool(true) - .tagBlock('minecraft:mineable/pickaxe') - // Cobblestones + // #endregion Spikes + // #region Cobblestones + // Moon + event.create('tfg:rock/cobble_moon_wall', 'wall') + .soundType(STONE_CHARACS.moon.sound) + .textureAll('ad_astra:block/moon_cobblestone') + .tagBoth('tfg:rock_walls') + .tagBoth(`tfc:${STONE_CHARACS.moon.type}_items`) + .mapColor(STONE_CHARACS.moon.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + event.create('tfg:rock/mossy_cobble_moon') + .soundType(STONE_CHARACS.moon.sound) + .tagBoth('forge:cobblestone') + .tagBoth('forge:cobblestone/normal') + .tagBoth(`tfc:${STONE_CHARACS.moon.type}_items`) + .mapColor(STONE_CHARACS.moon.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('tfc:can_landslide') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_cobble_moon_${shape}`, shape) + .soundType(STONE_CHARACS.moon.sound) + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.moon.type}_items`) + .mapColor(STONE_CHARACS.moon.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // Moon Deepslate event.create('tfg:rock/cobble_moon_deepslate') - .soundType('deepslate') - .model('tfg:block/rock/cobble_moon_deepslate') + .soundType(STONE_CHARACS.moon_deepslate.sound) .tagBoth('forge:cobblestone') .tagBoth('forge:cobblestone/normal') - .tagBoth('tfc:igneous_intrusive_items') - .mapColor('terracotta_blue') + .tagBoth(`tfc:${STONE_CHARACS.moon_deepslate.type}_items`) + .mapColor(STONE_CHARACS.moon_deepslate.mapColor) .tagBlock('minecraft:mineable/pickaxe') .tagBlock('tfc:can_landslide') .fullBlock(true) .opaque(true) - event.create('tfg:rock/cobble_permafrost') - .soundType('stone') - .model('tfg:block/rock/cobble_permafrost') + SHAPES.forEach(shape => { + event.create(`tfg:rock/cobble_moon_deepslate_${shape}`, shape) + .soundType(STONE_CHARACS.moon_deepslate.sound) + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.moon_deepslate.type}_items`) + .mapColor(STONE_CHARACS.moon_deepslate.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/mossy_cobble_moon_deepslate') + .soundType(STONE_CHARACS.moon_deepslate.sound) .tagBoth('forge:cobblestone') .tagBoth('forge:cobblestone/normal') - .tagBoth('tfc:igneous_intrusive_items') - .mapColor('snow') + .tagBoth(`tfc:${STONE_CHARACS.moon_deepslate.type}_items`) + .mapColor(STONE_CHARACS.moon_deepslate.mapColor) .tagBlock('minecraft:mineable/pickaxe') .tagBlock('tfc:can_landslide') .fullBlock(true) .opaque(true) - // Gravels + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_cobble_moon_deepslate_${shape}`, shape) + .soundType(STONE_CHARACS.moon_deepslate.sound) + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.moon_deepslate.type}_items`) + .mapColor(STONE_CHARACS.moon_deepslate.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // Mars + event.create('tfg:rock/cobble_mars_wall', 'wall') + .soundType(STONE_CHARACS.mars.sound) + .textureAll('ad_astra:block/mars_cobblestone') + .tagBoth('tfg:rock_walls') + .tagBoth(`tfc:${STONE_CHARACS.mars.type}_items`) + .mapColor(STONE_CHARACS.mars.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + event.create('tfg:rock/mossy_cobble_mars') + .soundType(STONE_CHARACS.mars.sound) + .tagBoth('forge:cobblestone') + .tagBoth('forge:cobblestone/normal') + .tagBoth(`tfc:${STONE_CHARACS.mars.type}_items`) + .mapColor(STONE_CHARACS.mars.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('tfc:can_landslide') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_cobble_mars_${shape}`, shape) + .soundType(STONE_CHARACS.mars.sound) + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.mars.type}_items`) + .mapColor(STONE_CHARACS.mars.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + // Venus + event.create('tfg:rock/cobble_venus_wall', 'wall') + .soundType(STONE_CHARACS.venus.sound) + .textureAll('ad_astra:block/venus_cobblestone') + .tagBoth('tfg:rock_walls') + .tagBoth(`tfc:${STONE_CHARACS.venus.type}_items`) + .mapColor(STONE_CHARACS.venus.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + event.create('tfg:rock/mossy_cobble_venus') + .soundType(STONE_CHARACS.venus.sound) + .tagBoth('forge:cobblestone') + .tagBoth('forge:cobblestone/normal') + .tagBoth(`tfc:${STONE_CHARACS.venus.type}_items`) + .mapColor(STONE_CHARACS.venus.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('tfc:can_landslide') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_cobble_venus_${shape}`, shape) + .soundType(STONE_CHARACS.venus.sound) + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.venus.type}_items`) + .mapColor(STONE_CHARACS.venus.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // Mercury + event.create('tfg:rock/cobble_mercury_wall', 'wall') + .soundType(STONE_CHARACS.mercury.sound) + .textureAll('ad_astra:block/mercury_cobblestone') + .tagBoth('tfg:rock_walls') + .tagBoth(`tfc:${STONE_CHARACS.mercury.type}_items`) + .mapColor(STONE_CHARACS.mercury.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + event.create('tfg:rock/mossy_cobble_mercury') + .soundType(STONE_CHARACS.mercury.sound) + .tagBoth('forge:cobblestone') + .tagBoth('forge:cobblestone/normal') + .tagBoth(`tfc:${STONE_CHARACS.mercury.type}_items`) + .mapColor(STONE_CHARACS.mercury.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('tfc:can_landslide') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_cobble_mercury_${shape}`, shape) + .soundType(STONE_CHARACS.mercury.sound) + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.mercury.type}_items`) + .mapColor(STONE_CHARACS.mercury.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // Glacio + event.create('tfg:rock/cobble_glacio_wall', 'wall') + .soundType(STONE_CHARACS.glacio.sound) + .textureAll('ad_astra:block/glacio_cobblestone') + .tagBoth('tfg:rock_walls') + .tagBoth(`tfc:${STONE_CHARACS.glacio.type}_items`) + .mapColor(STONE_CHARACS.glacio.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + event.create('tfg:rock/mossy_cobble_glacio') + .soundType(STONE_CHARACS.glacio.sound) + .tagBoth('forge:cobblestone') + .tagBoth('forge:cobblestone/normal') + .tagBoth(`tfc:${STONE_CHARACS.glacio.type}_items`) + .mapColor(STONE_CHARACS.glacio.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('tfc:can_landslide') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_cobble_glacio_${shape}`, shape) + .soundType(STONE_CHARACS.glacio.sound) + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.glacio.type}_items`) + .mapColor(STONE_CHARACS.glacio.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // Permafrost + event.create('tfg:rock/cobble_permafrost') + .soundType(STONE_CHARACS.permafrost.sound) + .tagBoth('forge:cobblestone') + .mapColor(STONE_CHARACS.permafrost.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('tfc:can_landslide') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/cobble_permafrost_${shape}`, shape) + .textureAll('ad_astra:block/permafrost_top') + .soundType(STONE_CHARACS.permafrost.sound) + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .mapColor(STONE_CHARACS.permafrost.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/mossy_cobble_permafrost') + .soundType(STONE_CHARACS.permafrost.sound) + .tagBoth('forge:cobblestone') + .mapColor(STONE_CHARACS.permafrost.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('tfc:can_landslide') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_cobble_permafrost_${shape}`, shape) + .soundType(STONE_CHARACS.permafrost.sound) + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .mapColor(STONE_CHARACS.permafrost.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // Red Granite + SHAPES.forEach(shape => { + event.create(`tfg:rock/cobble_red_granite_${shape}`, shape) + .soundType(STONE_CHARACS.red_granite.sound) + .textureAll('gtceu:block/stones/red_granite/cobble') + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.red_granite.type}_items`) + .mapColor(STONE_CHARACS.red_granite.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_cobble_red_granite_${shape}`, shape) + .soundType(STONE_CHARACS.red_granite.sound) + .textureAll('gtceu:block/stones/red_granite/cobble_mossy') + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.red_granite.type}_items`) + .mapColor(STONE_CHARACS.red_granite.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // #endregion Cobblestones + + // #region Gravels event.create('tfg:rock/gravel_moon') .soundType('gravel') - .model('tfg:block/rock/gravel_moon') .tagBoth('forge:gravel') .tagBoth('tfc:rock/gravel') - .tagBoth('tfc:igneous_intrusive_items') - .mapColor('terracotta_cyan') + .tagBoth(`tfc:${STONE_CHARACS.moon.type}_items`) + .mapColor(STONE_CHARACS.moon.mapColor) .tagBlock('minecraft:mineable/shovel') .tagBlock('tfc:can_landslide') .fullBlock(true) @@ -324,23 +700,10 @@ function registerTFGSpaceBlocks(event) { event.create('tfg:rock/gravel_moon_deepslate') .soundType('gravel') - .model('tfg:block/rock/gravel_moon_deepslate') .tagBoth('forge:gravel') .tagBoth('tfc:rock/gravel') - .tagBoth('tfc:igneous_intrusive_items') - .mapColor('terracotta_blue') - .tagBlock('minecraft:mineable/shovel') - .tagBlock('tfc:can_landslide') - .fullBlock(true) - .opaque(true) - - event.create('tfg:rock/gravel_glacio') - .soundType('gravel') - .model('tfg:block/rock/gravel_glacio') - .tagBoth('forge:gravel') - .tagBoth('tfc:rock/gravel') - .tagBoth('tfc:igneous_intrusive_items') - .mapColor('terracotta_light_blue') + .tagBoth(`tfc:${STONE_CHARACS.moon_deepslate.type}_items`) + .mapColor(STONE_CHARACS.moon_deepslate.mapColor) .tagBlock('minecraft:mineable/shovel') .tagBlock('tfc:can_landslide') .fullBlock(true) @@ -348,11 +711,10 @@ function registerTFGSpaceBlocks(event) { event.create('tfg:rock/gravel_mars') .soundType('gravel') - .model('tfg:block/rock/gravel_mars') .tagBoth('forge:gravel') .tagBoth('tfc:rock/gravel') - .tagBoth('tfc:igneous_intrusive_items') - .mapColor('terracotta_orange') + .tagBoth(`tfc:${STONE_CHARACS.mars.type}_items`) + .mapColor(STONE_CHARACS.mars.mapColor) .tagBlock('minecraft:mineable/shovel') .tagBlock('tfc:can_landslide') .fullBlock(true) @@ -360,11 +722,10 @@ function registerTFGSpaceBlocks(event) { event.create('tfg:rock/gravel_venus') .soundType('gravel') - .model('tfg:block/rock/gravel_venus') .tagBoth('forge:gravel') .tagBoth('tfc:rock/gravel') - .tagBoth('tfc:igneous_intrusive_items') - .mapColor('terracotta_yellow') + .tagBoth(`tfc:${STONE_CHARACS.venus.type}_items`) + .mapColor(STONE_CHARACS.venus.mapColor) .tagBlock('minecraft:mineable/shovel') .tagBlock('tfc:can_landslide') .fullBlock(true) @@ -372,11 +733,21 @@ function registerTFGSpaceBlocks(event) { event.create('tfg:rock/gravel_mercury') .soundType('gravel') - .model('tfg:block/rock/gravel_mercury') .tagBoth('forge:gravel') .tagBoth('tfc:rock/gravel') - .tagBoth('tfc:igneous_intrusive_items') - .mapColor('terracotta_purple') + .tagBoth(`tfc:${STONE_CHARACS.mercury.type}_items`) + .mapColor(STONE_CHARACS.mercury.mapColor) + .tagBlock('minecraft:mineable/shovel') + .tagBlock('tfc:can_landslide') + .fullBlock(true) + .opaque(true) + + event.create('tfg:rock/gravel_glacio') + .soundType('gravel') + .tagBoth('forge:gravel') + .tagBoth('tfc:rock/gravel') + .tagBoth(`tfc:${STONE_CHARACS.glacio.type}_items`) + .mapColor(STONE_CHARACS.glacio.mapColor) .tagBlock('minecraft:mineable/shovel') .tagBlock('tfc:can_landslide') .fullBlock(true) @@ -384,11 +755,9 @@ function registerTFGSpaceBlocks(event) { event.create('tfg:rock/gravel_permafrost') .soundType('gravel') - .model('tfg:block/rock/gravel_permafrost') .tagBoth('forge:gravel') .tagBoth('tfc:rock/gravel') - .tagBoth('tfc:igneous_intrusive_items') - .mapColor('snow') + .mapColor(STONE_CHARACS.permafrost.mapColor) .tagBlock('minecraft:mineable/shovel') .tagBlock('tfc:can_landslide') .fullBlock(true) @@ -396,87 +765,579 @@ function registerTFGSpaceBlocks(event) { event.create('tfg:rock/gravel_red_granite') .soundType('gravel') - .model('tfg:block/rock/gravel_red_granite') .tagBoth('forge:gravel') .tagBoth('tfc:rock/gravel') - .tagBoth('tfc:igneous_intrusive_items') - .mapColor('terracotta_red') + .tagBoth(`tfc:${STONE_CHARACS.red_granite.type}_items`) + .mapColor(STONE_CHARACS.red_granite.mapColor) .tagBlock('minecraft:mineable/shovel') .tagBlock('tfc:can_landslide') .fullBlock(true) .opaque(true) - // Smooth Stones - - event.create('tfg:rock/polished_moon_deepslate') - .soundType('deepslate') - .model('tfg:block/rock/polished_moon_deepslate') - .tagBoth('forge:smooth_stone') - .tagBoth('tfc:igneous_intrusive_items') - .tagBoth('tfc:rock/smooth') - .tagBoth('tfg:brick_index') - .mapColor('terracotta_blue') + // #endregion Gravels + + // #region Smooth (Polished/Cut) Stones + event.create('tfg:rock/polished_moon_wall', 'wall') + .soundType(STONE_CHARACS.moon.sound) + .textureAll('ad_astra:block/polished_moon_stone') + .tagBoth('tfg:rock_walls') + .tagBoth(`tfc:${STONE_CHARACS.moon.type}_items`) + .mapColor(STONE_CHARACS.moon.mapColor) .tagBlock('minecraft:mineable/pickaxe') .fullBlock(true) .opaque(true) - // Decorative + event.create('tfg:rock/polished_moon_deepslate') + .soundType(STONE_CHARACS.moon_deepslate.sound) + .tagBoth('forge:smooth_stone') + .tagBoth(`tfc:${STONE_CHARACS.moon_deepslate.type}_items`) + .tagBoth('tfc:rock/smooth') + .mapColor(STONE_CHARACS.moon_deepslate.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/polished_moon_deepslate_${shape}`, shape) + .soundType(STONE_CHARACS.moon_deepslate.sound) + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.moon_deepslate.type}_items`) + .mapColor(STONE_CHARACS.moon_deepslate.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) - event.create('tfg:rock/bricks_moon_deepslate') - .soundType('deepslate') - .model('tfg:block/rock/bricks_moon_deepslate') + event.create('tfg:rock/polished_mars_wall', 'wall') + .soundType(STONE_CHARACS.mars.sound) + .textureAll('ad_astra:block/polished_mars_stone') + .tagBoth('tfg:rock_walls') + .tagBoth(`tfc:${STONE_CHARACS.mars.type}_items`) + .mapColor(STONE_CHARACS.mars.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + event.create('tfg:rock/polished_venus_wall', 'wall') + .soundType(STONE_CHARACS.venus.sound) + .textureAll('ad_astra:block/polished_venus_stone') + .tagBoth('tfg:rock_walls') + .tagBoth(`tfc:${STONE_CHARACS.venus.type}_items`) + .mapColor(STONE_CHARACS.venus.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + event.create('tfg:rock/polished_mercury_wall', 'wall') + .soundType(STONE_CHARACS.mercury.sound) + .textureAll('ad_astra:block/polished_mercury_stone') + .tagBoth('tfg:rock_walls') + .tagBoth(`tfc:${STONE_CHARACS.mercury.type}_items`) + .mapColor(STONE_CHARACS.mercury.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + event.create('tfg:rock/polished_glacio_wall', 'wall') + .soundType(STONE_CHARACS.glacio.sound) + .textureAll('ad_astra:block/polished_glacio_stone') + .tagBoth('tfg:rock_walls') + .tagBoth(`tfc:${STONE_CHARACS.glacio.type}_items`) + .mapColor(STONE_CHARACS.glacio.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + event.create('tfg:rock/polished_permafrost_wall', 'wall') + .soundType(STONE_CHARACS.permafrost.sound) + .textureAll('ad_astra:block/polished_permafrost') + .tagBoth('tfg:rock_walls') + .tagBoth(`tfc:${STONE_CHARACS.permafrost.type}_items`) + .mapColor(STONE_CHARACS.permafrost.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/polished_red_granite_${shape}`, shape) + .soundType(STONE_CHARACS.red_granite.sound) + .textureAll('gtceu:block/stones/red_granite/polished') + .tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.red_granite.type}_items`) + .mapColor(STONE_CHARACS.red_granite.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // #endregion Smooth (Polished/Cut) Stones + + // #region Bricks / Decorative + // Moon Stone + SHAPES.forEach(shape => { + event.create(`tfg:rock/cracked_bricks_moon_${shape}`, shape) + .soundType(STONE_CHARACS.moon.sound) + .textureAll('ad_astra:block/cracked_moon_stone_bricks') + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.moon.type}_items`) + .mapColor(STONE_CHARACS.moon.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/mossy_bricks_moon') + .soundType(STONE_CHARACS.moon.sound) .tagBoth('minecraft:stone_bricks') .tagBoth('forge:stone_bricks') .tagBoth('tfc:rock/bricks') - .tagBoth('tfc:igneous_intrusive_items') - .tagBoth('tfg:brick_index') - .tagBoth('tfg:moon_deepslate_cutter_set') - .mapColor('terracotta_blue') + .tagBoth('tfc:rock/mossy_bricks') + .tagBoth(`tfc:${STONE_CHARACS.moon.type}_items`) + .mapColor(STONE_CHARACS.moon.mapColor) .tagBlock('minecraft:mineable/pickaxe') .fullBlock(true) .opaque(true) - + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_bricks_moon_${shape}`, shape) + .soundType(STONE_CHARACS.moon.sound) + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.moon.type}_items`) + .mapColor(STONE_CHARACS.moon.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/chiseled_bricks_moon_wall', 'wall') + .soundType(STONE_CHARACS.moon.sound) + .textureAll('ad_astra:block/chiseled_moon_stone_bricks') + .tagBoth('tfg:brick_walls') + .tagBoth(`tfc:${STONE_CHARACS.moon.type}_items`) + .mapColor(STONE_CHARACS.moon.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + // Moon Deepslate + event.create('tfg:rock/bricks_moon_deepslate') + .soundType(STONE_CHARACS.moon_deepslate.sound) + .tagBoth('minecraft:stone_bricks') + .tagBoth('forge:stone_bricks') + .tagBoth('tfc:rock/bricks') + .tagBoth(`tfc:${STONE_CHARACS.moon_deepslate.type}_items`) + .mapColor(STONE_CHARACS.moon_deepslate.mapColor) + .tagBoth('tfg:moon_deepslate_cutter_set') + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/bricks_moon_deepslate_${shape}`, shape) + .soundType(STONE_CHARACS.moon_deepslate.sound) + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.moon_deepslate.type}_items`) + .mapColor(STONE_CHARACS.moon_deepslate.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + event.create('tfg:rock/cracked_bricks_moon_deepslate') - .soundType('deepslate') - .model('tfg:block/rock/cracked_bricks_moon_deepslate') + .soundType(STONE_CHARACS.moon_deepslate.sound) .tagBoth('minecraft:stone_bricks') .tagBoth('forge:stone_bricks') .tagBoth('tfc:rock/bricks') .tagBoth('tfc:rock/cracked_bricks') - .tagBoth('tfc:igneous_intrusive_items') - .tagBoth('tfg:brick_index') + .tagBoth(`tfc:${STONE_CHARACS.moon_deepslate.type}_items`) + .mapColor(STONE_CHARACS.moon_deepslate.mapColor) .tagBoth('tfg:moon_deepslate_cutter_set') - .mapColor('terracotta_blue') .tagBlock('minecraft:mineable/pickaxe') .fullBlock(true) .opaque(true) + SHAPES.forEach(shape => { + event.create(`tfg:rock/cracked_bricks_moon_deepslate_${shape}`, shape) + .soundType(STONE_CHARACS.moon_deepslate.sound) + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.moon_deepslate.type}_items`) + .mapColor(STONE_CHARACS.moon_deepslate.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/mossy_bricks_moon_deepslate') + .soundType(STONE_CHARACS.moon_deepslate.sound) + .tagBoth('minecraft:stone_bricks') + .tagBoth('forge:stone_bricks') + .tagBoth('tfc:rock/bricks') + .tagBoth('tfc:rock/mossy_bricks') + .tagBoth(`tfc:${STONE_CHARACS.moon_deepslate.type}_items`) + .mapColor(STONE_CHARACS.moon_deepslate.mapColor) + .tagBoth('tfg:moon_deepslate_cutter_set') + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_bricks_moon_deepslate_${shape}`, shape) + .soundType(STONE_CHARACS.moon_deepslate.sound) + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.moon_deepslate.type}_items`) + .mapColor(STONE_CHARACS.moon_deepslate.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + event.create('tfg:rock/chiseled_bricks_moon_deepslate') - .soundType('deepslate') - .model('tfg:block/rock/chiseled_bricks_moon_deepslate') + .soundType(STONE_CHARACS.moon_deepslate.sound) .tagBoth('minecraft:stone_bricks') .tagBoth('forge:stone_bricks') .tagBoth('tfc:rock/bricks') .tagBoth('tfc:rock/chiseled_bricks') - .tagBoth('tfc:igneous_intrusive_items') - .tagBoth('tfg:brick_index') + .tagBoth(`tfc:${STONE_CHARACS.moon_deepslate.type}_items`) + .mapColor(STONE_CHARACS.moon_deepslate.mapColor) + .tagBoth('tfg:moon_deepslate_cutter_set') + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/chiseled_bricks_moon_deepslate_${shape}`, shape) + .soundType(STONE_CHARACS.moon_deepslate.sound) + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.moon_deepslate.type}_items`) + .mapColor(STONE_CHARACS.moon_deepslate.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/pillar_moon_deepslate') + .soundType(STONE_CHARACS.moon_deepslate.sound) + .property(BlockProperties.AXIS) + .placementState(event => event.set(BlockProperties.AXIS, event.clickedFace.axis)) + .tagBoth(`tfc:${STONE_CHARACS.moon_deepslate.type}_items`) + .mapColor(STONE_CHARACS.moon_deepslate.mapColor) .tagBoth('tfg:moon_deepslate_cutter_set') - .mapColor('terracotta_blue') .tagBlock('minecraft:mineable/pickaxe') .fullBlock(true) .opaque(true) - event.create('tfg:rock/pillar_moon_deepslate') - .property(BlockProperties.AXIS) - .placementState(event => event.set(BlockProperties.AXIS, event.clickedFace.axis)) - .soundType('deepslate') - .tagBoth('tfc:igneous_intrusive_items') - .tagBoth('tfg:moon_deepslate_cutter_set') - .mapColor('terracotta_blue') + // Mars Stone + SHAPES.forEach(shape => { + event.create(`tfg:rock/cracked_bricks_mars_${shape}`, shape) + .soundType(STONE_CHARACS.mars.sound) + .textureAll('ad_astra:block/cracked_mars_stone_bricks') + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.mars.type}_items`) + .mapColor(STONE_CHARACS.mars.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/mossy_bricks_mars') + .soundType(STONE_CHARACS.mars.sound) + .tagBoth('minecraft:stone_bricks') + .tagBoth('forge:stone_bricks') + .tagBoth('tfc:rock/bricks') + .tagBoth('tfc:rock/mossy_bricks') + .tagBoth(`tfc:${STONE_CHARACS.mars.type}_items`) + .mapColor(STONE_CHARACS.mars.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_bricks_mars_${shape}`, shape) + .soundType(STONE_CHARACS.mars.sound) + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.mars.type}_items`) + .mapColor(STONE_CHARACS.mars.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/chiseled_bricks_mars_wall', 'wall') + .soundType(STONE_CHARACS.mars.sound) + .textureAll('ad_astra:block/chiseled_mars_stone_bricks') + .tagBoth('tfg:brick_walls') + .tagBoth(`tfc:${STONE_CHARACS.mars.type}_items`) + .mapColor(STONE_CHARACS.mars.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + // Venus Stone + SHAPES.forEach(shape => { + event.create(`tfg:rock/cracked_bricks_venus_${shape}`, shape) + .soundType(STONE_CHARACS.venus.sound) + .textureAll('ad_astra:block/cracked_venus_stone_bricks') + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.venus.type}_items`) + .mapColor(STONE_CHARACS.venus.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/mossy_bricks_venus') + .soundType(STONE_CHARACS.venus.sound) + .tagBoth('minecraft:stone_bricks') + .tagBoth('forge:stone_bricks') + .tagBoth('tfc:rock/bricks') + .tagBoth('tfc:rock/mossy_bricks') + .tagBoth(`tfc:${STONE_CHARACS.venus.type}_items`) + .mapColor(STONE_CHARACS.venus.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_bricks_venus_${shape}`, shape) + .soundType(STONE_CHARACS.venus.sound) + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.venus.type}_items`) + .mapColor(STONE_CHARACS.venus.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/chiseled_bricks_venus_wall', 'wall') + .soundType(STONE_CHARACS.venus.sound) + .textureAll('ad_astra:block/chiseled_venus_stone_bricks') + .tagBoth('tfg:brick_walls') + .tagBoth(`tfc:${STONE_CHARACS.venus.type}_items`) + .mapColor(STONE_CHARACS.venus.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + // Mercury Stone + SHAPES.forEach(shape => { + event.create(`tfg:rock/cracked_bricks_mercury_${shape}`, shape) + .soundType(STONE_CHARACS.mercury.sound) + .textureAll('ad_astra:block/cracked_mercury_stone_bricks') + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.mercury.type}_items`) + .mapColor(STONE_CHARACS.mercury.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/mossy_bricks_mercury') + .soundType(STONE_CHARACS.mercury.sound) + .tagBoth('minecraft:stone_bricks') + .tagBoth('forge:stone_bricks') + .tagBoth('tfc:rock/bricks') + .tagBoth('tfc:rock/mossy_bricks') + .tagBoth(`tfc:${STONE_CHARACS.mercury.type}_items`) + .mapColor(STONE_CHARACS.mercury.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_bricks_mercury_${shape}`, shape) + .soundType(STONE_CHARACS.mercury.sound) + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.mercury.type}_items`) + .mapColor(STONE_CHARACS.mercury.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/chiseled_bricks_mercury_wall', 'wall') + .soundType(STONE_CHARACS.mercury.sound) + .textureAll('ad_astra:block/chiseled_mercury_stone_bricks') + .tagBoth('tfg:brick_walls') + .tagBoth(`tfc:${STONE_CHARACS.mercury.type}_items`) + .mapColor(STONE_CHARACS.mercury.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + // Glacio Stone + SHAPES.forEach(shape => { + event.create(`tfg:rock/cracked_bricks_glacio_${shape}`, shape) + .soundType(STONE_CHARACS.glacio.sound) + .textureAll('ad_astra:block/cracked_glacio_stone_bricks') + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.glacio.type}_items`) + .mapColor(STONE_CHARACS.glacio.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/mossy_bricks_glacio') + .soundType(STONE_CHARACS.glacio.sound) + .tagBoth('minecraft:stone_bricks') + .tagBoth('forge:stone_bricks') + .tagBoth('tfc:rock/bricks') + .tagBoth('tfc:rock/mossy_bricks') + .tagBoth(`tfc:${STONE_CHARACS.glacio.type}_items`) + .mapColor(STONE_CHARACS.glacio.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_bricks_glacio_${shape}`, shape) + .soundType(STONE_CHARACS.glacio.sound) + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.glacio.type}_items`) + .mapColor(STONE_CHARACS.glacio.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/chiseled_bricks_glacio_wall', 'wall') + .soundType(STONE_CHARACS.glacio.sound) + .textureAll('ad_astra:block/chiseled_glacio_stone_bricks') + .tagBoth('tfg:brick_walls') + .tagBoth(`tfc:${STONE_CHARACS.glacio.type}_items`) + .mapColor(STONE_CHARACS.glacio.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + // Permafrost + SHAPES.forEach(shape => { + event.create(`tfg:rock/cracked_bricks_permafrost_${shape}`, shape) + .soundType(STONE_CHARACS.permafrost.sound) + .textureAll('ad_astra:block/cracked_permafrost_bricks') + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.permafrost.type}_items`) + .mapColor(STONE_CHARACS.permafrost.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/mossy_bricks_permafrost') + .soundType(STONE_CHARACS.permafrost.sound) + .tagBoth('minecraft:stone_bricks') + .tagBoth('forge:stone_bricks') + .tagBoth('tfc:rock/bricks') + .tagBoth('tfc:rock/mossy_bricks') + .mapColor(STONE_CHARACS.permafrost.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_bricks_permafrost_${shape}`, shape) + .soundType(STONE_CHARACS.permafrost.sound) + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .mapColor(STONE_CHARACS.permafrost.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + event.create('tfg:rock/chiseled_bricks_permafrost_wall', 'wall') + .soundType(STONE_CHARACS.permafrost.sound) + .textureAll('ad_astra:block/chiseled_permafrost_bricks') + .tagBoth('tfg:brick_walls') + .mapColor(STONE_CHARACS.permafrost.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + // Red Granite + + SHAPES.forEach(shape => { + event.create(`tfg:rock/bricks_red_granite_${shape}`, shape) + .soundType(STONE_CHARACS.red_granite.sound) + .textureAll('gtceu:block/stones/red_granite/bricks') + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.red_granite.type}_items`) + .mapColor(STONE_CHARACS.red_granite.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/cracked_bricks_red_granite_${shape}`, shape) + .soundType(STONE_CHARACS.red_granite.sound) + .textureAll('gtceu:block/stones/red_granite/bricks_cracked') + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.red_granite.type}_items`) + .mapColor(STONE_CHARACS.red_granite.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/mossy_bricks_red_granite_${shape}`, shape) + .soundType(STONE_CHARACS.red_granite.sound) + .textureAll('gtceu:block/stones/red_granite/bricks_mossy') + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .tagBoth(`tfc:${STONE_CHARACS.red_granite.type}_items`) + .mapColor(STONE_CHARACS.red_granite.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // #endregion Bricks / Decorative + + // #region Sandstone + event.create('tfg:rock/smooth_red_sandstone_wall', 'wall') + .soundType('stone') + .textureAll('minecraft:block/smooth_red_sandstone') + .mapColor('teracotta_red') + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + event.create('tfg:rock/cut_red_sandstone_stairs', 'stairs') + .soundType('stone') + .textureAll('minecraft:block/cut_red_sandstone') + .mapColor('teracotta_red') .tagBlock('minecraft:mineable/pickaxe') .fullBlock(true) .opaque(true) + event.create('tfg:rock/cut_red_sandstone_wall', 'wall') + .soundType('stone') + .textureAll('minecraft:block/cut_red_sandstone') + .mapColor('teracotta_red') + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + event.create('tfg:rock/bricks_venus_sandstone_wall', 'wall') + .soundType('stone') + .textureAll('ad_astra:block/venus_sandstone_bricks') + .mapColor(STONE_CHARACS.venus.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + + SHAPES.forEach(shape => { + event.create(`tfg:rock/cracked_bricks_venus_sandstone_${shape}`, shape) + .soundType(STONE_CHARACS.venus.sound) + .textureAll('ad_astra:block/cracked_venus_sandstone_bricks') + .tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's')) + .mapColor(STONE_CHARACS.venus.mapColor) + .tagBlock('minecraft:mineable/pickaxe') + .fullBlock(true) + .opaque(true) + }) + + // #endregion Sandstone // #region Plants diff --git a/kubejs/startup_scripts/tfg/constants.js b/kubejs/startup_scripts/tfg/constants.js index 0d6e6ac77..84bda4e36 100644 --- a/kubejs/startup_scripts/tfg/constants.js +++ b/kubejs/startup_scripts/tfg/constants.js @@ -170,78 +170,91 @@ global.FOOD_FRUIT = [ /** @type {Hammering[]} */ global.HAMMERING = [ // Beneath - { raw: 'minecraft:deepslate', hammered: 'minecraft:cobbled_deepslate', duration: 10, eu: 16 }, - { raw: 'tfg:rock/hardened_deepslate', hammered: 'minecraft:cobbled_deepslate', duration: 10, eu: 16 }, - { raw: 'minecraft:cobbled_deepslate', hammered: 'tfg:rock/gravel_deepslate', duration: 10, eu: 16 }, - { raw: 'tfg:rock/gravel_deepslate', hammered: 'tfc:sand/black', duration: 70, eu: 2 }, + { raw: 'minecraft:deepslate', hammered: 'minecraft:cobbled_deepslate', duration: 10, eu: 16 }, + { raw: 'tfg:rock/hardened_deepslate', hammered: 'minecraft:cobbled_deepslate', duration: 10, eu: 16 }, + { raw: 'minecraft:cobbled_deepslate', hammered: 'tfg:rock/gravel_deepslate', duration: 10, eu: 16 }, + { raw: 'tfg:rock/mossy_cobble_deepslate', hammered: 'tfg:rock/gravel_deepslate', duration: 10, eu: 16 }, + { raw: 'tfg:rock/gravel_deepslate', hammered: 'tfc:sand/black', duration: 70, eu: 2 }, - { raw: 'minecraft:blackstone', hammered: 'tfg:rock/cobble_blackstone', duration: 10, eu: 16 }, - { raw: 'tfg:rock/hardened_blackstone', hammered: 'tfg:rock/cobble_blackstone', duration: 10, eu: 16 }, - { raw: 'tfg:rock/cobble_blackstone', hammered: 'tfg:rock/gravel_blackstone', duration: 10, eu: 16 }, - { raw: 'tfg:rock/gravel_blackstone', hammered: 'tfc:sand/black', duration: 70, eu: 2 }, + { raw: 'minecraft:blackstone', hammered: 'tfg:rock/cobble_blackstone', duration: 10, eu: 16 }, + { raw: 'tfg:rock/hardened_blackstone', hammered: 'tfg:rock/cobble_blackstone', duration: 10, eu: 16 }, + { raw: 'tfg:rock/cobble_blackstone', hammered: 'tfg:rock/gravel_blackstone', duration: 10, eu: 16 }, + { raw: 'tfg:rock/mossy_cobble_blackstone', hammered: 'tfg:rock/gravel_blackstone', duration: 10, eu: 16 }, + { raw: 'tfg:rock/gravel_blackstone', hammered: 'tfc:sand/black', duration: 70, eu: 2 }, - { raw: 'minecraft:dripstone_block', hammered: 'tfg:rock/cobble_dripstone', duration: 10, eu: 16 }, - { raw: 'tfg:rock/hardened_dripstone', hammered: 'tfg:rock/cobble_dripstone', duration: 10, eu: 16 }, - { raw: 'tfg:rock/cobble_dripstone', hammered: 'tfg:rock/gravel_dripstone', duration: 10, eu: 16 }, - { raw: 'tfg:rock/gravel_dripstone', hammered: 'tfc:sand/brown', duration: 70, eu: 2 }, + { raw: 'minecraft:dripstone_block', hammered: 'tfg:rock/cobble_dripstone', duration: 10, eu: 16 }, + { raw: 'tfg:rock/hardened_dripstone', hammered: 'tfg:rock/cobble_dripstone', duration: 10, eu: 16 }, + { raw: 'tfg:rock/cobble_dripstone', hammered: 'tfg:rock/gravel_dripstone', duration: 10, eu: 16 }, + { raw: 'tfg:rock/mossy_cobble_dripstone', hammered: 'tfg:rock/gravel_dripstone', duration: 10, eu: 16 }, + { raw: 'tfg:rock/gravel_dripstone', hammered: 'tfc:sand/brown', duration: 70, eu: 2 }, - { raw: 'beneath:crackrack', hammered: 'tfg:rock/cobble_crackrack', duration: 10, eu: 16 }, - { raw: 'tfg:rock/cobble_crackrack', hammered: 'tfg:rock/gravel_crackrack', duration: 10, eu: 16 }, - { raw: 'tfg:rock/gravel_crackrack', hammered: 'tfc:sand/pink', duration: 70, eu: 2 }, + { raw: 'beneath:crackrack', hammered: 'tfg:rock/cobble_crackrack', duration: 10, eu: 16 }, + { raw: 'tfg:rock/cobble_crackrack', hammered: 'tfg:rock/gravel_crackrack', duration: 10, eu: 16 }, + { raw: 'tfg:rock/mossy_cobble_crackrack', hammered: 'tfg:rock/gravel_crackrack', duration: 10, eu: 16 }, + { raw: 'tfg:rock/gravel_crackrack', hammered: 'tfc:sand/pink', duration: 70, eu: 2 }, - { raw: 'minecraft:basalt', hammered: 'tfc:rock/cobble/basalt', duration: 10, eu: 16 }, + { raw: 'minecraft:basalt', hammered: 'tfc:rock/cobble/basalt', duration: 10, eu: 16 }, // Moon - { raw: 'ad_astra:moon_stone', hammered: 'ad_astra:moon_cobblestone', duration: 10, eu: 16 }, - { raw: 'tfg:rock/hardened_moon_stone', hammered: 'ad_astra:moon_cobblestone', duration: 10, eu: 16 }, - { raw: 'ad_astra:moon_cobblestone', hammered: 'tfg:rock/gravel_moon', duration: 10, eu: 16 }, - { raw: 'tfg:rock/gravel_moon', hammered: 'ad_astra:moon_sand', duration: 70, eu: 2 }, + { raw: 'ad_astra:moon_stone', hammered: 'ad_astra:moon_cobblestone', duration: 10, eu: 16 }, + { raw: 'tfg:rock/hardened_moon_stone', hammered: 'ad_astra:moon_cobblestone', duration: 10, eu: 16 }, + { raw: 'ad_astra:moon_cobblestone', hammered: 'tfg:rock/gravel_moon', duration: 10, eu: 16 }, + { raw: 'tfg:rock/mossy_cobble_moon', hammered: 'tfg:rock/gravel_moon', duration: 10, eu: 16 }, + { raw: 'tfg:rock/gravel_moon', hammered: 'ad_astra:moon_sand', duration: 70, eu: 2 }, - { raw: 'ad_astra:moon_deepslate', hammered: 'tfg:rock/cobble_moon_deepslate', duration: 10, eu: 16 }, - { raw: 'tfg:rock/hardened_moon_deepslate', hammered: 'tfg:rock/cobble_moon_deepslate', duration: 10, eu: 16 }, - { raw: 'tfg:rock/cobble_moon_deepslate', hammered: 'tfg:rock/gravel_moon_deepslate', duration: 10, eu: 16 }, - { raw: 'tfg:rock/gravel_moon_deepslate', hammered: 'ad_astra:moon_sand', duration: 10, eu: 16 }, + { raw: 'ad_astra:moon_deepslate', hammered: 'tfg:rock/cobble_moon_deepslate', duration: 10, eu: 16 }, + { raw: 'tfg:rock/hardened_moon_deepslate', hammered: 'tfg:rock/cobble_moon_deepslate', duration: 10, eu: 16 }, + { raw: 'tfg:rock/cobble_moon_deepslate', hammered: 'tfg:rock/gravel_moon_deepslate', duration: 10, eu: 16 }, + { raw: 'tfg:rock/mossy_cobble_moon_deepslate', hammered: 'tfg:rock/gravel_moon_deepslate', duration: 10, eu: 16 }, + { raw: 'tfg:rock/gravel_moon_deepslate', hammered: 'ad_astra:moon_sand', duration: 10, eu: 16 }, - { raw: 'ad_astra:glacio_stone', hammered: 'ad_astra:glacio_cobblestone', duration: 10, eu: 16 }, - { raw: 'tfg:rock/hardened_glacio_stone', hammered: 'ad_astra:glacio_cobblestone', duration: 10, eu: 16 }, - { raw: 'ad_astra:glacio_cobblestone', hammered: 'tfg:rock/gravel_glacio', duration: 10, eu: 16 }, - { raw: 'tfg:rock/gravel_glacio', hammered: 'tfc:sand/white', duration: 70, eu: 2 }, + { raw: 'ad_astra:glacio_stone', hammered: 'ad_astra:glacio_cobblestone', duration: 10, eu: 16 }, + { raw: 'tfg:rock/hardened_glacio_stone', hammered: 'ad_astra:glacio_cobblestone', duration: 10, eu: 16 }, + { raw: 'ad_astra:glacio_cobblestone', hammered: 'tfg:rock/gravel_glacio', duration: 10, eu: 16 }, + { raw: 'tfg:rock/mossy_cobble_glacio', hammered: 'tfg:rock/gravel_glacio', duration: 10, eu: 16 }, + { raw: 'tfg:rock/gravel_glacio', hammered: 'tfc:sand/white', duration: 70, eu: 2 }, // Mars - { raw: 'ad_astra:mars_stone', hammered: 'ad_astra:mars_cobblestone', duration: 10, eu: 16 }, - { raw: 'tfg:rock/hardened_mars_stone', hammered: 'ad_astra:mars_cobblestone', duration: 10, eu: 16 }, - { raw: 'ad_astra:mars_cobblestone', hammered: 'tfg:rock/gravel_mars', duration: 10, eu: 16 }, - { raw: 'tfg:rock/gravel_mars', hammered: 'ad_astra:mars_sand', duration: 70, eu: 2 }, + { raw: 'ad_astra:mars_stone', hammered: 'ad_astra:mars_cobblestone', duration: 10, eu: 16 }, + { raw: 'tfg:rock/hardened_mars_stone', hammered: 'ad_astra:mars_cobblestone', duration: 10, eu: 16 }, + { raw: 'ad_astra:mars_cobblestone', hammered: 'tfg:rock/gravel_mars', duration: 10, eu: 16 }, + { raw: 'tfg:rock/mossy_cobble_mars', hammered: 'tfg:rock/gravel_mars', duration: 10, eu: 16 }, + { raw: 'tfg:rock/gravel_mars', hammered: 'ad_astra:mars_sand', duration: 70, eu: 2 }, - { raw: 'minecraft:red_sandstone', hammered: '4x minecraft:red_sand', duration: 10, eu: 16 }, + { raw: 'minecraft:red_sandstone', hammered: '4x minecraft:red_sand', duration: 10, eu: 16 }, - { raw: 'gtceu:red_granite', hammered: 'gtceu:red_granite_cobblestone', duration: 10, eu: 16 }, - { raw: 'tfg:rock/hardened_red_granite', hammered: 'gtceu:red_granite_cobblestone', duration: 10, eu: 16 }, - { raw: 'gtceu:red_granite_cobblestone', hammered: 'tfg:rock/gravel_red_granite', duration: 10, eu: 16 }, - { raw: 'tfg:rock/gravel_red_granite', hammered: 'minecraft:red_sand', duration: 70, eu: 2 }, + { raw: 'gtceu:red_granite', hammered: 'gtceu:red_granite_cobblestone', duration: 10, eu: 16 }, + { raw: 'tfg:rock/hardened_red_granite', hammered: 'gtceu:red_granite_cobblestone', duration: 10, eu: 16 }, + { raw: 'gtceu:red_granite_cobblestone', hammered: 'tfg:rock/gravel_red_granite', duration: 10, eu: 16 }, + { raw: 'gtceu:mossy_red_granite_cobblestone', hammered: 'tfg:rock/gravel_red_granite', duration: 10, eu: 16 }, + { raw: 'tfg:rock/gravel_red_granite', hammered: 'minecraft:red_sand', duration: 70, eu: 2 }, // Venus - { raw: 'ad_astra:venus_stone', hammered: 'ad_astra:venus_cobblestone', duration: 10, eu: 16 }, - { raw: 'tfg:rock/hardened_venus_stone', hammered: 'ad_astra:venus_cobblestone', duration: 10, eu: 16 }, - { raw: 'ad_astra:venus_cobblestone', hammered: 'tfg:rock/gravel_mars', duration: 10, eu: 16 }, - { raw: 'tfg:rock/gravel_mars', hammered: 'ad_astra:venus_sand', duration: 70, eu: 2 }, + { raw: 'ad_astra:venus_stone', hammered: 'ad_astra:venus_cobblestone', duration: 10, eu: 16 }, + { raw: 'tfg:rock/hardened_venus_stone', hammered: 'ad_astra:venus_cobblestone', duration: 10, eu: 16 }, + { raw: 'ad_astra:venus_cobblestone', hammered: 'tfg:rock/gravel_venus', duration: 10, eu: 16 }, + { raw: 'tfg:rock/mossy_cobble_venus', hammered: 'tfg:rock/gravel_venus', duration: 10, eu: 16 }, + { raw: 'tfg:rock/gravel_venus', hammered: 'ad_astra:venus_sand', duration: 70, eu: 2 }, - { raw: 'ad_astra:venus_sandstone', hammered: '4x ad_astra:venus_sand', duration: 70, eu: 2 }, + { raw: 'ad_astra:venus_sandstone', hammered: '4x ad_astra:venus_sand', duration: 70, eu: 2 }, // Mercury - { raw: 'ad_astra:mercury_stone', hammered: 'ad_astra:mercury_cobblestone', duration: 10, eu: 16 }, - { raw: 'tfg:rock/hardened_mercury_stone', hammered: 'ad_astra:mercury_cobblestone', duration: 10, eu: 16 }, - { raw: 'ad_astra:mercury_cobblestone', hammered: 'tfg:rock/gravel_mars', duration: 10, eu: 16 }, - { raw: 'tfg:rock/gravel_mars', hammered: 'tfc:sand/red', duration: 70, eu: 2 }, + { raw: 'ad_astra:mercury_stone', hammered: 'ad_astra:mercury_cobblestone', duration: 10, eu: 16 }, + { raw: 'tfg:rock/hardened_mercury_stone', hammered: 'ad_astra:mercury_cobblestone', duration: 10, eu: 16 }, + { raw: 'ad_astra:mercury_cobblestone', hammered: 'tfg:rock/gravel_mercury', duration: 10, eu: 16 }, + { raw: 'tfg:rock/mossy_cobble_mercury', hammered: 'tfg:rock/gravel_mercury', duration: 10, eu: 16 }, + { raw: 'tfg:rock/gravel_mercury', hammered: 'tfc:sand/red', duration: 70, eu: 2 }, // Europa - { raw: 'ad_astra:permafrost', hammered: 'tfg:rock/cobble_permafrost', duration: 10, eu: 16 }, - { raw: 'tfg:rock/cobble_permafrost', hammered: 'tfg:rock/gravel_permafrost', duration: 10, eu: 16 }, - { raw: 'tfg:rock/gravel_permafrost', hammered: '4x gtceu:ice_dust', duration: 70, eu: 2 }, + { raw: 'ad_astra:permafrost', hammered: 'tfg:rock/cobble_permafrost', duration: 10, eu: 16 }, + { raw: 'tfg:rock/cobble_permafrost', hammered: 'tfg:rock/gravel_permafrost', duration: 10, eu: 16 }, + { raw: 'tfg:rock/mossy_cobble_permafrost', hammered: 'tfg:rock/gravel_permafrost', duration: 10, eu: 16 }, + { raw: 'tfg:rock/gravel_permafrost', hammered: '4x gtceu:ice_dust', duration: 70, eu: 2 }, // Misc - { raw: 'ad_astra:conglomerate', hammered: 'tfc:rock/gravel/conglomerate', duration: 10, eu: 16 } + { raw: 'ad_astra:conglomerate', hammered: 'tfc:rock/gravel/conglomerate', duration: 10, eu: 16 }, + { raw: 'minecraft:stone', hammered: 'minecraft:cobblestone', duration: 10, eu: 16 } ] global.COOLING_FOODS = [ diff --git a/kubejs/startup_scripts/tfg/items.js b/kubejs/startup_scripts/tfg/items.js index 729dbfeca..b46650010 100644 --- a/kubejs/startup_scripts/tfg/items.js +++ b/kubejs/startup_scripts/tfg/items.js @@ -73,23 +73,44 @@ const registerTFGItems = (event) => { // #region Stone bricks and dusts event.create('tfg:brick/deepslate') + .tag(`tfc:metamorphic_items`) .translationKey('item.tfg.brick.deepslate') + + event.create('tfg:brick/dripstone') + .tag(`tfc:sedimentary_items`) + .translationKey('item.tfg.brick.dripstone') + event.create('tfg:brick/moon_stone') + .tag(`tfc:igneous_intrusive_items`) .translationKey('item.tfg.brick.moon_stone') + + event.create('tfg:brick/moon_deepslate') + .tag(`tfc:igneous_intrusive_items`) + .translationKey('item.tfg.moon_deepslate') + event.create('tfg:brick/mars_stone') + .tag(`tfc:sedimentary_items`) .translationKey('item.tfg.brick.mars_stone') + event.create('tfg:brick/venus_stone') + .tag(`tfc:igneous_extrusive_items`) .translationKey('item.tfg.brick.venus_stone') + event.create('tfg:brick/mercury_stone') + .tag(`tfc:igneous_intrusive_items`) .translationKey('item.tfg.brick.mercury_stone') + event.create('tfg:brick/glacio_stone') + .tag(`tfc:igneous_extrusive_items`) .translationKey('item.tfg.brick.glacio_stone') + event.create('tfg:brick/permafrost') .translationKey('item.tfg.brick.permafrost') + event.create('tfg:brick/red_granite') + .tag(`tfc:igneous_intrusive_items`) .translationKey('item.tfg.red_granite') - event.create('tfg:brick/moon_deepslate') - .translationKey('item.tfg.moon_deepslate') + // #endregion // #region Primitive rubber gloves