half-implement xplat datagen

This commit is contained in:
gamma-delta 2022-05-23 14:21:13 -05:00
parent a3afbdf318
commit 082dbc15d7
216 changed files with 839 additions and 344 deletions

View file

@ -52,3 +52,5 @@ processResources {
expand buildProps
}
}
setupJar(this)

View file

@ -317,108 +317,14 @@ a415fc73fe80dc76885f4ba16ec81251bed93d15 assets/hexcasting/models/item/wand_oak.
f043370d6762b976e33dd6e9562d5e1659d32bbf assets/hexcasting/models/item/wand_old.json
59e0a112daf74023ca10248b04fb674ae03c59f9 assets/hexcasting/models/item/wand_spruce.json
0af04312fc4ca98dd5a7e65595f32cbfda0e93e8 assets/hexcasting/models/item/wand_warped.json
637e118fc7c371db684d0d831a46833b5851e582 data/forge/loot_modifiers/global_loot_modifiers.json
4d4caaea035ae4ee878843dd2455042b299b4e5e data/forge/tags/items/dusts/amethyst.json
05e86742a71afd740f47639be62f93bc9898fcde data/forge/tags/items/gems.json
b6593ea802a692c29b5032292df31beb84878ad8 data/hexcasting/advancements/aaa_wasteful_cast.json
4f4c94021adfb296e3ef3dce1acc46f724f38f92 data/hexcasting/advancements/aab_big_cast.json
2fe3543a209fca031b1eace7ea217c76142609cc data/hexcasting/advancements/enlightenment.json
eb6393ffc79966e4b5983a68157742b78cd12414 data/hexcasting/advancements/opened_eyes.json
cf0ad981bebbb79414d955fb40fbf537fe88b89d data/hexcasting/advancements/recipes/brainsweep/brainsweep/akashic_record.json
c2a362b8c19cb288187d8ff340f82198edc54378 data/hexcasting/advancements/recipes/brainsweep/brainsweep/budding_amethyst.json
c11dc4388c18dadff5d93126eb0f7ae848d627b9 data/hexcasting/advancements/recipes/brainsweep/brainsweep/directrix_redstone.json
86424d21e1bf91c128d3b0d528b813629ad962e9 data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_look.json
5f9f0962f407062e7b6dd0e8c5f8c55ce13962a5 data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_rightclick.json
5d4811f78feefbef0a305555143f488b3dac7ac6 data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_storedplayer.json
3fe1fcf17e1e25aebede47c537f92888330ccf9f data/hexcasting/advancements/recipes/hexcasting/abacus.json
5a17fa9a1496f5fbedd0362f94a5231e0e5ebbfc data/hexcasting/advancements/recipes/hexcasting/ageing_scroll_paper_lantern.json
66e51300dc72c27ed8024ddf852ac9a6208a66b1 data/hexcasting/advancements/recipes/hexcasting/akashic_bookshelf.json
31f9b7d8141f67981deedf7a46894e454006bb28 data/hexcasting/advancements/recipes/hexcasting/akashic_button.json
168749d413b20bb9c05a8e7191758e0e596a319b data/hexcasting/advancements/recipes/hexcasting/akashic_connector.json
1266b263056dd15c862bff27b05a119c4bbc89ee data/hexcasting/advancements/recipes/hexcasting/akashic_door.json
149179e18b1b8db5dc3fb96e6faa6cb6ffaecb75 data/hexcasting/advancements/recipes/hexcasting/akashic_panel.json
4f852507d843f82dce1512f55abfb205b9829ed4 data/hexcasting/advancements/recipes/hexcasting/akashic_planks.json
7a535e710c96e39a17606a10bc1f153d7c57b8e7 data/hexcasting/advancements/recipes/hexcasting/akashic_pressure_plate.json
26782da27b3ce2dcab8545f672d68fe1a8549f35 data/hexcasting/advancements/recipes/hexcasting/akashic_slab.json
e0ff0fe75be853b849f84b05787c1c791fa9e208 data/hexcasting/advancements/recipes/hexcasting/akashic_stairs.json
99aae9efc13ff2b8a4612579b2f865ed2fbe8985 data/hexcasting/advancements/recipes/hexcasting/akashic_tile.json
d5122f034678cc53a2921c65f30451caf708046c data/hexcasting/advancements/recipes/hexcasting/akashic_trapdoor.json
55dded121a8dddb2ee7fb1f3ffcdcd1ada4afbd5 data/hexcasting/advancements/recipes/hexcasting/akashic_wood.json
4066f098ef104eadf6729bb372d9e643c598b477 data/hexcasting/advancements/recipes/hexcasting/akashic_wood_stripped.json
ddd7bd92b9e1586cebd2cee658315a9336a80a76 data/hexcasting/advancements/recipes/hexcasting/amethyst_dust_packing.json
e5ae652aee1567ac2e626fa0f88f160993a6f9a5 data/hexcasting/advancements/recipes/hexcasting/amethyst_dust_unpacking.json
337c4370fd24b66a6b4b3f6c296a33d9a799034e data/hexcasting/advancements/recipes/hexcasting/amethyst_sconce.json
563cb6dda9c55864f141f2ec0ecd2a2b95f57237 data/hexcasting/advancements/recipes/hexcasting/amethyst_tiles.json
b42dae604eab34ae3831fa16c063af852c175791 data/hexcasting/advancements/recipes/hexcasting/ancient_scroll_paper.json
f3e78a96f17dc5ed54047bb24be58dbf3151c8fa data/hexcasting/advancements/recipes/hexcasting/ancient_scroll_paper_lantern.json
090b54b026f6fef2502295ddde5a60f5350e2ec6 data/hexcasting/advancements/recipes/hexcasting/artifact.json
7f165b1783a871cf69db2e9978290f8993665649 data/hexcasting/advancements/recipes/hexcasting/cypher.json
29260d23193f414236b0278a5abd7fe1f7ba8b46 data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_black.json
b519fd81671c9cb8d909bbfd0d4017d2005432d3 data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_blue.json
310e2440f26f130c81d32d9fcd93a3384c2b1e72 data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_brown.json
a27a2514fd3acb6cf0a4f2a6b176ca4c2a3ee064 data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_cyan.json
0e95c5f97c4089d654334a0d58fbf2b808548bd0 data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_gray.json
076dd8bb2ce1508293384fa93fa138a369d10751 data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_green.json
c3aed1dbaa46e084711a116d1bb4522df9a7405a data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_light_blue.json
6837c1fe0ab23167ca8475086b28115369227e0c data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_light_gray.json
918075a87ccc30a489aa8cafa2de992dd179aeac data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_lime.json
cf855b595844c6f2522c0ad18030519279b396ad data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_magenta.json
484be1c50092772587dd18769e63ee3ab22ad971 data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_orange.json
339dc062b4d8d0c4fa2d1eccd2935b4c37ec75c6 data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_pink.json
d6dfd0c6e995270868cb90de818d24b8a667fd01 data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_purple.json
b0b1c5fff194b92ff8c5d6468e177271fd910abd data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_red.json
ccc33b4f1a43c8ecd3352ad36ae2dd2191317b5b data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_white.json
9c857c4aeda8a1b3d7a1b5d341871a9434b5816f data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_yellow.json
7351200c8e3eb24772852c578286384c8aab61bd data/hexcasting/advancements/recipes/hexcasting/empty_directrix.json
023c32e8834eb313c4fa94a84a8f6390ee951ef0 data/hexcasting/advancements/recipes/hexcasting/empty_impetus.json
f089ab17470c5fa0065438c5533d5fafb3ee8eaf data/hexcasting/advancements/recipes/hexcasting/focus.json
874ee348cf2542696b7768049529a2001f0820e7 data/hexcasting/advancements/recipes/hexcasting/jeweler_hammer.json
fc57d15e9f9f11347a2170dd06053954345368d2 data/hexcasting/advancements/recipes/hexcasting/lens.json
82be04125e60a28701de5bb6bc7855bb46fa9d0f data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_0.json
13fc3b9e91486b3b0ca56b4ef7d5ddb8920aa7fe data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_1.json
9e8942971a3b3d0b1ec6a3add5366743429605ca data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_10.json
c30bc14629d0bc99cad10d7b6af19a331357f6a8 data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_11.json
8e73ac3942a94096017e8c775724beafcbade37b data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_12.json
d0c66f50c20912aa0175aea9f97a28e59051b586 data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_13.json
a78da1015ec1e17bf99ffaa75a85ed2cdf0351d2 data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_2.json
fa7dcb3a4e6a6631e437fda9739cfdf40f1b8102 data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_3.json
5241508316a04e9e22452f71c54beae4c75a9bad data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_4.json
3dae781adc5cbdf6e415316ab6d5ce9efa8774c4 data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_5.json
c93d37c6a54b4015a073ad18189f6e721406f183 data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_6.json
6ffa37736a483cef3b174cf00bfcab0b91a6f737 data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_7.json
8209fd940de230393aae894c96a765c62bed4cc2 data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_8.json
9dc35c66da608913da03bc3016f127841d2414cc data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_9.json
43071f2aa09fa59dd8f0211a68c842dac833be02 data/hexcasting/advancements/recipes/hexcasting/scroll.json
d7213631b2f9075c9bdef0d5a48ca28f85f5a090 data/hexcasting/advancements/recipes/hexcasting/scroll_paper.json
85fea90b80954899f236e52d3b3a25f305f8b9d5 data/hexcasting/advancements/recipes/hexcasting/scroll_paper_lantern.json
22ad2496732633bb5539a1fa761051d7add48055 data/hexcasting/advancements/recipes/hexcasting/slate.json
d72a4675ceb721ee4ac43339d8bfbbb82c2adba2 data/hexcasting/advancements/recipes/hexcasting/slate_block.json
9fcc0862c99c50a1df9d3af95b2b3c2af28afa1b data/hexcasting/advancements/recipes/hexcasting/slate_block_from_slates.json
cd3ca380294544b07e91ce85d97808c30ffa5d17 data/hexcasting/advancements/recipes/hexcasting/spellbook.json
b684bfa3755ca25996e74152d2efecbc9d6387d8 data/hexcasting/advancements/recipes/hexcasting/stonecutting/amethyst_tiles.json
59000d9f3edb942081f7d1e03d753e9cd59690cc data/hexcasting/advancements/recipes/hexcasting/sub_sandwich.json
08f14a615c6c8c0b8a08a56af000c1e1991732d3 data/hexcasting/advancements/recipes/hexcasting/trinket.json
eb17a23e7a9543f33922c056cdf0d63def176bf2 data/hexcasting/advancements/recipes/hexcasting/uuid_colorizer.json
804f0e5c6c32c7310129437ccca3ffc148bb973b data/hexcasting/advancements/recipes/hexcasting/wand_acacia.json
2d52419f3fcdc10643cdb8cef89858efc0ad4d11 data/hexcasting/advancements/recipes/hexcasting/wand_akashic.json
f32ccb2d36d773215d91dee46bec70a20af501c3 data/hexcasting/advancements/recipes/hexcasting/wand_birch.json
7c0107192c0e24ff9f23ab0f59834b6081ca5b33 data/hexcasting/advancements/recipes/hexcasting/wand_crimson.json
67d4c536be3762833a4af33cd7cdfc68eb4ad629 data/hexcasting/advancements/recipes/hexcasting/wand_dark_oak.json
318c04242e7b9c302e68b3bfe6dd11ec0fc8a863 data/hexcasting/advancements/recipes/hexcasting/wand_jungle.json
30950c6dd31102cf145f8f7d2979df0736a7ba1e data/hexcasting/advancements/recipes/hexcasting/wand_oak.json
f8d2872c4e692153049b6ae4879755a079954763 data/hexcasting/advancements/recipes/hexcasting/wand_spruce.json
3b2bcffe70bb1f732f06c2560cef66de6c273d62 data/hexcasting/advancements/recipes/hexcasting/wand_warped.json
ed0e62cb81783d8eb6323dd70609067219f163ec data/hexcasting/advancements/root.json
739cbdf7f204132f2acfab4df8d21c6197aa1456 data/hexcasting/advancements/y_u_no_cast_angy.json
70a8f77d38affa642afbfceebe129358737b09ac data/hexcasting/loot_modifiers/amethyst_cluster_charged.json
f746acc6b3e798d3b95f4ceb463c648b1f3ae8c3 data/hexcasting/loot_modifiers/amethyst_cluster_dust.json
a783e00f46a9ff0206e2495c15cea8ba57bdff31 data/hexcasting/loot_modifiers/amethyst_cluster_shard_reducer.json
e04be385fa9daa422e41a38ddd70fdd065107968 data/hexcasting/loot_modifiers/scroll_bastion.json
6569766d1579114149eb0a1154d05ec3c964b2a3 data/hexcasting/loot_modifiers/scroll_cartographer.json
afecba3144e00505977a4ab4de7940f949ab7818 data/hexcasting/loot_modifiers/scroll_dungeon.json
0e8c8a56161586a4021487b27059ca151465af67 data/hexcasting/loot_modifiers/scroll_jungle.json
50e7ad657a0ab43f3bd632120e09f109791aaf34 data/hexcasting/loot_modifiers/scroll_shipwreck.json
7ffa361bd8a108b504fe450749b42997dc898e5e data/hexcasting/loot_modifiers/scroll_stronghold_library.json
cfd72df535fe95cd2b0d800696e7b4b3429a0459 data/hexcasting/loot_tables/blocks/akashic_bookshelf.json
fc787ec13389b66afda79083f22c7b72f02d5966 data/hexcasting/loot_tables/blocks/akashic_button.json
2e5958279471fa57ae2929d9f9da46e59495f50e data/hexcasting/loot_tables/blocks/akashic_connector.json
@ -453,92 +359,6 @@ e66ddc68e90e5e779f273a8d081c2f63e81d6698 data/hexcasting/loot_tables/blocks/scro
fd662ce6977b96065bd438ff332bc5b9f62560e6 data/hexcasting/loot_tables/blocks/scroll_paper_lantern.json
17e53b980127473558a1a544e59d329a4701e7cc data/hexcasting/loot_tables/blocks/slate.json
33b4d5e6928828898fea92523f7cb81f9b4eac36 data/hexcasting/loot_tables/blocks/slate_block.json
6b4459635b3d53cc2b6836fa97d29244a65b412d data/hexcasting/recipes/abacus.json
1f0c9a98d97fb81e1f504cdb6619a3dfab52ba5f data/hexcasting/recipes/ageing_scroll_paper_lantern.json
fa04d5bc32f5646cd67bc8e8b572bdb7849b735e data/hexcasting/recipes/akashic_bookshelf.json
1d19457c9843d97d2ed59199d9077940d9e5e46a data/hexcasting/recipes/akashic_button.json
2c542a616b312e41537fb25a2362877dd50d2692 data/hexcasting/recipes/akashic_connector.json
add097a7a749bd1ebd5828216f013f6cd5b72b62 data/hexcasting/recipes/akashic_door.json
f74f8389f1e8bdb77a92ecfb8d7d7d6f4418d818 data/hexcasting/recipes/akashic_panel.json
ce9ca7b98a89540996f2ad18eea98e31df7974b5 data/hexcasting/recipes/akashic_planks.json
b107ec9af9e08d124f3d4f14d85911f55a5b905b data/hexcasting/recipes/akashic_pressure_plate.json
9a24dcdf873dc97001efb487f6e00739c2ebf15c data/hexcasting/recipes/akashic_slab.json
a92e5560c774bb81cd9f38bd9378af8695cac622 data/hexcasting/recipes/akashic_stairs.json
ac285195e958804bcbd0b87e443d2851fd3a4856 data/hexcasting/recipes/akashic_tile.json
62b120d8943a9e73778ad1468f12532b21774994 data/hexcasting/recipes/akashic_trapdoor.json
a84bf48a188d7b250db5c971a6d9b63d82279ba3 data/hexcasting/recipes/akashic_wood.json
c386a7294db6ed97f9b131cb8402ca6203092b63 data/hexcasting/recipes/akashic_wood_stripped.json
ef016ca292fa4edc7496b64e6f2931f4e7d90636 data/hexcasting/recipes/amethyst_dust_packing.json
91bb341776ce64a68e1c4200aa8f5b2fa6669820 data/hexcasting/recipes/amethyst_dust_unpacking.json
4b3f5fe572ec06feab786e3ba93b0d80b145dd69 data/hexcasting/recipes/amethyst_sconce.json
e5c835d3866e8f5ecfb03c9e7c2c134a50951d67 data/hexcasting/recipes/amethyst_tiles.json
0662d191ec9416e2c3c86962628d3bfbd11bc01f data/hexcasting/recipes/ancient_scroll_paper.json
3f9756b2c5137b285c4faa88ab43c4996b6b2bb6 data/hexcasting/recipes/ancient_scroll_paper_lantern.json
6e6e4d01097c10316892e274f33cb0faaf9dc0df data/hexcasting/recipes/artifact.json
d7f85ce9d46aacc7ec89dc7aa0f88a331ccfbae7 data/hexcasting/recipes/brainsweep/akashic_record.json
30f81e0537c625a4cafcdec75314926569291171 data/hexcasting/recipes/brainsweep/budding_amethyst.json
9f7a9ba332e1018098d21a5ec474440fca7f6c73 data/hexcasting/recipes/brainsweep/directrix_redstone.json
5861845c3cd84021c7c19ac4f5b3bcc8e1bd3916 data/hexcasting/recipes/brainsweep/impetus_look.json
ab5d271371323d93ff6eed18179ee4f7fd8c939c data/hexcasting/recipes/brainsweep/impetus_rightclick.json
34d21369f8879dd084c3215e709ae987a994372f data/hexcasting/recipes/brainsweep/impetus_storedplayer.json
bc140b6c5d999b4bc5d12c302297f56bde3b161c data/hexcasting/recipes/cypher.json
33fed8fb8e34df026e1eea0df8161c7f842a8648 data/hexcasting/recipes/dye_colorizer_black.json
c36caf44a941a4abc44a15141eba8fe634c76fb8 data/hexcasting/recipes/dye_colorizer_blue.json
91348d69c8a49eae2bbaf9fb00b9604c43716527 data/hexcasting/recipes/dye_colorizer_brown.json
e4ef73afbd13a579493f45929c3f7adb8aa86dc2 data/hexcasting/recipes/dye_colorizer_cyan.json
c471220e70ee9ecbf58a21ea1d28e653efcc4fad data/hexcasting/recipes/dye_colorizer_gray.json
fe5f10e9258f430859f1f1f87320a2b5c7b67654 data/hexcasting/recipes/dye_colorizer_green.json
06a4f3776d2bb8f294737d100143a0914342310a data/hexcasting/recipes/dye_colorizer_light_blue.json
25f5d03a6f4290bbbe86c9cac5604b1e8a49ad84 data/hexcasting/recipes/dye_colorizer_light_gray.json
4fad619e1330e938d2e2596fc8fd4e5050a8b40e data/hexcasting/recipes/dye_colorizer_lime.json
386f1b0f7676324186d0694de3c86a77fac5ce98 data/hexcasting/recipes/dye_colorizer_magenta.json
6f1c0a84236b1e3cb4352d87bf3d553eb7e1a938 data/hexcasting/recipes/dye_colorizer_orange.json
fe8a7288aa27c07932a31c64ff8fadb943b278d5 data/hexcasting/recipes/dye_colorizer_pink.json
16fd879351f390bfa980a5f4d77e32f576de2f66 data/hexcasting/recipes/dye_colorizer_purple.json
29559dc2a5c4e189ab7edfbb71fed0a84dd96d45 data/hexcasting/recipes/dye_colorizer_red.json
bc79add419b8791e68b35076355fea11dfc640c6 data/hexcasting/recipes/dye_colorizer_white.json
c5341777604a4be5a311e300a4de89967b7caad2 data/hexcasting/recipes/dye_colorizer_yellow.json
db8a00478e1c4b0f9b143b5946d1ba25e489591d data/hexcasting/recipes/dynamic/seal_focus.json
3a376402af89128dc37adaa0a72b6de66d58309d data/hexcasting/recipes/dynamic/seal_spellbook.json
a952d33cda8b805237052b602cf066683c4bf261 data/hexcasting/recipes/empty_directrix.json
b7c248d2627c2a2b398d1c50181c1e0863612424 data/hexcasting/recipes/empty_impetus.json
7eaf7ee280d1982ecbaf5175cea5c5a7c7804f98 data/hexcasting/recipes/focus.json
bbe78a0adf15bbcf5fb2d8089b24499ff7229858 data/hexcasting/recipes/jeweler_hammer.json
2397e64bd5fa2af12bb4f0f7efbc55f387c07a2b data/hexcasting/recipes/lens.json
0ea329526c81c1e4064bab61721ab4586cfcf706 data/hexcasting/recipes/pride_colorizer_0.json
c742a0a5fba2388263bfccfb49c60277d817f8cd data/hexcasting/recipes/pride_colorizer_1.json
855d1421063c24b2d1507f90f378f51261111d84 data/hexcasting/recipes/pride_colorizer_10.json
51a90058e4701f2d6ef157e1a930c203876e2447 data/hexcasting/recipes/pride_colorizer_11.json
65bb0279c70aed060a09332552a122cf993f5d2a data/hexcasting/recipes/pride_colorizer_12.json
5f1e9330dcdf927e128212678c8e262c6daa92f1 data/hexcasting/recipes/pride_colorizer_13.json
01841b89db3b16a614a098cd468b6d3b64986a34 data/hexcasting/recipes/pride_colorizer_2.json
8ef1f2fcc98c19e3ff1ccdf1c427a6458a720023 data/hexcasting/recipes/pride_colorizer_3.json
b3a23a6430b9e6c7c9e332c6ec996d9d90e7f432 data/hexcasting/recipes/pride_colorizer_4.json
c7c7fa49b7d1f0d03cd753f1ba78aa05a68135d0 data/hexcasting/recipes/pride_colorizer_5.json
5da3bff44e39ed9263f1f341d0a3851d02218018 data/hexcasting/recipes/pride_colorizer_6.json
5d6fac562dd7b7a4be0006de8b4758d5657ac054 data/hexcasting/recipes/pride_colorizer_7.json
03504ac1cc40ece1097e46a8244b7cfb4b32014c data/hexcasting/recipes/pride_colorizer_8.json
3a12c82f29953ee4131a0b49c1b35999c2779019 data/hexcasting/recipes/pride_colorizer_9.json
56d35172b3c5a58e2be4c5be20dd69417685f5d9 data/hexcasting/recipes/scroll.json
ccf4ea841ea9a66738253385c659ff86c85a73f5 data/hexcasting/recipes/scroll_paper.json
5c471f81cc168826f1652a39a71aeb85e786ea16 data/hexcasting/recipes/scroll_paper_lantern.json
f3a33396e071f3afd61eadab2aabdb9acf2ae775 data/hexcasting/recipes/slate.json
09e80537530ed51b6792f16fe8b32448e89dc334 data/hexcasting/recipes/slate_block.json
6f5c41ab9f87ec1206efaaab8d91adc766bb79fd data/hexcasting/recipes/slate_block_from_slates.json
4f06f5f4ae181c8bb6b993d7b6047cd9ca7afbce data/hexcasting/recipes/spellbook.json
ef936e73eea3be9d53c4ac5c78d1477675550375 data/hexcasting/recipes/stonecutting/amethyst_tiles.json
d14cf2f8f0895a5b6dc09b7582c0abf1c2514adf data/hexcasting/recipes/sub_sandwich.json
67b16cdb26f40234a7d4e49357724f24c197580a data/hexcasting/recipes/trinket.json
14d6be5d47b54676a349564ea32c045c76c39b45 data/hexcasting/recipes/uuid_colorizer.json
2ad42dd4a4877a23cb7f45e8b75c9f53f58d12f5 data/hexcasting/recipes/wand_acacia.json
1157a6545ece0e2b8734b8a1428f9a3c021c8b73 data/hexcasting/recipes/wand_akashic.json
f6fab3a3296d157a2b969af0c86eb0e5a9f14df4 data/hexcasting/recipes/wand_birch.json
0cd94b91d64a31a251eebbb37845d165c603452e data/hexcasting/recipes/wand_crimson.json
022dc03ce6f2915459c7bf75d44ec0b8bb3e4083 data/hexcasting/recipes/wand_dark_oak.json
2ec90cd941acad6eabfb38d21466ef8e9b9bf2c1 data/hexcasting/recipes/wand_jungle.json
f7bbc60f547a02378ddb1f23395add4822725fed data/hexcasting/recipes/wand_oak.json
196c49b203748e57a9b2b1259055b9de4b6be8d8 data/hexcasting/recipes/wand_spruce.json
db09b7fc38bdaffa15b57bd361da8529c7bc943e data/hexcasting/recipes/wand_warped.json
f3c6b6917e504e1c3d5d8875f7cce6f311e791d2 data/hexcasting/tags/blocks/akashic_logs.json
b596d96eebb4f7bad5930f4eebc589f292b59c98 data/hexcasting/tags/blocks/akashic_planks.json
f3c6b6917e504e1c3d5d8875f7cce6f311e791d2 data/hexcasting/tags/items/akashic_logs.json
@ -551,7 +371,7 @@ d1b8725bbfc01e2d9a02ef84c911fef89b3636a9 data/hexcasting/tags/items/wands.json
c25784941d6416744fb2ca2d43a3203e5c3e7c8a data/minecraft/tags/blocks/leaves.json
f3c6b6917e504e1c3d5d8875f7cce6f311e791d2 data/minecraft/tags/blocks/logs.json
f3c6b6917e504e1c3d5d8875f7cce6f311e791d2 data/minecraft/tags/blocks/logs_that_burn.json
cb5721fcb4a8f7bf14adf6ab560378a250128aba data/minecraft/tags/blocks/mineable/axe.json
7c08784f2de139be380b5299f8ea8b8c78126ed8 data/minecraft/tags/blocks/mineable/axe.json
c25784941d6416744fb2ca2d43a3203e5c3e7c8a data/minecraft/tags/blocks/mineable/hoe.json
eb4bfbd7fc7632a5c16aa1d50d6090a1f466069b data/minecraft/tags/blocks/mineable/pickaxe.json
f55afc2c05d93b5a44bc9fd73c5e81e71b183965 data/minecraft/tags/blocks/mineable/shovel.json

View file

@ -14,7 +14,6 @@
"hexcasting:akashic_door",
"hexcasting:akashic_trapdoor",
"hexcasting:akashic_slab",
"hexcasting:akashic_stairs",
"hexcasting:akashic_button"
]
}

View file

@ -13,13 +13,11 @@ public class HexItemTags {
public static final TagKey<Item> WANDS = create("wands");
public static final TagKey<Item> PHIAL_BASE = create("phial_base");
public static final TagKey<Item> AMETHYST_DUST = create(new ResourceLocation("forge", "dusts/amethyst"));
private static TagKey<Item> create(String name) {
public static TagKey<Item> create(String name) {
return create(modLoc(name));
}
private static TagKey<Item> create(ResourceLocation id) {
public static TagKey<Item> create(ResourceLocation id) {
return TagKey.create(Registry.ITEM_REGISTRY, id);
}
}

View file

@ -10,7 +10,7 @@ public class HexBlockTags {
public static final TagKey<Block> AKASHIC_LOGS = create("akashic_logs");
public static final TagKey<Block> AKASHIC_PLANKS = create("akashic_planks");
private static TagKey<Block> create(String name) {
public static TagKey<Block> create(String name) {
return TagKey.create(Registry.BLOCK_REGISTRY, modLoc(name));
}
}

View file

@ -0,0 +1,16 @@
package at.petrak.hexcasting.mixin.accessor;
import com.google.gson.JsonObject;
import net.minecraft.data.HashCache;
import net.minecraft.data.recipes.RecipeProvider;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Invoker;
import java.nio.file.Path;
@Mixin(RecipeProvider.class)
public interface AccessorRecipeProvider {
@Invoker("saveRecipe")
static void hex$SaveRecipe(HashCache $$0, JsonObject $$1, Path $$2) {
}
}

View file

@ -10,7 +10,10 @@ import at.petrak.hexcasting.api.player.Sentinel;
import at.petrak.hexcasting.api.spell.casting.CastingHarness;
import at.petrak.hexcasting.api.spell.casting.ResolvedPattern;
import at.petrak.hexcasting.common.network.IMessage;
import com.google.gson.JsonObject;
import net.minecraft.core.BlockPos;
import net.minecraft.data.DataGenerator;
import net.minecraft.data.HashCache;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer;
@ -34,6 +37,7 @@ import net.minecraft.world.level.material.Fluid;
import net.minecraft.world.phys.Vec3;
import org.jetbrains.annotations.Nullable;
import java.nio.file.Path;
import java.util.List;
import java.util.ServiceLoader;
import java.util.function.BiFunction;
@ -123,6 +127,12 @@ public interface IXplatAbstractions {
Ingredient getUnsealedIngredient(ItemStack stack);
void saveRecipeAdvancement(DataGenerator generator, HashCache cache, JsonObject json, Path path);
IXplatTags tags();
///
IXplatAbstractions INSTANCE = find();
private static IXplatAbstractions find() {

View file

@ -0,0 +1,10 @@
package at.petrak.hexcasting.xplat;
import net.minecraft.tags.TagKey;
import net.minecraft.world.item.Item;
// https://fabricmc.net/wiki/tutorial:tags#existing_common_tags
public interface IXplatTags {
// Hex-specific ones
TagKey<Item> amethystDust();
}

View file

@ -0,0 +1,26 @@
package at.petrak.hexcasting.xplat.datagen;
import net.minecraft.world.item.DyeColor;
import net.minecraft.world.item.crafting.Ingredient;
import java.util.EnumMap;
public interface IXplatIngredients {
Ingredient glowstoneDust();
Ingredient leather();
Ingredient ironNugget();
Ingredient goldNugget();
Ingredient copperIngot();
Ingredient ironIngot();
Ingredient goldIngot();
EnumMap<DyeColor, Ingredient> dyes();
Ingredient stick();
}

View file

@ -1,4 +1,4 @@
package at.petrak.hexcasting.forge.datagen;
package at.petrak.hexcasting.xplat.datagen.recipe;
import at.petrak.hexcasting.api.HexAPI;
import at.petrak.hexcasting.api.advancements.OvercastTrigger;
@ -10,13 +10,19 @@ import at.petrak.hexcasting.common.recipe.SealFocusRecipe;
import at.petrak.hexcasting.common.recipe.SealSpellbookRecipe;
import at.petrak.hexcasting.common.recipe.ingredient.StateIngredientHelper;
import at.petrak.hexcasting.common.recipe.ingredient.VillagerIngredient;
import at.petrak.hexcasting.forge.datagen.recipebuilders.BrainsweepRecipeBuilder;
import at.petrak.paucal.api.forge.datagen.PaucalRecipeProvider;
import at.petrak.hexcasting.mixin.accessor.AccessorRecipeProvider;
import at.petrak.hexcasting.xplat.IXplatAbstractions;
import at.petrak.hexcasting.xplat.datagen.IXplatIngredients;
import at.petrak.hexcasting.xplat.datagen.recipe.builders.BrainsweepRecipeBuilder;
import com.google.common.collect.Sets;
import com.google.gson.JsonObject;
import net.minecraft.advancements.critereon.EntityPredicate;
import net.minecraft.advancements.critereon.InventoryChangeTrigger;
import net.minecraft.advancements.critereon.ItemPredicate;
import net.minecraft.advancements.critereon.MinMaxBounds;
import net.minecraft.core.Registry;
import net.minecraft.data.DataGenerator;
import net.minecraft.data.HashCache;
import net.minecraft.data.recipes.*;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.ItemTags;
@ -27,20 +33,54 @@ import net.minecraft.world.item.Item;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.crafting.Ingredient;
import net.minecraft.world.item.crafting.SimpleRecipeSerializer;
import net.minecraft.world.level.ItemLike;
import net.minecraft.world.level.block.Blocks;
import net.minecraftforge.common.Tags;
import net.minecraftforge.registries.ForgeRegistries;
import org.jetbrains.annotations.Nullable;
import java.nio.file.Path;
import java.util.Set;
import java.util.function.Consumer;
import static at.petrak.hexcasting.api.HexAPI.modLoc;
public class HexRecipes extends PaucalRecipeProvider {
public HexRecipes(DataGenerator pGenerator) {
super(pGenerator, HexAPI.MOD_ID);
public class HexplatRecipes extends RecipeProvider {
public DataGenerator generator;
public IXplatIngredients ingredients;
public HexplatRecipes(DataGenerator pGenerator, IXplatIngredients ingredients) {
super(pGenerator);
this.generator = pGenerator;
this.ingredients = ingredients;
}
// [VanillaCopy] RecipeProvider
@Override
protected void buildCraftingRecipes(Consumer<FinishedRecipe> recipes) {
public void run(HashCache cache) {
Path path = this.generator.getOutputFolder();
Set<ResourceLocation> set = Sets.newHashSet();
makeRecipes((recipeJsonProvider) -> {
if (!set.add(recipeJsonProvider.getId())) {
throw new IllegalStateException("Duplicate recipe " + recipeJsonProvider.getId());
} else {
AccessorRecipeProvider.hex$SaveRecipe(cache, recipeJsonProvider.serializeRecipe(), path.resolve(
"data/" + recipeJsonProvider.getId().getNamespace() + "/recipes/" + recipeJsonProvider.getId()
.getPath() + ".json"));
JsonObject jsonObject = recipeJsonProvider.serializeAdvancement();
if (jsonObject != null) {
IXplatAbstractions.INSTANCE.saveRecipeAdvancement(this.generator, cache, jsonObject, path.resolve(
"data/"
+ recipeJsonProvider.getId().getNamespace()
+ "/advancements/" +
recipeJsonProvider.getAdvancementId().getPath()
+ ".json"));
}
}
});
}
protected void makeRecipes(Consumer<FinishedRecipe> recipes) {
specialRecipe(recipes, SealFocusRecipe.SERIALIZER);
specialRecipe(recipes, SealSpellbookRecipe.SERIALIZER);
@ -54,13 +94,13 @@ public class HexRecipes extends PaucalRecipeProvider {
wandRecipe(recipes, HexItems.WAND_WARPED, Items.WARPED_PLANKS);
wandRecipe(recipes, HexItems.WAND_AKASHIC, HexBlocks.AKASHIC_PLANKS.asItem());
ringCornered(HexItems.FOCUS, 1, Ingredient.of(Tags.Items.DUSTS_GLOWSTONE),
Ingredient.of(Tags.Items.LEATHER), Ingredient.of(HexItems.CHARGED_AMETHYST))
ringCornered(HexItems.FOCUS, 1, ingredients.glowstoneDust(),
ingredients.leather(), Ingredient.of(HexItems.CHARGED_AMETHYST))
.unlockedBy("has_item", has(HexItemTags.WANDS))
.save(recipes);
ShapedRecipeBuilder.shaped(HexItems.SPELLBOOK)
.define('N', Tags.Items.NUGGETS_GOLD)
.define('N', ingredients.goldNugget())
.define('B', Items.WRITABLE_BOOK)
.define('A', HexItems.CHARGED_AMETHYST)
.define('F', Items.CHORUS_FRUIT) // i wanna gate this behind the end SOMEHOW
@ -72,17 +112,17 @@ public class HexRecipes extends PaucalRecipeProvider {
.unlockedBy("has_chorus", has(Items.CHORUS_FRUIT)).save(recipes);
ringCornerless(HexItems.CYPHER, 1,
Ingredient.of(Tags.Items.INGOTS_COPPER),
ingredients.copperIngot(),
Ingredient.of(HexItems.AMETHYST_DUST))
.unlockedBy("has_item", has(HexItemTags.WANDS)).save(recipes);
ringCornerless(HexItems.TRINKET, 1,
Ingredient.of(Tags.Items.INGOTS_IRON),
ingredients.ironIngot(),
Ingredient.of(Items.AMETHYST_SHARD))
.unlockedBy("has_item", has(HexItemTags.WANDS)).save(recipes);
ShapedRecipeBuilder.shaped(HexItems.ARTIFACT)
.define('F', Tags.Items.INGOTS_GOLD)
.define('F', ingredients.goldIngot())
.define('A', HexItems.CHARGED_AMETHYST)
// why in god's name does minecraft have two different places for item tags
.define('D', ItemTags.MUSIC_DISCS)
@ -166,10 +206,10 @@ public class HexRecipes extends PaucalRecipeProvider {
.unlockedBy("has_item", has(HexItems.AMETHYST_DUST)).save(recipes);
ShapedRecipeBuilder.shaped(HexItems.JEWELER_HAMMER)
.define('I', Items.IRON_INGOT)
.define('N', Items.IRON_NUGGET)
.define('I', ingredients.ironIngot())
.define('N', ingredients.ironNugget())
.define('A', Items.AMETHYST_SHARD)
.define('S', Items.STICK)
.define('S', ingredients.stick())
.pattern("IAN")
.pattern(" S ")
.pattern(" S ")
@ -197,7 +237,7 @@ public class HexRecipes extends PaucalRecipeProvider {
ringAll(HexBlocks.SCROLL_PAPER, 8, Items.PAPER, Items.AMETHYST_SHARD)
.unlockedBy("has_item", has(Items.AMETHYST_SHARD)).save(recipes);
ShapelessRecipeBuilder.shapeless(HexBlocks.ANCIENT_SCROLL_PAPER, 8)
.requires(Tags.Items.DYES_BROWN)
.requires(ingredients.dyes().get(DyeColor.BROWN))
.requires(HexBlocks.SCROLL_PAPER, 8)
.unlockedBy("has_item", has(HexBlocks.SCROLL_PAPER)).save(recipes);
stack(HexBlocks.SCROLL_PAPER_LANTERN, 1, HexBlocks.SCROLL_PAPER, Items.TORCH)
@ -205,13 +245,13 @@ public class HexRecipes extends PaucalRecipeProvider {
stack(HexBlocks.ANCIENT_SCROLL_PAPER_LANTERN, 1, HexBlocks.ANCIENT_SCROLL_PAPER, Items.TORCH)
.unlockedBy("has_item", has(HexBlocks.ANCIENT_SCROLL_PAPER)).save(recipes);
ShapelessRecipeBuilder.shapeless(HexBlocks.ANCIENT_SCROLL_PAPER_LANTERN, 8)
.requires(Tags.Items.DYES_BROWN)
.requires(ingredients.dyes().get(DyeColor.BROWN))
.requires(HexBlocks.SCROLL_PAPER_LANTERN, 8)
.unlockedBy("has_item", has(HexBlocks.SCROLL_PAPER_LANTERN))
.save(recipes, modLoc("ageing_scroll_paper_lantern"));
stack(HexBlocks.SCONCE, 4, Ingredient.of(HexItems.CHARGED_AMETHYST),
Ingredient.of(Tags.Items.INGOTS_COPPER))
ingredients.copperIngot())
.unlockedBy("has_item", has(HexItems.CHARGED_AMETHYST)).save(recipes);
ShapelessRecipeBuilder.shapeless(HexBlocks.AKASHIC_PLANKS, 4)
@ -366,12 +406,156 @@ public class HexRecipes extends PaucalRecipeProvider {
}
protected void specialRecipe(Consumer<FinishedRecipe> consumer, SimpleRecipeSerializer<?> serializer) {
var name = ForgeRegistries.RECIPE_SERIALIZERS.getKey(serializer);
var name = Registry.RECIPE_SERIALIZER.getKey(serializer);
SpecialRecipeBuilder.special(serializer).save(consumer, HexAPI.MOD_ID + ":dynamic/" + name.getPath());
}
// why is this private waa
protected static InventoryChangeTrigger.TriggerInstance has(TagKey<Item> pTag) {
public static InventoryChangeTrigger.TriggerInstance has(TagKey<Item> pTag) {
return inventoryTrigger(ItemPredicate.Builder.item().of(pTag).build());
}
public static InventoryChangeTrigger.TriggerInstance has(ItemLike $$0) {
return inventoryTrigger(ItemPredicate.Builder.item().of($$0).build());
}
public static InventoryChangeTrigger.TriggerInstance inventoryTrigger(ItemPredicate... $$0) {
return new InventoryChangeTrigger.TriggerInstance(EntityPredicate.Composite.ANY, MinMaxBounds.Ints.ANY,
MinMaxBounds.Ints.ANY, MinMaxBounds.Ints.ANY, $$0);
}
// steal from paucal
protected ShapedRecipeBuilder ring(ItemLike out, int count, Ingredient outer, @Nullable Ingredient inner) {
return this.ringCornered(out, count, outer, outer, inner);
}
protected ShapedRecipeBuilder ring(ItemLike out, int count, ItemLike outer, @Nullable ItemLike inner) {
return this.ring(out, count, Ingredient.of(new ItemLike[]{outer}), this.ingredientOf(inner));
}
protected ShapedRecipeBuilder ring(ItemLike out, int count, TagKey<Item> outer, @Nullable TagKey<Item> inner) {
return this.ring(out, count, Ingredient.of(outer), this.ingredientOf(inner));
}
protected ShapedRecipeBuilder ringCornerless(ItemLike out, int count, Ingredient outer,
@Nullable Ingredient inner) {
return this.ringCornered(out, count, (Ingredient) outer, (Ingredient) null, (Ingredient) inner);
}
protected ShapedRecipeBuilder ringCornerless(ItemLike out, int count, ItemLike outer, @Nullable ItemLike inner) {
return this.ringCornerless(out, count, Ingredient.of(new ItemLike[]{outer}), this.ingredientOf(inner));
}
protected ShapedRecipeBuilder ringCornerless(ItemLike out, int count, TagKey<Item> outer,
@Nullable TagKey<Item> inner) {
return this.ringCornerless(out, count, Ingredient.of(outer), this.ingredientOf(inner));
}
protected ShapedRecipeBuilder ringAll(ItemLike out, int count, Ingredient outer, @Nullable Ingredient inner) {
return this.ringCornered(out, count, outer, outer, inner);
}
protected ShapedRecipeBuilder ringAll(ItemLike out, int count, ItemLike outer, @Nullable ItemLike inner) {
return this.ringAll(out, count, Ingredient.of(outer), this.ingredientOf(inner));
}
protected ShapedRecipeBuilder ringAll(ItemLike out, int count, TagKey<Item> outer, @Nullable TagKey<Item> inner) {
return this.ringAll(out, count, Ingredient.of(outer), this.ingredientOf(inner));
}
protected ShapedRecipeBuilder ringCornered(ItemLike out, int count, @Nullable Ingredient cardinal,
@Nullable Ingredient diagonal, @Nullable Ingredient inner) {
if (cardinal == null && diagonal == null && inner == null) {
throw new IllegalArgumentException("at least one ingredient must be non-null");
} else if (inner != null && cardinal == null && diagonal == null) {
throw new IllegalArgumentException("if inner is non-null, either cardinal or diagonal must not be");
} else {
ShapedRecipeBuilder builder = ShapedRecipeBuilder.shaped(out, count);
char C = ' ';
if (cardinal != null) {
builder.define('C', cardinal);
C = 'C';
}
char D = ' ';
if (diagonal != null) {
builder.define('D', diagonal);
D = 'D';
}
char I = ' ';
if (inner != null) {
builder.define('I', inner);
I = 'I';
}
builder.pattern(String.format("%c%c%c", D, C, D))
.pattern(String.format("%c%c%c", C, I, C))
.pattern(String.format("%c%c%c", D, C, D));
return builder;
}
}
protected ShapedRecipeBuilder ringCornered(ItemLike out, int count, @Nullable ItemLike cardinal,
@Nullable ItemLike diagonal, @Nullable ItemLike inner) {
return this.ringCornered(out, count, this.ingredientOf(cardinal), this.ingredientOf(diagonal),
this.ingredientOf(inner));
}
protected ShapedRecipeBuilder ringCornered(ItemLike out, int count, @Nullable TagKey<Item> cardinal,
@Nullable TagKey<Item> diagonal, @Nullable TagKey<Item> inner) {
return this.ringCornered(out, count, this.ingredientOf(cardinal), this.ingredientOf(diagonal),
this.ingredientOf(inner));
}
protected ShapedRecipeBuilder stack(ItemLike out, int count, Ingredient top, Ingredient bottom) {
return ShapedRecipeBuilder.shaped(out, count).define('T', top).define('B', bottom).pattern("T").pattern("B");
}
protected ShapedRecipeBuilder stack(ItemLike out, int count, ItemLike top, ItemLike bottom) {
return this.stack(out, count, Ingredient.of(top), Ingredient.of(bottom));
}
protected ShapedRecipeBuilder stack(ItemLike out, int count, TagKey<Item> top, TagKey<Item> bottom) {
return this.stack(out, count, Ingredient.of(top), Ingredient.of(bottom));
}
protected ShapedRecipeBuilder stick(ItemLike out, int count, Ingredient input) {
return this.stack(out, count, input, input);
}
protected ShapedRecipeBuilder stick(ItemLike out, int count, ItemLike input) {
return this.stick(out, count, Ingredient.of(input));
}
protected ShapedRecipeBuilder stick(ItemLike out, int count, TagKey<Item> input) {
return this.stick(out, count, Ingredient.of(input));
}
protected void packing(ItemLike free, ItemLike compressed, String freeName, boolean largeSize,
Consumer<FinishedRecipe> recipes) {
ShapedRecipeBuilder pack = ShapedRecipeBuilder.shaped(compressed).define('X', free);
if (largeSize) {
pack.pattern("XXX").pattern("XXX").pattern("XXX");
} else {
pack.pattern("XX").pattern("XX");
}
pack.unlockedBy("has_item", has(free)).save(recipes, modLoc(freeName + "_packing"));
ShapelessRecipeBuilder.shapeless(free, largeSize ? 9 : 4)
.requires(compressed)
.unlockedBy("has_item", has(free))
.save(recipes, modLoc(freeName + "_unpacking"));
}
@Nullable
protected Ingredient ingredientOf(@Nullable ItemLike item) {
return item == null ? null : Ingredient.of(new ItemLike[]{item});
}
@Nullable
protected Ingredient ingredientOf(@Nullable TagKey<Item> item) {
return item == null ? null : Ingredient.of(item);
}
}

View file

@ -1,4 +1,4 @@
package at.petrak.hexcasting.forge.datagen.recipebuilders;
package at.petrak.hexcasting.xplat.datagen.recipe.builders;
import at.petrak.hexcasting.common.recipe.HexRecipeSerializers;
import at.petrak.hexcasting.common.recipe.ingredient.StateIngredient;

View file

@ -5,12 +5,7 @@
"refmap": "hexcasting.mixins.refmap.json",
"package": "at.petrak.hexcasting.mixin",
"mixins": [
"MixinMob",
"MixinRaider",
"MixinVillager",
"MixinWitch",
"accessor.AccessorLivingEntity",
"accessor.AccessorUseOnContext",
"accessor.CriteriaTriggersAccessor"
"MixinMob", "MixinRaider", "MixinVillager", "MixinWitch", "accessor.AccessorLivingEntity",
"accessor.AccessorRecipeProvider", "accessor.AccessorUseOnContext", "accessor.CriteriaTriggersAccessor"
]
}

View file

@ -18,6 +18,12 @@ loom {
server()
setConfigName("Fabric Server")
}
datagen {
client()
vmArg "-Dfabric-api.datagen"
vmArg "-Dfabric-api.datagen.modid=${modID}"
vmArg "-Dfabric-api.datagen.output-dir=${file("src/generated/resources")}"
}
configureEach {
runDir "Fabric/run"
@ -86,3 +92,5 @@ processResources {
expand "version": project.version
}
}
setupJar(this)

View file

@ -0,0 +1,112 @@
package at.petrak.hexcasting.fabric.datagen;
import at.petrak.hexcasting.api.HexAPI;
import at.petrak.hexcasting.xplat.datagen.IXplatIngredients;
import at.petrak.hexcasting.xplat.datagen.recipe.HexplatRecipes;
import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint;
import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator;
import net.minecraft.core.Registry;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.TagKey;
import net.minecraft.world.item.*;
import net.minecraft.world.item.crafting.Ingredient;
import java.util.EnumMap;
import java.util.stream.Stream;
public class HexFabricDataGenerators implements DataGeneratorEntrypoint {
@Override
public void onInitializeDataGenerator(FabricDataGenerator gen) {
HexAPI.LOGGER.info("Starting Fabric-specific datagen");
gen.addProvider(new HexplatRecipes(gen, INGREDIENTS));
}
private static IXplatIngredients INGREDIENTS = new IXplatIngredients() {
@Override
public Ingredient glowstoneDust() {
return new Ingredient(Stream.of(
new Ingredient.ItemValue(new ItemStack(Items.GLOWSTONE_DUST)),
new Ingredient.TagValue(tag("glowstone_dusts"))
));
}
@Override
public Ingredient leather() {
// apparently c:leather also includes rabbit hide
return Ingredient.of(Items.LEATHER);
}
@Override
public Ingredient ironNugget() {
return new Ingredient(Stream.of(
new Ingredient.ItemValue(new ItemStack(Items.IRON_NUGGET)),
new Ingredient.TagValue(tag("iron_nuggets"))
));
}
@Override
public Ingredient goldNugget() {
return new Ingredient(Stream.of(
new Ingredient.ItemValue(new ItemStack(Items.GOLD_NUGGET)),
new Ingredient.TagValue(tag("gold_nuggets"))
));
}
@Override
public Ingredient copperIngot() {
return new Ingredient(Stream.of(
new Ingredient.ItemValue(new ItemStack(Items.COPPER_INGOT)),
new Ingredient.TagValue(tag("copper_ingots"))
));
}
@Override
public Ingredient ironIngot() {
return new Ingredient(Stream.of(
new Ingredient.ItemValue(new ItemStack(Items.IRON_INGOT)),
new Ingredient.TagValue(tag("iron_ingots"))
));
}
@Override
public Ingredient goldIngot() {
return new Ingredient(Stream.of(
new Ingredient.ItemValue(new ItemStack(Items.GOLD_INGOT)),
new Ingredient.TagValue(tag("gold_ingots"))
));
}
@Override
public EnumMap<DyeColor, Ingredient> dyes() {
var out = new EnumMap<DyeColor, Ingredient>(DyeColor.class);
for (var col : DyeColor.values()) {
out.put(col, new Ingredient(Stream.of(
new Ingredient.ItemValue(new ItemStack(DyeItem.byColor(col))),
new Ingredient.TagValue(
TagKey.create(Registry.ITEM_REGISTRY,
new ResourceLocation("c", col.getSerializedName() + "_dye"))),
new Ingredient.TagValue(
TagKey.create(Registry.ITEM_REGISTRY,
new ResourceLocation("c", col.getSerializedName() + "_dyes"))
))));
}
return out;
}
@Override
public Ingredient stick() {
return new Ingredient(Stream.of(
new Ingredient.ItemValue(new ItemStack(Items.STICK)),
new Ingredient.TagValue(tag("wood_sticks"))
));
}
};
private static TagKey<Item> tag(String s) {
return tag("c", s);
}
private static TagKey<Item> tag(String namespace, String s) {
return TagKey.create(Registry.ITEM_REGISTRY, new ResourceLocation(namespace, s));
}
}

View file

@ -15,6 +15,7 @@ import at.petrak.hexcasting.fabric.cc.HexCardinalComponents;
import at.petrak.hexcasting.fabric.recipe.FabricUnsealedIngredient;
import at.petrak.hexcasting.xplat.IXplatAbstractions;
import at.petrak.hexcasting.xplat.Platform;
import com.google.gson.JsonObject;
import com.jamieswhiteshirt.reachentityattributes.ReachEntityAttributes;
import net.fabricmc.api.EnvType;
import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder;
@ -25,6 +26,9 @@ import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityT
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Registry;
import net.minecraft.data.DataGenerator;
import net.minecraft.data.HashCache;
import net.minecraft.data.recipes.RecipeProvider;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer;
@ -45,6 +49,7 @@ import net.minecraft.world.level.material.Fluid;
import net.minecraft.world.phys.Vec3;
import org.jetbrains.annotations.Nullable;
import java.nio.file.Path;
import java.util.List;
import java.util.function.BiFunction;
import java.util.stream.Stream;
@ -267,4 +272,9 @@ public class FabricXplatImpl implements IXplatAbstractions {
public Item.Properties addEquipSlotFabric(EquipmentSlot slot) {
return new FabricItemSettings().equipmentSlot(s -> slot);
}
@Override
public void saveRecipeAdvancement(DataGenerator generator, HashCache cache, JsonObject json, Path path) {
RecipeProvider.saveAdvancement(cache, json, path);
}
}

View file

@ -24,6 +24,9 @@
"client": [
{"adapter": "kotlin", "value": "at.petrak.hexcasting.fabric.FabricHexClientInitializer"}
],
"fabric-datagen": [
"at.petrak.hexcasting.fabric.datagen.HexFabricDataGenerators"
],
"cardinal-components": [
"at.petrak.hexcasting.fabric.cc.HexCardinalComponents"
]

View file

@ -133,7 +133,6 @@ dependencies {
compileOnly fg.deobf("vazkii.patchouli:Patchouli:$minecraftVersion-$patchouliVersion:api")
runtimeOnly fg.deobf("vazkii.patchouli:Patchouli:$minecraftVersion-$patchouliVersion")
compileOnly fg.deobf("mezz.jei:jei-$minecraftVersion:$jeiVersion:api")
runtimeOnly fg.deobf("mezz.jei:jei-$minecraftVersion:$jeiVersion")
@ -169,4 +168,6 @@ processResources {
}
}
jar.finalizedBy('reobfJar')
jar.finalizedBy('reobfJar')
setupJar(this)

View file

@ -0,0 +1,180 @@
637e118fc7c371db684d0d831a46833b5851e582 data/forge/loot_modifiers/global_loot_modifiers.json
cf0ad981bebbb79414d955fb40fbf537fe88b89d data/hexcasting/advancements/recipes/brainsweep/brainsweep/akashic_record.json
c2a362b8c19cb288187d8ff340f82198edc54378 data/hexcasting/advancements/recipes/brainsweep/brainsweep/budding_amethyst.json
c11dc4388c18dadff5d93126eb0f7ae848d627b9 data/hexcasting/advancements/recipes/brainsweep/brainsweep/directrix_redstone.json
86424d21e1bf91c128d3b0d528b813629ad962e9 data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_look.json
5f9f0962f407062e7b6dd0e8c5f8c55ce13962a5 data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_rightclick.json
5d4811f78feefbef0a305555143f488b3dac7ac6 data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_storedplayer.json
3fe1fcf17e1e25aebede47c537f92888330ccf9f data/hexcasting/advancements/recipes/hexcasting/abacus.json
5a17fa9a1496f5fbedd0362f94a5231e0e5ebbfc data/hexcasting/advancements/recipes/hexcasting/ageing_scroll_paper_lantern.json
66e51300dc72c27ed8024ddf852ac9a6208a66b1 data/hexcasting/advancements/recipes/hexcasting/akashic_bookshelf.json
31f9b7d8141f67981deedf7a46894e454006bb28 data/hexcasting/advancements/recipes/hexcasting/akashic_button.json
168749d413b20bb9c05a8e7191758e0e596a319b data/hexcasting/advancements/recipes/hexcasting/akashic_connector.json
1266b263056dd15c862bff27b05a119c4bbc89ee data/hexcasting/advancements/recipes/hexcasting/akashic_door.json
149179e18b1b8db5dc3fb96e6faa6cb6ffaecb75 data/hexcasting/advancements/recipes/hexcasting/akashic_panel.json
4f852507d843f82dce1512f55abfb205b9829ed4 data/hexcasting/advancements/recipes/hexcasting/akashic_planks.json
7a535e710c96e39a17606a10bc1f153d7c57b8e7 data/hexcasting/advancements/recipes/hexcasting/akashic_pressure_plate.json
26782da27b3ce2dcab8545f672d68fe1a8549f35 data/hexcasting/advancements/recipes/hexcasting/akashic_slab.json
e0ff0fe75be853b849f84b05787c1c791fa9e208 data/hexcasting/advancements/recipes/hexcasting/akashic_stairs.json
99aae9efc13ff2b8a4612579b2f865ed2fbe8985 data/hexcasting/advancements/recipes/hexcasting/akashic_tile.json
d5122f034678cc53a2921c65f30451caf708046c data/hexcasting/advancements/recipes/hexcasting/akashic_trapdoor.json
55dded121a8dddb2ee7fb1f3ffcdcd1ada4afbd5 data/hexcasting/advancements/recipes/hexcasting/akashic_wood.json
4066f098ef104eadf6729bb372d9e643c598b477 data/hexcasting/advancements/recipes/hexcasting/akashic_wood_stripped.json
ddd7bd92b9e1586cebd2cee658315a9336a80a76 data/hexcasting/advancements/recipes/hexcasting/amethyst_dust_packing.json
e5ae652aee1567ac2e626fa0f88f160993a6f9a5 data/hexcasting/advancements/recipes/hexcasting/amethyst_dust_unpacking.json
337c4370fd24b66a6b4b3f6c296a33d9a799034e data/hexcasting/advancements/recipes/hexcasting/amethyst_sconce.json
563cb6dda9c55864f141f2ec0ecd2a2b95f57237 data/hexcasting/advancements/recipes/hexcasting/amethyst_tiles.json
b42dae604eab34ae3831fa16c063af852c175791 data/hexcasting/advancements/recipes/hexcasting/ancient_scroll_paper.json
f3e78a96f17dc5ed54047bb24be58dbf3151c8fa data/hexcasting/advancements/recipes/hexcasting/ancient_scroll_paper_lantern.json
090b54b026f6fef2502295ddde5a60f5350e2ec6 data/hexcasting/advancements/recipes/hexcasting/artifact.json
7f165b1783a871cf69db2e9978290f8993665649 data/hexcasting/advancements/recipes/hexcasting/cypher.json
29260d23193f414236b0278a5abd7fe1f7ba8b46 data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_black.json
b519fd81671c9cb8d909bbfd0d4017d2005432d3 data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_blue.json
310e2440f26f130c81d32d9fcd93a3384c2b1e72 data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_brown.json
a27a2514fd3acb6cf0a4f2a6b176ca4c2a3ee064 data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_cyan.json
0e95c5f97c4089d654334a0d58fbf2b808548bd0 data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_gray.json
076dd8bb2ce1508293384fa93fa138a369d10751 data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_green.json
c3aed1dbaa46e084711a116d1bb4522df9a7405a data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_light_blue.json
6837c1fe0ab23167ca8475086b28115369227e0c data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_light_gray.json
918075a87ccc30a489aa8cafa2de992dd179aeac data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_lime.json
cf855b595844c6f2522c0ad18030519279b396ad data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_magenta.json
484be1c50092772587dd18769e63ee3ab22ad971 data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_orange.json
339dc062b4d8d0c4fa2d1eccd2935b4c37ec75c6 data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_pink.json
d6dfd0c6e995270868cb90de818d24b8a667fd01 data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_purple.json
b0b1c5fff194b92ff8c5d6468e177271fd910abd data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_red.json
ccc33b4f1a43c8ecd3352ad36ae2dd2191317b5b data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_white.json
9c857c4aeda8a1b3d7a1b5d341871a9434b5816f data/hexcasting/advancements/recipes/hexcasting/dye_colorizer_yellow.json
7351200c8e3eb24772852c578286384c8aab61bd data/hexcasting/advancements/recipes/hexcasting/empty_directrix.json
023c32e8834eb313c4fa94a84a8f6390ee951ef0 data/hexcasting/advancements/recipes/hexcasting/empty_impetus.json
f089ab17470c5fa0065438c5533d5fafb3ee8eaf data/hexcasting/advancements/recipes/hexcasting/focus.json
874ee348cf2542696b7768049529a2001f0820e7 data/hexcasting/advancements/recipes/hexcasting/jeweler_hammer.json
fc57d15e9f9f11347a2170dd06053954345368d2 data/hexcasting/advancements/recipes/hexcasting/lens.json
82be04125e60a28701de5bb6bc7855bb46fa9d0f data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_0.json
13fc3b9e91486b3b0ca56b4ef7d5ddb8920aa7fe data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_1.json
9e8942971a3b3d0b1ec6a3add5366743429605ca data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_10.json
c30bc14629d0bc99cad10d7b6af19a331357f6a8 data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_11.json
8e73ac3942a94096017e8c775724beafcbade37b data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_12.json
d0c66f50c20912aa0175aea9f97a28e59051b586 data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_13.json
a78da1015ec1e17bf99ffaa75a85ed2cdf0351d2 data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_2.json
fa7dcb3a4e6a6631e437fda9739cfdf40f1b8102 data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_3.json
5241508316a04e9e22452f71c54beae4c75a9bad data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_4.json
3dae781adc5cbdf6e415316ab6d5ce9efa8774c4 data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_5.json
c93d37c6a54b4015a073ad18189f6e721406f183 data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_6.json
6ffa37736a483cef3b174cf00bfcab0b91a6f737 data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_7.json
8209fd940de230393aae894c96a765c62bed4cc2 data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_8.json
9dc35c66da608913da03bc3016f127841d2414cc data/hexcasting/advancements/recipes/hexcasting/pride_colorizer_9.json
43071f2aa09fa59dd8f0211a68c842dac833be02 data/hexcasting/advancements/recipes/hexcasting/scroll.json
d7213631b2f9075c9bdef0d5a48ca28f85f5a090 data/hexcasting/advancements/recipes/hexcasting/scroll_paper.json
85fea90b80954899f236e52d3b3a25f305f8b9d5 data/hexcasting/advancements/recipes/hexcasting/scroll_paper_lantern.json
22ad2496732633bb5539a1fa761051d7add48055 data/hexcasting/advancements/recipes/hexcasting/slate.json
d72a4675ceb721ee4ac43339d8bfbbb82c2adba2 data/hexcasting/advancements/recipes/hexcasting/slate_block.json
9fcc0862c99c50a1df9d3af95b2b3c2af28afa1b data/hexcasting/advancements/recipes/hexcasting/slate_block_from_slates.json
cd3ca380294544b07e91ce85d97808c30ffa5d17 data/hexcasting/advancements/recipes/hexcasting/spellbook.json
b684bfa3755ca25996e74152d2efecbc9d6387d8 data/hexcasting/advancements/recipes/hexcasting/stonecutting/amethyst_tiles.json
59000d9f3edb942081f7d1e03d753e9cd59690cc data/hexcasting/advancements/recipes/hexcasting/sub_sandwich.json
08f14a615c6c8c0b8a08a56af000c1e1991732d3 data/hexcasting/advancements/recipes/hexcasting/trinket.json
eb17a23e7a9543f33922c056cdf0d63def176bf2 data/hexcasting/advancements/recipes/hexcasting/uuid_colorizer.json
804f0e5c6c32c7310129437ccca3ffc148bb973b data/hexcasting/advancements/recipes/hexcasting/wand_acacia.json
2d52419f3fcdc10643cdb8cef89858efc0ad4d11 data/hexcasting/advancements/recipes/hexcasting/wand_akashic.json
f32ccb2d36d773215d91dee46bec70a20af501c3 data/hexcasting/advancements/recipes/hexcasting/wand_birch.json
7c0107192c0e24ff9f23ab0f59834b6081ca5b33 data/hexcasting/advancements/recipes/hexcasting/wand_crimson.json
67d4c536be3762833a4af33cd7cdfc68eb4ad629 data/hexcasting/advancements/recipes/hexcasting/wand_dark_oak.json
318c04242e7b9c302e68b3bfe6dd11ec0fc8a863 data/hexcasting/advancements/recipes/hexcasting/wand_jungle.json
30950c6dd31102cf145f8f7d2979df0736a7ba1e data/hexcasting/advancements/recipes/hexcasting/wand_oak.json
f8d2872c4e692153049b6ae4879755a079954763 data/hexcasting/advancements/recipes/hexcasting/wand_spruce.json
3b2bcffe70bb1f732f06c2560cef66de6c273d62 data/hexcasting/advancements/recipes/hexcasting/wand_warped.json
70a8f77d38affa642afbfceebe129358737b09ac data/hexcasting/loot_modifiers/amethyst_cluster_charged.json
f746acc6b3e798d3b95f4ceb463c648b1f3ae8c3 data/hexcasting/loot_modifiers/amethyst_cluster_dust.json
a783e00f46a9ff0206e2495c15cea8ba57bdff31 data/hexcasting/loot_modifiers/amethyst_cluster_shard_reducer.json
e04be385fa9daa422e41a38ddd70fdd065107968 data/hexcasting/loot_modifiers/scroll_bastion.json
6569766d1579114149eb0a1154d05ec3c964b2a3 data/hexcasting/loot_modifiers/scroll_cartographer.json
afecba3144e00505977a4ab4de7940f949ab7818 data/hexcasting/loot_modifiers/scroll_dungeon.json
0e8c8a56161586a4021487b27059ca151465af67 data/hexcasting/loot_modifiers/scroll_jungle.json
50e7ad657a0ab43f3bd632120e09f109791aaf34 data/hexcasting/loot_modifiers/scroll_shipwreck.json
7ffa361bd8a108b504fe450749b42997dc898e5e data/hexcasting/loot_modifiers/scroll_stronghold_library.json
6b4459635b3d53cc2b6836fa97d29244a65b412d data/hexcasting/recipes/abacus.json
1f0c9a98d97fb81e1f504cdb6619a3dfab52ba5f data/hexcasting/recipes/ageing_scroll_paper_lantern.json
fa04d5bc32f5646cd67bc8e8b572bdb7849b735e data/hexcasting/recipes/akashic_bookshelf.json
1d19457c9843d97d2ed59199d9077940d9e5e46a data/hexcasting/recipes/akashic_button.json
2c542a616b312e41537fb25a2362877dd50d2692 data/hexcasting/recipes/akashic_connector.json
add097a7a749bd1ebd5828216f013f6cd5b72b62 data/hexcasting/recipes/akashic_door.json
f74f8389f1e8bdb77a92ecfb8d7d7d6f4418d818 data/hexcasting/recipes/akashic_panel.json
ce9ca7b98a89540996f2ad18eea98e31df7974b5 data/hexcasting/recipes/akashic_planks.json
b107ec9af9e08d124f3d4f14d85911f55a5b905b data/hexcasting/recipes/akashic_pressure_plate.json
9a24dcdf873dc97001efb487f6e00739c2ebf15c data/hexcasting/recipes/akashic_slab.json
a92e5560c774bb81cd9f38bd9378af8695cac622 data/hexcasting/recipes/akashic_stairs.json
ac285195e958804bcbd0b87e443d2851fd3a4856 data/hexcasting/recipes/akashic_tile.json
62b120d8943a9e73778ad1468f12532b21774994 data/hexcasting/recipes/akashic_trapdoor.json
a84bf48a188d7b250db5c971a6d9b63d82279ba3 data/hexcasting/recipes/akashic_wood.json
c386a7294db6ed97f9b131cb8402ca6203092b63 data/hexcasting/recipes/akashic_wood_stripped.json
ef016ca292fa4edc7496b64e6f2931f4e7d90636 data/hexcasting/recipes/amethyst_dust_packing.json
91bb341776ce64a68e1c4200aa8f5b2fa6669820 data/hexcasting/recipes/amethyst_dust_unpacking.json
4b3f5fe572ec06feab786e3ba93b0d80b145dd69 data/hexcasting/recipes/amethyst_sconce.json
e5c835d3866e8f5ecfb03c9e7c2c134a50951d67 data/hexcasting/recipes/amethyst_tiles.json
0662d191ec9416e2c3c86962628d3bfbd11bc01f data/hexcasting/recipes/ancient_scroll_paper.json
3f9756b2c5137b285c4faa88ab43c4996b6b2bb6 data/hexcasting/recipes/ancient_scroll_paper_lantern.json
6e6e4d01097c10316892e274f33cb0faaf9dc0df data/hexcasting/recipes/artifact.json
d7f85ce9d46aacc7ec89dc7aa0f88a331ccfbae7 data/hexcasting/recipes/brainsweep/akashic_record.json
30f81e0537c625a4cafcdec75314926569291171 data/hexcasting/recipes/brainsweep/budding_amethyst.json
9f7a9ba332e1018098d21a5ec474440fca7f6c73 data/hexcasting/recipes/brainsweep/directrix_redstone.json
5861845c3cd84021c7c19ac4f5b3bcc8e1bd3916 data/hexcasting/recipes/brainsweep/impetus_look.json
ab5d271371323d93ff6eed18179ee4f7fd8c939c data/hexcasting/recipes/brainsweep/impetus_rightclick.json
34d21369f8879dd084c3215e709ae987a994372f data/hexcasting/recipes/brainsweep/impetus_storedplayer.json
bc140b6c5d999b4bc5d12c302297f56bde3b161c data/hexcasting/recipes/cypher.json
33fed8fb8e34df026e1eea0df8161c7f842a8648 data/hexcasting/recipes/dye_colorizer_black.json
c36caf44a941a4abc44a15141eba8fe634c76fb8 data/hexcasting/recipes/dye_colorizer_blue.json
91348d69c8a49eae2bbaf9fb00b9604c43716527 data/hexcasting/recipes/dye_colorizer_brown.json
e4ef73afbd13a579493f45929c3f7adb8aa86dc2 data/hexcasting/recipes/dye_colorizer_cyan.json
c471220e70ee9ecbf58a21ea1d28e653efcc4fad data/hexcasting/recipes/dye_colorizer_gray.json
fe5f10e9258f430859f1f1f87320a2b5c7b67654 data/hexcasting/recipes/dye_colorizer_green.json
06a4f3776d2bb8f294737d100143a0914342310a data/hexcasting/recipes/dye_colorizer_light_blue.json
25f5d03a6f4290bbbe86c9cac5604b1e8a49ad84 data/hexcasting/recipes/dye_colorizer_light_gray.json
4fad619e1330e938d2e2596fc8fd4e5050a8b40e data/hexcasting/recipes/dye_colorizer_lime.json
386f1b0f7676324186d0694de3c86a77fac5ce98 data/hexcasting/recipes/dye_colorizer_magenta.json
6f1c0a84236b1e3cb4352d87bf3d553eb7e1a938 data/hexcasting/recipes/dye_colorizer_orange.json
fe8a7288aa27c07932a31c64ff8fadb943b278d5 data/hexcasting/recipes/dye_colorizer_pink.json
16fd879351f390bfa980a5f4d77e32f576de2f66 data/hexcasting/recipes/dye_colorizer_purple.json
29559dc2a5c4e189ab7edfbb71fed0a84dd96d45 data/hexcasting/recipes/dye_colorizer_red.json
bc79add419b8791e68b35076355fea11dfc640c6 data/hexcasting/recipes/dye_colorizer_white.json
c5341777604a4be5a311e300a4de89967b7caad2 data/hexcasting/recipes/dye_colorizer_yellow.json
db8a00478e1c4b0f9b143b5946d1ba25e489591d data/hexcasting/recipes/dynamic/seal_focus.json
3a376402af89128dc37adaa0a72b6de66d58309d data/hexcasting/recipes/dynamic/seal_spellbook.json
a952d33cda8b805237052b602cf066683c4bf261 data/hexcasting/recipes/empty_directrix.json
b7c248d2627c2a2b398d1c50181c1e0863612424 data/hexcasting/recipes/empty_impetus.json
7eaf7ee280d1982ecbaf5175cea5c5a7c7804f98 data/hexcasting/recipes/focus.json
5bc29f5b97e50c8d82ebe5b8bc45753c6f8c2873 data/hexcasting/recipes/jeweler_hammer.json
2397e64bd5fa2af12bb4f0f7efbc55f387c07a2b data/hexcasting/recipes/lens.json
0ea329526c81c1e4064bab61721ab4586cfcf706 data/hexcasting/recipes/pride_colorizer_0.json
c742a0a5fba2388263bfccfb49c60277d817f8cd data/hexcasting/recipes/pride_colorizer_1.json
855d1421063c24b2d1507f90f378f51261111d84 data/hexcasting/recipes/pride_colorizer_10.json
51a90058e4701f2d6ef157e1a930c203876e2447 data/hexcasting/recipes/pride_colorizer_11.json
65bb0279c70aed060a09332552a122cf993f5d2a data/hexcasting/recipes/pride_colorizer_12.json
5f1e9330dcdf927e128212678c8e262c6daa92f1 data/hexcasting/recipes/pride_colorizer_13.json
01841b89db3b16a614a098cd468b6d3b64986a34 data/hexcasting/recipes/pride_colorizer_2.json
8ef1f2fcc98c19e3ff1ccdf1c427a6458a720023 data/hexcasting/recipes/pride_colorizer_3.json
b3a23a6430b9e6c7c9e332c6ec996d9d90e7f432 data/hexcasting/recipes/pride_colorizer_4.json
c7c7fa49b7d1f0d03cd753f1ba78aa05a68135d0 data/hexcasting/recipes/pride_colorizer_5.json
5da3bff44e39ed9263f1f341d0a3851d02218018 data/hexcasting/recipes/pride_colorizer_6.json
5d6fac562dd7b7a4be0006de8b4758d5657ac054 data/hexcasting/recipes/pride_colorizer_7.json
03504ac1cc40ece1097e46a8244b7cfb4b32014c data/hexcasting/recipes/pride_colorizer_8.json
3a12c82f29953ee4131a0b49c1b35999c2779019 data/hexcasting/recipes/pride_colorizer_9.json
56d35172b3c5a58e2be4c5be20dd69417685f5d9 data/hexcasting/recipes/scroll.json
ccf4ea841ea9a66738253385c659ff86c85a73f5 data/hexcasting/recipes/scroll_paper.json
5c471f81cc168826f1652a39a71aeb85e786ea16 data/hexcasting/recipes/scroll_paper_lantern.json
f3a33396e071f3afd61eadab2aabdb9acf2ae775 data/hexcasting/recipes/slate.json
09e80537530ed51b6792f16fe8b32448e89dc334 data/hexcasting/recipes/slate_block.json
6f5c41ab9f87ec1206efaaab8d91adc766bb79fd data/hexcasting/recipes/slate_block_from_slates.json
4f06f5f4ae181c8bb6b993d7b6047cd9ca7afbce data/hexcasting/recipes/spellbook.json
ef936e73eea3be9d53c4ac5c78d1477675550375 data/hexcasting/recipes/stonecutting/amethyst_tiles.json
d14cf2f8f0895a5b6dc09b7582c0abf1c2514adf data/hexcasting/recipes/sub_sandwich.json
67b16cdb26f40234a7d4e49357724f24c197580a data/hexcasting/recipes/trinket.json
14d6be5d47b54676a349564ea32c045c76c39b45 data/hexcasting/recipes/uuid_colorizer.json
2ad42dd4a4877a23cb7f45e8b75c9f53f58d12f5 data/hexcasting/recipes/wand_acacia.json
1157a6545ece0e2b8734b8a1428f9a3c021c8b73 data/hexcasting/recipes/wand_akashic.json
f6fab3a3296d157a2b969af0c86eb0e5a9f14df4 data/hexcasting/recipes/wand_birch.json
0cd94b91d64a31a251eebbb37845d165c603452e data/hexcasting/recipes/wand_crimson.json
022dc03ce6f2915459c7bf75d44ec0b8bb3e4083 data/hexcasting/recipes/wand_dark_oak.json
2ec90cd941acad6eabfb38d21466ef8e9b9bf2c1 data/hexcasting/recipes/wand_jungle.json
f7bbc60f547a02378ddb1f23395add4822725fed data/hexcasting/recipes/wand_oak.json
196c49b203748e57a9b2b1259055b9de4b6be8d8 data/hexcasting/recipes/wand_spruce.json
db09b7fc38bdaffa15b57bd361da8529c7bc943e data/hexcasting/recipes/wand_warped.json

Some files were not shown because too many files have changed in this diff Show more