Spaces:
Build error
Build error
File size: 172,922 Bytes
d46f4a3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 |
package net.minecraft.data.recipes.packs;
import com.google.common.collect.ImmutableList;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Stream;
import net.minecraft.advancements.CriteriaTriggers;
import net.minecraft.advancements.critereon.InventoryChangeTrigger;
import net.minecraft.advancements.critereon.MinMaxBounds;
import net.minecraft.advancements.critereon.PlayerTrigger;
import net.minecraft.core.HolderLookup;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.core.registries.Registries;
import net.minecraft.data.PackOutput;
import net.minecraft.data.recipes.RecipeCategory;
import net.minecraft.data.recipes.RecipeOutput;
import net.minecraft.data.recipes.RecipeProvider;
import net.minecraft.data.recipes.SimpleCookingRecipeBuilder;
import net.minecraft.data.recipes.SingleItemRecipeBuilder;
import net.minecraft.data.recipes.SpecialRecipeBuilder;
import net.minecraft.data.recipes.TransmuteRecipeBuilder;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.ItemTags;
import net.minecraft.world.flag.FeatureFlagSet;
import net.minecraft.world.flag.FeatureFlags;
import net.minecraft.world.item.BundleItem;
import net.minecraft.world.item.DyeColor;
import net.minecraft.world.item.DyeItem;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.crafting.ArmorDyeRecipe;
import net.minecraft.world.item.crafting.BannerDuplicateRecipe;
import net.minecraft.world.item.crafting.BookCloningRecipe;
import net.minecraft.world.item.crafting.CampfireCookingRecipe;
import net.minecraft.world.item.crafting.DecoratedPotRecipe;
import net.minecraft.world.item.crafting.FireworkRocketRecipe;
import net.minecraft.world.item.crafting.FireworkStarFadeRecipe;
import net.minecraft.world.item.crafting.FireworkStarRecipe;
import net.minecraft.world.item.crafting.Ingredient;
import net.minecraft.world.item.crafting.MapCloningRecipe;
import net.minecraft.world.item.crafting.MapExtendingRecipe;
import net.minecraft.world.item.crafting.Recipe;
import net.minecraft.world.item.crafting.RecipeSerializer;
import net.minecraft.world.item.crafting.RepairItemRecipe;
import net.minecraft.world.item.crafting.ShieldDecorationRecipe;
import net.minecraft.world.item.crafting.SmokingRecipe;
import net.minecraft.world.item.crafting.TippedArrowRecipe;
import net.minecraft.world.level.ItemLike;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.ShulkerBoxBlock;
import net.minecraft.world.level.block.SuspiciousEffectHolder;
public class VanillaRecipeProvider extends RecipeProvider {
private static final ImmutableList<ItemLike> COAL_SMELTABLES = ImmutableList.of(Items.COAL_ORE, Items.DEEPSLATE_COAL_ORE);
private static final ImmutableList<ItemLike> IRON_SMELTABLES = ImmutableList.of(Items.IRON_ORE, Items.DEEPSLATE_IRON_ORE, Items.RAW_IRON);
private static final ImmutableList<ItemLike> COPPER_SMELTABLES = ImmutableList.of(Items.COPPER_ORE, Items.DEEPSLATE_COPPER_ORE, Items.RAW_COPPER);
private static final ImmutableList<ItemLike> GOLD_SMELTABLES = ImmutableList.of(Items.GOLD_ORE, Items.DEEPSLATE_GOLD_ORE, Items.NETHER_GOLD_ORE, Items.RAW_GOLD);
private static final ImmutableList<ItemLike> DIAMOND_SMELTABLES = ImmutableList.of(Items.DIAMOND_ORE, Items.DEEPSLATE_DIAMOND_ORE);
private static final ImmutableList<ItemLike> LAPIS_SMELTABLES = ImmutableList.of(Items.LAPIS_ORE, Items.DEEPSLATE_LAPIS_ORE);
private static final ImmutableList<ItemLike> REDSTONE_SMELTABLES = ImmutableList.of(Items.REDSTONE_ORE, Items.DEEPSLATE_REDSTONE_ORE);
private static final ImmutableList<ItemLike> EMERALD_SMELTABLES = ImmutableList.of(Items.EMERALD_ORE, Items.DEEPSLATE_EMERALD_ORE);
VanillaRecipeProvider(HolderLookup.Provider p_362726_, RecipeOutput p_362384_) {
super(p_362726_, p_362384_);
}
@Override
protected void buildRecipes() {
this.output.includeRootAdvancement();
this.generateForEnabledBlockFamilies(FeatureFlagSet.of(FeatureFlags.VANILLA));
this.planksFromLog(Blocks.ACACIA_PLANKS, ItemTags.ACACIA_LOGS, 4);
this.planksFromLogs(Blocks.BIRCH_PLANKS, ItemTags.BIRCH_LOGS, 4);
this.planksFromLogs(Blocks.CRIMSON_PLANKS, ItemTags.CRIMSON_STEMS, 4);
this.planksFromLog(Blocks.DARK_OAK_PLANKS, ItemTags.DARK_OAK_LOGS, 4);
this.planksFromLog(Blocks.PALE_OAK_PLANKS, ItemTags.PALE_OAK_LOGS, 4);
this.planksFromLogs(Blocks.JUNGLE_PLANKS, ItemTags.JUNGLE_LOGS, 4);
this.planksFromLogs(Blocks.OAK_PLANKS, ItemTags.OAK_LOGS, 4);
this.planksFromLogs(Blocks.SPRUCE_PLANKS, ItemTags.SPRUCE_LOGS, 4);
this.planksFromLogs(Blocks.WARPED_PLANKS, ItemTags.WARPED_STEMS, 4);
this.planksFromLogs(Blocks.MANGROVE_PLANKS, ItemTags.MANGROVE_LOGS, 4);
this.woodFromLogs(Blocks.ACACIA_WOOD, Blocks.ACACIA_LOG);
this.woodFromLogs(Blocks.BIRCH_WOOD, Blocks.BIRCH_LOG);
this.woodFromLogs(Blocks.DARK_OAK_WOOD, Blocks.DARK_OAK_LOG);
this.woodFromLogs(Blocks.PALE_OAK_WOOD, Blocks.PALE_OAK_LOG);
this.woodFromLogs(Blocks.JUNGLE_WOOD, Blocks.JUNGLE_LOG);
this.woodFromLogs(Blocks.OAK_WOOD, Blocks.OAK_LOG);
this.woodFromLogs(Blocks.SPRUCE_WOOD, Blocks.SPRUCE_LOG);
this.woodFromLogs(Blocks.CRIMSON_HYPHAE, Blocks.CRIMSON_STEM);
this.woodFromLogs(Blocks.WARPED_HYPHAE, Blocks.WARPED_STEM);
this.woodFromLogs(Blocks.MANGROVE_WOOD, Blocks.MANGROVE_LOG);
this.woodFromLogs(Blocks.STRIPPED_ACACIA_WOOD, Blocks.STRIPPED_ACACIA_LOG);
this.woodFromLogs(Blocks.STRIPPED_BIRCH_WOOD, Blocks.STRIPPED_BIRCH_LOG);
this.woodFromLogs(Blocks.STRIPPED_DARK_OAK_WOOD, Blocks.STRIPPED_DARK_OAK_LOG);
this.woodFromLogs(Blocks.STRIPPED_PALE_OAK_WOOD, Blocks.STRIPPED_PALE_OAK_LOG);
this.woodFromLogs(Blocks.STRIPPED_JUNGLE_WOOD, Blocks.STRIPPED_JUNGLE_LOG);
this.woodFromLogs(Blocks.STRIPPED_OAK_WOOD, Blocks.STRIPPED_OAK_LOG);
this.woodFromLogs(Blocks.STRIPPED_SPRUCE_WOOD, Blocks.STRIPPED_SPRUCE_LOG);
this.woodFromLogs(Blocks.STRIPPED_CRIMSON_HYPHAE, Blocks.STRIPPED_CRIMSON_STEM);
this.woodFromLogs(Blocks.STRIPPED_WARPED_HYPHAE, Blocks.STRIPPED_WARPED_STEM);
this.woodFromLogs(Blocks.STRIPPED_MANGROVE_WOOD, Blocks.STRIPPED_MANGROVE_LOG);
this.woodenBoat(Items.ACACIA_BOAT, Blocks.ACACIA_PLANKS);
this.woodenBoat(Items.BIRCH_BOAT, Blocks.BIRCH_PLANKS);
this.woodenBoat(Items.DARK_OAK_BOAT, Blocks.DARK_OAK_PLANKS);
this.woodenBoat(Items.PALE_OAK_BOAT, Blocks.PALE_OAK_PLANKS);
this.woodenBoat(Items.JUNGLE_BOAT, Blocks.JUNGLE_PLANKS);
this.woodenBoat(Items.OAK_BOAT, Blocks.OAK_PLANKS);
this.woodenBoat(Items.SPRUCE_BOAT, Blocks.SPRUCE_PLANKS);
this.woodenBoat(Items.MANGROVE_BOAT, Blocks.MANGROVE_PLANKS);
List<Item> list = List.of(
Items.BLACK_DYE,
Items.BLUE_DYE,
Items.BROWN_DYE,
Items.CYAN_DYE,
Items.GRAY_DYE,
Items.GREEN_DYE,
Items.LIGHT_BLUE_DYE,
Items.LIGHT_GRAY_DYE,
Items.LIME_DYE,
Items.MAGENTA_DYE,
Items.ORANGE_DYE,
Items.PINK_DYE,
Items.PURPLE_DYE,
Items.RED_DYE,
Items.YELLOW_DYE,
Items.WHITE_DYE
);
List<Item> list1 = List.of(
Items.BLACK_WOOL,
Items.BLUE_WOOL,
Items.BROWN_WOOL,
Items.CYAN_WOOL,
Items.GRAY_WOOL,
Items.GREEN_WOOL,
Items.LIGHT_BLUE_WOOL,
Items.LIGHT_GRAY_WOOL,
Items.LIME_WOOL,
Items.MAGENTA_WOOL,
Items.ORANGE_WOOL,
Items.PINK_WOOL,
Items.PURPLE_WOOL,
Items.RED_WOOL,
Items.YELLOW_WOOL,
Items.WHITE_WOOL
);
List<Item> list2 = List.of(
Items.BLACK_BED,
Items.BLUE_BED,
Items.BROWN_BED,
Items.CYAN_BED,
Items.GRAY_BED,
Items.GREEN_BED,
Items.LIGHT_BLUE_BED,
Items.LIGHT_GRAY_BED,
Items.LIME_BED,
Items.MAGENTA_BED,
Items.ORANGE_BED,
Items.PINK_BED,
Items.PURPLE_BED,
Items.RED_BED,
Items.YELLOW_BED,
Items.WHITE_BED
);
List<Item> list3 = List.of(
Items.BLACK_CARPET,
Items.BLUE_CARPET,
Items.BROWN_CARPET,
Items.CYAN_CARPET,
Items.GRAY_CARPET,
Items.GREEN_CARPET,
Items.LIGHT_BLUE_CARPET,
Items.LIGHT_GRAY_CARPET,
Items.LIME_CARPET,
Items.MAGENTA_CARPET,
Items.ORANGE_CARPET,
Items.PINK_CARPET,
Items.PURPLE_CARPET,
Items.RED_CARPET,
Items.YELLOW_CARPET,
Items.WHITE_CARPET
);
this.colorBlockWithDye(list, list1, "wool");
this.colorBlockWithDye(list, list2, "bed");
this.colorBlockWithDye(list, list3, "carpet");
this.carpet(Blocks.BLACK_CARPET, Blocks.BLACK_WOOL);
this.bedFromPlanksAndWool(Items.BLACK_BED, Blocks.BLACK_WOOL);
this.banner(Items.BLACK_BANNER, Blocks.BLACK_WOOL);
this.carpet(Blocks.BLUE_CARPET, Blocks.BLUE_WOOL);
this.bedFromPlanksAndWool(Items.BLUE_BED, Blocks.BLUE_WOOL);
this.banner(Items.BLUE_BANNER, Blocks.BLUE_WOOL);
this.carpet(Blocks.BROWN_CARPET, Blocks.BROWN_WOOL);
this.bedFromPlanksAndWool(Items.BROWN_BED, Blocks.BROWN_WOOL);
this.banner(Items.BROWN_BANNER, Blocks.BROWN_WOOL);
this.carpet(Blocks.CYAN_CARPET, Blocks.CYAN_WOOL);
this.bedFromPlanksAndWool(Items.CYAN_BED, Blocks.CYAN_WOOL);
this.banner(Items.CYAN_BANNER, Blocks.CYAN_WOOL);
this.carpet(Blocks.GRAY_CARPET, Blocks.GRAY_WOOL);
this.bedFromPlanksAndWool(Items.GRAY_BED, Blocks.GRAY_WOOL);
this.banner(Items.GRAY_BANNER, Blocks.GRAY_WOOL);
this.carpet(Blocks.GREEN_CARPET, Blocks.GREEN_WOOL);
this.bedFromPlanksAndWool(Items.GREEN_BED, Blocks.GREEN_WOOL);
this.banner(Items.GREEN_BANNER, Blocks.GREEN_WOOL);
this.carpet(Blocks.LIGHT_BLUE_CARPET, Blocks.LIGHT_BLUE_WOOL);
this.bedFromPlanksAndWool(Items.LIGHT_BLUE_BED, Blocks.LIGHT_BLUE_WOOL);
this.banner(Items.LIGHT_BLUE_BANNER, Blocks.LIGHT_BLUE_WOOL);
this.carpet(Blocks.LIGHT_GRAY_CARPET, Blocks.LIGHT_GRAY_WOOL);
this.bedFromPlanksAndWool(Items.LIGHT_GRAY_BED, Blocks.LIGHT_GRAY_WOOL);
this.banner(Items.LIGHT_GRAY_BANNER, Blocks.LIGHT_GRAY_WOOL);
this.carpet(Blocks.LIME_CARPET, Blocks.LIME_WOOL);
this.bedFromPlanksAndWool(Items.LIME_BED, Blocks.LIME_WOOL);
this.banner(Items.LIME_BANNER, Blocks.LIME_WOOL);
this.carpet(Blocks.MAGENTA_CARPET, Blocks.MAGENTA_WOOL);
this.bedFromPlanksAndWool(Items.MAGENTA_BED, Blocks.MAGENTA_WOOL);
this.banner(Items.MAGENTA_BANNER, Blocks.MAGENTA_WOOL);
this.carpet(Blocks.ORANGE_CARPET, Blocks.ORANGE_WOOL);
this.bedFromPlanksAndWool(Items.ORANGE_BED, Blocks.ORANGE_WOOL);
this.banner(Items.ORANGE_BANNER, Blocks.ORANGE_WOOL);
this.carpet(Blocks.PINK_CARPET, Blocks.PINK_WOOL);
this.bedFromPlanksAndWool(Items.PINK_BED, Blocks.PINK_WOOL);
this.banner(Items.PINK_BANNER, Blocks.PINK_WOOL);
this.carpet(Blocks.PURPLE_CARPET, Blocks.PURPLE_WOOL);
this.bedFromPlanksAndWool(Items.PURPLE_BED, Blocks.PURPLE_WOOL);
this.banner(Items.PURPLE_BANNER, Blocks.PURPLE_WOOL);
this.carpet(Blocks.RED_CARPET, Blocks.RED_WOOL);
this.bedFromPlanksAndWool(Items.RED_BED, Blocks.RED_WOOL);
this.banner(Items.RED_BANNER, Blocks.RED_WOOL);
this.carpet(Blocks.WHITE_CARPET, Blocks.WHITE_WOOL);
this.bedFromPlanksAndWool(Items.WHITE_BED, Blocks.WHITE_WOOL);
this.banner(Items.WHITE_BANNER, Blocks.WHITE_WOOL);
this.carpet(Blocks.YELLOW_CARPET, Blocks.YELLOW_WOOL);
this.bedFromPlanksAndWool(Items.YELLOW_BED, Blocks.YELLOW_WOOL);
this.banner(Items.YELLOW_BANNER, Blocks.YELLOW_WOOL);
this.carpet(Blocks.MOSS_CARPET, Blocks.MOSS_BLOCK);
this.carpet(Blocks.PALE_MOSS_CARPET, Blocks.PALE_MOSS_BLOCK);
this.stainedGlassFromGlassAndDye(Blocks.BLACK_STAINED_GLASS, Items.BLACK_DYE);
this.stainedGlassPaneFromStainedGlass(Blocks.BLACK_STAINED_GLASS_PANE, Blocks.BLACK_STAINED_GLASS);
this.stainedGlassPaneFromGlassPaneAndDye(Blocks.BLACK_STAINED_GLASS_PANE, Items.BLACK_DYE);
this.stainedGlassFromGlassAndDye(Blocks.BLUE_STAINED_GLASS, Items.BLUE_DYE);
this.stainedGlassPaneFromStainedGlass(Blocks.BLUE_STAINED_GLASS_PANE, Blocks.BLUE_STAINED_GLASS);
this.stainedGlassPaneFromGlassPaneAndDye(Blocks.BLUE_STAINED_GLASS_PANE, Items.BLUE_DYE);
this.stainedGlassFromGlassAndDye(Blocks.BROWN_STAINED_GLASS, Items.BROWN_DYE);
this.stainedGlassPaneFromStainedGlass(Blocks.BROWN_STAINED_GLASS_PANE, Blocks.BROWN_STAINED_GLASS);
this.stainedGlassPaneFromGlassPaneAndDye(Blocks.BROWN_STAINED_GLASS_PANE, Items.BROWN_DYE);
this.stainedGlassFromGlassAndDye(Blocks.CYAN_STAINED_GLASS, Items.CYAN_DYE);
this.stainedGlassPaneFromStainedGlass(Blocks.CYAN_STAINED_GLASS_PANE, Blocks.CYAN_STAINED_GLASS);
this.stainedGlassPaneFromGlassPaneAndDye(Blocks.CYAN_STAINED_GLASS_PANE, Items.CYAN_DYE);
this.stainedGlassFromGlassAndDye(Blocks.GRAY_STAINED_GLASS, Items.GRAY_DYE);
this.stainedGlassPaneFromStainedGlass(Blocks.GRAY_STAINED_GLASS_PANE, Blocks.GRAY_STAINED_GLASS);
this.stainedGlassPaneFromGlassPaneAndDye(Blocks.GRAY_STAINED_GLASS_PANE, Items.GRAY_DYE);
this.stainedGlassFromGlassAndDye(Blocks.GREEN_STAINED_GLASS, Items.GREEN_DYE);
this.stainedGlassPaneFromStainedGlass(Blocks.GREEN_STAINED_GLASS_PANE, Blocks.GREEN_STAINED_GLASS);
this.stainedGlassPaneFromGlassPaneAndDye(Blocks.GREEN_STAINED_GLASS_PANE, Items.GREEN_DYE);
this.stainedGlassFromGlassAndDye(Blocks.LIGHT_BLUE_STAINED_GLASS, Items.LIGHT_BLUE_DYE);
this.stainedGlassPaneFromStainedGlass(Blocks.LIGHT_BLUE_STAINED_GLASS_PANE, Blocks.LIGHT_BLUE_STAINED_GLASS);
this.stainedGlassPaneFromGlassPaneAndDye(Blocks.LIGHT_BLUE_STAINED_GLASS_PANE, Items.LIGHT_BLUE_DYE);
this.stainedGlassFromGlassAndDye(Blocks.LIGHT_GRAY_STAINED_GLASS, Items.LIGHT_GRAY_DYE);
this.stainedGlassPaneFromStainedGlass(Blocks.LIGHT_GRAY_STAINED_GLASS_PANE, Blocks.LIGHT_GRAY_STAINED_GLASS);
this.stainedGlassPaneFromGlassPaneAndDye(Blocks.LIGHT_GRAY_STAINED_GLASS_PANE, Items.LIGHT_GRAY_DYE);
this.stainedGlassFromGlassAndDye(Blocks.LIME_STAINED_GLASS, Items.LIME_DYE);
this.stainedGlassPaneFromStainedGlass(Blocks.LIME_STAINED_GLASS_PANE, Blocks.LIME_STAINED_GLASS);
this.stainedGlassPaneFromGlassPaneAndDye(Blocks.LIME_STAINED_GLASS_PANE, Items.LIME_DYE);
this.stainedGlassFromGlassAndDye(Blocks.MAGENTA_STAINED_GLASS, Items.MAGENTA_DYE);
this.stainedGlassPaneFromStainedGlass(Blocks.MAGENTA_STAINED_GLASS_PANE, Blocks.MAGENTA_STAINED_GLASS);
this.stainedGlassPaneFromGlassPaneAndDye(Blocks.MAGENTA_STAINED_GLASS_PANE, Items.MAGENTA_DYE);
this.stainedGlassFromGlassAndDye(Blocks.ORANGE_STAINED_GLASS, Items.ORANGE_DYE);
this.stainedGlassPaneFromStainedGlass(Blocks.ORANGE_STAINED_GLASS_PANE, Blocks.ORANGE_STAINED_GLASS);
this.stainedGlassPaneFromGlassPaneAndDye(Blocks.ORANGE_STAINED_GLASS_PANE, Items.ORANGE_DYE);
this.stainedGlassFromGlassAndDye(Blocks.PINK_STAINED_GLASS, Items.PINK_DYE);
this.stainedGlassPaneFromStainedGlass(Blocks.PINK_STAINED_GLASS_PANE, Blocks.PINK_STAINED_GLASS);
this.stainedGlassPaneFromGlassPaneAndDye(Blocks.PINK_STAINED_GLASS_PANE, Items.PINK_DYE);
this.stainedGlassFromGlassAndDye(Blocks.PURPLE_STAINED_GLASS, Items.PURPLE_DYE);
this.stainedGlassPaneFromStainedGlass(Blocks.PURPLE_STAINED_GLASS_PANE, Blocks.PURPLE_STAINED_GLASS);
this.stainedGlassPaneFromGlassPaneAndDye(Blocks.PURPLE_STAINED_GLASS_PANE, Items.PURPLE_DYE);
this.stainedGlassFromGlassAndDye(Blocks.RED_STAINED_GLASS, Items.RED_DYE);
this.stainedGlassPaneFromStainedGlass(Blocks.RED_STAINED_GLASS_PANE, Blocks.RED_STAINED_GLASS);
this.stainedGlassPaneFromGlassPaneAndDye(Blocks.RED_STAINED_GLASS_PANE, Items.RED_DYE);
this.stainedGlassFromGlassAndDye(Blocks.WHITE_STAINED_GLASS, Items.WHITE_DYE);
this.stainedGlassPaneFromStainedGlass(Blocks.WHITE_STAINED_GLASS_PANE, Blocks.WHITE_STAINED_GLASS);
this.stainedGlassPaneFromGlassPaneAndDye(Blocks.WHITE_STAINED_GLASS_PANE, Items.WHITE_DYE);
this.stainedGlassFromGlassAndDye(Blocks.YELLOW_STAINED_GLASS, Items.YELLOW_DYE);
this.stainedGlassPaneFromStainedGlass(Blocks.YELLOW_STAINED_GLASS_PANE, Blocks.YELLOW_STAINED_GLASS);
this.stainedGlassPaneFromGlassPaneAndDye(Blocks.YELLOW_STAINED_GLASS_PANE, Items.YELLOW_DYE);
this.coloredTerracottaFromTerracottaAndDye(Blocks.BLACK_TERRACOTTA, Items.BLACK_DYE);
this.coloredTerracottaFromTerracottaAndDye(Blocks.BLUE_TERRACOTTA, Items.BLUE_DYE);
this.coloredTerracottaFromTerracottaAndDye(Blocks.BROWN_TERRACOTTA, Items.BROWN_DYE);
this.coloredTerracottaFromTerracottaAndDye(Blocks.CYAN_TERRACOTTA, Items.CYAN_DYE);
this.coloredTerracottaFromTerracottaAndDye(Blocks.GRAY_TERRACOTTA, Items.GRAY_DYE);
this.coloredTerracottaFromTerracottaAndDye(Blocks.GREEN_TERRACOTTA, Items.GREEN_DYE);
this.coloredTerracottaFromTerracottaAndDye(Blocks.LIGHT_BLUE_TERRACOTTA, Items.LIGHT_BLUE_DYE);
this.coloredTerracottaFromTerracottaAndDye(Blocks.LIGHT_GRAY_TERRACOTTA, Items.LIGHT_GRAY_DYE);
this.coloredTerracottaFromTerracottaAndDye(Blocks.LIME_TERRACOTTA, Items.LIME_DYE);
this.coloredTerracottaFromTerracottaAndDye(Blocks.MAGENTA_TERRACOTTA, Items.MAGENTA_DYE);
this.coloredTerracottaFromTerracottaAndDye(Blocks.ORANGE_TERRACOTTA, Items.ORANGE_DYE);
this.coloredTerracottaFromTerracottaAndDye(Blocks.PINK_TERRACOTTA, Items.PINK_DYE);
this.coloredTerracottaFromTerracottaAndDye(Blocks.PURPLE_TERRACOTTA, Items.PURPLE_DYE);
this.coloredTerracottaFromTerracottaAndDye(Blocks.RED_TERRACOTTA, Items.RED_DYE);
this.coloredTerracottaFromTerracottaAndDye(Blocks.WHITE_TERRACOTTA, Items.WHITE_DYE);
this.coloredTerracottaFromTerracottaAndDye(Blocks.YELLOW_TERRACOTTA, Items.YELLOW_DYE);
this.concretePowder(Blocks.BLACK_CONCRETE_POWDER, Items.BLACK_DYE);
this.concretePowder(Blocks.BLUE_CONCRETE_POWDER, Items.BLUE_DYE);
this.concretePowder(Blocks.BROWN_CONCRETE_POWDER, Items.BROWN_DYE);
this.concretePowder(Blocks.CYAN_CONCRETE_POWDER, Items.CYAN_DYE);
this.concretePowder(Blocks.GRAY_CONCRETE_POWDER, Items.GRAY_DYE);
this.concretePowder(Blocks.GREEN_CONCRETE_POWDER, Items.GREEN_DYE);
this.concretePowder(Blocks.LIGHT_BLUE_CONCRETE_POWDER, Items.LIGHT_BLUE_DYE);
this.concretePowder(Blocks.LIGHT_GRAY_CONCRETE_POWDER, Items.LIGHT_GRAY_DYE);
this.concretePowder(Blocks.LIME_CONCRETE_POWDER, Items.LIME_DYE);
this.concretePowder(Blocks.MAGENTA_CONCRETE_POWDER, Items.MAGENTA_DYE);
this.concretePowder(Blocks.ORANGE_CONCRETE_POWDER, Items.ORANGE_DYE);
this.concretePowder(Blocks.PINK_CONCRETE_POWDER, Items.PINK_DYE);
this.concretePowder(Blocks.PURPLE_CONCRETE_POWDER, Items.PURPLE_DYE);
this.concretePowder(Blocks.RED_CONCRETE_POWDER, Items.RED_DYE);
this.concretePowder(Blocks.WHITE_CONCRETE_POWDER, Items.WHITE_DYE);
this.concretePowder(Blocks.YELLOW_CONCRETE_POWDER, Items.YELLOW_DYE);
this.shaped(RecipeCategory.DECORATIONS, Items.CANDLE)
.define('S', Items.STRING)
.define('H', Items.HONEYCOMB)
.pattern("S")
.pattern("H")
.unlockedBy("has_string", this.has(Items.STRING))
.unlockedBy("has_honeycomb", this.has(Items.HONEYCOMB))
.save(this.output);
this.candle(Blocks.BLACK_CANDLE, Items.BLACK_DYE);
this.candle(Blocks.BLUE_CANDLE, Items.BLUE_DYE);
this.candle(Blocks.BROWN_CANDLE, Items.BROWN_DYE);
this.candle(Blocks.CYAN_CANDLE, Items.CYAN_DYE);
this.candle(Blocks.GRAY_CANDLE, Items.GRAY_DYE);
this.candle(Blocks.GREEN_CANDLE, Items.GREEN_DYE);
this.candle(Blocks.LIGHT_BLUE_CANDLE, Items.LIGHT_BLUE_DYE);
this.candle(Blocks.LIGHT_GRAY_CANDLE, Items.LIGHT_GRAY_DYE);
this.candle(Blocks.LIME_CANDLE, Items.LIME_DYE);
this.candle(Blocks.MAGENTA_CANDLE, Items.MAGENTA_DYE);
this.candle(Blocks.ORANGE_CANDLE, Items.ORANGE_DYE);
this.candle(Blocks.PINK_CANDLE, Items.PINK_DYE);
this.candle(Blocks.PURPLE_CANDLE, Items.PURPLE_DYE);
this.candle(Blocks.RED_CANDLE, Items.RED_DYE);
this.candle(Blocks.WHITE_CANDLE, Items.WHITE_DYE);
this.candle(Blocks.YELLOW_CANDLE, Items.YELLOW_DYE);
this.shapeless(RecipeCategory.BUILDING_BLOCKS, Blocks.PACKED_MUD, 1)
.requires(Blocks.MUD)
.requires(Items.WHEAT)
.unlockedBy("has_mud", this.has(Blocks.MUD))
.save(this.output);
this.shaped(RecipeCategory.BUILDING_BLOCKS, Blocks.MUD_BRICKS, 4)
.define('#', Blocks.PACKED_MUD)
.pattern("##")
.pattern("##")
.unlockedBy("has_packed_mud", this.has(Blocks.PACKED_MUD))
.save(this.output);
this.shapeless(RecipeCategory.BUILDING_BLOCKS, Blocks.MUDDY_MANGROVE_ROOTS, 1)
.requires(Blocks.MUD)
.requires(Items.MANGROVE_ROOTS)
.unlockedBy("has_mangrove_roots", this.has(Blocks.MANGROVE_ROOTS))
.save(this.output);
this.shaped(RecipeCategory.TRANSPORTATION, Blocks.ACTIVATOR_RAIL, 6)
.define('#', Blocks.REDSTONE_TORCH)
.define('S', Items.STICK)
.define('X', Items.IRON_INGOT)
.pattern("XSX")
.pattern("X#X")
.pattern("XSX")
.unlockedBy("has_rail", this.has(Blocks.RAIL))
.save(this.output);
this.shapeless(RecipeCategory.BUILDING_BLOCKS, Blocks.ANDESITE, 2)
.requires(Blocks.DIORITE)
.requires(Blocks.COBBLESTONE)
.unlockedBy("has_stone", this.has(Blocks.DIORITE))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.ANVIL)
.define('I', Blocks.IRON_BLOCK)
.define('i', Items.IRON_INGOT)
.pattern("III")
.pattern(" i ")
.pattern("iii")
.unlockedBy("has_iron_block", this.has(Blocks.IRON_BLOCK))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Items.ARMOR_STAND)
.define('/', Items.STICK)
.define('_', Blocks.SMOOTH_STONE_SLAB)
.pattern("///")
.pattern(" / ")
.pattern("/_/")
.unlockedBy("has_stone_slab", this.has(Blocks.SMOOTH_STONE_SLAB))
.save(this.output);
this.shaped(RecipeCategory.COMBAT, Items.ARROW, 4)
.define('#', Items.STICK)
.define('X', Items.FLINT)
.define('Y', Items.FEATHER)
.pattern("X")
.pattern("#")
.pattern("Y")
.unlockedBy("has_feather", this.has(Items.FEATHER))
.unlockedBy("has_flint", this.has(Items.FLINT))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.BARREL, 1)
.define('P', ItemTags.PLANKS)
.define('S', ItemTags.WOODEN_SLABS)
.pattern("PSP")
.pattern("P P")
.pattern("PSP")
.unlockedBy("has_planks", this.has(ItemTags.PLANKS))
.unlockedBy("has_wood_slab", this.has(ItemTags.WOODEN_SLABS))
.save(this.output);
this.shaped(RecipeCategory.MISC, Blocks.BEACON)
.define('S', Items.NETHER_STAR)
.define('G', Blocks.GLASS)
.define('O', Blocks.OBSIDIAN)
.pattern("GGG")
.pattern("GSG")
.pattern("OOO")
.unlockedBy("has_nether_star", this.has(Items.NETHER_STAR))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.BEEHIVE)
.define('P', ItemTags.PLANKS)
.define('H', Items.HONEYCOMB)
.pattern("PPP")
.pattern("HHH")
.pattern("PPP")
.unlockedBy("has_honeycomb", this.has(Items.HONEYCOMB))
.save(this.output);
this.shapeless(RecipeCategory.FOOD, Items.BEETROOT_SOUP)
.requires(Items.BOWL)
.requires(Items.BEETROOT, 6)
.unlockedBy("has_beetroot", this.has(Items.BEETROOT))
.save(this.output);
this.shapeless(RecipeCategory.MISC, Items.BLACK_DYE)
.requires(Items.INK_SAC)
.group("black_dye")
.unlockedBy("has_ink_sac", this.has(Items.INK_SAC))
.save(this.output);
this.oneToOneConversionRecipe(Items.BLACK_DYE, Blocks.WITHER_ROSE, "black_dye");
this.shapeless(RecipeCategory.BREWING, Items.BLAZE_POWDER, 2)
.requires(Items.BLAZE_ROD)
.unlockedBy("has_blaze_rod", this.has(Items.BLAZE_ROD))
.save(this.output);
this.shapeless(RecipeCategory.MISC, Items.BLUE_DYE)
.requires(Items.LAPIS_LAZULI)
.group("blue_dye")
.unlockedBy("has_lapis_lazuli", this.has(Items.LAPIS_LAZULI))
.save(this.output);
this.oneToOneConversionRecipe(Items.BLUE_DYE, Blocks.CORNFLOWER, "blue_dye");
this.threeByThreePacker(RecipeCategory.BUILDING_BLOCKS, Blocks.BLUE_ICE, Blocks.PACKED_ICE);
this.shapeless(RecipeCategory.MISC, Items.BONE_MEAL, 3)
.requires(Items.BONE)
.group("bonemeal")
.unlockedBy("has_bone", this.has(Items.BONE))
.save(this.output);
this.nineBlockStorageRecipesRecipesWithCustomUnpacking(RecipeCategory.MISC, Items.BONE_MEAL, RecipeCategory.BUILDING_BLOCKS, Items.BONE_BLOCK, "bone_meal_from_bone_block", "bonemeal");
this.shapeless(RecipeCategory.MISC, Items.BOOK)
.requires(Items.PAPER, 3)
.requires(Items.LEATHER)
.unlockedBy("has_paper", this.has(Items.PAPER))
.save(this.output);
this.shaped(RecipeCategory.BUILDING_BLOCKS, Blocks.BOOKSHELF)
.define('#', ItemTags.PLANKS)
.define('X', Items.BOOK)
.pattern("###")
.pattern("XXX")
.pattern("###")
.unlockedBy("has_book", this.has(Items.BOOK))
.save(this.output);
this.shaped(RecipeCategory.COMBAT, Items.BOW)
.define('#', Items.STICK)
.define('X', Items.STRING)
.pattern(" #X")
.pattern("# X")
.pattern(" #X")
.unlockedBy("has_string", this.has(Items.STRING))
.save(this.output);
this.shaped(RecipeCategory.MISC, Items.BOWL, 4)
.define('#', ItemTags.PLANKS)
.pattern("# #")
.pattern(" # ")
.unlockedBy("has_brown_mushroom", this.has(Blocks.BROWN_MUSHROOM))
.unlockedBy("has_red_mushroom", this.has(Blocks.RED_MUSHROOM))
.unlockedBy("has_mushroom_stew", this.has(Items.MUSHROOM_STEW))
.save(this.output);
this.shaped(RecipeCategory.FOOD, Items.BREAD)
.define('#', Items.WHEAT)
.pattern("###")
.unlockedBy("has_wheat", this.has(Items.WHEAT))
.save(this.output);
this.shaped(RecipeCategory.BREWING, Blocks.BREWING_STAND)
.define('B', Items.BLAZE_ROD)
.define('#', ItemTags.STONE_CRAFTING_MATERIALS)
.pattern(" B ")
.pattern("###")
.unlockedBy("has_blaze_rod", this.has(Items.BLAZE_ROD))
.save(this.output);
this.shaped(RecipeCategory.BUILDING_BLOCKS, Blocks.BRICKS)
.define('#', Items.BRICK)
.pattern("##")
.pattern("##")
.unlockedBy("has_brick", this.has(Items.BRICK))
.save(this.output);
this.shapeless(RecipeCategory.MISC, Items.BROWN_DYE)
.requires(Items.COCOA_BEANS)
.group("brown_dye")
.unlockedBy("has_cocoa_beans", this.has(Items.COCOA_BEANS))
.save(this.output);
this.shaped(RecipeCategory.MISC, Items.BUCKET)
.define('#', Items.IRON_INGOT)
.pattern("# #")
.pattern(" # ")
.unlockedBy("has_iron_ingot", this.has(Items.IRON_INGOT))
.save(this.output);
this.shaped(RecipeCategory.FOOD, Blocks.CAKE)
.define('A', Items.MILK_BUCKET)
.define('B', Items.SUGAR)
.define('C', Items.WHEAT)
.define('E', Items.EGG)
.pattern("AAA")
.pattern("BEB")
.pattern("CCC")
.unlockedBy("has_egg", this.has(Items.EGG))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.CAMPFIRE)
.define('L', ItemTags.LOGS)
.define('S', Items.STICK)
.define('C', ItemTags.COALS)
.pattern(" S ")
.pattern("SCS")
.pattern("LLL")
.unlockedBy("has_stick", this.has(Items.STICK))
.unlockedBy("has_coal", this.has(ItemTags.COALS))
.save(this.output);
this.shaped(RecipeCategory.TRANSPORTATION, Items.CARROT_ON_A_STICK)
.define('#', Items.FISHING_ROD)
.define('X', Items.CARROT)
.pattern("# ")
.pattern(" X")
.unlockedBy("has_carrot", this.has(Items.CARROT))
.save(this.output);
this.shaped(RecipeCategory.TRANSPORTATION, Items.WARPED_FUNGUS_ON_A_STICK)
.define('#', Items.FISHING_ROD)
.define('X', Items.WARPED_FUNGUS)
.pattern("# ")
.pattern(" X")
.unlockedBy("has_warped_fungus", this.has(Items.WARPED_FUNGUS))
.save(this.output);
this.shaped(RecipeCategory.BREWING, Blocks.CAULDRON)
.define('#', Items.IRON_INGOT)
.pattern("# #")
.pattern("# #")
.pattern("###")
.unlockedBy("has_water_bucket", this.has(Items.WATER_BUCKET))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.COMPOSTER)
.define('#', ItemTags.WOODEN_SLABS)
.pattern("# #")
.pattern("# #")
.pattern("###")
.unlockedBy("has_wood_slab", this.has(ItemTags.WOODEN_SLABS))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.CHEST)
.define('#', ItemTags.PLANKS)
.pattern("###")
.pattern("# #")
.pattern("###")
.unlockedBy(
"has_lots_of_items",
CriteriaTriggers.INVENTORY_CHANGED
.createCriterion(
new InventoryChangeTrigger.TriggerInstance(
Optional.empty(),
new InventoryChangeTrigger.TriggerInstance.Slots(
MinMaxBounds.Ints.atLeast(10), MinMaxBounds.Ints.ANY, MinMaxBounds.Ints.ANY
),
List.of()
)
)
)
.save(this.output);
this.shapeless(RecipeCategory.TRANSPORTATION, Items.CHEST_MINECART)
.requires(Blocks.CHEST)
.requires(Items.MINECART)
.unlockedBy("has_minecart", this.has(Items.MINECART))
.save(this.output);
this.chestBoat(Items.ACACIA_CHEST_BOAT, Items.ACACIA_BOAT);
this.chestBoat(Items.BIRCH_CHEST_BOAT, Items.BIRCH_BOAT);
this.chestBoat(Items.DARK_OAK_CHEST_BOAT, Items.DARK_OAK_BOAT);
this.chestBoat(Items.PALE_OAK_CHEST_BOAT, Items.PALE_OAK_BOAT);
this.chestBoat(Items.JUNGLE_CHEST_BOAT, Items.JUNGLE_BOAT);
this.chestBoat(Items.OAK_CHEST_BOAT, Items.OAK_BOAT);
this.chestBoat(Items.SPRUCE_CHEST_BOAT, Items.SPRUCE_BOAT);
this.chestBoat(Items.MANGROVE_CHEST_BOAT, Items.MANGROVE_BOAT);
this.chiseledBuilder(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_QUARTZ_BLOCK, Ingredient.of(Blocks.QUARTZ_SLAB))
.unlockedBy("has_chiseled_quartz_block", this.has(Blocks.CHISELED_QUARTZ_BLOCK))
.unlockedBy("has_quartz_block", this.has(Blocks.QUARTZ_BLOCK))
.unlockedBy("has_quartz_pillar", this.has(Blocks.QUARTZ_PILLAR))
.save(this.output);
this.chiseledBuilder(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_STONE_BRICKS, Ingredient.of(Blocks.STONE_BRICK_SLAB))
.unlockedBy("has_tag", this.has(ItemTags.STONE_BRICKS))
.save(this.output);
this.twoByTwoPacker(RecipeCategory.BUILDING_BLOCKS, Blocks.CLAY, Items.CLAY_BALL);
this.shaped(RecipeCategory.TOOLS, Items.CLOCK)
.define('#', Items.GOLD_INGOT)
.define('X', Items.REDSTONE)
.pattern(" # ")
.pattern("#X#")
.pattern(" # ")
.unlockedBy("has_redstone", this.has(Items.REDSTONE))
.save(this.output);
this.nineBlockStorageRecipes(RecipeCategory.MISC, Items.COAL, RecipeCategory.BUILDING_BLOCKS, Items.COAL_BLOCK);
this.shaped(RecipeCategory.BUILDING_BLOCKS, Blocks.COARSE_DIRT, 4)
.define('D', Blocks.DIRT)
.define('G', Blocks.GRAVEL)
.pattern("DG")
.pattern("GD")
.unlockedBy("has_gravel", this.has(Blocks.GRAVEL))
.save(this.output);
this.shaped(RecipeCategory.REDSTONE, Blocks.COMPARATOR)
.define('#', Blocks.REDSTONE_TORCH)
.define('X', Items.QUARTZ)
.define('I', Blocks.STONE)
.pattern(" # ")
.pattern("#X#")
.pattern("III")
.unlockedBy("has_quartz", this.has(Items.QUARTZ))
.save(this.output);
this.shaped(RecipeCategory.TOOLS, Items.COMPASS)
.define('#', Items.IRON_INGOT)
.define('X', Items.REDSTONE)
.pattern(" # ")
.pattern("#X#")
.pattern(" # ")
.unlockedBy("has_redstone", this.has(Items.REDSTONE))
.save(this.output);
this.shaped(RecipeCategory.FOOD, Items.COOKIE, 8)
.define('#', Items.WHEAT)
.define('X', Items.COCOA_BEANS)
.pattern("#X#")
.unlockedBy("has_cocoa", this.has(Items.COCOA_BEANS))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.CRAFTING_TABLE)
.define('#', ItemTags.PLANKS)
.pattern("##")
.pattern("##")
.unlockedBy("unlock_right_away", PlayerTrigger.TriggerInstance.tick())
.showNotification(false)
.save(this.output);
this.shaped(RecipeCategory.COMBAT, Items.CROSSBOW)
.define('~', Items.STRING)
.define('#', Items.STICK)
.define('&', Items.IRON_INGOT)
.define('$', Blocks.TRIPWIRE_HOOK)
.pattern("#&#")
.pattern("~$~")
.pattern(" # ")
.unlockedBy("has_string", this.has(Items.STRING))
.unlockedBy("has_iron_ingot", this.has(Items.IRON_INGOT))
.unlockedBy("has_tripwire_hook", this.has(Blocks.TRIPWIRE_HOOK))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.LOOM)
.define('#', ItemTags.PLANKS)
.define('@', Items.STRING)
.pattern("@@")
.pattern("##")
.unlockedBy("has_string", this.has(Items.STRING))
.save(this.output);
this.chiseledBuilder(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_RED_SANDSTONE, Ingredient.of(Blocks.RED_SANDSTONE_SLAB))
.unlockedBy("has_red_sandstone", this.has(Blocks.RED_SANDSTONE))
.unlockedBy("has_chiseled_red_sandstone", this.has(Blocks.CHISELED_RED_SANDSTONE))
.unlockedBy("has_cut_red_sandstone", this.has(Blocks.CUT_RED_SANDSTONE))
.save(this.output);
this.chiseled(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_SANDSTONE, Blocks.SANDSTONE_SLAB);
this.nineBlockStorageRecipesRecipesWithCustomUnpacking(
RecipeCategory.MISC, Items.COPPER_INGOT, RecipeCategory.BUILDING_BLOCKS, Items.COPPER_BLOCK, getSimpleRecipeName(Items.COPPER_INGOT), getItemName(Items.COPPER_INGOT)
);
this.shapeless(RecipeCategory.MISC, Items.COPPER_INGOT, 9)
.requires(Blocks.WAXED_COPPER_BLOCK)
.group(getItemName(Items.COPPER_INGOT))
.unlockedBy(getHasName(Blocks.WAXED_COPPER_BLOCK), this.has(Blocks.WAXED_COPPER_BLOCK))
.save(this.output, getConversionRecipeName(Items.COPPER_INGOT, Blocks.WAXED_COPPER_BLOCK));
this.waxRecipes(FeatureFlagSet.of(FeatureFlags.VANILLA));
this.shapeless(RecipeCategory.MISC, Items.CYAN_DYE, 2)
.requires(Items.BLUE_DYE)
.requires(Items.GREEN_DYE)
.group("cyan_dye")
.unlockedBy("has_green_dye", this.has(Items.GREEN_DYE))
.unlockedBy("has_blue_dye", this.has(Items.BLUE_DYE))
.save(this.output);
this.shaped(RecipeCategory.BUILDING_BLOCKS, Blocks.DARK_PRISMARINE)
.define('S', Items.PRISMARINE_SHARD)
.define('I', Items.BLACK_DYE)
.pattern("SSS")
.pattern("SIS")
.pattern("SSS")
.unlockedBy("has_prismarine_shard", this.has(Items.PRISMARINE_SHARD))
.save(this.output);
this.shaped(RecipeCategory.REDSTONE, Blocks.DAYLIGHT_DETECTOR)
.define('Q', Items.QUARTZ)
.define('G', Blocks.GLASS)
.define('W', ItemTags.WOODEN_SLABS)
.pattern("GGG")
.pattern("QQQ")
.pattern("WWW")
.unlockedBy("has_quartz", this.has(Items.QUARTZ))
.save(this.output);
this.shaped(RecipeCategory.BUILDING_BLOCKS, Blocks.DEEPSLATE_BRICKS, 4)
.define('S', Blocks.POLISHED_DEEPSLATE)
.pattern("SS")
.pattern("SS")
.unlockedBy("has_polished_deepslate", this.has(Blocks.POLISHED_DEEPSLATE))
.save(this.output);
this.shaped(RecipeCategory.BUILDING_BLOCKS, Blocks.DEEPSLATE_TILES, 4)
.define('S', Blocks.DEEPSLATE_BRICKS)
.pattern("SS")
.pattern("SS")
.unlockedBy("has_deepslate_bricks", this.has(Blocks.DEEPSLATE_BRICKS))
.save(this.output);
this.shaped(RecipeCategory.TRANSPORTATION, Blocks.DETECTOR_RAIL, 6)
.define('R', Items.REDSTONE)
.define('#', Blocks.STONE_PRESSURE_PLATE)
.define('X', Items.IRON_INGOT)
.pattern("X X")
.pattern("X#X")
.pattern("XRX")
.unlockedBy("has_rail", this.has(Blocks.RAIL))
.save(this.output);
this.shaped(RecipeCategory.TOOLS, Items.DIAMOND_AXE)
.define('#', Items.STICK)
.define('X', ItemTags.DIAMOND_TOOL_MATERIALS)
.pattern("XX")
.pattern("X#")
.pattern(" #")
.unlockedBy("has_diamond", this.has(ItemTags.DIAMOND_TOOL_MATERIALS))
.save(this.output);
this.nineBlockStorageRecipes(RecipeCategory.MISC, Items.DIAMOND, RecipeCategory.BUILDING_BLOCKS, Items.DIAMOND_BLOCK);
this.shaped(RecipeCategory.COMBAT, Items.DIAMOND_BOOTS)
.define('X', Items.DIAMOND)
.pattern("X X")
.pattern("X X")
.unlockedBy("has_diamond", this.has(Items.DIAMOND))
.save(this.output);
this.shaped(RecipeCategory.COMBAT, Items.DIAMOND_CHESTPLATE)
.define('X', Items.DIAMOND)
.pattern("X X")
.pattern("XXX")
.pattern("XXX")
.unlockedBy("has_diamond", this.has(Items.DIAMOND))
.save(this.output);
this.shaped(RecipeCategory.COMBAT, Items.DIAMOND_HELMET)
.define('X', Items.DIAMOND)
.pattern("XXX")
.pattern("X X")
.unlockedBy("has_diamond", this.has(Items.DIAMOND))
.save(this.output);
this.shaped(RecipeCategory.TOOLS, Items.DIAMOND_HOE)
.define('#', Items.STICK)
.define('X', ItemTags.DIAMOND_TOOL_MATERIALS)
.pattern("XX")
.pattern(" #")
.pattern(" #")
.unlockedBy("has_diamond", this.has(ItemTags.DIAMOND_TOOL_MATERIALS))
.save(this.output);
this.shaped(RecipeCategory.COMBAT, Items.DIAMOND_LEGGINGS)
.define('X', Items.DIAMOND)
.pattern("XXX")
.pattern("X X")
.pattern("X X")
.unlockedBy("has_diamond", this.has(Items.DIAMOND))
.save(this.output);
this.shaped(RecipeCategory.TOOLS, Items.DIAMOND_PICKAXE)
.define('#', Items.STICK)
.define('X', ItemTags.DIAMOND_TOOL_MATERIALS)
.pattern("XXX")
.pattern(" # ")
.pattern(" # ")
.unlockedBy("has_diamond", this.has(ItemTags.DIAMOND_TOOL_MATERIALS))
.save(this.output);
this.shaped(RecipeCategory.TOOLS, Items.DIAMOND_SHOVEL)
.define('#', Items.STICK)
.define('X', ItemTags.DIAMOND_TOOL_MATERIALS)
.pattern("X")
.pattern("#")
.pattern("#")
.unlockedBy("has_diamond", this.has(ItemTags.DIAMOND_TOOL_MATERIALS))
.save(this.output);
this.shaped(RecipeCategory.COMBAT, Items.DIAMOND_SWORD)
.define('#', Items.STICK)
.define('X', ItemTags.DIAMOND_TOOL_MATERIALS)
.pattern("X")
.pattern("X")
.pattern("#")
.unlockedBy("has_diamond", this.has(ItemTags.DIAMOND_TOOL_MATERIALS))
.save(this.output);
this.shaped(RecipeCategory.BUILDING_BLOCKS, Blocks.DIORITE, 2)
.define('Q', Items.QUARTZ)
.define('C', Blocks.COBBLESTONE)
.pattern("CQ")
.pattern("QC")
.unlockedBy("has_quartz", this.has(Items.QUARTZ))
.save(this.output);
this.shaped(RecipeCategory.REDSTONE, Blocks.DISPENSER)
.define('R', Items.REDSTONE)
.define('#', Blocks.COBBLESTONE)
.define('X', Items.BOW)
.pattern("###")
.pattern("#X#")
.pattern("#R#")
.unlockedBy("has_bow", this.has(Items.BOW))
.save(this.output);
this.twoByTwoPacker(RecipeCategory.BUILDING_BLOCKS, Blocks.DRIPSTONE_BLOCK, Items.POINTED_DRIPSTONE);
this.shaped(RecipeCategory.REDSTONE, Blocks.DROPPER)
.define('R', Items.REDSTONE)
.define('#', Blocks.COBBLESTONE)
.pattern("###")
.pattern("# #")
.pattern("#R#")
.unlockedBy("has_redstone", this.has(Items.REDSTONE))
.save(this.output);
this.nineBlockStorageRecipes(RecipeCategory.MISC, Items.EMERALD, RecipeCategory.BUILDING_BLOCKS, Items.EMERALD_BLOCK);
this.shaped(RecipeCategory.DECORATIONS, Blocks.ENCHANTING_TABLE)
.define('B', Items.BOOK)
.define('#', Blocks.OBSIDIAN)
.define('D', Items.DIAMOND)
.pattern(" B ")
.pattern("D#D")
.pattern("###")
.unlockedBy("has_obsidian", this.has(Blocks.OBSIDIAN))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.ENDER_CHEST)
.define('#', Blocks.OBSIDIAN)
.define('E', Items.ENDER_EYE)
.pattern("###")
.pattern("#E#")
.pattern("###")
.unlockedBy("has_ender_eye", this.has(Items.ENDER_EYE))
.save(this.output);
this.shapeless(RecipeCategory.MISC, Items.ENDER_EYE)
.requires(Items.ENDER_PEARL)
.requires(Items.BLAZE_POWDER)
.unlockedBy("has_blaze_powder", this.has(Items.BLAZE_POWDER))
.save(this.output);
this.shaped(RecipeCategory.BUILDING_BLOCKS, Blocks.END_STONE_BRICKS, 4)
.define('#', Blocks.END_STONE)
.pattern("##")
.pattern("##")
.unlockedBy("has_end_stone", this.has(Blocks.END_STONE))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Items.END_CRYSTAL)
.define('T', Items.GHAST_TEAR)
.define('E', Items.ENDER_EYE)
.define('G', Blocks.GLASS)
.pattern("GGG")
.pattern("GEG")
.pattern("GTG")
.unlockedBy("has_ender_eye", this.has(Items.ENDER_EYE))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.END_ROD, 4)
.define('#', Items.POPPED_CHORUS_FRUIT)
.define('/', Items.BLAZE_ROD)
.pattern("/")
.pattern("#")
.unlockedBy("has_chorus_fruit_popped", this.has(Items.POPPED_CHORUS_FRUIT))
.save(this.output);
this.shapeless(RecipeCategory.BREWING, Items.FERMENTED_SPIDER_EYE)
.requires(Items.SPIDER_EYE)
.requires(Blocks.BROWN_MUSHROOM)
.requires(Items.SUGAR)
.unlockedBy("has_spider_eye", this.has(Items.SPIDER_EYE))
.save(this.output);
this.shapeless(RecipeCategory.MISC, Items.FIRE_CHARGE, 3)
.requires(Items.GUNPOWDER)
.requires(Items.BLAZE_POWDER)
.requires(Ingredient.of(Items.COAL, Items.CHARCOAL))
.unlockedBy("has_blaze_powder", this.has(Items.BLAZE_POWDER))
.save(this.output);
this.shapeless(RecipeCategory.MISC, Items.FIREWORK_ROCKET, 3)
.requires(Items.GUNPOWDER)
.requires(Items.PAPER)
.unlockedBy("has_gunpowder", this.has(Items.GUNPOWDER))
.save(this.output, "firework_rocket_simple");
this.shaped(RecipeCategory.TOOLS, Items.FISHING_ROD)
.define('#', Items.STICK)
.define('X', Items.STRING)
.pattern(" #")
.pattern(" #X")
.pattern("# X")
.unlockedBy("has_string", this.has(Items.STRING))
.save(this.output);
this.shapeless(RecipeCategory.TOOLS, Items.FLINT_AND_STEEL)
.requires(Items.IRON_INGOT)
.requires(Items.FLINT)
.unlockedBy("has_flint", this.has(Items.FLINT))
.unlockedBy("has_obsidian", this.has(Blocks.OBSIDIAN))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.FLOWER_POT)
.define('#', Items.BRICK)
.pattern("# #")
.pattern(" # ")
.unlockedBy("has_brick", this.has(Items.BRICK))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.FURNACE)
.define('#', ItemTags.STONE_CRAFTING_MATERIALS)
.pattern("###")
.pattern("# #")
.pattern("###")
.unlockedBy("has_cobblestone", this.has(ItemTags.STONE_CRAFTING_MATERIALS))
.save(this.output);
this.shapeless(RecipeCategory.TRANSPORTATION, Items.FURNACE_MINECART)
.requires(Blocks.FURNACE)
.requires(Items.MINECART)
.unlockedBy("has_minecart", this.has(Items.MINECART))
.save(this.output);
this.shaped(RecipeCategory.BREWING, Items.GLASS_BOTTLE, 3)
.define('#', Blocks.GLASS)
.pattern("# #")
.pattern(" # ")
.unlockedBy("has_glass", this.has(Blocks.GLASS))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.GLASS_PANE, 16)
.define('#', Blocks.GLASS)
.pattern("###")
.pattern("###")
.unlockedBy("has_glass", this.has(Blocks.GLASS))
.save(this.output);
this.twoByTwoPacker(RecipeCategory.BUILDING_BLOCKS, Blocks.GLOWSTONE, Items.GLOWSTONE_DUST);
this.shapeless(RecipeCategory.DECORATIONS, Items.GLOW_ITEM_FRAME)
.requires(Items.ITEM_FRAME)
.requires(Items.GLOW_INK_SAC)
.unlockedBy("has_item_frame", this.has(Items.ITEM_FRAME))
.unlockedBy("has_glow_ink_sac", this.has(Items.GLOW_INK_SAC))
.save(this.output);
this.shaped(RecipeCategory.FOOD, Items.GOLDEN_APPLE)
.define('#', Items.GOLD_INGOT)
.define('X', Items.APPLE)
.pattern("###")
.pattern("#X#")
.pattern("###")
.unlockedBy("has_gold_ingot", this.has(Items.GOLD_INGOT))
.save(this.output);
this.shaped(RecipeCategory.TOOLS, Items.GOLDEN_AXE)
.define('#', Items.STICK)
.define('X', ItemTags.GOLD_TOOL_MATERIALS)
.pattern("XX")
.pattern("X#")
.pattern(" #")
.unlockedBy("has_gold_ingot", this.has(ItemTags.GOLD_TOOL_MATERIALS))
.save(this.output);
this.shaped(RecipeCategory.COMBAT, Items.GOLDEN_BOOTS)
.define('X', Items.GOLD_INGOT)
.pattern("X X")
.pattern("X X")
.unlockedBy("has_gold_ingot", this.has(Items.GOLD_INGOT))
.save(this.output);
this.shaped(RecipeCategory.BREWING, Items.GOLDEN_CARROT)
.define('#', Items.GOLD_NUGGET)
.define('X', Items.CARROT)
.pattern("###")
.pattern("#X#")
.pattern("###")
.unlockedBy("has_gold_nugget", this.has(Items.GOLD_NUGGET))
.save(this.output);
this.shaped(RecipeCategory.COMBAT, Items.GOLDEN_CHESTPLATE)
.define('X', Items.GOLD_INGOT)
.pattern("X X")
.pattern("XXX")
.pattern("XXX")
.unlockedBy("has_gold_ingot", this.has(Items.GOLD_INGOT))
.save(this.output);
this.shaped(RecipeCategory.COMBAT, Items.GOLDEN_HELMET)
.define('X', Items.GOLD_INGOT)
.pattern("XXX")
.pattern("X X")
.unlockedBy("has_gold_ingot", this.has(Items.GOLD_INGOT))
.save(this.output);
this.shaped(RecipeCategory.TOOLS, Items.GOLDEN_HOE)
.define('#', Items.STICK)
.define('X', ItemTags.GOLD_TOOL_MATERIALS)
.pattern("XX")
.pattern(" #")
.pattern(" #")
.unlockedBy("has_gold_ingot", this.has(ItemTags.GOLD_TOOL_MATERIALS))
.save(this.output);
this.shaped(RecipeCategory.COMBAT, Items.GOLDEN_LEGGINGS)
.define('X', Items.GOLD_INGOT)
.pattern("XXX")
.pattern("X X")
.pattern("X X")
.unlockedBy("has_gold_ingot", this.has(Items.GOLD_INGOT))
.save(this.output);
this.shaped(RecipeCategory.TOOLS, Items.GOLDEN_PICKAXE)
.define('#', Items.STICK)
.define('X', ItemTags.GOLD_TOOL_MATERIALS)
.pattern("XXX")
.pattern(" # ")
.pattern(" # ")
.unlockedBy("has_gold_ingot", this.has(ItemTags.GOLD_TOOL_MATERIALS))
.save(this.output);
this.shaped(RecipeCategory.TRANSPORTATION, Blocks.POWERED_RAIL, 6)
.define('R', Items.REDSTONE)
.define('#', Items.STICK)
.define('X', Items.GOLD_INGOT)
.pattern("X X")
.pattern("X#X")
.pattern("XRX")
.unlockedBy("has_rail", this.has(Blocks.RAIL))
.save(this.output);
this.shaped(RecipeCategory.TOOLS, Items.GOLDEN_SHOVEL)
.define('#', Items.STICK)
.define('X', ItemTags.GOLD_TOOL_MATERIALS)
.pattern("X")
.pattern("#")
.pattern("#")
.unlockedBy("has_gold_ingot", this.has(ItemTags.GOLD_TOOL_MATERIALS))
.save(this.output);
this.shaped(RecipeCategory.COMBAT, Items.GOLDEN_SWORD)
.define('#', Items.STICK)
.define('X', ItemTags.GOLD_TOOL_MATERIALS)
.pattern("X")
.pattern("X")
.pattern("#")
.unlockedBy("has_gold_ingot", this.has(ItemTags.GOLD_TOOL_MATERIALS))
.save(this.output);
this.nineBlockStorageRecipesRecipesWithCustomUnpacking(RecipeCategory.MISC, Items.GOLD_INGOT, RecipeCategory.BUILDING_BLOCKS, Items.GOLD_BLOCK, "gold_ingot_from_gold_block", "gold_ingot");
this.nineBlockStorageRecipesWithCustomPacking(RecipeCategory.MISC, Items.GOLD_NUGGET, RecipeCategory.MISC, Items.GOLD_INGOT, "gold_ingot_from_nuggets", "gold_ingot");
this.shapeless(RecipeCategory.BUILDING_BLOCKS, Blocks.GRANITE)
.requires(Blocks.DIORITE)
.requires(Items.QUARTZ)
.unlockedBy("has_quartz", this.has(Items.QUARTZ))
.save(this.output);
this.shapeless(RecipeCategory.MISC, Items.GRAY_DYE, 2)
.requires(Items.BLACK_DYE)
.requires(Items.WHITE_DYE)
.unlockedBy("has_white_dye", this.has(Items.WHITE_DYE))
.unlockedBy("has_black_dye", this.has(Items.BLACK_DYE))
.save(this.output);
this.threeByThreePacker(RecipeCategory.BUILDING_BLOCKS, Blocks.HAY_BLOCK, Items.WHEAT);
this.pressurePlate(Blocks.HEAVY_WEIGHTED_PRESSURE_PLATE, Items.IRON_INGOT);
this.shapeless(RecipeCategory.FOOD, Items.HONEY_BOTTLE, 4)
.requires(Items.HONEY_BLOCK)
.requires(Items.GLASS_BOTTLE, 4)
.unlockedBy("has_honey_block", this.has(Blocks.HONEY_BLOCK))
.save(this.output);
this.twoByTwoPacker(RecipeCategory.REDSTONE, Blocks.HONEY_BLOCK, Items.HONEY_BOTTLE);
this.twoByTwoPacker(RecipeCategory.DECORATIONS, Blocks.HONEYCOMB_BLOCK, Items.HONEYCOMB);
this.shaped(RecipeCategory.REDSTONE, Blocks.HOPPER)
.define('C', Blocks.CHEST)
.define('I', Items.IRON_INGOT)
.pattern("I I")
.pattern("ICI")
.pattern(" I ")
.unlockedBy("has_iron_ingot", this.has(Items.IRON_INGOT))
.save(this.output);
this.shapeless(RecipeCategory.TRANSPORTATION, Items.HOPPER_MINECART)
.requires(Blocks.HOPPER)
.requires(Items.MINECART)
.unlockedBy("has_minecart", this.has(Items.MINECART))
.save(this.output);
this.shaped(RecipeCategory.TOOLS, Items.IRON_AXE)
.define('#', Items.STICK)
.define('X', ItemTags.IRON_TOOL_MATERIALS)
.pattern("XX")
.pattern("X#")
.pattern(" #")
.unlockedBy("has_iron_ingot", this.has(ItemTags.IRON_TOOL_MATERIALS))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.IRON_BARS, 16)
.define('#', Items.IRON_INGOT)
.pattern("###")
.pattern("###")
.unlockedBy("has_iron_ingot", this.has(Items.IRON_INGOT))
.save(this.output);
this.shaped(RecipeCategory.COMBAT, Items.IRON_BOOTS)
.define('X', Items.IRON_INGOT)
.pattern("X X")
.pattern("X X")
.unlockedBy("has_iron_ingot", this.has(Items.IRON_INGOT))
.save(this.output);
this.shaped(RecipeCategory.COMBAT, Items.IRON_CHESTPLATE)
.define('X', Items.IRON_INGOT)
.pattern("X X")
.pattern("XXX")
.pattern("XXX")
.unlockedBy("has_iron_ingot", this.has(Items.IRON_INGOT))
.save(this.output);
this.doorBuilder(Blocks.IRON_DOOR, Ingredient.of(Items.IRON_INGOT))
.unlockedBy(getHasName(Items.IRON_INGOT), this.has(Items.IRON_INGOT))
.save(this.output);
this.shaped(RecipeCategory.COMBAT, Items.IRON_HELMET)
.define('X', Items.IRON_INGOT)
.pattern("XXX")
.pattern("X X")
.unlockedBy("has_iron_ingot", this.has(Items.IRON_INGOT))
.save(this.output);
this.shaped(RecipeCategory.TOOLS, Items.IRON_HOE)
.define('#', Items.STICK)
.define('X', ItemTags.IRON_TOOL_MATERIALS)
.pattern("XX")
.pattern(" #")
.pattern(" #")
.unlockedBy("has_iron_ingot", this.has(ItemTags.IRON_TOOL_MATERIALS))
.save(this.output);
this.nineBlockStorageRecipesRecipesWithCustomUnpacking(RecipeCategory.MISC, Items.IRON_INGOT, RecipeCategory.BUILDING_BLOCKS, Items.IRON_BLOCK, "iron_ingot_from_iron_block", "iron_ingot");
this.nineBlockStorageRecipesWithCustomPacking(RecipeCategory.MISC, Items.IRON_NUGGET, RecipeCategory.MISC, Items.IRON_INGOT, "iron_ingot_from_nuggets", "iron_ingot");
this.shaped(RecipeCategory.COMBAT, Items.IRON_LEGGINGS)
.define('X', Items.IRON_INGOT)
.pattern("XXX")
.pattern("X X")
.pattern("X X")
.unlockedBy("has_iron_ingot", this.has(Items.IRON_INGOT))
.save(this.output);
this.shaped(RecipeCategory.TOOLS, Items.IRON_PICKAXE)
.define('#', Items.STICK)
.define('X', ItemTags.IRON_TOOL_MATERIALS)
.pattern("XXX")
.pattern(" # ")
.pattern(" # ")
.unlockedBy("has_iron_ingot", this.has(ItemTags.IRON_TOOL_MATERIALS))
.save(this.output);
this.shaped(RecipeCategory.TOOLS, Items.IRON_SHOVEL)
.define('#', Items.STICK)
.define('X', ItemTags.IRON_TOOL_MATERIALS)
.pattern("X")
.pattern("#")
.pattern("#")
.unlockedBy("has_iron_ingot", this.has(ItemTags.IRON_TOOL_MATERIALS))
.save(this.output);
this.shaped(RecipeCategory.COMBAT, Items.IRON_SWORD)
.define('#', Items.STICK)
.define('X', ItemTags.IRON_TOOL_MATERIALS)
.pattern("X")
.pattern("X")
.pattern("#")
.unlockedBy("has_iron_ingot", this.has(ItemTags.IRON_TOOL_MATERIALS))
.save(this.output);
this.twoByTwoPacker(RecipeCategory.REDSTONE, Blocks.IRON_TRAPDOOR, Items.IRON_INGOT);
this.shaped(RecipeCategory.DECORATIONS, Items.ITEM_FRAME)
.define('#', Items.STICK)
.define('X', Items.LEATHER)
.pattern("###")
.pattern("#X#")
.pattern("###")
.unlockedBy("has_leather", this.has(Items.LEATHER))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.JUKEBOX)
.define('#', ItemTags.PLANKS)
.define('X', Items.DIAMOND)
.pattern("###")
.pattern("#X#")
.pattern("###")
.unlockedBy("has_diamond", this.has(Items.DIAMOND))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.LADDER, 3)
.define('#', Items.STICK)
.pattern("# #")
.pattern("###")
.pattern("# #")
.unlockedBy("has_stick", this.has(Items.STICK))
.save(this.output);
this.nineBlockStorageRecipes(RecipeCategory.MISC, Items.LAPIS_LAZULI, RecipeCategory.BUILDING_BLOCKS, Items.LAPIS_BLOCK);
this.shaped(RecipeCategory.TOOLS, Items.LEAD, 2)
.define('~', Items.STRING)
.define('O', Items.SLIME_BALL)
.pattern("~~ ")
.pattern("~O ")
.pattern(" ~")
.unlockedBy("has_slime_ball", this.has(Items.SLIME_BALL))
.save(this.output);
this.twoByTwoPacker(RecipeCategory.MISC, Items.LEATHER, Items.RABBIT_HIDE);
this.shaped(RecipeCategory.COMBAT, Items.LEATHER_BOOTS)
.define('X', Items.LEATHER)
.pattern("X X")
.pattern("X X")
.unlockedBy("has_leather", this.has(Items.LEATHER))
.save(this.output);
this.shaped(RecipeCategory.COMBAT, Items.LEATHER_CHESTPLATE)
.define('X', Items.LEATHER)
.pattern("X X")
.pattern("XXX")
.pattern("XXX")
.unlockedBy("has_leather", this.has(Items.LEATHER))
.save(this.output);
this.shaped(RecipeCategory.COMBAT, Items.LEATHER_HELMET)
.define('X', Items.LEATHER)
.pattern("XXX")
.pattern("X X")
.unlockedBy("has_leather", this.has(Items.LEATHER))
.save(this.output);
this.shaped(RecipeCategory.COMBAT, Items.LEATHER_LEGGINGS)
.define('X', Items.LEATHER)
.pattern("XXX")
.pattern("X X")
.pattern("X X")
.unlockedBy("has_leather", this.has(Items.LEATHER))
.save(this.output);
this.shaped(RecipeCategory.MISC, Items.LEATHER_HORSE_ARMOR)
.define('X', Items.LEATHER)
.pattern("X X")
.pattern("XXX")
.pattern("X X")
.unlockedBy("has_leather", this.has(Items.LEATHER))
.save(this.output);
this.shaped(RecipeCategory.REDSTONE, Blocks.LECTERN)
.define('S', ItemTags.WOODEN_SLABS)
.define('B', Blocks.BOOKSHELF)
.pattern("SSS")
.pattern(" B ")
.pattern(" S ")
.unlockedBy("has_book", this.has(Items.BOOK))
.save(this.output);
this.shaped(RecipeCategory.REDSTONE, Blocks.LEVER)
.define('#', Blocks.COBBLESTONE)
.define('X', Items.STICK)
.pattern("X")
.pattern("#")
.unlockedBy("has_cobblestone", this.has(Blocks.COBBLESTONE))
.save(this.output);
this.oneToOneConversionRecipe(Items.LIGHT_BLUE_DYE, Blocks.BLUE_ORCHID, "light_blue_dye");
this.shapeless(RecipeCategory.MISC, Items.LIGHT_BLUE_DYE, 2)
.requires(Items.BLUE_DYE)
.requires(Items.WHITE_DYE)
.group("light_blue_dye")
.unlockedBy("has_blue_dye", this.has(Items.BLUE_DYE))
.unlockedBy("has_white_dye", this.has(Items.WHITE_DYE))
.save(this.output, "light_blue_dye_from_blue_white_dye");
this.oneToOneConversionRecipe(Items.LIGHT_GRAY_DYE, Blocks.AZURE_BLUET, "light_gray_dye");
this.shapeless(RecipeCategory.MISC, Items.LIGHT_GRAY_DYE, 2)
.requires(Items.GRAY_DYE)
.requires(Items.WHITE_DYE)
.group("light_gray_dye")
.unlockedBy("has_gray_dye", this.has(Items.GRAY_DYE))
.unlockedBy("has_white_dye", this.has(Items.WHITE_DYE))
.save(this.output, "light_gray_dye_from_gray_white_dye");
this.shapeless(RecipeCategory.MISC, Items.LIGHT_GRAY_DYE, 3)
.requires(Items.BLACK_DYE)
.requires(Items.WHITE_DYE, 2)
.group("light_gray_dye")
.unlockedBy("has_white_dye", this.has(Items.WHITE_DYE))
.unlockedBy("has_black_dye", this.has(Items.BLACK_DYE))
.save(this.output, "light_gray_dye_from_black_white_dye");
this.oneToOneConversionRecipe(Items.LIGHT_GRAY_DYE, Blocks.OXEYE_DAISY, "light_gray_dye");
this.oneToOneConversionRecipe(Items.LIGHT_GRAY_DYE, Blocks.WHITE_TULIP, "light_gray_dye");
this.pressurePlate(Blocks.LIGHT_WEIGHTED_PRESSURE_PLATE, Items.GOLD_INGOT);
this.shaped(RecipeCategory.REDSTONE, Blocks.LIGHTNING_ROD)
.define('#', Items.COPPER_INGOT)
.pattern("#")
.pattern("#")
.pattern("#")
.unlockedBy("has_copper_ingot", this.has(Items.COPPER_INGOT))
.save(this.output);
this.shapeless(RecipeCategory.MISC, Items.LIME_DYE, 2)
.requires(Items.GREEN_DYE)
.requires(Items.WHITE_DYE)
.unlockedBy("has_green_dye", this.has(Items.GREEN_DYE))
.unlockedBy("has_white_dye", this.has(Items.WHITE_DYE))
.save(this.output);
this.shaped(RecipeCategory.BUILDING_BLOCKS, Blocks.JACK_O_LANTERN)
.define('A', Blocks.CARVED_PUMPKIN)
.define('B', Blocks.TORCH)
.pattern("A")
.pattern("B")
.unlockedBy("has_carved_pumpkin", this.has(Blocks.CARVED_PUMPKIN))
.save(this.output);
this.oneToOneConversionRecipe(Items.MAGENTA_DYE, Blocks.ALLIUM, "magenta_dye");
this.shapeless(RecipeCategory.MISC, Items.MAGENTA_DYE, 4)
.requires(Items.BLUE_DYE)
.requires(Items.RED_DYE, 2)
.requires(Items.WHITE_DYE)
.group("magenta_dye")
.unlockedBy("has_blue_dye", this.has(Items.BLUE_DYE))
.unlockedBy("has_rose_red", this.has(Items.RED_DYE))
.unlockedBy("has_white_dye", this.has(Items.WHITE_DYE))
.save(this.output, "magenta_dye_from_blue_red_white_dye");
this.shapeless(RecipeCategory.MISC, Items.MAGENTA_DYE, 3)
.requires(Items.BLUE_DYE)
.requires(Items.RED_DYE)
.requires(Items.PINK_DYE)
.group("magenta_dye")
.unlockedBy("has_pink_dye", this.has(Items.PINK_DYE))
.unlockedBy("has_blue_dye", this.has(Items.BLUE_DYE))
.unlockedBy("has_red_dye", this.has(Items.RED_DYE))
.save(this.output, "magenta_dye_from_blue_red_pink");
this.oneToOneConversionRecipe(Items.MAGENTA_DYE, Blocks.LILAC, "magenta_dye", 2);
this.shapeless(RecipeCategory.MISC, Items.MAGENTA_DYE, 2)
.requires(Items.PURPLE_DYE)
.requires(Items.PINK_DYE)
.group("magenta_dye")
.unlockedBy("has_pink_dye", this.has(Items.PINK_DYE))
.unlockedBy("has_purple_dye", this.has(Items.PURPLE_DYE))
.save(this.output, "magenta_dye_from_purple_and_pink");
this.twoByTwoPacker(RecipeCategory.BUILDING_BLOCKS, Blocks.MAGMA_BLOCK, Items.MAGMA_CREAM);
this.shapeless(RecipeCategory.BREWING, Items.MAGMA_CREAM)
.requires(Items.BLAZE_POWDER)
.requires(Items.SLIME_BALL)
.unlockedBy("has_blaze_powder", this.has(Items.BLAZE_POWDER))
.save(this.output);
this.shaped(RecipeCategory.MISC, Items.MAP)
.define('#', Items.PAPER)
.define('X', Items.COMPASS)
.pattern("###")
.pattern("#X#")
.pattern("###")
.unlockedBy("has_compass", this.has(Items.COMPASS))
.save(this.output);
this.threeByThreePacker(RecipeCategory.BUILDING_BLOCKS, Blocks.MELON, Items.MELON_SLICE, "has_melon");
this.shapeless(RecipeCategory.MISC, Items.MELON_SEEDS)
.requires(Items.MELON_SLICE)
.unlockedBy("has_melon", this.has(Items.MELON_SLICE))
.save(this.output);
this.shaped(RecipeCategory.TRANSPORTATION, Items.MINECART)
.define('#', Items.IRON_INGOT)
.pattern("# #")
.pattern("###")
.unlockedBy("has_iron_ingot", this.has(Items.IRON_INGOT))
.save(this.output);
this.shapeless(RecipeCategory.BUILDING_BLOCKS, Blocks.MOSSY_COBBLESTONE)
.requires(Blocks.COBBLESTONE)
.requires(Blocks.VINE)
.group("mossy_cobblestone")
.unlockedBy("has_vine", this.has(Blocks.VINE))
.save(this.output, getConversionRecipeName(Blocks.MOSSY_COBBLESTONE, Blocks.VINE));
this.shapeless(RecipeCategory.BUILDING_BLOCKS, Blocks.MOSSY_STONE_BRICKS)
.requires(Blocks.STONE_BRICKS)
.requires(Blocks.VINE)
.group("mossy_stone_bricks")
.unlockedBy("has_vine", this.has(Blocks.VINE))
.save(this.output, getConversionRecipeName(Blocks.MOSSY_STONE_BRICKS, Blocks.VINE));
this.shapeless(RecipeCategory.BUILDING_BLOCKS, Blocks.MOSSY_COBBLESTONE)
.requires(Blocks.COBBLESTONE)
.requires(Blocks.MOSS_BLOCK)
.group("mossy_cobblestone")
.unlockedBy("has_moss_block", this.has(Blocks.MOSS_BLOCK))
.save(this.output, getConversionRecipeName(Blocks.MOSSY_COBBLESTONE, Blocks.MOSS_BLOCK));
this.shapeless(RecipeCategory.BUILDING_BLOCKS, Blocks.MOSSY_STONE_BRICKS)
.requires(Blocks.STONE_BRICKS)
.requires(Blocks.MOSS_BLOCK)
.group("mossy_stone_bricks")
.unlockedBy("has_moss_block", this.has(Blocks.MOSS_BLOCK))
.save(this.output, getConversionRecipeName(Blocks.MOSSY_STONE_BRICKS, Blocks.MOSS_BLOCK));
this.shapeless(RecipeCategory.FOOD, Items.MUSHROOM_STEW)
.requires(Blocks.BROWN_MUSHROOM)
.requires(Blocks.RED_MUSHROOM)
.requires(Items.BOWL)
.unlockedBy("has_mushroom_stew", this.has(Items.MUSHROOM_STEW))
.unlockedBy("has_bowl", this.has(Items.BOWL))
.unlockedBy("has_brown_mushroom", this.has(Blocks.BROWN_MUSHROOM))
.unlockedBy("has_red_mushroom", this.has(Blocks.RED_MUSHROOM))
.save(this.output);
BuiltInRegistries.ITEM.stream().forEach(p_358453_ -> {
SuspiciousEffectHolder suspiciouseffectholder = SuspiciousEffectHolder.tryGet(p_358453_);
if (suspiciouseffectholder != null) {
this.suspiciousStew(p_358453_, suspiciouseffectholder);
}
});
this.twoByTwoPacker(RecipeCategory.BUILDING_BLOCKS, Blocks.NETHER_BRICKS, Items.NETHER_BRICK);
this.twoByTwoPacker(RecipeCategory.BUILDING_BLOCKS, Blocks.RESIN_BRICKS, Items.RESIN_BRICK);
this.nineBlockStorageRecipes(RecipeCategory.MISC, Items.RESIN_CLUMP, RecipeCategory.BUILDING_BLOCKS, Items.RESIN_BLOCK);
this.shaped(RecipeCategory.MISC, Blocks.CREAKING_HEART)
.define('R', Items.RESIN_BLOCK)
.define('L', Blocks.PALE_OAK_LOG)
.pattern(" L ")
.pattern(" R ")
.pattern(" L ")
.unlockedBy("has_resin_block", this.has(Items.RESIN_BLOCK))
.save(this.output);
this.threeByThreePacker(RecipeCategory.BUILDING_BLOCKS, Blocks.NETHER_WART_BLOCK, Items.NETHER_WART);
this.shaped(RecipeCategory.REDSTONE, Blocks.NOTE_BLOCK)
.define('#', ItemTags.PLANKS)
.define('X', Items.REDSTONE)
.pattern("###")
.pattern("#X#")
.pattern("###")
.unlockedBy("has_redstone", this.has(Items.REDSTONE))
.save(this.output);
this.shaped(RecipeCategory.REDSTONE, Blocks.OBSERVER)
.define('Q', Items.QUARTZ)
.define('R', Items.REDSTONE)
.define('#', Blocks.COBBLESTONE)
.pattern("###")
.pattern("RRQ")
.pattern("###")
.unlockedBy("has_quartz", this.has(Items.QUARTZ))
.save(this.output);
this.oneToOneConversionRecipe(Items.ORANGE_DYE, Blocks.ORANGE_TULIP, "orange_dye");
this.shapeless(RecipeCategory.MISC, Items.ORANGE_DYE, 2)
.requires(Items.RED_DYE)
.requires(Items.YELLOW_DYE)
.group("orange_dye")
.unlockedBy("has_red_dye", this.has(Items.RED_DYE))
.unlockedBy("has_yellow_dye", this.has(Items.YELLOW_DYE))
.save(this.output, "orange_dye_from_red_yellow");
this.shaped(RecipeCategory.DECORATIONS, Items.PAINTING)
.define('#', Items.STICK)
.define('X', ItemTags.WOOL)
.pattern("###")
.pattern("#X#")
.pattern("###")
.unlockedBy("has_wool", this.has(ItemTags.WOOL))
.save(this.output);
this.shaped(RecipeCategory.MISC, Items.PAPER, 3)
.define('#', Blocks.SUGAR_CANE)
.pattern("###")
.unlockedBy("has_reeds", this.has(Blocks.SUGAR_CANE))
.save(this.output);
this.shaped(RecipeCategory.BUILDING_BLOCKS, Blocks.QUARTZ_PILLAR, 2)
.define('#', Blocks.QUARTZ_BLOCK)
.pattern("#")
.pattern("#")
.unlockedBy("has_chiseled_quartz_block", this.has(Blocks.CHISELED_QUARTZ_BLOCK))
.unlockedBy("has_quartz_block", this.has(Blocks.QUARTZ_BLOCK))
.unlockedBy("has_quartz_pillar", this.has(Blocks.QUARTZ_PILLAR))
.save(this.output);
this.threeByThreePacker(RecipeCategory.BUILDING_BLOCKS, Blocks.PACKED_ICE, Blocks.ICE);
this.oneToOneConversionRecipe(Items.PINK_DYE, Blocks.PEONY, "pink_dye", 2);
this.oneToOneConversionRecipe(Items.PINK_DYE, Blocks.PINK_TULIP, "pink_dye");
this.shapeless(RecipeCategory.MISC, Items.PINK_DYE, 2)
.requires(Items.RED_DYE)
.requires(Items.WHITE_DYE)
.group("pink_dye")
.unlockedBy("has_white_dye", this.has(Items.WHITE_DYE))
.unlockedBy("has_red_dye", this.has(Items.RED_DYE))
.save(this.output, "pink_dye_from_red_white_dye");
this.shaped(RecipeCategory.REDSTONE, Blocks.PISTON)
.define('R', Items.REDSTONE)
.define('#', Blocks.COBBLESTONE)
.define('T', ItemTags.PLANKS)
.define('X', Items.IRON_INGOT)
.pattern("TTT")
.pattern("#X#")
.pattern("#R#")
.unlockedBy("has_redstone", this.has(Items.REDSTONE))
.save(this.output);
this.polished(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_BASALT, Blocks.BASALT);
this.twoByTwoPacker(RecipeCategory.BUILDING_BLOCKS, Blocks.PRISMARINE, Items.PRISMARINE_SHARD);
this.threeByThreePacker(RecipeCategory.BUILDING_BLOCKS, Blocks.PRISMARINE_BRICKS, Items.PRISMARINE_SHARD);
this.shapeless(RecipeCategory.FOOD, Items.PUMPKIN_PIE)
.requires(Blocks.PUMPKIN)
.requires(Items.SUGAR)
.requires(Items.EGG)
.unlockedBy("has_carved_pumpkin", this.has(Blocks.CARVED_PUMPKIN))
.unlockedBy("has_pumpkin", this.has(Blocks.PUMPKIN))
.save(this.output);
this.shapeless(RecipeCategory.MISC, Items.PUMPKIN_SEEDS, 4)
.requires(Blocks.PUMPKIN)
.unlockedBy("has_pumpkin", this.has(Blocks.PUMPKIN))
.save(this.output);
this.shapeless(RecipeCategory.MISC, Items.PURPLE_DYE, 2)
.requires(Items.BLUE_DYE)
.requires(Items.RED_DYE)
.unlockedBy("has_blue_dye", this.has(Items.BLUE_DYE))
.unlockedBy("has_red_dye", this.has(Items.RED_DYE))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.SHULKER_BOX)
.define('#', Blocks.CHEST)
.define('-', Items.SHULKER_SHELL)
.pattern("-")
.pattern("#")
.pattern("-")
.unlockedBy("has_shulker_shell", this.has(Items.SHULKER_SHELL))
.save(this.output);
this.shulkerBoxRecipes();
this.shaped(RecipeCategory.BUILDING_BLOCKS, Blocks.PURPUR_BLOCK, 4)
.define('F', Items.POPPED_CHORUS_FRUIT)
.pattern("FF")
.pattern("FF")
.unlockedBy("has_chorus_fruit_popped", this.has(Items.POPPED_CHORUS_FRUIT))
.save(this.output);
this.shaped(RecipeCategory.BUILDING_BLOCKS, Blocks.PURPUR_PILLAR)
.define('#', Blocks.PURPUR_SLAB)
.pattern("#")
.pattern("#")
.unlockedBy("has_purpur_block", this.has(Blocks.PURPUR_BLOCK))
.save(this.output);
this.slabBuilder(RecipeCategory.BUILDING_BLOCKS, Blocks.PURPUR_SLAB, Ingredient.of(Blocks.PURPUR_BLOCK, Blocks.PURPUR_PILLAR))
.unlockedBy("has_purpur_block", this.has(Blocks.PURPUR_BLOCK))
.save(this.output);
this.stairBuilder(Blocks.PURPUR_STAIRS, Ingredient.of(Blocks.PURPUR_BLOCK, Blocks.PURPUR_PILLAR))
.unlockedBy("has_purpur_block", this.has(Blocks.PURPUR_BLOCK))
.save(this.output);
this.twoByTwoPacker(RecipeCategory.BUILDING_BLOCKS, Blocks.QUARTZ_BLOCK, Items.QUARTZ);
this.shaped(RecipeCategory.BUILDING_BLOCKS, Blocks.QUARTZ_BRICKS, 4)
.define('#', Blocks.QUARTZ_BLOCK)
.pattern("##")
.pattern("##")
.unlockedBy("has_quartz_block", this.has(Blocks.QUARTZ_BLOCK))
.save(this.output);
this.slabBuilder(RecipeCategory.BUILDING_BLOCKS, Blocks.QUARTZ_SLAB, Ingredient.of(Blocks.CHISELED_QUARTZ_BLOCK, Blocks.QUARTZ_BLOCK, Blocks.QUARTZ_PILLAR))
.unlockedBy("has_chiseled_quartz_block", this.has(Blocks.CHISELED_QUARTZ_BLOCK))
.unlockedBy("has_quartz_block", this.has(Blocks.QUARTZ_BLOCK))
.unlockedBy("has_quartz_pillar", this.has(Blocks.QUARTZ_PILLAR))
.save(this.output);
this.stairBuilder(Blocks.QUARTZ_STAIRS, Ingredient.of(Blocks.CHISELED_QUARTZ_BLOCK, Blocks.QUARTZ_BLOCK, Blocks.QUARTZ_PILLAR))
.unlockedBy("has_chiseled_quartz_block", this.has(Blocks.CHISELED_QUARTZ_BLOCK))
.unlockedBy("has_quartz_block", this.has(Blocks.QUARTZ_BLOCK))
.unlockedBy("has_quartz_pillar", this.has(Blocks.QUARTZ_PILLAR))
.save(this.output);
this.shapeless(RecipeCategory.FOOD, Items.RABBIT_STEW)
.requires(Items.BAKED_POTATO)
.requires(Items.COOKED_RABBIT)
.requires(Items.BOWL)
.requires(Items.CARROT)
.requires(Blocks.BROWN_MUSHROOM)
.group("rabbit_stew")
.unlockedBy("has_cooked_rabbit", this.has(Items.COOKED_RABBIT))
.save(this.output, getConversionRecipeName(Items.RABBIT_STEW, Items.BROWN_MUSHROOM));
this.shapeless(RecipeCategory.FOOD, Items.RABBIT_STEW)
.requires(Items.BAKED_POTATO)
.requires(Items.COOKED_RABBIT)
.requires(Items.BOWL)
.requires(Items.CARROT)
.requires(Blocks.RED_MUSHROOM)
.group("rabbit_stew")
.unlockedBy("has_cooked_rabbit", this.has(Items.COOKED_RABBIT))
.save(this.output, getConversionRecipeName(Items.RABBIT_STEW, Items.RED_MUSHROOM));
this.shaped(RecipeCategory.TRANSPORTATION, Blocks.RAIL, 16)
.define('#', Items.STICK)
.define('X', Items.IRON_INGOT)
.pattern("X X")
.pattern("X#X")
.pattern("X X")
.unlockedBy("has_minecart", this.has(Items.MINECART))
.save(this.output);
this.nineBlockStorageRecipes(RecipeCategory.REDSTONE, Items.REDSTONE, RecipeCategory.REDSTONE, Items.REDSTONE_BLOCK);
this.shaped(RecipeCategory.REDSTONE, Blocks.REDSTONE_LAMP)
.define('R', Items.REDSTONE)
.define('G', Blocks.GLOWSTONE)
.pattern(" R ")
.pattern("RGR")
.pattern(" R ")
.unlockedBy("has_glowstone", this.has(Blocks.GLOWSTONE))
.save(this.output);
this.shaped(RecipeCategory.REDSTONE, Blocks.REDSTONE_TORCH)
.define('#', Items.STICK)
.define('X', Items.REDSTONE)
.pattern("X")
.pattern("#")
.unlockedBy("has_redstone", this.has(Items.REDSTONE))
.save(this.output);
this.oneToOneConversionRecipe(Items.RED_DYE, Items.BEETROOT, "red_dye");
this.oneToOneConversionRecipe(Items.RED_DYE, Blocks.POPPY, "red_dye");
this.oneToOneConversionRecipe(Items.RED_DYE, Blocks.ROSE_BUSH, "red_dye", 2);
this.oneToOneConversionRecipe(Items.ORANGE_DYE, Blocks.OPEN_EYEBLOSSOM, "orange_dye");
this.oneToOneConversionRecipe(Items.GRAY_DYE, Blocks.CLOSED_EYEBLOSSOM, "gray_dye");
this.shapeless(RecipeCategory.MISC, Items.RED_DYE)
.requires(Blocks.RED_TULIP)
.group("red_dye")
.unlockedBy("has_red_flower", this.has(Blocks.RED_TULIP))
.save(this.output, "red_dye_from_tulip");
this.shaped(RecipeCategory.BUILDING_BLOCKS, Blocks.RED_NETHER_BRICKS)
.define('W', Items.NETHER_WART)
.define('N', Items.NETHER_BRICK)
.pattern("NW")
.pattern("WN")
.unlockedBy("has_nether_wart", this.has(Items.NETHER_WART))
.save(this.output);
this.shaped(RecipeCategory.BUILDING_BLOCKS, Blocks.RED_SANDSTONE)
.define('#', Blocks.RED_SAND)
.pattern("##")
.pattern("##")
.unlockedBy("has_sand", this.has(Blocks.RED_SAND))
.save(this.output);
this.slabBuilder(RecipeCategory.BUILDING_BLOCKS, Blocks.RED_SANDSTONE_SLAB, Ingredient.of(Blocks.RED_SANDSTONE, Blocks.CHISELED_RED_SANDSTONE))
.unlockedBy("has_red_sandstone", this.has(Blocks.RED_SANDSTONE))
.unlockedBy("has_chiseled_red_sandstone", this.has(Blocks.CHISELED_RED_SANDSTONE))
.save(this.output);
this.stairBuilder(Blocks.RED_SANDSTONE_STAIRS, Ingredient.of(Blocks.RED_SANDSTONE, Blocks.CHISELED_RED_SANDSTONE, Blocks.CUT_RED_SANDSTONE))
.unlockedBy("has_red_sandstone", this.has(Blocks.RED_SANDSTONE))
.unlockedBy("has_chiseled_red_sandstone", this.has(Blocks.CHISELED_RED_SANDSTONE))
.unlockedBy("has_cut_red_sandstone", this.has(Blocks.CUT_RED_SANDSTONE))
.save(this.output);
this.shaped(RecipeCategory.REDSTONE, Blocks.REPEATER)
.define('#', Blocks.REDSTONE_TORCH)
.define('X', Items.REDSTONE)
.define('I', Blocks.STONE)
.pattern("#X#")
.pattern("III")
.unlockedBy("has_redstone_torch", this.has(Blocks.REDSTONE_TORCH))
.save(this.output);
this.twoByTwoPacker(RecipeCategory.BUILDING_BLOCKS, Blocks.SANDSTONE, Blocks.SAND);
this.slabBuilder(RecipeCategory.BUILDING_BLOCKS, Blocks.SANDSTONE_SLAB, Ingredient.of(Blocks.SANDSTONE, Blocks.CHISELED_SANDSTONE))
.unlockedBy("has_sandstone", this.has(Blocks.SANDSTONE))
.unlockedBy("has_chiseled_sandstone", this.has(Blocks.CHISELED_SANDSTONE))
.save(this.output);
this.stairBuilder(Blocks.SANDSTONE_STAIRS, Ingredient.of(Blocks.SANDSTONE, Blocks.CHISELED_SANDSTONE, Blocks.CUT_SANDSTONE))
.unlockedBy("has_sandstone", this.has(Blocks.SANDSTONE))
.unlockedBy("has_chiseled_sandstone", this.has(Blocks.CHISELED_SANDSTONE))
.unlockedBy("has_cut_sandstone", this.has(Blocks.CUT_SANDSTONE))
.save(this.output);
this.shaped(RecipeCategory.BUILDING_BLOCKS, Blocks.SEA_LANTERN)
.define('S', Items.PRISMARINE_SHARD)
.define('C', Items.PRISMARINE_CRYSTALS)
.pattern("SCS")
.pattern("CCC")
.pattern("SCS")
.unlockedBy("has_prismarine_crystals", this.has(Items.PRISMARINE_CRYSTALS))
.save(this.output);
this.shaped(RecipeCategory.TOOLS, Items.SHEARS)
.define('#', Items.IRON_INGOT)
.pattern(" #")
.pattern("# ")
.unlockedBy("has_iron_ingot", this.has(Items.IRON_INGOT))
.save(this.output);
this.shaped(RecipeCategory.COMBAT, Items.SHIELD)
.define('W', ItemTags.WOODEN_TOOL_MATERIALS)
.define('o', Items.IRON_INGOT)
.pattern("WoW")
.pattern("WWW")
.pattern(" W ")
.unlockedBy("has_iron_ingot", this.has(Items.IRON_INGOT))
.save(this.output);
this.nineBlockStorageRecipes(RecipeCategory.MISC, Items.SLIME_BALL, RecipeCategory.REDSTONE, Items.SLIME_BLOCK);
this.cut(RecipeCategory.BUILDING_BLOCKS, Blocks.CUT_RED_SANDSTONE, Blocks.RED_SANDSTONE);
this.cut(RecipeCategory.BUILDING_BLOCKS, Blocks.CUT_SANDSTONE, Blocks.SANDSTONE);
this.twoByTwoPacker(RecipeCategory.BUILDING_BLOCKS, Blocks.SNOW_BLOCK, Items.SNOWBALL);
this.shaped(RecipeCategory.DECORATIONS, Blocks.SNOW, 6)
.define('#', Blocks.SNOW_BLOCK)
.pattern("###")
.unlockedBy("has_snowball", this.has(Items.SNOWBALL))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.SOUL_CAMPFIRE)
.define('L', ItemTags.LOGS)
.define('S', Items.STICK)
.define('#', ItemTags.SOUL_FIRE_BASE_BLOCKS)
.pattern(" S ")
.pattern("S#S")
.pattern("LLL")
.unlockedBy("has_soul_sand", this.has(ItemTags.SOUL_FIRE_BASE_BLOCKS))
.save(this.output);
this.shaped(RecipeCategory.BREWING, Items.GLISTERING_MELON_SLICE)
.define('#', Items.GOLD_NUGGET)
.define('X', Items.MELON_SLICE)
.pattern("###")
.pattern("#X#")
.pattern("###")
.unlockedBy("has_melon", this.has(Items.MELON_SLICE))
.save(this.output);
this.shaped(RecipeCategory.COMBAT, Items.SPECTRAL_ARROW, 2)
.define('#', Items.GLOWSTONE_DUST)
.define('X', Items.ARROW)
.pattern(" # ")
.pattern("#X#")
.pattern(" # ")
.unlockedBy("has_glowstone_dust", this.has(Items.GLOWSTONE_DUST))
.save(this.output);
this.shaped(RecipeCategory.TOOLS, Items.SPYGLASS)
.define('#', Items.AMETHYST_SHARD)
.define('X', Items.COPPER_INGOT)
.pattern(" # ")
.pattern(" X ")
.pattern(" X ")
.unlockedBy("has_amethyst_shard", this.has(Items.AMETHYST_SHARD))
.save(this.output);
this.shaped(RecipeCategory.MISC, Items.STICK, 4)
.define('#', ItemTags.PLANKS)
.pattern("#")
.pattern("#")
.group("sticks")
.unlockedBy("has_planks", this.has(ItemTags.PLANKS))
.save(this.output);
this.shaped(RecipeCategory.MISC, Items.STICK, 1)
.define('#', Blocks.BAMBOO)
.pattern("#")
.pattern("#")
.group("sticks")
.unlockedBy("has_bamboo", this.has(Blocks.BAMBOO))
.save(this.output, "stick_from_bamboo_item");
this.shaped(RecipeCategory.REDSTONE, Blocks.STICKY_PISTON)
.define('P', Blocks.PISTON)
.define('S', Items.SLIME_BALL)
.pattern("S")
.pattern("P")
.unlockedBy("has_slime_ball", this.has(Items.SLIME_BALL))
.save(this.output);
this.shaped(RecipeCategory.BUILDING_BLOCKS, Blocks.STONE_BRICKS, 4)
.define('#', Blocks.STONE)
.pattern("##")
.pattern("##")
.unlockedBy("has_stone", this.has(Blocks.STONE))
.save(this.output);
this.shaped(RecipeCategory.TOOLS, Items.STONE_AXE)
.define('#', Items.STICK)
.define('X', ItemTags.STONE_TOOL_MATERIALS)
.pattern("XX")
.pattern("X#")
.pattern(" #")
.unlockedBy("has_cobblestone", this.has(ItemTags.STONE_TOOL_MATERIALS))
.save(this.output);
this.slabBuilder(RecipeCategory.BUILDING_BLOCKS, Blocks.STONE_BRICK_SLAB, Ingredient.of(Blocks.STONE_BRICKS))
.unlockedBy("has_stone_bricks", this.has(ItemTags.STONE_BRICKS))
.save(this.output);
this.stairBuilder(Blocks.STONE_BRICK_STAIRS, Ingredient.of(Blocks.STONE_BRICKS))
.unlockedBy("has_stone_bricks", this.has(ItemTags.STONE_BRICKS))
.save(this.output);
this.shaped(RecipeCategory.TOOLS, Items.STONE_HOE)
.define('#', Items.STICK)
.define('X', ItemTags.STONE_TOOL_MATERIALS)
.pattern("XX")
.pattern(" #")
.pattern(" #")
.unlockedBy("has_cobblestone", this.has(ItemTags.STONE_TOOL_MATERIALS))
.save(this.output);
this.shaped(RecipeCategory.TOOLS, Items.STONE_PICKAXE)
.define('#', Items.STICK)
.define('X', ItemTags.STONE_TOOL_MATERIALS)
.pattern("XXX")
.pattern(" # ")
.pattern(" # ")
.unlockedBy("has_cobblestone", this.has(ItemTags.STONE_TOOL_MATERIALS))
.save(this.output);
this.shaped(RecipeCategory.TOOLS, Items.STONE_SHOVEL)
.define('#', Items.STICK)
.define('X', ItemTags.STONE_TOOL_MATERIALS)
.pattern("X")
.pattern("#")
.pattern("#")
.unlockedBy("has_cobblestone", this.has(ItemTags.STONE_TOOL_MATERIALS))
.save(this.output);
this.slab(RecipeCategory.BUILDING_BLOCKS, Blocks.SMOOTH_STONE_SLAB, Blocks.SMOOTH_STONE);
this.shaped(RecipeCategory.COMBAT, Items.STONE_SWORD)
.define('#', Items.STICK)
.define('X', ItemTags.STONE_TOOL_MATERIALS)
.pattern("X")
.pattern("X")
.pattern("#")
.unlockedBy("has_cobblestone", this.has(ItemTags.STONE_TOOL_MATERIALS))
.save(this.output);
this.shaped(RecipeCategory.BUILDING_BLOCKS, Blocks.WHITE_WOOL)
.define('#', Items.STRING)
.pattern("##")
.pattern("##")
.unlockedBy("has_string", this.has(Items.STRING))
.save(this.output, getConversionRecipeName(Blocks.WHITE_WOOL, Items.STRING));
this.oneToOneConversionRecipe(Items.SUGAR, Blocks.SUGAR_CANE, "sugar");
this.shapeless(RecipeCategory.MISC, Items.SUGAR, 3)
.requires(Items.HONEY_BOTTLE)
.group("sugar")
.unlockedBy("has_honey_bottle", this.has(Items.HONEY_BOTTLE))
.save(this.output, getConversionRecipeName(Items.SUGAR, Items.HONEY_BOTTLE));
this.shaped(RecipeCategory.REDSTONE, Blocks.TARGET)
.define('H', Items.HAY_BLOCK)
.define('R', Items.REDSTONE)
.pattern(" R ")
.pattern("RHR")
.pattern(" R ")
.unlockedBy("has_redstone", this.has(Items.REDSTONE))
.unlockedBy("has_hay_block", this.has(Blocks.HAY_BLOCK))
.save(this.output);
this.shaped(RecipeCategory.REDSTONE, Blocks.TNT)
.define('#', Ingredient.of(Blocks.SAND, Blocks.RED_SAND))
.define('X', Items.GUNPOWDER)
.pattern("X#X")
.pattern("#X#")
.pattern("X#X")
.unlockedBy("has_gunpowder", this.has(Items.GUNPOWDER))
.save(this.output);
this.shapeless(RecipeCategory.TRANSPORTATION, Items.TNT_MINECART)
.requires(Blocks.TNT)
.requires(Items.MINECART)
.unlockedBy("has_minecart", this.has(Items.MINECART))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.TORCH, 4)
.define('#', Items.STICK)
.define('X', Ingredient.of(Items.COAL, Items.CHARCOAL))
.pattern("X")
.pattern("#")
.unlockedBy("has_stone_pickaxe", this.has(Items.STONE_PICKAXE))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.SOUL_TORCH, 4)
.define('X', Ingredient.of(Items.COAL, Items.CHARCOAL))
.define('#', Items.STICK)
.define('S', ItemTags.SOUL_FIRE_BASE_BLOCKS)
.pattern("X")
.pattern("#")
.pattern("S")
.unlockedBy("has_soul_sand", this.has(ItemTags.SOUL_FIRE_BASE_BLOCKS))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.LANTERN)
.define('#', Items.TORCH)
.define('X', Items.IRON_NUGGET)
.pattern("XXX")
.pattern("X#X")
.pattern("XXX")
.unlockedBy("has_iron_nugget", this.has(Items.IRON_NUGGET))
.unlockedBy("has_iron_ingot", this.has(Items.IRON_INGOT))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.SOUL_LANTERN)
.define('#', Items.SOUL_TORCH)
.define('X', Items.IRON_NUGGET)
.pattern("XXX")
.pattern("X#X")
.pattern("XXX")
.unlockedBy("has_soul_torch", this.has(Items.SOUL_TORCH))
.save(this.output);
this.shapeless(RecipeCategory.REDSTONE, Blocks.TRAPPED_CHEST)
.requires(Blocks.CHEST)
.requires(Blocks.TRIPWIRE_HOOK)
.unlockedBy("has_tripwire_hook", this.has(Blocks.TRIPWIRE_HOOK))
.save(this.output);
this.shaped(RecipeCategory.REDSTONE, Blocks.TRIPWIRE_HOOK, 2)
.define('#', ItemTags.PLANKS)
.define('S', Items.STICK)
.define('I', Items.IRON_INGOT)
.pattern("I")
.pattern("S")
.pattern("#")
.unlockedBy("has_string", this.has(Items.STRING))
.save(this.output);
this.shaped(RecipeCategory.COMBAT, Items.TURTLE_HELMET)
.define('X', Items.TURTLE_SCUTE)
.pattern("XXX")
.pattern("X X")
.unlockedBy("has_turtle_scute", this.has(Items.TURTLE_SCUTE))
.save(this.output);
this.shaped(RecipeCategory.COMBAT, Items.WOLF_ARMOR)
.define('X', Items.ARMADILLO_SCUTE)
.pattern("X ")
.pattern("XXX")
.pattern("X X")
.unlockedBy("has_armadillo_scute", this.has(Items.ARMADILLO_SCUTE))
.save(this.output);
this.shapeless(RecipeCategory.MISC, Items.WHEAT, 9)
.requires(Blocks.HAY_BLOCK)
.unlockedBy("has_hay_block", this.has(Blocks.HAY_BLOCK))
.save(this.output);
this.shapeless(RecipeCategory.MISC, Items.WHITE_DYE)
.requires(Items.BONE_MEAL)
.group("white_dye")
.unlockedBy("has_bone_meal", this.has(Items.BONE_MEAL))
.save(this.output);
this.oneToOneConversionRecipe(Items.WHITE_DYE, Blocks.LILY_OF_THE_VALLEY, "white_dye");
this.shaped(RecipeCategory.TOOLS, Items.WOODEN_AXE)
.define('#', Items.STICK)
.define('X', ItemTags.WOODEN_TOOL_MATERIALS)
.pattern("XX")
.pattern("X#")
.pattern(" #")
.unlockedBy("has_stick", this.has(Items.STICK))
.save(this.output);
this.shaped(RecipeCategory.TOOLS, Items.WOODEN_HOE)
.define('#', Items.STICK)
.define('X', ItemTags.WOODEN_TOOL_MATERIALS)
.pattern("XX")
.pattern(" #")
.pattern(" #")
.unlockedBy("has_stick", this.has(Items.STICK))
.save(this.output);
this.shaped(RecipeCategory.TOOLS, Items.WOODEN_PICKAXE)
.define('#', Items.STICK)
.define('X', ItemTags.WOODEN_TOOL_MATERIALS)
.pattern("XXX")
.pattern(" # ")
.pattern(" # ")
.unlockedBy("has_stick", this.has(Items.STICK))
.save(this.output);
this.shaped(RecipeCategory.TOOLS, Items.WOODEN_SHOVEL)
.define('#', Items.STICK)
.define('X', ItemTags.WOODEN_TOOL_MATERIALS)
.pattern("X")
.pattern("#")
.pattern("#")
.unlockedBy("has_stick", this.has(Items.STICK))
.save(this.output);
this.shaped(RecipeCategory.COMBAT, Items.WOODEN_SWORD)
.define('#', Items.STICK)
.define('X', ItemTags.WOODEN_TOOL_MATERIALS)
.pattern("X")
.pattern("X")
.pattern("#")
.unlockedBy("has_stick", this.has(Items.STICK))
.save(this.output);
this.shapeless(RecipeCategory.MISC, Items.WRITABLE_BOOK)
.requires(Items.BOOK)
.requires(Items.INK_SAC)
.requires(Items.FEATHER)
.unlockedBy("has_book", this.has(Items.BOOK))
.save(this.output);
this.oneToOneConversionRecipe(Items.YELLOW_DYE, Blocks.DANDELION, "yellow_dye");
this.oneToOneConversionRecipe(Items.YELLOW_DYE, Blocks.SUNFLOWER, "yellow_dye", 2);
this.nineBlockStorageRecipes(RecipeCategory.FOOD, Items.DRIED_KELP, RecipeCategory.BUILDING_BLOCKS, Items.DRIED_KELP_BLOCK);
this.shaped(RecipeCategory.MISC, Blocks.CONDUIT)
.define('#', Items.NAUTILUS_SHELL)
.define('X', Items.HEART_OF_THE_SEA)
.pattern("###")
.pattern("#X#")
.pattern("###")
.unlockedBy("has_nautilus_core", this.has(Items.HEART_OF_THE_SEA))
.unlockedBy("has_nautilus_shell", this.has(Items.NAUTILUS_SHELL))
.save(this.output);
this.wall(RecipeCategory.DECORATIONS, Blocks.RED_SANDSTONE_WALL, Blocks.RED_SANDSTONE);
this.wall(RecipeCategory.DECORATIONS, Blocks.STONE_BRICK_WALL, Blocks.STONE_BRICKS);
this.wall(RecipeCategory.DECORATIONS, Blocks.SANDSTONE_WALL, Blocks.SANDSTONE);
this.shapeless(RecipeCategory.MISC, Items.FIELD_MASONED_BANNER_PATTERN)
.requires(Items.PAPER)
.requires(Blocks.BRICKS)
.unlockedBy("has_bricks", this.has(Blocks.BRICKS))
.save(this.output);
this.shapeless(RecipeCategory.MISC, Items.BORDURE_INDENTED_BANNER_PATTERN)
.requires(Items.PAPER)
.requires(Blocks.VINE)
.unlockedBy("has_vines", this.has(Blocks.VINE))
.save(this.output);
this.shapeless(RecipeCategory.MISC, Items.CREEPER_BANNER_PATTERN)
.requires(Items.PAPER)
.requires(Items.CREEPER_HEAD)
.unlockedBy("has_creeper_head", this.has(Items.CREEPER_HEAD))
.save(this.output);
this.shapeless(RecipeCategory.MISC, Items.SKULL_BANNER_PATTERN)
.requires(Items.PAPER)
.requires(Items.WITHER_SKELETON_SKULL)
.unlockedBy("has_wither_skeleton_skull", this.has(Items.WITHER_SKELETON_SKULL))
.save(this.output);
this.shapeless(RecipeCategory.MISC, Items.FLOWER_BANNER_PATTERN)
.requires(Items.PAPER)
.requires(Blocks.OXEYE_DAISY)
.unlockedBy("has_oxeye_daisy", this.has(Blocks.OXEYE_DAISY))
.save(this.output);
this.shapeless(RecipeCategory.MISC, Items.MOJANG_BANNER_PATTERN)
.requires(Items.PAPER)
.requires(Items.ENCHANTED_GOLDEN_APPLE)
.unlockedBy("has_enchanted_golden_apple", this.has(Items.ENCHANTED_GOLDEN_APPLE))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.SCAFFOLDING, 6)
.define('~', Items.STRING)
.define('I', Blocks.BAMBOO)
.pattern("I~I")
.pattern("I I")
.pattern("I I")
.unlockedBy("has_bamboo", this.has(Blocks.BAMBOO))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.GRINDSTONE)
.define('I', Items.STICK)
.define('-', Blocks.STONE_SLAB)
.define('#', ItemTags.PLANKS)
.pattern("I-I")
.pattern("# #")
.unlockedBy("has_stone_slab", this.has(Blocks.STONE_SLAB))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.BLAST_FURNACE)
.define('#', Blocks.SMOOTH_STONE)
.define('X', Blocks.FURNACE)
.define('I', Items.IRON_INGOT)
.pattern("III")
.pattern("IXI")
.pattern("###")
.unlockedBy("has_smooth_stone", this.has(Blocks.SMOOTH_STONE))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.SMOKER)
.define('#', ItemTags.LOGS)
.define('X', Blocks.FURNACE)
.pattern(" # ")
.pattern("#X#")
.pattern(" # ")
.unlockedBy("has_furnace", this.has(Blocks.FURNACE))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.CARTOGRAPHY_TABLE)
.define('#', ItemTags.PLANKS)
.define('@', Items.PAPER)
.pattern("@@")
.pattern("##")
.pattern("##")
.unlockedBy("has_paper", this.has(Items.PAPER))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.SMITHING_TABLE)
.define('#', ItemTags.PLANKS)
.define('@', Items.IRON_INGOT)
.pattern("@@")
.pattern("##")
.pattern("##")
.unlockedBy("has_iron_ingot", this.has(Items.IRON_INGOT))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.FLETCHING_TABLE)
.define('#', ItemTags.PLANKS)
.define('@', Items.FLINT)
.pattern("@@")
.pattern("##")
.pattern("##")
.unlockedBy("has_flint", this.has(Items.FLINT))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.STONECUTTER)
.define('I', Items.IRON_INGOT)
.define('#', Blocks.STONE)
.pattern(" I ")
.pattern("###")
.unlockedBy("has_stone", this.has(Blocks.STONE))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.LODESTONE)
.define('S', Items.CHISELED_STONE_BRICKS)
.define('#', Items.NETHERITE_INGOT)
.pattern("SSS")
.pattern("S#S")
.pattern("SSS")
.unlockedBy("has_netherite_ingot", this.has(Items.NETHERITE_INGOT))
.save(this.output);
this.nineBlockStorageRecipesRecipesWithCustomUnpacking(
RecipeCategory.MISC, Items.NETHERITE_INGOT, RecipeCategory.BUILDING_BLOCKS, Items.NETHERITE_BLOCK, "netherite_ingot_from_netherite_block", "netherite_ingot"
);
this.shapeless(RecipeCategory.MISC, Items.NETHERITE_INGOT)
.requires(Items.NETHERITE_SCRAP, 4)
.requires(Items.GOLD_INGOT, 4)
.group("netherite_ingot")
.unlockedBy("has_netherite_scrap", this.has(Items.NETHERITE_SCRAP))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.RESPAWN_ANCHOR)
.define('O', Blocks.CRYING_OBSIDIAN)
.define('G', Blocks.GLOWSTONE)
.pattern("OOO")
.pattern("GGG")
.pattern("OOO")
.unlockedBy("has_obsidian", this.has(Blocks.CRYING_OBSIDIAN))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Blocks.CHAIN)
.define('I', Items.IRON_INGOT)
.define('N', Items.IRON_NUGGET)
.pattern("N")
.pattern("I")
.pattern("N")
.unlockedBy("has_iron_nugget", this.has(Items.IRON_NUGGET))
.unlockedBy("has_iron_ingot", this.has(Items.IRON_INGOT))
.save(this.output);
this.shaped(RecipeCategory.BUILDING_BLOCKS, Blocks.TINTED_GLASS, 2)
.define('G', Blocks.GLASS)
.define('S', Items.AMETHYST_SHARD)
.pattern(" S ")
.pattern("SGS")
.pattern(" S ")
.unlockedBy("has_amethyst_shard", this.has(Items.AMETHYST_SHARD))
.save(this.output);
this.twoByTwoPacker(RecipeCategory.BUILDING_BLOCKS, Blocks.AMETHYST_BLOCK, Items.AMETHYST_SHARD);
this.shaped(RecipeCategory.TOOLS, Items.RECOVERY_COMPASS)
.define('C', Items.COMPASS)
.define('S', Items.ECHO_SHARD)
.pattern("SSS")
.pattern("SCS")
.pattern("SSS")
.unlockedBy("has_echo_shard", this.has(Items.ECHO_SHARD))
.save(this.output);
this.shaped(RecipeCategory.REDSTONE, Items.CALIBRATED_SCULK_SENSOR)
.define('#', Items.AMETHYST_SHARD)
.define('X', Items.SCULK_SENSOR)
.pattern(" # ")
.pattern("#X#")
.unlockedBy("has_amethyst_shard", this.has(Items.AMETHYST_SHARD))
.save(this.output);
this.threeByThreePacker(RecipeCategory.MISC, Items.MUSIC_DISC_5, Items.DISC_FRAGMENT_5);
SpecialRecipeBuilder.special(ArmorDyeRecipe::new).save(this.output, "armor_dye");
SpecialRecipeBuilder.special(BannerDuplicateRecipe::new).save(this.output, "banner_duplicate");
SpecialRecipeBuilder.special(BookCloningRecipe::new).save(this.output, "book_cloning");
SpecialRecipeBuilder.special(FireworkRocketRecipe::new).save(this.output, "firework_rocket");
SpecialRecipeBuilder.special(FireworkStarRecipe::new).save(this.output, "firework_star");
SpecialRecipeBuilder.special(FireworkStarFadeRecipe::new).save(this.output, "firework_star_fade");
SpecialRecipeBuilder.special(MapCloningRecipe::new).save(this.output, "map_cloning");
SpecialRecipeBuilder.special(MapExtendingRecipe::new).save(this.output, "map_extending");
SpecialRecipeBuilder.special(RepairItemRecipe::new).save(this.output, "repair_item");
SpecialRecipeBuilder.special(ShieldDecorationRecipe::new).save(this.output, "shield_decoration");
SpecialRecipeBuilder.special(TippedArrowRecipe::new).save(this.output, "tipped_arrow");
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Items.POTATO), RecipeCategory.FOOD, Items.BAKED_POTATO, 0.35F, 200)
.unlockedBy("has_potato", this.has(Items.POTATO))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Items.CLAY_BALL), RecipeCategory.MISC, Items.BRICK, 0.3F, 200)
.unlockedBy("has_clay_ball", this.has(Items.CLAY_BALL))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(this.tag(ItemTags.LOGS_THAT_BURN), RecipeCategory.MISC, Items.CHARCOAL, 0.15F, 200)
.unlockedBy("has_log", this.has(ItemTags.LOGS_THAT_BURN))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Items.CHORUS_FRUIT), RecipeCategory.MISC, Items.POPPED_CHORUS_FRUIT, 0.1F, 200)
.unlockedBy("has_chorus_fruit", this.has(Items.CHORUS_FRUIT))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Items.BEEF), RecipeCategory.FOOD, Items.COOKED_BEEF, 0.35F, 200)
.unlockedBy("has_beef", this.has(Items.BEEF))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Items.CHICKEN), RecipeCategory.FOOD, Items.COOKED_CHICKEN, 0.35F, 200)
.unlockedBy("has_chicken", this.has(Items.CHICKEN))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Items.COD), RecipeCategory.FOOD, Items.COOKED_COD, 0.35F, 200)
.unlockedBy("has_cod", this.has(Items.COD))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.KELP), RecipeCategory.FOOD, Items.DRIED_KELP, 0.1F, 200)
.unlockedBy("has_kelp", this.has(Blocks.KELP))
.save(this.output, getSmeltingRecipeName(Items.DRIED_KELP));
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Items.SALMON), RecipeCategory.FOOD, Items.COOKED_SALMON, 0.35F, 200)
.unlockedBy("has_salmon", this.has(Items.SALMON))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Items.MUTTON), RecipeCategory.FOOD, Items.COOKED_MUTTON, 0.35F, 200)
.unlockedBy("has_mutton", this.has(Items.MUTTON))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Items.PORKCHOP), RecipeCategory.FOOD, Items.COOKED_PORKCHOP, 0.35F, 200)
.unlockedBy("has_porkchop", this.has(Items.PORKCHOP))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Items.RABBIT), RecipeCategory.FOOD, Items.COOKED_RABBIT, 0.35F, 200)
.unlockedBy("has_rabbit", this.has(Items.RABBIT))
.save(this.output);
this.oreSmelting(COAL_SMELTABLES, RecipeCategory.MISC, Items.COAL, 0.1F, 200, "coal");
this.oreSmelting(IRON_SMELTABLES, RecipeCategory.MISC, Items.IRON_INGOT, 0.7F, 200, "iron_ingot");
this.oreSmelting(COPPER_SMELTABLES, RecipeCategory.MISC, Items.COPPER_INGOT, 0.7F, 200, "copper_ingot");
this.oreSmelting(GOLD_SMELTABLES, RecipeCategory.MISC, Items.GOLD_INGOT, 1.0F, 200, "gold_ingot");
this.oreSmelting(DIAMOND_SMELTABLES, RecipeCategory.MISC, Items.DIAMOND, 1.0F, 200, "diamond");
this.oreSmelting(LAPIS_SMELTABLES, RecipeCategory.MISC, Items.LAPIS_LAZULI, 0.2F, 200, "lapis_lazuli");
this.oreSmelting(REDSTONE_SMELTABLES, RecipeCategory.REDSTONE, Items.REDSTONE, 0.7F, 200, "redstone");
this.oreSmelting(EMERALD_SMELTABLES, RecipeCategory.MISC, Items.EMERALD, 1.0F, 200, "emerald");
this.nineBlockStorageRecipes(RecipeCategory.MISC, Items.RAW_IRON, RecipeCategory.BUILDING_BLOCKS, Items.RAW_IRON_BLOCK);
this.nineBlockStorageRecipes(RecipeCategory.MISC, Items.RAW_COPPER, RecipeCategory.BUILDING_BLOCKS, Items.RAW_COPPER_BLOCK);
this.nineBlockStorageRecipes(RecipeCategory.MISC, Items.RAW_GOLD, RecipeCategory.BUILDING_BLOCKS, Items.RAW_GOLD_BLOCK);
SimpleCookingRecipeBuilder.smelting(this.tag(ItemTags.SMELTS_TO_GLASS), RecipeCategory.BUILDING_BLOCKS, Blocks.GLASS.asItem(), 0.1F, 200)
.unlockedBy("has_smelts_to_glass", this.has(ItemTags.SMELTS_TO_GLASS))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.SEA_PICKLE), RecipeCategory.MISC, Items.LIME_DYE, 0.1F, 200)
.unlockedBy("has_sea_pickle", this.has(Blocks.SEA_PICKLE))
.save(this.output, getSmeltingRecipeName(Items.LIME_DYE));
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.CACTUS.asItem()), RecipeCategory.MISC, Items.GREEN_DYE, 1.0F, 200)
.unlockedBy("has_cactus", this.has(Blocks.CACTUS))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(
Ingredient.of(
Items.GOLDEN_PICKAXE,
Items.GOLDEN_SHOVEL,
Items.GOLDEN_AXE,
Items.GOLDEN_HOE,
Items.GOLDEN_SWORD,
Items.GOLDEN_HELMET,
Items.GOLDEN_CHESTPLATE,
Items.GOLDEN_LEGGINGS,
Items.GOLDEN_BOOTS,
Items.GOLDEN_HORSE_ARMOR
),
RecipeCategory.MISC,
Items.GOLD_NUGGET,
0.1F,
200
)
.unlockedBy("has_golden_pickaxe", this.has(Items.GOLDEN_PICKAXE))
.unlockedBy("has_golden_shovel", this.has(Items.GOLDEN_SHOVEL))
.unlockedBy("has_golden_axe", this.has(Items.GOLDEN_AXE))
.unlockedBy("has_golden_hoe", this.has(Items.GOLDEN_HOE))
.unlockedBy("has_golden_sword", this.has(Items.GOLDEN_SWORD))
.unlockedBy("has_golden_helmet", this.has(Items.GOLDEN_HELMET))
.unlockedBy("has_golden_chestplate", this.has(Items.GOLDEN_CHESTPLATE))
.unlockedBy("has_golden_leggings", this.has(Items.GOLDEN_LEGGINGS))
.unlockedBy("has_golden_boots", this.has(Items.GOLDEN_BOOTS))
.unlockedBy("has_golden_horse_armor", this.has(Items.GOLDEN_HORSE_ARMOR))
.save(this.output, getSmeltingRecipeName(Items.GOLD_NUGGET));
SimpleCookingRecipeBuilder.smelting(
Ingredient.of(
Items.IRON_PICKAXE,
Items.IRON_SHOVEL,
Items.IRON_AXE,
Items.IRON_HOE,
Items.IRON_SWORD,
Items.IRON_HELMET,
Items.IRON_CHESTPLATE,
Items.IRON_LEGGINGS,
Items.IRON_BOOTS,
Items.IRON_HORSE_ARMOR,
Items.CHAINMAIL_HELMET,
Items.CHAINMAIL_CHESTPLATE,
Items.CHAINMAIL_LEGGINGS,
Items.CHAINMAIL_BOOTS
),
RecipeCategory.MISC,
Items.IRON_NUGGET,
0.1F,
200
)
.unlockedBy("has_iron_pickaxe", this.has(Items.IRON_PICKAXE))
.unlockedBy("has_iron_shovel", this.has(Items.IRON_SHOVEL))
.unlockedBy("has_iron_axe", this.has(Items.IRON_AXE))
.unlockedBy("has_iron_hoe", this.has(Items.IRON_HOE))
.unlockedBy("has_iron_sword", this.has(Items.IRON_SWORD))
.unlockedBy("has_iron_helmet", this.has(Items.IRON_HELMET))
.unlockedBy("has_iron_chestplate", this.has(Items.IRON_CHESTPLATE))
.unlockedBy("has_iron_leggings", this.has(Items.IRON_LEGGINGS))
.unlockedBy("has_iron_boots", this.has(Items.IRON_BOOTS))
.unlockedBy("has_iron_horse_armor", this.has(Items.IRON_HORSE_ARMOR))
.unlockedBy("has_chainmail_helmet", this.has(Items.CHAINMAIL_HELMET))
.unlockedBy("has_chainmail_chestplate", this.has(Items.CHAINMAIL_CHESTPLATE))
.unlockedBy("has_chainmail_leggings", this.has(Items.CHAINMAIL_LEGGINGS))
.unlockedBy("has_chainmail_boots", this.has(Items.CHAINMAIL_BOOTS))
.save(this.output, getSmeltingRecipeName(Items.IRON_NUGGET));
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.CLAY), RecipeCategory.BUILDING_BLOCKS, Blocks.TERRACOTTA.asItem(), 0.35F, 200)
.unlockedBy("has_clay_block", this.has(Blocks.CLAY))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.NETHERRACK), RecipeCategory.MISC, Items.NETHER_BRICK, 0.1F, 200)
.unlockedBy("has_netherrack", this.has(Blocks.NETHERRACK))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Items.RESIN_CLUMP), RecipeCategory.MISC, Items.RESIN_BRICK, 0.1F, 200)
.unlockedBy("has_resin_clump", this.has(Blocks.RESIN_CLUMP))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.NETHER_QUARTZ_ORE), RecipeCategory.MISC, Items.QUARTZ, 0.2F, 200)
.unlockedBy("has_nether_quartz_ore", this.has(Blocks.NETHER_QUARTZ_ORE))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.WET_SPONGE), RecipeCategory.BUILDING_BLOCKS, Blocks.SPONGE.asItem(), 0.15F, 200)
.unlockedBy("has_wet_sponge", this.has(Blocks.WET_SPONGE))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.COBBLESTONE), RecipeCategory.BUILDING_BLOCKS, Blocks.STONE.asItem(), 0.1F, 200)
.unlockedBy("has_cobblestone", this.has(Blocks.COBBLESTONE))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.STONE), RecipeCategory.BUILDING_BLOCKS, Blocks.SMOOTH_STONE.asItem(), 0.1F, 200)
.unlockedBy("has_stone", this.has(Blocks.STONE))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.SANDSTONE), RecipeCategory.BUILDING_BLOCKS, Blocks.SMOOTH_SANDSTONE.asItem(), 0.1F, 200)
.unlockedBy("has_sandstone", this.has(Blocks.SANDSTONE))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.RED_SANDSTONE), RecipeCategory.BUILDING_BLOCKS, Blocks.SMOOTH_RED_SANDSTONE.asItem(), 0.1F, 200)
.unlockedBy("has_red_sandstone", this.has(Blocks.RED_SANDSTONE))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.QUARTZ_BLOCK), RecipeCategory.BUILDING_BLOCKS, Blocks.SMOOTH_QUARTZ.asItem(), 0.1F, 200)
.unlockedBy("has_quartz_block", this.has(Blocks.QUARTZ_BLOCK))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.STONE_BRICKS), RecipeCategory.BUILDING_BLOCKS, Blocks.CRACKED_STONE_BRICKS.asItem(), 0.1F, 200)
.unlockedBy("has_stone_bricks", this.has(Blocks.STONE_BRICKS))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.BLACK_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.BLACK_GLAZED_TERRACOTTA.asItem(), 0.1F, 200)
.unlockedBy("has_black_terracotta", this.has(Blocks.BLACK_TERRACOTTA))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.BLUE_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.BLUE_GLAZED_TERRACOTTA.asItem(), 0.1F, 200)
.unlockedBy("has_blue_terracotta", this.has(Blocks.BLUE_TERRACOTTA))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.BROWN_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.BROWN_GLAZED_TERRACOTTA.asItem(), 0.1F, 200)
.unlockedBy("has_brown_terracotta", this.has(Blocks.BROWN_TERRACOTTA))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.CYAN_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.CYAN_GLAZED_TERRACOTTA.asItem(), 0.1F, 200)
.unlockedBy("has_cyan_terracotta", this.has(Blocks.CYAN_TERRACOTTA))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.GRAY_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.GRAY_GLAZED_TERRACOTTA.asItem(), 0.1F, 200)
.unlockedBy("has_gray_terracotta", this.has(Blocks.GRAY_TERRACOTTA))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.GREEN_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.GREEN_GLAZED_TERRACOTTA.asItem(), 0.1F, 200)
.unlockedBy("has_green_terracotta", this.has(Blocks.GREEN_TERRACOTTA))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.LIGHT_BLUE_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.LIGHT_BLUE_GLAZED_TERRACOTTA.asItem(), 0.1F, 200)
.unlockedBy("has_light_blue_terracotta", this.has(Blocks.LIGHT_BLUE_TERRACOTTA))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.LIGHT_GRAY_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.LIGHT_GRAY_GLAZED_TERRACOTTA.asItem(), 0.1F, 200)
.unlockedBy("has_light_gray_terracotta", this.has(Blocks.LIGHT_GRAY_TERRACOTTA))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.LIME_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.LIME_GLAZED_TERRACOTTA.asItem(), 0.1F, 200)
.unlockedBy("has_lime_terracotta", this.has(Blocks.LIME_TERRACOTTA))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.MAGENTA_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.MAGENTA_GLAZED_TERRACOTTA.asItem(), 0.1F, 200)
.unlockedBy("has_magenta_terracotta", this.has(Blocks.MAGENTA_TERRACOTTA))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.ORANGE_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.ORANGE_GLAZED_TERRACOTTA.asItem(), 0.1F, 200)
.unlockedBy("has_orange_terracotta", this.has(Blocks.ORANGE_TERRACOTTA))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.PINK_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.PINK_GLAZED_TERRACOTTA.asItem(), 0.1F, 200)
.unlockedBy("has_pink_terracotta", this.has(Blocks.PINK_TERRACOTTA))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.PURPLE_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.PURPLE_GLAZED_TERRACOTTA.asItem(), 0.1F, 200)
.unlockedBy("has_purple_terracotta", this.has(Blocks.PURPLE_TERRACOTTA))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.RED_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.RED_GLAZED_TERRACOTTA.asItem(), 0.1F, 200)
.unlockedBy("has_red_terracotta", this.has(Blocks.RED_TERRACOTTA))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.WHITE_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.WHITE_GLAZED_TERRACOTTA.asItem(), 0.1F, 200)
.unlockedBy("has_white_terracotta", this.has(Blocks.WHITE_TERRACOTTA))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.YELLOW_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.YELLOW_GLAZED_TERRACOTTA.asItem(), 0.1F, 200)
.unlockedBy("has_yellow_terracotta", this.has(Blocks.YELLOW_TERRACOTTA))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.ANCIENT_DEBRIS), RecipeCategory.MISC, Items.NETHERITE_SCRAP, 2.0F, 200)
.unlockedBy("has_ancient_debris", this.has(Blocks.ANCIENT_DEBRIS))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.BASALT), RecipeCategory.BUILDING_BLOCKS, Blocks.SMOOTH_BASALT, 0.1F, 200)
.unlockedBy("has_basalt", this.has(Blocks.BASALT))
.save(this.output);
SimpleCookingRecipeBuilder.smelting(Ingredient.of(Blocks.COBBLED_DEEPSLATE), RecipeCategory.BUILDING_BLOCKS, Blocks.DEEPSLATE, 0.1F, 200)
.unlockedBy("has_cobbled_deepslate", this.has(Blocks.COBBLED_DEEPSLATE))
.save(this.output);
this.oreBlasting(COAL_SMELTABLES, RecipeCategory.MISC, Items.COAL, 0.1F, 100, "coal");
this.oreBlasting(IRON_SMELTABLES, RecipeCategory.MISC, Items.IRON_INGOT, 0.7F, 100, "iron_ingot");
this.oreBlasting(COPPER_SMELTABLES, RecipeCategory.MISC, Items.COPPER_INGOT, 0.7F, 100, "copper_ingot");
this.oreBlasting(GOLD_SMELTABLES, RecipeCategory.MISC, Items.GOLD_INGOT, 1.0F, 100, "gold_ingot");
this.oreBlasting(DIAMOND_SMELTABLES, RecipeCategory.MISC, Items.DIAMOND, 1.0F, 100, "diamond");
this.oreBlasting(LAPIS_SMELTABLES, RecipeCategory.MISC, Items.LAPIS_LAZULI, 0.2F, 100, "lapis_lazuli");
this.oreBlasting(REDSTONE_SMELTABLES, RecipeCategory.REDSTONE, Items.REDSTONE, 0.7F, 100, "redstone");
this.oreBlasting(EMERALD_SMELTABLES, RecipeCategory.MISC, Items.EMERALD, 1.0F, 100, "emerald");
SimpleCookingRecipeBuilder.blasting(Ingredient.of(Blocks.NETHER_QUARTZ_ORE), RecipeCategory.MISC, Items.QUARTZ, 0.2F, 100)
.unlockedBy("has_nether_quartz_ore", this.has(Blocks.NETHER_QUARTZ_ORE))
.save(this.output, getBlastingRecipeName(Items.QUARTZ));
SimpleCookingRecipeBuilder.blasting(
Ingredient.of(
Items.GOLDEN_PICKAXE,
Items.GOLDEN_SHOVEL,
Items.GOLDEN_AXE,
Items.GOLDEN_HOE,
Items.GOLDEN_SWORD,
Items.GOLDEN_HELMET,
Items.GOLDEN_CHESTPLATE,
Items.GOLDEN_LEGGINGS,
Items.GOLDEN_BOOTS,
Items.GOLDEN_HORSE_ARMOR
),
RecipeCategory.MISC,
Items.GOLD_NUGGET,
0.1F,
100
)
.unlockedBy("has_golden_pickaxe", this.has(Items.GOLDEN_PICKAXE))
.unlockedBy("has_golden_shovel", this.has(Items.GOLDEN_SHOVEL))
.unlockedBy("has_golden_axe", this.has(Items.GOLDEN_AXE))
.unlockedBy("has_golden_hoe", this.has(Items.GOLDEN_HOE))
.unlockedBy("has_golden_sword", this.has(Items.GOLDEN_SWORD))
.unlockedBy("has_golden_helmet", this.has(Items.GOLDEN_HELMET))
.unlockedBy("has_golden_chestplate", this.has(Items.GOLDEN_CHESTPLATE))
.unlockedBy("has_golden_leggings", this.has(Items.GOLDEN_LEGGINGS))
.unlockedBy("has_golden_boots", this.has(Items.GOLDEN_BOOTS))
.unlockedBy("has_golden_horse_armor", this.has(Items.GOLDEN_HORSE_ARMOR))
.save(this.output, getBlastingRecipeName(Items.GOLD_NUGGET));
SimpleCookingRecipeBuilder.blasting(
Ingredient.of(
Items.IRON_PICKAXE,
Items.IRON_SHOVEL,
Items.IRON_AXE,
Items.IRON_HOE,
Items.IRON_SWORD,
Items.IRON_HELMET,
Items.IRON_CHESTPLATE,
Items.IRON_LEGGINGS,
Items.IRON_BOOTS,
Items.IRON_HORSE_ARMOR,
Items.CHAINMAIL_HELMET,
Items.CHAINMAIL_CHESTPLATE,
Items.CHAINMAIL_LEGGINGS,
Items.CHAINMAIL_BOOTS
),
RecipeCategory.MISC,
Items.IRON_NUGGET,
0.1F,
100
)
.unlockedBy("has_iron_pickaxe", this.has(Items.IRON_PICKAXE))
.unlockedBy("has_iron_shovel", this.has(Items.IRON_SHOVEL))
.unlockedBy("has_iron_axe", this.has(Items.IRON_AXE))
.unlockedBy("has_iron_hoe", this.has(Items.IRON_HOE))
.unlockedBy("has_iron_sword", this.has(Items.IRON_SWORD))
.unlockedBy("has_iron_helmet", this.has(Items.IRON_HELMET))
.unlockedBy("has_iron_chestplate", this.has(Items.IRON_CHESTPLATE))
.unlockedBy("has_iron_leggings", this.has(Items.IRON_LEGGINGS))
.unlockedBy("has_iron_boots", this.has(Items.IRON_BOOTS))
.unlockedBy("has_iron_horse_armor", this.has(Items.IRON_HORSE_ARMOR))
.unlockedBy("has_chainmail_helmet", this.has(Items.CHAINMAIL_HELMET))
.unlockedBy("has_chainmail_chestplate", this.has(Items.CHAINMAIL_CHESTPLATE))
.unlockedBy("has_chainmail_leggings", this.has(Items.CHAINMAIL_LEGGINGS))
.unlockedBy("has_chainmail_boots", this.has(Items.CHAINMAIL_BOOTS))
.save(this.output, getBlastingRecipeName(Items.IRON_NUGGET));
SimpleCookingRecipeBuilder.blasting(Ingredient.of(Blocks.ANCIENT_DEBRIS), RecipeCategory.MISC, Items.NETHERITE_SCRAP, 2.0F, 100)
.unlockedBy("has_ancient_debris", this.has(Blocks.ANCIENT_DEBRIS))
.save(this.output, getBlastingRecipeName(Items.NETHERITE_SCRAP));
this.cookRecipes("smoking", RecipeSerializer.SMOKING_RECIPE, SmokingRecipe::new, 100);
this.cookRecipes("campfire_cooking", RecipeSerializer.CAMPFIRE_COOKING_RECIPE, CampfireCookingRecipe::new, 600);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.STONE_SLAB, Blocks.STONE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.STONE_STAIRS, Blocks.STONE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.STONE_BRICKS, Blocks.STONE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.STONE_BRICK_SLAB, Blocks.STONE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.STONE_BRICK_STAIRS, Blocks.STONE);
SingleItemRecipeBuilder.stonecutting(Ingredient.of(Blocks.STONE), RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_STONE_BRICKS)
.unlockedBy("has_stone", this.has(Blocks.STONE))
.save(this.output, "chiseled_stone_bricks_stone_from_stonecutting");
SingleItemRecipeBuilder.stonecutting(Ingredient.of(Blocks.STONE), RecipeCategory.DECORATIONS, Blocks.STONE_BRICK_WALL)
.unlockedBy("has_stone", this.has(Blocks.STONE))
.save(this.output, "stone_brick_walls_from_stone_stonecutting");
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.CUT_SANDSTONE, Blocks.SANDSTONE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.SANDSTONE_SLAB, Blocks.SANDSTONE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.CUT_SANDSTONE_SLAB, Blocks.SANDSTONE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.CUT_SANDSTONE_SLAB, Blocks.CUT_SANDSTONE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.SANDSTONE_STAIRS, Blocks.SANDSTONE);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.SANDSTONE_WALL, Blocks.SANDSTONE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_SANDSTONE, Blocks.SANDSTONE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.CUT_RED_SANDSTONE, Blocks.RED_SANDSTONE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.RED_SANDSTONE_SLAB, Blocks.RED_SANDSTONE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.CUT_RED_SANDSTONE_SLAB, Blocks.RED_SANDSTONE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.CUT_RED_SANDSTONE_SLAB, Blocks.CUT_RED_SANDSTONE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.RED_SANDSTONE_STAIRS, Blocks.RED_SANDSTONE);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.RED_SANDSTONE_WALL, Blocks.RED_SANDSTONE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_RED_SANDSTONE, Blocks.RED_SANDSTONE);
SingleItemRecipeBuilder.stonecutting(Ingredient.of(Blocks.QUARTZ_BLOCK), RecipeCategory.BUILDING_BLOCKS, Blocks.QUARTZ_SLAB, 2)
.unlockedBy("has_quartz_block", this.has(Blocks.QUARTZ_BLOCK))
.save(this.output, "quartz_slab_from_stonecutting");
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.QUARTZ_STAIRS, Blocks.QUARTZ_BLOCK);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.QUARTZ_PILLAR, Blocks.QUARTZ_BLOCK);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_QUARTZ_BLOCK, Blocks.QUARTZ_BLOCK);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.QUARTZ_BRICKS, Blocks.QUARTZ_BLOCK);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.COBBLESTONE_STAIRS, Blocks.COBBLESTONE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.COBBLESTONE_SLAB, Blocks.COBBLESTONE, 2);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.COBBLESTONE_WALL, Blocks.COBBLESTONE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.STONE_BRICK_SLAB, Blocks.STONE_BRICKS, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.STONE_BRICK_STAIRS, Blocks.STONE_BRICKS);
SingleItemRecipeBuilder.stonecutting(Ingredient.of(Blocks.STONE_BRICKS), RecipeCategory.DECORATIONS, Blocks.STONE_BRICK_WALL)
.unlockedBy("has_stone_bricks", this.has(Blocks.STONE_BRICKS))
.save(this.output, "stone_brick_wall_from_stone_bricks_stonecutting");
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_STONE_BRICKS, Blocks.STONE_BRICKS);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.BRICK_SLAB, Blocks.BRICKS, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.BRICK_STAIRS, Blocks.BRICKS);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.BRICK_WALL, Blocks.BRICKS);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.MUD_BRICK_SLAB, Blocks.MUD_BRICKS, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.MUD_BRICK_STAIRS, Blocks.MUD_BRICKS);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.MUD_BRICK_WALL, Blocks.MUD_BRICKS);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.NETHER_BRICK_SLAB, Blocks.NETHER_BRICKS, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.NETHER_BRICK_STAIRS, Blocks.NETHER_BRICKS);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.NETHER_BRICK_WALL, Blocks.NETHER_BRICKS);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_NETHER_BRICKS, Blocks.NETHER_BRICKS);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.RESIN_BRICK_SLAB, Blocks.RESIN_BRICKS, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.RESIN_BRICK_STAIRS, Blocks.RESIN_BRICKS);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.RESIN_BRICK_WALL, Blocks.RESIN_BRICKS);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_RESIN_BRICKS, Blocks.RESIN_BRICKS);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.RED_NETHER_BRICK_SLAB, Blocks.RED_NETHER_BRICKS, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.RED_NETHER_BRICK_STAIRS, Blocks.RED_NETHER_BRICKS);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.RED_NETHER_BRICK_WALL, Blocks.RED_NETHER_BRICKS);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.PURPUR_SLAB, Blocks.PURPUR_BLOCK, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.PURPUR_STAIRS, Blocks.PURPUR_BLOCK);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.PURPUR_PILLAR, Blocks.PURPUR_BLOCK);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.PRISMARINE_SLAB, Blocks.PRISMARINE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.PRISMARINE_STAIRS, Blocks.PRISMARINE);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.PRISMARINE_WALL, Blocks.PRISMARINE);
SingleItemRecipeBuilder.stonecutting(Ingredient.of(Blocks.PRISMARINE_BRICKS), RecipeCategory.BUILDING_BLOCKS, Blocks.PRISMARINE_BRICK_SLAB, 2)
.unlockedBy("has_prismarine_brick", this.has(Blocks.PRISMARINE_BRICKS))
.save(this.output, "prismarine_brick_slab_from_prismarine_stonecutting");
SingleItemRecipeBuilder.stonecutting(Ingredient.of(Blocks.PRISMARINE_BRICKS), RecipeCategory.BUILDING_BLOCKS, Blocks.PRISMARINE_BRICK_STAIRS)
.unlockedBy("has_prismarine_brick", this.has(Blocks.PRISMARINE_BRICKS))
.save(this.output, "prismarine_brick_stairs_from_prismarine_stonecutting");
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.DARK_PRISMARINE_SLAB, Blocks.DARK_PRISMARINE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.DARK_PRISMARINE_STAIRS, Blocks.DARK_PRISMARINE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.ANDESITE_SLAB, Blocks.ANDESITE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.ANDESITE_STAIRS, Blocks.ANDESITE);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.ANDESITE_WALL, Blocks.ANDESITE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_ANDESITE, Blocks.ANDESITE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_ANDESITE_SLAB, Blocks.ANDESITE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_ANDESITE_STAIRS, Blocks.ANDESITE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_ANDESITE_SLAB, Blocks.POLISHED_ANDESITE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_ANDESITE_STAIRS, Blocks.POLISHED_ANDESITE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_BASALT, Blocks.BASALT);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.GRANITE_SLAB, Blocks.GRANITE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.GRANITE_STAIRS, Blocks.GRANITE);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.GRANITE_WALL, Blocks.GRANITE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_GRANITE, Blocks.GRANITE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_GRANITE_SLAB, Blocks.GRANITE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_GRANITE_STAIRS, Blocks.GRANITE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_GRANITE_SLAB, Blocks.POLISHED_GRANITE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_GRANITE_STAIRS, Blocks.POLISHED_GRANITE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.DIORITE_SLAB, Blocks.DIORITE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.DIORITE_STAIRS, Blocks.DIORITE);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.DIORITE_WALL, Blocks.DIORITE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_DIORITE, Blocks.DIORITE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_DIORITE_SLAB, Blocks.DIORITE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_DIORITE_STAIRS, Blocks.DIORITE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_DIORITE_SLAB, Blocks.POLISHED_DIORITE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_DIORITE_STAIRS, Blocks.POLISHED_DIORITE);
SingleItemRecipeBuilder.stonecutting(Ingredient.of(Blocks.MOSSY_STONE_BRICKS), RecipeCategory.BUILDING_BLOCKS, Blocks.MOSSY_STONE_BRICK_SLAB, 2)
.unlockedBy("has_mossy_stone_bricks", this.has(Blocks.MOSSY_STONE_BRICKS))
.save(this.output, "mossy_stone_brick_slab_from_mossy_stone_brick_stonecutting");
SingleItemRecipeBuilder.stonecutting(Ingredient.of(Blocks.MOSSY_STONE_BRICKS), RecipeCategory.BUILDING_BLOCKS, Blocks.MOSSY_STONE_BRICK_STAIRS)
.unlockedBy("has_mossy_stone_bricks", this.has(Blocks.MOSSY_STONE_BRICKS))
.save(this.output, "mossy_stone_brick_stairs_from_mossy_stone_brick_stonecutting");
SingleItemRecipeBuilder.stonecutting(Ingredient.of(Blocks.MOSSY_STONE_BRICKS), RecipeCategory.DECORATIONS, Blocks.MOSSY_STONE_BRICK_WALL)
.unlockedBy("has_mossy_stone_bricks", this.has(Blocks.MOSSY_STONE_BRICKS))
.save(this.output, "mossy_stone_brick_wall_from_mossy_stone_brick_stonecutting");
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.MOSSY_COBBLESTONE_SLAB, Blocks.MOSSY_COBBLESTONE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.MOSSY_COBBLESTONE_STAIRS, Blocks.MOSSY_COBBLESTONE);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.MOSSY_COBBLESTONE_WALL, Blocks.MOSSY_COBBLESTONE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.SMOOTH_SANDSTONE_SLAB, Blocks.SMOOTH_SANDSTONE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.SMOOTH_SANDSTONE_STAIRS, Blocks.SMOOTH_SANDSTONE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.SMOOTH_RED_SANDSTONE_SLAB, Blocks.SMOOTH_RED_SANDSTONE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.SMOOTH_RED_SANDSTONE_STAIRS, Blocks.SMOOTH_RED_SANDSTONE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.SMOOTH_QUARTZ_SLAB, Blocks.SMOOTH_QUARTZ, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.SMOOTH_QUARTZ_STAIRS, Blocks.SMOOTH_QUARTZ);
SingleItemRecipeBuilder.stonecutting(Ingredient.of(Blocks.END_STONE_BRICKS), RecipeCategory.BUILDING_BLOCKS, Blocks.END_STONE_BRICK_SLAB, 2)
.unlockedBy("has_end_stone_brick", this.has(Blocks.END_STONE_BRICKS))
.save(this.output, "end_stone_brick_slab_from_end_stone_brick_stonecutting");
SingleItemRecipeBuilder.stonecutting(Ingredient.of(Blocks.END_STONE_BRICKS), RecipeCategory.BUILDING_BLOCKS, Blocks.END_STONE_BRICK_STAIRS)
.unlockedBy("has_end_stone_brick", this.has(Blocks.END_STONE_BRICKS))
.save(this.output, "end_stone_brick_stairs_from_end_stone_brick_stonecutting");
SingleItemRecipeBuilder.stonecutting(Ingredient.of(Blocks.END_STONE_BRICKS), RecipeCategory.DECORATIONS, Blocks.END_STONE_BRICK_WALL)
.unlockedBy("has_end_stone_brick", this.has(Blocks.END_STONE_BRICKS))
.save(this.output, "end_stone_brick_wall_from_end_stone_brick_stonecutting");
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.END_STONE_BRICKS, Blocks.END_STONE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.END_STONE_BRICK_SLAB, Blocks.END_STONE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.END_STONE_BRICK_STAIRS, Blocks.END_STONE);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.END_STONE_BRICK_WALL, Blocks.END_STONE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.SMOOTH_STONE_SLAB, Blocks.SMOOTH_STONE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.BLACKSTONE_SLAB, Blocks.BLACKSTONE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.BLACKSTONE_STAIRS, Blocks.BLACKSTONE);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.BLACKSTONE_WALL, Blocks.BLACKSTONE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_BLACKSTONE, Blocks.BLACKSTONE);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.POLISHED_BLACKSTONE_WALL, Blocks.BLACKSTONE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_BLACKSTONE_SLAB, Blocks.BLACKSTONE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_BLACKSTONE_STAIRS, Blocks.BLACKSTONE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_POLISHED_BLACKSTONE, Blocks.BLACKSTONE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_BLACKSTONE_BRICKS, Blocks.BLACKSTONE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_BLACKSTONE_BRICK_SLAB, Blocks.BLACKSTONE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_BLACKSTONE_BRICK_STAIRS, Blocks.BLACKSTONE);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.POLISHED_BLACKSTONE_BRICK_WALL, Blocks.BLACKSTONE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_BLACKSTONE_SLAB, Blocks.POLISHED_BLACKSTONE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_BLACKSTONE_STAIRS, Blocks.POLISHED_BLACKSTONE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_BLACKSTONE_BRICKS, Blocks.POLISHED_BLACKSTONE);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.POLISHED_BLACKSTONE_WALL, Blocks.POLISHED_BLACKSTONE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_BLACKSTONE_BRICK_SLAB, Blocks.POLISHED_BLACKSTONE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_BLACKSTONE_BRICK_STAIRS, Blocks.POLISHED_BLACKSTONE);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.POLISHED_BLACKSTONE_BRICK_WALL, Blocks.POLISHED_BLACKSTONE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_POLISHED_BLACKSTONE, Blocks.POLISHED_BLACKSTONE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_BLACKSTONE_BRICK_SLAB, Blocks.POLISHED_BLACKSTONE_BRICKS, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_BLACKSTONE_BRICK_STAIRS, Blocks.POLISHED_BLACKSTONE_BRICKS);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.POLISHED_BLACKSTONE_BRICK_WALL, Blocks.POLISHED_BLACKSTONE_BRICKS);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.CUT_COPPER_SLAB, Blocks.CUT_COPPER, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.CUT_COPPER_STAIRS, Blocks.CUT_COPPER);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.EXPOSED_CUT_COPPER_SLAB, Blocks.EXPOSED_CUT_COPPER, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.EXPOSED_CUT_COPPER_STAIRS, Blocks.EXPOSED_CUT_COPPER);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WEATHERED_CUT_COPPER_SLAB, Blocks.WEATHERED_CUT_COPPER, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WEATHERED_CUT_COPPER_STAIRS, Blocks.WEATHERED_CUT_COPPER);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.OXIDIZED_CUT_COPPER_SLAB, Blocks.OXIDIZED_CUT_COPPER, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.OXIDIZED_CUT_COPPER_STAIRS, Blocks.OXIDIZED_CUT_COPPER);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_CUT_COPPER_SLAB, Blocks.WAXED_CUT_COPPER, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_CUT_COPPER_STAIRS, Blocks.WAXED_CUT_COPPER);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_EXPOSED_CUT_COPPER_SLAB, Blocks.WAXED_EXPOSED_CUT_COPPER, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_EXPOSED_CUT_COPPER_STAIRS, Blocks.WAXED_EXPOSED_CUT_COPPER);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_WEATHERED_CUT_COPPER_SLAB, Blocks.WAXED_WEATHERED_CUT_COPPER, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_WEATHERED_CUT_COPPER_STAIRS, Blocks.WAXED_WEATHERED_CUT_COPPER);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_OXIDIZED_CUT_COPPER_SLAB, Blocks.WAXED_OXIDIZED_CUT_COPPER, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_OXIDIZED_CUT_COPPER_STAIRS, Blocks.WAXED_OXIDIZED_CUT_COPPER);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.CUT_COPPER, Blocks.COPPER_BLOCK, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.CUT_COPPER_STAIRS, Blocks.COPPER_BLOCK, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.CUT_COPPER_SLAB, Blocks.COPPER_BLOCK, 8);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.EXPOSED_CUT_COPPER, Blocks.EXPOSED_COPPER, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.EXPOSED_CUT_COPPER_STAIRS, Blocks.EXPOSED_COPPER, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.EXPOSED_CUT_COPPER_SLAB, Blocks.EXPOSED_COPPER, 8);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WEATHERED_CUT_COPPER, Blocks.WEATHERED_COPPER, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WEATHERED_CUT_COPPER_STAIRS, Blocks.WEATHERED_COPPER, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WEATHERED_CUT_COPPER_SLAB, Blocks.WEATHERED_COPPER, 8);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.OXIDIZED_CUT_COPPER, Blocks.OXIDIZED_COPPER, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.OXIDIZED_CUT_COPPER_STAIRS, Blocks.OXIDIZED_COPPER, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.OXIDIZED_CUT_COPPER_SLAB, Blocks.OXIDIZED_COPPER, 8);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_CUT_COPPER, Blocks.WAXED_COPPER_BLOCK, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_CUT_COPPER_STAIRS, Blocks.WAXED_COPPER_BLOCK, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_CUT_COPPER_SLAB, Blocks.WAXED_COPPER_BLOCK, 8);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_EXPOSED_CUT_COPPER, Blocks.WAXED_EXPOSED_COPPER, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_EXPOSED_CUT_COPPER_STAIRS, Blocks.WAXED_EXPOSED_COPPER, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_EXPOSED_CUT_COPPER_SLAB, Blocks.WAXED_EXPOSED_COPPER, 8);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_WEATHERED_CUT_COPPER, Blocks.WAXED_WEATHERED_COPPER, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_WEATHERED_CUT_COPPER_STAIRS, Blocks.WAXED_WEATHERED_COPPER, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_WEATHERED_CUT_COPPER_SLAB, Blocks.WAXED_WEATHERED_COPPER, 8);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_OXIDIZED_CUT_COPPER, Blocks.WAXED_OXIDIZED_COPPER, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_OXIDIZED_CUT_COPPER_STAIRS, Blocks.WAXED_OXIDIZED_COPPER, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_OXIDIZED_CUT_COPPER_SLAB, Blocks.WAXED_OXIDIZED_COPPER, 8);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.COBBLED_DEEPSLATE_SLAB, Blocks.COBBLED_DEEPSLATE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.COBBLED_DEEPSLATE_STAIRS, Blocks.COBBLED_DEEPSLATE);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.COBBLED_DEEPSLATE_WALL, Blocks.COBBLED_DEEPSLATE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_DEEPSLATE, Blocks.COBBLED_DEEPSLATE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_DEEPSLATE, Blocks.COBBLED_DEEPSLATE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_DEEPSLATE_SLAB, Blocks.COBBLED_DEEPSLATE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_DEEPSLATE_STAIRS, Blocks.COBBLED_DEEPSLATE);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.POLISHED_DEEPSLATE_WALL, Blocks.COBBLED_DEEPSLATE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.DEEPSLATE_BRICKS, Blocks.COBBLED_DEEPSLATE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.DEEPSLATE_BRICK_SLAB, Blocks.COBBLED_DEEPSLATE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.DEEPSLATE_BRICK_STAIRS, Blocks.COBBLED_DEEPSLATE);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.DEEPSLATE_BRICK_WALL, Blocks.COBBLED_DEEPSLATE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.DEEPSLATE_TILES, Blocks.COBBLED_DEEPSLATE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.DEEPSLATE_TILE_SLAB, Blocks.COBBLED_DEEPSLATE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.DEEPSLATE_TILE_STAIRS, Blocks.COBBLED_DEEPSLATE);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.DEEPSLATE_TILE_WALL, Blocks.COBBLED_DEEPSLATE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_DEEPSLATE_SLAB, Blocks.POLISHED_DEEPSLATE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_DEEPSLATE_STAIRS, Blocks.POLISHED_DEEPSLATE);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.POLISHED_DEEPSLATE_WALL, Blocks.POLISHED_DEEPSLATE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.DEEPSLATE_BRICKS, Blocks.POLISHED_DEEPSLATE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.DEEPSLATE_BRICK_SLAB, Blocks.POLISHED_DEEPSLATE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.DEEPSLATE_BRICK_STAIRS, Blocks.POLISHED_DEEPSLATE);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.DEEPSLATE_BRICK_WALL, Blocks.POLISHED_DEEPSLATE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.DEEPSLATE_TILES, Blocks.POLISHED_DEEPSLATE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.DEEPSLATE_TILE_SLAB, Blocks.POLISHED_DEEPSLATE, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.DEEPSLATE_TILE_STAIRS, Blocks.POLISHED_DEEPSLATE);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.DEEPSLATE_TILE_WALL, Blocks.POLISHED_DEEPSLATE);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.DEEPSLATE_BRICK_SLAB, Blocks.DEEPSLATE_BRICKS, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.DEEPSLATE_BRICK_STAIRS, Blocks.DEEPSLATE_BRICKS);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.DEEPSLATE_BRICK_WALL, Blocks.DEEPSLATE_BRICKS);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.DEEPSLATE_TILES, Blocks.DEEPSLATE_BRICKS);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.DEEPSLATE_TILE_SLAB, Blocks.DEEPSLATE_BRICKS, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.DEEPSLATE_TILE_STAIRS, Blocks.DEEPSLATE_BRICKS);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.DEEPSLATE_TILE_WALL, Blocks.DEEPSLATE_BRICKS);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.DEEPSLATE_TILE_SLAB, Blocks.DEEPSLATE_TILES, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.DEEPSLATE_TILE_STAIRS, Blocks.DEEPSLATE_TILES);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.DEEPSLATE_TILE_WALL, Blocks.DEEPSLATE_TILES);
smithingTrims().forEach(p_358454_ -> this.trimSmithing(p_358454_.template(), p_358454_.id()));
this.netheriteSmithing(Items.DIAMOND_CHESTPLATE, RecipeCategory.COMBAT, Items.NETHERITE_CHESTPLATE);
this.netheriteSmithing(Items.DIAMOND_LEGGINGS, RecipeCategory.COMBAT, Items.NETHERITE_LEGGINGS);
this.netheriteSmithing(Items.DIAMOND_HELMET, RecipeCategory.COMBAT, Items.NETHERITE_HELMET);
this.netheriteSmithing(Items.DIAMOND_BOOTS, RecipeCategory.COMBAT, Items.NETHERITE_BOOTS);
this.netheriteSmithing(Items.DIAMOND_SWORD, RecipeCategory.COMBAT, Items.NETHERITE_SWORD);
this.netheriteSmithing(Items.DIAMOND_AXE, RecipeCategory.TOOLS, Items.NETHERITE_AXE);
this.netheriteSmithing(Items.DIAMOND_PICKAXE, RecipeCategory.TOOLS, Items.NETHERITE_PICKAXE);
this.netheriteSmithing(Items.DIAMOND_HOE, RecipeCategory.TOOLS, Items.NETHERITE_HOE);
this.netheriteSmithing(Items.DIAMOND_SHOVEL, RecipeCategory.TOOLS, Items.NETHERITE_SHOVEL);
this.copySmithingTemplate(Items.NETHERITE_UPGRADE_SMITHING_TEMPLATE, Items.NETHERRACK);
this.copySmithingTemplate(Items.SENTRY_ARMOR_TRIM_SMITHING_TEMPLATE, Items.COBBLESTONE);
this.copySmithingTemplate(Items.DUNE_ARMOR_TRIM_SMITHING_TEMPLATE, Items.SANDSTONE);
this.copySmithingTemplate(Items.COAST_ARMOR_TRIM_SMITHING_TEMPLATE, Items.COBBLESTONE);
this.copySmithingTemplate(Items.WILD_ARMOR_TRIM_SMITHING_TEMPLATE, Items.MOSSY_COBBLESTONE);
this.copySmithingTemplate(Items.WARD_ARMOR_TRIM_SMITHING_TEMPLATE, Items.COBBLED_DEEPSLATE);
this.copySmithingTemplate(Items.EYE_ARMOR_TRIM_SMITHING_TEMPLATE, Items.END_STONE);
this.copySmithingTemplate(Items.VEX_ARMOR_TRIM_SMITHING_TEMPLATE, Items.COBBLESTONE);
this.copySmithingTemplate(Items.TIDE_ARMOR_TRIM_SMITHING_TEMPLATE, Items.PRISMARINE);
this.copySmithingTemplate(Items.SNOUT_ARMOR_TRIM_SMITHING_TEMPLATE, Items.BLACKSTONE);
this.copySmithingTemplate(Items.RIB_ARMOR_TRIM_SMITHING_TEMPLATE, Items.NETHERRACK);
this.copySmithingTemplate(Items.SPIRE_ARMOR_TRIM_SMITHING_TEMPLATE, Items.PURPUR_BLOCK);
this.copySmithingTemplate(Items.SILENCE_ARMOR_TRIM_SMITHING_TEMPLATE, Items.COBBLED_DEEPSLATE);
this.copySmithingTemplate(Items.WAYFINDER_ARMOR_TRIM_SMITHING_TEMPLATE, Items.TERRACOTTA);
this.copySmithingTemplate(Items.SHAPER_ARMOR_TRIM_SMITHING_TEMPLATE, Items.TERRACOTTA);
this.copySmithingTemplate(Items.RAISER_ARMOR_TRIM_SMITHING_TEMPLATE, Items.TERRACOTTA);
this.copySmithingTemplate(Items.HOST_ARMOR_TRIM_SMITHING_TEMPLATE, Items.TERRACOTTA);
this.copySmithingTemplate(Items.FLOW_ARMOR_TRIM_SMITHING_TEMPLATE, Items.BREEZE_ROD);
this.copySmithingTemplate(Items.BOLT_ARMOR_TRIM_SMITHING_TEMPLATE, Ingredient.of(Items.COPPER_BLOCK, Items.WAXED_COPPER_BLOCK));
this.threeByThreePacker(RecipeCategory.BUILDING_BLOCKS, Blocks.BAMBOO_BLOCK, Items.BAMBOO);
this.planksFromLogs(Blocks.BAMBOO_PLANKS, ItemTags.BAMBOO_BLOCKS, 2);
this.mosaicBuilder(RecipeCategory.DECORATIONS, Blocks.BAMBOO_MOSAIC, Blocks.BAMBOO_SLAB);
this.woodenBoat(Items.BAMBOO_RAFT, Blocks.BAMBOO_PLANKS);
this.chestBoat(Items.BAMBOO_CHEST_RAFT, Items.BAMBOO_RAFT);
this.hangingSign(Items.OAK_HANGING_SIGN, Blocks.STRIPPED_OAK_LOG);
this.hangingSign(Items.SPRUCE_HANGING_SIGN, Blocks.STRIPPED_SPRUCE_LOG);
this.hangingSign(Items.BIRCH_HANGING_SIGN, Blocks.STRIPPED_BIRCH_LOG);
this.hangingSign(Items.JUNGLE_HANGING_SIGN, Blocks.STRIPPED_JUNGLE_LOG);
this.hangingSign(Items.ACACIA_HANGING_SIGN, Blocks.STRIPPED_ACACIA_LOG);
this.hangingSign(Items.CHERRY_HANGING_SIGN, Blocks.STRIPPED_CHERRY_LOG);
this.hangingSign(Items.DARK_OAK_HANGING_SIGN, Blocks.STRIPPED_DARK_OAK_LOG);
this.hangingSign(Items.PALE_OAK_HANGING_SIGN, Blocks.STRIPPED_PALE_OAK_LOG);
this.hangingSign(Items.MANGROVE_HANGING_SIGN, Blocks.STRIPPED_MANGROVE_LOG);
this.hangingSign(Items.BAMBOO_HANGING_SIGN, Items.STRIPPED_BAMBOO_BLOCK);
this.hangingSign(Items.CRIMSON_HANGING_SIGN, Blocks.STRIPPED_CRIMSON_STEM);
this.hangingSign(Items.WARPED_HANGING_SIGN, Blocks.STRIPPED_WARPED_STEM);
this.shaped(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_BOOKSHELF)
.define('#', ItemTags.PLANKS)
.define('X', ItemTags.WOODEN_SLABS)
.pattern("###")
.pattern("XXX")
.pattern("###")
.unlockedBy("has_book", this.has(Items.BOOK))
.save(this.output);
this.oneToOneConversionRecipe(Items.ORANGE_DYE, Blocks.TORCHFLOWER, "orange_dye");
this.oneToOneConversionRecipe(Items.CYAN_DYE, Blocks.PITCHER_PLANT, "cyan_dye", 2);
this.planksFromLog(Blocks.CHERRY_PLANKS, ItemTags.CHERRY_LOGS, 4);
this.woodFromLogs(Blocks.CHERRY_WOOD, Blocks.CHERRY_LOG);
this.woodFromLogs(Blocks.STRIPPED_CHERRY_WOOD, Blocks.STRIPPED_CHERRY_LOG);
this.woodenBoat(Items.CHERRY_BOAT, Blocks.CHERRY_PLANKS);
this.chestBoat(Items.CHERRY_CHEST_BOAT, Items.CHERRY_BOAT);
this.oneToOneConversionRecipe(Items.PINK_DYE, Items.PINK_PETALS, "pink_dye", 1);
this.shaped(RecipeCategory.TOOLS, Items.BRUSH)
.define('X', Items.FEATHER)
.define('#', Items.COPPER_INGOT)
.define('I', Items.STICK)
.pattern("X")
.pattern("#")
.pattern("I")
.unlockedBy("has_copper_ingot", this.has(Items.COPPER_INGOT))
.save(this.output);
this.shaped(RecipeCategory.DECORATIONS, Items.DECORATED_POT)
.define('#', Items.BRICK)
.pattern(" # ")
.pattern("# #")
.pattern(" # ")
.unlockedBy("has_brick", this.has(ItemTags.DECORATED_POT_INGREDIENTS))
.save(this.output, "decorated_pot_simple");
SpecialRecipeBuilder.special(DecoratedPotRecipe::new).save(this.output, "decorated_pot");
this.shaped(RecipeCategory.REDSTONE, Blocks.CRAFTER)
.define('#', Items.IRON_INGOT)
.define('C', Items.CRAFTING_TABLE)
.define('R', Items.REDSTONE)
.define('D', Items.DROPPER)
.pattern("###")
.pattern("#C#")
.pattern("RDR")
.unlockedBy("has_dropper", this.has(Items.DROPPER))
.save(this.output);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.TUFF_SLAB, Blocks.TUFF, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.TUFF_STAIRS, Blocks.TUFF);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.TUFF_WALL, Blocks.TUFF);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_TUFF, Blocks.TUFF);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_TUFF, Blocks.TUFF);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_TUFF_SLAB, Blocks.TUFF, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_TUFF_STAIRS, Blocks.TUFF);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.POLISHED_TUFF_WALL, Blocks.TUFF);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.TUFF_BRICKS, Blocks.TUFF);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.TUFF_BRICK_SLAB, Blocks.TUFF, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.TUFF_BRICK_STAIRS, Blocks.TUFF);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.TUFF_BRICK_WALL, Blocks.TUFF);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_TUFF_BRICKS, Blocks.TUFF);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_TUFF_SLAB, Blocks.POLISHED_TUFF, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_TUFF_STAIRS, Blocks.POLISHED_TUFF);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.POLISHED_TUFF_WALL, Blocks.POLISHED_TUFF);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.TUFF_BRICKS, Blocks.POLISHED_TUFF);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.TUFF_BRICK_SLAB, Blocks.POLISHED_TUFF, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.TUFF_BRICK_STAIRS, Blocks.POLISHED_TUFF);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.TUFF_BRICK_WALL, Blocks.POLISHED_TUFF);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_TUFF_BRICKS, Blocks.POLISHED_TUFF);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.TUFF_BRICK_SLAB, Blocks.TUFF_BRICKS, 2);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.TUFF_BRICK_STAIRS, Blocks.TUFF_BRICKS);
this.stonecutterResultFromBase(RecipeCategory.DECORATIONS, Blocks.TUFF_BRICK_WALL, Blocks.TUFF_BRICKS);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_TUFF_BRICKS, Blocks.TUFF_BRICKS);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_COPPER, Blocks.COPPER_BLOCK, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.EXPOSED_CHISELED_COPPER, Blocks.EXPOSED_COPPER, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WEATHERED_CHISELED_COPPER, Blocks.WEATHERED_COPPER, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.OXIDIZED_CHISELED_COPPER, Blocks.OXIDIZED_COPPER, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_CHISELED_COPPER, Blocks.WAXED_COPPER_BLOCK, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_EXPOSED_CHISELED_COPPER, Blocks.WAXED_EXPOSED_COPPER, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_WEATHERED_CHISELED_COPPER, Blocks.WAXED_WEATHERED_COPPER, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_OXIDIZED_CHISELED_COPPER, Blocks.WAXED_OXIDIZED_COPPER, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_COPPER, Blocks.CUT_COPPER, 1);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.EXPOSED_CHISELED_COPPER, Blocks.EXPOSED_CUT_COPPER, 1);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WEATHERED_CHISELED_COPPER, Blocks.WEATHERED_CUT_COPPER, 1);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.OXIDIZED_CHISELED_COPPER, Blocks.OXIDIZED_CUT_COPPER, 1);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_CHISELED_COPPER, Blocks.WAXED_CUT_COPPER, 1);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_EXPOSED_CHISELED_COPPER, Blocks.WAXED_EXPOSED_CUT_COPPER, 1);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_WEATHERED_CHISELED_COPPER, Blocks.WAXED_WEATHERED_CUT_COPPER, 1);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_OXIDIZED_CHISELED_COPPER, Blocks.WAXED_OXIDIZED_CUT_COPPER, 1);
this.grate(Blocks.COPPER_GRATE, Blocks.COPPER_BLOCK);
this.grate(Blocks.EXPOSED_COPPER_GRATE, Blocks.EXPOSED_COPPER);
this.grate(Blocks.WEATHERED_COPPER_GRATE, Blocks.WEATHERED_COPPER);
this.grate(Blocks.OXIDIZED_COPPER_GRATE, Blocks.OXIDIZED_COPPER);
this.grate(Blocks.WAXED_COPPER_GRATE, Blocks.WAXED_COPPER_BLOCK);
this.grate(Blocks.WAXED_EXPOSED_COPPER_GRATE, Blocks.WAXED_EXPOSED_COPPER);
this.grate(Blocks.WAXED_WEATHERED_COPPER_GRATE, Blocks.WAXED_WEATHERED_COPPER);
this.grate(Blocks.WAXED_OXIDIZED_COPPER_GRATE, Blocks.WAXED_OXIDIZED_COPPER);
this.copperBulb(Blocks.COPPER_BULB, Blocks.COPPER_BLOCK);
this.copperBulb(Blocks.EXPOSED_COPPER_BULB, Blocks.EXPOSED_COPPER);
this.copperBulb(Blocks.WEATHERED_COPPER_BULB, Blocks.WEATHERED_COPPER);
this.copperBulb(Blocks.OXIDIZED_COPPER_BULB, Blocks.OXIDIZED_COPPER);
this.copperBulb(Blocks.WAXED_COPPER_BULB, Blocks.WAXED_COPPER_BLOCK);
this.copperBulb(Blocks.WAXED_EXPOSED_COPPER_BULB, Blocks.WAXED_EXPOSED_COPPER);
this.copperBulb(Blocks.WAXED_WEATHERED_COPPER_BULB, Blocks.WAXED_WEATHERED_COPPER);
this.copperBulb(Blocks.WAXED_OXIDIZED_COPPER_BULB, Blocks.WAXED_OXIDIZED_COPPER);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.COPPER_GRATE, Blocks.COPPER_BLOCK, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.EXPOSED_COPPER_GRATE, Blocks.EXPOSED_COPPER, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WEATHERED_COPPER_GRATE, Blocks.WEATHERED_COPPER, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.OXIDIZED_COPPER_GRATE, Blocks.OXIDIZED_COPPER, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_COPPER_GRATE, Blocks.WAXED_COPPER_BLOCK, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_EXPOSED_COPPER_GRATE, Blocks.WAXED_EXPOSED_COPPER, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_WEATHERED_COPPER_GRATE, Blocks.WAXED_WEATHERED_COPPER, 4);
this.stonecutterResultFromBase(RecipeCategory.BUILDING_BLOCKS, Blocks.WAXED_OXIDIZED_COPPER_GRATE, Blocks.WAXED_OXIDIZED_COPPER, 4);
this.shapeless(RecipeCategory.MISC, Items.WIND_CHARGE, 4)
.requires(Items.BREEZE_ROD)
.unlockedBy("has_breeze_rod", this.has(Items.BREEZE_ROD))
.save(this.output);
this.shaped(RecipeCategory.COMBAT, Items.MACE, 1)
.define('I', Items.BREEZE_ROD)
.define('#', Blocks.HEAVY_CORE)
.pattern(" # ")
.pattern(" I ")
.unlockedBy("has_breeze_rod", this.has(Items.BREEZE_ROD))
.unlockedBy("has_heavy_core", this.has(Blocks.HEAVY_CORE))
.save(this.output);
this.doorBuilder(Blocks.COPPER_DOOR, Ingredient.of(Items.COPPER_INGOT))
.unlockedBy(getHasName(Items.COPPER_INGOT), this.has(Items.COPPER_INGOT))
.save(this.output);
this.trapdoorBuilder(Blocks.COPPER_TRAPDOOR, Ingredient.of(Items.COPPER_INGOT))
.unlockedBy(getHasName(Items.COPPER_INGOT), this.has(Items.COPPER_INGOT))
.save(this.output);
this.shaped(RecipeCategory.TOOLS, Items.BUNDLE)
.define('-', Items.STRING)
.define('#', Items.LEATHER)
.pattern("-")
.pattern("#")
.unlockedBy("has_string", this.has(Items.STRING))
.save(this.output);
this.bundleRecipes();
}
public static Stream<VanillaRecipeProvider.TrimTemplate> smithingTrims() {
return Stream.of(
Items.BOLT_ARMOR_TRIM_SMITHING_TEMPLATE,
Items.COAST_ARMOR_TRIM_SMITHING_TEMPLATE,
Items.DUNE_ARMOR_TRIM_SMITHING_TEMPLATE,
Items.EYE_ARMOR_TRIM_SMITHING_TEMPLATE,
Items.FLOW_ARMOR_TRIM_SMITHING_TEMPLATE,
Items.HOST_ARMOR_TRIM_SMITHING_TEMPLATE,
Items.RAISER_ARMOR_TRIM_SMITHING_TEMPLATE,
Items.RIB_ARMOR_TRIM_SMITHING_TEMPLATE,
Items.SENTRY_ARMOR_TRIM_SMITHING_TEMPLATE,
Items.SHAPER_ARMOR_TRIM_SMITHING_TEMPLATE,
Items.SILENCE_ARMOR_TRIM_SMITHING_TEMPLATE,
Items.SNOUT_ARMOR_TRIM_SMITHING_TEMPLATE,
Items.SPIRE_ARMOR_TRIM_SMITHING_TEMPLATE,
Items.TIDE_ARMOR_TRIM_SMITHING_TEMPLATE,
Items.VEX_ARMOR_TRIM_SMITHING_TEMPLATE,
Items.WARD_ARMOR_TRIM_SMITHING_TEMPLATE,
Items.WAYFINDER_ARMOR_TRIM_SMITHING_TEMPLATE,
Items.WILD_ARMOR_TRIM_SMITHING_TEMPLATE
)
.map(
p_358455_ -> new VanillaRecipeProvider.TrimTemplate(
p_358455_, ResourceKey.create(Registries.RECIPE, ResourceLocation.withDefaultNamespace(getItemName(p_358455_) + "_smithing_trim"))
)
);
}
private void shulkerBoxRecipes() {
Ingredient ingredient = this.tag(ItemTags.SHULKER_BOXES);
for (DyeColor dyecolor : DyeColor.values()) {
TransmuteRecipeBuilder.transmute(
RecipeCategory.DECORATIONS, ingredient, Ingredient.of(DyeItem.byColor(dyecolor)), ShulkerBoxBlock.getBlockByColor(dyecolor).asItem()
)
.group("shulker_box_dye")
.unlockedBy("has_shulker_box", this.has(ItemTags.SHULKER_BOXES))
.save(this.output);
}
}
private void bundleRecipes() {
Ingredient ingredient = this.tag(ItemTags.BUNDLES);
for (DyeColor dyecolor : DyeColor.values()) {
DyeItem dyeitem = DyeItem.byColor(dyecolor);
TransmuteRecipeBuilder.transmute(RecipeCategory.TOOLS, ingredient, Ingredient.of(dyeitem), BundleItem.getByColor(dyecolor))
.group("bundle_dye")
.unlockedBy(getHasName(dyeitem), this.has(dyeitem))
.save(this.output);
}
}
public static class Runner extends RecipeProvider.Runner {
public Runner(PackOutput p_365932_, CompletableFuture<HolderLookup.Provider> p_363203_) {
super(p_365932_, p_363203_);
}
@Override
protected RecipeProvider createRecipeProvider(HolderLookup.Provider p_369764_, RecipeOutput p_363473_) {
return new VanillaRecipeProvider(p_369764_, p_363473_);
}
@Override
public String getName() {
return "Vanilla Recipes";
}
}
public static record TrimTemplate(Item template, ResourceKey<Recipe<?>> id) {
}
} |