From 032e16379549682e07c94962d8e1739fc62bb981 Mon Sep 17 00:00:00 2001 From: WayofTime Date: Thu, 19 Nov 2020 21:42:30 -0500 Subject: [PATCH] Initial work on Netherrack Soil. Also added the processing for Ancient Debris and some of the intermediates for the new Hellforged Ingots (no uses yet). --- src/generated/resources/.cache/cache | 42 ++++- .../bloodmagic/blockstates/dungeon_metal.json | 7 + .../bloodmagic/blockstates/nether_soil.json | 28 ++++ .../assets/bloodmagic/lang/en_us.json | 3 + .../models/block/dungeon_metal.json | 6 + .../bloodmagic/models/block/nether_soil.json | 7 + .../models/item/corrupted_dust.json | 6 + .../models/item/corrupted_tinydust.json | 6 + .../bloodmagic/models/item/dungeon_metal.json | 3 + .../models/item/fragment_netherite_scrap.json | 6 + .../models/item/gravel_netherite_scrap.json | 6 + .../models/item/ingot_hellforged.json | 6 + .../bloodmagic/models/item/nether_soil.json | 3 + .../models/item/sand_hellforged.json | 6 + .../models/item/sand_netherite.json | 6 + .../recipes/bloodmagictab/corrupted_dust.json | 32 ++++ .../bloodmagictab/hellforged_block.json | 32 ++++ .../smelting/ingot_hellforged.json | 32 ++++ .../misc/smelting/ingot_netherite_scrap.json | 32 ++++ .../loot_tables/blocks/dungeon_metal.json | 19 +++ .../loot_tables/blocks/nether_soil.json | 19 +++ .../arc/dustsfrom_gravel_netherite_scrap.json | 13 ++ .../arc/dustsfrom_ingot_netherite_scrap.json | 13 ++ .../arc/dustsfrom_ore_netherite_scrap.json | 14 ++ .../recipes/arc/fragmentsnetherite_scrap.json | 14 ++ .../bloodmagic/recipes/arc/gravelsgold.json | 14 ++ .../bloodmagic/recipes/arc/gravelsiron.json | 14 ++ .../recipes/arc/gravelsnetherite_scrap.json | 27 +++ .../bloodmagic/recipes/corrupted_dust.json | 16 ++ .../bloodmagic/recipes/hellforged_block.json | 16 ++ .../recipes/smelting/ingot_hellforged.json | 9 + .../smelting/ingot_netherite_scrap.json | 9 + .../tags/items/dusts/corrupted.json | 6 + .../tags/items/fragments/netherite_scrap.json | 6 + .../tags/items/gravels/netherite_scrap.json | 6 + .../tags/items/tiny_dusts/corrupted.json | 6 + .../forge/tags/items/dusts/hellforged.json | 6 + .../tags/items/dusts/netherite_scrap.json | 6 + .../forge/tags/items/ingots/hellforged.json | 6 + .../data/minecraft/tags/fluids/life.json | 7 + .../java/wayoftime/bloodmagic/BloodMagic.java | 6 +- .../common/block/BlockNetherrackSoil.java | 156 ++++++++++++++++++ .../common/block/BloodMagicBlocks.java | 5 + .../common/data/GeneratorBaseRecipes.java | 7 +- .../common/data/GeneratorBlockStates.java | 13 ++ .../common/data/GeneratorFluidTags.java | 22 +++ .../common/data/GeneratorItemModels.java | 1 + .../common/data/GeneratorItemTags.java | 12 ++ .../common/data/GeneratorLanguage.java | 3 + .../common/data/GeneratorLootTable.java | 2 + .../common/item/BloodMagicItems.java | 10 ++ .../common/recipe/ARCRecipeProvider.java | 9 +- .../common/tags/BloodMagicTags.java | 28 ++++ .../bloodmagic/textures/block/nether_soil.png | Bin 0 -> 6182 bytes .../textures/block/nether_soil.png.mcmeta | 45 +++++ .../textures/item/corrupted_dust.png | Bin 0 -> 852 bytes .../textures/item/corrupted_tinydust.png | Bin 0 -> 634 bytes .../item/fragment_netherite_scrap.png | Bin 0 -> 894 bytes .../textures/item/gravel_netherite_scrap.png | Bin 0 -> 903 bytes .../textures/item/ingot_hellforged.png | Bin 0 -> 763 bytes .../textures/item/sand_hellforged.png | Bin 0 -> 936 bytes .../textures/item/sand_netherite.png | Bin 0 -> 893 bytes 62 files changed, 826 insertions(+), 8 deletions(-) create mode 100644 src/generated/resources/assets/bloodmagic/blockstates/dungeon_metal.json create mode 100644 src/generated/resources/assets/bloodmagic/blockstates/nether_soil.json create mode 100644 src/generated/resources/assets/bloodmagic/models/block/dungeon_metal.json create mode 100644 src/generated/resources/assets/bloodmagic/models/block/nether_soil.json create mode 100644 src/generated/resources/assets/bloodmagic/models/item/corrupted_dust.json create mode 100644 src/generated/resources/assets/bloodmagic/models/item/corrupted_tinydust.json create mode 100644 src/generated/resources/assets/bloodmagic/models/item/dungeon_metal.json create mode 100644 src/generated/resources/assets/bloodmagic/models/item/fragment_netherite_scrap.json create mode 100644 src/generated/resources/assets/bloodmagic/models/item/gravel_netherite_scrap.json create mode 100644 src/generated/resources/assets/bloodmagic/models/item/ingot_hellforged.json create mode 100644 src/generated/resources/assets/bloodmagic/models/item/nether_soil.json create mode 100644 src/generated/resources/assets/bloodmagic/models/item/sand_hellforged.json create mode 100644 src/generated/resources/assets/bloodmagic/models/item/sand_netherite.json create mode 100644 src/generated/resources/data/bloodmagic/advancements/recipes/bloodmagictab/corrupted_dust.json create mode 100644 src/generated/resources/data/bloodmagic/advancements/recipes/bloodmagictab/hellforged_block.json create mode 100644 src/generated/resources/data/bloodmagic/advancements/recipes/bloodmagictab/smelting/ingot_hellforged.json create mode 100644 src/generated/resources/data/bloodmagic/advancements/recipes/misc/smelting/ingot_netherite_scrap.json create mode 100644 src/generated/resources/data/bloodmagic/loot_tables/blocks/dungeon_metal.json create mode 100644 src/generated/resources/data/bloodmagic/loot_tables/blocks/nether_soil.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_gravel_netherite_scrap.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_ingot_netherite_scrap.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_ore_netherite_scrap.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/arc/fragmentsnetherite_scrap.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/arc/gravelsnetherite_scrap.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/corrupted_dust.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/hellforged_block.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/smelting/ingot_hellforged.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/smelting/ingot_netherite_scrap.json create mode 100644 src/generated/resources/data/bloodmagic/tags/items/dusts/corrupted.json create mode 100644 src/generated/resources/data/bloodmagic/tags/items/fragments/netherite_scrap.json create mode 100644 src/generated/resources/data/bloodmagic/tags/items/gravels/netherite_scrap.json create mode 100644 src/generated/resources/data/bloodmagic/tags/items/tiny_dusts/corrupted.json create mode 100644 src/generated/resources/data/forge/tags/items/dusts/hellforged.json create mode 100644 src/generated/resources/data/forge/tags/items/dusts/netherite_scrap.json create mode 100644 src/generated/resources/data/forge/tags/items/ingots/hellforged.json create mode 100644 src/generated/resources/data/minecraft/tags/fluids/life.json create mode 100644 src/main/java/wayoftime/bloodmagic/common/block/BlockNetherrackSoil.java create mode 100644 src/main/java/wayoftime/bloodmagic/common/data/GeneratorFluidTags.java create mode 100644 src/main/resources/assets/bloodmagic/textures/block/nether_soil.png create mode 100644 src/main/resources/assets/bloodmagic/textures/block/nether_soil.png.mcmeta create mode 100644 src/main/resources/assets/bloodmagic/textures/item/corrupted_dust.png create mode 100644 src/main/resources/assets/bloodmagic/textures/item/corrupted_tinydust.png create mode 100644 src/main/resources/assets/bloodmagic/textures/item/fragment_netherite_scrap.png create mode 100644 src/main/resources/assets/bloodmagic/textures/item/gravel_netherite_scrap.png create mode 100644 src/main/resources/assets/bloodmagic/textures/item/ingot_hellforged.png create mode 100644 src/main/resources/assets/bloodmagic/textures/item/sand_hellforged.png create mode 100644 src/main/resources/assets/bloodmagic/textures/item/sand_netherite.png diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 58159576..f572a3fd 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -18,6 +18,7 @@ c67498a81f8dd53770da51df45192b171cdd234c assets/bloodmagic/blockstates/dungeon_b 8b568926830785a5cb848fb36d4ae01e67590501 assets/bloodmagic/blockstates/dungeon_brick_stairs.json 6c10c79909e008b960f2d78543f55847eec7a226 assets/bloodmagic/blockstates/dungeon_brick_wall.json 8a04e502b6965d912793699d61071e44428fceb8 assets/bloodmagic/blockstates/dungeon_eye.json +40051ea4111a9c2fd2524d664d52f241eed5317e assets/bloodmagic/blockstates/dungeon_metal.json fe31978b41dc50c21f413c81410221f657fd4d23 assets/bloodmagic/blockstates/dungeon_ore.json 388af5c6d34f62d66d987760871c64793df84a37 assets/bloodmagic/blockstates/dungeon_pillar_cap.json 8d8d58ad890f339b75dbdfc710b30dc00eed2ef3 assets/bloodmagic/blockstates/dungeon_pillar_center.json @@ -36,6 +37,7 @@ e780d6d9e891082dc6ce83fde1697ce36281a02a assets/bloodmagic/blockstates/fireritua f78ce2be09ab794bf5f5679414eee0dc85cf4fb1 assets/bloodmagic/blockstates/largebloodstonebrick.json 002795212cc7bf2cad2a91f873d85e2204c6367d assets/bloodmagic/blockstates/lightritualstone.json e1a98bd53fca155e4bbb03c1e548341af0f84bd7 assets/bloodmagic/blockstates/masterritualstone.json +505e45be4a207e22433d853e5139c5b1d48c57d7 assets/bloodmagic/blockstates/nether_soil.json 95a0c9a84139cf92c2689e53408b51619db126a1 assets/bloodmagic/blockstates/obsidianbrickpath.json 8b0ea137c63cf3a658a03eee58ca4b2c3d996f87 assets/bloodmagic/blockstates/obsidiantilepath.json 372ecd737f7082a4c2c70e46745f893b1179f885 assets/bloodmagic/blockstates/orbcapacityrune.json @@ -53,7 +55,7 @@ e6d9cf699667aaa47efff37b2b033895dee29c15 assets/bloodmagic/blockstates/waterritu 42f26f715bddd16c069f9b51e3767b36477c8908 assets/bloodmagic/blockstates/woodtilepath.json 3c6ce233dae6c1307d9016406c324bbe844b4e1e assets/bloodmagic/blockstates/wornstonebrickpath.json d59655f12d1724b73b77c373fb6864fcff69db12 assets/bloodmagic/blockstates/wornstonetilepath.json -e7aab24fc4aa77601119478854ad929a1f384132 assets/bloodmagic/lang/en_us.json +b5dd19f496ee32e0301a21f38255c0fb3f2fae7f assets/bloodmagic/lang/en_us.json 34445195b9f2459475cde53454bc8e37d32865d7 assets/bloodmagic/models/block/accelerationrune.json bcdbccc49d4509571be6988762ab87126275a4c8 assets/bloodmagic/models/block/airritualstone.json adf6c0b1e25451609486dc8c8cfbd9cf0f8c67f4 assets/bloodmagic/models/block/alchemicalreactionchamber.json @@ -114,6 +116,7 @@ ffb2021036b74d29fca5fc706885f3e1399c2950 assets/bloodmagic/models/block/dungeon_ a7d371e5d0efefae2729131bda16120bfe477bb8 assets/bloodmagic/models/block/dungeon_brick_wall_side.json bd152efd619489661cac86a80190bf9e88c86363 assets/bloodmagic/models/block/dungeon_brick_wall_side_tall.json 19ae530a34eb5cee35dc7b9cdd51c9c2d61fdc9e assets/bloodmagic/models/block/dungeon_eye.json +72d70f0acb18b765340167559c10b027bd98673a assets/bloodmagic/models/block/dungeon_metal.json 61eb4e5ede53a8278d2d95fbeb40dc01424f2895 assets/bloodmagic/models/block/dungeon_ore.json a4449c1d14c46bcda58b542c3efdddadff15bedc assets/bloodmagic/models/block/dungeon_pillar_cap.json 1752cc99d0c334016bebd0e8027b8abe3ca5d7e8 assets/bloodmagic/models/block/dungeon_pillar_cap_down.json @@ -151,6 +154,7 @@ c30064f4aa09c42d23e94d118ae5b148eadb3a6c assets/bloodmagic/models/block/earthrit d6bf1482345199e7d056a60865024ea5d480b986 assets/bloodmagic/models/block/largebloodstonebrick.json 2e1a81c758bfeec2aee807b48239f23241302268 assets/bloodmagic/models/block/lightritualstone.json eab1713a8879decb2ae05258a6bcfa9da78ec67b assets/bloodmagic/models/block/masterritualstone.json +c0e0f918b237d2f25718bae4774750b90a88de7b assets/bloodmagic/models/block/nether_soil.json 1e354903812e9cf8e2fea26b908430d7e1cf20a9 assets/bloodmagic/models/block/obsidianbrickpath.json 71893b8b185c2b0f64f21b7dc6c4f2850f936206 assets/bloodmagic/models/block/obsidiantilepath.json c3a813b735cd229f8597e41d04465926b2e65fe1 assets/bloodmagic/models/block/orbcapacityrune.json @@ -195,6 +199,8 @@ c795d1b7aa99ce27da63868f81bac615cf199c66 assets/bloodmagic/models/item/bloodston 738eb84b10400c04e0c7a5a253e55c109c233ec8 assets/bloodmagic/models/item/coalsand.json 9301a2fc234f064caf7e13afabb9343540d3412f assets/bloodmagic/models/item/corrosivecrystal.json e8bdf0e3f557bb09c665312df380672e676f4382 assets/bloodmagic/models/item/corrosivedemoncrystal.json +e4822c0c7e2a41b7b450839fb51b985ff36c4d0f assets/bloodmagic/models/item/corrupted_dust.json +a14760b028650f41da69454701c1611e68a33056 assets/bloodmagic/models/item/corrupted_tinydust.json 5ffcaf5c5378e51d9474b4e75fb3a9cae946a492 assets/bloodmagic/models/item/crystalline_resonator.json f404148f9df3a61da3c18175885ffa56b2a85a6a assets/bloodmagic/models/item/daggerofsacrifice.json 6b89387f771da9535a0234f1a267af1b6853724d assets/bloodmagic/models/item/defaultcrystal.json @@ -212,6 +218,7 @@ f866879eed9f1bd7eebac14495de599ca3ad855d assets/bloodmagic/models/item/dungeon_b 2ec6a2c66e88981ff54e74035bb3adb1ec4f6396 assets/bloodmagic/models/item/dungeon_brick_stairs.json 098a26f4e9222c801f9a17a6db1b266ad4085003 assets/bloodmagic/models/item/dungeon_brick_wall.json 0a48c4fd74036702ae2d72a9b2333c2bdf5ab31b assets/bloodmagic/models/item/dungeon_eye.json +e5b467f756ccc4d3ab42a1249864d47f2b9c4587 assets/bloodmagic/models/item/dungeon_metal.json 95a45fae0890e626aa5e5ff85b9884bd30087244 assets/bloodmagic/models/item/dungeon_ore.json ba5c610437b7d3a84820109c32d204310ff41fd7 assets/bloodmagic/models/item/dungeon_pillar_cap.json d098a544e7b9918a45106c2cbc5e10baea66502a assets/bloodmagic/models/item/dungeon_pillar_center.json @@ -234,13 +241,16 @@ cdbaaf8662f2e855a34a66f28e49403c4ea9a45e assets/bloodmagic/models/item/ethereal_ 6ccd9f4e27f43b7f30217e73e0cdfad3bc826b1e assets/bloodmagic/models/item/explosivepowder.json c36bde4f98c0aeb3bf0f369ad3bc067e5f0dc916 assets/bloodmagic/models/item/fireritualstone.json b5708a8cc7259fd36ffeabd155ea085b9fdef0fd assets/bloodmagic/models/item/firescribetool.json +61e64aa75a534606689c33a352ef90cccfbf0ef7 assets/bloodmagic/models/item/fragment_netherite_scrap.json 537a52d7b59dc996ea23f24d86a4add87c61c6a0 assets/bloodmagic/models/item/furnacecell_primitive.json e58ab37eb5c43fdf2f088250a68ad358c764cbaa assets/bloodmagic/models/item/goldfragment.json 15dd3953b62bb2553d81ceeb021f7660d5ac6d84 assets/bloodmagic/models/item/goldgravel.json ce2465efcc0c17583c8b3c7251a6cecefdce1970 assets/bloodmagic/models/item/goldsand.json +3d42648f711e6b65969e66405f33cfe67b9c39c5 assets/bloodmagic/models/item/gravel_netherite_scrap.json 44663089f348642bcca1c5020b5081c3ab172f92 assets/bloodmagic/models/item/growthsigil.json f68825f667ca73b4373fd5068a47f0d1ca9b2aad assets/bloodmagic/models/item/icesigil.json 109b5485c25d978af55b46682d5bfa7008909458 assets/bloodmagic/models/item/infusedslate.json +ac7a996ed25b523a08e05824049786d3eea8c430 assets/bloodmagic/models/item/ingot_hellforged.json ccbcba6e4a6450bb67f91ba17754d668ba64c0ac assets/bloodmagic/models/item/ironfragment.json 8d24cd26bf78c9076c1ed764bdca9f7bbbcaf8f9 assets/bloodmagic/models/item/irongravel.json 36cde62c239e351b9c32958135e893829d1d3925 assets/bloodmagic/models/item/ironsand.json @@ -253,6 +263,7 @@ ccbcba6e4a6450bb67f91ba17754d668ba64c0ac assets/bloodmagic/models/item/ironfragm 9e377ab2c131993f96ab6fb544bda4dbba0ab87e assets/bloodmagic/models/item/masterritualstone.json 3d5c71d1f24ebcc65db48765b56db60d64673a0d assets/bloodmagic/models/item/mimic.json 7596826c5b40c2809eb0a42eb5f5f2089290e3e5 assets/bloodmagic/models/item/miningsigil.json +9010fdcefb80ed0db271b41263412a1673c6c311 assets/bloodmagic/models/item/nether_soil.json eaa0548775c3d5839b46d333af33f815dc6dd0fe assets/bloodmagic/models/item/obsidianbrickpath.json cf066d15baae650a383240a91240abd335bbb0e3 assets/bloodmagic/models/item/obsidiantilepath.json ff9b802098659824626dc90dbb5a0d8960234228 assets/bloodmagic/models/item/orbcapacityrune.json @@ -278,6 +289,8 @@ fd1447d943ddc4540a51a72dcbb245d77d45da71 assets/bloodmagic/models/item/reagentwa db73abb3bcb1731b6fc389e3577910b6aab87b10 assets/bloodmagic/models/item/sacrificerune.json 616afe16c430ce4732498f0b2d19509d3a545bcc assets/bloodmagic/models/item/sacrificialdagger.json b23b701e93011247714ebdaffd6d52e918ba3d8a assets/bloodmagic/models/item/saltpeter.json +8a99c9b2d62d7ac9252ea6af0b9137935f19f353 assets/bloodmagic/models/item/sand_hellforged.json +b4afc1907cb2463f11579803122bb2af38b1f4ae assets/bloodmagic/models/item/sand_netherite.json b8582a5cd6ca35279e9b35931f1c5ca089b094b8 assets/bloodmagic/models/item/sanguinereverter.json b9fd6c60eba0186ba7ac156c4d126fcf74c21b84 assets/bloodmagic/models/item/seersigil.json cc71421e98ee7ee047a4cfbb6cb69529c2b02d4e assets/bloodmagic/models/item/selfsacrificerune.json @@ -378,6 +391,8 @@ e897d6f91e2a0bd12b0da0a50e5c897294989e7c data/bloodmagic/advancements/recipes/bl 263f7c251d2f163db5bd229f2ab8a222f23ae03a data/bloodmagic/advancements/recipes/bloodmagictab/blood_rune_self_sacrifice.json 7ca400d1141ff4be1b529cd060950b42cf3b9bfb data/bloodmagic/advancements/recipes/bloodmagictab/blood_rune_speed.json 764e54fdaa24f87cceb815990bbbd2e2cd87f205 data/bloodmagic/advancements/recipes/bloodmagictab/bloodstonebrick.json +2e7ec285e758b06c2bd7d9fd93eedd96f511fa49 data/bloodmagic/advancements/recipes/bloodmagictab/corrupted_dust.json +1b1dab3143eae33e25c4a14c011adec72768c9b5 data/bloodmagic/advancements/recipes/bloodmagictab/hellforged_block.json a6f012d0584d36d9b7dd0ec4f9e4cbd2a3ff1146 data/bloodmagic/advancements/recipes/bloodmagictab/incense_altar.json 4c24af93a64071aadc0308b27bcbc44572e5ccfc data/bloodmagic/advancements/recipes/bloodmagictab/largebloodstonebrick.json 344567e6f5671131addcfebbd92d18e5cbd66ef5 data/bloodmagic/advancements/recipes/bloodmagictab/lava_crystal.json @@ -395,10 +410,12 @@ ea0b32b5595661f0d09f68a8a596577cc62ba0b1 data/bloodmagic/advancements/recipes/bl c8e5cdac0e7328640ab1cb0eab0a46f0733b59b3 data/bloodmagic/advancements/recipes/bloodmagictab/ritual_stone_blank.json 1578416eb302aecb3fd61e481634c5c021541f51 data/bloodmagic/advancements/recipes/bloodmagictab/ritual_stone_master.json 832301a424345b7ca70b43cb214faa104179f0fb data/bloodmagic/advancements/recipes/bloodmagictab/sacrificial_dagger.json +b76943e5606d3cd4ec9933b533e0925499af5c65 data/bloodmagic/advancements/recipes/bloodmagictab/smelting/ingot_hellforged.json 2d29dd0c24c4c11d7438cdeeb26b9357d4359e2c data/bloodmagic/advancements/recipes/bloodmagictab/soul_forge.json 7a7f9f995d2414289d07c0a145647c8e735a6b78 data/bloodmagic/advancements/recipes/bloodmagictab/soul_snare.json 1c751b044e5ce4d05746857d6cf5e812e94a4026 data/bloodmagic/advancements/recipes/misc/smelting/ingot_gold.json af036dd1bd5193c2d36e7cb96c0a2b73a37b76ab data/bloodmagic/advancements/recipes/misc/smelting/ingot_iron.json +ab358377c93ecbdd790722d5e796df59095e79e1 data/bloodmagic/advancements/recipes/misc/smelting/ingot_netherite_scrap.json 639ebb2ccabb2eaece59be96c2e6f28c31f4d2f4 data/bloodmagic/loot_tables/blocks/accelerationrune.json 26e3f34021426def32602e5ae7755e4672878320 data/bloodmagic/loot_tables/blocks/airritualstone.json 1ed1f3cebe68450b6d5ca3ce69e4728a7d250b1c data/bloodmagic/loot_tables/blocks/alchemicalreactionchamber.json @@ -424,6 +441,7 @@ be050ff812ae62793e3c51d7c2ab343294ede7f0 data/bloodmagic/loot_tables/blocks/dung 0d30aeb91425e2419abf555e9baab34475f45afc data/bloodmagic/loot_tables/blocks/dungeon_brick_stairs.json fa335aded871280065ca02db79d6de59ced7f6c9 data/bloodmagic/loot_tables/blocks/dungeon_brick_wall.json 47baa958866616d96eb39e2671a4cf488e0abae2 data/bloodmagic/loot_tables/blocks/dungeon_eye.json +055aa396cd80393d84ed340692be62f74ecb6ffc data/bloodmagic/loot_tables/blocks/dungeon_metal.json 234675dab5d5ff7e1fec0e13cede1f141811fc92 data/bloodmagic/loot_tables/blocks/dungeon_ore.json 53864c213b973e67006cda4596877bcdd3474396 data/bloodmagic/loot_tables/blocks/dungeon_pillar_cap.json db8be3b67639ab451d0a28e0674240094ceea046 data/bloodmagic/loot_tables/blocks/dungeon_pillar_center.json @@ -445,6 +463,7 @@ b6732b30df9e946739a1913671a60f56090679f8 data/bloodmagic/loot_tables/blocks/dung 26e3f34021426def32602e5ae7755e4672878320 data/bloodmagic/loot_tables/blocks/lightritualstone.json 72610188b4538d98ffcd015c2813d63d19889d5f data/bloodmagic/loot_tables/blocks/masterritualstone.json ce5bf03f0ee03205ef6a1b6f512cb5da23addc57 data/bloodmagic/loot_tables/blocks/mimic.json +842c4dce4e47561fe29d7b5c03d3953808ada929 data/bloodmagic/loot_tables/blocks/nether_soil.json 3892d33bbef90db50034b1358d4a9ee8b731bc8d data/bloodmagic/loot_tables/blocks/obsidianbrickpath.json 3576b2f9d92ab5bdc456cb904905fb5c969e55f3 data/bloodmagic/loot_tables/blocks/obsidiantilepath.json 95442c1bb740fab2eb8ee051f7184813f6023afa data/bloodmagic/loot_tables/blocks/orbcapacityrune.json @@ -501,14 +520,19 @@ f35bb47d609201f6568b598307ae9d157792fe3e data/bloodmagic/recipes/arc/clay_from_s 6b8ba1822bac8a1af426a14f87d613dc89e3fca0 data/bloodmagic/recipes/arc/clay_from_terracotta.json 5206a65f02d3bea5c23164325eb23ce8e928102f data/bloodmagic/recipes/arc/dustsfrom_gravel_gold.json 5af6c601a7be4c0fc4811befa59324c1a2cdb758 data/bloodmagic/recipes/arc/dustsfrom_gravel_iron.json +6f3f5d2f3054d61a3965b10bcebc8cefe107cf5f data/bloodmagic/recipes/arc/dustsfrom_gravel_netherite_scrap.json b5d3a7ee94494665a9e69519da43a0d4056deb76 data/bloodmagic/recipes/arc/dustsfrom_ingot_gold.json a31e17fb2da1259fb186cfd07c9cd500e6354518 data/bloodmagic/recipes/arc/dustsfrom_ingot_iron.json +b9dc41ad0d9ee6035084a8e9a8eb920223817d33 data/bloodmagic/recipes/arc/dustsfrom_ingot_netherite_scrap.json e0846e670dc94334ba695d2a1182527a5016cd31 data/bloodmagic/recipes/arc/dustsfrom_ore_gold.json 855c963531471cedd2f5f067801b96c0bd6a0c56 data/bloodmagic/recipes/arc/dustsfrom_ore_iron.json +e410be937d52aea0f186aa14fa9b2929a98ffaf3 data/bloodmagic/recipes/arc/dustsfrom_ore_netherite_scrap.json 517a3b7a6bbfc486777f509c2d9af6490ff722c9 data/bloodmagic/recipes/arc/fragmentsgold.json d8b9e64d14e67299aa08888246cdead76ebd91ce data/bloodmagic/recipes/arc/fragmentsiron.json -098e95b47496c2479645be1e6a86dbbc11716214 data/bloodmagic/recipes/arc/gravelsgold.json -1096172e2dca5071c07b9684db3736862fa4d0d9 data/bloodmagic/recipes/arc/gravelsiron.json +ec54b6d447bf5709b15d7bccb9c7d0790661f621 data/bloodmagic/recipes/arc/fragmentsnetherite_scrap.json +0275b4a539ccac64818c19bcb5351408eea9d193 data/bloodmagic/recipes/arc/gravelsgold.json +32b0aeab82c1d98b86b162e98036b2591ccf649c data/bloodmagic/recipes/arc/gravelsiron.json +f83ad96ea74fd51f1fd78ee40ff0fbeb08755b12 data/bloodmagic/recipes/arc/gravelsnetherite_scrap.json 2eb26a1af68ed7a5fdb6ac9d4bbc7557729c56cd data/bloodmagic/recipes/arc/netherrack_to_sulfer.json 0a6a8034c55d093fed458759bbc85e5893712d35 data/bloodmagic/recipes/arc/ore/dustgold.json b2760564e300976d88a3938bc0e9e2d2defa0841 data/bloodmagic/recipes/arc/ore/dustiron.json @@ -539,6 +563,8 @@ b63d77c3762f86d4a91f62e192c3e9b26e3b52ca data/bloodmagic/recipes/blood_rune_sacr 7c4e247c1df6ef594bbb2fc2196afb102f45982b data/bloodmagic/recipes/blood_rune_self_sacrifice.json e2bcf2a6f951fbcef45554ec90ba28d14e261d18 data/bloodmagic/recipes/blood_rune_speed.json eeb5e64b8bc90adc2554dde88b8792b92ad7c8cc data/bloodmagic/recipes/bloodstonebrick.json +68e9201ef0d0051618a73434b35791a208bacde1 data/bloodmagic/recipes/corrupted_dust.json +84aeee900c15d94f1940e72c8f331755d0a97b11 data/bloodmagic/recipes/hellforged_block.json 9a5749465020b32b0147b3367784ce31a0d3b54b data/bloodmagic/recipes/incense_altar.json 63bca28ba5eebb9c488c819bcb117595eadb877d data/bloodmagic/recipes/largebloodstonebrick.json 9dedad36e9d2ab6688e069c2e6df3851c395b583 data/bloodmagic/recipes/lava_crystal.json @@ -557,7 +583,9 @@ bfd7925ad30534463d7daf0f7dce03cf1502cbcf data/bloodmagic/recipes/ritual_diviner_ 8608f828f997b1a8015287bd9cd436e9d7dff2ff data/bloodmagic/recipes/ritual_stone_master.json aefbf1fd258f1cda8d04db7e0794b9612993e6bf data/bloodmagic/recipes/sacrificial_dagger.json 1eab0535b38c4a8a021a72244b9e6a75353970f0 data/bloodmagic/recipes/smelting/ingot_gold.json +b644726cea2da0626f33b60fbc64701f26d48561 data/bloodmagic/recipes/smelting/ingot_hellforged.json 477f968ee84a5b9cd3e9c2a9864be32b5e7d3a32 data/bloodmagic/recipes/smelting/ingot_iron.json +06855bcd8951355604ab1e63b5db717382430967 data/bloodmagic/recipes/smelting/ingot_netherite_scrap.json d699e777c72a5f61c4e6cdfea8705628e1c2b855 data/bloodmagic/recipes/soul_forge.json 2455bf8c205c7244fef2b7d7afeef060e30520b7 data/bloodmagic/recipes/soul_snare.json f4763a58a8f471ec1aaa997cbd36eac8c7d51a12 data/bloodmagic/recipes/soulforge/arcaneashes.json @@ -597,18 +625,26 @@ a62b82e1f59284d230b4b983ffa4a4cecb288c0e data/bloodmagic/tags/items/arc/hydrate. 14fb88c612622be110e273818eee9512cd285d56 data/bloodmagic/tags/items/arc/sieve.json bcd2befe59cbb4931c8c9bed183d19b2a469e506 data/bloodmagic/tags/items/arc/tool.json 2bdc1397bd092d373f785f08a2befdce8c1c1e2e data/bloodmagic/tags/items/crystals/demon.json +dab44ece8bcdf079b349fc4f49da67aafe9c4cf7 data/bloodmagic/tags/items/dusts/corrupted.json dc8d6f8f8d128499f3d2632ef1bc353cc49d1ddb data/bloodmagic/tags/items/fragments/gold.json a60c7b779168689387a03f00002bfd8380d919e5 data/bloodmagic/tags/items/fragments/iron.json +590aab8d5f5a4ed18dd211865e917674dcabfea0 data/bloodmagic/tags/items/fragments/netherite_scrap.json af9b1a9ba1b16a85e3e1cf84b99e4cc9e12f9886 data/bloodmagic/tags/items/gravels/gold.json 19547e1b8859f1e2f1ae858e74b4456fc20be53f data/bloodmagic/tags/items/gravels/iron.json +3597daeddb742612d0b7fe2d0f711251a2781ac2 data/bloodmagic/tags/items/gravels/netherite_scrap.json +04fdfff381183672d6d7b3e55ded42a0a5b89f16 data/bloodmagic/tags/items/tiny_dusts/corrupted.json 4f8f46a7e30fe81d36790d3ffed37efef7c87d06 data/forge/tags/items/dusts/coal.json 82f2679934e550a1188658350e52cfac7c450c4d data/forge/tags/items/dusts/gold.json +205d57b4f622a13fceda5e8062d9bba80d619e92 data/forge/tags/items/dusts/hellforged.json 625a1e6a3b635b2ac5176a49afbae9b476de4f71 data/forge/tags/items/dusts/iron.json +05fbe38ee5bdb3d912a5980254886ad64399e062 data/forge/tags/items/dusts/netherite_scrap.json 9380fe45b06787ba776af4a7d542a047c1441031 data/forge/tags/items/dusts/saltpeter.json 5c709b6444acb94ca784c33618547ba535e15db2 data/forge/tags/items/dusts/sulfur.json +ca758f49ba878f8e498fe156d4916c1e332d552c data/forge/tags/items/ingots/hellforged.json 74700d556ca80c7a1db5fd4efb09c3ddb26cad66 data/forge/tags/items/ores/copper.json 74700d556ca80c7a1db5fd4efb09c3ddb26cad66 data/forge/tags/items/ores/lead.json 74700d556ca80c7a1db5fd4efb09c3ddb26cad66 data/forge/tags/items/ores/osmium.json 74700d556ca80c7a1db5fd4efb09c3ddb26cad66 data/forge/tags/items/ores/silver.json 74700d556ca80c7a1db5fd4efb09c3ddb26cad66 data/forge/tags/items/ores/tin.json 2ba6f93ee0567360afa3ae9999027b839ed06532 data/minecraft/tags/blocks/walls.json +b7b3ffae086763317f5ed70a4f857e9634932972 data/minecraft/tags/fluids/life.json diff --git a/src/generated/resources/assets/bloodmagic/blockstates/dungeon_metal.json b/src/generated/resources/assets/bloodmagic/blockstates/dungeon_metal.json new file mode 100644 index 00000000..bef6c3bf --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/blockstates/dungeon_metal.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "bloodmagic:block/dungeon_metal" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/blockstates/nether_soil.json b/src/generated/resources/assets/bloodmagic/blockstates/nether_soil.json new file mode 100644 index 00000000..de25c31e --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/blockstates/nether_soil.json @@ -0,0 +1,28 @@ +{ + "variants": { + "moisture=0": { + "model": "bloodmagic:block/nether_soil" + }, + "moisture=1": { + "model": "bloodmagic:block/nether_soil" + }, + "moisture=2": { + "model": "bloodmagic:block/nether_soil" + }, + "moisture=3": { + "model": "bloodmagic:block/nether_soil" + }, + "moisture=4": { + "model": "bloodmagic:block/nether_soil" + }, + "moisture=5": { + "model": "bloodmagic:block/nether_soil" + }, + "moisture=6": { + "model": "bloodmagic:block/nether_soil" + }, + "moisture=7": { + "model": "bloodmagic:block/nether_soil" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/lang/en_us.json b/src/generated/resources/assets/bloodmagic/lang/en_us.json index 4599f71d..f6180327 100644 --- a/src/generated/resources/assets/bloodmagic/lang/en_us.json +++ b/src/generated/resources/assets/bloodmagic/lang/en_us.json @@ -96,10 +96,12 @@ "item.bloodmagic.etherealslate": "Ethereal Slate", "item.bloodmagic.explosivepowder": "Explosive Powder", "item.bloodmagic.firescribetool": "Inscription Tool: Fire", + "item.bloodmagic.fragment_netherite_scrap": "Ancient Debris Fragment", "item.bloodmagic.furnacecell_primitive": "Primitive Fuel Cell", "item.bloodmagic.goldfragment": "Gold Ore Fragment", "item.bloodmagic.goldgravel": "Gold Gravel", "item.bloodmagic.goldsand": "Gold Sand", + "item.bloodmagic.gravel_netherite_scrap": "Ancient Debris Gravel", "item.bloodmagic.growthsigil": "Sigil of the Green Grove", "item.bloodmagic.icesigil": "Sigil of the Frozen Lake", "item.bloodmagic.infusedslate": "Imbued Slate", @@ -131,6 +133,7 @@ "item.bloodmagic.ritualtinkerer": "Ritual Tinkerer", "item.bloodmagic.sacrificialdagger": "Sacrificial Knife", "item.bloodmagic.saltpeter": "Saltpeter", + "item.bloodmagic.sand_netherite": "Netherite Scrap Sand", "item.bloodmagic.sanguinereverter": "Sanguine Reverter", "item.bloodmagic.seersigil": "Seer's Sigil", "item.bloodmagic.sigilofmagnetism": "Sigil of Magnetism", diff --git a/src/generated/resources/assets/bloodmagic/models/block/dungeon_metal.json b/src/generated/resources/assets/bloodmagic/models/block/dungeon_metal.json new file mode 100644 index 00000000..bad4f014 --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/block/dungeon_metal.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "bloodmagic:block/dungeon/dungeon_metal" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/block/nether_soil.json b/src/generated/resources/assets/bloodmagic/models/block/nether_soil.json new file mode 100644 index 00000000..9014e226 --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/block/nether_soil.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_farmland", + "textures": { + "top": "bloodmagic:block/nether_soil", + "dirt": "minecraft:block/netherrack" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/item/corrupted_dust.json b/src/generated/resources/assets/bloodmagic/models/item/corrupted_dust.json new file mode 100644 index 00000000..d61f8a4a --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/item/corrupted_dust.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "bloodmagic:item/corrupted_dust" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/item/corrupted_tinydust.json b/src/generated/resources/assets/bloodmagic/models/item/corrupted_tinydust.json new file mode 100644 index 00000000..a2f5ac97 --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/item/corrupted_tinydust.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "bloodmagic:item/corrupted_tinydust" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/item/dungeon_metal.json b/src/generated/resources/assets/bloodmagic/models/item/dungeon_metal.json new file mode 100644 index 00000000..b4412870 --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/item/dungeon_metal.json @@ -0,0 +1,3 @@ +{ + "parent": "bloodmagic:block/dungeon_metal" +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/item/fragment_netherite_scrap.json b/src/generated/resources/assets/bloodmagic/models/item/fragment_netherite_scrap.json new file mode 100644 index 00000000..7bcadf03 --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/item/fragment_netherite_scrap.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "bloodmagic:item/fragment_netherite_scrap" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/item/gravel_netherite_scrap.json b/src/generated/resources/assets/bloodmagic/models/item/gravel_netherite_scrap.json new file mode 100644 index 00000000..76dc663f --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/item/gravel_netherite_scrap.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "bloodmagic:item/gravel_netherite_scrap" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/item/ingot_hellforged.json b/src/generated/resources/assets/bloodmagic/models/item/ingot_hellforged.json new file mode 100644 index 00000000..0d33867f --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/item/ingot_hellforged.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "bloodmagic:item/ingot_hellforged" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/item/nether_soil.json b/src/generated/resources/assets/bloodmagic/models/item/nether_soil.json new file mode 100644 index 00000000..e26c6db7 --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/item/nether_soil.json @@ -0,0 +1,3 @@ +{ + "parent": "bloodmagic:block/nether_soil" +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/item/sand_hellforged.json b/src/generated/resources/assets/bloodmagic/models/item/sand_hellforged.json new file mode 100644 index 00000000..a04b232a --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/item/sand_hellforged.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "bloodmagic:item/sand_hellforged" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/item/sand_netherite.json b/src/generated/resources/assets/bloodmagic/models/item/sand_netherite.json new file mode 100644 index 00000000..04dd2ae3 --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/item/sand_netherite.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "bloodmagic:item/sand_netherite" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/advancements/recipes/bloodmagictab/corrupted_dust.json b/src/generated/resources/data/bloodmagic/advancements/recipes/bloodmagictab/corrupted_dust.json new file mode 100644 index 00000000..885b1b2f --- /dev/null +++ b/src/generated/resources/data/bloodmagic/advancements/recipes/bloodmagictab/corrupted_dust.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "bloodmagic:corrupted_dust" + ] + }, + "criteria": { + "has_tiny": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "bloodmagic:corrupted_tinydust" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "bloodmagic:corrupted_dust" + } + } + }, + "requirements": [ + [ + "has_tiny", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/advancements/recipes/bloodmagictab/hellforged_block.json b/src/generated/resources/data/bloodmagic/advancements/recipes/bloodmagictab/hellforged_block.json new file mode 100644 index 00000000..cf79dc99 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/advancements/recipes/bloodmagictab/hellforged_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "bloodmagic:hellforged_block" + ] + }, + "criteria": { + "has_hellforged": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "bloodmagic:ingot_hellforged" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "bloodmagic:hellforged_block" + } + } + }, + "requirements": [ + [ + "has_hellforged", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/advancements/recipes/bloodmagictab/smelting/ingot_hellforged.json b/src/generated/resources/data/bloodmagic/advancements/recipes/bloodmagictab/smelting/ingot_hellforged.json new file mode 100644 index 00000000..bd8021ec --- /dev/null +++ b/src/generated/resources/data/bloodmagic/advancements/recipes/bloodmagictab/smelting/ingot_hellforged.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "bloodmagic:smelting/ingot_hellforged" + ] + }, + "criteria": { + "has_hellforged_dust": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "bloodmagic:sand_hellforged" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "bloodmagic:smelting/ingot_hellforged" + } + } + }, + "requirements": [ + [ + "has_hellforged_dust", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/advancements/recipes/misc/smelting/ingot_netherite_scrap.json b/src/generated/resources/data/bloodmagic/advancements/recipes/misc/smelting/ingot_netherite_scrap.json new file mode 100644 index 00000000..5265d945 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/advancements/recipes/misc/smelting/ingot_netherite_scrap.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "bloodmagic:smelting/ingot_netherite_scrap" + ] + }, + "criteria": { + "has_netherite_dust": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "bloodmagic:sand_netherite" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "bloodmagic:smelting/ingot_netherite_scrap" + } + } + }, + "requirements": [ + [ + "has_netherite_dust", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/loot_tables/blocks/dungeon_metal.json b/src/generated/resources/data/bloodmagic/loot_tables/blocks/dungeon_metal.json new file mode 100644 index 00000000..6b57213b --- /dev/null +++ b/src/generated/resources/data/bloodmagic/loot_tables/blocks/dungeon_metal.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "bloodmagic:dungeon_metal" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/loot_tables/blocks/nether_soil.json b/src/generated/resources/data/bloodmagic/loot_tables/blocks/nether_soil.json new file mode 100644 index 00000000..5cf5a8ce --- /dev/null +++ b/src/generated/resources/data/bloodmagic/loot_tables/blocks/nether_soil.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:netherrack" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_gravel_netherite_scrap.json b/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_gravel_netherite_scrap.json new file mode 100644 index 00000000..498f1d0f --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_gravel_netherite_scrap.json @@ -0,0 +1,13 @@ +{ + "type": "bloodmagic:arc", + "input": { + "tag": "bloodmagic:gravels/netherite_scrap" + }, + "tool": { + "tag": "bloodmagic:arc/cuttingfluid" + }, + "output": { + "item": "bloodmagic:sand_netherite" + }, + "consumeingredient": false +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_ingot_netherite_scrap.json b/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_ingot_netherite_scrap.json new file mode 100644 index 00000000..fc4af18a --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_ingot_netherite_scrap.json @@ -0,0 +1,13 @@ +{ + "type": "bloodmagic:arc", + "input": { + "item": "minecraft:netherite_scrap" + }, + "tool": { + "tag": "bloodmagic:arc/explosive" + }, + "output": { + "item": "bloodmagic:sand_netherite" + }, + "consumeingredient": false +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_ore_netherite_scrap.json b/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_ore_netherite_scrap.json new file mode 100644 index 00000000..cfc195d4 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_ore_netherite_scrap.json @@ -0,0 +1,14 @@ +{ + "type": "bloodmagic:arc", + "input": { + "tag": "forge:ores/netherite_scrap" + }, + "tool": { + "tag": "bloodmagic:arc/cuttingfluid" + }, + "output": { + "item": "bloodmagic:sand_netherite", + "count": 2 + }, + "consumeingredient": false +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/arc/fragmentsnetherite_scrap.json b/src/generated/resources/data/bloodmagic/recipes/arc/fragmentsnetherite_scrap.json new file mode 100644 index 00000000..2f2e64a0 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/arc/fragmentsnetherite_scrap.json @@ -0,0 +1,14 @@ +{ + "type": "bloodmagic:arc", + "input": { + "tag": "forge:ores/netherite_scrap" + }, + "tool": { + "tag": "bloodmagic:arc/explosive" + }, + "output": { + "item": "bloodmagic:fragment_netherite_scrap", + "count": 3 + }, + "consumeingredient": false +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/arc/gravelsgold.json b/src/generated/resources/data/bloodmagic/recipes/arc/gravelsgold.json index 1fc1e247..0920bb12 100644 --- a/src/generated/resources/data/bloodmagic/recipes/arc/gravelsgold.json +++ b/src/generated/resources/data/bloodmagic/recipes/arc/gravelsgold.json @@ -6,6 +6,20 @@ "tool": { "tag": "bloodmagic:arc/resonator" }, + "addedoutput": [ + { + "chance": 0.05, + "type": { + "item": "bloodmagic:corrupted_tinydust" + } + }, + { + "chance": 0.01, + "type": { + "item": "bloodmagic:corrupted_tinydust" + } + } + ], "output": { "item": "bloodmagic:goldgravel" }, diff --git a/src/generated/resources/data/bloodmagic/recipes/arc/gravelsiron.json b/src/generated/resources/data/bloodmagic/recipes/arc/gravelsiron.json index 09129f05..980da2fa 100644 --- a/src/generated/resources/data/bloodmagic/recipes/arc/gravelsiron.json +++ b/src/generated/resources/data/bloodmagic/recipes/arc/gravelsiron.json @@ -6,6 +6,20 @@ "tool": { "tag": "bloodmagic:arc/resonator" }, + "addedoutput": [ + { + "chance": 0.05, + "type": { + "item": "bloodmagic:corrupted_tinydust" + } + }, + { + "chance": 0.01, + "type": { + "item": "bloodmagic:corrupted_tinydust" + } + } + ], "output": { "item": "bloodmagic:irongravel" }, diff --git a/src/generated/resources/data/bloodmagic/recipes/arc/gravelsnetherite_scrap.json b/src/generated/resources/data/bloodmagic/recipes/arc/gravelsnetherite_scrap.json new file mode 100644 index 00000000..86971ad1 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/arc/gravelsnetherite_scrap.json @@ -0,0 +1,27 @@ +{ + "type": "bloodmagic:arc", + "input": { + "tag": "bloodmagic:fragments/netherite_scrap" + }, + "tool": { + "tag": "bloodmagic:arc/resonator" + }, + "addedoutput": [ + { + "chance": 0.05, + "type": { + "item": "bloodmagic:corrupted_tinydust" + } + }, + { + "chance": 0.01, + "type": { + "item": "bloodmagic:corrupted_tinydust" + } + } + ], + "output": { + "item": "bloodmagic:gravel_netherite_scrap" + }, + "consumeingredient": false +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/corrupted_dust.json b/src/generated/resources/data/bloodmagic/recipes/corrupted_dust.json new file mode 100644 index 00000000..cdcfdbab --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/corrupted_dust.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "sss", + "sss", + "sss" + ], + "key": { + "s": { + "tag": "bloodmagic:tiny_dusts/corrupted" + } + }, + "result": { + "item": "bloodmagic:corrupted_dust" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/hellforged_block.json b/src/generated/resources/data/bloodmagic/recipes/hellforged_block.json new file mode 100644 index 00000000..3c7c8bbb --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/hellforged_block.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "sss", + "sss", + "sss" + ], + "key": { + "s": { + "tag": "forge:ingots/hellforged" + } + }, + "result": { + "item": "bloodmagic:dungeon_metal" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/smelting/ingot_hellforged.json b/src/generated/resources/data/bloodmagic/recipes/smelting/ingot_hellforged.json new file mode 100644 index 00000000..6a06b2a3 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/smelting/ingot_hellforged.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "tag": "forge:dusts/hellforged" + }, + "result": "bloodmagic:ingot_hellforged", + "experience": 0.0, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/smelting/ingot_netherite_scrap.json b/src/generated/resources/data/bloodmagic/recipes/smelting/ingot_netherite_scrap.json new file mode 100644 index 00000000..2edc11a3 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/smelting/ingot_netherite_scrap.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "tag": "forge:dusts/netherite_scrap" + }, + "result": "minecraft:netherite_scrap", + "experience": 0.0, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/tags/items/dusts/corrupted.json b/src/generated/resources/data/bloodmagic/tags/items/dusts/corrupted.json new file mode 100644 index 00000000..a84e11a0 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/tags/items/dusts/corrupted.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "bloodmagic:corrupted_dust" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/tags/items/fragments/netherite_scrap.json b/src/generated/resources/data/bloodmagic/tags/items/fragments/netherite_scrap.json new file mode 100644 index 00000000..1f0d5a35 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/tags/items/fragments/netherite_scrap.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "bloodmagic:fragment_netherite_scrap" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/tags/items/gravels/netherite_scrap.json b/src/generated/resources/data/bloodmagic/tags/items/gravels/netherite_scrap.json new file mode 100644 index 00000000..a957a0e3 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/tags/items/gravels/netherite_scrap.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "bloodmagic:gravel_netherite_scrap" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/tags/items/tiny_dusts/corrupted.json b/src/generated/resources/data/bloodmagic/tags/items/tiny_dusts/corrupted.json new file mode 100644 index 00000000..e792ed30 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/tags/items/tiny_dusts/corrupted.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "bloodmagic:corrupted_tinydust" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/dusts/hellforged.json b/src/generated/resources/data/forge/tags/items/dusts/hellforged.json new file mode 100644 index 00000000..129c8f3d --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/dusts/hellforged.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "bloodmagic:sand_hellforged" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/dusts/netherite_scrap.json b/src/generated/resources/data/forge/tags/items/dusts/netherite_scrap.json new file mode 100644 index 00000000..3d4d11de --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/dusts/netherite_scrap.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "bloodmagic:sand_netherite" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/ingots/hellforged.json b/src/generated/resources/data/forge/tags/items/ingots/hellforged.json new file mode 100644 index 00000000..d71afc0c --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/ingots/hellforged.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "bloodmagic:ingot_hellforged" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/fluids/life.json b/src/generated/resources/data/minecraft/tags/fluids/life.json new file mode 100644 index 00000000..59895a90 --- /dev/null +++ b/src/generated/resources/data/minecraft/tags/fluids/life.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "bloodmagic:life_essence_fluid", + "bloodmagic:life_essence_fluid_flowing" + ] +} \ No newline at end of file diff --git a/src/main/java/wayoftime/bloodmagic/BloodMagic.java b/src/main/java/wayoftime/bloodmagic/BloodMagic.java index 9e40cd7d..fc5e0dad 100644 --- a/src/main/java/wayoftime/bloodmagic/BloodMagic.java +++ b/src/main/java/wayoftime/bloodmagic/BloodMagic.java @@ -35,8 +35,6 @@ import net.minecraftforge.fml.event.lifecycle.InterModEnqueueEvent; import net.minecraftforge.fml.event.lifecycle.InterModProcessEvent; import net.minecraftforge.fml.event.server.FMLServerStartingEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; -import wayoftime.bloodmagic.impl.BloodMagicAPI; -import wayoftime.bloodmagic.impl.BloodMagicCorePlugin; import wayoftime.bloodmagic.client.ClientEvents; import wayoftime.bloodmagic.client.hud.Elements; import wayoftime.bloodmagic.client.model.MimicColor; @@ -45,6 +43,7 @@ import wayoftime.bloodmagic.common.block.BloodMagicBlocks; import wayoftime.bloodmagic.common.data.GeneratorBaseRecipes; import wayoftime.bloodmagic.common.data.GeneratorBlockStates; import wayoftime.bloodmagic.common.data.GeneratorBlockTags; +import wayoftime.bloodmagic.common.data.GeneratorFluidTags; import wayoftime.bloodmagic.common.data.GeneratorItemModels; import wayoftime.bloodmagic.common.data.GeneratorItemTags; import wayoftime.bloodmagic.common.data.GeneratorLanguage; @@ -55,6 +54,8 @@ import wayoftime.bloodmagic.common.registries.BloodMagicEntityTypes; import wayoftime.bloodmagic.common.registries.BloodMagicRecipeSerializers; import wayoftime.bloodmagic.core.recipe.IngredientBloodOrb; import wayoftime.bloodmagic.core.registry.OrbRegistry; +import wayoftime.bloodmagic.impl.BloodMagicAPI; +import wayoftime.bloodmagic.impl.BloodMagicCorePlugin; import wayoftime.bloodmagic.network.BloodMagicPacketHandler; import wayoftime.bloodmagic.potion.BloodMagicPotions; import wayoftime.bloodmagic.registry.ModTranquilityHandlers; @@ -205,6 +206,7 @@ public class BloodMagic GeneratorBlockTags bmBlockTags = new GeneratorBlockTags(gen, event.getExistingFileHelper()); gen.addProvider(bmBlockTags); gen.addProvider(new GeneratorItemTags(gen, bmBlockTags, event.getExistingFileHelper())); + gen.addProvider(new GeneratorFluidTags(gen, event.getExistingFileHelper())); } } diff --git a/src/main/java/wayoftime/bloodmagic/common/block/BlockNetherrackSoil.java b/src/main/java/wayoftime/bloodmagic/common/block/BlockNetherrackSoil.java new file mode 100644 index 00000000..57efc20b --- /dev/null +++ b/src/main/java/wayoftime/bloodmagic/common/block/BlockNetherrackSoil.java @@ -0,0 +1,156 @@ +package wayoftime.bloodmagic.common.block; + +import java.util.Random; + +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.FenceGateBlock; +import net.minecraft.block.MovingPistonBlock; +import net.minecraft.item.BlockItemUseContext; +import net.minecraft.pathfinding.PathType; +import net.minecraft.state.IntegerProperty; +import net.minecraft.state.StateContainer; +import net.minecraft.state.properties.BlockStateProperties; +import net.minecraft.util.Direction; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.shapes.ISelectionContext; +import net.minecraft.util.math.shapes.VoxelShape; +import net.minecraft.world.IBlockReader; +import net.minecraft.world.IWorld; +import net.minecraft.world.IWorldReader; +import net.minecraft.world.World; +import net.minecraft.world.server.ServerWorld; +import wayoftime.bloodmagic.common.tags.BloodMagicTags; + +public class BlockNetherrackSoil extends Block +{ + public static final IntegerProperty MOISTURE = BlockStateProperties.MOISTURE_0_7; + protected static final VoxelShape SHAPE = Block.makeCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 15.0D, 16.0D); + + public BlockNetherrackSoil(AbstractBlock.Properties builder) + { + super(builder); + this.setDefaultState(this.stateContainer.getBaseState().with(MOISTURE, Integer.valueOf(0))); + } + + /** + * Update the provided state given the provided neighbor facing and neighbor + * state, returning a new state. For example, fences make their connections to + * the passed in state if possible, and wet concrete powder immediately returns + * its solidified counterpart. Note that this method should ideally consider + * only the specific face passed in. + */ + public BlockState updatePostPlacement(BlockState stateIn, Direction facing, BlockState facingState, IWorld worldIn, BlockPos currentPos, BlockPos facingPos) + { + if (facing == Direction.UP && !stateIn.isValidPosition(worldIn, currentPos)) + { + worldIn.getPendingBlockTicks().scheduleTick(currentPos, this, 1); + } + + return super.updatePostPlacement(stateIn, facing, facingState, worldIn, currentPos, facingPos); + } + + public boolean isValidPosition(BlockState state, IWorldReader worldIn, BlockPos pos) + { + BlockState blockstate = worldIn.getBlockState(pos.up()); + return !blockstate.getMaterial().isSolid() || blockstate.getBlock() instanceof FenceGateBlock || blockstate.getBlock() instanceof MovingPistonBlock; + } + + public BlockState getStateForPlacement(BlockItemUseContext context) + { + return !this.getDefaultState().isValidPosition(context.getWorld(), context.getPos()) + ? Blocks.NETHERRACK.getDefaultState() + : super.getStateForPlacement(context); + } + + public boolean isTransparent(BlockState state) + { + return true; + } + + public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) + { + return SHAPE; + } + + public void tick(BlockState state, ServerWorld worldIn, BlockPos pos, Random rand) + { + if (!state.isValidPosition(worldIn, pos)) + { + turnToDirt(state, worldIn, pos); + } + + } + + /** + * Performs a random tick on a block. + */ + public void randomTick(BlockState state, ServerWorld worldIn, BlockPos pos, Random random) + { + int i = state.get(MOISTURE); + if (!hasLifeEssence(worldIn, pos) && !worldIn.isRainingAt(pos.up())) + { + if (i > 0) + { + worldIn.setBlockState(pos, state.with(MOISTURE, Integer.valueOf(i - 1)), 2); + } else if (!hasCrops(worldIn, pos)) + { + turnToDirt(state, worldIn, pos); + } + } else if (i < 7) + { + worldIn.setBlockState(pos, state.with(MOISTURE, Integer.valueOf(7)), 2); + } + + } + +// /** +// * Block's chance to react to a living entity falling on it. +// */ +// public void onFallenUpon(World worldIn, BlockPos pos, Entity entityIn, float fallDistance) +// { +// if (!worldIn.isRemote && net.minecraftforge.common.ForgeHooks.onFarmlandTrample(worldIn, pos, Blocks.NETHERRACK.getDefaultState(), fallDistance, entityIn)) +// { // Forge: Move logic to Entity#canTrample +// turnToDirt(worldIn.getBlockState(pos), worldIn, pos); +// } +// +// super.onFallenUpon(worldIn, pos, entityIn, fallDistance); +// } + + public static void turnToDirt(BlockState state, World worldIn, BlockPos pos) + { + worldIn.setBlockState(pos, nudgeEntitiesWithNewState(state, Blocks.NETHERRACK.getDefaultState(), worldIn, pos)); + } + + private boolean hasCrops(IBlockReader worldIn, BlockPos pos) + { + BlockState plant = worldIn.getBlockState(pos.up()); + BlockState state = worldIn.getBlockState(pos); + return plant.getBlock() instanceof net.minecraftforge.common.IPlantable && state.canSustainPlant(worldIn, pos, Direction.UP, (net.minecraftforge.common.IPlantable) plant.getBlock()); + } + + private static boolean hasLifeEssence(IWorldReader worldIn, BlockPos pos) + { + for (BlockPos blockpos : BlockPos.getAllInBoxMutable(pos.add(-4, 0, -4), pos.add(4, 1, 4))) + { + if (worldIn.getFluidState(blockpos).isTagged(BloodMagicTags.LIFE_ESSENCE)) + { + return true; + } + } + + return false; + } + + protected void fillStateContainer(StateContainer.Builder builder) + { + builder.add(MOISTURE); + } + + public boolean allowsMovement(BlockState state, IBlockReader worldIn, BlockPos pos, PathType type) + { + return false; + } +} diff --git a/src/main/java/wayoftime/bloodmagic/common/block/BloodMagicBlocks.java b/src/main/java/wayoftime/bloodmagic/common/block/BloodMagicBlocks.java index 86691b03..0c4591a6 100644 --- a/src/main/java/wayoftime/bloodmagic/common/block/BloodMagicBlocks.java +++ b/src/main/java/wayoftime/bloodmagic/common/block/BloodMagicBlocks.java @@ -4,6 +4,7 @@ import net.minecraft.block.AbstractBlock; import net.minecraft.block.AbstractBlock.Properties; import net.minecraft.block.Block; import net.minecraft.block.BlockState; +import net.minecraft.block.FarmlandBlock; import net.minecraft.block.FenceGateBlock; import net.minecraft.block.FlowingFluidBlock; import net.minecraft.block.RotatedPillarBlock; @@ -148,6 +149,10 @@ public class BloodMagicBlocks public static final RegistryObject DUNGEON_BRICK_GATE = BLOCKS.register("dungeon_brick_gate", () -> new FenceGateBlock(Properties.create(Material.ROCK).hardnessAndResistance(2.0F, 5.0F).sound(SoundType.STONE).harvestTool(ToolType.PICKAXE).harvestLevel(2).setRequiresTool())); public static final RegistryObject DUNGEON_POLISHED_GATE = BLOCKS.register("dungeon_polished_gate", () -> new FenceGateBlock(Properties.create(Material.ROCK).hardnessAndResistance(2.0F, 5.0F).sound(SoundType.STONE).harvestTool(ToolType.PICKAXE).harvestLevel(2).setRequiresTool())); + public static final RegistryObject HELLFORGED_BLOCK = DUNGEONBLOCKS.register("dungeon_metal", () -> new Block(Properties.create(Material.IRON).hardnessAndResistance(5.0F, 6.0F).sound(SoundType.METAL).harvestTool(ToolType.PICKAXE).harvestLevel(2).setRequiresTool())); + + public static final RegistryObject NETHER_SOIL = BLOCKS.register("nether_soil", () -> new FarmlandBlock(Properties.create(Material.EARTH).hardnessAndResistance(0.4F, 0.4F).sound(SoundType.NETHERRACK).harvestTool(ToolType.PICKAXE))); + private static boolean isntSolid(BlockState state, IBlockReader reader, BlockPos pos) { return false; diff --git a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorBaseRecipes.java b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorBaseRecipes.java index 309c2572..e86c55ad 100644 --- a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorBaseRecipes.java +++ b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorBaseRecipes.java @@ -37,7 +37,8 @@ public class GeneratorBaseRecipes extends BaseRecipeProvider private void addVanillaRecipes(Consumer consumer) { // ConditionalRecipe.builder().addRecipe(ShapedRecipeBuilder.shapedRecipe(BloodMagicItems.SACRIFICIAL_DAGGER.get()).key('g', Tags.Items.GLASS).key('G', Tags.Items.INGOTS_GOLD).key('i', Tags.Items.INGOTS_IRON).patternLine("ggg").patternLine(" Gg").patternLine("i g").addCriterion("has_glass", hasItem(Items.GLASS))::build); - + ShapedRecipeBuilder.shapedRecipe(BloodMagicItems.CORRUPTED_DUST.get()).key('s', BloodMagicTags.TINYDUST_CORRUPTED).patternLine("sss").patternLine("sss").patternLine("sss").addCriterion("has_tiny", hasItem(BloodMagicItems.CORRUPTED_DUST_TINY.get())).build(consumer, BloodMagic.rl("corrupted_dust")); + ShapedRecipeBuilder.shapedRecipe(BloodMagicItems.HELLFORGED_BLOCK.get()).key('s', BloodMagicTags.INGOT_HELLFORGED).patternLine("sss").patternLine("sss").patternLine("sss").addCriterion("has_hellforged", hasItem(BloodMagicItems.HELLFORGED_INGOT.get())).build(consumer, BloodMagic.rl("hellforged_block")); ShapedRecipeBuilder.shapedRecipe(BloodMagicItems.SACRIFICIAL_DAGGER.get()).key('g', Tags.Items.GLASS).key('G', Tags.Items.INGOTS_GOLD).key('i', Tags.Items.INGOTS_IRON).patternLine("ggg").patternLine(" Gg").patternLine("i g").addCriterion("has_glass", hasItem(Items.GLASS)).build(consumer, BloodMagic.rl("sacrificial_dagger")); ShapedRecipeBuilder.shapedRecipe(BloodMagicBlocks.BLOOD_ALTAR.get()).key('a', Tags.Items.STONE).key('b', Items.FURNACE).key('c', Tags.Items.INGOTS_GOLD).key('d', BloodMagicItems.MONSTER_SOUL_RAW.get()).patternLine("a a").patternLine("aba").patternLine("cdc").addCriterion("has_will", hasItem(BloodMagicItems.MONSTER_SOUL_RAW.get())).build(consumer, BloodMagic.rl("blood_altar")); ShapedRecipeBuilder.shapedRecipe(BloodMagicBlocks.SOUL_FORGE.get()).key('s', Tags.Items.STONE).key('g', Tags.Items.INGOTS_GOLD).key('i', Tags.Items.INGOTS_IRON).key('o', Tags.Items.STORAGE_BLOCKS_IRON).patternLine("i i").patternLine("sgs").patternLine("sos").addCriterion("has_gold", hasItem(Items.GOLD_INGOT)).build(consumer, BloodMagic.rl("soul_forge")); @@ -57,6 +58,8 @@ public class GeneratorBaseRecipes extends BaseRecipeProvider String basePath = "smelting/"; CookingRecipeBuilder.smeltingRecipe(Ingredient.fromTag(BloodMagicTags.DUST_IRON), Items.IRON_INGOT, 0, 200).addCriterion("has_iron_sand", hasItem(BloodMagicItems.IRON_SAND.get())).build(consumer, BloodMagic.rl(basePath + "ingot_iron")); CookingRecipeBuilder.smeltingRecipe(Ingredient.fromTag(BloodMagicTags.DUST_GOLD), Items.GOLD_INGOT, 0, 200).addCriterion("has_gold_sand", hasItem(BloodMagicItems.GOLD_SAND.get())).build(consumer, BloodMagic.rl(basePath + "ingot_gold")); + CookingRecipeBuilder.smeltingRecipe(Ingredient.fromTag(BloodMagicTags.DUST_NETHERITE_SCRAP), Items.NETHERITE_SCRAP, 0, 200).addCriterion("has_netherite_dust", hasItem(BloodMagicItems.NETHERITE_SCRAP_SAND.get())).build(consumer, BloodMagic.rl(basePath + "ingot_netherite_scrap")); + CookingRecipeBuilder.smeltingRecipe(Ingredient.fromTag(BloodMagicTags.DUST_HELLFORGED), BloodMagicItems.HELLFORGED_INGOT.get(), 0, 200).addCriterion("has_hellforged_dust", hasItem(BloodMagicItems.HELLFORGED_SAND.get())).build(consumer, BloodMagic.rl(basePath + "ingot_hellforged")); } private void addBloodOrbRecipes(Consumer consumer) @@ -90,6 +93,8 @@ public class GeneratorBaseRecipes extends BaseRecipeProvider ShapelessRecipeBuilder.shapelessRecipe(BloodMagicBlocks.WORN_STONE_PATH.get(), 4).addIngredient(BloodMagicBlocks.STONE_PATH.get()).addIngredient(BloodMagicBlocks.STONE_PATH.get()).addIngredient(BloodMagicBlocks.STONE_PATH.get()).addIngredient(BloodMagicBlocks.STONE_PATH.get()).addIngredient(IngredientBloodOrb.fromOrb(BloodMagicItems.ORB_MASTER.get())).addCriterion("has_master_orb", hasItem(BloodMagicItems.MASTER_BLOOD_ORB.get())).build(consumer, BloodMagic.rl("path/path_wornstone")); ShapedRecipeBuilder.shapedRecipe(BloodMagicItems.RITUAL_READER.get()).key('s', BloodMagicItems.DEMONIC_SLATE.get()).key('g', Tags.Items.GLASS).key('i', Tags.Items.INGOTS_GOLD).key('o', IngredientBloodOrb.fromOrb(BloodMagicItems.ORB_MASTER.get())).patternLine("gog").patternLine("isi").patternLine(" s ").addCriterion("has_master_orb", hasItem(BloodMagicItems.MASTER_BLOOD_ORB.get())).build(consumer, BloodMagic.rl("ritual_reader")); + +// ShapedRecipeBuilder.shapedRecipe(BloodMagicBlocks.MIMIC.get()).key('b', itemIn) // ShapedRecipeBuilder.shapedRecipe(BloodMagicBlocks.SPEED_RUNE.get()).key('s', Items.GLASS).key('o', Ingredient.fromItems(Items.DIAMOND)).patternLine("sss").patternLine("sos").patternLine("sss").addCriterion("has_diamond", hasItem(Items.DIAMOND)).build(consumer, new ResourceLocation(BloodMagic.MODID, "speed_rune_from_standard")); // ShapedRecipeBuilder.shapedRecipe(BloodMagicBlocks.SPEED_RUNE.get()).key('s', Items.GLASS).key('o', IngredientBloodOrb.fromOrb(BloodMagicItems.ORB_WEAK.get())).patternLine("sss").patternLine("sos").patternLine("sss").addCriterion("has_diamond", hasItem(Items.DIAMOND)).build(consumer, new ResourceLocation(BloodMagic.MODID, "speed_rune_from_orb")); } diff --git a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorBlockStates.java b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorBlockStates.java index 2392c41e..a3b05ad7 100644 --- a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorBlockStates.java +++ b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorBlockStates.java @@ -57,6 +57,7 @@ public class GeneratorBlockStates extends BlockStateProvider buildCubeAll(BloodMagicBlocks.EARTH_RITUAL_STONE.get()); buildCubeAll(BloodMagicBlocks.DUSK_RITUAL_STONE.get()); buildCubeAll(BloodMagicBlocks.DAWN_RITUAL_STONE.get()); + buildFarmland(BloodMagicBlocks.NETHER_SOIL.get(), BloodMagic.rl("block/nether_soil"), new ResourceLocation("block/netherrack")); buildFurnace(BloodMagicBlocks.ALCHEMICAL_REACTION_CHAMBER.get()); @@ -92,6 +93,18 @@ public class GeneratorBlockStates extends BlockStateProvider // ModelFile modelFile = models().crop("", null); // } + private void buildFarmland(Block block, ResourceLocation top, ResourceLocation side) + { + String basePath = block.getRegistryName().getPath(); + getVariantBuilder(block).forAllStates(state -> { + Builder builder = ConfiguredModel.builder(); + + ModelFile file = models().withExistingParent(basePath, "template_farmland").texture("top", top).texture("dirt", side); + + return builder.modelFile(file).build(); + }); + } + private void buildCubeAllWithTextureName(String texture) { models().cubeAll(texture, BloodMagic.rl("block/" + texture)).assertExistence(); diff --git a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorFluidTags.java b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorFluidTags.java new file mode 100644 index 00000000..df5c4ac1 --- /dev/null +++ b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorFluidTags.java @@ -0,0 +1,22 @@ +package wayoftime.bloodmagic.common.data; + +import net.minecraft.data.DataGenerator; +import net.minecraft.data.FluidTagsProvider; +import net.minecraftforge.common.data.ExistingFileHelper; +import wayoftime.bloodmagic.BloodMagic; +import wayoftime.bloodmagic.common.block.BloodMagicBlocks; +import wayoftime.bloodmagic.common.tags.BloodMagicTags; + +public class GeneratorFluidTags extends FluidTagsProvider +{ + public GeneratorFluidTags(DataGenerator generatorIn, ExistingFileHelper existingFileHelper) + { + super(generatorIn, BloodMagic.MODID, existingFileHelper); + } + + @Override + public void registerTags() + { + this.getOrCreateBuilder(BloodMagicTags.LIFE_ESSENCE).add(BloodMagicBlocks.LIFE_ESSENCE_FLUID.get(), BloodMagicBlocks.LIFE_ESSENCE_FLUID_FLOWING.get()); + } +} diff --git a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorItemModels.java b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorItemModels.java index da9cd856..44a4699d 100644 --- a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorItemModels.java +++ b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorItemModels.java @@ -49,6 +49,7 @@ public class GeneratorItemModels extends ItemModelProvider registerBlockModel(BloodMagicBlocks.DUSK_RITUAL_STONE.get()); registerBlockModel(BloodMagicBlocks.DAWN_RITUAL_STONE.get()); registerBlockModel(BloodMagicBlocks.ALCHEMICAL_REACTION_CHAMBER.get()); + registerBlockModel(BloodMagicBlocks.NETHER_SOIL.get()); registerCustomBlockPath(BloodMagicBlocks.RAW_CRYSTAL_BLOCK.get(), "crystal/defaultcrystal1"); registerCustomBlockPath(BloodMagicBlocks.CORROSIVE_CRYSTAL_BLOCK.get(), "crystal/corrosivecrystal1"); diff --git a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorItemTags.java b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorItemTags.java index 8a6377ad..6be7acfe 100644 --- a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorItemTags.java +++ b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorItemTags.java @@ -23,6 +23,7 @@ public class GeneratorItemTags extends ItemTagsProvider @Override public void registerTags() { + registerIngots(); registerOres(); registerDusts(); registerFragments(); @@ -58,6 +59,11 @@ public class GeneratorItemTags extends ItemTagsProvider } + private void registerIngots() + { + getOrCreateBuilder(BloodMagicTags.INGOT_HELLFORGED).add(BloodMagicItems.HELLFORGED_INGOT.get()); + } + private void registerOres() { getOrCreateBuilder(BloodMagicTags.ORE_COPPER); @@ -72,18 +78,24 @@ public class GeneratorItemTags extends ItemTagsProvider getOrCreateBuilder(BloodMagicTags.DUST_IRON).add(BloodMagicItems.IRON_SAND.get()); getOrCreateBuilder(BloodMagicTags.DUST_GOLD).add(BloodMagicItems.GOLD_SAND.get()); getOrCreateBuilder(BloodMagicTags.DUST_COAL).add(BloodMagicItems.COAL_SAND.get()); + getOrCreateBuilder(BloodMagicTags.DUST_NETHERITE_SCRAP).add(BloodMagicItems.NETHERITE_SCRAP_SAND.get()); + getOrCreateBuilder(BloodMagicTags.DUST_HELLFORGED).add(BloodMagicItems.HELLFORGED_SAND.get()); + getOrCreateBuilder(BloodMagicTags.DUST_CORRUPTED).add(BloodMagicItems.CORRUPTED_DUST.get()); + getOrCreateBuilder(BloodMagicTags.TINYDUST_CORRUPTED).add(BloodMagicItems.CORRUPTED_DUST_TINY.get()); } private void registerFragments() { getOrCreateBuilder(BloodMagicTags.FRAGMENT_IRON).add(BloodMagicItems.IRON_FRAGMENT.get()); getOrCreateBuilder(BloodMagicTags.FRAGMENT_GOLD).add(BloodMagicItems.GOLD_FRAGMENT.get()); + getOrCreateBuilder(BloodMagicTags.FRAGMENT_NETHERITE_SCRAP).add(BloodMagicItems.NETHERITE_SCRAP_FRAGMENT.get()); } private void registerGravels() { getOrCreateBuilder(BloodMagicTags.GRAVEL_IRON).add(BloodMagicItems.IRON_GRAVEL.get()); getOrCreateBuilder(BloodMagicTags.GRAVEL_GOLD).add(BloodMagicItems.GOLD_GRAVEL.get()); + getOrCreateBuilder(BloodMagicTags.GRAVEL_NETHERITE_SCRAP).add(BloodMagicItems.NETHERITE_SCRAP_GRAVEL.get()); } private void registerFurnaceCells() diff --git a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLanguage.java b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLanguage.java index 63a59469..ca902874 100644 --- a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLanguage.java +++ b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLanguage.java @@ -461,16 +461,19 @@ public class GeneratorLanguage extends LanguageProvider addItem(BloodMagicItems.COAL_SAND, "Coal Sand"); addItem(BloodMagicItems.IRON_SAND, "Iron Sand"); addItem(BloodMagicItems.GOLD_SAND, "Gold Sand"); + addItem(BloodMagicItems.NETHERITE_SCRAP_SAND, "Netherite Scrap Sand"); addItem(BloodMagicItems.SULFUR, "Sulfur"); addItem(BloodMagicItems.SALTPETER, "Saltpeter"); // Fragments addItem(BloodMagicItems.IRON_FRAGMENT, "Iron Ore Fragment"); addItem(BloodMagicItems.GOLD_FRAGMENT, "Gold Ore Fragment"); + addItem(BloodMagicItems.NETHERITE_SCRAP_FRAGMENT, "Ancient Debris Fragment"); // Gravels addItem(BloodMagicItems.IRON_GRAVEL, "Iron Gravel"); addItem(BloodMagicItems.GOLD_GRAVEL, "Gold Gravel"); + addItem(BloodMagicItems.NETHERITE_SCRAP_GRAVEL, "Ancient Debris Gravel"); // addItem(BloodMagicItems , ""); diff --git a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLootTable.java b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLootTable.java index 4fbf350a..1da798f6 100644 --- a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLootTable.java +++ b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLootTable.java @@ -12,6 +12,7 @@ import com.mojang.datafixers.util.Pair; import net.minecraft.advancements.criterion.StatePropertiesPredicate; import net.minecraft.block.Block; +import net.minecraft.block.Blocks; import net.minecraft.data.DataGenerator; import net.minecraft.data.LootTableProvider; import net.minecraft.data.loot.BlockLootTables; @@ -105,6 +106,7 @@ public class GeneratorLootTable extends LootTableProvider registerDropSelfLootTable(BloodMagicBlocks.DEMON_CRYSTALLIZER.get()); registerDropSelfLootTable(BloodMagicBlocks.INCENSE_ALTAR.get()); // registerNoDropLootTable(BloodMagicBlocks.RAW_CRYSTAL_BLOCK.get()); + registerDropping(BloodMagicBlocks.NETHER_SOIL.get(), Blocks.NETHERRACK); registerDropCrystalsLootTable(BloodMagicBlocks.RAW_CRYSTAL_BLOCK.get(), BloodMagicItems.RAW_CRYSTAL.get()); registerDropCrystalsLootTable(BloodMagicBlocks.CORROSIVE_CRYSTAL_BLOCK.get(), BloodMagicItems.CORROSIVE_CRYSTAL.get()); diff --git a/src/main/java/wayoftime/bloodmagic/common/item/BloodMagicItems.java b/src/main/java/wayoftime/bloodmagic/common/item/BloodMagicItems.java index ddec9755..164dcce1 100644 --- a/src/main/java/wayoftime/bloodmagic/common/item/BloodMagicItems.java +++ b/src/main/java/wayoftime/bloodmagic/common/item/BloodMagicItems.java @@ -94,6 +94,7 @@ public class BloodMagicItems public static final RegistryObject MIMIC_ITEM = ITEMS.register("mimic", () -> new ItemBlockMimic(BloodMagicBlocks.MIMIC.get(), new Item.Properties().group(BloodMagic.TAB))); public static final RegistryObject MIMIC_ETHEREAL_ITEM = ITEMS.register("ethereal_mimic", () -> new ItemBlockMimic(BloodMagicBlocks.ETHEREAL_MIMIC.get(), new Item.Properties().group(BloodMagic.TAB))); + public static final RegistryObject NETHE_SOIL_ITEM = ITEMS.register("nether_soil", () -> new BlockItem(BloodMagicBlocks.NETHER_SOIL.get(), new Item.Properties().group(BloodMagic.TAB))); // TODO: Need to rework the above instantiations for the ItemBlocks so that it's // done with the Blocks. @@ -205,17 +206,25 @@ public class BloodMagicItems // Fragments public static final RegistryObject IRON_FRAGMENT = BASICITEMS.register("ironfragment", () -> new ItemBase()); public static final RegistryObject GOLD_FRAGMENT = BASICITEMS.register("goldfragment", () -> new ItemBase()); + public static final RegistryObject NETHERITE_SCRAP_FRAGMENT = BASICITEMS.register("fragment_netherite_scrap", () -> new ItemBase()); // Gravels public static final RegistryObject IRON_GRAVEL = BASICITEMS.register("irongravel", () -> new ItemBase()); public static final RegistryObject GOLD_GRAVEL = BASICITEMS.register("goldgravel", () -> new ItemBase()); + public static final RegistryObject NETHERITE_SCRAP_GRAVEL = BASICITEMS.register("gravel_netherite_scrap", () -> new ItemBase()); // Sands public static final RegistryObject IRON_SAND = BASICITEMS.register("ironsand", () -> new ItemBase()); public static final RegistryObject GOLD_SAND = BASICITEMS.register("goldsand", () -> new ItemBase()); public static final RegistryObject COAL_SAND = BASICITEMS.register("coalsand", () -> new ItemBase()); + public static final RegistryObject NETHERITE_SCRAP_SAND = BASICITEMS.register("sand_netherite", () -> new ItemBase()); + public static final RegistryObject CORRUPTED_DUST = BASICITEMS.register("corrupted_dust", () -> new ItemBase()); + public static final RegistryObject CORRUPTED_DUST_TINY = BASICITEMS.register("corrupted_tinydust", () -> new ItemBase()); + public static final RegistryObject HELLFORGED_SAND = BASICITEMS.register("sand_hellforged", () -> new ItemBase()); // Dungeons + public static final RegistryObject HELLFORGED_INGOT = BASICITEMS.register("ingot_hellforged", () -> new ItemBase()); + public static final RegistryObject DUNGEON_BRICK_1_BLOCK = ITEMS.register("dungeon_brick1", () -> new BlockItem(BloodMagicBlocks.DUNGEON_BRICK_1.get(), new Item.Properties().group(BloodMagic.TAB))); public static final RegistryObject DUNGEON_BRICK_2_BLOCK = ITEMS.register("dungeon_brick2", () -> new BlockItem(BloodMagicBlocks.DUNGEON_BRICK_2.get(), new Item.Properties().group(BloodMagic.TAB))); public static final RegistryObject DUNGEON_BRICK_3_BLOCK = ITEMS.register("dungeon_brick3", () -> new BlockItem(BloodMagicBlocks.DUNGEON_BRICK_3.get(), new Item.Properties().group(BloodMagic.TAB))); @@ -239,6 +248,7 @@ public class BloodMagicItems public static final RegistryObject DUNGEON_ORE_BLOCK = ITEMS.register("dungeon_ore", () -> new BlockItem(BloodMagicBlocks.DUNGEON_ORE.get(), new Item.Properties().group(BloodMagic.TAB))); + public static final RegistryObject HELLFORGED_BLOCK = ITEMS.register("dungeon_metal", () -> new BlockItem(BloodMagicBlocks.HELLFORGED_BLOCK.get(), new Item.Properties().group(BloodMagic.TAB))); public static final RegistryObject DUNGEON_TESTER = BASICITEMS.register("dungeon_tester", ItemDungeonTester::new); } diff --git a/src/main/java/wayoftime/bloodmagic/common/recipe/ARCRecipeProvider.java b/src/main/java/wayoftime/bloodmagic/common/recipe/ARCRecipeProvider.java index 1b12f481..9cbe1048 100644 --- a/src/main/java/wayoftime/bloodmagic/common/recipe/ARCRecipeProvider.java +++ b/src/main/java/wayoftime/bloodmagic/common/recipe/ARCRecipeProvider.java @@ -59,14 +59,17 @@ public class ARCRecipeProvider implements ISubRecipeProvider // Ore to dust ARCRecipeBuilder.arc(Ingredient.fromTag(Tags.Items.ORES_IRON), Ingredient.fromTag(BloodMagicTags.ARC_TOOL_CUTTINGFLUID), null, new ItemStack(BloodMagicItems.IRON_SAND.get(), 2), null).build(consumer, BloodMagic.rl(basePath + "from_ore_iron")); ARCRecipeBuilder.arc(Ingredient.fromTag(Tags.Items.ORES_GOLD), Ingredient.fromTag(BloodMagicTags.ARC_TOOL_CUTTINGFLUID), null, new ItemStack(BloodMagicItems.GOLD_SAND.get(), 2), null).build(consumer, BloodMagic.rl(basePath + "from_ore_gold")); + ARCRecipeBuilder.arc(Ingredient.fromTag(Tags.Items.ORES_NETHERITE_SCRAP), Ingredient.fromTag(BloodMagicTags.ARC_TOOL_CUTTINGFLUID), null, new ItemStack(BloodMagicItems.NETHERITE_SCRAP_SAND.get(), 2), null).build(consumer, BloodMagic.rl(basePath + "from_ore_netherite_scrap")); // Ingot to dust ARCRecipeBuilder.arc(Ingredient.fromTag(Tags.Items.INGOTS_IRON), Ingredient.fromTag(BloodMagicTags.ARC_TOOL_EXPLOSIVE), null, new ItemStack(BloodMagicItems.IRON_SAND.get()), null).build(consumer, BloodMagic.rl(basePath + "from_ingot_iron")); ARCRecipeBuilder.arc(Ingredient.fromTag(Tags.Items.INGOTS_GOLD), Ingredient.fromTag(BloodMagicTags.ARC_TOOL_EXPLOSIVE), null, new ItemStack(BloodMagicItems.GOLD_SAND.get()), null).build(consumer, BloodMagic.rl(basePath + "from_ingot_gold")); + ARCRecipeBuilder.arc(Ingredient.fromItems(Items.NETHERITE_SCRAP), Ingredient.fromTag(BloodMagicTags.ARC_TOOL_EXPLOSIVE), null, new ItemStack(BloodMagicItems.NETHERITE_SCRAP_SAND.get()), null).build(consumer, BloodMagic.rl(basePath + "from_ingot_netherite_scrap")); // Gravel to dust ARCRecipeBuilder.arc(Ingredient.fromTag(BloodMagicTags.GRAVEL_IRON), Ingredient.fromTag(BloodMagicTags.ARC_TOOL_CUTTINGFLUID), null, new ItemStack(BloodMagicItems.IRON_SAND.get()), null).build(consumer, BloodMagic.rl(basePath + "from_gravel_iron")); ARCRecipeBuilder.arc(Ingredient.fromTag(BloodMagicTags.GRAVEL_GOLD), Ingredient.fromTag(BloodMagicTags.ARC_TOOL_CUTTINGFLUID), null, new ItemStack(BloodMagicItems.GOLD_SAND.get()), null).build(consumer, BloodMagic.rl(basePath + "from_gravel_gold")); + ARCRecipeBuilder.arc(Ingredient.fromTag(BloodMagicTags.GRAVEL_NETHERITE_SCRAP), Ingredient.fromTag(BloodMagicTags.ARC_TOOL_CUTTINGFLUID), null, new ItemStack(BloodMagicItems.NETHERITE_SCRAP_SAND.get()), null).build(consumer, BloodMagic.rl(basePath + "from_gravel_netherite_scrap")); } private void addFragmentRecipes(Consumer consumer) @@ -74,13 +77,15 @@ public class ARCRecipeProvider implements ISubRecipeProvider String basePath = "arc/fragments"; ARCRecipeBuilder.arc(Ingredient.fromTag(Tags.Items.ORES_IRON), Ingredient.fromTag(BloodMagicTags.ARC_TOOL_EXPLOSIVE), null, new ItemStack(BloodMagicItems.IRON_FRAGMENT.get(), 3), null).build(consumer, BloodMagic.rl(basePath + "iron")); ARCRecipeBuilder.arc(Ingredient.fromTag(Tags.Items.ORES_GOLD), Ingredient.fromTag(BloodMagicTags.ARC_TOOL_EXPLOSIVE), null, new ItemStack(BloodMagicItems.GOLD_FRAGMENT.get(), 3), null).build(consumer, BloodMagic.rl(basePath + "gold")); + ARCRecipeBuilder.arc(Ingredient.fromTag(Tags.Items.ORES_NETHERITE_SCRAP), Ingredient.fromTag(BloodMagicTags.ARC_TOOL_EXPLOSIVE), null, new ItemStack(BloodMagicItems.NETHERITE_SCRAP_FRAGMENT.get(), 3), null).build(consumer, BloodMagic.rl(basePath + "netherite_scrap")); } private void addGravelRecipes(Consumer consumer) { String basePath = "arc/gravels"; - ARCRecipeBuilder.arc(Ingredient.fromTag(BloodMagicTags.FRAGMENT_IRON), Ingredient.fromTag(BloodMagicTags.ARC_TOOL_RESONATOR), null, new ItemStack(BloodMagicItems.IRON_GRAVEL.get()), null).build(consumer, BloodMagic.rl(basePath + "iron")); - ARCRecipeBuilder.arc(Ingredient.fromTag(BloodMagicTags.FRAGMENT_GOLD), Ingredient.fromTag(BloodMagicTags.ARC_TOOL_RESONATOR), null, new ItemStack(BloodMagicItems.GOLD_GRAVEL.get()), null).build(consumer, BloodMagic.rl(basePath + "gold")); + ARCRecipeBuilder.arc(Ingredient.fromTag(BloodMagicTags.FRAGMENT_IRON), Ingredient.fromTag(BloodMagicTags.ARC_TOOL_RESONATOR), null, new ItemStack(BloodMagicItems.IRON_GRAVEL.get()), null).addRandomOutput(new ItemStack(BloodMagicItems.CORRUPTED_DUST_TINY.get()), 0.05).addRandomOutput(new ItemStack(BloodMagicItems.CORRUPTED_DUST_TINY.get()), 0.01).build(consumer, BloodMagic.rl(basePath + "iron")); + ARCRecipeBuilder.arc(Ingredient.fromTag(BloodMagicTags.FRAGMENT_GOLD), Ingredient.fromTag(BloodMagicTags.ARC_TOOL_RESONATOR), null, new ItemStack(BloodMagicItems.GOLD_GRAVEL.get()), null).addRandomOutput(new ItemStack(BloodMagicItems.CORRUPTED_DUST_TINY.get()), 0.05).addRandomOutput(new ItemStack(BloodMagicItems.CORRUPTED_DUST_TINY.get()), 0.01).build(consumer, BloodMagic.rl(basePath + "gold")); + ARCRecipeBuilder.arc(Ingredient.fromTag(BloodMagicTags.FRAGMENT_NETHERITE_SCRAP), Ingredient.fromTag(BloodMagicTags.ARC_TOOL_RESONATOR), null, new ItemStack(BloodMagicItems.NETHERITE_SCRAP_GRAVEL.get()), null).addRandomOutput(new ItemStack(BloodMagicItems.CORRUPTED_DUST_TINY.get()), 0.05).addRandomOutput(new ItemStack(BloodMagicItems.CORRUPTED_DUST_TINY.get()), 0.01).build(consumer, BloodMagic.rl(basePath + "netherite_scrap")); } private void addReversionRecipes(Consumer consumer) diff --git a/src/main/java/wayoftime/bloodmagic/common/tags/BloodMagicTags.java b/src/main/java/wayoftime/bloodmagic/common/tags/BloodMagicTags.java index 7fc61032..31fd8500 100644 --- a/src/main/java/wayoftime/bloodmagic/common/tags/BloodMagicTags.java +++ b/src/main/java/wayoftime/bloodmagic/common/tags/BloodMagicTags.java @@ -1,6 +1,8 @@ package wayoftime.bloodmagic.common.tags; +import net.minecraft.fluid.Fluid; import net.minecraft.item.Item; +import net.minecraft.tags.FluidTags; import net.minecraft.tags.ITag; import net.minecraft.tags.ItemTags; @@ -17,6 +19,8 @@ public class BloodMagicTags public static final ITag.INamedTag CRYSTAL_DEMON = ItemTags.makeWrapperTag("bloodmagic:crystals/demon"); + public static final ITag.INamedTag LIFE_ESSENCE = FluidTags.makeWrapperTag("life"); + // Ores public static final ITag.INamedTag ORE_COPPER = getForgeOreTag("copper"); public static final ITag.INamedTag ORE_TIN = getForgeOreTag("tin"); @@ -24,26 +28,50 @@ public class BloodMagicTags public static final ITag.INamedTag ORE_OSMIUM = getForgeOreTag("osmium"); public static final ITag.INamedTag ORE_SILVER = getForgeOreTag("silver"); + // Ingots + public static final ITag.INamedTag INGOT_HELLFORGED = getForgeIngotTag("hellforged"); + // Dusts (/Sands) public static final ITag.INamedTag DUST_IRON = getForgeDustTag("iron"); public static final ITag.INamedTag DUST_GOLD = getForgeDustTag("gold"); public static final ITag.INamedTag DUST_COAL = getForgeDustTag("coal"); public static final ITag.INamedTag DUST_SALTPETER = getForgeDustTag("saltpeter"); public static final ITag.INamedTag DUST_SULFUR = getForgeDustTag("sulfur"); + public static final ITag.INamedTag DUST_NETHERITE_SCRAP = getForgeDustTag("netherite_scrap"); + public static final ITag.INamedTag DUST_HELLFORGED = getForgeDustTag("hellforged"); + public static final ITag.INamedTag DUST_CORRUPTED = getBMDustTag("corrupted"); + public static final ITag.INamedTag TINYDUST_CORRUPTED = getBMTinyDustTag("corrupted"); // Fragments public static final ITag.INamedTag FRAGMENT_IRON = getFragmentTag("iron"); public static final ITag.INamedTag FRAGMENT_GOLD = getFragmentTag("gold"); + public static final ITag.INamedTag FRAGMENT_NETHERITE_SCRAP = getFragmentTag("netherite_scrap"); // Gravels public static final ITag.INamedTag GRAVEL_IRON = getGravelTag("iron"); public static final ITag.INamedTag GRAVEL_GOLD = getGravelTag("gold"); + public static final ITag.INamedTag GRAVEL_NETHERITE_SCRAP = getGravelTag("netherite_scrap"); public static ITag.INamedTag getForgeOreTag(String name) { return ItemTags.makeWrapperTag("forge:ores/" + name); } + public static ITag.INamedTag getForgeIngotTag(String name) + { + return ItemTags.makeWrapperTag("forge:ingots/" + name); + } + + public static ITag.INamedTag getBMDustTag(String name) + { + return ItemTags.makeWrapperTag("bloodmagic:dusts/" + name); + } + + public static ITag.INamedTag getBMTinyDustTag(String name) + { + return ItemTags.makeWrapperTag("bloodmagic:tiny_dusts/" + name); + } + public static ITag.INamedTag getForgeDustTag(String name) { return ItemTags.makeWrapperTag("forge:dusts/" + name); diff --git a/src/main/resources/assets/bloodmagic/textures/block/nether_soil.png b/src/main/resources/assets/bloodmagic/textures/block/nether_soil.png new file mode 100644 index 0000000000000000000000000000000000000000..4241d53f2665e1fd28d85641896c692becb6cfd4 GIT binary patch literal 6182 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/bloodmagic/textures/block/nether_soil.png.mcmeta b/src/main/resources/assets/bloodmagic/textures/block/nether_soil.png.mcmeta new file mode 100644 index 00000000..7ceb3639 --- /dev/null +++ b/src/main/resources/assets/bloodmagic/textures/block/nether_soil.png.mcmeta @@ -0,0 +1,45 @@ +{ + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 18, + 17, + 16, + 15, + 14, + 13, + 12, + 11, + 10, + 9, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1 + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/bloodmagic/textures/item/corrupted_dust.png b/src/main/resources/assets/bloodmagic/textures/item/corrupted_dust.png new file mode 100644 index 0000000000000000000000000000000000000000..78d4bf160043c3c73ec4e0331907bc2f52d9ae00 GIT binary patch literal 852 zcmV-a1FQUrP)EX>4Tx04R}tkv&MmP!xqvQ>CI6hjtKg$WWauh>GYYRV;#q(pG5I!Q`cX(4-+r zad8w}3l9D)RvlcNb#-tR1i>E=Cr2km7b)?+q|hS92aor0-aChT?*oKJg{fxOIG}2l zk&4H}Y;IKyyrK^w0ArYyn5ieyiy3&XuY36Tc^Bnb-tYcg{Yu_sfKMczW4d7xZxBy! zS~}-_;xH>o3h_Cw$e;p=AGt2O{KmQHu)s6JMkX~+93~cv9V~Y+D;X;B6mdjRHOd#V zE-Re3IIEQ!Yt_j+4Cb|!G}mblBaS5`kc0>sHIz|-g(#gGDJD{MAM@}JIsPQMWO9|k z$gzMbR7j2={11N5)+|g;xJkhn(EVcDA0t3u7iiXP`}^3on73iYZ(8&F0ntfv&7G?9cmMzZ24YJ`L;#2Y*Z|0G@NOmm000SaNLh0L z01dDJ01dDKePvnt00007bV*G`2jmMA0T3It7>nKj00B@*L_t(I%k7apOF{t@h96A| zTWsiSi9&)18luJ)iH3r-B;1=FT3QOhK@fxpa_K)rP(zDTYot>Y<)x3IC{W3pdi}Uv zy{91*3l)mS-sueIdCxiTfq!+>S~wtU;eh-K_C6+vFCe~&+w6RSYlat2_+@sTtrd8)GR$CX&yoF`Ahs8~Q!^BoE9K(a0K3!poAb|4r z+%P!0O;A*GJZU-=)u8POx|obR`mq2>HHBU*Q7&lY(-{hxSF$};x_j;IL-a+0GPANo z%`gyCs8y>}v?BIQo-xM|4}EZca7=7>-_r35hOXoHt)pr=UbHNC*%bF@34kwfOM|+a egK7o-nLYr}T&C0fUdJ;400000(Bn% literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/bloodmagic/textures/item/corrupted_tinydust.png b/src/main/resources/assets/bloodmagic/textures/item/corrupted_tinydust.png new file mode 100644 index 0000000000000000000000000000000000000000..8d2caac18ad85adfbbfbceadff8b8f01292b7588 GIT binary patch literal 634 zcmV-=0)_pFP)EX>4Tx04R}tkv&MmP!xqvQ>CI6hjtKg$WWauh>GYYRV;#q(pG5I!Q`cX(4-+r zad8w}3l9D)RvlcNb#-tR1i>E=Cr2km7b)?+q|hS92aor0-aChT?*oKJg{fxOIG}2l zk&4H}Y;IKyyrK^w0ArYyn5ieyiy3&XuY36Tc^Bnb-tYcg{Yu_sfKMczW4d7xZxBy! zS~}-_;xH>o3h_Cw$e;p=AGt2O{KmQHu)s6JMkX~+93~cv9V~Y+D;X;B6mdjRHOd#V zE-Re3IIEQ!Yt_j+4Cb|!G}mblBaS5`kc0>sHIz|-g(#gGDJD{MAM@}JIsPQMWO9|k z$gzMbR7j2={11N5)+|g;xJkhn(EVcDA0t3u7iiXP`}^3on73iYZ(8&F0ntfv&7G?9cmMzZ24YJ`L;#2Y*Z|0G@NOmm000SaNLh0L z01dDJ01dDKePvnt00007bV*G`2jmMA0Tmv&1&b5_004GLL_t(I%VS^|1*3of2<@o* zAKFp(ADA6lkK(NV3=9kmfB*hvkl^8GSlrUZI837&0OT(( Ulzh9MzW@LL07*qoM6N<$f+X%1)c^nh literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/bloodmagic/textures/item/fragment_netherite_scrap.png b/src/main/resources/assets/bloodmagic/textures/item/fragment_netherite_scrap.png new file mode 100644 index 0000000000000000000000000000000000000000..eb3371df0ddbd36e5c3d25e7712c508ab292f27c GIT binary patch literal 894 zcmV-^1A+XBP)EX>4Tx04R}tkv&MmP!xqvQ>CI6hjtKg$WWauh>GYYRV;#q(pG5I!Q`cX(4-+r zad8w}3l9D)RvlcNb#-tR1i>E=Cr2km7b)?+q|hS92aor0-aChT?*oKJg{fxOIG}2l zk&4H}Y;IKyyrK^w0ArYyn5ieyiy3&XuY36Tc^Bnb-tYcg{Yu_sfKMczW4d7xZxBy! zS~}-_;xH>o3h_Cw$e;p=AGt2O{KmQHu)s6JMkX~+93~cv9V~Y+D;X;B6mdjRHOd#V zE-Re3IIEQ!Yt_j+4Cb|!G}mblBaS5`kc0>sHIz|-g(#gGDJD{MAM@}JIsPQMWO9|k z$gzMbR7j2={11N5)+|g;xJkhn(EVcDA0t3u7iiXP`}^3on73iYZ(8&F0ntfv&7G?9cmMzZ24YJ`L;#2Y*Z|0G@NOmm000SaNLh0L z01dDJ01dDKePvnt00007bV*G`2jmMA0uB#(#oi?V00DYQL_t(I%e9l;D{NsD#(#U7 zZH&xD#^-S4D~ynQr5s6_j$DvBcgi0|apO+8@E^F~!bd3)b0N%3viIz9USsy&=Hqpv z(`k%3Ls_?LJ-=GddKP?V`8}%q-;AqRGuYEjZ*znE5@4XARt8%F%#IAxV(_ba$r+#vAdPKsqsZ`zAzFI;PqipQ#5`7fPhk)t9pj=s9A??^mDcN3Mxi`MtDACX+>LYbW+(c}u#28I4l+ zqmAWXA@u8O>T5KT4?5Xg&d#5Gw?f$bqvVisQdO}H9V01ty!ViDoYHep)f}KdG>6Nl zA%VD+`dpAs&MuVA%`NKuep2G;%^RyAKq(f}j%uIOJT43?LnP1rl1o$F@>@Ul6_^>9 UD5KSHDF6Tf07*qoM6N<$f*lr<)Bpeg literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/bloodmagic/textures/item/gravel_netherite_scrap.png b/src/main/resources/assets/bloodmagic/textures/item/gravel_netherite_scrap.png new file mode 100644 index 0000000000000000000000000000000000000000..1ccb1dd13dd8a31799e463560a55b9753c76caea GIT binary patch literal 903 zcmV;219<$2P)EX>4Tx04R}tkv&MmP!xqvQ>CI6hjtKg$WWauh>GYYRV;#q(pG5I!Q`cX(4-+r zad8w}3l9D)RvlcNb#-tR1i>E=Cr2km7b)?+q|hS92aor0-aChT?*oKJg{fxOIG}2l zk&4H}Y;IKyyrK^w0ArYyn5ieyiy3&XuY36Tc^Bnb-tYcg{Yu_sfKMczW4d7xZxBy! zS~}-_;xH>o3h_Cw$e;p=AGt2O{KmQHu)s6JMkX~+93~cv9V~Y+D;X;B6mdjRHOd#V zE-Re3IIEQ!Yt_j+4Cb|!G}mblBaS5`kc0>sHIz|-g(#gGDJD{MAM@}JIsPQMWO9|k z$gzMbR7j2={11N5)+|g;xJkhn(EVcDA0t3u7iiXP`}^3on73iYZ(8&F0ntfv&7G?9cmMzZ24YJ`L;#2Y*Z|0G@NOmm000SaNLh0L z01dDJ01dDKePvnt00007bV*G`2jmMA0tOGU98@g;00DzZL_t(I%k7doPupM=h94(J zNd_d-dZshU2GExX3pPLB{YGkun8IJ@clL^vkYam4JS4^iZ znM$P?QdPW82XkhMM0`~4eA`!E1PCFdVHn6>k5Z{bJ^vL67$3hNgpj#hP8n!H2q8_= z#HpU)I1cuWO?P^k?$i9#bqKy!gzZ3L8N(dy#@p-yI_tA1+z`e}bSs9JRP*s)IuNH+u dQTZqD{u^D4mfvjNa=!oo002ovPDHLkV1g}Nj*|cY literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/bloodmagic/textures/item/ingot_hellforged.png b/src/main/resources/assets/bloodmagic/textures/item/ingot_hellforged.png new file mode 100644 index 0000000000000000000000000000000000000000..0f58d71e9a7c1088be9dc4cb450145055951844f GIT binary patch literal 763 zcmVEX>4Tx04R}tkv&MmP!xqvQ>CI6hjtKg$WWauh>GYYRV;#q(pG5I!Q`cX(4-+r zad8w}3l9D)RvlcNb#-tR1i>E=Cr2km7b)?+q|hS92aor0-aChT?*oKJg{fxOIG}2l zk&4H}Y;IKyyrK^w0ArYyn5ieyiy3&XuY36Tc^Bnb-tYcg{Yu_sfKMczW4d7xZxBy! zS~}-_;xH>o3h_Cw$e;p=AGt2O{KmQHu)s6JMkX~+93~cv9V~Y+D;X;B6mdjRHOd#V zE-Re3IIEQ!Yt_j+4Cb|!G}mblBaS5`kc0>sHIz|-g(#gGDJD{MAM@}JIsPQMWO9|k z$gzMbR7j2={11N5)+|g;xJkhn(EVcDA0t3u7iiXP`}^3on73iYZ(8&F0ntfv&7G?9cmMzZ24YJ`L;#2Y*Z|0G@NOmm000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2jmMA0wE0Y(6{mc008$%L_t(I%VS^|GNAJG?*Emi zcmGEhXC$Nv#@3LLV_;xlV7T$*5ktGFD|$8h7<2cp74gAHQ%9|i`7IhPJGurM$%FdTUIfWbjX0jD7_O~@KGWaJq3Pn`=f z0GlD`n)W}w#&Gxj8wLgj1_ot85x5)+vQ02UuxUb%4HN@@fBnY5%FRWT#@}DRG0bV{ zWME)mU^ua01tUwlsVigU>D~X88ARZQAOo0lr&rd)#ZD|(ftd~}Pw)P(EC?~=_t$R> t3=9l#o6t4kOo_1cuz%`YyqX3V007_Pb^Sj$^`HO%002ovPDHLkV1nSIN9OEX>4Tx04R}tkv&MmP!xqvQ>CI6hjtKg$WWauh>GYYRV;#q(pG5I!Q`cX(4-+r zad8w}3l9D)RvlcNb#-tR1i>E=Cr2km7b)?+q|hS92aor0-aChT?*oKJg{fxOIG}2l zk&4H}Y;IKyyrK^w0ArYyn5ieyiy3&XuY36Tc^Bnb-tYcg{Yu_sfKMczW4d7xZxBy! zS~}-_;xH>o3h_Cw$e;p=AGt2O{KmQHu)s6JMkX~+93~cv9V~Y+D;X;B6mdjRHOd#V zE-Re3IIEQ!Yt_j+4Cb|!G}mblBaS5`kc0>sHIz|-g(#gGDJD{MAM@}JIsPQMWO9|k z$gzMbR7j2={11N5)+|g;xJkhn(EVcDA0t3u7iiXP`}^3on73iYZ(8&F0ntfv&7G?9cmMzZ24YJ`L;#2Y*Z|0G@NOmm000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2jmMA05||+;)bsP00E>)L_t(I%gvF!YZGx8$3J(b z8ltT)L#*K9P*BmqDu^J_dRB;b@P~s|nrd4xI(5j{#Z&S}WU)hV5Q|5Lx`=~A6wc)k z`Eg6N7&yw03?^J1w0DnFiZAhX(Pw;~=ljC<3;+EXW5gIEKf2pL0}o#s6K8s2gXoWx zkEru9yD%@!mXT98CgtSR)t*i=y)2JRj&o+FM4xRlb!U#T*_#~8?%>+pIgBxq&*!b~ zzx5>$;B@IS5AMxVfBllx=Cf7eb{-Zg2rJ4l)m$1z%K0mzigWvbOG0BMr&K3XMNPnbDg z;OV|K9{CN{KYqerSmZ;y!+7B=K@boG0RWrAFm$6Ry6rd)bk=yhw8Z9ZIkww&G$kCzw_`Z+lc~%&P?pNU{r9^8juItJHryxUx6LP5N$l(j4;<~OFV?-(S zT?^K?B(++Ndc95@#~b^uUC;BZU-sX1qO}&KR8Q64BKa%eKbg-21k43^1{y;E0000< KMNUMnLSTXdL8oW{ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/bloodmagic/textures/item/sand_netherite.png b/src/main/resources/assets/bloodmagic/textures/item/sand_netherite.png new file mode 100644 index 0000000000000000000000000000000000000000..e6420a5cb34ee0c8e19bcf03b4be052525cff6c8 GIT binary patch literal 893 zcmV-@1A_dCP)EX>4Tx04R}tkv&MmP!xqvQ>CI6hjtKg$WWauh>GYYRV;#q(pG5I!Q`cX(4-+r zad8w}3l9D)RvlcNb#-tR1i>E=Cr2km7b)?+q|hS92aor0-aChT?*oKJg{fxOIG}2l zk&4H}Y;IKyyrK^w0ArYyn5ieyiy3&XuY36Tc^Bnb-tYcg{Yu_sfKMczW4d7xZxBy! zS~}-_;xH>o3h_Cw$e;p=AGt2O{KmQHu)s6JMkX~+93~cv9V~Y+D;X;B6mdjRHOd#V zE-Re3IIEQ!Yt_j+4Cb|!G}mblBaS5`kc0>sHIz|-g(#gGDJD{MAM@}JIsPQMWO9|k z$gzMbR7j2={11N5)+|g;xJkhn(EVcDA0t3u7iiXP`}^3on73iYZ(8&F0ntfv&7G?9cmMzZ24YJ`L;#2Y*Z|0G@NOmm000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2jmMA0WJ_@4@oNk00DVPL_t(I%gvF$OG053hTnU^ zo7q(eGffN1en4fqh!71m6}5eTK(yu7(BP1R+_B-K2!e!Y$e~e)pecgppgVmKlvqL0 z$CWHDK_s3g4N8kz>Wt^`KIb_c;NO>&lBAT>Y_5J44(Sexg}dvZA8iim4w{Y)P_a;; zL7$uYeeQ-PY9r-+TAsif?K&e)6cXNSu z?FH9`Gwko}!sl+q_;4>c=XHo$3tEuIALpmXDBWIy zpuo0m2q6dn)MPRV%d!9f1mO9#ijpO* zzk@MGLI}!aGSuO6P{gay=Egcjyb8trDs{GL#5pIf1?I541@f73w5|O>T{6F^UAmXubBuTh%we&`8&w3f`3wPbaugQ TAy3`y00000NkvXXu0mjf0ltvZ literal 0 HcmV?d00001