diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 4ac3dd686..732e098b2 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -130,7 +130,7 @@ de8a40b7daf1497d5aecee47a43b3e0b1d030b00 assets/create/blockstates/fancy_scoria_ fc9ac0a7e7191b93516719455a17177fa6524ecc assets/create/blockstates/fancy_weathered_limestone_bricks_slab.json b2a7c321b1795f20e7433f81a55ce4683de081b8 assets/create/blockstates/fancy_weathered_limestone_bricks_stairs.json 6372fe02ba0065acb0758121c45a15a1a8fdc5de assets/create/blockstates/fancy_weathered_limestone_bricks_wall.json -d96007df2f19d5af2924dce680ae9bc960a2e6da assets/create/blockstates/fluid_pipe.json +fe9169716dd21a81a3710a89f0a9b7ea4dcd4d51 assets/create/blockstates/fluid_pipe.json f0eaab18e16c4f3f65ebf3b55b08f0dc445720fe assets/create/blockstates/fluid_tank.json e9da1794b6ece7f9aa8bcb43d42c23a55446133b assets/create/blockstates/flywheel.json ac00d40e1ef50a37041c0481afa1a23a14dea78e assets/create/blockstates/framed_glass.json @@ -303,7 +303,7 @@ e8b0a401c10d1ba67ed71ba31bd5f9bc28571b65 assets/create/blockstates/powered_toggl 3a739f9d4276828d83f2d2750bf3227c87bcd438 assets/create/blockstates/pulley_magnet.json 469e430d96cb0a5e1aaf6b7cc5d401d488c9e600 assets/create/blockstates/pulse_repeater.json 92957119abd5fbcca36a113b2a80255fd70fc303 assets/create/blockstates/purple_seat.json -4439fc83a8c7370ab44b211a3fd48abde20a4728 assets/create/blockstates/radial_chassis.json +8d7e653bfd9846e684a0d3725595714a19201017 assets/create/blockstates/radial_chassis.json da1b08387af7afa0855ee8d040f620c01f20660a assets/create/blockstates/red_seat.json 8929677f2cc5354aa19ef182af69f9f0b41eb242 assets/create/blockstates/redstone_contact.json c29213b77ac0c78d8979c5f6188d2b265696f9b9 assets/create/blockstates/redstone_link.json @@ -361,16 +361,16 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json 1fe3d6fb515b8951750daf6ff274006e14c96b32 assets/create/lang/en_ud.json -78132f4ad6bb368cfede5759614a51996642dbaf assets/create/lang/en_us.json -89e41a7841615a8600e0c9875dbbf8102116bc54 assets/create/lang/unfinished/de_de.json -12b8c64ebfa1e9616db6ffd6dd7f702bb6b7d286 assets/create/lang/unfinished/fr_fr.json -b6b65233c4c85abc1a32f3dbc079993cbb6184c7 assets/create/lang/unfinished/it_it.json -d5c762f5a17d4736db53d4001ad4431e76bb3387 assets/create/lang/unfinished/ja_jp.json -885a0593c22386cf88d9f221ef08883a02ec589b assets/create/lang/unfinished/ko_kr.json -da888d1e22b0a191770fdf39e0221c956fa274fb assets/create/lang/unfinished/nl_nl.json -bf72f08cae43a08d4fb729a82a7470e33146e6c7 assets/create/lang/unfinished/pt_br.json -a9c15400e799bad4fb74b897e1be8b6bfc74ea69 assets/create/lang/unfinished/ru_ru.json -bc857a89d28460d79f67c6f10358455434faecf0 assets/create/lang/unfinished/zh_cn.json +ba81a0874d90e126eb6b5e6edf22d69176888ae3 assets/create/lang/en_us.json +69ebd4797f76f54483912b0c57fd061b73c732b2 assets/create/lang/unfinished/de_de.json +fb1b725ce25e90e95615e6829f3a570c35e84f2d assets/create/lang/unfinished/fr_fr.json +3cf685c54663480dc3208b3d9ba8cc1638ebbe62 assets/create/lang/unfinished/it_it.json +8c844b9777baad14984784ff957cff2e241f4d07 assets/create/lang/unfinished/ja_jp.json +f351bafc438dcde67979a51753da16f75a9e1a34 assets/create/lang/unfinished/ko_kr.json +3c143d2b067e5443b1724d1ddb478f3abbf1f9a1 assets/create/lang/unfinished/nl_nl.json +e8dff25d88cdbabe91ae784d05e0a5c87fd9b948 assets/create/lang/unfinished/pt_br.json +411119247ce1bcc941bd3f49fb3a18eac687d65d assets/create/lang/unfinished/ru_ru.json +a94df56a2bc8f04661f0b3616963b84046ea4cbb assets/create/lang/unfinished/zh_cn.json 846200eb548d3bfa2e77b41039de159b4b6cfb45 assets/create/models/block/acacia_window.json 1930fa3a3c98d53dd19e4ee7f55bc27fd47aa281 assets/create/models/block/acacia_window_pane_noside.json 1763ea2c9b981d187f5031ba608f3d5d3be3986a assets/create/models/block/acacia_window_pane_noside_alt.json @@ -2511,6 +2511,56 @@ fe95f8f5f15edb0a5ff8da5a4757c9f8910b51bd data/create/recipes/crafting/palettes/d 5c47ac2e2b596439a684126fef7265f13de2379b data/create/recipes/crafting/schematics/schematic_and_quill.json 9fb943be76c51a24aa9d8a09de5b7bd17b44ab08 data/create/recipes/crafting/schematics/schematic_table.json 1a810338ea15ab5ac2f37e87579c56f72b2b371b data/create/recipes/crafting/schematics/schematicannon.json +3da7a3cdb84f44e259b5399a94ddfbf94ebebd37 data/create/recipes/crushing/blaze_rod.json +5878767e89be5a522b8f28d6a2d7b2f8566cf0dd data/create/recipes/crushing/brass_block.json +b21b77e313728add68ed7daeb6bda1d12c06fc90 data/create/recipes/crushing/coal_ore.json +da4ed79975391ec9f263869936b84474f1f727d3 data/create/recipes/crushing/copper_block.json +2962c8c1cb899591a474ee675d8ee699de265f15 data/create/recipes/crushing/copper_ore.json +0c96aa34d8dbf5fdc122361b6f2b090db94dc886 data/create/recipes/crushing/diamond_horse_armor.json +47a6eacac7ea031fd65b6ee9d2a9163a0099af6b data/create/recipes/crushing/emerald_ore.json +5e3bd12462c94835f2707a683e68a9731fd7225d data/create/recipes/crushing/glowstone.json +9984f8c4279540cd930331a9606ed9ae92a19b9a data/create/recipes/crushing/gold_ore.json +55c0656723bd5a87089965651fe268b2d2956771 data/create/recipes/crushing/golden_horse_armor.json +49e96d7d2ff8e61f9d92dc9ccd92993fed839c7b data/create/recipes/crushing/gravel.json +060bb54f70c6551af1266aac99befe97ca7d6504 data/create/recipes/crushing/iron_horse_armor.json +bcd7e6c6c0ca248a034023bf8ab33bd461e2db17 data/create/recipes/crushing/iron_ore.json +21566e25e5d06bdb2634acc422457e63e458d041 data/create/recipes/crushing/lapis_ore.json +e870d049abc5cd5f389f70414c67e76ddc14060d data/create/recipes/crushing/leather_horse_armor.json +d73a0ed13112e001dad61d6ea66fd729c86e7b62 data/create/recipes/crushing/nether_quartz_ore.json +2b9b8e1ab81f47c4f7fb79a007aef214af12a342 data/create/recipes/crushing/nether_wart_block_no_quark.json +70116a5a9d1f93ae377e1526ca99582190cf2e3e data/create/recipes/crushing/nether_wart_block_quark.json +71397f0ae2e175181195b8b2894d108e0cdc3da7 data/create/recipes/crushing/obsidian.json +88d7ab3d6407010876e328f5f20a4ed9ddda7e3e data/create/recipes/crushing/prismarine_crystals.json +42299b3a0596c7743404496205854ac2324aedd7 data/create/recipes/crushing/redstone_ore.json +94589aa3171fcfda8eed76000d53a36ea6fd7e53 data/create/recipes/crushing/sand.json +dc4cf8b759f5eeee0ccfa6aaad204fbeea487b7f data/create/recipes/crushing/wool.json +967bea8eabac8fab8de547ddd6670230f400c111 data/create/recipes/crushing/zinc_block.json +fec666f3d9d40214411b3e13df957c430f748b38 data/create/recipes/crushing/zinc_ore.json +a6fcae05c9483516c0b05553dc9dc58aa24bcb3d data/create/recipes/cutting/acacia_log.json +dc45636779c05e3be6b9ab6348618c5bf4b6a935 data/create/recipes/cutting/acacia_wood.json +68687da80b9dc7ea69729b0e16d3e75efed8679a data/create/recipes/cutting/andesite_alloy.json +96128e5538ce36172271aeb5f13b9a96b23622e8 data/create/recipes/cutting/birch_log.json +3314272b66d99d64c6454a798d58a87cd7ce18bb data/create/recipes/cutting/birch_wood.json +a0c8189a002a80e3d68ed658b9adf69e98609458 data/create/recipes/cutting/dark_oak_log.json +f5ed40088993dd5ef09db74d154d02db0fefe772 data/create/recipes/cutting/dark_oak_wood.json +a695868ac8943924bcd375089995f909ef95d0a8 data/create/recipes/cutting/jungle_log.json +8de2bec42f36c8ed87b9eac957b09eb302f84b63 data/create/recipes/cutting/jungle_wood.json +7946211bb119a9ccdc192c72d57f7d732e9cac13 data/create/recipes/cutting/oak_log.json +f39da018c21b0b99b41cd25ecbadc75ee9d552c7 data/create/recipes/cutting/oak_wood.json +6abbe6463bb4da2fff1cabaefa92e043fdefdf88 data/create/recipes/cutting/spruce_log.json +cb5343fdcab4ab27335deef2988db7dc0c9ff7f2 data/create/recipes/cutting/spruce_wood.json +9f14b915695407155fdf806b1e5ecf91e0860c5b data/create/recipes/cutting/stripped_acacia_log.json +c7f0e3b7a46676ede1ed775ec8aa8b969e1fe598 data/create/recipes/cutting/stripped_acacia_wood.json +4c657d8ff753789853c8d705fb5ae01caeef5cc1 data/create/recipes/cutting/stripped_birch_log.json +53f47375955f65844c077c8bb06a9eeb67e0b53f data/create/recipes/cutting/stripped_birch_wood.json +9cab5363d43559823d4679da0a64a0a603983cb6 data/create/recipes/cutting/stripped_dark_oak_log.json +c63bc7d8a81b3499390de84fc49d726c9018896d data/create/recipes/cutting/stripped_dark_oak_wood.json +e923bfbc5d9b02e020693378723b4d55fc60f79a data/create/recipes/cutting/stripped_jungle_log.json +2dba1962f0a267d72444ec448432b81143fc42da data/create/recipes/cutting/stripped_jungle_wood.json +ff68462a712267db1f1124d37a4877217edd5c85 data/create/recipes/cutting/stripped_oak_log.json +84ffcff96d79f88012bceae0e346da6be4da9802 data/create/recipes/cutting/stripped_oak_wood.json +2b5f34ba42521004f999140056c997b07acde4e9 data/create/recipes/cutting/stripped_spruce_log.json +6c3776c4d4190dba4f70d1f6995715002b37b3a8 data/create/recipes/cutting/stripped_spruce_wood.json f2c317e03ac4d42fb631e1625607061e10c480fe data/create/recipes/dark_oak_window.json d9dbae6e237eb38e53a619a0f1b339fca7c59b4d data/create/recipes/dark_oak_window_pane.json 55596a590962e3ddd40949917661f0bd94408274 data/create/recipes/dark_scoria_bricks_from_dark_scoria_stonecutting.json @@ -2687,6 +2737,57 @@ bbf64f7eb3868e354756e57348493e2b1ae6b0d9 data/create/recipes/limestone_cobblesto 88fa2b1ab746d5e13a8afd6e7e7d80ad843e0016 data/create/recipes/limestone_cobblestone_wall_from_limestone_cobblestone_stonecutting.json 327bb8a6535b60bb65d0dda9d5205e988bc82526 data/create/recipes/limestone_pillar.json c2e15ac0c9109bad3face6d13efc32d7116b4c25 data/create/recipes/limestone_pillar_from_limestone_stonecutting.json +9d637c3c552840bd79ccfac57b1508e21146de49 data/create/recipes/milling/allium.json +7823440a3707ab2ea41d8dae214b11364a53e290 data/create/recipes/milling/andesite.json +ac3f1c92115a113a1ea7e5543c1e061e3d2a0b36 data/create/recipes/milling/azure_bluet.json +3f38c1025e0a1553e756fc494b03a39cff2a6b81 data/create/recipes/milling/blue_orchid.json +9386c7e1f9d69826965402af8cc7609d8285f0c8 data/create/recipes/milling/bone.json +72676ef5267d005b52b6d138cf68b5428da25b85 data/create/recipes/milling/bone_meal.json +1209f70f8f09af5a4cce67eb8e090c63981d675e data/create/recipes/milling/cactus.json +335f32092c32238daec5ab5914836e1a50baed36 data/create/recipes/milling/charcoal.json +b9b8d7a0ed2121ac4202b1cd23fc9a18da9f89fa data/create/recipes/milling/clay.json +915d00bb4518e9dd5bb35f5ccc41a974548f5e6a data/create/recipes/milling/coal.json +f585d39316e016a559b72e53770ff7ff9375e292 data/create/recipes/milling/cobblestone.json +d6d024c8fccd18a47a1b22962a20877d8f74dc94 data/create/recipes/milling/cocoa_beans.json +6e9e700b353471e9d5d4bf3ab2ae504c54f84cf7 data/create/recipes/milling/copper_ore.json +31da5a1a6cc6f6cf90bf091d968d8b6f8555b292 data/create/recipes/milling/cornflower.json +d8f48766699d10fe948f993c44e5f290354e6a03 data/create/recipes/milling/dandelion.json +4e486a45118b45d01a1aa277b56e05f600ae7524 data/create/recipes/milling/diorite.json +d6cb91af193f88f0861813094cd4dc2d9111b304 data/create/recipes/milling/fern.json +e4533cf74cf1a9422ecb50820dd9a393a7f327b8 data/create/recipes/milling/gold_ore.json +5b31ee99e30e920162e8fdabc4608ca828bf992d data/create/recipes/milling/granite.json +5fa9947eb9c423c19d824ab83700ced4fc80f7a3 data/create/recipes/milling/grass.json +d39af13f1110fbf80ac6d4ed6770153153e647b9 data/create/recipes/milling/gravel.json +fcac9030cdc13052d8cd006d27cf420fc2879375 data/create/recipes/milling/ink_sac.json +33aea07b98a40a5e122b407252cc1a85d7176626 data/create/recipes/milling/iron_ore.json +c6d91bc1b90d9baa022abf4eb15d3934a1dd298e data/create/recipes/milling/lapis_lazuli.json +121073a5d934ad220de8286185a398575ddbb5b1 data/create/recipes/milling/large_fern.json +83d11b3743864ecd59cdc1e6626a3118e5dc5cfc data/create/recipes/milling/lilac.json +efe625cb321255c3d7d2db626ff239722f774623 data/create/recipes/milling/lily_of_the_valley.json +e1218d6bf8f80461887de609f478b99facb1c5a2 data/create/recipes/milling/orange_tulip.json +b88646f1b4599b36920e0bff5829c372fddfa2b4 data/create/recipes/milling/oxeye_daisy.json +a600f9048060ef635fb84eea3facdb1918fbad73 data/create/recipes/milling/peony.json +e0be5c3c2d8bae1031de9291ee8434ef8f2608b0 data/create/recipes/milling/pink_tulip.json +e54acf873ebea2d97294ed8f609070e7395b463a data/create/recipes/milling/poppy.json +c8f76e426ff2d3df3c0ebe2f6c354ea5cfeb7b89 data/create/recipes/milling/red_tulip.json +bda581c2039f41f7d55527814a46903f10da7e05 data/create/recipes/milling/rose_bush.json +54be62a1bf098a370d315f79068ec326e4f4d6c2 data/create/recipes/milling/saddle.json +90cc7b8a945fb019cddb8fbfea1564f46614d69a data/create/recipes/milling/sand.json +b44e771a42b0630cd01b31cf4b9cf337e3e21041 data/create/recipes/milling/sugar_cane.json +ec53cd589fb96d126cbd85f7540fbb685310355a data/create/recipes/milling/sunflower.json +11cf0d26f667ac8749818fa3a5accbdb726a6356 data/create/recipes/milling/tall_grass.json +79797c0658f5dce82ee50a612627f47df33ce09e data/create/recipes/milling/terracotta.json +06703af2619170b21a2acd89e755826ad4bb2e5b data/create/recipes/milling/wheat.json +3f4e1adbbbdc1327e2f83d648918b4959a8cff2e data/create/recipes/milling/white_tulip.json +ca72436410265c33b1d8a2d9b634767df73efa6e data/create/recipes/milling/wither_rose.json +0137a135731a41d1d33e0c264decb03ee1582c4f data/create/recipes/milling/wool.json +28f37178b75fc4d63c4495c721fe2f0f011756cf data/create/recipes/milling/zinc_ore.json +8975bb125e09b68cc539c7b368fd7c6853657fd6 data/create/recipes/mixing/andesite_alloy.json +e7bfaa806d57573d060fac0a5e7a84f345b8bb85 data/create/recipes/mixing/andesite_alloy_from_zinc.json +3417f9399ce0fb32fc4bce94c772b40d780c9006 data/create/recipes/mixing/brass_ingot.json +76939e4d3e5b615ae21d14c0ff7b917a622bcf80 data/create/recipes/mixing/chromatic_compound.json +d9a3dff1288d675ab812eef1eb73cb27dcc71bd2 data/create/recipes/mixing/crushed_brass.json +00b165ea38d834c7955440e87062004a8182c3f8 data/create/recipes/mixing/gunpowder.json 1998c6f84f871d6da58ec29d729401d18f8f1aa1 data/create/recipes/mossy_andesite_from_andesite_stonecutting.json 89929d9cb11b5c589b2ecfa821c61add1ef7b62b data/create/recipes/mossy_dark_scoria_from_dark_scoria_stonecutting.json 4b8b1191dd3a21294293dc5ad237af89b849df28 data/create/recipes/mossy_diorite_from_diorite_stonecutting.json @@ -2820,6 +2921,13 @@ d51106184083761635fa902c09c45436c414ddab data/create/recipes/polished_weathered_ 9d4382462376e85c2627b8150b09acd3b063e347 data/create/recipes/polished_weathered_limestone_stairs_from_polished_weathered_limestone_stonecutting.json 7dd58714cf8fc4614ae2e1c2981471da3a52f06c data/create/recipes/polished_weathered_limestone_wall.json eae06580a0a5f486cde35426716d50fcb3ba5bb3 data/create/recipes/polished_weathered_limestone_wall_from_polished_weathered_limestone_stonecutting.json +228d2002ec3da06f940d004b1f3c74fc33413fb6 data/create/recipes/pressing/brass_ingot.json +a07323c42c78815ebc756372a30bb8295abaf9a0 data/create/recipes/pressing/copper_ingot.json +b107b827c888a8349a937aebeed575b40e9cee9a data/create/recipes/pressing/gold_ingot.json +c2fd8639ed37034eabc821842d48385cb0918c3b data/create/recipes/pressing/iron_ingot.json +05b620a5cb6cf0a7ebe5e6183a061067fcccc191 data/create/recipes/pressing/lapis_block.json +91d12d892c2660f962b26b9dde020a5570c2c6e7 data/create/recipes/pressing/sugar_cane.json +9ebd1cc7dac1874c49a75e7709c3fea79853c087 data/create/recipes/sandpaper_polishing/rose_quartz.json d59c68621c78ff5d2c51be4440dea603480efed8 data/create/recipes/scoria_bricks_from_scoria_stonecutting.json a7a28cf77955c2b4ed3687205dd24162e461aa30 data/create/recipes/scoria_bricks_slab.json 0577ffde98e7a027b21c430cd71cdafdd3cee3a3 data/create/recipes/scoria_bricks_slab_from_scoria_bricks_stonecutting.json @@ -2836,6 +2944,38 @@ f7b7ff190929ae525297fecb3c116f32fc05fd88 data/create/recipes/scoria_cobblestone_ a9096822db9d12b6014d6d34e52de5821305c03f data/create/recipes/scoria_cobblestone_wall_from_scoria_cobblestone_stonecutting.json a513468ce4d55fe3b3919bd76ba2bd5b6fac4d4e data/create/recipes/scoria_pillar.json 2e0ecbd3619f080d0fc6fe48307c5a5bcc2e91b4 data/create/recipes/scoria_pillar_from_scoria_stonecutting.json +60ee56b41a279124ff59724794c80da7e8cc81e4 data/create/recipes/splashing/black_concrete_powder.json +59ce20e3f4193a6e28cde2d46c008afe5d53c67f data/create/recipes/splashing/blue_concrete_powder.json +6d69b04151846675b5b9d1de3374f0168bcdc20b data/create/recipes/splashing/brown_concrete_powder.json +c22dc50b7c8dea74dae9018506989fa14a340796 data/create/recipes/splashing/crushed_brass.json +d43ec1edc4743dc5a3483c327dc010a12d81dbf5 data/create/recipes/splashing/crushed_copper_ore.json +a1112c785f4571c0a9900288081eb216c729a17b data/create/recipes/splashing/crushed_gold_ore.json +f3b03dd4532086a785d6bbc9de081ab8adf58146 data/create/recipes/splashing/crushed_iron_ore.json +d2d6137fd7a3155263cfffef45f760b99f26f26b data/create/recipes/splashing/crushed_zinc_ore.json +25796b0f832249cd3ffc8493daff534d783ec850 data/create/recipes/splashing/cyan_concrete_powder.json +0c0e987bb771868b34d04759f672cd4e1cd83c60 data/create/recipes/splashing/gravel.json +756857a8a3f931ba55056239664530849680b9a5 data/create/recipes/splashing/gray_concrete_powder.json +ab1a3e111e00ce7d6e6cf55a110eb843be040b17 data/create/recipes/splashing/green_concrete_powder.json +319c0423276eec8b5bdd2b3d7596b86eff113986 data/create/recipes/splashing/ice.json +fe3c9a2343a796c5e08e9d607b978563b9d9320a data/create/recipes/splashing/light_blue_concrete_powder.json +26f43d0f3d8381fd89c1d97b530aa56145bc5df5 data/create/recipes/splashing/light_gray_concrete_powder.json +11cd9b3d32db881c8ab435bb7f3fe0bf8233038b data/create/recipes/splashing/lime_concrete_powder.json +040e5de4d06e47c59a9cdbaf574ac51320201f2a data/create/recipes/splashing/limestone.json +b4a42622cd9363951984140e0afdb68e40efda3c data/create/recipes/splashing/magenta_concrete_powder.json +77a5ac46d93a6031d6c3827818d6e7baf11e155f data/create/recipes/splashing/magma_block.json +bd715561deaeac2afb11e5394679fc3b8b30eb7f data/create/recipes/splashing/orange_concrete_powder.json +dd7457da2124a93e8bdc4f68380378f945df12d9 data/create/recipes/splashing/pink_concrete_powder.json +f031372403ea35d5bc63b18a82ce84ff2d69f206 data/create/recipes/splashing/purple_concrete_powder.json +e7ff4602fd5444a2e3c8ddc20be9569d64e1746e data/create/recipes/splashing/red_concrete_powder.json +d0c652c4382e9213bb7d61380162a8d6c55d9d39 data/create/recipes/splashing/red_sand.json +43fe8ba65a79909e4b9ea985dea2861cba1e680b data/create/recipes/splashing/sand.json +e802591c68932b24f027c99281a51d8f13393bf8 data/create/recipes/splashing/soul_sand.json +4773a92dea2e3ba6cb529e097948d881b4d0988b data/create/recipes/splashing/stained_glass.json +1bc046f79c8e0660d11f7e6951b866cb74b9339b data/create/recipes/splashing/stained_glass_pane.json +a465629e286012f616ccf48305bbdd9e493b290a data/create/recipes/splashing/wheat_flour.json +8c995694c62035a84b6f993cf452811c577dc752 data/create/recipes/splashing/white_concrete_powder.json +53b0a123f52437842631ffdec05eebed8ba6c73a data/create/recipes/splashing/wool.json +224c91bcc2ff94054b62761f9fed3925d6b52cb7 data/create/recipes/splashing/yellow_concrete_powder.json 7a4e163767827fc8cef3646204c2f2bf0f8aac99 data/create/recipes/spruce_window.json 96d515ff0172dafa04d650ab69d68ed508e99e6f data/create/recipes/spruce_window_pane.json 1f689453146c7dd2d315e8b5fb5e7cdc0aaf0fa2 data/create/recipes/tiled_glass_from_glass_colorless_stonecutting.json diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index 179a2cf62..3613adb1c 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -846,8 +846,6 @@ "create.tooltip.generationSpeed": "Generates at %1$s %2$s", "create.tooltip.analogStrength": "Analog Strength: %1$s/15", - "create.mechanical_mixer.min_ingredients": "Min. Ingredients", - "create.mechanical_arm.selection_mode": "Selection Mode", "create.mechanical_arm.selection_mode.default": "First Valid Target", "create.mechanical_arm.selection_mode.round_robin_soft": "Attempt Round Robin", diff --git a/src/generated/resources/assets/create/lang/unfinished/de_de.json b/src/generated/resources/assets/create/lang/unfinished/de_de.json index 52bfc0cab..7c69cda93 100644 --- a/src/generated/resources/assets/create/lang/unfinished/de_de.json +++ b/src/generated/resources/assets/create/lang/unfinished/de_de.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 821", + "_": "Missing Localizations: 820", "_": "->------------------------] Game Elements [------------------------<-", @@ -847,8 +847,6 @@ "create.tooltip.generationSpeed": "UNLOCALIZED: Generates at %1$s %2$s", "create.tooltip.analogStrength": "UNLOCALIZED: Analog Strength: %1$s/15", - "create.mechanical_mixer.min_ingredients": "UNLOCALIZED: Min. Ingredients", - "create.mechanical_arm.selection_mode": "UNLOCALIZED: Selection Mode", "create.mechanical_arm.selection_mode.default": "UNLOCALIZED: First Valid Target", "create.mechanical_arm.selection_mode.round_robin_soft": "UNLOCALIZED: Attempt Round Robin", diff --git a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json index 549c5324a..fe64a53bd 100644 --- a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json +++ b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json @@ -847,8 +847,6 @@ "create.tooltip.generationSpeed": "Génère à %1$s %2$s", "create.tooltip.analogStrength": "Force analogique: %1$s/15", - "create.mechanical_mixer.min_ingredients": "Ingrédients min.", - "create.mechanical_arm.selection_mode": "UNLOCALIZED: Selection Mode", "create.mechanical_arm.selection_mode.default": "UNLOCALIZED: First Valid Target", "create.mechanical_arm.selection_mode.round_robin_soft": "UNLOCALIZED: Attempt Round Robin", diff --git a/src/generated/resources/assets/create/lang/unfinished/it_it.json b/src/generated/resources/assets/create/lang/unfinished/it_it.json index a545f07f3..21fa71cf9 100644 --- a/src/generated/resources/assets/create/lang/unfinished/it_it.json +++ b/src/generated/resources/assets/create/lang/unfinished/it_it.json @@ -847,8 +847,6 @@ "create.tooltip.generationSpeed": "Genera %1$s %2$s", "create.tooltip.analogStrength": "Forza Analogica: %1$s/15", - "create.mechanical_mixer.min_ingredients": "Ingredienti Min.", - "create.mechanical_arm.selection_mode": "UNLOCALIZED: Selection Mode", "create.mechanical_arm.selection_mode.default": "UNLOCALIZED: First Valid Target", "create.mechanical_arm.selection_mode.round_robin_soft": "UNLOCALIZED: Attempt Round Robin", diff --git a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json index da5adb617..131b29a6b 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json +++ b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json @@ -847,8 +847,6 @@ "create.tooltip.generationSpeed": "%1$s %2$sを生成", "create.tooltip.analogStrength": "アナログ強度: %1$s/15", - "create.mechanical_mixer.min_ingredients": "最小 材料", - "create.mechanical_arm.selection_mode": "UNLOCALIZED: Selection Mode", "create.mechanical_arm.selection_mode.default": "UNLOCALIZED: First Valid Target", "create.mechanical_arm.selection_mode.round_robin_soft": "UNLOCALIZED: Attempt Round Robin", diff --git a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json index 8ad07e395..bf2b8eaaf 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json +++ b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json @@ -847,8 +847,6 @@ "create.tooltip.generationSpeed": "%1$s %2$s만큼 발전함", "create.tooltip.analogStrength": "레드스톤 출력: %1$s/15", - "create.mechanical_mixer.min_ingredients": "최소 재료 종류", - "create.mechanical_arm.selection_mode": "UNLOCALIZED: Selection Mode", "create.mechanical_arm.selection_mode.default": "UNLOCALIZED: First Valid Target", "create.mechanical_arm.selection_mode.round_robin_soft": "UNLOCALIZED: Attempt Round Robin", diff --git a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json index c36218524..d252923d3 100644 --- a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json +++ b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json @@ -847,8 +847,6 @@ "create.tooltip.generationSpeed": "UNLOCALIZED: Generates at %1$s %2$s", "create.tooltip.analogStrength": "UNLOCALIZED: Analog Strength: %1$s/15", - "create.mechanical_mixer.min_ingredients": "Min. Ingredieënten", - "create.mechanical_arm.selection_mode": "UNLOCALIZED: Selection Mode", "create.mechanical_arm.selection_mode.default": "UNLOCALIZED: First Valid Target", "create.mechanical_arm.selection_mode.round_robin_soft": "UNLOCALIZED: Attempt Round Robin", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_br.json b/src/generated/resources/assets/create/lang/unfinished/pt_br.json index e1343296f..0504e2b4f 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_br.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_br.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 828", + "_": "Missing Localizations: 827", "_": "->------------------------] Game Elements [------------------------<-", @@ -847,8 +847,6 @@ "create.tooltip.generationSpeed": "UNLOCALIZED: Generates at %1$s %2$s", "create.tooltip.analogStrength": "UNLOCALIZED: Analog Strength: %1$s/15", - "create.mechanical_mixer.min_ingredients": "UNLOCALIZED: Min. Ingredients", - "create.mechanical_arm.selection_mode": "UNLOCALIZED: Selection Mode", "create.mechanical_arm.selection_mode.default": "UNLOCALIZED: First Valid Target", "create.mechanical_arm.selection_mode.round_robin_soft": "UNLOCALIZED: Attempt Round Robin", diff --git a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json index eb5f6d9d2..a71fcbd63 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json +++ b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 822", + "_": "Missing Localizations: 821", "_": "->------------------------] Game Elements [------------------------<-", @@ -847,8 +847,6 @@ "create.tooltip.generationSpeed": "UNLOCALIZED: Generates at %1$s %2$s", "create.tooltip.analogStrength": "UNLOCALIZED: Analog Strength: %1$s/15", - "create.mechanical_mixer.min_ingredients": "UNLOCALIZED: Min. Ingredients", - "create.mechanical_arm.selection_mode": "UNLOCALIZED: Selection Mode", "create.mechanical_arm.selection_mode.default": "UNLOCALIZED: First Valid Target", "create.mechanical_arm.selection_mode.round_robin_soft": "UNLOCALIZED: Attempt Round Robin", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json index 69779493c..02a0ba70a 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json @@ -847,8 +847,6 @@ "create.tooltip.generationSpeed": "产生 %1$s %2$s", "create.tooltip.analogStrength": "调节强度: %1$s/15", - "create.mechanical_mixer.min_ingredients": "最少物品种类数", - "create.mechanical_arm.selection_mode": "UNLOCALIZED: Selection Mode", "create.mechanical_arm.selection_mode.default": "UNLOCALIZED: First Valid Target", "create.mechanical_arm.selection_mode.round_robin_soft": "UNLOCALIZED: Attempt Round Robin", diff --git a/src/generated/resources/data/create/recipes/crushing/blaze_rod.json b/src/generated/resources/data/create/recipes/crushing/blaze_rod.json new file mode 100644 index 000000000..c87434bd6 --- /dev/null +++ b/src/generated/resources/data/create/recipes/crushing/blaze_rod.json @@ -0,0 +1,20 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "item": "minecraft:blaze_rod" + } + ], + "results": [ + { + "item": "minecraft:blaze_powder", + "count": 3 + }, + { + "item": "minecraft:blaze_powder", + "count": 3, + "chance": 0.25 + } + ], + "processingTime": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crushing/brass_block.json b/src/generated/resources/data/create/recipes/crushing/brass_block.json new file mode 100644 index 000000000..4e32f34ea --- /dev/null +++ b/src/generated/resources/data/create/recipes/crushing/brass_block.json @@ -0,0 +1,15 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "tag": "forge:storage_blocks/brass" + } + ], + "results": [ + { + "item": "create:crushed_brass", + "count": 5 + } + ], + "processingTime": 400 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crushing/coal_ore.json b/src/generated/resources/data/create/recipes/crushing/coal_ore.json new file mode 100644 index 000000000..a6b0e5e70 --- /dev/null +++ b/src/generated/resources/data/create/recipes/crushing/coal_ore.json @@ -0,0 +1,25 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "item": "minecraft:coal_ore" + } + ], + "results": [ + { + "item": "minecraft:coal", + "count": 2 + }, + { + "item": "minecraft:coal", + "count": 2, + "chance": 0.5 + }, + { + "item": "minecraft:cobblestone", + "count": 1, + "chance": 0.125 + } + ], + "processingTime": 300 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crushing/copper_block.json b/src/generated/resources/data/create/recipes/crushing/copper_block.json new file mode 100644 index 000000000..7965a3dbb --- /dev/null +++ b/src/generated/resources/data/create/recipes/crushing/copper_block.json @@ -0,0 +1,15 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "tag": "forge:storage_blocks/copper" + } + ], + "results": [ + { + "item": "create:crushed_copper_ore", + "count": 5 + } + ], + "processingTime": 400 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crushing/copper_ore.json b/src/generated/resources/data/create/recipes/crushing/copper_ore.json new file mode 100644 index 000000000..acbbd3485 --- /dev/null +++ b/src/generated/resources/data/create/recipes/crushing/copper_ore.json @@ -0,0 +1,25 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "tag": "forge:ores/copper" + } + ], + "results": [ + { + "item": "create:crushed_copper_ore", + "count": 1 + }, + { + "item": "create:crushed_copper_ore", + "count": 2, + "chance": 0.3 + }, + { + "item": "minecraft:cobblestone", + "count": 1, + "chance": 0.125 + } + ], + "processingTime": 350 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crushing/diamond_horse_armor.json b/src/generated/resources/data/create/recipes/crushing/diamond_horse_armor.json new file mode 100644 index 000000000..b3c2ad2aa --- /dev/null +++ b/src/generated/resources/data/create/recipes/crushing/diamond_horse_armor.json @@ -0,0 +1,30 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "item": "minecraft:diamond_horse_armor" + } + ], + "results": [ + { + "item": "minecraft:diamond", + "count": 1 + }, + { + "item": "minecraft:leather", + "count": 2, + "chance": 0.5 + }, + { + "item": "minecraft:diamond", + "count": 3, + "chance": 0.1 + }, + { + "item": "minecraft:string", + "count": 2, + "chance": 0.25 + } + ], + "processingTime": 200 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crushing/emerald_ore.json b/src/generated/resources/data/create/recipes/crushing/emerald_ore.json new file mode 100644 index 000000000..04dcd5959 --- /dev/null +++ b/src/generated/resources/data/create/recipes/crushing/emerald_ore.json @@ -0,0 +1,25 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "item": "minecraft:emerald_ore" + } + ], + "results": [ + { + "item": "minecraft:emerald", + "count": 2 + }, + { + "item": "minecraft:emerald", + "count": 1, + "chance": 0.25 + }, + { + "item": "minecraft:cobblestone", + "count": 1, + "chance": 0.125 + } + ], + "processingTime": 500 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crushing/glowstone.json b/src/generated/resources/data/create/recipes/crushing/glowstone.json new file mode 100644 index 000000000..025f79b19 --- /dev/null +++ b/src/generated/resources/data/create/recipes/crushing/glowstone.json @@ -0,0 +1,20 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "item": "minecraft:glowstone" + } + ], + "results": [ + { + "item": "minecraft:glowstone_dust", + "count": 3 + }, + { + "item": "minecraft:glowstone_dust", + "count": 1, + "chance": 0.5 + } + ], + "processingTime": 150 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crushing/gold_ore.json b/src/generated/resources/data/create/recipes/crushing/gold_ore.json new file mode 100644 index 000000000..2a11c9c9c --- /dev/null +++ b/src/generated/resources/data/create/recipes/crushing/gold_ore.json @@ -0,0 +1,25 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "tag": "forge:ores/gold" + } + ], + "results": [ + { + "item": "create:crushed_gold_ore", + "count": 1 + }, + { + "item": "create:crushed_gold_ore", + "count": 2, + "chance": 0.3 + }, + { + "item": "minecraft:cobblestone", + "count": 1, + "chance": 0.125 + } + ], + "processingTime": 300 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crushing/golden_horse_armor.json b/src/generated/resources/data/create/recipes/crushing/golden_horse_armor.json new file mode 100644 index 000000000..7bb9a3b8f --- /dev/null +++ b/src/generated/resources/data/create/recipes/crushing/golden_horse_armor.json @@ -0,0 +1,35 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "item": "minecraft:golden_horse_armor" + } + ], + "results": [ + { + "item": "minecraft:gold_ingot", + "count": 2 + }, + { + "item": "minecraft:leather", + "count": 2, + "chance": 0.5 + }, + { + "item": "minecraft:gold_ingot", + "count": 2, + "chance": 0.5 + }, + { + "item": "minecraft:string", + "count": 2, + "chance": 0.25 + }, + { + "item": "minecraft:gold_nugget", + "count": 8, + "chance": 0.25 + } + ], + "processingTime": 200 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crushing/gravel.json b/src/generated/resources/data/create/recipes/crushing/gravel.json new file mode 100644 index 000000000..d3fa20f0b --- /dev/null +++ b/src/generated/resources/data/create/recipes/crushing/gravel.json @@ -0,0 +1,25 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "item": "minecraft:gravel" + } + ], + "results": [ + { + "item": "minecraft:sand", + "count": 1 + }, + { + "item": "minecraft:flint", + "count": 1, + "chance": 0.1 + }, + { + "item": "minecraft:clay_ball", + "count": 1, + "chance": 0.05 + } + ], + "processingTime": 250 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crushing/iron_horse_armor.json b/src/generated/resources/data/create/recipes/crushing/iron_horse_armor.json new file mode 100644 index 000000000..c075b1c6b --- /dev/null +++ b/src/generated/resources/data/create/recipes/crushing/iron_horse_armor.json @@ -0,0 +1,35 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "item": "minecraft:iron_horse_armor" + } + ], + "results": [ + { + "item": "minecraft:iron_ingot", + "count": 2 + }, + { + "item": "minecraft:leather", + "count": 1, + "chance": 0.5 + }, + { + "item": "minecraft:iron_ingot", + "count": 1, + "chance": 0.5 + }, + { + "item": "minecraft:string", + "count": 2, + "chance": 0.25 + }, + { + "item": "minecraft:iron_nugget", + "count": 4, + "chance": 0.25 + } + ], + "processingTime": 200 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crushing/iron_ore.json b/src/generated/resources/data/create/recipes/crushing/iron_ore.json new file mode 100644 index 000000000..2cf448408 --- /dev/null +++ b/src/generated/resources/data/create/recipes/crushing/iron_ore.json @@ -0,0 +1,25 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "tag": "forge:ores/iron" + } + ], + "results": [ + { + "item": "create:crushed_iron_ore", + "count": 1 + }, + { + "item": "create:crushed_iron_ore", + "count": 2, + "chance": 0.3 + }, + { + "item": "minecraft:cobblestone", + "count": 1, + "chance": 0.125 + } + ], + "processingTime": 400 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crushing/lapis_ore.json b/src/generated/resources/data/create/recipes/crushing/lapis_ore.json new file mode 100644 index 000000000..4e4411dea --- /dev/null +++ b/src/generated/resources/data/create/recipes/crushing/lapis_ore.json @@ -0,0 +1,25 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "item": "minecraft:lapis_ore" + } + ], + "results": [ + { + "item": "minecraft:lapis_lazuli", + "count": 12 + }, + { + "item": "minecraft:lapis_lazuli", + "count": 8, + "chance": 0.25 + }, + { + "item": "minecraft:cobblestone", + "count": 1, + "chance": 0.125 + } + ], + "processingTime": 300 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crushing/leather_horse_armor.json b/src/generated/resources/data/create/recipes/crushing/leather_horse_armor.json new file mode 100644 index 000000000..b7ecff4d9 --- /dev/null +++ b/src/generated/resources/data/create/recipes/crushing/leather_horse_armor.json @@ -0,0 +1,20 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "item": "minecraft:leather_horse_armor" + } + ], + "results": [ + { + "item": "minecraft:leather", + "count": 2 + }, + { + "item": "minecraft:leather", + "count": 2, + "chance": 0.5 + } + ], + "processingTime": 200 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crushing/nether_quartz_ore.json b/src/generated/resources/data/create/recipes/crushing/nether_quartz_ore.json new file mode 100644 index 000000000..382d7be3d --- /dev/null +++ b/src/generated/resources/data/create/recipes/crushing/nether_quartz_ore.json @@ -0,0 +1,25 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "item": "minecraft:nether_quartz_ore" + } + ], + "results": [ + { + "item": "minecraft:quartz", + "count": 2 + }, + { + "item": "minecraft:quartz", + "count": 4, + "chance": 0.5 + }, + { + "item": "minecraft:netherrack", + "count": 1, + "chance": 0.125 + } + ], + "processingTime": 350 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crushing/nether_wart_block_no_quark.json b/src/generated/resources/data/create/recipes/crushing/nether_wart_block_no_quark.json new file mode 100644 index 000000000..ee336d4b6 --- /dev/null +++ b/src/generated/resources/data/create/recipes/crushing/nether_wart_block_no_quark.json @@ -0,0 +1,29 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "item": "minecraft:nether_wart_block" + } + ], + "results": [ + { + "item": "minecraft:nether_wart", + "count": 6 + }, + { + "item": "minecraft:nether_wart", + "count": 2, + "chance": 0.5 + } + ], + "processingTime": 150, + "conditions": [ + { + "value": { + "modid": "quark", + "type": "forge:mod_loaded" + }, + "type": "forge:not" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crushing/nether_wart_block_quark.json b/src/generated/resources/data/create/recipes/crushing/nether_wart_block_quark.json new file mode 100644 index 000000000..080e4c3dc --- /dev/null +++ b/src/generated/resources/data/create/recipes/crushing/nether_wart_block_quark.json @@ -0,0 +1,26 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "item": "minecraft:nether_wart_block" + } + ], + "results": [ + { + "item": "minecraft:nether_wart", + "count": 2 + }, + { + "item": "minecraft:nether_wart", + "count": 2, + "chance": 0.5 + } + ], + "processingTime": 150, + "conditions": [ + { + "modid": "quark", + "type": "forge:mod_loaded" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crushing/obsidian.json b/src/generated/resources/data/create/recipes/crushing/obsidian.json new file mode 100644 index 000000000..178795c78 --- /dev/null +++ b/src/generated/resources/data/create/recipes/crushing/obsidian.json @@ -0,0 +1,20 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "item": "minecraft:obsidian" + } + ], + "results": [ + { + "item": "create:powdered_obsidian", + "count": 1 + }, + { + "item": "minecraft:obsidian", + "count": 1, + "chance": 0.75 + } + ], + "processingTime": 500 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crushing/prismarine_crystals.json b/src/generated/resources/data/create/recipes/crushing/prismarine_crystals.json new file mode 100644 index 000000000..bedfb41c0 --- /dev/null +++ b/src/generated/resources/data/create/recipes/crushing/prismarine_crystals.json @@ -0,0 +1,30 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "item": "minecraft:prismarine_crystals" + } + ], + "results": [ + { + "item": "minecraft:prismarine_shard", + "count": 2 + }, + { + "item": "minecraft:quartz", + "count": 2, + "chance": 0.75 + }, + { + "item": "minecraft:prismarine_shard", + "count": 2, + "chance": 0.25 + }, + { + "item": "minecraft:glowstone_dust", + "count": 2, + "chance": 0.1 + } + ], + "processingTime": 150 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crushing/redstone_ore.json b/src/generated/resources/data/create/recipes/crushing/redstone_ore.json new file mode 100644 index 000000000..c84532867 --- /dev/null +++ b/src/generated/resources/data/create/recipes/crushing/redstone_ore.json @@ -0,0 +1,25 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "item": "minecraft:redstone_ore" + } + ], + "results": [ + { + "item": "minecraft:redstone", + "count": 8 + }, + { + "item": "minecraft:redstone", + "count": 6, + "chance": 0.25 + }, + { + "item": "minecraft:cobblestone", + "count": 1, + "chance": 0.125 + } + ], + "processingTime": 300 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crushing/sand.json b/src/generated/resources/data/create/recipes/crushing/sand.json new file mode 100644 index 000000000..ac35f5312 --- /dev/null +++ b/src/generated/resources/data/create/recipes/crushing/sand.json @@ -0,0 +1,25 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "item": "minecraft:sand" + } + ], + "results": [ + { + "item": "create:limesand", + "count": 1 + }, + { + "item": "create:limesand", + "count": 1, + "chance": 0.5 + }, + { + "item": "minecraft:bone_meal", + "count": 1, + "chance": 0.05 + } + ], + "processingTime": 150 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crushing/wool.json b/src/generated/resources/data/create/recipes/crushing/wool.json new file mode 100644 index 000000000..2c3145e2c --- /dev/null +++ b/src/generated/resources/data/create/recipes/crushing/wool.json @@ -0,0 +1,20 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "tag": "minecraft:wool" + } + ], + "results": [ + { + "item": "minecraft:string", + "count": 2 + }, + { + "item": "minecraft:string", + "count": 1, + "chance": 0.5 + } + ], + "processingTime": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crushing/zinc_block.json b/src/generated/resources/data/create/recipes/crushing/zinc_block.json new file mode 100644 index 000000000..b8122dc32 --- /dev/null +++ b/src/generated/resources/data/create/recipes/crushing/zinc_block.json @@ -0,0 +1,15 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "tag": "forge:storage_blocks/zinc" + } + ], + "results": [ + { + "item": "create:crushed_zinc_ore", + "count": 5 + } + ], + "processingTime": 400 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crushing/zinc_ore.json b/src/generated/resources/data/create/recipes/crushing/zinc_ore.json new file mode 100644 index 000000000..e38a2b1c2 --- /dev/null +++ b/src/generated/resources/data/create/recipes/crushing/zinc_ore.json @@ -0,0 +1,25 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "tag": "forge:ores/zinc" + } + ], + "results": [ + { + "item": "create:crushed_zinc_ore", + "count": 1 + }, + { + "item": "create:crushed_zinc_ore", + "count": 2, + "chance": 0.3 + }, + { + "item": "minecraft:cobblestone", + "count": 1, + "chance": 0.125 + } + ], + "processingTime": 350 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/acacia_log.json b/src/generated/resources/data/create/recipes/cutting/acacia_log.json new file mode 100644 index 000000000..e97cddad1 --- /dev/null +++ b/src/generated/resources/data/create/recipes/cutting/acacia_log.json @@ -0,0 +1,15 @@ +{ + "type": "create:cutting", + "ingredients": [ + { + "item": "minecraft:acacia_log" + } + ], + "results": [ + { + "item": "minecraft:stripped_acacia_log", + "count": 1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/acacia_wood.json b/src/generated/resources/data/create/recipes/cutting/acacia_wood.json new file mode 100644 index 000000000..2646da134 --- /dev/null +++ b/src/generated/resources/data/create/recipes/cutting/acacia_wood.json @@ -0,0 +1,15 @@ +{ + "type": "create:cutting", + "ingredients": [ + { + "item": "minecraft:acacia_wood" + } + ], + "results": [ + { + "item": "minecraft:stripped_acacia_wood", + "count": 1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/andesite_alloy.json b/src/generated/resources/data/create/recipes/cutting/andesite_alloy.json new file mode 100644 index 000000000..e43f2d56a --- /dev/null +++ b/src/generated/resources/data/create/recipes/cutting/andesite_alloy.json @@ -0,0 +1,15 @@ +{ + "type": "create:cutting", + "ingredients": [ + { + "item": "create:andesite_alloy" + } + ], + "results": [ + { + "item": "create:shaft", + "count": 6 + } + ], + "processingTime": 200 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/birch_log.json b/src/generated/resources/data/create/recipes/cutting/birch_log.json new file mode 100644 index 000000000..9d2e90d44 --- /dev/null +++ b/src/generated/resources/data/create/recipes/cutting/birch_log.json @@ -0,0 +1,15 @@ +{ + "type": "create:cutting", + "ingredients": [ + { + "item": "minecraft:birch_log" + } + ], + "results": [ + { + "item": "minecraft:stripped_birch_log", + "count": 1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/birch_wood.json b/src/generated/resources/data/create/recipes/cutting/birch_wood.json new file mode 100644 index 000000000..b788eebb2 --- /dev/null +++ b/src/generated/resources/data/create/recipes/cutting/birch_wood.json @@ -0,0 +1,15 @@ +{ + "type": "create:cutting", + "ingredients": [ + { + "item": "minecraft:birch_wood" + } + ], + "results": [ + { + "item": "minecraft:stripped_birch_wood", + "count": 1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/dark_oak_log.json b/src/generated/resources/data/create/recipes/cutting/dark_oak_log.json new file mode 100644 index 000000000..82dd4b22e --- /dev/null +++ b/src/generated/resources/data/create/recipes/cutting/dark_oak_log.json @@ -0,0 +1,15 @@ +{ + "type": "create:cutting", + "ingredients": [ + { + "item": "minecraft:dark_oak_log" + } + ], + "results": [ + { + "item": "minecraft:stripped_dark_oak_log", + "count": 1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/dark_oak_wood.json b/src/generated/resources/data/create/recipes/cutting/dark_oak_wood.json new file mode 100644 index 000000000..8c56dcf76 --- /dev/null +++ b/src/generated/resources/data/create/recipes/cutting/dark_oak_wood.json @@ -0,0 +1,15 @@ +{ + "type": "create:cutting", + "ingredients": [ + { + "item": "minecraft:dark_oak_wood" + } + ], + "results": [ + { + "item": "minecraft:stripped_dark_oak_wood", + "count": 1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/jungle_log.json b/src/generated/resources/data/create/recipes/cutting/jungle_log.json new file mode 100644 index 000000000..06925a237 --- /dev/null +++ b/src/generated/resources/data/create/recipes/cutting/jungle_log.json @@ -0,0 +1,15 @@ +{ + "type": "create:cutting", + "ingredients": [ + { + "item": "minecraft:jungle_log" + } + ], + "results": [ + { + "item": "minecraft:stripped_jungle_log", + "count": 1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/jungle_wood.json b/src/generated/resources/data/create/recipes/cutting/jungle_wood.json new file mode 100644 index 000000000..ee2f67cb1 --- /dev/null +++ b/src/generated/resources/data/create/recipes/cutting/jungle_wood.json @@ -0,0 +1,15 @@ +{ + "type": "create:cutting", + "ingredients": [ + { + "item": "minecraft:jungle_wood" + } + ], + "results": [ + { + "item": "minecraft:stripped_jungle_wood", + "count": 1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/oak_log.json b/src/generated/resources/data/create/recipes/cutting/oak_log.json new file mode 100644 index 000000000..d699bbcb3 --- /dev/null +++ b/src/generated/resources/data/create/recipes/cutting/oak_log.json @@ -0,0 +1,15 @@ +{ + "type": "create:cutting", + "ingredients": [ + { + "item": "minecraft:oak_log" + } + ], + "results": [ + { + "item": "minecraft:stripped_oak_log", + "count": 1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/oak_wood.json b/src/generated/resources/data/create/recipes/cutting/oak_wood.json new file mode 100644 index 000000000..275016a6d --- /dev/null +++ b/src/generated/resources/data/create/recipes/cutting/oak_wood.json @@ -0,0 +1,15 @@ +{ + "type": "create:cutting", + "ingredients": [ + { + "item": "minecraft:oak_wood" + } + ], + "results": [ + { + "item": "minecraft:stripped_oak_wood", + "count": 1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/spruce_log.json b/src/generated/resources/data/create/recipes/cutting/spruce_log.json new file mode 100644 index 000000000..bef24e667 --- /dev/null +++ b/src/generated/resources/data/create/recipes/cutting/spruce_log.json @@ -0,0 +1,15 @@ +{ + "type": "create:cutting", + "ingredients": [ + { + "item": "minecraft:spruce_log" + } + ], + "results": [ + { + "item": "minecraft:stripped_spruce_log", + "count": 1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/spruce_wood.json b/src/generated/resources/data/create/recipes/cutting/spruce_wood.json new file mode 100644 index 000000000..4a7469621 --- /dev/null +++ b/src/generated/resources/data/create/recipes/cutting/spruce_wood.json @@ -0,0 +1,15 @@ +{ + "type": "create:cutting", + "ingredients": [ + { + "item": "minecraft:spruce_wood" + } + ], + "results": [ + { + "item": "minecraft:stripped_spruce_wood", + "count": 1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/stripped_acacia_log.json b/src/generated/resources/data/create/recipes/cutting/stripped_acacia_log.json new file mode 100644 index 000000000..c04b56b51 --- /dev/null +++ b/src/generated/resources/data/create/recipes/cutting/stripped_acacia_log.json @@ -0,0 +1,15 @@ +{ + "type": "create:cutting", + "ingredients": [ + { + "item": "minecraft:stripped_acacia_log" + } + ], + "results": [ + { + "item": "minecraft:acacia_planks", + "count": 5 + } + ], + "processingTime": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/stripped_acacia_wood.json b/src/generated/resources/data/create/recipes/cutting/stripped_acacia_wood.json new file mode 100644 index 000000000..b13377f88 --- /dev/null +++ b/src/generated/resources/data/create/recipes/cutting/stripped_acacia_wood.json @@ -0,0 +1,15 @@ +{ + "type": "create:cutting", + "ingredients": [ + { + "item": "minecraft:stripped_acacia_wood" + } + ], + "results": [ + { + "item": "minecraft:acacia_planks", + "count": 5 + } + ], + "processingTime": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/stripped_birch_log.json b/src/generated/resources/data/create/recipes/cutting/stripped_birch_log.json new file mode 100644 index 000000000..367c77dda --- /dev/null +++ b/src/generated/resources/data/create/recipes/cutting/stripped_birch_log.json @@ -0,0 +1,15 @@ +{ + "type": "create:cutting", + "ingredients": [ + { + "item": "minecraft:stripped_birch_log" + } + ], + "results": [ + { + "item": "minecraft:birch_planks", + "count": 5 + } + ], + "processingTime": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/stripped_birch_wood.json b/src/generated/resources/data/create/recipes/cutting/stripped_birch_wood.json new file mode 100644 index 000000000..e47607e25 --- /dev/null +++ b/src/generated/resources/data/create/recipes/cutting/stripped_birch_wood.json @@ -0,0 +1,15 @@ +{ + "type": "create:cutting", + "ingredients": [ + { + "item": "minecraft:stripped_birch_wood" + } + ], + "results": [ + { + "item": "minecraft:birch_planks", + "count": 5 + } + ], + "processingTime": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/stripped_dark_oak_log.json b/src/generated/resources/data/create/recipes/cutting/stripped_dark_oak_log.json new file mode 100644 index 000000000..926996581 --- /dev/null +++ b/src/generated/resources/data/create/recipes/cutting/stripped_dark_oak_log.json @@ -0,0 +1,15 @@ +{ + "type": "create:cutting", + "ingredients": [ + { + "item": "minecraft:stripped_dark_oak_log" + } + ], + "results": [ + { + "item": "minecraft:dark_oak_planks", + "count": 5 + } + ], + "processingTime": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/stripped_dark_oak_wood.json b/src/generated/resources/data/create/recipes/cutting/stripped_dark_oak_wood.json new file mode 100644 index 000000000..7df760eb5 --- /dev/null +++ b/src/generated/resources/data/create/recipes/cutting/stripped_dark_oak_wood.json @@ -0,0 +1,15 @@ +{ + "type": "create:cutting", + "ingredients": [ + { + "item": "minecraft:stripped_dark_oak_wood" + } + ], + "results": [ + { + "item": "minecraft:dark_oak_planks", + "count": 5 + } + ], + "processingTime": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/stripped_jungle_log.json b/src/generated/resources/data/create/recipes/cutting/stripped_jungle_log.json new file mode 100644 index 000000000..f4cfbdb15 --- /dev/null +++ b/src/generated/resources/data/create/recipes/cutting/stripped_jungle_log.json @@ -0,0 +1,15 @@ +{ + "type": "create:cutting", + "ingredients": [ + { + "item": "minecraft:stripped_jungle_log" + } + ], + "results": [ + { + "item": "minecraft:jungle_planks", + "count": 5 + } + ], + "processingTime": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/stripped_jungle_wood.json b/src/generated/resources/data/create/recipes/cutting/stripped_jungle_wood.json new file mode 100644 index 000000000..2cbc87f06 --- /dev/null +++ b/src/generated/resources/data/create/recipes/cutting/stripped_jungle_wood.json @@ -0,0 +1,15 @@ +{ + "type": "create:cutting", + "ingredients": [ + { + "item": "minecraft:stripped_jungle_wood" + } + ], + "results": [ + { + "item": "minecraft:jungle_planks", + "count": 5 + } + ], + "processingTime": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/stripped_oak_log.json b/src/generated/resources/data/create/recipes/cutting/stripped_oak_log.json new file mode 100644 index 000000000..9fe00f52d --- /dev/null +++ b/src/generated/resources/data/create/recipes/cutting/stripped_oak_log.json @@ -0,0 +1,15 @@ +{ + "type": "create:cutting", + "ingredients": [ + { + "item": "minecraft:stripped_oak_log" + } + ], + "results": [ + { + "item": "minecraft:oak_planks", + "count": 5 + } + ], + "processingTime": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/stripped_oak_wood.json b/src/generated/resources/data/create/recipes/cutting/stripped_oak_wood.json new file mode 100644 index 000000000..c761dbfd7 --- /dev/null +++ b/src/generated/resources/data/create/recipes/cutting/stripped_oak_wood.json @@ -0,0 +1,15 @@ +{ + "type": "create:cutting", + "ingredients": [ + { + "item": "minecraft:stripped_oak_wood" + } + ], + "results": [ + { + "item": "minecraft:oak_planks", + "count": 5 + } + ], + "processingTime": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/stripped_spruce_log.json b/src/generated/resources/data/create/recipes/cutting/stripped_spruce_log.json new file mode 100644 index 000000000..7bec71d4e --- /dev/null +++ b/src/generated/resources/data/create/recipes/cutting/stripped_spruce_log.json @@ -0,0 +1,15 @@ +{ + "type": "create:cutting", + "ingredients": [ + { + "item": "minecraft:stripped_spruce_log" + } + ], + "results": [ + { + "item": "minecraft:spruce_planks", + "count": 5 + } + ], + "processingTime": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/stripped_spruce_wood.json b/src/generated/resources/data/create/recipes/cutting/stripped_spruce_wood.json new file mode 100644 index 000000000..45f30b64b --- /dev/null +++ b/src/generated/resources/data/create/recipes/cutting/stripped_spruce_wood.json @@ -0,0 +1,15 @@ +{ + "type": "create:cutting", + "ingredients": [ + { + "item": "minecraft:stripped_spruce_wood" + } + ], + "results": [ + { + "item": "minecraft:spruce_planks", + "count": 5 + } + ], + "processingTime": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/allium.json b/src/generated/resources/data/create/recipes/milling/allium.json new file mode 100644 index 000000000..9b2122fb5 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/allium.json @@ -0,0 +1,25 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:allium" + } + ], + "results": [ + { + "item": "minecraft:magenta_dye", + "count": 2 + }, + { + "item": "minecraft:purple_dye", + "count": 2, + "chance": 0.1 + }, + { + "item": "minecraft:pink_dye", + "count": 1, + "chance": 0.1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/andesite.json b/src/generated/resources/data/create/recipes/milling/andesite.json new file mode 100644 index 000000000..b6407650b --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/andesite.json @@ -0,0 +1,15 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:andesite" + } + ], + "results": [ + { + "item": "minecraft:cobblestone", + "count": 1 + } + ], + "processingTime": 200 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/azure_bluet.json b/src/generated/resources/data/create/recipes/milling/azure_bluet.json new file mode 100644 index 000000000..0fd3c365a --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/azure_bluet.json @@ -0,0 +1,20 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:azure_bluet" + } + ], + "results": [ + { + "item": "minecraft:light_gray_dye", + "count": 2 + }, + { + "item": "minecraft:white_dye", + "count": 2, + "chance": 0.1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/blue_orchid.json b/src/generated/resources/data/create/recipes/milling/blue_orchid.json new file mode 100644 index 000000000..c6a74e299 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/blue_orchid.json @@ -0,0 +1,20 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:blue_orchid" + } + ], + "results": [ + { + "item": "minecraft:light_blue_dye", + "count": 2 + }, + { + "item": "minecraft:light_gray_dye", + "count": 1, + "chance": 0.05 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/bone.json b/src/generated/resources/data/create/recipes/milling/bone.json new file mode 100644 index 000000000..4749558c9 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/bone.json @@ -0,0 +1,25 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:bone" + } + ], + "results": [ + { + "item": "minecraft:bone_meal", + "count": 3 + }, + { + "item": "minecraft:white_dye", + "count": 1, + "chance": 0.25 + }, + { + "item": "minecraft:bone_meal", + "count": 3, + "chance": 0.25 + } + ], + "processingTime": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/bone_meal.json b/src/generated/resources/data/create/recipes/milling/bone_meal.json new file mode 100644 index 000000000..ff4066c57 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/bone_meal.json @@ -0,0 +1,20 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:bone_meal" + } + ], + "results": [ + { + "item": "minecraft:white_dye", + "count": 2 + }, + { + "item": "minecraft:light_gray_dye", + "count": 1, + "chance": 0.1 + } + ], + "processingTime": 70 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/cactus.json b/src/generated/resources/data/create/recipes/milling/cactus.json new file mode 100644 index 000000000..3f827b13f --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/cactus.json @@ -0,0 +1,29 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:cactus" + } + ], + "results": [ + { + "item": "minecraft:green_dye", + "count": 2 + }, + { + "item": "minecraft:green_dye", + "count": 1, + "chance": 0.1 + } + ], + "processingTime": 50, + "conditions": [ + { + "value": { + "modid": "quark", + "type": "forge:mod_loaded" + }, + "type": "forge:not" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/charcoal.json b/src/generated/resources/data/create/recipes/milling/charcoal.json new file mode 100644 index 000000000..e85668da1 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/charcoal.json @@ -0,0 +1,20 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:charcoal" + } + ], + "results": [ + { + "item": "minecraft:black_dye", + "count": 1 + }, + { + "item": "minecraft:gray_dye", + "count": 2, + "chance": 0.1 + } + ], + "processingTime": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/clay.json b/src/generated/resources/data/create/recipes/milling/clay.json new file mode 100644 index 000000000..fd2e6eb8e --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/clay.json @@ -0,0 +1,20 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:clay" + } + ], + "results": [ + { + "item": "minecraft:clay_ball", + "count": 3 + }, + { + "item": "minecraft:clay_ball", + "count": 1, + "chance": 0.5 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/coal.json b/src/generated/resources/data/create/recipes/milling/coal.json new file mode 100644 index 000000000..08fd5cba4 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/coal.json @@ -0,0 +1,20 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:coal" + } + ], + "results": [ + { + "item": "minecraft:black_dye", + "count": 2 + }, + { + "item": "minecraft:gray_dye", + "count": 1, + "chance": 0.1 + } + ], + "processingTime": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/cobblestone.json b/src/generated/resources/data/create/recipes/milling/cobblestone.json new file mode 100644 index 000000000..73bddb47e --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/cobblestone.json @@ -0,0 +1,15 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:cobblestone" + } + ], + "results": [ + { + "item": "minecraft:gravel", + "count": 1 + } + ], + "processingTime": 250 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/cocoa_beans.json b/src/generated/resources/data/create/recipes/milling/cocoa_beans.json new file mode 100644 index 000000000..9bd6ff751 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/cocoa_beans.json @@ -0,0 +1,20 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:cocoa_beans" + } + ], + "results": [ + { + "item": "minecraft:brown_dye", + "count": 2 + }, + { + "item": "minecraft:brown_dye", + "count": 1, + "chance": 0.1 + } + ], + "processingTime": 70 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/copper_ore.json b/src/generated/resources/data/create/recipes/milling/copper_ore.json new file mode 100644 index 000000000..8dd6ac2d7 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/copper_ore.json @@ -0,0 +1,15 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "tag": "forge:ores/copper" + } + ], + "results": [ + { + "item": "create:crushed_copper_ore", + "count": 1 + } + ], + "processingTime": 350 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/cornflower.json b/src/generated/resources/data/create/recipes/milling/cornflower.json new file mode 100644 index 000000000..14802f13e --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/cornflower.json @@ -0,0 +1,15 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:cornflower" + } + ], + "results": [ + { + "item": "minecraft:blue_dye", + "count": 2 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/dandelion.json b/src/generated/resources/data/create/recipes/milling/dandelion.json new file mode 100644 index 000000000..7a075b62e --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/dandelion.json @@ -0,0 +1,20 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:dandelion" + } + ], + "results": [ + { + "item": "minecraft:yellow_dye", + "count": 2 + }, + { + "item": "minecraft:yellow_dye", + "count": 1, + "chance": 0.05 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/diorite.json b/src/generated/resources/data/create/recipes/milling/diorite.json new file mode 100644 index 000000000..03d738539 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/diorite.json @@ -0,0 +1,15 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:diorite" + } + ], + "results": [ + { + "item": "create:limesand", + "count": 1 + } + ], + "processingTime": 200 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/fern.json b/src/generated/resources/data/create/recipes/milling/fern.json new file mode 100644 index 000000000..61c0647c6 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/fern.json @@ -0,0 +1,20 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:fern" + } + ], + "results": [ + { + "item": "minecraft:green_dye", + "count": 1 + }, + { + "item": "minecraft:wheat_seeds", + "count": 1, + "chance": 0.1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/gold_ore.json b/src/generated/resources/data/create/recipes/milling/gold_ore.json new file mode 100644 index 000000000..c4268cfd5 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/gold_ore.json @@ -0,0 +1,15 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "tag": "forge:ores/gold" + } + ], + "results": [ + { + "item": "create:crushed_gold_ore", + "count": 1 + } + ], + "processingTime": 300 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/granite.json b/src/generated/resources/data/create/recipes/milling/granite.json new file mode 100644 index 000000000..4deb8938a --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/granite.json @@ -0,0 +1,15 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:granite" + } + ], + "results": [ + { + "item": "minecraft:red_sand", + "count": 1 + } + ], + "processingTime": 200 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/grass.json b/src/generated/resources/data/create/recipes/milling/grass.json new file mode 100644 index 000000000..4296a29a4 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/grass.json @@ -0,0 +1,16 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:grass" + } + ], + "results": [ + { + "item": "minecraft:wheat_seeds", + "count": 1, + "chance": 0.25 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/gravel.json b/src/generated/resources/data/create/recipes/milling/gravel.json new file mode 100644 index 000000000..2f2936565 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/gravel.json @@ -0,0 +1,15 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:gravel" + } + ], + "results": [ + { + "item": "minecraft:flint", + "count": 1 + } + ], + "processingTime": 250 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/ink_sac.json b/src/generated/resources/data/create/recipes/milling/ink_sac.json new file mode 100644 index 000000000..80d8f92c4 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/ink_sac.json @@ -0,0 +1,20 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:ink_sac" + } + ], + "results": [ + { + "item": "minecraft:black_dye", + "count": 2 + }, + { + "item": "minecraft:gray_dye", + "count": 1, + "chance": 0.1 + } + ], + "processingTime": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/iron_ore.json b/src/generated/resources/data/create/recipes/milling/iron_ore.json new file mode 100644 index 000000000..6cedea49f --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/iron_ore.json @@ -0,0 +1,15 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "tag": "forge:ores/iron" + } + ], + "results": [ + { + "item": "create:crushed_iron_ore", + "count": 1 + } + ], + "processingTime": 400 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/lapis_lazuli.json b/src/generated/resources/data/create/recipes/milling/lapis_lazuli.json new file mode 100644 index 000000000..7e8dc7061 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/lapis_lazuli.json @@ -0,0 +1,20 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:lapis_lazuli" + } + ], + "results": [ + { + "item": "minecraft:blue_dye", + "count": 2 + }, + { + "item": "minecraft:blue_dye", + "count": 1, + "chance": 0.1 + } + ], + "processingTime": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/large_fern.json b/src/generated/resources/data/create/recipes/milling/large_fern.json new file mode 100644 index 000000000..820a2d3b4 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/large_fern.json @@ -0,0 +1,25 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:large_fern" + } + ], + "results": [ + { + "item": "minecraft:green_dye", + "count": 2 + }, + { + "item": "minecraft:green_dye", + "count": 1, + "chance": 0.5 + }, + { + "item": "minecraft:wheat_seeds", + "count": 1, + "chance": 0.1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/lilac.json b/src/generated/resources/data/create/recipes/milling/lilac.json new file mode 100644 index 000000000..e996dab47 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/lilac.json @@ -0,0 +1,25 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:lilac" + } + ], + "results": [ + { + "item": "minecraft:magenta_dye", + "count": 3 + }, + { + "item": "minecraft:magenta_dye", + "count": 1, + "chance": 0.25 + }, + { + "item": "minecraft:purple_dye", + "count": 1, + "chance": 0.25 + } + ], + "processingTime": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/lily_of_the_valley.json b/src/generated/resources/data/create/recipes/milling/lily_of_the_valley.json new file mode 100644 index 000000000..75f5061a8 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/lily_of_the_valley.json @@ -0,0 +1,25 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:lily_of_the_valley" + } + ], + "results": [ + { + "item": "minecraft:white_dye", + "count": 2 + }, + { + "item": "minecraft:lime_dye", + "count": 1, + "chance": 0.1 + }, + { + "item": "minecraft:white_dye", + "count": 1, + "chance": 0.1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/orange_tulip.json b/src/generated/resources/data/create/recipes/milling/orange_tulip.json new file mode 100644 index 000000000..9bd63ec00 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/orange_tulip.json @@ -0,0 +1,20 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:orange_tulip" + } + ], + "results": [ + { + "item": "minecraft:orange_dye", + "count": 2 + }, + { + "item": "minecraft:lime_dye", + "count": 1, + "chance": 0.1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/oxeye_daisy.json b/src/generated/resources/data/create/recipes/milling/oxeye_daisy.json new file mode 100644 index 000000000..b4bf83a33 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/oxeye_daisy.json @@ -0,0 +1,25 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:oxeye_daisy" + } + ], + "results": [ + { + "item": "minecraft:light_gray_dye", + "count": 2 + }, + { + "item": "minecraft:white_dye", + "count": 1, + "chance": 0.2 + }, + { + "item": "minecraft:yellow_dye", + "count": 1, + "chance": 0.05 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/peony.json b/src/generated/resources/data/create/recipes/milling/peony.json new file mode 100644 index 000000000..1c10dc7c1 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/peony.json @@ -0,0 +1,25 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:peony" + } + ], + "results": [ + { + "item": "minecraft:pink_dye", + "count": 3 + }, + { + "item": "minecraft:magenta_dye", + "count": 1, + "chance": 0.25 + }, + { + "item": "minecraft:pink_dye", + "count": 1, + "chance": 0.25 + } + ], + "processingTime": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/pink_tulip.json b/src/generated/resources/data/create/recipes/milling/pink_tulip.json new file mode 100644 index 000000000..8503ef5b6 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/pink_tulip.json @@ -0,0 +1,20 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:pink_tulip" + } + ], + "results": [ + { + "item": "minecraft:pink_dye", + "count": 2 + }, + { + "item": "minecraft:lime_dye", + "count": 1, + "chance": 0.1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/poppy.json b/src/generated/resources/data/create/recipes/milling/poppy.json new file mode 100644 index 000000000..49e044999 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/poppy.json @@ -0,0 +1,20 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:poppy" + } + ], + "results": [ + { + "item": "minecraft:red_dye", + "count": 2 + }, + { + "item": "minecraft:green_dye", + "count": 1, + "chance": 0.05 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/red_tulip.json b/src/generated/resources/data/create/recipes/milling/red_tulip.json new file mode 100644 index 000000000..0bfeae5a4 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/red_tulip.json @@ -0,0 +1,20 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:red_tulip" + } + ], + "results": [ + { + "item": "minecraft:red_dye", + "count": 2 + }, + { + "item": "minecraft:lime_dye", + "count": 1, + "chance": 0.1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/rose_bush.json b/src/generated/resources/data/create/recipes/milling/rose_bush.json new file mode 100644 index 000000000..cbb71a6db --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/rose_bush.json @@ -0,0 +1,25 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:rose_bush" + } + ], + "results": [ + { + "item": "minecraft:red_dye", + "count": 3 + }, + { + "item": "minecraft:green_dye", + "count": 2, + "chance": 0.05 + }, + { + "item": "minecraft:red_dye", + "count": 2, + "chance": 0.25 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/saddle.json b/src/generated/resources/data/create/recipes/milling/saddle.json new file mode 100644 index 000000000..65fa3d2ca --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/saddle.json @@ -0,0 +1,20 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:saddle" + } + ], + "results": [ + { + "item": "minecraft:leather", + "count": 2 + }, + { + "item": "minecraft:leather", + "count": 2, + "chance": 0.5 + } + ], + "processingTime": 200 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/sand.json b/src/generated/resources/data/create/recipes/milling/sand.json new file mode 100644 index 000000000..ed73b0f46 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/sand.json @@ -0,0 +1,15 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:sand" + } + ], + "results": [ + { + "item": "create:limesand", + "count": 1 + } + ], + "processingTime": 150 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/sugar_cane.json b/src/generated/resources/data/create/recipes/milling/sugar_cane.json new file mode 100644 index 000000000..6c6447858 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/sugar_cane.json @@ -0,0 +1,20 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:sugar_cane" + } + ], + "results": [ + { + "item": "minecraft:sugar", + "count": 2 + }, + { + "item": "minecraft:sugar", + "count": 1, + "chance": 0.1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/sunflower.json b/src/generated/resources/data/create/recipes/milling/sunflower.json new file mode 100644 index 000000000..8152ef361 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/sunflower.json @@ -0,0 +1,25 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:sunflower" + } + ], + "results": [ + { + "item": "minecraft:yellow_dye", + "count": 3 + }, + { + "item": "minecraft:orange_dye", + "count": 1, + "chance": 0.25 + }, + { + "item": "minecraft:yellow_dye", + "count": 1, + "chance": 0.25 + } + ], + "processingTime": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/tall_grass.json b/src/generated/resources/data/create/recipes/milling/tall_grass.json new file mode 100644 index 000000000..0a424d6b2 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/tall_grass.json @@ -0,0 +1,16 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:tall_grass" + } + ], + "results": [ + { + "item": "minecraft:wheat_seeds", + "count": 1, + "chance": 0.5 + } + ], + "processingTime": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/terracotta.json b/src/generated/resources/data/create/recipes/milling/terracotta.json new file mode 100644 index 000000000..f6afd2d6c --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/terracotta.json @@ -0,0 +1,15 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:terracotta" + } + ], + "results": [ + { + "item": "minecraft:red_sand", + "count": 1 + } + ], + "processingTime": 200 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/wheat.json b/src/generated/resources/data/create/recipes/milling/wheat.json new file mode 100644 index 000000000..21a37e275 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/wheat.json @@ -0,0 +1,25 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:wheat" + } + ], + "results": [ + { + "item": "create:wheat_flour", + "count": 1 + }, + { + "item": "create:wheat_flour", + "count": 2, + "chance": 0.25 + }, + { + "item": "minecraft:wheat_seeds", + "count": 1, + "chance": 0.25 + } + ], + "processingTime": 150 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/white_tulip.json b/src/generated/resources/data/create/recipes/milling/white_tulip.json new file mode 100644 index 000000000..6a8161037 --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/white_tulip.json @@ -0,0 +1,20 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:white_tulip" + } + ], + "results": [ + { + "item": "minecraft:white_dye", + "count": 2 + }, + { + "item": "minecraft:lime_dye", + "count": 1, + "chance": 0.1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/wither_rose.json b/src/generated/resources/data/create/recipes/milling/wither_rose.json new file mode 100644 index 000000000..36123474b --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/wither_rose.json @@ -0,0 +1,20 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "minecraft:wither_rose" + } + ], + "results": [ + { + "item": "minecraft:black_dye", + "count": 2 + }, + { + "item": "minecraft:black_dye", + "count": 1, + "chance": 0.1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/wool.json b/src/generated/resources/data/create/recipes/milling/wool.json new file mode 100644 index 000000000..97a819e2b --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/wool.json @@ -0,0 +1,15 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "tag": "minecraft:wool" + } + ], + "results": [ + { + "item": "minecraft:string", + "count": 1 + } + ], + "processingTime": 100 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/milling/zinc_ore.json b/src/generated/resources/data/create/recipes/milling/zinc_ore.json new file mode 100644 index 000000000..ffb5b29bb --- /dev/null +++ b/src/generated/resources/data/create/recipes/milling/zinc_ore.json @@ -0,0 +1,15 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "tag": "forge:ores/zinc" + } + ], + "results": [ + { + "item": "create:crushed_zinc_ore", + "count": 1 + } + ], + "processingTime": 350 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/mixing/andesite_alloy.json b/src/generated/resources/data/create/recipes/mixing/andesite_alloy.json new file mode 100644 index 000000000..8d1c20243 --- /dev/null +++ b/src/generated/resources/data/create/recipes/mixing/andesite_alloy.json @@ -0,0 +1,17 @@ +{ + "type": "create:mixing", + "ingredients": [ + { + "item": "minecraft:andesite" + }, + { + "tag": "forge:nuggets/iron" + } + ], + "results": [ + { + "item": "create:andesite_alloy", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/mixing/andesite_alloy_from_zinc.json b/src/generated/resources/data/create/recipes/mixing/andesite_alloy_from_zinc.json new file mode 100644 index 000000000..dde956bfe --- /dev/null +++ b/src/generated/resources/data/create/recipes/mixing/andesite_alloy_from_zinc.json @@ -0,0 +1,17 @@ +{ + "type": "create:mixing", + "ingredients": [ + { + "item": "minecraft:andesite" + }, + { + "tag": "forge:nuggets/zinc" + } + ], + "results": [ + { + "item": "create:andesite_alloy", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/mixing/brass_ingot.json b/src/generated/resources/data/create/recipes/mixing/brass_ingot.json new file mode 100644 index 000000000..94183eb22 --- /dev/null +++ b/src/generated/resources/data/create/recipes/mixing/brass_ingot.json @@ -0,0 +1,18 @@ +{ + "type": "create:mixing", + "ingredients": [ + { + "tag": "forge:ingots/copper" + }, + { + "tag": "forge:ingots/zinc" + } + ], + "results": [ + { + "item": "create:brass_ingot", + "count": 2 + } + ], + "heatRequirement": "heated" +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/mixing/chromatic_compound.json b/src/generated/resources/data/create/recipes/mixing/chromatic_compound.json new file mode 100644 index 000000000..a30ac51c3 --- /dev/null +++ b/src/generated/resources/data/create/recipes/mixing/chromatic_compound.json @@ -0,0 +1,33 @@ +{ + "type": "create:mixing", + "ingredients": [ + { + "tag": "forge:dusts/glowstone" + }, + { + "tag": "forge:dusts/glowstone" + }, + { + "tag": "forge:dusts/glowstone" + }, + { + "item": "create:powdered_obsidian" + }, + { + "item": "create:powdered_obsidian" + }, + { + "item": "create:powdered_obsidian" + }, + { + "item": "create:polished_rose_quartz" + } + ], + "results": [ + { + "item": "create:chromatic_compound", + "count": 1 + } + ], + "heatRequirement": "superheated" +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/mixing/crushed_brass.json b/src/generated/resources/data/create/recipes/mixing/crushed_brass.json new file mode 100644 index 000000000..7c1e34832 --- /dev/null +++ b/src/generated/resources/data/create/recipes/mixing/crushed_brass.json @@ -0,0 +1,18 @@ +{ + "type": "create:mixing", + "ingredients": [ + { + "item": "create:crushed_copper_ore" + }, + { + "item": "create:crushed_zinc_ore" + } + ], + "results": [ + { + "item": "create:crushed_brass", + "count": 2 + } + ], + "heatRequirement": "heated" +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/mixing/gunpowder.json b/src/generated/resources/data/create/recipes/mixing/gunpowder.json new file mode 100644 index 000000000..f098f05fb --- /dev/null +++ b/src/generated/resources/data/create/recipes/mixing/gunpowder.json @@ -0,0 +1,21 @@ +{ + "type": "create:mixing", + "ingredients": [ + { + "tag": "minecraft:coals" + }, + { + "item": "create:crushed_zinc_ore" + }, + { + "item": "minecraft:gunpowder" + } + ], + "results": [ + { + "item": "minecraft:gunpowder", + "count": 2 + } + ], + "heatRequirement": "heated" +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/pressing/brass_ingot.json b/src/generated/resources/data/create/recipes/pressing/brass_ingot.json new file mode 100644 index 000000000..5c499ec8a --- /dev/null +++ b/src/generated/resources/data/create/recipes/pressing/brass_ingot.json @@ -0,0 +1,14 @@ +{ + "type": "create:pressing", + "ingredients": [ + { + "tag": "forge:ingots/brass" + } + ], + "results": [ + { + "item": "create:brass_sheet", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/pressing/copper_ingot.json b/src/generated/resources/data/create/recipes/pressing/copper_ingot.json new file mode 100644 index 000000000..02aef9044 --- /dev/null +++ b/src/generated/resources/data/create/recipes/pressing/copper_ingot.json @@ -0,0 +1,14 @@ +{ + "type": "create:pressing", + "ingredients": [ + { + "tag": "forge:ingots/copper" + } + ], + "results": [ + { + "item": "create:copper_sheet", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/pressing/gold_ingot.json b/src/generated/resources/data/create/recipes/pressing/gold_ingot.json new file mode 100644 index 000000000..701617f27 --- /dev/null +++ b/src/generated/resources/data/create/recipes/pressing/gold_ingot.json @@ -0,0 +1,14 @@ +{ + "type": "create:pressing", + "ingredients": [ + { + "tag": "forge:ingots/gold" + } + ], + "results": [ + { + "item": "create:golden_sheet", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/pressing/iron_ingot.json b/src/generated/resources/data/create/recipes/pressing/iron_ingot.json new file mode 100644 index 000000000..fd85bea05 --- /dev/null +++ b/src/generated/resources/data/create/recipes/pressing/iron_ingot.json @@ -0,0 +1,14 @@ +{ + "type": "create:pressing", + "ingredients": [ + { + "tag": "forge:ingots/iron" + } + ], + "results": [ + { + "item": "create:iron_sheet", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/pressing/lapis_block.json b/src/generated/resources/data/create/recipes/pressing/lapis_block.json new file mode 100644 index 000000000..f68528d3f --- /dev/null +++ b/src/generated/resources/data/create/recipes/pressing/lapis_block.json @@ -0,0 +1,14 @@ +{ + "type": "create:pressing", + "ingredients": [ + { + "item": "minecraft:lapis_block" + } + ], + "results": [ + { + "item": "create:lapis_sheet", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/pressing/sugar_cane.json b/src/generated/resources/data/create/recipes/pressing/sugar_cane.json new file mode 100644 index 000000000..87a604c77 --- /dev/null +++ b/src/generated/resources/data/create/recipes/pressing/sugar_cane.json @@ -0,0 +1,14 @@ +{ + "type": "create:pressing", + "ingredients": [ + { + "item": "minecraft:sugar_cane" + } + ], + "results": [ + { + "item": "minecraft:paper", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/sandpaper_polishing/rose_quartz.json b/src/generated/resources/data/create/recipes/sandpaper_polishing/rose_quartz.json new file mode 100644 index 000000000..2c25f2400 --- /dev/null +++ b/src/generated/resources/data/create/recipes/sandpaper_polishing/rose_quartz.json @@ -0,0 +1,14 @@ +{ + "type": "create:sandpaper_polishing", + "ingredients": [ + { + "item": "create:rose_quartz" + } + ], + "results": [ + { + "item": "create:polished_rose_quartz", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/black_concrete_powder.json b/src/generated/resources/data/create/recipes/splashing/black_concrete_powder.json new file mode 100644 index 000000000..be410a1b9 --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/black_concrete_powder.json @@ -0,0 +1,14 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "minecraft:black_concrete_powder" + } + ], + "results": [ + { + "item": "minecraft:black_concrete", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/blue_concrete_powder.json b/src/generated/resources/data/create/recipes/splashing/blue_concrete_powder.json new file mode 100644 index 000000000..80be1c465 --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/blue_concrete_powder.json @@ -0,0 +1,14 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "minecraft:blue_concrete_powder" + } + ], + "results": [ + { + "item": "minecraft:blue_concrete", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/brown_concrete_powder.json b/src/generated/resources/data/create/recipes/splashing/brown_concrete_powder.json new file mode 100644 index 000000000..63fadb792 --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/brown_concrete_powder.json @@ -0,0 +1,14 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "minecraft:brown_concrete_powder" + } + ], + "results": [ + { + "item": "minecraft:brown_concrete", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/crushed_brass.json b/src/generated/resources/data/create/recipes/splashing/crushed_brass.json new file mode 100644 index 000000000..3f24c6c85 --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/crushed_brass.json @@ -0,0 +1,19 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "create:crushed_brass" + } + ], + "results": [ + { + "item": "create:brass_nugget", + "count": 10 + }, + { + "item": "create:brass_nugget", + "count": 5, + "chance": 0.5 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/crushed_copper_ore.json b/src/generated/resources/data/create/recipes/splashing/crushed_copper_ore.json new file mode 100644 index 000000000..070f8ea77 --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/crushed_copper_ore.json @@ -0,0 +1,19 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "create:crushed_copper_ore" + } + ], + "results": [ + { + "item": "create:copper_nugget", + "count": 10 + }, + { + "item": "create:copper_nugget", + "count": 5, + "chance": 0.5 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/crushed_gold_ore.json b/src/generated/resources/data/create/recipes/splashing/crushed_gold_ore.json new file mode 100644 index 000000000..d2791a774 --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/crushed_gold_ore.json @@ -0,0 +1,19 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "create:crushed_gold_ore" + } + ], + "results": [ + { + "item": "minecraft:gold_nugget", + "count": 10 + }, + { + "item": "minecraft:gold_nugget", + "count": 5, + "chance": 0.5 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/crushed_iron_ore.json b/src/generated/resources/data/create/recipes/splashing/crushed_iron_ore.json new file mode 100644 index 000000000..7a9e70631 --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/crushed_iron_ore.json @@ -0,0 +1,19 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "create:crushed_iron_ore" + } + ], + "results": [ + { + "item": "minecraft:iron_nugget", + "count": 10 + }, + { + "item": "minecraft:iron_nugget", + "count": 5, + "chance": 0.5 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/crushed_zinc_ore.json b/src/generated/resources/data/create/recipes/splashing/crushed_zinc_ore.json new file mode 100644 index 000000000..5796f6834 --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/crushed_zinc_ore.json @@ -0,0 +1,19 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "create:crushed_zinc_ore" + } + ], + "results": [ + { + "item": "create:zinc_nugget", + "count": 10 + }, + { + "item": "create:zinc_nugget", + "count": 5, + "chance": 0.5 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/cyan_concrete_powder.json b/src/generated/resources/data/create/recipes/splashing/cyan_concrete_powder.json new file mode 100644 index 000000000..f8815092e --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/cyan_concrete_powder.json @@ -0,0 +1,14 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "minecraft:cyan_concrete_powder" + } + ], + "results": [ + { + "item": "minecraft:cyan_concrete", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/gravel.json b/src/generated/resources/data/create/recipes/splashing/gravel.json new file mode 100644 index 000000000..0df5f9371 --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/gravel.json @@ -0,0 +1,20 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "minecraft:gravel" + } + ], + "results": [ + { + "item": "minecraft:flint", + "count": 1, + "chance": 0.25 + }, + { + "item": "minecraft:iron_nugget", + "count": 1, + "chance": 0.125 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/gray_concrete_powder.json b/src/generated/resources/data/create/recipes/splashing/gray_concrete_powder.json new file mode 100644 index 000000000..f57928364 --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/gray_concrete_powder.json @@ -0,0 +1,14 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "minecraft:gray_concrete_powder" + } + ], + "results": [ + { + "item": "minecraft:gray_concrete", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/green_concrete_powder.json b/src/generated/resources/data/create/recipes/splashing/green_concrete_powder.json new file mode 100644 index 000000000..a5bfc4a8c --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/green_concrete_powder.json @@ -0,0 +1,14 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "minecraft:green_concrete_powder" + } + ], + "results": [ + { + "item": "minecraft:green_concrete", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/ice.json b/src/generated/resources/data/create/recipes/splashing/ice.json new file mode 100644 index 000000000..d5002d565 --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/ice.json @@ -0,0 +1,14 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "minecraft:ice" + } + ], + "results": [ + { + "item": "minecraft:packed_ice", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/light_blue_concrete_powder.json b/src/generated/resources/data/create/recipes/splashing/light_blue_concrete_powder.json new file mode 100644 index 000000000..cc226489d --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/light_blue_concrete_powder.json @@ -0,0 +1,14 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "minecraft:light_blue_concrete_powder" + } + ], + "results": [ + { + "item": "minecraft:light_blue_concrete", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/light_gray_concrete_powder.json b/src/generated/resources/data/create/recipes/splashing/light_gray_concrete_powder.json new file mode 100644 index 000000000..b99c4337a --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/light_gray_concrete_powder.json @@ -0,0 +1,14 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "minecraft:light_gray_concrete_powder" + } + ], + "results": [ + { + "item": "minecraft:light_gray_concrete", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/lime_concrete_powder.json b/src/generated/resources/data/create/recipes/splashing/lime_concrete_powder.json new file mode 100644 index 000000000..21439c2d7 --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/lime_concrete_powder.json @@ -0,0 +1,14 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "minecraft:lime_concrete_powder" + } + ], + "results": [ + { + "item": "minecraft:lime_concrete", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/limestone.json b/src/generated/resources/data/create/recipes/splashing/limestone.json new file mode 100644 index 000000000..c9ba671c0 --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/limestone.json @@ -0,0 +1,14 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "create:limestone" + } + ], + "results": [ + { + "item": "create:weathered_limestone", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/magenta_concrete_powder.json b/src/generated/resources/data/create/recipes/splashing/magenta_concrete_powder.json new file mode 100644 index 000000000..2fffbbde1 --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/magenta_concrete_powder.json @@ -0,0 +1,14 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "minecraft:magenta_concrete_powder" + } + ], + "results": [ + { + "item": "minecraft:magenta_concrete", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/magma_block.json b/src/generated/resources/data/create/recipes/splashing/magma_block.json new file mode 100644 index 000000000..42ea897a9 --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/magma_block.json @@ -0,0 +1,14 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "minecraft:magma_block" + } + ], + "results": [ + { + "item": "minecraft:obsidian", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/orange_concrete_powder.json b/src/generated/resources/data/create/recipes/splashing/orange_concrete_powder.json new file mode 100644 index 000000000..3ecbb2ca2 --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/orange_concrete_powder.json @@ -0,0 +1,14 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "minecraft:orange_concrete_powder" + } + ], + "results": [ + { + "item": "minecraft:orange_concrete", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/pink_concrete_powder.json b/src/generated/resources/data/create/recipes/splashing/pink_concrete_powder.json new file mode 100644 index 000000000..095ad54c8 --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/pink_concrete_powder.json @@ -0,0 +1,14 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "minecraft:pink_concrete_powder" + } + ], + "results": [ + { + "item": "minecraft:pink_concrete", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/purple_concrete_powder.json b/src/generated/resources/data/create/recipes/splashing/purple_concrete_powder.json new file mode 100644 index 000000000..09bd18055 --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/purple_concrete_powder.json @@ -0,0 +1,14 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "minecraft:purple_concrete_powder" + } + ], + "results": [ + { + "item": "minecraft:purple_concrete", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/red_concrete_powder.json b/src/generated/resources/data/create/recipes/splashing/red_concrete_powder.json new file mode 100644 index 000000000..d5ca0f3d8 --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/red_concrete_powder.json @@ -0,0 +1,14 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "minecraft:red_concrete_powder" + } + ], + "results": [ + { + "item": "minecraft:red_concrete", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/red_sand.json b/src/generated/resources/data/create/recipes/splashing/red_sand.json new file mode 100644 index 000000000..644d6b492 --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/red_sand.json @@ -0,0 +1,20 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "minecraft:red_sand" + } + ], + "results": [ + { + "item": "minecraft:gold_nugget", + "count": 3, + "chance": 0.125 + }, + { + "item": "minecraft:dead_bush", + "count": 1, + "chance": 0.05 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/sand.json b/src/generated/resources/data/create/recipes/splashing/sand.json new file mode 100644 index 000000000..32360453e --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/sand.json @@ -0,0 +1,15 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "minecraft:sand" + } + ], + "results": [ + { + "item": "minecraft:clay_ball", + "count": 1, + "chance": 0.25 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/soul_sand.json b/src/generated/resources/data/create/recipes/splashing/soul_sand.json new file mode 100644 index 000000000..2e1fa5c37 --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/soul_sand.json @@ -0,0 +1,20 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "minecraft:soul_sand" + } + ], + "results": [ + { + "item": "minecraft:quartz", + "count": 4, + "chance": 0.125 + }, + { + "item": "minecraft:gold_nugget", + "count": 1, + "chance": 0.02 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/stained_glass.json b/src/generated/resources/data/create/recipes/splashing/stained_glass.json new file mode 100644 index 000000000..b2a019444 --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/stained_glass.json @@ -0,0 +1,14 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "tag": "forge:stained_glass" + } + ], + "results": [ + { + "item": "minecraft:glass", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/stained_glass_pane.json b/src/generated/resources/data/create/recipes/splashing/stained_glass_pane.json new file mode 100644 index 000000000..8ced73dc7 --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/stained_glass_pane.json @@ -0,0 +1,14 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "tag": "forge:stained_glass_panes" + } + ], + "results": [ + { + "item": "minecraft:glass_pane", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/wheat_flour.json b/src/generated/resources/data/create/recipes/splashing/wheat_flour.json new file mode 100644 index 000000000..d7bd89482 --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/wheat_flour.json @@ -0,0 +1,14 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "create:wheat_flour" + } + ], + "results": [ + { + "item": "create:dough", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/white_concrete_powder.json b/src/generated/resources/data/create/recipes/splashing/white_concrete_powder.json new file mode 100644 index 000000000..cdec48afa --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/white_concrete_powder.json @@ -0,0 +1,14 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "minecraft:white_concrete_powder" + } + ], + "results": [ + { + "item": "minecraft:white_concrete", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/wool.json b/src/generated/resources/data/create/recipes/splashing/wool.json new file mode 100644 index 000000000..2f50ff88f --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/wool.json @@ -0,0 +1,14 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "tag": "minecraft:wool" + } + ], + "results": [ + { + "item": "minecraft:white_wool", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/splashing/yellow_concrete_powder.json b/src/generated/resources/data/create/recipes/splashing/yellow_concrete_powder.json new file mode 100644 index 000000000..f7f60ad05 --- /dev/null +++ b/src/generated/resources/data/create/recipes/splashing/yellow_concrete_powder.json @@ -0,0 +1,14 @@ +{ + "type": "create:splashing", + "ingredients": [ + { + "item": "minecraft:yellow_concrete_powder" + } + ], + "results": [ + { + "item": "minecraft:yellow_concrete", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/src/main/java/com/simibubi/create/AllRecipeTypes.java b/src/main/java/com/simibubi/create/AllRecipeTypes.java index c5d81e469..ffaaa4e9b 100644 --- a/src/main/java/com/simibubi/create/AllRecipeTypes.java +++ b/src/main/java/com/simibubi/create/AllRecipeTypes.java @@ -1,5 +1,7 @@ package com.simibubi.create; +import java.util.function.Supplier; + import com.simibubi.create.compat.jei.ConversionRecipe; import com.simibubi.create.content.contraptions.components.crafter.MechanicalCraftingRecipe; import com.simibubi.create.content.contraptions.components.crusher.CrushingRecipe; @@ -9,12 +11,12 @@ import com.simibubi.create.content.contraptions.components.mixer.MixingRecipe; import com.simibubi.create.content.contraptions.components.press.PressingRecipe; import com.simibubi.create.content.contraptions.components.saw.CuttingRecipe; import com.simibubi.create.content.contraptions.processing.ProcessingRecipe; +import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder.ProcessingRecipeFactory; import com.simibubi.create.content.contraptions.processing.ProcessingRecipeSerializer; -import com.simibubi.create.content.contraptions.processing.ProcessingRecipeSerializer.IExtendedRecipeFactory; -import com.simibubi.create.content.contraptions.processing.ProcessingRecipeSerializer.IRecipeFactory; import com.simibubi.create.content.curiosities.tools.SandPaperPolishingRecipe; import com.simibubi.create.content.curiosities.zapper.blockzapper.BlockzapperUpgradeRecipe; import com.simibubi.create.foundation.utility.Lang; + import net.minecraft.inventory.IInventory; import net.minecraft.item.crafting.IRecipe; import net.minecraft.item.crafting.IRecipeSerializer; @@ -24,17 +26,16 @@ import net.minecraft.util.ResourceLocation; import net.minecraft.util.registry.Registry; import net.minecraftforge.event.RegistryEvent; -import java.util.function.Supplier; - public enum AllRecipeTypes { BLOCKZAPPER_UPGRADE(BlockzapperUpgradeRecipe.Serializer::new, IRecipeType.CRAFTING), + MECHANICAL_CRAFTING(MechanicalCraftingRecipe.Serializer::new), + CONVERSION(processingSerializer(ConversionRecipe::new)), CRUSHING(processingSerializer(CrushingRecipe::new)), CUTTING(processingSerializer(CuttingRecipe::new)), - MECHANICAL_CRAFTING(MechanicalCraftingRecipe.Serializer::new), MILLING(processingSerializer(MillingRecipe::new)), - MIXING(extendedProcessingSerializer(MixingRecipe::new)), + MIXING(processingSerializer(MixingRecipe::new)), PRESSING(processingSerializer(PressingRecipe::new)), SANDPAPER_POLISHING(processingSerializer(SandPaperPolishingRecipe::new)), SPLASHING(processingSerializer(SplashingRecipe::new)), @@ -78,12 +79,7 @@ public enum AllRecipeTypes { } private static Supplier> processingSerializer( - IRecipeFactory> factory) { - return () -> new ProcessingRecipeSerializer<>(factory); - } - - private static Supplier> extendedProcessingSerializer( - IExtendedRecipeFactory> factory) { + ProcessingRecipeFactory> factory) { return () -> new ProcessingRecipeSerializer<>(factory); } diff --git a/src/main/java/com/simibubi/create/Create.java b/src/main/java/com/simibubi/create/Create.java index 63403a5a3..cb8d3df1e 100644 --- a/src/main/java/com/simibubi/create/Create.java +++ b/src/main/java/com/simibubi/create/Create.java @@ -3,6 +3,8 @@ package com.simibubi.create; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; import com.simibubi.create.content.CreateItemGroup; import com.simibubi.create.content.contraptions.TorquePropagator; import com.simibubi.create.content.logistics.RedstoneLinkNetworkHandler; @@ -15,7 +17,8 @@ import com.simibubi.create.foundation.command.ServerLagger; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.data.CreateRegistrate; import com.simibubi.create.foundation.data.LangMerger; -import com.simibubi.create.foundation.data.StandardRecipes; +import com.simibubi.create.foundation.data.recipe.ProcessingRecipeGen; +import com.simibubi.create.foundation.data.recipe.StandardRecipeGen; import com.simibubi.create.foundation.networking.AllPackets; import com.simibubi.create.foundation.worldgen.AllWorldFeatures; import com.tterrag.registrate.util.NonNullLazyValue; @@ -47,6 +50,10 @@ public class Create { public static ItemGroup baseCreativeTab = new CreateItemGroup(); public static ItemGroup palettesCreativeTab = new PalettesItemGroup(); + public static Gson GSON = new GsonBuilder().setPrettyPrinting() + .disableHtmlEscaping() + .create(); + public static ServerSchematicLoader schematicReceiver; public static RedstoneLinkNetworkHandler redstoneLinkNetworkHandler; public static TorquePropagator torquePropagator; @@ -103,8 +110,9 @@ public class Create { DataGenerator gen = event.getGenerator(); gen.addProvider(new AllAdvancements(gen)); gen.addProvider(new LangMerger(gen)); - gen.addProvider(new StandardRecipes(gen)); gen.addProvider(AllSoundEvents.BLAZE_MUNCH.generator(gen)); + gen.addProvider(new StandardRecipeGen(gen)); + ProcessingRecipeGen.registerAll(gen); } } diff --git a/src/main/java/com/simibubi/create/compat/jei/ConversionRecipe.java b/src/main/java/com/simibubi/create/compat/jei/ConversionRecipe.java index 4c838bc55..c6d46653b 100644 --- a/src/main/java/com/simibubi/create/compat/jei/ConversionRecipe.java +++ b/src/main/java/com/simibubi/create/compat/jei/ConversionRecipe.java @@ -1,15 +1,12 @@ package com.simibubi.create.compat.jei; -import java.util.Collections; -import java.util.List; - import javax.annotation.ParametersAreNonnullByDefault; import com.simibubi.create.AllRecipeTypes; import com.simibubi.create.Create; -import com.simibubi.create.content.contraptions.processing.ProcessingIngredient; -import com.simibubi.create.content.contraptions.processing.ProcessingOutput; import com.simibubi.create.content.contraptions.processing.ProcessingRecipe; +import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder; +import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder.ProcessingRecipeParams; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.Ingredient; @@ -19,30 +16,22 @@ import net.minecraftforge.items.wrapper.RecipeWrapper; /** * Helper recipe type for displaying an item relationship in JEI - * - * @author simibubi - * */ @ParametersAreNonnullByDefault public class ConversionRecipe extends ProcessingRecipe { - public ConversionRecipe(ResourceLocation id, String group, List ingredients, - List results, int processingDuration) { - super(AllRecipeTypes.CONVERSION, id, group, ingredients, results, processingDuration); - } - static int counter = 0; public static ConversionRecipe create(ItemStack from, ItemStack to) { - List ingredients = - Collections.singletonList(new ProcessingIngredient(Ingredient.fromStacks(from))); - List outputs = Collections.singletonList(new ProcessingOutput(to, 1)); - return new ConversionRecipe(new ResourceLocation(Create.ID, "conversion_" + counter++), ingredients, outputs); + ResourceLocation recipeId = Create.asResource("conversion_" + counter++); + return new ProcessingRecipeBuilder<>(ConversionRecipe::new, recipeId) + .withItemIngredients(Ingredient.fromStacks(from)) + .withSingleItemOutput(to) + .build(); } - public ConversionRecipe(ResourceLocation id, List ingredients, - List results) { - this(id, "conversions", ingredients, results, -1); + public ConversionRecipe(ProcessingRecipeParams params) { + super(AllRecipeTypes.CONVERSION, params); } @Override @@ -50,4 +39,14 @@ public class ConversionRecipe extends ProcessingRecipe { return false; } + @Override + protected int getMaxInputCount() { + return 1; + } + + @Override + protected int getMaxOutputCount() { + return 1; + } + } diff --git a/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java b/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java index 32599792f..41ba41b63 100644 --- a/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java +++ b/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java @@ -118,7 +118,7 @@ public class CreateJEI implements IModPlugin { blastingCategory.getUid()); registration.addRecipes(findRecipes(AllRecipeTypes.MIXING), mixingCategory.getUid()); registration.addRecipes(findRecipes(r -> r.getSerializer() == IRecipeSerializer.CRAFTING_SHAPELESS - && !MechanicalPressTileEntity.canCompress(r.getIngredients())).stream().map(MixingRecipe::of) + && !MechanicalPressTileEntity.canCompress(r.getIngredients())).stream().map(MixingRecipe::convertShapeless) .collect(Collectors.toList()), mixingCategory.getUid()); registration.addRecipes(findRecipes(AllRecipeTypes.CUTTING), sawingCategory.getUid()); diff --git a/src/main/java/com/simibubi/create/compat/jei/category/CreateRecipeCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/CreateRecipeCategory.java index 832841461..59e5a866d 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/CreateRecipeCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/CreateRecipeCategory.java @@ -59,10 +59,10 @@ public abstract class CreateRecipeCategory> implements IRec if (!(recipe instanceof ProcessingRecipe)) return jeiSlot; ProcessingRecipe processingRecipe = (ProcessingRecipe) recipe; - List rollableResults = processingRecipe.getRollableItemResults(); + List rollableResults = processingRecipe.getRollableResults(); if (rollableResults.size() <= index) return jeiSlot; - if (processingRecipe.getRollableItemResults().get(index).getChance() == 1) + if (processingRecipe.getRollableResults().get(index).getChance() == 1) return jeiSlot; return AllGuiTextures.JEI_CHANCE_SLOT; } diff --git a/src/main/java/com/simibubi/create/compat/jei/category/CrushingCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/CrushingCategory.java index 088456e68..64129fc4c 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/CrushingCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/CrushingCategory.java @@ -32,7 +32,7 @@ public class CrushingCategory extends CreateRecipeCategory results = recipe.getRollableItemResults(); + List results = recipe.getRollableResults(); int size = results.size(); int offset = -size * 19 / 2; for (int outputIndex = 0; outputIndex < size; outputIndex++) { @@ -54,7 +54,7 @@ public class CrushingCategory extends CreateRecipeCategory results = recipe.getRollableItemResults(); + List results = recipe.getRollableResults(); AllGuiTextures.JEI_SLOT.draw(50, 2); AllGuiTextures.JEI_DOWN_ARROW.draw(72, 7); diff --git a/src/main/java/com/simibubi/create/compat/jei/category/MillingCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/MillingCategory.java index 79985ef23..78be3a3ca 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/MillingCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/MillingCategory.java @@ -32,7 +32,7 @@ public class MillingCategory extends CreateRecipeCategory results = recipe.getRollableItemResults(); + List results = recipe.getRollableResults(); boolean single = results.size() == 1; for (int outputIndex = 0; outputIndex < results.size(); outputIndex++) { int xOffset = outputIndex % 2 == 0 ? 0 : 19; @@ -59,7 +59,7 @@ public class MillingCategory extends CreateRecipeCategory { private AnimatedMixer mixer = new AnimatedMixer(); - private AnimatedBlazeBurner heater = new AnimatedBlazeBurner(); + private AnimatedBlazeBurner heater = new AnimatedBlazeBurner(); public MixingCategory() { super("mixing", doubleItemIcon(AllBlocks.MECHANICAL_MIXER.get(), AllBlocks.BASIN.get()), @@ -49,47 +46,33 @@ public class MixingCategory extends CreateRecipeCategory { @Override public void setRecipe(IRecipeLayout recipeLayout, MixingRecipe recipe, IIngredients ingredients) { IGuiItemStackGroup itemStacks = recipeLayout.getItemStacks(); - NonNullList recipeIngredients = recipe.getIngredients(); List> actualIngredients = ItemHelper.condenseIngredients(recipeIngredients); - Map catalystIndices = new HashMap<>(9); - for (int i = 0; i < actualIngredients.size(); i++) { - for (ProcessingIngredient processingIngredient : recipe.getRollableIngredients()) { - if (processingIngredient.isCatalyst() - && ItemHelper.matchIngredients(processingIngredient.getIngredient(), actualIngredients.get(i) - .getKey())) { - catalystIndices.put(i, processingIngredient.getOutputChance()); - break; - } - } - } - int size = actualIngredients.size(); int xOffset = size < 3 ? (3 - size) * 19 / 2 : 0; - int i = 0; - int yOffset = recipe.getHeatLevelRequired() > 0 ? 30 : 10; - while (i < size) { - Pair ingredient = actualIngredients.get(i); + int yOffset = recipe.getRequiredHeat() != HeatCondition.NONE ? 30 : 10; + + int i; + for (i = 0; i < actualIngredients.size(); i++) { itemStacks.init(i, true, 16 + xOffset + (i % 3) * 19, 50 - (i / 3) * 19 + yOffset); - List asList = Arrays.asList(ingredient.getKey() - .getMatchingStacks()); - itemStacks.set(i, asList.stream() - .map(stack -> { - stack = stack.copy(); - stack.setCount(ingredient.getRight() - .getValue()); - return stack; - }) - .collect(Collectors.toList())); - i++; + List stacks = new ArrayList<>(); + Pair pair = actualIngredients.get(i); + Ingredient ingredient = pair.getFirst(); + MutableInt amount = pair.getSecond(); + + for (ItemStack itemStack : ingredient.getMatchingStacks()) { + ItemStack stack = itemStack.copy(); + stack.setCount(amount.getValue()); + stacks.add(stack); + } + + itemStacks.set(i, stacks); } itemStacks.init(i, false, 141, 50 + yOffset); itemStacks.set(i, recipe.getRecipeOutput() .getStack()); - - addCatalystTooltip(itemStacks, catalystIndices); } @Override @@ -98,24 +81,18 @@ public class MixingCategory extends CreateRecipeCategory { int size = actualIngredients.size(); int xOffset = size < 3 ? (3 - size) * 19 / 2 : 0; - int yOffset = recipe.getHeatLevelRequired() > 0 ? 30 : 10; - for (int i = 0; i < size; i++) { - AllGuiTextures jeiSlot = AllGuiTextures.JEI_SLOT; - for (ProcessingIngredient processingIngredient : recipe.getRollableIngredients()) { - if (processingIngredient.isCatalyst() - && ItemHelper.matchIngredients(processingIngredient.getIngredient(), actualIngredients.get(i) - .getKey())) { - jeiSlot = AllGuiTextures.JEI_CATALYST_SLOT; - break; - } - } - jeiSlot.draw(16 + xOffset + (i % 3) * 19, 50 - (i / 3) * 19 + yOffset); - } + HeatCondition requiredHeat = recipe.getRequiredHeat(); + int yOffset = requiredHeat != HeatCondition.NONE ? 30 : 10; + for (int i = 0; i < size; i++) + AllGuiTextures.JEI_SLOT.draw(16 + xOffset + (i % 3) * 19, 50 - (i / 3) * 19 + yOffset); + AllGuiTextures.JEI_SLOT.draw(141, 50 + yOffset); AllGuiTextures.JEI_DOWN_ARROW.draw(136, 32 + yOffset); AllGuiTextures.JEI_SHADOW.draw(81, 57 + yOffset); - if (recipe.getHeatLevelRequired() > 0) - heater.drawWithHeatLevel(getBackground().getWidth() / 2 + 3, 55, recipe.getHeatLevelRequired()); + + if (requiredHeat != HeatCondition.NONE) + heater.withHeat(requiredHeat.visualizeAsBlazeBurner()) + .draw(getBackground().getWidth() / 2 + 3, 55); mixer.draw(getBackground().getWidth() / 2 + 3, 34); } diff --git a/src/main/java/com/simibubi/create/compat/jei/category/MysteriousItemConversionCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/MysteriousItemConversionCategory.java index 36514730c..f473e05ec 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/MysteriousItemConversionCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/MysteriousItemConversionCategory.java @@ -35,13 +35,13 @@ public class MysteriousItemConversionCategory extends CreateRecipeCategory results = recipe.getRollableItemResults(); + List results = recipe.getRollableResults(); itemStacks.init(0, true, 26, 16); itemStacks.set(0, Arrays.asList(recipe.getIngredients().get(0).getMatchingStacks())); itemStacks.init(1, false, 131, 16); diff --git a/src/main/java/com/simibubi/create/compat/jei/category/PolishingCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/PolishingCategory.java index 0fd563557..9f78bd908 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/PolishingCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/PolishingCategory.java @@ -37,13 +37,13 @@ public class PolishingCategory extends CreateRecipeCategory results = recipe.getRollableItemResults(); + List results = recipe.getRollableResults(); itemStacks.init(0, true, 26, 28); itemStacks.set(0, Arrays.asList(recipe.getIngredients().get(0).getMatchingStacks())); diff --git a/src/main/java/com/simibubi/create/compat/jei/category/PressingCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/PressingCategory.java index b635f5625..6bf0aba1b 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/PressingCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/PressingCategory.java @@ -32,7 +32,7 @@ public class PressingCategory extends CreateRecipeCategory { @Override public void setIngredients(PressingRecipe recipe, IIngredients ingredients) { ingredients.setInputIngredients(recipe.getIngredients()); - ingredients.setOutputs(VanillaTypes.ITEM, recipe.getPossibleOutputs()); + ingredients.setOutputs(VanillaTypes.ITEM, recipe.getRollableResultsAsItemStacks()); } @Override @@ -41,7 +41,7 @@ public class PressingCategory extends CreateRecipeCategory { itemStacks.init(0, true, 26, 50); itemStacks.set(0, Arrays.asList(recipe.getIngredients().get(0).getMatchingStacks())); - List results = recipe.getRollableItemResults(); + List results = recipe.getRollableResults(); for (int outputIndex = 0; outputIndex < results.size(); outputIndex++) { itemStacks.init(outputIndex + 1, false, 131 + 19 * outputIndex, 50); itemStacks.set(outputIndex + 1, results.get(outputIndex).getStack()); @@ -54,7 +54,7 @@ public class PressingCategory extends CreateRecipeCategory { public void draw(PressingRecipe recipe, double mouseX, double mouseY) { AllGuiTextures.JEI_SLOT.draw(26, 50); getRenderedSlot(recipe, 0).draw(131, 50); - if (recipe.getRollableItemResults().size() > 1) + if (recipe.getRollableResults().size() > 1) getRenderedSlot(recipe, 1).draw(131 + 19, 50); AllGuiTextures.JEI_SHADOW.draw(61, 41); AllGuiTextures.JEI_LONG_ARROW.draw(52, 54); diff --git a/src/main/java/com/simibubi/create/compat/jei/category/SawingCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/SawingCategory.java index c5b331f8c..e80686a35 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/SawingCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/SawingCategory.java @@ -31,7 +31,7 @@ public class SawingCategory extends CreateRecipeCategory { @Override public void setIngredients(CuttingRecipe recipe, IIngredients ingredients) { ingredients.setInputIngredients(recipe.getIngredients()); - ingredients.setOutputs(VanillaTypes.ITEM, recipe.getPossibleOutputs()); + ingredients.setOutputs(VanillaTypes.ITEM, recipe.getRollableResultsAsItemStacks()); } @Override @@ -40,7 +40,7 @@ public class SawingCategory extends CreateRecipeCategory { itemStacks.init(0, true, 43, 4); itemStacks.set(0, Arrays.asList(recipe.getIngredients().get(0).getMatchingStacks())); - List results = recipe.getRollableItemResults(); + List results = recipe.getRollableResults(); for (int outputIndex = 0; outputIndex < results.size(); outputIndex++) { int xOffset = outputIndex % 2 == 0 ? 0 : 19; int yOffset = (outputIndex / 2) * -19; @@ -55,7 +55,7 @@ public class SawingCategory extends CreateRecipeCategory { @Override public void draw(CuttingRecipe recipe, double mouseX, double mouseY) { AllGuiTextures.JEI_SLOT.draw(43, 4); - int size = recipe.getRollableItemResults().size(); + int size = recipe.getRollableResults().size(); for (int i = 0; i < size; i++) { int xOffset = i % 2 == 0 ? 0 : 19; int yOffset = (i / 2) * -19; diff --git a/src/main/java/com/simibubi/create/compat/jei/category/SplashingCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/SplashingCategory.java index 89ca987c2..c986affbd 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/SplashingCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/SplashingCategory.java @@ -31,7 +31,7 @@ public class SplashingCategory extends ProcessingViaFanCategory @Override public void setIngredients(SplashingRecipe recipe, IIngredients ingredients) { ingredients.setInputIngredients(recipe.getIngredients()); - ingredients.setOutputs(VanillaTypes.ITEM, recipe.getPossibleOutputs()); + ingredients.setOutputs(VanillaTypes.ITEM, recipe.getRollableResultsAsItemStacks()); } @Override @@ -42,7 +42,7 @@ public class SplashingCategory extends ProcessingViaFanCategory .get(0) .getMatchingStacks())); - List results = recipe.getRollableItemResults(); + List results = recipe.getRollableResults(); boolean single = results.size() == 1; for (int outputIndex = 0; outputIndex < results.size(); outputIndex++) { int xOffset = outputIndex % 2 == 0 ? 0 : 19; @@ -58,7 +58,7 @@ public class SplashingCategory extends ProcessingViaFanCategory @Override protected void renderWidgets(SplashingRecipe recipe, double mouseX, double mouseY) { - int size = recipe.getPossibleOutputs() + int size = recipe.getRollableResultsAsItemStacks() .size(); AllGuiTextures.JEI_SLOT.draw(20, 47); diff --git a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedBlazeBurner.java b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedBlazeBurner.java index e31a8ac98..c0753303b 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedBlazeBurner.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedBlazeBurner.java @@ -10,12 +10,14 @@ import mezz.jei.api.gui.drawable.IDrawable; public class AnimatedBlazeBurner implements IDrawable { - @Override - public void draw(int xOffset, int yOffset) { - drawWithHeatLevel(xOffset, yOffset, 3); + private HeatLevel heatLevel; + + public AnimatedBlazeBurner withHeat(HeatLevel heatLevel) { + this.heatLevel = heatLevel; + return this; } - public void drawWithHeatLevel(int xOffset, int yOffset, int heatLevel) { + public void draw(int xOffset, int yOffset) { RenderSystem.pushMatrix(); RenderSystem.translatef(xOffset, yOffset, 200); RenderSystem.rotatef(-15.5f, 1, 0, 0); @@ -27,7 +29,7 @@ public class AnimatedBlazeBurner implements IDrawable { .scale(scale) .render(); - AllBlockPartials blaze = AllBlockPartials.BLAZES.get(HeatLevel.byIndex(heatLevel)); + AllBlockPartials blaze = AllBlockPartials.BLAZES.get(heatLevel); GuiGameElement.of(blaze) .atLocal(1, 1.65, 1) .rotate(0, 180, 0) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillTileEntity.java index 4edeec202..065d18491 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillTileEntity.java @@ -1,7 +1,6 @@ package com.simibubi.create.content.contraptions.components.actors; import net.minecraft.tileentity.TileEntityType; -import net.minecraft.util.DamageSource; import net.minecraft.util.math.BlockPos; public class DrillTileEntity extends BlockBreakingKineticTileEntity { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/crusher/AbstractCrushingRecipe.java b/src/main/java/com/simibubi/create/content/contraptions/components/crusher/AbstractCrushingRecipe.java index bd99f7740..350a5269a 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/crusher/AbstractCrushingRecipe.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/crusher/AbstractCrushingRecipe.java @@ -1,20 +1,19 @@ package com.simibubi.create.content.contraptions.components.crusher; -import java.util.List; - import com.simibubi.create.AllRecipeTypes; -import com.simibubi.create.content.contraptions.processing.ProcessingIngredient; -import com.simibubi.create.content.contraptions.processing.ProcessingOutput; import com.simibubi.create.content.contraptions.processing.ProcessingRecipe; +import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder.ProcessingRecipeParams; -import net.minecraft.util.ResourceLocation; import net.minecraftforge.items.wrapper.RecipeWrapper; public abstract class AbstractCrushingRecipe extends ProcessingRecipe { - public AbstractCrushingRecipe(AllRecipeTypes recipeType, ResourceLocation id, String group, - List ingredients, List results, int processingDuration) { - super(recipeType, id, group, ingredients, results, processingDuration); + public AbstractCrushingRecipe(AllRecipeTypes recipeType, ProcessingRecipeParams params) { + super(recipeType, params); } + @Override + protected int getMaxInputCount() { + return 1; + } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingRecipe.java b/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingRecipe.java index 5f5ff519c..d03b8e07e 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingRecipe.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingRecipe.java @@ -1,21 +1,18 @@ package com.simibubi.create.content.contraptions.components.crusher; +import javax.annotation.ParametersAreNonnullByDefault; + import com.simibubi.create.AllRecipeTypes; -import com.simibubi.create.content.contraptions.processing.ProcessingIngredient; -import com.simibubi.create.content.contraptions.processing.ProcessingOutput; -import net.minecraft.util.ResourceLocation; +import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder.ProcessingRecipeParams; + import net.minecraft.world.World; import net.minecraftforge.items.wrapper.RecipeWrapper; -import javax.annotation.ParametersAreNonnullByDefault; -import java.util.List; - @ParametersAreNonnullByDefault public class CrushingRecipe extends AbstractCrushingRecipe { - public CrushingRecipe(ResourceLocation id, String group, List ingredients, - List results, int processingDuration) { - super(AllRecipeTypes.CRUSHING, id, group, ingredients, results, processingDuration); + public CrushingRecipe(ProcessingRecipeParams params) { + super(AllRecipeTypes.CRUSHING, params); } @Override @@ -25,7 +22,7 @@ public class CrushingRecipe extends AbstractCrushingRecipe { return ingredients.get(0) .test(inv.getStackInSlot(0)); } - + @Override protected int getMaxOutputCount() { return 7; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingWheelControllerTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingWheelControllerTileEntity.java index b4aa3ffb7..d78798576 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingWheelControllerTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingWheelControllerTileEntity.java @@ -191,7 +191,7 @@ public class CrushingWheelControllerTileEntity extends SmartTileEntity { inventory.clear(); for (int roll = 0; roll < rolls; roll++) { List rolledResults = recipe.get() - .rollResults().getItemStacks(); + .rollResults(); for (int i = 0; i < rolledResults.size(); i++) { ItemStack stack = rolledResults.get(i); ItemHelper.addToList(stack, list); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/fan/SplashingRecipe.java b/src/main/java/com/simibubi/create/content/contraptions/components/fan/SplashingRecipe.java index 2ff2c545a..0e47dc7a2 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/fan/SplashingRecipe.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/fan/SplashingRecipe.java @@ -1,23 +1,20 @@ package com.simibubi.create.content.contraptions.components.fan; +import javax.annotation.ParametersAreNonnullByDefault; + import com.simibubi.create.AllRecipeTypes; -import com.simibubi.create.content.contraptions.processing.ProcessingIngredient; -import com.simibubi.create.content.contraptions.processing.ProcessingOutput; import com.simibubi.create.content.contraptions.processing.ProcessingRecipe; +import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder.ProcessingRecipeParams; import com.simibubi.create.content.logistics.InWorldProcessing; import com.simibubi.create.content.logistics.InWorldProcessing.SplashingInv; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import javax.annotation.ParametersAreNonnullByDefault; -import java.util.List; +import net.minecraft.world.World; @ParametersAreNonnullByDefault public class SplashingRecipe extends ProcessingRecipe { - public SplashingRecipe(ResourceLocation id, String group, List ingredients, - List results, int processingDuration) { - super(AllRecipeTypes.SPLASHING, id, group, ingredients, results, processingDuration); + public SplashingRecipe(ProcessingRecipeParams params) { + super(AllRecipeTypes.SPLASHING, params); } @Override @@ -28,6 +25,11 @@ public class SplashingRecipe extends ProcessingRecipe ingredients, - List results, int processingDuration) { - super(AllRecipeTypes.MILLING, id, group, ingredients, results, processingDuration); + public MillingRecipe(ProcessingRecipeParams params) { + super(AllRecipeTypes.MILLING, params); } @Override diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/millstone/MillstoneTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/millstone/MillstoneTileEntity.java index 8e3bab94b..e70a13bae 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/millstone/MillstoneTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/millstone/MillstoneTileEntity.java @@ -43,7 +43,8 @@ public class MillstoneTileEntity extends KineticTileEntity { if (getSpeed() == 0) return; for (int i = 0; i < outputInv.getSlots(); i++) - if (outputInv.getStackInSlot(i).getCount() == outputInv.getSlotLimit(i)) + if (outputInv.getStackInSlot(i) + .getCount() == outputInv.getSlotLimit(i)) return; if (timer > 0) { @@ -58,13 +59,14 @@ public class MillstoneTileEntity extends KineticTileEntity { return; } - if (inputInv.getStackInSlot(0).isEmpty()) + if (inputInv.getStackInSlot(0) + .isEmpty()) return; RecipeWrapper inventoryIn = new RecipeWrapper(inputInv); if (lastRecipe == null || !lastRecipe.matches(inventoryIn, world)) { - Optional recipe = - world.getRecipeManager().getRecipe(AllRecipeTypes.MILLING.getType(), inventoryIn, world); + Optional recipe = world.getRecipeManager() + .getRecipe(AllRecipeTypes.MILLING.getType(), inventoryIn, world); if (!recipe.isPresent()) { timer = 100; sendData(); @@ -84,8 +86,8 @@ public class MillstoneTileEntity extends KineticTileEntity { RecipeWrapper inventoryIn = new RecipeWrapper(inputInv); if (lastRecipe == null || !lastRecipe.matches(inventoryIn, world)) { - Optional recipe = - world.getRecipeManager().getRecipe(AllRecipeTypes.MILLING.getType(), inventoryIn, world); + Optional recipe = world.getRecipeManager() + .getRecipe(AllRecipeTypes.MILLING.getType(), inventoryIn, world); if (!recipe.isPresent()) return; lastRecipe = recipe.get(); @@ -94,7 +96,8 @@ public class MillstoneTileEntity extends KineticTileEntity { ItemStack stackInSlot = inputInv.getStackInSlot(0); stackInSlot.shrink(1); inputInv.setStackInSlot(0, stackInSlot); - lastRecipe.rollResults().forEachItemStack(stack -> ItemHandlerHelper.insertItemStacked(outputInv, stack, false)); + lastRecipe.rollResults() + .forEach(stack -> ItemHandlerHelper.insertItemStacked(outputInv, stack, false)); sendData(); markDirty(); } @@ -138,7 +141,8 @@ public class MillstoneTileEntity extends KineticTileEntity { @Override public LazyOptional getCapability(Capability cap, Direction side) { if (cap == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) - return LazyOptional.of(MillstoneInventoryHandler::new).cast(); + return LazyOptional.of(MillstoneInventoryHandler::new) + .cast(); return super.getCapability(cap, side); } @@ -149,7 +153,9 @@ public class MillstoneTileEntity extends KineticTileEntity { if (lastRecipe != null && lastRecipe.matches(inventoryIn, world)) return true; - return world.getRecipeManager().getRecipe(AllRecipeTypes.MILLING.getType(), inventoryIn, world).isPresent(); + return world.getRecipeManager() + .getRecipe(AllRecipeTypes.MILLING.getType(), inventoryIn, world) + .isPresent(); } private class MillstoneInventoryHandler extends CombinedInvWrapper { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java index 409597272..5a0b1e36e 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java @@ -1,5 +1,6 @@ package com.simibubi.create.content.contraptions.components.mixer; +import java.util.ArrayList; import java.util.Comparator; import java.util.LinkedList; import java.util.List; @@ -7,15 +8,10 @@ import java.util.List; import com.simibubi.create.AllRecipeTypes; import com.simibubi.create.AllTags; import com.simibubi.create.content.contraptions.components.press.MechanicalPressTileEntity; -import com.simibubi.create.content.contraptions.fluids.CombinedFluidHandler; import com.simibubi.create.content.contraptions.processing.BasinOperatingTileEntity; import com.simibubi.create.content.contraptions.processing.BasinTileEntity.BasinInventory; -import com.simibubi.create.content.contraptions.processing.CombinedItemFluidList; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock; -import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.tileEntity.behaviour.CenteredSideValueBoxTransform; -import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollValueBehaviour; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock.HeatLevel; import com.simibubi.create.foundation.utility.VecHelper; import net.minecraft.block.BlockState; @@ -33,6 +29,7 @@ import net.minecraft.util.NonNullList; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.Vec3d; +import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.items.IItemHandler; public class MechanicalMixerTileEntity extends BasinOperatingTileEntity { @@ -43,31 +40,10 @@ public class MechanicalMixerTileEntity extends BasinOperatingTileEntity { public int processingTicks; public boolean running; - public ScrollValueBehaviour minIngredients; - public MechanicalMixerTileEntity(TileEntityType type) { super(type); } - @Override - public void addBehaviours(List behaviours) { - super.addBehaviours(behaviours); - CenteredSideValueBoxTransform slot = new CenteredSideValueBoxTransform((state, direction) -> direction.getAxis() - .isHorizontal()) { - - @Override - protected Vec3d getSouthLocation() { - return super.getSouthLocation().add(0, 4 / 16f, 0); - } - - }; - minIngredients = new ScrollValueBehaviour(Lang.translate("mechanical_mixer.min_ingredients"), this, slot); - minIngredients.between(1, 9); - minIngredients.withCallback(i -> basinChecker.scheduleUpdate()); - minIngredients.requiresWrench(); - behaviours.add(minIngredients); - } - public float getRenderedHeadOffset(float partialTicks) { int localTick; float offset = 0; @@ -128,11 +104,11 @@ public class MechanicalMixerTileEntity extends BasinOperatingTileEntity { if (world != null && world.isRemote && running && !basinItemInv.isPresent()) updateBasin(); } - + @Override public void tick() { super.tick(); - + if (runningTicks >= 40) { running = false; runningTicks = 0; @@ -199,25 +175,24 @@ public class MechanicalMixerTileEntity extends BasinOperatingTileEntity { protected boolean matchBasinRecipe(IRecipe recipe) { if (recipe == null) return false; - if (recipe.getIngredients() - .size() < minIngredients.getValue()) - return false; - NonNullList ingredients = recipe.getIngredients(); if (!ingredients.stream() .allMatch(ingredient -> (ingredient.isSimple() || ingredient.getMatchingStacks().length == 1))) return false; - CombinedItemFluidList remaining = new CombinedItemFluidList(); - inputs.forEachItemStack(stack -> remaining.add(stack.copy())); - basinFluidInv.ifPresent( - fluidInv -> ((CombinedFluidHandler) fluidInv).forEachTank(fluidStack -> remaining.add(fluidStack.copy()))); + List remainingItems = new ArrayList<>(); + itemInputs.forEach(stack -> remainingItems.add(stack.copy())); + List remainingFluids = new ArrayList<>(); + fluidInputs.forEach(stack -> remainingFluids.add(stack.copy())); + + // TODO: match fluid inputs - // sort by leniency + // Sort by leniency List sortedIngredients = new LinkedList<>(ingredients); sortedIngredients.sort(Comparator.comparingInt(i -> i.getMatchingStacks().length)); + Ingredients: for (Ingredient ingredient : sortedIngredients) { - for (ItemStack stack : remaining.getItemStacks()) { + for (ItemStack stack : remainingItems) { if (stack.isEmpty()) continue; if (ingredient.test(stack)) { @@ -230,7 +205,8 @@ public class MechanicalMixerTileEntity extends BasinOperatingTileEntity { if (!(recipe instanceof MixingRecipe)) return true; - return ((MixingRecipe) recipe).getHeatLevelRequired() <= getHeatLevelApplied().ordinal(); + return ((MixingRecipe) recipe).getRequiredHeat() + .testBlazeBurner(getHeatLevel()); } @Override @@ -249,12 +225,11 @@ public class MechanicalMixerTileEntity extends BasinOperatingTileEntity { } @Override - protected void basinRemoved() { - super.basinRemoved(); - if (running) { - runningTicks = 40; - running = false; - } + protected void onBasinRemoved() { + if (!running) + return; + runningTicks = 40; + running = false; } @Override @@ -267,12 +242,12 @@ public class MechanicalMixerTileEntity extends BasinOperatingTileEntity { return running; } - private BlazeBurnerBlock.HeatLevel getHeatLevelApplied() { + private HeatLevel getHeatLevel() { if (world == null) - return BlazeBurnerBlock.HeatLevel.NONE; + return HeatLevel.NONE; BlockState state = world.getBlockState(pos.down(3)); if (state.has(BlazeBurnerBlock.HEAT_LEVEL)) return state.get(BlazeBurnerBlock.HEAT_LEVEL); - return AllTags.AllBlockTags.FAN_HEATERS.matches(state) ? BlazeBurnerBlock.HeatLevel.SMOULDERING : BlazeBurnerBlock.HeatLevel.NONE; + return AllTags.AllBlockTags.FAN_HEATERS.matches(state) ? HeatLevel.SMOULDERING : HeatLevel.NONE; } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MixingRecipe.java b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MixingRecipe.java index 80aa7b53b..23ac71fe4 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MixingRecipe.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MixingRecipe.java @@ -1,33 +1,38 @@ package com.simibubi.create.content.contraptions.components.mixer; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.LinkedList; +import java.util.List; + +import javax.annotation.Nonnull; + import com.simibubi.create.AllRecipeTypes; import com.simibubi.create.content.contraptions.processing.BasinTileEntity.BasinInputInventory; -import com.simibubi.create.content.contraptions.processing.ProcessingIngredient; -import com.simibubi.create.content.contraptions.processing.ProcessingOutput; import com.simibubi.create.content.contraptions.processing.ProcessingRecipe; +import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder; +import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder.ProcessingRecipeParams; + import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; import net.minecraft.item.crafting.Ingredient; import net.minecraft.util.NonNullList; -import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; -import net.minecraftforge.fluids.FluidStack; - -import javax.annotation.Nonnull; -import java.util.*; public class MixingRecipe extends ProcessingRecipe { - public MixingRecipe(ResourceLocation id, String group, List ingredients, - List results, int processingDuration, List fluidIngredients, - List fluidResults, int requiredHeat) { - super(AllRecipeTypes.MIXING, id, group, ingredients, results, processingDuration, fluidIngredients, - fluidResults, requiredHeat); + /** + * For JEI purposes only + */ + public static MixingRecipe convertShapeless(IRecipe recipe) { + return new ProcessingRecipeBuilder<>(MixingRecipe::new, recipe.getId()) + .withItemIngredients(recipe.getIngredients()) + .withSingleItemOutput(recipe.getRecipeOutput()) + .build(); } - public static MixingRecipe of(IRecipe recipe) { - return new MixingRecipe(recipe.getId(), recipe.getGroup(), ProcessingIngredient.list(recipe.getIngredients()), - Collections.singletonList(new ProcessingOutput(recipe.getRecipeOutput(), 1)), -1, null, null, 0); + public MixingRecipe(ProcessingRecipeParams params) { + super(AllRecipeTypes.MIXING, params); } @Override @@ -37,11 +42,21 @@ public class MixingRecipe extends ProcessingRecipe { @Override protected int getMaxOutputCount() { - return 1; + return 1;// TODO increase } @Override - protected boolean canHaveCatalysts() { + protected int getMaxFluidInputCount() { + return 2; + } + + @Override + protected int getMaxFluidOutputCount() { + return 1;// TODO increase? + } + + @Override + protected boolean canRequireHeat() { return true; } @@ -80,22 +95,4 @@ public class MixingRecipe extends ProcessingRecipe { return true; } - @Override - protected boolean canHaveFluidIngredient() { - return true; - } - - @Override - protected boolean canHaveFluidOutput() { - return true; - } - - @Override - protected boolean requiresHeating() { - return this.requiredHeat > 0; - } - - public int getHeatLevelRequired() { - return requiredHeat; - } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressTileEntity.java index 9091d4935..7e7970af9 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressTileEntity.java @@ -6,10 +6,8 @@ import java.util.Optional; import com.simibubi.create.AllRecipeTypes; import com.simibubi.create.AllSoundEvents; -import com.simibubi.create.content.contraptions.fluids.CombinedFluidHandler; import com.simibubi.create.content.contraptions.processing.BasinOperatingTileEntity; import com.simibubi.create.content.contraptions.processing.BasinTileEntity.BasinInventory; -import com.simibubi.create.content.contraptions.processing.CombinedItemFluidList; import com.simibubi.create.content.logistics.InWorldProcessing; import com.simibubi.create.foundation.advancement.AllTriggers; import com.simibubi.create.foundation.item.ItemHelper; @@ -292,13 +290,11 @@ public class MechanicalPressTileEntity extends BasinOperatingTileEntity { .allMatch(Ingredient::isSimple)) return false; - CombinedItemFluidList remaining = new CombinedItemFluidList(); - inputs.forEachItemStack(stack -> remaining.add(stack.copy())); - basinFluidInv.ifPresent( - fluidInv -> ((CombinedFluidHandler) fluidInv).forEachTank(fluidStack -> remaining.add(fluidStack.copy()))); - + List remainingItems = new ArrayList<>(); + itemInputs.forEach(stack -> remainingItems.add(stack.copy())); + Ingredients: for (Ingredient ingredient : ingredients) { - for (ItemStack stack : remaining.getItemStacks()) { + for (ItemStack stack : remainingItems) { if (stack.isEmpty()) continue; if (ingredient.test(stack)) { @@ -325,9 +321,8 @@ public class MechanicalPressTileEntity extends BasinOperatingTileEntity { } @Override - protected void basinRemoved() { + protected void onBasinRemoved() { pressedItems.clear(); - super.basinRemoved(); running = false; runningTicks = 0; sendData(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/press/PressingRecipe.java b/src/main/java/com/simibubi/create/content/contraptions/components/press/PressingRecipe.java index 3ff546dd5..b08c0e1c9 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/press/PressingRecipe.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/press/PressingRecipe.java @@ -1,22 +1,19 @@ package com.simibubi.create.content.contraptions.components.press; +import javax.annotation.ParametersAreNonnullByDefault; + import com.simibubi.create.AllRecipeTypes; import com.simibubi.create.content.contraptions.components.press.MechanicalPressTileEntity.PressingInv; -import com.simibubi.create.content.contraptions.processing.ProcessingIngredient; -import com.simibubi.create.content.contraptions.processing.ProcessingOutput; import com.simibubi.create.content.contraptions.processing.ProcessingRecipe; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; +import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder.ProcessingRecipeParams; -import javax.annotation.ParametersAreNonnullByDefault; -import java.util.List; +import net.minecraft.world.World; @ParametersAreNonnullByDefault public class PressingRecipe extends ProcessingRecipe { - public PressingRecipe(ResourceLocation id, String group, List ingredients, - List results, int processingDuration) { - super(AllRecipeTypes.PRESSING, id, group, ingredients, results, processingDuration); + public PressingRecipe(ProcessingRecipeParams params) { + super(AllRecipeTypes.PRESSING, params); } @Override @@ -27,6 +24,11 @@ public class PressingRecipe extends ProcessingRecipe { - public CuttingRecipe(ResourceLocation id, String group, List ingredients, - List results, int processingDuration) { - super(AllRecipeTypes.CUTTING, id, group, ingredients, results, processingDuration); + public CuttingRecipe(ProcessingRecipeParams params) { + super(AllRecipeTypes.CUTTING, params); } @Override @@ -26,6 +23,11 @@ public class CuttingRecipe extends ProcessingRecipe { return ingredients.get(0) .test(inv.getStackInSlot(0)); } + + @Override + protected int getMaxInputCount() { + return 1; + } @Override protected int getMaxOutputCount() { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawTileEntity.java index 660a744a2..e9def2ec8 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawTileEntity.java @@ -248,7 +248,7 @@ public class SawTileEntity extends BlockBreakingKineticTileEntity { for (int roll = 0; roll < rolls; roll++) { List results = new LinkedList(); if (recipe instanceof CuttingRecipe) - results = ((CuttingRecipe) recipe).rollResults().getItemStacks(); + results = ((CuttingRecipe) recipe).rollResults(); else if (recipe instanceof StonecuttingRecipe) results.add(recipe.getRecipeOutput() .copy()); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/AbstractChassisBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/AbstractChassisBlock.java index 3b1b599ae..65c31d2b5 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/AbstractChassisBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/AbstractChassisBlock.java @@ -88,12 +88,12 @@ public abstract class AbstractChassisBlock extends RotatedPillarBlock implements return ActionResultType.SUCCESS; } + @SuppressWarnings("deprecation") @Override public BlockState rotate(BlockState state, Rotation rotation) { if (rotation == Rotation.NONE) return state; - @SuppressWarnings("deprecation") BlockState rotated = super.rotate(state, rotation); for (Direction face : Direction.values()) { BooleanProperty glueableSide = getGlueableSide(rotated, face); diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/BasinOperatingTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/processing/BasinOperatingTileEntity.java index 18645dedd..4c63f4f75 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/BasinOperatingTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/BasinOperatingTileEntity.java @@ -7,7 +7,6 @@ import java.util.stream.Collectors; import com.simibubi.create.AllTileEntities; import com.simibubi.create.content.contraptions.base.KineticTileEntity; -import com.simibubi.create.content.contraptions.fluids.CombinedFluidHandler; import com.simibubi.create.content.contraptions.processing.BasinTileEntity.BasinInventory; import com.simibubi.create.foundation.advancement.AllTriggers; import com.simibubi.create.foundation.advancement.SimpleTrigger; @@ -23,6 +22,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntityType; import net.minecraft.util.NonNullList; import net.minecraftforge.common.util.LazyOptional; +import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.capability.CapabilityFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.items.CapabilityItemHandler; @@ -35,12 +35,16 @@ public abstract class BasinOperatingTileEntity extends KineticTileEntity { public DeferralBehaviour basinChecker; public boolean basinRemoved; protected IRecipe lastRecipe; + protected LazyOptional basinItemInv = LazyOptional.empty(); + protected List itemInputs; protected LazyOptional basinFluidInv = LazyOptional.empty(); - protected CombinedItemFluidList inputs; + protected List fluidInputs; public BasinOperatingTileEntity(TileEntityType typeIn) { super(typeIn); + itemInputs = new ArrayList<>(); + fluidInputs = new ArrayList<>(); } @Override @@ -59,26 +63,30 @@ public abstract class BasinOperatingTileEntity extends KineticTileEntity { } public void gatherInputs() { - inputs = new CombinedItemFluidList(); - - basinItemInv.ifPresent(inv -> { - IItemHandlerModifiable inputHandler = ((BasinInventory) inv).getInputHandler(); - for (int slot = 0; slot < inputHandler.getSlots(); ++slot) { - ItemStack itemstack = inputHandler.extractItem(slot, inputHandler.getSlotLimit(slot), true); - if (!itemstack.isEmpty()) { - inputs.add(itemstack); - } + itemInputs.clear(); + basinItemInv.ifPresent(handler -> { + for (int slot = 0; slot < handler.getSlots(); ++slot) { + ItemStack itemstack = handler.getStackInSlot(slot); + if (!itemstack.isEmpty()) + itemInputs.add(itemstack); } }); - basinFluidInv.ifPresent(iFluidHandler -> ((CombinedFluidHandler) iFluidHandler).forEachTank(inputs::add)); + fluidInputs.clear(); + basinFluidInv.ifPresent(handler -> { + for (int tank = 0; tank < handler.getTanks(); tank++) { + FluidStack fluidInTank = handler.getFluidInTank(tank); + if (!fluidInTank.isEmpty()) + fluidInputs.add(fluidInTank); + } + }); } @Override public void tick() { if (basinRemoved) { basinRemoved = false; - basinRemoved(); + onBasinRemoved(); sendData(); return; } @@ -135,30 +143,24 @@ public abstract class BasinOperatingTileEntity extends KineticTileEntity { return; BasinInventory inv = (BasinInventory) basinItemInv.orElse(null); - IItemHandlerModifiable inputs = inv.getInputHandler(); IItemHandlerModifiable outputs = inv.getOutputHandler(); - List catalysts = new ArrayList<>(); List containers = new ArrayList<>(); NonNullList ingredients = lastRecipe.getIngredients(); Ingredients: for (int i = 0; i < ingredients.size(); i++) { Ingredient ingredient = ingredients.get(i); + for (int slot = 0; slot < inputs.getSlots(); slot++) { if (!ingredient.test(inputs.extractItem(slot, 1, true))) continue; ItemStack extracted = inputs.extractItem(slot, 1, false); - if ((lastRecipe instanceof ProcessingRecipe) - && ((ProcessingRecipe) lastRecipe).getRollableIngredients() - .get(i) - .remains()) { - catalysts.add(extracted.copy()); - } else if (extracted.hasContainerItem()) { + if (extracted.hasContainerItem()) containers.add(extracted.getContainerItem() .copy()); - } continue Ingredients; } + // something wasn't found return; } @@ -171,9 +173,8 @@ public abstract class BasinOperatingTileEntity extends KineticTileEntity { } ItemHandlerHelper.insertItemStacked(outputs, lastRecipe.getRecipeOutput() - .copy(), false); + .copy(), false); // TODO only works for single item output containers.forEach(stack -> ItemHandlerHelper.insertItemStacked(outputs, stack, false)); - catalysts.forEach(c -> ItemHandlerHelper.insertItemStacked(outputs, c, false)); // Continue mixing gatherInputs(); @@ -189,15 +190,14 @@ public abstract class BasinOperatingTileEntity extends KineticTileEntity { List> list = RecipeFinder.get(getRecipeCacheKey(), world, this::matchStaticFilters); return list.stream() .filter(this::matchBasinRecipe) - .sorted((r1, r2) -> -r1.getIngredients() - .size() + r2.getIngredients() + .sorted((r1, r2) -> r2.getIngredients() + .size() + - r1.getIngredients() .size()) .collect(Collectors.toList()); } - protected void basinRemoved() { - - } + protected abstract void onBasinRemoved(); protected Optional getBasin() { if (world == null) diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/CombinedItemFluidList.java b/src/main/java/com/simibubi/create/content/contraptions/processing/CombinedItemFluidList.java deleted file mode 100644 index f5eac96d6..000000000 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/CombinedItemFluidList.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.simibubi.create.content.contraptions.processing; - -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; - -import java.util.ArrayList; -import java.util.function.Consumer; - -public class CombinedItemFluidList { - private final ArrayList itemStacks = new ArrayList<>(); - private final ArrayList fluidStacks = new ArrayList<>(); - - public void add(ItemStack itemstack) { - itemStacks.add(itemstack); - } - - public void add(FluidStack fluidStack) { - fluidStacks.add(fluidStack); - } - - public void forEachItemStack(Consumer itemStackConsumer) { - itemStacks.forEach(itemStackConsumer); - } - - public void forEachFluidStack(Consumer fluidStackConsumer) { - fluidStacks.forEach(fluidStackConsumer); - } - - public ArrayList getItemStacks() { - return itemStacks; - } - - public ArrayList getFluidStacks() { - return fluidStacks; - } -} diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/HeatCondition.java b/src/main/java/com/simibubi/create/content/contraptions/processing/HeatCondition.java new file mode 100644 index 000000000..cb8bdfbbe --- /dev/null +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/HeatCondition.java @@ -0,0 +1,43 @@ +package com.simibubi.create.content.contraptions.processing; + +import com.simibubi.create.Create; +import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock; +import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock.HeatLevel; +import com.simibubi.create.foundation.utility.Lang; + +public enum HeatCondition { + + NONE, HEATED, SUPERHEATED, + + ; + + public boolean testBlazeBurner(BlazeBurnerBlock.HeatLevel level) { + if (this == SUPERHEATED) + return level == HeatLevel.SEETHING; + if (this == HEATED) + return level != HeatLevel.NONE && level != HeatLevel.SMOULDERING; + return true; + } + + public BlazeBurnerBlock.HeatLevel visualizeAsBlazeBurner() { + if (this == SUPERHEATED) + return HeatLevel.SEETHING; + if (this == HEATED) + return HeatLevel.KINDLED; + return HeatLevel.NONE; + } + + public String serialize() { + return Lang.asId(name()); + } + + public static HeatCondition deserialize(String name) { + for (HeatCondition heatCondition : values()) + if (heatCondition.serialize() + .equals(name)) + return heatCondition; + Create.logger.warn("Tried to deserialize invalid heat condition: \"" + name + "\""); + return NONE; + } + +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingIngredient.java b/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingIngredient.java deleted file mode 100644 index a25d9fcc2..000000000 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingIngredient.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.simibubi.create.content.contraptions.processing; - -import java.util.List; -import java.util.Random; -import java.util.function.Predicate; -import java.util.stream.Collectors; - -import com.google.gson.JsonObject; - -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.Ingredient; -import net.minecraft.network.PacketBuffer; - -public class ProcessingIngredient implements Predicate { - - private float outputChance; - private Ingredient ingredient; - private static Random r = new Random(); - - public ProcessingIngredient(Ingredient ingredient) { - this(ingredient, 0); - } - - public ProcessingIngredient(Ingredient ingredient, float outputChance) { - this.ingredient = ingredient; - this.outputChance = outputChance; - } - - public float getOutputChance() { - return outputChance; - } - - public boolean isCatalyst() { - return outputChance > 0; - } - - public static ProcessingIngredient parse(PacketBuffer buffer) { - Ingredient ingredient = Ingredient.read(buffer); - return new ProcessingIngredient(ingredient, buffer.readFloat()); - } - - public static ProcessingIngredient parse(JsonObject json) { - Ingredient ingredient = Ingredient.deserialize(json); - float chance = 0; - if (json.has("return_chance")) - chance = json.get("return_chance").getAsFloat(); - return new ProcessingIngredient(ingredient, chance); - } - - public void write(PacketBuffer buffer) { - getIngredient().write(buffer); - buffer.writeFloat(outputChance); - } - - @Override - public boolean test(ItemStack t) { - return ingredient.test(t); - } - - public Ingredient getIngredient() { - return ingredient; - } - - public static List list(List ingredients) { - return ingredients.stream().map(ProcessingIngredient::new).collect(Collectors.toList()); - } - - public boolean remains() { - return r.nextFloat() <= outputChance; - } - -} diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingOutput.java b/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingOutput.java index 186cf0b72..67fcb47ac 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingOutput.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingOutput.java @@ -2,11 +2,23 @@ package com.simibubi.create.content.contraptions.processing; import java.util.Random; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonSyntaxException; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.simibubi.create.Create; + import net.minecraft.item.ItemStack; +import net.minecraft.nbt.JsonToNBT; import net.minecraft.network.PacketBuffer; +import net.minecraft.util.JSONUtils; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.registries.ForgeRegistries; public class ProcessingOutput { + public static final ProcessingOutput EMPTY = new ProcessingOutput(ItemStack.EMPTY, 1); + private static final Random r = new Random(); private final ItemStack stack; private final float chance; @@ -31,12 +43,49 @@ public class ProcessingOutput { outputAmount--; return outputAmount > 0 ? new ItemStack(stack.getItem(), outputAmount) : ItemStack.EMPTY; } - + + public JsonElement serialize() { + JsonObject json = new JsonObject(); + json.addProperty("item", stack.getItem() + .getRegistryName() + .toString()); + json.addProperty("count", stack.getCount()); + if (stack.hasTag()) + json.addProperty("nbt", stack.getTag() + .toString()); + if (chance != 1) + json.addProperty("chance", chance); + return json; + } + + public static ProcessingOutput deserialize(JsonElement je) { + if (!je.isJsonObject()) + throw new JsonSyntaxException("ProcessingOutput must be a json object"); + + JsonObject json = je.getAsJsonObject(); + String itemId = JSONUtils.getString(json, "item"); + int count = JSONUtils.getInt(json, "count"); + float chance = JSONUtils.hasField(json, "chance") ? JSONUtils.getFloat(json, "chance") : 1; + ItemStack itemstack = new ItemStack(ForgeRegistries.ITEMS.getValue(new ResourceLocation(itemId)), count); + + if (JSONUtils.hasField(json, "nbt")) { + try { + JsonElement element = json.get("nbt"); + itemstack.setTag(JsonToNBT.getTagFromJson( + element.isJsonObject() ? Create.GSON.toJson(element) : JSONUtils.getString(element, "nbt"))); + } catch (CommandSyntaxException e) { + e.printStackTrace(); + } + } + + return new ProcessingOutput(itemstack, chance); + } + public void write(PacketBuffer buf) { buf.writeItemStack(getStack()); buf.writeFloat(getChance()); } - + public static ProcessingOutput read(PacketBuffer buf) { return new ProcessingOutput(buf.readItemStack(), buf.readFloat()); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipe.java b/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipe.java index 8134ee208..5f928b1db 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipe.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipe.java @@ -1,7 +1,20 @@ package com.simibubi.create.content.contraptions.processing; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +import javax.annotation.ParametersAreNonnullByDefault; + +import org.apache.logging.log4j.Logger; + +import com.google.gson.JsonObject; import com.simibubi.create.AllRecipeTypes; import com.simibubi.create.Create; +import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder.ProcessingRecipeParams; +import com.simibubi.create.foundation.fluid.FluidIngredient; +import com.simibubi.create.foundation.utility.Lang; + import mcp.MethodsReturnNonnullByDefault; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; @@ -9,78 +22,126 @@ import net.minecraft.item.crafting.IRecipe; import net.minecraft.item.crafting.IRecipeSerializer; import net.minecraft.item.crafting.IRecipeType; import net.minecraft.item.crafting.Ingredient; +import net.minecraft.network.PacketBuffer; import net.minecraft.util.NonNullList; import net.minecraft.util.ResourceLocation; import net.minecraftforge.fluids.FluidStack; -import javax.annotation.Nullable; -import javax.annotation.ParametersAreNonnullByDefault; -import java.util.List; -import java.util.stream.Collectors; - @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault public abstract class ProcessingRecipe implements IRecipe { - protected final List ingredients; - protected final ResourceLocation id; - protected final String group; - protected final int processingDuration; - protected final List fluidIngredients; - protected final List fluidResults; - protected final int requiredHeat; - private final List results; - private final IRecipeType type; - private final IRecipeSerializer serializer; - public ProcessingRecipe(AllRecipeTypes recipeType, ResourceLocation id, String group, - List ingredients, List results, int processingDuration) { - this(recipeType, id, group, ingredients, results, processingDuration, null, null, 0); - } + protected ResourceLocation id; + protected NonNullList ingredients; + protected NonNullList results; + protected NonNullList fluidIngredients; + protected NonNullList fluidResults; + protected int processingDuration; + protected HeatCondition requiredHeat; - public ProcessingRecipe(AllRecipeTypes recipeType, ResourceLocation id, String group, - List ingredients, List results, int processingDuration, - @Nullable List fluidIngredients, @Nullable List fluidResults, int requiredHeat) { - this.type = recipeType.type; + private IRecipeType type; + private IRecipeSerializer serializer; + private AllRecipeTypes enumType; + + public ProcessingRecipe(AllRecipeTypes recipeType, ProcessingRecipeParams params) { + + this.enumType = recipeType; + this.processingDuration = params.processingDuration; + this.fluidIngredients = params.fluidIngredients; + this.fluidResults = params.fluidResults; this.serializer = recipeType.serializer; - this.id = id; - this.group = group; - this.ingredients = ingredients; - this.results = results; - this.processingDuration = processingDuration; - this.fluidIngredients = fluidIngredients; - this.fluidResults = fluidResults; - this.requiredHeat = requiredHeat; - validate(recipeType); + this.requiredHeat = params.requiredHeat; + this.ingredients = params.ingredients; + this.type = recipeType.type; + this.results = params.results; + this.id = params.id; + + validate(Lang.asId(recipeType.name())); } - private void validate(AllRecipeTypes recipeType) { - if (ingredients.size() > getMaxInputCount()) - Create.logger.warn("Your custom " + recipeType.name() + " recipe (" + id.toString() + ") has more inputs (" - + ingredients.size() + ") than supported (" + getMaxInputCount() + ")."); - if (results.size() > getMaxOutputCount()) - Create.logger.warn("Your custom " + recipeType.name() + " recipe (" + id.toString() + ") has more outputs (" - + results.size() + ") than supported (" + getMaxOutputCount() + ")."); - ingredients.forEach(i -> { - if (i.isCatalyst() && !canHaveCatalysts()) - Create.logger.warn("Your custom " + recipeType.name() + " recipe (" + id.toString() - + ") has a catalyst ingredient, which act like a regular ingredient in this type."); - }); + // Recipe type options: + + protected abstract int getMaxInputCount(); + + protected abstract int getMaxOutputCount(); + + protected boolean canRequireHeat() { + return false; + } + + protected boolean canSpecifyDuration() { + return true; + } + + protected int getMaxFluidInputCount() { + return 0; + } + + protected int getMaxFluidOutputCount() { + return 0; + } + + // + + private void validate(String recipeTypeName) { + String messageHeader = "Your custom " + recipeTypeName + " recipe (" + id.toString() + ")"; + Logger logger = Create.logger; + int ingredientCount = ingredients.size(); + int outputCount = results.size(); + + if (ingredientCount > getMaxInputCount()) + logger.warn(messageHeader + " has more item inputs (" + ingredientCount + ") than supported (" + + getMaxInputCount() + ")."); + + if (outputCount > getMaxOutputCount()) + logger.warn(messageHeader + " has more item outputs (" + outputCount + ") than supported (" + + getMaxOutputCount() + ")."); + + if (processingDuration > 0 && !canSpecifyDuration()) + logger.warn(messageHeader + " specified a duration. Durations have no impact on this type of recipe."); + + if (requiredHeat != HeatCondition.NONE && !canRequireHeat()) + logger.warn( + messageHeader + " specified a heat condition. Heat conditions have no impact on this type of recipe."); + + ingredientCount = fluidIngredients.size(); + outputCount = fluidResults.size(); + + if (ingredientCount > getMaxFluidInputCount()) + logger.warn(messageHeader + " has more fluid inputs (" + ingredientCount + ") than supported (" + + getMaxFluidInputCount() + ")."); + + if (outputCount > getMaxFluidOutputCount()) + logger.warn(messageHeader + " has more fluid outputs (" + outputCount + ") than supported (" + + getMaxFluidOutputCount() + ")."); } @Override public NonNullList getIngredients() { - NonNullList nonnulllist = NonNullList.create(); - this.ingredients.forEach(e -> nonnulllist.add(e.getIngredient())); - return nonnulllist; + return ingredients; + } + + public NonNullList getFluidIngredients() { + return fluidIngredients; + } + + public NonNullList getRollableResults() { + return results; + } + + public NonNullList getFluidResults() { + return fluidResults; } - public int getProcessingDuration() { - return processingDuration; + public List getRollableResultsAsItemStacks() { + return getRollableResults().stream() + .map(ProcessingOutput::getStack) + .collect(Collectors.toList()); } - public CombinedItemFluidList rollResults() { - CombinedItemFluidList results = new CombinedItemFluidList(); - for (ProcessingOutput output : getRollableItemResults()) { + public List rollResults() { + List results = new ArrayList<>(); + for (ProcessingOutput output : getRollableResults()) { ItemStack stack = output.rollOutput(); if (!stack.isEmpty()) results.add(stack); @@ -88,6 +149,16 @@ public abstract class ProcessingRecipe implements IRecipe< return results; } + public int getProcessingDuration() { + return processingDuration; + } + + public HeatCondition getRequiredHeat() { + return requiredHeat; + } + + // IRecipe<> paperwork + @Override public ItemStack getCraftingResult(T inv) { return getRecipeOutput(); @@ -100,8 +171,8 @@ public abstract class ProcessingRecipe implements IRecipe< @Override public ItemStack getRecipeOutput() { - return getRollableItemResults().isEmpty() ? ItemStack.EMPTY - : getRollableItemResults().get(0) + return getRollableResults().isEmpty() ? ItemStack.EMPTY + : getRollableResults().get(0) .getStack(); } @@ -115,9 +186,10 @@ public abstract class ProcessingRecipe implements IRecipe< return serializer; } + // Processing recipes do not show up in the recipe book @Override public String getGroup() { - return group; + return "processing"; } @Override @@ -125,41 +197,18 @@ public abstract class ProcessingRecipe implements IRecipe< return type; } - protected int getMaxInputCount() { - return 1; + // Additional Data added by subtypes + + public void readAdditional(JsonObject json) {} + + public void readAdditional(PacketBuffer buffer) {} + + public void writeAdditional(JsonObject json) {} + + public void writeAdditional(PacketBuffer buffer) {} + + public AllRecipeTypes getEnumType() { + return enumType; } - protected int getMaxOutputCount() { - return 15; - } - - protected boolean canHaveCatalysts() { - return false; - } - - public List getRollableItemResults() { - return results; - } - - public List getRollableIngredients() { - return ingredients; - } - - public List getPossibleOutputs() { - return getRollableItemResults().stream() - .map(ProcessingOutput::getStack) - .collect(Collectors.toList()); - } - - protected boolean canHaveFluidIngredient() { - return false; - } - - protected boolean canHaveFluidOutput() { - return false; - } - - protected boolean requiresHeating() { - return false; - } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeBuilder.java b/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeBuilder.java new file mode 100644 index 000000000..51d2f1d8b --- /dev/null +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeBuilder.java @@ -0,0 +1,255 @@ +package com.simibubi.create.content.contraptions.processing; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.Consumer; + +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import com.simibubi.create.AllRecipeTypes; +import com.simibubi.create.Create; +import com.simibubi.create.foundation.fluid.FluidIngredient; +import com.simibubi.create.foundation.utility.Lang; + +import net.minecraft.data.IFinishedRecipe; +import net.minecraft.fluid.Fluid; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.IRecipeSerializer; +import net.minecraft.item.crafting.Ingredient; +import net.minecraft.tags.Tag; +import net.minecraft.util.IItemProvider; +import net.minecraft.util.NonNullList; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.common.crafting.CraftingHelper; +import net.minecraftforge.common.crafting.conditions.ICondition; +import net.minecraftforge.common.crafting.conditions.ModLoadedCondition; +import net.minecraftforge.common.crafting.conditions.NotCondition; +import net.minecraftforge.fluids.FluidStack; + +public class ProcessingRecipeBuilder> { + + protected ProcessingRecipeFactory factory; + protected ProcessingRecipeParams params; + protected List recipeConditions; + + public ProcessingRecipeBuilder(ProcessingRecipeFactory factory, ResourceLocation recipeId) { + params = new ProcessingRecipeParams(recipeId); + recipeConditions = new ArrayList<>(); + this.factory = factory; + } + + public ProcessingRecipeBuilder withItemIngredients(Ingredient... ingredients) { + return withItemIngredients(NonNullList.from(Ingredient.EMPTY, ingredients)); + } + + public ProcessingRecipeBuilder withItemIngredients(NonNullList ingredients) { + params.ingredients = ingredients; + return this; + } + + public ProcessingRecipeBuilder withSingleItemOutput(ItemStack output) { + return withItemOutputs(new ProcessingOutput(output, 1)); + } + + public ProcessingRecipeBuilder withItemOutputs(ProcessingOutput... outputs) { + return withItemOutputs(NonNullList.from(ProcessingOutput.EMPTY, outputs)); + } + + public ProcessingRecipeBuilder withItemOutputs(NonNullList outputs) { + params.results = outputs; + return this; + } + + public ProcessingRecipeBuilder withFluidIngredients(FluidIngredient... ingredients) { + return withFluidIngredients(NonNullList.from(FluidIngredient.EMPTY, ingredients)); + } + + public ProcessingRecipeBuilder withFluidIngredients(NonNullList ingredients) { + params.fluidIngredients = ingredients; + return this; + } + + public ProcessingRecipeBuilder withFluidOutputs(FluidStack... outputs) { + return withFluidOutputs(NonNullList.from(FluidStack.EMPTY, outputs)); + } + + public ProcessingRecipeBuilder withFluidOutputs(NonNullList outputs) { + params.fluidResults = outputs; + return this; + } + + public ProcessingRecipeBuilder duration(int ticks) { + params.processingDuration = ticks; + return this; + } + + public ProcessingRecipeBuilder averageProcessingDuration() { + return duration(100); + } + + public ProcessingRecipeBuilder requiresHeat(HeatCondition condition) { + params.requiredHeat = condition; + return this; + } + + public T build() { + return factory.create(params); + } + + public void build(Consumer consumer) { + consumer.accept(new DataGenResult<>(build(), recipeConditions)); + } + + // Datagen shortcuts + + public ProcessingRecipeBuilder require(Tag tag) { + return require(Ingredient.fromTag(tag)); + } + + public ProcessingRecipeBuilder require(IItemProvider item) { + return require(Ingredient.fromItems(item)); + } + + public ProcessingRecipeBuilder require(Ingredient ingredient) { + params.ingredients.add(ingredient); + return this; + } + + public ProcessingRecipeBuilder require(Fluid fluid, int amount) { + return require(FluidIngredient.fromFluid(fluid, amount)); + } + + public ProcessingRecipeBuilder require(Tag fluidTag, int amount) { + return require(FluidIngredient.fromTag(fluidTag, amount)); + } + + public ProcessingRecipeBuilder require(FluidIngredient ingredient) { + params.fluidIngredients.add(ingredient); + return this; + } + + public ProcessingRecipeBuilder output(IItemProvider item) { + return output(item, 1); + } + + public ProcessingRecipeBuilder output(float chance, IItemProvider item) { + return output(chance, item, 1); + } + + public ProcessingRecipeBuilder output(IItemProvider item, int amount) { + return output(1, item, amount); + } + + public ProcessingRecipeBuilder output(float chance, IItemProvider item, int amount) { + return output(chance, new ItemStack(item, amount)); + } + + public ProcessingRecipeBuilder output(float chance, ItemStack output) { + params.results.add(new ProcessingOutput(output, chance)); + return this; + } + + public ProcessingRecipeBuilder output(Fluid fluid, int amount) { + params.fluidResults.add(new FluidStack(fluid, amount)); + return this; + } + + // + + public ProcessingRecipeBuilder whenModLoaded(String modid) { + return withCondition(new ModLoadedCondition(modid)); + } + + public ProcessingRecipeBuilder whenModMissing(String modid) { + return withCondition(new NotCondition(new ModLoadedCondition(modid))); + } + + public ProcessingRecipeBuilder withCondition(ICondition condition) { + recipeConditions.add(condition); + return this; + } + + @FunctionalInterface + public interface ProcessingRecipeFactory> { + T create(ProcessingRecipeParams params); + } + + public static class ProcessingRecipeParams { + + ResourceLocation id; + NonNullList ingredients; + NonNullList results; + NonNullList fluidIngredients; + NonNullList fluidResults; + int processingDuration; + HeatCondition requiredHeat; + + ProcessingRecipeParams(ResourceLocation id) { + this.id = id; + ingredients = NonNullList.create(); + results = NonNullList.create(); + fluidIngredients = NonNullList.create(); + fluidResults = NonNullList.create(); + processingDuration = 0; + requiredHeat = HeatCondition.NONE; + } + + } + + public static class DataGenResult> implements IFinishedRecipe { + + private List recipeConditions; + private ProcessingRecipeSerializer serializer; + private ResourceLocation id; + private S recipe; + + @SuppressWarnings("unchecked") + public DataGenResult(S recipe, List recipeConditions) { + this.recipeConditions = recipeConditions; + AllRecipeTypes recipeType = recipe.getEnumType(); + String typeName = Lang.asId(recipeType.name()); + this.recipe = recipe; + + if (!(recipeType.serializer instanceof ProcessingRecipeSerializer)) + throw new IllegalStateException("Cannot datagen ProcessingRecipe of type: " + typeName); + + this.id = Create.asResource(typeName + "/" + recipe.getId() + .getPath()); + this.serializer = (ProcessingRecipeSerializer) recipe.getSerializer(); + } + + @Override + public void serialize(JsonObject json) { + serializer.write(json, recipe); + if (recipeConditions.isEmpty()) + return; + + JsonArray conds = new JsonArray(); + recipeConditions.forEach(c -> conds.add(CraftingHelper.serialize(c))); + json.add("conditions", conds); + } + + @Override + public ResourceLocation getID() { + return id; + } + + @Override + public IRecipeSerializer getSerializer() { + return serializer; + } + + @Override + public JsonObject getAdvancementJson() { + return null; + } + + @Override + public ResourceLocation getAdvancementID() { + return null; + } + + } + +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeSerializer.java b/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeSerializer.java index 3c8de24d8..6c2644a95 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeSerializer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeSerializer.java @@ -1,172 +1,164 @@ package com.simibubi.create.content.contraptions.processing; +import javax.annotation.ParametersAreNonnullByDefault; + +import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; +import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder.ProcessingRecipeFactory; +import com.simibubi.create.foundation.fluid.FluidHelper; +import com.simibubi.create.foundation.fluid.FluidIngredient; + import mcp.MethodsReturnNonnullByDefault; -import net.minecraft.fluid.Fluid; -import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipeSerializer; +import net.minecraft.item.crafting.Ingredient; import net.minecraft.network.PacketBuffer; import net.minecraft.util.JSONUtils; +import net.minecraft.util.NonNullList; import net.minecraft.util.ResourceLocation; -import net.minecraft.util.registry.Registry; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.registries.ForgeRegistries; - -import javax.annotation.Nullable; -import javax.annotation.ParametersAreNonnullByDefault; -import java.util.ArrayList; -import java.util.List; +import net.minecraftforge.registries.ForgeRegistryEntry; @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault -public class ProcessingRecipeSerializer> - extends net.minecraftforge.registries.ForgeRegistryEntry> implements IRecipeSerializer { +public class ProcessingRecipeSerializer> extends ForgeRegistryEntry> + implements IRecipeSerializer { - protected final IRecipeFactory factory; + private final ProcessingRecipeFactory factory; - public ProcessingRecipeSerializer(IRecipeFactory factory) { + public ProcessingRecipeSerializer(ProcessingRecipeFactory factory) { this.factory = factory; } - @SuppressWarnings("deprecation") - public T read(ResourceLocation recipeId, JsonObject json) { - String s = JSONUtils.getString(json, "group", ""); + protected void writeToJson(JsonObject json, T recipe) { + JsonArray jsonIngredients = new JsonArray(); + JsonArray jsonOutputs = new JsonArray(); - List ingredients = new ArrayList<>(); - List fluidIngredients = new ArrayList<>(); - for (JsonElement e : JSONUtils.getJsonArray(json, "ingredients")) { - JsonObject entry = e.getAsJsonObject(); - if (JSONUtils.hasField(entry, "fluid")) { - addFluidToList(fluidIngredients, entry); - } else { - int count = 1; - if (JSONUtils.hasField(entry, "count")) { - count = JSONUtils.getInt(entry, "count"); - } - for (int i = 0; i < count; i++) { - ingredients.add(ProcessingIngredient.parse(entry)); - } - } + recipe.getIngredients() + .forEach(i -> jsonIngredients.add(i.serialize())); + recipe.getFluidIngredients() + .forEach(i -> jsonIngredients.add(i.serialize())); + + recipe.getRollableResults() + .forEach(o -> jsonOutputs.add(o.serialize())); + recipe.getFluidResults() + .forEach(o -> jsonOutputs.add(FluidHelper.serializeFluidStack(o))); + + json.add("ingredients", jsonIngredients); + json.add("results", jsonOutputs); + + int processingDuration = recipe.getProcessingDuration(); + if (processingDuration > 0) + json.addProperty("processingTime", processingDuration); + + HeatCondition requiredHeat = recipe.getRequiredHeat(); + if (requiredHeat != HeatCondition.NONE) + json.addProperty("heatRequirement", requiredHeat.serialize()); + + recipe.writeAdditional(json); + } + + protected T readFromJson(ResourceLocation recipeId, JsonObject json) { + ProcessingRecipeBuilder builder = new ProcessingRecipeBuilder<>(factory, recipeId); + NonNullList ingredients = NonNullList.create(); + NonNullList fluidIngredients = NonNullList.create(); + NonNullList results = NonNullList.create(); + NonNullList fluidResults = NonNullList.create(); + + for (JsonElement je : JSONUtils.getJsonArray(json, "ingredients")) { + if (FluidIngredient.isFluidIngredient(je)) + fluidIngredients.add(FluidIngredient.deserialize(je)); + else + ingredients.add(Ingredient.deserialize(je)); } - List results = new ArrayList<>(); - List fluidResults = new ArrayList<>(); - for (JsonElement e : JSONUtils.getJsonArray(json, "results")) { - JsonObject entry = e.getAsJsonObject(); - if (JSONUtils.hasField(entry, "fluid")) { - addFluidToList(fluidResults, entry); - } else { - String s1 = JSONUtils.getString(entry, "item"); - int i = JSONUtils.getInt(entry, "count"); - float chance = 1; - if (JSONUtils.hasField(entry, "chance")) - chance = JSONUtils.getFloat(entry, "chance"); - ItemStack itemstack = new ItemStack(Registry.ITEM.getOrDefault(new ResourceLocation(s1)), i); - results.add(new ProcessingOutput(itemstack, chance)); - } + for (JsonElement je : JSONUtils.getJsonArray(json, "results")) { + JsonObject jsonObject = je.getAsJsonObject(); + if (JSONUtils.hasField(jsonObject, "fluid")) + fluidResults.add(FluidHelper.deserializeFluidStack(jsonObject)); + else + results.add(ProcessingOutput.deserialize(je)); } - int duration = -1; + builder.withItemIngredients(ingredients) + .withItemOutputs(results) + .withFluidIngredients(fluidIngredients) + .withFluidOutputs(fluidResults); + if (JSONUtils.hasField(json, "processingTime")) - duration = JSONUtils.getInt(json, "processingTime"); + builder.duration(JSONUtils.getInt(json, "processingTime")); + if (JSONUtils.hasField(json, "heatRequirement")) + builder.requiresHeat(HeatCondition.deserialize(JSONUtils.getString(json, "heatRequirement"))); - int requiredHeat = 0; - if (JSONUtils.hasField(json, "requiredHeat")) - requiredHeat = JSONUtils.getInt(json, "requiredHeat"); - - return this.factory.create(recipeId, s, ingredients, results, duration, fluidIngredients, fluidResults, - requiredHeat); + return builder.build(); } - private void addFluidToList(List fluidStacks, JsonObject entry) { - Fluid fluid = ForgeRegistries.FLUIDS.getValue(ResourceLocation.tryCreate(JSONUtils.getString(entry, "fluid"))); - int amount = 1; - if (JSONUtils.hasField(entry, "amount")) { - amount = JSONUtils.getInt(entry, "amount"); - } - if (fluid != null && amount > 0) - fluidStacks.add(new FluidStack(fluid, amount)); + protected void writeToBuffer(PacketBuffer buffer, T recipe) { + NonNullList ingredients = recipe.getIngredients(); + NonNullList fluidIngredients = recipe.getFluidIngredients(); + NonNullList outputs = recipe.getRollableResults(); + NonNullList fluidOutputs = recipe.getFluidResults(); + + buffer.writeVarInt(ingredients.size()); + ingredients.forEach(i -> i.write(buffer)); + buffer.writeVarInt(fluidIngredients.size()); + fluidIngredients.forEach(i -> i.write(buffer)); + + buffer.writeVarInt(outputs.size()); + outputs.forEach(o -> o.write(buffer)); + buffer.writeVarInt(fluidOutputs.size()); + fluidOutputs.forEach(o -> o.writeToPacket(buffer)); + + buffer.writeVarInt(recipe.getProcessingDuration()); + buffer.writeVarInt(recipe.getRequiredHeat() + .ordinal()); } - public T read(ResourceLocation recipeId, PacketBuffer buffer) { - String s = buffer.readString(32767); + protected T readFromBuffer(ResourceLocation recipeId, PacketBuffer buffer) { + NonNullList ingredients = NonNullList.create(); + NonNullList fluidIngredients = NonNullList.create(); + NonNullList results = NonNullList.create(); + NonNullList fluidResults = NonNullList.create(); - List ingredients = new ArrayList<>(); - int ingredientCount = buffer.readInt(); - for (int i = 0; i < ingredientCount; i++) - ingredients.add(ProcessingIngredient.parse(buffer)); - - int fluidInputCount = buffer.readInt(); - List fluidIngredients = new ArrayList<>(); - for (int i = 0; i < fluidInputCount; i++) - fluidIngredients.add(FluidStack.readFromPacket(buffer)); - - List results = new ArrayList<>(); - int outputCount = buffer.readInt(); - for (int i = 0; i < outputCount; i++) + for (int i = 0; i < buffer.readVarInt(); i++) + ingredients.add(Ingredient.read(buffer)); + for (int i = 0; i < buffer.readVarInt(); i++) + fluidIngredients.add(FluidIngredient.read(buffer)); + for (int i = 0; i < buffer.readVarInt(); i++) results.add(ProcessingOutput.read(buffer)); - - int fluidOutputCount = buffer.readInt(); - List fluidResults = new ArrayList<>(); - for (int i = 0; i < fluidOutputCount; i++) + for (int i = 0; i < buffer.readVarInt(); i++) fluidResults.add(FluidStack.readFromPacket(buffer)); - int duration = buffer.readInt(); - int requiredHeat = buffer.readInt(); - - return this.factory.create(recipeId, s, ingredients, results, duration, fluidIngredients, fluidResults, - requiredHeat); + return new ProcessingRecipeBuilder<>(factory, recipeId).withItemIngredients(ingredients) + .withItemOutputs(results) + .withFluidIngredients(fluidIngredients) + .withFluidOutputs(fluidResults) + .duration(buffer.readVarInt()) + .requiresHeat(HeatCondition.values()[buffer.readVarInt()]) + .build(); } - public void write(PacketBuffer buffer, T recipe) { - buffer.writeString(recipe.group); - - buffer.writeInt(recipe.ingredients.size()); - recipe.ingredients.forEach(i -> i.write(buffer)); - if (recipe.canHaveFluidIngredient() && recipe.fluidIngredients != null) { - buffer.writeInt(recipe.fluidIngredients.size()); - recipe.fluidIngredients.forEach(fluidStack -> fluidStack.writeToPacket(buffer)); - } else { - buffer.writeInt(0); - } - - buffer.writeInt(recipe.getRollableItemResults() - .size()); - recipe.getRollableItemResults() - .forEach(i -> i.write(buffer)); - if (recipe.canHaveFluidOutput() && recipe.fluidResults != null) { - buffer.writeInt(recipe.fluidResults.size()); - recipe.fluidResults.forEach(fluidStack -> fluidStack.writeToPacket(buffer)); - } else { - buffer.writeInt(0); - } - - buffer.writeInt(recipe.processingDuration); - buffer.writeInt(recipe.requiredHeat); + public final void write(JsonObject json, T recipe) { + writeToJson(json, recipe); } - public interface IRecipeFactory> { - default T create(ResourceLocation recipeId, String s, List ingredients, - List results, int duration, @Nullable List fluidIngredients, - @Nullable List fluidResults, int requiredHeat) { - return create(recipeId, s, ingredients, results, duration); - } - - T create(ResourceLocation recipeId, String s, List ingredients, - List results, int duration); + @Override + public final T read(ResourceLocation id, JsonObject json) { + return readFromJson(id, json); } - public interface IExtendedRecipeFactory> extends IRecipeFactory { - @Override - T create(ResourceLocation recipeId, String s, List ingredients, - List results, int duration, @Nullable List fluidIngredients, - @Nullable List fluidResults, int requiredHeat); - - @Override - default T create(ResourceLocation recipeId, String s, List ingredients, - List results, int duration) { - throw new IllegalStateException("Incorrect recipe creation function used: " + recipeId); - } + @Override + public final void write(PacketBuffer buffer, T recipe) { + writeToBuffer(buffer, recipe); } + + @Override + public final T read(ResourceLocation id, PacketBuffer buffer) { + return readFromBuffer(id, buffer); + } + + public ProcessingRecipeFactory getFactory() { + return factory; + } + } diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerBlock.java b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerBlock.java index a9713bcb4..5120c3beb 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerBlock.java @@ -47,7 +47,7 @@ import net.minecraft.world.storage.loot.conditions.SurvivesExplosion; @ParametersAreNonnullByDefault public class BlazeBurnerBlock extends Block implements ITE { - public static IProperty HEAT_LEVEL = EnumProperty.create("blaze", HeatLevel.class); + public static final IProperty HEAT_LEVEL = EnumProperty.create("blaze", HeatLevel.class); public BlazeBurnerBlock(Properties properties) { super(properties); diff --git a/src/main/java/com/simibubi/create/content/curiosities/tools/SandPaperPolishingRecipe.java b/src/main/java/com/simibubi/create/content/curiosities/tools/SandPaperPolishingRecipe.java index c2a752b41..f064077ba 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/tools/SandPaperPolishingRecipe.java +++ b/src/main/java/com/simibubi/create/content/curiosities/tools/SandPaperPolishingRecipe.java @@ -1,27 +1,42 @@ package com.simibubi.create.content.curiosities.tools; +import java.util.List; + +import javax.annotation.ParametersAreNonnullByDefault; + import com.simibubi.create.AllRecipeTypes; -import com.simibubi.create.content.contraptions.processing.ProcessingIngredient; -import com.simibubi.create.content.contraptions.processing.ProcessingOutput; import com.simibubi.create.content.contraptions.processing.ProcessingRecipe; +import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder.ProcessingRecipeParams; import com.simibubi.create.content.curiosities.tools.SandPaperPolishingRecipe.SandPaperInv; + import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; -import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; import net.minecraftforge.items.ItemStackHandler; import net.minecraftforge.items.wrapper.RecipeWrapper; -import javax.annotation.ParametersAreNonnullByDefault; -import java.util.List; - @ParametersAreNonnullByDefault public class SandPaperPolishingRecipe extends ProcessingRecipe { - public SandPaperPolishingRecipe(ResourceLocation id, String group, List ingredients, - List results, int processingDuration) { - super(AllRecipeTypes.SANDPAPER_POLISHING, id, group, ingredients, results, processingDuration); + public SandPaperPolishingRecipe(ProcessingRecipeParams params) { + super(AllRecipeTypes.SANDPAPER_POLISHING, params); + } + + @Override + public boolean matches(SandPaperInv inv, World worldIn) { + return ingredients.get(0) + .test(inv.getStackInSlot(0)); + } + + @Override + protected int getMaxInputCount() { + return 1; + } + + @Override + protected int getMaxOutputCount() { + return 1; } public static boolean canPolish(World world, ItemStack stack) { @@ -42,17 +57,6 @@ public class SandPaperPolishingRecipe extends ProcessingRecipe { .getRecipes(AllRecipeTypes.SANDPAPER_POLISHING.getType(), new SandPaperInv(stack), world); } - @Override - public boolean matches(SandPaperInv inv, World worldIn) { - return ingredients.get(0) - .test(inv.getStackInSlot(0)); - } - - @Override - protected int getMaxOutputCount() { - return 1; - } - public static class SandPaperInv extends RecipeWrapper { public SandPaperInv(ItemStack stack) { diff --git a/src/main/java/com/simibubi/create/content/logistics/InWorldProcessing.java b/src/main/java/com/simibubi/create/content/logistics/InWorldProcessing.java index c8329e070..8ef188758 100644 --- a/src/main/java/com/simibubi/create/content/logistics/InWorldProcessing.java +++ b/src/main/java/com/simibubi/create/content/logistics/InWorldProcessing.java @@ -63,9 +63,11 @@ public class InWorldProcessing { if (fluidState.getFluid() == Fluids.WATER || fluidState.getFluid() == Fluids.FLOWING_WATER) return Type.SPLASHING; if (blockState.getBlock() == Blocks.FIRE - || (blockState.getBlock() == Blocks.CAMPFIRE && blockState.get(CampfireBlock.LIT)) || getHeatLevelOf(blockState) == BlazeBurnerBlock.HeatLevel.SMOULDERING) + || (blockState.getBlock() == Blocks.CAMPFIRE && blockState.get(CampfireBlock.LIT)) + || getHeatLevelOf(blockState) == BlazeBurnerBlock.HeatLevel.SMOULDERING) return Type.SMOKING; - if (blockState.getBlock() == Blocks.LAVA || getHeatLevelOf(blockState).isAtLeast(BlazeBurnerBlock.HeatLevel.FADING)) + if (blockState.getBlock() == Blocks.LAVA + || getHeatLevelOf(blockState).isAtLeast(BlazeBurnerBlock.HeatLevel.FADING)) return Type.BLASTING; return null; } @@ -140,8 +142,7 @@ public class InWorldProcessing { } } - public static List applyProcessing(TransportedItemStack transported, - World world, Type type) { + public static List applyProcessing(TransportedItemStack transported, World world, Type type) { if (transported.processedBy != type) { transported.processedBy = type; int timeModifierForStackSize = ((transported.stack.getCount() - 1) / 16) + 1; @@ -266,7 +267,7 @@ public class InWorldProcessing { if (recipe instanceof ProcessingRecipe) { stacks = new ArrayList<>(); for (int i = 0; i < stackIn.getCount(); i++) { - List rollResults = ((ProcessingRecipe) recipe).rollResults().getItemStacks(); + List rollResults = ((ProcessingRecipe) recipe).rollResults(); for (ItemStack stack : rollResults) { for (ItemStack previouslyRolled : stacks) { if (stack.isEmpty()) diff --git a/src/main/java/com/simibubi/create/events/CommonEvents.java b/src/main/java/com/simibubi/create/events/CommonEvents.java index 4273c650e..7f3d5bf74 100644 --- a/src/main/java/com/simibubi/create/events/CommonEvents.java +++ b/src/main/java/com/simibubi/create/events/CommonEvents.java @@ -8,6 +8,7 @@ import com.simibubi.create.content.schematics.ServerSchematicLoader; import com.simibubi.create.foundation.command.AllCommands; import com.simibubi.create.foundation.utility.ServerSpeedProvider; import com.simibubi.create.foundation.utility.WorldAttached; +import com.simibubi.create.foundation.utility.recipe.RecipeFinder; import net.minecraft.entity.Entity; import net.minecraft.entity.LivingEntity; @@ -21,6 +22,7 @@ import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; import net.minecraftforge.event.world.WorldEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; +import net.minecraftforge.fml.event.server.FMLServerAboutToStartEvent; import net.minecraftforge.fml.event.server.FMLServerStartingEvent; import net.minecraftforge.fml.event.server.FMLServerStoppingEvent; @@ -55,7 +57,7 @@ public class CommonEvents { return; ContraptionHandler.entitiesWhoJustDismountedGetSentToTheRightLocation(entityLiving, world); } - + @SubscribeEvent public static void onEntityAdded(EntityJoinWorldEvent event) { Entity entity = event.getEntity(); @@ -69,6 +71,13 @@ public class CommonEvents { AllCommands.register(event.getCommandDispatcher()); } + @SubscribeEvent + public static void serverAboutToStart(FMLServerAboutToStartEvent event) { + event.getServer() + .getResourceManager() + .addReloadListener(RecipeFinder.LISTENER); + } + @SubscribeEvent public static void serverStopped(FMLServerStoppingEvent event) { Create.schematicReceiver.shutdown(); diff --git a/src/main/java/com/simibubi/create/foundation/ResourceReloadHandler.java b/src/main/java/com/simibubi/create/foundation/ResourceReloadHandler.java index 78a8c52ce..9206a88c4 100644 --- a/src/main/java/com/simibubi/create/foundation/ResourceReloadHandler.java +++ b/src/main/java/com/simibubi/create/foundation/ResourceReloadHandler.java @@ -7,15 +7,15 @@ import net.minecraft.client.resources.ReloadListener; import net.minecraft.profiler.IProfiler; import net.minecraft.resources.IResourceManager; -public class ResourceReloadHandler extends ReloadListener { +public class ResourceReloadHandler extends ReloadListener { @Override - protected String prepare(IResourceManager resourceManagerIn, IProfiler profilerIn) { - return ""; + protected Object prepare(IResourceManager resourceManagerIn, IProfiler profilerIn) { + return new Object(); } @Override - protected void apply(String splashList, IResourceManager resourceManagerIn, IProfiler profilerIn) { + protected void apply(Object $, IResourceManager resourceManagerIn, IProfiler profilerIn) { SpriteShifter.reloadUVs(); CreateClient.bufferCache.invalidate(); } diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/CreateRecipeProvider.java b/src/main/java/com/simibubi/create/foundation/data/recipe/CreateRecipeProvider.java new file mode 100644 index 000000000..1db1fa4cd --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/CreateRecipeProvider.java @@ -0,0 +1,156 @@ +package com.simibubi.create.foundation.data.recipe; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.Consumer; + +import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllItems; +import com.simibubi.create.AllTags; + +import net.minecraft.data.DataGenerator; +import net.minecraft.data.IFinishedRecipe; +import net.minecraft.data.RecipeProvider; +import net.minecraft.item.Item; +import net.minecraft.tags.Tag; +import net.minecraft.util.IItemProvider; +import net.minecraftforge.common.Tags; + +public abstract class CreateRecipeProvider extends RecipeProvider { + + final List all = new ArrayList<>(); + + public CreateRecipeProvider(DataGenerator p_i48262_1_) { + super(p_i48262_1_); + } + + @Override + protected void registerRecipes(Consumer p_200404_1_) { + all.forEach(c -> c.register(p_200404_1_)); + } + + @FunctionalInterface + interface GeneratedRecipe { + void register(Consumer consumer); + } + + protected GeneratedRecipe register(GeneratedRecipe recipe) { + all.add(recipe); + return recipe; + } + + protected static class Marker { + } + + protected static class I { + + static Tag redstone() { + return Tags.Items.DUSTS_REDSTONE; + } + + static Tag gold() { + return AllTags.forgeItemTag("ingots/gold"); + } + + static Tag goldSheet() { + return AllTags.forgeItemTag("plates/gold"); + } + + static Tag stone() { + return Tags.Items.STONE; + } + + static IItemProvider andesite() { + return AllItems.ANDESITE_ALLOY.get(); + } + + static IItemProvider shaft() { + return AllBlocks.SHAFT.get(); + } + + static IItemProvider cog() { + return AllBlocks.COGWHEEL.get(); + } + + static IItemProvider andesiteCasing() { + return AllBlocks.ANDESITE_CASING.get(); + } + + static Tag brass() { + return AllTags.forgeItemTag("ingots/brass"); + } + + static Tag brassSheet() { + return AllTags.forgeItemTag("plates/brass"); + } + + static Tag iron() { + return Tags.Items.INGOTS_IRON; + } + + static Tag zinc() { + return AllTags.forgeItemTag("ingots/zinc"); + } + + static Tag ironSheet() { + return AllTags.forgeItemTag("plates/iron"); + } + + static IItemProvider brassCasing() { + return AllBlocks.BRASS_CASING.get(); + } + + static IItemProvider electronTube() { + return AllItems.ELECTRON_TUBE.get(); + } + + static IItemProvider circuit() { + return AllItems.INTEGRATED_CIRCUIT.get(); + } + + static Tag copperBlock() { + return AllTags.forgeItemTag("storage_blocks/copper"); + } + + static Tag brassBlock() { + return AllTags.forgeItemTag("storage_blocks/brass"); + } + + static Tag zincBlock() { + return AllTags.forgeItemTag("storage_blocks/zinc"); + } + + static Tag copper() { + return AllTags.forgeItemTag("ingots/copper"); + } + + static Tag copperSheet() { + return AllTags.forgeItemTag("plates/copper"); + } + + static Tag copperNugget() { + return AllTags.forgeItemTag("nuggets/copper"); + } + + static Tag brassNugget() { + return AllTags.forgeItemTag("nuggets/brass"); + } + + static Tag zincNugget() { + return AllTags.forgeItemTag("nuggets/zinc"); + } + + static IItemProvider copperCasing() { + return AllBlocks.COPPER_CASING.get(); + } + + static IItemProvider refinedRadiance() { + return AllItems.REFINED_RADIANCE.get(); + } + + static IItemProvider shadowSteel() { + return AllItems.SHADOW_STEEL.get(); + } + + } +} diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/CrushingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/CrushingRecipeGen.java new file mode 100644 index 000000000..ef148afa9 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/CrushingRecipeGen.java @@ -0,0 +1,149 @@ +package com.simibubi.create.foundation.data.recipe; + +import com.simibubi.create.AllItems; +import com.simibubi.create.AllRecipeTypes; +import com.simibubi.create.AllTags; +import com.simibubi.create.content.palettes.AllPaletteBlocks; +import com.tterrag.registrate.util.entry.ItemEntry; + +import net.minecraft.block.Blocks; +import net.minecraft.data.DataGenerator; +import net.minecraft.item.Item; +import net.minecraft.item.Items; +import net.minecraft.tags.ItemTags; + +public class CrushingRecipeGen extends ProcessingRecipeGen { + + GeneratedRecipe + + BLAZE_ROD = create(() -> Items.BLAZE_ROD, b -> b.duration(100) + .output(Items.BLAZE_POWDER, 3) + .output(.25f, Items.BLAZE_POWDER, 3)), + + PRISMARINE_CRYSTALS = create(() -> Items.PRISMARINE_CRYSTALS, b -> b.duration(150) + .output(Items.PRISMARINE_SHARD, 2) + .output(.75f, Items.QUARTZ, 2) + .output(.25f, Items.PRISMARINE_SHARD, 2) + .output(.1f, Items.GLOWSTONE_DUST, 2)), + + OBSIDIAN = create(() -> Blocks.OBSIDIAN, b -> b.duration(500) + .output(AllItems.POWDERED_OBSIDIAN.get()) + .output(.75f, Blocks.OBSIDIAN)), + + WOOL = create("wool", b -> b.duration(100) + .require(ItemTags.WOOL) + .output(Items.STRING, 2) + .output(.5f, Items.STRING)), + + COPPER_BLOCK = create("copper_block", b -> b.duration(400) + .require(I.copperBlock()) + .output(AllItems.CRUSHED_COPPER.get(), 5)), + + ZINC_BLOCK = create("zinc_block", b -> b.duration(400) + .require(I.zincBlock()) + .output(AllItems.CRUSHED_ZINC.get(), 5)), + + BRASS_BLOCK = create("brass_block", b -> b.duration(400) + .require(I.brassBlock()) + .output(AllItems.CRUSHED_BRASS.get(), 5)), + + COPPER_ORE = metalOre("copper", AllItems.CRUSHED_COPPER, 350), + ZINC_ORE = metalOre("zinc", AllItems.CRUSHED_ZINC, 350), + IRON_ORE = metalOre("iron", AllItems.CRUSHED_IRON, 400), + GOLD_ORE = metalOre("gold", AllItems.CRUSHED_GOLD, 300), + + NETHER_QUARTZ_ORE = create(() -> Blocks.NETHER_QUARTZ_ORE, b -> b.duration(350) + .output(Items.QUARTZ, 2) + .output(.5f, Items.QUARTZ, 4) + .output(.125f, Blocks.NETHERRACK)), + + REDSTONE_ORE = create(() -> Blocks.REDSTONE_ORE, b -> b.duration(300) + .output(Items.REDSTONE, 8) + .output(.25f, Items.REDSTONE, 6) + .output(.125f, Blocks.COBBLESTONE)), + + LAPIS_ORE = create(() -> Blocks.LAPIS_ORE, b -> b.duration(300) + .output(Items.LAPIS_LAZULI, 12) + .output(.25f, Items.LAPIS_LAZULI, 8) + .output(.125f, Blocks.COBBLESTONE)), + + COAL_ORE = create(() -> Blocks.COAL_ORE, b -> b.duration(300) + .output(Items.COAL, 2) + .output(.5f, Items.COAL, 2) + .output(.125f, Blocks.COBBLESTONE)), + + EMERALD_ORE = create(() -> Blocks.EMERALD_ORE, b -> b.duration(500) + .output(Items.EMERALD, 2) + .output(.25f, Items.EMERALD, 1) + .output(.125f, Blocks.COBBLESTONE)), + + NETHER_WART_NO_QUARK = create("nether_wart_block_no_quark", b -> b.duration(150) + .require(Blocks.NETHER_WART_BLOCK) + .output(Items.NETHER_WART, 6) + .output(.5f, Items.NETHER_WART, 2) + .whenModMissing("quark")), + + NETHER_WART_QUARK = create("nether_wart_block_quark", b -> b.duration(150) + .require(Blocks.NETHER_WART_BLOCK) + .output(Items.NETHER_WART, 2) + .output(.5f, Items.NETHER_WART, 2) + .whenModLoaded("quark")), + + GLOWSTONE = create(() -> Blocks.GLOWSTONE, b -> b.duration(150) + .output(Items.GLOWSTONE_DUST, 3) + .output(.5f, Items.GLOWSTONE_DUST)), + + LEATHER_HORSE_ARMOR = create(() -> Items.LEATHER_HORSE_ARMOR, b -> b.duration(200) + .output(Items.LEATHER, 2) + .output(.5f, Items.LEATHER, 2)), + + IRON_HORSE_ARMOR = create(() -> Items.IRON_HORSE_ARMOR, b -> b.duration(200) + .output(Items.IRON_INGOT, 2) + .output(.5f, Items.LEATHER, 1) + .output(.5f, Items.IRON_INGOT, 1) + .output(.25f, Items.STRING, 2) + .output(.25f, Items.IRON_NUGGET, 4)), + + GOLDEN_HORSE_ARMOR = create(() -> Items.GOLDEN_HORSE_ARMOR, b -> b.duration(200) + .output(Items.GOLD_INGOT, 2) + .output(.5f, Items.LEATHER, 2) + .output(.5f, Items.GOLD_INGOT, 2) + .output(.25f, Items.STRING, 2) + .output(.25f, Items.GOLD_NUGGET, 8)), + + DIAMOND_HORSE_ARMOR = create(() -> Items.DIAMOND_HORSE_ARMOR, b -> b.duration(200) + .output(Items.DIAMOND, 1) + .output(.5f, Items.LEATHER, 2) + .output(.1f, Items.DIAMOND, 3) + .output(.25f, Items.STRING, 2)), + + GRAVEL = create(() -> Blocks.GRAVEL, b -> b.duration(250) + .output(Blocks.SAND) + .output(.1f, Items.FLINT) + .output(.05f, Items.CLAY_BALL)), + + SAND = create(() -> Blocks.SAND, b -> b.duration(150) + .output(AllPaletteBlocks.LIMESAND.get()) + .output(.5f, AllPaletteBlocks.LIMESAND.get()) + .output(.05f, Items.BONE_MEAL)) + + ; + + protected GeneratedRecipe metalOre(String name, ItemEntry crushed, int duration) { + return create(name + "_ore", b -> b.duration(duration) + .require(AllTags.forgeItemTag("ores/" + name)) + .output(crushed.get()) + .output(.3f, crushed.get(), 2) + .output(.125f, Blocks.COBBLESTONE)); + } + + public CrushingRecipeGen(DataGenerator p_i48262_1_) { + super(p_i48262_1_); + } + + @Override + protected AllRecipeTypes getRecipeType() { + return AllRecipeTypes.CRUSHING; + } + +} diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/CuttingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/CuttingRecipeGen.java new file mode 100644 index 000000000..4ab5e1400 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/CuttingRecipeGen.java @@ -0,0 +1,49 @@ +package com.simibubi.create.foundation.data.recipe; + +import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllRecipeTypes; + +import net.minecraft.block.Block; +import net.minecraft.block.Blocks; +import net.minecraft.data.DataGenerator; + +public class CuttingRecipeGen extends ProcessingRecipeGen { + + GeneratedRecipe + + ANDESITE_ALLOY = create(I::andesite, b -> b.duration(200) + .output(AllBlocks.SHAFT.get(), 6)), + + OAK_WOOD = stripAndMakePlanks(Blocks.OAK_WOOD, Blocks.STRIPPED_OAK_WOOD, Blocks.OAK_PLANKS), + SPRUCE_WOOD = stripAndMakePlanks(Blocks.SPRUCE_WOOD, Blocks.STRIPPED_SPRUCE_WOOD, Blocks.SPRUCE_PLANKS), + BIRCH_WOOD = stripAndMakePlanks(Blocks.BIRCH_WOOD, Blocks.STRIPPED_BIRCH_WOOD, Blocks.BIRCH_PLANKS), + JUNGLE_WOOD = stripAndMakePlanks(Blocks.JUNGLE_WOOD, Blocks.STRIPPED_JUNGLE_WOOD, Blocks.JUNGLE_PLANKS), + ACACIA_WOOD = stripAndMakePlanks(Blocks.ACACIA_WOOD, Blocks.STRIPPED_ACACIA_WOOD, Blocks.ACACIA_PLANKS), + DARK_OAK_WOOD = stripAndMakePlanks(Blocks.DARK_OAK_WOOD, Blocks.STRIPPED_DARK_OAK_WOOD, Blocks.DARK_OAK_PLANKS), + + OAK_LOG = stripAndMakePlanks(Blocks.OAK_LOG, Blocks.STRIPPED_OAK_LOG, Blocks.OAK_PLANKS), + SPRUCE_LOG = stripAndMakePlanks(Blocks.SPRUCE_LOG, Blocks.STRIPPED_SPRUCE_LOG, Blocks.SPRUCE_PLANKS), + BIRCH_LOG = stripAndMakePlanks(Blocks.BIRCH_LOG, Blocks.STRIPPED_BIRCH_LOG, Blocks.BIRCH_PLANKS), + JUNGLE_LOG = stripAndMakePlanks(Blocks.JUNGLE_LOG, Blocks.STRIPPED_JUNGLE_LOG, Blocks.JUNGLE_PLANKS), + ACACIA_LOG = stripAndMakePlanks(Blocks.ACACIA_LOG, Blocks.STRIPPED_ACACIA_LOG, Blocks.ACACIA_PLANKS), + DARK_OAK_LOG = stripAndMakePlanks(Blocks.DARK_OAK_LOG, Blocks.STRIPPED_DARK_OAK_LOG, Blocks.DARK_OAK_PLANKS) + + ; + + GeneratedRecipe stripAndMakePlanks(Block wood, Block stripped, Block planks) { + create(() -> wood, b -> b.duration(50) + .output(stripped)); + return create(() -> stripped, b -> b.duration(100) + .output(planks, 5)); + } + + public CuttingRecipeGen(DataGenerator p_i48262_1_) { + super(p_i48262_1_); + } + + @Override + protected AllRecipeTypes getRecipeType() { + return AllRecipeTypes.CUTTING; + } + +} diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/MillingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/MillingRecipeGen.java new file mode 100644 index 000000000..2064e4103 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/MillingRecipeGen.java @@ -0,0 +1,200 @@ +package com.simibubi.create.foundation.data.recipe; + +import com.simibubi.create.AllItems; +import com.simibubi.create.AllRecipeTypes; +import com.simibubi.create.AllTags; +import com.simibubi.create.content.palettes.AllPaletteBlocks; +import com.tterrag.registrate.util.entry.ItemEntry; + +import net.minecraft.block.Blocks; +import net.minecraft.data.DataGenerator; +import net.minecraft.item.Item; +import net.minecraft.item.Items; +import net.minecraft.tags.ItemTags; + +public class MillingRecipeGen extends ProcessingRecipeGen { + + GeneratedRecipe + + GRANITE = create(() -> Blocks.GRANITE, b -> b.duration(200) + .output(Blocks.RED_SAND)), + + WOOL = create("wool", b -> b.duration(100) + .require(ItemTags.WOOL) + .output(Items.STRING)), + + CLAY = create(() -> Blocks.CLAY, b -> b.duration(50) + .output(Items.CLAY_BALL, 3) + .output(.5f, Items.CLAY_BALL)), + + TERRACOTTA = create(() -> Blocks.TERRACOTTA, b -> b.duration(200) + .output(Blocks.RED_SAND)), + ANDESITE = create(() -> Blocks.ANDESITE, b -> b.duration(200) + .output(Blocks.COBBLESTONE)), + COBBLESTONE = create(() -> Blocks.COBBLESTONE, b -> b.duration(250) + .output(Blocks.GRAVEL)), + GRAVEL = create(() -> Blocks.GRAVEL, b -> b.duration(250) + .output(Items.FLINT)), + SAND = create(() -> Blocks.SAND, b -> b.duration(150) + .output(AllPaletteBlocks.LIMESAND.get())), + DIORITE = create(() -> Blocks.DIORITE, b -> b.duration(200) + .output(AllPaletteBlocks.LIMESAND.get())), + + COPPER_ORE = metalOre("copper", AllItems.CRUSHED_COPPER, 350), + ZINC_ORE = metalOre("zinc", AllItems.CRUSHED_ZINC, 350), + IRON_ORE = metalOre("iron", AllItems.CRUSHED_IRON, 400), + GOLD_ORE = metalOre("gold", AllItems.CRUSHED_GOLD, 300), + + WHEAT = create(() -> Items.WHEAT, b -> b.duration(150) + .output(AllItems.WHEAT_FLOUR.get()) + .output(.25f, AllItems.WHEAT_FLOUR.get(), 2) + .output(.25f, Items.WHEAT_SEEDS)), + + BONE = create(() -> Items.BONE, b -> b.duration(100) + .output(Items.BONE_MEAL, 3) + .output(.25f, Items.WHITE_DYE, 1) + .output(.25f, Items.BONE_MEAL, 3)), + + CACTUS = create(() -> Blocks.CACTUS, b -> b.duration(50) + .output(Items.GREEN_DYE, 2) + .output(.1f, Items.GREEN_DYE, 1) + .whenModMissing("quark")), + + BONE_MEAL = create(() -> Items.BONE_MEAL, b -> b.duration(70) + .output(Items.WHITE_DYE, 2) + .output(.1f, Items.LIGHT_GRAY_DYE, 1)), + + COCOA_BEANS = create(() -> Items.COCOA_BEANS, b -> b.duration(70) + .output(Items.BROWN_DYE, 2) + .output(.1f, Items.BROWN_DYE, 1)), + + SADDLE = create(() -> Items.SADDLE, b -> b.duration(200) + .output(Items.LEATHER, 2) + .output(.5f, Items.LEATHER, 2)), + + SUGAR_CANE = create(() -> Items.SUGAR_CANE, b -> b.duration(50) + .output(Items.SUGAR, 2) + .output(.1f, Items.SUGAR)), + + INK_SAC = create(() -> Items.INK_SAC, b -> b.duration(100) + .output(Items.BLACK_DYE, 2) + .output(.1f, Items.GRAY_DYE)), + + CHARCOAL = create(() -> Items.CHARCOAL, b -> b.duration(100) + .output(Items.BLACK_DYE, 1) + .output(.1f, Items.GRAY_DYE, 2)), + + COAL = create(() -> Items.COAL, b -> b.duration(100) + .output(Items.BLACK_DYE, 2) + .output(.1f, Items.GRAY_DYE, 1)), + + LAPIS_LAZULI = create(() -> Items.LAPIS_LAZULI, b -> b.duration(100) + .output(Items.BLUE_DYE, 2) + .output(.1f, Items.BLUE_DYE)), + + AZURE_BLUET = create(() -> Blocks.AZURE_BLUET, b -> b.duration(50) + .output(Items.LIGHT_GRAY_DYE, 2) + .output(.1f, Items.WHITE_DYE, 2)), + + BLUE_ORCHID = create(() -> Blocks.BLUE_ORCHID, b -> b.duration(50) + .output(Items.LIGHT_BLUE_DYE, 2) + .output(.05f, Items.LIGHT_GRAY_DYE, 1)), + + FERN = create(() -> Blocks.FERN, b -> b.duration(50) + .output(Items.GREEN_DYE) + .output(.1f, Items.WHEAT_SEEDS)), + + LARGE_FERN = create(() -> Blocks.LARGE_FERN, b -> b.duration(50) + .output(Items.GREEN_DYE, 2) + .output(.5f, Items.GREEN_DYE) + .output(.1f, Items.WHEAT_SEEDS)), + + LILAC = create(() -> Blocks.LILAC, b -> b.duration(100) + .output(Items.MAGENTA_DYE, 3) + .output(.25f, Items.MAGENTA_DYE) + .output(.25f, Items.PURPLE_DYE)), + + PEONY = create(() -> Blocks.PEONY, b -> b.duration(100) + .output(Items.PINK_DYE, 3) + .output(.25f, Items.MAGENTA_DYE) + .output(.25f, Items.PINK_DYE)), + + ALLIUM = create(() -> Blocks.ALLIUM, b -> b.duration(50) + .output(Items.MAGENTA_DYE, 2) + .output(.1f, Items.PURPLE_DYE, 2) + .output(.1f, Items.PINK_DYE)), + + LILY_OF_THE_VALLEY = create(() -> Blocks.LILY_OF_THE_VALLEY, b -> b.duration(50) + .output(Items.WHITE_DYE, 2) + .output(.1f, Items.LIME_DYE) + .output(.1f, Items.WHITE_DYE)), + + ROSE_BUSH = create(() -> Blocks.ROSE_BUSH, b -> b.duration(50) + .output(Items.RED_DYE, 3) + .output(.05f, Items.GREEN_DYE, 2) + .output(.25f, Items.RED_DYE, 2)), + + SUNFLOWER = create(() -> Blocks.SUNFLOWER, b -> b.duration(100) + .output(Items.YELLOW_DYE, 3) + .output(.25f, Items.ORANGE_DYE) + .output(.25f, Items.YELLOW_DYE)), + + OXEYE_DAISY = create(() -> Blocks.OXEYE_DAISY, b -> b.duration(50) + .output(Items.LIGHT_GRAY_DYE, 2) + .output(.2f, Items.WHITE_DYE) + .output(.05f, Items.YELLOW_DYE)), + + POPPY = create(() -> Blocks.POPPY, b -> b.duration(50) + .output(Items.RED_DYE, 2) + .output(.05f, Items.GREEN_DYE)), + + DANDELION = create(() -> Blocks.DANDELION, b -> b.duration(50) + .output(Items.YELLOW_DYE, 2) + .output(.05f, Items.YELLOW_DYE)), + + CORNFLOWER = create(() -> Blocks.CORNFLOWER, b -> b.duration(50) + .output(Items.BLUE_DYE, 2)), + + WITHER_ROSE = create(() -> Blocks.WITHER_ROSE, b -> b.duration(50) + .output(Items.BLACK_DYE, 2) + .output(.1f, Items.BLACK_DYE)), + + ORANGE_TULIP = create(() -> Blocks.ORANGE_TULIP, b -> b.duration(50) + .output(Items.ORANGE_DYE, 2) + .output(.1f, Items.LIME_DYE)), + + RED_TULIP = create(() -> Blocks.RED_TULIP, b -> b.duration(50) + .output(Items.RED_DYE, 2) + .output(.1f, Items.LIME_DYE)), + + WHITE_TULIP = create(() -> Blocks.WHITE_TULIP, b -> b.duration(50) + .output(Items.WHITE_DYE, 2) + .output(.1f, Items.LIME_DYE)), + + PINK_TULIP = create(() -> Blocks.PINK_TULIP, b -> b.duration(50) + .output(Items.PINK_DYE, 2) + .output(.1f, Items.LIME_DYE)), + + TALL_GRASS = create(() -> Blocks.TALL_GRASS, b -> b.duration(100) + .output(.5f, Items.WHEAT_SEEDS)), + GRASS = create(() -> Blocks.GRASS, b -> b.duration(50) + .output(.25f, Items.WHEAT_SEEDS)) + + ; + + protected GeneratedRecipe metalOre(String name, ItemEntry crushed, int duration) { + return create(name + "_ore", b -> b.duration(duration) + .require(AllTags.forgeItemTag("ores/" + name)) + .output(crushed.get())); + } + + public MillingRecipeGen(DataGenerator p_i48262_1_) { + super(p_i48262_1_); + } + + @Override + protected AllRecipeTypes getRecipeType() { + return AllRecipeTypes.MILLING; + } + +} diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/MixingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/MixingRecipeGen.java new file mode 100644 index 000000000..524846b60 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/MixingRecipeGen.java @@ -0,0 +1,63 @@ +package com.simibubi.create.foundation.data.recipe; + +import com.simibubi.create.AllItems; +import com.simibubi.create.AllRecipeTypes; +import com.simibubi.create.AllTags; +import com.simibubi.create.content.contraptions.processing.HeatCondition; + +import net.minecraft.block.Blocks; +import net.minecraft.data.DataGenerator; +import net.minecraft.item.Items; +import net.minecraft.tags.ItemTags; +import net.minecraftforge.common.Tags; + +public class MixingRecipeGen extends ProcessingRecipeGen { + + GeneratedRecipe + + BRASS_INGOT = create("brass_ingot", b -> b.require(I.copper()) + .require(I.zinc()) + .output(AllItems.BRASS_INGOT.get(), 2) + .requiresHeat(HeatCondition.HEATED)), + + CRUSHED_BRASS = create("crushed_brass", b -> b.require(AllItems.CRUSHED_COPPER.get()) + .require(AllItems.CRUSHED_ZINC.get()) + .output(AllItems.CRUSHED_BRASS.get(), 2) + .requiresHeat(HeatCondition.HEATED)), + + GUNPOWDER = create("gunpowder", b -> b.require(ItemTags.COALS) + .require(AllItems.CRUSHED_ZINC.get()) + .require(Items.GUNPOWDER) + .output(Items.GUNPOWDER, 2) + .requiresHeat(HeatCondition.HEATED)), + + CHROMATIC_COMPOUND = create("chromatic_compound", b -> b.require(Tags.Items.DUSTS_GLOWSTONE) + .require(Tags.Items.DUSTS_GLOWSTONE) + .require(Tags.Items.DUSTS_GLOWSTONE) + .require(AllItems.POWDERED_OBSIDIAN.get()) + .require(AllItems.POWDERED_OBSIDIAN.get()) + .require(AllItems.POWDERED_OBSIDIAN.get()) + .require(AllItems.POLISHED_ROSE_QUARTZ.get()) + .output(AllItems.CHROMATIC_COMPOUND.get(), 1) + .requiresHeat(HeatCondition.SUPERHEATED)), + + ANDESITE_ALLOY = create("andesite_alloy", b -> b.require(Blocks.ANDESITE) + .require(AllTags.forgeItemTag("nuggets/iron")) + .output(I.andesite(), 1)), + + ANDESITE_ALLOY_FROM_ZINC = create("andesite_alloy_from_zinc", b -> b.require(Blocks.ANDESITE) + .require(I.zincNugget()) + .output(I.andesite(), 1)) + + ; + + public MixingRecipeGen(DataGenerator p_i48262_1_) { + super(p_i48262_1_); + } + + @Override + protected AllRecipeTypes getRecipeType() { + return AllRecipeTypes.MIXING; + } + +} diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/PolishingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/PolishingRecipeGen.java new file mode 100644 index 000000000..8f1ea96aa --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/PolishingRecipeGen.java @@ -0,0 +1,25 @@ +package com.simibubi.create.foundation.data.recipe; + +import com.simibubi.create.AllItems; +import com.simibubi.create.AllRecipeTypes; + +import net.minecraft.data.DataGenerator; + +public class PolishingRecipeGen extends ProcessingRecipeGen { + + GeneratedRecipe + + ROSE_QUARTZ = create(AllItems.ROSE_QUARTZ::get, b -> b.output(AllItems.POLISHED_ROSE_QUARTZ.get())) + + ; + + public PolishingRecipeGen(DataGenerator p_i48262_1_) { + super(p_i48262_1_); + } + + @Override + protected AllRecipeTypes getRecipeType() { + return AllRecipeTypes.SANDPAPER_POLISHING; + } + +} diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/PressingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/PressingRecipeGen.java new file mode 100644 index 000000000..2fff1d3ea --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/PressingRecipeGen.java @@ -0,0 +1,38 @@ +package com.simibubi.create.foundation.data.recipe; + +import com.simibubi.create.AllItems; +import com.simibubi.create.AllRecipeTypes; + +import net.minecraft.block.Blocks; +import net.minecraft.data.DataGenerator; +import net.minecraft.item.Items; + +public class PressingRecipeGen extends ProcessingRecipeGen { + + GeneratedRecipe + + SUGAR_CANE = create(() -> Items.SUGAR_CANE, b -> b.output(Items.PAPER)), + + IRON = create("iron_ingot", b -> b.require(I.iron()) + .output(AllItems.IRON_SHEET.get())), + GOLD = create("gold_ingot", b -> b.require(I.gold()) + .output(AllItems.GOLDEN_SHEET.get())), + COPPER = create("copper_ingot", b -> b.require(I.copper()) + .output(AllItems.COPPER_SHEET.get())), + LAPIS = create("lapis_block", b -> b.require(Blocks.LAPIS_BLOCK) + .output(AllItems.LAPIS_SHEET.get())), + BRASS = create("brass_ingot", b -> b.require(I.brass()) + .output(AllItems.BRASS_SHEET.get())) + + ; + + public PressingRecipeGen(DataGenerator p_i48262_1_) { + super(p_i48262_1_); + } + + @Override + protected AllRecipeTypes getRecipeType() { + return AllRecipeTypes.PRESSING; + } + +} diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/ProcessingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/ProcessingRecipeGen.java new file mode 100644 index 000000000..06e567116 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/ProcessingRecipeGen.java @@ -0,0 +1,82 @@ +package com.simibubi.create.foundation.data.recipe; + +import java.util.function.Supplier; +import java.util.function.UnaryOperator; + +import com.simibubi.create.AllRecipeTypes; +import com.simibubi.create.Create; +import com.simibubi.create.content.contraptions.processing.ProcessingRecipe; +import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder; +import com.simibubi.create.content.contraptions.processing.ProcessingRecipeSerializer; + +import net.minecraft.data.DataGenerator; +import net.minecraft.item.crafting.Ingredient; +import net.minecraft.util.IItemProvider; +import net.minecraftforge.fluids.FluidAttributes; + +public abstract class ProcessingRecipeGen extends CreateRecipeProvider { + + protected static final int BUCKET = FluidAttributes.BUCKET_VOLUME; + protected static final int BOTTLE = 250; + + public static void registerAll(DataGenerator gen) { + gen.addProvider(new CrushingRecipeGen(gen)); + gen.addProvider(new MillingRecipeGen(gen)); + gen.addProvider(new CuttingRecipeGen(gen)); + gen.addProvider(new WashingRecipeGen(gen)); + gen.addProvider(new PolishingRecipeGen(gen)); + gen.addProvider(new MixingRecipeGen(gen)); + gen.addProvider(new PressingRecipeGen(gen)); + } + + public ProcessingRecipeGen(DataGenerator p_i48262_1_) { + super(p_i48262_1_); + } + + /** + * Create a processing recipe with a single itemstack ingredient, using its id + * as the name of the recipe + */ + protected > GeneratedRecipe create(Supplier singleIngredient, + UnaryOperator> transform) { + ProcessingRecipeSerializer serializer = getSerializer(); + GeneratedRecipe generatedRecipe = c -> { + IItemProvider iItemProvider = singleIngredient.get(); + transform + .apply(new ProcessingRecipeBuilder<>(serializer.getFactory(), Create.asResource(iItemProvider.asItem() + .getRegistryName() + .getPath())).withItemIngredients(Ingredient.fromItems(iItemProvider))) + .build(c); + }; + all.add(generatedRecipe); + return generatedRecipe; + } + + /** + * Create a new processing recipe, with recipe definitions provided by the + * function + */ + protected > GeneratedRecipe create(String name, + UnaryOperator> transform) { + ProcessingRecipeSerializer serializer = getSerializer(); + GeneratedRecipe generatedRecipe = + c -> transform.apply(new ProcessingRecipeBuilder<>(serializer.getFactory(), Create.asResource(name))) + .build(c); + all.add(generatedRecipe); + return generatedRecipe; + } + + @SuppressWarnings("unchecked") + private > ProcessingRecipeSerializer getSerializer() { + ProcessingRecipeSerializer serializer = (ProcessingRecipeSerializer) getRecipeType().serializer; + return serializer; + } + + @Override + public final String getName() { + return "Create's Processing Recipes: " + getRecipeType(); + } + + protected abstract AllRecipeTypes getRecipeType(); + +} diff --git a/src/main/java/com/simibubi/create/foundation/data/StandardRecipes.java b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java similarity index 91% rename from src/main/java/com/simibubi/create/foundation/data/StandardRecipes.java rename to src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java index c4e032ef9..3c3360c1a 100644 --- a/src/main/java/com/simibubi/create/foundation/data/StandardRecipes.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java @@ -1,8 +1,6 @@ -package com.simibubi.create.foundation.data; +package com.simibubi.create.foundation.data.recipe; -import java.util.ArrayList; import java.util.List; -import java.util.function.Consumer; import java.util.function.UnaryOperator; import com.google.common.base.Supplier; @@ -19,8 +17,6 @@ import com.tterrag.registrate.util.entry.ItemProviderEntry; import net.minecraft.advancements.criterion.ItemPredicate; import net.minecraft.block.Blocks; import net.minecraft.data.DataGenerator; -import net.minecraft.data.IFinishedRecipe; -import net.minecraft.data.RecipeProvider; import net.minecraft.data.ShapedRecipeBuilder; import net.minecraft.data.ShapelessRecipeBuilder; import net.minecraft.item.Item; @@ -33,9 +29,7 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.Tags; @SuppressWarnings("unused") -public class StandardRecipes extends RecipeProvider { - - final List all = new ArrayList<>(); +public class StandardRecipeGen extends CreateRecipeProvider { /* * Recipes are added through fields, so one can navigate to the right one easily @@ -137,7 +131,6 @@ public class StandardRecipes extends RecipeProvider { .viaShapeless(b -> b.addIngredient(Items.PAPER) .addIngredient(Tags.Items.SAND_RED)) - // TODO ; private Marker CURIOSITIES = enterSection(AllSections.CURIOSITIES); @@ -798,6 +791,7 @@ public class StandardRecipes extends RecipeProvider { .addIngredient(Items.BONE_MEAL)) ; + /* * End of recipe list */ @@ -858,14 +852,6 @@ public class StandardRecipes extends RecipeProvider { return new GeneratedRecipeBuilder(currentFolder, result); } - @FunctionalInterface - interface GeneratedRecipe { - void register(Consumer consumer); - } - - class Marker { - } - class GeneratedRecipeBuilder { private String path; @@ -923,18 +909,12 @@ public class StandardRecipes extends RecipeProvider { }); } - private GeneratedRecipe register(GeneratedRecipe recipe) { - all.add(recipe); - return recipe; - } - private ResourceLocation createLocation(String recipeType) { return Create.asResource(recipeType + "/" + path + "/" + result.get() .asItem() .getRegistryName() .getPath() + suffix); } - } @Override @@ -942,121 +922,8 @@ public class StandardRecipes extends RecipeProvider { return "Create's Standard Recipes"; } - public StandardRecipes(DataGenerator p_i48262_1_) { + public StandardRecipeGen(DataGenerator p_i48262_1_) { super(p_i48262_1_); } - @Override - protected void registerRecipes(Consumer p_200404_1_) { - all.forEach(c -> c.register(p_200404_1_)); - } - - private static class I { - - static Tag redstone() { - return Tags.Items.DUSTS_REDSTONE; - } - - static Tag goldSheet() { - return AllTags.forgeItemTag("plates/gold"); - } - - static Tag stone() { - return Tags.Items.STONE; - } - - static IItemProvider andesite() { - return AllItems.ANDESITE_ALLOY.get(); - } - - static IItemProvider shaft() { - return AllBlocks.SHAFT.get(); - } - - static IItemProvider cog() { - return AllBlocks.COGWHEEL.get(); - } - - static IItemProvider andesiteCasing() { - return AllBlocks.ANDESITE_CASING.get(); - } - - static Tag brass() { - return AllTags.forgeItemTag("ingots/brass"); - } - - static Tag brassSheet() { - return AllTags.forgeItemTag("plates/brass"); - } - - static Tag iron() { - return Tags.Items.INGOTS_IRON; - } - - static Tag zinc() { - return AllTags.forgeItemTag("ingots/zinc"); - } - - static Tag ironSheet() { - return AllTags.forgeItemTag("plates/iron"); - } - - static IItemProvider brassCasing() { - return AllBlocks.BRASS_CASING.get(); - } - - static IItemProvider electronTube() { - return AllItems.ELECTRON_TUBE.get(); - } - - static IItemProvider circuit() { - return AllItems.INTEGRATED_CIRCUIT.get(); - } - - static Tag copperBlock() { - return AllTags.forgeItemTag("storage_blocks/copper"); - } - - static Tag brassBlock() { - return AllTags.forgeItemTag("storage_blocks/brass"); - } - - static Tag zincBlock() { - return AllTags.forgeItemTag("storage_blocks/zinc"); - } - - static Tag copper() { - return AllTags.forgeItemTag("ingots/copper"); - } - - static Tag copperSheet() { - return AllTags.forgeItemTag("plates/copper"); - } - - static Tag copperNugget() { - return AllTags.forgeItemTag("nuggets/copper"); - } - - static Tag brassNugget() { - return AllTags.forgeItemTag("nuggets/brass"); - } - - static Tag zincNugget() { - return AllTags.forgeItemTag("nuggets/zinc"); - } - - static IItemProvider copperCasing() { - return AllBlocks.COPPER_CASING.get(); - } - - static IItemProvider refinedRadiance() { - return AllItems.REFINED_RADIANCE.get(); - } - - static IItemProvider shadowSteel() { - return AllItems.SHADOW_STEEL.get(); - } - - } - } diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/WashingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/WashingRecipeGen.java new file mode 100644 index 000000000..9efcdda26 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/WashingRecipeGen.java @@ -0,0 +1,87 @@ +package com.simibubi.create.foundation.data.recipe; + +import java.util.function.Supplier; + +import com.simibubi.create.AllItems; +import com.simibubi.create.AllRecipeTypes; +import com.simibubi.create.content.palettes.AllPaletteBlocks; +import com.tterrag.registrate.util.entry.ItemEntry; + +import net.minecraft.block.Block; +import net.minecraft.block.Blocks; +import net.minecraft.data.DataGenerator; +import net.minecraft.item.Item; +import net.minecraft.item.Items; +import net.minecraft.tags.ItemTags; +import net.minecraft.util.IItemProvider; +import net.minecraftforge.common.Tags; + +public class WashingRecipeGen extends ProcessingRecipeGen { + + GeneratedRecipe + + WOOL = create("wool", b -> b.require(ItemTags.WOOL) + .output(Items.WHITE_WOOL)), + + STAINED_GLASS = create("stained_glass", b -> b.require(Tags.Items.STAINED_GLASS) + .output(Items.GLASS)), + STAINED_GLASS_PANE = create("stained_glass_pane", b -> b.require(Tags.Items.STAINED_GLASS_PANES) + .output(Items.GLASS_PANE)), + + GRAVEL = create(() -> Blocks.GRAVEL, b -> b.output(.25f, Items.FLINT) + .output(.125f, Items.IRON_NUGGET)), + SOUL_SAND = create(() -> Blocks.SOUL_SAND, b -> b.output(.125f, Items.QUARTZ, 4) + .output(.02f, Items.GOLD_NUGGET)), + RED_SAND = create(() -> Blocks.RED_SAND, b -> b.output(.125f, Items.GOLD_NUGGET, 3) + .output(.05f, Items.DEAD_BUSH)), + SAND = create(() -> Blocks.SAND, b -> b.output(.25f, Items.CLAY_BALL)), + + CRUSHED_COPPER = crushedOre(AllItems.CRUSHED_COPPER, AllItems.COPPER_NUGGET::get), + CRUSHED_ZINC = crushedOre(AllItems.CRUSHED_ZINC, AllItems.ZINC_NUGGET::get), + CRUSHED_BRASS = crushedOre(AllItems.CRUSHED_BRASS, AllItems.BRASS_NUGGET::get), + CRUSHED_GOLD = crushedOre(AllItems.CRUSHED_GOLD, () -> Items.GOLD_NUGGET), + CRUSHED_IRON = crushedOre(AllItems.CRUSHED_IRON, () -> Items.IRON_NUGGET), + + ICE = convert(Blocks.ICE, Blocks.PACKED_ICE), MAGMA_BLOCK = convert(Blocks.MAGMA_BLOCK, Blocks.OBSIDIAN), + + WHITE_CONCRETE = convert(Blocks.WHITE_CONCRETE_POWDER, Blocks.WHITE_CONCRETE), + ORANGE_CONCRETE = convert(Blocks.ORANGE_CONCRETE_POWDER, Blocks.ORANGE_CONCRETE), + MAGENTA_CONCRETE = convert(Blocks.MAGENTA_CONCRETE_POWDER, Blocks.MAGENTA_CONCRETE), + LIGHT_BLUE_CONCRETE = convert(Blocks.LIGHT_BLUE_CONCRETE_POWDER, Blocks.LIGHT_BLUE_CONCRETE), + LIME_CONCRETE = convert(Blocks.LIME_CONCRETE_POWDER, Blocks.LIME_CONCRETE), + YELLOW_CONCRETE = convert(Blocks.YELLOW_CONCRETE_POWDER, Blocks.YELLOW_CONCRETE), + PINK_CONCRETE = convert(Blocks.PINK_CONCRETE_POWDER, Blocks.PINK_CONCRETE), + LIGHT_GRAY_CONCRETE = convert(Blocks.LIGHT_GRAY_CONCRETE_POWDER, Blocks.LIGHT_GRAY_CONCRETE), + GRAY_CONCRETE = convert(Blocks.GRAY_CONCRETE_POWDER, Blocks.GRAY_CONCRETE), + PURPLE_CONCRETE = convert(Blocks.PURPLE_CONCRETE_POWDER, Blocks.PURPLE_CONCRETE), + GREEN_CONCRETE = convert(Blocks.GREEN_CONCRETE_POWDER, Blocks.GREEN_CONCRETE), + BROWN_CONCRETE = convert(Blocks.BROWN_CONCRETE_POWDER, Blocks.BROWN_CONCRETE), + RED_CONCRETE = convert(Blocks.RED_CONCRETE_POWDER, Blocks.RED_CONCRETE), + BLUE_CONCRETE = convert(Blocks.BLUE_CONCRETE_POWDER, Blocks.BLUE_CONCRETE), + CYAN_CONCRETE = convert(Blocks.CYAN_CONCRETE_POWDER, Blocks.CYAN_CONCRETE), + BLACK_CONCRETE = convert(Blocks.BLACK_CONCRETE_POWDER, Blocks.BLACK_CONCRETE), + + LIMESTONE = create(AllPaletteBlocks.LIMESTONE::get, b -> b.output(AllPaletteBlocks.WEATHERED_LIMESTONE.get())), + FLOUR = create(AllItems.WHEAT_FLOUR::get, b -> b.output(AllItems.DOUGH.get())) + + ; + + public GeneratedRecipe convert(Block block, Block result) { + return create(() -> block, b -> b.output(result)); + } + + public GeneratedRecipe crushedOre(ItemEntry crushed, Supplier nugget) { + return create(crushed::get, b -> b.output(nugget.get(), 10) + .output(.5f, nugget.get(), 5)); + } + + public WashingRecipeGen(DataGenerator p_i48262_1_) { + super(p_i48262_1_); + } + + @Override + protected AllRecipeTypes getRecipeType() { + return AllRecipeTypes.SPLASHING; + } + +} diff --git a/src/main/java/com/simibubi/create/foundation/fluid/FluidHelper.java b/src/main/java/com/simibubi/create/foundation/fluid/FluidHelper.java index edbf986bb..774927b19 100644 --- a/src/main/java/com/simibubi/create/foundation/fluid/FluidHelper.java +++ b/src/main/java/com/simibubi/create/foundation/fluid/FluidHelper.java @@ -2,13 +2,23 @@ package com.simibubi.create.foundation.fluid; import javax.annotation.Nullable; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonSyntaxException; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.simibubi.create.Create; + import net.minecraft.fluid.Fluid; import net.minecraft.fluid.Fluids; +import net.minecraft.nbt.JsonToNBT; +import net.minecraft.util.JSONUtils; +import net.minecraft.util.ResourceLocation; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.ForgeFlowingFluid; import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandler.FluidAction; import net.minecraftforge.fluids.capability.IFluidHandlerItem; +import net.minecraftforge.registries.ForgeRegistries; public class FluidHelper { @@ -19,11 +29,11 @@ public class FluidHelper { public static boolean isWater(Fluid fluid) { return convertToStill(fluid) == Fluids.WATER; } - + public static boolean isLava(Fluid fluid) { return convertToStill(fluid) == Fluids.LAVA; } - + public static Fluid convertToFlowing(Fluid fluid) { if (fluid == Fluids.WATER) return Fluids.FLOWING_WATER; @@ -33,7 +43,7 @@ public class FluidHelper { return ((ForgeFlowingFluid) fluid).getFlowingFluid(); return fluid; } - + public static Fluid convertToStill(Fluid fluid) { if (fluid == Fluids.FLOWING_WATER) return Fluids.WATER; @@ -43,7 +53,39 @@ public class FluidHelper { return ((ForgeFlowingFluid) fluid).getStillFluid(); return fluid; } - + + public static JsonElement serializeFluidStack(FluidStack stack) { + JsonObject json = new JsonObject(); + json.addProperty("fluid", stack.getFluid() + .getRegistryName() + .toString()); + json.addProperty("amount", stack.getAmount()); + if (stack.hasTag()) + json.addProperty("nbt", stack.getTag() + .toString()); + return json; + } + + public static FluidStack deserializeFluidStack(JsonObject json) { + ResourceLocation id = new ResourceLocation(JSONUtils.getString(json, "fluid")); + Fluid fluid = ForgeRegistries.FLUIDS.getValue(id); + if (fluid == null) + throw new JsonSyntaxException("Unknown fluid '" + id + "'"); + int amount = JSONUtils.getInt(json, "amount"); + FluidStack stack = new FluidStack(fluid, amount); + + try { + JsonElement element = json.get("nbt"); + stack.setTag(JsonToNBT.getTagFromJson( + element.isJsonObject() ? Create.GSON.toJson(element) : JSONUtils.getString(element, "nbt"))); + + } catch (CommandSyntaxException e) { + e.printStackTrace(); + } + + return stack; + } + @Nullable public static FluidExchange exchange(IFluidHandler fluidTank, IFluidHandlerItem fluidItem, FluidExchange preferred, int maxAmount) { diff --git a/src/main/java/com/simibubi/create/foundation/fluid/FluidIngredient.java b/src/main/java/com/simibubi/create/foundation/fluid/FluidIngredient.java new file mode 100644 index 000000000..2a1d6cab4 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/fluid/FluidIngredient.java @@ -0,0 +1,197 @@ +package com.simibubi.create.foundation.fluid; + +import java.util.Objects; +import java.util.function.Predicate; + +import javax.annotation.Nullable; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonSyntaxException; + +import net.minecraft.fluid.Fluid; +import net.minecraft.nbt.CompoundNBT; +import net.minecraft.network.PacketBuffer; +import net.minecraft.tags.FluidTags; +import net.minecraft.tags.Tag; +import net.minecraft.util.JSONUtils; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fluids.FluidStack; + +public abstract class FluidIngredient implements Predicate { + + public static final FluidIngredient EMPTY = new FluidStackIngredient(); + + public static FluidIngredient fromTag(Tag tag, int amount) { + FluidTagIngredient ingredient = new FluidTagIngredient(); + ingredient.tag = tag; + ingredient.amountRequired = amount; + return ingredient; + } + + public static FluidIngredient fromFluid(Fluid fluid, int amount) { + FluidStackIngredient ingredient = new FluidStackIngredient(); + ingredient.fluid = fluid; + ingredient.amountRequired = amount; + return ingredient; + } + + protected int amountRequired; + + protected abstract boolean testInternal(FluidStack t); + + protected abstract void readInternal(PacketBuffer buffer); + + protected abstract void writeInternal(PacketBuffer buffer); + + protected abstract void readInternal(JsonObject json); + + protected abstract void writeInternal(JsonObject json); + + public int getRequiredAmount() { + return amountRequired; + } + + @Override + public boolean test(FluidStack t) { + if (t == null) + throw new IllegalArgumentException("FluidStack cannot be null"); + return testInternal(t); + } + + public void write(PacketBuffer buffer) { + buffer.writeBoolean(this instanceof FluidTagIngredient); + buffer.writeVarInt(amountRequired); + writeInternal(buffer); + } + + public static FluidIngredient read(PacketBuffer buffer) { + boolean isTagIngredient = buffer.readBoolean(); + FluidIngredient ingredient = isTagIngredient ? new FluidTagIngredient() : new FluidStackIngredient(); + ingredient.amountRequired = buffer.readVarInt(); + ingredient.readInternal(buffer); + return ingredient; + } + + public JsonObject serialize() { + JsonObject json = new JsonObject(); + writeInternal(json); + json.addProperty("amount", amountRequired); + return json; + } + + public static boolean isFluidIngredient(@Nullable JsonElement je) { + if (je == null || je.isJsonNull()) + return false; + if (!je.isJsonObject()) + return false; + JsonObject json = je.getAsJsonObject(); + if (json.has("fluidTag")) + return true; + else if (json.has("fluid")) + return true; + return false; + } + + public static FluidIngredient deserialize(@Nullable JsonElement je) { + if (!isFluidIngredient(je)) + throw new JsonSyntaxException("Invalid fluid ingredient: " + Objects.toString(je)); + + JsonObject json = je.getAsJsonObject(); + FluidIngredient ingredient = json.has("fluidTag") ? new FluidTagIngredient() : new FluidStackIngredient(); + ingredient.readInternal(json); + + if (!json.has("amount")) + throw new JsonSyntaxException("Fluid ingredient has to define an amount"); + ingredient.amountRequired = JSONUtils.getInt(json, "amount"); + return ingredient; + } + + public static class FluidStackIngredient extends FluidIngredient { + + protected Fluid fluid; + protected CompoundNBT tagToMatch; + + public FluidStackIngredient() { + tagToMatch = new CompoundNBT(); + } + + @Override + protected boolean testInternal(FluidStack t) { + if (!t.getFluid() + .isEquivalentTo(fluid)) + return false; + CompoundNBT tag = t.getTag() + .copy(); + return tag.merge(tagToMatch) + .equals(t.getTag()); + } + + @Override + protected void readInternal(PacketBuffer buffer) { + fluid = buffer.readRegistryId(); + tagToMatch = buffer.readCompoundTag(); + } + + @Override + protected void writeInternal(PacketBuffer buffer) { + buffer.writeRegistryId(fluid); + buffer.writeCompoundTag(tagToMatch); + } + + @Override + protected void readInternal(JsonObject json) { + FluidStack stack = FluidHelper.deserializeFluidStack(json); + fluid = stack.getFluid(); + tagToMatch = stack.getOrCreateTag(); + } + + @Override + protected void writeInternal(JsonObject json) { + json.addProperty("fluid", fluid.getRegistryName() + .toString()); + json.addProperty("nbt", tagToMatch.toString()); + } + + } + + public static class FluidTagIngredient extends FluidIngredient { + + protected Tag tag; + + @Override + protected boolean testInternal(FluidStack t) { + return t.getFluid() + .isIn(tag); + } + + @Override + protected void readInternal(PacketBuffer buffer) { + ResourceLocation resourcelocation = buffer.readResourceLocation(); + tag = FluidTags.getContainer() + .get(resourcelocation); + } + + @Override + protected void writeInternal(PacketBuffer buffer) { + buffer.writeResourceLocation(tag.getId()); + } + + @Override + protected void readInternal(JsonObject json) { + ResourceLocation id = new ResourceLocation(JSONUtils.getString(json, "fluidTag")); + tag = FluidTags.getContainer() + .get(id); + if (tag == null) + throw new JsonSyntaxException("Unknown fluid tag '" + id + "'"); + } + + @Override + protected void writeInternal(JsonObject json) { + json.addProperty("fluidTag", tag.getId() + .toString()); + } + + } + +} diff --git a/src/main/java/com/simibubi/create/foundation/item/ItemHelper.java b/src/main/java/com/simibubi/create/foundation/item/ItemHelper.java index 59bcbacc4..0ba705310 100644 --- a/src/main/java/com/simibubi/create/foundation/item/ItemHelper.java +++ b/src/main/java/com/simibubi/create/foundation/item/ItemHelper.java @@ -8,9 +8,9 @@ import java.util.function.Predicate; import javax.annotation.Nullable; import org.apache.commons.lang3.mutable.MutableInt; -import org.apache.commons.lang3.tuple.Pair; import com.simibubi.create.foundation.config.AllConfigs; +import com.simibubi.create.foundation.utility.Pair; import net.minecraft.inventory.InventoryHelper; import net.minecraft.item.ItemStack; @@ -97,17 +97,19 @@ public class ItemHelper { List> actualIngredients = new ArrayList<>(); Ingredients: for (Ingredient igd : recipeIngredients) { for (Pair pair : actualIngredients) { - ItemStack[] stacks1 = pair.getKey().getMatchingStacks(); + ItemStack[] stacks1 = pair.getFirst() + .getMatchingStacks(); ItemStack[] stacks2 = igd.getMatchingStacks(); - if (stacks1.length == stacks2.length) { - for (int i = 0; i <= stacks1.length; i++) { - if (i == stacks1.length) { - pair.getValue().increment(); - continue Ingredients; - } - if (!ItemStack.areItemsEqual(stacks1[i], stacks2[i])) - break; + if (stacks1.length != stacks2.length) + continue; + for (int i = 0; i <= stacks1.length; i++) { + if (i == stacks1.length) { + pair.getSecond() + .increment(); + continue Ingredients; } + if (!ItemStack.areItemsEqual(stacks1[i], stacks2[i])) + break; } } actualIngredients.add(Pair.of(igd, new MutableInt(1))); @@ -133,7 +135,7 @@ public class ItemHelper { public static ItemStack extract(IItemHandler inv, Predicate test, boolean simulate) { return extract(inv, test, ExtractionCountMode.UPTO, AllConfigs.SERVER.logistics.extractorAmount.get(), - simulate); + simulate); } public static ItemStack extract(IItemHandler inv, Predicate test, int exactAmount, boolean simulate) { @@ -141,7 +143,7 @@ public class ItemHelper { } public static ItemStack extract(IItemHandler inv, Predicate test, ExtractionCountMode mode, int amount, - boolean simulate) { + boolean simulate) { ItemStack extracting = ItemStack.EMPTY; boolean amountRequired = mode == ExtractionCountMode.EXACTLY; boolean checkHasEnoughItems = amountRequired; @@ -203,7 +205,7 @@ public class ItemHelper { } public static ItemStack extract(IItemHandler inv, Predicate test, - Function amountFunction, boolean simulate) { + Function amountFunction, boolean simulate) { ItemStack extracting = ItemStack.EMPTY; int maxExtractionCount = AllConfigs.SERVER.logistics.extractorAmount.get(); diff --git a/src/main/java/com/simibubi/create/foundation/utility/recipe/RecipeFinder.java b/src/main/java/com/simibubi/create/foundation/utility/recipe/RecipeFinder.java index fa3b06eea..96e1ba2b6 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/recipe/RecipeFinder.java +++ b/src/main/java/com/simibubi/create/foundation/utility/recipe/RecipeFinder.java @@ -11,7 +11,10 @@ import javax.annotation.Nullable; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; +import net.minecraft.client.resources.ReloadListener; import net.minecraft.item.crafting.IRecipe; +import net.minecraft.profiler.IProfiler; +import net.minecraft.resources.IResourceManager; import net.minecraft.world.World; /** @@ -23,7 +26,7 @@ import net.minecraft.world.World; * */ public class RecipeFinder { - + private static Cache>> cachedSearches = CacheBuilder.newBuilder().build(); /** @@ -55,4 +58,19 @@ public class RecipeFinder { return list; } + + public static final ReloadListener LISTENER = new ReloadListener() { + + @Override + protected Object prepare(IResourceManager p_212854_1_, IProfiler p_212854_2_) { + return new Object(); + } + + @Override + protected void apply(Object p_212853_1_, IResourceManager p_212853_2_, IProfiler p_212853_3_) { + cachedSearches.invalidateAll(); + } + + }; + } diff --git a/src/main/resources/assets/create/lang/default/messages.json b/src/main/resources/assets/create/lang/default/messages.json index 0b5a7f621..aaece43db 100644 --- a/src/main/resources/assets/create/lang/default/messages.json +++ b/src/main/resources/assets/create/lang/default/messages.json @@ -341,7 +341,6 @@ "create.tooltip.generationSpeed" : "Generates at %1$s %2$s", "create.tooltip.analogStrength": "Analog Strength: %1$s/15", - "create.mechanical_mixer.min_ingredients": "Min. Ingredients", "create.mechanical_arm.selection_mode": "Selection Mode", "create.mechanical_arm.selection_mode.default": "First Valid Target", diff --git a/src/main/resources/data/create/recipes/crushing/blaze_rod.json b/src/main/resources/data/create/recipes/crushing/blaze_rod.json deleted file mode 100644 index 8f282b48e..000000000 --- a/src/main/resources/data/create/recipes/crushing/blaze_rod.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:crushing", - "ingredients": [ - { - "item": "minecraft:blaze_rod" - } - ], - "results": [ - { - "item": "minecraft:blaze_powder", - "count": 3 - }, - { - "item": "minecraft:blaze_powder", - "count": 3, - "chance": 0.25 - } - ], - "processingTime": 100 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/brass_block.json b/src/main/resources/data/create/recipes/crushing/brass_block.json deleted file mode 100644 index 0ed80ebec..000000000 --- a/src/main/resources/data/create/recipes/crushing/brass_block.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:crushing", - "ingredients": [ - { - "tag": "forge:storage_blocks/brass" - } - ], - "results": [ - { - "item": "create:crushed_brass", - "count": 5 - } - ], - "processingTime": 400 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/coal_ore.json b/src/main/resources/data/create/recipes/crushing/coal_ore.json deleted file mode 100644 index 93f8fa076..000000000 --- a/src/main/resources/data/create/recipes/crushing/coal_ore.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "create:crushing", - "ingredients": [ - { - "item": "minecraft:coal_ore" - } - ], - "results": [ - { - "item": "minecraft:coal", - "count": 2 - }, - { - "item": "minecraft:coal", - "count": 2, - "chance": 0.5 - }, - { - "item": "minecraft:cobblestone", - "count": 1, - "chance": 0.125 - } - ], - "processingTime": 300 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/copper_block.json b/src/main/resources/data/create/recipes/crushing/copper_block.json deleted file mode 100644 index e46d23b50..000000000 --- a/src/main/resources/data/create/recipes/crushing/copper_block.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:crushing", - "ingredients": [ - { - "tag": "forge:storage_blocks/copper" - } - ], - "results": [ - { - "item": "create:crushed_copper_ore", - "count": 5 - } - ], - "processingTime": 400 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/copper_ore.json b/src/main/resources/data/create/recipes/crushing/copper_ore.json deleted file mode 100644 index 10c89fe5f..000000000 --- a/src/main/resources/data/create/recipes/crushing/copper_ore.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "create:crushing", - "ingredients": [ - { - "tag": "forge:ores/copper" - } - ], - "results": [ - { - "item": "create:crushed_copper_ore", - "count": 1 - }, - { - "item": "create:crushed_copper_ore", - "count": 2, - "chance": 0.3 - }, - { - "item": "minecraft:cobblestone", - "count": 1, - "chance": 0.125 - } - ], - "processingTime": 350 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/diamond_horse_armor.json b/src/main/resources/data/create/recipes/crushing/diamond_horse_armor.json deleted file mode 100644 index 0b1d66440..000000000 --- a/src/main/resources/data/create/recipes/crushing/diamond_horse_armor.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "type": "create:crushing", - "ingredients": [ - { - "item": "minecraft:diamond_horse_armor" - } - ], - "results": [ - { - "item": "minecraft:diamond", - "count": 1 - }, - { - "item": "minecraft:leather", - "count": 2, - "chance": 0.5 - }, - { - "item": "minecraft:diamond", - "count": 3, - "chance": 0.1 - }, - { - "item": "minecraft:string", - "count": 2, - "chance": 0.25 - } - ], - "processingTime": 200 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/diamond_ore.json b/src/main/resources/data/create/recipes/crushing/diamond_ore.json deleted file mode 100644 index 2565016e4..000000000 --- a/src/main/resources/data/create/recipes/crushing/diamond_ore.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "create:crushing", - "ingredients": [ - { - "item": "minecraft:diamond_ore" - } - ], - "results": [ - { - "item": "minecraft:diamond", - "count": 2 - }, - { - "item": "minecraft:diamond", - "count": 1, - "chance": 0.25 - }, - { - "item": "minecraft:cobblestone", - "count": 1, - "chance": 0.125 - } - ], - "processingTime": 500 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/emerald_ore.json b/src/main/resources/data/create/recipes/crushing/emerald_ore.json deleted file mode 100644 index baae81872..000000000 --- a/src/main/resources/data/create/recipes/crushing/emerald_ore.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "create:crushing", - "ingredients": [ - { - "item": "minecraft:emerald_ore" - } - ], - "results": [ - { - "item": "minecraft:emerald", - "count": 2 - }, - { - "item": "minecraft:emerald", - "count": 1, - "chance": 0.25 - }, - { - "item": "minecraft:cobblestone", - "count": 1, - "chance": 0.125 - } - ], - "processingTime": 500 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/glowstone.json b/src/main/resources/data/create/recipes/crushing/glowstone.json deleted file mode 100644 index 3aaadcf6c..000000000 --- a/src/main/resources/data/create/recipes/crushing/glowstone.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:crushing", - "ingredients": [ - { - "item": "minecraft:glowstone" - } - ], - "results": [ - { - "item": "minecraft:glowstone_dust", - "count": 3 - }, - { - "item": "minecraft:glowstone_dust", - "count": 1, - "chance": 0.5 - } - ], - "processingTime": 150 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/gold_ore.json b/src/main/resources/data/create/recipes/crushing/gold_ore.json deleted file mode 100644 index 39fcc0744..000000000 --- a/src/main/resources/data/create/recipes/crushing/gold_ore.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "create:crushing", - "ingredients": [ - { - "tag": "forge:ores/gold" - } - ], - "results": [ - { - "item": "create:crushed_gold_ore", - "count": 1 - }, - { - "item": "create:crushed_gold_ore", - "count": 2, - "chance": 0.3 - }, - { - "item": "minecraft:cobblestone", - "count": 1, - "chance": 0.125 - } - ], - "processingTime": 350 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/golden_horse_armor.json b/src/main/resources/data/create/recipes/crushing/golden_horse_armor.json deleted file mode 100644 index 6ea7d4bcf..000000000 --- a/src/main/resources/data/create/recipes/crushing/golden_horse_armor.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "create:crushing", - "ingredients": [ - { - "item": "minecraft:golden_horse_armor" - } - ], - "results": [ - { - "item": "minecraft:gold_ingot", - "count": 2 - }, - { - "item": "minecraft:leather", - "count": 2, - "chance": 0.5 - }, - { - "item": "minecraft:gold_ingot", - "count": 2, - "chance": 0.5 - }, - { - "item": "minecraft:string", - "count": 2, - "chance": 0.25 - }, - { - "item": "minecraft:gold_nugget", - "count": 8, - "chance": 0.25 - } - ], - "processingTime": 200 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/gravel.json b/src/main/resources/data/create/recipes/crushing/gravel.json deleted file mode 100644 index 7a24b7d2b..000000000 --- a/src/main/resources/data/create/recipes/crushing/gravel.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "create:crushing", - "ingredients": [ - { - "item": "minecraft:gravel" - } - ], - "results": [ - { - "item": "minecraft:sand", - "count": 1 - }, - { - "item": "minecraft:clay_ball", - "count": 1, - "chance": 0.1 - }, - { - "item": "minecraft:flint", - "count": 1, - "chance": 0.2 - } - ], - "processingTime": 250 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/iron_horse_armor.json b/src/main/resources/data/create/recipes/crushing/iron_horse_armor.json deleted file mode 100644 index 88ba0c780..000000000 --- a/src/main/resources/data/create/recipes/crushing/iron_horse_armor.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "create:crushing", - "ingredients": [ - { - "item": "minecraft:iron_horse_armor" - } - ], - "results": [ - { - "item": "minecraft:iron_ingot", - "count": 2 - }, - { - "item": "minecraft:leather", - "count": 2, - "chance": 0.5 - }, - { - "item": "minecraft:iron_ingot", - "count": 2, - "chance": 0.5 - }, - { - "item": "minecraft:string", - "count": 2, - "chance": 0.25 - }, - { - "item": "minecraft:iron_nugget", - "count": 8, - "chance": 0.25 - } - ], - "processingTime": 200 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/iron_ore.json b/src/main/resources/data/create/recipes/crushing/iron_ore.json deleted file mode 100644 index 4ade80425..000000000 --- a/src/main/resources/data/create/recipes/crushing/iron_ore.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "create:crushing", - "ingredients": [ - { - "tag": "forge:ores/iron" - } - ], - "results": [ - { - "item": "create:crushed_iron_ore", - "count": 1 - }, - { - "item": "create:crushed_iron_ore", - "count": 2, - "chance": 0.3 - }, - { - "item": "minecraft:cobblestone", - "count": 1, - "chance": 0.125 - } - ], - "processingTime": 400 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/lapis_ore.json b/src/main/resources/data/create/recipes/crushing/lapis_ore.json deleted file mode 100644 index 51873961e..000000000 --- a/src/main/resources/data/create/recipes/crushing/lapis_ore.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "create:crushing", - "ingredients": [ - { - "item": "minecraft:lapis_ore" - } - ], - "results": [ - { - "item": "minecraft:lapis_lazuli", - "count": 12 - }, - { - "item": "minecraft:lapis_lazuli", - "count": 8, - "chance": 0.25 - }, - { - "item": "minecraft:cobblestone", - "count": 1, - "chance": 0.125 - } - ], - "processingTime": 300 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/leather_horse_armor.json b/src/main/resources/data/create/recipes/crushing/leather_horse_armor.json deleted file mode 100644 index eda689e4d..000000000 --- a/src/main/resources/data/create/recipes/crushing/leather_horse_armor.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:crushing", - "ingredients": [ - { - "item": "minecraft:leather_horse_armor" - } - ], - "results": [ - { - "item": "minecraft:leather", - "count": 2 - }, - { - "item": "minecraft:leather", - "count": 2, - "chance": 0.5 - } - ], - "processingTime": 200 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/nether_quartz_ore.json b/src/main/resources/data/create/recipes/crushing/nether_quartz_ore.json deleted file mode 100644 index 7767fd26c..000000000 --- a/src/main/resources/data/create/recipes/crushing/nether_quartz_ore.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "create:crushing", - "ingredients": [ - { - "item": "minecraft:nether_quartz_ore" - } - ], - "results": [ - { - "item": "minecraft:quartz", - "count": 2 - }, - { - "item": "minecraft:quartz", - "count": 4, - "chance": 0.5 - }, - { - "item": "minecraft:netherrack", - "count": 1, - "chance": 0.125 - } - ], - "processingTime": 350 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/nether_wart_block.json b/src/main/resources/data/create/recipes/crushing/nether_wart_block.json deleted file mode 100644 index f348868e8..000000000 --- a/src/main/resources/data/create/recipes/crushing/nether_wart_block.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "conditions": [ - { - "type": "forge:not", - "value": { - "type": "forge:mod_loaded", - "modid": "quark" - } - } - ], - "type": "create:crushing", - "ingredients": [ - { - "item": "minecraft:nether_wart_block" - } - ], - "results": [ - { - "item": "minecraft:nether_wart", - "count": 6 - }, - { - "item": "minecraft:nether_wart", - "count": 2, - "chance": 0.5 - } - ], - "processingTime": 150 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/nether_wart_block_quark.json b/src/main/resources/data/create/recipes/crushing/nether_wart_block_quark.json deleted file mode 100644 index 4bf281749..000000000 --- a/src/main/resources/data/create/recipes/crushing/nether_wart_block_quark.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "conditions": [ - { - "type": "forge:mod_loaded", - "modid": "quark" - } - ], - "type": "create:crushing", - "ingredients": [ - { - "item": "minecraft:nether_wart_block" - } - ], - "results": [ - { - "item": "minecraft:nether_wart", - "count": 2 - }, - { - "item": "minecraft:nether_wart", - "count": 2, - "chance": 0.5 - } - ], - "processingTime": 150 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/obsidian.json b/src/main/resources/data/create/recipes/crushing/obsidian.json deleted file mode 100644 index 3008a63f3..000000000 --- a/src/main/resources/data/create/recipes/crushing/obsidian.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "create:crushing", - "ingredients": [ - { - "item": "minecraft:obsidian" - } - ], - "results": [ - { - "item": "create:powdered_obsidian", - "count": 1, - "chance": 1 - }, - { - "item": "minecraft:obsidian", - "count": 1, - "chance": 0.875 - } - ], - "processingTime": 500 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/prismarine_crystals.json b/src/main/resources/data/create/recipes/crushing/prismarine_crystals.json deleted file mode 100644 index 2c9c5be20..000000000 --- a/src/main/resources/data/create/recipes/crushing/prismarine_crystals.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "type": "create:crushing", - "ingredients": [ - { - "item": "minecraft:prismarine_crystals" - } - ], - "results": [ - { - "item": "minecraft:prismarine_shard", - "count": 2 - }, - { - "item": "minecraft:quartz", - "count": 2, - "chance": 0.75 - }, - { - "item": "minecraft:prismarine_shard", - "count": 2, - "chance": 0.125 - }, - { - "item": "minecraft:glowstone_dust", - "count": 3, - "chance": 0.1 - } - ], - "processingTime": 150 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/redstone_ore.json b/src/main/resources/data/create/recipes/crushing/redstone_ore.json deleted file mode 100644 index b2bdf81bb..000000000 --- a/src/main/resources/data/create/recipes/crushing/redstone_ore.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "create:crushing", - "ingredients": [ - { - "item": "minecraft:redstone_ore" - } - ], - "results": [ - { - "item": "minecraft:redstone", - "count": 8 - }, - { - "item": "minecraft:redstone", - "count": 6, - "chance": 0.25 - }, - { - "item": "minecraft:cobblestone", - "count": 1, - "chance": 0.125 - } - ], - "processingTime": 300 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/sand.json b/src/main/resources/data/create/recipes/crushing/sand.json deleted file mode 100644 index 8d02bd559..000000000 --- a/src/main/resources/data/create/recipes/crushing/sand.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "create:crushing", - "ingredients": [ - { - "item": "minecraft:sand" - } - ], - "results": [ - { - "item": "create:limesand", - "count": 1 - }, - { - "item": "create:limesand", - "count": 1, - "chance": 0.5 - }, - { - "item": "minecraft:bone_meal", - "count": 1, - "chance": 0.05 - } - ], - "processingTime": 150 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/wool.json b/src/main/resources/data/create/recipes/crushing/wool.json deleted file mode 100644 index c5c7a7e7c..000000000 --- a/src/main/resources/data/create/recipes/crushing/wool.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:crushing", - "ingredients": [ - { - "tag": "minecraft:wool" - } - ], - "results": [ - { - "item": "minecraft:string", - "count": 2 - }, - { - "item": "minecraft:string", - "count": 1, - "chance": 0.5 - } - ], - "processingTime": 100 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/zinc_block.json b/src/main/resources/data/create/recipes/crushing/zinc_block.json deleted file mode 100644 index d10b5815e..000000000 --- a/src/main/resources/data/create/recipes/crushing/zinc_block.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:crushing", - "ingredients": [ - { - "tag": "forge:storage_blocks/zinc" - } - ], - "results": [ - { - "item": "create:crushed_zinc_ore", - "count": 5 - } - ], - "processingTime": 400 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/zinc_ore.json b/src/main/resources/data/create/recipes/crushing/zinc_ore.json deleted file mode 100644 index 4bfc78a2a..000000000 --- a/src/main/resources/data/create/recipes/crushing/zinc_ore.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "create:crushing", - "ingredients": [ - { - "tag": "forge:ores/zinc" - } - ], - "results": [ - { - "item": "create:crushed_zinc_ore", - "count": 1 - }, - { - "item": "create:crushed_zinc_ore", - "count": 2, - "chance": 0.3 - }, - { - "item": "minecraft:cobblestone", - "count": 1, - "chance": 0.125 - } - ], - "processingTime": 350 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/cutting/acacia_log.json b/src/main/resources/data/create/recipes/cutting/acacia_log.json deleted file mode 100644 index 9a449a5e8..000000000 --- a/src/main/resources/data/create/recipes/cutting/acacia_log.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:cutting", - "ingredients": [ - { - "item": "minecraft:acacia_log" - } - ], - "results": [ - { - "item": "minecraft:stripped_acacia_log", - "count": 1 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/cutting/andesite_alloy.json b/src/main/resources/data/create/recipes/cutting/andesite_alloy.json deleted file mode 100644 index 300efc416..000000000 --- a/src/main/resources/data/create/recipes/cutting/andesite_alloy.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:cutting", - "ingredients": [ - { - "item": "create:andesite_alloy" - } - ], - "results": [ - { - "item": "create:shaft", - "count": 6 - } - ], - "processingTime": 200 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/cutting/birch_log.json b/src/main/resources/data/create/recipes/cutting/birch_log.json deleted file mode 100644 index ec235d23f..000000000 --- a/src/main/resources/data/create/recipes/cutting/birch_log.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:cutting", - "ingredients": [ - { - "item": "minecraft:birch_log" - } - ], - "results": [ - { - "item": "minecraft:stripped_birch_log", - "count": 1 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/cutting/dark_oak_log.json b/src/main/resources/data/create/recipes/cutting/dark_oak_log.json deleted file mode 100644 index ba92f8d75..000000000 --- a/src/main/resources/data/create/recipes/cutting/dark_oak_log.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:cutting", - "ingredients": [ - { - "item": "minecraft:dark_oak_log" - } - ], - "results": [ - { - "item": "minecraft:stripped_dark_oak_log", - "count": 1 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/cutting/jungle_log.json b/src/main/resources/data/create/recipes/cutting/jungle_log.json deleted file mode 100644 index 29baf9668..000000000 --- a/src/main/resources/data/create/recipes/cutting/jungle_log.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:cutting", - "ingredients": [ - { - "item": "minecraft:jungle_log" - } - ], - "results": [ - { - "item": "minecraft:stripped_jungle_log", - "count": 1 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/cutting/oak_log.json b/src/main/resources/data/create/recipes/cutting/oak_log.json deleted file mode 100644 index 2d8fe8c98..000000000 --- a/src/main/resources/data/create/recipes/cutting/oak_log.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:cutting", - "ingredients": [ - { - "item": "minecraft:oak_log" - } - ], - "results": [ - { - "item": "minecraft:stripped_oak_log", - "count": 1 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/cutting/spruce_log.json b/src/main/resources/data/create/recipes/cutting/spruce_log.json deleted file mode 100644 index 60d39ae39..000000000 --- a/src/main/resources/data/create/recipes/cutting/spruce_log.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:cutting", - "ingredients": [ - { - "item": "minecraft:spruce_log" - } - ], - "results": [ - { - "item": "minecraft:stripped_spruce_log", - "count": 1 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/cutting/stripped_acacia_log.json b/src/main/resources/data/create/recipes/cutting/stripped_acacia_log.json deleted file mode 100644 index 6bd4dbaf4..000000000 --- a/src/main/resources/data/create/recipes/cutting/stripped_acacia_log.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:cutting", - "ingredients": [ - { - "item": "minecraft:stripped_acacia_log" - } - ], - "results": [ - { - "item": "minecraft:acacia_planks", - "count": 5 - } - ], - "processingTime": 100 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/cutting/stripped_birch_log.json b/src/main/resources/data/create/recipes/cutting/stripped_birch_log.json deleted file mode 100644 index e39f0863d..000000000 --- a/src/main/resources/data/create/recipes/cutting/stripped_birch_log.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:cutting", - "ingredients": [ - { - "item": "minecraft:stripped_birch_log" - } - ], - "results": [ - { - "item": "minecraft:birch_planks", - "count": 5 - } - ], - "processingTime": 100 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/cutting/stripped_dark_oak_log.json b/src/main/resources/data/create/recipes/cutting/stripped_dark_oak_log.json deleted file mode 100644 index eba570fae..000000000 --- a/src/main/resources/data/create/recipes/cutting/stripped_dark_oak_log.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:cutting", - "ingredients": [ - { - "item": "minecraft:stripped_dark_oak_log" - } - ], - "results": [ - { - "item": "minecraft:dark_oak_planks", - "count": 5 - } - ], - "processingTime": 100 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/cutting/stripped_jungle_log.json b/src/main/resources/data/create/recipes/cutting/stripped_jungle_log.json deleted file mode 100644 index 41fd26a47..000000000 --- a/src/main/resources/data/create/recipes/cutting/stripped_jungle_log.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:cutting", - "ingredients": [ - { - "item": "minecraft:stripped_jungle_log" - } - ], - "results": [ - { - "item": "minecraft:jungle_planks", - "count": 5 - } - ], - "processingTime": 100 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/cutting/stripped_oak_log.json b/src/main/resources/data/create/recipes/cutting/stripped_oak_log.json deleted file mode 100644 index 54540d4c9..000000000 --- a/src/main/resources/data/create/recipes/cutting/stripped_oak_log.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:cutting", - "ingredients": [ - { - "item": "minecraft:stripped_oak_log" - } - ], - "results": [ - { - "item": "minecraft:oak_planks", - "count": 5 - } - ], - "processingTime": 100 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/cutting/stripped_spruce_log.json b/src/main/resources/data/create/recipes/cutting/stripped_spruce_log.json deleted file mode 100644 index 5bd6493c2..000000000 --- a/src/main/resources/data/create/recipes/cutting/stripped_spruce_log.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:cutting", - "ingredients": [ - { - "item": "minecraft:stripped_spruce_log" - } - ], - "results": [ - { - "item": "minecraft:spruce_planks", - "count": 5 - } - ], - "processingTime": 100 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/allium.json b/src/main/resources/data/create/recipes/milling/allium.json deleted file mode 100644 index 3389eeffe..000000000 --- a/src/main/resources/data/create/recipes/milling/allium.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:allium" - } - ], - "results": [ - { - "item": "minecraft:magenta_dye", - "count": 2 - }, - { - "item": "minecraft:purple_dye", - "count": 2, - "chance": 0.1 - }, - { - "item": "minecraft:pink_dye", - "count": 1, - "chance": 0.1 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/andesite.json b/src/main/resources/data/create/recipes/milling/andesite.json deleted file mode 100644 index 7f6d34077..000000000 --- a/src/main/resources/data/create/recipes/milling/andesite.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:andesite" - } - ], - "results": [ - { - "item": "minecraft:cobblestone", - "count": 1 - } - ], - "processingTime": 200 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/azure_bluet.json b/src/main/resources/data/create/recipes/milling/azure_bluet.json deleted file mode 100644 index d3d8d136a..000000000 --- a/src/main/resources/data/create/recipes/milling/azure_bluet.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:azure_bluet" - } - ], - "results": [ - { - "item": "minecraft:light_gray_dye", - "count": 2 - }, - { - "item": "minecraft:white_dye", - "count": 2, - "chance": 0.1 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/blue_orchid.json b/src/main/resources/data/create/recipes/milling/blue_orchid.json deleted file mode 100644 index a83b75431..000000000 --- a/src/main/resources/data/create/recipes/milling/blue_orchid.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:blue_orchid" - } - ], - "results": [ - { - "item": "minecraft:light_blue_dye", - "count": 2 - }, - { - "item": "minecraft:light_gray_dye", - "count": 1, - "chance": 0.05 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/bone.json b/src/main/resources/data/create/recipes/milling/bone.json deleted file mode 100644 index 974165dc3..000000000 --- a/src/main/resources/data/create/recipes/milling/bone.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:bone" - } - ], - "results": [ - { - "item": "minecraft:bone_meal", - "count": 3 - }, - { - "item": "minecraft:white_dye", - "count": 1, - "chance": 0.25 - }, - { - "item": "minecraft:bone_meal", - "count": 3, - "chance": 0.25 - } - ], - "processingTime": 100 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/bone_meal.json b/src/main/resources/data/create/recipes/milling/bone_meal.json deleted file mode 100644 index a332f4ab8..000000000 --- a/src/main/resources/data/create/recipes/milling/bone_meal.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:bone_meal" - } - ], - "results": [ - { - "item": "minecraft:white_dye", - "count": 2 - }, - { - "item": "minecraft:light_gray_dye", - "count": 1, - "chance": 0.1 - } - ], - "processingTime": 70 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/cactus.json b/src/main/resources/data/create/recipes/milling/cactus.json deleted file mode 100644 index d2c82b4de..000000000 --- a/src/main/resources/data/create/recipes/milling/cactus.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "forge:not", - "value": - { - "type": "forge:mod_loaded", - "modid": "quark" - } - } - ], - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:cactus" - } - ], - "results": [ - { - "item": "minecraft:green_dye", - "count": 2 - }, - { - "item": "minecraft:green_dye", - "count": 1, - "chance": 0.1 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/charcoal.json b/src/main/resources/data/create/recipes/milling/charcoal.json deleted file mode 100644 index 5be7dc15e..000000000 --- a/src/main/resources/data/create/recipes/milling/charcoal.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:charcoal" - } - ], - "results": [ - { - "item": "minecraft:black_dye", - "count": 1 - }, - { - "item": "minecraft:gray_dye", - "count": 2, - "chance": 0.1 - } - ], - "processingTime": 100 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/clay.json b/src/main/resources/data/create/recipes/milling/clay.json deleted file mode 100644 index cd1aa80a5..000000000 --- a/src/main/resources/data/create/recipes/milling/clay.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:clay" - } - ], - "results": [ - { - "item": "minecraft:clay_ball", - "count": 3 - }, - { - "item": "minecraft:clay_ball", - "count": 1, - "chance": 0.5 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/coal.json b/src/main/resources/data/create/recipes/milling/coal.json deleted file mode 100644 index 5216193b8..000000000 --- a/src/main/resources/data/create/recipes/milling/coal.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:coal" - } - ], - "results": [ - { - "item": "minecraft:black_dye", - "count": 2 - }, - { - "item": "minecraft:gray_dye", - "count": 1, - "chance": 0.1 - } - ], - "processingTime": 100 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/cobblestone.json b/src/main/resources/data/create/recipes/milling/cobblestone.json deleted file mode 100644 index 3a08422b6..000000000 --- a/src/main/resources/data/create/recipes/milling/cobblestone.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:cobblestone" - } - ], - "results": [ - { - "item": "minecraft:gravel", - "count": 1 - } - ], - "processingTime": 250 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/cocoa_beans.json b/src/main/resources/data/create/recipes/milling/cocoa_beans.json deleted file mode 100644 index e44faf69c..000000000 --- a/src/main/resources/data/create/recipes/milling/cocoa_beans.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:cocoa_beans" - } - ], - "results": [ - { - "item": "minecraft:brown_dye", - "count": 2 - }, - { - "item": "minecraft:brown_dye", - "count": 1, - "chance": 0.1 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/copper_ore.json b/src/main/resources/data/create/recipes/milling/copper_ore.json deleted file mode 100644 index e3f53892a..000000000 --- a/src/main/resources/data/create/recipes/milling/copper_ore.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "tag": "forge:ores/copper" - } - ], - "results": [ - { - "item": "create:crushed_copper_ore", - "count": 1 - } - ], - "processingTime": 350 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/cornflower.json b/src/main/resources/data/create/recipes/milling/cornflower.json deleted file mode 100644 index 6a96dab2b..000000000 --- a/src/main/resources/data/create/recipes/milling/cornflower.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:cornflower" - } - ], - "results": [ - { - "item": "minecraft:blue_dye", - "count": 2 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/dandelion.json b/src/main/resources/data/create/recipes/milling/dandelion.json deleted file mode 100644 index 35e617b87..000000000 --- a/src/main/resources/data/create/recipes/milling/dandelion.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:dandelion" - } - ], - "results": [ - { - "item": "minecraft:yellow_dye", - "count": 2 - }, - { - "item": "minecraft:yellow_dye", - "count": 1, - "chance": 0.05 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/diorite.json b/src/main/resources/data/create/recipes/milling/diorite.json deleted file mode 100644 index a251f3e5e..000000000 --- a/src/main/resources/data/create/recipes/milling/diorite.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:diorite" - } - ], - "results": [ - { - "item": "create:limesand", - "count": 1 - } - ], - "processingTime": 200 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/fern.json b/src/main/resources/data/create/recipes/milling/fern.json deleted file mode 100644 index 479d50381..000000000 --- a/src/main/resources/data/create/recipes/milling/fern.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:fern" - } - ], - "results": [ - { - "item": "minecraft:green_dye", - "count": 1 - }, - { - "item": "minecraft:wheat_seeds", - "count": 1, - "chance": 0.1 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/gold_ore.json b/src/main/resources/data/create/recipes/milling/gold_ore.json deleted file mode 100644 index 51570f86f..000000000 --- a/src/main/resources/data/create/recipes/milling/gold_ore.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "tag": "forge:ores/gold" - } - ], - "results": [ - { - "item": "create:crushed_gold_ore", - "count": 1 - } - ], - "processingTime": 350 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/granite.json b/src/main/resources/data/create/recipes/milling/granite.json deleted file mode 100644 index ff6d3c70d..000000000 --- a/src/main/resources/data/create/recipes/milling/granite.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:granite" - } - ], - "results": [ - { - "item": "minecraft:red_sand", - "count": 1 - } - ], - "processingTime": 200 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/grass.json b/src/main/resources/data/create/recipes/milling/grass.json deleted file mode 100644 index b7a5a4110..000000000 --- a/src/main/resources/data/create/recipes/milling/grass.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:grass" - } - ], - "results": [ - { - "item": "minecraft:wheat_seeds", - "count": 1, - "chance": 0.25 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/gravel.json b/src/main/resources/data/create/recipes/milling/gravel.json deleted file mode 100644 index 458acbf33..000000000 --- a/src/main/resources/data/create/recipes/milling/gravel.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:gravel" - } - ], - "results": [ - { - "item": "minecraft:flint", - "count": 1 - } - ], - "processingTime": 250 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/ink_sac.json b/src/main/resources/data/create/recipes/milling/ink_sac.json deleted file mode 100644 index ec85b114a..000000000 --- a/src/main/resources/data/create/recipes/milling/ink_sac.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:ink_sac" - } - ], - "results": [ - { - "item": "minecraft:black_dye", - "count": 2 - }, - { - "item": "minecraft:gray_dye", - "count": 1, - "chance": 0.1 - } - ], - "processingTime": 100 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/iron_ore.json b/src/main/resources/data/create/recipes/milling/iron_ore.json deleted file mode 100644 index e8133a559..000000000 --- a/src/main/resources/data/create/recipes/milling/iron_ore.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "tag": "forge:ores/iron" - } - ], - "results": [ - { - "item": "create:crushed_iron_ore", - "count": 1 - } - ], - "processingTime": 400 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/lapis_lazuli.json b/src/main/resources/data/create/recipes/milling/lapis_lazuli.json deleted file mode 100644 index 6c6732cf6..000000000 --- a/src/main/resources/data/create/recipes/milling/lapis_lazuli.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:lapis_lazuli" - } - ], - "results": [ - { - "item": "minecraft:blue_dye", - "count": 2 - }, - { - "item": "minecraft:blue_dye", - "count": 1, - "chance": 0.1 - } - ], - "processingTime": 100 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/large_fern.json b/src/main/resources/data/create/recipes/milling/large_fern.json deleted file mode 100644 index b58903449..000000000 --- a/src/main/resources/data/create/recipes/milling/large_fern.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:large_fern" - } - ], - "results": [ - { - "item": "minecraft:green_dye", - "count": 2 - }, - { - "item": "minecraft:green_dye", - "count": 1, - "chance": 0.5 - }, - { - "item": "minecraft:wheat_seeds", - "count": 1, - "chance": 0.1 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/lilac.json b/src/main/resources/data/create/recipes/milling/lilac.json deleted file mode 100644 index bfc82d355..000000000 --- a/src/main/resources/data/create/recipes/milling/lilac.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:lilac" - } - ], - "results": [ - { - "item": "minecraft:magenta_dye", - "count": 3 - }, - { - "item": "minecraft:magenta_dye", - "count": 1, - "chance": 0.25 - }, - { - "item": "minecraft:purple_dye", - "count": 1, - "chance": 0.25 - } - ], - "processingTime": 100 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/lily_of_the_valley.json b/src/main/resources/data/create/recipes/milling/lily_of_the_valley.json deleted file mode 100644 index 2d307e8ed..000000000 --- a/src/main/resources/data/create/recipes/milling/lily_of_the_valley.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:lily_of_the_valley" - } - ], - "results": [ - { - "item": "minecraft:white_dye", - "count": 2 - }, - { - "item": "minecraft:lime_dye", - "count": 1, - "chance": 0.1 - }, - { - "item": "minecraft:white_dye", - "count": 1, - "chance": 0.1 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/orange_tulip.json b/src/main/resources/data/create/recipes/milling/orange_tulip.json deleted file mode 100644 index d278a5f9c..000000000 --- a/src/main/resources/data/create/recipes/milling/orange_tulip.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:orange_tulip" - } - ], - "results": [ - { - "item": "minecraft:orange_dye", - "count": 2 - }, - { - "item": "minecraft:lime_dye", - "count": 1, - "chance": 0.1 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/oxeye_daisy.json b/src/main/resources/data/create/recipes/milling/oxeye_daisy.json deleted file mode 100644 index a6641508d..000000000 --- a/src/main/resources/data/create/recipes/milling/oxeye_daisy.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:oxeye_daisy" - } - ], - "results": [ - { - "item": "minecraft:light_gray_dye", - "count": 2 - }, - { - "item": "minecraft:white_dye", - "count": 1, - "chance": 0.2 - }, - { - "item": "minecraft:yellow_dye", - "count": 1, - "chance": 0.05 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/peony.json b/src/main/resources/data/create/recipes/milling/peony.json deleted file mode 100644 index 4b031eaaa..000000000 --- a/src/main/resources/data/create/recipes/milling/peony.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:peony" - } - ], - "results": [ - { - "item": "minecraft:pink_dye", - "count": 3 - }, - { - "item": "minecraft:magenta_dye", - "count": 1, - "chance": 0.25 - }, - { - "item": "minecraft:pink_dye", - "count": 1, - "chance": 0.25 - } - ], - "processingTime": 100 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/pink_tulip.json b/src/main/resources/data/create/recipes/milling/pink_tulip.json deleted file mode 100644 index 003408e10..000000000 --- a/src/main/resources/data/create/recipes/milling/pink_tulip.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:pink_tulip" - } - ], - "results": [ - { - "item": "minecraft:pink_dye", - "count": 2 - }, - { - "item": "minecraft:lime_dye", - "count": 1, - "chance": 0.1 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/poppy.json b/src/main/resources/data/create/recipes/milling/poppy.json deleted file mode 100644 index c34ddfdcc..000000000 --- a/src/main/resources/data/create/recipes/milling/poppy.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:poppy" - } - ], - "results": [ - { - "item": "minecraft:red_dye", - "count": 2 - }, - { - "item": "minecraft:green_dye", - "count": 1, - "chance": 0.05 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/red_tulip.json b/src/main/resources/data/create/recipes/milling/red_tulip.json deleted file mode 100644 index 43287b4bc..000000000 --- a/src/main/resources/data/create/recipes/milling/red_tulip.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:red_tulip" - } - ], - "results": [ - { - "item": "minecraft:red_dye", - "count": 2 - }, - { - "item": "minecraft:lime_dye", - "count": 1, - "chance": 0.1 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/rose_bush.json b/src/main/resources/data/create/recipes/milling/rose_bush.json deleted file mode 100644 index 97f5a0f18..000000000 --- a/src/main/resources/data/create/recipes/milling/rose_bush.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:rose_bush" - } - ], - "results": [ - { - "item": "minecraft:red_dye", - "count": 3 - }, - { - "item": "minecraft:green_dye", - "count": 2, - "chance": 0.05 - }, - { - "item": "minecraft:red_dye", - "count": 2, - "chance": 0.25 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/saddle.json b/src/main/resources/data/create/recipes/milling/saddle.json deleted file mode 100644 index 3569880d6..000000000 --- a/src/main/resources/data/create/recipes/milling/saddle.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:saddle" - } - ], - "results": [ - { - "item": "minecraft:leather", - "count": 3 - }, - { - "item": "minecraft:leather", - "count": 2, - "chance": 0.5 - }, - { - "item": "minecraft:iron_nugget", - "count": 8, - "chance": 0.25 - } - ], - "processingTime": 200 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/sand.json b/src/main/resources/data/create/recipes/milling/sand.json deleted file mode 100644 index acf76e900..000000000 --- a/src/main/resources/data/create/recipes/milling/sand.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:sand" - } - ], - "results": [ - { - "item": "create:limesand", - "count": 1 - } - ], - "processingTime": 150 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/sugar_cane.json b/src/main/resources/data/create/recipes/milling/sugar_cane.json deleted file mode 100644 index f19d0a759..000000000 --- a/src/main/resources/data/create/recipes/milling/sugar_cane.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:sugar_cane" - } - ], - "results": [ - { - "item": "minecraft:sugar", - "count": 2 - }, - { - "item": "minecraft:sugar", - "count": 1, - "chance": 0.1 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/sunflower.json b/src/main/resources/data/create/recipes/milling/sunflower.json deleted file mode 100644 index 8efe6a137..000000000 --- a/src/main/resources/data/create/recipes/milling/sunflower.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:sunflower" - } - ], - "results": [ - { - "item": "minecraft:yellow_dye", - "count": 3 - }, - { - "item": "minecraft:yellow_dye", - "count": 1, - "chance": 0.25 - }, - { - "item": "minecraft:orange_dye", - "count": 1, - "chance": 0.25 - } - ], - "processingTime": 100 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/tall_grass.json b/src/main/resources/data/create/recipes/milling/tall_grass.json deleted file mode 100644 index 238806a21..000000000 --- a/src/main/resources/data/create/recipes/milling/tall_grass.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:tall_grass" - } - ], - "results": [ - { - "item": "minecraft:wheat_seeds", - "count": 2, - "chance": 0.25 - } - ], - "processingTime": 100 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/terracotta.json b/src/main/resources/data/create/recipes/milling/terracotta.json deleted file mode 100644 index 807eeae8f..000000000 --- a/src/main/resources/data/create/recipes/milling/terracotta.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:terracotta" - } - ], - "results": [ - { - "item": "minecraft:red_sand", - "count": 1 - } - ], - "processingTime": 200 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/wheat.json b/src/main/resources/data/create/recipes/milling/wheat.json deleted file mode 100644 index 897449075..000000000 --- a/src/main/resources/data/create/recipes/milling/wheat.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:wheat" - } - ], - "results": [ - { - "item": "create:wheat_flour", - "count": 1 - }, - { - "item": "create:wheat_flour", - "count": 2, - "chance": 0.25 - }, - { - "item": "minecraft:wheat_seeds", - "count": 1, - "chance": 0.25 - } - ], - "processingTime": 150 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/white_tulip.json b/src/main/resources/data/create/recipes/milling/white_tulip.json deleted file mode 100644 index 838e2eeec..000000000 --- a/src/main/resources/data/create/recipes/milling/white_tulip.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:white_tulip" - } - ], - "results": [ - { - "item": "minecraft:white_dye", - "count": 2 - }, - { - "item": "minecraft:lime_dye", - "count": 1, - "chance": 0.1 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/wither_rose.json b/src/main/resources/data/create/recipes/milling/wither_rose.json deleted file mode 100644 index 87f1a6cc5..000000000 --- a/src/main/resources/data/create/recipes/milling/wither_rose.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "item": "minecraft:wither_rose" - } - ], - "results": [ - { - "item": "minecraft:black_dye", - "count": 2 - }, - { - "item": "minecraft:black_dye", - "count": 1, - "chance": 0.1 - } - ], - "processingTime": 50 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/wool.json b/src/main/resources/data/create/recipes/milling/wool.json deleted file mode 100644 index 26f95f7be..000000000 --- a/src/main/resources/data/create/recipes/milling/wool.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "tag": "minecraft:wool" - } - ], - "results": [ - { - "item": "minecraft:string", - "count": 1 - } - ], - "processingTime": 100 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/milling/zinc_ore.json b/src/main/resources/data/create/recipes/milling/zinc_ore.json deleted file mode 100644 index a3e869f80..000000000 --- a/src/main/resources/data/create/recipes/milling/zinc_ore.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:milling", - "ingredients": [ - { - "tag": "forge:ores/zinc" - } - ], - "results": [ - { - "item": "create:crushed_zinc_ore", - "count": 1 - } - ], - "processingTime": 350 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/mixing/andesite_alloy.json b/src/main/resources/data/create/recipes/mixing/andesite_alloy.json deleted file mode 100644 index 3378d4cb0..000000000 --- a/src/main/resources/data/create/recipes/mixing/andesite_alloy.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "create:mixing", - "ingredients": [ - { - "item": "minecraft:andesite" - }, - { - "tag": "forge:nuggets/iron" - } - ], - "results": [ - { - "item": "create:andesite_alloy", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/mixing/andesite_alloy_1.json b/src/main/resources/data/create/recipes/mixing/andesite_alloy_1.json deleted file mode 100644 index 80f7e589b..000000000 --- a/src/main/resources/data/create/recipes/mixing/andesite_alloy_1.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "create:mixing", - "ingredients": [ - { - "item": "minecraft:andesite" - }, - { - "tag": "forge:nuggets/zinc" - } - ], - "results": [ - { - "item": "create:andesite_alloy", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/mixing/brass_ingot.json b/src/main/resources/data/create/recipes/mixing/brass_ingot.json deleted file mode 100644 index 3a2e2f3d1..000000000 --- a/src/main/resources/data/create/recipes/mixing/brass_ingot.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "create:mixing", - "ingredients": [ - { - "tag": "forge:ingots/copper" - }, - { - "tag": "forge:ingots/zinc" - } - ], - "results": [ - { - "item": "create:brass_ingot", - "count": 2 - } - ], - "requiredHeat": 3 -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/mixing/brass_nugget.json b/src/main/resources/data/create/recipes/mixing/brass_nugget.json deleted file mode 100644 index 60210f795..000000000 --- a/src/main/resources/data/create/recipes/mixing/brass_nugget.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "create:mixing", - "ingredients": [ - { - "tag": "forge:nuggets/copper" - }, - { - "tag": "forge:nuggets/zinc" - }, - { - "item": "minecraft:blaze_rod", - "return_chance": 0.97 - } - ], - "results": [ - { - "item": "create:brass_nugget", - "count": 2 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/mixing/chromatic_compound.json b/src/main/resources/data/create/recipes/mixing/chromatic_compound.json deleted file mode 100644 index 8879c142b..000000000 --- a/src/main/resources/data/create/recipes/mixing/chromatic_compound.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "create:mixing", - "ingredients": [ - { - "tag": "forge:dusts/glowstone", - "count": 3 - }, - { - "item": "create:polished_rose_quartz" - }, - { - "item": "create:powdered_obsidian", - "count": 3 - }, - { - "item": "minecraft:dragon_breath", - "return_chance": 0.94 - } - ], - "results": [ - { - "item": "create:chromatic_compound", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/mixing/crushed_brass.json b/src/main/resources/data/create/recipes/mixing/crushed_brass.json deleted file mode 100644 index 7fb0cfa20..000000000 --- a/src/main/resources/data/create/recipes/mixing/crushed_brass.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "create:mixing", - "ingredients": [ - { - "item": "create:crushed_copper_ore" - }, - { - "item": "create:crushed_zinc_ore" - }, - { - "item": "minecraft:blaze_rod", - "return_chance": 0.94 - } - ], - "results": [ - { - "item": "create:crushed_brass", - "count": 2 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/mixing/gunpowder.json b/src/main/resources/data/create/recipes/mixing/gunpowder.json deleted file mode 100644 index c127184c3..000000000 --- a/src/main/resources/data/create/recipes/mixing/gunpowder.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "create:mixing", - "ingredients": [ - { - "tag": "minecraft:coals" - }, - { - "item": "create:crushed_zinc_ore" - }, - { - "item": "minecraft:gunpowder" - }, - { - "item": "minecraft:blaze_powder", - "return_chance": 0.75 - } - ], - "results": [ - { - "item": "minecraft:gunpowder", - "count": 2 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/pressing/brass_ingot.json b/src/main/resources/data/create/recipes/pressing/brass_ingot.json deleted file mode 100644 index 9e50f6613..000000000 --- a/src/main/resources/data/create/recipes/pressing/brass_ingot.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:pressing", - "ingredients": [ - { - "tag": "forge:ingots/brass" - } - ], - "results": [ - { - "item": "create:brass_sheet", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/pressing/copper_ingot.json b/src/main/resources/data/create/recipes/pressing/copper_ingot.json deleted file mode 100644 index b0dc3987e..000000000 --- a/src/main/resources/data/create/recipes/pressing/copper_ingot.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:pressing", - "ingredients": [ - { - "tag": "forge:ingots/copper" - } - ], - "results": [ - { - "item": "create:copper_sheet", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/pressing/gold_ingot.json b/src/main/resources/data/create/recipes/pressing/gold_ingot.json deleted file mode 100644 index 5dcef9d3a..000000000 --- a/src/main/resources/data/create/recipes/pressing/gold_ingot.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:pressing", - "ingredients": [ - { - "tag": "forge:ingots/gold" - } - ], - "results": [ - { - "item": "create:golden_sheet", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/pressing/iron_ingot.json b/src/main/resources/data/create/recipes/pressing/iron_ingot.json deleted file mode 100644 index d16c3c254..000000000 --- a/src/main/resources/data/create/recipes/pressing/iron_ingot.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:pressing", - "ingredients": [ - { - "tag": "forge:ingots/iron" - } - ], - "results": [ - { - "item": "create:iron_sheet", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/pressing/lapis_block.json b/src/main/resources/data/create/recipes/pressing/lapis_block.json deleted file mode 100644 index af23670cd..000000000 --- a/src/main/resources/data/create/recipes/pressing/lapis_block.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:pressing", - "ingredients": [ - { - "item": "minecraft:lapis_block" - } - ], - "results": [ - { - "item": "create:lapis_sheet", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/pressing/sugar_cane.json b/src/main/resources/data/create/recipes/pressing/sugar_cane.json deleted file mode 100644 index c9dc82f8a..000000000 --- a/src/main/resources/data/create/recipes/pressing/sugar_cane.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:pressing", - "ingredients": [ - { - "item": "minecraft:sugar_cane" - } - ], - "results": [ - { - "item": "minecraft:paper", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/sandpaper_polishing/rose_quartz.json b/src/main/resources/data/create/recipes/sandpaper_polishing/rose_quartz.json deleted file mode 100644 index 344b731aa..000000000 --- a/src/main/resources/data/create/recipes/sandpaper_polishing/rose_quartz.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:sandpaper_polishing", - "ingredients": [ - { - "item": "create:rose_quartz" - } - ], - "results": [ - { - "item": "create:polished_rose_quartz", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/black_concrete_powder.json b/src/main/resources/data/create/recipes/splashing/black_concrete_powder.json deleted file mode 100644 index 547a13409..000000000 --- a/src/main/resources/data/create/recipes/splashing/black_concrete_powder.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "minecraft:black_concrete_powder" - } - ], - "results": [ - { - "item": "minecraft:black_concrete", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/blue_concrete_powder.json b/src/main/resources/data/create/recipes/splashing/blue_concrete_powder.json deleted file mode 100644 index e08f79443..000000000 --- a/src/main/resources/data/create/recipes/splashing/blue_concrete_powder.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "minecraft:blue_concrete_powder" - } - ], - "results": [ - { - "item": "minecraft:blue_concrete", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/brown_concrete_powder.json b/src/main/resources/data/create/recipes/splashing/brown_concrete_powder.json deleted file mode 100644 index 9f2cc1240..000000000 --- a/src/main/resources/data/create/recipes/splashing/brown_concrete_powder.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "minecraft:brown_concrete_powder" - } - ], - "results": [ - { - "item": "minecraft:brown_concrete", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/bucket.json b/src/main/resources/data/create/recipes/splashing/bucket.json deleted file mode 100644 index f9a9ef937..000000000 --- a/src/main/resources/data/create/recipes/splashing/bucket.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "minecraft:bucket" - } - ], - "results": [ - { - "item": "minecraft:water_bucket", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/crushed_brass.json b/src/main/resources/data/create/recipes/splashing/crushed_brass.json deleted file mode 100644 index 7fee39a22..000000000 --- a/src/main/resources/data/create/recipes/splashing/crushed_brass.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "create:crushed_brass" - } - ], - "results": [ - { - "item": "create:brass_nugget", - "count": 10, - "chance": 1 - }, - { - "item": "create:brass_nugget", - "count": 5, - "chance": 0.5 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/crushed_copper.json b/src/main/resources/data/create/recipes/splashing/crushed_copper.json deleted file mode 100644 index 7da8d0821..000000000 --- a/src/main/resources/data/create/recipes/splashing/crushed_copper.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "create:crushed_copper_ore" - } - ], - "results": [ - { - "item": "create:copper_nugget", - "count": 10, - "chance": 1 - }, - { - "item": "create:copper_nugget", - "count": 5, - "chance": 0.5 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/crushed_gold.json b/src/main/resources/data/create/recipes/splashing/crushed_gold.json deleted file mode 100644 index 96b49d7f6..000000000 --- a/src/main/resources/data/create/recipes/splashing/crushed_gold.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "create:crushed_gold_ore" - } - ], - "results": [ - { - "item": "minecraft:gold_nugget", - "count": 10, - "chance": 1 - }, - { - "item": "minecraft:gold_nugget", - "count": 5, - "chance": 0.5 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/crushed_iron.json b/src/main/resources/data/create/recipes/splashing/crushed_iron.json deleted file mode 100644 index 1d8a1d3d7..000000000 --- a/src/main/resources/data/create/recipes/splashing/crushed_iron.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "create:crushed_iron_ore" - } - ], - "results": [ - { - "item": "minecraft:iron_nugget", - "count": 10, - "chance": 1 - }, - { - "item": "minecraft:iron_nugget", - "count": 5, - "chance": 0.5 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/crushed_zinc.json b/src/main/resources/data/create/recipes/splashing/crushed_zinc.json deleted file mode 100644 index 2f00f2ae0..000000000 --- a/src/main/resources/data/create/recipes/splashing/crushed_zinc.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "create:crushed_zinc_ore" - } - ], - "results": [ - { - "item": "create:zinc_nugget", - "count": 10, - "chance": 1 - }, - { - "item": "create:zinc_nugget", - "count": 5, - "chance": 0.5 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/cyan_concrete_powder.json b/src/main/resources/data/create/recipes/splashing/cyan_concrete_powder.json deleted file mode 100644 index 40b028b17..000000000 --- a/src/main/resources/data/create/recipes/splashing/cyan_concrete_powder.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "minecraft:cyan_concrete_powder" - } - ], - "results": [ - { - "item": "minecraft:cyan_concrete", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/flour.json b/src/main/resources/data/create/recipes/splashing/flour.json deleted file mode 100644 index dfd6f18ea..000000000 --- a/src/main/resources/data/create/recipes/splashing/flour.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "create:wheat_flour" - } - ], - "results": [ - { - "item": "create:dough", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/gravel.json b/src/main/resources/data/create/recipes/splashing/gravel.json deleted file mode 100644 index e98763af1..000000000 --- a/src/main/resources/data/create/recipes/splashing/gravel.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "minecraft:gravel" - } - ], - "results": [ - { - "item": "minecraft:flint", - "count": 1, - "chance": 0.25 - }, - { - "item": "minecraft:iron_nugget", - "count": 1, - "chance": 0.125 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/gray_concrete_powder.json b/src/main/resources/data/create/recipes/splashing/gray_concrete_powder.json deleted file mode 100644 index 88fba5b2a..000000000 --- a/src/main/resources/data/create/recipes/splashing/gray_concrete_powder.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "minecraft:gray_concrete_powder" - } - ], - "results": [ - { - "item": "minecraft:gray_concrete", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/green_concrete_powder.json b/src/main/resources/data/create/recipes/splashing/green_concrete_powder.json deleted file mode 100644 index 04e2cedb4..000000000 --- a/src/main/resources/data/create/recipes/splashing/green_concrete_powder.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "minecraft:green_concrete_powder" - } - ], - "results": [ - { - "item": "minecraft:green_concrete", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/ice.json b/src/main/resources/data/create/recipes/splashing/ice.json deleted file mode 100644 index 562e5fc77..000000000 --- a/src/main/resources/data/create/recipes/splashing/ice.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "minecraft:ice" - } - ], - "results": [ - { - "item": "minecraft:packed_ice", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/light_blue_concrete_powder.json b/src/main/resources/data/create/recipes/splashing/light_blue_concrete_powder.json deleted file mode 100644 index f87e3ec71..000000000 --- a/src/main/resources/data/create/recipes/splashing/light_blue_concrete_powder.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "minecraft:light_blue_concrete_powder" - } - ], - "results": [ - { - "item": "minecraft:light_blue_concrete", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/light_gray_concrete_powder.json b/src/main/resources/data/create/recipes/splashing/light_gray_concrete_powder.json deleted file mode 100644 index 561c42a6f..000000000 --- a/src/main/resources/data/create/recipes/splashing/light_gray_concrete_powder.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "minecraft:light_gray_concrete_powder" - } - ], - "results": [ - { - "item": "minecraft:light_gray_concrete", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/lime_concrete_powder.json b/src/main/resources/data/create/recipes/splashing/lime_concrete_powder.json deleted file mode 100644 index a7f3cb041..000000000 --- a/src/main/resources/data/create/recipes/splashing/lime_concrete_powder.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "minecraft:lime_concrete_powder" - } - ], - "results": [ - { - "item": "minecraft:lime_concrete", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/limestone.json b/src/main/resources/data/create/recipes/splashing/limestone.json deleted file mode 100644 index 09dcce315..000000000 --- a/src/main/resources/data/create/recipes/splashing/limestone.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "create:limestone" - } - ], - "results": [ - { - "item": "create:weathered_limestone", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/magenta_concrete_powder.json b/src/main/resources/data/create/recipes/splashing/magenta_concrete_powder.json deleted file mode 100644 index 25ca2eb01..000000000 --- a/src/main/resources/data/create/recipes/splashing/magenta_concrete_powder.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "minecraft:magenta_concrete_powder" - } - ], - "results": [ - { - "item": "minecraft:magenta_concrete", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/magma_block.json b/src/main/resources/data/create/recipes/splashing/magma_block.json deleted file mode 100644 index a03a71865..000000000 --- a/src/main/resources/data/create/recipes/splashing/magma_block.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "minecraft:magma_block" - } - ], - "results": [ - { - "item": "minecraft:obsidian", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/orange_concrete_powder.json b/src/main/resources/data/create/recipes/splashing/orange_concrete_powder.json deleted file mode 100644 index c7645f475..000000000 --- a/src/main/resources/data/create/recipes/splashing/orange_concrete_powder.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "minecraft:orange_concrete_powder" - } - ], - "results": [ - { - "item": "minecraft:orange_concrete", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/pink_concrete_powder.json b/src/main/resources/data/create/recipes/splashing/pink_concrete_powder.json deleted file mode 100644 index e38aedcc4..000000000 --- a/src/main/resources/data/create/recipes/splashing/pink_concrete_powder.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "minecraft:pink_concrete_powder" - } - ], - "results": [ - { - "item": "minecraft:pink_concrete", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/purple_concrete_powder.json b/src/main/resources/data/create/recipes/splashing/purple_concrete_powder.json deleted file mode 100644 index 93b9acfcd..000000000 --- a/src/main/resources/data/create/recipes/splashing/purple_concrete_powder.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "minecraft:purple_concrete_powder" - } - ], - "results": [ - { - "item": "minecraft:purple_concrete", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/red_concrete_powder.json b/src/main/resources/data/create/recipes/splashing/red_concrete_powder.json deleted file mode 100644 index 81db74b48..000000000 --- a/src/main/resources/data/create/recipes/splashing/red_concrete_powder.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "minecraft:red_concrete_powder" - } - ], - "results": [ - { - "item": "minecraft:red_concrete", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/red_sand.json b/src/main/resources/data/create/recipes/splashing/red_sand.json deleted file mode 100644 index b1b51d8d9..000000000 --- a/src/main/resources/data/create/recipes/splashing/red_sand.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "minecraft:red_sand" - } - ], - "results": [ - { - "item": "minecraft:gold_nugget", - "count": 3, - "chance": 0.125 - }, - { - "item": "minecraft:dead_bush", - "count": 1, - "chance": 0.05 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/sand.json b/src/main/resources/data/create/recipes/splashing/sand.json deleted file mode 100644 index 6be1af521..000000000 --- a/src/main/resources/data/create/recipes/splashing/sand.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "minecraft:sand" - } - ], - "results": [ - { - "item": "minecraft:clay_ball", - "count": 1, - "chance": 0.25 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/soul_sand.json b/src/main/resources/data/create/recipes/splashing/soul_sand.json deleted file mode 100644 index 020073dc2..000000000 --- a/src/main/resources/data/create/recipes/splashing/soul_sand.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "minecraft:soul_sand" - } - ], - "results": [ - { - "item": "minecraft:quartz", - "count": 4, - "chance": 0.125 - }, - { - "item": "minecraft:gold_nugget", - "count": 1, - "chance": 0.02 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/stained_glass.json b/src/main/resources/data/create/recipes/splashing/stained_glass.json deleted file mode 100644 index 54151c62c..000000000 --- a/src/main/resources/data/create/recipes/splashing/stained_glass.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "tag": "forge:stained_glass" - } - ], - "results": [ - { - "item": "minecraft:glass", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/stained_glass_pane.json b/src/main/resources/data/create/recipes/splashing/stained_glass_pane.json deleted file mode 100644 index 056c4a752..000000000 --- a/src/main/resources/data/create/recipes/splashing/stained_glass_pane.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "tag": "forge:stained_glass_panes" - } - ], - "results": [ - { - "item": "minecraft:glass_pane", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/white_concrete_powder.json b/src/main/resources/data/create/recipes/splashing/white_concrete_powder.json deleted file mode 100644 index c10a89d80..000000000 --- a/src/main/resources/data/create/recipes/splashing/white_concrete_powder.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "minecraft:white_concrete_powder" - } - ], - "results": [ - { - "item": "minecraft:white_concrete", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/wool.json b/src/main/resources/data/create/recipes/splashing/wool.json deleted file mode 100644 index 664136bfc..000000000 --- a/src/main/resources/data/create/recipes/splashing/wool.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "tag": "minecraft:wool" - } - ], - "results": [ - { - "item": "minecraft:white_wool", - "count": 1 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/splashing/yellow_concrete_powder.json b/src/main/resources/data/create/recipes/splashing/yellow_concrete_powder.json deleted file mode 100644 index c68141de8..000000000 --- a/src/main/resources/data/create/recipes/splashing/yellow_concrete_powder.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "create:splashing", - "ingredients": [ - { - "item": "minecraft:yellow_concrete_powder" - } - ], - "results": [ - { - "item": "minecraft:yellow_concrete", - "count": 1 - } - ] -} \ No newline at end of file