diff --git a/gpl-3.0.txt b/LICENSE.md similarity index 100% rename from gpl-3.0.txt rename to LICENSE.md diff --git a/README.md b/README.md new file mode 100644 index 00000000..6a0fa236 --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +# Ex Deorum +###### *"From the Gods"* +*Ex Deorum* is a port of the 1.7 SkyBlock companion mod *Ex Nihilo* by Erasmus_Crowley. It also borrows ideas from +*Ex Nihilo Adscensio* by unascribed, *YUNoMakeGoodMap* by LexManos, and *Ex Compressum* by BlayTheNinth, +although Ex Deorum does not use code from any of those mods. + +Unlike the original mod and any of its ports, *Ex Deorum* includes a SkyBlock world type out of the box. +All of this mod's recipes exist in data packs. The default recipes only cover items from Vanilla Minecraft, +and the sieve drops are generous enough that this mod should be playable without *Ex Compressum*. + +*Ex Nihilo* is licensed under the GNU General Public License Version 3.0, so *Ex Deorum* +uses the same license. A copy of the license is provided in this repository. + diff --git a/build.gradle b/build.gradle index 8e09bd3a..e739f592 100644 --- a/build.gradle +++ b/build.gradle @@ -109,7 +109,10 @@ dependencies { //implementation fg.deobf("dev.architectury:architectury-forge:${architectury_version}") // ModKit DEV ONLY - implementation fg.deobf('com.github.thedarkcolour:ModKit:0aab5a727b') + implementation fg.deobf('com.github.thedarkcolour:ModKit:5ba6a76c4a') + + testImplementation 'org.junit.jupiter:junit-jupiter-api:5.9.2' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.2' } def replaceProperties = [ mc_version: mc_version, mod_version: version ] diff --git a/src/generated/resources/.cache/221483d9edeccdc82e726e39216c875f3fc356d3 b/src/generated/resources/.cache/221483d9edeccdc82e726e39216c875f3fc356d3 index 56f39734..59eb2b40 100644 --- a/src/generated/resources/.cache/221483d9edeccdc82e726e39216c875f3fc356d3 +++ b/src/generated/resources/.cache/221483d9edeccdc82e726e39216c875f3fc356d3 @@ -1,8 +1,9 @@ -// 1.20.1 2023-08-03T18:32:13.5954376 Tags for minecraft:item mod id exdeorum +// 1.20.1 2023-08-08T15:59:08.3354345 Tags for minecraft:item mod id exdeorum 6c72957356b1d59a27be736fa1da54a5a9795ef7 data/exdeorum/tags/items/barrels.json 5feb54ce68fa657af5ce696f75b8c7a6d04cc7a7 data/exdeorum/tags/items/crooks.json +74eefeb986d633d26ad42202c4a6b5e71463c425 data/exdeorum/tags/items/end_cake_materials.json be46bf2abe731d5ee5bd15ce72f222b2b9a49385 data/exdeorum/tags/items/hammers.json -62bd29ff656d336859534c4690f9045298404147 data/exdeorum/tags/items/pebbles.json +b90bd3c642e69b9e800c58a9f8f53e369652e6ba data/exdeorum/tags/items/pebbles.json 8e1b5ab26037123d3948e9ac9f50da1b7cd0a129 data/exdeorum/tags/items/sieve_meshes.json c97c766a33dab7ad0c0c9dfab62ae0f0c19dcb99 data/exdeorum/tags/items/stone_barrels.json ffdb0354323b0eb3c4170e26bfffa2670bb16781 data/exdeorum/tags/items/wooden_barrels.json diff --git a/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d b/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d index 8007c90a..dc93771c 100644 --- a/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d +++ b/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d @@ -1,4 +1,4 @@ -// 1.20.1 2023-08-03T18:32:13.5934373 Loot Tables +// 1.20.1 2023-08-07T23:41:30.8347002 Loot Tables 105d8a61ea7145d7798146d385d4aad24fd1588d data/exdeorum/loot_tables/blocks/acacia_barrel.json 1e77127a82cbba0937bb02694f65cf1893aeffcb data/exdeorum/loot_tables/blocks/acacia_crucible.json fcc00910a8cc94bed6339d6833fcec53c501a0d7 data/exdeorum/loot_tables/blocks/acacia_sieve.json @@ -14,6 +14,8 @@ e11b759a2311950d60e0f825393b8e25d11918df data/exdeorum/loot_tables/blocks/birch_ d52a2d3bcb85c58e549248d5205f863c40d3bd87 data/exdeorum/loot_tables/blocks/crimson_barrel.json 78b361a27788eeda88a1228a5c813d9106ec038e data/exdeorum/loot_tables/blocks/crimson_crucible.json 149b1a730939c3a3b2823b77e1b3771ff6397679 data/exdeorum/loot_tables/blocks/crimson_sieve.json +15d8b5d739f5093cbb11b37b94abd29fd5560cf4 data/exdeorum/loot_tables/blocks/crushed_blackstone.json +84e81d576fb09922cdebe758b52ffccf56284b10 data/exdeorum/loot_tables/blocks/crushed_deepslate.json d15f9ed4837d0015efb7688c9b10716084c78337 data/exdeorum/loot_tables/blocks/crushed_end_stone.json cb1d2e4511ad98f974192f5a60161a30472808aa data/exdeorum/loot_tables/blocks/crushed_netherrack.json cc2ff4d4632fcffee0d3e06529670a102c280410 data/exdeorum/loot_tables/blocks/dark_oak_barrel.json @@ -35,7 +37,7 @@ f94bc97efbfd26ccf7dba32d414fb5e33decd5f6 data/exdeorum/loot_tables/blocks/oak_cr 7e243b44eb3d9f15b983807225da7cb2839dee01 data/exdeorum/loot_tables/blocks/spruce_crucible.json 091d26076d526bff6bdc730f8a45297996ac6f56 data/exdeorum/loot_tables/blocks/spruce_sieve.json 82063725ffe92af96bb2502547ba8cc9d3fd411e data/exdeorum/loot_tables/blocks/stone_barrel.json -ee5d8ec76737c477ad09658042531ff7b91785e2 data/exdeorum/loot_tables/blocks/unfired_crucible.json +fcd9e1fa1e8ec5c5fe7bb25f300284de6dd8b880 data/exdeorum/loot_tables/blocks/unfired_porcelain_crucible.json 7433a7a398f38a949f9ef3231f87853505f797da data/exdeorum/loot_tables/blocks/warped_barrel.json fe639e82446330279c3ab3d66a576931a62516e5 data/exdeorum/loot_tables/blocks/warped_crucible.json c3db3b96077eba364cb012f49e25fa98b98a71ab data/exdeorum/loot_tables/blocks/warped_sieve.json diff --git a/src/generated/resources/.cache/711e6e4ef0ec2176e93c58a9656c8098f7158439 b/src/generated/resources/.cache/711e6e4ef0ec2176e93c58a9656c8098f7158439 index 7faf27f9..ee0b3286 100644 --- a/src/generated/resources/.cache/711e6e4ef0ec2176e93c58a9656c8098f7158439 +++ b/src/generated/resources/.cache/711e6e4ef0ec2176e93c58a9656c8098f7158439 @@ -1,3 +1,5 @@ -// 1.20.1 2023-08-03T18:32:13.5914372 Tags for minecraft:block mod id exdeorum +// 1.20.1 2023-08-07T23:41:30.832699 Tags for minecraft:block mod id exdeorum +f6a9610ebae09549baf17e27200037cd17318055 data/minecraft/tags/blocks/leaves.json 2fb8f4567073001f8a70968950e8a728144e1214 data/minecraft/tags/blocks/mineable/axe.json -88a5d8536b1757308ce053ed08cd1d034f0be1f3 data/minecraft/tags/blocks/mineable/pickaxe.json +f6a9610ebae09549baf17e27200037cd17318055 data/minecraft/tags/blocks/mineable/hoe.json +a23ae1801375c0c9525c3d712cb0eeb87174c219 data/minecraft/tags/blocks/mineable/pickaxe.json diff --git a/src/generated/resources/.cache/93943142017732f21fbc4fa325d116c728b69767 b/src/generated/resources/.cache/93943142017732f21fbc4fa325d116c728b69767 index 374ee7cf..427db2cf 100644 --- a/src/generated/resources/.cache/93943142017732f21fbc4fa325d116c728b69767 +++ b/src/generated/resources/.cache/93943142017732f21fbc4fa325d116c728b69767 @@ -1,2 +1,2 @@ -// 1.20.1 2023-08-03T18:36:59.0728493 ModKit Language: en_us for mod 'exdeorum' -58d756fcf01286b1dc0d0f8117138980d8fbb440 assets/exdeorum/lang/en_us.json +// 1.20.1 2023-08-08T15:59:08.3264326 ModKit Language: en_us for mod 'exdeorum' +4e1f603e798362690e1a65a109632e2324ab5a85 assets/exdeorum/lang/en_us.json diff --git a/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e b/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e index 0eb816d1..b3e69c67 100644 --- a/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e +++ b/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e @@ -1,55 +1,92 @@ -// 1.20.1 2023-08-03T18:32:13.5934373 Recipes -26790a6c852675bbbefc296ddee1f1055053a28f data/exdeorum/advancements/recipes/food/cooked_silk_worm.json -8d39730c76983574ba84d5b0a9a6c02783b5de06 data/exdeorum/advancements/recipes/food/cooked_silk_worm_from_smoking.json -95fade4a5eff6b20b3599b64db91f00248d16a3b data/exdeorum/advancements/recipes/food/porcelain_crucible_from_campfire_cooking.json +// 1.20.1 2023-08-08T15:59:08.3284326 Recipes +5ad481a0c376c1a1785a5d3b992064d0ec0bf3b0 data/exdeorum/advancements/recipes/food/end_cake.json 25dd027e844a72b03c95dbe5e3c3dd8c738ceb00 data/exdeorum/advancements/recipes/misc/acacia_barrel.json 376be94a64c9ca97a9ea2346547b6e617f13a815 data/exdeorum/advancements/recipes/misc/acacia_crucible.json +86b1150c5bede51c643602bf2b574428ff10ed9a data/exdeorum/advancements/recipes/misc/acacia_sieve.json 4a6a48c32915239e2e3ad4a667c2f2b6e7819234 data/exdeorum/advancements/recipes/misc/andesite.json b4a461c52a60ac753aab43dee176cfca474fb0f6 data/exdeorum/advancements/recipes/misc/bamboo_barrel.json 49248bd2ba5cd364a9819bb51bbd23580814851c data/exdeorum/advancements/recipes/misc/bamboo_crucible.json +eb51378747bee8387f0fb657b7e9ce61a92a285d data/exdeorum/advancements/recipes/misc/bamboo_sieve.json +34576270f5e6851b4a33c917191cc2cc27a9d11c data/exdeorum/advancements/recipes/misc/basalt.json 46f4cf0e15aca426d44f5e76372fdf806db53e5a data/exdeorum/advancements/recipes/misc/birch_barrel.json b58090f1a1dec665f11024e4d7774a53f3e4392c data/exdeorum/advancements/recipes/misc/birch_crucible.json +649b99631b50123d3543581665fd266f003cfb5e data/exdeorum/advancements/recipes/misc/birch_sieve.json +0ca623bad0741401dfc32f18e7937123c0053386 data/exdeorum/advancements/recipes/misc/blackstone.json +cc58d4d52bc2c4f0cedc498fb3d9a6bda1fa5ae5 data/exdeorum/advancements/recipes/misc/calcite.json fe4ae2d53dd076fc967a62ede6fff78ed8e460ad data/exdeorum/advancements/recipes/misc/cherry_barrel.json 78ab62bb7b76699615b5dce962945ff704c866a4 data/exdeorum/advancements/recipes/misc/cherry_crucible.json +f5cc5cff25906891478e0f4d3b188f3769735f73 data/exdeorum/advancements/recipes/misc/cherry_sieve.json +9787797e5d5a36780a7548b576fd76e96c262710 data/exdeorum/advancements/recipes/misc/cobbled_deepslate.json dbee171562739e3ab561da0bf52a8566c383c1c2 data/exdeorum/advancements/recipes/misc/cobblestone.json +26790a6c852675bbbefc296ddee1f1055053a28f data/exdeorum/advancements/recipes/misc/cooked_silk_worm.json +5f22b954fc21e07ffe528a1a3c40f4586f9f578d data/exdeorum/advancements/recipes/misc/cooked_silk_worm_from_campfire_cooking.json +8d39730c76983574ba84d5b0a9a6c02783b5de06 data/exdeorum/advancements/recipes/misc/cooked_silk_worm_from_smoking.json a113ba4101974ad78c3ecfd3b29b129579183e23 data/exdeorum/advancements/recipes/misc/copper_ore.json c35a2f9e0a97888cfa35cd07f365ae60b2de4b68 data/exdeorum/advancements/recipes/misc/crimson_barrel.json d36191b13459b513f67e09a00f26dd79317b5d96 data/exdeorum/advancements/recipes/misc/crimson_crucible.json +cf30753819f21a29082554871fa4617a060eb11c data/exdeorum/advancements/recipes/misc/crimson_sieve.json 21c64e319bcd1468eb05aaee89505fbf570273d0 data/exdeorum/advancements/recipes/misc/dark_oak_barrel.json 6fa805a246c424ea651fff9003e11f3c8632cd3c data/exdeorum/advancements/recipes/misc/dark_oak_crucible.json +ce387be36edacdb259a5ea4564ad4b14ccec7950 data/exdeorum/advancements/recipes/misc/dark_oak_sieve.json +05ed034071a2c7df228c235fa1104052aca23ebc data/exdeorum/advancements/recipes/misc/diamond_mesh.json 7a521fa3d4d9c602a1135e22ef63d5e407f3262a data/exdeorum/advancements/recipes/misc/diorite.json +fd152bac09d1c3bbe67302f13c2135428d6ef48e data/exdeorum/advancements/recipes/misc/flint_mesh.json +f3d25fad0818f06ed341008daa157732a41702f0 data/exdeorum/advancements/recipes/misc/golden_mesh.json 8e0b91838f1597f97158c6d6c1d5d4dd1da3ceb7 data/exdeorum/advancements/recipes/misc/gold_ore.json 13e1a8346dc49decee9de11f6d589f0b033aa65d data/exdeorum/advancements/recipes/misc/granite.json +6b6169e1c93c990cdac051f6b96849a4cf1850ad data/exdeorum/advancements/recipes/misc/iron_mesh.json 2f2e4e3f4893390b7248a1fd9fd405d628aaa69c data/exdeorum/advancements/recipes/misc/iron_ore.json 13ae44cb8da590953fc295c730e3606ab8c8ef7e data/exdeorum/advancements/recipes/misc/jungle_barrel.json 4e23fd62963a608c73565d61966cd700537b48a7 data/exdeorum/advancements/recipes/misc/jungle_crucible.json +3bd0ba3d3e51aff232087d325270f1c07c9e9e9d data/exdeorum/advancements/recipes/misc/jungle_sieve.json ef344cd03adefba1ff628f494569cb1e61ff5a5f data/exdeorum/advancements/recipes/misc/mangrove_barrel.json a4325e653eba3a2cd86fa5055414c0b8f391d80d data/exdeorum/advancements/recipes/misc/mangrove_crucible.json +47657db106b7291a5fc2ebf281daa03dc7ec71c0 data/exdeorum/advancements/recipes/misc/mangrove_sieve.json +8cde46d6245da58277653bb9877518f099150e3d data/exdeorum/advancements/recipes/misc/moss_block.json +a21315f6c45ed3300ae2dd79b1dbdbecce9d1305 data/exdeorum/advancements/recipes/misc/netherite_mesh.json d85bf493287a94e61ee13f713625b3dec0624706 data/exdeorum/advancements/recipes/misc/oak_barrel.json 83cb594324378aa27e88363a95b95389045f6bb5 data/exdeorum/advancements/recipes/misc/oak_crucible.json -621481d98464a83a43d69c2a2e8b0c782f159d22 data/exdeorum/advancements/recipes/misc/porcelain_crucible.json +24d790eac1a1dafd023859cce63b2e3647730ffb data/exdeorum/advancements/recipes/misc/oak_sieve.json +f971f07a474e979defc404208492e4e1cc5d7475 data/exdeorum/advancements/recipes/misc/porcelain_bucket.json +27e0afbaa49558e82ca58ea323d3e14fc8b02ed5 data/exdeorum/advancements/recipes/misc/porcelain_clay_ball.json +43b9432f719e43b3b05a58eca0b423d2dce83885 data/exdeorum/advancements/recipes/misc/porcelain_crucible.json +2d4981b49378b19087c8e4e76155e3cb3b19de88 data/exdeorum/advancements/recipes/misc/sculk_core.json 5b83976b43f495d759b62d31e8645e503aa11eae data/exdeorum/advancements/recipes/misc/spruce_barrel.json 4f82465369cb3da80c9740a2aac5a5c310f10093 data/exdeorum/advancements/recipes/misc/spruce_crucible.json +e3be05ed69a32ef49586a025228e516d2fed50a3 data/exdeorum/advancements/recipes/misc/spruce_sieve.json 6b4786a5f840e458ec918714716b440525a03d59 data/exdeorum/advancements/recipes/misc/stone_barrel.json 086134fd2b999ce693a10ff66274e3b7347e4f44 data/exdeorum/advancements/recipes/misc/string_mesh.json -dec3917d92fe7132d2198369f4a917d096b097ce data/exdeorum/advancements/recipes/misc/unfired_crucible.json +9f16d6c9e7c4f37382130396f326e039a7207a41 data/exdeorum/advancements/recipes/misc/tuff.json +bdfb96be5fba1ad04a86ceda6025ffd7354b154c data/exdeorum/advancements/recipes/misc/unfired_porcelain_bucket.json +e83c9672f6250f553f9ec48df0263bf92148e990 data/exdeorum/advancements/recipes/misc/unfired_porcelain_crucible.json ce13aea7f3706df6ee4380e09d8cec9de3b28a95 data/exdeorum/advancements/recipes/misc/warped_barrel.json c348b3f289fdd42b66154680447c14da2fb8b8d8 data/exdeorum/advancements/recipes/misc/warped_crucible.json +60f7dc1fadae2a188ffef360e6fb1466f88df0f2 data/exdeorum/advancements/recipes/misc/warped_sieve.json 3bc88052ecc7287952e17c8c7d9ff51be8f8efe5 data/exdeorum/advancements/recipes/tools/bone_crook.json ed5a600dde175bdc931fb8d5100a4951598a6138 data/exdeorum/advancements/recipes/tools/crook.json 8f8c706547ffbd7db1e9b513f6eab5224630cc53 data/exdeorum/advancements/recipes/tools/diamond_hammer.json +9d319c46fbab930c721eefcb645d351b53bbb445 data/exdeorum/advancements/recipes/tools/diamond_watering_can.json efd6f054ffb1f179fa1c92b8dafcbe8f8c9c2a31 data/exdeorum/advancements/recipes/tools/golden_hammer.json +8de8776c6361254f12dcc9305c971fca64cea52d data/exdeorum/advancements/recipes/tools/golden_watering_can.json 549692588c02488c8bf541d9e658cb352c9dcfcf data/exdeorum/advancements/recipes/tools/iron_hammer.json -0d83f948e9ec7ef7fd5f2a4b0aff00caf5a09aa8 data/exdeorum/advancements/recipes/tools/netherite_hammer.json +80ea9b0df7f2a1099eb9578c8c72ebb358761198 data/exdeorum/advancements/recipes/tools/iron_watering_can.json +dd9cb9835fecf1effb5ac6a96e3221ef3477492f data/exdeorum/advancements/recipes/tools/netherite_hammer.json +27a3dcab466a9c54f95471c16c6f9d68692eacb8 data/exdeorum/advancements/recipes/tools/netherite_watering_can.json 343650aa1e2fe06e242d2cf73425cb12565b2ac9 data/exdeorum/advancements/recipes/tools/stone_hammer.json +1f3b80016a80a27ddf58228895d41c50c4e9bdfd data/exdeorum/advancements/recipes/tools/stone_watering_can.json 70d5cb939e74abcca37710a67394063abbd11e37 data/exdeorum/advancements/recipes/tools/wooden_hammer.json +752f037a88e20aa57f0a5316cd82afc3ca287e85 data/exdeorum/advancements/recipes/tools/wooden_watering_can.json 1a3ad55e158322407ec6b00dfdd775ae9a590980 data/exdeorum/recipes/acacia_barrel.json b04a381b3dc085153b5acc8085792297be9f5abb data/exdeorum/recipes/acacia_crucible.json +48aac07942300d20924474f3b71f2b746a43fc3c data/exdeorum/recipes/acacia_sieve.json 3e5a3df68bb27ef2b83fa9bdbd2f29f053781c2c data/exdeorum/recipes/andesite.json 97c20733afff55e967256e89ee022be1c657e8f0 data/exdeorum/recipes/bamboo_barrel.json ffd7c016eef42ed756f88aed5dbf6bd7c1d61767 data/exdeorum/recipes/bamboo_crucible.json +233f10c1363ab42fc9556c6533634db8c288b43f data/exdeorum/recipes/bamboo_sieve.json 7940ebf503b4fa5a89b5279f623a9aeda8629940 data/exdeorum/recipes/barrel_compost/apple.json 1b13c3e0c90d978f574e865d951e05f29b1fb77b data/exdeorum/recipes/barrel_compost/beef.json +7b2e90d846a0ee0ae4db096448ebc4f7b73c7485 data/exdeorum/recipes/barrel_compost/beetroot.json +33b36a52c05f2c9ea4d501cf7ce34626dd4fe08a data/exdeorum/recipes/barrel_compost/beetroot_soup.json 96cd94a5121301bb47bc8b6c89cdccc05c9b76dd data/exdeorum/recipes/barrel_compost/berries.json 30c75da3bbf2917418045d6b971572cafa970e09 data/exdeorum/recipes/barrel_compost/bread.json 177efefdd5b58a1feab7e93986631edbb69644ad data/exdeorum/recipes/barrel_compost/cake.json @@ -58,13 +95,18 @@ ffd7c016eef42ed756f88aed5dbf6bd7c1d61767 data/exdeorum/recipes/bamboo_crucible.j fdb1992a1f288ad308a32661d471ab08675011d0 data/exdeorum/recipes/barrel_compost/cod.json 1f04665bbda29747d8071cf45114a86a41415cb6 data/exdeorum/recipes/barrel_compost/cookie.json fea2a11e64ae425b6dcc29480e9793fad877792b data/exdeorum/recipes/barrel_compost/egg.json +09f8e54e4112aa8f163967130087c9a24f9d03a0 data/exdeorum/recipes/barrel_compost/fermented_spider_eye.json +79bbe21466b4700c57cdcaeb15ebc5af741eafd4 data/exdeorum/recipes/barrel_compost/golden_apples.json 7e4e8500b94b97fded88c19b66b5c4f2fa8c3b38 data/exdeorum/recipes/barrel_compost/grass.json b26f3f6922af80bbe8830ad00844880ab5d1d389 data/exdeorum/recipes/barrel_compost/kelp.json dbc452bd95428da7c2c44fe0f2f55c04a0939e25 data/exdeorum/recipes/barrel_compost/leaves.json ef787402b9a0735b03fd72f2f6eac1a312de54d1 data/exdeorum/recipes/barrel_compost/lily_pad.json 1173cffa62b08f64f95456808197800883f8e754 data/exdeorum/recipes/barrel_compost/melon.json cd92a1c1424b4eac5028d523c02330f7f9fe576b data/exdeorum/recipes/barrel_compost/melon_slice.json +a2c6f907285ca67c96bbe2533b9ad8740654d803 data/exdeorum/recipes/barrel_compost/moss_block.json +a406be4deb26a9b12e386441561a87715818e74c data/exdeorum/recipes/barrel_compost/moss_carpet.json 3ce6d4c6e9d4fa14aa28c16f28b295967fe26ff2 data/exdeorum/recipes/barrel_compost/mushrooms.json +3cae9eb98aceae91ff7383f11900d363f761ba7d data/exdeorum/recipes/barrel_compost/mushroom_stew.json 40f0c6f2a5958c23d63990ba6accc41b5052c230 data/exdeorum/recipes/barrel_compost/mutton.json 175fd172fceeadc06ca5184ad8f71ae17ba93667 data/exdeorum/recipes/barrel_compost/nether_wart.json 0d0d58da8a0389440e9b13bdedc6d6e14b4197b8 data/exdeorum/recipes/barrel_compost/pork.json @@ -73,6 +115,8 @@ f53dc1607f4f2cffb472a89c1295061a78393bc8 data/exdeorum/recipes/barrel_compost/pu b691840022019ce1ebcb8528f77066e68162e58c data/exdeorum/recipes/barrel_compost/pumpkin.json 8e293fa1db1397714f8e41c8f13f6a8e59566edc data/exdeorum/recipes/barrel_compost/pumpkin_pie.json c648fa75a79e170a8a882a92b20ee3a6780b5849 data/exdeorum/recipes/barrel_compost/rabbit.json +763e95952aabe2520e4c623aaed3a34cf6397e91 data/exdeorum/recipes/barrel_compost/rabbit_foot.json +9e184580291c74607690a8c26ddec3c62d020fd8 data/exdeorum/recipes/barrel_compost/rabbit_stew.json c720509d8f087f6b6a95b86f66068e94d09ecb56 data/exdeorum/recipes/barrel_compost/rotten_flesh.json 2e7fda4c3ae928ad3fa442e30deec859f4e8b143 data/exdeorum/recipes/barrel_compost/salmon.json 12e54efe4b3b86d27b57c8169e3c0ae873ab781f data/exdeorum/recipes/barrel_compost/saplings.json @@ -81,94 +125,642 @@ c720509d8f087f6b6a95b86f66068e94d09ecb56 data/exdeorum/recipes/barrel_compost/ro 0448b2c0b447b8f9143cca678d3caf9a66fb81d2 data/exdeorum/recipes/barrel_compost/silk_worms.json e0a9b437cd796c609fb8719325661c6117f59d4f data/exdeorum/recipes/barrel_compost/small_flowers.json 8f8075014f8f4200abd8253b5135d23cd37d45ba data/exdeorum/recipes/barrel_compost/spider_eye.json +61aa8e3c09be7880fad18822ed8d051e986c9772 data/exdeorum/recipes/barrel_compost/spores_and_seeds.json 0f979382681cc620280b2dc12cd28687ca2d46f9 data/exdeorum/recipes/barrel_compost/string.json e6077478cfc6b699909e15fd4f2113e703c4046f data/exdeorum/recipes/barrel_compost/sugar_cane.json +ef56ceb8bdda8c13d3d1dc2d6a2355789f3f1634 data/exdeorum/recipes/barrel_compost/suspicious_stew.json ea698e109eb94b25b670be314de756955b3e1d58 data/exdeorum/recipes/barrel_compost/tall_flowers.json b6c9b1329b400953c4239eb0444367772a2f67a8 data/exdeorum/recipes/barrel_compost/tall_grass.json cc365b1961a4d1ac668c1ea33f52a4b74517d8c0 data/exdeorum/recipes/barrel_compost/tropical_fish.json 653a42a46a6bd977a2eddea7336df4beabbbeecf data/exdeorum/recipes/barrel_compost/vine.json 5677e23fdc74130523d602ebf9e557f659af57c5 data/exdeorum/recipes/barrel_compost/wheat.json -94c1a18675f7decdd92dc7a4c067187d301c8ada data/exdeorum/recipes/barrel_mixing/end_stone.json -76238c8829fec062ebbcb9408f2dd5c286d89db9 data/exdeorum/recipes/barrel_mixing/ice.json -cc8eefbfd353f195bca53a8aca98cbaefd9c760d data/exdeorum/recipes/barrel_mixing/netherrack.json -002a20e5d9df8ec7a795917a04837cda9bd4e807 data/exdeorum/recipes/barrel_mixing/obsidian.json -60962aa7de36cb7ee3486f83e9376ce19d7cc4ff data/exdeorum/recipes/barrel_mixing/slime_block.json -923c394a75047e8adcb0b8ed1ac74d6bb056781c data/exdeorum/recipes/barrel_mixing/soul_sand.json -d86864fd5a4ebe988247197d510eb78ae5f97c0b data/exdeorum/recipes/barrel_mixing/stone.json +72f969f4db1f82a627df573c866a1b291e540a0a data/exdeorum/recipes/barrel_mixing/end_stone.json +37f73e219fda3c6f56bf55f8ec7f97586ecdbae1 data/exdeorum/recipes/barrel_mixing/ice.json +6c31cd3a1b2204561b123875fae0f7aebcdf7b16 data/exdeorum/recipes/barrel_mixing/magma_cream.json +e77fbe2d5aa36f25acad8e5beabe8bffcb5a5099 data/exdeorum/recipes/barrel_mixing/netherrack.json +6c5b774d38127e4d3b9aac7f2206ddf7bfb23de4 data/exdeorum/recipes/barrel_mixing/netherrack_from_porcelain_bucket.json +4903a160d3b4cd35508b2a79107fd3ed05ff0a81 data/exdeorum/recipes/barrel_mixing/obsidian.json +7bdcda3fd6af00a14e3eb54c302c7933bd6206b9 data/exdeorum/recipes/barrel_mixing/obsidian_from_porcelain_bucket.json +1c43bcc290f6dc85e2d292e48d5b43067769c44e data/exdeorum/recipes/barrel_mixing/slime_block.json +675094640c64c34e3812b8a667761c866307c752 data/exdeorum/recipes/barrel_mixing/slime_block_from_porcelain_bucket.json +08689e3ea37eae1dbf2ff54f2910c211f40f9b16 data/exdeorum/recipes/barrel_mixing/soul_sand.json +173f8cfa024c85c843c27a8acc36285e7cd34d03 data/exdeorum/recipes/barrel_mixing/soul_soil.json +f36d0285aee351f12b653d98aaeb390012eea0ed data/exdeorum/recipes/barrel_mixing/stone.json +0b928c9adfdcb12d12254aba04d7a19ef59d3dab data/exdeorum/recipes/barrel_mixing/stone_from_porcelain_bucket.json +7da00b96ebc2fed2bee34e97e4663f701e624e79 data/exdeorum/recipes/basalt.json 86419d8f205f3756c57a5701407b78d21cec595c data/exdeorum/recipes/birch_barrel.json a9b16fe05fac026f5fc6e843165ac6b3c4e49ad9 data/exdeorum/recipes/birch_crucible.json +9e8f62fdc13f7ee00270e5a145511a2126446de5 data/exdeorum/recipes/birch_sieve.json +64a7f60b466125e4c69919b65306414540386688 data/exdeorum/recipes/blackstone.json e2747b1a78ad7e24daa1457cd42727d4e557e601 data/exdeorum/recipes/bone_crook.json +d4226d4489481ade3466dd77412ce086b54566ea data/exdeorum/recipes/calcite.json 00792e2958a9c8017228b1a85444f864c67df820 data/exdeorum/recipes/cherry_barrel.json b2e3bb4ec8706924dae30712573f269cff310f6f data/exdeorum/recipes/cherry_crucible.json +8eb7cc61d49e09d60961b3563957b0643400ba01 data/exdeorum/recipes/cherry_sieve.json +b39efa0032946e54274f8b45a654f7e55ff23673 data/exdeorum/recipes/cobbled_deepslate.json ba90fbda213e52dc15ea532c8f10c63ea47747de data/exdeorum/recipes/cobblestone.json 0f7fa8aac7b5e0a3a882db3ca0f6e46b1731f672 data/exdeorum/recipes/cooked_silk_worm.json +508acb3340451e047f94a07759649fa81f0e6c06 data/exdeorum/recipes/cooked_silk_worm_from_campfire_cooking.json 0843aa55ea02679d6cd055e469a8dc980aed84b0 data/exdeorum/recipes/cooked_silk_worm_from_smoking.json 520186c74048b30a5fc6ab424d2717944b6624e2 data/exdeorum/recipes/copper_ore.json 33acd21d80389c29b42ec1d4247bb34d5a10e740 data/exdeorum/recipes/crimson_barrel.json 20ddd97165d2b2c1c9c04f364ddec810ca7d73d6 data/exdeorum/recipes/crimson_crucible.json +21057c2afeda8c54e808b82818c93c8102326f98 data/exdeorum/recipes/crimson_sieve.json f6a9036c1bbc4fa0cdc25ef4c851de5ddac0a4ff data/exdeorum/recipes/crook.json f41b9a2782302d6684a89127b90f47ba432b35f1 data/exdeorum/recipes/dark_oak_barrel.json 88de5b2df3c7cbb668195ebff7d60235fa897cdf data/exdeorum/recipes/dark_oak_crucible.json +b14283dd10c79ddb507aa849a9a432266b615f19 data/exdeorum/recipes/dark_oak_sieve.json 0558034d3940e2bd4046ad2af07c42068852dc76 data/exdeorum/recipes/diamond_hammer.json +4bb1b1df247eaa495b18df77893ac6cfaaa9477a data/exdeorum/recipes/diamond_mesh.json +8244864c8c0fb88af380c18bb593a8cb3982abbd data/exdeorum/recipes/diamond_watering_can.json 596e6fb9a4c633938b7b3c778baad53cdd9fd2ed data/exdeorum/recipes/diorite.json +04ae3d6df1f7ed4d376c3f95bc4924651a1148e8 data/exdeorum/recipes/end_cake.json +fafeef8c11df81d877166ba0d4add3823515dad3 data/exdeorum/recipes/flint_mesh.json 4adddee39d6ff6ee58dedfdeb32265a051f9a722 data/exdeorum/recipes/golden_hammer.json +a32f858ab7b6b5d5546b8474175a44a93d85f8bc data/exdeorum/recipes/golden_mesh.json +e77acbd0878f662f441d590287e71e66593ef928 data/exdeorum/recipes/golden_watering_can.json 44ed0e97591833c39e32847f22edf333ae551b22 data/exdeorum/recipes/gold_ore.json 959cdac69e6907157e75b38b098cff21609f4869 data/exdeorum/recipes/granite.json +bda55a01228a6ad8f75521dd13397e94fba5009d data/exdeorum/recipes/hammer/basalt.json +e69619aa6bc3479aeb1abc8406d85ea9edb1e041 data/exdeorum/recipes/hammer/brain_coral.json +2791dcf1ad3bed8853a4189b2bb497d262e0cf79 data/exdeorum/recipes/hammer/brain_coral_fan.json +9aff8f335aeede0e6ea72799b15d1109c236cbf3 data/exdeorum/recipes/hammer/bubble_coral.json +b11fc49336d24754d3722846d18399416b1e2434 data/exdeorum/recipes/hammer/bubble_coral_fan.json +c60e4f9725eb4cf93036ba1d76d3218b5e6189ce data/exdeorum/recipes/hammer/crushed_blackstone.json +3228f6955096afa08248d7fe208b4a6b6a025614 data/exdeorum/recipes/hammer/crushed_deepslate.json +e84c103a7661eb7cf1443c5bcd08672cf91e33b6 data/exdeorum/recipes/hammer/crushed_end_stone.json 5af5ca27315048e86f73d689b74a375fc2dcada3 data/exdeorum/recipes/hammer/crushed_netherrack.json b8f6f3cafbd66f00c8a53538e5d609f1c2120e9a data/exdeorum/recipes/hammer/crushing_red_sandstone.json eee4bfda98c57edabadea32dad636c345999ba0a data/exdeorum/recipes/hammer/crushing_sandstone.json dd16c63617e152e9f1f16b1777d9bafffd8fafa3 data/exdeorum/recipes/hammer/crushing_stone_bricks.json -445b29b010e6025871a5d2073e8216e436ca6286 data/exdeorum/recipes/hammer/dust.json -aaa8284df43cfd02b61e25dc5e3bb76c93779c72 data/exdeorum/recipes/hammer/gravel.json +a226373814141181d82478be6eb0edb019178945 data/exdeorum/recipes/hammer/dust.json +29321aa3d1cb2812576e10a5e99fe3bedfb401d3 data/exdeorum/recipes/hammer/fire_coral.json +df7f23b00f23a5ac255345801ac88850877a2e88 data/exdeorum/recipes/hammer/fire_coral_fan.json +113507c073fc77439cb7d3c56a96d61ca70b6c9d data/exdeorum/recipes/hammer/gravel.json +808203624a792fcd4a0289975d82b3bff34af90e data/exdeorum/recipes/hammer/horn_coral.json +5ebb5a4dfa54230abcd4cdb5af34b2b296c7eb23 data/exdeorum/recipes/hammer/horn_coral_fan.json +19c00defa531bfbaa11f19403ff9d1694a9cd04a data/exdeorum/recipes/hammer/prismarine.json b592554bc00ab20d8affdfd1627406858ac10797 data/exdeorum/recipes/hammer/sand.json 0e879c5bcf28023efdcd257d3e12e7153bd0bef7 data/exdeorum/recipes/hammer/stone_pebbles.json +3bf60837b935bd09248a84fd8f22968fc244ea46 data/exdeorum/recipes/hammer/tube_coral.json +f9654d25e05276b2bce6445e2cf7c1f2d9170124 data/exdeorum/recipes/hammer/tube_coral_fan.json 3067ccffd037b6d16ba09ae181813be6471d2050 data/exdeorum/recipes/iron_hammer.json +f046e0fa73b12cea658363a082ad0da48e21e85d data/exdeorum/recipes/iron_mesh.json 6f06b4d91979afc8000988cd20519379152a373b data/exdeorum/recipes/iron_ore.json +f4ea515ec72c867b9c0b54df162bd07c62e1a7ce data/exdeorum/recipes/iron_watering_can.json 332d5396af038b56047e88fcad713478e45cbd97 data/exdeorum/recipes/jungle_barrel.json 7239040d0cee42fe9077c89eaa3d768a07db0557 data/exdeorum/recipes/jungle_crucible.json -88ffe6a8b564f62c8d052e41f93b2f0e5127493e data/exdeorum/recipes/lava_crucible/cobblestone.json -3d1fc72b6f6ac2fdaf6cd5b993badeef9aa73054 data/exdeorum/recipes/lava_crucible/gravel.json -1607c6e3ff355a48024f47374b1df06b44240128 data/exdeorum/recipes/lava_crucible/netherrack.json -bcf1a98d97b158c53c88253f3b3201af228794e1 data/exdeorum/recipes/lava_crucible/stone.json +bffa756563ac5aa791f299ae6d7d042813c2614a data/exdeorum/recipes/jungle_sieve.json +d24ed2178e5875da5e0a6f82b5ac9c2ece4b64ff data/exdeorum/recipes/lava_crucible/cobblestone.json +0963c17c9f78907017fa0192c684f016c39f31eb data/exdeorum/recipes/lava_crucible/gravel.json +a23123d1144e9d03450cc373e54237ab64641567 data/exdeorum/recipes/lava_crucible/netherrack.json +20744c980e4a68f67acea24af617f1ddb865f9a3 data/exdeorum/recipes/lava_crucible/stone.json 8efa8d7c8da52d42d8e1a831004dfc080423a500 data/exdeorum/recipes/mangrove_barrel.json 95edd369ab19abd17ef56cfa2350a2dc185c7747 data/exdeorum/recipes/mangrove_crucible.json +9c38235abb08f3cdd8838c0a0efb98154dee97e3 data/exdeorum/recipes/mangrove_sieve.json +962586e6665baef84b573df40211ff3ce36d88b0 data/exdeorum/recipes/moss_block.json f92abca4ddd5f75b770e81fc745a735a7fd0ee68 data/exdeorum/recipes/netherite_hammer.json +c7d0c0109b34ee2e325c42b6664d5fe6b8ea5117 data/exdeorum/recipes/netherite_mesh.json +a73d1813a804c37490e498646509b3c0d91a23a0 data/exdeorum/recipes/netherite_watering_can.json 62209674f4ca94b379d4e67c7480285b5390b6ca data/exdeorum/recipes/oak_barrel.json 97bd28265ca9481edddebd8f274d2f07791b2528 data/exdeorum/recipes/oak_crucible.json -51a5ae6603bd9c452da16204c2448c9530b9156a data/exdeorum/recipes/porcelain_crucible.json -508acb3340451e047f94a07759649fa81f0e6c06 data/exdeorum/recipes/porcelain_crucible_from_campfire_cooking.json -664635caa9d858d645ce94c6a4bb6931c2e02cb0 data/exdeorum/recipes/sieve/flint/andesite_pebble.json -c8a43a253d3d7270086397e863267e5afc34d6cb data/exdeorum/recipes/sieve/flint/beetroot_seeds.json -a4692e253432d0edadde173d52a18e2250300206 data/exdeorum/recipes/sieve/flint/diorite_pebble.json -051714c7be89d5a801f272173d5709dcea290845 data/exdeorum/recipes/sieve/flint/flint.json -240eb1dcd78aa98e053168d4dd0982d10be50dbb data/exdeorum/recipes/sieve/flint/granite_pebble.json -c5e6341548918d7c8f5cdf9e61febcacd4bb9469 data/exdeorum/recipes/sieve/flint/melon_seeds.json -afb7957f520e0875f1893f475fc2a019f121425c data/exdeorum/recipes/sieve/flint/pumpkin_seeds.json -208ae5ad3459ebe4d0497a94f980158264cb30b4 data/exdeorum/recipes/sieve/flint/stone_pebble.json -16b385233806e86d3ccba1ac289391d96057f354 data/exdeorum/recipes/sieve/flint/wheat_seeds.json -10f935cb62b2968cc1250ea8410a388973f3ba00 data/exdeorum/recipes/sieve/string/beetroot_seeds.json -2aff691ea2c9031949eed7285da44a0e43aa42c1 data/exdeorum/recipes/sieve/string/flint.json -67d593f550bb672368ec0b6f17376792cc83c208 data/exdeorum/recipes/sieve/string/melon_seeds.json -f4ebe2b2d7ec7c51975f4e6cb84ecb55ad735a93 data/exdeorum/recipes/sieve/string/pumpkin_seeds.json -669d15aff2ba7ed72ea46ec7b52e5ca225396110 data/exdeorum/recipes/sieve/string/stone_pebble.json -9925816f276f994b62ac2554bec9a43702cd513e data/exdeorum/recipes/sieve/string/wheat_seeds.json +da14c2579ad2e91b9ee70b84e3be1df51243944c data/exdeorum/recipes/oak_sieve.json +fd95c29e2e4f6eb08729c3c821e8f1dad427aef8 data/exdeorum/recipes/porcelain_bucket.json +a2d4a9158c46bf81649e0a16621302cbf3754582 data/exdeorum/recipes/porcelain_clay_ball.json +53adc0da4d944ac57a437a38e14fec0f6563e9b2 data/exdeorum/recipes/porcelain_crucible.json +45050ac51fb86e362cec2d35e0a03ec1e5ab51c1 data/exdeorum/recipes/sculk_core.json +9520f7f3b42fb795748c715cb402133fca4b9ce3 data/exdeorum/recipes/sieve/crushed_blackstone/diamond/ancient_debris.json +72e126a6f9808fbe7d4e2fc95d432b1cba33fcea data/exdeorum/recipes/sieve/crushed_blackstone/diamond/blackstone_pebble.json +b42e1a645dd5f180f404f4e8074777421da64c72 data/exdeorum/recipes/sieve/crushed_blackstone/diamond/gold_nugget.json +54e6b64efa596b60266e2c75323537c1da0ab5de data/exdeorum/recipes/sieve/crushed_blackstone/diamond/gunpowder.json +b313aaa3fa3afa95b2445b728c3b4a6c123b6555 data/exdeorum/recipes/sieve/crushed_blackstone/diamond/magma_cream.json +590cfd7d67262e737a875ed056c0e514fa58c2ff data/exdeorum/recipes/sieve/crushed_blackstone/flint/ancient_debris.json +157b1491f4d22b8357f225fb80bb78cab376dcda data/exdeorum/recipes/sieve/crushed_blackstone/flint/basalt_pebble.json +24bda98d469c6d237597c44e603542d3ead6433f data/exdeorum/recipes/sieve/crushed_blackstone/flint/blackstone_pebble.json +b235730345f80757b27776df29b3cbd9e76a0ae9 data/exdeorum/recipes/sieve/crushed_blackstone/flint/black_dye.json +433396ed15519d94786132a32ea466556a6d58ef data/exdeorum/recipes/sieve/crushed_blackstone/flint/gold_nugget.json +391643bf1ce3b2d5eb7ea195e67f52b7a01164e0 data/exdeorum/recipes/sieve/crushed_blackstone/flint/gunpowder.json +755fa6d50e40555dee00d85d3113cf2039526c8e data/exdeorum/recipes/sieve/crushed_blackstone/flint/magma_cream.json +de11de9ee0e85e842ead0b2aa49bb583d14bbca0 data/exdeorum/recipes/sieve/crushed_blackstone/golden/ancient_debris.json +d68de3bc4c5e8e8c7b8a736fe7b7f9e407655c31 data/exdeorum/recipes/sieve/crushed_blackstone/golden/basalt_pebble.json +d933ad7890ec9f699c14790f7deabb28d091b768 data/exdeorum/recipes/sieve/crushed_blackstone/golden/blackstone_pebble.json +4121923ca7ad9c3f0dc232ecd31152e1e5a7c330 data/exdeorum/recipes/sieve/crushed_blackstone/golden/black_dye.json +e26d9a0d67ae4651bdb5080e0718f3540a702f74 data/exdeorum/recipes/sieve/crushed_blackstone/golden/gold_nugget.json +91fbcd281fb3d61074c92715d6a688f95379ff42 data/exdeorum/recipes/sieve/crushed_blackstone/golden/gunpowder.json +6af0f4bf832c6d30f2299e6cdb1e34ad85e1e78c data/exdeorum/recipes/sieve/crushed_blackstone/golden/magma_cream.json +00baf6a95e16bd9551de4ef3a8915406495de718 data/exdeorum/recipes/sieve/crushed_blackstone/iron/ancient_debris.json +7d74907edb273c6c706449ffb9abcf78945b4986 data/exdeorum/recipes/sieve/crushed_blackstone/iron/basalt_pebble.json +c9c82f76e5442f32a9653bde1ef3d4224f8a2dbe data/exdeorum/recipes/sieve/crushed_blackstone/iron/blackstone_pebble.json +6688a760d6b603a63f2c6a20f890107261fda113 data/exdeorum/recipes/sieve/crushed_blackstone/iron/black_dye.json +10d9c4dd778032665c63c4d0dcb18886f822f8b4 data/exdeorum/recipes/sieve/crushed_blackstone/iron/gold_nugget.json +50914255be3f6389dadfdb3fdabbcc17563714e3 data/exdeorum/recipes/sieve/crushed_blackstone/iron/gunpowder.json +f9efbf6e7efb27fa4732060915a114af09c2d4bf data/exdeorum/recipes/sieve/crushed_blackstone/iron/magma_cream.json +f2a3affa1eef7081ebc9a92823d2211e0a0f7277 data/exdeorum/recipes/sieve/crushed_blackstone/netherite/ancient_debris.json +999bfaac830fa523cf2f045b7e135989560aaa7d data/exdeorum/recipes/sieve/crushed_blackstone/netherite/blackstone_pebble.json +26b5bbfb0daf8f2de8d3b771a57ea06817f4bc2c data/exdeorum/recipes/sieve/crushed_blackstone/netherite/gold_nugget.json +9c1906d67c2e0892cd154ee700d06f1ddea4cb3c data/exdeorum/recipes/sieve/crushed_blackstone/netherite/gunpowder.json +9409b3ee7e155b7ac653e6deb3450c943cde2125 data/exdeorum/recipes/sieve/crushed_blackstone/netherite/magma_cream.json +0f9f8ee1c7040ae326a19b047ada32a678dc0520 data/exdeorum/recipes/sieve/crushed_blackstone/string/ancient_debris.json +5c5b73741c3b38436ef8c364f1c47f5e80d18052 data/exdeorum/recipes/sieve/crushed_blackstone/string/basalt_pebble.json +2cbad5c82a764469fd4d318827b6cfc3ea1885e5 data/exdeorum/recipes/sieve/crushed_blackstone/string/blackstone_pebble.json +1d67fade259bb94329f3253c6456219f3ea817b1 data/exdeorum/recipes/sieve/crushed_blackstone/string/black_dye.json +73628bd1369a47916e7daa554f85f6a8a002f3b1 data/exdeorum/recipes/sieve/crushed_blackstone/string/gold_nugget.json +a85db1c70f085b4b54ee8d51e55c1add89770b5d data/exdeorum/recipes/sieve/crushed_blackstone/string/gunpowder.json +f99cede2662c5255e27fb4798c532f416b5c3020 data/exdeorum/recipes/sieve/crushed_blackstone/string/magma_cream.json +8eea388b4fd825b73e52ed219f007bc41a622f79 data/exdeorum/recipes/sieve/crushed_deepslate/diamond/amethyst_shard.json +c546193f9cab7af9c92ea4a05c080c2ea24f33a2 data/exdeorum/recipes/sieve/crushed_deepslate/diamond/copper_ore_chunk.json +63e3c8e6fd1a83795c11c0a59182575a82d4f5f8 data/exdeorum/recipes/sieve/crushed_deepslate/diamond/deepslate_pebble.json +8a6e723e75bcc5c5731868c1d1b597f3f46b12d7 data/exdeorum/recipes/sieve/crushed_deepslate/diamond/diamond.json +db7026d3f31ec9a4e2ac085101a49cbcbc67b712 data/exdeorum/recipes/sieve/crushed_deepslate/diamond/emerald.json +69e4b707f2e433bda0742dfbba9223f0d4dbf872 data/exdeorum/recipes/sieve/crushed_deepslate/diamond/gold_ore_chunk.json +91dabfb0a3256393d74779c2bc291a0b13f93eb4 data/exdeorum/recipes/sieve/crushed_deepslate/diamond/iron_ore_chunk.json +fa548967f2323aa67b8b0adb3802cb513047dff7 data/exdeorum/recipes/sieve/crushed_deepslate/diamond/lapis_lazuli.json +119ad687854e9856f11a464a1b4a4fa006747a7d data/exdeorum/recipes/sieve/crushed_deepslate/flint/amethyst_shard.json +f1de5b6e7b0533d5c8bdd0e88696e585598fbac9 data/exdeorum/recipes/sieve/crushed_deepslate/flint/basalt_pebble.json +210d62b835e0526f6b4b2868a3effbcb2dd73956 data/exdeorum/recipes/sieve/crushed_deepslate/flint/calcite_pebble.json +b755f3053dc2f2e3e766db64a80a1873d156885c data/exdeorum/recipes/sieve/crushed_deepslate/flint/copper_ore_chunk.json +90d2094c7bc6742140139219fd9a5b7ba8df9548 data/exdeorum/recipes/sieve/crushed_deepslate/flint/deepslate_pebble.json +d789f6cde58525c3fe965eb40ececa89e4ee8241 data/exdeorum/recipes/sieve/crushed_deepslate/flint/diamond.json +f90e1a71760aea8e3bede5b4ad8607c172e42b0e data/exdeorum/recipes/sieve/crushed_deepslate/flint/emerald.json +925ebffabfed246a52990df6db690d64b3242875 data/exdeorum/recipes/sieve/crushed_deepslate/flint/gold_ore_chunk.json +c8053bbcfc5f7b8933e09517b6457578401603db data/exdeorum/recipes/sieve/crushed_deepslate/flint/iron_ore_chunk.json +28d91d9c411f7a1d9daec605b3c1a204e75f063a data/exdeorum/recipes/sieve/crushed_deepslate/flint/lapis_lazuli.json +57fe61192f1a88a8437074783b28e8d2547c4ddd data/exdeorum/recipes/sieve/crushed_deepslate/flint/tuff_pebble.json +61f09f9de6004a4b48336164575ea2f6f345f576 data/exdeorum/recipes/sieve/crushed_deepslate/golden/amethyst_shard.json +31084da8449cb9e85be49d5b603cf733cf68381a data/exdeorum/recipes/sieve/crushed_deepslate/golden/copper_ore_chunk.json +3abe8201c98a5dc57c83e286ef2cefa5b6285119 data/exdeorum/recipes/sieve/crushed_deepslate/golden/deepslate_pebble.json +a4b81bbfbeb70efa064fe6ea1eea68b6f2da96c8 data/exdeorum/recipes/sieve/crushed_deepslate/golden/diamond.json +530cec2913bf393b719d8ae58811eb0e2cb4aa0c data/exdeorum/recipes/sieve/crushed_deepslate/golden/emerald.json +355bbd4ef545137d3d1a0754f272297dbec3e1b7 data/exdeorum/recipes/sieve/crushed_deepslate/golden/gold_nugget.json +7d701e272f47a5029786c2a59ceed24a8a6fe339 data/exdeorum/recipes/sieve/crushed_deepslate/golden/gold_ore_chunk.json +93ace70556c0b59bfd2de7b14562506b032dbb46 data/exdeorum/recipes/sieve/crushed_deepslate/golden/iron_ore_chunk.json +f82704720c2b43f9f482aac5109d00d0419186ff data/exdeorum/recipes/sieve/crushed_deepslate/golden/lapis_lazuli.json +c1f458173553e56f543d22ae073274c4bb9e715a data/exdeorum/recipes/sieve/crushed_deepslate/golden/raw_gold.json +3b6dfdf6a621c4332585840ed5ad79f62f22610c data/exdeorum/recipes/sieve/crushed_deepslate/iron/amethyst_shard.json +7d9e15feeb35d43825554b0eb891ffc1e26f5130 data/exdeorum/recipes/sieve/crushed_deepslate/iron/copper_ore_chunk.json +caafb808464a51386e5994a7ca09623492e71084 data/exdeorum/recipes/sieve/crushed_deepslate/iron/deepslate_pebble.json +a573a2731f646884bd3f4ae61136280dde8c2c96 data/exdeorum/recipes/sieve/crushed_deepslate/iron/diamond.json +f1a444b52e9e1696a846592b833a2ceb63c994bc data/exdeorum/recipes/sieve/crushed_deepslate/iron/emerald.json +f387102be827d0ad7ef6590bdd97435adc0adb19 data/exdeorum/recipes/sieve/crushed_deepslate/iron/gold_ore_chunk.json +4a9e056ddaeafce083fa91f4adca89f28e409b42 data/exdeorum/recipes/sieve/crushed_deepslate/iron/iron_ore_chunk.json +e2356f1aa76f9f39f3d9eb71e34b206d567456be data/exdeorum/recipes/sieve/crushed_deepslate/iron/lapis_lazuli.json +16e4a02042d54e881bedca80864c024144766956 data/exdeorum/recipes/sieve/crushed_deepslate/netherite/amethyst_shard.json +76c2024a3620feb4f2dd6a874f79e104f3c51b9b data/exdeorum/recipes/sieve/crushed_deepslate/netherite/copper_ore_chunk.json +cf185f30a43f5b43112554a57dd815a0b77d6520 data/exdeorum/recipes/sieve/crushed_deepslate/netherite/deepslate_pebble.json +cdc25d35d8ec98f7cca1a74dd417f3590a839583 data/exdeorum/recipes/sieve/crushed_deepslate/netherite/diamond.json +69c3f29af10cbd0b6a929ea29612e54678687dec data/exdeorum/recipes/sieve/crushed_deepslate/netherite/emerald.json +a743371407c1200e19049de0c1cfb7db54e9e224 data/exdeorum/recipes/sieve/crushed_deepslate/netherite/gold_ore_chunk.json +641be85ac7300b45c139844316086cb5c30b8599 data/exdeorum/recipes/sieve/crushed_deepslate/netherite/iron_ore_chunk.json +0d84fa101dd247f42867022a1aa15cb45e719ef3 data/exdeorum/recipes/sieve/crushed_deepslate/netherite/lapis_lazuli.json +22d5d1515a8334764fcea71121d7a3dd725a4f4d data/exdeorum/recipes/sieve/crushed_deepslate/string/amethyst_shard.json +9d68627c3154cb28d0870606f52b0642c09ef8bb data/exdeorum/recipes/sieve/crushed_deepslate/string/copper_ore_chunk.json +e5e179dec565277380d0d0b4e35990c8baeeda65 data/exdeorum/recipes/sieve/crushed_deepslate/string/deepslate_pebble.json +32f9fbec3128803e965f407b785ea812f1860e27 data/exdeorum/recipes/sieve/crushed_deepslate/string/diamond.json +7d3b675754200bcd0d44a1b595a7cd1443ce3f28 data/exdeorum/recipes/sieve/crushed_deepslate/string/emerald.json +744b9140fc69e1cf0a59d72524baf1770d45ae8c data/exdeorum/recipes/sieve/crushed_deepslate/string/gold_ore_chunk.json +a2e895b8b68e6cddf045a4dc97f323679e37be60 data/exdeorum/recipes/sieve/crushed_deepslate/string/iron_ore_chunk.json +c2165469fc079114e44a96c89753e01e276d4f05 data/exdeorum/recipes/sieve/crushed_deepslate/string/lapis_lazuli.json +e76fb7f519c2b5f4acbc51fa71db1cae02533b10 data/exdeorum/recipes/sieve/crushed_end_stone/diamond/chorus_flower.json +9ac5393cea652159302888164af0b233ad7b93df data/exdeorum/recipes/sieve/crushed_end_stone/diamond/chorus_fruit.json +7b76b3e251c5d929224bbbbd564b705867eb5b81 data/exdeorum/recipes/sieve/crushed_end_stone/diamond/ender_eye.json +d9c18b850bc49e9182569ad286ea64863a9e571e data/exdeorum/recipes/sieve/crushed_end_stone/diamond/ender_pearl.json +de8074d7df467b663f8e8d89e6524ce607353fa8 data/exdeorum/recipes/sieve/crushed_end_stone/flint/chorus_flower.json +90e316befc391c3aa992bcfaaacf70ca498ec467 data/exdeorum/recipes/sieve/crushed_end_stone/flint/chorus_fruit.json +e9a78aef13e92bf8a825c996eb38f5f7fb23ab5a data/exdeorum/recipes/sieve/crushed_end_stone/flint/ender_eye.json +01b89f1afc4ff0281a6c4ed01b6a1e3992e4298d data/exdeorum/recipes/sieve/crushed_end_stone/flint/ender_pearl.json +592dceb98bd32a09272030867381175492330db6 data/exdeorum/recipes/sieve/crushed_end_stone/golden/chorus_flower.json +4399a52a56e8f01acbf4f1a3c1ac3da0c131c825 data/exdeorum/recipes/sieve/crushed_end_stone/golden/chorus_fruit.json +7d11f2c6364153560802b1ef82716d07df48c1e5 data/exdeorum/recipes/sieve/crushed_end_stone/golden/ender_eye.json +0e87e9b79643d2cc6a0e46ee81d8909ac961f7a7 data/exdeorum/recipes/sieve/crushed_end_stone/golden/ender_pearl.json +5e80e1ea37c3032230af2247f2ef401dc0ae333b data/exdeorum/recipes/sieve/crushed_end_stone/iron/chorus_flower.json +3efbf47f3952fdcc10bedf98b41c0a1ac7fbdb53 data/exdeorum/recipes/sieve/crushed_end_stone/iron/chorus_fruit.json +35a19bba09c83bc849c933b7267b080f5950ea0a data/exdeorum/recipes/sieve/crushed_end_stone/iron/ender_eye.json +8b34f92a528ab613981dcd79b0d355f0f7025a70 data/exdeorum/recipes/sieve/crushed_end_stone/iron/ender_pearl.json +30d368431ba1b66e83b514204d03d126c4e8545e data/exdeorum/recipes/sieve/crushed_end_stone/netherite/chorus_flower.json +c91f66ffb080240548c9f05dbf5643399269bf81 data/exdeorum/recipes/sieve/crushed_end_stone/netherite/chorus_fruit.json +071fc69e937a64ecc62ff9dc3ef5cd0434a28dc8 data/exdeorum/recipes/sieve/crushed_end_stone/netherite/echo_shard.json +b9f6839454b6852569903fec21559f724f2ae5f6 data/exdeorum/recipes/sieve/crushed_end_stone/netherite/ender_eye.json +3ab85c55f309f7230930bf37e15312b316a4241a data/exdeorum/recipes/sieve/crushed_end_stone/netherite/ender_pearl.json +e46ec24f45d9d3ba5564f38b8259a9c4aedc3ca0 data/exdeorum/recipes/sieve/crushed_end_stone/netherite/sculk_shrieker.json +2a514da06d18b296605f0c6f69c3d001c7b4cb3c data/exdeorum/recipes/sieve/crushed_end_stone/string/chorus_flower.json +3ffa8967faaa592a11f1b2e4180d22ee40bea0c5 data/exdeorum/recipes/sieve/crushed_end_stone/string/chorus_fruit.json +6720371f6a645d395bdb6dea0d13099af1c3e2fa data/exdeorum/recipes/sieve/crushed_end_stone/string/ender_eye.json +f7d04732eb4e3819cc092fbdb79ed27655149d65 data/exdeorum/recipes/sieve/crushed_end_stone/string/ender_pearl.json +394b5c90b88123e4aec00f309b04460c5c693e35 data/exdeorum/recipes/sieve/crushed_netherrack/diamond/blackstone_pebble.json +ae19efe0e12743ef74bb3e6db7cac0ce597c6390 data/exdeorum/recipes/sieve/crushed_netherrack/diamond/blaze_powder.json +f58dca5f5ad76391d1bc63d13f7d89d9327cc162 data/exdeorum/recipes/sieve/crushed_netherrack/diamond/gold_nugget.json +9c25259909d977f4e1d8a977def6a123983378ee data/exdeorum/recipes/sieve/crushed_netherrack/diamond/gunpowder.json +bbb516d135bea4650990358ba9ed3ba9c9633658 data/exdeorum/recipes/sieve/crushed_netherrack/diamond/magma_cream.json +120c65c62f9bd8fddb29b6160e3e95787271c633 data/exdeorum/recipes/sieve/crushed_netherrack/diamond/quartz.json +b33da6a1f73246dd46d9883135fec25ac38d0de1 data/exdeorum/recipes/sieve/crushed_netherrack/flint/basalt_pebble.json +4c60b35d7c6d3811fc93910dcd3c4022dd971a38 data/exdeorum/recipes/sieve/crushed_netherrack/flint/blackstone_pebble.json +9ec9b004efec63cd68398d306b8e5a82ebd39acb data/exdeorum/recipes/sieve/crushed_netherrack/flint/blaze_powder.json +afe931b05471b89bb3722bb34654b27b259d42f9 data/exdeorum/recipes/sieve/crushed_netherrack/flint/crimson_nylium_spores.json +fecf3945d51d0692ecb027126f9005dedbec84d4 data/exdeorum/recipes/sieve/crushed_netherrack/flint/gold_nugget.json +75684abbbb4ae1a6b46fcd91005a7f873708c34f data/exdeorum/recipes/sieve/crushed_netherrack/flint/gunpowder.json +57e16b2a06408ab803d40e28ec2995fde8234ef5 data/exdeorum/recipes/sieve/crushed_netherrack/flint/magma_cream.json +72c9e3d7b9f6c040d752f9d068b0216cf64a3241 data/exdeorum/recipes/sieve/crushed_netherrack/flint/quartz.json +e1ab6813fe6cfea0a94771de8521ac8f710e42dc data/exdeorum/recipes/sieve/crushed_netherrack/flint/warped_nylium_spores.json +73b333c4639c69973e08629dc8c3913bef515c49 data/exdeorum/recipes/sieve/crushed_netherrack/golden/basalt_pebble.json +ddce920c684df782c5c654a2d0eb1f53f9cc13c5 data/exdeorum/recipes/sieve/crushed_netherrack/golden/blackstone_pebble.json +f62c93593e9b52e08ba78ed9b979cf015c451a0d data/exdeorum/recipes/sieve/crushed_netherrack/golden/blaze_powder.json +d334ae1e640c66b8c56abe306600f0ca1e13ce55 data/exdeorum/recipes/sieve/crushed_netherrack/golden/crimson_nylium_spores.json +ad740b9490f54236d81354eb0040e4e49871a4d8 data/exdeorum/recipes/sieve/crushed_netherrack/golden/gold_nugget.json +883424000b8c5d331228e30b82b4696a24a1d059 data/exdeorum/recipes/sieve/crushed_netherrack/golden/gunpowder.json +878c832b2a4a6242628afb723df0b7afb2be6271 data/exdeorum/recipes/sieve/crushed_netherrack/golden/magma_cream.json +16a813861d0acc78d785ed21058ecc248de1d7a4 data/exdeorum/recipes/sieve/crushed_netherrack/golden/quartz.json +b9077d5e115841060dd58d7670542b3a0849c2ff data/exdeorum/recipes/sieve/crushed_netherrack/golden/raw_gold.json +dda6c070968d367c5f50c35d7f9dc33f21469792 data/exdeorum/recipes/sieve/crushed_netherrack/golden/warped_nylium_spores.json +bb85c68354ad340faf9349aa9195a78b645d95a8 data/exdeorum/recipes/sieve/crushed_netherrack/iron/basalt_pebble.json +9dce5057d1e3e2d606c62f090945fa3f0b135d9b data/exdeorum/recipes/sieve/crushed_netherrack/iron/blackstone_pebble.json +a38e423ba92081350d3749acac2ffef42f61ab4d data/exdeorum/recipes/sieve/crushed_netherrack/iron/blaze_powder.json +ef88b0b2671dcf485a9b900cd7164538375f2c91 data/exdeorum/recipes/sieve/crushed_netherrack/iron/crimson_nylium_spores.json +1bc51258e5b23d3fe545ace72f7c2b87deb0dfc2 data/exdeorum/recipes/sieve/crushed_netherrack/iron/gold_nugget.json +21bca27716922d28a25ebfa2444424642bcb78bd data/exdeorum/recipes/sieve/crushed_netherrack/iron/gunpowder.json +053bfa3507a2b5505cb828d1a6119a285c40f1b1 data/exdeorum/recipes/sieve/crushed_netherrack/iron/magma_cream.json +de8d9b846b324a4890887438e5653f29277bd987 data/exdeorum/recipes/sieve/crushed_netherrack/iron/quartz.json +2221ffc1f7e70300fdf2c7cde2e9140c9369e4d2 data/exdeorum/recipes/sieve/crushed_netherrack/iron/warped_nylium_spores.json +95ea870b4e17d114ea433a0e73e39d641d92cb1a data/exdeorum/recipes/sieve/crushed_netherrack/netherite/blackstone_pebble.json +2244a473ac96af91816179a18b43fedaa7930a2c data/exdeorum/recipes/sieve/crushed_netherrack/netherite/blaze_powder.json +6297020d5264c142b69cb17d5911ca1110ad45fc data/exdeorum/recipes/sieve/crushed_netherrack/netherite/gold_nugget.json +463b7074cc4509ab3bb484eb4b73721d5a118da4 data/exdeorum/recipes/sieve/crushed_netherrack/netherite/gunpowder.json +86234c01a5c931b04b5a978414129f467a90d6e4 data/exdeorum/recipes/sieve/crushed_netherrack/netherite/magma_cream.json +47bfe94837dd859a9c975d7ccf84434cadb82ea5 data/exdeorum/recipes/sieve/crushed_netherrack/netherite/quartz.json +d6c8078d6126998754227051f2c1e6991c98e67e data/exdeorum/recipes/sieve/crushed_netherrack/string/basalt_pebble.json +abd7526719c36f956b79ad79a6b582c51dd40259 data/exdeorum/recipes/sieve/crushed_netherrack/string/blackstone_pebble.json +0d0144aa844c09d6f74a570ff38e073df7d4cb76 data/exdeorum/recipes/sieve/crushed_netherrack/string/blaze_powder.json +b8e977bdbde337c9de16ed796242a2e7b6368b5b data/exdeorum/recipes/sieve/crushed_netherrack/string/crimson_nylium_spores.json +411055f615a1fa081e2294bd9308e22eb43b64f7 data/exdeorum/recipes/sieve/crushed_netherrack/string/gold_nugget.json +b2aed8b5743778fc4b324a119518e2f371a3f562 data/exdeorum/recipes/sieve/crushed_netherrack/string/gunpowder.json +7480d434a8e6d8983e8cec73ae6a177c07009d11 data/exdeorum/recipes/sieve/crushed_netherrack/string/magma_cream.json +2894500c60658d73114ff4f14efb1c3fdf102c87 data/exdeorum/recipes/sieve/crushed_netherrack/string/quartz.json +dcf4f1f2c349ff326d0a268ad1ad2132cd0fa395 data/exdeorum/recipes/sieve/crushed_netherrack/string/warped_nylium_spores.json +c3fe397a7a244c2a5e35ee8ca2ec2c75042f0ab0 data/exdeorum/recipes/sieve/dirt/diamond/bamboo.json +916ae1a22802f7556087dfcb0acc56e18afb75c2 data/exdeorum/recipes/sieve/dirt/diamond/carrot.json +008cf810b02d3c3b4f143689700bff93459c7c0a data/exdeorum/recipes/sieve/dirt/diamond/flint.json +f03ca1ca9a7c65e8d8dfc75a7b67b75eae73fbd3 data/exdeorum/recipes/sieve/dirt/diamond/grass_seeds.json +c73c65cb11229f8503c0b6538226d25e4e5df8af data/exdeorum/recipes/sieve/dirt/diamond/mycelium_spores.json +21ff297debd0422e29c9863411a881244f9c55aa data/exdeorum/recipes/sieve/dirt/diamond/potato.json +5dc1e3df5147ad6f0ade3f47ff9591e226b8984a data/exdeorum/recipes/sieve/dirt/diamond/stone_pebble.json +664635caa9d858d645ce94c6a4bb6931c2e02cb0 data/exdeorum/recipes/sieve/dirt/flint/andesite_pebble.json +37c721c65f0b6f5f5c1bc1a5394e700c078b5625 data/exdeorum/recipes/sieve/dirt/flint/bamboo.json +1ee3057e79187055ad2652d69854507e026a81c5 data/exdeorum/recipes/sieve/dirt/flint/carrot.json +a4692e253432d0edadde173d52a18e2250300206 data/exdeorum/recipes/sieve/dirt/flint/diorite_pebble.json +9e411fbd5df3f348c8ae2d62e6092bfec91fdd1e data/exdeorum/recipes/sieve/dirt/flint/flint.json +240eb1dcd78aa98e053168d4dd0982d10be50dbb data/exdeorum/recipes/sieve/dirt/flint/granite_pebble.json +9f698c9d21596ef652ffcd917d13d9980d5eda9f data/exdeorum/recipes/sieve/dirt/flint/grass_seeds.json +3818683c5b389eda87158d65bc29df6e558e55e5 data/exdeorum/recipes/sieve/dirt/flint/melon_seeds.json +60ba0c2c7810a878c07fa0300f672be4dc1bf583 data/exdeorum/recipes/sieve/dirt/flint/mycelium_spores.json +e1e17031fa7c3a2bc86de6384fa762b76c205c58 data/exdeorum/recipes/sieve/dirt/flint/pink_petals.json +b20d4e47f1ac26182e938095371d87bbe0456d52 data/exdeorum/recipes/sieve/dirt/flint/poisonous_potato.json +6dd0354117e99375d596a84ede4b78ed9f6fc915 data/exdeorum/recipes/sieve/dirt/flint/potato.json +526473af600eb3e8981f826ae89f574fdcfdebb7 data/exdeorum/recipes/sieve/dirt/flint/pumpkin_seeds.json +208ae5ad3459ebe4d0497a94f980158264cb30b4 data/exdeorum/recipes/sieve/dirt/flint/stone_pebble.json +0816f7d543c8982593bbeb7960691e90be9b2ed4 data/exdeorum/recipes/sieve/dirt/flint/sugar_cane.json +ec4834ce0ce84232e9148bec9e28efbb069cd75d data/exdeorum/recipes/sieve/dirt/flint/sweet_berries.json +79cffcc848eedd47af0253f7a81aad7d59c5d2c4 data/exdeorum/recipes/sieve/dirt/flint/wheat_seeds.json +e9794e764d78e3f3d9d78efef77fd87e337b6e8d data/exdeorum/recipes/sieve/dirt/golden/bamboo.json +a862e209f75ab9471b9e0363df02a5da85938a8c data/exdeorum/recipes/sieve/dirt/golden/carrot.json +4ffc594c106031d16c21a7ce0f69aac07d91c646 data/exdeorum/recipes/sieve/dirt/golden/flint.json +cb082897a5bae9c96ea6fb99471a9e3b6085ef85 data/exdeorum/recipes/sieve/dirt/golden/golden_carrot.json +9407b9d579920c169f571f10464ab6a4e0a13715 data/exdeorum/recipes/sieve/dirt/golden/gold_nugget.json +d14b16b6fdb230a6e0b58cccea83b96a4c25d136 data/exdeorum/recipes/sieve/dirt/golden/grass_seeds.json +7e73eb7aa7d066a318cd61a75a4acadca8cfeafb data/exdeorum/recipes/sieve/dirt/golden/iron_nugget.json +b11ad5521abc5d01fd6457c4724e4f18429f53bb data/exdeorum/recipes/sieve/dirt/golden/melon_seeds.json +d99d3aa71ffe8bee270dbeefe471fe47c71aa796 data/exdeorum/recipes/sieve/dirt/golden/mycelium_spores.json +6e4f53d0300ac3c41339ab82c4f4a509d2a10197 data/exdeorum/recipes/sieve/dirt/golden/potato.json +86bd914dd6cc9d9cdc3f416d36a736f9ceeb284b data/exdeorum/recipes/sieve/dirt/golden/pumpkin_seeds.json +f7f99bd08630569098e1d6c16e1f9c890f73b060 data/exdeorum/recipes/sieve/dirt/golden/stone_pebble.json +cfb337239d5048bdece6c8a75a91350fa5a9999b data/exdeorum/recipes/sieve/dirt/golden/wheat_seeds.json +7c3f1547cf0e259adcc21ce90b581b5e6693bd2d data/exdeorum/recipes/sieve/dirt/iron/bamboo.json +e3ffa817094b35b55cc8ab6a30c561a2fa282de0 data/exdeorum/recipes/sieve/dirt/iron/carrot.json +a693256a8aa436cd72a8a87dba480e6d125b5ffa data/exdeorum/recipes/sieve/dirt/iron/flint.json +dea187f4380c38f352314c92ec1a860d39e55e09 data/exdeorum/recipes/sieve/dirt/iron/grass_seeds.json +5e86aabd145526c39912e7265411663820356f98 data/exdeorum/recipes/sieve/dirt/iron/iron_nugget.json +6c03457dafcdeb9348ff1ceb7afdb51834ad4b1c data/exdeorum/recipes/sieve/dirt/iron/melon_seeds.json +8221ca90dc259e3755ed1f09507603a54f59fc2e data/exdeorum/recipes/sieve/dirt/iron/mycelium_spores.json +742a1c070dd8913437476b32e0fd94777122ad9e data/exdeorum/recipes/sieve/dirt/iron/potato.json +316206d778fc8ad327f5526c11d502a3cecaea3b data/exdeorum/recipes/sieve/dirt/iron/pumpkin_seeds.json +fdf59c276334fada770d00babf1d4a96de1598a4 data/exdeorum/recipes/sieve/dirt/iron/stone_pebble.json +eeb82b2d67f2dd454e91d7663886bf3c2e6b306a data/exdeorum/recipes/sieve/dirt/iron/sugar_cane.json +36d2197704323f5efdb11571d563c1da82df6251 data/exdeorum/recipes/sieve/dirt/iron/wheat_seeds.json +92a2926a7eb824c6372a1b60d4dd0a629db9c151 data/exdeorum/recipes/sieve/dirt/netherite/bamboo.json +ac743f0ff430b518ff47265e5e44ba5e1595f5a6 data/exdeorum/recipes/sieve/dirt/netherite/carrot.json +948d6198b974300d677e783acc1e0460a1fa68c4 data/exdeorum/recipes/sieve/dirt/netherite/flint.json +c02b969bcb6be18939c8630ad89b09b8b267d182 data/exdeorum/recipes/sieve/dirt/netherite/golden_apple.json +dac06de4836c7f0c5456ceb1c608ae284978b8bf data/exdeorum/recipes/sieve/dirt/netherite/golden_carrot.json +9f0e877e5382c2430a77cae001d257bbecf4dd0c data/exdeorum/recipes/sieve/dirt/netherite/grass_seeds.json +c997d3202e842bf7a7edae945ba79b40a9b994f1 data/exdeorum/recipes/sieve/dirt/netherite/mycelium_spores.json +de8957683c8a735ee99dbabb6cdf64b1b7559418 data/exdeorum/recipes/sieve/dirt/netherite/potato.json +74038de69a089a4b87dceff3ca6c19525b29b1c5 data/exdeorum/recipes/sieve/dirt/netherite/stone_pebble.json +7c2da7b8213dc7b5decb4dbadde9650083611fa1 data/exdeorum/recipes/sieve/dirt/string/bamboo.json +d0ba6b1641ba578334ab0aa4eb44fb557402ca74 data/exdeorum/recipes/sieve/dirt/string/beetroot_seeds.json +03af8183b804b9972add61de2482aeba827611e4 data/exdeorum/recipes/sieve/dirt/string/carrot.json +2aff691ea2c9031949eed7285da44a0e43aa42c1 data/exdeorum/recipes/sieve/dirt/string/flint.json +a2488b531ecc17fbee84d51efd871e768094e516 data/exdeorum/recipes/sieve/dirt/string/grass_seeds.json +bfdc3b5200fcb8ae9d768597387c24dcc036ee6a data/exdeorum/recipes/sieve/dirt/string/melon_seeds.json +9c42e46ad8722c1840c96c2e4d609b0ae310a6f5 data/exdeorum/recipes/sieve/dirt/string/mycelium_spores.json +9e35f567f19a588415a46021bf6aa0ccafc293cf data/exdeorum/recipes/sieve/dirt/string/poisonous_potato.json +66949f3134e9210187dfb1303edea590d47cbe7f data/exdeorum/recipes/sieve/dirt/string/potato.json +39eeb7fc733cb6fa4bd1b09a4fe852152a25c40f data/exdeorum/recipes/sieve/dirt/string/pumpkin_seeds.json +669d15aff2ba7ed72ea46ec7b52e5ca225396110 data/exdeorum/recipes/sieve/dirt/string/stone_pebble.json +fc2c65334a37a71c05c86df5e836b073b259d746 data/exdeorum/recipes/sieve/dirt/string/sugar_cane.json +d31fa934cef32f4bcc4cabf110f2b90ae12a1db7 data/exdeorum/recipes/sieve/dirt/string/wheat_seeds.json +885055cb3b8f1349a2bf634eb604098311017d02 data/exdeorum/recipes/sieve/dust/diamond/blaze_powder.json +13df9ac15d131c250cbdb175ff3bc1145afadcb5 data/exdeorum/recipes/sieve/dust/diamond/bone_meal.json +b46cceeab1061ed238e005b2415b24160fcd5d73 data/exdeorum/recipes/sieve/dust/diamond/glowstone_dust.json +da3556d43a22a00cfba29419879f8bb1c24f76e0 data/exdeorum/recipes/sieve/dust/diamond/gold_nugget.json +aacdbedc91e09191a6fc335ed82ca481d934ebc3 data/exdeorum/recipes/sieve/dust/diamond/gunpowder.json +00907e701451521c3ca793ec337b0b2f0166e895 data/exdeorum/recipes/sieve/dust/diamond/redstone.json +7eba59b03b5affdc11c937060e99949db301086a data/exdeorum/recipes/sieve/dust/flint/blaze_powder.json +7af226b5661b96e0b8ddcb8ec902d37f429b0b48 data/exdeorum/recipes/sieve/dust/flint/bone_meal.json +0a7d44bdff5a9b7040f702cb5ff756ce231c9a60 data/exdeorum/recipes/sieve/dust/flint/glowstone_dust.json +52c65219279d46fe5474a8a01d69a1362cb3a2ea data/exdeorum/recipes/sieve/dust/flint/gunpowder.json +7ecd5ae5d7f6783ff7535978352190a9af1b0ab4 data/exdeorum/recipes/sieve/dust/flint/redstone.json +bdbe4b3434ff67299b47d65eab0c442b235dc654 data/exdeorum/recipes/sieve/dust/golden/blaze_powder.json +fab2426618c3f527ed401f1ef2cee3fa81de1969 data/exdeorum/recipes/sieve/dust/golden/bone_meal.json +9a9eb3cc996de392e75dd9c6613af1ff382615d5 data/exdeorum/recipes/sieve/dust/golden/glowstone_dust.json +183741090cfd4dbb792f70c9daea3dd8030f56e2 data/exdeorum/recipes/sieve/dust/golden/gold_nugget.json +4d28a3acd946fd55c3982e5ff9bb8876b8b0baef data/exdeorum/recipes/sieve/dust/golden/gunpowder.json +a9c9258b74162f5132b8b47f3981b071ec6b60bf data/exdeorum/recipes/sieve/dust/golden/raw_gold.json +65c99881294536c0f59d66d0e7429d85bbec0b9b data/exdeorum/recipes/sieve/dust/golden/redstone.json +4b304a265794186e3c1fbd23acfcfde57322d615 data/exdeorum/recipes/sieve/dust/iron/blaze_powder.json +758573f460a7f2ff2104a1bbfde2fa8392d002a4 data/exdeorum/recipes/sieve/dust/iron/bone_meal.json +e3f7f74c6e84a149282b23f0388e25c7ae5f4352 data/exdeorum/recipes/sieve/dust/iron/glowstone_dust.json +5ffc2f95fc5a52aad02e7b063ba64c4cd41836f3 data/exdeorum/recipes/sieve/dust/iron/gunpowder.json +eeb2ec19599044971eeff5929e7238fa398f1f08 data/exdeorum/recipes/sieve/dust/iron/iron_nugget.json +9dc82b4a79edf9561566137af39399b1621b89a0 data/exdeorum/recipes/sieve/dust/iron/redstone.json +55bf627cf6c3a8eca57328cb482a6f86326a8e68 data/exdeorum/recipes/sieve/dust/netherite/blaze_powder.json +33e35a1af71274a675498234b8dcd9834368c717 data/exdeorum/recipes/sieve/dust/netherite/bone_meal.json +0472c65dad0e35df7397dfb2a7b53c5408f5fffc data/exdeorum/recipes/sieve/dust/netherite/glowstone_dust.json +d82f3f9b53a74977cb6ff682013beb150088d61b data/exdeorum/recipes/sieve/dust/netherite/gold_nugget.json +2fb062f8d8be004bd5e54a43a089c579a374abb1 data/exdeorum/recipes/sieve/dust/netherite/gunpowder.json +c6a8996009ae3e712a2895001e96c74bb35b224c data/exdeorum/recipes/sieve/dust/netherite/iron_nugget.json +44e98c8ce40d6f72596b009398943cb3ac6ef1b5 data/exdeorum/recipes/sieve/dust/netherite/redstone.json +7bed9653a0d40436bd15531ffb15eb84563cfc4d data/exdeorum/recipes/sieve/dust/string/blaze_powder.json +74dc1675b4dc9c0d1d96bc22db0b844f322082b8 data/exdeorum/recipes/sieve/dust/string/bone_meal.json +e4ead3b21ece1d4470c2000017586c1730acd1bb data/exdeorum/recipes/sieve/dust/string/glowstone_dust.json +3272a1f8b4534dd8800b07b7ec826d8f7a4fae65 data/exdeorum/recipes/sieve/dust/string/gunpowder.json +e1a8558df8270d57cbcdf7255b93b40d0c05d33b data/exdeorum/recipes/sieve/dust/string/redstone.json +b1b1c231670f2622dc2227fac65aff0ebbd2ea19 data/exdeorum/recipes/sieve/gravel/diamond/amethyst_shard.json +2284efd2a38ecb63f694ba0586c478b26207adce data/exdeorum/recipes/sieve/gravel/diamond/coal.json +ac9139345f1b1d4bd8fb48350d3a6df9a33c2a93 data/exdeorum/recipes/sieve/gravel/diamond/copper_ore_chunk.json +10a86e68b3bf75143de369588e5c9e8f33abd436 data/exdeorum/recipes/sieve/gravel/diamond/diamond.json +60a052b488bee7fb028a94b6004af3fe994565ea data/exdeorum/recipes/sieve/gravel/diamond/emerald.json +66d27aa930f24ab223056cd8e306a62b0d7c91c9 data/exdeorum/recipes/sieve/gravel/diamond/flint.json +3544e4e64e54f9ab80015c8d708e397777cb3212 data/exdeorum/recipes/sieve/gravel/diamond/gold_ore_chunk.json +6cf8e4f262fa4e4153bcaa6c684854712f720021 data/exdeorum/recipes/sieve/gravel/diamond/iron_ore_chunk.json +71084e96ae9c98c76ecb03b38de241b72ad0cf8c data/exdeorum/recipes/sieve/gravel/diamond/lapis_lazuli.json +3791bf6a2875898602b4dbf3d5ef6b1451010583 data/exdeorum/recipes/sieve/gravel/flint/amethyst_shard.json +d2e86dc8b2f2465ac26e95e7d38916fc14e2dae5 data/exdeorum/recipes/sieve/gravel/flint/andesite_pebble.json +3b869472d11d1252ef06b9b0a6274c8a5660aa91 data/exdeorum/recipes/sieve/gravel/flint/coal.json +9da05d76bfd5abbd666907da39d3244728c46daf data/exdeorum/recipes/sieve/gravel/flint/copper_ore_chunk.json +5bfb486ef5dc14c1c5a85e14794ce49eda3708b5 data/exdeorum/recipes/sieve/gravel/flint/diamond.json +2fc4b351806d83f094319c0a9ceb36bd835d3f4d data/exdeorum/recipes/sieve/gravel/flint/diorite_pebble.json +5faf8dfcdf7fc9380dd7202ed3c6d756983217d0 data/exdeorum/recipes/sieve/gravel/flint/emerald.json +7421d8e9053918cd6e7a5f7bc2902b296f714a70 data/exdeorum/recipes/sieve/gravel/flint/flint.json +d988d062013ae4d6afcb8e5e13065518a012d126 data/exdeorum/recipes/sieve/gravel/flint/gold_ore_chunk.json +a3f7e6269846b25acbd994b0e564020f7a22cd0f data/exdeorum/recipes/sieve/gravel/flint/granite_pebble.json +57d60dd6b13ad4c45238da601a37ee2ab964052b data/exdeorum/recipes/sieve/gravel/flint/iron_ore_chunk.json +702f85e882f2b10a6613f41074ccfc9b759c42b9 data/exdeorum/recipes/sieve/gravel/flint/lapis_lazuli.json +6ca4057510d2b568a3559ae1005e037518a99745 data/exdeorum/recipes/sieve/gravel/flint/pointed_dripstone.json +fe663f47d5e16267a61b6f7111a6f588209888e7 data/exdeorum/recipes/sieve/gravel/flint/stone_pebble.json +28678c0ce921c7b884db3d0e49a54b20deec4825 data/exdeorum/recipes/sieve/gravel/golden/amethyst_shard.json +b5af4ec46beb6a5957a2099eaecac55b6a0a6637 data/exdeorum/recipes/sieve/gravel/golden/coal.json +0ec8d93ded300ec6fec985ee171466b42ed6eaa0 data/exdeorum/recipes/sieve/gravel/golden/copper_ore_chunk.json +300e5b260b0f25f47b7164170e109a8f5d5afc4c data/exdeorum/recipes/sieve/gravel/golden/diamond.json +b910213c60616555b2701eab2e6ed6c10ab2996d data/exdeorum/recipes/sieve/gravel/golden/emerald.json +85d089c35627a16344c652f9a347b930fbac779d data/exdeorum/recipes/sieve/gravel/golden/flint.json +4f0edad66d6d5899a81fb32c11da8b4f4943e483 data/exdeorum/recipes/sieve/gravel/golden/gold_nugget.json +4be0b7be825c07b1406f45f6b9182d6c0a643cb3 data/exdeorum/recipes/sieve/gravel/golden/gold_ore_chunk.json +bd443731b92b52d140fd1f1e21db4167e4a17243 data/exdeorum/recipes/sieve/gravel/golden/iron_ore_chunk.json +ae0acc3deb886e04d8226b1cbe36e67a8dd360bf data/exdeorum/recipes/sieve/gravel/golden/lapis_lazuli.json +be8c717dd4b8661f42d102182e009f3a55813f3d data/exdeorum/recipes/sieve/gravel/golden/raw_gold.json +d1e92452ba4285a9b65f93cdec1cf65f31883c9f data/exdeorum/recipes/sieve/gravel/golden/stone_pebble.json +bc5e582d21730a7b0744f957e0388108742fba77 data/exdeorum/recipes/sieve/gravel/iron/amethyst_shard.json +4310e908dd8439964e6da95cb433e676f13788ef data/exdeorum/recipes/sieve/gravel/iron/coal.json +49952882ee7d8650f0ec83e9fed338c095e74b6b data/exdeorum/recipes/sieve/gravel/iron/copper_ore_chunk.json +d809f81374f8a3e3d23e63ed788761b9a6ca845e data/exdeorum/recipes/sieve/gravel/iron/diamond.json +e28dd0cc2ae440c324a78b97757266ef0243b94e data/exdeorum/recipes/sieve/gravel/iron/emerald.json +6610b8fb3cb40f1d5e149fe3831d82063add8b5d data/exdeorum/recipes/sieve/gravel/iron/flint.json +5bbb6415d53f5efac6799f654bc3486a277aed31 data/exdeorum/recipes/sieve/gravel/iron/gold_ore_chunk.json +be90f3b4db2a9e24f218ca9ba2b96bcbb607e693 data/exdeorum/recipes/sieve/gravel/iron/iron_ore_chunk.json +b8b54b1de7034163b0f679f7e0368530dc15e159 data/exdeorum/recipes/sieve/gravel/iron/lapis_lazuli.json +641e557462f67d6e989c86e98f0e61219ac0f154 data/exdeorum/recipes/sieve/gravel/iron/stone_pebble.json +1b01b51ac49be8b288d78eed9f13976947ba85b4 data/exdeorum/recipes/sieve/gravel/netherite/amethyst_shard.json +6e483128177c19df169f37efdfd778178d86f740 data/exdeorum/recipes/sieve/gravel/netherite/coal.json +75cf3e4a04f845e991a4eb7c664e54fb547574ce data/exdeorum/recipes/sieve/gravel/netherite/copper_ore_chunk.json +5c1c63f8c5297acbd98445187617fedd81707952 data/exdeorum/recipes/sieve/gravel/netherite/diamond.json +60e296a99d2512f9af539f312234f0f694b01d8a data/exdeorum/recipes/sieve/gravel/netherite/emerald.json +41aaa9c5a1b61ea79b231528a6e76c9c1d273331 data/exdeorum/recipes/sieve/gravel/netherite/gold_nugget.json +22a8a86bd12d7db9a4929121692dccfe3616a942 data/exdeorum/recipes/sieve/gravel/netherite/gold_ore_chunk.json +e28a30509e84956d6d193911cfe8ba252a2825cf data/exdeorum/recipes/sieve/gravel/netherite/iron_ore_chunk.json +8f49a2cdf84583537955e4c27c854bf34dc47903 data/exdeorum/recipes/sieve/gravel/netherite/lapis_lazuli.json +fa83bb8a17c0fc1fcec33ac08f464946cfdc206c data/exdeorum/recipes/sieve/gravel/netherite/raw_gold.json +2aa745d14fdc3f52df7c1eca880125edf0b8009b data/exdeorum/recipes/sieve/gravel/string/amethyst_shard.json +5b0bbf7b85568dcd41f87692b65096a0f052d735 data/exdeorum/recipes/sieve/gravel/string/coal.json +032f1cdaf8a6854974e29980287a5a3138e4fa41 data/exdeorum/recipes/sieve/gravel/string/copper_ore_chunk.json +bd1ce763ae605e9a0d82e4afa58c4811516bc6bf data/exdeorum/recipes/sieve/gravel/string/diamond.json +99c4949a12df18202041a09e6b27157a76446fbd data/exdeorum/recipes/sieve/gravel/string/emerald.json +b298e2f51255b88beea1394e2f609768fbb36921 data/exdeorum/recipes/sieve/gravel/string/flint.json +0c0e184928b7371b1cabaca16b51d137a52fc77b data/exdeorum/recipes/sieve/gravel/string/gold_ore_chunk.json +14c1eb7582d996fb2dccedd0f51d3b731cba5e73 data/exdeorum/recipes/sieve/gravel/string/iron_ore_chunk.json +19ddad521fcb43ea69e4aeda92f8ea841630c530 data/exdeorum/recipes/sieve/gravel/string/lapis_lazuli.json +e33e4503b24e2dc1ab1821746f49ac157f2350d3 data/exdeorum/recipes/sieve/gravel/string/stone_pebble.json +b774a52785ba81cf8c589b9962abce624862a6ec data/exdeorum/recipes/sieve/moss_block/diamond/acacia_sapling.json +03fad0af6d1930f134908aef86761bda029472df data/exdeorum/recipes/sieve/moss_block/diamond/big_dripleaf.json +6de849670ed1d3f4d9566549ae50bad2b16447bf data/exdeorum/recipes/sieve/moss_block/diamond/birch_sapling.json +bd431da682073ba56016352f1f6c9d35fa0211dd data/exdeorum/recipes/sieve/moss_block/diamond/cherry_sapling.json +622227a5568ef316c27d51e7d505f171d545eb05 data/exdeorum/recipes/sieve/moss_block/diamond/dark_oak_sapling.json +82bc526b187cdfdf0b2147a68f858ae5d3ddc331 data/exdeorum/recipes/sieve/moss_block/diamond/glow_berries.json +e31b10ea506eb9a2d94aa9efdd7db4cdd8d78237 data/exdeorum/recipes/sieve/moss_block/diamond/jungle_sapling.json +c3cb1b7c924b35323e3d7cb1ffdff46cff7bb849 data/exdeorum/recipes/sieve/moss_block/diamond/mangrove_propagule.json +9cd8e7df8913168eb5f3176e07bb02620025165e data/exdeorum/recipes/sieve/moss_block/diamond/oak_sapling.json +46372d4865910944bc43ef67b7e9f83987bcd591 data/exdeorum/recipes/sieve/moss_block/diamond/small_dripleaf.json +f41a1dd1c6a62bc8b34baa677a53e18150185e5a data/exdeorum/recipes/sieve/moss_block/diamond/spruce_sapling.json +f81c5c7b83ff1dd7ded1b46cb3b602ce56ae3ba7 data/exdeorum/recipes/sieve/moss_block/flint/acacia_sapling.json +c1687b96d45092b8fa43d15caf049dabaf1aa648 data/exdeorum/recipes/sieve/moss_block/flint/big_dripleaf.json +7bf07dd791534b61b15fcbbae56f80e2dbbc24c7 data/exdeorum/recipes/sieve/moss_block/flint/birch_sapling.json +521c7e763b7bb79e397e49f5066db5e644b56f25 data/exdeorum/recipes/sieve/moss_block/flint/cherry_sapling.json +dba7cb3c95e17438407fd9126e6dcd8a8ac05709 data/exdeorum/recipes/sieve/moss_block/flint/dark_oak_sapling.json +3ac630dca6305e377a994b883446e8f2229be505 data/exdeorum/recipes/sieve/moss_block/flint/glow_berries.json +cbd39e058b88538e00884c336289d08a45122d58 data/exdeorum/recipes/sieve/moss_block/flint/glow_lichen.json +6bd5c11cfc79ee76e42a3f6a488229f39515f0fe data/exdeorum/recipes/sieve/moss_block/flint/jungle_sapling.json +034245905bbf9795f24a6e931d6568f82e70a4b7 data/exdeorum/recipes/sieve/moss_block/flint/lily_pad.json +c63138cd4e3095885913923bee0685064442871a data/exdeorum/recipes/sieve/moss_block/flint/mangrove_propagule.json +6f1e11d47cd47a4607ba7da396f1802e2ff3266f data/exdeorum/recipes/sieve/moss_block/flint/oak_sapling.json +01e4ada58ba8c4a5ea450f62e752f9324cfda6d3 data/exdeorum/recipes/sieve/moss_block/flint/small_dripleaf.json +0f9eb10e52f5800d0543fbbff9c13559095d2e5f data/exdeorum/recipes/sieve/moss_block/flint/spruce_sapling.json +4ac5ebd110597a27940d6d6c8ca5858b5a09d153 data/exdeorum/recipes/sieve/moss_block/flint/sweet_berries.json +862a8042232a5b063cf8fdb30142100a32a04372 data/exdeorum/recipes/sieve/moss_block/golden/acacia_sapling.json +3e2c070b67e51500187df91e5a910dbb786bb932 data/exdeorum/recipes/sieve/moss_block/golden/big_dripleaf.json +a595eed6b517c0eaca5a37b88dd18372f8f24db5 data/exdeorum/recipes/sieve/moss_block/golden/birch_sapling.json +c9aed5b2b7e641177e6cd08968d6a658de5a3779 data/exdeorum/recipes/sieve/moss_block/golden/cherry_sapling.json +63a815065ecf0ed35c44cbaaaae2ee3b0ecacbc4 data/exdeorum/recipes/sieve/moss_block/golden/dark_oak_sapling.json +5f34a0005a0f953a175bbf4dbfa745756e7d126e data/exdeorum/recipes/sieve/moss_block/golden/glow_berries.json +2c1623f1cd2c679d797ee4b0fd900d04ff09dfbe data/exdeorum/recipes/sieve/moss_block/golden/jungle_sapling.json +0ad8b7d2ac32bdc810249f9039a355096beca263 data/exdeorum/recipes/sieve/moss_block/golden/mangrove_propagule.json +74979d3b2db6d6fe305c63ee717542a06188d133 data/exdeorum/recipes/sieve/moss_block/golden/oak_sapling.json +ab5ae026900f1d6c82f93d8beb2955695ace87fa data/exdeorum/recipes/sieve/moss_block/golden/small_dripleaf.json +9ed8aaa5555765dacc2df79e05e8799cf7bc6e5b data/exdeorum/recipes/sieve/moss_block/golden/spruce_sapling.json +aa77cca261f061b6c67d7b76cfbee948eb6a3e8d data/exdeorum/recipes/sieve/moss_block/iron/acacia_sapling.json +dab4403fa7e1cf72c062422421e609f4f27407be data/exdeorum/recipes/sieve/moss_block/iron/big_dripleaf.json +0319fa66a72967c39e5b5d2c92bb4fb34d722098 data/exdeorum/recipes/sieve/moss_block/iron/birch_sapling.json +41ac46391e6dd459c9772fc5804929da572c9d31 data/exdeorum/recipes/sieve/moss_block/iron/cherry_sapling.json +12d0bce19552a1acd6ba187bc49026cb66d8c881 data/exdeorum/recipes/sieve/moss_block/iron/dark_oak_sapling.json +15c737cf692119413df2e0ac4c6abdc1a6d1eb1a data/exdeorum/recipes/sieve/moss_block/iron/glow_berries.json +97d245c7e4a30a45921bf35a6bcc1cadb8c472fc data/exdeorum/recipes/sieve/moss_block/iron/jungle_sapling.json +5f508e67c7944764f807b0b55436b33f5e97699b data/exdeorum/recipes/sieve/moss_block/iron/mangrove_propagule.json +6621371034fb0c5ddcaf54fa2d89bf614d84f41e data/exdeorum/recipes/sieve/moss_block/iron/oak_sapling.json +e46a4beb26c5f1572354e87bfe4553e0a4122576 data/exdeorum/recipes/sieve/moss_block/iron/small_dripleaf.json +93cb208475c16ebfdb286a2704a54b1594354c7f data/exdeorum/recipes/sieve/moss_block/iron/spruce_sapling.json +64ef5a4f025effef3ac4a2b90488c4b910729bec data/exdeorum/recipes/sieve/moss_block/netherite/acacia_sapling.json +415b6baad54d477f2182ff7c2c5f009e85ae9deb data/exdeorum/recipes/sieve/moss_block/netherite/big_dripleaf.json +3a1cf97e22c7e65b04727cb00da7946acd859b4e data/exdeorum/recipes/sieve/moss_block/netherite/birch_sapling.json +a3fd022037cb8eb21330c4757b8c268369a19a10 data/exdeorum/recipes/sieve/moss_block/netherite/cherry_sapling.json +088eae3e8ce04c17b4c21490e52aff416b0e22f9 data/exdeorum/recipes/sieve/moss_block/netherite/dark_oak_sapling.json +a216466ec9cace1bd1de0c0c19469e41c49205f9 data/exdeorum/recipes/sieve/moss_block/netherite/glow_berries.json +1d2332257d5bdaebb487bc52e7e6ff21c053504b data/exdeorum/recipes/sieve/moss_block/netherite/jungle_sapling.json +e19bd9157fd5fb35ce43953b9ea27e9102945574 data/exdeorum/recipes/sieve/moss_block/netherite/mangrove_propagule.json +21d5202805e1da22beb0c1caee7f721dd937615c data/exdeorum/recipes/sieve/moss_block/netherite/oak_sapling.json +253817ef4f1a350d988df5e122a32fa8fd576819 data/exdeorum/recipes/sieve/moss_block/netherite/small_dripleaf.json +7b16289fd38e015d5b5f6bfe70314d8a507ca4b0 data/exdeorum/recipes/sieve/moss_block/netherite/spruce_sapling.json +959d21cfb914761dac53844cea56de55f6260a27 data/exdeorum/recipes/sieve/moss_block/string/acacia_sapling.json +6232ad4b9611b1d7276ad22924f878b83df668c0 data/exdeorum/recipes/sieve/moss_block/string/big_dripleaf.json +3c17107151c6f0a2b65c505b26d46abfebe37c1c data/exdeorum/recipes/sieve/moss_block/string/birch_sapling.json +40bf75ee165f0e09e9b6859ed4ef2aed21f3b76d data/exdeorum/recipes/sieve/moss_block/string/cherry_sapling.json +26bd4abc5eb68be6d263d6fd7d4113e4ca44bf8c data/exdeorum/recipes/sieve/moss_block/string/dark_oak_sapling.json +d11877114c6d062021f178c55c05666c87cd31ab data/exdeorum/recipes/sieve/moss_block/string/glow_berries.json +ee240ebb80802c83d48985d9e431bc12410589a4 data/exdeorum/recipes/sieve/moss_block/string/jungle_sapling.json +621c67156656594f50ee49456f4cc58dbd540752 data/exdeorum/recipes/sieve/moss_block/string/mangrove_propagule.json +98bc0e4cd532316a91814bf618588c7cfa389a44 data/exdeorum/recipes/sieve/moss_block/string/oak_sapling.json +e5351932ff3700bf95f2ec770cd051f08debee9c data/exdeorum/recipes/sieve/moss_block/string/small_dripleaf.json +fec8737e1aba9773807c7cd582c685e4532f488d data/exdeorum/recipes/sieve/moss_block/string/spruce_sapling.json +c63500f17bbac4d47caac5a48f3cedfe750916a5 data/exdeorum/recipes/sieve/sand/diamond/flint.json +3b0c8920c2c19e3731e0258bd005b4d2cc2bd5ab data/exdeorum/recipes/sieve/sand/diamond/gold_nugget.json +286085cb6ec9ed4d3fb2e84fc19887019dbe2d02 data/exdeorum/recipes/sieve/sand/diamond/iron_nugget.json +4ab0e55bfc2afec50293584a41bdc32cb6b76e1b data/exdeorum/recipes/sieve/sand/diamond/prismarine_crystals.json +345abd60d7f9f1745d7a7c62578b09f044e48224 data/exdeorum/recipes/sieve/sand/diamond/prismarine_shard.json +8ed0a686cc7898c53fdff4097dd0a9d6de2fa2f6 data/exdeorum/recipes/sieve/sand/flint/angler_pottery_sherd.json +7845dcd4e0002af2cfb6cbac9fd8bed1dd965bba data/exdeorum/recipes/sieve/sand/flint/archer_pottery_sherd.json +b1ba6a626415a18c920923bb2dbbe2a32c49ead5 data/exdeorum/recipes/sieve/sand/flint/arms_up_pottery_sherd.json +cb3a8e2071395447592815eb317444595c8428a6 data/exdeorum/recipes/sieve/sand/flint/blade_pottery_sherd.json +669cb86ece635a765c5e5964c466b169ac9c2b29 data/exdeorum/recipes/sieve/sand/flint/brewer_pottery_sherd.json +48474c4015a50030de23e9dac2f37cd6b8fc5ca7 data/exdeorum/recipes/sieve/sand/flint/burn_pottery_sherd.json +04ca08fa8ca62638cd61c90d4d57f134a1e198bc data/exdeorum/recipes/sieve/sand/flint/danger_pottery_sherd.json +6b7bdd40a14dc92b2748be10131149ac46298841 data/exdeorum/recipes/sieve/sand/flint/dead_bush.json +4520eb80400b1d486e4fe982469953cd79952e64 data/exdeorum/recipes/sieve/sand/flint/explorer_pottery_sherd.json +996325cd1ff3eeef737792ac961cb57efe1d451e data/exdeorum/recipes/sieve/sand/flint/flint.json +35178a22433570f173930e93965b0de82b63aca2 data/exdeorum/recipes/sieve/sand/flint/friend_pottery_sherd.json +acc6cced9b2183dc5342dee5010b764c5acbc096 data/exdeorum/recipes/sieve/sand/flint/gold_nugget.json +1852e315711767fbd03ff35c233710b7a9751c0d data/exdeorum/recipes/sieve/sand/flint/heartbreak_pottery_sherd.json +5dcf05b51ed87454410f13a06d6b7cc4b889ca5a data/exdeorum/recipes/sieve/sand/flint/heart_pottery_sherd.json +16166a661f71c8d30e40786755fe3c2a5d80b948 data/exdeorum/recipes/sieve/sand/flint/howl_pottery_sherd.json +d41066ba7db804c9bb313a543578dca50fe535eb data/exdeorum/recipes/sieve/sand/flint/iron_nugget.json +0776bbf07938a63b253c48f560c507b9fe7cc95b data/exdeorum/recipes/sieve/sand/flint/miner_pottery_sherd.json +ada754cd814c28d4b392371ec64ec3fa00489f7f data/exdeorum/recipes/sieve/sand/flint/mourner_pottery_sherd.json +3775c8082a66ef378a30f211b04886c3dc583280 data/exdeorum/recipes/sieve/sand/flint/plenty_pottery_sherd.json +57a8a6c8c2d8dfb292d9e37851c690cebb1d2b9c data/exdeorum/recipes/sieve/sand/flint/prize_pottery_sherd.json +a710f4d1a2427f26af9ddb2edd3599cb959c3b4a data/exdeorum/recipes/sieve/sand/flint/sheaf_pottery_sherd.json +1b9cab76c425c761d4a0d75c84179e5ef63e8d8f data/exdeorum/recipes/sieve/sand/flint/shelter_pottery_sherd.json +f7a622c178b6d06826dfaa2f7c6c6d90d7d7fdc3 data/exdeorum/recipes/sieve/sand/flint/skull_pottery_sherd.json +73ca11719ca5e2ae3103dade94c3ef277db1c120 data/exdeorum/recipes/sieve/sand/flint/snort_pottery_sherd.json +a0a64c48c09faf9a8530b0d2b9ed56a1b19404a9 data/exdeorum/recipes/sieve/sand/golden/cactus.json +9a291837a57f636a171b9c77cdcf9d13607b3a2f data/exdeorum/recipes/sieve/sand/golden/coast_armor_trim_smithing_template.json +51254a10ce57d6e1638a814bb7c33eae772b74ae data/exdeorum/recipes/sieve/sand/golden/dead_bush.json +5f96d9d25104db61ab32ef70ae34357e46f0cf60 data/exdeorum/recipes/sieve/sand/golden/flint.json +48befc50bcea773e6211345f3240b1da36ab7042 data/exdeorum/recipes/sieve/sand/golden/gold_nugget.json +54a69fd743c8f03848936c1b68dbca74e683dc11 data/exdeorum/recipes/sieve/sand/golden/host_armor_trim_smithing_template.json +ac3a8a7662b49ba6302d1b84bfea5cf47f96d349 data/exdeorum/recipes/sieve/sand/golden/iron_nugget.json +16ef57b24307c1c0cd5562f0dac3de77f3c7adb9 data/exdeorum/recipes/sieve/sand/golden/kelp.json +325c2354628d0326186f7c72c954b40a83c1d387 data/exdeorum/recipes/sieve/sand/golden/prismarine_crystals.json +036f26f12153cb65c8bfb903069d78ca3d075ee8 data/exdeorum/recipes/sieve/sand/golden/prismarine_shard.json +a6054908db2a64a85698f7efa8b95702dc749767 data/exdeorum/recipes/sieve/sand/golden/raiser_armor_trim_smithing_template.json +481714481b49e0a4c1a0a879d14f7c1ae6745da7 data/exdeorum/recipes/sieve/sand/golden/raw_gold.json +16efbb8520e3f75f34545b764ecd56895fa8c4fb data/exdeorum/recipes/sieve/sand/golden/sea_pickle.json +6efb62c0b66ede564e726599e08667396c7032b5 data/exdeorum/recipes/sieve/sand/golden/shaper_armor_trim_smithing_template.json +d2f33dce4cd3c27b0885ca17a1850cc1147f216c data/exdeorum/recipes/sieve/sand/golden/wayfinder_armor_trim_smithing_template.json +3c460263a141f27130f6e6e9872d19fa5e292fcc data/exdeorum/recipes/sieve/sand/iron/cactus.json +c25fb31d20e416667c025b8c1c6af6a8e187905c data/exdeorum/recipes/sieve/sand/iron/dead_bush.json +82bc05339f351e02fe7f059cc7ab1af5a401dd7d data/exdeorum/recipes/sieve/sand/iron/flint.json +5a723867a1edd63893496c6dd66a82cc52c2e358 data/exdeorum/recipes/sieve/sand/iron/gold_nugget.json +55d2168f495a0fe6f04b370b768bccf616127547 data/exdeorum/recipes/sieve/sand/iron/iron_nugget.json +9063428c02e636e31e203e8245d955db169804a3 data/exdeorum/recipes/sieve/sand/iron/kelp.json +754b50cc6c4f4cd828ca94e57a2d62b152f1314c data/exdeorum/recipes/sieve/sand/iron/prismarine_crystals.json +753404266e7ae1e3a3df66783bfb33a1acee3c7c data/exdeorum/recipes/sieve/sand/iron/prismarine_shard.json +07cd450d5cc1eeabce3598b78aeefd0e8d24bb14 data/exdeorum/recipes/sieve/sand/iron/sea_pickle.json +e56d672a7a5cd4d843527b3bd0bd541c6b3b1146 data/exdeorum/recipes/sieve/sand/netherite/cactus.json +58cd51de0cc46927b2fa9623b0de5b01fd6e329e data/exdeorum/recipes/sieve/sand/netherite/flint.json +647af3f79d2eb1e97b0bba295818f688a985aab9 data/exdeorum/recipes/sieve/sand/netherite/gold_nugget.json +0417a820d418832027c463185288d8bca372f8bd data/exdeorum/recipes/sieve/sand/netherite/iron_nugget.json +f87e661d50ae689061eb95d7301c5fc8ad0665eb data/exdeorum/recipes/sieve/sand/netherite/kelp.json +b8389d2c3c554581a944d4135e61794699d6a9ed data/exdeorum/recipes/sieve/sand/netherite/prismarine_crystals.json +5cb577188035abfc41191676b6ab0d64de5fcc73 data/exdeorum/recipes/sieve/sand/netherite/prismarine_shard.json +7bc4277d9571604ba28539faf902acd14818247f data/exdeorum/recipes/sieve/sand/netherite/sea_pickle.json +6b29b44e6fa1da0c13c9693313fb76b8bfbfe53f data/exdeorum/recipes/sieve/sand/string/cactus.json +2faba7a0d7593a82262560291ebbcfb70d643e62 data/exdeorum/recipes/sieve/sand/string/dead_bush.json +ddf66ea0e3b7fc2d686904888505eb1d45c25fd8 data/exdeorum/recipes/sieve/sand/string/flint.json +60f3193df86359ef09eda538f959dd5b829a5f16 data/exdeorum/recipes/sieve/sand/string/gold_nugget.json +d604395afe0938fa327e41f0136f43683d261dbf data/exdeorum/recipes/sieve/sand/string/iron_nugget.json +6210ff1c5f30eee102cca6e53f3dbfcf5862fb0e data/exdeorum/recipes/sieve/sand/string/kelp.json +d93c2410827c81c2dc033cb52ac4cf6af79cfee1 data/exdeorum/recipes/sieve/sand/string/sea_pickle.json +c773bd94981602bdb5a3ed2ce60486e26ecaa4f7 data/exdeorum/recipes/sieve/soul_sand/diamond/ghast_tear.json +69fb6c91d6229c8df9cdb41d5d5e9c7fb04d4907 data/exdeorum/recipes/sieve/soul_sand/diamond/glowstone_dust.json +1ec5f811536c5b23245a60c2b3a6f6fd835a92f7 data/exdeorum/recipes/sieve/soul_sand/diamond/gunpowder.json +ac2498b96a04af149549b0390c3162a9a1c76b33 data/exdeorum/recipes/sieve/soul_sand/diamond/quartz.json +23e1a8617e4d85bedb0a3baab1d590336ac7513e data/exdeorum/recipes/sieve/soul_sand/flint/bone.json +83e5588c267594a63f8203457209f5b87cbe4b48 data/exdeorum/recipes/sieve/soul_sand/flint/crimson_nylium_spores.json +d089d069430307c89b18484a54671f3dafa58712 data/exdeorum/recipes/sieve/soul_sand/flint/ghast_tear.json +e07e424b7298ad8a6b69878168671cf404f75bc4 data/exdeorum/recipes/sieve/soul_sand/flint/glowstone_dust.json +e58e778a1e441227f1f03eaa9eaa330dc2b95ef9 data/exdeorum/recipes/sieve/soul_sand/flint/gunpowder.json +de2e5cfecb7bb764276756e382f2aa72d7276c57 data/exdeorum/recipes/sieve/soul_sand/flint/quartz.json +e127381da2e8116f1525db4387cb7d3ea0c48062 data/exdeorum/recipes/sieve/soul_sand/flint/warped_nylium_spores.json +564b5d6e5e4666d0d0af0acb7b6b5f2ceccb8429 data/exdeorum/recipes/sieve/soul_sand/golden/bone.json +1ff199446c079bb1e4b67a4dfa7ee54890bf226d data/exdeorum/recipes/sieve/soul_sand/golden/ghast_tear.json +14b560a232180873720b852253ac8aa1db93e826 data/exdeorum/recipes/sieve/soul_sand/golden/glowstone_dust.json +a9aae4ed59c4d9d257c25aff3c46dca091ec375e data/exdeorum/recipes/sieve/soul_sand/golden/gold_nugget.json +4ee169bf9a649fb624da77931a4389bdfc7ae675 data/exdeorum/recipes/sieve/soul_sand/golden/gunpowder.json +eaca2cf33cd025b5b9018a3278f89fa2b17f80d1 data/exdeorum/recipes/sieve/soul_sand/golden/quartz.json +8d9798f1571cf24c13047f641cb4a35d4347388c data/exdeorum/recipes/sieve/soul_sand/iron/bone.json +f94140a871e4b290e1b27839fd13e266a484acc9 data/exdeorum/recipes/sieve/soul_sand/iron/ghast_tear.json +adc67fcc8b6ec1ffbb36a26155af01b015842c46 data/exdeorum/recipes/sieve/soul_sand/iron/glowstone_dust.json +57844114c8cd33cac53af182307d4e143091e18a data/exdeorum/recipes/sieve/soul_sand/iron/gunpowder.json +35f408ac12d41ea636cf81b8a785dba80f0535ce data/exdeorum/recipes/sieve/soul_sand/iron/quartz.json +49199e67cb63ba0f30815c9b090b197a3abac4ee data/exdeorum/recipes/sieve/soul_sand/netherite/ghast_tear.json +4d3804e110f9cb9de11a7548ad72b6a32e10e554 data/exdeorum/recipes/sieve/soul_sand/netherite/glowstone_dust.json +1e78a124a62cd6f1f986023769d32a3a3c08bf6d data/exdeorum/recipes/sieve/soul_sand/netherite/gunpowder.json +93104291e3221a15c651576b8f7124082978e53a data/exdeorum/recipes/sieve/soul_sand/netherite/quartz.json +40841ef9cb7f318b8aee0a56b8b391109b3df081 data/exdeorum/recipes/sieve/soul_sand/string/bone.json +3ccfe21e5a2d9351a6923c9c3490135ebcb96ba5 data/exdeorum/recipes/sieve/soul_sand/string/ghast_tear.json +584ece6c099a190de75d1d88431c59e5b930dc33 data/exdeorum/recipes/sieve/soul_sand/string/glowstone_dust.json +efa24078ae05e89dcaf7869ed7973e9688456c90 data/exdeorum/recipes/sieve/soul_sand/string/gunpowder.json +fe809175ad8570b7338b3aff029c040ca0fe5095 data/exdeorum/recipes/sieve/soul_sand/string/quartz.json 5fada017bfccd7c672986d436e390ed5799b185a data/exdeorum/recipes/spruce_barrel.json 3a2654f08af2014451533d7168c29ed866c0788f data/exdeorum/recipes/spruce_crucible.json +b4531ee1e1478da1145f099271cff9a9c2069c46 data/exdeorum/recipes/spruce_sieve.json 5c0a2619af428a12b5669976c8d489e4c87c7a47 data/exdeorum/recipes/stone_barrel.json 0aee7f0e68984984d53cab77fef3296f48a8bbf1 data/exdeorum/recipes/stone_hammer.json -00c34e6891b9de45e4b502d4dab6d1443622f1de data/exdeorum/recipes/string_mesh.json -c79faa160392872226394a3506412c9946a8183f data/exdeorum/recipes/unfired_crucible.json +8a3b28ce7f95cb82cd4693caee0cfbd856324fd5 data/exdeorum/recipes/stone_watering_can.json +09df4d1fa4f1e079f6190b943fc45085cc6d6596 data/exdeorum/recipes/string_mesh.json +ba8d21134dd2e019a9dd579a765d12685c19380d data/exdeorum/recipes/tuff.json +480cf1a3e2f5476e7aa9fc8a9ad310adef9e25e9 data/exdeorum/recipes/unfired_porcelain_bucket.json +e6ff95b6fbc43c73a537174e01c9eb519e8fdef1 data/exdeorum/recipes/unfired_porcelain_crucible.json 346b70c2d2516f6e735fd1f156e22a649175813d data/exdeorum/recipes/warped_barrel.json 1ae1b311f2e370c924041da80fea01ac8da870c5 data/exdeorum/recipes/warped_crucible.json +7d589e398d803bc7a30614f6ee4aa0d48ca3540e data/exdeorum/recipes/warped_sieve.json 4fbb682aa185e8d9d945619554dc98015221a4eb data/exdeorum/recipes/water_crucible/apple.json 8fed4fdb981ca82436919a074fc1166a2fc6385d data/exdeorum/recipes/water_crucible/cactus.json 1a31f9a9826fc882acc135c40845b1f227476c7c data/exdeorum/recipes/water_crucible/leaves.json 08d92cfb7b7e83651d1bc26d3abbe7340fab511f data/exdeorum/recipes/water_crucible/lily_pad.json 27134a6501957007812b98886e16d22cd8517ee0 data/exdeorum/recipes/water_crucible/melon.json d9c0f111e2ae9715cd76a9d5f0ceadce72e34c87 data/exdeorum/recipes/water_crucible/melon_slice.json +3252ccfd40508d9b50e881cee8b5e50e1be7ccee data/exdeorum/recipes/water_crucible/moss.json +8e2e91cb5d81688355ef9ad4f1eb859af24973bb data/exdeorum/recipes/water_crucible/moss_carpet.json 0505bf31de1c13f3a22ee2cbdd1595bbb4857692 data/exdeorum/recipes/water_crucible/pumpkin.json 8b04ebb043ce62c0f17adf40cb45431f8e54701f data/exdeorum/recipes/water_crucible/saplings.json +8b68ac02a0b642270163f77c7840a50bae0a54a4 data/exdeorum/recipes/water_crucible/seeds_and_spores.json dabaaa0c9db5dd4668b528df176606609f45c0ce data/exdeorum/recipes/water_crucible/small_flowers.json -11d7b4b67198a9753a0391685fdcc368b506fade data/exdeorum/recipes/water_crucible/sweet_berries.json +3927d17ed5a24132956fa60b51bdb22e67ef4626 data/exdeorum/recipes/water_crucible/sweet_berries.json 9d4abedfd8af2e988c4f11d62ed66743f3e8ac07 data/exdeorum/recipes/water_crucible/tall_flowers.json 8356651dbd67d7c3b820a78d0720afa5a1ee5713 data/exdeorum/recipes/wooden_hammer.json +20b1ab005d3c3d552d4300f53444a931b230cb3b data/exdeorum/recipes/wooden_watering_can.json diff --git a/src/generated/resources/.cache/e5c5eb35b4ba40351ecb7d9f04c3527f2f5779b0 b/src/generated/resources/.cache/e5c5eb35b4ba40351ecb7d9f04c3527f2f5779b0 index 0aef9070..2774991d 100644 --- a/src/generated/resources/.cache/e5c5eb35b4ba40351ecb7d9f04c3527f2f5779b0 +++ b/src/generated/resources/.cache/e5c5eb35b4ba40351ecb7d9f04c3527f2f5779b0 @@ -1,6 +1,6 @@ -// 1.20.1 2023-08-03T18:32:13.596438 Advancements -4e18e4e53d48dd9658785e68275c7f09f7f08bb3 data/exdeorum/advancements/core/barrel.json -4086caa3f1b9e6bee8f471bda6f8e215d6b44145 data/exdeorum/advancements/core/crook.json +// 1.20.1 2023-08-08T11:13:43.379482 Advancements +15b847f60d2dfaa59975bb41bd2324aaceaf4ed7 data/exdeorum/advancements/core/barrel.json +c907761b29aed93360c3d915200121bfa564747f data/exdeorum/advancements/core/crook.json 5768f6d020ef8b374a7a4fc1506c3d297acc4291 data/exdeorum/advancements/core/root.json 2f69de3342f67644c4bc00ce78229fd12248ced7 data/exdeorum/advancements/core/silk_worm.json 77c7995e233e03a648036fcaaee4f24afcccab31 data/exdeorum/advancements/core/string_mesh.json diff --git a/src/generated/resources/.cache/fc2b6ffd874afaa6f2f20b450921dbfbbc8b86bd b/src/generated/resources/.cache/fc2b6ffd874afaa6f2f20b450921dbfbbc8b86bd index fc32dcd2..34c6980c 100644 --- a/src/generated/resources/.cache/fc2b6ffd874afaa6f2f20b450921dbfbbc8b86bd +++ b/src/generated/resources/.cache/fc2b6ffd874afaa6f2f20b450921dbfbbc8b86bd @@ -1,4 +1,4 @@ -// 1.20.1 2023-08-03T18:32:13.5904366 ModKit Item Models for mod 'exdeorum' +// 1.20.1 2023-08-08T16:04:12.9142287 ModKit Item Models for mod 'exdeorum' 4ba3bb2c6174ac3728a4b85e34681f118ec8eb34 assets/exdeorum/models/item/acacia_barrel.json c03ce41f7c071498fcbd5f5225e91dcb2f365fbb assets/exdeorum/models/item/acacia_crucible.json 3b4f1d45c0d9c4cd1d9a5cdf6ddc8d2c9791bca5 assets/exdeorum/models/item/acacia_sieve.json @@ -6,10 +6,13 @@ c03ce41f7c071498fcbd5f5225e91dcb2f365fbb assets/exdeorum/models/item/acacia_cruc fd1850138a04a6651f4a79cdc93b52b3ddcd88ab assets/exdeorum/models/item/bamboo_barrel.json ef8aec7c31e2d11e5b2e653aea90eaf4d672258e assets/exdeorum/models/item/bamboo_crucible.json 731c17e6b668e353b4a4df3f3c847ccaf3d6024c assets/exdeorum/models/item/bamboo_sieve.json +7906b74ff331ad523a28d4b70f85c38e19e46123 assets/exdeorum/models/item/basalt_pebble.json cb54f7f749cf12c5980051180b59993c33513231 assets/exdeorum/models/item/birch_barrel.json c6a2834820a8ee03ad01a50df13fdaa50de55507 assets/exdeorum/models/item/birch_crucible.json cea0d8d765050cad7aed1d23c8ff89cb7112a64d assets/exdeorum/models/item/birch_sieve.json +83c2bbf6ddc7053565b8450f57d8d19ca69d5a66 assets/exdeorum/models/item/blackstone_pebble.json 19995d73ae76d8ebcb64cab9219373f6192f5e8d assets/exdeorum/models/item/bone_crook.json +d3f7de31d0fba8578c3e36a16ab39ac0a4d54af9 assets/exdeorum/models/item/calcite_pebble.json 95b067616dfc39ad8f72bab6d2cf40c6c05a3748 assets/exdeorum/models/item/cherry_barrel.json 9480047be2df6b628b18f1102699ed8f24de4deb assets/exdeorum/models/item/cherry_crucible.json 8e6c3863c2c6f6fc4039d8157cb9850b193a56be assets/exdeorum/models/item/cherry_sieve.json @@ -17,8 +20,11 @@ e0a5c7f6e6ec0cd9aa99175d3bca27b88ac299d4 assets/exdeorum/models/item/cooked_silk a24ee1ee422f8460afec77474608b988d52ea42d assets/exdeorum/models/item/copper_ore_chunk.json d6109df4904776aca591e7dfc8ee8da50664e1df assets/exdeorum/models/item/crimson_barrel.json de4c8c3d97810a3da75d7c0e27622af66c12fb61 assets/exdeorum/models/item/crimson_crucible.json +43f4bac883db91e9d8f95446adfcb3bb6d18227c assets/exdeorum/models/item/crimson_nylium_spores.json c860827a68351c6f485233db1f3f9cb5aa9851c6 assets/exdeorum/models/item/crimson_sieve.json d4e37ab48e6a73807f2f811dbb0243d1e47e43b4 assets/exdeorum/models/item/crook.json +3c82b74fa4e8c47b477deed2f6d760c4505e29d9 assets/exdeorum/models/item/crushed_blackstone.json +265eca52aabed2fe1a5ec5a1b3e8e7371942d187 assets/exdeorum/models/item/crushed_deepslate.json 670588edd96ed3914a8ebd82788682d20194f10c assets/exdeorum/models/item/crushed_end_stone.json a81914d35e6d1027d348e54608245ff90cee2793 assets/exdeorum/models/item/crushed_netherrack.json fd9b0ecdfacc39df90a9f80e1ed813cf07f7294b assets/exdeorum/models/item/dark_oak_barrel.json @@ -27,30 +33,42 @@ fd9b0ecdfacc39df90a9f80e1ed813cf07f7294b assets/exdeorum/models/item/dark_oak_ba 942f39509950ee77df5b5e5ba87afaacec06194e assets/exdeorum/models/item/deepslate_pebble.json 6b9e499551ee33d1e5a9dd3e82c7258c5b25d219 assets/exdeorum/models/item/diamond_hammer.json db9d0dbe1ad45be2a238c6e5f6f9d102b436340c assets/exdeorum/models/item/diamond_mesh.json +21810f413414ae5c2430ff0b9da6e01515d608ea assets/exdeorum/models/item/diamond_watering_can.json ab6a64efa0d9ddcce071a5a1996e46877ebbfff2 assets/exdeorum/models/item/diorite_pebble.json 8edca3e9c453345a5c6c5752096926d943b73ff3 assets/exdeorum/models/item/dust.json +2ba0fb3dcca0337d100198f00996eed6b4f0efa5 assets/exdeorum/models/item/end_cake.json d445d763388c9fb9ae4f8e8e8c200d92b3db7628 assets/exdeorum/models/item/flint_mesh.json ff1e2e653bf0dcba9d25bdf6b44cc6118b2f0cc8 assets/exdeorum/models/item/golden_hammer.json f2138f982e5ee62ca1ed52c3a64a7813fd91ead9 assets/exdeorum/models/item/golden_mesh.json +5b2c04bdc90b653c764c86fd367c29359d82558b assets/exdeorum/models/item/golden_watering_can.json ee9de2285230b32b42585283793b265c4bb14773 assets/exdeorum/models/item/gold_ore_chunk.json 5c80508cc8b27f55f91efc58efb7955e70dd2592 assets/exdeorum/models/item/granite_pebble.json +f558ddd632278ad3ab548ce85cdc4661a2d70684 assets/exdeorum/models/item/grass_seeds.json b91a19335ff248805cf0861cae82b93d71a9e805 assets/exdeorum/models/item/iron_hammer.json 3398985db718bd990d9f7cfdf4bacf67a858b906 assets/exdeorum/models/item/iron_mesh.json 5016a7f832edb2ccfa9de7c85aa9ecf7ce45cb69 assets/exdeorum/models/item/iron_ore_chunk.json +a4a83946b9cb63dfa2a6fa22dcc3c3a4773bf79f assets/exdeorum/models/item/iron_watering_can.json e4719451e58406787ac0d5fb40416b76b2a03002 assets/exdeorum/models/item/jungle_barrel.json 746006f07a42bc786ccab5c6f5849f175e117183 assets/exdeorum/models/item/jungle_crucible.json eebf19c29a53f46c26a33bb9e2052190c88ecc50 assets/exdeorum/models/item/jungle_sieve.json 40db3277bce3f5291d16740d6dd0d96661e04197 assets/exdeorum/models/item/mangrove_barrel.json 9d8b0cd120a6965dcba6cc3753d76b7171bbddbc assets/exdeorum/models/item/mangrove_crucible.json 319ea63595a7f9ceff1818414c8250f777f087f4 assets/exdeorum/models/item/mangrove_sieve.json +d543d3e18bdcf2bf79a762b52cc61a4161124db1 assets/exdeorum/models/item/mycelium_spores.json 1f48b2ce3452ce5d02142c9f663ae7bdb7d1d934 assets/exdeorum/models/item/netherite_hammer.json 248ebed818e2e4a5eb7ce78363f56433a3066646 assets/exdeorum/models/item/netherite_mesh.json +44004d850da735a9f239d07a615813f8badb373f assets/exdeorum/models/item/netherite_watering_can.json c8b55bd8b222b2914d0b21d847788abce42c1d06 assets/exdeorum/models/item/oak_barrel.json dd1d9002a22eb6f5a187d53e041cd498f4ef998b assets/exdeorum/models/item/oak_crucible.json 4de21205436d30940d690f457a3614c9235f5e88 assets/exdeorum/models/item/oak_sieve.json 0e330ed6d5ef4af907bb537a42282a41b1e7698a assets/exdeorum/models/item/porcelain_bucket.json -2722735d47af5c02392196c2114c07cc57169787 assets/exdeorum/models/item/porcelain_clay.json +f843e3bbc432c370ea62f421580b5447807e8b8b assets/exdeorum/models/item/porcelain_clay_ball.json acb7c543d965cfc01ba4cb7b2dc0577ebd1e0eba assets/exdeorum/models/item/porcelain_crucible.json +96330de7f1e4717e75630b90123e693e5e8eac74 assets/exdeorum/models/item/porcelain_lava_bucket.json +653c865c2af937bf1d4db587ef5190c5f4781a6f assets/exdeorum/models/item/porcelain_milk_bucket.json +83c0f1e491cb6d502b43de4411f7288ea5534a81 assets/exdeorum/models/item/porcelain_water_bucket.json +8012448a03d9a5a439daa36ae8f76f9fe13c3629 assets/exdeorum/models/item/porcelain_witch_water_bucket.json +3818c896e463945cc5081644bc1ed52edbde6ebb assets/exdeorum/models/item/sculk_core.json 52d8514e585524122e32cae1c18a838da5eb6f09 assets/exdeorum/models/item/silk_worm.json a017f369bb5bf2dde7ebc1134fc89f96a725ea8d assets/exdeorum/models/item/spruce_barrel.json 03dac3d7dec527c4a9efbb6c28d23815252b9c39 assets/exdeorum/models/item/spruce_crucible.json @@ -58,11 +76,15 @@ a1acf7f34360d0710f0f0bceb83f5028c4c93710 assets/exdeorum/models/item/spruce_siev bf3f5eb4caf2e2d4d4e7f33d1323b2ca5eb29329 assets/exdeorum/models/item/stone_barrel.json b71e04a912b620bfebfd309bf5d61cee8fba35b9 assets/exdeorum/models/item/stone_hammer.json 9cf157cd0b41f89c9291be6b6383e0494369c6ef assets/exdeorum/models/item/stone_pebble.json +3d848c2d1f094ceab9fb3f951f140b85cea2a6ab assets/exdeorum/models/item/stone_watering_can.json d9561f75ac700cf33abf8e1f7684d1c5fec85a89 assets/exdeorum/models/item/string_mesh.json b7b483e30fc97f7f307f5b09249bbdd03e980caa assets/exdeorum/models/item/tuff_pebble.json -c4689b9821093e520830e4ab76dc9e53be0fc4d6 assets/exdeorum/models/item/unfired_crucible.json +b56c539af5e9e562830143e9c32f10b33a26eb5a assets/exdeorum/models/item/unfired_porcelain_bucket.json +a83a24ae2611430c290b4f866c73769aacdb9c92 assets/exdeorum/models/item/unfired_porcelain_crucible.json bb3b00cc253bc23b65d775bcb9134f38b049e3ce assets/exdeorum/models/item/warped_barrel.json 1c4832816b0a69ff0e422bd21e20dd05e3c40090 assets/exdeorum/models/item/warped_crucible.json +8b76cf494636338cceec59d252dd4145f046cc58 assets/exdeorum/models/item/warped_nylium_spores.json 1f8bdb9ece2b010aa4c5cf710f2ea75b81565103 assets/exdeorum/models/item/warped_sieve.json c72e7359dd4934c756c49350682ac667fffe009b assets/exdeorum/models/item/witch_water_bucket.json 7089629f8033bd4e52780fe88437aa684f4ee0a9 assets/exdeorum/models/item/wooden_hammer.json +d6c652c6828ed14e33c4e948afc1c9a29f977853 assets/exdeorum/models/item/wooden_watering_can.json diff --git a/src/generated/resources/.cache/fc41039380e20c0de816b178c0dd0b68eb0f1d50 b/src/generated/resources/.cache/fc41039380e20c0de816b178c0dd0b68eb0f1d50 index 3a626c58..f91039b6 100644 --- a/src/generated/resources/.cache/fc41039380e20c0de816b178c0dd0b68eb0f1d50 +++ b/src/generated/resources/.cache/fc41039380e20c0de816b178c0dd0b68eb0f1d50 @@ -1,4 +1,4 @@ -// 1.20.1 2023-08-03T18:32:13.5924363 ModKit Block Models for mod 'exdeorum' +// 1.20.1 2023-08-08T11:59:32.0397483 ModKit Block Models for mod 'exdeorum' c73197f2dc770a353883c387b2b1f0b082283576 assets/exdeorum/blockstates/acacia_barrel.json a3ef4562a4c7833439d8d66ff9c210406d317995 assets/exdeorum/blockstates/acacia_crucible.json b3383c530978c5f67d897ba16fda9a2a359482cd assets/exdeorum/blockstates/acacia_sieve.json @@ -14,6 +14,8 @@ a7af62e0deedaca41a7ea2d12b53a25aef4b5f6b assets/exdeorum/blockstates/cherry_siev 67c6e741ca0043db513343036e03e279e9c7baa6 assets/exdeorum/blockstates/crimson_barrel.json ed5687c99bd36a19685bbf84251f70c6b8a864df assets/exdeorum/blockstates/crimson_crucible.json 4d5b5d78fb5e510c2d8f7fa7f53eaafbe392624d assets/exdeorum/blockstates/crimson_sieve.json +91fc3a2da22ffb9d6cf1902acf25b4b92b4bd615 assets/exdeorum/blockstates/crushed_blackstone.json +02946489dea8f7ed1aa421fb5272e085b5914d0f assets/exdeorum/blockstates/crushed_deepslate.json 8d10a465486ff5fcaf4bac892c7b77116b0dce07 assets/exdeorum/blockstates/crushed_end_stone.json 4c54ec759e85353b770c699f8378d3df25166a74 assets/exdeorum/blockstates/crushed_netherrack.json 2da1a307b707e9c60df5a3edcd05a0dde1e9b2ad assets/exdeorum/blockstates/dark_oak_barrel.json @@ -34,7 +36,7 @@ bae1185e471e1fd7593558d45f325890d3ac22af assets/exdeorum/blockstates/mangrove_si 44010d261124a2cda9ca8ed887aba9f766b3e71f assets/exdeorum/blockstates/spruce_crucible.json 4782482871677bfe372816bc8f17dbdfc9eb21f9 assets/exdeorum/blockstates/spruce_sieve.json fc4d16f61cb43aeff11df5a91ca40b5225cd4617 assets/exdeorum/blockstates/stone_barrel.json -f40cc38c256fdd75a979c4e3f2675b88b1ee0b26 assets/exdeorum/blockstates/unfired_crucible.json +195aa2f301ea71f0fbd65e7922d7f58b94bc019c assets/exdeorum/blockstates/unfired_porcelain_crucible.json 400b9a28200d52814574db828e4124ca976dfd4b assets/exdeorum/blockstates/warped_barrel.json 11027cbd3ed36bf76336dcfc4693790c844f9f67 assets/exdeorum/blockstates/warped_crucible.json a37d9738f75a9b432f59be365a0a5368b23e76aa assets/exdeorum/blockstates/warped_sieve.json @@ -53,6 +55,8 @@ faab9f9cc9d1e7e780238c2333b43bedad5699d0 assets/exdeorum/models/block/cherry_cru 324f6871a85dc8e050e69cfe01efda5d286d3d29 assets/exdeorum/models/block/crimson_barrel.json 75c5fa5eb3bb4e50dcde0f08e2a6fe7ba02f6f19 assets/exdeorum/models/block/crimson_crucible.json 42d62c6d3f7e59550bf84ffd4648ce4ee4f82bb1 assets/exdeorum/models/block/crimson_sieve.json +446dad4f174dfab9b64ac559adf23ac299f4681b assets/exdeorum/models/block/crushed_blackstone.json +a2af67f20500b713eca8f7fe16172aa63a2247ef assets/exdeorum/models/block/crushed_deepslate.json 771591ba50a804b9e40f5677f8a342fdb4cc7f2f assets/exdeorum/models/block/crushed_end_stone.json 7e365e2125de3671a2463d65da8ecdb49dde7349 assets/exdeorum/models/block/crushed_netherrack.json de9aa8b53fa49340ee517f1ba0d3fbdc438803b8 assets/exdeorum/models/block/dark_oak_barrel.json @@ -73,7 +77,7 @@ c61e5a082d800671fe55031495511fa716f99183 assets/exdeorum/models/block/porcelain_ 37c045fb5d4dab5cc648986bbbd3532e0a47500c assets/exdeorum/models/block/spruce_crucible.json b089184195ded615924623228fd356d87784d080 assets/exdeorum/models/block/spruce_sieve.json a1bfa20c0c4314fdfd75b2f04533fef81a949bcd assets/exdeorum/models/block/stone_barrel.json -e40141553173bec342db3c7538a4ac9d9ad5bbd7 assets/exdeorum/models/block/unfired_crucible.json +79ac0044d90aaf89aa1141b7eacbf1c592c9167d assets/exdeorum/models/block/unfired_porcelain_crucible.json 8d724bdf66e9383106b7e78f45b9dec332d821b8 assets/exdeorum/models/block/warped_barrel.json 9f5e229dada9bfcbcccb6da4379ad63dfd6dc94c assets/exdeorum/models/block/warped_crucible.json 4a771578288c4ac4522f2f3d3373fc290cf4ca64 assets/exdeorum/models/block/warped_sieve.json diff --git a/src/generated/resources/assets/exdeorum/blockstates/crushed_blackstone.json b/src/generated/resources/assets/exdeorum/blockstates/crushed_blackstone.json new file mode 100644 index 00000000..c00b8ba9 --- /dev/null +++ b/src/generated/resources/assets/exdeorum/blockstates/crushed_blackstone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "exdeorum:block/crushed_blackstone" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/blockstates/crushed_deepslate.json b/src/generated/resources/assets/exdeorum/blockstates/crushed_deepslate.json new file mode 100644 index 00000000..0c96897e --- /dev/null +++ b/src/generated/resources/assets/exdeorum/blockstates/crushed_deepslate.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "exdeorum:block/crushed_deepslate" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/blockstates/unfired_crucible.json b/src/generated/resources/assets/exdeorum/blockstates/unfired_crucible.json deleted file mode 100644 index 05e63efe..00000000 --- a/src/generated/resources/assets/exdeorum/blockstates/unfired_crucible.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "exdeorum:block/unfired_crucible" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/blockstates/unfired_porcelain_crucible.json b/src/generated/resources/assets/exdeorum/blockstates/unfired_porcelain_crucible.json new file mode 100644 index 00000000..0415aef0 --- /dev/null +++ b/src/generated/resources/assets/exdeorum/blockstates/unfired_porcelain_crucible.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "exdeorum:block/unfired_porcelain_crucible" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/lang/en_us.json b/src/generated/resources/assets/exdeorum/lang/en_us.json index f97d03cb..d4be0bae 100644 --- a/src/generated/resources/assets/exdeorum/lang/en_us.json +++ b/src/generated/resources/assets/exdeorum/lang/en_us.json @@ -6,7 +6,7 @@ "advancements.exdeorum.core.root.description": "Spawn into a SkyBlock void world", "advancements.exdeorum.core.root.title": "Don't Look Down...", "advancements.exdeorum.core.silk_worm.description": "Obtain a silk worm, then infest a tree with it to get string", - "advancements.exdeorum.core.silk_worm.title": "Straight Outta China", + "advancements.exdeorum.core.silk_worm.title": "This Looks Edible", "advancements.exdeorum.core.string_mesh.description": "Craft a string mesh to use in a sieve", "advancements.exdeorum.core.string_mesh.title": "All the Little Cogs", "block.exdeorum.acacia_barrel": "Acacia Barrel", @@ -24,12 +24,15 @@ "block.exdeorum.crimson_barrel": "Crimson Barrel", "block.exdeorum.crimson_crucible": "Crimson Crucible", "block.exdeorum.crimson_sieve": "Crimson Sieve", + "block.exdeorum.crushed_blackstone": "Crushed Blackstone", + "block.exdeorum.crushed_deepslate": "Crushed Deepslate", "block.exdeorum.crushed_end_stone": "Crushed End Stone", "block.exdeorum.crushed_netherrack": "Crushed Netherrack", "block.exdeorum.dark_oak_barrel": "Dark Oak Barrel", "block.exdeorum.dark_oak_crucible": "Dark Oak Crucible", "block.exdeorum.dark_oak_sieve": "Dark Oak Sieve", "block.exdeorum.dust": "Dust", + "block.exdeorum.end_cake": "End Cake", "block.exdeorum.infested_leaves": "Infested Leaves", "block.exdeorum.jungle_barrel": "Jungle Barrel", "block.exdeorum.jungle_crucible": "Jungle Crucible", @@ -45,7 +48,7 @@ "block.exdeorum.spruce_crucible": "Spruce Crucible", "block.exdeorum.spruce_sieve": "Spruce Sieve", "block.exdeorum.stone_barrel": "Stone Barrel", - "block.exdeorum.unfired_crucible": "Unfired Crucible", + "block.exdeorum.unfired_porcelain_crucible": "Unfired Porcelain Crucible", "block.exdeorum.warped_barrel": "Warped Barrel", "block.exdeorum.warped_crucible": "Warped Crucible", "block.exdeorum.warped_sieve": "Warped Sieve", @@ -54,6 +57,7 @@ "generator.exdeorum.void_world": "Void World", "gui.exdeorum.category.barrel_compost": "Barrel Compost", "gui.exdeorum.category.barrel_compost.volume": "Compost: %s", + "gui.exdeorum.category.barrel_mixing": "Barrel Mixing", "gui.exdeorum.category.hammer": "Hammer", "gui.exdeorum.category.lava_crucible": "Lava Crucible", "gui.exdeorum.category.sieve": "Sieve", @@ -62,35 +66,62 @@ "gui.exdeorum.category.sieve.max_output": "Max: %s", "gui.exdeorum.category.sieve.min_output": "Min: %s", "gui.exdeorum.category.water_crucible": "Water Crucible", - "info.exdeorum.sieve": "Sieves are used to filter out certain items from soft blocks like gravel and dirt. A mesh is required to use the sieve, and it can be enchanted with Fortune and Efficiency. Adjacent sieves can be used simultaneously, with a maximum of 9 sieves at a time in a 3x3 shape.", + "info.exdeorum.crimson_nylium_spores": "Use on netherrack to turn it into a crimson nylium block.", + "info.exdeorum.grass_seeds": "Use on dirt to turn it into a grass block.", + "info.exdeorum.mycelium_spores": "Use on dirt to turn it into mycelium.", + "info.exdeorum.sculk_core": "Use a sculk core on a Sculk Shrieker to enable it to spawn Wardens. Normally, Sculk Shriekers placed by players cannot spawn Wardens, so this item is useful for obtaining Sculk items in a SkyBlock world.", + "info.exdeorum.sieve": "Sieves are used to sift for items from soft blocks like gravel and dirt. A mesh is required to use the sieve. Meshes can be enchanted with Fortune and Efficiency. Sieves in a 3x3 area can be used simultaneously.", "info.exdeorum.silk_worm": "Silk worms have a 1 in 100 chance to drop from leaves harvested with a Crook. Using a silk worm on a tree's leaves will infest them, gradually spreading through the entire tree. 100% infested leaves can be harvested for string, but do not drop saplings.", + "info.exdeorum.warped_nylium_spores": "Use on netherrack to turn it into a warped nylium block.", + "info.exdeorum.watering_can": "Watering cans speed up crop growth, tree growth, and grass spreading, among other things. They can be filled with water from barrels and wooden crucibles. Golden and above watering cans do not need to be refilled once full. Diamond watering cans water in a 3x3 area, and Netherite watering cans are usable by machinery.", + "info.exdeorum.witch_water": "Witch water is obtained by putting water in a barrel on top of mycelium. More mycelium speeds up the process. A barrel with witch water will grow mushrooms on nearby mycelium. Witch water and lava can make a netherrack generator, similar to a cobblestone generator.", "item.exdeorum.andesite_pebble": "Andesite Pebble", + "item.exdeorum.basalt_pebble": "Basalt Pebble", + "item.exdeorum.blackstone_pebble": "Blackstone Pebble", "item.exdeorum.bone_crook": "Bone Crook", + "item.exdeorum.calcite_pebble": "Calcite Pebble", "item.exdeorum.cooked_silk_worm": "Cooked Silk Worm", "item.exdeorum.copper_ore_chunk": "Copper Ore Chunk", + "item.exdeorum.crimson_nylium_spores": "Crimson Nylium Spores", "item.exdeorum.crook": "Crook", "item.exdeorum.deepslate_pebble": "Deepslate Pebble", "item.exdeorum.diamond_hammer": "Diamond Hammer", "item.exdeorum.diamond_mesh": "Diamond Mesh", + "item.exdeorum.diamond_watering_can": "Diamond Watering Can", "item.exdeorum.diorite_pebble": "Diorite Pebble", "item.exdeorum.flint_mesh": "Flint Mesh", "item.exdeorum.gold_ore_chunk": "Gold Ore Chunk", "item.exdeorum.golden_hammer": "Golden Hammer", "item.exdeorum.golden_mesh": "Golden Mesh", + "item.exdeorum.golden_watering_can": "Golden Watering Can", "item.exdeorum.granite_pebble": "Granite Pebble", + "item.exdeorum.grass_seeds": "Grass Seeds", "item.exdeorum.iron_hammer": "Iron Hammer", "item.exdeorum.iron_mesh": "Iron Mesh", "item.exdeorum.iron_ore_chunk": "Iron Ore Chunk", + "item.exdeorum.iron_watering_can": "Iron Watering Can", + "item.exdeorum.mycelium_spores": "Mycelium Spores", "item.exdeorum.netherite_hammer": "Netherite Hammer", "item.exdeorum.netherite_mesh": "Netherite Mesh", + "item.exdeorum.netherite_watering_can": "Netherite Watering Can", "item.exdeorum.porcelain_bucket": "Porcelain Bucket", - "item.exdeorum.porcelain_clay": "Porcelain Clay", + "item.exdeorum.porcelain_clay_ball": "Porcelain Clay Ball", + "item.exdeorum.porcelain_lava_bucket": "Porcelain Lava Bucket", + "item.exdeorum.porcelain_milk_bucket": "Porcelain Milk Bucket", + "item.exdeorum.porcelain_water_bucket": "Porcelain Water Bucket", + "item.exdeorum.porcelain_witch_water_bucket": "Porcelain Witch Water Bucket", + "item.exdeorum.sculk_core": "Sculk Core", "item.exdeorum.silk_worm": "Silk Worm", "item.exdeorum.stone_hammer": "Stone Hammer", "item.exdeorum.stone_pebble": "Stone Pebble", + "item.exdeorum.stone_watering_can": "Stone Watering Can", "item.exdeorum.string_mesh": "String Mesh", "item.exdeorum.tuff_pebble": "Tuff Pebble", + "item.exdeorum.unfired_porcelain_bucket": "Unfired Porcelain Bucket", + "item.exdeorum.warped_nylium_spores": "Warped Nylium Spores", + "item.exdeorum.watering_can_fluid_display": ": %s / %s", "item.exdeorum.witch_water_bucket": "Witch Water Bucket", "item.exdeorum.wooden_hammer": "Wooden Hammer", + "item.exdeorum.wooden_watering_can": "Wooden Watering Can", "itemGroup.exdeorum.main": "Ex Deorum" } \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/block/crushed_blackstone.json b/src/generated/resources/assets/exdeorum/models/block/crushed_blackstone.json new file mode 100644 index 00000000..8cca7ad6 --- /dev/null +++ b/src/generated/resources/assets/exdeorum/models/block/crushed_blackstone.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "exdeorum:block/crushed_blackstone" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/block/crushed_deepslate.json b/src/generated/resources/assets/exdeorum/models/block/crushed_deepslate.json new file mode 100644 index 00000000..0a94466a --- /dev/null +++ b/src/generated/resources/assets/exdeorum/models/block/crushed_deepslate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "exdeorum:block/crushed_deepslate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/block/unfired_crucible.json b/src/generated/resources/assets/exdeorum/models/block/unfired_crucible.json deleted file mode 100644 index a4ee4268..00000000 --- a/src/generated/resources/assets/exdeorum/models/block/unfired_crucible.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "exdeorum:block/template_crucible", - "textures": { - "bottom": "exdeorum:block/unfired_crucible", - "inside": "exdeorum:block/unfired_crucible", - "side": "exdeorum:block/unfired_crucible", - "top": "exdeorum:block/unfired_crucible" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/block/unfired_porcelain_crucible.json b/src/generated/resources/assets/exdeorum/models/block/unfired_porcelain_crucible.json new file mode 100644 index 00000000..92edd25b --- /dev/null +++ b/src/generated/resources/assets/exdeorum/models/block/unfired_porcelain_crucible.json @@ -0,0 +1,9 @@ +{ + "parent": "exdeorum:block/template_crucible", + "textures": { + "bottom": "exdeorum:block/unfired_porcelain_crucible", + "inside": "exdeorum:block/unfired_porcelain_crucible", + "side": "exdeorum:block/unfired_porcelain_crucible", + "top": "exdeorum:block/unfired_porcelain_crucible" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/item/porcelain_clay.json b/src/generated/resources/assets/exdeorum/models/item/basalt_pebble.json similarity index 58% rename from src/generated/resources/assets/exdeorum/models/item/porcelain_clay.json rename to src/generated/resources/assets/exdeorum/models/item/basalt_pebble.json index 039e7fed..c7bea965 100644 --- a/src/generated/resources/assets/exdeorum/models/item/porcelain_clay.json +++ b/src/generated/resources/assets/exdeorum/models/item/basalt_pebble.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "exdeorum:item/porcelain_clay" + "layer0": "exdeorum:item/basalt_pebble" } } \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/item/blackstone_pebble.json b/src/generated/resources/assets/exdeorum/models/item/blackstone_pebble.json new file mode 100644 index 00000000..47009c21 --- /dev/null +++ b/src/generated/resources/assets/exdeorum/models/item/blackstone_pebble.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "exdeorum:item/blackstone_pebble" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/item/calcite_pebble.json b/src/generated/resources/assets/exdeorum/models/item/calcite_pebble.json new file mode 100644 index 00000000..2969d841 --- /dev/null +++ b/src/generated/resources/assets/exdeorum/models/item/calcite_pebble.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "exdeorum:item/calcite_pebble" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/item/crimson_nylium_spores.json b/src/generated/resources/assets/exdeorum/models/item/crimson_nylium_spores.json new file mode 100644 index 00000000..27363309 --- /dev/null +++ b/src/generated/resources/assets/exdeorum/models/item/crimson_nylium_spores.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "exdeorum:item/crimson_nylium_spores" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/item/crushed_blackstone.json b/src/generated/resources/assets/exdeorum/models/item/crushed_blackstone.json new file mode 100644 index 00000000..276e484d --- /dev/null +++ b/src/generated/resources/assets/exdeorum/models/item/crushed_blackstone.json @@ -0,0 +1,3 @@ +{ + "parent": "exdeorum:block/crushed_blackstone" +} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/item/crushed_deepslate.json b/src/generated/resources/assets/exdeorum/models/item/crushed_deepslate.json new file mode 100644 index 00000000..4cd13133 --- /dev/null +++ b/src/generated/resources/assets/exdeorum/models/item/crushed_deepslate.json @@ -0,0 +1,3 @@ +{ + "parent": "exdeorum:block/crushed_deepslate" +} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/item/diamond_watering_can.json b/src/generated/resources/assets/exdeorum/models/item/diamond_watering_can.json new file mode 100644 index 00000000..91f5713e --- /dev/null +++ b/src/generated/resources/assets/exdeorum/models/item/diamond_watering_can.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "exdeorum:item/diamond_watering_can" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/item/golden_watering_can.json b/src/generated/resources/assets/exdeorum/models/item/golden_watering_can.json new file mode 100644 index 00000000..2f174ef7 --- /dev/null +++ b/src/generated/resources/assets/exdeorum/models/item/golden_watering_can.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "exdeorum:item/golden_watering_can" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/item/grass_seeds.json b/src/generated/resources/assets/exdeorum/models/item/grass_seeds.json new file mode 100644 index 00000000..00abcad6 --- /dev/null +++ b/src/generated/resources/assets/exdeorum/models/item/grass_seeds.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "exdeorum:item/grass_seeds" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/item/iron_watering_can.json b/src/generated/resources/assets/exdeorum/models/item/iron_watering_can.json new file mode 100644 index 00000000..53124424 --- /dev/null +++ b/src/generated/resources/assets/exdeorum/models/item/iron_watering_can.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "exdeorum:item/iron_watering_can" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/item/mycelium_spores.json b/src/generated/resources/assets/exdeorum/models/item/mycelium_spores.json new file mode 100644 index 00000000..fffc05da --- /dev/null +++ b/src/generated/resources/assets/exdeorum/models/item/mycelium_spores.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "exdeorum:item/mycelium_spores" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/item/netherite_watering_can.json b/src/generated/resources/assets/exdeorum/models/item/netherite_watering_can.json new file mode 100644 index 00000000..a3478023 --- /dev/null +++ b/src/generated/resources/assets/exdeorum/models/item/netherite_watering_can.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "exdeorum:item/netherite_watering_can" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/item/porcelain_clay_ball.json b/src/generated/resources/assets/exdeorum/models/item/porcelain_clay_ball.json new file mode 100644 index 00000000..14a7dc39 --- /dev/null +++ b/src/generated/resources/assets/exdeorum/models/item/porcelain_clay_ball.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "exdeorum:item/porcelain_clay_ball" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/item/porcelain_lava_bucket.json b/src/generated/resources/assets/exdeorum/models/item/porcelain_lava_bucket.json new file mode 100644 index 00000000..0f010848 --- /dev/null +++ b/src/generated/resources/assets/exdeorum/models/item/porcelain_lava_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "exdeorum:item/porcelain_lava_bucket" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/item/porcelain_milk_bucket.json b/src/generated/resources/assets/exdeorum/models/item/porcelain_milk_bucket.json new file mode 100644 index 00000000..d6dac949 --- /dev/null +++ b/src/generated/resources/assets/exdeorum/models/item/porcelain_milk_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "exdeorum:item/porcelain_milk_bucket" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/item/porcelain_water_bucket.json b/src/generated/resources/assets/exdeorum/models/item/porcelain_water_bucket.json new file mode 100644 index 00000000..cee6ba75 --- /dev/null +++ b/src/generated/resources/assets/exdeorum/models/item/porcelain_water_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "exdeorum:item/porcelain_water_bucket" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/item/porcelain_witch_water_bucket.json b/src/generated/resources/assets/exdeorum/models/item/porcelain_witch_water_bucket.json new file mode 100644 index 00000000..375a95ae --- /dev/null +++ b/src/generated/resources/assets/exdeorum/models/item/porcelain_witch_water_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "exdeorum:item/porcelain_witch_water_bucket" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/item/stone_watering_can.json b/src/generated/resources/assets/exdeorum/models/item/stone_watering_can.json new file mode 100644 index 00000000..220a1662 --- /dev/null +++ b/src/generated/resources/assets/exdeorum/models/item/stone_watering_can.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "exdeorum:item/stone_watering_can" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/item/unfired_crucible.json b/src/generated/resources/assets/exdeorum/models/item/unfired_crucible.json deleted file mode 100644 index b9930b22..00000000 --- a/src/generated/resources/assets/exdeorum/models/item/unfired_crucible.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "exdeorum:block/unfired_crucible" -} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/item/unfired_porcelain_bucket.json b/src/generated/resources/assets/exdeorum/models/item/unfired_porcelain_bucket.json new file mode 100644 index 00000000..4f13eeb4 --- /dev/null +++ b/src/generated/resources/assets/exdeorum/models/item/unfired_porcelain_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "exdeorum:item/unfired_porcelain_bucket" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/item/unfired_porcelain_crucible.json b/src/generated/resources/assets/exdeorum/models/item/unfired_porcelain_crucible.json new file mode 100644 index 00000000..a1ce6564 --- /dev/null +++ b/src/generated/resources/assets/exdeorum/models/item/unfired_porcelain_crucible.json @@ -0,0 +1,3 @@ +{ + "parent": "exdeorum:block/unfired_porcelain_crucible" +} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/item/warped_nylium_spores.json b/src/generated/resources/assets/exdeorum/models/item/warped_nylium_spores.json new file mode 100644 index 00000000..c619be5e --- /dev/null +++ b/src/generated/resources/assets/exdeorum/models/item/warped_nylium_spores.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "exdeorum:item/warped_nylium_spores" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/exdeorum/models/item/wooden_watering_can.json b/src/generated/resources/assets/exdeorum/models/item/wooden_watering_can.json new file mode 100644 index 00000000..5733e601 --- /dev/null +++ b/src/generated/resources/assets/exdeorum/models/item/wooden_watering_can.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "exdeorum:item/wooden_watering_can" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/core/barrel.json b/src/generated/resources/data/exdeorum/advancements/core/barrel.json index 6f45d294..b447342b 100644 --- a/src/generated/resources/data/exdeorum/advancements/core/barrel.json +++ b/src/generated/resources/data/exdeorum/advancements/core/barrel.json @@ -18,7 +18,7 @@ "translate": "advancements.exdeorum.core.barrel.description" }, "frame": "task", - "hidden": false, + "hidden": true, "icon": { "item": "exdeorum:oak_barrel" }, diff --git a/src/generated/resources/data/exdeorum/advancements/core/crook.json b/src/generated/resources/data/exdeorum/advancements/core/crook.json index 1b7b1edf..108ca417 100644 --- a/src/generated/resources/data/exdeorum/advancements/core/crook.json +++ b/src/generated/resources/data/exdeorum/advancements/core/crook.json @@ -18,7 +18,7 @@ "translate": "advancements.exdeorum.core.crook.description" }, "frame": "task", - "hidden": false, + "hidden": true, "icon": { "item": "exdeorum:crook", "nbt": "{Damage:0}" diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/unfired_crucible.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/acacia_sieve.json similarity index 81% rename from src/generated/resources/data/exdeorum/advancements/recipes/misc/unfired_crucible.json rename to src/generated/resources/data/exdeorum/advancements/recipes/misc/acacia_sieve.json index c0d3c2fa..6d9ae63a 100644 --- a/src/generated/resources/data/exdeorum/advancements/recipes/misc/unfired_crucible.json +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/acacia_sieve.json @@ -6,7 +6,7 @@ "items": [ { "items": [ - "exdeorum:porcelain_clay" + "minecraft:acacia_planks" ] } ] @@ -15,7 +15,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "exdeorum:unfired_crucible" + "recipe": "exdeorum:acacia_sieve" }, "trigger": "minecraft:recipe_unlocked" } @@ -28,7 +28,7 @@ ], "rewards": { "recipes": [ - "exdeorum:unfired_crucible" + "exdeorum:acacia_sieve" ] }, "sends_telemetry_event": true diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/bamboo_sieve.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/bamboo_sieve.json new file mode 100644 index 00000000..6f690e57 --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/bamboo_sieve.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:bamboo_planks" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:bamboo_sieve" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:bamboo_sieve" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/basalt.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/basalt.json new file mode 100644 index 00000000..9c45a012 --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/basalt.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "exdeorum:basalt_pebble" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:basalt" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:basalt" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/birch_sieve.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/birch_sieve.json new file mode 100644 index 00000000..8b7c10ad --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/birch_sieve.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:birch_planks" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:birch_sieve" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:birch_sieve" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/blackstone.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/blackstone.json new file mode 100644 index 00000000..1acabecc --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/blackstone.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "exdeorum:blackstone_pebble" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:blackstone" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:blackstone" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/calcite.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/calcite.json new file mode 100644 index 00000000..000f063d --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/calcite.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "exdeorum:calcite_pebble" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:calcite" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:calcite" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/cherry_sieve.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/cherry_sieve.json new file mode 100644 index 00000000..acbcad63 --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/cherry_sieve.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:cherry_planks" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:cherry_sieve" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:cherry_sieve" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/cobbled_deepslate.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/cobbled_deepslate.json new file mode 100644 index 00000000..e05e8f27 --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/cobbled_deepslate.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "exdeorum:deepslate_pebble" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:cobbled_deepslate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:cobbled_deepslate" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/food/cooked_silk_worm.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/cooked_silk_worm.json similarity index 100% rename from src/generated/resources/data/exdeorum/advancements/recipes/food/cooked_silk_worm.json rename to src/generated/resources/data/exdeorum/advancements/recipes/misc/cooked_silk_worm.json diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/food/porcelain_crucible_from_campfire_cooking.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/cooked_silk_worm_from_campfire_cooking.json similarity index 81% rename from src/generated/resources/data/exdeorum/advancements/recipes/food/porcelain_crucible_from_campfire_cooking.json rename to src/generated/resources/data/exdeorum/advancements/recipes/misc/cooked_silk_worm_from_campfire_cooking.json index e7d4a0ae..11401e17 100644 --- a/src/generated/resources/data/exdeorum/advancements/recipes/food/porcelain_crucible_from_campfire_cooking.json +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/cooked_silk_worm_from_campfire_cooking.json @@ -15,7 +15,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "exdeorum:porcelain_crucible_from_campfire_cooking" + "recipe": "exdeorum:cooked_silk_worm_from_campfire_cooking" }, "trigger": "minecraft:recipe_unlocked" } @@ -28,7 +28,7 @@ ], "rewards": { "recipes": [ - "exdeorum:porcelain_crucible_from_campfire_cooking" + "exdeorum:cooked_silk_worm_from_campfire_cooking" ] }, "sends_telemetry_event": false diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/food/cooked_silk_worm_from_smoking.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/cooked_silk_worm_from_smoking.json similarity index 100% rename from src/generated/resources/data/exdeorum/advancements/recipes/food/cooked_silk_worm_from_smoking.json rename to src/generated/resources/data/exdeorum/advancements/recipes/misc/cooked_silk_worm_from_smoking.json diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/crimson_sieve.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/crimson_sieve.json new file mode 100644 index 00000000..784daec5 --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/crimson_sieve.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:crimson_planks" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:crimson_sieve" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:crimson_sieve" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/dark_oak_sieve.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/dark_oak_sieve.json new file mode 100644 index 00000000..0896a60f --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/dark_oak_sieve.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:dark_oak_planks" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:dark_oak_sieve" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:dark_oak_sieve" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/diamond_mesh.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/diamond_mesh.json new file mode 100644 index 00000000..788d0ade --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/diamond_mesh.json @@ -0,0 +1,33 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "tag": "forge:gems/diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:diamond_mesh" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:diamond_mesh" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/flint_mesh.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/flint_mesh.json new file mode 100644 index 00000000..e4fb64fe --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/flint_mesh.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:flint" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:flint_mesh" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:flint_mesh" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/golden_mesh.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/golden_mesh.json new file mode 100644 index 00000000..3c43a06b --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/golden_mesh.json @@ -0,0 +1,33 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "tag": "forge:ingots/gold" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:golden_mesh" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:golden_mesh" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/iron_mesh.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/iron_mesh.json new file mode 100644 index 00000000..e6e59096 --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/iron_mesh.json @@ -0,0 +1,33 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "tag": "forge:ingots/iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:iron_mesh" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:iron_mesh" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/jungle_sieve.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/jungle_sieve.json new file mode 100644 index 00000000..812a4570 --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/jungle_sieve.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:jungle_planks" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:jungle_sieve" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:jungle_sieve" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/mangrove_sieve.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/mangrove_sieve.json new file mode 100644 index 00000000..92b76430 --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/mangrove_sieve.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:mangrove_planks" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:mangrove_sieve" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:mangrove_sieve" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/moss_block.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/moss_block.json new file mode 100644 index 00000000..84cf4aa2 --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/moss_block.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "exdeorum:grass_seeds" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:moss_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:moss_block" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/netherite_mesh.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/netherite_mesh.json new file mode 100644 index 00000000..9c098e20 --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/netherite_mesh.json @@ -0,0 +1,33 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "tag": "forge:ingots/netherite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:netherite_mesh" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:netherite_mesh" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/oak_sieve.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/oak_sieve.json new file mode 100644 index 00000000..b41c303b --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/oak_sieve.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:oak_planks" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:oak_sieve" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:oak_sieve" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/porcelain_bucket.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/porcelain_bucket.json new file mode 100644 index 00000000..c6671231 --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/porcelain_bucket.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "exdeorum:unfired_porcelain_bucket" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:porcelain_bucket" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:porcelain_bucket" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/porcelain_clay_ball.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/porcelain_clay_ball.json new file mode 100644 index 00000000..0e8b5e08 --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/porcelain_clay_ball.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:clay_ball" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:porcelain_clay_ball" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:porcelain_clay_ball" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/porcelain_crucible.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/porcelain_crucible.json index 774241d3..cc5e752a 100644 --- a/src/generated/resources/data/exdeorum/advancements/recipes/misc/porcelain_crucible.json +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/porcelain_crucible.json @@ -6,7 +6,7 @@ "items": [ { "items": [ - "exdeorum:unfired_crucible" + "exdeorum:unfired_porcelain_crucible" ] } ] diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/spruce_sieve.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/spruce_sieve.json new file mode 100644 index 00000000..103a74c7 --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/spruce_sieve.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:spruce_planks" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:spruce_sieve" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:spruce_sieve" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/tuff.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/tuff.json new file mode 100644 index 00000000..41fe7b9d --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/tuff.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "exdeorum:tuff_pebble" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:tuff" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:tuff" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/unfired_porcelain_bucket.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/unfired_porcelain_bucket.json new file mode 100644 index 00000000..74051416 --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/unfired_porcelain_bucket.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "exdeorum:porcelain_clay_ball" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:unfired_porcelain_bucket" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:unfired_porcelain_bucket" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/unfired_porcelain_crucible.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/unfired_porcelain_crucible.json new file mode 100644 index 00000000..8e7c44c6 --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/unfired_porcelain_crucible.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "exdeorum:porcelain_clay_ball" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:unfired_porcelain_crucible" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:unfired_porcelain_crucible" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/misc/warped_sieve.json b/src/generated/resources/data/exdeorum/advancements/recipes/misc/warped_sieve.json new file mode 100644 index 00000000..c7998f29 --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/misc/warped_sieve.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:warped_planks" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:warped_sieve" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:warped_sieve" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/tools/diamond_watering_can.json b/src/generated/resources/data/exdeorum/advancements/recipes/tools/diamond_watering_can.json new file mode 100644 index 00000000..79fcf116 --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/tools/diamond_watering_can.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:bowl" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:diamond_watering_can" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:diamond_watering_can" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/tools/golden_watering_can.json b/src/generated/resources/data/exdeorum/advancements/recipes/tools/golden_watering_can.json new file mode 100644 index 00000000..168cd936 --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/tools/golden_watering_can.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:bowl" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:golden_watering_can" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:golden_watering_can" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/tools/iron_watering_can.json b/src/generated/resources/data/exdeorum/advancements/recipes/tools/iron_watering_can.json new file mode 100644 index 00000000..3ecbae78 --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/tools/iron_watering_can.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:bowl" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:iron_watering_can" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:iron_watering_can" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/tools/netherite_hammer.json b/src/generated/resources/data/exdeorum/advancements/recipes/tools/netherite_hammer.json index 1ffb9b65..495df246 100644 --- a/src/generated/resources/data/exdeorum/advancements/recipes/tools/netherite_hammer.json +++ b/src/generated/resources/data/exdeorum/advancements/recipes/tools/netherite_hammer.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "minecraft:netherite_ingot" - ] + "tag": "forge:ingots/netherite" } ] }, diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/tools/netherite_watering_can.json b/src/generated/resources/data/exdeorum/advancements/recipes/tools/netherite_watering_can.json new file mode 100644 index 00000000..a381c012 --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/tools/netherite_watering_can.json @@ -0,0 +1,33 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "tag": "forge:ingots/netherite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:netherite_watering_can" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:netherite_watering_can" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/tools/stone_watering_can.json b/src/generated/resources/data/exdeorum/advancements/recipes/tools/stone_watering_can.json new file mode 100644 index 00000000..6db54cc6 --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/tools/stone_watering_can.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:bowl" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:stone_watering_can" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:stone_watering_can" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/advancements/recipes/tools/wooden_watering_can.json b/src/generated/resources/data/exdeorum/advancements/recipes/tools/wooden_watering_can.json new file mode 100644 index 00000000..15670e4b --- /dev/null +++ b/src/generated/resources/data/exdeorum/advancements/recipes/tools/wooden_watering_can.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:bowl" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "exdeorum:wooden_watering_can" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "exdeorum:wooden_watering_can" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/loot_tables/blocks/crushed_blackstone.json b/src/generated/resources/data/exdeorum/loot_tables/blocks/crushed_blackstone.json new file mode 100644 index 00000000..d76ba799 --- /dev/null +++ b/src/generated/resources/data/exdeorum/loot_tables/blocks/crushed_blackstone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "exdeorum:crushed_blackstone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "exdeorum:blocks/crushed_blackstone" +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/loot_tables/blocks/unfired_crucible.json b/src/generated/resources/data/exdeorum/loot_tables/blocks/crushed_deepslate.json similarity index 74% rename from src/generated/resources/data/exdeorum/loot_tables/blocks/unfired_crucible.json rename to src/generated/resources/data/exdeorum/loot_tables/blocks/crushed_deepslate.json index f14365f5..7b65c210 100644 --- a/src/generated/resources/data/exdeorum/loot_tables/blocks/unfired_crucible.json +++ b/src/generated/resources/data/exdeorum/loot_tables/blocks/crushed_deepslate.json @@ -11,11 +11,11 @@ "entries": [ { "type": "minecraft:item", - "name": "exdeorum:unfired_crucible" + "name": "exdeorum:crushed_deepslate" } ], "rolls": 1.0 } ], - "random_sequence": "exdeorum:blocks/unfired_crucible" + "random_sequence": "exdeorum:blocks/crushed_deepslate" } \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/loot_tables/blocks/unfired_porcelain_crucible.json b/src/generated/resources/data/exdeorum/loot_tables/blocks/unfired_porcelain_crucible.json new file mode 100644 index 00000000..4e3b7428 --- /dev/null +++ b/src/generated/resources/data/exdeorum/loot_tables/blocks/unfired_porcelain_crucible.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "exdeorum:unfired_porcelain_crucible" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "exdeorum:blocks/unfired_porcelain_crucible" +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/acacia_sieve.json b/src/generated/resources/data/exdeorum/recipes/acacia_sieve.json new file mode 100644 index 00000000..b3eee34d --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/acacia_sieve.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "I": { + "tag": "forge:rods/wooden" + }, + "O": { + "item": "minecraft:acacia_planks" + }, + "_": { + "item": "minecraft:acacia_slab" + } + }, + "pattern": [ + "O O", + "O_O", + "I I" + ], + "result": { + "item": "exdeorum:acacia_sieve" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/bamboo_sieve.json b/src/generated/resources/data/exdeorum/recipes/bamboo_sieve.json new file mode 100644 index 00000000..37fd26ad --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/bamboo_sieve.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "I": { + "tag": "forge:rods/wooden" + }, + "O": { + "item": "minecraft:bamboo_planks" + }, + "_": { + "item": "minecraft:bamboo_slab" + } + }, + "pattern": [ + "O O", + "O_O", + "I I" + ], + "result": { + "item": "exdeorum:bamboo_sieve" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/barrel_compost/beetroot.json b/src/generated/resources/data/exdeorum/recipes/barrel_compost/beetroot.json new file mode 100644 index 00000000..62a2936f --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/barrel_compost/beetroot.json @@ -0,0 +1,7 @@ +{ + "type": "exdeorum:barrel_compost", + "ingredient": { + "item": "minecraft:beetroot" + }, + "volume": 80 +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/barrel_compost/beetroot_soup.json b/src/generated/resources/data/exdeorum/recipes/barrel_compost/beetroot_soup.json new file mode 100644 index 00000000..02c3ed13 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/barrel_compost/beetroot_soup.json @@ -0,0 +1,7 @@ +{ + "type": "exdeorum:barrel_compost", + "ingredient": { + "item": "minecraft:beetroot_soup" + }, + "volume": 150 +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/barrel_compost/fermented_spider_eye.json b/src/generated/resources/data/exdeorum/recipes/barrel_compost/fermented_spider_eye.json new file mode 100644 index 00000000..ae4e5539 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/barrel_compost/fermented_spider_eye.json @@ -0,0 +1,7 @@ +{ + "type": "exdeorum:barrel_compost", + "ingredient": { + "item": "minecraft:fermented_spider_eye" + }, + "volume": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/barrel_compost/golden_apples.json b/src/generated/resources/data/exdeorum/recipes/barrel_compost/golden_apples.json new file mode 100644 index 00000000..93cf1a74 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/barrel_compost/golden_apples.json @@ -0,0 +1,12 @@ +{ + "type": "exdeorum:barrel_compost", + "ingredient": [ + { + "item": "minecraft:golden_apple" + }, + { + "item": "minecraft:enchanted_golden_apple" + } + ], + "volume": 1000 +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/barrel_compost/moss_block.json b/src/generated/resources/data/exdeorum/recipes/barrel_compost/moss_block.json new file mode 100644 index 00000000..3dffa822 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/barrel_compost/moss_block.json @@ -0,0 +1,7 @@ +{ + "type": "exdeorum:barrel_compost", + "ingredient": { + "item": "minecraft:moss_block" + }, + "volume": 150 +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/barrel_compost/moss_carpet.json b/src/generated/resources/data/exdeorum/recipes/barrel_compost/moss_carpet.json new file mode 100644 index 00000000..74e01110 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/barrel_compost/moss_carpet.json @@ -0,0 +1,7 @@ +{ + "type": "exdeorum:barrel_compost", + "ingredient": { + "item": "minecraft:moss_carpet" + }, + "volume": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/barrel_compost/mushroom_stew.json b/src/generated/resources/data/exdeorum/recipes/barrel_compost/mushroom_stew.json new file mode 100644 index 00000000..ae820016 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/barrel_compost/mushroom_stew.json @@ -0,0 +1,7 @@ +{ + "type": "exdeorum:barrel_compost", + "ingredient": { + "item": "minecraft:mushroom_stew" + }, + "volume": 200 +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/barrel_compost/rabbit_foot.json b/src/generated/resources/data/exdeorum/recipes/barrel_compost/rabbit_foot.json new file mode 100644 index 00000000..976e6272 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/barrel_compost/rabbit_foot.json @@ -0,0 +1,7 @@ +{ + "type": "exdeorum:barrel_compost", + "ingredient": { + "item": "minecraft:rabbit_foot" + }, + "volume": 40 +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/barrel_compost/rabbit_stew.json b/src/generated/resources/data/exdeorum/recipes/barrel_compost/rabbit_stew.json new file mode 100644 index 00000000..f282dd61 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/barrel_compost/rabbit_stew.json @@ -0,0 +1,7 @@ +{ + "type": "exdeorum:barrel_compost", + "ingredient": { + "item": "minecraft:rabbit_stew" + }, + "volume": 200 +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/barrel_compost/suspicious_stew.json b/src/generated/resources/data/exdeorum/recipes/barrel_compost/suspicious_stew.json new file mode 100644 index 00000000..2214fae5 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/barrel_compost/suspicious_stew.json @@ -0,0 +1,7 @@ +{ + "type": "exdeorum:barrel_compost", + "ingredient": { + "item": "minecraft:suspicious_stew" + }, + "volume": 200 +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/barrel_mixing/end_stone.json b/src/generated/resources/data/exdeorum/recipes/barrel_mixing/end_stone.json index 5a284075..4404856f 100644 --- a/src/generated/resources/data/exdeorum/recipes/barrel_mixing/end_stone.json +++ b/src/generated/resources/data/exdeorum/recipes/barrel_mixing/end_stone.json @@ -1,7 +1,7 @@ { "type": "exdeorum:barrel_mixing", + "fluid": "minecraft:lava", "fluid_amount": 1000, - "fluid_type": "minecraft:lava", "ingredient": { "item": "minecraft:glowstone_dust" }, diff --git a/src/generated/resources/data/exdeorum/recipes/barrel_mixing/ice.json b/src/generated/resources/data/exdeorum/recipes/barrel_mixing/ice.json index 11f1a796..cb26fbed 100644 --- a/src/generated/resources/data/exdeorum/recipes/barrel_mixing/ice.json +++ b/src/generated/resources/data/exdeorum/recipes/barrel_mixing/ice.json @@ -1,7 +1,7 @@ { "type": "exdeorum:barrel_mixing", + "fluid": "minecraft:water", "fluid_amount": 1000, - "fluid_type": "minecraft:water", "ingredient": { "item": "minecraft:snowball" }, diff --git a/src/generated/resources/data/exdeorum/recipes/barrel_mixing/magma_cream.json b/src/generated/resources/data/exdeorum/recipes/barrel_mixing/magma_cream.json new file mode 100644 index 00000000..276a4b78 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/barrel_mixing/magma_cream.json @@ -0,0 +1,9 @@ +{ + "type": "exdeorum:barrel_mixing", + "fluid": "minecraft:lava", + "fluid_amount": 1000, + "ingredient": { + "item": "minecraft:slime_ball" + }, + "result": "minecraft:magma_cream" +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/barrel_mixing/netherrack.json b/src/generated/resources/data/exdeorum/recipes/barrel_mixing/netherrack.json index d1d5a6cb..f0860f23 100644 --- a/src/generated/resources/data/exdeorum/recipes/barrel_mixing/netherrack.json +++ b/src/generated/resources/data/exdeorum/recipes/barrel_mixing/netherrack.json @@ -1,9 +1,9 @@ { "type": "exdeorum:barrel_mixing", + "fluid": "minecraft:lava", "fluid_amount": 1000, - "fluid_type": "minecraft:lava", "ingredient": { - "item": "minecraft:redstone" + "item": "exdeorum:witch_water_bucket" }, "result": "minecraft:netherrack" } \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/barrel_mixing/netherrack_from_porcelain_bucket.json b/src/generated/resources/data/exdeorum/recipes/barrel_mixing/netherrack_from_porcelain_bucket.json new file mode 100644 index 00000000..01e2a8eb --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/barrel_mixing/netherrack_from_porcelain_bucket.json @@ -0,0 +1,9 @@ +{ + "type": "exdeorum:barrel_mixing", + "fluid": "minecraft:lava", + "fluid_amount": 1000, + "ingredient": { + "item": "exdeorum:porcelain_witch_water_bucket" + }, + "result": "minecraft:netherrack" +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/barrel_mixing/obsidian.json b/src/generated/resources/data/exdeorum/recipes/barrel_mixing/obsidian.json index 15558588..13029537 100644 --- a/src/generated/resources/data/exdeorum/recipes/barrel_mixing/obsidian.json +++ b/src/generated/resources/data/exdeorum/recipes/barrel_mixing/obsidian.json @@ -1,7 +1,7 @@ { "type": "exdeorum:barrel_mixing", + "fluid": "minecraft:lava", "fluid_amount": 1000, - "fluid_type": "minecraft:lava", "ingredient": { "item": "minecraft:water_bucket" }, diff --git a/src/generated/resources/data/exdeorum/recipes/barrel_mixing/obsidian_from_porcelain_bucket.json b/src/generated/resources/data/exdeorum/recipes/barrel_mixing/obsidian_from_porcelain_bucket.json new file mode 100644 index 00000000..006def43 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/barrel_mixing/obsidian_from_porcelain_bucket.json @@ -0,0 +1,9 @@ +{ + "type": "exdeorum:barrel_mixing", + "fluid": "minecraft:lava", + "fluid_amount": 1000, + "ingredient": { + "item": "exdeorum:porcelain_water_bucket" + }, + "result": "minecraft:obsidian" +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/barrel_mixing/slime_block.json b/src/generated/resources/data/exdeorum/recipes/barrel_mixing/slime_block.json index d7cc24ac..a8d83e03 100644 --- a/src/generated/resources/data/exdeorum/recipes/barrel_mixing/slime_block.json +++ b/src/generated/resources/data/exdeorum/recipes/barrel_mixing/slime_block.json @@ -1,7 +1,7 @@ { "type": "exdeorum:barrel_mixing", + "fluid": "minecraft:water", "fluid_amount": 1000, - "fluid_type": "minecraft:water", "ingredient": { "item": "minecraft:milk_bucket" }, diff --git a/src/generated/resources/data/exdeorum/recipes/barrel_mixing/slime_block_from_porcelain_bucket.json b/src/generated/resources/data/exdeorum/recipes/barrel_mixing/slime_block_from_porcelain_bucket.json new file mode 100644 index 00000000..76ae92fe --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/barrel_mixing/slime_block_from_porcelain_bucket.json @@ -0,0 +1,9 @@ +{ + "type": "exdeorum:barrel_mixing", + "fluid": "minecraft:water", + "fluid_amount": 1000, + "ingredient": { + "item": "exdeorum:porcelain_milk_bucket" + }, + "result": "minecraft:slime_block" +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/barrel_mixing/soul_sand.json b/src/generated/resources/data/exdeorum/recipes/barrel_mixing/soul_sand.json index 5f43ab70..2eb974b3 100644 --- a/src/generated/resources/data/exdeorum/recipes/barrel_mixing/soul_sand.json +++ b/src/generated/resources/data/exdeorum/recipes/barrel_mixing/soul_sand.json @@ -1,7 +1,7 @@ { "type": "exdeorum:barrel_mixing", + "fluid": "exdeorum:witch_water", "fluid_amount": 1000, - "fluid_type": "exdeorum:witch_water", "ingredient": { "item": "minecraft:sand" }, diff --git a/src/generated/resources/data/exdeorum/recipes/barrel_mixing/soul_soil.json b/src/generated/resources/data/exdeorum/recipes/barrel_mixing/soul_soil.json new file mode 100644 index 00000000..8d403a87 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/barrel_mixing/soul_soil.json @@ -0,0 +1,9 @@ +{ + "type": "exdeorum:barrel_mixing", + "fluid": "minecraft:lava", + "fluid_amount": 1000, + "ingredient": { + "item": "minecraft:soul_sand" + }, + "result": "minecraft:soul_soil" +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/barrel_mixing/stone.json b/src/generated/resources/data/exdeorum/recipes/barrel_mixing/stone.json index 192354ea..19be08b8 100644 --- a/src/generated/resources/data/exdeorum/recipes/barrel_mixing/stone.json +++ b/src/generated/resources/data/exdeorum/recipes/barrel_mixing/stone.json @@ -1,7 +1,7 @@ { "type": "exdeorum:barrel_mixing", + "fluid": "minecraft:water", "fluid_amount": 1000, - "fluid_type": "minecraft:water", "ingredient": { "item": "minecraft:lava_bucket" }, diff --git a/src/generated/resources/data/exdeorum/recipes/barrel_mixing/stone_from_porcelain_bucket.json b/src/generated/resources/data/exdeorum/recipes/barrel_mixing/stone_from_porcelain_bucket.json new file mode 100644 index 00000000..7df256fb --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/barrel_mixing/stone_from_porcelain_bucket.json @@ -0,0 +1,9 @@ +{ + "type": "exdeorum:barrel_mixing", + "fluid": "minecraft:water", + "fluid_amount": 1000, + "ingredient": { + "item": "exdeorum:porcelain_lava_bucket" + }, + "result": "minecraft:stone" +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/basalt.json b/src/generated/resources/data/exdeorum/recipes/basalt.json new file mode 100644 index 00000000..65de95fe --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/basalt.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "exdeorum:basalt_pebble" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "item": "minecraft:basalt" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/birch_sieve.json b/src/generated/resources/data/exdeorum/recipes/birch_sieve.json new file mode 100644 index 00000000..d017a08e --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/birch_sieve.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "I": { + "tag": "forge:rods/wooden" + }, + "O": { + "item": "minecraft:birch_planks" + }, + "_": { + "item": "minecraft:birch_slab" + } + }, + "pattern": [ + "O O", + "O_O", + "I I" + ], + "result": { + "item": "exdeorum:birch_sieve" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/blackstone.json b/src/generated/resources/data/exdeorum/recipes/blackstone.json new file mode 100644 index 00000000..68355e1a --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/blackstone.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "exdeorum:blackstone_pebble" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "item": "minecraft:blackstone" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/calcite.json b/src/generated/resources/data/exdeorum/recipes/calcite.json new file mode 100644 index 00000000..254b9207 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/calcite.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "exdeorum:calcite_pebble" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "item": "minecraft:calcite" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/cherry_sieve.json b/src/generated/resources/data/exdeorum/recipes/cherry_sieve.json new file mode 100644 index 00000000..cb849afe --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/cherry_sieve.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "I": { + "tag": "forge:rods/wooden" + }, + "O": { + "item": "minecraft:cherry_planks" + }, + "_": { + "item": "minecraft:cherry_slab" + } + }, + "pattern": [ + "O O", + "O_O", + "I I" + ], + "result": { + "item": "exdeorum:cherry_sieve" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/cobbled_deepslate.json b/src/generated/resources/data/exdeorum/recipes/cobbled_deepslate.json new file mode 100644 index 00000000..92ca5424 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/cobbled_deepslate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "exdeorum:deepslate_pebble" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "item": "minecraft:cobbled_deepslate" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/porcelain_crucible_from_campfire_cooking.json b/src/generated/resources/data/exdeorum/recipes/cooked_silk_worm_from_campfire_cooking.json similarity index 100% rename from src/generated/resources/data/exdeorum/recipes/porcelain_crucible_from_campfire_cooking.json rename to src/generated/resources/data/exdeorum/recipes/cooked_silk_worm_from_campfire_cooking.json diff --git a/src/generated/resources/data/exdeorum/recipes/crimson_sieve.json b/src/generated/resources/data/exdeorum/recipes/crimson_sieve.json new file mode 100644 index 00000000..47a753b5 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/crimson_sieve.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "I": { + "tag": "forge:rods/wooden" + }, + "O": { + "item": "minecraft:crimson_planks" + }, + "_": { + "item": "minecraft:crimson_slab" + } + }, + "pattern": [ + "O O", + "O_O", + "I I" + ], + "result": { + "item": "exdeorum:crimson_sieve" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/dark_oak_sieve.json b/src/generated/resources/data/exdeorum/recipes/dark_oak_sieve.json new file mode 100644 index 00000000..330868bb --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/dark_oak_sieve.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "I": { + "tag": "forge:rods/wooden" + }, + "O": { + "item": "minecraft:dark_oak_planks" + }, + "_": { + "item": "minecraft:dark_oak_slab" + } + }, + "pattern": [ + "O O", + "O_O", + "I I" + ], + "result": { + "item": "exdeorum:dark_oak_sieve" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/diamond_mesh.json b/src/generated/resources/data/exdeorum/recipes/diamond_mesh.json new file mode 100644 index 00000000..54797b77 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/diamond_mesh.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "tag": "forge:gems/diamond" + }, + "S": { + "tag": "forge:string" + } + }, + "pattern": [ + "S#S", + "#S#", + "S#S" + ], + "result": { + "item": "exdeorum:diamond_mesh" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/diamond_watering_can.json b/src/generated/resources/data/exdeorum/recipes/diamond_watering_can.json new file mode 100644 index 00000000..889413f4 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/diamond_watering_can.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "tag": "forge:gems/diamond" + }, + "B": { + "item": "minecraft:bowl" + } + }, + "pattern": [ + "# ", + "#B#", + " # " + ], + "result": { + "item": "exdeorum:diamond_watering_can" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/flint_mesh.json b/src/generated/resources/data/exdeorum/recipes/flint_mesh.json new file mode 100644 index 00000000..2d0abf13 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/flint_mesh.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:flint" + }, + "S": { + "tag": "forge:string" + } + }, + "pattern": [ + "S#S", + "#S#", + "S#S" + ], + "result": { + "item": "exdeorum:flint_mesh" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/golden_mesh.json b/src/generated/resources/data/exdeorum/recipes/golden_mesh.json new file mode 100644 index 00000000..80544a97 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/golden_mesh.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "tag": "forge:ingots/gold" + }, + "S": { + "tag": "forge:string" + } + }, + "pattern": [ + "S#S", + "#S#", + "S#S" + ], + "result": { + "item": "exdeorum:golden_mesh" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/golden_watering_can.json b/src/generated/resources/data/exdeorum/recipes/golden_watering_can.json new file mode 100644 index 00000000..fd3395f9 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/golden_watering_can.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "tag": "forge:ingots/gold" + }, + "B": { + "item": "minecraft:bowl" + } + }, + "pattern": [ + "# ", + "#B#", + " # " + ], + "result": { + "item": "exdeorum:golden_watering_can" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/hammer/basalt.json b/src/generated/resources/data/exdeorum/recipes/hammer/basalt.json new file mode 100644 index 00000000..91820b85 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/hammer/basalt.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:hammer", + "ingredient": [ + { + "item": "minecraft:polished_basalt" + }, + { + "item": "minecraft:smooth_basalt" + } + ], + "result": "minecraft:basalt", + "result_amount": 1.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/hammer/brain_coral.json b/src/generated/resources/data/exdeorum/recipes/hammer/brain_coral.json new file mode 100644 index 00000000..1f57aaa6 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/hammer/brain_coral.json @@ -0,0 +1,8 @@ +{ + "type": "exdeorum:hammer", + "ingredient": { + "item": "minecraft:brain_coral_block" + }, + "result": "minecraft:brain_coral", + "result_amount": 1.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/hammer/brain_coral_fan.json b/src/generated/resources/data/exdeorum/recipes/hammer/brain_coral_fan.json new file mode 100644 index 00000000..d263a084 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/hammer/brain_coral_fan.json @@ -0,0 +1,8 @@ +{ + "type": "exdeorum:hammer", + "ingredient": { + "item": "minecraft:brain_coral" + }, + "result": "minecraft:brain_coral_fan", + "result_amount": 1.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/hammer/bubble_coral.json b/src/generated/resources/data/exdeorum/recipes/hammer/bubble_coral.json new file mode 100644 index 00000000..81985f73 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/hammer/bubble_coral.json @@ -0,0 +1,8 @@ +{ + "type": "exdeorum:hammer", + "ingredient": { + "item": "minecraft:bubble_coral_block" + }, + "result": "minecraft:bubble_coral", + "result_amount": 1.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/hammer/bubble_coral_fan.json b/src/generated/resources/data/exdeorum/recipes/hammer/bubble_coral_fan.json new file mode 100644 index 00000000..02a42604 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/hammer/bubble_coral_fan.json @@ -0,0 +1,8 @@ +{ + "type": "exdeorum:hammer", + "ingredient": { + "item": "minecraft:bubble_coral" + }, + "result": "minecraft:bubble_coral_fan", + "result_amount": 1.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/hammer/crushed_blackstone.json b/src/generated/resources/data/exdeorum/recipes/hammer/crushed_blackstone.json new file mode 100644 index 00000000..099cb039 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/hammer/crushed_blackstone.json @@ -0,0 +1,8 @@ +{ + "type": "exdeorum:hammer", + "ingredient": { + "item": "minecraft:blackstone" + }, + "result": "exdeorum:crushed_blackstone", + "result_amount": 1.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/hammer/crushed_deepslate.json b/src/generated/resources/data/exdeorum/recipes/hammer/crushed_deepslate.json new file mode 100644 index 00000000..9aa0e018 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/hammer/crushed_deepslate.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:hammer", + "ingredient": [ + { + "item": "minecraft:deepslate" + }, + { + "item": "minecraft:cobbled_deepslate" + } + ], + "result": "exdeorum:crushed_deepslate", + "result_amount": 1.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/hammer/crushed_end_stone.json b/src/generated/resources/data/exdeorum/recipes/hammer/crushed_end_stone.json new file mode 100644 index 00000000..ec43dd42 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/hammer/crushed_end_stone.json @@ -0,0 +1,8 @@ +{ + "type": "exdeorum:hammer", + "ingredient": { + "item": "minecraft:end_stone" + }, + "result": "exdeorum:crushed_end_stone", + "result_amount": 1.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/hammer/dust.json b/src/generated/resources/data/exdeorum/recipes/hammer/dust.json index 91a9005a..c82cd075 100644 --- a/src/generated/resources/data/exdeorum/recipes/hammer/dust.json +++ b/src/generated/resources/data/exdeorum/recipes/hammer/dust.json @@ -1,8 +1,13 @@ { "type": "exdeorum:hammer", - "ingredient": { - "item": "minecraft:sand" - }, + "ingredient": [ + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:red_sand" + } + ], "result": "exdeorum:dust", "result_amount": 1.0 } \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/hammer/fire_coral.json b/src/generated/resources/data/exdeorum/recipes/hammer/fire_coral.json new file mode 100644 index 00000000..b2527e91 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/hammer/fire_coral.json @@ -0,0 +1,8 @@ +{ + "type": "exdeorum:hammer", + "ingredient": { + "item": "minecraft:fire_coral_block" + }, + "result": "minecraft:fire_coral", + "result_amount": 1.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/hammer/fire_coral_fan.json b/src/generated/resources/data/exdeorum/recipes/hammer/fire_coral_fan.json new file mode 100644 index 00000000..f57c50f3 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/hammer/fire_coral_fan.json @@ -0,0 +1,8 @@ +{ + "type": "exdeorum:hammer", + "ingredient": { + "item": "minecraft:fire_coral" + }, + "result": "minecraft:fire_coral_fan", + "result_amount": 1.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/hammer/gravel.json b/src/generated/resources/data/exdeorum/recipes/hammer/gravel.json index de56b7cc..478cbc01 100644 --- a/src/generated/resources/data/exdeorum/recipes/hammer/gravel.json +++ b/src/generated/resources/data/exdeorum/recipes/hammer/gravel.json @@ -1,8 +1,19 @@ { "type": "exdeorum:hammer", - "ingredient": { - "item": "minecraft:cobblestone" - }, + "ingredient": [ + { + "item": "minecraft:cobblestone" + }, + { + "item": "minecraft:diorite" + }, + { + "item": "minecraft:granite" + }, + { + "item": "minecraft:andesite" + } + ], "result": "minecraft:gravel", "result_amount": 1.0 } \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/hammer/horn_coral.json b/src/generated/resources/data/exdeorum/recipes/hammer/horn_coral.json new file mode 100644 index 00000000..ee20712c --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/hammer/horn_coral.json @@ -0,0 +1,8 @@ +{ + "type": "exdeorum:hammer", + "ingredient": { + "item": "minecraft:horn_coral_block" + }, + "result": "minecraft:horn_coral", + "result_amount": 1.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/hammer/horn_coral_fan.json b/src/generated/resources/data/exdeorum/recipes/hammer/horn_coral_fan.json new file mode 100644 index 00000000..6e3db4dd --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/hammer/horn_coral_fan.json @@ -0,0 +1,8 @@ +{ + "type": "exdeorum:hammer", + "ingredient": { + "item": "minecraft:horn_coral" + }, + "result": "minecraft:horn_coral_fan", + "result_amount": 1.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/hammer/prismarine.json b/src/generated/resources/data/exdeorum/recipes/hammer/prismarine.json new file mode 100644 index 00000000..fab679f2 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/hammer/prismarine.json @@ -0,0 +1,20 @@ +{ + "type": "exdeorum:hammer", + "ingredient": [ + { + "item": "minecraft:prismarine" + }, + { + "item": "minecraft:prismarine_bricks" + }, + { + "item": "minecraft:dark_prismarine" + } + ], + "result": "minecraft:prismarine_shard", + "result_amount": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/hammer/tube_coral.json b/src/generated/resources/data/exdeorum/recipes/hammer/tube_coral.json new file mode 100644 index 00000000..9f6e00aa --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/hammer/tube_coral.json @@ -0,0 +1,8 @@ +{ + "type": "exdeorum:hammer", + "ingredient": { + "item": "minecraft:tube_coral_block" + }, + "result": "minecraft:tube_coral", + "result_amount": 1.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/hammer/tube_coral_fan.json b/src/generated/resources/data/exdeorum/recipes/hammer/tube_coral_fan.json new file mode 100644 index 00000000..5a4b6dfc --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/hammer/tube_coral_fan.json @@ -0,0 +1,8 @@ +{ + "type": "exdeorum:hammer", + "ingredient": { + "item": "minecraft:tube_coral" + }, + "result": "minecraft:tube_coral_fan", + "result_amount": 1.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/iron_mesh.json b/src/generated/resources/data/exdeorum/recipes/iron_mesh.json new file mode 100644 index 00000000..49788a7f --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/iron_mesh.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "tag": "forge:ingots/iron" + }, + "S": { + "tag": "forge:string" + } + }, + "pattern": [ + "S#S", + "#S#", + "S#S" + ], + "result": { + "item": "exdeorum:iron_mesh" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/iron_watering_can.json b/src/generated/resources/data/exdeorum/recipes/iron_watering_can.json new file mode 100644 index 00000000..749e8245 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/iron_watering_can.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "tag": "forge:ingots/iron" + }, + "B": { + "item": "minecraft:bowl" + } + }, + "pattern": [ + "# ", + "#B#", + " # " + ], + "result": { + "item": "exdeorum:iron_watering_can" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/jungle_sieve.json b/src/generated/resources/data/exdeorum/recipes/jungle_sieve.json new file mode 100644 index 00000000..153ddf3a --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/jungle_sieve.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "I": { + "tag": "forge:rods/wooden" + }, + "O": { + "item": "minecraft:jungle_planks" + }, + "_": { + "item": "minecraft:jungle_slab" + } + }, + "pattern": [ + "O O", + "O_O", + "I I" + ], + "result": { + "item": "exdeorum:jungle_sieve" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/lava_crucible/cobblestone.json b/src/generated/resources/data/exdeorum/recipes/lava_crucible/cobblestone.json index bdfef73b..05c1aea0 100644 --- a/src/generated/resources/data/exdeorum/recipes/lava_crucible/cobblestone.json +++ b/src/generated/resources/data/exdeorum/recipes/lava_crucible/cobblestone.json @@ -5,6 +5,6 @@ "FluidName": "minecraft:lava" }, "ingredient": { - "item": "minecraft:cobblestone" + "tag": "forge:cobblestone" } } \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/lava_crucible/gravel.json b/src/generated/resources/data/exdeorum/recipes/lava_crucible/gravel.json index 79227e1e..75c4fc2a 100644 --- a/src/generated/resources/data/exdeorum/recipes/lava_crucible/gravel.json +++ b/src/generated/resources/data/exdeorum/recipes/lava_crucible/gravel.json @@ -5,6 +5,6 @@ "FluidName": "minecraft:lava" }, "ingredient": { - "item": "minecraft:gravel" + "tag": "forge:gravel" } } \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/lava_crucible/netherrack.json b/src/generated/resources/data/exdeorum/recipes/lava_crucible/netherrack.json index b20a165e..90f48391 100644 --- a/src/generated/resources/data/exdeorum/recipes/lava_crucible/netherrack.json +++ b/src/generated/resources/data/exdeorum/recipes/lava_crucible/netherrack.json @@ -5,6 +5,6 @@ "FluidName": "minecraft:lava" }, "ingredient": { - "item": "minecraft:netherrack" + "tag": "forge:netherrack" } } \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/lava_crucible/stone.json b/src/generated/resources/data/exdeorum/recipes/lava_crucible/stone.json index ffd58fdd..51794b75 100644 --- a/src/generated/resources/data/exdeorum/recipes/lava_crucible/stone.json +++ b/src/generated/resources/data/exdeorum/recipes/lava_crucible/stone.json @@ -5,6 +5,6 @@ "FluidName": "minecraft:lava" }, "ingredient": { - "item": "minecraft:stone" + "tag": "forge:stone" } } \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/mangrove_sieve.json b/src/generated/resources/data/exdeorum/recipes/mangrove_sieve.json new file mode 100644 index 00000000..a5963112 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/mangrove_sieve.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "I": { + "tag": "forge:rods/wooden" + }, + "O": { + "item": "minecraft:mangrove_planks" + }, + "_": { + "item": "minecraft:mangrove_slab" + } + }, + "pattern": [ + "O O", + "O_O", + "I I" + ], + "result": { + "item": "exdeorum:mangrove_sieve" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/moss_block.json b/src/generated/resources/data/exdeorum/recipes/moss_block.json new file mode 100644 index 00000000..8adc4cb5 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/moss_block.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "exdeorum:grass_seeds" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "item": "minecraft:moss_block" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/netherite_mesh.json b/src/generated/resources/data/exdeorum/recipes/netherite_mesh.json new file mode 100644 index 00000000..bb902f00 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/netherite_mesh.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:smithing_transform", + "addition": { + "tag": "forge:ingots/netherite" + }, + "base": { + "item": "exdeorum:diamond_mesh" + }, + "result": { + "item": "exdeorum:netherite_mesh" + }, + "template": { + "item": "minecraft:netherite_upgrade_smithing_template" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/netherite_watering_can.json b/src/generated/resources/data/exdeorum/recipes/netherite_watering_can.json new file mode 100644 index 00000000..a30524bd --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/netherite_watering_can.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:smithing_transform", + "addition": { + "tag": "forge:ingots/netherite" + }, + "base": { + "item": "exdeorum:diamond_watering_can" + }, + "result": { + "item": "exdeorum:netherite_watering_can" + }, + "template": { + "item": "minecraft:netherite_upgrade_smithing_template" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/oak_sieve.json b/src/generated/resources/data/exdeorum/recipes/oak_sieve.json new file mode 100644 index 00000000..14b3362e --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/oak_sieve.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "I": { + "tag": "forge:rods/wooden" + }, + "O": { + "item": "minecraft:oak_planks" + }, + "_": { + "item": "minecraft:oak_slab" + } + }, + "pattern": [ + "O O", + "O_O", + "I I" + ], + "result": { + "item": "exdeorum:oak_sieve" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/porcelain_bucket.json b/src/generated/resources/data/exdeorum/recipes/porcelain_bucket.json new file mode 100644 index 00000000..760ca424 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/porcelain_bucket.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "exdeorum:unfired_porcelain_bucket" + }, + "result": "exdeorum:porcelain_bucket" +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/porcelain_clay_ball.json b/src/generated/resources/data/exdeorum/recipes/porcelain_clay_ball.json new file mode 100644 index 00000000..98cc497d --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/porcelain_clay_ball.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:clay_ball" + }, + { + "item": "minecraft:bone_meal" + } + ], + "result": { + "item": "exdeorum:porcelain_clay_ball" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/porcelain_crucible.json b/src/generated/resources/data/exdeorum/recipes/porcelain_crucible.json index 2765b786..18a7f2db 100644 --- a/src/generated/resources/data/exdeorum/recipes/porcelain_crucible.json +++ b/src/generated/resources/data/exdeorum/recipes/porcelain_crucible.json @@ -4,7 +4,7 @@ "cookingtime": 200, "experience": 0.1, "ingredient": { - "item": "exdeorum:unfired_crucible" + "item": "exdeorum:unfired_porcelain_crucible" }, "result": "exdeorum:porcelain_crucible" } \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/diamond/ancient_debris.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/diamond/ancient_debris.json new file mode 100644 index 00000000..fe055da7 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/diamond/ancient_debris.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:ancient_debris", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.06 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/diamond/blackstone_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/diamond/blackstone_pebble.json new file mode 100644 index 00000000..d931b145 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/diamond/blackstone_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "exdeorum:blackstone_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 5.0, + "p": 0.7 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/diamond/gold_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/diamond/gold_nugget.json new file mode 100644 index 00000000..2e99e1b2 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/diamond/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:gold_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.275 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/diamond/gunpowder.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/diamond/gunpowder.json new file mode 100644 index 00000000..4e7b8a55 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/diamond/gunpowder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:gunpowder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/diamond/magma_cream.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/diamond/magma_cream.json new file mode 100644 index 00000000..bbbefe0f --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/diamond/magma_cream.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:magma_cream", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/flint/ancient_debris.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/flint/ancient_debris.json new file mode 100644 index 00000000..87f09d52 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/flint/ancient_debris.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:ancient_debris", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/flint/basalt_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/flint/basalt_pebble.json new file mode 100644 index 00000000..38d6195f --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/flint/basalt_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:flint_mesh", + "result": "exdeorum:basalt_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 3.0, + "p": 0.55 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/flint/black_dye.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/flint/black_dye.json new file mode 100644 index 00000000..430a5092 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/flint/black_dye.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:black_dye", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/flint/blackstone_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/flint/blackstone_pebble.json new file mode 100644 index 00000000..30e9329e --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/flint/blackstone_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:flint_mesh", + "result": "exdeorum:blackstone_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.65 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/flint/gold_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/flint/gold_nugget.json new file mode 100644 index 00000000..f253913a --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/flint/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:gold_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.225 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/flint/gunpowder.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/flint/gunpowder.json new file mode 100644 index 00000000..0f7aac99 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/flint/gunpowder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:gunpowder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.09 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/flint/magma_cream.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/flint/magma_cream.json new file mode 100644 index 00000000..4a69d1e3 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/flint/magma_cream.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:magma_cream", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.09 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/golden/ancient_debris.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/golden/ancient_debris.json new file mode 100644 index 00000000..4c6a076a --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/golden/ancient_debris.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:ancient_debris", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.05 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/golden/basalt_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/golden/basalt_pebble.json new file mode 100644 index 00000000..4fa67550 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/golden/basalt_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:golden_mesh", + "result": "exdeorum:basalt_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.5 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/golden/black_dye.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/golden/black_dye.json new file mode 100644 index 00000000..6a80e24c --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/golden/black_dye.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:black_dye", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.06 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/golden/blackstone_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/golden/blackstone_pebble.json new file mode 100644 index 00000000..b2c76755 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/golden/blackstone_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:golden_mesh", + "result": "exdeorum:blackstone_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 5.0, + "p": 0.7 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/golden/gold_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/golden/gold_nugget.json new file mode 100644 index 00000000..3a3e196c --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/golden/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:gold_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 8.0, + "p": 0.325 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/golden/gunpowder.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/golden/gunpowder.json new file mode 100644 index 00000000..0f2b7d76 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/golden/gunpowder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:gunpowder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/golden/magma_cream.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/golden/magma_cream.json new file mode 100644 index 00000000..a87d6153 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/golden/magma_cream.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:magma_cream", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/iron/ancient_debris.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/iron/ancient_debris.json new file mode 100644 index 00000000..e9c55243 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/iron/ancient_debris.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:ancient_debris", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.04 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/iron/basalt_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/iron/basalt_pebble.json new file mode 100644 index 00000000..4e017b69 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/iron/basalt_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:iron_mesh", + "result": "exdeorum:basalt_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.55 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/iron/black_dye.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/iron/black_dye.json new file mode 100644 index 00000000..bd87a9ca --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/iron/black_dye.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:black_dye", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/iron/blackstone_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/iron/blackstone_pebble.json new file mode 100644 index 00000000..bb9e38f8 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/iron/blackstone_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:iron_mesh", + "result": "exdeorum:blackstone_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 5.0, + "p": 0.65 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/iron/gold_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/iron/gold_nugget.json new file mode 100644 index 00000000..8ce974a1 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/iron/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:gold_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.25 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/iron/gunpowder.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/iron/gunpowder.json new file mode 100644 index 00000000..1092241f --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/iron/gunpowder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:gunpowder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.09 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/iron/magma_cream.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/iron/magma_cream.json new file mode 100644 index 00000000..e1d43312 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/iron/magma_cream.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:magma_cream", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.09 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/netherite/ancient_debris.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/netherite/ancient_debris.json new file mode 100644 index 00000000..a46d6d13 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/netherite/ancient_debris.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:ancient_debris", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/netherite/blackstone_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/netherite/blackstone_pebble.json new file mode 100644 index 00000000..0a04a6cb --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/netherite/blackstone_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "exdeorum:blackstone_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 5.0, + "p": 0.75 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/netherite/gold_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/netherite/gold_nugget.json new file mode 100644 index 00000000..94890ba9 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/netherite/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:gold_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.325 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/netherite/gunpowder.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/netherite/gunpowder.json new file mode 100644 index 00000000..5956f39a --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/netherite/gunpowder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:gunpowder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/netherite/magma_cream.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/netherite/magma_cream.json new file mode 100644 index 00000000..233df84e --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/netherite/magma_cream.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:magma_cream", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.12 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/string/ancient_debris.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/string/ancient_debris.json new file mode 100644 index 00000000..6baf94ac --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/string/ancient_debris.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:ancient_debris", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.02 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/string/basalt_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/string/basalt_pebble.json new file mode 100644 index 00000000..16d67105 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/string/basalt_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:string_mesh", + "result": "exdeorum:basalt_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 3.0, + "p": 0.5 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/string/black_dye.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/string/black_dye.json new file mode 100644 index 00000000..b370a8b4 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/string/black_dye.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:black_dye", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.07 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/string/blackstone_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/string/blackstone_pebble.json new file mode 100644 index 00000000..ec52e38b --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/string/blackstone_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:string_mesh", + "result": "exdeorum:blackstone_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.6 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/string/gold_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/string/gold_nugget.json new file mode 100644 index 00000000..b144f880 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/string/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:gold_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.2 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/string/gunpowder.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/string/gunpowder.json new file mode 100644 index 00000000..ee31e5d2 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/string/gunpowder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:gunpowder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.07 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/string/magma_cream.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/string/magma_cream.json new file mode 100644 index 00000000..332103ea --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_blackstone/string/magma_cream.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_blackstone" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:magma_cream", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/diamond/amethyst_shard.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/diamond/amethyst_shard.json new file mode 100644 index 00000000..0fd1cd34 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/diamond/amethyst_shard.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:amethyst_shard", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.07 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/diamond/copper_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/diamond/copper_ore_chunk.json new file mode 100644 index 00000000..4f5ea645 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/diamond/copper_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "exdeorum:copper_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.09 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/diamond/deepslate_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/diamond/deepslate_pebble.json new file mode 100644 index 00000000..41475cc4 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/diamond/deepslate_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "exdeorum:deepslate_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.65 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/diamond/diamond.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/diamond/diamond.json new file mode 100644 index 00000000..48d0e7c7 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/diamond/diamond.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:diamond", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/diamond/emerald.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/diamond/emerald.json new file mode 100644 index 00000000..8c783b9b --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/diamond/emerald.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:emerald", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/diamond/gold_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/diamond/gold_ore_chunk.json new file mode 100644 index 00000000..0306d47d --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/diamond/gold_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "exdeorum:gold_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/diamond/iron_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/diamond/iron_ore_chunk.json new file mode 100644 index 00000000..b185be65 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/diamond/iron_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "exdeorum:iron_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.16 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/diamond/lapis_lazuli.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/diamond/lapis_lazuli.json new file mode 100644 index 00000000..f73092ad --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/diamond/lapis_lazuli.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:lapis_lazuli", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.12 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/amethyst_shard.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/amethyst_shard.json new file mode 100644 index 00000000..93f930eb --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/amethyst_shard.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:amethyst_shard", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.06 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/basalt_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/basalt_pebble.json new file mode 100644 index 00000000..e8acb4a0 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/basalt_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:flint_mesh", + "result": "exdeorum:basalt_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.4 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/calcite_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/calcite_pebble.json new file mode 100644 index 00000000..56d54e9f --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/calcite_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:flint_mesh", + "result": "exdeorum:calcite_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.4 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/copper_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/copper_ore_chunk.json new file mode 100644 index 00000000..197c7330 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/copper_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:flint_mesh", + "result": "exdeorum:copper_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/deepslate_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/deepslate_pebble.json new file mode 100644 index 00000000..321ff771 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/deepslate_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:flint_mesh", + "result": "exdeorum:deepslate_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.5 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/diamond.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/diamond.json new file mode 100644 index 00000000..544b8837 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/diamond.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:diamond", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.05 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/emerald.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/emerald.json new file mode 100644 index 00000000..6a210050 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/emerald.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:emerald", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.04 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/gold_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/gold_ore_chunk.json new file mode 100644 index 00000000..afade1aa --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/gold_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:flint_mesh", + "result": "exdeorum:gold_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/iron_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/iron_ore_chunk.json new file mode 100644 index 00000000..45d45442 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/iron_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:flint_mesh", + "result": "exdeorum:iron_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/lapis_lazuli.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/lapis_lazuli.json new file mode 100644 index 00000000..9fefb045 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/lapis_lazuli.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:lapis_lazuli", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.05 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/tuff_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/tuff_pebble.json new file mode 100644 index 00000000..f96671f5 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/flint/tuff_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:flint_mesh", + "result": "exdeorum:tuff_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.4 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/amethyst_shard.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/amethyst_shard.json new file mode 100644 index 00000000..8eba8d03 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/amethyst_shard.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:amethyst_shard", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/copper_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/copper_ore_chunk.json new file mode 100644 index 00000000..c2949fc3 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/copper_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:golden_mesh", + "result": "exdeorum:copper_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.09 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/deepslate_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/deepslate_pebble.json new file mode 100644 index 00000000..7e641a93 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/deepslate_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:golden_mesh", + "result": "exdeorum:deepslate_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.65 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/diamond.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/diamond.json new file mode 100644 index 00000000..2bd9c443 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/diamond.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:diamond", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/emerald.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/emerald.json new file mode 100644 index 00000000..7968931f --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/emerald.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:emerald", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.07 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/gold_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/gold_nugget.json new file mode 100644 index 00000000..6edf4e07 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:gold_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 3.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/gold_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/gold_ore_chunk.json new file mode 100644 index 00000000..ff72bad7 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/gold_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:golden_mesh", + "result": "exdeorum:gold_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.15 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/iron_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/iron_ore_chunk.json new file mode 100644 index 00000000..1c659395 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/iron_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:golden_mesh", + "result": "exdeorum:iron_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/lapis_lazuli.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/lapis_lazuli.json new file mode 100644 index 00000000..b20c2ac9 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/lapis_lazuli.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:lapis_lazuli", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.07 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/raw_gold.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/raw_gold.json new file mode 100644 index 00000000..0b1cd4ea --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/golden/raw_gold.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:raw_gold", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.05 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/iron/amethyst_shard.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/iron/amethyst_shard.json new file mode 100644 index 00000000..1d6118ea --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/iron/amethyst_shard.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:amethyst_shard", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.06 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/iron/copper_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/iron/copper_ore_chunk.json new file mode 100644 index 00000000..53aab810 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/iron/copper_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:iron_mesh", + "result": "exdeorum:copper_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/iron/deepslate_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/iron/deepslate_pebble.json new file mode 100644 index 00000000..5c8ad379 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/iron/deepslate_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:iron_mesh", + "result": "exdeorum:deepslate_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.6 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/iron/diamond.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/iron/diamond.json new file mode 100644 index 00000000..b85884f1 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/iron/diamond.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:diamond", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.06 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/iron/emerald.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/iron/emerald.json new file mode 100644 index 00000000..78bca4e4 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/iron/emerald.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:emerald", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.05 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/iron/gold_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/iron/gold_ore_chunk.json new file mode 100644 index 00000000..8f54eee7 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/iron/gold_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:iron_mesh", + "result": "exdeorum:gold_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.09 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/iron/iron_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/iron/iron_ore_chunk.json new file mode 100644 index 00000000..9e4981ec --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/iron/iron_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:iron_mesh", + "result": "exdeorum:iron_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.12 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/iron/lapis_lazuli.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/iron/lapis_lazuli.json new file mode 100644 index 00000000..f1c5537e --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/iron/lapis_lazuli.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:lapis_lazuli", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/netherite/amethyst_shard.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/netherite/amethyst_shard.json new file mode 100644 index 00000000..0c67e52f --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/netherite/amethyst_shard.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:amethyst_shard", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/netherite/copper_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/netherite/copper_ore_chunk.json new file mode 100644 index 00000000..ece05132 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/netherite/copper_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "exdeorum:copper_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/netherite/deepslate_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/netherite/deepslate_pebble.json new file mode 100644 index 00000000..be51c495 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/netherite/deepslate_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "exdeorum:deepslate_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.7 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/netherite/diamond.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/netherite/diamond.json new file mode 100644 index 00000000..861a6996 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/netherite/diamond.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:diamond", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/netherite/emerald.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/netherite/emerald.json new file mode 100644 index 00000000..65837235 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/netherite/emerald.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:emerald", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/netherite/gold_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/netherite/gold_ore_chunk.json new file mode 100644 index 00000000..23c4015c --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/netherite/gold_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "exdeorum:gold_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.15 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/netherite/iron_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/netherite/iron_ore_chunk.json new file mode 100644 index 00000000..566bc3ba --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/netherite/iron_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "exdeorum:iron_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.17 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/netherite/lapis_lazuli.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/netherite/lapis_lazuli.json new file mode 100644 index 00000000..3ded349e --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/netherite/lapis_lazuli.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:lapis_lazuli", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.14 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/string/amethyst_shard.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/string/amethyst_shard.json new file mode 100644 index 00000000..cf52223f --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/string/amethyst_shard.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:amethyst_shard", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.05 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/string/copper_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/string/copper_ore_chunk.json new file mode 100644 index 00000000..1e72c85a --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/string/copper_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:string_mesh", + "result": "exdeorum:copper_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.12 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/string/deepslate_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/string/deepslate_pebble.json new file mode 100644 index 00000000..cad10ec5 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/string/deepslate_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:string_mesh", + "result": "exdeorum:deepslate_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.5 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/string/diamond.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/string/diamond.json new file mode 100644 index 00000000..9129b98d --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/string/diamond.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:diamond", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.04 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/string/emerald.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/string/emerald.json new file mode 100644 index 00000000..a8dc2701 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/string/emerald.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:emerald", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/string/gold_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/string/gold_ore_chunk.json new file mode 100644 index 00000000..070ecd51 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/string/gold_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:string_mesh", + "result": "exdeorum:gold_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/string/iron_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/string/iron_ore_chunk.json new file mode 100644 index 00000000..c770d8d8 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/string/iron_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:string_mesh", + "result": "exdeorum:iron_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/string/lapis_lazuli.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/string/lapis_lazuli.json new file mode 100644 index 00000000..2d1e6eb1 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_deepslate/string/lapis_lazuli.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_deepslate" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:lapis_lazuli", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.04 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/diamond/blackstone_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/diamond/blackstone_pebble.json new file mode 100644 index 00000000..e7ebb5ad --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/diamond/blackstone_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "exdeorum:blackstone_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.6 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/diamond/blaze_powder.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/diamond/blaze_powder.json new file mode 100644 index 00000000..dc916f25 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/diamond/blaze_powder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:blaze_powder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.14 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/diamond/gold_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/diamond/gold_nugget.json new file mode 100644 index 00000000..d80ccefb --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/diamond/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:gold_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.12 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/diamond/gunpowder.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/diamond/gunpowder.json new file mode 100644 index 00000000..32d5401d --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/diamond/gunpowder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:gunpowder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/diamond/magma_cream.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/diamond/magma_cream.json new file mode 100644 index 00000000..ddcd3d66 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/diamond/magma_cream.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:magma_cream", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/diamond/quartz.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/diamond/quartz.json new file mode 100644 index 00000000..b099d8ee --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/diamond/quartz.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:quartz", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/basalt_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/basalt_pebble.json new file mode 100644 index 00000000..86fe775a --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/basalt_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:flint_mesh", + "result": "exdeorum:basalt_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.4 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/blackstone_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/blackstone_pebble.json new file mode 100644 index 00000000..2942a8d3 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/blackstone_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:flint_mesh", + "result": "exdeorum:blackstone_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.5 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/blaze_powder.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/blaze_powder.json new file mode 100644 index 00000000..702efb8e --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/blaze_powder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:blaze_powder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.09 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/crimson_nylium_spores.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/crimson_nylium_spores.json new file mode 100644 index 00000000..21395f19 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/crimson_nylium_spores.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:flint_mesh", + "result": "exdeorum:crimson_nylium_spores", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.07 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/gold_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/gold_nugget.json new file mode 100644 index 00000000..80740987 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:gold_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/gunpowder.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/gunpowder.json new file mode 100644 index 00000000..52937571 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/gunpowder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:gunpowder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.09 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/magma_cream.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/magma_cream.json new file mode 100644 index 00000000..1e0ed8d8 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/magma_cream.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:magma_cream", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.06 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/quartz.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/quartz.json new file mode 100644 index 00000000..27b1e277 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/quartz.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:quartz", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.09 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/warped_nylium_spores.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/warped_nylium_spores.json new file mode 100644 index 00000000..ac339598 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/flint/warped_nylium_spores.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:flint_mesh", + "result": "exdeorum:warped_nylium_spores", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.07 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/basalt_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/basalt_pebble.json new file mode 100644 index 00000000..28120f91 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/basalt_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:golden_mesh", + "result": "exdeorum:basalt_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.45 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/blackstone_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/blackstone_pebble.json new file mode 100644 index 00000000..537c75df --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/blackstone_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:golden_mesh", + "result": "exdeorum:blackstone_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.6 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/blaze_powder.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/blaze_powder.json new file mode 100644 index 00000000..0e086b01 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/blaze_powder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:blaze_powder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/crimson_nylium_spores.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/crimson_nylium_spores.json new file mode 100644 index 00000000..f68ddbd1 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/crimson_nylium_spores.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:golden_mesh", + "result": "exdeorum:crimson_nylium_spores", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/gold_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/gold_nugget.json new file mode 100644 index 00000000..98836ac5 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:gold_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.14 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/gunpowder.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/gunpowder.json new file mode 100644 index 00000000..a037e2ab --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/gunpowder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:gunpowder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/magma_cream.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/magma_cream.json new file mode 100644 index 00000000..f7432df7 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/magma_cream.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:magma_cream", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/quartz.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/quartz.json new file mode 100644 index 00000000..e0c44b4c --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/quartz.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:quartz", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/raw_gold.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/raw_gold.json new file mode 100644 index 00000000..4123fcaa --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/raw_gold.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:raw_gold", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/warped_nylium_spores.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/warped_nylium_spores.json new file mode 100644 index 00000000..46275f92 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/golden/warped_nylium_spores.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:golden_mesh", + "result": "exdeorum:warped_nylium_spores", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/basalt_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/basalt_pebble.json new file mode 100644 index 00000000..8eeb118d --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/basalt_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:iron_mesh", + "result": "exdeorum:basalt_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.45 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/blackstone_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/blackstone_pebble.json new file mode 100644 index 00000000..58045f48 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/blackstone_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:iron_mesh", + "result": "exdeorum:blackstone_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.6 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/blaze_powder.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/blaze_powder.json new file mode 100644 index 00000000..90f66479 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/blaze_powder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:blaze_powder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/crimson_nylium_spores.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/crimson_nylium_spores.json new file mode 100644 index 00000000..66779197 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/crimson_nylium_spores.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:iron_mesh", + "result": "exdeorum:crimson_nylium_spores", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/gold_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/gold_nugget.json new file mode 100644 index 00000000..474c1d60 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:gold_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/gunpowder.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/gunpowder.json new file mode 100644 index 00000000..7ab1f142 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/gunpowder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:gunpowder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/magma_cream.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/magma_cream.json new file mode 100644 index 00000000..da767e24 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/magma_cream.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:magma_cream", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.07 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/quartz.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/quartz.json new file mode 100644 index 00000000..63d58758 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/quartz.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:quartz", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/warped_nylium_spores.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/warped_nylium_spores.json new file mode 100644 index 00000000..91908541 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/iron/warped_nylium_spores.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:iron_mesh", + "result": "exdeorum:warped_nylium_spores", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/netherite/blackstone_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/netherite/blackstone_pebble.json new file mode 100644 index 00000000..6bac1d26 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/netherite/blackstone_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "exdeorum:blackstone_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 5.0, + "p": 0.65 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/netherite/blaze_powder.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/netherite/blaze_powder.json new file mode 100644 index 00000000..be1a267b --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/netherite/blaze_powder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:blaze_powder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.15 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/netherite/gold_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/netherite/gold_nugget.json new file mode 100644 index 00000000..ab798ac0 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/netherite/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:gold_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.12 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/netherite/gunpowder.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/netherite/gunpowder.json new file mode 100644 index 00000000..792ce032 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/netherite/gunpowder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:gunpowder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/netherite/magma_cream.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/netherite/magma_cream.json new file mode 100644 index 00000000..285c07ee --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/netherite/magma_cream.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:magma_cream", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/netherite/quartz.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/netherite/quartz.json new file mode 100644 index 00000000..92c2ec3d --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/netherite/quartz.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:quartz", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.15 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/basalt_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/basalt_pebble.json new file mode 100644 index 00000000..81fc4806 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/basalt_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:string_mesh", + "result": "exdeorum:basalt_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 3.0, + "p": 0.3 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/blackstone_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/blackstone_pebble.json new file mode 100644 index 00000000..68781350 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/blackstone_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:string_mesh", + "result": "exdeorum:blackstone_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 3.0, + "p": 0.4 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/blaze_powder.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/blaze_powder.json new file mode 100644 index 00000000..35060266 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/blaze_powder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:blaze_powder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/crimson_nylium_spores.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/crimson_nylium_spores.json new file mode 100644 index 00000000..150d2c9b --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/crimson_nylium_spores.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:string_mesh", + "result": "exdeorum:crimson_nylium_spores", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.05 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/gold_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/gold_nugget.json new file mode 100644 index 00000000..451d94b1 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:gold_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.07 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/gunpowder.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/gunpowder.json new file mode 100644 index 00000000..ce4701fc --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/gunpowder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:gunpowder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/magma_cream.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/magma_cream.json new file mode 100644 index 00000000..4185df90 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/magma_cream.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:magma_cream", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.05 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/quartz.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/quartz.json new file mode 100644 index 00000000..d5db2d8c --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/quartz.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:quartz", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/warped_nylium_spores.json b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/warped_nylium_spores.json new file mode 100644 index 00000000..0919aaac --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/crushed_netherrack/string/warped_nylium_spores.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:crushed_netherrack" + }, + "mesh": "exdeorum:string_mesh", + "result": "exdeorum:warped_nylium_spores", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.05 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/diamond/bamboo.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/diamond/bamboo.json new file mode 100644 index 00000000..4d535370 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/diamond/bamboo.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:bamboo", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.06 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/diamond/carrot.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/diamond/carrot.json new file mode 100644 index 00000000..7a44084d --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/diamond/carrot.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:carrot", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.25 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/diamond/flint.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/diamond/flint.json new file mode 100644 index 00000000..05e8b444 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/diamond/flint.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:flint", + "result_amount": { + "type": "minecraft:binomial", + "n": 3.0, + "p": 0.3 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/diamond/grass_seeds.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/diamond/grass_seeds.json new file mode 100644 index 00000000..6ba0e8e3 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/diamond/grass_seeds.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "exdeorum:grass_seeds", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.15 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/diamond/mycelium_spores.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/diamond/mycelium_spores.json new file mode 100644 index 00000000..9950fc18 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/diamond/mycelium_spores.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "exdeorum:mycelium_spores", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/diamond/potato.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/diamond/potato.json new file mode 100644 index 00000000..782eb7d5 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/diamond/potato.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:potato", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.25 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/diamond/stone_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/diamond/stone_pebble.json new file mode 100644 index 00000000..ef79ad1d --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/diamond/stone_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "exdeorum:stone_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 8.0, + "p": 0.7 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/flint/andesite_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/andesite_pebble.json similarity index 100% rename from src/generated/resources/data/exdeorum/recipes/sieve/flint/andesite_pebble.json rename to src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/andesite_pebble.json diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/bamboo.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/bamboo.json new file mode 100644 index 00000000..0ad9be59 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/bamboo.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:bamboo", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.04 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/carrot.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/carrot.json new file mode 100644 index 00000000..4d2504e5 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/carrot.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:carrot", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/flint/diorite_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/diorite_pebble.json similarity index 100% rename from src/generated/resources/data/exdeorum/recipes/sieve/flint/diorite_pebble.json rename to src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/diorite_pebble.json diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/flint/flint.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/flint.json similarity index 94% rename from src/generated/resources/data/exdeorum/recipes/sieve/flint/flint.json rename to src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/flint.json index a4559994..d6340e85 100644 --- a/src/generated/resources/data/exdeorum/recipes/sieve/flint/flint.json +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/flint.json @@ -8,6 +8,6 @@ "result_amount": { "type": "minecraft:binomial", "n": 1.0, - "p": 0.2 + "p": 0.3 } } \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/flint/granite_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/granite_pebble.json similarity index 100% rename from src/generated/resources/data/exdeorum/recipes/sieve/flint/granite_pebble.json rename to src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/granite_pebble.json diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/grass_seeds.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/grass_seeds.json new file mode 100644 index 00000000..53fd5f62 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/grass_seeds.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:flint_mesh", + "result": "exdeorum:grass_seeds", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.15 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/flint/melon_seeds.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/melon_seeds.json similarity index 94% rename from src/generated/resources/data/exdeorum/recipes/sieve/flint/melon_seeds.json rename to src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/melon_seeds.json index 97ed62be..4b3f2e37 100644 --- a/src/generated/resources/data/exdeorum/recipes/sieve/flint/melon_seeds.json +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/melon_seeds.json @@ -8,6 +8,6 @@ "result_amount": { "type": "minecraft:binomial", "n": 1.0, - "p": 0.1 + "p": 0.12 } } \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/mycelium_spores.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/mycelium_spores.json new file mode 100644 index 00000000..78992b17 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/mycelium_spores.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:flint_mesh", + "result": "exdeorum:mycelium_spores", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.05 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/pink_petals.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/pink_petals.json new file mode 100644 index 00000000..0f83ebb9 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/pink_petals.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:pink_petals", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/poisonous_potato.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/poisonous_potato.json new file mode 100644 index 00000000..0c48c2c6 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/poisonous_potato.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:poisonous_potato", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/potato.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/potato.json new file mode 100644 index 00000000..33d34936 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/potato.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:potato", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/flint/pumpkin_seeds.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/pumpkin_seeds.json similarity index 94% rename from src/generated/resources/data/exdeorum/recipes/sieve/flint/pumpkin_seeds.json rename to src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/pumpkin_seeds.json index 60881c14..079f0493 100644 --- a/src/generated/resources/data/exdeorum/recipes/sieve/flint/pumpkin_seeds.json +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/pumpkin_seeds.json @@ -8,6 +8,6 @@ "result_amount": { "type": "minecraft:binomial", "n": 1.0, - "p": 0.1 + "p": 0.12 } } \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/flint/stone_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/stone_pebble.json similarity index 100% rename from src/generated/resources/data/exdeorum/recipes/sieve/flint/stone_pebble.json rename to src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/stone_pebble.json diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/sugar_cane.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/sugar_cane.json new file mode 100644 index 00000000..34401271 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/sugar_cane.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:sugar_cane", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.15 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/flint/beetroot_seeds.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/sweet_berries.json similarity index 78% rename from src/generated/resources/data/exdeorum/recipes/sieve/flint/beetroot_seeds.json rename to src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/sweet_berries.json index dc221e3e..06c7c0e2 100644 --- a/src/generated/resources/data/exdeorum/recipes/sieve/flint/beetroot_seeds.json +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/sweet_berries.json @@ -4,10 +4,10 @@ "item": "minecraft:dirt" }, "mesh": "exdeorum:flint_mesh", - "result": "minecraft:beetroot_seeds", + "result": "minecraft:sweet_berries", "result_amount": { "type": "minecraft:binomial", "n": 1.0, - "p": 0.1 + "p": 0.05 } } \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/flint/wheat_seeds.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/wheat_seeds.json similarity index 94% rename from src/generated/resources/data/exdeorum/recipes/sieve/flint/wheat_seeds.json rename to src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/wheat_seeds.json index e582ccbd..39d90d63 100644 --- a/src/generated/resources/data/exdeorum/recipes/sieve/flint/wheat_seeds.json +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/flint/wheat_seeds.json @@ -8,6 +8,6 @@ "result_amount": { "type": "minecraft:binomial", "n": 1.0, - "p": 0.5 + "p": 0.15 } } \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/bamboo.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/bamboo.json new file mode 100644 index 00000000..b095a33d --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/bamboo.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:bamboo", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.05 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/carrot.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/carrot.json new file mode 100644 index 00000000..2e58671c --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/carrot.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:carrot", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.175 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/flint.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/flint.json new file mode 100644 index 00000000..b3fcd362 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/flint.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:flint", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.2 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/gold_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/gold_nugget.json new file mode 100644 index 00000000..343e6811 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:gold_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.05 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/golden_carrot.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/golden_carrot.json new file mode 100644 index 00000000..aff3725e --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/golden_carrot.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:golden_carrot", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.02 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/grass_seeds.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/grass_seeds.json new file mode 100644 index 00000000..9b27bb6c --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/grass_seeds.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:golden_mesh", + "result": "exdeorum:grass_seeds", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.25 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/iron_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/iron_nugget.json new file mode 100644 index 00000000..4219dc14 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/iron_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:iron_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.05 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/melon_seeds.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/melon_seeds.json new file mode 100644 index 00000000..5d81e05e --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/melon_seeds.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:melon_seeds", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.165 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/mycelium_spores.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/mycelium_spores.json new file mode 100644 index 00000000..26aa2b9a --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/mycelium_spores.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:golden_mesh", + "result": "exdeorum:mycelium_spores", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/potato.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/potato.json new file mode 100644 index 00000000..42d89441 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/potato.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:potato", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.175 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/pumpkin_seeds.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/pumpkin_seeds.json new file mode 100644 index 00000000..95e4ee61 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/pumpkin_seeds.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:pumpkin_seeds", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.165 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/stone_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/stone_pebble.json new file mode 100644 index 00000000..d9f4d199 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/stone_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:golden_mesh", + "result": "exdeorum:stone_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 8.0, + "p": 0.7 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/wheat_seeds.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/wheat_seeds.json new file mode 100644 index 00000000..bbe984e4 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/golden/wheat_seeds.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:wheat_seeds", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.2 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/bamboo.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/bamboo.json new file mode 100644 index 00000000..3e0a9af5 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/bamboo.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:bamboo", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.06 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/carrot.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/carrot.json new file mode 100644 index 00000000..33176de7 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/carrot.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:carrot", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.15 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/flint.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/flint.json new file mode 100644 index 00000000..7e9be621 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/flint.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:flint", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.3 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/grass_seeds.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/grass_seeds.json new file mode 100644 index 00000000..91a6b1df --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/grass_seeds.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:iron_mesh", + "result": "exdeorum:grass_seeds", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.175 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/iron_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/iron_nugget.json new file mode 100644 index 00000000..26e5609e --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/iron_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:iron_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.05 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/melon_seeds.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/melon_seeds.json new file mode 100644 index 00000000..d418d38e --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/melon_seeds.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:melon_seeds", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.15 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/mycelium_spores.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/mycelium_spores.json new file mode 100644 index 00000000..35b7e487 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/mycelium_spores.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:iron_mesh", + "result": "exdeorum:mycelium_spores", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/potato.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/potato.json new file mode 100644 index 00000000..c5250589 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/potato.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:potato", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.15 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/pumpkin_seeds.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/pumpkin_seeds.json new file mode 100644 index 00000000..2de70505 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/pumpkin_seeds.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:pumpkin_seeds", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.15 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/stone_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/stone_pebble.json new file mode 100644 index 00000000..c0e1dc85 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/stone_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:iron_mesh", + "result": "exdeorum:stone_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 8.0, + "p": 0.65 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/sugar_cane.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/sugar_cane.json new file mode 100644 index 00000000..0d878e50 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/sugar_cane.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:sugar_cane", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.15 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/wheat_seeds.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/wheat_seeds.json new file mode 100644 index 00000000..537da96c --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/iron/wheat_seeds.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:wheat_seeds", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.175 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/bamboo.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/bamboo.json new file mode 100644 index 00000000..1d52ca24 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/bamboo.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:bamboo", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.06 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/carrot.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/carrot.json new file mode 100644 index 00000000..e801fe8c --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/carrot.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:carrot", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.3 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/flint.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/flint.json new file mode 100644 index 00000000..8c0c995d --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/flint.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:flint", + "result_amount": { + "type": "minecraft:binomial", + "n": 3.0, + "p": 0.4 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/golden_apple.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/golden_apple.json new file mode 100644 index 00000000..3343b9e4 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/golden_apple.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:golden_apple", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.0025 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/golden_carrot.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/golden_carrot.json new file mode 100644 index 00000000..d08472bf --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/golden_carrot.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:golden_carrot", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.01 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/grass_seeds.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/grass_seeds.json new file mode 100644 index 00000000..62367f06 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/grass_seeds.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "exdeorum:grass_seeds", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.2 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/mycelium_spores.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/mycelium_spores.json new file mode 100644 index 00000000..ae3a7d9c --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/mycelium_spores.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "exdeorum:mycelium_spores", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.2 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/potato.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/potato.json new file mode 100644 index 00000000..8ffa1be5 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/potato.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:potato", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.3 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/stone_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/stone_pebble.json new file mode 100644 index 00000000..ee4752b7 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/netherite/stone_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "exdeorum:stone_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 5.0, + "p": 0.4 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/bamboo.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/bamboo.json new file mode 100644 index 00000000..55b6b09c --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/bamboo.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:bamboo", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.04 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/string/beetroot_seeds.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/beetroot_seeds.json similarity index 94% rename from src/generated/resources/data/exdeorum/recipes/sieve/string/beetroot_seeds.json rename to src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/beetroot_seeds.json index 7ed5fea0..5e5cb59e 100644 --- a/src/generated/resources/data/exdeorum/recipes/sieve/string/beetroot_seeds.json +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/beetroot_seeds.json @@ -8,6 +8,6 @@ "result_amount": { "type": "minecraft:binomial", "n": 1.0, - "p": 0.35 + "p": 0.1 } } \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/carrot.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/carrot.json new file mode 100644 index 00000000..63055416 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/carrot.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:carrot", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/string/flint.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/flint.json similarity index 100% rename from src/generated/resources/data/exdeorum/recipes/sieve/string/flint.json rename to src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/flint.json diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/grass_seeds.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/grass_seeds.json new file mode 100644 index 00000000..a85a4843 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/grass_seeds.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:string_mesh", + "result": "exdeorum:grass_seeds", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/string/melon_seeds.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/melon_seeds.json similarity index 94% rename from src/generated/resources/data/exdeorum/recipes/sieve/string/melon_seeds.json rename to src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/melon_seeds.json index 7aaecfc2..700c5ec4 100644 --- a/src/generated/resources/data/exdeorum/recipes/sieve/string/melon_seeds.json +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/melon_seeds.json @@ -8,6 +8,6 @@ "result_amount": { "type": "minecraft:binomial", "n": 1.0, - "p": 0.35 + "p": 0.1 } } \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/mycelium_spores.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/mycelium_spores.json new file mode 100644 index 00000000..9c290ed4 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/mycelium_spores.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:string_mesh", + "result": "exdeorum:mycelium_spores", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/poisonous_potato.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/poisonous_potato.json new file mode 100644 index 00000000..ef3b6a1c --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/poisonous_potato.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:poisonous_potato", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.05 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/potato.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/potato.json new file mode 100644 index 00000000..a8db79f5 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/potato.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:potato", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/string/pumpkin_seeds.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/pumpkin_seeds.json similarity index 94% rename from src/generated/resources/data/exdeorum/recipes/sieve/string/pumpkin_seeds.json rename to src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/pumpkin_seeds.json index e35a00bf..d0a1c5ac 100644 --- a/src/generated/resources/data/exdeorum/recipes/sieve/string/pumpkin_seeds.json +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/pumpkin_seeds.json @@ -8,6 +8,6 @@ "result_amount": { "type": "minecraft:binomial", "n": 1.0, - "p": 0.35 + "p": 0.1 } } \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/string/stone_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/stone_pebble.json similarity index 100% rename from src/generated/resources/data/exdeorum/recipes/sieve/string/stone_pebble.json rename to src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/stone_pebble.json diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/sugar_cane.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/sugar_cane.json new file mode 100644 index 00000000..e06062af --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/sugar_cane.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:dirt" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:sugar_cane", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/string/wheat_seeds.json b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/wheat_seeds.json similarity index 93% rename from src/generated/resources/data/exdeorum/recipes/sieve/string/wheat_seeds.json rename to src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/wheat_seeds.json index 96943ad4..d32bdb74 100644 --- a/src/generated/resources/data/exdeorum/recipes/sieve/string/wheat_seeds.json +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dirt/string/wheat_seeds.json @@ -8,6 +8,6 @@ "result_amount": { "type": "minecraft:binomial", "n": 1.0, - "p": 0.7 + "p": 0.125 } } \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/diamond/blaze_powder.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/diamond/blaze_powder.json new file mode 100644 index 00000000..5d3c2af2 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/diamond/blaze_powder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:blaze_powder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.06 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/diamond/bone_meal.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/diamond/bone_meal.json new file mode 100644 index 00000000..d63a7906 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/diamond/bone_meal.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:bone_meal", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/diamond/glowstone_dust.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/diamond/glowstone_dust.json new file mode 100644 index 00000000..86b56ea1 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/diamond/glowstone_dust.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:glowstone_dust", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/diamond/gold_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/diamond/gold_nugget.json new file mode 100644 index 00000000..87c522d5 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/diamond/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:gold_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/diamond/gunpowder.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/diamond/gunpowder.json new file mode 100644 index 00000000..4d0f0226 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/diamond/gunpowder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:gunpowder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.14 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/diamond/redstone.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/diamond/redstone.json new file mode 100644 index 00000000..404ee534 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/diamond/redstone.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:redstone", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.12 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/flint/blaze_powder.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/flint/blaze_powder.json new file mode 100644 index 00000000..64facbc8 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/flint/blaze_powder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:blaze_powder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.04 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/flint/bone_meal.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/flint/bone_meal.json new file mode 100644 index 00000000..e3a395ea --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/flint/bone_meal.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:bone_meal", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/flint/glowstone_dust.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/flint/glowstone_dust.json new file mode 100644 index 00000000..21c1048c --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/flint/glowstone_dust.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:glowstone_dust", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.07 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/flint/gunpowder.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/flint/gunpowder.json new file mode 100644 index 00000000..af1c7e0b --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/flint/gunpowder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:gunpowder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/flint/redstone.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/flint/redstone.json new file mode 100644 index 00000000..500b2fff --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/flint/redstone.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:redstone", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.09 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/golden/blaze_powder.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/golden/blaze_powder.json new file mode 100644 index 00000000..d969ef9d --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/golden/blaze_powder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:blaze_powder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.06 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/golden/bone_meal.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/golden/bone_meal.json new file mode 100644 index 00000000..985f7dd1 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/golden/bone_meal.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:bone_meal", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/golden/glowstone_dust.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/golden/glowstone_dust.json new file mode 100644 index 00000000..5fb1373b --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/golden/glowstone_dust.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:glowstone_dust", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/golden/gold_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/golden/gold_nugget.json new file mode 100644 index 00000000..f1f3ba88 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/golden/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:gold_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 2.0, + "p": 0.18 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/golden/gunpowder.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/golden/gunpowder.json new file mode 100644 index 00000000..a626343d --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/golden/gunpowder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:gunpowder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/golden/raw_gold.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/golden/raw_gold.json new file mode 100644 index 00000000..06d4bbb1 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/golden/raw_gold.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:raw_gold", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.02 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/golden/redstone.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/golden/redstone.json new file mode 100644 index 00000000..1e1f8126 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/golden/redstone.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:redstone", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.12 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/iron/blaze_powder.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/iron/blaze_powder.json new file mode 100644 index 00000000..4dd4ea9e --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/iron/blaze_powder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:blaze_powder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.05 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/iron/bone_meal.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/iron/bone_meal.json new file mode 100644 index 00000000..bb6e5868 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/iron/bone_meal.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:bone_meal", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.12 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/iron/glowstone_dust.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/iron/glowstone_dust.json new file mode 100644 index 00000000..e3ad1674 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/iron/glowstone_dust.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:glowstone_dust", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.09 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/iron/gunpowder.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/iron/gunpowder.json new file mode 100644 index 00000000..130763ff --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/iron/gunpowder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:gunpowder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/iron/iron_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/iron/iron_nugget.json new file mode 100644 index 00000000..46b08c1a --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/iron/iron_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:iron_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.06 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/iron/redstone.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/iron/redstone.json new file mode 100644 index 00000000..7c978746 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/iron/redstone.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:redstone", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/netherite/blaze_powder.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/netherite/blaze_powder.json new file mode 100644 index 00000000..294d2235 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/netherite/blaze_powder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:blaze_powder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/netherite/bone_meal.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/netherite/bone_meal.json new file mode 100644 index 00000000..a043af86 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/netherite/bone_meal.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:bone_meal", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/netherite/glowstone_dust.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/netherite/glowstone_dust.json new file mode 100644 index 00000000..905546df --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/netherite/glowstone_dust.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:glowstone_dust", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.15 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/netherite/gold_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/netherite/gold_nugget.json new file mode 100644 index 00000000..159d3a72 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/netherite/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:gold_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/netherite/gunpowder.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/netherite/gunpowder.json new file mode 100644 index 00000000..5319bac7 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/netherite/gunpowder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:gunpowder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.14 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/netherite/iron_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/netherite/iron_nugget.json new file mode 100644 index 00000000..c8f37a37 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/netherite/iron_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:iron_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/netherite/redstone.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/netherite/redstone.json new file mode 100644 index 00000000..805b29e6 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/netherite/redstone.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:redstone", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.14 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/string/blaze_powder.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/string/blaze_powder.json new file mode 100644 index 00000000..0d42a681 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/string/blaze_powder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:blaze_powder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/string/bone_meal.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/string/bone_meal.json new file mode 100644 index 00000000..5d3915ba --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/string/bone_meal.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:bone_meal", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/string/glowstone_dust.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/string/glowstone_dust.json new file mode 100644 index 00000000..8a184d4a --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/string/glowstone_dust.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:glowstone_dust", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.04 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/string/gunpowder.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/string/gunpowder.json new file mode 100644 index 00000000..fed2a872 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/string/gunpowder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:gunpowder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/dust/string/redstone.json b/src/generated/resources/data/exdeorum/recipes/sieve/dust/string/redstone.json new file mode 100644 index 00000000..4e9b2515 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/dust/string/redstone.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "exdeorum:dust" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:redstone", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.06 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/amethyst_shard.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/amethyst_shard.json new file mode 100644 index 00000000..c2f2e03d --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/amethyst_shard.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:amethyst_shard", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.06 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/coal.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/coal.json new file mode 100644 index 00000000..f86d19e9 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/coal.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:coal", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.06 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/copper_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/copper_ore_chunk.json new file mode 100644 index 00000000..0afec6f3 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/copper_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "exdeorum:copper_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.07 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/diamond.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/diamond.json new file mode 100644 index 00000000..4d0f99a4 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/diamond.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:diamond", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/emerald.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/emerald.json new file mode 100644 index 00000000..d96948ac --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/emerald.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:emerald", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.07 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/flint.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/flint.json new file mode 100644 index 00000000..ba1eff75 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/flint.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:flint", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.05 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/gold_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/gold_ore_chunk.json new file mode 100644 index 00000000..670b8913 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/gold_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "exdeorum:gold_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/iron_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/iron_ore_chunk.json new file mode 100644 index 00000000..7a0f1303 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/iron_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "exdeorum:iron_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/lapis_lazuli.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/lapis_lazuli.json new file mode 100644 index 00000000..4b2f68b0 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/diamond/lapis_lazuli.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:lapis_lazuli", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/amethyst_shard.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/amethyst_shard.json new file mode 100644 index 00000000..6960cf4b --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/amethyst_shard.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:amethyst_shard", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.015 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/andesite_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/andesite_pebble.json new file mode 100644 index 00000000..40d74b28 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/andesite_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:flint_mesh", + "result": "exdeorum:andesite_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.4 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/coal.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/coal.json new file mode 100644 index 00000000..2088a480 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/coal.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:coal", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.125 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/copper_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/copper_ore_chunk.json new file mode 100644 index 00000000..a45a4c4f --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/copper_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:flint_mesh", + "result": "exdeorum:copper_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/diamond.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/diamond.json new file mode 100644 index 00000000..c9f7e849 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/diamond.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:diamond", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/diorite_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/diorite_pebble.json new file mode 100644 index 00000000..90ba17f6 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/diorite_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:flint_mesh", + "result": "exdeorum:diorite_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.4 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/emerald.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/emerald.json new file mode 100644 index 00000000..bb046bca --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/emerald.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:emerald", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.015 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/flint.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/flint.json new file mode 100644 index 00000000..c5e7abd0 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/flint.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:flint", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.25 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/gold_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/gold_ore_chunk.json new file mode 100644 index 00000000..900a8f9a --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/gold_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:flint_mesh", + "result": "exdeorum:gold_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.04 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/granite_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/granite_pebble.json new file mode 100644 index 00000000..27ce9e28 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/granite_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:flint_mesh", + "result": "exdeorum:granite_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.4 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/iron_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/iron_ore_chunk.json new file mode 100644 index 00000000..6c38dfcf --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/iron_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:flint_mesh", + "result": "exdeorum:iron_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.07 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/lapis_lazuli.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/lapis_lazuli.json new file mode 100644 index 00000000..26589450 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/lapis_lazuli.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:lapis_lazuli", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.05 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/pointed_dripstone.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/pointed_dripstone.json new file mode 100644 index 00000000..ceb552e0 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/pointed_dripstone.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:pointed_dripstone", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.15 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/stone_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/stone_pebble.json new file mode 100644 index 00000000..6103bf0d --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/flint/stone_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:flint_mesh", + "result": "exdeorum:stone_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.5 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/amethyst_shard.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/amethyst_shard.json new file mode 100644 index 00000000..1f640486 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/amethyst_shard.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:amethyst_shard", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/coal.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/coal.json new file mode 100644 index 00000000..bde7c783 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/coal.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:coal", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.2 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/copper_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/copper_ore_chunk.json new file mode 100644 index 00000000..35bd92ab --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/copper_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:golden_mesh", + "result": "exdeorum:copper_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.07 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/diamond.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/diamond.json new file mode 100644 index 00000000..88be8f14 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/diamond.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:diamond", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/emerald.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/emerald.json new file mode 100644 index 00000000..9db6f6ea --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/emerald.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:emerald", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.09 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/flint.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/flint.json new file mode 100644 index 00000000..6713b452 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/flint.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:flint", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/gold_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/gold_nugget.json new file mode 100644 index 00000000..d4d35509 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:gold_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/gold_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/gold_ore_chunk.json new file mode 100644 index 00000000..bc1d3eda --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/gold_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:golden_mesh", + "result": "exdeorum:gold_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/iron_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/iron_ore_chunk.json new file mode 100644 index 00000000..a3db3511 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/iron_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:golden_mesh", + "result": "exdeorum:iron_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.04 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/lapis_lazuli.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/lapis_lazuli.json new file mode 100644 index 00000000..456ea410 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/lapis_lazuli.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:lapis_lazuli", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/raw_gold.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/raw_gold.json new file mode 100644 index 00000000..0c6edadb --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/raw_gold.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:raw_gold", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.02 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/stone_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/stone_pebble.json new file mode 100644 index 00000000..15e9b13e --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/golden/stone_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:golden_mesh", + "result": "exdeorum:stone_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.5 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/amethyst_shard.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/amethyst_shard.json new file mode 100644 index 00000000..7ec206ac --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/amethyst_shard.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:amethyst_shard", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.04 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/coal.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/coal.json new file mode 100644 index 00000000..f538e4d9 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/coal.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:coal", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.15 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/copper_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/copper_ore_chunk.json new file mode 100644 index 00000000..e9a3f806 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/copper_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:iron_mesh", + "result": "exdeorum:copper_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.12 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/diamond.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/diamond.json new file mode 100644 index 00000000..5c1155df --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/diamond.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:diamond", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.05 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/emerald.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/emerald.json new file mode 100644 index 00000000..ac7d1f19 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/emerald.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:emerald", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.04 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/flint.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/flint.json new file mode 100644 index 00000000..2f24af26 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/flint.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:flint", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.15 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/gold_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/gold_ore_chunk.json new file mode 100644 index 00000000..700c7fd2 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/gold_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:iron_mesh", + "result": "exdeorum:gold_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.06 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/iron_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/iron_ore_chunk.json new file mode 100644 index 00000000..809e0e87 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/iron_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:iron_mesh", + "result": "exdeorum:iron_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/lapis_lazuli.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/lapis_lazuli.json new file mode 100644 index 00000000..51fca5da --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/lapis_lazuli.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:lapis_lazuli", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/stone_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/stone_pebble.json new file mode 100644 index 00000000..aaf6ed66 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/iron/stone_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:iron_mesh", + "result": "exdeorum:stone_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.5 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/amethyst_shard.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/amethyst_shard.json new file mode 100644 index 00000000..1b94b7af --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/amethyst_shard.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:amethyst_shard", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/coal.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/coal.json new file mode 100644 index 00000000..12433e97 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/coal.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:coal", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.06 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/copper_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/copper_ore_chunk.json new file mode 100644 index 00000000..dd05a262 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/copper_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "exdeorum:copper_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/diamond.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/diamond.json new file mode 100644 index 00000000..35a3ce14 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/diamond.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:diamond", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/emerald.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/emerald.json new file mode 100644 index 00000000..ffcc426b --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/emerald.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:emerald", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.09 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/gold_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/gold_nugget.json new file mode 100644 index 00000000..415b7d64 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:gold_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.04 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/gold_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/gold_ore_chunk.json new file mode 100644 index 00000000..65a2ed5c --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/gold_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "exdeorum:gold_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.09 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/iron_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/iron_ore_chunk.json new file mode 100644 index 00000000..e1221c7b --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/iron_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "exdeorum:iron_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/lapis_lazuli.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/lapis_lazuli.json new file mode 100644 index 00000000..8ae71e13 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/lapis_lazuli.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:lapis_lazuli", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/raw_gold.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/raw_gold.json new file mode 100644 index 00000000..fe8ddf49 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/netherite/raw_gold.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:raw_gold", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.01 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/amethyst_shard.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/amethyst_shard.json new file mode 100644 index 00000000..2313029b --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/amethyst_shard.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:amethyst_shard", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.01 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/coal.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/coal.json new file mode 100644 index 00000000..e1af9fa0 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/coal.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:coal", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/copper_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/copper_ore_chunk.json new file mode 100644 index 00000000..fb4e0e3a --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/copper_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:string_mesh", + "result": "exdeorum:copper_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/diamond.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/diamond.json new file mode 100644 index 00000000..d3ed18fa --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/diamond.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:diamond", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.02 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/emerald.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/emerald.json new file mode 100644 index 00000000..49069b7f --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/emerald.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:emerald", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.01 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/flint.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/flint.json new file mode 100644 index 00000000..35861f76 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/flint.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:flint", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.2 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/gold_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/gold_ore_chunk.json new file mode 100644 index 00000000..5e7000eb --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/gold_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:string_mesh", + "result": "exdeorum:gold_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/iron_ore_chunk.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/iron_ore_chunk.json new file mode 100644 index 00000000..2243da30 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/iron_ore_chunk.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:string_mesh", + "result": "exdeorum:iron_ore_chunk", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.05 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/lapis_lazuli.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/lapis_lazuli.json new file mode 100644 index 00000000..658cb38d --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/lapis_lazuli.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:lapis_lazuli", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/stone_pebble.json b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/stone_pebble.json new file mode 100644 index 00000000..c449475a --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/gravel/string/stone_pebble.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:gravel" + }, + "mesh": "exdeorum:string_mesh", + "result": "exdeorum:stone_pebble", + "result_amount": { + "type": "minecraft:binomial", + "n": 4.0, + "p": 0.4 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/acacia_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/acacia_sapling.json new file mode 100644 index 00000000..708d5b9d --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/acacia_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:acacia_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/big_dripleaf.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/big_dripleaf.json new file mode 100644 index 00000000..8e62f2d3 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/big_dripleaf.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:big_dripleaf", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/birch_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/birch_sapling.json new file mode 100644 index 00000000..dafc61ba --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/birch_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:birch_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/cherry_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/cherry_sapling.json new file mode 100644 index 00000000..80216629 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/cherry_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:cherry_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/dark_oak_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/dark_oak_sapling.json new file mode 100644 index 00000000..732849f0 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/dark_oak_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:dark_oak_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/glow_berries.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/glow_berries.json new file mode 100644 index 00000000..6a735a4f --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/glow_berries.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:glow_berries", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.34 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/jungle_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/jungle_sapling.json new file mode 100644 index 00000000..afc43f4b --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/jungle_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:jungle_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/mangrove_propagule.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/mangrove_propagule.json new file mode 100644 index 00000000..05436cfa --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/mangrove_propagule.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:mangrove_propagule", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/oak_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/oak_sapling.json new file mode 100644 index 00000000..df96d9a2 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/oak_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:oak_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/small_dripleaf.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/small_dripleaf.json new file mode 100644 index 00000000..810b5e70 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/small_dripleaf.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:small_dripleaf", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.17 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/spruce_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/spruce_sapling.json new file mode 100644 index 00000000..995c9328 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/diamond/spruce_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:spruce_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/acacia_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/acacia_sapling.json new file mode 100644 index 00000000..11d621fb --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/acacia_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:acacia_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/big_dripleaf.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/big_dripleaf.json new file mode 100644 index 00000000..e8b07a56 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/big_dripleaf.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:big_dripleaf", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.07 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/birch_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/birch_sapling.json new file mode 100644 index 00000000..4f1bed1c --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/birch_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:birch_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/cherry_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/cherry_sapling.json new file mode 100644 index 00000000..5334e3ac --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/cherry_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:cherry_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/dark_oak_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/dark_oak_sapling.json new file mode 100644 index 00000000..6c3037dd --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/dark_oak_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:dark_oak_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/glow_berries.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/glow_berries.json new file mode 100644 index 00000000..1a693ef4 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/glow_berries.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:glow_berries", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.115 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/glow_lichen.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/glow_lichen.json new file mode 100644 index 00000000..0995d73f --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/glow_lichen.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:glow_lichen", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.04 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/jungle_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/jungle_sapling.json new file mode 100644 index 00000000..988ca3bb --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/jungle_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:jungle_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/lily_pad.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/lily_pad.json new file mode 100644 index 00000000..d99b1dd7 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/lily_pad.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:lily_pad", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.04 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/mangrove_propagule.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/mangrove_propagule.json new file mode 100644 index 00000000..da7093eb --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/mangrove_propagule.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:mangrove_propagule", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/oak_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/oak_sapling.json new file mode 100644 index 00000000..340f8e8e --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/oak_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:oak_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/small_dripleaf.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/small_dripleaf.json new file mode 100644 index 00000000..c9fbfbbf --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/small_dripleaf.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:small_dripleaf", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.095 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/spruce_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/spruce_sapling.json new file mode 100644 index 00000000..f460bb53 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/spruce_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:spruce_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/sweet_berries.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/sweet_berries.json new file mode 100644 index 00000000..83f653a7 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/flint/sweet_berries.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:sweet_berries", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/acacia_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/acacia_sapling.json new file mode 100644 index 00000000..011d7a5a --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/acacia_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:acacia_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/big_dripleaf.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/big_dripleaf.json new file mode 100644 index 00000000..9849159e --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/big_dripleaf.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:big_dripleaf", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/birch_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/birch_sapling.json new file mode 100644 index 00000000..3dab3e4c --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/birch_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:birch_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/cherry_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/cherry_sapling.json new file mode 100644 index 00000000..a7ec4106 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/cherry_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:cherry_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/dark_oak_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/dark_oak_sapling.json new file mode 100644 index 00000000..c6fd2c81 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/dark_oak_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:dark_oak_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/glow_berries.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/glow_berries.json new file mode 100644 index 00000000..950decef --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/glow_berries.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:glow_berries", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.26500002 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/jungle_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/jungle_sapling.json new file mode 100644 index 00000000..94fd25de --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/jungle_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:jungle_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/mangrove_propagule.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/mangrove_propagule.json new file mode 100644 index 00000000..c5d62032 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/mangrove_propagule.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:mangrove_propagule", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/oak_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/oak_sapling.json new file mode 100644 index 00000000..34da4e85 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/oak_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:oak_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/small_dripleaf.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/small_dripleaf.json new file mode 100644 index 00000000..e33a3e0d --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/small_dripleaf.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:small_dripleaf", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.14500001 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/spruce_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/spruce_sapling.json new file mode 100644 index 00000000..2d0befbf --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/golden/spruce_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:spruce_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/acacia_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/acacia_sapling.json new file mode 100644 index 00000000..db343d7f --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/acacia_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:acacia_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/big_dripleaf.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/big_dripleaf.json new file mode 100644 index 00000000..804222b7 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/big_dripleaf.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:big_dripleaf", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.09 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/birch_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/birch_sapling.json new file mode 100644 index 00000000..664201c3 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/birch_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:birch_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/cherry_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/cherry_sapling.json new file mode 100644 index 00000000..49349838 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/cherry_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:cherry_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/dark_oak_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/dark_oak_sapling.json new file mode 100644 index 00000000..0ea6274d --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/dark_oak_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:dark_oak_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/glow_berries.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/glow_berries.json new file mode 100644 index 00000000..219e1ae7 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/glow_berries.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:glow_berries", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.19 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/jungle_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/jungle_sapling.json new file mode 100644 index 00000000..c2c5e84a --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/jungle_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:jungle_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/mangrove_propagule.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/mangrove_propagule.json new file mode 100644 index 00000000..8a066ead --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/mangrove_propagule.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:mangrove_propagule", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/oak_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/oak_sapling.json new file mode 100644 index 00000000..07ba97da --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/oak_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:oak_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/small_dripleaf.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/small_dripleaf.json new file mode 100644 index 00000000..83ef4c69 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/small_dripleaf.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:small_dripleaf", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.120000005 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/spruce_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/spruce_sapling.json new file mode 100644 index 00000000..d64e9815 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/iron/spruce_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:spruce_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/acacia_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/acacia_sapling.json new file mode 100644 index 00000000..02856425 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/acacia_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:acacia_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/big_dripleaf.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/big_dripleaf.json new file mode 100644 index 00000000..a9cf04fe --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/big_dripleaf.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:big_dripleaf", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.14999999 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/birch_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/birch_sapling.json new file mode 100644 index 00000000..83cb217b --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/birch_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:birch_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/cherry_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/cherry_sapling.json new file mode 100644 index 00000000..34f4b85e --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/cherry_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:cherry_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/dark_oak_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/dark_oak_sapling.json new file mode 100644 index 00000000..b06c28c3 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/dark_oak_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:dark_oak_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/glow_berries.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/glow_berries.json new file mode 100644 index 00000000..d61c71fc --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/glow_berries.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:glow_berries", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.415 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/jungle_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/jungle_sapling.json new file mode 100644 index 00000000..e7d8ac46 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/jungle_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:jungle_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/mangrove_propagule.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/mangrove_propagule.json new file mode 100644 index 00000000..976b1357 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/mangrove_propagule.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:mangrove_propagule", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/oak_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/oak_sapling.json new file mode 100644 index 00000000..cc915d2c --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/oak_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:oak_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/small_dripleaf.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/small_dripleaf.json new file mode 100644 index 00000000..c0e680a6 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/small_dripleaf.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:small_dripleaf", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.195 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/spruce_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/spruce_sapling.json new file mode 100644 index 00000000..1d7566de --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/netherite/spruce_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:spruce_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/acacia_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/acacia_sapling.json new file mode 100644 index 00000000..65ee4eac --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/acacia_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:acacia_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/big_dripleaf.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/big_dripleaf.json new file mode 100644 index 00000000..866c7c55 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/big_dripleaf.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:big_dripleaf", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.05 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/birch_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/birch_sapling.json new file mode 100644 index 00000000..627172bb --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/birch_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:birch_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/cherry_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/cherry_sapling.json new file mode 100644 index 00000000..a48d454d --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/cherry_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:cherry_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/dark_oak_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/dark_oak_sapling.json new file mode 100644 index 00000000..39be28cd --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/dark_oak_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:dark_oak_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/glow_berries.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/glow_berries.json new file mode 100644 index 00000000..a04816f1 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/glow_berries.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:glow_berries", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.04 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/jungle_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/jungle_sapling.json new file mode 100644 index 00000000..3d47843c --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/jungle_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:jungle_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/mangrove_propagule.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/mangrove_propagule.json new file mode 100644 index 00000000..375e163e --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/mangrove_propagule.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:mangrove_propagule", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/oak_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/oak_sapling.json new file mode 100644 index 00000000..f7c84f6f --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/oak_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:oak_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/small_dripleaf.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/small_dripleaf.json new file mode 100644 index 00000000..807235d1 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/small_dripleaf.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:small_dripleaf", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.07 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/spruce_sapling.json b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/spruce_sapling.json new file mode 100644 index 00000000..fb792197 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/moss_block/string/spruce_sapling.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:moss_block" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:spruce_sapling", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/diamond/flint.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/diamond/flint.json new file mode 100644 index 00000000..beb75aaa --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/diamond/flint.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:flint", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.23 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/diamond/gold_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/diamond/gold_nugget.json new file mode 100644 index 00000000..f065137b --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/diamond/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:gold_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.22 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/diamond/iron_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/diamond/iron_nugget.json new file mode 100644 index 00000000..1c1cb652 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/diamond/iron_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:iron_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.22 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/diamond/prismarine_crystals.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/diamond/prismarine_crystals.json new file mode 100644 index 00000000..85c31748 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/diamond/prismarine_crystals.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:prismarine_crystals", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.09 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/diamond/prismarine_shard.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/diamond/prismarine_shard.json new file mode 100644 index 00000000..21cbafaa --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/diamond/prismarine_shard.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:prismarine_shard", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.09 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/angler_pottery_sherd.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/angler_pottery_sherd.json new file mode 100644 index 00000000..13638e80 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/angler_pottery_sherd.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:angler_pottery_sherd", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/archer_pottery_sherd.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/archer_pottery_sherd.json new file mode 100644 index 00000000..68c459e6 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/archer_pottery_sherd.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:archer_pottery_sherd", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/arms_up_pottery_sherd.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/arms_up_pottery_sherd.json new file mode 100644 index 00000000..d22cd857 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/arms_up_pottery_sherd.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:arms_up_pottery_sherd", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/blade_pottery_sherd.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/blade_pottery_sherd.json new file mode 100644 index 00000000..17f98c13 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/blade_pottery_sherd.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:blade_pottery_sherd", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/brewer_pottery_sherd.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/brewer_pottery_sherd.json new file mode 100644 index 00000000..25059335 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/brewer_pottery_sherd.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:brewer_pottery_sherd", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/burn_pottery_sherd.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/burn_pottery_sherd.json new file mode 100644 index 00000000..8eb3402b --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/burn_pottery_sherd.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:burn_pottery_sherd", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/danger_pottery_sherd.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/danger_pottery_sherd.json new file mode 100644 index 00000000..3c24e03d --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/danger_pottery_sherd.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:danger_pottery_sherd", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/dead_bush.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/dead_bush.json new file mode 100644 index 00000000..91d2339e --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/dead_bush.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:dead_bush", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/explorer_pottery_sherd.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/explorer_pottery_sherd.json new file mode 100644 index 00000000..fd4503bc --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/explorer_pottery_sherd.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:explorer_pottery_sherd", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/flint.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/flint.json new file mode 100644 index 00000000..ca89ccc4 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/flint.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:flint", + "result_amount": { + "type": "minecraft:binomial", + "n": 2.0, + "p": 0.2 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/friend_pottery_sherd.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/friend_pottery_sherd.json new file mode 100644 index 00000000..c69e0443 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/friend_pottery_sherd.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:friend_pottery_sherd", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/gold_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/gold_nugget.json new file mode 100644 index 00000000..a40a28e5 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:gold_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.16 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/heart_pottery_sherd.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/heart_pottery_sherd.json new file mode 100644 index 00000000..8841a7e7 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/heart_pottery_sherd.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:heart_pottery_sherd", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/heartbreak_pottery_sherd.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/heartbreak_pottery_sherd.json new file mode 100644 index 00000000..4d5f9042 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/heartbreak_pottery_sherd.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:heartbreak_pottery_sherd", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/howl_pottery_sherd.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/howl_pottery_sherd.json new file mode 100644 index 00000000..96b7758e --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/howl_pottery_sherd.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:howl_pottery_sherd", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/iron_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/iron_nugget.json new file mode 100644 index 00000000..8648e4c3 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/iron_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:iron_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.16 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/miner_pottery_sherd.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/miner_pottery_sherd.json new file mode 100644 index 00000000..a10ac9d5 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/miner_pottery_sherd.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:miner_pottery_sherd", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/mourner_pottery_sherd.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/mourner_pottery_sherd.json new file mode 100644 index 00000000..5bb8e4fd --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/mourner_pottery_sherd.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:mourner_pottery_sherd", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/plenty_pottery_sherd.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/plenty_pottery_sherd.json new file mode 100644 index 00000000..465393c7 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/plenty_pottery_sherd.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:plenty_pottery_sherd", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/prize_pottery_sherd.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/prize_pottery_sherd.json new file mode 100644 index 00000000..9ddfdb5d --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/prize_pottery_sherd.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:prize_pottery_sherd", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/sheaf_pottery_sherd.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/sheaf_pottery_sherd.json new file mode 100644 index 00000000..0a92eed4 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/sheaf_pottery_sherd.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:sheaf_pottery_sherd", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/shelter_pottery_sherd.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/shelter_pottery_sherd.json new file mode 100644 index 00000000..2fa332b4 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/shelter_pottery_sherd.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:shelter_pottery_sherd", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/skull_pottery_sherd.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/skull_pottery_sherd.json new file mode 100644 index 00000000..146105bb --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/skull_pottery_sherd.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:skull_pottery_sherd", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/snort_pottery_sherd.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/snort_pottery_sherd.json new file mode 100644 index 00000000..0ad3634b --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/flint/snort_pottery_sherd.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:snort_pottery_sherd", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/cactus.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/cactus.json new file mode 100644 index 00000000..871c161c --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/cactus.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:cactus", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/dead_bush.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/dead_bush.json new file mode 100644 index 00000000..04711e78 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/dead_bush.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:dead_bush", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.06 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/flint.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/flint.json new file mode 100644 index 00000000..63e7ffaf --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/flint.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:flint", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.18 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/gold_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/gold_nugget.json new file mode 100644 index 00000000..3f899238 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:gold_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 3.0, + "p": 0.28 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/iron_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/iron_nugget.json new file mode 100644 index 00000000..4b231c85 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/iron_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:iron_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.16 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/kelp.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/kelp.json new file mode 100644 index 00000000..01763225 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/kelp.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:kelp", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.05 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/prismarine_crystals.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/prismarine_crystals.json new file mode 100644 index 00000000..41f42aa2 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/prismarine_crystals.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:prismarine_crystals", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/prismarine_shard.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/prismarine_shard.json new file mode 100644 index 00000000..a1c63ffd --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/prismarine_shard.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:prismarine_shard", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/raw_gold.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/raw_gold.json new file mode 100644 index 00000000..96f18582 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/raw_gold.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:raw_gold", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.04 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/sea_pickle.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/sea_pickle.json new file mode 100644 index 00000000..d4d27b71 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/golden/sea_pickle.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:sea_pickle", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/cactus.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/cactus.json new file mode 100644 index 00000000..8ebf6145 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/cactus.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:cactus", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/dead_bush.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/dead_bush.json new file mode 100644 index 00000000..d0d59b78 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/dead_bush.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:dead_bush", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/flint.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/flint.json new file mode 100644 index 00000000..ad3d73cf --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/flint.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:flint", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.23 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/gold_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/gold_nugget.json new file mode 100644 index 00000000..a2bfce33 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:gold_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.18 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/iron_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/iron_nugget.json new file mode 100644 index 00000000..fa67dcdf --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/iron_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:iron_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.18 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/kelp.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/kelp.json new file mode 100644 index 00000000..6c0a2954 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/kelp.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:kelp", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.07 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/prismarine_crystals.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/prismarine_crystals.json new file mode 100644 index 00000000..9a83ebdb --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/prismarine_crystals.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:prismarine_crystals", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.06 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/prismarine_shard.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/prismarine_shard.json new file mode 100644 index 00000000..8492de8c --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/prismarine_shard.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:prismarine_shard", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.06 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/sea_pickle.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/sea_pickle.json new file mode 100644 index 00000000..1b451bfd --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/iron/sea_pickle.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:sea_pickle", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/netherite/cactus.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/netherite/cactus.json new file mode 100644 index 00000000..5da4a90a --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/netherite/cactus.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:cactus", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.15 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/netherite/flint.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/netherite/flint.json new file mode 100644 index 00000000..a9cc87f0 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/netherite/flint.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:flint", + "result_amount": { + "type": "minecraft:binomial", + "n": 2.0, + "p": 0.23 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/netherite/gold_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/netherite/gold_nugget.json new file mode 100644 index 00000000..eae0765b --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/netherite/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:gold_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.23 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/netherite/iron_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/netherite/iron_nugget.json new file mode 100644 index 00000000..6dc6e3ca --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/netherite/iron_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:iron_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.23 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/netherite/kelp.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/netherite/kelp.json new file mode 100644 index 00000000..c9d6cd08 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/netherite/kelp.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:kelp", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/netherite/prismarine_crystals.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/netherite/prismarine_crystals.json new file mode 100644 index 00000000..f3f6b336 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/netherite/prismarine_crystals.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:prismarine_crystals", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.12 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/netherite/prismarine_shard.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/netherite/prismarine_shard.json new file mode 100644 index 00000000..86574626 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/netherite/prismarine_shard.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:prismarine_shard", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.12 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/netherite/sea_pickle.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/netherite/sea_pickle.json new file mode 100644 index 00000000..288e1f62 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/netherite/sea_pickle.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:sea_pickle", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.07 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/string/cactus.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/string/cactus.json new file mode 100644 index 00000000..04713f30 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/string/cactus.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:cactus", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/string/dead_bush.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/string/dead_bush.json new file mode 100644 index 00000000..b01ef966 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/string/dead_bush.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:dead_bush", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/string/flint.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/string/flint.json new file mode 100644 index 00000000..b9401966 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/string/flint.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:flint", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.2 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/string/gold_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/string/gold_nugget.json new file mode 100644 index 00000000..67eecfbb --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/string/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:gold_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/string/iron_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/string/iron_nugget.json new file mode 100644 index 00000000..0e030721 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/string/iron_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:iron_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/string/kelp.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/string/kelp.json new file mode 100644 index 00000000..3f53c69d --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/string/kelp.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:kelp", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/sand/string/sea_pickle.json b/src/generated/resources/data/exdeorum/recipes/sieve/sand/string/sea_pickle.json new file mode 100644 index 00000000..35b1e2e1 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/sand/string/sea_pickle.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:sand" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:sea_pickle", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.05 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/diamond/ghast_tear.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/diamond/ghast_tear.json new file mode 100644 index 00000000..a52d34f7 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/diamond/ghast_tear.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:ghast_tear", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.09 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/diamond/glowstone_dust.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/diamond/glowstone_dust.json new file mode 100644 index 00000000..436274bf --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/diamond/glowstone_dust.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:glowstone_dust", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/diamond/gunpowder.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/diamond/gunpowder.json new file mode 100644 index 00000000..95ac7dee --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/diamond/gunpowder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:gunpowder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/diamond/quartz.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/diamond/quartz.json new file mode 100644 index 00000000..38a51121 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/diamond/quartz.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:diamond_mesh", + "result": "minecraft:quartz", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.19 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/flint/bone.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/flint/bone.json new file mode 100644 index 00000000..d251ad90 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/flint/bone.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:bone", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/flint/crimson_nylium_spores.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/flint/crimson_nylium_spores.json new file mode 100644 index 00000000..d0959e1e --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/flint/crimson_nylium_spores.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "exdeorum:crimson_nylium_spores", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/flint/ghast_tear.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/flint/ghast_tear.json new file mode 100644 index 00000000..b948a530 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/flint/ghast_tear.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:ghast_tear", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.07 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/flint/glowstone_dust.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/flint/glowstone_dust.json new file mode 100644 index 00000000..769a84d5 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/flint/glowstone_dust.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:glowstone_dust", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.07 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/flint/gunpowder.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/flint/gunpowder.json new file mode 100644 index 00000000..aaa54672 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/flint/gunpowder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:gunpowder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/flint/quartz.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/flint/quartz.json new file mode 100644 index 00000000..24e4f84c --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/flint/quartz.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "minecraft:quartz", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.14 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/flint/warped_nylium_spores.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/flint/warped_nylium_spores.json new file mode 100644 index 00000000..9ecc2114 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/flint/warped_nylium_spores.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:flint_mesh", + "result": "exdeorum:warped_nylium_spores", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.03 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/golden/bone.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/golden/bone.json new file mode 100644 index 00000000..a629a17a --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/golden/bone.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:bone", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/golden/ghast_tear.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/golden/ghast_tear.json new file mode 100644 index 00000000..f954d323 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/golden/ghast_tear.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:ghast_tear", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/golden/glowstone_dust.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/golden/glowstone_dust.json new file mode 100644 index 00000000..de0035fc --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/golden/glowstone_dust.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:glowstone_dust", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.09 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/golden/gold_nugget.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/golden/gold_nugget.json new file mode 100644 index 00000000..b383ba0a --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/golden/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:gold_nugget", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.15 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/golden/gunpowder.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/golden/gunpowder.json new file mode 100644 index 00000000..b13240e0 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/golden/gunpowder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:gunpowder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.1 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/golden/quartz.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/golden/quartz.json new file mode 100644 index 00000000..f580048d --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/golden/quartz.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:golden_mesh", + "result": "minecraft:quartz", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.17 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/iron/bone.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/iron/bone.json new file mode 100644 index 00000000..fd9b85ce --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/iron/bone.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:bone", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/iron/ghast_tear.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/iron/ghast_tear.json new file mode 100644 index 00000000..3821f01b --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/iron/ghast_tear.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:ghast_tear", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.06 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/iron/glowstone_dust.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/iron/glowstone_dust.json new file mode 100644 index 00000000..8bf0558a --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/iron/glowstone_dust.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:glowstone_dust", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.06 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/iron/gunpowder.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/iron/gunpowder.json new file mode 100644 index 00000000..a3b3544c --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/iron/gunpowder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:gunpowder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.07 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/iron/quartz.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/iron/quartz.json new file mode 100644 index 00000000..817ef55d --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/iron/quartz.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:iron_mesh", + "result": "minecraft:quartz", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.15 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/netherite/ghast_tear.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/netherite/ghast_tear.json new file mode 100644 index 00000000..1643c8b9 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/netherite/ghast_tear.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:ghast_tear", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.11 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/netherite/glowstone_dust.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/netherite/glowstone_dust.json new file mode 100644 index 00000000..b1604c1c --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/netherite/glowstone_dust.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:glowstone_dust", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.13 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/netherite/gunpowder.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/netherite/gunpowder.json new file mode 100644 index 00000000..bbfb9f74 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/netherite/gunpowder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:gunpowder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.14 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/netherite/quartz.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/netherite/quartz.json new file mode 100644 index 00000000..96f4e085 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/netherite/quartz.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:netherite_mesh", + "result": "minecraft:quartz", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.21 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/string/bone.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/string/bone.json new file mode 100644 index 00000000..e96ae761 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/string/bone.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:bone", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.08 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/string/ghast_tear.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/string/ghast_tear.json new file mode 100644 index 00000000..9b3b2a41 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/string/ghast_tear.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:ghast_tear", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.06 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/string/glowstone_dust.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/string/glowstone_dust.json new file mode 100644 index 00000000..4cefe224 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/string/glowstone_dust.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:glowstone_dust", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.06 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/string/gunpowder.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/string/gunpowder.json new file mode 100644 index 00000000..38c20192 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/string/gunpowder.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:gunpowder", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.07 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/string/quartz.json b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/string/quartz.json new file mode 100644 index 00000000..8d97370e --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/sieve/soul_sand/string/quartz.json @@ -0,0 +1,13 @@ +{ + "type": "exdeorum:sieve", + "ingredient": { + "item": "minecraft:soul_sand" + }, + "mesh": "exdeorum:string_mesh", + "result": "minecraft:quartz", + "result_amount": { + "type": "minecraft:binomial", + "n": 1.0, + "p": 0.12 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/spruce_sieve.json b/src/generated/resources/data/exdeorum/recipes/spruce_sieve.json new file mode 100644 index 00000000..6b7dfbfd --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/spruce_sieve.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "I": { + "tag": "forge:rods/wooden" + }, + "O": { + "item": "minecraft:spruce_planks" + }, + "_": { + "item": "minecraft:spruce_slab" + } + }, + "pattern": [ + "O O", + "O_O", + "I I" + ], + "result": { + "item": "exdeorum:spruce_sieve" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/stone_watering_can.json b/src/generated/resources/data/exdeorum/recipes/stone_watering_can.json new file mode 100644 index 00000000..530325b0 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/stone_watering_can.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "tag": "minecraft:stone_tool_materials" + }, + "B": { + "item": "minecraft:bowl" + } + }, + "pattern": [ + "# ", + "#B#", + " # " + ], + "result": { + "item": "exdeorum:stone_watering_can" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/string_mesh.json b/src/generated/resources/data/exdeorum/recipes/string_mesh.json index 7daf74fb..4728120d 100644 --- a/src/generated/resources/data/exdeorum/recipes/string_mesh.json +++ b/src/generated/resources/data/exdeorum/recipes/string_mesh.json @@ -2,14 +2,14 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "s": { + "#": { "tag": "forge:string" } }, "pattern": [ - "sss", - "sss", - "sss" + "###", + "###", + "###" ], "result": { "item": "exdeorum:string_mesh" diff --git a/src/generated/resources/data/exdeorum/recipes/tuff.json b/src/generated/resources/data/exdeorum/recipes/tuff.json new file mode 100644 index 00000000..6b1e5a62 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/tuff.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "exdeorum:tuff_pebble" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "item": "minecraft:tuff" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/unfired_porcelain_bucket.json b/src/generated/resources/data/exdeorum/recipes/unfired_porcelain_bucket.json new file mode 100644 index 00000000..302f16a5 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/unfired_porcelain_bucket.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "exdeorum:porcelain_clay_ball" + } + }, + "pattern": [ + "# #", + " # " + ], + "result": { + "item": "exdeorum:unfired_porcelain_bucket" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/unfired_crucible.json b/src/generated/resources/data/exdeorum/recipes/unfired_porcelain_crucible.json similarity index 60% rename from src/generated/resources/data/exdeorum/recipes/unfired_crucible.json rename to src/generated/resources/data/exdeorum/recipes/unfired_porcelain_crucible.json index f1ea9964..699d1c1e 100644 --- a/src/generated/resources/data/exdeorum/recipes/unfired_crucible.json +++ b/src/generated/resources/data/exdeorum/recipes/unfired_porcelain_crucible.json @@ -3,10 +3,10 @@ "category": "misc", "key": { "m": { - "item": "exdeorum:porcelain_clay" + "item": "exdeorum:porcelain_clay_ball" }, "s": { - "item": "exdeorum:porcelain_clay" + "item": "exdeorum:porcelain_clay_ball" } }, "pattern": [ @@ -15,7 +15,7 @@ "sms" ], "result": { - "item": "exdeorum:unfired_crucible" + "item": "exdeorum:unfired_porcelain_crucible" }, "show_notification": true } \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/warped_sieve.json b/src/generated/resources/data/exdeorum/recipes/warped_sieve.json new file mode 100644 index 00000000..bb184719 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/warped_sieve.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "I": { + "tag": "forge:rods/wooden" + }, + "O": { + "item": "minecraft:warped_planks" + }, + "_": { + "item": "minecraft:warped_slab" + } + }, + "pattern": [ + "O O", + "O_O", + "I I" + ], + "result": { + "item": "exdeorum:warped_sieve" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/water_crucible/sweet_berries.json b/src/generated/resources/data/exdeorum/recipes/water_crucible/sweet_berries.json index 5c0829dd..391a2bf1 100644 --- a/src/generated/resources/data/exdeorum/recipes/water_crucible/sweet_berries.json +++ b/src/generated/resources/data/exdeorum/recipes/water_crucible/sweet_berries.json @@ -4,7 +4,12 @@ "Amount": 50, "FluidName": "minecraft:water" }, - "ingredient": { - "item": "minecraft:sweet_berries" - } + "ingredient": [ + { + "item": "minecraft:sweet_berries" + }, + { + "item": "minecraft:glow_berries" + } + ] } \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/recipes/wooden_watering_can.json b/src/generated/resources/data/exdeorum/recipes/wooden_watering_can.json new file mode 100644 index 00000000..59c34ea1 --- /dev/null +++ b/src/generated/resources/data/exdeorum/recipes/wooden_watering_can.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "tag": "minecraft:planks" + }, + "B": { + "item": "minecraft:bowl" + } + }, + "pattern": [ + "# ", + "#B#", + " # " + ], + "result": { + "item": "exdeorum:wooden_watering_can" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/exdeorum/tags/items/pebbles.json b/src/generated/resources/data/exdeorum/tags/items/pebbles.json index 9afd0317..4545804a 100644 --- a/src/generated/resources/data/exdeorum/tags/items/pebbles.json +++ b/src/generated/resources/data/exdeorum/tags/items/pebbles.json @@ -5,6 +5,9 @@ "exdeorum:granite_pebble", "exdeorum:andesite_pebble", "exdeorum:deepslate_pebble", - "exdeorum:tuff_pebble" + "exdeorum:tuff_pebble", + "exdeorum:calcite_pebble", + "exdeorum:blackstone_pebble", + "exdeorum:basalt_pebble" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/leaves.json b/src/generated/resources/data/minecraft/tags/blocks/leaves.json new file mode 100644 index 00000000..71b234f8 --- /dev/null +++ b/src/generated/resources/data/minecraft/tags/blocks/leaves.json @@ -0,0 +1,5 @@ +{ + "values": [ + "exdeorum:infested_leaves" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/mineable/hoe.json b/src/generated/resources/data/minecraft/tags/blocks/mineable/hoe.json new file mode 100644 index 00000000..71b234f8 --- /dev/null +++ b/src/generated/resources/data/minecraft/tags/blocks/mineable/hoe.json @@ -0,0 +1,5 @@ +{ + "values": [ + "exdeorum:infested_leaves" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json index ae26ecfe..0325eb07 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json +++ b/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -2,6 +2,6 @@ "values": [ "exdeorum:stone_barrel", "exdeorum:porcelain_crucible", - "exdeorum:unfired_crucible" + "exdeorum:unfired_porcelain_crucible" ] } \ No newline at end of file diff --git a/src/main/java/thedarkcolour/exdeorum/ExDeorum.java b/src/main/java/thedarkcolour/exdeorum/ExDeorum.java index 9c462952..3cc23d9a 100644 --- a/src/main/java/thedarkcolour/exdeorum/ExDeorum.java +++ b/src/main/java/thedarkcolour/exdeorum/ExDeorum.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum; import net.minecraftforge.api.distmarker.Dist; @@ -10,7 +28,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import thedarkcolour.exdeorum.client.ClientHandler; -import thedarkcolour.exdeorum.config.Config; +import thedarkcolour.exdeorum.config.EConfig; import thedarkcolour.exdeorum.event.EventHandler; import thedarkcolour.exdeorum.network.NetworkHandler; import thedarkcolour.exdeorum.registry.EBlockEntities; @@ -40,10 +58,10 @@ public ExDeorum() { // Game Events EventHandler.register(); // Client init - DistExecutor.safeRunWhenOn(Dist.CLIENT, () -> ClientHandler::register); + DistExecutor.safeRunWhenOn(Dist.CLIENT, () -> ClientHandlerRegistrar::register); // Config init - ModLoadingContext.get().registerConfig(ModConfig.Type.SERVER, Config.SERVER_SPEC); - ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, Config.CLIENT_SPEC); + ModLoadingContext.get().registerConfig(ModConfig.Type.SERVER, EConfig.SERVER_SPEC); + ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, EConfig.CLIENT_SPEC); } private static void createRegistries() { @@ -61,4 +79,10 @@ private static void createRegistries() { ERecipeSerializers.RECIPE_SERIALIZERS.register(modBus); ERecipeTypes.RECIPE_TYPES.register(modBus); } + + private interface ClientHandlerRegistrar { + private static void register() { + ClientHandler.register(); + } + } } diff --git a/src/main/java/thedarkcolour/exdeorum/asm/ASMHooks.java b/src/main/java/thedarkcolour/exdeorum/asm/ASMHooks.java new file mode 100644 index 00000000..acbd29db --- /dev/null +++ b/src/main/java/thedarkcolour/exdeorum/asm/ASMHooks.java @@ -0,0 +1,37 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package thedarkcolour.exdeorum.asm; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.levelgen.structure.Structure; +import thedarkcolour.exdeorum.voidworld.VoidChunkGenerator; + +public final class ASMHooks { + /** + * Called in {@link net.minecraft.world.level.levelgen.structure.structures.EndCityStructure#findGenerationPoint(Structure.GenerationContext)} + * to fix End Cities not generating in void worlds. + */ + public static BlockPos adjustPos(BlockPos pos, Structure.GenerationContext context) { + if (context.chunkGenerator().getClass() == VoidChunkGenerator.class) { + return new BlockPos(pos.getX(), 64, pos.getZ()); + } else { + return pos; + } + } +} diff --git a/src/main/java/thedarkcolour/exdeorum/block/AbstractCrucibleBlock.java b/src/main/java/thedarkcolour/exdeorum/block/AbstractCrucibleBlock.java index 2ccdf00b..f04bad69 100644 --- a/src/main/java/thedarkcolour/exdeorum/block/AbstractCrucibleBlock.java +++ b/src/main/java/thedarkcolour/exdeorum/block/AbstractCrucibleBlock.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.block; import net.minecraft.core.BlockPos; diff --git a/src/main/java/thedarkcolour/exdeorum/block/BarrelBlock.java b/src/main/java/thedarkcolour/exdeorum/block/BarrelBlock.java index a9cb6b2e..a0108246 100644 --- a/src/main/java/thedarkcolour/exdeorum/block/BarrelBlock.java +++ b/src/main/java/thedarkcolour/exdeorum/block/BarrelBlock.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.block; import net.minecraft.core.BlockPos; diff --git a/src/main/java/thedarkcolour/exdeorum/block/EBlock.java b/src/main/java/thedarkcolour/exdeorum/block/EBlock.java index 8bab4840..8c344a99 100644 --- a/src/main/java/thedarkcolour/exdeorum/block/EBlock.java +++ b/src/main/java/thedarkcolour/exdeorum/block/EBlock.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.block; import net.minecraft.core.BlockPos; diff --git a/src/main/java/thedarkcolour/exdeorum/block/EndCakeBlock.java b/src/main/java/thedarkcolour/exdeorum/block/EndCakeBlock.java new file mode 100644 index 00000000..10b09ee9 --- /dev/null +++ b/src/main/java/thedarkcolour/exdeorum/block/EndCakeBlock.java @@ -0,0 +1,98 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package thedarkcolour.exdeorum.block; + +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.stats.Stats; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.CakeBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.gameevent.GameEvent; +import net.minecraft.world.phys.BlockHitResult; +import thedarkcolour.exdeorum.tag.EItemTags; + +public class EndCakeBlock extends CakeBlock { + public EndCakeBlock(Properties properties) { + super(properties); + + registerDefaultState(getStateDefinition().any().setValue(BITES, 6)); + } + + @Override + public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + var stack = player.getItemInHand(hand); + + if (stack.is(EItemTags.END_CAKE_MATERIAL)) { + int bites = state.getValue(BITES); + + if (bites == 0) { + return InteractionResult.FAIL; + } else { + if (!level.isClientSide) { + if (!player.getAbilities().instabuild) { + stack.shrink(1); + } + level.setBlock(pos, state.setValue(BITES, bites - 1), 3); + } + + return InteractionResult.sidedSuccess(level.isClientSide); + } + } else if (!player.isShiftKeyDown()) { + int bites = state.getValue(BITES); + + if (!level.isClientSide) { + if (tryTeleport((ServerLevel) level, player)) { + player.awardStat(Stats.EAT_CAKE_SLICE); + player.getFoodData().eat(2, 0.1f); + level.gameEvent(player, GameEvent.EAT, pos); + + if (bites < 6) { + level.setBlock(pos, state.setValue(BITES, bites + 1), 3); + } else { + level.removeBlock(pos, false); + level.gameEvent(player, GameEvent.BLOCK_DESTROY, pos); + } + } + } + + return InteractionResult.sidedSuccess(level.isClientSide); + } + + return InteractionResult.PASS; + } + + private static boolean tryTeleport(ServerLevel level, Player player) { + if (level.dimension() != Level.END) { + if (player.canChangeDimensions()) { + var endLevel = level.getServer().getLevel(Level.END); + + if (endLevel != null) { + player.changeDimension(endLevel); + return true; + } + } + } + + return false; + } +} diff --git a/src/main/java/thedarkcolour/exdeorum/block/InfestedLeavesBlock.java b/src/main/java/thedarkcolour/exdeorum/block/InfestedLeavesBlock.java index afbaffd4..d74a35a6 100644 --- a/src/main/java/thedarkcolour/exdeorum/block/InfestedLeavesBlock.java +++ b/src/main/java/thedarkcolour/exdeorum/block/InfestedLeavesBlock.java @@ -1,6 +1,25 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.block; import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; import net.minecraft.util.RandomSource; import net.minecraft.world.entity.player.Player; @@ -10,6 +29,7 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.EntityBlock; import net.minecraft.world.level.block.LeavesBlock; +import net.minecraft.world.level.block.RenderShape; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityTicker; import net.minecraft.world.level.block.entity.BlockEntityType; @@ -19,6 +39,7 @@ import net.minecraft.world.phys.HitResult; import org.jetbrains.annotations.Nullable; import thedarkcolour.exdeorum.blockentity.InfestedLeavesBlockEntity; +import thedarkcolour.exdeorum.config.EConfig; import thedarkcolour.exdeorum.registry.EBlockEntities; public class InfestedLeavesBlock extends LeavesBlock implements EntityBlock { @@ -64,4 +85,9 @@ public void randomTick(BlockState state, ServerLevel level, BlockPos pos, Random level.removeBlock(pos, false); } } + + @Override + public RenderShape getRenderShape(BlockState pState) { + return EConfig.CLIENT.useFastInfestedLeaves.get() ? RenderShape.MODEL : RenderShape.INVISIBLE; + } } \ No newline at end of file diff --git a/src/main/java/thedarkcolour/exdeorum/block/LavaCrucibleBlock.java b/src/main/java/thedarkcolour/exdeorum/block/LavaCrucibleBlock.java index a5a0fbaa..97800d15 100644 --- a/src/main/java/thedarkcolour/exdeorum/block/LavaCrucibleBlock.java +++ b/src/main/java/thedarkcolour/exdeorum/block/LavaCrucibleBlock.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.block; import thedarkcolour.exdeorum.registry.EBlockEntities; diff --git a/src/main/java/thedarkcolour/exdeorum/block/SieveBlock.java b/src/main/java/thedarkcolour/exdeorum/block/SieveBlock.java index 6aef8cbe..45f3fc23 100644 --- a/src/main/java/thedarkcolour/exdeorum/block/SieveBlock.java +++ b/src/main/java/thedarkcolour/exdeorum/block/SieveBlock.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.block; import net.minecraft.core.BlockPos; diff --git a/src/main/java/thedarkcolour/exdeorum/block/UnfiredCrucibleBlock.java b/src/main/java/thedarkcolour/exdeorum/block/UnfiredCrucibleBlock.java index 41ef680a..d78116a1 100644 --- a/src/main/java/thedarkcolour/exdeorum/block/UnfiredCrucibleBlock.java +++ b/src/main/java/thedarkcolour/exdeorum/block/UnfiredCrucibleBlock.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.block; import net.minecraft.core.BlockPos; diff --git a/src/main/java/thedarkcolour/exdeorum/block/WaterCrucibleBlock.java b/src/main/java/thedarkcolour/exdeorum/block/WaterCrucibleBlock.java index ee4ca577..06b4588a 100644 --- a/src/main/java/thedarkcolour/exdeorum/block/WaterCrucibleBlock.java +++ b/src/main/java/thedarkcolour/exdeorum/block/WaterCrucibleBlock.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.block; import net.minecraft.core.BlockPos; diff --git a/src/main/java/thedarkcolour/exdeorum/block/package-info.java b/src/main/java/thedarkcolour/exdeorum/block/package-info.java index dfd4cbdd..2074503e 100644 --- a/src/main/java/thedarkcolour/exdeorum/block/package-info.java +++ b/src/main/java/thedarkcolour/exdeorum/block/package-info.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + @net.minecraft.MethodsReturnNonnullByDefault @javax.annotation.ParametersAreNonnullByDefault package thedarkcolour.exdeorum.block; diff --git a/src/main/java/thedarkcolour/exdeorum/blockentity/AbstractCrucibleBlockEntity.java b/src/main/java/thedarkcolour/exdeorum/blockentity/AbstractCrucibleBlockEntity.java index ff189d74..f0c8919a 100644 --- a/src/main/java/thedarkcolour/exdeorum/blockentity/AbstractCrucibleBlockEntity.java +++ b/src/main/java/thedarkcolour/exdeorum/blockentity/AbstractCrucibleBlockEntity.java @@ -1,5 +1,24 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.blockentity; +import com.mojang.serialization.codecs.EitherMapCodec; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; @@ -30,6 +49,7 @@ import net.minecraftforge.items.ItemStackHandler; import net.minecraftforge.registries.ForgeRegistries; import thedarkcolour.exdeorum.recipe.crucible.CrucibleRecipe; +import thedarkcolour.exdeorum.registry.EItems; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -136,8 +156,8 @@ private void tryMelt(ItemStack item, Consumer shrinkAction) { var melts = MELT_OVERRIDES.get(); if (melts.containsKey(meltItem)) { lastMelted = melts.get(meltItem); - } else if (meltItem instanceof BlockItem blockItem) { - lastMelted = blockItem.getBlock(); + } else if (meltItem.getClass() == BlockItem.class) { + lastMelted = ((BlockItem) meltItem).getBlock(); } else { // If we already have something else inside just use that instead of switching to default if (lastMelted == null) { @@ -162,7 +182,7 @@ public FluidTank getTank() { return tank; } - protected abstract Block getDefaultMeltBlock(); + public abstract Block getDefaultMeltBlock(); public Block getLastMelted() { return lastMelted; @@ -184,6 +204,12 @@ private static void addMeltOverrides(HashMap overrides) { overrides.put(Items.BIRCH_SAPLING, Blocks.BIRCH_LEAVES); overrides.put(Items.CHERRY_SAPLING, Blocks.CHERRY_LEAVES); overrides.put(Items.MANGROVE_PROPAGULE, Blocks.MANGROVE_LEAVES); + overrides.put(Items.SWEET_BERRIES, Blocks.SPRUCE_LEAVES); + overrides.put(Items.GLOW_BERRIES, Blocks.MOSS_BLOCK); + overrides.put(EItems.GRASS_SEEDS.get(), Blocks.GRASS_BLOCK); + overrides.put(EItems.MYCELIUM_SPORES.get(), Blocks.MYCELIUM); + overrides.put(EItems.WARPED_NYLIUM_SPORES.get(), Blocks.WARPED_NYLIUM); + overrides.put(EItems.CRIMSON_NYLIUM_SPORES.get(), Blocks.WARPED_NYLIUM); } private static class FluidHandler extends FluidTank { diff --git a/src/main/java/thedarkcolour/exdeorum/blockentity/BarrelBlockEntity.java b/src/main/java/thedarkcolour/exdeorum/blockentity/BarrelBlockEntity.java index faea82bb..d0a7410e 100644 --- a/src/main/java/thedarkcolour/exdeorum/blockentity/BarrelBlockEntity.java +++ b/src/main/java/thedarkcolour/exdeorum/blockentity/BarrelBlockEntity.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.blockentity; import net.minecraft.core.BlockPos; @@ -6,10 +24,12 @@ import net.minecraft.nbt.CompoundTag; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; +import net.minecraft.tags.FluidTags; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.BowlFoodItem; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; @@ -17,6 +37,7 @@ import net.minecraft.world.level.block.entity.BlockEntityTicker; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluids; +import net.minecraftforge.common.ForgeMod; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.capabilities.ForgeCapabilities; import net.minecraftforge.common.util.LazyOptional; @@ -26,10 +47,11 @@ import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.fluids.capability.templates.FluidTank; import net.minecraftforge.items.IItemHandler; +import net.minecraftforge.items.ItemHandlerHelper; import net.minecraftforge.items.ItemStackHandler; import org.jetbrains.annotations.NotNull; -import org.joml.Vector3i; import thedarkcolour.exdeorum.client.CompostColors; +import thedarkcolour.exdeorum.config.EConfig; import thedarkcolour.exdeorum.recipe.RecipeUtil; import thedarkcolour.exdeorum.registry.EBlockEntities; import thedarkcolour.exdeorum.registry.EFluids; @@ -38,7 +60,7 @@ import javax.annotation.Nullable; public class BarrelBlockEntity extends EBlockEntity { - private static final float PROGRESS_STEP = 1.0f / 300.0f; + private static final int MOSS_SPREAD_RANGE = 2; private final BarrelBlockEntity.ItemHandler item = new BarrelBlockEntity.ItemHandler(); private final BarrelBlockEntity.FluidHandler tank = new BarrelBlockEntity.FluidHandler(); @@ -111,7 +133,7 @@ public boolean isEmptySolids() { } public boolean hasFullWater() { - return tank.getFluidAmount() == 1000 && tank.getFluid().getFluid() == Fluids.WATER; + return tank.getFluidAmount() == 1000 && tank.getFluid().getFluid().is(FluidTags.WATER); } // Burning temp of wood according to google is 300 C or ~575 kelvin @@ -144,7 +166,7 @@ private void setItem(ItemStack item) { public InteractionResult use(Level level, BlockPos pos, Player player, InteractionHand hand) { // Collect an item if (!getItem().isEmpty()) { - return giveResultItem(level, pos, player); + return giveResultItem(level, pos); } // Handle item fluid interaction @@ -162,49 +184,21 @@ public InteractionResult use(Level level, BlockPos pos, Player player, Interacti var playerItem = player.getItemInHand(hand); if (!level.isClientSide) { - var remainder = item.insertItem(0, player.getAbilities().instabuild ? playerItem.copy() : playerItem, false); + var handItem = item.insertItem(0, player.getAbilities().instabuild ? playerItem.copy() : playerItem, false); + if (!player.getAbilities().instabuild) { - player.setItemInHand(hand, remainder); + player.setItemInHand(hand, handItem); + giveResultItem(level, pos); } } return InteractionResult.sidedSuccess(level.isClientSide); } - private void addCompost(ItemStack playerItem, int volume, boolean consume) { - int oldCompost = compost; - compost = (short) Math.min(1000, compost + volume); - - if (compost != 0) { - if (!CompostColors.isLoaded()) { - CompostColors.loadColors(); - } - - float weightNew = (float) (compost - oldCompost) / compost; - float weightOld = 1 - weightNew; - var color = CompostColors.COLORS.getOrDefault(playerItem.getItem(), new Vector3i(53, 168, 42)); - - r = (short) (weightNew * color.x + weightOld * r); - g = (short) (weightNew * color.y + weightOld * g); - b = (short) (weightNew * color.z + weightOld * b); - - // Consume item - if (consume) { - playerItem.shrink(1); - } - } - - level.playSound(null, worldPosition, SoundEvents.COMPOSTER_FILL, SoundSource.BLOCKS); - } - // Pops the item out of the barrel (ex. dirt that has finished composting) - private InteractionResult giveResultItem(Level level, BlockPos pos, Player player) { - var rand = level.random; + private InteractionResult giveResultItem(Level level, BlockPos pos) { if (!level.isClientSide) { - // Pop out item - var itemEntity = new ItemEntity(level, pos.getX() + 0.5, pos.getY() + 1.5, pos.getZ() + 0.5, item.extract(false)); - itemEntity.setDeltaMovement(rand.nextGaussian() * 0.05, 0.2, rand.nextGaussian() * 0.05); - level.addFreshEntity(itemEntity); + popOutItem(level, pos, item.extract(false)); // Empty contents setItem(ItemStack.EMPTY); @@ -214,14 +208,22 @@ private InteractionResult giveResultItem(Level level, BlockPos pos, Player playe return InteractionResult.sidedSuccess(level.isClientSide); } + private static void popOutItem(Level level, BlockPos pos, ItemStack stack) { + if (!level.isClientSide && !stack.isEmpty()) { + var rand = level.random; + var itemEntity = new ItemEntity(level, pos.getX() + 0.5, pos.getY() + 1.5, pos.getZ() + 0.5, stack); + itemEntity.setDeltaMovement(rand.nextGaussian() * 0.05, 0.2, rand.nextGaussian() * 0.05); + level.addFreshEntity(itemEntity); + } + } + /** * @param input The input item to craft with * @param simulate Whether the craft should actually take place - * @return The resulting item after crafting + * @return Whether a craft was made or is possible */ - private ItemStack tryCrafting(ItemStack input, boolean simulate) { + private boolean tryCrafting(ItemStack input, boolean simulate) { boolean crafted = false; - var remainder = input.getCraftingRemainingItem(); if (!tank.isEmpty()) { crafted = tryMixing(input, simulate); } else if (!isComposting()) { @@ -232,9 +234,9 @@ private ItemStack tryCrafting(ItemStack input, boolean simulate) { if (!simulate) { markUpdated(); } - return remainder; + return true; } else { - return input; + return false; } } @@ -244,17 +246,16 @@ private ItemStack tryCrafting(ItemStack input, boolean simulate) { * @return Whether something was mixed (if simulated, whether the mix is possible) */ private boolean tryMixing(ItemStack playerItem, boolean simulate) { + if (isBurning()) { + return false; + } + var recipe = RecipeUtil.getBarrelMixingRecipe(level.getRecipeManager(), playerItem, this.tank.getFluid()); if (recipe != null) { - if (isBurning()) { - return false; - } if (!simulate) { - // Consumer player input - playerItem.shrink(1); // Empty barrel - tank.setFluid(FluidStack.EMPTY); + tank.drain(recipe.fluidAmount, IFluidHandler.FluidAction.EXECUTE); // Replace fluid with result setItem(new ItemStack(recipe.result)); level.playSound(null, worldPosition, SoundEvents.AMBIENT_UNDERWATER_EXIT, SoundSource.BLOCKS, 0.8f, 0.8f); @@ -272,7 +273,7 @@ private boolean tryComposting(ItemStack stack, boolean simulate) { } else { var recipe = RecipeUtil.getBarrelCompostRecipe(stack); if (recipe != null) { - addCompost(stack, recipe.getVolume(), true); + addCompost(stack, recipe.getVolume()); return true; } else { return false; @@ -280,6 +281,27 @@ private boolean tryComposting(ItemStack stack, boolean simulate) { } } + private void addCompost(ItemStack playerItem, int volume) { + int oldCompost = compost; + compost = (short) Math.min(1000, compost + volume); + + if (compost != 0) { + if (!CompostColors.isLoaded()) { + CompostColors.loadColors(); + } + + float weightNew = (float) (compost - oldCompost) / compost; + float weightOld = 1 - weightNew; + var color = CompostColors.COLORS.getOrDefault(playerItem.getItem(), CompostColors.DEFAULT_COLOR); + + r = (short) (weightNew * color.x + weightOld * r); + g = (short) (weightNew * color.y + weightOld * g); + b = (short) (weightNew * color.z + weightOld * b); + } + + level.playSound(null, worldPosition, SoundEvents.COMPOSTER_FILL, SoundSource.BLOCKS); + } + public static class Ticker implements BlockEntityTicker { @Override public void tick(Level level, BlockPos pos, BlockState state, BarrelBlockEntity barrel) { @@ -292,7 +314,6 @@ public void tick(Level level, BlockPos pos, BlockState state, BarrelBlockEntity var mycelium = 0f; for (BlockPos cursor : BlockPos.betweenClosed(pos.getX() - 1, pos.getY() - 1, pos.getZ() - 1, pos.getX() + 1, pos.getY() + 1, pos.getZ() + 1)) { - // todo make this not hardcoded if (level.getBlockState(cursor).getBlock() == Blocks.MYCELIUM) { mycelium += 0.15f; @@ -310,20 +331,32 @@ public void tick(Level level, BlockPos pos, BlockState state, BarrelBlockEntity } } - if (barrel.progress != (barrel.progress += mycelium * PROGRESS_STEP)) { - barrel.markUpdated(); - } + if (barrel.tank.getFluid().getFluid().getFluidType() == ForgeMod.WATER_TYPE.get()) { + if (mycelium == 0 && state.ignitedByLava() && rand.nextInt(500) == 0) { + var randomPos = pos.offset(rand.nextIntBetweenInclusive(-MOSS_SPREAD_RANGE, MOSS_SPREAD_RANGE), -1, rand.nextIntBetweenInclusive(-MOSS_SPREAD_RANGE, MOSS_SPREAD_RANGE)); + var randomBlock = level.getBlockState(randomPos).getBlock(); - if (barrel.progress >= 1.0f) { - // Reset progress - barrel.progress = 0.0f; + if (randomBlock == Blocks.COBBLESTONE) { + level.setBlock(randomPos, Blocks.MOSSY_COBBLESTONE.defaultBlockState(), 3); + } else if (randomBlock == Blocks.STONE_BRICKS) { + level.setBlock(randomPos, Blocks.MOSSY_STONE_BRICKS.defaultBlockState(), 3); + } + } - barrel.tank.setFluid(new FluidStack(EFluids.WITCH_WATER_STILL.get(), barrel.tank.getFluidAmount())); - } + if (barrel.progress != (barrel.progress += mycelium * getProgressStep())) { + barrel.markUpdated(); + } + if (barrel.progress >= 1.0f) { + // Reset progress + barrel.progress = 0.0f; + level.playSound(null, pos, SoundEvents.BREWING_STAND_BREW, SoundSource.BLOCKS, 1.0f, 0.6f); + barrel.tank.setFluid(new FluidStack(EFluids.WITCH_WATER.get(), barrel.tank.getFluidAmount())); + } + } } else if (isHotFluid(barrel.tank.getFluid().getFluid().getFluidType())) { if (state.ignitedByLava()) { - if ((barrel.progress += PROGRESS_STEP) >= 1.0f) { + if ((barrel.progress += getProgressStep()) >= 1.0f) { if (barrel.tank.getFluidAmount() == 1000) { var fluid = barrel.tank.getFluid().getFluid(); level.setBlockAndUpdate(pos, fluid.getFluidType().getBlockForFluidState(level, pos, fluid.defaultFluidState())); @@ -333,6 +366,14 @@ public void tick(Level level, BlockPos pos, BlockState state, BarrelBlockEntity } barrel.markUpdated(); } + } else if (level.isRainingAt(pos.above()) && barrel.item.getStackInSlot(0).isEmpty() && barrel.compost == 0) { + if (barrel.tank.isEmpty()) { + barrel.tank.setFluid(new FluidStack(Fluids.WATER, 1)); + barrel.markUpdated(); + } else if (barrel.tank.getFluid().getFluid() == Fluids.WATER) { + barrel.tank.getFluid().grow(1); + barrel.markUpdated(); + } } } else { barrel.spawnBurningParticles(); @@ -340,8 +381,12 @@ public void tick(Level level, BlockPos pos, BlockState state, BarrelBlockEntity } } + private static float getProgressStep() { + return EConfig.SERVER.barrelProgressStep.get().floatValue(); + } + private void doCompost() { - progress += PROGRESS_STEP; + progress += getProgressStep(); markUpdated(); if (progress >= 1.0f) { @@ -352,6 +397,10 @@ private void doCompost() { } } + private static ItemStack getRemainderItem(ItemStack stack) { + return (stack.getItem() instanceof BowlFoodItem || stack.getItem() == Items.SUSPICIOUS_STEW) ? new ItemStack(Items.BOWL) : stack.getCraftingRemainingItem(); + } + // Inner class private class ItemHandler extends ItemStackHandler { @Override @@ -361,11 +410,9 @@ protected int getStackLimit(int slot, @Nonnull ItemStack stack) { @Override public boolean isItemValid(int slot, @Nonnull ItemStack stack) { - // if the resulting item from crafting is different (ex. EMPTY or bucket) then we can craft with it - return !ItemStack.matches(tryCrafting(stack, true), stack); + return tryCrafting(stack, true); } - // Copy of ItemStackHandler.insertItem which handles barrel crafting remainders better @Override public @NotNull ItemStack insertItem(int slot, @NotNull ItemStack stack, boolean simulate) { if (stack.isEmpty()) @@ -374,7 +421,16 @@ public boolean isItemValid(int slot, @Nonnull ItemStack stack) { if (!stacks.get(slot).isEmpty()) return stack; - return tryCrafting(stack, simulate); + if (tryCrafting(stack, simulate)) { + if (stack.getCount() == 1) { + return getRemainderItem(stack); + } else { + popOutItem(level, worldPosition, getRemainderItem(stack)); + return ItemHandlerHelper.copyStackWithSize(stack, stack.getCount() - 1); + } + } else { + return stack; + } } public ItemStack extract(boolean simulate) { diff --git a/src/main/java/thedarkcolour/exdeorum/blockentity/EBlockEntity.java b/src/main/java/thedarkcolour/exdeorum/blockentity/EBlockEntity.java index 2e3cd878..a4dd7ba3 100644 --- a/src/main/java/thedarkcolour/exdeorum/blockentity/EBlockEntity.java +++ b/src/main/java/thedarkcolour/exdeorum/blockentity/EBlockEntity.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.blockentity; import net.minecraft.core.BlockPos; diff --git a/src/main/java/thedarkcolour/exdeorum/blockentity/InfestedLeavesBlockEntity.java b/src/main/java/thedarkcolour/exdeorum/blockentity/InfestedLeavesBlockEntity.java index a5fcf8df..38fd3459 100644 --- a/src/main/java/thedarkcolour/exdeorum/blockentity/InfestedLeavesBlockEntity.java +++ b/src/main/java/thedarkcolour/exdeorum/blockentity/InfestedLeavesBlockEntity.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.blockentity; import net.minecraft.core.BlockPos; @@ -7,23 +25,30 @@ import net.minecraft.nbt.NbtUtils; import net.minecraft.tags.BlockTags; import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.LeavesBlock; import net.minecraft.world.level.block.entity.BlockEntityTicker; import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.client.model.data.ModelData; +import net.minecraftforge.client.model.data.ModelProperty; +import org.jetbrains.annotations.NotNull; import thedarkcolour.exdeorum.block.InfestedLeavesBlock; import thedarkcolour.exdeorum.registry.EBlockEntities; import thedarkcolour.exdeorum.registry.EBlocks; public class InfestedLeavesBlockEntity extends EBlockEntity { public static final float PROGRESS_INTERVAL = 0.005f; - public static final int SPREAD_INTERVAL = 50; + public static final int SPREAD_INTERVAL = 40; + + public static final ModelProperty MIMIC_PROPERTY = new ModelProperty<>(); // A percentage of how much this leaf is infested + // todo change this to a short between 0 and 16000 private float progress; // A timer that determines when this block should try to spread private int spreadTimer; // The state this block should render as - private BlockState mimic; + private BlockState mimic = Blocks.OAK_LEAVES.defaultBlockState(); public InfestedLeavesBlockEntity(BlockPos pos, BlockState state) { super(EBlockEntities.INFESTED_LEAVES.get(), pos, state); @@ -40,8 +65,8 @@ private void trySpread() { BlockPos targetPos = getBlockPos().offset(x, y, z); BlockState state = level.getBlockState(targetPos); - // Test block at the position - if (state.is(BlockTags.LEAVES)) { + // DO NOT SPREAD TO ALREADY INFESTED LEAVES + if (state.is(BlockTags.LEAVES) && state.getBlock() != EBlocks.INFESTED_LEAVES.get()) { // Spread and keep distance/persistent properties level.setBlock(targetPos, EBlocks.INFESTED_LEAVES.get().defaultBlockState() .setValue(LeavesBlock.DISTANCE, state.getValue(LeavesBlock.DISTANCE)) @@ -72,6 +97,9 @@ public void load(CompoundTag nbt) { public void saveAdditional(CompoundTag nbt) { super.saveAdditional(nbt); + if (mimic == null || mimic.getBlock() == EBlocks.INFESTED_LEAVES.get()) { + mimic = Blocks.OAK_LEAVES.defaultBlockState(); + } nbt.put("mimic", NbtUtils.writeBlockState(mimic)); nbt.putFloat("progress", progress); } @@ -88,14 +116,20 @@ public void setMimic(BlockState mimic) { this.mimic = mimic; } + @Override + public @NotNull ModelData getModelData() { + return ModelData.builder().with(MIMIC_PROPERTY, mimic).build(); + } + public static class Ticker implements BlockEntityTicker { @Override public void tick(Level level, BlockPos pos, BlockState state, InfestedLeavesBlockEntity leaves) { // Do progress if (leaves.progress < 1.0f) { leaves.progress = Math.min(1.0f, leaves.progress + PROGRESS_INTERVAL); + if (leaves.progress == 1.0f) { - level.setBlock(pos, state.setValue(InfestedLeavesBlock.FULLY_INFESTED, true), 3); + level.setBlock(pos, state.setValue(InfestedLeavesBlock.FULLY_INFESTED, true), 1); } } diff --git a/src/main/java/thedarkcolour/exdeorum/blockentity/LavaCrucibleBlockEntity.java b/src/main/java/thedarkcolour/exdeorum/blockentity/LavaCrucibleBlockEntity.java index 9cda46d0..655ba103 100644 --- a/src/main/java/thedarkcolour/exdeorum/blockentity/LavaCrucibleBlockEntity.java +++ b/src/main/java/thedarkcolour/exdeorum/blockentity/LavaCrucibleBlockEntity.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.blockentity; import it.unimi.dsi.fastutil.objects.Object2IntMap; @@ -6,23 +24,49 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.CampfireBlock; import net.minecraft.world.level.block.state.BlockState; import thedarkcolour.exdeorum.recipe.RecipeUtil; import thedarkcolour.exdeorum.recipe.crucible.CrucibleRecipe; import thedarkcolour.exdeorum.registry.EBlockEntities; +import java.util.function.Predicate; + public class LavaCrucibleBlockEntity extends AbstractCrucibleBlockEntity { // todo add KubeJS support for this - private static final Object2IntMap HEAT_REGISTRY = new Object2IntOpenHashMap<>(); + private static final Object2IntMap HEAT_REGISTRY = new Object2IntOpenHashMap<>(); static { - HEAT_REGISTRY.put(Blocks.TORCH, 1); - HEAT_REGISTRY.put(Blocks.WALL_TORCH, 1); - HEAT_REGISTRY.put(Blocks.SOUL_TORCH, 2); - HEAT_REGISTRY.put(Blocks.SOUL_WALL_TORCH, 2); - HEAT_REGISTRY.put(Blocks.LAVA, 3); - HEAT_REGISTRY.put(Blocks.FIRE, 5); - HEAT_REGISTRY.put(Blocks.SOUL_FIRE, 7); + putDefaultHeatValues(); + } + + private static void putDefaultHeatValues() { + HEAT_REGISTRY.clear(); + + putAllStates(Blocks.TORCH, 1); + putAllStates(Blocks.WALL_TORCH, 1); + putAllStates(Blocks.LANTERN, 1); + putAllStates(Blocks.SOUL_TORCH, 2); + putAllStates(Blocks.SOUL_WALL_TORCH, 2); + putAllStates(Blocks.SOUL_LANTERN, 2); + putAllStates(Blocks.LAVA, 3); + putAllStates(Blocks.FIRE, 5); + putAllStates(Blocks.SOUL_FIRE, 5); + + putStates(Blocks.CAMPFIRE, 2, state -> state.getValue(CampfireBlock.LIT)); + putStates(Blocks.SOUL_CAMPFIRE, 2, state -> state.getValue(CampfireBlock.LIT)); + } + + public static void putAllStates(Block block, int heat) { + putStates(block, heat, state -> true); + } + + public static void putStates(Block block, int heat, Predicate predicate) { + for (var state : block.getStateDefinition().getPossibleStates()) { + if (predicate.test(state)) { + HEAT_REGISTRY.put(state, heat); + } + } } public LavaCrucibleBlockEntity(BlockPos pos, BlockState state) { @@ -33,7 +77,7 @@ public LavaCrucibleBlockEntity(BlockPos pos, BlockState state) { public int getMeltingRate() { BlockState state = level.getBlockState(getBlockPos().below()); - return HEAT_REGISTRY.getInt(state.getBlock()); + return HEAT_REGISTRY.getInt(state); } @Override @@ -42,7 +86,7 @@ protected CrucibleRecipe getRecipe(ItemStack item) { } @Override - protected Block getDefaultMeltBlock() { + public Block getDefaultMeltBlock() { return Blocks.COBBLESTONE; } } diff --git a/src/main/java/thedarkcolour/exdeorum/blockentity/SieveBlockEntity.java b/src/main/java/thedarkcolour/exdeorum/blockentity/SieveBlockEntity.java index 54e8548d..6f17ee56 100644 --- a/src/main/java/thedarkcolour/exdeorum/blockentity/SieveBlockEntity.java +++ b/src/main/java/thedarkcolour/exdeorum/blockentity/SieveBlockEntity.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.blockentity; import net.minecraft.core.BlockPos; @@ -13,6 +31,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.storage.loot.LootParams; +import thedarkcolour.exdeorum.config.EConfig; import thedarkcolour.exdeorum.recipe.RecipeUtil; import thedarkcolour.exdeorum.recipe.sieve.SieveRecipe; import thedarkcolour.exdeorum.registry.EBlockEntities; @@ -28,7 +47,7 @@ public class SieveBlockEntity extends EBlockEntity { private ItemStack mesh = ItemStack.EMPTY; private short progress = 0; // Max is 100 private float efficiency = 1f; - private float fortune = 1f; + private int fortune = 0; public SieveBlockEntity(BlockPos pos, BlockState state) { super(EBlockEntities.SIEVE.get(), pos, state); @@ -98,50 +117,56 @@ public InteractionResult use(Level level, Player player, InteractionHand hand) { playerItem = this.insertContents(player, hand); markUpdated(); - var cursor = worldPosition.mutable().move(-1, 0, -1); + if (EConfig.SERVER.simultaneousSieveUsage.get()) { + var cursor = worldPosition.mutable().move(-1, 0, -1); - // Fill adjacent sieves - otherSieves: - for (int x = -1; x <= 1; x++) { - for (int z = -1; z <= 1; z++) { - if (playerItem.isEmpty()) { - break otherSieves; - } + // Fill adjacent sieves + otherSieves: + for (int x = -1; x <= 1; x++) { + for (int z = -1; z <= 1; z++) { + if (playerItem.isEmpty()) { + break otherSieves; + } - if ((x | z) != 0) { - if (level.getBlockEntity(cursor) instanceof SieveBlockEntity other) { - if (other.contents.isEmpty()) { - if (this.mesh.getItem() == other.mesh.getItem()) { - playerItem = other.insertContents(player, hand); - other.markUpdated(); + if ((x | z) != 0) { + if (level.getBlockEntity(cursor) instanceof SieveBlockEntity other) { + if (other.contents.isEmpty()) { + if (this.mesh.getItem() == other.mesh.getItem()) { + playerItem = other.insertContents(player, hand); + other.markUpdated(); + } } } } - } - cursor.move(0, 0, 1); + cursor.move(0, 0, 1); + } + cursor.move(1, 0, -3); } - cursor.move(1, 0, -3); } } } } else { - var cursor = worldPosition.mutable().move(-1, 0, -1); - - // Sieve with adjacent sieves - for (int x = -1; x <= 1; x++) { - for (int z = -1; z <= 1; z++) { - if (level.getBlockEntity(cursor) instanceof SieveBlockEntity other) { - if (!other.contents.isEmpty()) { - if (this.mesh.getItem() == other.mesh.getItem()) { - other.performSift(player); + if (EConfig.SERVER.simultaneousSieveUsage.get()) { + var cursor = worldPosition.mutable().move(-1, 0, -1); + + // Sieve with adjacent sieves + for (int x = -1; x <= 1; x++) { + for (int z = -1; z <= 1; z++) { + if (level.getBlockEntity(cursor) instanceof SieveBlockEntity other) { + if (!other.contents.isEmpty()) { + if (this.mesh.getItem() == other.mesh.getItem()) { + other.performSift(player); + } } } - } - cursor.move(0, 0, 1); + cursor.move(0, 0, 1); + } + cursor.move(1, 0, -3); } - cursor.move(1, 0, -3); + } else { + performSift(player); } } @@ -207,9 +232,8 @@ private InteractionResult removeMesh() { private void setMesh(ItemStack mesh) { this.mesh = mesh; - this.efficiency = 1f + mesh.getEnchantmentLevel(Enchantments.BLOCK_EFFICIENCY) * 0.08f; - // Fortune III increases drops by 120% (you should enchant your meshes!) - this.fortune = 1f + mesh.getEnchantmentLevel(Enchantments.BLOCK_FORTUNE) * 0.4f; + this.efficiency = 1f + mesh.getEnchantmentLevel(Enchantments.BLOCK_EFFICIENCY) * 0.17f; + this.fortune = mesh.getEnchantmentLevel(Enchantments.BLOCK_FORTUNE); } private void giveItems(Player player) { @@ -220,6 +244,12 @@ private void giveItems(Player player) { for (SieveRecipe recipe : RecipeUtil.getSieveRecipes(level.getRecipeManager(), this.mesh.getItem(), this.contents)) { var amount = recipe.resultAmount.getInt(context); + for (int i = 0; i < this.fortune; i++) { + if (rand.nextFloat() < 0.3f) { + amount += recipe.resultAmount.getInt(context); + } + } + if (amount >= 1) { var itemEntity = new ItemEntity(this.level, pos.getX() + 0.5, pos.getY() + 1.5, pos.getZ() + 0.5, new ItemStack(recipe.result, amount)); itemEntity.setDeltaMovement(rand.nextGaussian() * 0.05, 0.2, rand.nextGaussian() * 0.05); diff --git a/src/main/java/thedarkcolour/exdeorum/blockentity/WaterCrucibleBlockEntity.java b/src/main/java/thedarkcolour/exdeorum/blockentity/WaterCrucibleBlockEntity.java index 6fd3cdc7..6217b300 100644 --- a/src/main/java/thedarkcolour/exdeorum/blockentity/WaterCrucibleBlockEntity.java +++ b/src/main/java/thedarkcolour/exdeorum/blockentity/WaterCrucibleBlockEntity.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.blockentity; import net.minecraft.core.BlockPos; @@ -20,7 +38,7 @@ protected CrucibleRecipe getRecipe(ItemStack item) { } @Override - protected Block getDefaultMeltBlock() { + public Block getDefaultMeltBlock() { return Blocks.OAK_LEAVES; } } diff --git a/src/main/java/thedarkcolour/exdeorum/client/ClientHandler.java b/src/main/java/thedarkcolour/exdeorum/client/ClientHandler.java index 7b479793..77981c3f 100644 --- a/src/main/java/thedarkcolour/exdeorum/client/ClientHandler.java +++ b/src/main/java/thedarkcolour/exdeorum/client/ClientHandler.java @@ -1,24 +1,51 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.client; +import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.vertex.DefaultVertexFormat; +import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ItemBlockRenderTypes; import net.minecraft.client.renderer.RenderType; -import net.minecraft.util.Mth; +import net.minecraft.client.renderer.ShaderInstance; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.Unit; import net.minecraftforge.client.event.ClientPlayerNetworkEvent; import net.minecraftforge.client.event.EntityRenderersEvent; import net.minecraftforge.client.event.RegisterClientReloadListenersEvent; +import net.minecraftforge.client.event.RegisterShadersEvent; import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fml.event.config.ModConfigEvent; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; +import thedarkcolour.exdeorum.ExDeorum; import thedarkcolour.exdeorum.client.ter.BarrelRenderer; import thedarkcolour.exdeorum.client.ter.CrucibleRenderer; import thedarkcolour.exdeorum.client.ter.InfestedLeavesRenderer; import thedarkcolour.exdeorum.client.ter.SieveRenderer; +import thedarkcolour.exdeorum.config.EConfig; import thedarkcolour.exdeorum.network.ClientMessageHandler; import thedarkcolour.exdeorum.registry.EBlockEntities; import thedarkcolour.exdeorum.registry.EFluids; -import java.awt.Color; -import java.util.concurrent.CompletableFuture; +import java.io.IOException; +import java.io.ObjectInputFilter; public class ClientHandler { public static void register() { @@ -27,14 +54,16 @@ public static void register() { modBus.addListener(ClientHandler::clientSetup); modBus.addListener(ClientHandler::registerRenderers); + modBus.addListener(ClientHandler::registerShaders); modBus.addListener(ClientHandler::addClientReloadListeners); fmlBus.addListener(ClientHandler::onPlayerRespawn); fmlBus.addListener(ClientHandler::onPlayerLogout); + modBus.addListener(ClientHandler::onConfigChanged); } private static void addClientReloadListeners(RegisterClientReloadListenersEvent event) { event.registerReloadListener((prepBarrier, resourceManager, prepProfiler, reloadProfiler, backgroundExecutor, gameExecutor) -> { - return CompletableFuture.allOf().thenCompose(prepBarrier::wait).thenRunAsync(RenderUtil::reload, gameExecutor); + return prepBarrier.wait(Unit.INSTANCE).thenRunAsync(RenderUtil::reload, gameExecutor); }); } @@ -52,6 +81,14 @@ private static void onPlayerLogout(ClientPlayerNetworkEvent.LoggingOut event) { ClientMessageHandler.isInVoidWorld = false; } + private static void onConfigChanged(ModConfigEvent.Reloading event) { + if (event.getConfig().getSpec() == EConfig.CLIENT_SPEC) { + RenderSystem.recordRenderCall(() -> { + Minecraft.getInstance().levelRenderer.allChanged(); + }); + } + } + private static void registerRenderers(EntityRenderersEvent.RegisterRenderers event) { event.registerBlockEntityRenderer(EBlockEntities.INFESTED_LEAVES.get(), ctx -> new InfestedLeavesRenderer()); event.registerBlockEntityRenderer(EBlockEntities.BARREL.get(), BarrelRenderer::new); @@ -60,13 +97,20 @@ private static void registerRenderers(EntityRenderersEvent.RegisterRenderers eve event.registerBlockEntityRenderer(EBlockEntities.SIEVE.get(), SieveRenderer::new); } + private static void registerShaders(RegisterShadersEvent event) { + try { + // NEW_ENTITY is BLOCK except it also uses UV1 (overlay coordinates) + event.registerShader(new ShaderInstance(event.getResourceProvider(), new ResourceLocation(ExDeorum.ID, "rendertype_tinted_cutout_mipped"), DefaultVertexFormat.NEW_ENTITY), (instance) -> { + RenderUtil.renderTypeTintedCutoutMippedShader = instance; + }); + } catch (IOException e) { + ExDeorum.LOGGER.error("Unable to load tinted shader", e); + } + } + private static void setRenderLayers() { // Fluids - ItemBlockRenderTypes.setRenderLayer(EFluids.WITCH_WATER_STILL.get(), RenderType.translucent()); + ItemBlockRenderTypes.setRenderLayer(EFluids.WITCH_WATER.get(), RenderType.translucent()); ItemBlockRenderTypes.setRenderLayer(EFluids.WITCH_WATER_FLOWING.get(), RenderType.translucent()); } - - public static Color getRainbowColor(long time, float partialTicks) { - return Color.getHSBColor((180 * Mth.sin((time + partialTicks) / 16.0f) - 180) / 360.0f, 0.7f, 0.8f); - } } diff --git a/src/main/java/thedarkcolour/exdeorum/client/CompostColors.java b/src/main/java/thedarkcolour/exdeorum/client/CompostColors.java index de91d557..f496c4a1 100644 --- a/src/main/java/thedarkcolour/exdeorum/client/CompostColors.java +++ b/src/main/java/thedarkcolour/exdeorum/client/CompostColors.java @@ -1,20 +1,50 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.client; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.JsonPrimitive; import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.platform.NativeImage; import it.unimi.dsi.fastutil.objects.Object2ObjectMap; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; +import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet; +import it.unimi.dsi.fastutil.objects.ObjectSet; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.GsonHelper; import net.minecraft.world.inventory.InventoryMenu; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.client.model.data.ModelData; import net.minecraftforge.fml.ModList; +import net.minecraftforge.fml.loading.FMLEnvironment; import net.minecraftforge.registries.ForgeRegistries; +import org.apache.commons.io.IOUtils; +import org.jetbrains.annotations.Nullable; import org.joml.Vector3i; import thedarkcolour.exdeorum.ExDeorum; +import javax.imageio.ImageIO; import java.awt.Color; import java.io.BufferedReader; import java.io.BufferedWriter; @@ -24,15 +54,22 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.NoSuchElementException; import java.util.StringTokenizer; +import java.util.stream.Collectors; // ExDeorum comes with a precomputed list of vanilla colors, since textures don't exist on the server. // However, modded textures usually DO exist on the server, so their colors can be computed by the server once -// and stored in a cache file which is regenerated whenever number of mods or versions of mods change. +// and stored in a file which can be configured by the user after the fact. public class CompostColors { public static final String VANILLA_COMPOST_COLORS_FILE = "vanilla_compost_colors.txt"; + public static final Path COMPOST_COLORS_CONFIGS = Paths.get("config/exdeorum/compost_colors"); public static final Object2ObjectMap COLORS = new Object2ObjectOpenHashMap<>(); + public static final Vector3i DEFAULT_COLOR = new Vector3i(53, 168, 42); public static void loadColors() { COLORS.clear(); @@ -41,10 +78,6 @@ public static void loadColors() { loadModded(); } - private static void loadModded() { - - } - public static boolean isLoaded() { return !COLORS.isEmpty(); } @@ -54,44 +87,18 @@ private static void loadVanilla() { if (!Files.exists(vanillaColors)) { if (ExDeorum.DEBUG) { - computeVanilla(); - exportVanilla(); + debugCompute(); + export("minecraft"); } else { ExDeorum.LOGGER.error("Failed to load vanilla colors!"); } } else { - readVanilla(vanillaColors); + readColorFile("minecraft", vanillaColors); } } - private static void readVanilla(Path vanillaColors) { - try (var stream = Files.newInputStream(vanillaColors)) { - try (var streamReader = new InputStreamReader(stream)) { - try (var reader = new BufferedReader(streamReader)) { - String line; - - while ((line = reader.readLine()) != null) { - var tokenizer = new StringTokenizer(line, ", #"); - var item = ForgeRegistries.ITEMS.getValue(new ResourceLocation(tokenizer.nextToken())); - String token = tokenizer.nextToken(); - var color = Integer.parseInt(token, 16); - - if (item != null) { - COLORS.put(item, new Vector3i( - (color >> 16) & 255, - (color >> 8) & 255, - (color) & 255 - )); - } - } - } - } - } catch (IOException e) { - ExDeorum.LOGGER.error("Error reading vanilla colors file", e); - } - } - - private static void computeVanilla() { + // Instead of reading from files, this method pulls colors directly from the texture atlas. + private static void debugCompute() { var atlas = Minecraft.getInstance().getModelManager().getAtlas(InventoryMenu.BLOCK_ATLAS); int atlasWidth = atlas.width; int atlasHeight = atlas.height; @@ -113,66 +120,283 @@ private static void computeVanilla() { int width = sprite.contents().width(); int height = sprite.contents().height(); int pixels = 0; - int r = 0; - int g = 0; - int b = 0; + int totalR = 0; + int totalG = 0; + int totalB = 0; for (int i = sprite.x; i < sprite.x + width; i++) { for (int j = sprite.y; j < sprite.y + height; j++) { int pixel = image.getPixelRGBA(i, j); if (pixel != 0) { // bgr because Minecraft has the pixels backwards - b += (pixel >> 16) & 0xff; - g += (pixel >> 8) & 0xff; - r += (pixel) & 0xff; + totalB += (pixel >> 16) & 0xff; + totalG += (pixel >> 8) & 0xff; + totalR += (pixel) & 0xff; pixels++; } } } - if (pixels > 0 && (r | g | b) != 0) { - var tint = Minecraft.getInstance().getItemColors().getColor(new ItemStack(item), 0); - Color c = new Color( - r / pixels * (tint >> 16) & 0xff, - g / pixels * (tint >> 8) & 0xff, - b / pixels * tint & 0xff - ); - // do not brighten a tinted texture - if (tint == 0) c = c.brighter(); - - Vector3i color = new Vector3i(c.getRed(), c.getGreen(), c.getBlue()); - ExDeorum.LOGGER.debug("Item '{}' has color ({}, {}, {})\n", entry.getKey().location(), color.x, color.y, color.z); - CompostColors.COLORS.put(item, color); + putColor(pixels, totalR, totalG, totalB, item); + } + } + } + } + } + + private static void loadModded() { + var readMods = readModdedColorFiles(); + + for (var entry : ForgeRegistries.ITEMS.getEntries()) { + var modid = entry.getKey().location().getNamespace(); + + if (!readMods.contains(modid)) { + var id = entry.getKey().location().getPath(); + var jarFile = ModList.get().getModFileById(ExDeorum.ID).getFile(); + var modelPath = jarFile.findResource("assets/" + modid + "/models/item/" + id + ".json"); + + if (Files.exists(modelPath)) { + JsonObject modelJson = parseModelJson(modelPath, modid, id); + + if (modelJson != null) { + var textures = modelJson.get("textures"); + + if (textures instanceof JsonObject textureMap) { + String texture = findFirstTexture(textureMap); + + if (texture != null) { + // Best case scenario, we are in a plain old 2D item. + var texturePath = jarFile.findResource("assets/" + modid + "/textures/" + texture + ".png"); + + if (Files.exists(texturePath)) { + try (var stream = Files.newInputStream(texturePath)) { + var img = ImageIO.read(stream); + int width = img.getWidth(); + int height = img.getHeight(); + int pixels = 0; + int totalR = 0; + int totalG = 0; + int totalB = 0; + + for (int x = 0; x < width; x++) { + for (int y = 0; y < height; y++) { + int pixel = img.getRGB(x, y);if (pixel != 0) { + totalR += (pixel >> 16) & 0xff; + totalG += (pixel >> 8) & 0xff; + totalB += (pixel) & 0xff; + pixels++; + } + } + } + + putColor(pixels, totalR, totalG, totalB, entry.getValue()); + + if (ExDeorum.DEBUG) { + ExDeorum.LOGGER.debug("Item {}:{} has color {}", modid, id, COLORS.get(entry.getValue())); + } + } catch (IOException exception) { + ExDeorum.LOGGER.error("Failed to read texture file for item {}:{}", modid, id); + } + } + } + } + } + } + } + } + + @SuppressWarnings("DataFlowIssue") + var entries = COLORS.keySet().stream().sorted(Comparator.comparing(ForgeRegistries.ITEMS::getKey)).collect(Collectors.groupingBy(item -> ForgeRegistries.ITEMS.getKey(item).getNamespace())); + + for (var entry : entries.entrySet()) { + if (!readMods.contains(entry.getKey())) { + export(entry.getKey(), entry.getValue()); + } + } + } + + @Nullable + private static String findFirstTexture(JsonObject textureMap) { + if (textureMap.get("layer0") instanceof JsonPrimitive primitive) { + return new ResourceLocation(primitive.getAsString()).getPath(); + } + + return null; + } + + // Returns a set of the mod ids that were read + private static ObjectSet readModdedColorFiles() { + var colorsFolder = COMPOST_COLORS_CONFIGS.toFile(); + + // Minecraft is hardcoded in the Ex Deorum jar file + var readMods = new ObjectOpenHashSet(); + readMods.add("minecraft"); + + if (colorsFolder.exists() && colorsFolder.isDirectory()) { + var children = colorsFolder.list(); + + if (children != null) { + // child should be "modid.txt" + for (var child : children) { + if (child.endsWith(".txt")) { + var modid = child.replace(".txt", ""); + + if (ModList.get().isLoaded(modid) && !modid.equals("minecraft")) { + if (readColorFile(modid, COMPOST_COLORS_CONFIGS.resolve(child))) { + readMods.add(modid); + } + } + } + } + } + } + + return readMods; + } + + @Nullable + private static JsonObject parseModelJson(Path modelPath, String modid, String id) { + try (var stream = Files.newInputStream(modelPath)) { + try (var streamReader = new InputStreamReader(stream)) { + try { + return GsonHelper.parse(IOUtils.toString(streamReader)); + } catch (JsonParseException exception) { + ExDeorum.LOGGER.error("Failed to parse model file for item {}:{}", modid, id); + } + } + } catch (IOException exception) { + ExDeorum.LOGGER.error("Failed to read model file for item {}:{}", modid, id); + } + + return null; + } + + private static void putColor(int pixels, int totalR, int totalG, int totalB, Item item) { + if (pixels > 0 && (totalR | totalG | totalB) != 0) { + var tint = getTint(item); + Color c; + if (tint == 0) { + c = new Color(totalR / pixels, totalG / pixels, totalB / pixels).brighter(); + } else { + c = new Color( + ((float) totalR / pixels / 255f) * ((tint >> 16 & 0xff) / 255f), + ((float) totalG / pixels / 255f) * ((tint >> 8 & 0xff) / 255f), + ((float) totalB / pixels / 255f) * ((tint & 0xff) / 255f) + ); + } + + Vector3i color = new Vector3i(c.getRed(), c.getGreen(), c.getBlue()); + CompostColors.COLORS.put(item, color); + } + } + + private static int getTint(Item item) { + if (ExDeorum.DEBUG && FMLEnvironment.dist == Dist.CLIENT) { + return Minecraft.getInstance().getItemColors().getColor(new ItemStack(item), 0); + } else { + return 0; + } + } + + private static boolean readColorFile(String modid, Path path) { + try (var stream = Files.newInputStream(path)) { + try (var streamReader = new InputStreamReader(stream)) { + try (var reader = new BufferedReader(streamReader)) { + int readColors = 0; + int lineNumber = 0; + String line; + + while ((line = reader.readLine()) != null) { + lineNumber++; + if (line.startsWith("//")) continue; + + var tokenizer = new StringTokenizer(line, ", #"); + try { + var id = new ResourceLocation(modid, tokenizer.nextToken()); + var item = ForgeRegistries.ITEMS.getValue(id); + String token = tokenizer.nextToken(); + var color = Integer.parseInt(token, 16); + + if (item != null && item != Items.AIR) { + readColors++; + + COLORS.put(item, new Vector3i( + (color >> 16) & 255, + (color >> 8) & 255, + (color) & 255 + )); + } else { + ExDeorum.LOGGER.error("Failed to read line {} of compost colors file {} - Unknown item {}", lineNumber, path, id); + } + } catch (NumberFormatException | NoSuchElementException e) { + ExDeorum.LOGGER.error("Failed to read line {} of compost colors file {} - Invalid format: {}", lineNumber, path, e.getMessage()); } } + + if (readColors > 0) { + ExDeorum.LOGGER.debug("Read {} compost colors from compost colors file {}", readColors, path); + return true; + } else { + ExDeorum.LOGGER.debug("Ignoring empty compost colors file {}", path); + return false; + } } } + } catch (IOException e) { + ExDeorum.LOGGER.error("Error reading colors file {} : {}", path, e); } + + return false; + } + + @SuppressWarnings("DataFlowIssue") + public static void export(String modid) { + export(modid, COLORS.keySet().stream().filter(key -> ForgeRegistries.ITEMS.getKey(key).getNamespace().equals(modid)).sorted(Comparator.comparing(ForgeRegistries.ITEMS::getKey)).toList()); } - public static void exportVanilla() { - var path = Paths.get(CompostColors.VANILLA_COMPOST_COLORS_FILE); + // The given list should be sorted + private static void export(String modid, List sortedToExport) { try { - var file = path.toFile(); - - if ((file.exists() && file.delete()) || file.createNewFile()) { - try (var fileWriter = new FileWriter(file)) { - try (var writer = new BufferedWriter(fileWriter)) { - for (var entry : CompostColors.COLORS.object2ObjectEntrySet()) { - var id = ForgeRegistries.ITEMS.getKey(entry.getKey()); - if (id.getNamespace().equals("minecraft")) { - writer.write(id.getPath()); - writer.write(", #"); - var colorVec = entry.getValue(); - writer.write(Integer.toHexString(new Color(colorVec.x, colorVec.y, colorVec.z).getRGB() & 0xffffff)); - writer.write('\n'); + if (createConfigFolder()) { + var path = COMPOST_COLORS_CONFIGS.resolve(modid + ".txt"); + var file = path.toFile(); + + if ((file.exists() && file.delete()) || file.createNewFile()) { + try (var fileWriter = new FileWriter(file)) { + try (var writer = new BufferedWriter(fileWriter)) { + // sort file entries alphabetically + var alphabeticalItems = new ArrayList<>(sortedToExport); + alphabeticalItems.sort(Comparator.comparing(item -> ForgeRegistries.ITEMS.getKey(item).getPath())); + + writer.write("// Compost colors for " + modid + ". You may add your own colors, change existing ones, or remove colors that aren't needed.\n"); + + for (var item : alphabeticalItems) { + if (COLORS.containsKey(item)) { + writer.write(ForgeRegistries.ITEMS.getKey(item).getPath()); + writer.write(", #"); + var colorVec = COLORS.get(item); + writer.write(Integer.toHexString(new Color(colorVec.x, colorVec.y, colorVec.z).getRGB() & 0xffffff)); + writer.write('\n'); + } } + + // Skips the error message + return; } } } } + + ExDeorum.LOGGER.error("Unable to save compost colors for mod \"{}\"", modid); } catch (IOException e) { e.printStackTrace(); } } + + private static boolean createConfigFolder() { + var colorsFolder = COMPOST_COLORS_CONFIGS.toFile(); + var configFolder = COMPOST_COLORS_CONFIGS.getParent().toFile(); + + return (configFolder.exists() || configFolder.mkdir()) && (colorsFolder.exists() || colorsFolder.mkdir()); + } } diff --git a/src/main/java/thedarkcolour/exdeorum/client/RenderUtil.java b/src/main/java/thedarkcolour/exdeorum/client/RenderUtil.java index 984f6d4b..e1493fa7 100644 --- a/src/main/java/thedarkcolour/exdeorum/client/RenderUtil.java +++ b/src/main/java/thedarkcolour/exdeorum/client/RenderUtil.java @@ -1,29 +1,72 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.client; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; +import com.mojang.blaze3d.vertex.DefaultVertexFormat; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; +import com.mojang.blaze3d.vertex.VertexFormat; +import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderStateShard; import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.ShaderInstance; +import net.minecraft.client.renderer.Sheets; import net.minecraft.client.renderer.texture.MissingTextureAtlasSprite; import net.minecraft.client.renderer.texture.TextureAtlas; import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.core.BlockPos; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; import net.minecraft.world.inventory.InventoryMenu; +import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.LegacyRandomSource; +import net.minecraft.world.level.material.Fluid; +import net.minecraftforge.client.ChunkRenderTypeSet; +import net.minecraftforge.client.extensions.common.IClientFluidTypeExtensions; import net.minecraftforge.client.model.data.ModelData; +import net.minecraftforge.fml.unsafe.UnsafeHacks; import net.minecraftforge.registries.ForgeRegistries; import org.joml.Vector3f; +import sun.misc.Unsafe; +import thedarkcolour.exdeorum.ExDeorum; import thedarkcolour.exdeorum.client.ter.SieveRenderer; +import java.awt.Color; +import java.util.Map; + public class RenderUtil { public static final LoadingCache TOP_RENDER_TYPES; public static final LoadingCache TOP_TEXTURES; + public static final RenderStateShard.ShaderStateShard RENDER_TYPE_TINTED_CUTOUT_MIPPED_SHADER = new RenderStateShard.ShaderStateShard(RenderUtil::getRenderTypeTintedCutoutMippedShader); + public static final RenderType TINTED_CUTOUT_MIPPED = RenderType.create(ExDeorum.ID + ":tinted_cutout_mipped", DefaultVertexFormat.NEW_ENTITY, VertexFormat.Mode.QUADS, RenderType.SMALL_BUFFER_SIZE, false, false, RenderType.CompositeState.builder().setLightmapState(RenderStateShard.LIGHTMAP).setShaderState(RENDER_TYPE_TINTED_CUTOUT_MIPPED_SHADER).setTextureState(RenderStateShard.BLOCK_SHEET_MIPPED).createCompositeState(true)); public static TextureAtlas blockAtlas; + public static ShaderInstance renderTypeTintedCutoutMippedShader; + private static final Map LEAF_BAKED_MODELS = new Object2ObjectOpenHashMap<>(); static { TOP_RENDER_TYPES = CacheBuilder.newBuilder().maximumSize(10).build(new CacheLoader<>() { @@ -37,17 +80,52 @@ public RenderType load(Block key) { TOP_TEXTURES = CacheBuilder.newBuilder().weakValues().build(new CacheLoader<>() { @Override public TextureAtlasSprite load(Block key) { - ResourceLocation registryName = ForgeRegistries.BLOCKS.getKey(key); - var textureLoc = new ResourceLocation(registryName.getNamespace(), "block/" + registryName.getPath()); + var registryName = ForgeRegistries.BLOCKS.getKey(key); + var textureLoc = registryName.withPrefix("block/"); var sprite = blockAtlas.getSprite(textureLoc); // for stuff like azalea bush, retry to get the top texture - if (sprite.contents().name() == MissingTextureAtlasSprite.getLocation()) { + if (isMissingTexture(sprite)) { textureLoc = new ResourceLocation(registryName.getNamespace(), "block/" + registryName.getPath() + "_top"); sprite = blockAtlas.getSprite(textureLoc); } return sprite; } }); + + // shut up Forge + //var set = UnsafeHacks.newInstance(ChunkRenderTypeSet.class); + //try { + // UnsafeHacks.setField(ChunkRenderTypeSet.class.getDeclaredField("bits"), set, ); + //} catch (NoSuchFieldException e) {} + } + + public static BakedModel getMimicModel(BlockState state) { + var model = LEAF_BAKED_MODELS.get(state); + + if (model == null) { + model = Minecraft.getInstance().getBlockRenderer().getBlockModel(state); + + if (model == Minecraft.getInstance().getModelManager().getMissingModel()) { + model = Minecraft.getInstance().getBlockRenderer().getBlockModel(Blocks.OAK_LEAVES.defaultBlockState()); + } + + LEAF_BAKED_MODELS.put(state, model); + } + return model; + } + + public static boolean isMissingTexture(TextureAtlasSprite sprite) { + return sprite.contents().name() == MissingTextureAtlasSprite.getLocation(); + } + + public static TextureAtlasSprite getTopTexture(Block block, Block defaultBlock) { + var sprite = TOP_TEXTURES.getUnchecked(block); + + if (isMissingTexture(sprite)) { + return TOP_TEXTURES.getUnchecked(defaultBlock); + } else { + return sprite; + } } public static void reload() { @@ -58,11 +136,15 @@ public static void reload() { public static void invalidateCaches() { SieveRenderer.MESH_TEXTURES.invalidateAll(); blockAtlas = null; + LEAF_BAKED_MODELS.clear(); } - // uses a RGB color instead of three color components - public static void renderFlatSpriteLerp(VertexConsumer builder, PoseStack stack, float percentage, int color, TextureAtlasSprite sprite, int light, float edge, float yMin, float yMax) { - renderFlatSpriteLerp(builder, stack, percentage, (color >> 16) & 0xff, (color >> 8) & 0xff, (color >> 0) & 0xff, sprite, light, edge, yMin, yMax); + public static void renderFlatFluidSprite(MultiBufferSource buffers, PoseStack stack, Level level, BlockPos pos, float y, float edge, int light, int r, int g, int b, Fluid fluid) { + var extensions = IClientFluidTypeExtensions.of(fluid); + var state = fluid.defaultFluidState(); + var builder = buffers.getBuffer(Sheets.translucentCullBlockSheet()); + + RenderUtil.renderFlatSprite(builder, stack, y, r, g, b, RenderUtil.blockAtlas.getSprite(extensions.getStillTexture(state, level, pos)), light, edge); } // Renders a sprite inside the barrel with the height determined by how full the barrel is. @@ -89,9 +171,17 @@ public static void renderFlatSprite(VertexConsumer builder, PoseStack stack, flo float vMax = sprite.getV1(); // overlayCoords(0, 10) is NO_OVERLAY (0xA0000) - builder.vertex(pose, edgeMin, y, edgeMin).color(r, g, b, 255).overlayCoords(0, 10).uv(uMin, vMin).uv2(light).normal(normal.x, normal.y, normal.z).endVertex(); - builder.vertex(pose, edgeMin, y, edgeMax).color(r, g, b, 255).overlayCoords(0, 10).uv(uMin, vMax).uv2(light).normal(normal.x, normal.y, normal.z).endVertex(); - builder.vertex(pose, edgeMax, y, edgeMax).color(r, g, b, 255).overlayCoords(0, 10).uv(uMax, vMax).uv2(light).normal(normal.x, normal.y, normal.z).endVertex(); - builder.vertex(pose, edgeMax, y, edgeMin).color(r, g, b, 255).overlayCoords(0, 10).uv(uMax, vMin).uv2(light).normal(normal.x, normal.y, normal.z).endVertex(); + builder.vertex(pose, edgeMin, y, edgeMin).color(r, g, b, 255).uv(uMin, vMin).overlayCoords(0, 10).uv2(light).normal(normal.x, normal.y, normal.z).endVertex(); + builder.vertex(pose, edgeMin, y, edgeMax).color(r, g, b, 255).uv(uMin, vMax).overlayCoords(0, 10).uv2(light).normal(normal.x, normal.y, normal.z).endVertex(); + builder.vertex(pose, edgeMax, y, edgeMax).color(r, g, b, 255).uv(uMax, vMax).overlayCoords(0, 10).uv2(light).normal(normal.x, normal.y, normal.z).endVertex(); + builder.vertex(pose, edgeMax, y, edgeMin).color(r, g, b, 255).uv(uMax, vMin).overlayCoords(0, 10).uv2(light).normal(normal.x, normal.y, normal.z).endVertex(); + } + + public static Color getRainbowColor(long time, float partialTicks) { + return Color.getHSBColor((180 * Mth.sin((time + partialTicks) / 16.0f) - 180) / 360.0f, 0.7f, 0.8f); + } + + public static ShaderInstance getRenderTypeTintedCutoutMippedShader() { + return renderTypeTintedCutoutMippedShader; } } diff --git a/src/main/java/thedarkcolour/exdeorum/client/package-info.java b/src/main/java/thedarkcolour/exdeorum/client/package-info.java new file mode 100644 index 00000000..59702267 --- /dev/null +++ b/src/main/java/thedarkcolour/exdeorum/client/package-info.java @@ -0,0 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +@net.minecraft.MethodsReturnNonnullByDefault +@javax.annotation.ParametersAreNonnullByDefault +package thedarkcolour.exdeorum.client; diff --git a/src/main/java/thedarkcolour/exdeorum/client/ter/BarrelRenderer.java b/src/main/java/thedarkcolour/exdeorum/client/ter/BarrelRenderer.java index 00723f22..1f2a81cc 100644 --- a/src/main/java/thedarkcolour/exdeorum/client/ter/BarrelRenderer.java +++ b/src/main/java/thedarkcolour/exdeorum/client/ter/BarrelRenderer.java @@ -1,8 +1,25 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.client.ter; import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.ItemBlockRenderTypes; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.block.BlockRenderDispatcher; @@ -12,13 +29,11 @@ import net.minecraft.util.Mth; import net.minecraft.world.inventory.InventoryMenu; import net.minecraft.world.item.BlockItem; -import net.minecraftforge.client.ForgeHooksClient; import net.minecraftforge.client.extensions.common.IClientFluidTypeExtensions; import net.minecraftforge.client.model.data.ModelData; import net.minecraftforge.common.capabilities.ForgeCapabilities; import thedarkcolour.exdeorum.ExDeorum; import thedarkcolour.exdeorum.blockentity.BarrelBlockEntity; -import thedarkcolour.exdeorum.client.ClientHandler; import thedarkcolour.exdeorum.client.RenderUtil; public class BarrelRenderer implements BlockEntityRenderer { @@ -55,30 +70,25 @@ public void render(BarrelBlockEntity barrel, float partialTicks, PoseStack stack if (!fluidStack.isEmpty()) { // Get texture var fluid = fluidStack.getFluid(); var level = barrel.getLevel(); - var blockPos = barrel.getBlockPos(); - var sprite = ForgeHooksClient.getFluidSprites(level, blockPos, fluid.defaultFluidState())[0]; - - // Get color + var pos = barrel.getBlockPos(); + var percentage = fluidStack.getAmount() / 1000.0f; + var y = Mth.lerp(percentage, 1.0f, 14.0f) / 16f; var col = IClientFluidTypeExtensions.of(fluid).getTintColor(fluidStack); // Split into RGB components var r = (col >> 16) & 0xff; var g = (col >> 8) & 0xff; - var b = (col >> 0) & 0xff; + var b = col & 0xff; if (barrel.isBrewing()) { float progress = barrel.progress; - // Transition between water color and witch water color (551ec6) - r = (int) Mth.lerp(progress, r, 85); - g = (int) Mth.lerp(progress, g, 30); - b = (int) Mth.lerp(progress, b, 198); + // Transition between water color and witch water color (1F0C4C) + r = (int) Mth.lerp(progress, r, 31); + g = (int) Mth.lerp(progress, g, 12); + b = (int) Mth.lerp(progress, b, 76); } - - // Setup rendering - var builder = buffers.getBuffer(ItemBlockRenderTypes.getRenderLayer(fluid.defaultFluidState())); - - RenderUtil.renderFlatSpriteLerp(builder, stack, fluidStack.getAmount() / 1000.0f, r, g, b, sprite, light, 2.0f, 1.0f, 14.0f); + RenderUtil.renderFlatFluidSprite(buffers, stack, level, pos, y, 2.0f, light, r, g, b, fluid); } }); @@ -91,7 +101,7 @@ public void render(BarrelBlockEntity barrel, float partialTicks, PoseStack stack int r, g, b; if (ExDeorum.IS_JUNE && barrel.getLevel() != null) { - var rainbow = ClientHandler.getRainbowColor(barrel.getLevel().getGameTime(), partialTicks); + var rainbow = RenderUtil.getRainbowColor(barrel.getLevel().getGameTime(), partialTicks); r = rainbow.getRed(); g = rainbow.getGreen(); b = rainbow.getBlue(); diff --git a/src/main/java/thedarkcolour/exdeorum/client/ter/CrucibleRenderer.java b/src/main/java/thedarkcolour/exdeorum/client/ter/CrucibleRenderer.java index 5185394e..c8ff9b20 100644 --- a/src/main/java/thedarkcolour/exdeorum/client/ter/CrucibleRenderer.java +++ b/src/main/java/thedarkcolour/exdeorum/client/ter/CrucibleRenderer.java @@ -1,12 +1,28 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.client.ter; import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.ItemBlockRenderTypes; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.util.Mth; import net.minecraftforge.client.extensions.common.IClientFluidTypeExtensions; import net.minecraftforge.common.capabilities.ForgeCapabilities; import thedarkcolour.exdeorum.blockentity.AbstractCrucibleBlockEntity; @@ -18,42 +34,30 @@ public void render(AbstractCrucibleBlockEntity crucible, float partialTicks, Pos crucible.getCapability(ForgeCapabilities.FLUID_HANDLER).ifPresent(tank -> { var fluidStack = tank.getFluidInTank(0); + // These are percentages var solids = (float) crucible.getSolids() / (float) AbstractCrucibleBlockEntity.MAX_SOLIDS; var liquid = (float) fluidStack.getAmount() / (float) tank.getTankCapacity(0); if (solids != 0 || liquid != 0) { var level = crucible.getLevel(); - var blockPos = crucible.getBlockPos(); - - VertexConsumer builder; - TextureAtlasSprite sprite; - float percentage; - int col; + var pos = crucible.getBlockPos(); - // Solids will render on top if (liquid != 0) { - var fluid = fluidStack.getFluid().defaultFluidState(); - var extensions = IClientFluidTypeExtensions.of(fluid); - - percentage = liquid; - builder = buffers.getBuffer(ItemBlockRenderTypes.getRenderLayer(fluid)); - sprite = RenderUtil.blockAtlas.getSprite(extensions.getStillTexture(fluid, level, blockPos)); - - // Set biome colors - col = extensions.getTintColor(fluidStack); + var fluid = fluidStack.getFluid(); + var color = IClientFluidTypeExtensions.of(fluid).getTintColor(fluid.defaultFluidState(), level, pos); + float y = Mth.lerp(liquid, 4.0f, 14.0f) / 16f; - RenderUtil.renderFlatSpriteLerp(builder, stack, percentage, col, sprite, light, 2.0f, 4.0f, 14.0f); + RenderUtil.renderFlatFluidSprite(buffers, stack, level, pos, y, 2.0f, light, (color >> 16) & 0xff, (color >> 8) & 0xff, color & 0xff, fluid); } - if (solids != 0){ - percentage = solids; - builder = buffers.getBuffer(RenderUtil.TOP_RENDER_TYPES.getUnchecked(crucible.getLastMelted())); - sprite = RenderUtil.TOP_TEXTURES.getUnchecked(crucible.getLastMelted()); + if (solids != 0) { + var builder = buffers.getBuffer(RenderUtil.TOP_RENDER_TYPES.getUnchecked(crucible.getLastMelted())); + var sprite = RenderUtil.getTopTexture(crucible.getLastMelted(), crucible.getDefaultMeltBlock()); - col = Minecraft.getInstance().getBlockColors().getColor(crucible.getLastMelted().defaultBlockState(), level, blockPos, 0); + var color = Minecraft.getInstance().getBlockColors().getColor(crucible.getLastMelted().defaultBlockState(), level, pos, 0); - if (col == -1) col = 0xffffff; + if (color == -1) color = 0xffffff; - RenderUtil.renderFlatSpriteLerp(builder, stack, percentage, col, sprite, light, 2.0f, 4.0f, 14.0f); + RenderUtil.renderFlatSpriteLerp(builder, stack, solids, (color >> 16) & 0xff, (color >> 8) & 0xff, color & 0xff, sprite, light, 2.0f, 4.0f, 14.0f); } } }); diff --git a/src/main/java/thedarkcolour/exdeorum/client/ter/InfestedLeavesRenderer.java b/src/main/java/thedarkcolour/exdeorum/client/ter/InfestedLeavesRenderer.java index e74cb866..f58aae79 100644 --- a/src/main/java/thedarkcolour/exdeorum/client/ter/InfestedLeavesRenderer.java +++ b/src/main/java/thedarkcolour/exdeorum/client/ter/InfestedLeavesRenderer.java @@ -1,18 +1,38 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.client.ter; import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; -import net.minecraft.util.Mth; import net.minecraft.world.level.block.Blocks; -import net.minecraftforge.client.RenderTypeHelper; import net.minecraftforge.client.model.data.ModelData; import thedarkcolour.exdeorum.blockentity.InfestedLeavesBlockEntity; +import thedarkcolour.exdeorum.client.RenderUtil; +import thedarkcolour.exdeorum.config.EConfig; public class InfestedLeavesRenderer implements BlockEntityRenderer { @Override - public void render(InfestedLeavesBlockEntity te, float partialTicks, PoseStack stack, MultiBufferSource buffer, int light, int overlay) { + public void render(InfestedLeavesBlockEntity te, float partialTicks, PoseStack stack, MultiBufferSource buffer, int light, int unused) { + if (EConfig.CLIENT.useFastInfestedLeaves.get()) return; + var mc = Minecraft.getInstance(); var state = te.getMimic(); @@ -22,30 +42,15 @@ public void render(InfestedLeavesBlockEntity te, float partialTicks, PoseStack s // If something is wrong render default leaves var level = te.getLevel(); if (level == null) { - Minecraft.getInstance().getBlockRenderer().renderSingleBlock(state, stack, buffer, light, overlay, ModelData.EMPTY, null); + Minecraft.getInstance().getBlockRenderer().renderSingleBlock(state, stack, buffer, light, unused, ModelData.EMPTY, null); return; } // Get infested percentage - float progress = te.getProgress(); - - // Get colors - int col = mc.getBlockColors().getColor(state, level, te.getBlockPos(), 0); - - // Average the white color with the biome color - float r = Mth.lerp(progress, (col >> 16) & 0xff, 255.0f); - float g = Mth.lerp(progress, (col >> 8 ) & 0xff, 255.0f); - float b = Mth.lerp(progress, (col) & 0xff, 255.0f); - - // Cap to 255 - float red = (Math.min(255, r)) / 255.0f; - float green = (Math.min(255, g)) / 255.0f; - float blue = (Math.min(255, b)) / 255.0f; - + int progress = Math.min((int) (te.getProgress() * 16000), 16000); // Render var model = mc.getBlockRenderer().getBlockModel(state); - for (var renderType : model.getRenderTypes(state, level.random, ModelData.EMPTY)) { - mc.getBlockRenderer().getModelRenderer().renderModel(stack.last(), buffer.getBuffer(RenderTypeHelper.getEntityRenderType(renderType, false)), state, model, red, green, blue, light, overlay, ModelData.EMPTY, renderType); - } + //noinspection deprecation + mc.getBlockRenderer().getModelRenderer().tesselateBlock(level, model, state, te.getBlockPos(), stack, buffer.getBuffer(RenderUtil.TINTED_CUTOUT_MIPPED), false, level.random, 42L, progress); } } diff --git a/src/main/java/thedarkcolour/exdeorum/client/ter/SieveRenderer.java b/src/main/java/thedarkcolour/exdeorum/client/ter/SieveRenderer.java index a4d0c4a2..aec0a6be 100644 --- a/src/main/java/thedarkcolour/exdeorum/client/ter/SieveRenderer.java +++ b/src/main/java/thedarkcolour/exdeorum/client/ter/SieveRenderer.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.client.ter; import com.google.common.cache.CacheBuilder; diff --git a/src/main/java/thedarkcolour/exdeorum/compat/jei/BarrelCompostCategory.java b/src/main/java/thedarkcolour/exdeorum/compat/jei/BarrelCompostCategory.java index b87d8cd1..5d1ad834 100644 --- a/src/main/java/thedarkcolour/exdeorum/compat/jei/BarrelCompostCategory.java +++ b/src/main/java/thedarkcolour/exdeorum/compat/jei/BarrelCompostCategory.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.compat.jei; import mezz.jei.api.gui.builder.IRecipeLayoutBuilder; @@ -28,6 +46,7 @@ class BarrelCompostCategory implements IRecipeCategory { public BarrelCompostCategory(IGuiHelper helper) { this.background = helper.createBlankDrawable(WIDTH, HEIGHT); this.slot = helper.getSlotDrawable(); + // todo add a little dirt icon in the bottom corner to differentiate between compost and mixing this.icon = helper.createDrawableItemStack(new ItemStack(EBlocks.OAK_BARREL.get())); this.title = Component.translatable(TranslationKeys.BARREL_COMPOST_CATEGORY_TITLE); } diff --git a/src/main/java/thedarkcolour/exdeorum/compat/jei/BarrelMixingCategory.java b/src/main/java/thedarkcolour/exdeorum/compat/jei/BarrelMixingCategory.java new file mode 100644 index 00000000..360e5764 --- /dev/null +++ b/src/main/java/thedarkcolour/exdeorum/compat/jei/BarrelMixingCategory.java @@ -0,0 +1,91 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package thedarkcolour.exdeorum.compat.jei; + +import mezz.jei.api.gui.builder.IRecipeLayoutBuilder; +import mezz.jei.api.gui.drawable.IDrawable; +import mezz.jei.api.gui.ingredient.IRecipeSlotsView; +import mezz.jei.api.helpers.IGuiHelper; +import mezz.jei.api.recipe.IFocusGroup; +import mezz.jei.api.recipe.RecipeIngredientRole; +import mezz.jei.api.recipe.RecipeType; +import mezz.jei.api.recipe.category.IRecipeCategory; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.ItemStack; +import thedarkcolour.exdeorum.data.TranslationKeys; +import thedarkcolour.exdeorum.recipe.barrel.BarrelMixingRecipe; +import thedarkcolour.exdeorum.registry.EBlocks; + +public class BarrelMixingCategory implements IRecipeCategory { + public static final int WIDTH = 120; + public static final int HEIGHT = 18; + + private final IDrawable background; + private final IDrawable slot; + private final IDrawable plus; + private final IDrawable arrow; + private final IDrawable icon; + private final Component title; + + public BarrelMixingCategory(IGuiHelper helper, IDrawable plus, IDrawable arrow) { + this.background = helper.createBlankDrawable(WIDTH, HEIGHT); + this.slot = helper.getSlotDrawable(); + this.plus = plus; + this.arrow = arrow; + this.icon = helper.createDrawableItemStack(new ItemStack(EBlocks.OAK_BARREL.get())); + this.title = Component.literal(TranslationKeys.BARREL_MIXING_CATEGORY_TITLE); + } + + @Override + public RecipeType getRecipeType() { + return ExDeorumJeiPlugin.BARREL_MIXING; + } + + @Override + public Component getTitle() { + return this.title; + } + + @Override + public IDrawable getBackground() { + return this.background; + } + + @Override + public IDrawable getIcon() { + return this.icon; + } + + @Override + public void setRecipe(IRecipeLayoutBuilder builder, BarrelMixingRecipe recipe, IFocusGroup focuses) { + builder.addSlot(RecipeIngredientRole.INPUT, 1, 1).addIngredients(recipe.getIngredient()); + builder.addSlot(RecipeIngredientRole.INPUT, 33, 1).addFluidStack(recipe.fluid, recipe.fluidAmount).setFluidRenderer(Math.max(1000, recipe.fluidAmount), false, 16, 16); + builder.addSlot(RecipeIngredientRole.OUTPUT, 79, 1).addItemStack(new ItemStack(recipe.result)); + } + + @Override + public void draw(BarrelMixingRecipe recipe, IRecipeSlotsView recipeSlotsView, GuiGraphics graphics, double mouseX, double mouseY) { + slot.draw(graphics); + plus.draw(graphics, 21, 5); + slot.draw(graphics, 18 + 3 + 3 + 8, 0); + arrow.draw(graphics, 53, 1); + slot.draw(graphics, 78, 0); + } +} diff --git a/src/main/java/thedarkcolour/exdeorum/compat/jei/CrucibleCategory.java b/src/main/java/thedarkcolour/exdeorum/compat/jei/CrucibleCategory.java index 48dde057..2a0c9d09 100644 --- a/src/main/java/thedarkcolour/exdeorum/compat/jei/CrucibleCategory.java +++ b/src/main/java/thedarkcolour/exdeorum/compat/jei/CrucibleCategory.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.compat.jei; import mezz.jei.api.gui.builder.IRecipeSlotBuilder; diff --git a/src/main/java/thedarkcolour/exdeorum/compat/jei/ExDeorumJeiPlugin.java b/src/main/java/thedarkcolour/exdeorum/compat/jei/ExDeorumJeiPlugin.java index 96e4c1d9..7f960d0c 100644 --- a/src/main/java/thedarkcolour/exdeorum/compat/jei/ExDeorumJeiPlugin.java +++ b/src/main/java/thedarkcolour/exdeorum/compat/jei/ExDeorumJeiPlugin.java @@ -1,10 +1,26 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.compat.jei; import mezz.jei.api.IModPlugin; import mezz.jei.api.JeiPlugin; -import mezz.jei.api.constants.VanillaTypes; -import mezz.jei.api.gui.drawable.IDrawable; -import mezz.jei.api.helpers.IGuiHelper; +import mezz.jei.api.forge.ForgeTypes; import mezz.jei.api.recipe.RecipeType; import mezz.jei.api.registration.IRecipeCatalystRegistration; import mezz.jei.api.registration.IRecipeCategoryRegistration; @@ -15,12 +31,16 @@ import net.minecraft.world.Container; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Recipe; +import net.minecraftforge.fluids.FluidStack; import thedarkcolour.exdeorum.ExDeorum; import thedarkcolour.exdeorum.data.TranslationKeys; +import thedarkcolour.exdeorum.item.WateringCanItem; import thedarkcolour.exdeorum.recipe.barrel.BarrelCompostRecipe; +import thedarkcolour.exdeorum.recipe.barrel.BarrelMixingRecipe; import thedarkcolour.exdeorum.recipe.crucible.CrucibleRecipe; import thedarkcolour.exdeorum.recipe.hammer.HammerRecipe; import thedarkcolour.exdeorum.registry.EBlocks; +import thedarkcolour.exdeorum.registry.EFluids; import thedarkcolour.exdeorum.registry.EItems; import thedarkcolour.exdeorum.registry.ERecipeTypes; @@ -30,10 +50,10 @@ @JeiPlugin public class ExDeorumJeiPlugin implements IModPlugin { - public static final ResourceLocation ENH_JEI_TEXTURE = new ResourceLocation(ExDeorum.ID, "textures/gui/jei/enr_jei.png"); + public static final ResourceLocation EX_DEORUM_JEI_TEXTURE = new ResourceLocation(ExDeorum.ID, "textures/gui/jei/enr_jei.png"); public static final RecipeType BARREL_COMPOST = RecipeType.create(ExDeorum.ID, "barrel_compost", BarrelCompostRecipe.class); - public static final RecipeType BARREL_MIXING = RecipeType.create(ExDeorum.ID, "barrel_compost", Object.class); + public static final RecipeType BARREL_MIXING = RecipeType.create(ExDeorum.ID, "barrel_mixing", BarrelMixingRecipe.class); public static final RecipeType LAVA_CRUCIBLE = RecipeType.create(ExDeorum.ID, "lava_crucible", CrucibleRecipe.class); public static final RecipeType WATER_CRUCIBLE = RecipeType.create(ExDeorum.ID, "water_crucible", CrucibleRecipe.class); public static final RecipeType SIEVE = RecipeType.create(ExDeorum.ID, "sieve", JeiSieveRecipeGroup.class); @@ -46,10 +66,12 @@ public ResourceLocation getPluginUid() { @Override public void registerCategories(IRecipeCategoryRegistration registration) { - IGuiHelper helper = registration.getJeiHelpers().getGuiHelper(); - IDrawable arrow = helper.createDrawable(ExDeorumJeiPlugin.ENH_JEI_TEXTURE, 0, 18, 22, 15); + var helper = registration.getJeiHelpers().getGuiHelper(); + var arrow = helper.createDrawable(ExDeorumJeiPlugin.EX_DEORUM_JEI_TEXTURE, 0, 18, 22, 15); + var plus = helper.createDrawable(ExDeorumJeiPlugin.EX_DEORUM_JEI_TEXTURE, 22,18, 8, 8); registration.addRecipeCategories(new BarrelCompostCategory(helper)); + registration.addRecipeCategories(new BarrelMixingCategory(helper, plus, arrow)); registration.addRecipeCategories(new CrucibleCategory.LavaCrucible(helper, arrow)); registration.addRecipeCategories(new CrucibleCategory.WaterCrucible(helper, arrow)); registration.addRecipeCategories(new SieveCategory(helper)); @@ -113,14 +135,24 @@ public void registerRecipeCatalysts(IRecipeCatalystRegistration registration) { @Override public void registerRecipes(IRecipeRegistration registration) { - registration.addIngredientInfo(new ItemStack(EItems.SILK_WORM.get()), VanillaTypes.ITEM_STACK, Component.translatable(TranslationKeys.SILK_WORM_JEI_INFO)); - registration.addIngredientInfo(List.of(new ItemStack(EBlocks.OAK_SIEVE.get()), new ItemStack(EBlocks.SPRUCE_SIEVE.get()), new ItemStack(EBlocks.BIRCH_SIEVE.get()), new ItemStack(EBlocks.JUNGLE_SIEVE.get()), new ItemStack(EBlocks.ACACIA_SIEVE.get()), new ItemStack(EBlocks.DARK_OAK_SIEVE.get()), new ItemStack(EBlocks.MANGROVE_SIEVE.get()), new ItemStack(EBlocks.CHERRY_SIEVE.get()), new ItemStack(EBlocks.BAMBOO_SIEVE.get()), new ItemStack(EBlocks.CRIMSON_SIEVE.get()), new ItemStack(EBlocks.WARPED_SIEVE.get())), VanillaTypes.ITEM_STACK, Component.translatable(TranslationKeys.SIEVE_JEI_INFO)); + registration.addItemStackInfo(new ItemStack(EItems.SILK_WORM.get()), Component.translatable(TranslationKeys.SILK_WORM_JEI_INFO)); + registration.addItemStackInfo(List.of(new ItemStack(EBlocks.OAK_SIEVE.get()), new ItemStack(EBlocks.SPRUCE_SIEVE.get()), new ItemStack(EBlocks.BIRCH_SIEVE.get()), new ItemStack(EBlocks.JUNGLE_SIEVE.get()), new ItemStack(EBlocks.ACACIA_SIEVE.get()), new ItemStack(EBlocks.DARK_OAK_SIEVE.get()), new ItemStack(EBlocks.MANGROVE_SIEVE.get()), new ItemStack(EBlocks.CHERRY_SIEVE.get()), new ItemStack(EBlocks.BAMBOO_SIEVE.get()), new ItemStack(EBlocks.CRIMSON_SIEVE.get()), new ItemStack(EBlocks.WARPED_SIEVE.get())), Component.translatable(TranslationKeys.SIEVE_JEI_INFO)); + registration.addItemStackInfo(List.of(WateringCanItem.getFull(EItems.WOODEN_WATERING_CAN), WateringCanItem.getFull(EItems.STONE_WATERING_CAN), WateringCanItem.getFull(EItems.IRON_WATERING_CAN), WateringCanItem.getFull(EItems.GOLDEN_WATERING_CAN), WateringCanItem.getFull(EItems.DIAMOND_WATERING_CAN), WateringCanItem.getFull(EItems.NETHERITE_WATERING_CAN)), Component.translatable(TranslationKeys.WATERING_CAN_JEI_INFO)); + var witchWaterInfo = Component.translatable(TranslationKeys.WITCH_WATER_JEI_INFO); + registration.addItemStackInfo(List.of(new ItemStack(EItems.WITCH_WATER_BUCKET.get()), new ItemStack(EItems.PORCELAIN_WITCH_WATER_BUCKET.get())), witchWaterInfo); + registration.addIngredientInfo(new FluidStack(EFluids.WITCH_WATER.get(), 1000), ForgeTypes.FLUID_STACK, witchWaterInfo); + registration.addItemStackInfo(new ItemStack(EItems.GRASS_SEEDS.get()), Component.translatable(TranslationKeys.GRASS_SEEDS_JEI_INFO)); + registration.addItemStackInfo(new ItemStack(EItems.MYCELIUM_SPORES.get()), Component.translatable(TranslationKeys.MYCELIUM_SPORES_JEI_INFO)); + registration.addItemStackInfo(new ItemStack(EItems.WARPED_NYLIUM_SPORES.get()), Component.translatable(TranslationKeys.WARPED_NYLIUM_SPORES_JEI_INFO)); + registration.addItemStackInfo(new ItemStack(EItems.CRIMSON_NYLIUM_SPORES.get()), Component.translatable(TranslationKeys.CRIMSON_NYLIUM_SPORES_JEI_INFO)); + registration.addItemStackInfo(new ItemStack(EItems.SCULK_CORE.get()), Component.translatable(TranslationKeys.SCULK_CORE_JEI_INFO)); + addRecipes(registration, BARREL_COMPOST, ERecipeTypes.BARREL_COMPOST); + addRecipes(registration, BARREL_MIXING, ERecipeTypes.BARREL_MIXING); addRecipes(registration, LAVA_CRUCIBLE, ERecipeTypes.LAVA_CRUCIBLE); addRecipes(registration, WATER_CRUCIBLE, ERecipeTypes.WATER_CRUCIBLE); addRecipes(registration, HAMMER, ERecipeTypes.HAMMER); - - JeiSieveRecipeGroup.addRecipes(registration, SIEVE); + JeiSieveRecipeGroup.addGroupedRecipes(registration, SIEVE); } private static > void addRecipes(IRecipeRegistration registration, RecipeType category, Supplier> type) { diff --git a/src/main/java/thedarkcolour/exdeorum/compat/jei/HammerCategory.java b/src/main/java/thedarkcolour/exdeorum/compat/jei/HammerCategory.java index 48329a9a..3ba11add 100644 --- a/src/main/java/thedarkcolour/exdeorum/compat/jei/HammerCategory.java +++ b/src/main/java/thedarkcolour/exdeorum/compat/jei/HammerCategory.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.compat.jei; import mezz.jei.api.gui.builder.IRecipeSlotBuilder; diff --git a/src/main/java/thedarkcolour/exdeorum/compat/jei/JeiSieveRecipeGroup.java b/src/main/java/thedarkcolour/exdeorum/compat/jei/JeiSieveRecipeGroup.java index 7c236803..bee1ab03 100644 --- a/src/main/java/thedarkcolour/exdeorum/compat/jei/JeiSieveRecipeGroup.java +++ b/src/main/java/thedarkcolour/exdeorum/compat/jei/JeiSieveRecipeGroup.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.compat.jei; import com.google.common.collect.ArrayListMultimap; @@ -6,6 +24,7 @@ import mezz.jei.api.recipe.RecipeType; import mezz.jei.api.registration.IRecipeRegistration; import net.minecraft.client.Minecraft; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.util.Mth; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; @@ -14,6 +33,7 @@ import net.minecraft.world.level.storage.loot.providers.number.NumberProvider; import thedarkcolour.exdeorum.recipe.RecipeUtil; import thedarkcolour.exdeorum.recipe.sieve.SieveRecipe; +import thedarkcolour.exdeorum.registry.EItems; import thedarkcolour.exdeorum.registry.ERecipeTypes; import java.util.ArrayList; @@ -24,7 +44,7 @@ record JeiSieveRecipeGroup(Ingredient ingredient, ItemStack mesh, List results) { public static int maxSieveRows; - public static void addRecipes(IRecipeRegistration registration, RecipeType recipeType) { + public static void addGroupedRecipes(IRecipeRegistration registration, RecipeType recipeType) { maxSieveRows = 1; // copy the list so we can do removals @@ -49,7 +69,9 @@ public static void addRecipes(IRecipeRegistration registration, RecipeType jeiRecipes = new ImmutableList.Builder<>(); // Sort based on expected count of result - var sorter = Comparator.comparingDouble(Result::expectedCount).reversed(); + var resultSorter = Comparator.comparingDouble(Result::expectedCount).reversed(); + // Sort based on order of sieve tier + var meshSorter = Comparator.comparingInt(JeiSieveRecipeGroup::meshOrder); // ingredients with common ingredients are grouped into lists (ex. dirt) for (var ingredient : ingredientGrouper.keySet()) { @@ -62,7 +84,10 @@ public static void addRecipes(IRecipeRegistration registration, RecipeType(meshGrouper.keySet()); + meshes.sort(meshSorter); + + for (var mesh : meshes) { var meshRecipes = meshGrouper.get(mesh); var results = new ArrayList(meshRecipes.size()); @@ -71,7 +96,7 @@ public static void addRecipes(IRecipeRegistration registration, RecipeType. + */ + package thedarkcolour.exdeorum.compat.jei; import mezz.jei.api.gui.builder.IRecipeLayoutBuilder; diff --git a/src/main/java/thedarkcolour/exdeorum/compat/jei/SieveCategory.java b/src/main/java/thedarkcolour/exdeorum/compat/jei/SieveCategory.java index c6e69fc4..4dd1b0b2 100644 --- a/src/main/java/thedarkcolour/exdeorum/compat/jei/SieveCategory.java +++ b/src/main/java/thedarkcolour/exdeorum/compat/jei/SieveCategory.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.compat.jei; import mezz.jei.api.gui.builder.IRecipeLayoutBuilder; @@ -11,7 +29,6 @@ import mezz.jei.api.recipe.category.IRecipeCategory; import net.minecraft.ChatFormatting; import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.Component; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.storage.loot.providers.number.BinomialDistributionGenerator; @@ -44,7 +61,7 @@ class SieveCategory implements IRecipeCategory { public SieveCategory(IGuiHelper helper) { this.background = Lazy.of(() -> helper.createBlankDrawable(WIDTH, ROW_START + 18 * JeiSieveRecipeGroup.maxSieveRows)); this.slot = helper.getSlotDrawable(); - this.row = helper.createDrawable(ExDeorumJeiPlugin.ENH_JEI_TEXTURE, 0, 0, 162, 18); + this.row = helper.createDrawable(ExDeorumJeiPlugin.EX_DEORUM_JEI_TEXTURE, 0, 0, 162, 18); this.icon = helper.createDrawableItemStack(new ItemStack(EBlocks.OAK_SIEVE.get())); this.title = Component.translatable(TranslationKeys.SIEVE_CATEGORY_TITLE); } @@ -115,20 +132,20 @@ private static void addMinMaxes(IRecipeSlotBuilder slot, NumberProvider min, Num var maxFormatted = FORMATTER.format(RecipeUtil.getExpectedValue(max)); slot.addTooltipCallback((slotView, tooltip) -> { - if (Screen.hasShiftDown()) { - tooltip.add(Component.translatable(TranslationKeys.SIEVE_RECIPE_MIN_OUTPUT, minFormatted).withStyle(ChatFormatting.GRAY)); - tooltip.add(Component.translatable(TranslationKeys.SIEVE_RECIPE_MAX_OUTPUT, maxFormatted).withStyle(ChatFormatting.GRAY)); - } + //if (Screen.hasShiftDown()) { + tooltip.add(Component.translatable(TranslationKeys.SIEVE_RECIPE_MIN_OUTPUT, minFormatted).withStyle(ChatFormatting.GRAY)); + tooltip.add(Component.translatable(TranslationKeys.SIEVE_RECIPE_MAX_OUTPUT, maxFormatted).withStyle(ChatFormatting.GRAY)); + //} }); } @Override public void draw(JeiSieveRecipeGroup recipe, IRecipeSlotsView recipeSlotsView, GuiGraphics graphics, double mouseX, double mouseY) { - slot.draw(graphics, 58, 0); - slot.draw(graphics, 86, 0); + this.slot.draw(graphics, 58, 0); + this.slot.draw(graphics, 86, 0); for (int i = 0; i < JeiSieveRecipeGroup.maxSieveRows; i++) { - row.draw(graphics, 0, 28 + i * 18); + this.row.draw(graphics, 0, 28 + i * 18); } } } diff --git a/src/main/java/thedarkcolour/exdeorum/compat/top/ExDeorumInfoProvider.java b/src/main/java/thedarkcolour/exdeorum/compat/top/ExDeorumInfoProvider.java index a7e63760..74feca91 100644 --- a/src/main/java/thedarkcolour/exdeorum/compat/top/ExDeorumInfoProvider.java +++ b/src/main/java/thedarkcolour/exdeorum/compat/top/ExDeorumInfoProvider.java @@ -1,19 +1,42 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.compat.top; +import it.unimi.dsi.fastutil.objects.ObjectArrayList; import mcjty.theoneprobe.api.CompoundText; +import mcjty.theoneprobe.api.ElementAlignment; import mcjty.theoneprobe.api.IProbeHitData; import mcjty.theoneprobe.api.IProbeInfo; import mcjty.theoneprobe.api.IProbeInfoProvider; import mcjty.theoneprobe.api.ProbeMode; import mcjty.theoneprobe.api.TextStyleClass; +import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import thedarkcolour.exdeorum.ExDeorum; import thedarkcolour.exdeorum.blockentity.AbstractCrucibleBlockEntity; import thedarkcolour.exdeorum.blockentity.BarrelBlockEntity; import thedarkcolour.exdeorum.blockentity.InfestedLeavesBlockEntity; +import thedarkcolour.exdeorum.blockentity.SieveBlockEntity; import thedarkcolour.exdeorum.registry.EBlocks; public class ExDeorumInfoProvider implements IProbeInfoProvider { @@ -50,6 +73,22 @@ public void addProbeInfo(ProbeMode probeMode, IProbeInfo info, Player playerEnti } } else if (te instanceof AbstractCrucibleBlockEntity crucible) { info.text(CompoundText.create().style(TextStyleClass.LABEL).text("Rate: ").style(TextStyleClass.WARNING).text(crucible.getMeltingRate() + "x")); + } else if (te instanceof SieveBlockEntity sieve) { + if (playerEntity.isShiftKeyDown()) { + var mesh = sieve.getMesh(); + info.horizontal(info.defaultLayoutStyle().spacing(10).alignment(ElementAlignment.ALIGN_CENTER)) + .item(sieve.getMesh(), info.defaultItemStyle().width(16).height(16)) + .text(CompoundText.create().info(sieve.getMesh().getDescriptionId())); + if (mesh.isEnchanted()) { + var list = new ObjectArrayList(); + var style = info.defaultTextStyle().height(10); + ItemStack.appendEnchantmentNames(list, mesh.getEnchantmentTags()); + + for (var component : list) { + info.text(component, style); + } + } + } } } } diff --git a/src/main/java/thedarkcolour/exdeorum/compat/top/ExDeorumTopCompat.java b/src/main/java/thedarkcolour/exdeorum/compat/top/ExDeorumTopCompat.java index 3d4e8bcb..78d16218 100644 --- a/src/main/java/thedarkcolour/exdeorum/compat/top/ExDeorumTopCompat.java +++ b/src/main/java/thedarkcolour/exdeorum/compat/top/ExDeorumTopCompat.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.compat.top; import mcjty.theoneprobe.api.ITheOneProbe; diff --git a/src/main/java/thedarkcolour/exdeorum/config/Config.java b/src/main/java/thedarkcolour/exdeorum/config/Config.java deleted file mode 100644 index b221d35d..00000000 --- a/src/main/java/thedarkcolour/exdeorum/config/Config.java +++ /dev/null @@ -1,37 +0,0 @@ -package thedarkcolour.exdeorum.config; - -import net.minecraftforge.common.ForgeConfigSpec; -import org.apache.commons.lang3.tuple.Pair; - -public class Config { - public static final ForgeConfigSpec SERVER_SPEC; - public static final ForgeConfigSpec CLIENT_SPEC; - public static final Server SERVER; - public static final Client CLIENT; - - public static class Server { - public Server(ForgeConfigSpec.Builder builder) { - builder.comment("Server configuration for Ex Nihilo Reborn") - .push("server"); - } - } - - public static class Client { - public Client(ForgeConfigSpec.Builder builder) { - - } - } - - static { - { - Pair specPair = new ForgeConfigSpec.Builder().configure(Server::new); - SERVER = specPair.getLeft(); - SERVER_SPEC = specPair.getRight(); - } - { - Pair specPair = new ForgeConfigSpec.Builder().configure(Client::new); - CLIENT = specPair.getLeft(); - CLIENT_SPEC = specPair.getRight(); - } - } -} diff --git a/src/main/java/thedarkcolour/exdeorum/config/EConfig.java b/src/main/java/thedarkcolour/exdeorum/config/EConfig.java new file mode 100644 index 00000000..79190500 --- /dev/null +++ b/src/main/java/thedarkcolour/exdeorum/config/EConfig.java @@ -0,0 +1,88 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package thedarkcolour.exdeorum.config; + +import net.minecraftforge.common.ForgeConfigSpec; +import net.minecraftforge.common.ForgeConfigSpec.BooleanValue; +import net.minecraftforge.common.ForgeConfigSpec.DoubleValue; +import org.apache.commons.lang3.tuple.Pair; + +public class EConfig { + public static final ForgeConfigSpec CLIENT_SPEC; + public static final ForgeConfigSpec SERVER_SPEC; + public static final Client CLIENT; + public static final Server SERVER; + + public static class Client { + public final BooleanValue useFastInfestedLeaves; + + public Client(ForgeConfigSpec.Builder builder) { + builder.comment("Client configuration for Ex Deorum").push("client"); + + this.useFastInfestedLeaves = builder + .comment("Whether to use a simplified renderer for infested leaves (reduces FPS lag with lots of infested trees)") + .define("use_fast_infested_leaves", false); + + builder.pop(); + } + } + + public static class Server { + public final BooleanValue startingTorch; + public final BooleanValue startingWateringCan; + public final BooleanValue simultaneousSieveUsage; + public final DoubleValue barrelProgressStep; + public final BooleanValue witchWaterNetherrackGenerator; + + public Server(ForgeConfigSpec.Builder builder) { + builder.comment("Server configuration for Ex Deorum").push("server"); + + this.startingTorch = builder + .comment("Whether players in a void world start out with a torch or not.") + .define("starting_torch", true); + this.startingWateringCan = builder + .comment("Whether players in a void world start out with a full wooden watering can.") + .define("starting_watering_can", true); + this.simultaneousSieveUsage = builder + .comment("Whether players can use multiple sieves in a 3x3 area at once.") + .define("simultaneous_sieve_usage", true); + this.barrelProgressStep = builder + .comment("The progress to increment by each tick for barrel composting and witch water transformation.") + .defineInRange("barrel_progress_step", 0.004f, 0.0f, 1.0f); + this.witchWaterNetherrackGenerator = builder + .comment("Whether Witch Water forms netherrack when lava flows into it, allowing for a netherrack version of a cobblestone generator.") + .define("witch_water_netherrack_generator", true); + + builder.pop(); + } + } + + static { + { + Pair specPair = new ForgeConfigSpec.Builder().configure(Server::new); + SERVER = specPair.getLeft(); + SERVER_SPEC = specPair.getRight(); + } + { + Pair specPair = new ForgeConfigSpec.Builder().configure(Client::new); + CLIENT = specPair.getLeft(); + CLIENT_SPEC = specPair.getRight(); + } + } +} diff --git a/src/main/java/thedarkcolour/exdeorum/data/Advancements.java b/src/main/java/thedarkcolour/exdeorum/data/Advancements.java index 57b3263c..e23c4511 100644 --- a/src/main/java/thedarkcolour/exdeorum/data/Advancements.java +++ b/src/main/java/thedarkcolour/exdeorum/data/Advancements.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.data; import net.minecraft.advancements.Advancement; @@ -58,7 +76,7 @@ public void generate(HolderLookup.Provider registries, Consumer sav FrameType.TASK, true, true, - false + true ) .addCriterion("craft_crook", hasItems(item().of(EItemTags.CROOKS).build())) .save(saver, modLoc("core/crook"), helper); @@ -72,7 +90,7 @@ public void generate(HolderLookup.Provider registries, Consumer sav FrameType.TASK, true, true, - false + true ) .addCriterion("has_barrel", hasItems(item().of(EItemTags.BARRELS).build())) .save(saver, modLoc("core/barrel"), helper); diff --git a/src/main/java/thedarkcolour/exdeorum/data/BlockLoot.java b/src/main/java/thedarkcolour/exdeorum/data/BlockLoot.java index 535f5ed7..a189fc49 100644 --- a/src/main/java/thedarkcolour/exdeorum/data/BlockLoot.java +++ b/src/main/java/thedarkcolour/exdeorum/data/BlockLoot.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.data; import net.minecraft.core.registries.Registries; @@ -5,6 +23,7 @@ import net.minecraft.world.flag.FeatureFlags; import net.minecraft.world.item.Items; import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.storage.loot.BuiltInLootTables; import net.minecraft.world.level.storage.loot.LootPool; import net.minecraft.world.level.storage.loot.LootTable; import net.minecraft.world.level.storage.loot.entries.LootItem; @@ -27,7 +46,11 @@ protected BlockLoot() { @Override protected void generate() { - MKUtils.forModRegistry(Registries.BLOCK, ExDeorum.ID, (id, block) -> dropSelf(block)); + MKUtils.forModRegistry(Registries.BLOCK, ExDeorum.ID, (id, block) -> { + if (block.getLootTable() != BuiltInLootTables.EMPTY) { + dropSelf(block); + } + }); add(EBlocks.INFESTED_LEAVES.get(), new LootTable.Builder() .withPool(new LootPool.Builder() diff --git a/src/main/java/thedarkcolour/exdeorum/data/BlockModels.java b/src/main/java/thedarkcolour/exdeorum/data/BlockModels.java index 5c652813..ba006cb7 100644 --- a/src/main/java/thedarkcolour/exdeorum/data/BlockModels.java +++ b/src/main/java/thedarkcolour/exdeorum/data/BlockModels.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.data; import net.minecraft.world.level.block.Block; @@ -12,6 +30,8 @@ public static void addBlockModels(MKBlockModelProvider models) { models.simpleBlock(EBlocks.DUST.get()); models.simpleBlock(EBlocks.CRUSHED_NETHERRACK.get()); models.simpleBlock(EBlocks.CRUSHED_END_STONE.get()); + models.simpleBlock(EBlocks.CRUSHED_DEEPSLATE.get()); + models.simpleBlock(EBlocks.CRUSHED_BLACKSTONE.get()); // Barrels barrel(models, EBlocks.OAK_BARREL.get(), Blocks.OAK_PLANKS); @@ -40,7 +60,7 @@ public static void addBlockModels(MKBlockModelProvider models) { sieve(models, EBlocks.WARPED_SIEVE.get(), Blocks.WARPED_PLANKS); // Lava Crucible - crucible(models, EBlocks.UNFIRED_CRUCIBLE.get()); + crucible(models, EBlocks.UNFIRED_PORCELAIN_CRUCIBLE.get()); crucible(models, EBlocks.PORCELAIN_CRUCIBLE.get()); crucible(models, EBlocks.CRIMSON_CRUCIBLE.get(), Blocks.CRIMSON_STEM); crucible(models, EBlocks.WARPED_CRUCIBLE.get(), Blocks.WARPED_STEM); diff --git a/src/main/java/thedarkcolour/exdeorum/data/Data.java b/src/main/java/thedarkcolour/exdeorum/data/Data.java index cd632831..0acff171 100644 --- a/src/main/java/thedarkcolour/exdeorum/data/Data.java +++ b/src/main/java/thedarkcolour/exdeorum/data/Data.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.data; import net.minecraft.core.registries.Registries; diff --git a/src/main/java/thedarkcolour/exdeorum/data/English.java b/src/main/java/thedarkcolour/exdeorum/data/English.java index 95c834ce..c970e138 100644 --- a/src/main/java/thedarkcolour/exdeorum/data/English.java +++ b/src/main/java/thedarkcolour/exdeorum/data/English.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.data; import thedarkcolour.exdeorum.ExDeorum; @@ -9,6 +27,7 @@ static void addTranslations(MKEnglishProvider english) { english.add(TranslationKeys.MAIN_CREATIVE_TAB, "Ex Deorum"); english.add(TranslationKeys.VOID_WORLD_TYPE, "Void World"); + english.add(TranslationKeys.WATERING_CAN_FLUID_DISPLAY, ": %s / %s"); english.add(TranslationKeys.ROOT_ADVANCEMENT_TITLE, "Don't Look Down..."); english.add(TranslationKeys.ROOT_ADVANCEMENT_DESCRIPTION, "Spawn into a SkyBlock void world"); @@ -16,15 +35,23 @@ static void addTranslations(MKEnglishProvider english) { english.add(TranslationKeys.CROOK_ADVANCEMENT_DESCRIPTION, "Craft a Crook to double sapling drops from leaves"); english.add(TranslationKeys.BARREL_ADVANCEMENT_TITLE, "That Goes in the GreenWaste"); english.add(TranslationKeys.BARREL_ADVANCEMENT_DESCRIPTION, "Use a barrel to compost organic material into dirt"); - english.add(TranslationKeys.SILK_WORM_ADVANCEMENT_TITLE, "Straight Outta China"); + english.add(TranslationKeys.SILK_WORM_ADVANCEMENT_TITLE, "This Looks Edible"); english.add(TranslationKeys.SILK_WORM_ADVANCEMENT_DESCRIPTION, "Obtain a silk worm, then infest a tree with it to get string"); english.add(TranslationKeys.STRING_MESH_ADVANCEMENT_TITLE, "All the Little Cogs"); english.add(TranslationKeys.STRING_MESH_ADVANCEMENT_DESCRIPTION, "Craft a string mesh to use in a sieve"); english.add(TranslationKeys.SILK_WORM_JEI_INFO, "Silk worms have a 1 in 100 chance to drop from leaves harvested with a Crook. Using a silk worm on a tree's leaves will infest them, gradually spreading through the entire tree. 100% infested leaves can be harvested for string, but do not drop saplings."); - english.add(TranslationKeys.SIEVE_JEI_INFO, "Sieves are used to sift for items from soft blocks like gravel and dirt. A mesh is required to use the sieve. Meshes can be enchanted with Fortune and Efficiency. Adjacent sieves in a 3x3 area can be used simultaneously."); + english.add(TranslationKeys.SIEVE_JEI_INFO, "Sieves are used to sift for items from soft blocks like gravel and dirt. A mesh is required to use the sieve. Meshes can be enchanted with Fortune and Efficiency. Sieves in a 3x3 area can be used simultaneously."); + english.add(TranslationKeys.WATERING_CAN_JEI_INFO, "Watering cans speed up crop growth, tree growth, and grass spreading, among other things. They can be filled with water from barrels and wooden crucibles. Golden and above watering cans do not need to be refilled once full. Diamond watering cans water in a 3x3 area, and Netherite watering cans are usable by machinery."); + english.add(TranslationKeys.WITCH_WATER_JEI_INFO, "Witch water is obtained by putting water in a barrel on top of mycelium. More mycelium speeds up the process. A barrel with witch water will grow mushrooms on nearby mycelium. Witch water and lava can make a netherrack generator, similar to a cobblestone generator."); + english.add(TranslationKeys.MYCELIUM_SPORES_JEI_INFO, "Use on dirt to turn it into mycelium."); + english.add(TranslationKeys.GRASS_SEEDS_JEI_INFO, "Use on dirt to turn it into a grass block."); + english.add(TranslationKeys.WARPED_NYLIUM_SPORES_JEI_INFO, "Use on netherrack to turn it into a warped nylium block."); + english.add(TranslationKeys.CRIMSON_NYLIUM_SPORES_JEI_INFO, "Use on netherrack to turn it into a crimson nylium block."); + english.add(TranslationKeys.SCULK_CORE_JEI_INFO, "Use a sculk core on a Sculk Shrieker to enable it to spawn Wardens. Normally, Sculk Shriekers placed by players cannot spawn Wardens, so this item is useful for obtaining Sculk items in a SkyBlock world."); english.add(TranslationKeys.BARREL_COMPOST_CATEGORY_TITLE, "Barrel Compost"); english.add(TranslationKeys.BARREL_COMPOST_RECIPE_VOLUME, "Compost: %s"); + english.add(TranslationKeys.BARREL_MIXING_CATEGORY_TITLE, "Barrel Mixing"); english.add(TranslationKeys.WATER_CRUCIBLE_CATEGORY_TITLE, "Water Crucible"); english.add(TranslationKeys.LAVA_CRUCIBLE_CATEGORY_TITLE, "Lava Crucible"); english.add(TranslationKeys.HAMMER_CATEGORY_TITLE, "Hammer"); diff --git a/src/main/java/thedarkcolour/exdeorum/data/ItemModels.java b/src/main/java/thedarkcolour/exdeorum/data/ItemModels.java index e96e74a6..fd7a84f3 100644 --- a/src/main/java/thedarkcolour/exdeorum/data/ItemModels.java +++ b/src/main/java/thedarkcolour/exdeorum/data/ItemModels.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.data; import thedarkcolour.exdeorum.registry.EItems; @@ -5,9 +23,6 @@ class ItemModels { public static void addItemModels(MKItemModelProvider models) { - models.generic2d(EItems.SILK_WORM); - models.generic2d(EItems.COOKED_SILK_WORM); - models.handheld(EItems.WOODEN_HAMMER); models.handheld(EItems.STONE_HAMMER); models.handheld(EItems.GOLDEN_HAMMER); @@ -17,5 +32,14 @@ public static void addItemModels(MKItemModelProvider models) { models.handheld(EItems.CROOK); models.handheld(EItems.BONE_CROOK); + + models.handheld(EItems.WOODEN_WATERING_CAN); + models.handheld(EItems.STONE_WATERING_CAN); + models.handheld(EItems.IRON_WATERING_CAN); + models.handheld(EItems.GOLDEN_WATERING_CAN); + models.handheld(EItems.DIAMOND_WATERING_CAN); + models.handheld(EItems.NETHERITE_WATERING_CAN); + + models.generic2d(EItems.END_CAKE); } } diff --git a/src/main/java/thedarkcolour/exdeorum/data/LootTables.java b/src/main/java/thedarkcolour/exdeorum/data/LootTables.java index 58ad2dc3..bc9e52c5 100644 --- a/src/main/java/thedarkcolour/exdeorum/data/LootTables.java +++ b/src/main/java/thedarkcolour/exdeorum/data/LootTables.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.data; import net.minecraft.data.PackOutput; diff --git a/src/main/java/thedarkcolour/exdeorum/data/ModTags.java b/src/main/java/thedarkcolour/exdeorum/data/ModTags.java index dfe0b485..a07f43d8 100644 --- a/src/main/java/thedarkcolour/exdeorum/data/ModTags.java +++ b/src/main/java/thedarkcolour/exdeorum/data/ModTags.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.data; import net.minecraft.core.registries.Registries; @@ -6,6 +24,7 @@ import net.minecraft.tags.BlockTags; import net.minecraft.tags.FluidTags; import net.minecraft.world.item.Item; +import net.minecraft.world.item.Items; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.levelgen.presets.WorldPreset; import net.minecraft.world.level.levelgen.structure.BuiltinStructureSets; @@ -22,16 +41,19 @@ class ModTags { public static void createBlockTags(MKTagsProvider tags) { tags.tag(BlockTags.MINEABLE_WITH_AXE).add(EBlocks.OAK_BARREL.get(), EBlocks.SPRUCE_BARREL.get(), EBlocks.BIRCH_BARREL.get(), EBlocks.JUNGLE_BARREL.get(), EBlocks.ACACIA_BARREL.get(), EBlocks.DARK_OAK_BARREL.get(), EBlocks.MANGROVE_BARREL.get(), EBlocks.CHERRY_BARREL.get(), EBlocks.BAMBOO_BARREL.get(), EBlocks.CRIMSON_BARREL.get(), EBlocks.WARPED_BARREL.get(), EBlocks.OAK_SIEVE.get(), EBlocks.SPRUCE_SIEVE.get(), EBlocks.BIRCH_SIEVE.get(), EBlocks.JUNGLE_SIEVE.get(), EBlocks.ACACIA_SIEVE.get(), EBlocks.DARK_OAK_SIEVE.get(), EBlocks.MANGROVE_SIEVE.get(), EBlocks.CHERRY_SIEVE.get(), EBlocks.BAMBOO_SIEVE.get(), EBlocks.CRIMSON_SIEVE.get(), EBlocks.WARPED_SIEVE.get(), EBlocks.WARPED_CRUCIBLE.get(), EBlocks.CRIMSON_CRUCIBLE.get(), EBlocks.OAK_CRUCIBLE.get(), EBlocks.SPRUCE_CRUCIBLE.get(), EBlocks.BIRCH_CRUCIBLE.get(), EBlocks.JUNGLE_CRUCIBLE.get(), EBlocks.ACACIA_CRUCIBLE.get(), EBlocks.DARK_OAK_CRUCIBLE.get(), EBlocks.MANGROVE_CRUCIBLE.get(), EBlocks.CHERRY_CRUCIBLE.get(), EBlocks.BAMBOO_CRUCIBLE.get()); - tags.tag(BlockTags.MINEABLE_WITH_PICKAXE).add(EBlocks.STONE_BARREL.get(), EBlocks.PORCELAIN_CRUCIBLE.get(), EBlocks.UNFIRED_CRUCIBLE.get()); + tags.tag(BlockTags.MINEABLE_WITH_PICKAXE).add(EBlocks.STONE_BARREL, EBlocks.PORCELAIN_CRUCIBLE, EBlocks.UNFIRED_PORCELAIN_CRUCIBLE); + tags.tag(BlockTags.MINEABLE_WITH_HOE).add(EBlocks.INFESTED_LEAVES); + tags.tag(BlockTags.LEAVES).add(EBlocks.INFESTED_LEAVES); } public static void createItemTags(MKTagsProvider tags) { tags.tag(EItemTags.HAMMERS).add(EItems.WOODEN_HAMMER, EItems.STONE_HAMMER, EItems.GOLDEN_HAMMER, EItems.IRON_HAMMER, EItems.DIAMOND_HAMMER, EItems.NETHERITE_HAMMER); tags.tag(EItemTags.CROOKS).add(EItems.CROOK, EItems.BONE_CROOK); tags.tag(EItemTags.SIEVE_MESHES).add(EItems.STRING_MESH, EItems.FLINT_MESH, EItems.IRON_MESH, EItems.GOLDEN_MESH, EItems.DIAMOND_MESH, EItems.NETHERITE_MESH); - tags.tag(EItemTags.PEBBLES).add(EItems.STONE_PEBBLE, EItems.DIORITE_PEBBLE, EItems.GRANITE_PEBBLE, EItems.ANDESITE_PEBBLE, EItems.DEEPSLATE_PEBBLE, EItems.TUFF_PEBBLE); + tags.tag(EItemTags.PEBBLES).add(EItems.STONE_PEBBLE, EItems.DIORITE_PEBBLE, EItems.GRANITE_PEBBLE, EItems.ANDESITE_PEBBLE, EItems.DEEPSLATE_PEBBLE, EItems.TUFF_PEBBLE, EItems.CALCITE_PEBBLE, EItems.BLACKSTONE_PEBBLE, EItems.BASALT_PEBBLE); + tags.tag(EItemTags.END_CAKE_MATERIAL).add(Items.ENDER_EYE); tags.tag(EItemTags.WOODEN_BARRELS).add(EItems.OAK_BARREL.get(), EItems.SPRUCE_BARREL.get(), EItems.BIRCH_BARREL.get(), EItems.JUNGLE_BARREL.get(), EItems.ACACIA_BARREL.get(), EItems.DARK_OAK_BARREL.get(), EItems.MANGROVE_BARREL.get(), EItems.CHERRY_BARREL.get(), EItems.BAMBOO_BARREL.get()); - tags.tag(EItemTags.STONE_BARRELS).add(EItems.STONE_BARREL.get()); + tags.tag(EItemTags.STONE_BARRELS).add(EItems.STONE_BARREL); tags.tag(EItemTags.BARRELS).addTags(EItemTags.WOODEN_BARRELS, EItemTags.STONE_BARRELS); } @@ -46,6 +68,6 @@ public static void createWorldPresetTags(MKTagsProvider tags) { } public static void createFluidTags(MKTagsProvider tags) { - tags.tag(FluidTags.WATER).add(EFluids.WITCH_WATER_STILL.get(), EFluids.WITCH_WATER_FLOWING.get()); + tags.tag(FluidTags.WATER).add(EFluids.WITCH_WATER.get(), EFluids.WITCH_WATER_FLOWING.get()); } } diff --git a/src/main/java/thedarkcolour/exdeorum/data/Recipes.java b/src/main/java/thedarkcolour/exdeorum/data/Recipes.java index 82e16fd3..9490edab 100644 --- a/src/main/java/thedarkcolour/exdeorum/data/Recipes.java +++ b/src/main/java/thedarkcolour/exdeorum/data/Recipes.java @@ -1,24 +1,40 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.data; import net.minecraft.data.recipes.FinishedRecipe; -import net.minecraft.data.recipes.RecipeBuilder; import net.minecraft.data.recipes.RecipeCategory; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.ItemTags; import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.material.Fluid; import net.minecraft.world.level.material.Fluids; import net.minecraft.world.level.storage.loot.providers.number.BinomialDistributionGenerator; import net.minecraft.world.level.storage.loot.providers.number.ConstantValue; import net.minecraft.world.level.storage.loot.providers.number.NumberProvider; import net.minecraft.world.level.storage.loot.providers.number.UniformGenerator; -import net.minecraftforge.common.ForgeMod; import net.minecraftforge.common.Tags; -import net.minecraftforge.fluids.FluidType; -import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.RegistryObject; import thedarkcolour.exdeorum.ExDeorum; import thedarkcolour.exdeorum.recipe.barrel.FinishedBarrelCompostRecipe; @@ -32,20 +48,21 @@ import thedarkcolour.exdeorum.registry.ERecipeSerializers; import thedarkcolour.modkit.data.MKRecipeProvider; -import java.util.Objects; +import java.util.List; import java.util.function.BiConsumer; import java.util.function.Consumer; import java.util.function.Supplier; -import static net.minecraft.data.recipes.SimpleCookingRecipeBuilder.*; -import static net.minecraft.data.recipes.SmithingTransformRecipeBuilder.smithing; import static net.minecraft.world.level.storage.loot.providers.number.BinomialDistributionGenerator.binomial; -import static thedarkcolour.modkit.data.MKRecipeProvider.unlockedByHaving; +import static net.minecraft.world.level.storage.loot.providers.number.UniformGenerator.between; +import static thedarkcolour.modkit.data.MKRecipeProvider.ingredient; +import static thedarkcolour.modkit.data.MKRecipeProvider.path; class Recipes { + private static final Ingredient SPORES_AND_SEEDS = ingredient(EItems.GRASS_SEEDS, EItems.MYCELIUM_SPORES, EItems.WARPED_NYLIUM_SPORES, EItems.CRIMSON_NYLIUM_SPORES); public static void addRecipes(Consumer writer, MKRecipeProvider recipes) { - craftingRecipes(writer, recipes); - smeltingRecipes(writer); + craftingRecipes(recipes); + smeltingRecipes(recipes); sieveRecipes(writer); crucibleRecipes(writer); hammerRecipes(writer); @@ -53,67 +70,113 @@ public static void addRecipes(Consumer writer, MKRecipeProvider barrelMixingRecipes(writer); } - private static void craftingRecipes(Consumer writer, MKRecipeProvider recipes) { + private static void craftingRecipes(MKRecipeProvider recipes) { // Crooks - shapedCrook(recipes, EItems.CROOK, Ingredient.of(Tags.Items.RODS_WOODEN)); - shapedCrook(recipes, EItems.BONE_CROOK, Ingredient.of(Items.BONE)); + shapedCrook(recipes, EItems.CROOK, ingredient(Tags.Items.RODS_WOODEN)); + shapedCrook(recipes, EItems.BONE_CROOK, ingredient(Items.BONE)); // Hammers - shapedHammer(recipes, EItems.WOODEN_HAMMER, Ingredient.of(ItemTags.PLANKS)); - shapedHammer(recipes, EItems.STONE_HAMMER, Ingredient.of(ItemTags.STONE_CRAFTING_MATERIALS)); - shapedHammer(recipes, EItems.GOLDEN_HAMMER, Ingredient.of(Tags.Items.INGOTS_GOLD)); - shapedHammer(recipes, EItems.IRON_HAMMER, Ingredient.of(Tags.Items.INGOTS_IRON)); - shapedHammer(recipes, EItems.DIAMOND_HAMMER, Ingredient.of(Tags.Items.GEMS_DIAMOND)); - unlockedByHaving(smithing( - Ingredient.of(Items.NETHERITE_UPGRADE_SMITHING_TEMPLATE), - Ingredient.of(EItems.DIAMOND_HAMMER.get()), - Ingredient.of(Tags.Items.INGOTS_NETHERITE), - RecipeCategory.TOOLS, - EItems.NETHERITE_HAMMER.get() - ), - Items.NETHERITE_INGOT - ).save(writer, RecipeBuilder.getDefaultRecipeId(EItems.NETHERITE_HAMMER.get())); + shapedHammer(recipes, EItems.WOODEN_HAMMER, ingredient(ItemTags.PLANKS)); + shapedHammer(recipes, EItems.STONE_HAMMER, ingredient(ItemTags.STONE_CRAFTING_MATERIALS)); + shapedHammer(recipes, EItems.GOLDEN_HAMMER, ingredient(Tags.Items.INGOTS_GOLD)); + shapedHammer(recipes, EItems.IRON_HAMMER, ingredient(Tags.Items.INGOTS_IRON)); + shapedHammer(recipes, EItems.DIAMOND_HAMMER, ingredient(Tags.Items.GEMS_DIAMOND)); + recipes.netheriteUpgrade(RecipeCategory.TOOLS, ingredient(EItems.DIAMOND_HAMMER.get()), EItems.NETHERITE_HAMMER.get()); // Crucibles - uShaped(recipes, EItems.OAK_CRUCIBLE, Ingredient.of(Items.OAK_LOG), Ingredient.of(Items.OAK_SLAB)); - uShaped(recipes, EItems.SPRUCE_CRUCIBLE, Ingredient.of(Items.SPRUCE_LOG), Ingredient.of(Items.SPRUCE_SLAB)); - uShaped(recipes, EItems.BIRCH_CRUCIBLE, Ingredient.of(Items.BIRCH_LOG), Ingredient.of(Items.BIRCH_SLAB)); - uShaped(recipes, EItems.JUNGLE_CRUCIBLE, Ingredient.of(Items.JUNGLE_LOG), Ingredient.of(Items.JUNGLE_SLAB)); - uShaped(recipes, EItems.ACACIA_CRUCIBLE, Ingredient.of(Items.ACACIA_LOG), Ingredient.of(Items.ACACIA_SLAB)); - uShaped(recipes, EItems.DARK_OAK_CRUCIBLE, Ingredient.of(Items.DARK_OAK_LOG), Ingredient.of(Items.DARK_OAK_SLAB)); - uShaped(recipes, EItems.MANGROVE_CRUCIBLE, Ingredient.of(Items.MANGROVE_LOG), Ingredient.of(Items.MANGROVE_SLAB)); - uShaped(recipes, EItems.CHERRY_CRUCIBLE, Ingredient.of(Items.CHERRY_LOG), Ingredient.of(Items.CHERRY_SLAB)); - uShaped(recipes, EItems.BAMBOO_CRUCIBLE, Ingredient.of(Items.BAMBOO_BLOCK), Ingredient.of(Items.BAMBOO_SLAB)); - uShaped(recipes, EItems.CRIMSON_CRUCIBLE, Ingredient.of(Items.CRIMSON_STEM), Ingredient.of(Items.CRIMSON_SLAB)); - uShaped(recipes, EItems.WARPED_CRUCIBLE, Ingredient.of(Items.WARPED_STEM), Ingredient.of(Items.WARPED_SLAB)); - uShaped(recipes, EItems.UNFIRED_CRUCIBLE, Ingredient.of(EItems.PORCELAIN_CLAY.get()), Ingredient.of(EItems.PORCELAIN_CLAY.get())); + uShaped(recipes, EItems.OAK_CRUCIBLE, ingredient(Items.OAK_LOG), ingredient(Items.OAK_SLAB)); + uShaped(recipes, EItems.SPRUCE_CRUCIBLE, ingredient(Items.SPRUCE_LOG), ingredient(Items.SPRUCE_SLAB)); + uShaped(recipes, EItems.BIRCH_CRUCIBLE, ingredient(Items.BIRCH_LOG), ingredient(Items.BIRCH_SLAB)); + uShaped(recipes, EItems.JUNGLE_CRUCIBLE, ingredient(Items.JUNGLE_LOG), ingredient(Items.JUNGLE_SLAB)); + uShaped(recipes, EItems.ACACIA_CRUCIBLE, ingredient(Items.ACACIA_LOG), ingredient(Items.ACACIA_SLAB)); + uShaped(recipes, EItems.DARK_OAK_CRUCIBLE, ingredient(Items.DARK_OAK_LOG), ingredient(Items.DARK_OAK_SLAB)); + uShaped(recipes, EItems.MANGROVE_CRUCIBLE, ingredient(Items.MANGROVE_LOG), ingredient(Items.MANGROVE_SLAB)); + uShaped(recipes, EItems.CHERRY_CRUCIBLE, ingredient(Items.CHERRY_LOG), ingredient(Items.CHERRY_SLAB)); + uShaped(recipes, EItems.BAMBOO_CRUCIBLE, ingredient(Items.BAMBOO_BLOCK), ingredient(Items.BAMBOO_SLAB)); + uShaped(recipes, EItems.CRIMSON_CRUCIBLE, ingredient(Items.CRIMSON_STEM), ingredient(Items.CRIMSON_SLAB)); + uShaped(recipes, EItems.WARPED_CRUCIBLE, ingredient(Items.WARPED_STEM), ingredient(Items.WARPED_SLAB)); + uShaped(recipes, EItems.UNFIRED_PORCELAIN_CRUCIBLE, ingredient(EItems.PORCELAIN_CLAY_BALL.get()), ingredient(EItems.PORCELAIN_CLAY_BALL.get())); // Barrels - uShaped(recipes, EItems.OAK_BARREL, Ingredient.of(Items.OAK_PLANKS), Ingredient.of(Items.OAK_SLAB)); - uShaped(recipes, EItems.SPRUCE_BARREL, Ingredient.of(Items.SPRUCE_PLANKS), Ingredient.of(Items.SPRUCE_SLAB)); - uShaped(recipes, EItems.BIRCH_BARREL, Ingredient.of(Items.BIRCH_PLANKS), Ingredient.of(Items.BIRCH_SLAB)); - uShaped(recipes, EItems.JUNGLE_BARREL, Ingredient.of(Items.JUNGLE_PLANKS), Ingredient.of(Items.JUNGLE_SLAB)); - uShaped(recipes, EItems.ACACIA_BARREL, Ingredient.of(Items.ACACIA_PLANKS), Ingredient.of(Items.ACACIA_SLAB)); - uShaped(recipes, EItems.DARK_OAK_BARREL, Ingredient.of(Items.DARK_OAK_PLANKS), Ingredient.of(Items.DARK_OAK_SLAB)); - uShaped(recipes, EItems.MANGROVE_BARREL, Ingredient.of(Items.MANGROVE_PLANKS), Ingredient.of(Items.MANGROVE_SLAB)); - uShaped(recipes, EItems.CHERRY_BARREL, Ingredient.of(Items.CHERRY_PLANKS), Ingredient.of(Items.CHERRY_SLAB)); - uShaped(recipes, EItems.BAMBOO_BARREL, Ingredient.of(Items.BAMBOO_PLANKS), Ingredient.of(Items.BAMBOO_SLAB)); - uShaped(recipes, EItems.CRIMSON_BARREL, Ingredient.of(Items.CRIMSON_PLANKS), Ingredient.of(Items.CRIMSON_SLAB)); - uShaped(recipes, EItems.WARPED_BARREL, Ingredient.of(Items.WARPED_PLANKS), Ingredient.of(Items.WARPED_SLAB)); - uShaped(recipes, EItems.STONE_BARREL, Ingredient.of(Items.STONE), Ingredient.of(Items.STONE_SLAB)); - - twoByTwo(recipes, Items.COBBLESTONE, Ingredient.of(EItems.STONE_PEBBLE.get())); - twoByTwo(recipes, Items.ANDESITE, Ingredient.of(EItems.ANDESITE_PEBBLE.get())); - twoByTwo(recipes, Items.DIORITE, Ingredient.of(EItems.DIORITE_PEBBLE.get())); - twoByTwo(recipes, Items.GRANITE, Ingredient.of(EItems.GRANITE_PEBBLE.get())); - twoByTwo(recipes, Items.IRON_ORE, Ingredient.of(EItems.IRON_ORE_CHUNK.get())); - twoByTwo(recipes, Items.GOLD_ORE, Ingredient.of(EItems.GOLD_ORE_CHUNK.get())); - twoByTwo(recipes, Items.COPPER_ORE, Ingredient.of(EItems.COPPER_ORE_CHUNK.get())); - recipes.shapedCrafting(RecipeCategory.MISC, EItems.STRING_MESH.get(), recipe -> { - recipe.define('s', Tags.Items.STRING); - recipe.pattern("sss"); - recipe.pattern("sss"); - recipe.pattern("sss"); + uShaped(recipes, EItems.OAK_BARREL, ingredient(Items.OAK_PLANKS), ingredient(Items.OAK_SLAB)); + uShaped(recipes, EItems.SPRUCE_BARREL, ingredient(Items.SPRUCE_PLANKS), ingredient(Items.SPRUCE_SLAB)); + uShaped(recipes, EItems.BIRCH_BARREL, ingredient(Items.BIRCH_PLANKS), ingredient(Items.BIRCH_SLAB)); + uShaped(recipes, EItems.JUNGLE_BARREL, ingredient(Items.JUNGLE_PLANKS), ingredient(Items.JUNGLE_SLAB)); + uShaped(recipes, EItems.ACACIA_BARREL, ingredient(Items.ACACIA_PLANKS), ingredient(Items.ACACIA_SLAB)); + uShaped(recipes, EItems.DARK_OAK_BARREL, ingredient(Items.DARK_OAK_PLANKS), ingredient(Items.DARK_OAK_SLAB)); + uShaped(recipes, EItems.MANGROVE_BARREL, ingredient(Items.MANGROVE_PLANKS), ingredient(Items.MANGROVE_SLAB)); + uShaped(recipes, EItems.CHERRY_BARREL, ingredient(Items.CHERRY_PLANKS), ingredient(Items.CHERRY_SLAB)); + uShaped(recipes, EItems.BAMBOO_BARREL, ingredient(Items.BAMBOO_PLANKS), ingredient(Items.BAMBOO_SLAB)); + uShaped(recipes, EItems.CRIMSON_BARREL, ingredient(Items.CRIMSON_PLANKS), ingredient(Items.CRIMSON_SLAB)); + uShaped(recipes, EItems.WARPED_BARREL, ingredient(Items.WARPED_PLANKS), ingredient(Items.WARPED_SLAB)); + uShaped(recipes, EItems.STONE_BARREL, ingredient(Items.STONE), ingredient(Items.STONE_SLAB)); + + // Pebbles and ore chunks + recipes.grid2x2(Items.COBBLESTONE, ingredient(EItems.STONE_PEBBLE)); + recipes.grid2x2(Items.ANDESITE, ingredient(EItems.ANDESITE_PEBBLE)); + recipes.grid2x2(Items.DIORITE, ingredient(EItems.DIORITE_PEBBLE)); + recipes.grid2x2(Items.GRANITE, ingredient(EItems.GRANITE_PEBBLE)); + recipes.grid2x2(Items.COBBLED_DEEPSLATE, ingredient(EItems.DEEPSLATE_PEBBLE)); + recipes.grid2x2(Items.TUFF, ingredient(EItems.TUFF_PEBBLE)); + recipes.grid2x2(Items.CALCITE, ingredient(EItems.CALCITE_PEBBLE)); + recipes.grid2x2(Items.BLACKSTONE, ingredient(EItems.BLACKSTONE_PEBBLE)); + recipes.grid2x2(Items.BASALT, ingredient(EItems.BASALT_PEBBLE)); + recipes.grid2x2(Items.IRON_ORE, ingredient(EItems.IRON_ORE_CHUNK)); + recipes.grid2x2(Items.GOLD_ORE, ingredient(EItems.GOLD_ORE_CHUNK)); + recipes.grid2x2(Items.COPPER_ORE, ingredient(EItems.COPPER_ORE_CHUNK)); + recipes.grid2x2(Items.MOSS_BLOCK, ingredient(EItems.GRASS_SEEDS)); + + // Sieves + sieve(recipes, EItems.OAK_SIEVE, Items.OAK_PLANKS, Items.OAK_SLAB); + sieve(recipes, EItems.SPRUCE_SIEVE, Items.SPRUCE_PLANKS, Items.SPRUCE_SLAB); + sieve(recipes, EItems.BIRCH_SIEVE, Items.BIRCH_PLANKS, Items.BIRCH_SLAB); + sieve(recipes, EItems.JUNGLE_SIEVE, Items.JUNGLE_PLANKS, Items.JUNGLE_SLAB); + sieve(recipes, EItems.ACACIA_SIEVE, Items.ACACIA_PLANKS, Items.ACACIA_SLAB); + sieve(recipes, EItems.DARK_OAK_SIEVE, Items.DARK_OAK_PLANKS, Items.DARK_OAK_SLAB); + sieve(recipes, EItems.MANGROVE_SIEVE, Items.MANGROVE_PLANKS, Items.MANGROVE_SLAB); + sieve(recipes, EItems.CHERRY_SIEVE, Items.CHERRY_PLANKS, Items.CHERRY_SLAB); + sieve(recipes, EItems.BAMBOO_SIEVE, Items.BAMBOO_PLANKS, Items.BAMBOO_SLAB); + sieve(recipes, EItems.CRIMSON_SIEVE, Items.CRIMSON_PLANKS, Items.CRIMSON_SLAB); + sieve(recipes, EItems.WARPED_SIEVE, Items.WARPED_PLANKS, Items.WARPED_SLAB); + + // Meshes + recipes.grid3x3(EItems.STRING_MESH.get(), ingredient(Tags.Items.STRING)); + mesh(recipes, EItems.FLINT_MESH.get(), ingredient(Items.FLINT)); + mesh(recipes, EItems.IRON_MESH.get(), ingredient(Tags.Items.INGOTS_IRON)); + mesh(recipes, EItems.GOLDEN_MESH.get(), ingredient(Tags.Items.INGOTS_GOLD)); + mesh(recipes, EItems.DIAMOND_MESH.get(), ingredient(Tags.Items.GEMS_DIAMOND)); + recipes.netheriteUpgrade(RecipeCategory.MISC, ingredient(EItems.DIAMOND_MESH), EItems.NETHERITE_MESH.get()); + + // Watering cans + wateringCan(recipes, EItems.WOODEN_WATERING_CAN, ingredient(ItemTags.PLANKS)); + wateringCan(recipes, EItems.STONE_WATERING_CAN, ingredient(ItemTags.STONE_TOOL_MATERIALS)); + wateringCan(recipes, EItems.IRON_WATERING_CAN, ingredient(Tags.Items.INGOTS_IRON)); + wateringCan(recipes, EItems.GOLDEN_WATERING_CAN, ingredient(Tags.Items.INGOTS_GOLD)); + wateringCan(recipes, EItems.DIAMOND_WATERING_CAN, ingredient(Tags.Items.GEMS_DIAMOND)); + recipes.netheriteUpgrade(RecipeCategory.TOOLS, ingredient(EItems.DIAMOND_WATERING_CAN), EItems.NETHERITE_WATERING_CAN.get()); + + // misc + recipes.shapelessCrafting(RecipeCategory.MISC, new ItemStack(EItems.PORCELAIN_CLAY_BALL.get()), ingredient(Items.CLAY_BALL), ingredient(Items.BONE_MEAL)); + recipes.shapedCrafting(RecipeCategory.MISC, EItems.UNFIRED_PORCELAIN_BUCKET.get(), recipe -> { + recipe.define('#', EItems.PORCELAIN_CLAY_BALL); + recipe.pattern("# #"); + recipe.pattern(" # "); + }); + recipes.shapedCrafting(RecipeCategory.MISC, EItems.SCULK_CORE.get(), recipe -> { + recipe.define('#', Items.ECHO_SHARD); + recipe.define('O', Items.ENDER_PEARL); + recipe.pattern(" # "); + recipe.pattern("#O#"); + recipe.pattern(" # "); + }); + recipes.shapedCrafting(RecipeCategory.FOOD, EItems.END_CAKE.get(), recipe -> { + recipe.define('P', Items.ENDER_EYE); + recipe.define('S', Items.SUGAR); + recipe.define('E', Tags.Items.EGGS); + recipe.define('C', EItems.CRUSHED_END_STONE); + recipe.pattern("PPP"); + recipe.pattern("SES"); + recipe.pattern("CCC"); }); } @@ -146,58 +209,641 @@ private static void uShaped(MKRecipeProvider recipes, RegistryObject result, Item planks, Item slab) { + recipes.shapedCrafting(RecipeCategory.MISC, result.get(), recipe -> { + recipe.define('O', planks); + recipe.define('_', slab); + recipe.define('I', Tags.Items.RODS_WOODEN); + recipe.pattern("O O"); + recipe.pattern("O_O"); + recipe.pattern("I I"); + }); + } + + private static void mesh(MKRecipeProvider recipes, Item result, Ingredient ingredient) { recipes.shapedCrafting(RecipeCategory.MISC, result, recipe -> { recipe.define('#', ingredient); - recipe.pattern("##"); - recipe.pattern("##"); + recipe.define('S', ingredient(Tags.Items.STRING)); + recipe.pattern("S#S"); + recipe.pattern("#S#"); + recipe.pattern("S#S"); }); } - // todo add support in modkit - private static void smeltingRecipes(Consumer writer) { - unlockedByHaving( - smelting(Ingredient.of(EItems.UNFIRED_CRUCIBLE.get()), RecipeCategory.MISC, EItems.PORCELAIN_CRUCIBLE.get(), 0.1f, 200), - EItems.UNFIRED_CRUCIBLE.get() - ).save(writer, EItems.PORCELAIN_CRUCIBLE.getId()); - unlockedByHaving( - smelting(Ingredient.of(EItems.SILK_WORM.get()), RecipeCategory.FOOD, EItems.COOKED_SILK_WORM.get(), 0.1f, 200), - EItems.SILK_WORM.get() - ).save(writer, EItems.COOKED_SILK_WORM.getId()); - unlockedByHaving( - smoking(Ingredient.of(EItems.SILK_WORM.get()), RecipeCategory.FOOD, EItems.COOKED_SILK_WORM.get(), 0.1f, 100), - EItems.SILK_WORM.get() - ).save(writer, EItems.COOKED_SILK_WORM.getId().withSuffix("_from_smoking")); - unlockedByHaving( - campfireCooking(Ingredient.of(EItems.SILK_WORM.get()), RecipeCategory.FOOD, EItems.COOKED_SILK_WORM.get(), 0.1f, 600), - EItems.SILK_WORM.get() - ).save(writer, EItems.PORCELAIN_CRUCIBLE.getId().withSuffix("_from_campfire_cooking")); + private static void wateringCan(MKRecipeProvider recipes, Supplier result, Ingredient shell) { + recipes.shapedCrafting(RecipeCategory.TOOLS, result.get(), recipe -> { + recipe.define('#', shell); + recipe.define('B', Items.BOWL); + recipe.pattern("# "); + recipe.pattern("#B#"); + recipe.pattern(" # "); + }); + } + + private static void smeltingRecipes(MKRecipeProvider recipes) { + recipes.smelting(ingredient(EItems.UNFIRED_PORCELAIN_CRUCIBLE), EItems.PORCELAIN_CRUCIBLE.get(), 0.1f); + recipes.smelting(ingredient(EItems.UNFIRED_PORCELAIN_BUCKET), EItems.PORCELAIN_BUCKET.get(), 0.1f); + + recipes.foodCooking(EItems.SILK_WORM.get(), EItems.COOKED_SILK_WORM.get(), 0.1f); } private static void sieveRecipes(Consumer writer) { + var allMeshes = List.of(EItems.STRING_MESH, EItems.FLINT_MESH, EItems.IRON_MESH, EItems.GOLDEN_MESH, EItems.DIAMOND_MESH, EItems.NETHERITE_MESH); + // Dirt -> String mesh - forMesh(writer, Ingredient.of(Items.DIRT), EItems.STRING_MESH, addDrop -> { + forMesh(writer, ingredient(Items.DIRT), EItems.STRING_MESH, addDrop -> { addDrop.accept(EItems.STONE_PEBBLE.get(), binomial(7, 0.6f)); - addDrop.accept(Items.WHEAT_SEEDS, chance(0.7f)); - addDrop.accept(Items.BEETROOT_SEEDS, chance(0.35f)); - addDrop.accept(Items.MELON_SEEDS, chance(0.35f)); - addDrop.accept(Items.PUMPKIN_SEEDS, chance(0.35f)); addDrop.accept(Items.FLINT, chance(0.25f)); + addDrop.accept(Items.WHEAT_SEEDS, chance(0.125f)); + addDrop.accept(Items.MELON_SEEDS, chance(0.1f)); + addDrop.accept(Items.PUMPKIN_SEEDS, chance(0.1f)); + addDrop.accept(Items.BEETROOT_SEEDS, chance(0.1f)); + addDrop.accept(Items.POTATO, chance(0.1f)); + addDrop.accept(Items.CARROT, chance(0.1f)); + addDrop.accept(EItems.GRASS_SEEDS.get(), chance(0.1f)); + addDrop.accept(EItems.MYCELIUM_SPORES.get(), chance(0.03f)); + addDrop.accept(Items.SUGAR_CANE, chance(0.1f)); + addDrop.accept(Items.POISONOUS_POTATO, chance(0.05f)); + addDrop.accept(Items.BAMBOO, chance(0.04f)); }); - - // Flint mesh will be used to get a larger variety of outputs from dirt, and - // is the lowest mesh tier where ore will start to drop. - // Gravel -> String mesh - forMesh(writer, Ingredient.of(Items.DIRT), EItems.FLINT_MESH, addDrop -> { + // Flint mesh will be used to get a larger variety of outputs from dirt, just so people don't always + // have the inventory spam that are the -ite pebbles. + // Dirt -> Flint mesh + forMesh(writer, ingredient(Items.DIRT), EItems.FLINT_MESH, addDrop -> { addDrop.accept(EItems.STONE_PEBBLE.get(), binomial(7, 0.6f)); + addDrop.accept(Items.FLINT, chance(0.3f)); addDrop.accept(EItems.ANDESITE_PEBBLE.get(), binomial(7, 0.4f)); addDrop.accept(EItems.GRANITE_PEBBLE.get(), binomial(7, 0.4f)); addDrop.accept(EItems.DIORITE_PEBBLE.get(), binomial(7, 0.4f)); - addDrop.accept(Items.WHEAT_SEEDS, chance(0.5f)); - addDrop.accept(Items.BEETROOT_SEEDS, chance(0.1f)); - addDrop.accept(Items.MELON_SEEDS, chance(0.1f)); - addDrop.accept(Items.PUMPKIN_SEEDS, chance(0.1f)); + addDrop.accept(Items.WHEAT_SEEDS, chance(0.15f)); + addDrop.accept(Items.MELON_SEEDS, chance(0.12f)); + addDrop.accept(Items.PUMPKIN_SEEDS, chance(0.12f)); + addDrop.accept(Items.POTATO, chance(0.13f)); + addDrop.accept(Items.CARROT, chance(0.13f)); + addDrop.accept(EItems.GRASS_SEEDS.get(), chance(0.15f)); + addDrop.accept(EItems.MYCELIUM_SPORES.get(), chance(0.05f)); + addDrop.accept(Items.SUGAR_CANE, chance(0.15f)); + addDrop.accept(Items.POISONOUS_POTATO, chance(0.03f)); + addDrop.accept(Items.BAMBOO, chance(0.04f)); + addDrop.accept(Items.PINK_PETALS, chance(0.03f)); + addDrop.accept(Items.SWEET_BERRIES, chance(0.05f)); + }); + // Dirt -> Iron mesh + forMesh(writer, ingredient(Items.DIRT), EItems.IRON_MESH, addDrop -> { + addDrop.accept(EItems.STONE_PEBBLE.get(), binomial(8, 0.65f)); + addDrop.accept(Items.FLINT, chance(0.3f)); + addDrop.accept(Items.WHEAT_SEEDS, chance(0.175f)); + addDrop.accept(Items.MELON_SEEDS, chance(0.15f)); + addDrop.accept(Items.PUMPKIN_SEEDS, chance(0.15f)); + addDrop.accept(Items.POTATO, chance(0.15f)); + addDrop.accept(Items.CARROT, chance(0.15f)); + addDrop.accept(EItems.GRASS_SEEDS.get(), chance(0.175f)); + addDrop.accept(EItems.MYCELIUM_SPORES.get(), chance(0.1f)); + addDrop.accept(Items.SUGAR_CANE, chance(0.15f)); + addDrop.accept(Items.IRON_NUGGET, chance(0.05f)); + addDrop.accept(Items.BAMBOO, chance(0.06f)); + }); + // Gold tends to spread its luster to whatever passes through it... + // Dirt -> Gold mesh + forMesh(writer, ingredient(Items.DIRT), EItems.GOLDEN_MESH, addDrop -> { + addDrop.accept(EItems.STONE_PEBBLE.get(), binomial(8, 0.7f)); + addDrop.accept(Items.FLINT, chance(0.2f)); + addDrop.accept(Items.WHEAT_SEEDS, chance(0.2f)); + addDrop.accept(Items.MELON_SEEDS, chance(0.165f)); + addDrop.accept(Items.PUMPKIN_SEEDS, chance(0.165f)); + addDrop.accept(Items.POTATO, chance(0.175f)); + addDrop.accept(Items.CARROT, chance(0.175f)); + addDrop.accept(EItems.GRASS_SEEDS.get(), chance(0.25f)); + addDrop.accept(EItems.MYCELIUM_SPORES.get(), chance(0.13f)); + addDrop.accept(Items.GOLD_NUGGET, chance(0.05f)); + addDrop.accept(Items.IRON_NUGGET, chance(0.05f)); + addDrop.accept(Items.GOLDEN_CARROT, chance(0.02f)); + addDrop.accept(Items.BAMBOO, chance(0.05f)); + }); + // Diamond tables have less junk items in them. Maybe you want those items? Use other meshes! + // Dirt -> Diamond mesh + forMesh(writer, ingredient(Items.DIRT), EItems.DIAMOND_MESH, addDrop -> { + addDrop.accept(EItems.STONE_PEBBLE.get(), binomial(8, 0.7f)); + addDrop.accept(Items.FLINT, binomial(3, 0.3f)); + addDrop.accept(Items.POTATO, chance(0.25f)); + addDrop.accept(Items.CARROT, chance(0.25f)); + addDrop.accept(EItems.GRASS_SEEDS.get(), chance(0.15f)); + addDrop.accept(EItems.MYCELIUM_SPORES.get(), chance(0.1f)); + addDrop.accept(Items.BAMBOO, chance(0.06f)); + }); + // Netherite should be the best for all drops (except pebbles) + // Dirt -> Netherite mesh + forMesh(writer, ingredient(Items.DIRT), EItems.NETHERITE_MESH, addDrop -> { + addDrop.accept(EItems.STONE_PEBBLE.get(), binomial(5, 0.4f)); + addDrop.accept(Items.FLINT, binomial(3, 0.4f)); + addDrop.accept(Items.POTATO, chance(0.3f)); + addDrop.accept(Items.CARROT, chance(0.3f)); + addDrop.accept(EItems.GRASS_SEEDS.get(), chance(0.2f)); + addDrop.accept(EItems.MYCELIUM_SPORES.get(), chance(0.2f)); + addDrop.accept(Items.GOLDEN_CARROT, chance(0.01f)); + addDrop.accept(Items.GOLDEN_APPLE, chance(0.0025f)); + addDrop.accept(Items.BAMBOO, chance(0.06f)); + }); + + // Gravel -> String mesh + forMesh(writer, ingredient(Items.GRAVEL), EItems.STRING_MESH, addDrop -> { + addDrop.accept(EItems.STONE_PEBBLE.get(), binomial(4, 0.4f)); + addDrop.accept(Items.FLINT, chance(0.2f)); + addDrop.accept(Items.COAL, chance(0.1f)); + addDrop.accept(Items.LAPIS_LAZULI, chance(0.03f)); + addDrop.accept(EItems.COPPER_ORE_CHUNK.get(), chance(0.08f)); + addDrop.accept(EItems.IRON_ORE_CHUNK.get(), chance(0.05f)); + addDrop.accept(EItems.GOLD_ORE_CHUNK.get(), chance(0.03f)); + addDrop.accept(Items.DIAMOND, chance(0.02f)); + addDrop.accept(Items.EMERALD, chance(0.01f)); + addDrop.accept(Items.AMETHYST_SHARD, chance(0.01f)); + }); + // Gravel -> Flint mesh + forMesh(writer, ingredient(Items.GRAVEL), EItems.FLINT_MESH, addDrop -> { + addDrop.accept(EItems.STONE_PEBBLE.get(), binomial(4, 0.5f)); + addDrop.accept(EItems.ANDESITE_PEBBLE.get(), binomial(4, 0.4f)); + addDrop.accept(EItems.GRANITE_PEBBLE.get(), binomial(4, 0.4f)); + addDrop.accept(EItems.DIORITE_PEBBLE.get(), binomial(4, 0.4f)); + addDrop.accept(Items.POINTED_DRIPSTONE, chance(0.15f)); + addDrop.accept(Items.FLINT, chance(0.25f)); + addDrop.accept(Items.COAL, chance(0.125f)); + addDrop.accept(Items.LAPIS_LAZULI, chance(0.05f)); + addDrop.accept(EItems.COPPER_ORE_CHUNK.get(), chance(0.1f)); + addDrop.accept(EItems.IRON_ORE_CHUNK.get(), chance(0.07f)); + addDrop.accept(EItems.GOLD_ORE_CHUNK.get(), chance(0.04f)); + addDrop.accept(Items.DIAMOND, chance(0.03f)); + addDrop.accept(Items.EMERALD, chance(0.015f)); + addDrop.accept(Items.AMETHYST_SHARD, chance(0.015f)); + }); + // Gravel -> Iron mesh + forMesh(writer, ingredient(Items.GRAVEL), EItems.IRON_MESH, addDrop -> { + addDrop.accept(EItems.STONE_PEBBLE.get(), binomial(4, 0.5f)); + addDrop.accept(Items.FLINT, chance(0.15f)); + addDrop.accept(Items.COAL, chance(0.15f)); + addDrop.accept(Items.LAPIS_LAZULI, chance(0.08f)); + addDrop.accept(EItems.COPPER_ORE_CHUNK.get(), chance(0.12f)); + addDrop.accept(EItems.IRON_ORE_CHUNK.get(), chance(0.11f)); + addDrop.accept(EItems.GOLD_ORE_CHUNK.get(), chance(0.06f)); + addDrop.accept(Items.DIAMOND, chance(0.05f)); + addDrop.accept(Items.EMERALD, chance(0.04f)); + addDrop.accept(Items.AMETHYST_SHARD, chance(0.04f)); + }); + // Golden mesh has much higher drops for gold and gems, but at the cost of much lower drops for metals + // Gravel -> Golden mesh + forMesh(writer, ingredient(Items.GRAVEL), EItems.GOLDEN_MESH, addDrop -> { + addDrop.accept(EItems.STONE_PEBBLE.get(), binomial(4, 0.5f)); + addDrop.accept(Items.FLINT, chance(0.13f)); + addDrop.accept(Items.COAL, chance(0.2f)); + addDrop.accept(Items.LAPIS_LAZULI, chance(0.1f)); + addDrop.accept(EItems.COPPER_ORE_CHUNK.get(), chance(0.07f)); + addDrop.accept(EItems.IRON_ORE_CHUNK.get(), chance(0.04f)); + addDrop.accept(EItems.GOLD_ORE_CHUNK.get(), chance(0.1f)); + addDrop.accept(Items.DIAMOND, chance(0.1f)); + addDrop.accept(Items.EMERALD, chance(0.09f)); + addDrop.accept(Items.AMETHYST_SHARD, chance(0.08f)); + addDrop.accept(Items.GOLD_NUGGET, chance(0.08f)); + addDrop.accept(Items.RAW_GOLD, chance(0.02f)); + }); + // Gravel -> Diamond mesh + forMesh(writer, ingredient(Items.GRAVEL), EItems.DIAMOND_MESH, addDrop -> { + addDrop.accept(Items.FLINT, chance(0.05f)); + addDrop.accept(Items.COAL, chance(0.06f)); + addDrop.accept(Items.LAPIS_LAZULI, chance(0.11f)); + addDrop.accept(EItems.COPPER_ORE_CHUNK.get(), chance(0.07f)); + addDrop.accept(EItems.IRON_ORE_CHUNK.get(), chance(0.13f)); + addDrop.accept(EItems.GOLD_ORE_CHUNK.get(), chance(0.08f)); + addDrop.accept(Items.DIAMOND, chance(0.08f)); + addDrop.accept(Items.EMERALD, chance(0.07f)); + addDrop.accept(Items.AMETHYST_SHARD, chance(0.06f)); + }); + // Gravel -> Netherite mesh + forMesh(writer, ingredient(Items.GRAVEL), EItems.NETHERITE_MESH, addDrop -> { + addDrop.accept(Items.COAL, chance(0.06f)); + addDrop.accept(Items.LAPIS_LAZULI, chance(0.11f)); + addDrop.accept(EItems.COPPER_ORE_CHUNK.get(), chance(0.1f)); + addDrop.accept(EItems.IRON_ORE_CHUNK.get(), chance(0.13f)); + addDrop.accept(EItems.GOLD_ORE_CHUNK.get(), chance(0.09f)); + addDrop.accept(Items.DIAMOND, chance(0.1f)); + addDrop.accept(Items.EMERALD, chance(0.09f)); + addDrop.accept(Items.AMETHYST_SHARD, chance(0.08f)); + addDrop.accept(Items.GOLD_NUGGET, chance(0.04f)); + addDrop.accept(Items.RAW_GOLD, chance(0.01f)); + }); + + // Sand -> String mesh + forMesh(writer, ingredient(Items.SAND), EItems.STRING_MESH, addDrop -> { + addDrop.accept(Items.CACTUS, chance(0.13f)); addDrop.accept(Items.FLINT, chance(0.2f)); + addDrop.accept(Items.DEAD_BUSH, chance(0.08f)); + addDrop.accept(Items.GOLD_NUGGET, chance(0.13f)); + addDrop.accept(Items.IRON_NUGGET, chance(0.13f)); + addDrop.accept(Items.KELP, chance(0.1f)); + addDrop.accept(Items.SEA_PICKLE, chance(0.05f)); + }); + forMesh(writer, ingredient(Items.SAND), EItems.FLINT_MESH, addDrop -> { + addDrop.accept(Items.FLINT, binomial(2, 0.2f)); + addDrop.accept(Items.DEAD_BUSH, chance(0.03f)); + addDrop.accept(Items.GOLD_NUGGET, chance(0.16f)); + addDrop.accept(Items.IRON_NUGGET, chance(0.16f)); + addDrop.accept(Items.BURN_POTTERY_SHERD, chance(0.03f)); + addDrop.accept(Items.DANGER_POTTERY_SHERD, chance(0.03f)); + addDrop.accept(Items.FRIEND_POTTERY_SHERD, chance(0.03f)); + addDrop.accept(Items.HEART_POTTERY_SHERD, chance(0.03f)); + addDrop.accept(Items.HEARTBREAK_POTTERY_SHERD, chance(0.03f)); + addDrop.accept(Items.HOWL_POTTERY_SHERD, chance(0.03f)); + addDrop.accept(Items.SHEAF_POTTERY_SHERD, chance(0.03f)); + addDrop.accept(Items.BLADE_POTTERY_SHERD, chance(0.03f)); + addDrop.accept(Items.EXPLORER_POTTERY_SHERD, chance(0.03f)); + addDrop.accept(Items.MOURNER_POTTERY_SHERD, chance(0.03f)); + addDrop.accept(Items.PLENTY_POTTERY_SHERD, chance(0.03f)); + addDrop.accept(Items.ANGLER_POTTERY_SHERD, chance(0.03f)); + addDrop.accept(Items.SHELTER_POTTERY_SHERD, chance(0.03f)); + addDrop.accept(Items.SNORT_POTTERY_SHERD, chance(0.03f)); + addDrop.accept(Items.ARCHER_POTTERY_SHERD, chance(0.03f)); + addDrop.accept(Items.MINER_POTTERY_SHERD, chance(0.03f)); + addDrop.accept(Items.PRIZE_POTTERY_SHERD, chance(0.03f)); + addDrop.accept(Items.SKULL_POTTERY_SHERD, chance(0.03f)); + addDrop.accept(Items.ARMS_UP_POTTERY_SHERD, chance(0.03f)); + addDrop.accept(Items.BREWER_POTTERY_SHERD, chance(0.03f)); + }); + forMesh(writer, ingredient(Items.SAND), EItems.IRON_MESH, addDrop -> { + addDrop.accept(Items.CACTUS, chance(0.13f)); + addDrop.accept(Items.FLINT, chance(0.23f)); + addDrop.accept(Items.DEAD_BUSH, chance(0.08f)); + addDrop.accept(Items.GOLD_NUGGET, chance(0.18f)); + addDrop.accept(Items.IRON_NUGGET, chance(0.18f)); + addDrop.accept(Items.KELP, chance(0.07f)); + addDrop.accept(Items.SEA_PICKLE, chance(0.03f)); + addDrop.accept(Items.PRISMARINE_SHARD, chance(0.06f)); + addDrop.accept(Items.PRISMARINE_CRYSTALS, chance(0.06f)); + }); + forMesh(writer, ingredient(Items.SAND), EItems.GOLDEN_MESH, addDrop -> { + addDrop.accept(Items.CACTUS, chance(0.10f)); + addDrop.accept(Items.FLINT, chance(0.18f)); + addDrop.accept(Items.DEAD_BUSH, chance(0.06f)); + addDrop.accept(Items.GOLD_NUGGET, binomial(3, 0.28f)); + addDrop.accept(Items.IRON_NUGGET, chance(0.16f)); + addDrop.accept(Items.KELP, chance(0.05f)); + addDrop.accept(Items.SEA_PICKLE, chance(0.03f)); + addDrop.accept(Items.PRISMARINE_SHARD, chance(0.08f)); + addDrop.accept(Items.PRISMARINE_CRYSTALS, chance(0.08f)); + addDrop.accept(Items.RAW_GOLD, chance(0.04f)); + addDrop.accept(Items.WAYFINDER_ARMOR_TRIM_SMITHING_TEMPLATE, chance(0.01f)); + addDrop.accept(Items.SHAPER_ARMOR_TRIM_SMITHING_TEMPLATE, chance(0.01f)); + addDrop.accept(Items.HOST_ARMOR_TRIM_SMITHING_TEMPLATE, chance(0.01f)); + addDrop.accept(Items.RAISER_ARMOR_TRIM_SMITHING_TEMPLATE, chance(0.01f)); + addDrop.accept(Items.COAST_ARMOR_TRIM_SMITHING_TEMPLATE, chance(0.01f)); + }); + forMesh(writer, ingredient(Items.SAND), EItems.DIAMOND_MESH, addDrop -> { + addDrop.accept(Items.FLINT, chance(0.23f)); + addDrop.accept(Items.GOLD_NUGGET, chance(0.22f)); + addDrop.accept(Items.IRON_NUGGET, chance(0.22f)); + addDrop.accept(Items.PRISMARINE_SHARD, chance(0.09f)); + addDrop.accept(Items.PRISMARINE_CRYSTALS, chance(0.09f)); + }); + forMesh(writer, ingredient(Items.SAND), EItems.NETHERITE_MESH, addDrop -> { + addDrop.accept(Items.CACTUS, chance(0.15f)); + addDrop.accept(Items.FLINT, binomial(2, 0.23f)); + addDrop.accept(Items.GOLD_NUGGET, chance(0.23f)); + addDrop.accept(Items.IRON_NUGGET, chance(0.23f)); + addDrop.accept(Items.KELP, chance(0.1f)); + addDrop.accept(Items.SEA_PICKLE, chance(0.07f)); + addDrop.accept(Items.PRISMARINE_SHARD, chance(0.12f)); + addDrop.accept(Items.PRISMARINE_CRYSTALS, chance(0.12f)); + }); + + forMesh(writer, ingredient(EItems.DUST.get()), EItems.STRING_MESH, addDrop -> { + addDrop.accept(Items.GUNPOWDER, chance(0.1f)); + addDrop.accept(Items.BONE_MEAL, chance(0.1f)); + addDrop.accept(Items.REDSTONE, chance(0.06f)); + addDrop.accept(Items.GLOWSTONE_DUST, chance(0.04f)); + addDrop.accept(Items.BLAZE_POWDER, chance(0.03f)); + }); + forMesh(writer, ingredient(EItems.DUST.get()), EItems.FLINT_MESH, addDrop -> { + addDrop.accept(Items.GUNPOWDER, chance(0.11f)); + addDrop.accept(Items.BONE_MEAL, chance(0.11f)); + addDrop.accept(Items.REDSTONE, chance(0.09f)); + addDrop.accept(Items.GLOWSTONE_DUST, chance(0.07f)); + addDrop.accept(Items.BLAZE_POWDER, chance(0.04f)); + }); + forMesh(writer, ingredient(EItems.DUST.get()), EItems.IRON_MESH, addDrop -> { + addDrop.accept(Items.GUNPOWDER, chance(0.13f)); + addDrop.accept(Items.BONE_MEAL, chance(0.12f)); + addDrop.accept(Items.REDSTONE, chance(0.1f)); + addDrop.accept(Items.GLOWSTONE_DUST, chance(0.09f)); + addDrop.accept(Items.BLAZE_POWDER, chance(0.05f)); + addDrop.accept(Items.IRON_NUGGET, chance(0.06f)); + }); + forMesh(writer, ingredient(EItems.DUST.get()), EItems.GOLDEN_MESH, addDrop -> { + addDrop.accept(Items.GUNPOWDER, chance(0.13f)); + addDrop.accept(Items.BONE_MEAL, chance(0.11f)); + addDrop.accept(Items.REDSTONE, chance(0.12f)); + addDrop.accept(Items.GLOWSTONE_DUST, chance(0.11f)); + addDrop.accept(Items.BLAZE_POWDER, chance(0.06f)); + addDrop.accept(Items.GOLD_NUGGET, binomial(2, 0.18f)); + addDrop.accept(Items.RAW_GOLD, chance(0.02f)); + }); + forMesh(writer, ingredient(EItems.DUST.get()), EItems.DIAMOND_MESH, addDrop -> { + addDrop.accept(Items.GUNPOWDER, chance(0.14f)); + addDrop.accept(Items.BONE_MEAL, chance(0.10f)); + addDrop.accept(Items.REDSTONE, chance(0.12f)); + addDrop.accept(Items.GLOWSTONE_DUST, chance(0.11f)); + addDrop.accept(Items.BLAZE_POWDER, chance(0.06f)); + addDrop.accept(Items.GOLD_NUGGET, chance(0.08f)); + }); + forMesh(writer, ingredient(EItems.DUST.get()), EItems.NETHERITE_MESH, addDrop -> { + addDrop.accept(Items.GUNPOWDER, chance(0.14f)); + addDrop.accept(Items.BONE_MEAL, chance(0.13f)); + addDrop.accept(Items.REDSTONE, chance(0.14f)); + addDrop.accept(Items.GLOWSTONE_DUST, chance(0.15f)); + addDrop.accept(Items.BLAZE_POWDER, chance(0.1f)); + addDrop.accept(Items.GOLD_NUGGET, chance(0.08f)); + addDrop.accept(Items.IRON_NUGGET, chance(0.08f)); + }); + + forMesh(writer, ingredient(EItems.CRUSHED_DEEPSLATE.get()), EItems.STRING_MESH, addDrop -> { + addDrop.accept(EItems.DEEPSLATE_PEBBLE.get(), binomial(4, 0.5f)); + addDrop.accept(EItems.COPPER_ORE_CHUNK.get(), chance(0.12f)); + addDrop.accept(EItems.IRON_ORE_CHUNK.get(), chance(0.10f)); + addDrop.accept(EItems.GOLD_ORE_CHUNK.get(), chance(0.08f)); + addDrop.accept(Items.AMETHYST_SHARD, chance(0.05f)); + addDrop.accept(Items.DIAMOND, chance(0.04f)); + addDrop.accept(Items.LAPIS_LAZULI, chance(0.04f)); + addDrop.accept(Items.EMERALD, chance(0.03f)); + }); + forMesh(writer, ingredient(EItems.CRUSHED_DEEPSLATE.get()), EItems.FLINT_MESH, addDrop -> { + addDrop.accept(EItems.DEEPSLATE_PEBBLE.get(), binomial(4, 0.5f)); + addDrop.accept(EItems.TUFF_PEBBLE.get(), binomial(4, 0.4f)); + addDrop.accept(EItems.CALCITE_PEBBLE.get(), binomial(4, 0.4f)); + addDrop.accept(EItems.BASALT_PEBBLE.get(), binomial(4, 0.4f)); + addDrop.accept(EItems.COPPER_ORE_CHUNK.get(), chance(0.11f)); + addDrop.accept(EItems.IRON_ORE_CHUNK.get(), chance(0.11f)); + addDrop.accept(EItems.GOLD_ORE_CHUNK.get(), chance(0.08f)); + addDrop.accept(Items.AMETHYST_SHARD, chance(0.06f)); + addDrop.accept(Items.DIAMOND, chance(0.05f)); + addDrop.accept(Items.LAPIS_LAZULI, chance(0.05f)); + addDrop.accept(Items.EMERALD, chance(0.04f)); + }); + forMesh(writer, ingredient(EItems.CRUSHED_DEEPSLATE.get()), EItems.IRON_MESH, addDrop -> { + addDrop.accept(EItems.DEEPSLATE_PEBBLE.get(), binomial(4, 0.6f)); + addDrop.accept(EItems.COPPER_ORE_CHUNK.get(), chance(0.10f)); + addDrop.accept(EItems.IRON_ORE_CHUNK.get(), chance(0.12f)); + addDrop.accept(EItems.GOLD_ORE_CHUNK.get(), chance(0.09f)); + addDrop.accept(Items.AMETHYST_SHARD, chance(0.06f)); + addDrop.accept(Items.DIAMOND, chance(0.06f)); + addDrop.accept(Items.LAPIS_LAZULI, chance(0.08f)); + addDrop.accept(Items.EMERALD, chance(0.05f)); + }); + forMesh(writer, ingredient(EItems.CRUSHED_DEEPSLATE.get()), EItems.GOLDEN_MESH, addDrop -> { + addDrop.accept(EItems.DEEPSLATE_PEBBLE.get(), binomial(4, 0.65f)); + addDrop.accept(EItems.COPPER_ORE_CHUNK.get(), chance(0.09f)); + addDrop.accept(EItems.IRON_ORE_CHUNK.get(), chance(0.13f)); + addDrop.accept(EItems.GOLD_ORE_CHUNK.get(), chance(0.15f)); + addDrop.accept(Items.AMETHYST_SHARD, chance(0.08f)); + addDrop.accept(Items.DIAMOND, chance(0.08f)); + addDrop.accept(Items.LAPIS_LAZULI, chance(0.07f)); + addDrop.accept(Items.EMERALD, chance(0.07f)); + addDrop.accept(Items.RAW_GOLD, chance(0.05f)); + addDrop.accept(Items.GOLD_NUGGET, binomial(3, 0.1f)); + }); + forMesh(writer, ingredient(EItems.CRUSHED_DEEPSLATE.get()), EItems.DIAMOND_MESH, addDrop -> { + addDrop.accept(EItems.DEEPSLATE_PEBBLE.get(), binomial(4, 0.65f)); + addDrop.accept(EItems.COPPER_ORE_CHUNK.get(), chance(0.09f)); + addDrop.accept(EItems.IRON_ORE_CHUNK.get(), chance(0.16f)); + addDrop.accept(EItems.GOLD_ORE_CHUNK.get(), chance(0.13f)); + addDrop.accept(Items.AMETHYST_SHARD, chance(0.07f)); + addDrop.accept(Items.DIAMOND, chance(0.08f)); + addDrop.accept(Items.LAPIS_LAZULI, chance(0.12f)); + addDrop.accept(Items.EMERALD, chance(0.08f)); + }); + forMesh(writer, ingredient(EItems.CRUSHED_DEEPSLATE.get()), EItems.NETHERITE_MESH, addDrop -> { + addDrop.accept(EItems.DEEPSLATE_PEBBLE.get(), binomial(4, 0.7f)); + addDrop.accept(EItems.COPPER_ORE_CHUNK.get(), chance(0.10f)); + addDrop.accept(EItems.IRON_ORE_CHUNK.get(), chance(0.17f)); + addDrop.accept(EItems.GOLD_ORE_CHUNK.get(), chance(0.15f)); + addDrop.accept(Items.AMETHYST_SHARD, chance(0.1f)); + addDrop.accept(Items.DIAMOND, chance(0.1f)); + addDrop.accept(Items.LAPIS_LAZULI, chance(0.14f)); + addDrop.accept(Items.EMERALD, chance(0.1f)); + }); + + forMesh(writer, ingredient(EItems.CRUSHED_BLACKSTONE.get()), EItems.STRING_MESH, addDrop -> { + addDrop.accept(EItems.BLACKSTONE_PEBBLE.get(), binomial(4, 0.6f)); + addDrop.accept(EItems.BASALT_PEBBLE.get(), binomial(3, 0.5f)); + addDrop.accept(Items.ANCIENT_DEBRIS, chance(0.02f)); + addDrop.accept(Items.GOLD_NUGGET, binomial(4, 0.2f)); + addDrop.accept(Items.MAGMA_CREAM, chance(0.08f)); + addDrop.accept(Items.GUNPOWDER, chance(0.07f)); + addDrop.accept(Items.BLACK_DYE, chance(0.07f)); + }); + forMesh(writer, ingredient(EItems.CRUSHED_BLACKSTONE.get()), EItems.FLINT_MESH, addDrop -> { + addDrop.accept(EItems.BLACKSTONE_PEBBLE.get(), binomial(4, 0.65f)); + addDrop.accept(EItems.BASALT_PEBBLE.get(), binomial(3, 0.55f)); + addDrop.accept(Items.ANCIENT_DEBRIS, chance(0.03f)); + addDrop.accept(Items.GOLD_NUGGET, binomial(4, 0.225f)); + addDrop.accept(Items.MAGMA_CREAM, chance(0.09f)); + addDrop.accept(Items.GUNPOWDER, chance(0.09f)); + addDrop.accept(Items.BLACK_DYE, chance(0.08f)); + }); + forMesh(writer, ingredient(EItems.CRUSHED_BLACKSTONE.get()), EItems.IRON_MESH, addDrop -> { + addDrop.accept(EItems.BLACKSTONE_PEBBLE.get(), binomial(5, 0.65f)); + addDrop.accept(EItems.BASALT_PEBBLE.get(), binomial(4, 0.55f)); + addDrop.accept(Items.ANCIENT_DEBRIS, chance(0.04f)); + addDrop.accept(Items.GOLD_NUGGET, binomial(4, 0.25f)); + addDrop.accept(Items.MAGMA_CREAM, chance(0.09f)); + addDrop.accept(Items.GUNPOWDER, chance(0.09f)); + addDrop.accept(Items.BLACK_DYE, chance(0.08f)); + }); + forMesh(writer, ingredient(EItems.CRUSHED_BLACKSTONE.get()), EItems.GOLDEN_MESH, addDrop -> { + addDrop.accept(EItems.BLACKSTONE_PEBBLE.get(), binomial(5, 0.7f)); + addDrop.accept(EItems.BASALT_PEBBLE.get(), binomial(4, 0.5f)); + addDrop.accept(Items.ANCIENT_DEBRIS, chance(0.05f)); + addDrop.accept(Items.GOLD_NUGGET, binomial(8, 0.325f)); + addDrop.accept(Items.MAGMA_CREAM, chance(0.1f)); + addDrop.accept(Items.GUNPOWDER, chance(0.1f)); + addDrop.accept(Items.BLACK_DYE, chance(0.06f)); + }); + forMesh(writer, ingredient(EItems.CRUSHED_BLACKSTONE.get()), EItems.DIAMOND_MESH, addDrop -> { + addDrop.accept(EItems.BLACKSTONE_PEBBLE.get(), binomial(5, 0.7f)); + addDrop.accept(Items.ANCIENT_DEBRIS, chance(0.06f)); + addDrop.accept(Items.GOLD_NUGGET, binomial(4, 0.275f)); + addDrop.accept(Items.MAGMA_CREAM, chance(0.11f)); + addDrop.accept(Items.GUNPOWDER, chance(0.11f)); + }); + forMesh(writer, ingredient(EItems.CRUSHED_BLACKSTONE.get()), EItems.NETHERITE_MESH, addDrop -> { + addDrop.accept(EItems.BLACKSTONE_PEBBLE.get(), binomial(5, 0.75f)); + addDrop.accept(Items.ANCIENT_DEBRIS, chance(0.1f)); + addDrop.accept(Items.GOLD_NUGGET, binomial(4, 0.325f)); + addDrop.accept(Items.MAGMA_CREAM, chance(0.12f)); + addDrop.accept(Items.GUNPOWDER, chance(0.11f)); + }); + + forMesh(writer, ingredient(EItems.CRUSHED_NETHERRACK.get()), EItems.STRING_MESH, addDrops -> { + addDrops.accept(EItems.BLACKSTONE_PEBBLE.get(), binomial(3, 0.4f)); + addDrops.accept(EItems.BASALT_PEBBLE.get(), binomial(3, 0.3f)); + addDrops.accept(Items.BLAZE_POWDER, chance(0.08f)); + addDrops.accept(Items.QUARTZ, chance(0.08f)); + addDrops.accept(Items.MAGMA_CREAM, chance(0.05f)); + addDrops.accept(Items.GUNPOWDER, chance(0.08f)); + addDrops.accept(EItems.WARPED_NYLIUM_SPORES.get(), chance(0.05f)); + addDrops.accept(EItems.CRIMSON_NYLIUM_SPORES.get(), chance(0.05f)); + addDrops.accept(Items.GOLD_NUGGET, chance(0.07f)); + }); + forMesh(writer, ingredient(EItems.CRUSHED_NETHERRACK.get()), EItems.FLINT_MESH, addDrops -> { + addDrops.accept(EItems.BLACKSTONE_PEBBLE.get(), binomial(4, 0.5f)); + addDrops.accept(EItems.BASALT_PEBBLE.get(), binomial(4, 0.4f)); + addDrops.accept(Items.BLAZE_POWDER, chance(0.09f)); + addDrops.accept(Items.QUARTZ, chance(0.09f)); + addDrops.accept(Items.MAGMA_CREAM, chance(0.06f)); + addDrops.accept(Items.GUNPOWDER, chance(0.09f)); + addDrops.accept(EItems.WARPED_NYLIUM_SPORES.get(), chance(0.07f)); + addDrops.accept(EItems.CRIMSON_NYLIUM_SPORES.get(), chance(0.07f)); + addDrops.accept(Items.GOLD_NUGGET, chance(0.08f)); + }); + forMesh(writer, ingredient(EItems.CRUSHED_NETHERRACK.get()), EItems.IRON_MESH, addDrops -> { + addDrops.accept(EItems.BLACKSTONE_PEBBLE.get(), binomial(4, 0.6f)); + addDrops.accept(EItems.BASALT_PEBBLE.get(), binomial(4, 0.45f)); + addDrops.accept(Items.BLAZE_POWDER, chance(0.1f)); + addDrops.accept(Items.QUARTZ, chance(0.11f)); + addDrops.accept(Items.MAGMA_CREAM, chance(0.07f)); + addDrops.accept(Items.GUNPOWDER, chance(0.1f)); + addDrops.accept(EItems.WARPED_NYLIUM_SPORES.get(), chance(0.08f)); + addDrops.accept(EItems.CRIMSON_NYLIUM_SPORES.get(), chance(0.08f)); + addDrops.accept(Items.GOLD_NUGGET, chance(0.1f)); + }); + forMesh(writer, ingredient(EItems.CRUSHED_NETHERRACK.get()), EItems.GOLDEN_MESH, addDrops -> { + addDrops.accept(EItems.BLACKSTONE_PEBBLE.get(), binomial(4, 0.6f)); + addDrops.accept(EItems.BASALT_PEBBLE.get(), binomial(4, 0.45f)); + addDrops.accept(Items.BLAZE_POWDER, chance(0.11f)); + addDrops.accept(Items.QUARTZ, chance(0.13f)); + addDrops.accept(Items.MAGMA_CREAM, chance(0.08f)); + addDrops.accept(Items.GUNPOWDER, chance(0.11f)); + addDrops.accept(EItems.WARPED_NYLIUM_SPORES.get(), chance(0.08f)); + addDrops.accept(EItems.CRIMSON_NYLIUM_SPORES.get(), chance(0.08f)); + addDrops.accept(Items.GOLD_NUGGET, chance(0.14f)); + addDrops.accept(Items.RAW_GOLD, chance(0.03f)); + }); + forMesh(writer, ingredient(EItems.CRUSHED_NETHERRACK.get()), EItems.DIAMOND_MESH, addDrops -> { + addDrops.accept(EItems.BLACKSTONE_PEBBLE.get(), binomial(4, 0.6f)); + addDrops.accept(Items.BLAZE_POWDER, chance(0.14f)); + addDrops.accept(Items.QUARTZ, chance(0.13f)); + addDrops.accept(Items.MAGMA_CREAM, chance(0.1f)); + addDrops.accept(Items.GUNPOWDER, chance(0.13f)); + addDrops.accept(Items.GOLD_NUGGET, chance(0.12f)); + }); + forMesh(writer, ingredient(EItems.CRUSHED_NETHERRACK.get()), EItems.NETHERITE_MESH, addDrops -> { + addDrops.accept(EItems.BLACKSTONE_PEBBLE.get(), binomial(5, 0.65f)); + addDrops.accept(Items.BLAZE_POWDER, chance(0.15f)); + addDrops.accept(Items.QUARTZ, chance(0.15f)); + addDrops.accept(Items.MAGMA_CREAM, chance(0.1f)); + addDrops.accept(Items.GUNPOWDER, chance(0.13f)); + addDrops.accept(Items.GOLD_NUGGET, chance(0.12f)); + }); + + forMesh(writer, ingredient(Items.SOUL_SAND), EItems.STRING_MESH, addDrops -> { + addDrops.accept(Items.QUARTZ, chance(0.12f)); + addDrops.accept(Items.GUNPOWDER, chance(0.07f)); + addDrops.accept(Items.BONE, chance(0.08f)); + addDrops.accept(Items.GHAST_TEAR, chance(0.06f)); + addDrops.accept(Items.GLOWSTONE_DUST, chance(0.06f)); + }); + forMesh(writer, ingredient(Items.SOUL_SAND), EItems.FLINT_MESH, addDrops -> { + addDrops.accept(Items.QUARTZ, chance(0.14f)); + addDrops.accept(Items.GUNPOWDER, chance(0.08f)); + addDrops.accept(Items.BONE, chance(0.1f)); + addDrops.accept(Items.GHAST_TEAR, chance(0.07f)); + addDrops.accept(Items.GLOWSTONE_DUST, chance(0.07f)); + addDrops.accept(EItems.WARPED_NYLIUM_SPORES.get(), chance(0.03f)); + addDrops.accept(EItems.CRIMSON_NYLIUM_SPORES.get(), chance(0.03f)); + }); + forMesh(writer, ingredient(Items.SOUL_SAND), EItems.IRON_MESH, addDrops -> { + addDrops.accept(Items.QUARTZ, chance(0.15f)); + addDrops.accept(Items.GUNPOWDER, chance(0.07f)); + addDrops.accept(Items.BONE, chance(0.08f)); + addDrops.accept(Items.GHAST_TEAR, chance(0.06f)); + addDrops.accept(Items.GLOWSTONE_DUST, chance(0.06f)); + }); + forMesh(writer, ingredient(Items.SOUL_SAND), EItems.GOLDEN_MESH, addDrops -> { + addDrops.accept(Items.QUARTZ, chance(0.17f)); + addDrops.accept(Items.GUNPOWDER, chance(0.1f)); + addDrops.accept(Items.BONE, chance(0.11f)); + addDrops.accept(Items.GHAST_TEAR, chance(0.08f)); + addDrops.accept(Items.GLOWSTONE_DUST, chance(0.09f)); + addDrops.accept(Items.GOLD_NUGGET, chance(0.15f)); + }); + forMesh(writer, ingredient(Items.SOUL_SAND), EItems.DIAMOND_MESH, addDrops -> { + addDrops.accept(Items.QUARTZ, chance(0.19f)); + addDrops.accept(Items.GUNPOWDER, chance(0.11f)); + addDrops.accept(Items.GHAST_TEAR, chance(0.09f)); + addDrops.accept(Items.GLOWSTONE_DUST, chance(0.11f)); + }); + forMesh(writer, ingredient(Items.SOUL_SAND), EItems.NETHERITE_MESH, addDrops -> { + addDrops.accept(Items.QUARTZ, chance(0.21f)); + addDrops.accept(Items.GUNPOWDER, chance(0.14f)); + addDrops.accept(Items.GHAST_TEAR, chance(0.11f)); + addDrops.accept(Items.GLOWSTONE_DUST, chance(0.13f)); + }); + + forMesh(writer, ingredient(EItems.CRUSHED_END_STONE), EItems.STRING_MESH, addDrops -> { + addDrops.accept(Items.ENDER_PEARL, chance(0.07f)); + addDrops.accept(Items.CHORUS_FRUIT, chance(0.09f)); + addDrops.accept(Items.CHORUS_FLOWER, chance(0.04f)); + addDrops.accept(Items.ENDER_EYE, chance(0.02f)); + }); + forMesh(writer, ingredient(EItems.CRUSHED_END_STONE), EItems.FLINT_MESH, addDrops -> { + addDrops.accept(Items.ENDER_PEARL, chance(0.08f)); + addDrops.accept(Items.CHORUS_FRUIT, chance(0.11f)); + addDrops.accept(Items.CHORUS_FLOWER, chance(0.06f)); + addDrops.accept(Items.ENDER_EYE, chance(0.03f)); + }); + forMesh(writer, ingredient(EItems.CRUSHED_END_STONE), EItems.IRON_MESH, addDrops -> { + addDrops.accept(Items.ENDER_PEARL, chance(0.10f)); + addDrops.accept(Items.CHORUS_FRUIT, chance(0.13f)); + addDrops.accept(Items.CHORUS_FLOWER, chance(0.07f)); + addDrops.accept(Items.ENDER_EYE, chance(0.04f)); + }); + forMesh(writer, ingredient(EItems.CRUSHED_END_STONE), EItems.GOLDEN_MESH, addDrops -> { + addDrops.accept(Items.ENDER_PEARL, chance(0.12f)); + addDrops.accept(Items.CHORUS_FRUIT, chance(0.12f)); + addDrops.accept(Items.CHORUS_FLOWER, chance(0.06f)); + addDrops.accept(Items.ENDER_EYE, chance(0.07f)); + }); + forMesh(writer, ingredient(EItems.CRUSHED_END_STONE), EItems.DIAMOND_MESH, addDrops -> { + addDrops.accept(Items.ENDER_PEARL, chance(0.15f)); + addDrops.accept(Items.CHORUS_FRUIT, chance(0.10f)); + addDrops.accept(Items.CHORUS_FLOWER, chance(0.04f)); + addDrops.accept(Items.ENDER_EYE, chance(0.09f)); + }); + forMesh(writer, ingredient(EItems.CRUSHED_END_STONE), EItems.NETHERITE_MESH, addDrops -> { + addDrops.accept(Items.ENDER_PEARL, chance(0.17f)); + addDrops.accept(Items.CHORUS_FRUIT, chance(0.10f)); + addDrops.accept(Items.CHORUS_FLOWER, chance(0.04f)); + addDrops.accept(Items.ENDER_EYE, chance(0.09f)); + addDrops.accept(Items.ECHO_SHARD, chance(0.03f)); + addDrops.accept(Items.SCULK_SHRIEKER, chance(0.01f)); + }); + + for (int i = 0; i < allMeshes.size(); i++) { + var mesh = allMeshes.get(i); + final int j = i; + forMesh(writer, ingredient(Items.MOSS_BLOCK), mesh, addDrop -> { + addDrop.accept(Items.OAK_SAPLING, chance(0.13f)); + addDrop.accept(Items.SPRUCE_SAPLING, chance(0.11f)); + addDrop.accept(Items.BIRCH_SAPLING, chance(0.11f)); + addDrop.accept(Items.ACACIA_SAPLING, chance(0.11f)); + addDrop.accept(Items.DARK_OAK_SAPLING, chance(0.11f)); + addDrop.accept(Items.JUNGLE_SAPLING, chance(0.11f)); + addDrop.accept(Items.CHERRY_SAPLING, chance(0.11f)); + addDrop.accept(Items.MANGROVE_PROPAGULE, chance(0.11f)); + addDrop.accept(Items.GLOW_BERRIES, chance(0.04f + j * 0.075f)); + addDrop.accept(Items.SMALL_DRIPLEAF, chance(0.07f + j * 0.025f)); + addDrop.accept(Items.BIG_DRIPLEAF, chance(0.05f + j * 0.02f)); + }); + } + forMesh(writer, ingredient(Items.MOSS_BLOCK), EItems.FLINT_MESH, addDrop -> { + addDrop.accept(Items.SWEET_BERRIES, chance(0.03f)); + addDrop.accept(Items.GLOW_LICHEN, chance(0.04f)); + addDrop.accept(Items.LILY_PAD, chance(0.04f)); }); } @@ -207,7 +853,7 @@ private static BinomialDistributionGenerator chance(float p) { private static void forMesh(Consumer writer, Ingredient block, RegistryObject mesh, Consumer> addDrops) { var folder = mesh.getId().getPath().replace("_mesh", "/"); - addDrops.accept((result, resultAmount) -> sieveRecipe(writer, folder + path(result), block, mesh, result, resultAmount)); + addDrops.accept((result, resultAmount) -> sieveRecipe(writer, path(block.getItems()[0].getItem()) + "/" + folder + path(result), block, mesh, result, resultAmount)); } private static void sieveRecipe(Consumer consumer, String name, Ingredient block, Supplier mesh, Item result, NumberProvider chance) { @@ -215,103 +861,138 @@ private static void sieveRecipe(Consumer consumer, String name, } private static void crucibleRecipes(Consumer writer) { - lavaCrucible(writer, "cobblestone", Ingredient.of(Blocks.COBBLESTONE), 250); - lavaCrucible(writer, "stone", Ingredient.of(Blocks.STONE), 250); - lavaCrucible(writer, "gravel", Ingredient.of(Blocks.GRAVEL), 250); - lavaCrucible(writer, "netherrack", Ingredient.of(Blocks.NETHERRACK), 1000); + lavaCrucible(writer, "cobblestone", ingredient(Tags.Items.COBBLESTONE), 250); + lavaCrucible(writer, "stone", ingredient(Tags.Items.STONE), 250); + lavaCrucible(writer, "gravel", ingredient(Tags.Items.GRAVEL), 250); + lavaCrucible(writer, "netherrack", ingredient(Tags.Items.NETHERRACK), 1000); + + waterCrucible(writer, "sweet_berries", ingredient(Items.SWEET_BERRIES, Items.GLOW_BERRIES), 50); + waterCrucible(writer, "melon_slice", ingredient(Items.MELON_SLICE), 50); + + waterCrucible(writer, "saplings", ingredient(ItemTags.SAPLINGS), 100); + waterCrucible(writer, "small_flowers", ingredient(ItemTags.SMALL_FLOWERS), 100); + waterCrucible(writer, "apple", ingredient(Items.APPLE), 100); - waterCrucible(writer, "sweet_berries", Ingredient.of(Items.SWEET_BERRIES), 50); - waterCrucible(writer, "melon_slice", Ingredient.of(Items.MELON_SLICE), 50); + waterCrucible(writer, "tall_flowers", ingredient(ItemTags.TALL_FLOWERS), 200); - waterCrucible(writer, "saplings", Ingredient.of(ItemTags.SAPLINGS), 100); - waterCrucible(writer, "small_flowers", Ingredient.of(ItemTags.SMALL_FLOWERS), 100); - waterCrucible(writer, "apple", Ingredient.of(Items.APPLE), 100); + waterCrucible(writer, "cactus", ingredient(Items.CACTUS), 250); + waterCrucible(writer, "pumpkin", ingredient(Items.PUMPKIN), 250); + waterCrucible(writer, "melon", ingredient(Items.MELON), 250); + waterCrucible(writer, "leaves", ingredient(ItemTags.LEAVES), 250); + waterCrucible(writer, "lily_pad", ingredient(Items.LILY_PAD), 100); - waterCrucible(writer, "tall_flowers", Ingredient.of(ItemTags.TALL_FLOWERS), 200); + waterCrucible(writer, "moss", ingredient(Items.MOSS_BLOCK), 150); + waterCrucible(writer, "moss_carpet", ingredient(Items.MOSS_CARPET), 100); - waterCrucible(writer, "cactus", Ingredient.of(Items.CACTUS), 250); - waterCrucible(writer, "pumpkin", Ingredient.of(Items.PUMPKIN), 250); - waterCrucible(writer, "melon", Ingredient.of(Items.MELON), 250); - waterCrucible(writer, "leaves", Ingredient.of(ItemTags.LEAVES), 250); - waterCrucible(writer, "lily_pad", Ingredient.of(Items.LILY_PAD), 100); + waterCrucible(writer, "seeds_and_spores", SPORES_AND_SEEDS, 100); } - private static void lavaCrucible(Consumer consumer, String id, Ingredient ingredient, int volume) { - consumer.accept(new FinishedCrucibleRecipe(new ResourceLocation(ExDeorum.ID, "lava_crucible/" + id), ERecipeSerializers.LAVA_CRUCIBLE.get(), ingredient, Fluids.LAVA, volume)); + private static void lavaCrucible(Consumer writer, String id, Ingredient ingredient, int volume) { + writer.accept(new FinishedCrucibleRecipe(new ResourceLocation(ExDeorum.ID, "lava_crucible/" + id), ERecipeSerializers.LAVA_CRUCIBLE.get(), ingredient, Fluids.LAVA, volume)); } - private static void waterCrucible(Consumer consumer, String id, Ingredient ingredient, int volume) { - consumer.accept(new FinishedCrucibleRecipe(new ResourceLocation(ExDeorum.ID, "water_crucible/" + id), ERecipeSerializers.WATER_CRUCIBLE.get(), ingredient, Fluids.WATER, volume)); + private static void waterCrucible(Consumer writer, String id, Ingredient ingredient, int volume) { + writer.accept(new FinishedCrucibleRecipe(new ResourceLocation(ExDeorum.ID, "water_crucible/" + id), ERecipeSerializers.WATER_CRUCIBLE.get(), ingredient, Fluids.WATER, volume)); } private static void hammerRecipes(Consumer writer) { // Cobblestone -> Gravel -> Sand -> Dust - hammerRecipe(writer, "gravel", Ingredient.of(Items.COBBLESTONE), Blocks.GRAVEL); - hammerRecipe(writer, "sand", Ingredient.of(Items.GRAVEL), Blocks.SAND); - hammerRecipe(writer, "dust", Ingredient.of(Items.SAND), EBlocks.DUST.get()); + hammerRecipe(writer, "gravel", ingredient(Items.COBBLESTONE, Items.DIORITE, Items.GRANITE, Items.ANDESITE), Blocks.GRAVEL); + hammerRecipe(writer, "sand", ingredient(Items.GRAVEL), Blocks.SAND); + hammerRecipe(writer, "dust", ingredient(Items.SAND, Items.RED_SAND), EBlocks.DUST.get()); - hammerRecipe(writer, "crushed_netherrack", Ingredient.of(Blocks.NETHERRACK), EBlocks.CRUSHED_NETHERRACK.get()); + hammerRecipe(writer, "crushed_deepslate", ingredient(Blocks.DEEPSLATE, Blocks.COBBLED_DEEPSLATE), EBlocks.CRUSHED_DEEPSLATE.get()); + hammerRecipe(writer, "crushed_netherrack", ingredient(Blocks.NETHERRACK), EBlocks.CRUSHED_NETHERRACK.get()); + hammerRecipe(writer, "crushed_blackstone", ingredient(Blocks.BLACKSTONE), EBlocks.CRUSHED_BLACKSTONE.get()); + hammerRecipe(writer, "crushed_end_stone", ingredient(Blocks.END_STONE), EBlocks.CRUSHED_END_STONE.get()); - hammerRecipe(writer, "crushing_sandstone", Ingredient.of(Items.SANDSTONE, Items.CUT_SANDSTONE, Items.CHISELED_SANDSTONE, Items.SMOOTH_SANDSTONE), Items.SAND); - hammerRecipe(writer, "crushing_red_sandstone", Ingredient.of(Items.RED_SANDSTONE, Items.CUT_RED_SANDSTONE, Items.CHISELED_RED_SANDSTONE, Items.SMOOTH_RED_SANDSTONE), Items.RED_SAND); - hammerRecipe(writer, "crushing_stone_bricks", Ingredient.of(Items.STONE_BRICKS), Items.CRACKED_STONE_BRICKS); + hammerRecipe(writer, "crushing_sandstone", ingredient(Items.SANDSTONE, Items.CUT_SANDSTONE, Items.CHISELED_SANDSTONE, Items.SMOOTH_SANDSTONE), Items.SAND); + hammerRecipe(writer, "crushing_red_sandstone", ingredient(Items.RED_SANDSTONE, Items.CUT_RED_SANDSTONE, Items.CHISELED_RED_SANDSTONE, Items.SMOOTH_RED_SANDSTONE), Items.RED_SAND); + hammerRecipe(writer, "crushing_stone_bricks", ingredient(Items.STONE_BRICKS), Items.CRACKED_STONE_BRICKS); - hammerRecipe(writer, "stone_pebbles", Ingredient.of(Items.STONE, Items.STONE_BRICKS, Items.CHISELED_STONE_BRICKS, Items.CRACKED_STONE_BRICKS), EItems.STONE_PEBBLE.get(), new UniformGenerator(ConstantValue.exactly(1), ConstantValue.exactly(6))); + hammerRecipe(writer, "stone_pebbles", ingredient(Items.STONE, Items.STONE_BRICKS, Items.CHISELED_STONE_BRICKS, Items.CRACKED_STONE_BRICKS), EItems.STONE_PEBBLE.get(), new UniformGenerator(ConstantValue.exactly(1), ConstantValue.exactly(6))); + hammerRecipe(writer, "basalt", ingredient(Items.POLISHED_BASALT, Items.SMOOTH_BASALT), Items.BASALT); + + hammerRecipe(writer, "tube_coral", ingredient(Items.TUBE_CORAL_BLOCK), Items.TUBE_CORAL); + hammerRecipe(writer, "brain_coral", ingredient(Items.BRAIN_CORAL_BLOCK), Items.BRAIN_CORAL); + hammerRecipe(writer, "bubble_coral", ingredient(Items.BUBBLE_CORAL_BLOCK), Items.BUBBLE_CORAL); + hammerRecipe(writer, "fire_coral", ingredient(Items.FIRE_CORAL_BLOCK), Items.FIRE_CORAL); + hammerRecipe(writer, "horn_coral", ingredient(Items.HORN_CORAL_BLOCK), Items.HORN_CORAL); + hammerRecipe(writer, "tube_coral_fan", ingredient(Items.TUBE_CORAL), Items.TUBE_CORAL_FAN); + hammerRecipe(writer, "brain_coral_fan", ingredient(Items.BRAIN_CORAL), Items.BRAIN_CORAL_FAN); + hammerRecipe(writer, "bubble_coral_fan", ingredient(Items.BUBBLE_CORAL), Items.BUBBLE_CORAL_FAN); + hammerRecipe(writer, "fire_coral_fan", ingredient(Items.FIRE_CORAL), Items.FIRE_CORAL_FAN); + hammerRecipe(writer, "horn_coral_fan", ingredient(Items.HORN_CORAL), Items.HORN_CORAL_FAN); + + hammerRecipe(writer, "prismarine", ingredient(Items.PRISMARINE, Items.PRISMARINE_BRICKS, Items.DARK_PRISMARINE), Items.PRISMARINE_SHARD, between(1, 4)); } private static void hammerRecipe(Consumer writer, String name, Ingredient block, ItemLike result) { hammerRecipe(writer, name, block, result, ConstantValue.exactly(1f)); } - private static void hammerRecipe(Consumer consumer, String name, Ingredient block, ItemLike result, NumberProvider resultAmount) { - consumer.accept(new FinishedHammerRecipe(new ResourceLocation(ExDeorum.ID, "hammer/" + name), block, result.asItem(), resultAmount)); + private static void hammerRecipe(Consumer writer, String name, Ingredient block, ItemLike result, NumberProvider resultAmount) { + writer.accept(new FinishedHammerRecipe(new ResourceLocation(ExDeorum.ID, "hammer/" + name), block, result.asItem(), resultAmount)); } private static void barrelCompostRecipes(Consumer writer) { // plants - barrelCompost(writer, "saplings", Ingredient.of(ItemTags.SAPLINGS), 125); - barrelCompost(writer, "leaves", Ingredient.of(ItemTags.LEAVES), 125); - barrelCompost(writer, "small_flowers", Ingredient.of(ItemTags.SMALL_FLOWERS), 100); - barrelCompost(writer, "tall_flowers", Ingredient.of(ItemTags.TALL_FLOWERS), 150); - barrelCompost(writer, "mushrooms", Ingredient.of(Tags.Items.MUSHROOMS), 100); - barrelCompost(writer, "lily_pad", Ingredient.of(Items.LILY_PAD), 100); - barrelCompost(writer, "sugar_cane", Ingredient.of(Items.SUGAR_CANE), 80); - barrelCompost(writer, "vine", Ingredient.of(Items.VINE), 100); - barrelCompost(writer, "grass", Ingredient.of(Items.GRASS, Items.FERN), 100); - barrelCompost(writer, "tall_grass", Ingredient.of(Items.TALL_GRASS, Items.LARGE_FERN), 150); - barrelCompost(writer, "seagrass", Ingredient.of(Items.SEAGRASS), 80); - barrelCompost(writer, "nether_wart", Ingredient.of(Items.NETHER_WART), 100); - barrelCompost(writer, "seeds", Ingredient.of(Tags.Items.SEEDS), 80); - barrelCompost(writer, "wheat", Ingredient.of(Tags.Items.CROPS_WHEAT), 80); - barrelCompost(writer, "berries", Ingredient.of(Items.SWEET_BERRIES, Items.GLOW_BERRIES), 80); - barrelCompost(writer, "melon", Ingredient.of(Items.MELON), 200); - barrelCompost(writer, "cake", Ingredient.of(Items.CAKE), 500); - barrelCompost(writer, "pumpkin", Ingredient.of(Items.PUMPKIN), 500); - barrelCompost(writer, "carrots", Ingredient.of(Items.CARROT), 100); - barrelCompost(writer, "potatoes", Ingredient.of(Items.POTATO, Items.BAKED_POTATO, Items.POISONOUS_POTATO), 80); + barrelCompost(writer, "saplings", ingredient(ItemTags.SAPLINGS), 125); + barrelCompost(writer, "leaves", ingredient(ItemTags.LEAVES), 125); + barrelCompost(writer, "small_flowers", ingredient(ItemTags.SMALL_FLOWERS), 100); + barrelCompost(writer, "tall_flowers", ingredient(ItemTags.TALL_FLOWERS), 150); + barrelCompost(writer, "mushrooms", ingredient(Tags.Items.MUSHROOMS), 100); + barrelCompost(writer, "lily_pad", ingredient(Items.LILY_PAD), 100); + barrelCompost(writer, "sugar_cane", ingredient(Items.SUGAR_CANE), 80); + barrelCompost(writer, "vine", ingredient(Items.VINE), 100); + barrelCompost(writer, "grass", ingredient(Items.GRASS, Items.FERN), 100); + barrelCompost(writer, "tall_grass", ingredient(Items.TALL_GRASS, Items.LARGE_FERN), 150); + barrelCompost(writer, "seagrass", ingredient(Items.SEAGRASS), 80); + barrelCompost(writer, "nether_wart", ingredient(Items.NETHER_WART), 100); + barrelCompost(writer, "seeds", ingredient(Tags.Items.SEEDS), 80); + barrelCompost(writer, "wheat", ingredient(Tags.Items.CROPS_WHEAT), 80); + barrelCompost(writer, "berries", ingredient(Items.SWEET_BERRIES, Items.GLOW_BERRIES), 80); + barrelCompost(writer, "melon", ingredient(Items.MELON), 200); + barrelCompost(writer, "cake", ingredient(Items.CAKE), 500); + barrelCompost(writer, "pumpkin", ingredient(Items.PUMPKIN), 500); + barrelCompost(writer, "carrots", ingredient(Items.CARROT), 100); + barrelCompost(writer, "potatoes", ingredient(Items.POTATO, Items.BAKED_POTATO, Items.POISONOUS_POTATO), 80); + barrelCompost(writer, "beetroot", ingredient(Items.BEETROOT), 80); + barrelCompost(writer, "moss_block", ingredient(Items.MOSS_BLOCK), 150); + barrelCompost(writer, "moss_carpet", ingredient(Items.MOSS_CARPET), 100); + barrelCompost(writer, "spores_and_seeds", SPORES_AND_SEEDS, 80); // flesh - barrelCompost(writer, "rotten_flesh", Ingredient.of(Items.ROTTEN_FLESH), 100); - barrelCompost(writer, "spider_eye", Ingredient.of(Items.SPIDER_EYE), 80); - barrelCompost(writer, "bread", Ingredient.of(Items.BREAD), 125); - barrelCompost(writer, "string", Ingredient.of(Items.STRING), 40); + barrelCompost(writer, "rotten_flesh", ingredient(Items.ROTTEN_FLESH), 100); + barrelCompost(writer, "spider_eye", ingredient(Items.SPIDER_EYE), 80); + barrelCompost(writer, "fermented_spider_eye", ingredient(Items.FERMENTED_SPIDER_EYE), 100); + barrelCompost(writer, "string", ingredient(Items.STRING), 40); + barrelCompost(writer, "rabbit_foot", ingredient(Items.RABBIT_FOOT), 40); // meats - barrelCompost(writer, "pork", Ingredient.of(Items.PORKCHOP, Items.COOKED_PORKCHOP), 150); - barrelCompost(writer, "beef", Ingredient.of(Items.BEEF, Items.COOKED_BEEF), 150); - barrelCompost(writer, "chicken", Ingredient.of(Items.CHICKEN, Items.COOKED_CHICKEN), 125); - barrelCompost(writer, "mutton", Ingredient.of(Items.MUTTON, Items.COOKED_MUTTON), 125); - barrelCompost(writer, "salmon", Ingredient.of(Items.SALMON, Items.COOKED_SALMON), 125); - barrelCompost(writer, "rabbit", Ingredient.of(Items.RABBIT, Items.COOKED_RABBIT), 100); - barrelCompost(writer, "cod", Ingredient.of(Items.COD, Items.COOKED_COD), 100); - barrelCompost(writer, "tropical_fish", Ingredient.of(Items.TROPICAL_FISH), 80); - barrelCompost(writer, "pufferfish", Ingredient.of(Items.PUFFERFISH), 80); - barrelCompost(writer, "egg", Ingredient.of(Items.EGG), 100); + barrelCompost(writer, "pork", ingredient(Items.PORKCHOP, Items.COOKED_PORKCHOP), 150); + barrelCompost(writer, "beef", ingredient(Items.BEEF, Items.COOKED_BEEF), 150); + barrelCompost(writer, "chicken", ingredient(Items.CHICKEN, Items.COOKED_CHICKEN), 125); + barrelCompost(writer, "mutton", ingredient(Items.MUTTON, Items.COOKED_MUTTON), 125); + barrelCompost(writer, "salmon", ingredient(Items.SALMON, Items.COOKED_SALMON), 125); + barrelCompost(writer, "rabbit", ingredient(Items.RABBIT, Items.COOKED_RABBIT), 100); + barrelCompost(writer, "cod", ingredient(Items.COD, Items.COOKED_COD), 100); + barrelCompost(writer, "tropical_fish", ingredient(Items.TROPICAL_FISH), 80); + barrelCompost(writer, "pufferfish", ingredient(Items.PUFFERFISH), 80); + barrelCompost(writer, "egg", ingredient(Items.EGG), 100); // foods - barrelCompost(writer, "melon_slice", Ingredient.of(Items.MELON_SLICE), 40); - barrelCompost(writer, "kelp", Ingredient.of(Items.KELP, Items.DRIED_KELP), 40); - barrelCompost(writer, "silk_worms", Ingredient.of(EItems.SILK_WORM.get(), EItems.COOKED_SILK_WORM.get()), 40); - barrelCompost(writer, "apple", Ingredient.of(Items.APPLE), 100); - barrelCompost(writer, "cookie", Ingredient.of(Items.COOKIE), 100); - barrelCompost(writer, "pumpkin_pie", Ingredient.of(Items.PUMPKIN_PIE), 150); + barrelCompost(writer, "melon_slice", ingredient(Items.MELON_SLICE), 40); + barrelCompost(writer, "kelp", ingredient(Items.KELP, Items.DRIED_KELP), 40); + barrelCompost(writer, "silk_worms", ingredient(EItems.SILK_WORM.get(), EItems.COOKED_SILK_WORM.get()), 40); + barrelCompost(writer, "apple", ingredient(Items.APPLE), 100); + barrelCompost(writer, "cookie", ingredient(Items.COOKIE), 100); + barrelCompost(writer, "pumpkin_pie", ingredient(Items.PUMPKIN_PIE), 150); + barrelCompost(writer, "bread", ingredient(Items.BREAD), 125); + barrelCompost(writer, "mushroom_stew", ingredient(Items.MUSHROOM_STEW), 200); + barrelCompost(writer, "suspicious_stew", ingredient(Items.SUSPICIOUS_STEW), 200); + barrelCompost(writer, "beetroot_soup", ingredient(Items.BEETROOT_SOUP), 150); + barrelCompost(writer, "rabbit_stew", ingredient(Items.RABBIT_STEW), 200); + + // lol + barrelCompost(writer, "golden_apples", ingredient(Items.GOLDEN_APPLE, Items.ENCHANTED_GOLDEN_APPLE), 1000); } private static void barrelCompost(Consumer writer, String id, Ingredient ingredient, int volume) { @@ -319,20 +1000,30 @@ private static void barrelCompost(Consumer writer, String id, In } private static void barrelMixingRecipes(Consumer writer) { - barrelMixing(writer, Ingredient.of(Items.MILK_BUCKET), ForgeMod.WATER_TYPE, Items.SLIME_BLOCK); - barrelMixing(writer, Ingredient.of(Items.SNOWBALL), ForgeMod.WATER_TYPE, Items.ICE); - barrelMixing(writer, Ingredient.of(Items.SAND), EFluids.WITCH_WATER_TYPE, Items.SOUL_SAND); - barrelMixing(writer, Ingredient.of(Items.REDSTONE), ForgeMod.LAVA_TYPE, Items.NETHERRACK); - barrelMixing(writer, Ingredient.of(Items.GLOWSTONE_DUST), ForgeMod.LAVA_TYPE, Items.END_STONE); - barrelMixing(writer, Ingredient.of(Items.WATER_BUCKET), ForgeMod.LAVA_TYPE, Items.OBSIDIAN); - barrelMixing(writer, Ingredient.of(Items.LAVA_BUCKET), ForgeMod.WATER_TYPE, Items.STONE); + // water + barrelMixing(writer, ingredient(Items.MILK_BUCKET), Fluids.WATER, Items.SLIME_BLOCK); + barrelMixing(writer, "_from_porcelain_bucket", ingredient(EItems.PORCELAIN_MILK_BUCKET.get()), Fluids.WATER, Items.SLIME_BLOCK); + barrelMixing(writer, ingredient(Items.SNOWBALL), Fluids.WATER, Items.ICE); + barrelMixing(writer, ingredient(Items.LAVA_BUCKET), Fluids.WATER, Items.STONE); + barrelMixing(writer, "_from_porcelain_bucket", ingredient(EItems.PORCELAIN_LAVA_BUCKET), Fluids.WATER, Items.STONE); + // lava + barrelMixing(writer, ingredient(EItems.WITCH_WATER_BUCKET), Fluids.LAVA, Items.NETHERRACK); + barrelMixing(writer, "_from_porcelain_bucket", ingredient(EItems.PORCELAIN_WITCH_WATER_BUCKET), Fluids.LAVA, Items.NETHERRACK); + barrelMixing(writer, ingredient(Items.GLOWSTONE_DUST), Fluids.LAVA, Items.END_STONE); + barrelMixing(writer, ingredient(Items.WATER_BUCKET), Fluids.LAVA, Items.OBSIDIAN); + barrelMixing(writer, "_from_porcelain_bucket", ingredient(EItems.PORCELAIN_WATER_BUCKET), Fluids.LAVA, Items.OBSIDIAN); + barrelMixing(writer, ingredient(Items.SLIME_BALL), Fluids.LAVA, Items.MAGMA_CREAM); + barrelMixing(writer, ingredient(Items.SOUL_SAND), Fluids.LAVA, Items.SOUL_SOIL); + // witch water + barrelMixing(writer, ingredient(Items.SAND), EFluids.WITCH_WATER.get(), Items.SOUL_SAND); } - private static void barrelMixing(Consumer writer, Ingredient ingredient, Supplier fluidType, Item result) { - writer.accept(new FinishedBarrelMixingRecipe(new ResourceLocation(ExDeorum.ID, "barrel_mixing/" + path(result)), ingredient, fluidType.get(), 1000, result)); + private static void barrelMixing(Consumer writer, Ingredient ingredient, Fluid fluidType, Item result) { + writer.accept(new FinishedBarrelMixingRecipe(new ResourceLocation(ExDeorum.ID, "barrel_mixing/" + path(result)), ingredient, fluidType, 1000, result)); } - private static String path(Item item) { - return Objects.requireNonNull(ForgeRegistries.ITEMS.getKey(item).getPath()); + // todo replace with fluid mixing recipe type + private static void barrelMixing(Consumer writer, String suffix, Ingredient ingredient, Fluid fluidType, Item result) { + writer.accept(new FinishedBarrelMixingRecipe(new ResourceLocation(ExDeorum.ID, "barrel_mixing/" + path(result) + suffix), ingredient, fluidType, 1000, result)); } } diff --git a/src/main/java/thedarkcolour/exdeorum/data/TranslationKeys.java b/src/main/java/thedarkcolour/exdeorum/data/TranslationKeys.java index 0447ccd3..bf5f03ab 100644 --- a/src/main/java/thedarkcolour/exdeorum/data/TranslationKeys.java +++ b/src/main/java/thedarkcolour/exdeorum/data/TranslationKeys.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.data; import thedarkcolour.exdeorum.ExDeorum; @@ -5,6 +23,7 @@ public class TranslationKeys { public static final String MAIN_CREATIVE_TAB = "itemGroup." + ExDeorum.ID + ".main"; public static final String VOID_WORLD_TYPE = "generator." + ExDeorum.ID + ".void_world"; + public static final String WATERING_CAN_FLUID_DISPLAY = "item." + ExDeorum.ID + ".watering_can_fluid_display"; // Advancements public static final String ROOT_ADVANCEMENT_TITLE = "advancements." + ExDeorum.ID + ".core.root.title"; @@ -21,10 +40,18 @@ public class TranslationKeys { // JEI descriptions public static final String SILK_WORM_JEI_INFO = "info." + ExDeorum.ID + ".silk_worm"; public static final String SIEVE_JEI_INFO = "info." + ExDeorum.ID + ".sieve"; + public static final String WATERING_CAN_JEI_INFO = "info." + ExDeorum.ID + ".watering_can"; + public static final String WITCH_WATER_JEI_INFO = "info." + ExDeorum.ID + ".witch_water"; + public static final String MYCELIUM_SPORES_JEI_INFO = "info." + ExDeorum.ID + ".mycelium_spores"; + public static final String GRASS_SEEDS_JEI_INFO = "info." + ExDeorum.ID + ".grass_seeds"; + public static final String WARPED_NYLIUM_SPORES_JEI_INFO = "info." + ExDeorum.ID + ".warped_nylium_spores"; + public static final String CRIMSON_NYLIUM_SPORES_JEI_INFO = "info." + ExDeorum.ID + ".crimson_nylium_spores"; + public static final String SCULK_CORE_JEI_INFO = "info." + ExDeorum.ID + ".sculk_core"; // JEI recipe categories public static final String BARREL_COMPOST_CATEGORY_TITLE = "gui." + ExDeorum.ID + ".category.barrel_compost"; public static final String BARREL_COMPOST_RECIPE_VOLUME = "gui." + ExDeorum.ID + ".category.barrel_compost.volume"; + public static final String BARREL_MIXING_CATEGORY_TITLE = "gui." + ExDeorum.ID + ".category.barrel_mixing"; public static final String WATER_CRUCIBLE_CATEGORY_TITLE = "gui." + ExDeorum.ID + ".category.water_crucible"; public static final String LAVA_CRUCIBLE_CATEGORY_TITLE = "gui." + ExDeorum.ID + ".category.lava_crucible"; public static final String HAMMER_CATEGORY_TITLE = "gui." + ExDeorum.ID + ".category.hammer"; diff --git a/src/main/java/thedarkcolour/exdeorum/data/package-info.java b/src/main/java/thedarkcolour/exdeorum/data/package-info.java new file mode 100644 index 00000000..62fb7d9f --- /dev/null +++ b/src/main/java/thedarkcolour/exdeorum/data/package-info.java @@ -0,0 +1,27 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * This package contains all data generation for Ex Deorum. It is not to be used outside of data generation. + *

+ * Ex Deorum uses the ModKit library, which adds several utilities primarily for data generation + * without needing to be shaded or depended upon outside a development environment. + */ +@net.minecraft.MethodsReturnNonnullByDefault +@javax.annotation.ParametersAreNonnullByDefault +package thedarkcolour.exdeorum.data; diff --git a/src/main/java/thedarkcolour/exdeorum/event/EventHandler.java b/src/main/java/thedarkcolour/exdeorum/event/EventHandler.java index 4cf0503a..a04de167 100644 --- a/src/main/java/thedarkcolour/exdeorum/event/EventHandler.java +++ b/src/main/java/thedarkcolour/exdeorum/event/EventHandler.java @@ -1,35 +1,65 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.event; +import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; import net.minecraft.core.Holder; import net.minecraft.core.registries.Registries; import net.minecraft.data.worldgen.features.TreeFeatures; +import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; +import net.minecraft.stats.Stats; +import net.minecraft.util.Unit; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; import net.minecraft.world.level.GameRules; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.levelgen.Heightmap; import net.minecraft.world.level.levelgen.XoroshiroRandomSource; import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; import net.minecraftforge.client.event.ClientChatEvent; +import net.minecraftforge.common.ForgeMod; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.AddReloadListenerEvent; import net.minecraftforge.event.entity.player.PlayerEvent; import net.minecraftforge.event.level.LevelEvent; +import net.minecraftforge.eventbus.api.Event; +import net.minecraftforge.fluids.FluidInteractionRegistry; import net.minecraftforge.fml.InterModComms; +import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.fml.event.lifecycle.InterModEnqueueEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import thedarkcolour.exdeorum.ExDeorum; +import thedarkcolour.exdeorum.config.EConfig; +import thedarkcolour.exdeorum.item.WateringCanItem; import thedarkcolour.exdeorum.recipe.RecipeUtil; import thedarkcolour.exdeorum.client.CompostColors; +import thedarkcolour.exdeorum.registry.EFluids; +import thedarkcolour.exdeorum.registry.EItems; import thedarkcolour.exdeorum.voidworld.VoidChunkGenerator; import thedarkcolour.exdeorum.compat.top.ExDeorumTopCompat; import thedarkcolour.exdeorum.item.HammerItem; import thedarkcolour.exdeorum.network.NetworkHandler; -import java.util.concurrent.CompletableFuture; - public final class EventHandler { public static void register() { var fmlBus = MinecraftForge.EVENT_BUS; @@ -39,6 +69,7 @@ public static void register() { fmlBus.addListener(EventHandler::addReloadListeners); modBus.addListener(EventHandler::interModEnqueue); fmlBus.addListener(EventHandler::createSpawnTree); + modBus.addListener(EventHandler::onCommonSetup); if (ExDeorum.DEBUG) { fmlBus.addListener(EventHandler::handleDebugCommands); @@ -51,6 +82,7 @@ private static void handleDebugCommands(ClientChatEvent event) { try { CompostColors.loadColors(); + Minecraft.getInstance().player.displayClientMessage(Component.literal("Reloaded " + CompostColors.COLORS.size() + " compost colors!"), false); } catch (Exception e) { ExDeorum.LOGGER.error("Failed to load vanilla compost colors", e); } @@ -58,7 +90,7 @@ private static void handleDebugCommands(ClientChatEvent event) { } private static void createSpawnTree(LevelEvent.CreateSpawnPosition event) { - if (event.getLevel() instanceof ServerLevel level) { + if (event.getLevel() instanceof ServerLevel level && level.getChunkSource().getGenerator() instanceof VoidChunkGenerator) { // todo have config option for more kinds of platforms var rand = new XoroshiroRandomSource(level.getSeed()); var pos = new BlockPos.MutableBlockPos(rand.nextIntBetweenInclusive(-200, 200), 64, rand.nextIntBetweenInclusive(-200, 200)); @@ -79,6 +111,15 @@ private static void createSpawnTree(LevelEvent.CreateSpawnPosition event) { } } + private static void onCommonSetup(FMLCommonSetupEvent event) { + event.enqueueWork(() -> { + FluidInteractionRegistry.addInteraction(ForgeMod.LAVA_TYPE.get(), new FluidInteractionRegistry.InteractionInformation( + ForgeMod.WATER_TYPE.get(), + fluidState -> fluidState.isSource() ? Blocks.OBSIDIAN.defaultBlockState() : (EConfig.SERVER.witchWaterNetherrackGenerator.get() ? Blocks.NETHERRACK.defaultBlockState() : Blocks.COBBLESTONE.defaultBlockState()) + )); + }); + } + private static void onPlayerLogin(PlayerEvent.PlayerLoggedInEvent event) { if (event.getEntity() instanceof ServerPlayer player) { if (player.serverLevel().getChunkSource().getGenerator() instanceof VoidChunkGenerator) { @@ -89,6 +130,15 @@ private static void onPlayerLogin(PlayerEvent.PlayerLoggedInEvent event) { } else { ExDeorum.LOGGER.error("Unable to grant player the Void World advancement. Ex Nihilo Reborn advancements will not show"); } + + if (player.getStats().getValue(Stats.CUSTOM.get(Stats.DEATHS)) == 0 && player.tickCount == 0) { + if (EConfig.SERVER.startingTorch.get()) { + player.getInventory().add(new ItemStack(Items.TORCH)); + } + if (EConfig.SERVER.startingWateringCan.get()) { + player.getInventory().add(WateringCanItem.getFull(EItems.WOODEN_WATERING_CAN)); + } + } } } } @@ -101,7 +151,7 @@ public static void interModEnqueue(InterModEnqueueEvent event) { private static void addReloadListeners(AddReloadListenerEvent event) { var recipes = event.getServerResources().getRecipeManager(); event.addListener((prepBarrier, resourceManager, prepProfiler, reloadProfiler, backgroundExecutor, gameExecutor) -> { - return CompletableFuture.allOf().thenCompose(prepBarrier::wait).thenRunAsync(() -> { + return prepBarrier.wait(Unit.INSTANCE).thenRunAsync(() -> { HammerItem.refreshValidBlocks(recipes); RecipeUtil.reload(recipes); }, gameExecutor); diff --git a/src/main/java/thedarkcolour/exdeorum/fluid/WitchWaterFluid.java b/src/main/java/thedarkcolour/exdeorum/fluid/WitchWaterFluid.java index b085953c..c022c8e3 100644 --- a/src/main/java/thedarkcolour/exdeorum/fluid/WitchWaterFluid.java +++ b/src/main/java/thedarkcolour/exdeorum/fluid/WitchWaterFluid.java @@ -1,11 +1,33 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.fluid; +import net.minecraft.client.Camera; +import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvents; import net.minecraftforge.client.extensions.common.IClientFluidTypeExtensions; import net.minecraftforge.common.SoundActions; import net.minecraftforge.fluids.FluidType; import net.minecraftforge.fluids.ForgeFlowingFluid; +import org.jetbrains.annotations.NotNull; +import org.joml.Vector3f; import thedarkcolour.exdeorum.ExDeorum; import thedarkcolour.exdeorum.registry.EBlocks; import thedarkcolour.exdeorum.registry.EFluids; @@ -19,7 +41,7 @@ public class WitchWaterFluid extends FluidType { private static final ResourceLocation OVERLAY_TEXTURE = new ResourceLocation("block/water_overlay"); public static ForgeFlowingFluid.Properties properties() { - return new ForgeFlowingFluid.Properties(EFluids.WITCH_WATER_TYPE, EFluids.WITCH_WATER_STILL, EFluids.WITCH_WATER_FLOWING).block(EBlocks.WITCH_WATER).bucket(EItems.WITCH_WATER_BUCKET); + return new ForgeFlowingFluid.Properties(EFluids.WITCH_WATER_TYPE, EFluids.WITCH_WATER, EFluids.WITCH_WATER_FLOWING).block(EBlocks.WITCH_WATER).bucket(EItems.WITCH_WATER_BUCKET); } public WitchWaterFluid() { @@ -51,6 +73,11 @@ public ResourceLocation getOverlayTexture() { return OVERLAY_TEXTURE; } + @Override + public @NotNull Vector3f modifyFogColor(Camera camera, float partialTick, ClientLevel level, int renderDistance, float darkenWorldAmount, Vector3f fluidFogColor) { + return new Vector3f(32f / 255f, 12f / 255f, 64f / 255f); + } + @Override public int getTintColor() { return 0xFFFFFFFF; diff --git a/src/main/java/thedarkcolour/exdeorum/item/CookedSilkWormItem.java b/src/main/java/thedarkcolour/exdeorum/item/CookedSilkWormItem.java new file mode 100644 index 00000000..a1510abd --- /dev/null +++ b/src/main/java/thedarkcolour/exdeorum/item/CookedSilkWormItem.java @@ -0,0 +1,35 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package thedarkcolour.exdeorum.item; + +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.world.item.Item; + +public class CookedSilkWormItem extends Item { + public CookedSilkWormItem(Properties properties) { + super(properties); + } + + // Yummy silk worms :) + @Override + public SoundEvent getEatingSound() { + return SoundEvents.WEEPING_VINES_PLACE; + } +} diff --git a/src/main/java/thedarkcolour/exdeorum/item/CrookItem.java b/src/main/java/thedarkcolour/exdeorum/item/CrookItem.java index af6c0847..08a97960 100644 --- a/src/main/java/thedarkcolour/exdeorum/item/CrookItem.java +++ b/src/main/java/thedarkcolour/exdeorum/item/CrookItem.java @@ -1,6 +1,25 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.item; import net.minecraft.core.BlockPos; +import net.minecraft.tags.BlockTags; import net.minecraft.tags.ItemTags; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; @@ -20,8 +39,16 @@ // Infested leaves have a 1 in 4 * progress to drop 1 string // Infested leaves have a 1 in 16 * progress to drop another string public class CrookItem extends Item { - public CrookItem(Properties properties) { + private final float speed; + + public CrookItem(Properties properties, float speed) { super(properties); + this.speed = speed; + } + + @Override + public float getDestroySpeed(ItemStack pStack, BlockState pState) { + return pState.is(BlockTags.LEAVES) ? speed : 1.0f; } @Override diff --git a/src/main/java/thedarkcolour/exdeorum/item/GrassSpreaderItem.java b/src/main/java/thedarkcolour/exdeorum/item/GrassSpreaderItem.java index 95634e59..9838ee51 100644 --- a/src/main/java/thedarkcolour/exdeorum/item/GrassSpreaderItem.java +++ b/src/main/java/thedarkcolour/exdeorum/item/GrassSpreaderItem.java @@ -1,9 +1,29 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.item; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.tags.BlockTags; import net.minecraft.world.InteractionResult; import net.minecraft.world.item.Item; import net.minecraft.world.item.context.UseOnContext; -import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; import java.util.function.Supplier; @@ -11,8 +31,8 @@ public class GrassSpreaderItem extends Item { private final Supplier grassState; - public GrassSpreaderItem(Properties pProperties, Supplier grassState) { - super(pProperties); + public GrassSpreaderItem(Properties properties, Supplier grassState) { + super(properties); this.grassState = grassState; } @@ -21,22 +41,31 @@ public InteractionResult useOn(UseOnContext ctx) { var level = ctx.getLevel(); var pos = ctx.getClickedPos(); var player = ctx.getPlayer(); + var state = level.getBlockState(pos); + var grass = grassState.get(); - if (level.getBlockState(pos).is(Blocks.DIRT)) { + if (canSpread(state) && grass != state) { if (!level.isClientSide) { - level.setBlock(pos, grassState.get(), 3); + level.setBlock(pos, grass, 3); + level.playSound(null, pos, SoundEvents.ROOTED_DIRT_PLACE, SoundSource.BLOCKS); + + if (player == null || !player.getAbilities().instabuild) { + ctx.getItemInHand().shrink(1); + } return InteractionResult.CONSUME; + } else { + level.addDestroyBlockEffect(pos, grass); } - // apparently shrinking is done on both sides? - if (player == null || !player.getAbilities().instabuild) { - ctx.getItemInHand().shrink(1); - } return InteractionResult.SUCCESS; } return InteractionResult.PASS; } + + public boolean canSpread(BlockState state) { + return state.is(BlockTags.DIRT); + } } diff --git a/src/main/java/thedarkcolour/exdeorum/item/HammerItem.java b/src/main/java/thedarkcolour/exdeorum/item/HammerItem.java index 18c2b768..49a41ff5 100644 --- a/src/main/java/thedarkcolour/exdeorum/item/HammerItem.java +++ b/src/main/java/thedarkcolour/exdeorum/item/HammerItem.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.item; import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet; diff --git a/src/main/java/thedarkcolour/exdeorum/item/MeshItem.java b/src/main/java/thedarkcolour/exdeorum/item/MeshItem.java index 1490c72e..fbf2f6bf 100644 --- a/src/main/java/thedarkcolour/exdeorum/item/MeshItem.java +++ b/src/main/java/thedarkcolour/exdeorum/item/MeshItem.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.item; import net.minecraft.world.item.Item; diff --git a/src/main/java/thedarkcolour/exdeorum/item/NyliumSpreaderItem.java b/src/main/java/thedarkcolour/exdeorum/item/NyliumSpreaderItem.java new file mode 100644 index 00000000..9b599f0d --- /dev/null +++ b/src/main/java/thedarkcolour/exdeorum/item/NyliumSpreaderItem.java @@ -0,0 +1,36 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package thedarkcolour.exdeorum.item; + +import net.minecraft.tags.BlockTags; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.common.Tags; + +import java.util.function.Supplier; + +public class NyliumSpreaderItem extends GrassSpreaderItem { + public NyliumSpreaderItem(Properties properties, Supplier grassState) { + super(properties, grassState); + } + + @Override + public boolean canSpread(BlockState state) { + return state.is(Tags.Blocks.NETHERRACK) || state.is(BlockTags.NYLIUM); + } +} diff --git a/src/main/java/thedarkcolour/exdeorum/item/PorcelainBucket.java b/src/main/java/thedarkcolour/exdeorum/item/PorcelainBucket.java new file mode 100644 index 00000000..614a7d39 --- /dev/null +++ b/src/main/java/thedarkcolour/exdeorum/item/PorcelainBucket.java @@ -0,0 +1,343 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package thedarkcolour.exdeorum.item; + +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.stats.Stats; +import net.minecraft.tags.FluidTags; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.animal.Cow; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.ItemUtils; +import net.minecraft.world.level.ClipContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.block.BucketPickup; +import net.minecraft.world.level.block.LiquidBlockContainer; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.gameevent.GameEvent; +import net.minecraft.world.level.material.FlowingFluid; +import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.level.material.Fluids; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; +import net.minecraftforge.common.ForgeMod; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.capabilities.ForgeCapabilities; +import net.minecraftforge.common.capabilities.ICapabilityProvider; +import net.minecraftforge.common.util.LazyOptional; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.capability.IFluidHandler; +import net.minecraftforge.fluids.capability.IFluidHandlerItem; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import thedarkcolour.exdeorum.registry.EFluids; +import thedarkcolour.exdeorum.registry.EItems; + +import java.util.function.Supplier; + +public class PorcelainBucket extends Item { + private final Supplier fluid; + + public PorcelainBucket(Supplier fluid, Properties properties) { + super(properties); + this.fluid = fluid; + } + + @Override + public InteractionResult interactLivingEntity(ItemStack stack, Player player, LivingEntity target, InteractionHand hand) { + if (target instanceof Cow) { + if (!target.isBaby()) { + var level = player.level(); + player.playSound(SoundEvents.COW_MILK, 1.0f, 1.0f); + if (!level.isClientSide) { + // have to make a copy to prevent player voiding the item stack in line 1056 + // when it calls interactLivingEntity and checks if the stack is empty afterwards + var result = ItemUtils.createFilledResult(stack.getCount() == 1 ? stack.copy() : stack, player, new ItemStack(EItems.PORCELAIN_MILK_BUCKET.get())); + player.setItemInHand(hand, result); + } + return InteractionResult.sidedSuccess(level.isClientSide); + } + } + + return InteractionResult.PASS; + } + + public InteractionResultHolder use(Level level, Player player, InteractionHand pHand) { + var stack = player.getItemInHand(pHand); + var hitResult = getPlayerPOVHitResult(level, player, this.fluid.get() == Fluids.EMPTY ? ClipContext.Fluid.SOURCE_ONLY : ClipContext.Fluid.NONE); + var ret = net.minecraftforge.event.ForgeEventFactory.onBucketUse(player, level, stack, hitResult); + if (ret != null) return ret; + if (hitResult.getType() == HitResult.Type.MISS) { + return InteractionResultHolder.pass(stack); + } else if (hitResult.getType() != HitResult.Type.BLOCK) { + return InteractionResultHolder.pass(stack); + } else { + var pos = hitResult.getBlockPos(); + var face = hitResult.getDirection(); + var relative = pos.relative(face); + if (level.mayInteract(player, pos) && player.mayUseItemAt(relative, face, stack)) { + if (this.fluid.get() == Fluids.EMPTY) { + var state = level.getBlockState(pos); + var fluidType = state.getFluidState().getFluidType(); + + if (fluidType == ForgeMod.WATER_TYPE.get() || fluidType == ForgeMod.LAVA_TYPE.get() || fluidType == EFluids.WITCH_WATER_TYPE.get()) { + if (state.getBlock() instanceof BucketPickup pickup) { + var result = pickup.pickupBlock(level, pos, state); + + if (fluidType == ForgeMod.WATER_TYPE.get()) { + result = new ItemStack(EItems.PORCELAIN_WATER_BUCKET.get()); + } else if (fluidType == ForgeMod.LAVA_TYPE.get()) { + result = new ItemStack(EItems.PORCELAIN_LAVA_BUCKET.get()); + } else { + result = new ItemStack(EItems.PORCELAIN_WITCH_WATER_BUCKET.get()); + } + + if (!result.isEmpty()) { + player.awardStat(Stats.ITEM_USED.get(this)); + pickup.getPickupSound(state).ifPresent(sound -> player.playSound(sound, 1.0F, 1.0F)); + level.gameEvent(player, GameEvent.FLUID_PICKUP, pos); + var filled = ItemUtils.createFilledResult(stack, player, result); + if (!level.isClientSide) { + CriteriaTriggers.FILLED_BUCKET.trigger((ServerPlayer)player, result); + } + + return InteractionResultHolder.sidedSuccess(filled, level.isClientSide()); + } + } + } + + return InteractionResultHolder.fail(stack); + } else { + var state = level.getBlockState(pos); + var placePos = canBlockContainFluid(level, pos, state) ? pos : relative; + + if (emptyContents(player, level, placePos, hitResult, stack)) { + if (player instanceof ServerPlayer serverPlayer) { + CriteriaTriggers.PLACED_BLOCK.trigger(serverPlayer, placePos, stack); + } + + player.awardStat(Stats.ITEM_USED.get(this)); + return InteractionResultHolder.sidedSuccess(getEmptySuccessItem(stack, player), level.isClientSide()); + } else { + return InteractionResultHolder.fail(stack); + } + } + } else { + return InteractionResultHolder.fail(stack); + } + } + } + + private ItemStack getEmptySuccessItem(ItemStack stack, Player player) { + if (!player.getAbilities().instabuild) { + if (fluid.get() == Fluids.LAVA) { + return ItemStack.EMPTY; + } else { + return new ItemStack(EItems.PORCELAIN_BUCKET.get()); + } + } else { + return stack; + } + } + + public boolean emptyContents(@Nullable Player player, Level level, BlockPos pos, @Nullable BlockHitResult hitResult, @Nullable ItemStack container) { + if (!(this.fluid.get() instanceof FlowingFluid)) { + return false; + } else { + var state = level.getBlockState(pos); + var block = state.getBlock(); + var replacing = state.canBeReplaced(this.fluid.get()); + var canPlaceAtPos = state.isAir() || replacing || block instanceof LiquidBlockContainer liquidContainer && liquidContainer.canPlaceLiquid(level, pos, state, this.fluid.get()); + var containedFluidStack = java.util.Optional.ofNullable(container).flatMap(net.minecraftforge.fluids.FluidUtil::getFluidContained); + + if (!canPlaceAtPos) { + return hitResult != null && this.emptyContents(player, level, hitResult.getBlockPos().relative(hitResult.getDirection()), null, container); + } else if (containedFluidStack.isPresent() && this.fluid.get().getFluidType().isVaporizedOnPlacement(level, pos, containedFluidStack.get())) { + this.fluid.get().getFluidType().onVaporize(player, level, pos, containedFluidStack.get()); + return true; + } else if (level.dimensionType().ultraWarm() && this.fluid.get().is(FluidTags.WATER)) { + var i = pos.getX(); + var j = pos.getY(); + var k = pos.getZ(); + level.playSound(player, pos, SoundEvents.FIRE_EXTINGUISH, SoundSource.BLOCKS, 0.5F, 2.6F + (level.random.nextFloat() - level.random.nextFloat()) * 0.8F); + + for(int l = 0; l < 8; ++l) { + level.addParticle(ParticleTypes.LARGE_SMOKE, i + Math.random(), j + Math.random(), k + Math.random(), 0, 0, 0); + } + + return true; + } else if (block instanceof LiquidBlockContainer liquidContainer && liquidContainer.canPlaceLiquid(level, pos, state, this.fluid.get())) { + liquidContainer.placeLiquid(level, pos, state, ((FlowingFluid)this.fluid.get()).getSource(false)); + playEmptySound(player, level, pos); + return true; + } else { + if (!level.isClientSide && replacing && !state.liquid()) { + level.destroyBlock(pos, true); + } + + if (!level.setBlock(pos, this.fluid.get().defaultFluidState().createLegacyBlock(), 11) && !state.getFluidState().isSource()) { + return false; + } else { + playEmptySound(player, level, pos); + return true; + } + } + } + } + + protected void playEmptySound(@Nullable Player pPlayer, LevelAccessor pLevel, BlockPos pPos) { + var sound = this.fluid.get().getFluidType().getSound(pPlayer, pLevel, pPos, net.minecraftforge.common.SoundActions.BUCKET_EMPTY); + if (sound == null) { + sound = this.fluid.get().is(FluidTags.LAVA) ? SoundEvents.BUCKET_EMPTY_LAVA : SoundEvents.BUCKET_EMPTY; + } + pLevel.playSound(pPlayer, pPos, sound, SoundSource.BLOCKS, 1.0F, 1.0F); + pLevel.gameEvent(pPlayer, GameEvent.FLUID_PLACE, pPos); + } + + protected boolean canBlockContainFluid(Level level, BlockPos pos, BlockState state) { + return state.getBlock() instanceof LiquidBlockContainer block && block.canPlaceLiquid(level, pos, state, fluid.get()); + } + + @Override + public @Nullable ICapabilityProvider initCapabilities(ItemStack stack, @Nullable CompoundTag nbt) { + return new PorcelainBucket.CapabilityProvider(stack); + } + + static class CapabilityProvider implements ICapabilityProvider, IFluidHandlerItem { + private final LazyOptional holder = LazyOptional.of(() -> this); + private ItemStack container; + + public CapabilityProvider(@NotNull ItemStack container) { + this.container = container; + } + + @Override + public @NotNull LazyOptional getCapability(@NotNull Capability cap, @Nullable Direction side) { + return ForgeCapabilities.FLUID_HANDLER_ITEM.orEmpty(cap, this.holder); + } + + @Override + public @NotNull ItemStack getContainer() { + return this.container; + } + + @Override + public int getTanks() { + return 1; + } + + @Override + public @NotNull FluidStack getFluidInTank(int tank) { + return getFluid(); + } + + @Override + public int getTankCapacity(int tank) { + return 1000; + } + + @Override + public boolean isFluidValid(int tank, @NotNull FluidStack stack) { + return stack.getFluid() == Fluids.LAVA || stack.getFluid() == Fluids.WATER || stack.getFluid() == EFluids.WITCH_WATER.get(); + } + + @Override + public int fill(FluidStack resource, IFluidHandler.FluidAction action) { + if (this.container.getCount() != 1 || resource.getAmount() < 1000 || !getFluid().isEmpty() || !isFluidValid(0, resource)) { + return 0; + } + if (action.execute()) { + setFluid(resource); + } + return 1000; + } + + @Override + public @NotNull FluidStack drain(FluidStack resource, IFluidHandler.FluidAction action) { + if (this.container.getCount() != 1 || resource.getAmount() < 1000) { + return FluidStack.EMPTY; + } + var stack = getFluid(); + if (!stack.isEmpty() && stack.isFluidEqual(resource)) { + if (action.execute()) { + setFluid(FluidStack.EMPTY); + } + return stack; + } + + return FluidStack.EMPTY; + } + + @Override + public @NotNull FluidStack drain(int maxDrain, IFluidHandler.FluidAction action) { + if (this.container.getCount() != 1 || maxDrain < 1000) { + return FluidStack.EMPTY; + } + + FluidStack fluidStack = getFluid(); + if (!fluidStack.isEmpty()) { + if (action.execute()) { + setFluid(FluidStack.EMPTY); + } + return fluidStack; + } + + return FluidStack.EMPTY; + } + + FluidStack getFluid() { + var item = this.container.getItem(); + + if (item == EItems.PORCELAIN_LAVA_BUCKET.get()) { + return new FluidStack(Fluids.LAVA, 1000); + } else if (item == EItems.PORCELAIN_WATER_BUCKET.get()) { + return new FluidStack(Fluids.WATER, 1000); + } else if (item == EItems.PORCELAIN_WITCH_WATER_BUCKET.get()) { + return new FluidStack(EFluids.WITCH_WATER.get(), 1000); + } + + return FluidStack.EMPTY; + } + + void setFluid(FluidStack fluidStack) { + if (fluidStack.isEmpty()) { + this.container = new ItemStack(EItems.PORCELAIN_BUCKET.get()); + } else if (fluidStack.getFluid() == Fluids.LAVA) { + this.container = new ItemStack(EItems.PORCELAIN_LAVA_BUCKET.get()); + } else if (fluidStack.getFluid() == Fluids.WATER) { + this.container = new ItemStack(EItems.PORCELAIN_WATER_BUCKET.get()); + } else if (fluidStack.getFluid() == EFluids.WITCH_WATER.get()) { + this.container = new ItemStack(EItems.PORCELAIN_WITCH_WATER_BUCKET.get()); + } + } + } +} diff --git a/src/main/java/thedarkcolour/exdeorum/item/PorcelainBucketItem.java b/src/main/java/thedarkcolour/exdeorum/item/PorcelainBucketItem.java deleted file mode 100644 index c9a0996b..00000000 --- a/src/main/java/thedarkcolour/exdeorum/item/PorcelainBucketItem.java +++ /dev/null @@ -1,9 +0,0 @@ -package thedarkcolour.exdeorum.item; - -import net.minecraft.world.item.Item; - -public class PorcelainBucketItem extends Item { - public PorcelainBucketItem(Properties pProperties) { - super(pProperties); - } -} diff --git a/src/main/java/thedarkcolour/exdeorum/item/PorcelainMilkBucket.java b/src/main/java/thedarkcolour/exdeorum/item/PorcelainMilkBucket.java new file mode 100644 index 00000000..d6fd93b0 --- /dev/null +++ b/src/main/java/thedarkcolour/exdeorum/item/PorcelainMilkBucket.java @@ -0,0 +1,64 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package thedarkcolour.exdeorum.item; + +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.MilkBucketItem; +import net.minecraft.world.level.Level; +import net.minecraftforge.common.capabilities.ICapabilityProvider; +import net.minecraftforge.fluids.FluidStack; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import thedarkcolour.exdeorum.registry.EItems; + +public class PorcelainMilkBucket extends MilkBucketItem { + public PorcelainMilkBucket(Properties properties) { + super(properties); + } + + @Override + public ItemStack finishUsingItem(ItemStack stack, Level level, LivingEntity living) { + var ret = super.finishUsingItem(new ItemStack(Items.MILK_BUCKET), level, living); + + if (ret.getItem() == Items.BUCKET) { + return new ItemStack(EItems.PORCELAIN_BUCKET.get()); + } else { + return stack; + } + } + + @Override + public @Nullable ICapabilityProvider initCapabilities(ItemStack stack, @Nullable CompoundTag nbt) { + return new CapabilityProvider(stack); + } + + private static class CapabilityProvider extends PorcelainBucket.CapabilityProvider { + public CapabilityProvider(@NotNull ItemStack container) { + super(container); + } + + @Override + public boolean isFluidValid(int tank, @NotNull FluidStack stack) { + return false; + } + } +} diff --git a/src/main/java/thedarkcolour/exdeorum/item/SculkCoreItem.java b/src/main/java/thedarkcolour/exdeorum/item/SculkCoreItem.java new file mode 100644 index 00000000..68e9e1a0 --- /dev/null +++ b/src/main/java/thedarkcolour/exdeorum/item/SculkCoreItem.java @@ -0,0 +1,66 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package thedarkcolour.exdeorum.item; + +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.SculkShriekerBlock; +import org.joml.Math; + +public class SculkCoreItem extends Item { + public SculkCoreItem(Properties properties) { + super(properties); + } + + @Override + public InteractionResult useOn(UseOnContext context) { + var level = context.getLevel(); + var pos = context.getClickedPos(); + var state = level.getBlockState(pos); + + if (state.getBlock() == Blocks.SCULK_SHRIEKER && !state.getValue(SculkShriekerBlock.CAN_SUMMON)) { + var stack = context.getItemInHand(); + var player = context.getPlayer(); + + if (!level.isClientSide) { + if (!player.getAbilities().instabuild) { + stack.shrink(1); + } + level.setBlock(pos, state.setValue(SculkShriekerBlock.CAN_SUMMON, true), 3); + } else { + for (int i = 0; i < 10; i++) { + int j = i * 36; + double radians = Math.toRadians(j); + level.addParticle(ParticleTypes.PORTAL, pos.getX() + 0.5, pos.getY() + 0.5625, pos.getZ() + 0.5, + Math.cos(radians) * 0.15, 0.15, Math.sin(radians) * 0.15); + } + } + level.playSound(null, pos, SoundEvents.SCULK_SHRIEKER_SHRIEK, SoundSource.BLOCKS, 1.0f, 1.0f); + + return InteractionResult.sidedSuccess(level.isClientSide); + } + + return InteractionResult.PASS; + } +} diff --git a/src/main/java/thedarkcolour/exdeorum/item/SilkWormItem.java b/src/main/java/thedarkcolour/exdeorum/item/SilkWormItem.java index ea313e01..3352d375 100644 --- a/src/main/java/thedarkcolour/exdeorum/item/SilkWormItem.java +++ b/src/main/java/thedarkcolour/exdeorum/item/SilkWormItem.java @@ -1,10 +1,33 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.item; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; import net.minecraft.tags.BlockTags; import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.UseOnContext; import net.minecraft.world.level.block.LeavesBlock; +import thedarkcolour.exdeorum.block.EBlock; import thedarkcolour.exdeorum.blockentity.InfestedLeavesBlockEntity; import thedarkcolour.exdeorum.registry.EBlocks; @@ -20,13 +43,15 @@ public InteractionResult useOn(UseOnContext context) { var state = level.getBlockState(pos); if (!state.isAir()) { - if (state.is(BlockTags.LEAVES)) { + if (state.is(BlockTags.LEAVES) && state.getBlock() != EBlocks.INFESTED_LEAVES.get()) { if (!level.isClientSide) { // Replace with infested block level.setBlock(pos, EBlocks.INFESTED_LEAVES.get().defaultBlockState() .setValue(LeavesBlock.DISTANCE, state.getValue(LeavesBlock.DISTANCE)) .setValue(LeavesBlock.PERSISTENT, state.getValue(LeavesBlock.PERSISTENT)), 2); + level.playSound(null, pos, SoundEvents.HONEY_BLOCK_HIT, SoundSource.BLOCKS); + // Set mimic if (level.getBlockEntity(pos) instanceof InfestedLeavesBlockEntity leaves) { leaves.setMimic(state); @@ -40,4 +65,13 @@ public InteractionResult useOn(UseOnContext context) { return InteractionResult.PASS; } + + @Override + public boolean onEntityItemUpdate(ItemStack stack, ItemEntity entity) { + // play a gross noise when you discover a silk worm + if (entity.tickCount == 1 && entity.getOwner() == null) { + entity.level().playSound(null, entity, SoundEvents.HONEY_BLOCK_PLACE, SoundSource.BLOCKS, 1.0f, 1.0f); + } + return false; + } } diff --git a/src/main/java/thedarkcolour/exdeorum/item/WateringCanItem.java b/src/main/java/thedarkcolour/exdeorum/item/WateringCanItem.java new file mode 100644 index 00000000..5cd1aab0 --- /dev/null +++ b/src/main/java/thedarkcolour/exdeorum/item/WateringCanItem.java @@ -0,0 +1,360 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package thedarkcolour.exdeorum.item; + +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.math.Axis; +import net.minecraft.ChatFormatting; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.tags.BlockTags; +import net.minecraft.util.Mth; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.HumanoidArm; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.UseAnim; +import net.minecraft.world.level.ClipContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.BucketPickup; +import net.minecraft.world.level.block.FarmBlock; +import net.minecraft.world.level.block.LevelEvent; +import net.minecraft.world.level.block.SpreadingSnowyDirtBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.Fluids; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; +import net.minecraftforge.client.extensions.common.IClientItemExtensions; +import net.minecraftforge.common.ForgeMod; +import net.minecraftforge.common.capabilities.ForgeCapabilities; +import net.minecraftforge.common.capabilities.ICapabilityProvider; +import net.minecraftforge.common.util.FakePlayer; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.capability.IFluidHandler; +import net.minecraftforge.fluids.capability.templates.FluidHandlerItemStack; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import thedarkcolour.exdeorum.data.TranslationKeys; + +import java.util.List; +import java.util.function.Consumer; +import java.util.function.Supplier; + +public class WateringCanItem extends Item { + private static final int WATERING_INTERVAL = 4; + private static final int STARTUP_TIME = 10; + // only used on the clientside + private static boolean isWatering = false; + + private final int capacity; + private final boolean renewing; + private final boolean usableInMachines; + + public WateringCanItem(int capacity, Properties properties) { + super(properties); + + this.capacity = capacity; + this.renewing = capacity >= 4000; + this.usableInMachines = false; + } + + protected WateringCanItem(boolean usableInMachines, Properties properties) { + super(properties); + + this.capacity = 4000; + this.renewing = true; + this.usableInMachines = usableInMachines; + } + + public static ItemStack getFull(Supplier wateringCan) { + var stack = new ItemStack(wateringCan.get()); + stack.getCapability(ForgeCapabilities.FLUID_HANDLER_ITEM).ifPresent(handler -> handler.fill(new FluidStack(Fluids.WATER, Integer.MAX_VALUE), IFluidHandler.FluidAction.EXECUTE)); + return stack; + } + + @Override + public boolean isBarVisible(ItemStack stack) { + return renewing ? stack.getCapability(ForgeCapabilities.FLUID_HANDLER_ITEM).map(handler -> handler.getFluidInTank(0).getAmount() < capacity).orElse(true) : true; + } + + @Override + public int getBarColor(ItemStack pStack) { + return 0x3F76E4; + } + + @Override + public int getBarWidth(ItemStack stack) { + return stack.getCapability(ForgeCapabilities.FLUID_HANDLER_ITEM).map(fluidHandler -> { + return Math.round((float) fluidHandler.getFluidInTank(0).getAmount() * 13.0F / (float) capacity); + }).orElse(0); + } + + @Override + public int getUseDuration(ItemStack stack) { + return 72000; + } + + @Override + public UseAnim getUseAnimation(ItemStack stack) { + return UseAnim.NONE; + } + + @Override + public void appendHoverText(ItemStack stack, @Nullable Level pLevel, List tooltip, TooltipFlag pIsAdvanced) { + stack.getCapability(ForgeCapabilities.FLUID_HANDLER_ITEM).ifPresent(fluidHandler -> { + var water = Component.translatable(ForgeMod.WATER_TYPE.get().getDescriptionId()); + + tooltip.add(water.append(Component.translatable(TranslationKeys.WATERING_CAN_FLUID_DISPLAY, fluidHandler.getFluidInTank(0).getAmount(), capacity)).withStyle(ChatFormatting.GRAY)); + }); + } + + @Override + public InteractionResultHolder use(Level level, Player player, InteractionHand hand) { + var itemInHand = player.getItemInHand(hand); + return itemInHand.getCapability(ForgeCapabilities.FLUID_HANDLER_ITEM).map(fluidHandler -> { + if (fluidHandler.getFluidInTank(0).getAmount() < this.capacity) { + var hitResult = getPlayerPOVHitResult(level, player, ClipContext.Fluid.SOURCE_ONLY); + + if (hitResult.getType() == HitResult.Type.BLOCK) { + var pos = hitResult.getBlockPos(); + var state = level.getBlockState(pos); + + if (state.getFluidState().getType() == Fluids.WATER && state.getBlock() instanceof BucketPickup pickup) { + if (!level.isClientSide) { + fluidHandler.fill(new FluidStack(Fluids.WATER, 1000), IFluidHandler.FluidAction.EXECUTE); + pickup.pickupBlock(level, pos, state); + pickup.getPickupSound(state).ifPresent(sound -> player.playSound(sound, 1.0F, 1.0F)); + } + + return InteractionResultHolder.sidedSuccess(itemInHand, level.isClientSide); + } + } + } + + if (!fluidHandler.getFluidInTank(0).isEmpty()) { + if (usableInMachines || !(player instanceof FakePlayer)) { + player.startUsingItem(hand); + } + + return InteractionResultHolder.consume(itemInHand); + } + return InteractionResultHolder.pass(itemInHand); + }).orElse(InteractionResultHolder.pass(itemInHand)); + } + + @Override + public void onUseTick(Level level, LivingEntity living, ItemStack stack, int remainingTicks) { + var useTicks = 72000 - remainingTicks; + + if (useTicks >= STARTUP_TIME) { + stack.getCapability(ForgeCapabilities.FLUID_HANDLER_ITEM).ifPresent(fluidHandler -> { + if (!fluidHandler.getFluidInTank(0).isEmpty()) { + // do watering can + var reachDist = living instanceof Player player ? player.getBlockReach() : living.getAttributeValue(ForgeMod.BLOCK_REACH.get()); + var hit = living.pick(reachDist, 0, true); + + if (hit instanceof BlockHitResult blockHit && blockHit.getType() == HitResult.Type.BLOCK) { + var pos = blockHit.getBlockPos(); + var state = level.getBlockState(pos); + + if (!level.isClientSide) { + if (useTicks % WATERING_INTERVAL == 0) { + tryWatering((ServerLevel) level, pos, state); + + if (!renewing || fluidHandler.getFluidInTank(0).getAmount() != capacity) { + if (!(living instanceof Player player && player.getAbilities().instabuild)) { + ((CapabilityProvider) fluidHandler).drain(); + } + } + } + if (useTicks % 2 == 0) { + waterParticles(level, pos, state); + } + if ((useTicks - STARTUP_TIME) % 20 == 0) { + level.playSound(null, pos, SoundEvents.WEATHER_RAIN, living.getSoundSource(), this.getClass() == WideWateringCanItem.class ? 0.6f : 0.3f, 1.5f); + } + } else { + isWatering = true; + } + } else { + isWatering = false; + } + } else { + living.stopUsingItem(); + isWatering = false; + } + }); + } + } + + @Override + public void releaseUsing(ItemStack stack, Level level, LivingEntity living, int timeCharged) { + if (timeCharged > STARTUP_TIME) { + level.playLocalSound(living.getX(), living.getY(), living.getZ(), SoundEvents.BUCKET_FILL, living.getSoundSource(), 0.6f, 0.7f, false); + } + } + + protected void tryWatering(ServerLevel level, BlockPos pos, BlockState state) { + if (state.is(BlockTags.SAPLINGS)) { + if (level.random.nextInt(3) == 0) { + state.randomTick(level, pos, level.random); + level.levelEvent(LevelEvent.PARTICLES_AND_SOUND_PLANT_GROWTH, pos, 0); + } + } else if (state.is(BlockTags.CROPS) || state.getBlock() instanceof SpreadingSnowyDirtBlock) { + state.randomTick(level, pos, level.random); + } else if (state.getBlock() == Blocks.LAVA) { + level.levelEvent(LevelEvent.LAVA_FIZZ, pos, 0); + } else if (state.getBlock() == Blocks.FARMLAND) { + hydrateFarmland(level, pos, state); + } + var below = pos.below(); + var belowState = level.getBlockState(below); + if (belowState.getBlock() == Blocks.FARMLAND) { + hydrateFarmland(level, below, belowState); + } + } + + private static void hydrateFarmland(ServerLevel level, BlockPos pos, BlockState state) { + var randomPos = pos.offset(level.random.nextIntBetweenInclusive(-1, 1), 0, level.random.nextIntBetweenInclusive(-1, 1)); + + if (randomPos != pos) { + pos = randomPos; + state = level.getBlockState(pos); + + if (state.getBlock() != Blocks.FARMLAND) { + return; + } + } + + if (state.getValue(FarmBlock.MOISTURE) < 7) { + level.setBlockAndUpdate(pos, state.setValue(FarmBlock.MOISTURE, 7)); + } + } + + protected void waterParticles(Level level, BlockPos pos, BlockState state) { + if (level instanceof ServerLevel serverLevel) { + double x = pos.getX() + 0.5 + level.random.nextGaussian() / 8f; + double y = pos.getY(); + double z = pos.getZ() + 0.5 + level.random.nextGaussian() / 8f; + var collisionShape = state.getCollisionShape(level, pos); + if (!collisionShape.isEmpty()) { + y += collisionShape.max(Direction.Axis.Y); + } + for (int i = -1; i <= 1; i++) { + for (int j = -1; j <= 1; j++) { + if (level.random.nextBoolean()) { + serverLevel.sendParticles(ParticleTypes.RAIN, x + i * 0.33, y, z + j * 0.33, 2, 0, 0, 0, 0.2); + } + } + } + } + } + + @Override + public ICapabilityProvider initCapabilities(ItemStack stack, @Nullable CompoundTag nbt) { + return new CapabilityProvider(stack, this.capacity); + } + + @Override + public void initializeClient(Consumer consumer) { + consumer.accept(ClientExtensions.INSTANCE); + } + + private static class CapabilityProvider extends FluidHandlerItemStack { + public CapabilityProvider(@NotNull ItemStack container, int capacity) { + super(container, capacity); + } + + @Override + public boolean canFillFluidType(FluidStack fluid) { + return fluid.getFluid() == Fluids.WATER; + } + + @Override + public boolean canDrainFluidType(FluidStack fluid) { + return false; + } + + public void drain() { + var contained = getFluid(); + var drainAmount = Math.min(contained.getAmount(), 1); + + var drained = contained.copy(); + drained.setAmount(drainAmount); + + contained.shrink(drainAmount); + + if (contained.isEmpty()) { + setContainerToEmpty(); + } else { + setFluid(contained); + } + } + } + + private enum ClientExtensions implements IClientItemExtensions { + INSTANCE; + + @Override + public boolean applyForgeHandTransform(PoseStack poseStack, LocalPlayer player, HumanoidArm arm, ItemStack itemInHand, float partialTick, float equipProcess, float swingProcess) { + if (player.isUsingItem()) { + var useTicks = 72000 - 1 - player.getUseItemRemainingTicks(); + var step = useTicks + partialTick; + var startProgress = easeOutCubic(Math.min(step, STARTUP_TIME) / STARTUP_TIME); + + poseStack.translate(-0.2 * startProgress, -0.2 * startProgress, 0); + + if (startProgress == 1.0f && isWatering) { + var sin = Mth.sin(0.35f * (step - 10f)); + poseStack.rotateAround(Axis.XP.rotationDegrees(10 * sin), 0f, 0f, -0.2f); + //poseStack.translate(0, 0.2 * sin, 0); + } + + var rotate = Mth.lerp(startProgress, 0, Mth.DEG_TO_RAD); + + poseStack.rotateAround(Axis.ZP.rotation(rotate * 15f), -0.75f, 0f, 0); + + int i = arm == HumanoidArm.RIGHT ? 1 : -1; + poseStack.translate((float) i * 0.56F, -0.52F + (player.isUsingItem() ? 0 : equipProcess) * -0.6F, -0.72F); + + return true; + } + + + return false; + } + + // https://easings.net/#easeOutCubic + private static float easeOutCubic(float progress) { + var opposite = 1 - progress; + return 1 - opposite * opposite * opposite; + } + } +} diff --git a/src/main/java/thedarkcolour/exdeorum/item/WideWateringCanItem.java b/src/main/java/thedarkcolour/exdeorum/item/WideWateringCanItem.java new file mode 100644 index 00000000..bd87db66 --- /dev/null +++ b/src/main/java/thedarkcolour/exdeorum/item/WideWateringCanItem.java @@ -0,0 +1,64 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package thedarkcolour.exdeorum.item; + +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; + +public class WideWateringCanItem extends WateringCanItem { + public WideWateringCanItem(boolean usableInMachines, Properties properties) { + super(usableInMachines, properties); + } + + @Override + protected void tryWatering(ServerLevel level, BlockPos pos, BlockState state) { + for (int i = -1; i <= 1; i++) { + for (int j = -1; j <= 1; j++) { + if (level.random.nextInt(3) != 0) { + var newPos = pos.offset(i, 0, j); + var newState = state; + + if (newPos != pos) { + newState = level.getBlockState(newPos); + } + + super.tryWatering(level, newPos, newState); + } + } + } + } + + @Override + protected void waterParticles(Level level, BlockPos pos, BlockState state) { + for (int i = -1; i <= 1; i++) { + for (int j = -1; j <= 1; j++) { + var newPos = pos.offset(i, 0, j); + var newState = state; + + if (newPos != pos) { + newState = level.getBlockState(newPos); + } + + super.waterParticles(level, newPos, newState); + } + } + } +} diff --git a/src/main/java/thedarkcolour/exdeorum/item/WitchWaterBucketItem.java b/src/main/java/thedarkcolour/exdeorum/item/WitchWaterBucketItem.java index 0c74f021..e66190ab 100644 --- a/src/main/java/thedarkcolour/exdeorum/item/WitchWaterBucketItem.java +++ b/src/main/java/thedarkcolour/exdeorum/item/WitchWaterBucketItem.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.item; import net.minecraft.nbt.CompoundTag; @@ -10,7 +28,7 @@ public class WitchWaterBucketItem extends BucketItem { public WitchWaterBucketItem(Properties properties) { - super(EFluids.WITCH_WATER_STILL, properties); + super(EFluids.WITCH_WATER, properties); } @Override diff --git a/src/main/java/thedarkcolour/exdeorum/loot/CrookLootModifier.java b/src/main/java/thedarkcolour/exdeorum/loot/CrookLootModifier.java index f516d4b5..d3759d11 100644 --- a/src/main/java/thedarkcolour/exdeorum/loot/CrookLootModifier.java +++ b/src/main/java/thedarkcolour/exdeorum/loot/CrookLootModifier.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.loot; import com.mojang.serialization.Codec; diff --git a/src/main/java/thedarkcolour/exdeorum/loot/HammerLootModifier.java b/src/main/java/thedarkcolour/exdeorum/loot/HammerLootModifier.java index 95d3eeba..ae48bd87 100644 --- a/src/main/java/thedarkcolour/exdeorum/loot/HammerLootModifier.java +++ b/src/main/java/thedarkcolour/exdeorum/loot/HammerLootModifier.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.loot; import com.mojang.serialization.Codec; @@ -28,6 +46,7 @@ protected ObjectArrayList doApply(ObjectArrayList generate var level = context.getLevel(); var state = context.getParamOrNull(LootContextParams.BLOCK_STATE); + // todo incorporate Fortune if (state != null && state.getBlock().asItem() != Items.AIR) { var temporaryItem = new SimpleContainer(new ItemStack(state.getBlock().asItem())); var recipe = level.getRecipeManager().getRecipeFor(ERecipeTypes.HAMMER.get(), temporaryItem, level); diff --git a/src/main/java/thedarkcolour/exdeorum/loot/InfestedStringCount.java b/src/main/java/thedarkcolour/exdeorum/loot/InfestedStringCount.java index 87f60269..08d98c57 100644 --- a/src/main/java/thedarkcolour/exdeorum/loot/InfestedStringCount.java +++ b/src/main/java/thedarkcolour/exdeorum/loot/InfestedStringCount.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.loot; import com.google.gson.JsonDeserializationContext; diff --git a/src/main/java/thedarkcolour/exdeorum/network/ClientMessageHandler.java b/src/main/java/thedarkcolour/exdeorum/network/ClientMessageHandler.java index 55e82ab5..e0370c60 100644 --- a/src/main/java/thedarkcolour/exdeorum/network/ClientMessageHandler.java +++ b/src/main/java/thedarkcolour/exdeorum/network/ClientMessageHandler.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.network; import net.minecraft.client.Minecraft; diff --git a/src/main/java/thedarkcolour/exdeorum/network/NetworkHandler.java b/src/main/java/thedarkcolour/exdeorum/network/NetworkHandler.java index 83848d8d..5491075d 100644 --- a/src/main/java/thedarkcolour/exdeorum/network/NetworkHandler.java +++ b/src/main/java/thedarkcolour/exdeorum/network/NetworkHandler.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.network; import net.minecraft.resources.ResourceLocation; diff --git a/src/main/java/thedarkcolour/exdeorum/network/VoidWorldMessage.java b/src/main/java/thedarkcolour/exdeorum/network/VoidWorldMessage.java index 8fb1ccea..c4ecc178 100644 --- a/src/main/java/thedarkcolour/exdeorum/network/VoidWorldMessage.java +++ b/src/main/java/thedarkcolour/exdeorum/network/VoidWorldMessage.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.network; import net.minecraft.network.FriendlyByteBuf; diff --git a/src/main/java/thedarkcolour/exdeorum/recipe/CodecUtil.java b/src/main/java/thedarkcolour/exdeorum/recipe/CodecUtil.java index 3e628e34..9645493e 100644 --- a/src/main/java/thedarkcolour/exdeorum/recipe/CodecUtil.java +++ b/src/main/java/thedarkcolour/exdeorum/recipe/CodecUtil.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.recipe; import com.google.gson.JsonElement; diff --git a/src/main/java/thedarkcolour/exdeorum/recipe/EFinishedRecipe.java b/src/main/java/thedarkcolour/exdeorum/recipe/EFinishedRecipe.java index 789eaa98..31c91ada 100644 --- a/src/main/java/thedarkcolour/exdeorum/recipe/EFinishedRecipe.java +++ b/src/main/java/thedarkcolour/exdeorum/recipe/EFinishedRecipe.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.recipe; import com.google.gson.JsonObject; diff --git a/src/main/java/thedarkcolour/exdeorum/recipe/ProbabilityRecipe.java b/src/main/java/thedarkcolour/exdeorum/recipe/ProbabilityRecipe.java index a761f9c8..0a6a951c 100644 --- a/src/main/java/thedarkcolour/exdeorum/recipe/ProbabilityRecipe.java +++ b/src/main/java/thedarkcolour/exdeorum/recipe/ProbabilityRecipe.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.recipe; import net.minecraft.resources.ResourceLocation; diff --git a/src/main/java/thedarkcolour/exdeorum/recipe/RecipeUtil.java b/src/main/java/thedarkcolour/exdeorum/recipe/RecipeUtil.java index 0e33be54..fb0598c6 100644 --- a/src/main/java/thedarkcolour/exdeorum/recipe/RecipeUtil.java +++ b/src/main/java/thedarkcolour/exdeorum/recipe/RecipeUtil.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.recipe; import com.google.common.cache.Cache; @@ -5,6 +23,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.gson.JsonObject; +import it.unimi.dsi.fastutil.objects.ObjectArrayList; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.GsonHelper; @@ -155,59 +174,32 @@ public static NumberProvider fromNetworkNumberProvider(FriendlyByteBuf buffer) { }; } + // todo support Forge's ingredient types public static boolean areIngredientsEqual(Ingredient first, Ingredient second) { // although unlikely, we should check this anyway if (first == second) return true; if (first.isVanilla() && second.isVanilla()) { - Ingredient.Value[] firstValues = first.values; - Ingredient.Value[] secondValues = second.values; - - // if arrays are same size, check if their contents are equal (order matters) - if (firstValues.length == secondValues.length) { - for (int i = 0; i < firstValues.length; i++) { - Ingredient.Value firstValue = firstValues[i]; - Ingredient.Value secondValue = secondValues[i]; - Class firstKlass = firstValue.getClass(); - Class secondKlass = secondValue.getClass(); - - // if values are the same type of class - if (firstKlass == secondKlass) { - if (firstKlass == Ingredient.ItemValue.class) { - // if items are different, return false - if (!ItemStack.matches(((Ingredient.ItemValue) firstValue).item, ((Ingredient.ItemValue) secondValue).item)) { - return false; - } - } else if (firstKlass == Ingredient.TagValue.class) { - // if tags are different, return false - // identity comparison is okay because tags are always interned in vanilla - if (((Ingredient.TagValue) firstValue).tag != ((Ingredient.TagValue) secondValue).tag) { - return false; - } - } else { - var firstItems = firstValue.getItems(); - var secondItems = secondValue.getItems(); - var len = firstItems.size(); - - if (len == secondItems.size()) { - Iterator firstIter = firstItems.iterator(); - Iterator secondIter = secondItems.iterator(); - - while (firstIter.hasNext()) { - if (!ItemStack.matches(firstIter.next(), secondIter.next())) { - // if one of the items is different, return false - return false; - } - } - } else { - // if values have different amounts of items, return false - return false; - } + var firstValues = new ObjectArrayList<>(first.values); + var secondValues = new ObjectArrayList<>(second.values); + + // if arrays are same size, check if their contents are equal (order does not matter) + if (firstValues.size() == secondValues.size()) { + outer: + for (int i = 0; i < firstValues.size(); i++) { + var firstValue = firstValues.get(i); + + for (int j = 0; j < firstValues.size(); j++) { + if (areValuesEqual(firstValue, secondValues.get(j))) { + firstValues.remove(i); + secondValues.remove(j); + i--; + + continue outer; } - } else { - // if the values are different types, return false - return false; } + + return false; } // return true if everything was equal @@ -218,6 +210,48 @@ public static boolean areIngredientsEqual(Ingredient first, Ingredient second) { return false; } + private static boolean areValuesEqual(Ingredient.Value firstValue, Ingredient.Value secondValue) { + Class firstKlass = firstValue.getClass(); + Class secondKlass = secondValue.getClass(); + + // if values are the same type of class + if (firstKlass == secondKlass) { + if (firstKlass == Ingredient.ItemValue.class) { + // if items are different, return false + return ItemStack.matches(((Ingredient.ItemValue) firstValue).item, ((Ingredient.ItemValue) secondValue).item); + } else if (firstKlass == Ingredient.TagValue.class) { + // if tags are different, return false + // identity comparison is okay because tags are always interned in vanilla + return ((Ingredient.TagValue) firstValue).tag == ((Ingredient.TagValue) secondValue).tag; + } else { + var firstItems = firstValue.getItems(); + var secondItems = secondValue.getItems(); + var len = firstItems.size(); + + if (len == secondItems.size()) { + Iterator firstIter = firstItems.iterator(); + Iterator secondIter = secondItems.iterator(); + + while (firstIter.hasNext()) { + if (!ItemStack.matches(firstIter.next(), secondIter.next())) { + // if one of the items is different, return false + return false; + } + } + } else { + // if values have different amounts of items, return false + return false; + } + + // if all items are the same, return true + return true; + } + } else { + // if the values are different types, return false + return false; + } + } + public static boolean hasSieveResult(RecipeManager recipes, Item mesh, ItemStack stack) { for (var recipe : byType(recipes, ERecipeTypes.SIEVE.get())) { if (recipe.test(mesh, stack)) { diff --git a/src/main/java/thedarkcolour/exdeorum/recipe/SingleIngredientRecipe.java b/src/main/java/thedarkcolour/exdeorum/recipe/SingleIngredientRecipe.java index dc8f2d5e..cedbf5c4 100644 --- a/src/main/java/thedarkcolour/exdeorum/recipe/SingleIngredientRecipe.java +++ b/src/main/java/thedarkcolour/exdeorum/recipe/SingleIngredientRecipe.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.recipe; import net.minecraft.core.NonNullList; diff --git a/src/main/java/thedarkcolour/exdeorum/recipe/barrel/BarrelCompostRecipe.java b/src/main/java/thedarkcolour/exdeorum/recipe/barrel/BarrelCompostRecipe.java index e3e3d8f0..c175d89b 100644 --- a/src/main/java/thedarkcolour/exdeorum/recipe/barrel/BarrelCompostRecipe.java +++ b/src/main/java/thedarkcolour/exdeorum/recipe/barrel/BarrelCompostRecipe.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.recipe.barrel; import com.google.gson.JsonObject; diff --git a/src/main/java/thedarkcolour/exdeorum/recipe/barrel/BarrelMixingRecipe.java b/src/main/java/thedarkcolour/exdeorum/recipe/barrel/BarrelMixingRecipe.java index 62d30258..c2dd07de 100644 --- a/src/main/java/thedarkcolour/exdeorum/recipe/barrel/BarrelMixingRecipe.java +++ b/src/main/java/thedarkcolour/exdeorum/recipe/barrel/BarrelMixingRecipe.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.recipe.barrel; import com.google.gson.JsonObject; @@ -11,8 +29,8 @@ import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.item.crafting.RecipeType; import net.minecraft.world.level.Level; +import net.minecraft.world.level.material.Fluid; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidType; import net.minecraftforge.registries.ForgeRegistries; import org.jetbrains.annotations.Nullable; import thedarkcolour.exdeorum.recipe.RecipeUtil; @@ -21,13 +39,13 @@ import thedarkcolour.exdeorum.registry.ERecipeTypes; public class BarrelMixingRecipe extends SingleIngredientRecipe { - public final FluidType fluidType; + public final Fluid fluid; public final int fluidAmount; public final Item result; - public BarrelMixingRecipe(ResourceLocation id, Ingredient ingredient, FluidType fluidType, int fluidAmount, Item result) { + public BarrelMixingRecipe(ResourceLocation id, Ingredient ingredient, Fluid fluid, int fluidAmount, Item result) { super(id, ingredient); - this.fluidType = fluidType; + this.fluid = fluid; this.fluidAmount = fluidAmount; this.result = result; } @@ -40,7 +58,7 @@ public boolean matches(Container inventory, Level level) { } public boolean matches(ItemStack item, FluidStack fluid) { - return ingredient.test(item) && fluid.getFluid().getFluidType() == fluidType && fluid.getAmount() >= fluidAmount; + return ingredient.test(item) && fluid.getFluid() == this.fluid && fluid.getAmount() >= fluidAmount; } @Override @@ -55,31 +73,31 @@ public RecipeType getType() { public static class Serializer implements RecipeSerializer { @Override - public BarrelMixingRecipe fromJson(ResourceLocation name, JsonObject json) { + public BarrelMixingRecipe fromJson(ResourceLocation id, JsonObject json) { Ingredient ingredient = RecipeUtil.readIngredient(json, "ingredient"); - FluidType fluidType = ForgeRegistries.FLUID_TYPES.get().getValue(new ResourceLocation(GsonHelper.getAsString(json, "fluid_type"))); + Fluid fluid = ForgeRegistries.FLUIDS.getValue(new ResourceLocation(GsonHelper.getAsString(json, "fluid"))); int fluidAmount = GsonHelper.getAsInt(json, "fluid_amount"); Item result = ForgeRegistries.ITEMS.getValue(new ResourceLocation(GsonHelper.getAsString(json, "result"))); - return new BarrelMixingRecipe(name, ingredient, fluidType, fluidAmount, result); + return new BarrelMixingRecipe(id, ingredient, fluid, fluidAmount, result); } @Override public void toNetwork(FriendlyByteBuf buffer, BarrelMixingRecipe recipe) { recipe.ingredient.toNetwork(buffer); - buffer.writeRegistryId(ForgeRegistries.FLUID_TYPES.get(), recipe.fluidType); + buffer.writeRegistryId(ForgeRegistries.FLUIDS, recipe.fluid); buffer.writeVarInt(recipe.fluidAmount); buffer.writeRegistryId(ForgeRegistries.ITEMS, recipe.result); } @Override - public @Nullable BarrelMixingRecipe fromNetwork(ResourceLocation name, FriendlyByteBuf buffer) { + public @Nullable BarrelMixingRecipe fromNetwork(ResourceLocation id, FriendlyByteBuf buffer) { Ingredient ingredient = Ingredient.fromNetwork(buffer); - FluidType fluidType = buffer.readRegistryId(); + Fluid fluid = buffer.readRegistryId(); int fluidAmount = buffer.readVarInt(); Item result = buffer.readRegistryId(); - return new BarrelMixingRecipe(name, ingredient, fluidType, fluidAmount, result); + return new BarrelMixingRecipe(id, ingredient, fluid, fluidAmount, result); } } } diff --git a/src/main/java/thedarkcolour/exdeorum/recipe/barrel/FinishedBarrelCompostRecipe.java b/src/main/java/thedarkcolour/exdeorum/recipe/barrel/FinishedBarrelCompostRecipe.java index 3bd7dcdf..b982a112 100644 --- a/src/main/java/thedarkcolour/exdeorum/recipe/barrel/FinishedBarrelCompostRecipe.java +++ b/src/main/java/thedarkcolour/exdeorum/recipe/barrel/FinishedBarrelCompostRecipe.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.recipe.barrel; import com.google.gson.JsonObject; diff --git a/src/main/java/thedarkcolour/exdeorum/recipe/barrel/FinishedBarrelMixingRecipe.java b/src/main/java/thedarkcolour/exdeorum/recipe/barrel/FinishedBarrelMixingRecipe.java index 5a75262f..e1d23ced 100644 --- a/src/main/java/thedarkcolour/exdeorum/recipe/barrel/FinishedBarrelMixingRecipe.java +++ b/src/main/java/thedarkcolour/exdeorum/recipe/barrel/FinishedBarrelMixingRecipe.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.recipe.barrel; import com.google.gson.JsonObject; @@ -5,7 +23,7 @@ import net.minecraft.world.item.Item; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.item.crafting.RecipeSerializer; -import net.minecraftforge.fluids.FluidType; +import net.minecraft.world.level.material.Fluid; import net.minecraftforge.registries.ForgeRegistries; import thedarkcolour.exdeorum.recipe.EFinishedRecipe; import thedarkcolour.exdeorum.registry.ERecipeSerializers; @@ -13,14 +31,14 @@ public class FinishedBarrelMixingRecipe implements EFinishedRecipe { private final ResourceLocation id; private final Ingredient ingredient; - private final FluidType fluidType; + private final Fluid fluid; private final int fluidAmount; private final Item result; - public FinishedBarrelMixingRecipe(ResourceLocation id, Ingredient ingredient, FluidType fluidType, int fluidAmount, Item result) { + public FinishedBarrelMixingRecipe(ResourceLocation id, Ingredient ingredient, Fluid fluid, int fluidAmount, Item result) { this.id = id; this.ingredient = ingredient; - this.fluidType = fluidType; + this.fluid = fluid; this.fluidAmount = fluidAmount; this.result = result; } @@ -28,7 +46,7 @@ public FinishedBarrelMixingRecipe(ResourceLocation id, Ingredient ingredient, Fl @Override public void serializeRecipeData(JsonObject json) { json.add("ingredient", this.ingredient.toJson()); - json.addProperty("fluid_type", ForgeRegistries.FLUID_TYPES.get().getKey(this.fluidType).toString()); + json.addProperty("fluid", ForgeRegistries.FLUIDS.getKey(this.fluid).toString()); json.addProperty("fluid_amount", this.fluidAmount); json.addProperty("result", ForgeRegistries.ITEMS.getKey(this.result).toString()); } diff --git a/src/main/java/thedarkcolour/exdeorum/recipe/crucible/CrucibleRecipe.java b/src/main/java/thedarkcolour/exdeorum/recipe/crucible/CrucibleRecipe.java index f5b082a7..26045f7e 100644 --- a/src/main/java/thedarkcolour/exdeorum/recipe/crucible/CrucibleRecipe.java +++ b/src/main/java/thedarkcolour/exdeorum/recipe/crucible/CrucibleRecipe.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.recipe.crucible; import com.google.gson.JsonObject; diff --git a/src/main/java/thedarkcolour/exdeorum/recipe/crucible/FinishedCrucibleRecipe.java b/src/main/java/thedarkcolour/exdeorum/recipe/crucible/FinishedCrucibleRecipe.java index b09b2178..f8a0204f 100644 --- a/src/main/java/thedarkcolour/exdeorum/recipe/crucible/FinishedCrucibleRecipe.java +++ b/src/main/java/thedarkcolour/exdeorum/recipe/crucible/FinishedCrucibleRecipe.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.recipe.crucible; import com.google.gson.JsonObject; diff --git a/src/main/java/thedarkcolour/exdeorum/recipe/hammer/FinishedHammerRecipe.java b/src/main/java/thedarkcolour/exdeorum/recipe/hammer/FinishedHammerRecipe.java index 3bdb01fb..80ef84c5 100644 --- a/src/main/java/thedarkcolour/exdeorum/recipe/hammer/FinishedHammerRecipe.java +++ b/src/main/java/thedarkcolour/exdeorum/recipe/hammer/FinishedHammerRecipe.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.recipe.hammer; import com.google.gson.JsonObject; diff --git a/src/main/java/thedarkcolour/exdeorum/recipe/hammer/HammerRecipe.java b/src/main/java/thedarkcolour/exdeorum/recipe/hammer/HammerRecipe.java index 1bdbfe61..e67196a2 100644 --- a/src/main/java/thedarkcolour/exdeorum/recipe/hammer/HammerRecipe.java +++ b/src/main/java/thedarkcolour/exdeorum/recipe/hammer/HammerRecipe.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.recipe.hammer; import com.google.gson.JsonObject; diff --git a/src/main/java/thedarkcolour/exdeorum/recipe/sieve/FinishedSieveRecipe.java b/src/main/java/thedarkcolour/exdeorum/recipe/sieve/FinishedSieveRecipe.java index 0ba7772e..6bbe1c6d 100644 --- a/src/main/java/thedarkcolour/exdeorum/recipe/sieve/FinishedSieveRecipe.java +++ b/src/main/java/thedarkcolour/exdeorum/recipe/sieve/FinishedSieveRecipe.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.recipe.sieve; import com.google.gson.JsonObject; diff --git a/src/main/java/thedarkcolour/exdeorum/recipe/sieve/SieveRecipe.java b/src/main/java/thedarkcolour/exdeorum/recipe/sieve/SieveRecipe.java index c619236e..403612eb 100644 --- a/src/main/java/thedarkcolour/exdeorum/recipe/sieve/SieveRecipe.java +++ b/src/main/java/thedarkcolour/exdeorum/recipe/sieve/SieveRecipe.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.recipe.sieve; import com.google.gson.JsonObject; diff --git a/src/main/java/thedarkcolour/exdeorum/registry/EBlockEntities.java b/src/main/java/thedarkcolour/exdeorum/registry/EBlockEntities.java index c7db9764..74f49407 100644 --- a/src/main/java/thedarkcolour/exdeorum/registry/EBlockEntities.java +++ b/src/main/java/thedarkcolour/exdeorum/registry/EBlockEntities.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.registry; import net.minecraft.world.level.block.entity.BlockEntityType; diff --git a/src/main/java/thedarkcolour/exdeorum/registry/EBlocks.java b/src/main/java/thedarkcolour/exdeorum/registry/EBlocks.java index d12f5271..6c8fedbe 100644 --- a/src/main/java/thedarkcolour/exdeorum/registry/EBlocks.java +++ b/src/main/java/thedarkcolour/exdeorum/registry/EBlocks.java @@ -1,5 +1,24 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.registry; +import net.minecraft.world.item.DyeColor; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.LiquidBlock; @@ -10,6 +29,7 @@ import net.minecraftforge.registries.RegistryObject; import thedarkcolour.exdeorum.ExDeorum; import thedarkcolour.exdeorum.block.BarrelBlock; +import thedarkcolour.exdeorum.block.EndCakeBlock; import thedarkcolour.exdeorum.block.InfestedLeavesBlock; import thedarkcolour.exdeorum.block.LavaCrucibleBlock; import thedarkcolour.exdeorum.block.SieveBlock; @@ -23,23 +43,25 @@ public class EBlocks { public static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, ExDeorum.ID); // Materials - public static final RegistryObject DUST = BLOCKS.register("dust", () -> new Block(of().sound(SoundType.WOOL).strength(0.4f))); - public static final RegistryObject CRUSHED_NETHERRACK = BLOCKS.register("crushed_netherrack", () -> new Block(of().sound(SoundType.WOOL).strength(0.6f))); - public static final RegistryObject CRUSHED_END_STONE = BLOCKS.register("crushed_end_stone", () -> new Block(of().sound(SoundType.WOOL).strength(0.6f))); + public static final RegistryObject DUST = BLOCKS.register("dust", () -> new Block(of().sound(SoundType.SAND).strength(0.4f))); + public static final RegistryObject CRUSHED_NETHERRACK = BLOCKS.register("crushed_netherrack", () -> new Block(of().mapColor(MapColor.NETHER).sound(SoundType.SAND).strength(0.6f))); + public static final RegistryObject CRUSHED_END_STONE = BLOCKS.register("crushed_end_stone", () -> new Block(of().mapColor(MapColor.SAND).sound(SoundType.SAND).strength(0.6f))); + public static final RegistryObject CRUSHED_DEEPSLATE = BLOCKS.register("crushed_deepslate", () -> new Block(of().mapColor(DyeColor.GRAY).sound(SoundType.SAND).strength(0.8f))); + public static final RegistryObject CRUSHED_BLACKSTONE = BLOCKS.register("crushed_blackstone", () -> new Block(of().mapColor(DyeColor.BLACK).sound(SoundType.SAND).strength(0.6f))); // Barrels - public static final RegistryObject OAK_BARREL = registerBarrel("oak_barrel", false, false); - public static final RegistryObject SPRUCE_BARREL = registerBarrel("spruce_barrel", false, false); - public static final RegistryObject BIRCH_BARREL = registerBarrel("birch_barrel", false, false); - public static final RegistryObject JUNGLE_BARREL = registerBarrel("jungle_barrel", false, false); - public static final RegistryObject ACACIA_BARREL = registerBarrel("acacia_barrel", false, false); - public static final RegistryObject DARK_OAK_BARREL = registerBarrel("dark_oak_barrel", false, false); - public static final RegistryObject MANGROVE_BARREL = registerBarrel("mangrove_barrel", false, false); - public static final RegistryObject CHERRY_BARREL = registerBarrel("cherry_barrel", false, false); - public static final RegistryObject BAMBOO_BARREL = registerBarrel("bamboo_barrel", false, false); - public static final RegistryObject CRIMSON_BARREL = registerBarrel("crimson_barrel", false, true); - public static final RegistryObject WARPED_BARREL = registerBarrel("warped_barrel", false, true); - public static final RegistryObject STONE_BARREL = registerBarrel("stone_barrel", true, true); + public static final RegistryObject OAK_BARREL = registerBarrel("oak_barrel", false, false, MapColor.WOOD); + public static final RegistryObject SPRUCE_BARREL = registerBarrel("spruce_barrel", false, false, MapColor.PODZOL); + public static final RegistryObject BIRCH_BARREL = registerBarrel("birch_barrel", false, false, MapColor.SAND); + public static final RegistryObject JUNGLE_BARREL = registerBarrel("jungle_barrel", false, false, MapColor.DIRT); + public static final RegistryObject ACACIA_BARREL = registerBarrel("acacia_barrel", false, false, MapColor.COLOR_ORANGE); + public static final RegistryObject DARK_OAK_BARREL = registerBarrel("dark_oak_barrel", false, false, MapColor.COLOR_BROWN); + public static final RegistryObject MANGROVE_BARREL = registerBarrel("mangrove_barrel", false, false, MapColor.COLOR_RED); + public static final RegistryObject CHERRY_BARREL = registerBarrel("cherry_barrel", false, false, MapColor.TERRACOTTA_WHITE); + public static final RegistryObject BAMBOO_BARREL = registerBarrel("bamboo_barrel", false, false, MapColor.COLOR_YELLOW); + public static final RegistryObject CRIMSON_BARREL = registerBarrel("crimson_barrel", false, true, MapColor.CRIMSON_STEM); + public static final RegistryObject WARPED_BARREL = registerBarrel("warped_barrel", false, true, MapColor.WARPED_STEM); + public static final RegistryObject STONE_BARREL = registerBarrel("stone_barrel", true, true, MapColor.STONE); // Sieves public static final RegistryObject OAK_SIEVE = registerSieve("oak_sieve"); @@ -58,7 +80,7 @@ public class EBlocks { public static final RegistryObject PORCELAIN_CRUCIBLE = registerLavaCrucible("porcelain_crucible", false); public static final RegistryObject WARPED_CRUCIBLE = registerLavaCrucible("warped_crucible", true); public static final RegistryObject CRIMSON_CRUCIBLE = registerLavaCrucible("crimson_crucible", true); - public static final RegistryObject UNFIRED_CRUCIBLE = BLOCKS.register("unfired_crucible", () -> new UnfiredCrucibleBlock(of().strength(2.0f))); + public static final RegistryObject UNFIRED_PORCELAIN_CRUCIBLE = BLOCKS.register("unfired_porcelain_crucible", () -> new UnfiredCrucibleBlock(of().strength(2.0f))); // Water Crucibles public static final RegistryObject OAK_CRUCIBLE = registerWaterCrucible("oak_crucible"); @@ -73,17 +95,14 @@ public class EBlocks { // Misc public static final RegistryObject INFESTED_LEAVES = BLOCKS.register("infested_leaves", () -> new InfestedLeavesBlock(copy(Blocks.OAK_LEAVES))); - public static final RegistryObject WITCH_WATER = BLOCKS.register("witch_water", () -> new LiquidBlock(EFluids.WITCH_WATER_STILL, copy(Blocks.WATER).mapColor(MapColor.COLOR_PURPLE))); + public static final RegistryObject WITCH_WATER = BLOCKS.register("witch_water", () -> new LiquidBlock(EFluids.WITCH_WATER, copy(Blocks.WATER).mapColor(MapColor.COLOR_PURPLE))); + public static final RegistryObject END_CAKE = BLOCKS.register("end_cake", () -> new EndCakeBlock(of().noLootTable().mapColor(MapColor.COLOR_BLACK))); public static RegistryObject registerSieve(String name) { return BLOCKS.register(name, () -> new SieveBlock(of().strength(2.0f).noOcclusion().sound(SoundType.WOOD))); } - //public static RegistryObject registerHeavySieve(String name) { - // return BLOCKS.register(name, () -> new HeavySieveBlock(of(material).strength(2.0f).sound(SoundType.WOOD))); - //} - - public static RegistryObject registerBarrel(String name, boolean stone, boolean fireproof) { + public static RegistryObject registerBarrel(String name, boolean stone, boolean fireproof, MapColor color) { return BLOCKS.register(name, () -> { var props = of().noOcclusion().strength(stone ? 4.0f : 2.0f).sound(stone ? SoundType.STONE : SoundType.WOOD); if (!stone) { @@ -93,6 +112,7 @@ public static RegistryObject registerBarrel(String name, boolean st } else { props.requiresCorrectToolForDrops(); } + props.mapColor(color); return new BarrelBlock(props); }); } diff --git a/src/main/java/thedarkcolour/exdeorum/registry/EChunkGenerators.java b/src/main/java/thedarkcolour/exdeorum/registry/EChunkGenerators.java index e409381f..1a898ef4 100644 --- a/src/main/java/thedarkcolour/exdeorum/registry/EChunkGenerators.java +++ b/src/main/java/thedarkcolour/exdeorum/registry/EChunkGenerators.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.registry; import com.mojang.serialization.Codec; diff --git a/src/main/java/thedarkcolour/exdeorum/registry/ECreativeTabs.java b/src/main/java/thedarkcolour/exdeorum/registry/ECreativeTabs.java index d77d9c19..e01b5f9a 100644 --- a/src/main/java/thedarkcolour/exdeorum/registry/ECreativeTabs.java +++ b/src/main/java/thedarkcolour/exdeorum/registry/ECreativeTabs.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.registry; import net.minecraft.Util; diff --git a/src/main/java/thedarkcolour/exdeorum/registry/EFluids.java b/src/main/java/thedarkcolour/exdeorum/registry/EFluids.java index 1e6e7de1..8577fd18 100644 --- a/src/main/java/thedarkcolour/exdeorum/registry/EFluids.java +++ b/src/main/java/thedarkcolour/exdeorum/registry/EFluids.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.registry; import net.minecraft.world.level.material.Fluid; @@ -15,6 +33,6 @@ public class EFluids { public static final RegistryObject WITCH_WATER_TYPE = FLUID_TYPES.register("witch_water", WitchWaterFluid::new); - public static final RegistryObject WITCH_WATER_STILL = FLUIDS.register("witch_water", () -> new ForgeFlowingFluid.Source(WitchWaterFluid.properties())); + public static final RegistryObject WITCH_WATER = FLUIDS.register("witch_water", () -> new ForgeFlowingFluid.Source(WitchWaterFluid.properties())); public static final RegistryObject WITCH_WATER_FLOWING = FLUIDS.register("flowing_witch_water", () -> new ForgeFlowingFluid.Flowing(WitchWaterFluid.properties())); } diff --git a/src/main/java/thedarkcolour/exdeorum/registry/EGlobalLootModifiers.java b/src/main/java/thedarkcolour/exdeorum/registry/EGlobalLootModifiers.java index 2b1c3154..c302e512 100644 --- a/src/main/java/thedarkcolour/exdeorum/registry/EGlobalLootModifiers.java +++ b/src/main/java/thedarkcolour/exdeorum/registry/EGlobalLootModifiers.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.registry; import com.mojang.serialization.Codec; diff --git a/src/main/java/thedarkcolour/exdeorum/registry/EItems.java b/src/main/java/thedarkcolour/exdeorum/registry/EItems.java index 3a778e26..dd581cc0 100644 --- a/src/main/java/thedarkcolour/exdeorum/registry/EItems.java +++ b/src/main/java/thedarkcolour/exdeorum/registry/EItems.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.registry; import net.minecraft.world.food.FoodProperties; @@ -7,35 +25,54 @@ import net.minecraft.world.item.Items; import net.minecraft.world.item.Tiers; import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.material.Fluids; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.RegistryObject; import thedarkcolour.exdeorum.ExDeorum; +import thedarkcolour.exdeorum.item.CookedSilkWormItem; import thedarkcolour.exdeorum.item.CrookItem; +import thedarkcolour.exdeorum.item.GrassSpreaderItem; import thedarkcolour.exdeorum.item.HammerItem; import thedarkcolour.exdeorum.item.MeshItem; -import thedarkcolour.exdeorum.item.PorcelainBucketItem; +import thedarkcolour.exdeorum.item.NyliumSpreaderItem; +import thedarkcolour.exdeorum.item.PorcelainBucket; +import thedarkcolour.exdeorum.item.PorcelainMilkBucket; +import thedarkcolour.exdeorum.item.SculkCoreItem; import thedarkcolour.exdeorum.item.SilkWormItem; +import thedarkcolour.exdeorum.item.WateringCanItem; +import thedarkcolour.exdeorum.item.WideWateringCanItem; import thedarkcolour.exdeorum.item.WitchWaterBucketItem; +import java.util.List; + public class EItems { public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, ExDeorum.ID); // Silk Worm public static final RegistryObject SILK_WORM = ITEMS.register("silk_worm", () -> new SilkWormItem(props())); - public static final RegistryObject COOKED_SILK_WORM = ITEMS.register("cooked_silk_worm", () -> new Item(props().food(new FoodProperties.Builder().nutrition(2).saturationMod(0.6f).build()))); + public static final RegistryObject COOKED_SILK_WORM = ITEMS.register("cooked_silk_worm", () -> new CookedSilkWormItem(props().food(new FoodProperties.Builder().nutrition(2).saturationMod(0.6f).build()))); // Crooks - public static final RegistryObject CROOK = ITEMS.register("crook", () -> new CrookItem(props().durability(128))); - public static final RegistryObject BONE_CROOK = ITEMS.register("bone_crook", () -> new CrookItem(props().durability(312))); + public static final RegistryObject CROOK = ITEMS.register("crook", () -> new CrookItem(props().durability(128), 2.0f)); + public static final RegistryObject BONE_CROOK = ITEMS.register("bone_crook", () -> new CrookItem(props().durability(312), 4.0f)); + + // Watering cans + public static final RegistryObject WOODEN_WATERING_CAN = ITEMS.register("wooden_watering_can", () -> new WateringCanItem(300, props().stacksTo(1))); + public static final RegistryObject STONE_WATERING_CAN = ITEMS.register("stone_watering_can", () -> new WateringCanItem(1000, props().stacksTo(1))); + public static final RegistryObject IRON_WATERING_CAN = ITEMS.register("iron_watering_can", () -> new WateringCanItem(2000, props().stacksTo(1))); + public static final RegistryObject GOLDEN_WATERING_CAN = ITEMS.register("golden_watering_can", () -> new WateringCanItem(4000, props().stacksTo(1))); + public static final RegistryObject DIAMOND_WATERING_CAN = ITEMS.register("diamond_watering_can", () -> new WideWateringCanItem(false, props().stacksTo(1))); + public static final RegistryObject NETHERITE_WATERING_CAN = ITEMS.register("netherite_watering_can", () -> new WideWateringCanItem(true, props().stacksTo(1))); // Sieve Meshes - public static final RegistryObject STRING_MESH = ITEMS.register("string_mesh", () -> new MeshItem(props().stacksTo(1))); - public static final RegistryObject FLINT_MESH = ITEMS.register("flint_mesh", () -> new MeshItem(props().stacksTo(1))); - public static final RegistryObject IRON_MESH = ITEMS.register("iron_mesh", () -> new MeshItem(props().stacksTo(1))); - public static final RegistryObject GOLDEN_MESH = ITEMS.register("golden_mesh", () -> new MeshItem(props().stacksTo(1))); - public static final RegistryObject DIAMOND_MESH = ITEMS.register("diamond_mesh", () -> new MeshItem(props().stacksTo(1))); - public static final RegistryObject NETHERITE_MESH = ITEMS.register("netherite_mesh", () -> new MeshItem(props().stacksTo(1))); + public static final RegistryObject STRING_MESH = ITEMS.register("string_mesh", () -> new MeshItem(props().stacksTo(16))); + public static final RegistryObject FLINT_MESH = ITEMS.register("flint_mesh", () -> new MeshItem(props().stacksTo(16))); + public static final RegistryObject IRON_MESH = ITEMS.register("iron_mesh", () -> new MeshItem(props().stacksTo(16))); + public static final RegistryObject GOLDEN_MESH = ITEMS.register("golden_mesh", () -> new MeshItem(props().stacksTo(16))); + public static final RegistryObject DIAMOND_MESH = ITEMS.register("diamond_mesh", () -> new MeshItem(props().stacksTo(16))); + public static final RegistryObject NETHERITE_MESH = ITEMS.register("netherite_mesh", () -> new MeshItem(props().stacksTo(16))); // Hammers public static final RegistryObject WOODEN_HAMMER = ITEMS.register("wooden_hammer", () -> new HammerItem(Tiers.WOOD, props())); @@ -57,10 +94,25 @@ public class EItems { public static final RegistryObject ANDESITE_PEBBLE = registerSimpleItem("andesite_pebble"); public static final RegistryObject DEEPSLATE_PEBBLE = registerSimpleItem("deepslate_pebble"); public static final RegistryObject TUFF_PEBBLE = registerSimpleItem("tuff_pebble"); + public static final RegistryObject CALCITE_PEBBLE = registerSimpleItem("calcite_pebble"); + public static final RegistryObject BLACKSTONE_PEBBLE = registerSimpleItem("blackstone_pebble"); + public static final RegistryObject BASALT_PEBBLE = registerSimpleItem("basalt_pebble"); // Misc - public static final RegistryObject PORCELAIN_CLAY = registerSimpleItem("porcelain_clay"); - public static final RegistryObject PORCELAIN_BUCKET = ITEMS.register("porcelain_bucket", () -> new PorcelainBucketItem(props().stacksTo(1))); + public static final RegistryObject PORCELAIN_CLAY_BALL = registerSimpleItem("porcelain_clay_ball"); + public static final RegistryObject GRASS_SEEDS = ITEMS.register("grass_seeds", () -> new GrassSpreaderItem(props(), Blocks.GRASS_BLOCK::defaultBlockState)); + public static final RegistryObject MYCELIUM_SPORES = ITEMS.register("mycelium_spores", () -> new GrassSpreaderItem(props(), Blocks.MYCELIUM::defaultBlockState)); + public static final RegistryObject WARPED_NYLIUM_SPORES = ITEMS.register("warped_nylium_spores", () -> new NyliumSpreaderItem(props(), Blocks.WARPED_NYLIUM::defaultBlockState)); + public static final RegistryObject CRIMSON_NYLIUM_SPORES = ITEMS.register("crimson_nylium_spores", () -> new NyliumSpreaderItem(props(), Blocks.CRIMSON_NYLIUM::defaultBlockState)); + public static final RegistryObject SCULK_CORE = ITEMS.register("sculk_core", () -> new SculkCoreItem(props().stacksTo(1))); + + // Buckets + public static final RegistryObject UNFIRED_PORCELAIN_BUCKET = registerSimpleItem("unfired_porcelain_bucket"); + public static final RegistryObject PORCELAIN_BUCKET = ITEMS.register("porcelain_bucket", () -> new PorcelainBucket(() -> Fluids.EMPTY, props().stacksTo(16))); + public static final RegistryObject PORCELAIN_WATER_BUCKET = ITEMS.register("porcelain_water_bucket", () -> new PorcelainBucket(() -> Fluids.WATER, props().craftRemainder(PORCELAIN_BUCKET.get()).stacksTo(1))); + public static final RegistryObject PORCELAIN_LAVA_BUCKET = ITEMS.register("porcelain_lava_bucket", () -> new PorcelainBucket(() -> Fluids.LAVA, props().stacksTo(1))); + public static final RegistryObject PORCELAIN_MILK_BUCKET = ITEMS.register("porcelain_milk_bucket", () -> new PorcelainMilkBucket(props().craftRemainder(PORCELAIN_BUCKET.get()).stacksTo(1))); + public static final RegistryObject PORCELAIN_WITCH_WATER_BUCKET = ITEMS.register("porcelain_witch_water_bucket", () -> new PorcelainBucket(EFluids.WITCH_WATER, props().craftRemainder(PORCELAIN_BUCKET.get()).stacksTo(1))); // Fluids public static final RegistryObject WITCH_WATER_BUCKET = ITEMS.register("witch_water_bucket", () -> new WitchWaterBucketItem(props().craftRemainder(Items.BUCKET).stacksTo(1))); @@ -80,53 +132,57 @@ public static RegistryObject registerItemBlock(RegistryObject DUST; - public static final RegistryObject CRUSHED_NETHERRACK; - public static final RegistryObject CRUSHED_END_STONE; + public static final RegistryObject DUST = registerItemBlock(EBlocks.DUST); + public static final RegistryObject CRUSHED_NETHERRACK = registerItemBlock(EBlocks.CRUSHED_NETHERRACK); + public static final RegistryObject CRUSHED_END_STONE = registerItemBlock(EBlocks.CRUSHED_END_STONE); + public static final RegistryObject CRUSHED_DEEPSLATE = registerItemBlock(EBlocks.CRUSHED_DEEPSLATE); + public static final RegistryObject CRUSHED_BLACKSTONE = registerItemBlock(EBlocks.CRUSHED_BLACKSTONE); // Barrels - public static final RegistryObject OAK_BARREL; - public static final RegistryObject SPRUCE_BARREL; - public static final RegistryObject BIRCH_BARREL; - public static final RegistryObject JUNGLE_BARREL; - public static final RegistryObject ACACIA_BARREL; - public static final RegistryObject DARK_OAK_BARREL; - public static final RegistryObject MANGROVE_BARREL; - public static final RegistryObject CHERRY_BARREL; - public static final RegistryObject BAMBOO_BARREL; - public static final RegistryObject CRIMSON_BARREL; - public static final RegistryObject WARPED_BARREL; - public static final RegistryObject STONE_BARREL; + public static final RegistryObject OAK_BARREL = registerItemBlock(EBlocks.OAK_BARREL); + public static final RegistryObject SPRUCE_BARREL = registerItemBlock(EBlocks.SPRUCE_BARREL); + public static final RegistryObject BIRCH_BARREL = registerItemBlock(EBlocks.BIRCH_BARREL); + public static final RegistryObject JUNGLE_BARREL = registerItemBlock(EBlocks.JUNGLE_BARREL); + public static final RegistryObject ACACIA_BARREL = registerItemBlock(EBlocks.ACACIA_BARREL); + public static final RegistryObject DARK_OAK_BARREL = registerItemBlock(EBlocks.DARK_OAK_BARREL); + public static final RegistryObject MANGROVE_BARREL = registerItemBlock(EBlocks.MANGROVE_BARREL); + public static final RegistryObject CHERRY_BARREL = registerItemBlock(EBlocks.CHERRY_BARREL); + public static final RegistryObject BAMBOO_BARREL = registerItemBlock(EBlocks.BAMBOO_BARREL); + public static final RegistryObject CRIMSON_BARREL = registerItemBlock(EBlocks.CRIMSON_BARREL); + public static final RegistryObject WARPED_BARREL = registerItemBlock(EBlocks.WARPED_BARREL); + public static final RegistryObject STONE_BARREL = registerItemBlock(EBlocks.STONE_BARREL); // Sieves - public static final RegistryObject OAK_SIEVE; - public static final RegistryObject SPRUCE_SIEVE; - public static final RegistryObject BIRCH_SIEVE; - public static final RegistryObject JUNGLE_SIEVE; - public static final RegistryObject ACACIA_SIEVE; - public static final RegistryObject DARK_OAK_SIEVE; - public static final RegistryObject MANGROVE_SIEVE; - public static final RegistryObject CHERRY_SIEVE; - public static final RegistryObject BAMBOO_SIEVE; - public static final RegistryObject CRIMSON_SIEVE; - public static final RegistryObject WARPED_SIEVE; + public static final RegistryObject OAK_SIEVE = registerItemBlock(EBlocks.OAK_SIEVE); + public static final RegistryObject SPRUCE_SIEVE = registerItemBlock(EBlocks.SPRUCE_SIEVE); + public static final RegistryObject BIRCH_SIEVE = registerItemBlock(EBlocks.BIRCH_SIEVE); + public static final RegistryObject JUNGLE_SIEVE = registerItemBlock(EBlocks.JUNGLE_SIEVE); + public static final RegistryObject ACACIA_SIEVE = registerItemBlock(EBlocks.ACACIA_SIEVE); + public static final RegistryObject DARK_OAK_SIEVE = registerItemBlock(EBlocks.DARK_OAK_SIEVE); + public static final RegistryObject MANGROVE_SIEVE = registerItemBlock(EBlocks.MANGROVE_SIEVE); + public static final RegistryObject CHERRY_SIEVE = registerItemBlock(EBlocks.CHERRY_SIEVE); + public static final RegistryObject BAMBOO_SIEVE = registerItemBlock(EBlocks.BAMBOO_SIEVE); + public static final RegistryObject CRIMSON_SIEVE = registerItemBlock(EBlocks.CRIMSON_SIEVE); + public static final RegistryObject WARPED_SIEVE = registerItemBlock(EBlocks.WARPED_SIEVE); // Lava Crucibles - public static final RegistryObject PORCELAIN_CRUCIBLE; - public static final RegistryObject WARPED_CRUCIBLE; - public static final RegistryObject CRIMSON_CRUCIBLE; - public static final RegistryObject UNFIRED_CRUCIBLE; + public static final RegistryObject PORCELAIN_CRUCIBLE = registerItemBlock(EBlocks.PORCELAIN_CRUCIBLE); + public static final RegistryObject WARPED_CRUCIBLE = registerItemBlock(EBlocks.WARPED_CRUCIBLE); + public static final RegistryObject CRIMSON_CRUCIBLE = registerItemBlock(EBlocks.CRIMSON_CRUCIBLE); + public static final RegistryObject UNFIRED_PORCELAIN_CRUCIBLE = registerItemBlock(EBlocks.UNFIRED_PORCELAIN_CRUCIBLE); // Water Crucibles - public static final RegistryObject OAK_CRUCIBLE; - public static final RegistryObject SPRUCE_CRUCIBLE; - public static final RegistryObject BIRCH_CRUCIBLE; - public static final RegistryObject JUNGLE_CRUCIBLE; - public static final RegistryObject ACACIA_CRUCIBLE; - public static final RegistryObject DARK_OAK_CRUCIBLE; - public static final RegistryObject MANGROVE_CRUCIBLE; - public static final RegistryObject CHERRY_CRUCIBLE; - public static final RegistryObject BAMBOO_CRUCIBLE; + public static final RegistryObject OAK_CRUCIBLE = registerItemBlock(EBlocks.OAK_CRUCIBLE); + public static final RegistryObject SPRUCE_CRUCIBLE = registerItemBlock(EBlocks.SPRUCE_CRUCIBLE); + public static final RegistryObject BIRCH_CRUCIBLE = registerItemBlock(EBlocks.BIRCH_CRUCIBLE); + public static final RegistryObject JUNGLE_CRUCIBLE = registerItemBlock(EBlocks.JUNGLE_CRUCIBLE); + public static final RegistryObject ACACIA_CRUCIBLE = registerItemBlock(EBlocks.ACACIA_CRUCIBLE); + public static final RegistryObject DARK_OAK_CRUCIBLE = registerItemBlock(EBlocks.DARK_OAK_CRUCIBLE); + public static final RegistryObject MANGROVE_CRUCIBLE = registerItemBlock(EBlocks.MANGROVE_CRUCIBLE); + public static final RegistryObject CHERRY_CRUCIBLE = registerItemBlock(EBlocks.CHERRY_CRUCIBLE); + public static final RegistryObject BAMBOO_CRUCIBLE = registerItemBlock(EBlocks.BAMBOO_CRUCIBLE); + + public static final RegistryObject END_CAKE = registerItemBlock(EBlocks.END_CAKE); public static void addItemsToMainTab(CreativeModeTab.Output output) { output.accept(OAK_BARREL.get()); @@ -155,7 +211,7 @@ public static void addItemsToMainTab(CreativeModeTab.Output output) { output.accept(PORCELAIN_CRUCIBLE.get()); output.accept(WARPED_CRUCIBLE.get()); output.accept(CRIMSON_CRUCIBLE.get()); - output.accept(UNFIRED_CRUCIBLE.get()); + output.accept(UNFIRED_PORCELAIN_CRUCIBLE.get()); output.accept(OAK_CRUCIBLE.get()); output.accept(SPRUCE_CRUCIBLE.get()); output.accept(BIRCH_CRUCIBLE.get()); @@ -168,11 +224,20 @@ public static void addItemsToMainTab(CreativeModeTab.Output output) { output.accept(DUST.get()); output.accept(CRUSHED_NETHERRACK.get()); output.accept(CRUSHED_END_STONE.get()); + output.accept(CRUSHED_DEEPSLATE.get()); + output.accept(CRUSHED_BLACKSTONE.get()); + output.accept(END_CAKE.get()); output.accept(SILK_WORM.get()); output.accept(COOKED_SILK_WORM.get()); output.accept(CROOK.get()); output.accept(BONE_CROOK.get()); + var wateringCans = List.of(WOODEN_WATERING_CAN, STONE_WATERING_CAN, IRON_WATERING_CAN, GOLDEN_WATERING_CAN, DIAMOND_WATERING_CAN, NETHERITE_WATERING_CAN); + for (var wateringCan : wateringCans) { + var full = WateringCanItem.getFull(wateringCan); + output.accept(wateringCan.get()); + output.accept(full); + } output.accept(STRING_MESH.get()); output.accept(FLINT_MESH.get()); output.accept(IRON_MESH.get()); @@ -192,60 +257,23 @@ public static void addItemsToMainTab(CreativeModeTab.Output output) { output.accept(DIORITE_PEBBLE.get()); output.accept(GRANITE_PEBBLE.get()); output.accept(ANDESITE_PEBBLE.get()); - output.accept(TUFF_PEBBLE.get()); output.accept(DEEPSLATE_PEBBLE.get()); - output.accept(PORCELAIN_CLAY.get()); - output.accept(PORCELAIN_BUCKET.get()); + output.accept(TUFF_PEBBLE.get()); + output.accept(CALCITE_PEBBLE.get()); + output.accept(BLACKSTONE_PEBBLE.get()); + output.accept(BASALT_PEBBLE.get()); + output.accept(GRASS_SEEDS.get()); + output.accept(MYCELIUM_SPORES.get()); + output.accept(WARPED_NYLIUM_SPORES.get()); + output.accept(CRIMSON_NYLIUM_SPORES.get()); + output.accept(SCULK_CORE.get()); output.accept(WITCH_WATER_BUCKET.get()); - } - - static { - DUST = registerItemBlock(EBlocks.DUST); - CRUSHED_NETHERRACK = registerItemBlock(EBlocks.CRUSHED_NETHERRACK); - CRUSHED_END_STONE = registerItemBlock(EBlocks.CRUSHED_END_STONE); - OAK_BARREL = registerItemBlock(EBlocks.OAK_BARREL); - SPRUCE_BARREL = registerItemBlock(EBlocks.SPRUCE_BARREL); - BIRCH_BARREL = registerItemBlock(EBlocks.BIRCH_BARREL); - JUNGLE_BARREL = registerItemBlock(EBlocks.JUNGLE_BARREL); - ACACIA_BARREL = registerItemBlock(EBlocks.ACACIA_BARREL); - DARK_OAK_BARREL = registerItemBlock(EBlocks.DARK_OAK_BARREL); - MANGROVE_BARREL = registerItemBlock(EBlocks.MANGROVE_BARREL); - CHERRY_BARREL = registerItemBlock(EBlocks.CHERRY_BARREL); - BAMBOO_BARREL = registerItemBlock(EBlocks.BAMBOO_BARREL); - CRIMSON_BARREL = registerItemBlock(EBlocks.CRIMSON_BARREL); - WARPED_BARREL = registerItemBlock(EBlocks.WARPED_BARREL); - STONE_BARREL = registerItemBlock(EBlocks.STONE_BARREL); - OAK_SIEVE = registerItemBlock(EBlocks.OAK_SIEVE); - SPRUCE_SIEVE = registerItemBlock(EBlocks.SPRUCE_SIEVE); - BIRCH_SIEVE = registerItemBlock(EBlocks.BIRCH_SIEVE); - JUNGLE_SIEVE = registerItemBlock(EBlocks.JUNGLE_SIEVE); - ACACIA_SIEVE = registerItemBlock(EBlocks.ACACIA_SIEVE); - DARK_OAK_SIEVE = registerItemBlock(EBlocks.DARK_OAK_SIEVE); - MANGROVE_SIEVE = registerItemBlock(EBlocks.MANGROVE_SIEVE); - CHERRY_SIEVE = registerItemBlock(EBlocks.CHERRY_SIEVE); - BAMBOO_SIEVE = registerItemBlock(EBlocks.BAMBOO_SIEVE); - CRIMSON_SIEVE = registerItemBlock(EBlocks.CRIMSON_SIEVE); - WARPED_SIEVE = registerItemBlock(EBlocks.WARPED_SIEVE); - //HEAVY_OAK_SIEVE = registerItemBlock(EBlocks.HEAVY_OAK_SIEVE); - //HEAVY_SPRUCE_SIEVE = registerItemBlock(EBlocks.HEAVY_SPRUCE_SIEVE); - //HEAVY_BIRCH_SIEVE = registerItemBlock(EBlocks.HEAVY_BIRCH_SIEVE); - //HEAVY_JUNGLE_SIEVE = registerItemBlock(EBlocks.HEAVY_JUNGLE_SIEVE); - //HEAVY_ACACIA_SIEVE = registerItemBlock(EBlocks.HEAVY_ACACIA_SIEVE); - //HEAVY_DARK_OAK_SIEVE = registerItemBlock(EBlocks.HEAVY_DARK_OAK_SIEVE); - //HEAVY_CRIMSON_SIEVE = registerItemBlock(EBlocks.HEAVY_CRIMSON_SIEVE); - //HEAVY_WARPED_SIEVE = registerItemBlock(EBlocks.HEAVY_WARPED_SIEVE); - PORCELAIN_CRUCIBLE = registerItemBlock(EBlocks.PORCELAIN_CRUCIBLE); - WARPED_CRUCIBLE = registerItemBlock(EBlocks.WARPED_CRUCIBLE); - CRIMSON_CRUCIBLE = registerItemBlock(EBlocks.CRIMSON_CRUCIBLE); - UNFIRED_CRUCIBLE = registerItemBlock(EBlocks.UNFIRED_CRUCIBLE); - OAK_CRUCIBLE = registerItemBlock(EBlocks.OAK_CRUCIBLE); - SPRUCE_CRUCIBLE = registerItemBlock(EBlocks.SPRUCE_CRUCIBLE); - BIRCH_CRUCIBLE = registerItemBlock(EBlocks.BIRCH_CRUCIBLE); - JUNGLE_CRUCIBLE = registerItemBlock(EBlocks.JUNGLE_CRUCIBLE); - ACACIA_CRUCIBLE = registerItemBlock(EBlocks.ACACIA_CRUCIBLE); - DARK_OAK_CRUCIBLE = registerItemBlock(EBlocks.DARK_OAK_CRUCIBLE); - MANGROVE_CRUCIBLE = registerItemBlock(EBlocks.MANGROVE_CRUCIBLE); - CHERRY_CRUCIBLE = registerItemBlock(EBlocks.CHERRY_CRUCIBLE); - BAMBOO_CRUCIBLE = registerItemBlock(EBlocks.BAMBOO_CRUCIBLE); + output.accept(PORCELAIN_CLAY_BALL.get()); + output.accept(UNFIRED_PORCELAIN_BUCKET.get()); + output.accept(PORCELAIN_BUCKET.get()); + output.accept(PORCELAIN_WATER_BUCKET.get()); + output.accept(PORCELAIN_LAVA_BUCKET.get()); + output.accept(PORCELAIN_MILK_BUCKET.get()); + output.accept(PORCELAIN_WITCH_WATER_BUCKET.get()); } } diff --git a/src/main/java/thedarkcolour/exdeorum/registry/ELootFunctions.java b/src/main/java/thedarkcolour/exdeorum/registry/ELootFunctions.java index b82e5615..3a79232d 100644 --- a/src/main/java/thedarkcolour/exdeorum/registry/ELootFunctions.java +++ b/src/main/java/thedarkcolour/exdeorum/registry/ELootFunctions.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.registry; import net.minecraft.core.registries.Registries; diff --git a/src/main/java/thedarkcolour/exdeorum/registry/ERecipeSerializers.java b/src/main/java/thedarkcolour/exdeorum/registry/ERecipeSerializers.java index 18e63068..3e31c0ac 100644 --- a/src/main/java/thedarkcolour/exdeorum/registry/ERecipeSerializers.java +++ b/src/main/java/thedarkcolour/exdeorum/registry/ERecipeSerializers.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.registry; import net.minecraft.world.item.crafting.RecipeSerializer; diff --git a/src/main/java/thedarkcolour/exdeorum/registry/ERecipeTypes.java b/src/main/java/thedarkcolour/exdeorum/registry/ERecipeTypes.java index 724a1caf..af25f944 100644 --- a/src/main/java/thedarkcolour/exdeorum/registry/ERecipeTypes.java +++ b/src/main/java/thedarkcolour/exdeorum/registry/ERecipeTypes.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.registry; import net.minecraft.core.registries.Registries; diff --git a/src/main/java/thedarkcolour/exdeorum/tag/EItemTags.java b/src/main/java/thedarkcolour/exdeorum/tag/EItemTags.java index 7feae5e3..d11fc344 100644 --- a/src/main/java/thedarkcolour/exdeorum/tag/EItemTags.java +++ b/src/main/java/thedarkcolour/exdeorum/tag/EItemTags.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.tag; import net.minecraft.resources.ResourceLocation; @@ -11,6 +29,7 @@ public class EItemTags { public static final TagKey HAMMERS = tag("hammers"); public static final TagKey SIEVE_MESHES = tag("sieve_meshes"); public static final TagKey PEBBLES = tag("pebbles"); + public static final TagKey END_CAKE_MATERIAL = tag("end_cake_materials"); public static final TagKey WOODEN_BARRELS = tag("wooden_barrels"); public static final TagKey STONE_BARRELS = tag("stone_barrels"); diff --git a/src/main/java/thedarkcolour/exdeorum/tag/EStructureSetTags.java b/src/main/java/thedarkcolour/exdeorum/tag/EStructureSetTags.java index 083a1539..ec795bf5 100644 --- a/src/main/java/thedarkcolour/exdeorum/tag/EStructureSetTags.java +++ b/src/main/java/thedarkcolour/exdeorum/tag/EStructureSetTags.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.tag; import net.minecraft.core.registries.Registries; diff --git a/src/main/java/thedarkcolour/exdeorum/voidworld/VoidChunkGenerator.java b/src/main/java/thedarkcolour/exdeorum/voidworld/VoidChunkGenerator.java index 3b231567..7fa86a57 100644 --- a/src/main/java/thedarkcolour/exdeorum/voidworld/VoidChunkGenerator.java +++ b/src/main/java/thedarkcolour/exdeorum/voidworld/VoidChunkGenerator.java @@ -1,3 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package thedarkcolour.exdeorum.voidworld; import com.mojang.serialization.Codec; diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg index 9ad1316b..337f1e96 100644 --- a/src/main/resources/META-INF/accesstransformer.cfg +++ b/src/main/resources/META-INF/accesstransformer.cfg @@ -15,3 +15,5 @@ public net.minecraft.world.level.storage.loot.providers.number.BinomialDistribut public net.minecraft.world.level.storage.loot.providers.number.BinomialDistributionGenerator (Lnet/minecraft/world/level/storage/loot/providers/number/NumberProvider;Lnet/minecraft/world/level/storage/loot/providers/number/NumberProvider;)V # public net.minecraft.client.multiplayer.ClientLevel f_104563_ # clientLevelData public-f net.minecraft.client.multiplayer.ClientLevel$ClientLevelData f_104832_ # isFlat +public net.minecraft.client.renderer.RenderStateShard f_110152_ # LIGHTMAP +public net.minecraft.client.renderer.RenderStateShard f_110145_ # BLOCK_SHEET_MIPPED diff --git a/src/main/resources/META-INF/coremods.json b/src/main/resources/META-INF/coremods.json new file mode 100644 index 00000000..7da1c31b --- /dev/null +++ b/src/main/resources/META-INF/coremods.json @@ -0,0 +1,3 @@ +{ + "exdeorum": "coremods.js" +} \ No newline at end of file diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index 6a550c55..2174e919 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -1,6 +1,6 @@ modLoader="javafml" loaderVersion="[47,)" -license="All rights reserved" +license="GNU GPLv3" [[mods]] modId="exdeorum" diff --git a/src/main/resources/assets/exdeorum/blockstates/end_cake.json b/src/main/resources/assets/exdeorum/blockstates/end_cake.json new file mode 100644 index 00000000..4d60202d --- /dev/null +++ b/src/main/resources/assets/exdeorum/blockstates/end_cake.json @@ -0,0 +1,25 @@ +{ + "variants": { + "bites=0": { + "model": "exdeorum:block/end_cake" + }, + "bites=1": { + "model": "exdeorum:block/end_cake_slice1" + }, + "bites=2": { + "model": "exdeorum:block/end_cake_slice2" + }, + "bites=3": { + "model": "exdeorum:block/end_cake_slice3" + }, + "bites=4": { + "model": "exdeorum:block/end_cake_slice4" + }, + "bites=5": { + "model": "exdeorum:block/end_cake_slice5" + }, + "bites=6": { + "model": "exdeorum:block/end_cake_slice6" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/exdeorum/blockstates/witch_water.json b/src/main/resources/assets/exdeorum/blockstates/witch_water.json new file mode 100644 index 00000000..dfa2433c --- /dev/null +++ b/src/main/resources/assets/exdeorum/blockstates/witch_water.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "exdeorum:block/witch_water" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/exdeorum/models/block/end_cake.json b/src/main/resources/assets/exdeorum/models/block/end_cake.json new file mode 100644 index 00000000..eba53345 --- /dev/null +++ b/src/main/resources/assets/exdeorum/models/block/end_cake.json @@ -0,0 +1,21 @@ +{ + "textures": { + "particle": "exdeorum:block/end_cake_side", + "bottom": "exdeorum:block/end_cake_bottom", + "top": "exdeorum:block/end_cake_top", + "side": "exdeorum:block/end_cake_side" + }, + "elements": [ + { "from": [ 1, 0, 1 ], + "to": [ 15, 8, 15 ], + "faces": { + "down": { "texture": "#bottom", "cullface": "down" }, + "up": { "texture": "#top" }, + "north": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#side" }, + "east": { "texture": "#side" } + } + } + ] +} diff --git a/src/main/resources/assets/exdeorum/models/block/end_cake_slice1.json b/src/main/resources/assets/exdeorum/models/block/end_cake_slice1.json new file mode 100644 index 00000000..0bc4c8b8 --- /dev/null +++ b/src/main/resources/assets/exdeorum/models/block/end_cake_slice1.json @@ -0,0 +1,22 @@ +{ + "textures": { + "particle": "exdeorum:block/end_cake_side", + "bottom": "exdeorum:block/end_cake_bottom", + "top": "exdeorum:block/end_cake_top", + "side": "exdeorum:block/end_cake_side", + "inside": "exdeorum:block/end_cake_inner" + }, + "elements": [ + { "from": [ 3, 0, 1 ], + "to": [ 15, 8, 15 ], + "faces": { + "down": { "texture": "#bottom", "cullface": "down" }, + "up": { "texture": "#top" }, + "north": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#inside" }, + "east": { "texture": "#side" } + } + } + ] +} diff --git a/src/main/resources/assets/exdeorum/models/block/end_cake_slice2.json b/src/main/resources/assets/exdeorum/models/block/end_cake_slice2.json new file mode 100644 index 00000000..7408a1c2 --- /dev/null +++ b/src/main/resources/assets/exdeorum/models/block/end_cake_slice2.json @@ -0,0 +1,22 @@ +{ + "textures": { + "particle": "exdeorum:block/end_cake_side", + "bottom": "exdeorum:block/end_cake_bottom", + "top": "exdeorum:block/end_cake_top", + "side": "exdeorum:block/end_cake_side", + "inside": "exdeorum:block/end_cake_inner" + }, + "elements": [ + { "from": [ 5, 0, 1 ], + "to": [ 15, 8, 15 ], + "faces": { + "down": { "texture": "#bottom", "cullface": "down" }, + "up": { "texture": "#top" }, + "north": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#inside" }, + "east": { "texture": "#side" } + } + } + ] +} diff --git a/src/main/resources/assets/exdeorum/models/block/end_cake_slice3.json b/src/main/resources/assets/exdeorum/models/block/end_cake_slice3.json new file mode 100644 index 00000000..d2e0a35a --- /dev/null +++ b/src/main/resources/assets/exdeorum/models/block/end_cake_slice3.json @@ -0,0 +1,22 @@ +{ + "textures": { + "particle": "exdeorum:block/end_cake_side", + "bottom": "exdeorum:block/end_cake_bottom", + "top": "exdeorum:block/end_cake_top", + "side": "exdeorum:block/end_cake_side", + "inside": "exdeorum:block/end_cake_inner" + }, + "elements": [ + { "from": [ 7, 0, 1 ], + "to": [ 15, 8, 15 ], + "faces": { + "down": { "texture": "#bottom", "cullface": "down" }, + "up": { "texture": "#top" }, + "north": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#inside" }, + "east": { "texture": "#side" } + } + } + ] +} diff --git a/src/main/resources/assets/exdeorum/models/block/end_cake_slice4.json b/src/main/resources/assets/exdeorum/models/block/end_cake_slice4.json new file mode 100644 index 00000000..9d55146d --- /dev/null +++ b/src/main/resources/assets/exdeorum/models/block/end_cake_slice4.json @@ -0,0 +1,22 @@ +{ + "textures": { + "particle": "exdeorum:block/end_cake_side", + "bottom": "exdeorum:block/end_cake_bottom", + "top": "exdeorum:block/end_cake_top", + "side": "exdeorum:block/end_cake_side", + "inside": "exdeorum:block/end_cake_inner" + }, + "elements": [ + { "from": [ 9, 0, 1 ], + "to": [ 15, 8, 15 ], + "faces": { + "down": { "texture": "#bottom", "cullface": "down" }, + "up": { "texture": "#top" }, + "north": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#inside" }, + "east": { "texture": "#side" } + } + } + ] +} diff --git a/src/main/resources/assets/exdeorum/models/block/end_cake_slice5.json b/src/main/resources/assets/exdeorum/models/block/end_cake_slice5.json new file mode 100644 index 00000000..bd4e191f --- /dev/null +++ b/src/main/resources/assets/exdeorum/models/block/end_cake_slice5.json @@ -0,0 +1,22 @@ +{ + "textures": { + "particle": "exdeorum:block/end_cake_side", + "bottom": "exdeorum:block/end_cake_bottom", + "top": "exdeorum:block/end_cake_top", + "side": "exdeorum:block/end_cake_side", + "inside": "exdeorum:block/end_cake_inner" + }, + "elements": [ + { "from": [ 11, 0, 1 ], + "to": [ 15, 8, 15 ], + "faces": { + "down": { "texture": "#bottom", "cullface": "down" }, + "up": { "texture": "#top" }, + "north": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#inside" }, + "east": { "texture": "#side" } + } + } + ] +} diff --git a/src/main/resources/assets/exdeorum/models/block/end_cake_slice6.json b/src/main/resources/assets/exdeorum/models/block/end_cake_slice6.json new file mode 100644 index 00000000..b86f0daf --- /dev/null +++ b/src/main/resources/assets/exdeorum/models/block/end_cake_slice6.json @@ -0,0 +1,22 @@ +{ + "textures": { + "particle": "exdeorum:block/end_cake_side", + "bottom": "exdeorum:block/end_cake_bottom", + "top": "exdeorum:block/end_cake_top", + "side": "exdeorum:block/end_cake_side", + "inside": "exdeorum:block/end_cake_inner" + }, + "elements": [ + { "from": [ 13, 0, 1 ], + "to": [ 15, 8, 15 ], + "faces": { + "down": { "texture": "#bottom", "cullface": "down" }, + "up": { "texture": "#top" }, + "north": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#inside" }, + "east": { "texture": "#side" } + } + } + ] +} diff --git a/src/main/resources/assets/exdeorum/models/block/infested_leaves.json b/src/main/resources/assets/exdeorum/models/block/infested_leaves.json index 8a9be127..eee314f3 100644 --- a/src/main/resources/assets/exdeorum/models/block/infested_leaves.json +++ b/src/main/resources/assets/exdeorum/models/block/infested_leaves.json @@ -1,5 +1,3 @@ { - "textures": { - "particle": "minecraft:block/oak_leaves" - } + "parent": "minecraft:block/oak_leaves" } \ No newline at end of file diff --git a/src/main/resources/assets/exdeorum/models/block/witch_water.json b/src/main/resources/assets/exdeorum/models/block/witch_water.json new file mode 100644 index 00000000..e11f26bf --- /dev/null +++ b/src/main/resources/assets/exdeorum/models/block/witch_water.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "exdeorum:block/witch_water_still" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/exdeorum/shaders/core/rendertype_tinted_cutout_mipped.fsh b/src/main/resources/assets/exdeorum/shaders/core/rendertype_tinted_cutout_mipped.fsh new file mode 100644 index 00000000..14005cf2 --- /dev/null +++ b/src/main/resources/assets/exdeorum/shaders/core/rendertype_tinted_cutout_mipped.fsh @@ -0,0 +1,39 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec2 texCoord0; +in vec4 normal; +in float progress; + +out vec4 fragColor; + +void main() { + vec4 oldColor = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; + if (oldColor.a < 0.5) { + discard; + } + float avg = oldColor.r * 0.3 + oldColor.g * 0.59 + oldColor.b * 0.11; + + vec4 color; + if (progress == 1.0f) { + color = vec4(avg, avg, avg, progress); + } else { + color = vec4( + mix(oldColor.r, avg, progress), + mix(oldColor.g, avg, progress), + mix(oldColor.b, avg, progress), + oldColor.a + ); + } + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/src/main/resources/assets/exdeorum/shaders/core/rendertype_tinted_cutout_mipped.json b/src/main/resources/assets/exdeorum/shaders/core/rendertype_tinted_cutout_mipped.json new file mode 100644 index 00000000..b88d61fc --- /dev/null +++ b/src/main/resources/assets/exdeorum/shaders/core/rendertype_tinted_cutout_mipped.json @@ -0,0 +1,31 @@ +{ + "blend": { + "func": "add", + "srcrgb": "srcalpha", + "dstrgb": "1-srcalpha" + }, + "vertex": "exdeorum:rendertype_tinted_cutout_mipped", + "fragment": "exdeorum:rendertype_tinted_cutout_mipped", + "attributes": [ + "Position", + "Color", + "UV0", + "UV1", + "UV2", + "Normal" + ], + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ChunkOffset", "type": "float", "count": 3, "values": [ 0.0, 0.0, 0.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/src/main/resources/assets/exdeorum/shaders/core/rendertype_tinted_cutout_mipped.vsh b/src/main/resources/assets/exdeorum/shaders/core/rendertype_tinted_cutout_mipped.vsh new file mode 100644 index 00000000..ad30f4bc --- /dev/null +++ b/src/main/resources/assets/exdeorum/shaders/core/rendertype_tinted_cutout_mipped.vsh @@ -0,0 +1,36 @@ +#version 150 + +#moj_import +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV1; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform vec3 ChunkOffset; +uniform int FogShape; + +out float vertexDistance; +out vec4 vertexColor; +out vec2 texCoord0; +out vec4 normal; +out float progress; + +void main() { + vec3 pos = Position + ChunkOffset; + gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.0); + + vertexDistance = fog_distance(ModelViewMat, pos, FogShape); + vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2); + texCoord0 = UV0; + normal = ProjMat * ModelViewMat * vec4(Normal, 0.0); + + progress = UV1.x / 16000.0; +} diff --git a/src/main/resources/assets/exdeorum/textures/block/crushed_blackstone.png b/src/main/resources/assets/exdeorum/textures/block/crushed_blackstone.png new file mode 100644 index 00000000..3c1c4537 Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/block/crushed_blackstone.png differ diff --git a/src/main/resources/assets/exdeorum/textures/block/crushed_deepslate.png b/src/main/resources/assets/exdeorum/textures/block/crushed_deepslate.png new file mode 100644 index 00000000..70283f65 Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/block/crushed_deepslate.png differ diff --git a/src/main/resources/assets/exdeorum/textures/block/crushed_end_stone.png b/src/main/resources/assets/exdeorum/textures/block/crushed_end_stone.png index 3a6350be..8e1f6f1c 100644 Binary files a/src/main/resources/assets/exdeorum/textures/block/crushed_end_stone.png and b/src/main/resources/assets/exdeorum/textures/block/crushed_end_stone.png differ diff --git a/src/main/resources/assets/exdeorum/textures/block/dust_new.png b/src/main/resources/assets/exdeorum/textures/block/dust_new.png deleted file mode 100644 index 024b0af6..00000000 Binary files a/src/main/resources/assets/exdeorum/textures/block/dust_new.png and /dev/null differ diff --git a/src/main/resources/assets/exdeorum/textures/block/end_cake_bottom.png b/src/main/resources/assets/exdeorum/textures/block/end_cake_bottom.png new file mode 100644 index 00000000..3580e844 Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/block/end_cake_bottom.png differ diff --git a/src/main/resources/assets/exdeorum/textures/block/end_cake_inner.png b/src/main/resources/assets/exdeorum/textures/block/end_cake_inner.png new file mode 100644 index 00000000..e1cb6094 Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/block/end_cake_inner.png differ diff --git a/src/main/resources/assets/exdeorum/textures/block/end_cake_side.png b/src/main/resources/assets/exdeorum/textures/block/end_cake_side.png new file mode 100644 index 00000000..be9f15d9 Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/block/end_cake_side.png differ diff --git a/src/main/resources/assets/exdeorum/textures/block/end_cake_top.pdn b/src/main/resources/assets/exdeorum/textures/block/end_cake_top.pdn new file mode 100644 index 00000000..f9eb4bad Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/block/end_cake_top.pdn differ diff --git a/src/main/resources/assets/exdeorum/textures/block/end_cake_top.png b/src/main/resources/assets/exdeorum/textures/block/end_cake_top.png new file mode 100644 index 00000000..2bba9ebe Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/block/end_cake_top.png differ diff --git a/src/main/resources/assets/exdeorum/textures/block/porcelain_crucible.png b/src/main/resources/assets/exdeorum/textures/block/porcelain_crucible.png index ae4f6558..7d3ddf8b 100644 Binary files a/src/main/resources/assets/exdeorum/textures/block/porcelain_crucible.png and b/src/main/resources/assets/exdeorum/textures/block/porcelain_crucible.png differ diff --git a/src/main/resources/assets/exdeorum/textures/block/unfired_crucible.png b/src/main/resources/assets/exdeorum/textures/block/unfired_crucible.png deleted file mode 100644 index 05ca6923..00000000 Binary files a/src/main/resources/assets/exdeorum/textures/block/unfired_crucible.png and /dev/null differ diff --git a/src/main/resources/assets/exdeorum/textures/block/unfired_porcelain_crucible.png b/src/main/resources/assets/exdeorum/textures/block/unfired_porcelain_crucible.png new file mode 100644 index 00000000..b7aded07 Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/block/unfired_porcelain_crucible.png differ diff --git a/src/main/resources/assets/exdeorum/textures/gui/jei/enr_jei.png b/src/main/resources/assets/exdeorum/textures/gui/jei/enr_jei.png index 1fc93b3d..8ca0ade3 100644 Binary files a/src/main/resources/assets/exdeorum/textures/gui/jei/enr_jei.png and b/src/main/resources/assets/exdeorum/textures/gui/jei/enr_jei.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/basalt_pebble.png b/src/main/resources/assets/exdeorum/textures/item/basalt_pebble.png new file mode 100644 index 00000000..25888d67 Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/basalt_pebble.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/blackstone_pebble.png b/src/main/resources/assets/exdeorum/textures/item/blackstone_pebble.png new file mode 100644 index 00000000..e8f6c63a Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/blackstone_pebble.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/calcite_pebble.png b/src/main/resources/assets/exdeorum/textures/item/calcite_pebble.png new file mode 100644 index 00000000..f04ffa45 Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/calcite_pebble.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/crimson_nylium_spores.png b/src/main/resources/assets/exdeorum/textures/item/crimson_nylium_spores.png new file mode 100644 index 00000000..d52ff9fa Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/crimson_nylium_spores.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/diamond_mesh.png b/src/main/resources/assets/exdeorum/textures/item/diamond_mesh.png new file mode 100644 index 00000000..642b5c38 Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/diamond_mesh.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/diamond_watering_can.png b/src/main/resources/assets/exdeorum/textures/item/diamond_watering_can.png new file mode 100644 index 00000000..1a61a6dc Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/diamond_watering_can.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/flint_mesh.png b/src/main/resources/assets/exdeorum/textures/item/flint_mesh.png new file mode 100644 index 00000000..0a74bb14 Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/flint_mesh.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/golden_mesh.png b/src/main/resources/assets/exdeorum/textures/item/golden_mesh.png new file mode 100644 index 00000000..ba09c6d3 Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/golden_mesh.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/golden_watering_can.png b/src/main/resources/assets/exdeorum/textures/item/golden_watering_can.png new file mode 100644 index 00000000..500faf1f Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/golden_watering_can.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/grass_seeds.png b/src/main/resources/assets/exdeorum/textures/item/grass_seeds.png new file mode 100644 index 00000000..daf26cb4 Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/grass_seeds.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/img.png b/src/main/resources/assets/exdeorum/textures/item/img.png new file mode 100644 index 00000000..48e86a79 Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/img.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/iron_mesh.png b/src/main/resources/assets/exdeorum/textures/item/iron_mesh.png new file mode 100644 index 00000000..34b6494b Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/iron_mesh.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/iron_watering_can.png b/src/main/resources/assets/exdeorum/textures/item/iron_watering_can.png new file mode 100644 index 00000000..ad2bfc76 Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/iron_watering_can.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/mesh/diamond_mesh.png b/src/main/resources/assets/exdeorum/textures/item/mesh/diamond_mesh.png index 73b9e884..c9283fac 100644 Binary files a/src/main/resources/assets/exdeorum/textures/item/mesh/diamond_mesh.png and b/src/main/resources/assets/exdeorum/textures/item/mesh/diamond_mesh.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/mesh/flint_mesh.png b/src/main/resources/assets/exdeorum/textures/item/mesh/flint_mesh.png index 73b9e884..caea4245 100644 Binary files a/src/main/resources/assets/exdeorum/textures/item/mesh/flint_mesh.png and b/src/main/resources/assets/exdeorum/textures/item/mesh/flint_mesh.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/mesh/golden_mesh.png b/src/main/resources/assets/exdeorum/textures/item/mesh/golden_mesh.png index 73b9e884..a348d4bd 100644 Binary files a/src/main/resources/assets/exdeorum/textures/item/mesh/golden_mesh.png and b/src/main/resources/assets/exdeorum/textures/item/mesh/golden_mesh.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/mesh/iron_mesh.png b/src/main/resources/assets/exdeorum/textures/item/mesh/iron_mesh.png index 73b9e884..6c136bd3 100644 Binary files a/src/main/resources/assets/exdeorum/textures/item/mesh/iron_mesh.png and b/src/main/resources/assets/exdeorum/textures/item/mesh/iron_mesh.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/mesh/netherite_mesh.png b/src/main/resources/assets/exdeorum/textures/item/mesh/netherite_mesh.png index 73b9e884..59469b9c 100644 Binary files a/src/main/resources/assets/exdeorum/textures/item/mesh/netherite_mesh.png and b/src/main/resources/assets/exdeorum/textures/item/mesh/netherite_mesh.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/mesh/string_mesh.png b/src/main/resources/assets/exdeorum/textures/item/mesh/string_mesh.png index 73b9e884..a8cb7f17 100644 Binary files a/src/main/resources/assets/exdeorum/textures/item/mesh/string_mesh.png and b/src/main/resources/assets/exdeorum/textures/item/mesh/string_mesh.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/mesh_palette.png b/src/main/resources/assets/exdeorum/textures/item/mesh_palette.png new file mode 100644 index 00000000..c860f030 Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/mesh_palette.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/mycelium_spores.png b/src/main/resources/assets/exdeorum/textures/item/mycelium_spores.png new file mode 100644 index 00000000..4c616a2d Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/mycelium_spores.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/netherite_mesh.png b/src/main/resources/assets/exdeorum/textures/item/netherite_mesh.png new file mode 100644 index 00000000..6ff7f96d Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/netherite_mesh.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/netherite_watering_can.png b/src/main/resources/assets/exdeorum/textures/item/netherite_watering_can.png new file mode 100644 index 00000000..40362451 Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/netherite_watering_can.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/porcelain_bucket.pdn b/src/main/resources/assets/exdeorum/textures/item/porcelain_bucket.pdn new file mode 100644 index 00000000..e66612ef Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/porcelain_bucket.pdn differ diff --git a/src/main/resources/assets/exdeorum/textures/item/porcelain_bucket.png b/src/main/resources/assets/exdeorum/textures/item/porcelain_bucket.png new file mode 100644 index 00000000..99bc1bd7 Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/porcelain_bucket.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/porcelain_clay_ball.png b/src/main/resources/assets/exdeorum/textures/item/porcelain_clay_ball.png new file mode 100644 index 00000000..3f42ac05 Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/porcelain_clay_ball.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/porcelain_lava_bucket.png b/src/main/resources/assets/exdeorum/textures/item/porcelain_lava_bucket.png new file mode 100644 index 00000000..321f2d3c Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/porcelain_lava_bucket.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/porcelain_milk_bucket.png b/src/main/resources/assets/exdeorum/textures/item/porcelain_milk_bucket.png new file mode 100644 index 00000000..e5c632d2 Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/porcelain_milk_bucket.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/porcelain_water_bucket.png b/src/main/resources/assets/exdeorum/textures/item/porcelain_water_bucket.png new file mode 100644 index 00000000..4a057fc3 Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/porcelain_water_bucket.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/porcelain_witch_water_bucket.png b/src/main/resources/assets/exdeorum/textures/item/porcelain_witch_water_bucket.png new file mode 100644 index 00000000..2d9eb315 Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/porcelain_witch_water_bucket.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/sculk_core.png b/src/main/resources/assets/exdeorum/textures/item/sculk_core.png new file mode 100644 index 00000000..6c279c99 Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/sculk_core.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/sculk_core.png.mcmeta b/src/main/resources/assets/exdeorum/textures/item/sculk_core.png.mcmeta new file mode 100644 index 00000000..5d69c4b7 --- /dev/null +++ b/src/main/resources/assets/exdeorum/textures/item/sculk_core.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "frametime": 20, + "interpolate": true + } +} diff --git a/src/main/resources/assets/exdeorum/textures/item/stone_watering_can.png b/src/main/resources/assets/exdeorum/textures/item/stone_watering_can.png new file mode 100644 index 00000000..c445e83f Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/stone_watering_can.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/tuff_pebble.png b/src/main/resources/assets/exdeorum/textures/item/tuff_pebble.png new file mode 100644 index 00000000..2f26429e Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/tuff_pebble.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/unfired_porcelain_bucket.png b/src/main/resources/assets/exdeorum/textures/item/unfired_porcelain_bucket.png new file mode 100644 index 00000000..25f9db25 Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/unfired_porcelain_bucket.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/warped_nylium_spores.png b/src/main/resources/assets/exdeorum/textures/item/warped_nylium_spores.png new file mode 100644 index 00000000..870edabb Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/warped_nylium_spores.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/watering_can_shape.png b/src/main/resources/assets/exdeorum/textures/item/watering_can_shape.png new file mode 100644 index 00000000..ad2bfc76 Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/watering_can_shape.png differ diff --git a/src/main/resources/assets/exdeorum/textures/item/wooden_watering_can.png b/src/main/resources/assets/exdeorum/textures/item/wooden_watering_can.png new file mode 100644 index 00000000..33a699eb Binary files /dev/null and b/src/main/resources/assets/exdeorum/textures/item/wooden_watering_can.png differ diff --git a/src/main/resources/coremods.js b/src/main/resources/coremods.js new file mode 100644 index 00000000..3e463248 --- /dev/null +++ b/src/main/resources/coremods.js @@ -0,0 +1,43 @@ +// Type definitions + +var Opcodes = Java.type('org.objectweb.asm.Opcodes'); +var InsnList = Java.type('org.objectweb.asm.tree.InsnList'); +var VarInsnNode = Java.type('org.objectweb.asm.tree.VarInsnNode'); +var MethodInsnNode = Java.type('org.objectweb.asm.tree.MethodInsnNode'); +var LdcInsnNode = Java.type('org.objectweb.asm.tree.LdcInsnNode'); +var TypeInsnNode = Java.type('org.objectweb.asm.tree.TypeInsnNode'); + +var ASMAPI = Java.type('net.minecraftforge.coremod.api.ASMAPI'); + +function initializeCoreMod() { + return { + 'EndCityPatch': { + 'target': { + 'type': 'METHOD', + 'class': 'net.minecraft.world.level.levelgen.structure.structures.EndCityStructure', + 'methodName': 'm_214086_', + 'methodDesc': '(Lnet/minecraft/world/level/levelgen/structure/Structure$GenerationContext;)Ljava/util/Optional;' + }, + 'transformer': function (method) { + var insnList = method.instructions; + + for (var i = 0; i < insnList.size(); ++i) { + var insn = insnList.get(i); + + // patch before ASTORE 3 + if (insn.getOpcode() == Opcodes.ASTORE && insn.var == 3) { + insnList.insertBefore(insn, ASMAPI.listOf( + new VarInsnNode(Opcodes.ALOAD, 1), + new MethodInsnNode(Opcodes.INVOKESTATIC, 'thedarkcolour/exdeorum/asm/ASMHooks', 'adjustPos', '(Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/levelgen/structure/Structure$GenerationContext;)Lnet/minecraft/core/BlockPos;', false) + )); + ASMAPI.log('INFO', 'Successfully patched End City generation for void worlds'); + return method; + } + } + + ASMAPI.log('ERROR', 'Unable to patch End City generation, void worlds will have no end cities!!!'); + return method; + } + } + }; +} \ No newline at end of file diff --git a/src/main/resources/data/exdeorum/worldgen/world_preset/void_world.json b/src/main/resources/data/exdeorum/worldgen/world_preset/void_world.json index 7fdf81a1..8daae6e0 100644 --- a/src/main/resources/data/exdeorum/worldgen/world_preset/void_world.json +++ b/src/main/resources/data/exdeorum/worldgen/world_preset/void_world.json @@ -20,7 +20,7 @@ "type": "minecraft:the_end" }, "settings": "minecraft:end", - "allowed_structure_sets": "exdeorum:the_nether_void_structure_sets" + "allowed_structure_sets": "exdeorum:the_end_void_structure_sets" } }, "minecraft:the_nether": { @@ -32,7 +32,7 @@ "preset": "minecraft:nether" }, "settings": "minecraft:nether", - "allowed_structure_sets": "exdeorum:the_end_void_structure_sets" + "allowed_structure_sets": "exdeorum:the_nether_void_structure_sets" } } } diff --git a/src/main/resources/gpl-3.0.txt b/src/main/resources/gpl-3.0.txt new file mode 100644 index 00000000..f288702d --- /dev/null +++ b/src/main/resources/gpl-3.0.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/src/test/java/thedarkcolour/exdeorum/recipe/RecipeUtilTest.java b/src/test/java/thedarkcolour/exdeorum/recipe/RecipeUtilTest.java new file mode 100644 index 00000000..4c217802 --- /dev/null +++ b/src/test/java/thedarkcolour/exdeorum/recipe/RecipeUtilTest.java @@ -0,0 +1,50 @@ +/* + * Ex Deorum + * Copyright (c) 2023 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package thedarkcolour.exdeorum.recipe; + +import net.minecraft.SharedConstants; +import net.minecraft.WorldVersion; +import net.minecraft.server.Bootstrap; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.crafting.Ingredient; +import net.minecraftforge.common.Tags; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.io.IOException; + +import static org.junit.jupiter.api.Assertions.*; + +class RecipeUtilTest { + @BeforeEach + void setUp() { + SharedConstants.tryDetectVersion(); + Bootstrap.bootStrap(); + } + + @Test + void areIngredientsEqual() { + assertTrue(RecipeUtil.areIngredientsEqual(Ingredient.of(Items.OAK_SLAB), Ingredient.of(Items.OAK_SLAB))); + assertFalse(RecipeUtil.areIngredientsEqual(Ingredient.of(Items.BIRCH_SLAB), Ingredient.of(Items.OAK_SLAB))); + assertTrue(RecipeUtil.areIngredientsEqual(Ingredient.of(Tags.Items.GEMS_DIAMOND), Ingredient.of(Tags.Items.GEMS_DIAMOND))); + assertFalse(RecipeUtil.areIngredientsEqual(Ingredient.of(Tags.Items.INGOTS_IRON), Ingredient.of(Tags.Items.GEMS_DIAMOND))); + assertTrue(RecipeUtil.areIngredientsEqual(Ingredient.of(Items.OAK_SLAB, Items.SPRUCE_SLAB), Ingredient.of(Items.OAK_SLAB, Items.SPRUCE_SLAB))); + assertTrue(RecipeUtil.areIngredientsEqual(Ingredient.of(Items.OAK_SLAB, Items.SPRUCE_SLAB), Ingredient.of(Items.SPRUCE_SLAB, Items.OAK_SLAB))); + } +} \ No newline at end of file