From 15e538c80080ddf67776f9bc9e61b74a04d4a227 Mon Sep 17 00:00:00 2001 From: WayofTime Date: Thu, 5 Nov 2020 16:10:50 -0500 Subject: [PATCH] Work on the ore tripling and various other things Finished adding items required for the ore processing systems. Almost to the point where things are finalized for the first alpha release. --- .settings/org.eclipse.jdt.core.prefs | 10 +- src/generated/resources/.cache/cache | 51 ++++- .../assets/bloodmagic/lang/en_us.json | 26 +++ .../models/item/crystalline_resonator.json | 6 + .../bloodmagic/models/item/goldfragment.json | 6 + .../bloodmagic/models/item/goldgravel.json | 6 + .../bloodmagic/models/item/ironfragment.json | 6 + .../bloodmagic/models/item/irongravel.json | 6 + .../item/primitive_crystalline_resonator.json | 6 + .../models/item/soulgemgreater.json | 34 ++++ .../models/item/variants/soulgemgreater.json | 6 + .../variants/soulgemgreater_corrosive.json | 6 + .../variants/soulgemgreater_destructive.json | 6 + .../variants/soulgemgreater_steadfast.json | 6 + .../variants/soulgemgreater_vengeful.json | 6 + .../loot_tables/blocks/demoncrucible.json | 2 +- .../loot_tables/blocks/demoncrystallizer.json | 19 ++ .../alchemytable/basic_cutting_fluid.json | 30 +++ .../recipes/arc/dustsfrom_gravel_gold.json | 13 ++ .../recipes/arc/dustsfrom_gravel_iron.json | 13 ++ .../recipes/arc/dustsfrom_ingot_gold.json | 13 ++ .../recipes/arc/dustsfrom_ingot_iron.json | 13 ++ .../recipes/arc/dustsfrom_ore_gold.json | 14 ++ .../recipes/arc/dustsfrom_ore_iron.json | 14 ++ .../bloodmagic/recipes/arc/fragmentsgold.json | 14 ++ .../bloodmagic/recipes/arc/fragmentsiron.json | 14 ++ .../bloodmagic/recipes/arc/gravelsgold.json | 13 ++ .../bloodmagic/recipes/arc/gravelsiron.json | 13 ++ .../bloodmagic/recipes/arc/ore/dustgold.json | 2 +- .../bloodmagic/recipes/arc/ore/dustiron.json | 2 +- .../soulforge/corrosive_crystal_block.json | 20 ++ .../recipes/soulforge/demon_crucible.json | 20 ++ .../recipes/soulforge/demon_crystallizer.json | 20 ++ .../soulforge/destructive_crystal_block.json | 20 ++ .../recipes/soulforge/greatertartaricgem.json | 20 ++ .../primitive_crystalline_resonator.json | 21 ++ .../recipes/soulforge/raw_crystal_block.json | 20 ++ .../soulforge/steadfast_crystal_block.json | 20 ++ .../soulforge/vengeful_crystal_block.json | 20 ++ .../tags/items/arc/cuttingfluid.json | 6 + .../bloodmagic/tags/items/arc/resonator.json | 7 + .../data/bloodmagic/tags/items/arc/tool.json | 4 +- .../bloodmagic/tags/items/crystals/demon.json | 10 + .../bloodmagic/tags/items/fragments/gold.json | 6 + .../bloodmagic/tags/items/fragments/iron.json | 6 + .../bloodmagic/tags/items/gravels/gold.json | 6 + .../bloodmagic/tags/items/gravels/iron.json | 6 + .../data/forge/tags/items/ores/iron.json | 4 + .../java/wayoftime/bloodmagic/BloodMagic.java | 2 + .../bloodmagic/client/ClientEvents.java | 1 + .../common/block/BlockDemonCrystallizer.java | 47 +++++ .../common/block/BloodMagicBlocks.java | 1 + .../common/data/GeneratorBaseRecipes.java | 2 + .../common/data/GeneratorItemModels.java | 1 + .../common/data/GeneratorItemTags.java | 57 +++++- .../common/data/GeneratorLanguage.java | 40 ++++ .../common/data/GeneratorLootTable.java | 1 + .../common/item/BloodMagicItems.java | 24 ++- .../bloodmagic/common/item/IARCTool.java | 5 + .../common/item/arc/ItemARCToolBase.java | 34 ++++ .../common/recipe/ARCRecipeProvider.java | 50 ++++- .../recipe/AlchemyTableRecipeProvider.java | 4 + .../recipe/TartaricForgeRecipeProvider.java | 14 ++ .../common/tags/BloodMagicTags.java | 36 +++- .../forge/TartaricForgeRecipeCategory.java | 6 +- .../tile/TileAlchemicalReactionChamber.java | 53 ++++- .../bloodmagic/tile/TileDemonCrystal.java | 10 +- .../tile/TileDemonCrystallizer.java | 187 ++++++++++++++++++ .../textures/item/copperfragment.png | Bin 0 -> 889 bytes .../bloodmagic/textures/item/coppergravel.png | Bin 0 -> 910 bytes .../bloodmagic/textures/item/coppersand.png | Bin 0 -> 928 bytes .../textures/item/crystalline_resonator.png | Bin 0 -> 1196 bytes .../bloodmagic/textures/item/goldfragment.png | Bin 0 -> 876 bytes .../bloodmagic/textures/item/goldgravel.png | Bin 0 -> 907 bytes .../bloodmagic/textures/item/ironfragment.png | Bin 0 -> 903 bytes .../bloodmagic/textures/item/irongravel.png | Bin 0 -> 934 bytes .../item/primitive_crystalline_resonator.png | Bin 0 -> 1055 bytes 77 files changed, 1151 insertions(+), 36 deletions(-) create mode 100644 src/generated/resources/assets/bloodmagic/models/item/crystalline_resonator.json create mode 100644 src/generated/resources/assets/bloodmagic/models/item/goldfragment.json create mode 100644 src/generated/resources/assets/bloodmagic/models/item/goldgravel.json create mode 100644 src/generated/resources/assets/bloodmagic/models/item/ironfragment.json create mode 100644 src/generated/resources/assets/bloodmagic/models/item/irongravel.json create mode 100644 src/generated/resources/assets/bloodmagic/models/item/primitive_crystalline_resonator.json create mode 100644 src/generated/resources/assets/bloodmagic/models/item/soulgemgreater.json create mode 100644 src/generated/resources/assets/bloodmagic/models/item/variants/soulgemgreater.json create mode 100644 src/generated/resources/assets/bloodmagic/models/item/variants/soulgemgreater_corrosive.json create mode 100644 src/generated/resources/assets/bloodmagic/models/item/variants/soulgemgreater_destructive.json create mode 100644 src/generated/resources/assets/bloodmagic/models/item/variants/soulgemgreater_steadfast.json create mode 100644 src/generated/resources/assets/bloodmagic/models/item/variants/soulgemgreater_vengeful.json create mode 100644 src/generated/resources/data/bloodmagic/loot_tables/blocks/demoncrystallizer.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/alchemytable/basic_cutting_fluid.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_gravel_gold.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_gravel_iron.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_ingot_gold.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_ingot_iron.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_ore_gold.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_ore_iron.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/arc/fragmentsgold.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/arc/fragmentsiron.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/arc/gravelsgold.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/arc/gravelsiron.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/soulforge/corrosive_crystal_block.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/soulforge/demon_crucible.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/soulforge/demon_crystallizer.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/soulforge/destructive_crystal_block.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/soulforge/greatertartaricgem.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/soulforge/primitive_crystalline_resonator.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/soulforge/raw_crystal_block.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/soulforge/steadfast_crystal_block.json create mode 100644 src/generated/resources/data/bloodmagic/recipes/soulforge/vengeful_crystal_block.json create mode 100644 src/generated/resources/data/bloodmagic/tags/items/arc/cuttingfluid.json create mode 100644 src/generated/resources/data/bloodmagic/tags/items/arc/resonator.json create mode 100644 src/generated/resources/data/bloodmagic/tags/items/crystals/demon.json create mode 100644 src/generated/resources/data/bloodmagic/tags/items/fragments/gold.json create mode 100644 src/generated/resources/data/bloodmagic/tags/items/fragments/iron.json create mode 100644 src/generated/resources/data/bloodmagic/tags/items/gravels/gold.json create mode 100644 src/generated/resources/data/bloodmagic/tags/items/gravels/iron.json create mode 100644 src/generated/resources/data/forge/tags/items/ores/iron.json create mode 100644 src/main/java/wayoftime/bloodmagic/common/block/BlockDemonCrystallizer.java create mode 100644 src/main/java/wayoftime/bloodmagic/tile/TileDemonCrystallizer.java create mode 100644 src/main/resources/assets/bloodmagic/textures/item/copperfragment.png create mode 100644 src/main/resources/assets/bloodmagic/textures/item/coppergravel.png create mode 100644 src/main/resources/assets/bloodmagic/textures/item/coppersand.png create mode 100644 src/main/resources/assets/bloodmagic/textures/item/crystalline_resonator.png create mode 100644 src/main/resources/assets/bloodmagic/textures/item/goldfragment.png create mode 100644 src/main/resources/assets/bloodmagic/textures/item/goldgravel.png create mode 100644 src/main/resources/assets/bloodmagic/textures/item/ironfragment.png create mode 100644 src/main/resources/assets/bloodmagic/textures/item/irongravel.png create mode 100644 src/main/resources/assets/bloodmagic/textures/item/primitive_crystalline_resonator.png diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index f646645e..630579f2 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -48,10 +48,10 @@ org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=1 org.eclipse.jdt.core.formatter.alignment_for_shift_operator=0 org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=0 -org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0 org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=0 org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_record_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0 org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=17 org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 @@ -73,7 +73,7 @@ org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch=0 org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=next_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_block=next_line org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line @@ -337,9 +337,9 @@ org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=true org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line=one_line_never org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line=one_line_never -org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line=one_line_if_empty org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false -org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line=one_line_preserve org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line=one_line_never org.eclipse.jdt.core.formatter.keep_method_body_on_one_line=one_line_never org.eclipse.jdt.core.formatter.keep_record_constructor_on_one_line=one_line_never diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index ff054672..1216243f 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -25,7 +25,7 @@ b03040d7a168653bf8df3600033b8fde2383db30 assets/bloodmagic/blockstates/selfsacri f1ca47098385a955155cab9c2a97219e02d390a0 assets/bloodmagic/blockstates/steadfastdemoncrystal.json 48ed6b25a5d8d8074c38d772fdc27c1753d42c36 assets/bloodmagic/blockstates/vengefuldemoncrystal.json e6d9cf699667aaa47efff37b2b033895dee29c15 assets/bloodmagic/blockstates/waterritualstone.json -3ce8493bdefc034104e5a1496f24f5463cb15c4c assets/bloodmagic/lang/en_us.json +082f32e7c041f42f5043c7b860eaf410b9bea287 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 @@ -109,6 +109,7 @@ 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 +5ffcaf5c5378e51d9474b4e75fb3a9cae946a492 assets/bloodmagic/models/item/crystalline_resonator.json f404148f9df3a61da3c18175885ffa56b2a85a6a assets/bloodmagic/models/item/daggerofsacrifice.json 6b89387f771da9535a0234f1a267af1b6853724d assets/bloodmagic/models/item/defaultcrystal.json 9671199681493a396e07d7bcab20137c22d981d5 assets/bloodmagic/models/item/demonslate.json @@ -125,10 +126,14 @@ f4531e22aa1db1cff324db5ccb344d3b9fa85c8d assets/bloodmagic/models/item/divinatio c36bde4f98c0aeb3bf0f369ad3bc067e5f0dc916 assets/bloodmagic/models/item/fireritualstone.json b5708a8cc7259fd36ffeabd155ea085b9fdef0fd assets/bloodmagic/models/item/firescribetool.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 44663089f348642bcca1c5020b5081c3ab172f92 assets/bloodmagic/models/item/growthsigil.json f68825f667ca73b4373fd5068a47f0d1ca9b2aad assets/bloodmagic/models/item/icesigil.json 109b5485c25d978af55b46682d5bfa7008909458 assets/bloodmagic/models/item/infusedslate.json +ccbcba6e4a6450bb67f91ba17754d668ba64c0ac assets/bloodmagic/models/item/ironfragment.json +8d24cd26bf78c9076c1ed764bdca9f7bbbcaf8f9 assets/bloodmagic/models/item/irongravel.json 36cde62c239e351b9c32958135e893829d1d3925 assets/bloodmagic/models/item/ironsand.json 9b9fc4a11a187257d30334cd3faa949790b6ca29 assets/bloodmagic/models/item/largebloodstonebrick.json 413fa378c40dec89cb765a7d5c8bfc9cdef1d828 assets/bloodmagic/models/item/lavacrystal.json @@ -140,6 +145,7 @@ f68825f667ca73b4373fd5068a47f0d1ca9b2aad assets/bloodmagic/models/item/icesigil. 7596826c5b40c2809eb0a42eb5f5f2089290e3e5 assets/bloodmagic/models/item/miningsigil.json ff9b802098659824626dc90dbb5a0d8960234228 assets/bloodmagic/models/item/orbcapacityrune.json aa3947434e24f4a4c4ae43428de3f2dd2ceb31a6 assets/bloodmagic/models/item/plantoil.json +f267edf1b08e69d377290a549bd5ec4a12661d9e assets/bloodmagic/models/item/primitive_crystalline_resonator.json 51720bf25f152c38056c81cebf79ca97b78dbb48 assets/bloodmagic/models/item/primitive_explosive_cell.json aa8684bdce288295cfbb41248ff7f008f98b5e7b assets/bloodmagic/models/item/primitive_hydration_cell.json 63fe86d0faf9aa03a513221a6a12828a886b1301 assets/bloodmagic/models/item/rawdemoncrystal.json @@ -162,6 +168,7 @@ b8582a5cd6ca35279e9b35931f1c5ca089b094b8 assets/bloodmagic/models/item/sanguiner cc71421e98ee7ee047a4cfbb6cb69529c2b02d4e assets/bloodmagic/models/item/selfsacrificerune.json ea5747638d0b5dcc03f008b202cc60a11e0827bb assets/bloodmagic/models/item/sigilofmagnetism.json 9ec68a2dcf04b987c3c5d5c6c52195e3deccacbb assets/bloodmagic/models/item/soulgemcommon.json +6501bb4b72457e8107bec818f26de6178b655203 assets/bloodmagic/models/item/soulgemgreater.json ad010d9680cd748bd04c8fc36262c236f7d90105 assets/bloodmagic/models/item/soulgemlesser.json b49e7f34913e32ccb68eeb6f6c196ff6b209f482 assets/bloodmagic/models/item/soulgempetty.json f8db155d49b0f2c37504bac46a8974d4bf90db3e assets/bloodmagic/models/item/soulsnare.json @@ -183,6 +190,11 @@ cddaa2be8db3aff90933fb772b92cab735ebf11e assets/bloodmagic/models/item/variants/ 3ca3c4251a8907c1c47caf49e53a711265e0e92c assets/bloodmagic/models/item/variants/soulgemcommon_destructive.json 3ad2785d3e893943ea769c7e39d69cedd71e556a assets/bloodmagic/models/item/variants/soulgemcommon_steadfast.json 016ccdfb8a6e0101975e64f9f548e6a93d32f53c assets/bloodmagic/models/item/variants/soulgemcommon_vengeful.json +daef17113abd2003f745e069c1ccecc911445919 assets/bloodmagic/models/item/variants/soulgemgreater.json +73926de465b378adad07303f02a01c41c2f3656e assets/bloodmagic/models/item/variants/soulgemgreater_corrosive.json +1807f9b243e98c9ea43ac230ae211a324c82db79 assets/bloodmagic/models/item/variants/soulgemgreater_destructive.json +07c68e7574ef7d4db2e011e23c3bc20ad258daea assets/bloodmagic/models/item/variants/soulgemgreater_steadfast.json +3691ec7d9fedd3694feb1d6d387a9420e87ff8ce assets/bloodmagic/models/item/variants/soulgemgreater_vengeful.json 2b2322dfd3f7e28ea5d0ad2d9df2223d7ee47f00 assets/bloodmagic/models/item/variants/soulgemlesser.json 8eaab2fddfe201dc83d2d2ffd65e1537a3e5a388 assets/bloodmagic/models/item/variants/soulgemlesser_corrosive.json 24608fc7a19e41d71ec84a80c18ceccbc869cd79 assets/bloodmagic/models/item/variants/soulgemlesser_destructive.json @@ -248,7 +260,8 @@ f1a8e3131d85077665563372cad868534a72fb31 data/bloodmagic/loot_tables/blocks/bloo f0827ad5bf71c06a71f50aeb0298c04d0cb1a1d9 data/bloodmagic/loot_tables/blocks/bloodstonebrick.json 779b809a2a51e6dab46f9e6799249f2f14653ebb data/bloodmagic/loot_tables/blocks/chargingrune.json 56643f0e11eaac974a1a95decf31681b7d3ced81 data/bloodmagic/loot_tables/blocks/corrosivedemoncrystal.json -205f5899101262f31f5c1a88bb7d954918d08d04 data/bloodmagic/loot_tables/blocks/demoncrucible.json +4c9ed83e7e7215f995df35054e96d2f4e5027016 data/bloodmagic/loot_tables/blocks/demoncrucible.json +c590b923d28b3d7916932dfcb05091df815f71dd data/bloodmagic/loot_tables/blocks/demoncrystallizer.json 9b606397733431055d56b886945365aeb62243b0 data/bloodmagic/loot_tables/blocks/destructivedemoncrystal.json a9fcfc656fab957328c10ee1d9d33807e697b7f7 data/bloodmagic/loot_tables/blocks/dislocationrune.json 26e3f34021426def32602e5ae7755e4672878320 data/bloodmagic/loot_tables/blocks/duskritualstone.json @@ -268,6 +281,7 @@ b91f5b06e826205b3da972ef1f12dc37670412ac data/bloodmagic/loot_tables/blocks/stea 530c9c82fc508125223cedccbdacf623d1d3a1ff data/bloodmagic/loot_tables/blocks/vengefuldemoncrystal.json 26e3f34021426def32602e5ae7755e4672878320 data/bloodmagic/loot_tables/blocks/waterritualstone.json 2df19ff659705a5408ce0819a947764673404388 data/bloodmagic/recipes/alchemy_table.json +a343604b5a75e1b3810df97d024813fb041cffb6 data/bloodmagic/recipes/alchemytable/basic_cutting_fluid.json f86432e8fef0d6e140e27f575063704b7e843d75 data/bloodmagic/recipes/alchemytable/bread.json e50009fa724173c2dcb4fab49b4f029039f69bf8 data/bloodmagic/recipes/alchemytable/clay_from_sand.json 96cc66cdb9c5f786eaa899e1fbdd38144e44a0fe data/bloodmagic/recipes/alchemytable/explosive_powder.json @@ -297,9 +311,19 @@ d79a96eb3eed597f1c18a8983764a6362a24748c data/bloodmagic/recipes/altar/dusk_tool 5807b2515f4a2dc9855327940e6055f6947f0749 data/bloodmagic/recipes/arc.json f35bb47d609201f6568b598307ae9d157792fe3e data/bloodmagic/recipes/arc/clay_from_sand.json 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 +b5d3a7ee94494665a9e69519da43a0d4056deb76 data/bloodmagic/recipes/arc/dustsfrom_ingot_gold.json +a31e17fb2da1259fb186cfd07c9cd500e6354518 data/bloodmagic/recipes/arc/dustsfrom_ingot_iron.json +e0846e670dc94334ba695d2a1182527a5016cd31 data/bloodmagic/recipes/arc/dustsfrom_ore_gold.json +855c963531471cedd2f5f067801b96c0bd6a0c56 data/bloodmagic/recipes/arc/dustsfrom_ore_iron.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 2eb26a1af68ed7a5fdb6ac9d4bbc7557729c56cd data/bloodmagic/recipes/arc/netherrack_to_sulfer.json -f3d4fd692c6ce6b6a22b5fc94524b5b72090ff85 data/bloodmagic/recipes/arc/ore/dustgold.json -4dc91e8c26b360bb78974a173ada3f20dfee1dac data/bloodmagic/recipes/arc/ore/dustiron.json +0a6a8034c55d093fed458759bbc85e5893712d35 data/bloodmagic/recipes/arc/ore/dustgold.json +b2760564e300976d88a3938bc0e9e2d2defa0841 data/bloodmagic/recipes/arc/ore/dustiron.json 249229687c1b41a4191c455278624b642b501b4e data/bloodmagic/recipes/arc/reversion/apprentice_blood_orb.json a2b7d868ac099dd6fb29fa54892aad90e29d028d data/bloodmagic/recipes/arc/reversion/magician_blood_orb.json a7f51456052d0fd317164d400cdd595ae2687df8 data/bloodmagic/recipes/arc/reversion/master_blood_orb.json @@ -338,8 +362,15 @@ d699e777c72a5f61c4e6cdfea8705628e1c2b855 data/bloodmagic/recipes/soul_forge.json 2455bf8c205c7244fef2b7d7afeef060e30520b7 data/bloodmagic/recipes/soul_snare.json f4763a58a8f471ec1aaa997cbd36eac8c7d51a12 data/bloodmagic/recipes/soulforge/arcaneashes.json 8b64af8453c60b6b1ae55bd0dd1a68fe95e8ba19 data/bloodmagic/recipes/soulforge/commontartaricgem.json +659db62f8fb71c792b00d6409b1c9a2f1ca96048 data/bloodmagic/recipes/soulforge/corrosive_crystal_block.json +2c90f1da43a79e61d2b6b09c012d08f53b133264 data/bloodmagic/recipes/soulforge/demon_crucible.json +bc4ad3b44720a3f7363ef53027b4aae35622e7c1 data/bloodmagic/recipes/soulforge/demon_crystallizer.json +759279a190f3bc74e162dedf0f5d311267e06fbc data/bloodmagic/recipes/soulforge/destructive_crystal_block.json +0b82d2354aaa635b4fe5514e4815298ee0dedf80 data/bloodmagic/recipes/soulforge/greatertartaricgem.json d46b61779b3c8382862d4e66c3909a1241ecca18 data/bloodmagic/recipes/soulforge/lessertartaricgem.json d6e06747c75fc06e708a15358911f1c63eee86b1 data/bloodmagic/recipes/soulforge/pettytartaricgem.json +2468dd785e301732b1be8108caa468bdd5008e46 data/bloodmagic/recipes/soulforge/primitive_crystalline_resonator.json +535a9ec33a425bde205dffc3254635741d1c82d6 data/bloodmagic/recipes/soulforge/raw_crystal_block.json 42f6af3a4c723c6a6b2a6e1d680a875e15664e4f data/bloodmagic/recipes/soulforge/reagent_air.json 6b59a7e95e596997b7bbb894b6fbaf5015b213b5 data/bloodmagic/recipes/soulforge/reagent_fastminer.json ae3a6a760e9f793d5a62e2f0f6c45219b0017816 data/bloodmagic/recipes/soulforge/reagent_growth.json @@ -349,15 +380,25 @@ c0e75e0e12290d191245c5b0b5b13bc739d2ff44 data/bloodmagic/recipes/soulforge/reage a222d09abf1ea61feb684f2ac23d011c2034f526 data/bloodmagic/recipes/soulforge/reagent_water.json 4a4340f334c51beaacb77fd201298ad94b71e79c data/bloodmagic/recipes/soulforge/sanguine_reverter.json 7e281841a2953c1284d332c2bbf75097f8128241 data/bloodmagic/recipes/soulforge/sentientsword.json +c4102a1573e632d0b9f894353b0d522a51a7c65e data/bloodmagic/recipes/soulforge/steadfast_crystal_block.json +3aa852edda803a2225ebe53d2daa55bd46b0a1b9 data/bloodmagic/recipes/soulforge/vengeful_crystal_block.json d7d993bb729284a5201c164ea81fbe1d8e4e4750 data/bloodmagic/recipes/weak_activation_crystal.json +cf63fdccec992f2cb36c72843791623463cecc44 data/bloodmagic/tags/items/arc/cuttingfluid.json 54a0fcc973590c80a4d3cd6b82f5602ba7208438 data/bloodmagic/tags/items/arc/explosive.json 331b978ba851ae3c48390c5d992bcd5f28ac644d data/bloodmagic/tags/items/arc/furnace.json a62b82e1f59284d230b4b983ffa4a4cecb288c0e data/bloodmagic/tags/items/arc/hydrate.json +9689738644fcfa3a80effc6ee150b67c67e8b8f4 data/bloodmagic/tags/items/arc/resonator.json 65326040c8974fcfcc8711d29040b4297ff55ec1 data/bloodmagic/tags/items/arc/reverter.json 14fb88c612622be110e273818eee9512cd285d56 data/bloodmagic/tags/items/arc/sieve.json -9a3b79a6c6ac1a4277778393141567e595f43417 data/bloodmagic/tags/items/arc/tool.json +bcd2befe59cbb4931c8c9bed183d19b2a469e506 data/bloodmagic/tags/items/arc/tool.json +2bdc1397bd092d373f785f08a2befdce8c1c1e2e data/bloodmagic/tags/items/crystals/demon.json +dc8d6f8f8d128499f3d2632ef1bc353cc49d1ddb data/bloodmagic/tags/items/fragments/gold.json +a60c7b779168689387a03f00002bfd8380d919e5 data/bloodmagic/tags/items/fragments/iron.json +af9b1a9ba1b16a85e3e1cf84b99e4cc9e12f9886 data/bloodmagic/tags/items/gravels/gold.json +19547e1b8859f1e2f1ae858e74b4456fc20be53f data/bloodmagic/tags/items/gravels/iron.json 4f8f46a7e30fe81d36790d3ffed37efef7c87d06 data/forge/tags/items/dusts/coal.json 82f2679934e550a1188658350e52cfac7c450c4d data/forge/tags/items/dusts/gold.json 625a1e6a3b635b2ac5176a49afbae9b476de4f71 data/forge/tags/items/dusts/iron.json 9380fe45b06787ba776af4a7d542a047c1441031 data/forge/tags/items/dusts/saltpeter.json 5c709b6444acb94ca784c33618547ba535e15db2 data/forge/tags/items/dusts/sulfur.json +74700d556ca80c7a1db5fd4efb09c3ddb26cad66 data/forge/tags/items/ores/iron.json diff --git a/src/generated/resources/assets/bloodmagic/lang/en_us.json b/src/generated/resources/assets/bloodmagic/lang/en_us.json index 0cd63b0c..8f63c537 100644 --- a/src/generated/resources/assets/bloodmagic/lang/en_us.json +++ b/src/generated/resources/assets/bloodmagic/lang/en_us.json @@ -9,6 +9,10 @@ "block.bloodmagic.blankrune": "Blank Rune", "block.bloodmagic.bloodstonebrick": "Bloodstone Brick", "block.bloodmagic.chargingrune": "Charging Rune", + "block.bloodmagic.corrosivedemoncrystal": "Corrosive Crystal Cluster", + "block.bloodmagic.demoncrucible": "Demon Crucible", + "block.bloodmagic.demoncrystallizer": "Demon Crystallizer", + "block.bloodmagic.destructivedemoncrystal": "Destructive Crystal Cluster", "block.bloodmagic.dislocationrune": "DisplacementRune", "block.bloodmagic.duskritualstone": "Dusk Ritual Stone", "block.bloodmagic.earthritualstone": "Earth Ritual Stone", @@ -17,11 +21,14 @@ "block.bloodmagic.lightritualstone": "Dawn Ritual Stone", "block.bloodmagic.masterritualstone": "Master Ritual Stone", "block.bloodmagic.orbcapacityrune": "Rune of the Orb", + "block.bloodmagic.rawdemoncrystal": "Raw Crystal Cluster", "block.bloodmagic.ritualstone": "Ritual Stone", "block.bloodmagic.sacrificerune": "Rune of Sacrifice", "block.bloodmagic.selfsacrificerune": "Rune of Self Sacrifice", "block.bloodmagic.soulforge": "Hellfire Forge", "block.bloodmagic.speedrune": "Speed Rune", + "block.bloodmagic.steadfastdemoncrystal": "Steadfast Crystal Cluster", + "block.bloodmagic.vengefuldemoncrystal": "Vengeful Crystal Cluster", "block.bloodmagic.waterritualstone": "Water Ritual Stone", "chat.bloodmagic.damageSource": "%s's soul became too weak", "chat.bloodmagic.ritual.activate": "A rush of energy flows through the ritual!", @@ -43,25 +50,39 @@ "item.bloodmagic.basemonstersoul_destructive": "Demon Will", "item.bloodmagic.basemonstersoul_steadfast": "Demon Will", "item.bloodmagic.basemonstersoul_vengeful": "Demon Will", + "item.bloodmagic.basiccuttingfluid": "Basic Cutting Fluid", "item.bloodmagic.blankslate": "Blank Slate", "item.bloodmagic.bloodlightsigil": "Sigil of the Blood Lamp", + "item.bloodmagic.coalsand": "Coal Sand", + "item.bloodmagic.crystalline_resonator": "Crystalline Resonator", "item.bloodmagic.daggerofsacrifice": "Dagger of Sacrifice", "item.bloodmagic.demonslate": "Demonic Slate", "item.bloodmagic.divinationsigil": "Divination Sigil", "item.bloodmagic.duskscribetool": "Inscription Tool: Dusk", "item.bloodmagic.earthscribetool": "Inscription Tool: Earth", "item.bloodmagic.etherealslate": "Ethereal Slate", + "item.bloodmagic.explosivepowder": "Explosive Powder", "item.bloodmagic.firescribetool": "Inscription Tool: Fire", "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.growthsigil": "Sigil of the Green Grove", "item.bloodmagic.icesigil": "Sigil of the Frozen Lake", "item.bloodmagic.infusedslate": "Imbued Slate", + "item.bloodmagic.ironfragment": "Iron Ore Fragment", + "item.bloodmagic.irongravel": "Iron Gravel", + "item.bloodmagic.ironsand": "Iron Sand", "item.bloodmagic.lavacrystal": "Lava Crystal", "item.bloodmagic.lavasigil": "Lava Sigil", "item.bloodmagic.life_essence_bucket": "Bucket of Life", "item.bloodmagic.magicianbloodorb": "Magician Blood Orb", "item.bloodmagic.masterbloodorb": "Master Blood Orb", "item.bloodmagic.miningsigil": "Sigil of the Fast Miner", + "item.bloodmagic.plantoil": "Plant Oil", + "item.bloodmagic.primitive_crystalline_resonator": "Primitive Resonator", + "item.bloodmagic.primitive_explosive_cell": "Primitive Explosive Cell", + "item.bloodmagic.primitive_hydration_cell": "Primitive Hydration Cell", "item.bloodmagic.reagentair": "Air Reagent", "item.bloodmagic.reagentbloodlight": "Blood Lamp Reagent", "item.bloodmagic.reagentfastminer": "Mining Reagent", @@ -74,13 +95,16 @@ "item.bloodmagic.ritualdiviner": "Ritual Diviner", "item.bloodmagic.ritualdivinerdusk": "Ritual Diviner [Dusk]", "item.bloodmagic.sacrificialdagger": "Sacrificial Knife", + "item.bloodmagic.saltpeter": "Saltpeter", "item.bloodmagic.sanguinereverter": "Sanguine Reverter", "item.bloodmagic.sigilofmagnetism": "Sigil of Magnetism", "item.bloodmagic.soulgemcommon": "Common Tartaric Gem", + "item.bloodmagic.soulgemgreater": "Greater Tartaric Gem", "item.bloodmagic.soulgemlesser": "Lesser Tartaric Gem", "item.bloodmagic.soulgempetty": "Petty Tartaric Gem", "item.bloodmagic.soulsnare": "Soul Snare", "item.bloodmagic.soulsword": "Sentient Sword", + "item.bloodmagic.sulfur": "Sulfur", "item.bloodmagic.voidsigil": "Void Sigil", "item.bloodmagic.waterscribetool": "Inscription Tool: Water", "item.bloodmagic.watersigil": "Water Sigil", @@ -134,6 +158,8 @@ "tooltip.bloodmagic.activationcrystal.creative": "Creative Only - Activates any ritual", "tooltip.bloodmagic.activationcrystal.weak": "Activates low-level rituals", "tooltip.bloodmagic.arcaneAshes": "Ashes used to draw an alchemy circle", + "tooltip.bloodmagic.arctool.additionaldrops": "Increases chance of additional outputs by: x%s", + "tooltip.bloodmagic.arctool.uses": "Uses remaining: %s", "tooltip.bloodmagic.config.disabled": "Currently disabled in the Config", "tooltip.bloodmagic.currentBaseType.corrosive": "Corrosive", "tooltip.bloodmagic.currentBaseType.default": "Raw", diff --git a/src/generated/resources/assets/bloodmagic/models/item/crystalline_resonator.json b/src/generated/resources/assets/bloodmagic/models/item/crystalline_resonator.json new file mode 100644 index 00000000..b07b4e20 --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/item/crystalline_resonator.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "bloodmagic:item/crystalline_resonator" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/item/goldfragment.json b/src/generated/resources/assets/bloodmagic/models/item/goldfragment.json new file mode 100644 index 00000000..2e5cce62 --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/item/goldfragment.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "bloodmagic:item/goldfragment" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/item/goldgravel.json b/src/generated/resources/assets/bloodmagic/models/item/goldgravel.json new file mode 100644 index 00000000..28c8d189 --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/item/goldgravel.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "bloodmagic:item/goldgravel" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/item/ironfragment.json b/src/generated/resources/assets/bloodmagic/models/item/ironfragment.json new file mode 100644 index 00000000..10175c39 --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/item/ironfragment.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "bloodmagic:item/ironfragment" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/item/irongravel.json b/src/generated/resources/assets/bloodmagic/models/item/irongravel.json new file mode 100644 index 00000000..d5760bb2 --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/item/irongravel.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "bloodmagic:item/irongravel" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/item/primitive_crystalline_resonator.json b/src/generated/resources/assets/bloodmagic/models/item/primitive_crystalline_resonator.json new file mode 100644 index 00000000..84032032 --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/item/primitive_crystalline_resonator.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "bloodmagic:item/primitive_crystalline_resonator" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/item/soulgemgreater.json b/src/generated/resources/assets/bloodmagic/models/item/soulgemgreater.json new file mode 100644 index 00000000..8c237764 --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/item/soulgemgreater.json @@ -0,0 +1,34 @@ +{ + "overrides": [ + { + "predicate": { + "bloodmagic:type": 0.0 + }, + "model": "bloodmagic:item/variants/soulgemgreater" + }, + { + "predicate": { + "bloodmagic:type": 1.0 + }, + "model": "bloodmagic:item/variants/soulgemgreater_corrosive" + }, + { + "predicate": { + "bloodmagic:type": 2.0 + }, + "model": "bloodmagic:item/variants/soulgemgreater_destructive" + }, + { + "predicate": { + "bloodmagic:type": 3.0 + }, + "model": "bloodmagic:item/variants/soulgemgreater_vengeful" + }, + { + "predicate": { + "bloodmagic:type": 4.0 + }, + "model": "bloodmagic:item/variants/soulgemgreater_steadfast" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/item/variants/soulgemgreater.json b/src/generated/resources/assets/bloodmagic/models/item/variants/soulgemgreater.json new file mode 100644 index 00000000..00ffd7ea --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/item/variants/soulgemgreater.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "bloodmagic:item/soulgemgreater" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/item/variants/soulgemgreater_corrosive.json b/src/generated/resources/assets/bloodmagic/models/item/variants/soulgemgreater_corrosive.json new file mode 100644 index 00000000..bdbcf609 --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/item/variants/soulgemgreater_corrosive.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "bloodmagic:item/soulgemgreater_corrosive" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/item/variants/soulgemgreater_destructive.json b/src/generated/resources/assets/bloodmagic/models/item/variants/soulgemgreater_destructive.json new file mode 100644 index 00000000..285cff8e --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/item/variants/soulgemgreater_destructive.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "bloodmagic:item/soulgemgreater_destructive" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/item/variants/soulgemgreater_steadfast.json b/src/generated/resources/assets/bloodmagic/models/item/variants/soulgemgreater_steadfast.json new file mode 100644 index 00000000..beb0d2a7 --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/item/variants/soulgemgreater_steadfast.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "bloodmagic:item/soulgemgreater_steadfast" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/item/variants/soulgemgreater_vengeful.json b/src/generated/resources/assets/bloodmagic/models/item/variants/soulgemgreater_vengeful.json new file mode 100644 index 00000000..2808693f --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/item/variants/soulgemgreater_vengeful.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "bloodmagic:item/soulgemgreater_vengeful" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/loot_tables/blocks/demoncrucible.json b/src/generated/resources/data/bloodmagic/loot_tables/blocks/demoncrucible.json index 78793172..3e3a8d39 100644 --- a/src/generated/resources/data/bloodmagic/loot_tables/blocks/demoncrucible.json +++ b/src/generated/resources/data/bloodmagic/loot_tables/blocks/demoncrucible.json @@ -6,7 +6,7 @@ "entries": [ { "type": "minecraft:item", - "name": "minecraft:air" + "name": "bloodmagic:demoncrucible" } ], "conditions": [ diff --git a/src/generated/resources/data/bloodmagic/loot_tables/blocks/demoncrystallizer.json b/src/generated/resources/data/bloodmagic/loot_tables/blocks/demoncrystallizer.json new file mode 100644 index 00000000..55cce224 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/loot_tables/blocks/demoncrystallizer.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "bloodmagic:demoncrystallizer" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/alchemytable/basic_cutting_fluid.json b/src/generated/resources/data/bloodmagic/recipes/alchemytable/basic_cutting_fluid.json new file mode 100644 index 00000000..bf555741 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/alchemytable/basic_cutting_fluid.json @@ -0,0 +1,30 @@ +{ + "type": "bloodmagic:alchemytable", + "input": [ + { + "item": "bloodmagic:plantoil" + }, + { + "tag": "forge:dusts/redstone" + }, + { + "tag": "forge:gunpowder" + }, + { + "item": "minecraft:sugar" + }, + { + "tag": "forge:dusts/coal" + }, + { + "item": "minecraft:potion" + } + ], + "output": { + "item": "bloodmagic:basiccuttingfluid", + "nbt": "{Damage:0}" + }, + "syphon": 1000, + "ticks": 200, + "upgradeLevel": 1 +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_gravel_gold.json b/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_gravel_gold.json new file mode 100644 index 00000000..c77dec87 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_gravel_gold.json @@ -0,0 +1,13 @@ +{ + "type": "bloodmagic:arc", + "input": { + "tag": "bloodmagic:gravels/gold" + }, + "tool": { + "tag": "bloodmagic:arc/cuttingfluid" + }, + "output": { + "item": "bloodmagic:goldsand" + }, + "consumeingredient": false +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_gravel_iron.json b/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_gravel_iron.json new file mode 100644 index 00000000..f2b834b7 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_gravel_iron.json @@ -0,0 +1,13 @@ +{ + "type": "bloodmagic:arc", + "input": { + "tag": "bloodmagic:gravels/iron" + }, + "tool": { + "tag": "bloodmagic:arc/cuttingfluid" + }, + "output": { + "item": "bloodmagic:ironsand" + }, + "consumeingredient": false +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_ingot_gold.json b/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_ingot_gold.json new file mode 100644 index 00000000..c1cdecc1 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_ingot_gold.json @@ -0,0 +1,13 @@ +{ + "type": "bloodmagic:arc", + "input": { + "tag": "forge:ingots/gold" + }, + "tool": { + "tag": "bloodmagic:arc/explosive" + }, + "output": { + "item": "bloodmagic:goldsand" + }, + "consumeingredient": false +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_ingot_iron.json b/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_ingot_iron.json new file mode 100644 index 00000000..7c4e0afd --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_ingot_iron.json @@ -0,0 +1,13 @@ +{ + "type": "bloodmagic:arc", + "input": { + "tag": "forge:ingots/iron" + }, + "tool": { + "tag": "bloodmagic:arc/explosive" + }, + "output": { + "item": "bloodmagic:ironsand" + }, + "consumeingredient": false +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_ore_gold.json b/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_ore_gold.json new file mode 100644 index 00000000..8aa0031c --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_ore_gold.json @@ -0,0 +1,14 @@ +{ + "type": "bloodmagic:arc", + "input": { + "tag": "forge:ores/gold" + }, + "tool": { + "tag": "bloodmagic:arc/cuttingfluid" + }, + "output": { + "item": "bloodmagic:goldsand", + "count": 2 + }, + "consumeingredient": false +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_ore_iron.json b/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_ore_iron.json new file mode 100644 index 00000000..6afdf627 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/arc/dustsfrom_ore_iron.json @@ -0,0 +1,14 @@ +{ + "type": "bloodmagic:arc", + "input": { + "tag": "forge:ores/iron" + }, + "tool": { + "tag": "bloodmagic:arc/cuttingfluid" + }, + "output": { + "item": "bloodmagic:ironsand", + "count": 2 + }, + "consumeingredient": false +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/arc/fragmentsgold.json b/src/generated/resources/data/bloodmagic/recipes/arc/fragmentsgold.json new file mode 100644 index 00000000..74ed09a7 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/arc/fragmentsgold.json @@ -0,0 +1,14 @@ +{ + "type": "bloodmagic:arc", + "input": { + "tag": "forge:ores/gold" + }, + "tool": { + "tag": "bloodmagic:arc/explosive" + }, + "output": { + "item": "bloodmagic:goldfragment", + "count": 3 + }, + "consumeingredient": false +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/arc/fragmentsiron.json b/src/generated/resources/data/bloodmagic/recipes/arc/fragmentsiron.json new file mode 100644 index 00000000..bdd4aad2 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/arc/fragmentsiron.json @@ -0,0 +1,14 @@ +{ + "type": "bloodmagic:arc", + "input": { + "tag": "forge:ores/iron" + }, + "tool": { + "tag": "bloodmagic:arc/explosive" + }, + "output": { + "item": "bloodmagic:ironfragment", + "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 new file mode 100644 index 00000000..1fc1e247 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/arc/gravelsgold.json @@ -0,0 +1,13 @@ +{ + "type": "bloodmagic:arc", + "input": { + "tag": "bloodmagic:fragments/gold" + }, + "tool": { + "tag": "bloodmagic:arc/resonator" + }, + "output": { + "item": "bloodmagic:goldgravel" + }, + "consumeingredient": false +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/arc/gravelsiron.json b/src/generated/resources/data/bloodmagic/recipes/arc/gravelsiron.json new file mode 100644 index 00000000..09129f05 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/arc/gravelsiron.json @@ -0,0 +1,13 @@ +{ + "type": "bloodmagic:arc", + "input": { + "tag": "bloodmagic:fragments/iron" + }, + "tool": { + "tag": "bloodmagic:arc/resonator" + }, + "output": { + "item": "bloodmagic:irongravel" + }, + "consumeingredient": false +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/arc/ore/dustgold.json b/src/generated/resources/data/bloodmagic/recipes/arc/ore/dustgold.json index 5af4fcf3..284985ab 100644 --- a/src/generated/resources/data/bloodmagic/recipes/arc/ore/dustgold.json +++ b/src/generated/resources/data/bloodmagic/recipes/arc/ore/dustgold.json @@ -4,7 +4,7 @@ "item": "minecraft:gold_ore" }, "tool": { - "tag": "bloodmagic:arc/explosive" + "tag": "bloodmagic:arc/cuttingfluid" }, "output": { "item": "bloodmagic:goldsand", diff --git a/src/generated/resources/data/bloodmagic/recipes/arc/ore/dustiron.json b/src/generated/resources/data/bloodmagic/recipes/arc/ore/dustiron.json index 33c69195..185879fb 100644 --- a/src/generated/resources/data/bloodmagic/recipes/arc/ore/dustiron.json +++ b/src/generated/resources/data/bloodmagic/recipes/arc/ore/dustiron.json @@ -4,7 +4,7 @@ "item": "minecraft:iron_ore" }, "tool": { - "tag": "bloodmagic:arc/explosive" + "tag": "bloodmagic:arc/cuttingfluid" }, "output": { "item": "bloodmagic:ironsand", diff --git a/src/generated/resources/data/bloodmagic/recipes/soulforge/corrosive_crystal_block.json b/src/generated/resources/data/bloodmagic/recipes/soulforge/corrosive_crystal_block.json new file mode 100644 index 00000000..11d80db6 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/soulforge/corrosive_crystal_block.json @@ -0,0 +1,20 @@ +{ + "type": "bloodmagic:soulforge", + "input0": { + "item": "bloodmagic:corrosivecrystal" + }, + "input1": { + "item": "bloodmagic:corrosivecrystal" + }, + "input2": { + "item": "bloodmagic:corrosivecrystal" + }, + "input3": { + "item": "bloodmagic:corrosivecrystal" + }, + "output": { + "item": "bloodmagic:corrosivedemoncrystal" + }, + "minimumDrain": 1200.0, + "drain": 100.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/soulforge/demon_crucible.json b/src/generated/resources/data/bloodmagic/recipes/soulforge/demon_crucible.json new file mode 100644 index 00000000..57f6fe29 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/soulforge/demon_crucible.json @@ -0,0 +1,20 @@ +{ + "type": "bloodmagic:soulforge", + "input0": { + "item": "minecraft:cauldron" + }, + "input1": { + "tag": "forge:stone" + }, + "input2": { + "tag": "forge:gems/lapis" + }, + "input3": { + "tag": "forge:gems/diamond" + }, + "output": { + "item": "bloodmagic:demoncrucible" + }, + "minimumDrain": 400.0, + "drain": 100.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/soulforge/demon_crystallizer.json b/src/generated/resources/data/bloodmagic/recipes/soulforge/demon_crystallizer.json new file mode 100644 index 00000000..1283b4e1 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/soulforge/demon_crystallizer.json @@ -0,0 +1,20 @@ +{ + "type": "bloodmagic:soulforge", + "input0": { + "item": "bloodmagic:soulforge" + }, + "input1": { + "tag": "forge:stone" + }, + "input2": { + "tag": "forge:gems/lapis" + }, + "input3": { + "tag": "forge:glass" + }, + "output": { + "item": "bloodmagic:demoncrystallizer" + }, + "minimumDrain": 500.0, + "drain": 100.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/soulforge/destructive_crystal_block.json b/src/generated/resources/data/bloodmagic/recipes/soulforge/destructive_crystal_block.json new file mode 100644 index 00000000..6423e1a6 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/soulforge/destructive_crystal_block.json @@ -0,0 +1,20 @@ +{ + "type": "bloodmagic:soulforge", + "input0": { + "item": "bloodmagic:destructivecrystal" + }, + "input1": { + "item": "bloodmagic:destructivecrystal" + }, + "input2": { + "item": "bloodmagic:destructivecrystal" + }, + "input3": { + "item": "bloodmagic:destructivecrystal" + }, + "output": { + "item": "bloodmagic:destructivedemoncrystal" + }, + "minimumDrain": 1200.0, + "drain": 100.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/soulforge/greatertartaricgem.json b/src/generated/resources/data/bloodmagic/recipes/soulforge/greatertartaricgem.json new file mode 100644 index 00000000..a46a9f6d --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/soulforge/greatertartaricgem.json @@ -0,0 +1,20 @@ +{ + "type": "bloodmagic:soulforge", + "input0": { + "item": "bloodmagic:soulgemcommon" + }, + "input1": { + "item": "bloodmagic:demonslate" + }, + "input2": { + "item": "bloodmagic:weakbloodshard" + }, + "input3": { + "tag": "bloodmagic:crystals/demon" + }, + "output": { + "item": "bloodmagic:soulgemgreater" + }, + "minimumDrain": 1000.0, + "drain": 100.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/soulforge/primitive_crystalline_resonator.json b/src/generated/resources/data/bloodmagic/recipes/soulforge/primitive_crystalline_resonator.json new file mode 100644 index 00000000..833978f6 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/soulforge/primitive_crystalline_resonator.json @@ -0,0 +1,21 @@ +{ + "type": "bloodmagic:soulforge", + "input0": { + "tag": "forge:stone" + }, + "input1": { + "tag": "forge:ingots" + }, + "input2": { + "item": "bloodmagic:defaultcrystal" + }, + "input3": { + "item": "bloodmagic:defaultcrystal" + }, + "output": { + "item": "bloodmagic:primitive_crystalline_resonator", + "nbt": "{Damage:0}" + }, + "minimumDrain": 1200.0, + "drain": 200.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/soulforge/raw_crystal_block.json b/src/generated/resources/data/bloodmagic/recipes/soulforge/raw_crystal_block.json new file mode 100644 index 00000000..6d9a3a3b --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/soulforge/raw_crystal_block.json @@ -0,0 +1,20 @@ +{ + "type": "bloodmagic:soulforge", + "input0": { + "item": "bloodmagic:defaultcrystal" + }, + "input1": { + "item": "bloodmagic:defaultcrystal" + }, + "input2": { + "item": "bloodmagic:defaultcrystal" + }, + "input3": { + "item": "bloodmagic:defaultcrystal" + }, + "output": { + "item": "bloodmagic:rawdemoncrystal" + }, + "minimumDrain": 1200.0, + "drain": 100.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/soulforge/steadfast_crystal_block.json b/src/generated/resources/data/bloodmagic/recipes/soulforge/steadfast_crystal_block.json new file mode 100644 index 00000000..90efc02e --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/soulforge/steadfast_crystal_block.json @@ -0,0 +1,20 @@ +{ + "type": "bloodmagic:soulforge", + "input0": { + "item": "bloodmagic:steadfastcrystal" + }, + "input1": { + "item": "bloodmagic:steadfastcrystal" + }, + "input2": { + "item": "bloodmagic:steadfastcrystal" + }, + "input3": { + "item": "bloodmagic:steadfastcrystal" + }, + "output": { + "item": "bloodmagic:steadfastdemoncrystal" + }, + "minimumDrain": 1200.0, + "drain": 100.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/soulforge/vengeful_crystal_block.json b/src/generated/resources/data/bloodmagic/recipes/soulforge/vengeful_crystal_block.json new file mode 100644 index 00000000..96fed3ca --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/soulforge/vengeful_crystal_block.json @@ -0,0 +1,20 @@ +{ + "type": "bloodmagic:soulforge", + "input0": { + "item": "bloodmagic:vengefulcrystal" + }, + "input1": { + "item": "bloodmagic:vengefulcrystal" + }, + "input2": { + "item": "bloodmagic:vengefulcrystal" + }, + "input3": { + "item": "bloodmagic:vengefulcrystal" + }, + "output": { + "item": "bloodmagic:vengefuldemoncrystal" + }, + "minimumDrain": 1200.0, + "drain": 100.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/tags/items/arc/cuttingfluid.json b/src/generated/resources/data/bloodmagic/tags/items/arc/cuttingfluid.json new file mode 100644 index 00000000..c111d035 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/tags/items/arc/cuttingfluid.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "bloodmagic:basiccuttingfluid" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/tags/items/arc/resonator.json b/src/generated/resources/data/bloodmagic/tags/items/arc/resonator.json new file mode 100644 index 00000000..5ed4cd52 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/tags/items/arc/resonator.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "bloodmagic:primitive_crystalline_resonator", + "bloodmagic:crystalline_resonator" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/tags/items/arc/tool.json b/src/generated/resources/data/bloodmagic/tags/items/arc/tool.json index db159215..46ccea84 100644 --- a/src/generated/resources/data/bloodmagic/tags/items/arc/tool.json +++ b/src/generated/resources/data/bloodmagic/tags/items/arc/tool.json @@ -5,6 +5,8 @@ "#bloodmagic:arc/reverter", "#bloodmagic:arc/sieve", "#bloodmagic:arc/explosive", - "#bloodmagic:arc/hydrate" + "#bloodmagic:arc/hydrate", + "#bloodmagic:arc/resonator", + "#bloodmagic:arc/cuttingfluid" ] } \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/tags/items/crystals/demon.json b/src/generated/resources/data/bloodmagic/tags/items/crystals/demon.json new file mode 100644 index 00000000..0ad4148e --- /dev/null +++ b/src/generated/resources/data/bloodmagic/tags/items/crystals/demon.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "bloodmagic:defaultcrystal", + "bloodmagic:corrosivecrystal", + "bloodmagic:destructivecrystal", + "bloodmagic:vengefulcrystal", + "bloodmagic:steadfastcrystal" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/tags/items/fragments/gold.json b/src/generated/resources/data/bloodmagic/tags/items/fragments/gold.json new file mode 100644 index 00000000..be036261 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/tags/items/fragments/gold.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "bloodmagic:goldfragment" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/tags/items/fragments/iron.json b/src/generated/resources/data/bloodmagic/tags/items/fragments/iron.json new file mode 100644 index 00000000..9bc54fba --- /dev/null +++ b/src/generated/resources/data/bloodmagic/tags/items/fragments/iron.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "bloodmagic:ironfragment" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/tags/items/gravels/gold.json b/src/generated/resources/data/bloodmagic/tags/items/gravels/gold.json new file mode 100644 index 00000000..8c75a5af --- /dev/null +++ b/src/generated/resources/data/bloodmagic/tags/items/gravels/gold.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "bloodmagic:goldgravel" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/tags/items/gravels/iron.json b/src/generated/resources/data/bloodmagic/tags/items/gravels/iron.json new file mode 100644 index 00000000..5c317952 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/tags/items/gravels/iron.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "bloodmagic:irongravel" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/ores/iron.json b/src/generated/resources/data/forge/tags/items/ores/iron.json new file mode 100644 index 00000000..5e8aecc9 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/ores/iron.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": [] +} \ 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 819dec73..46ec548b 100644 --- a/src/main/java/wayoftime/bloodmagic/BloodMagic.java +++ b/src/main/java/wayoftime/bloodmagic/BloodMagic.java @@ -55,6 +55,7 @@ import wayoftime.bloodmagic.tile.TileAlchemyTable; import wayoftime.bloodmagic.tile.TileAltar; import wayoftime.bloodmagic.tile.TileDemonCrucible; import wayoftime.bloodmagic.tile.TileDemonCrystal; +import wayoftime.bloodmagic.tile.TileDemonCrystallizer; import wayoftime.bloodmagic.tile.TileMasterRitualStone; import wayoftime.bloodmagic.tile.TileSoulForge; import wayoftime.bloodmagic.util.handler.event.GenericHandler; @@ -158,6 +159,7 @@ public class BloodMagic event.getRegistry().register(TileEntityType.Builder.create(TileAlchemyTable::new, BloodMagicBlocks.ALCHEMY_TABLE.get()).build(null).setRegistryName("alchemytable")); event.getRegistry().register(TileEntityType.Builder.create(TileDemonCrystal::new, BloodMagicBlocks.RAW_CRYSTAL_BLOCK.get(), BloodMagicBlocks.CORROSIVE_CRYSTAL_BLOCK.get(), BloodMagicBlocks.DESTRUCTIVE_CRYSTAL_BLOCK.get(), BloodMagicBlocks.VENGEFUL_CRYSTAL_BLOCK.get(), BloodMagicBlocks.STEADFAST_CRYSTAL_BLOCK.get()).build(null).setRegistryName("demoncrystal")); event.getRegistry().register(TileEntityType.Builder.create(TileDemonCrucible::new, BloodMagicBlocks.DEMON_CRUCIBLE.get()).build(null).setRegistryName("demoncrucible")); + event.getRegistry().register(TileEntityType.Builder.create(TileDemonCrystallizer::new, BloodMagicBlocks.DEMON_CRYSTALLIZER.get()).build(null).setRegistryName("demoncrystallizer")); } @SubscribeEvent diff --git a/src/main/java/wayoftime/bloodmagic/client/ClientEvents.java b/src/main/java/wayoftime/bloodmagic/client/ClientEvents.java index 171f0cf9..53d4dd9d 100644 --- a/src/main/java/wayoftime/bloodmagic/client/ClientEvents.java +++ b/src/main/java/wayoftime/bloodmagic/client/ClientEvents.java @@ -75,6 +75,7 @@ public class ClientEvents registerMultiWillTool(BloodMagicItems.PETTY_GEM.get()); registerMultiWillTool(BloodMagicItems.LESSER_GEM.get()); registerMultiWillTool(BloodMagicItems.COMMON_GEM.get()); + registerMultiWillTool(BloodMagicItems.GREATER_GEM.get()); ItemModelsProperties.registerProperty(BloodMagicItems.SENTIENT_SWORD.get(), BloodMagic.rl("active"), new IItemPropertyGetter() { diff --git a/src/main/java/wayoftime/bloodmagic/common/block/BlockDemonCrystallizer.java b/src/main/java/wayoftime/bloodmagic/common/block/BlockDemonCrystallizer.java new file mode 100644 index 00000000..a7178f08 --- /dev/null +++ b/src/main/java/wayoftime/bloodmagic/common/block/BlockDemonCrystallizer.java @@ -0,0 +1,47 @@ +package wayoftime.bloodmagic.common.block; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockRenderType; +import net.minecraft.block.BlockState; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +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.minecraftforge.common.ToolType; +import wayoftime.bloodmagic.tile.TileDemonCrystallizer; + +public class BlockDemonCrystallizer extends Block +{ + protected static final VoxelShape BODY = Block.makeCuboidShape(2, 2, 2, 14, 16, 14); + + public BlockDemonCrystallizer() + { + super(Properties.create(Material.IRON).hardnessAndResistance(2.0F, 5.0F).harvestTool(ToolType.PICKAXE).harvestLevel(1)); + } + + @Override + public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) + { + return BODY; + } + + @Override + public boolean hasTileEntity(BlockState state) + { + return true; + } + + @Override + public TileEntity createTileEntity(BlockState state, IBlockReader world) + { + return new TileDemonCrystallizer(); + } + + @Override + public BlockRenderType getRenderType(BlockState state) + { + return BlockRenderType.MODEL; + } +} diff --git a/src/main/java/wayoftime/bloodmagic/common/block/BloodMagicBlocks.java b/src/main/java/wayoftime/bloodmagic/common/block/BloodMagicBlocks.java index 1bbd16a4..6b69e742 100644 --- a/src/main/java/wayoftime/bloodmagic/common/block/BloodMagicBlocks.java +++ b/src/main/java/wayoftime/bloodmagic/common/block/BloodMagicBlocks.java @@ -73,6 +73,7 @@ public class BloodMagicBlocks public static final RegistryObject ALCHEMY_TABLE = BLOCKS.register("alchemytable", () -> new BlockAlchemyTable()); public static final RegistryObject DEMON_CRUCIBLE = BLOCKS.register("demoncrucible", () -> new BlockDemonCrucible()); + public static final RegistryObject DEMON_CRYSTALLIZER = BLOCKS.register("demoncrystallizer", () -> new BlockDemonCrystallizer()); public static final RegistryObject RAW_CRYSTAL_BLOCK = BLOCKS.register("rawdemoncrystal", () -> new BlockDemonCrystal(EnumDemonWillType.DEFAULT)); public static final RegistryObject CORROSIVE_CRYSTAL_BLOCK = BLOCKS.register("corrosivedemoncrystal", () -> new BlockDemonCrystal(EnumDemonWillType.CORROSIVE)); diff --git a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorBaseRecipes.java b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorBaseRecipes.java index 4ae8d704..8ed2efbc 100644 --- a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorBaseRecipes.java +++ b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorBaseRecipes.java @@ -36,6 +36,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.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")); diff --git a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorItemModels.java b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorItemModels.java index 8884af71..026a575f 100644 --- a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorItemModels.java +++ b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorItemModels.java @@ -58,6 +58,7 @@ public class GeneratorItemModels extends ItemModelProvider registerDemonWillVariantItem(BloodMagicItems.PETTY_GEM.get()); registerDemonWillVariantItem(BloodMagicItems.LESSER_GEM.get()); registerDemonWillVariantItem(BloodMagicItems.COMMON_GEM.get()); + registerDemonWillVariantItem(BloodMagicItems.GREATER_GEM.get()); registerDemonSword(BloodMagicItems.SENTIENT_SWORD.get()); } diff --git a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorItemTags.java b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorItemTags.java index 4550529f..7eeae0be 100644 --- a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorItemTags.java +++ b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorItemTags.java @@ -23,15 +23,19 @@ public class GeneratorItemTags extends ItemTagsProvider @Override public void registerTags() { + registerOres(); + registerDusts(); + registerFragments(); + registerGravels(); + registerFurnaceCells(); registerReverters(); registerSieves(); registerExplosives(); registerHydration(); + registerResonators(); + registerCuttingFluids(); - this.getOrCreateBuilder(BloodMagicTags.DUST_IRON).add(BloodMagicItems.IRON_SAND.get()); - this.getOrCreateBuilder(BloodMagicTags.DUST_GOLD).add(BloodMagicItems.GOLD_SAND.get()); - this.getOrCreateBuilder(BloodMagicTags.DUST_COAL).add(BloodMagicItems.COAL_SAND.get()); this.getOrCreateBuilder(BloodMagicTags.DUST_SULFUR).add(BloodMagicItems.SULFUR.get()); this.getOrCreateBuilder(BloodMagicTags.DUST_SALTPETER).add(BloodMagicItems.SALTPETER.get()); this.getOrCreateBuilder(BloodMagicTags.ARC_TOOL).addTag(BloodMagicTags.ARC_TOOL_FURNACE); @@ -39,12 +43,48 @@ public class GeneratorItemTags extends ItemTagsProvider this.getOrCreateBuilder(BloodMagicTags.ARC_TOOL).addTag(BloodMagicTags.ARC_TOOL_SIEVE); this.getOrCreateBuilder(BloodMagicTags.ARC_TOOL).addTag(BloodMagicTags.ARC_TOOL_EXPLOSIVE); this.getOrCreateBuilder(BloodMagicTags.ARC_TOOL).addTag(BloodMagicTags.ARC_TOOL_HYDRATE); + this.getOrCreateBuilder(BloodMagicTags.ARC_TOOL).addTag(BloodMagicTags.ARC_TOOL_RESONATOR); + this.getOrCreateBuilder(BloodMagicTags.ARC_TOOL).addTag(BloodMagicTags.ARC_TOOL_CUTTINGFLUID); + + this.getOrCreateBuilder(BloodMagicTags.CRYSTAL_DEMON).add(BloodMagicItems.RAW_CRYSTAL.get()); + this.getOrCreateBuilder(BloodMagicTags.CRYSTAL_DEMON).add(BloodMagicItems.CORROSIVE_CRYSTAL.get()); + this.getOrCreateBuilder(BloodMagicTags.CRYSTAL_DEMON).add(BloodMagicItems.DESTRUCTIVE_CRYSTAL.get()); + this.getOrCreateBuilder(BloodMagicTags.CRYSTAL_DEMON).add(BloodMagicItems.VENGEFUL_CRYSTAL.get()); + this.getOrCreateBuilder(BloodMagicTags.CRYSTAL_DEMON).add(BloodMagicItems.STEADFAST_CRYSTAL.get()); // this.getOrCreateBuilder(GOORESISTANT).addTag(BlockTags.DOORS); // this.getOrCreateBuilder(GOORESISTANT).addTag(BlockTags.BEDS); // this.getOrCreateBuilder(GOORESISTANT).add(Blocks.PISTON, Blocks.PISTON_HEAD, Blocks.STICKY_PISTON, Blocks.MOVING_PISTON); } + private void registerOres() + { + getOrCreateBuilder(BloodMagicTags.ORE_COPPER); + getOrCreateBuilder(BloodMagicTags.ORE_LEAD); + getOrCreateBuilder(BloodMagicTags.ORE_OSMIUM); + getOrCreateBuilder(BloodMagicTags.ORE_SILVER); + getOrCreateBuilder(BloodMagicTags.ORE_TIN); + } + + private void registerDusts() + { + 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()); + } + + private void registerFragments() + { + getOrCreateBuilder(BloodMagicTags.FRAGMENT_IRON).add(BloodMagicItems.IRON_FRAGMENT.get()); + getOrCreateBuilder(BloodMagicTags.FRAGMENT_GOLD).add(BloodMagicItems.GOLD_FRAGMENT.get()); + } + + private void registerGravels() + { + getOrCreateBuilder(BloodMagicTags.GRAVEL_IRON).add(BloodMagicItems.IRON_GRAVEL.get()); + getOrCreateBuilder(BloodMagicTags.GRAVEL_GOLD).add(BloodMagicItems.GOLD_GRAVEL.get()); + } + private void registerFurnaceCells() { this.registerTool(BloodMagicItems.PRIMITIVE_FURNACE_CELL.get(), BloodMagicTags.ARC_TOOL_FURNACE); @@ -72,6 +112,17 @@ public class GeneratorItemTags extends ItemTagsProvider this.registerTool(BloodMagicItems.PRIMITIVE_HYDRATION_CELL.get(), BloodMagicTags.ARC_TOOL_HYDRATE); } + private void registerResonators() + { + this.registerTool(BloodMagicItems.PRIMITIVE_CRYSTALLINE_RESONATOR.get(), BloodMagicTags.ARC_TOOL_RESONATOR); + this.registerTool(BloodMagicItems.CRYSTALLINE_RESONATOR.get(), BloodMagicTags.ARC_TOOL_RESONATOR); + } + + private void registerCuttingFluids() + { + this.registerTool(BloodMagicItems.BASIC_CUTTING_FLUID.get(), BloodMagicTags.ARC_TOOL_CUTTINGFLUID); + } + public void registerTool(Item item, INamedTag tag) { this.getOrCreateBuilder(tag).add(item); diff --git a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLanguage.java b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLanguage.java index 700d6064..13523381 100644 --- a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLanguage.java +++ b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLanguage.java @@ -90,6 +90,9 @@ public class GeneratorLanguage extends LanguageProvider add("tooltip.bloodmagic.activationcrystal.awakened", "Activates more powerful rituals"); add("tooltip.bloodmagic.activationcrystal.creative", "Creative Only - Activates any ritual"); + add("tooltip.bloodmagic.arctool.additionaldrops", "Increases chance of additional outputs by: x%s"); + add("tooltip.bloodmagic.arctool.uses", "Uses remaining: %s"); + add("itemGroup.bloodmagictab", "Blood Magic"); // Ritual info @@ -169,6 +172,15 @@ public class GeneratorLanguage extends LanguageProvider addBlock(BloodMagicBlocks.BLOODSTONE, "Large Bloodstone Brick"); addBlock(BloodMagicBlocks.BLOODSTONE_BRICK, "Bloodstone Brick"); + addBlock(BloodMagicBlocks.RAW_CRYSTAL_BLOCK, "Raw Crystal Cluster"); + addBlock(BloodMagicBlocks.CORROSIVE_CRYSTAL_BLOCK, "Corrosive Crystal Cluster"); + addBlock(BloodMagicBlocks.DESTRUCTIVE_CRYSTAL_BLOCK, "Destructive Crystal Cluster"); + addBlock(BloodMagicBlocks.VENGEFUL_CRYSTAL_BLOCK, "Vengeful Crystal Cluster"); + addBlock(BloodMagicBlocks.STEADFAST_CRYSTAL_BLOCK, "Steadfast Crystal Cluster"); + + addBlock(BloodMagicBlocks.DEMON_CRUCIBLE, "Demon Crucible"); + addBlock(BloodMagicBlocks.DEMON_CRYSTALLIZER, "Demon Crystallizer"); + // Item names addItem(BloodMagicItems.WEAK_BLOOD_ORB, "Weak Blood Orb"); addItem(BloodMagicItems.APPRENTICE_BLOOD_ORB, "Apprentice Blood Orb"); @@ -209,6 +221,7 @@ public class GeneratorLanguage extends LanguageProvider addItem(BloodMagicItems.PETTY_GEM, "Petty Tartaric Gem"); addItem(BloodMagicItems.LESSER_GEM, "Lesser Tartaric Gem"); addItem(BloodMagicItems.COMMON_GEM, "Common Tartaric Gem"); + addItem(BloodMagicItems.GREATER_GEM, "Greater Tartaric Gem"); addItem(BloodMagicItems.MONSTER_SOUL_RAW, "Demon Will"); addItem(BloodMagicItems.MONSTER_SOUL_CORROSIVE, "Demon Will"); addItem(BloodMagicItems.MONSTER_SOUL_DESTRUCTIVE, "Demon Will"); @@ -234,6 +247,33 @@ public class GeneratorLanguage extends LanguageProvider addItem(BloodMagicItems.SANGUINE_REVERTER, "Sanguine Reverter"); addItem(BloodMagicItems.PRIMITIVE_FURNACE_CELL, "Primitive Fuel Cell"); + addItem(BloodMagicItems.PRIMITIVE_CRYSTALLINE_RESONATOR, "Primitive Resonator"); + addItem(BloodMagicItems.CRYSTALLINE_RESONATOR, "Crystalline Resonator"); + + addItem(BloodMagicItems.PRIMITIVE_HYDRATION_CELL, "Primitive Hydration Cell"); + addItem(BloodMagicItems.PRIMITIVE_EXPLOSIVE_CELL, "Primitive Explosive Cell"); + addItem(BloodMagicItems.EXPLOSIVE_POWDER, "Explosive Powder"); + + addItem(BloodMagicItems.BASIC_CUTTING_FLUID, "Basic Cutting Fluid"); + + // Alchemy Items + addItem(BloodMagicItems.PLANT_OIL, "Plant Oil"); + + // Sands + addItem(BloodMagicItems.COAL_SAND, "Coal Sand"); + addItem(BloodMagicItems.IRON_SAND, "Iron Sand"); + addItem(BloodMagicItems.GOLD_SAND, "Gold Sand"); + addItem(BloodMagicItems.SULFUR, "Sulfur"); + addItem(BloodMagicItems.SALTPETER, "Saltpeter"); + + // Fragments + addItem(BloodMagicItems.IRON_FRAGMENT, "Iron Ore Fragment"); + addItem(BloodMagicItems.GOLD_FRAGMENT, "Gold Ore Fragment"); + + // Gravels + addItem(BloodMagicItems.IRON_GRAVEL, "Iron Gravel"); + addItem(BloodMagicItems.GOLD_GRAVEL, "Gold Gravel"); + // addItem(BloodMagicItems , ""); // JEI diff --git a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLootTable.java b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLootTable.java index b1f496b1..7d2b12c2 100644 --- a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLootTable.java +++ b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLootTable.java @@ -73,6 +73,7 @@ public class GeneratorLootTable extends LootTableProvider registerDropSelfLootTable(BloodMagicBlocks.ALCHEMY_TABLE.get()); registerDropSelfLootTable(BloodMagicBlocks.ALCHEMICAL_REACTION_CHAMBER.get()); registerDropSelfLootTable(BloodMagicBlocks.DEMON_CRUCIBLE.get()); + registerDropSelfLootTable(BloodMagicBlocks.DEMON_CRYSTALLIZER.get()); // registerNoDropLootTable(BloodMagicBlocks.RAW_CRYSTAL_BLOCK.get()); registerDropCrystalsLootTable(BloodMagicBlocks.RAW_CRYSTAL_BLOCK.get(), BloodMagicItems.RAW_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 54c0fd6b..d21368be 100644 --- a/src/main/java/wayoftime/bloodmagic/common/item/BloodMagicItems.java +++ b/src/main/java/wayoftime/bloodmagic/common/item/BloodMagicItems.java @@ -66,6 +66,7 @@ public class BloodMagicItems public static final RegistryObject DAWN_RITUAL_STONE_ITEM = ITEMS.register("lightritualstone", () -> new BlockItem(BloodMagicBlocks.DAWN_RITUAL_STONE.get(), new Item.Properties().group(BloodMagic.TAB))); public static final RegistryObject ALCHEMICAL_REACTION_CHAMBER_ITEM = ITEMS.register("alchemicalreactionchamber", () -> new BlockItem(BloodMagicBlocks.ALCHEMICAL_REACTION_CHAMBER.get(), new Item.Properties().group(BloodMagic.TAB))); public static final RegistryObject DEMON_CRUCIBLE_ITEM = ITEMS.register("demoncrucible", () -> new BlockItem(BloodMagicBlocks.DEMON_CRUCIBLE.get(), new Item.Properties().group(BloodMagic.TAB))); + public static final RegistryObject DEMON_CRYSTALLIZER_ITEM = ITEMS.register("demoncrystallizer", () -> new BlockItem(BloodMagicBlocks.DEMON_CRYSTALLIZER.get(), new Item.Properties().group(BloodMagic.TAB))); public static final RegistryObject BLOODSTONE_ITEM = ITEMS.register("largebloodstonebrick", () -> new BlockItem(BloodMagicBlocks.BLOODSTONE.get(), new Item.Properties().group(BloodMagic.TAB))); public static final RegistryObject BLOODSTONE_BRICK_ITEM = ITEMS.register("bloodstonebrick", () -> new BlockItem(BloodMagicBlocks.BLOODSTONE_BRICK.get(), new Item.Properties().group(BloodMagic.TAB))); @@ -135,6 +136,7 @@ public class BloodMagicItems public static final RegistryObject PETTY_GEM = ITEMS.register("soulgempetty", () -> new ItemSoulGem("petty", 64)); public static final RegistryObject LESSER_GEM = ITEMS.register("soulgemlesser", () -> new ItemSoulGem("lesser", 256)); public static final RegistryObject COMMON_GEM = ITEMS.register("soulgemcommon", () -> new ItemSoulGem("common", 1024)); + public static final RegistryObject GREATER_GEM = ITEMS.register("soulgemgreater", () -> new ItemSoulGem("greater", 4096)); public static final RegistryObject MONSTER_SOUL_RAW = BASICITEMS.register("basemonstersoul", () -> new ItemMonsterSoul(EnumDemonWillType.DEFAULT)); public static final RegistryObject MONSTER_SOUL_CORROSIVE = BASICITEMS.register("basemonstersoul_corrosive", () -> new ItemMonsterSoul(EnumDemonWillType.CORROSIVE)); @@ -162,16 +164,28 @@ public class BloodMagicItems public static final RegistryObject PRIMITIVE_FURNACE_CELL = BASICITEMS.register("furnacecell_primitive", () -> new ItemARCToolBase(128, 1.25)); public static final RegistryObject PRIMITIVE_EXPLOSIVE_CELL = BASICITEMS.register("primitive_explosive_cell", () -> new ItemARCToolBase(256, 1.25)); public static final RegistryObject PRIMITIVE_HYDRATION_CELL = BASICITEMS.register("primitive_hydration_cell", () -> new ItemARCToolBase(128, 1.25)); + public static final RegistryObject PRIMITIVE_CRYSTALLINE_RESONATOR = BASICITEMS.register("primitive_crystalline_resonator", () -> new ItemARCToolBase(128, 1.25)); + public static final RegistryObject CRYSTALLINE_RESONATOR = BASICITEMS.register("crystalline_resonator", () -> new ItemARCToolBase(512, 2, 2)); // Alchemy Table items - public static final RegistryObject BASIC_CUTTING_FLUID = BASICITEMS.register("basiccuttingfluid", () -> new ItemARCToolBase(16, 1)); + public static final RegistryObject BASIC_CUTTING_FLUID = BASICITEMS.register("basiccuttingfluid", () -> new ItemARCToolBase(64, 1)); public static final RegistryObject EXPLOSIVE_POWDER = BASICITEMS.register("explosivepowder", () -> new ItemARCToolBase(64, 1)); - 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 SULFUR = BASICITEMS.register("sulfur", () -> new ItemBase()); public static final RegistryObject SALTPETER = BASICITEMS.register("saltpeter", () -> new ItemBase()); public static final RegistryObject PLANT_OIL = BASICITEMS.register("plantoil", () -> new ItemBase()); + + // Fragments + public static final RegistryObject IRON_FRAGMENT = BASICITEMS.register("ironfragment", () -> new ItemBase()); + public static final RegistryObject GOLD_FRAGMENT = BASICITEMS.register("goldfragment", () -> 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()); + + // 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()); + } diff --git a/src/main/java/wayoftime/bloodmagic/common/item/IARCTool.java b/src/main/java/wayoftime/bloodmagic/common/item/IARCTool.java index 333d0cc8..1770a005 100644 --- a/src/main/java/wayoftime/bloodmagic/common/item/IARCTool.java +++ b/src/main/java/wayoftime/bloodmagic/common/item/IARCTool.java @@ -8,4 +8,9 @@ public interface IARCTool { return 1; } + + default double getAdditionalOutputChanceMultiplier(ItemStack stack) + { + return 1; + } } diff --git a/src/main/java/wayoftime/bloodmagic/common/item/arc/ItemARCToolBase.java b/src/main/java/wayoftime/bloodmagic/common/item/arc/ItemARCToolBase.java index d50262dc..a0fd9865 100644 --- a/src/main/java/wayoftime/bloodmagic/common/item/arc/ItemARCToolBase.java +++ b/src/main/java/wayoftime/bloodmagic/common/item/arc/ItemARCToolBase.java @@ -1,18 +1,46 @@ package wayoftime.bloodmagic.common.item.arc; +import java.util.List; + +import net.minecraft.client.util.ITooltipFlag; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.world.World; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; import wayoftime.bloodmagic.BloodMagic; import wayoftime.bloodmagic.common.item.IARCTool; +import wayoftime.bloodmagic.util.ChatUtil; public class ItemARCToolBase extends Item implements IARCTool { private final double craftingMultiplier; + private final double additionalOutputChance; public ItemARCToolBase(int maxDamage, double craftingMultiplier) + { + this(maxDamage, craftingMultiplier, 1); + } + + public ItemARCToolBase(int maxDamage, double craftingMultiplier, double additionalOutputChance) { super(new Item.Properties().maxStackSize(1).group(BloodMagic.TAB).maxDamage(maxDamage)); this.craftingMultiplier = craftingMultiplier; + this.additionalOutputChance = additionalOutputChance; + } + + @Override + @OnlyIn(Dist.CLIENT) + public void addInformation(ItemStack stack, World world, List tooltip, ITooltipFlag flag) + { + tooltip.add(new TranslationTextComponent("tooltip.bloodmagic.arctool.uses", stack.getMaxDamage() - stack.getDamage())); + + if (getAdditionalOutputChanceMultiplier(stack) != 1) + tooltip.add(new TranslationTextComponent("tooltip.bloodmagic.arctool.additionaldrops", ChatUtil.DECIMAL_FORMAT.format(getAdditionalOutputChanceMultiplier(stack)))); + + super.addInformation(stack, world, tooltip, flag); } @Override @@ -20,4 +48,10 @@ public class ItemARCToolBase extends Item implements IARCTool { return craftingMultiplier; } + + @Override + public double getAdditionalOutputChanceMultiplier(ItemStack stack) + { + return additionalOutputChance; + } } diff --git a/src/main/java/wayoftime/bloodmagic/common/recipe/ARCRecipeProvider.java b/src/main/java/wayoftime/bloodmagic/common/recipe/ARCRecipeProvider.java index fe2007f2..1b12f481 100644 --- a/src/main/java/wayoftime/bloodmagic/common/recipe/ARCRecipeProvider.java +++ b/src/main/java/wayoftime/bloodmagic/common/recipe/ARCRecipeProvider.java @@ -5,10 +5,15 @@ import java.util.function.Consumer; import net.minecraft.block.Blocks; import net.minecraft.data.IFinishedRecipe; import net.minecraft.fluid.Fluids; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.item.crafting.Ingredient; +import net.minecraft.tags.ITag; import net.minecraftforge.common.Tags; +import net.minecraftforge.common.crafting.conditions.ICondition; +import net.minecraftforge.common.crafting.conditions.NotCondition; +import net.minecraftforge.common.crafting.conditions.TagEmptyCondition; import net.minecraftforge.fluids.FluidStack; import wayoftime.bloodmagic.BloodMagic; import wayoftime.bloodmagic.api.event.recipes.FluidStackIngredient; @@ -28,13 +33,54 @@ public class ARCRecipeProvider implements ISubRecipeProvider // ARCRecipeBuilder.arc(Ingredient.fromTag(Tags.Items.NETHERRACK), Ingredient.fromTag(BloodMagicTags.ARC_TOOL_REVERTER), FluidStackIngredient.from(Fluids.LAVA, 1000), new ItemStack(BloodMagicBlocks.BLOOD_ALTAR.get()), new FluidStack(Fluids.WATER, 100)).addRandomOutput(new ItemStack(BloodMagicItems.SLATE.get()), 0.2).addRandomOutput(new ItemStack(BloodMagicItems.REINFORCED_SLATE.get()), 0.1).addRandomOutput(new ItemStack(BloodMagicItems.IMBUED_SLATE.get()), 0.001).build(consumer, BloodMagic.rl(basePath + "test4")); ARCRecipeBuilder.arc(Ingredient.fromItems(BloodMagicItems.IMBUED_SLATE.get()), Ingredient.fromTag(BloodMagicTags.ARC_TOOL_REVERTER), null, new ItemStack(BloodMagicItems.WEAK_BLOOD_SHARD.get()), null).addRandomOutput(new ItemStack(BloodMagicItems.WEAK_BLOOD_SHARD.get()), 0.2).build(consumer, BloodMagic.rl(basePath + "weakbloodshard")); - ARCRecipeBuilder.arc(Ingredient.fromItems(Items.IRON_ORE), Ingredient.fromTag(BloodMagicTags.ARC_TOOL_EXPLOSIVE), null, new ItemStack(BloodMagicItems.IRON_SAND.get(), 2), null).build(consumer, BloodMagic.rl(basePath + "ore/dustiron")); - ARCRecipeBuilder.arc(Ingredient.fromItems(Items.GOLD_ORE), Ingredient.fromTag(BloodMagicTags.ARC_TOOL_EXPLOSIVE), null, new ItemStack(BloodMagicItems.GOLD_SAND.get(), 2), null).build(consumer, BloodMagic.rl(basePath + "ore/dustgold")); + ARCRecipeBuilder.arc(Ingredient.fromItems(Items.IRON_ORE), Ingredient.fromTag(BloodMagicTags.ARC_TOOL_CUTTINGFLUID), null, new ItemStack(BloodMagicItems.IRON_SAND.get(), 2), null).build(consumer, BloodMagic.rl(basePath + "ore/dustiron")); + ARCRecipeBuilder.arc(Ingredient.fromItems(Items.GOLD_ORE), Ingredient.fromTag(BloodMagicTags.ARC_TOOL_CUTTINGFLUID), null, new ItemStack(BloodMagicItems.GOLD_SAND.get(), 2), null).build(consumer, BloodMagic.rl(basePath + "ore/dustgold")); ARCRecipeBuilder.arc(Ingredient.fromTag(Tags.Items.NETHERRACK), Ingredient.fromTag(BloodMagicTags.ARC_TOOL_EXPLOSIVE), null, new ItemStack(BloodMagicItems.SULFUR.get()), new FluidStack(Fluids.LAVA, 5)).build(consumer, BloodMagic.rl(basePath + "netherrack_to_sulfer")); ARCRecipeBuilder.arc(Ingredient.fromItems(Items.TERRACOTTA), Ingredient.fromTag(BloodMagicTags.ARC_TOOL_HYDRATE), FluidStackIngredient.from(Fluids.WATER, 200), new ItemStack(Blocks.CLAY), null).build(consumer, BloodMagic.rl(basePath + "clay_from_terracotta")); ARCRecipeBuilder.arc(Ingredient.fromTag(Tags.Items.SAND), Ingredient.fromTag(BloodMagicTags.ARC_TOOL_HYDRATE), FluidStackIngredient.from(Fluids.WATER, 200), new ItemStack(Items.CLAY_BALL), null).addRandomOutput(new ItemStack(Items.CLAY_BALL), 0.5).build(consumer, BloodMagic.rl(basePath + "clay_from_sand")); +// ConditionalRecipe.builder().addCondition(new TagEmptyCondition(Tags.Items.ORES_IRON.getName())); + addReversionRecipes(consumer); + addSandRecipes(consumer); + addFragmentRecipes(consumer); + addGravelRecipes(consumer); + } + + private ICondition getTagCondition(ITag.INamedTag tag) + { + return new NotCondition(new TagEmptyCondition(tag.getName())); + } + + private void addSandRecipes(Consumer consumer) + { + String basePath = "arc/dusts"; + + // 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")); + + // 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")); + + // 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")); + } + + private void addFragmentRecipes(Consumer consumer) + { + 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")); + } + + 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")); } private void addReversionRecipes(Consumer consumer) diff --git a/src/main/java/wayoftime/bloodmagic/common/recipe/AlchemyTableRecipeProvider.java b/src/main/java/wayoftime/bloodmagic/common/recipe/AlchemyTableRecipeProvider.java index 9e3488f2..e1f2e72b 100644 --- a/src/main/java/wayoftime/bloodmagic/common/recipe/AlchemyTableRecipeProvider.java +++ b/src/main/java/wayoftime/bloodmagic/common/recipe/AlchemyTableRecipeProvider.java @@ -7,6 +7,8 @@ import net.minecraft.data.IFinishedRecipe; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.item.crafting.Ingredient; +import net.minecraft.potion.PotionUtils; +import net.minecraft.potion.Potions; import net.minecraft.tags.ItemTags; import net.minecraftforge.common.Tags; import wayoftime.bloodmagic.BloodMagic; @@ -33,6 +35,8 @@ public class AlchemyTableRecipeProvider implements ISubRecipeProvider AlchemyTableRecipeBuilder.alchemyTable(new ItemStack(BloodMagicItems.PLANT_OIL.get()), 100, 100, 1).addIngredient(Ingredient.fromTag(Tags.Items.CROPS_POTATO)).addIngredient(Ingredient.fromTag(Tags.Items.CROPS_POTATO)).addIngredient(Ingredient.fromItems(Items.BONE_MEAL)).build(consumer, BloodMagic.rl(basePath + "plantoil_from_taters")); AlchemyTableRecipeBuilder.alchemyTable(new ItemStack(BloodMagicItems.PLANT_OIL.get()), 100, 100, 1).addIngredient(Ingredient.fromTag(Tags.Items.CROPS_WHEAT)).addIngredient(Ingredient.fromTag(Tags.Items.CROPS_WHEAT)).addIngredient(Ingredient.fromItems(Items.BONE_MEAL)).build(consumer, BloodMagic.rl(basePath + "plantoil_from_wheat")); AlchemyTableRecipeBuilder.alchemyTable(new ItemStack(BloodMagicItems.PLANT_OIL.get()), 100, 100, 1).addIngredient(Ingredient.fromTag(Tags.Items.CROPS_BEETROOT)).addIngredient(Ingredient.fromTag(Tags.Items.CROPS_BEETROOT)).addIngredient(Ingredient.fromTag(Tags.Items.CROPS_BEETROOT)).addIngredient(Ingredient.fromItems(Items.BONE_MEAL)).build(consumer, BloodMagic.rl(basePath + "plantoil_from_beets")); + + AlchemyTableRecipeBuilder.alchemyTable(new ItemStack(BloodMagicItems.BASIC_CUTTING_FLUID.get()), 1000, 200, 1).addIngredient(Ingredient.fromItems(BloodMagicItems.PLANT_OIL.get())).addIngredient(Ingredient.fromTag(Tags.Items.DUSTS_REDSTONE)).addIngredient(Ingredient.fromTag(Tags.Items.GUNPOWDER)).addIngredient(Ingredient.fromItems(Items.SUGAR)).addIngredient(Ingredient.fromTag(BloodMagicTags.DUST_COAL)).addIngredient(Ingredient.fromStacks(PotionUtils.addPotionToItemStack(new ItemStack(Items.POTION), Potions.WATER))).build(consumer, BloodMagic.rl(basePath + "basic_cutting_fluid")); } } diff --git a/src/main/java/wayoftime/bloodmagic/common/recipe/TartaricForgeRecipeProvider.java b/src/main/java/wayoftime/bloodmagic/common/recipe/TartaricForgeRecipeProvider.java index e14f9bfb..00c642c4 100644 --- a/src/main/java/wayoftime/bloodmagic/common/recipe/TartaricForgeRecipeProvider.java +++ b/src/main/java/wayoftime/bloodmagic/common/recipe/TartaricForgeRecipeProvider.java @@ -9,8 +9,10 @@ import net.minecraft.item.crafting.Ingredient; import net.minecraft.tags.ItemTags; import net.minecraftforge.common.Tags; import wayoftime.bloodmagic.BloodMagic; +import wayoftime.bloodmagic.common.block.BloodMagicBlocks; import wayoftime.bloodmagic.common.data.recipe.builder.TartaricForgeRecipeBuilder; import wayoftime.bloodmagic.common.item.BloodMagicItems; +import wayoftime.bloodmagic.common.tags.BloodMagicTags; public class TartaricForgeRecipeProvider implements ISubRecipeProvider { @@ -22,6 +24,8 @@ public class TartaricForgeRecipeProvider implements ISubRecipeProvider TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicItems.PETTY_GEM.get()), 1, 1, Ingredient.fromTag(Tags.Items.DUSTS_REDSTONE), Ingredient.fromTag(Tags.Items.INGOTS_GOLD), Ingredient.fromTag(Tags.Items.GLASS), Ingredient.fromTag(Tags.Items.GEMS_LAPIS)).build(consumer, BloodMagic.rl(basePath + "pettytartaricgem")); TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicItems.LESSER_GEM.get()), 60, 20, Ingredient.fromItems(BloodMagicItems.PETTY_GEM.get()), Ingredient.fromTag(Tags.Items.GEMS_DIAMOND), Ingredient.fromTag(Tags.Items.STORAGE_BLOCKS_REDSTONE), Ingredient.fromTag(Tags.Items.STORAGE_BLOCKS_LAPIS)).build(consumer, BloodMagic.rl(basePath + "lessertartaricgem")); TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicItems.COMMON_GEM.get()), 240, 50, Ingredient.fromItems(BloodMagicItems.LESSER_GEM.get()), Ingredient.fromTag(Tags.Items.GEMS_DIAMOND), Ingredient.fromTag(Tags.Items.STORAGE_BLOCKS_GOLD), Ingredient.fromItems(BloodMagicItems.IMBUED_SLATE.get())).build(consumer, BloodMagic.rl(basePath + "commontartaricgem")); + TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicItems.GREATER_GEM.get()), 1000, 100, Ingredient.fromItems(BloodMagicItems.COMMON_GEM.get()), Ingredient.fromItems(BloodMagicItems.DEMONIC_SLATE.get()), Ingredient.fromItems(BloodMagicItems.WEAK_BLOOD_SHARD.get()), Ingredient.fromTag(BloodMagicTags.CRYSTAL_DEMON)).build(consumer, BloodMagic.rl(basePath + "greatertartaricgem")); + TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicItems.SENTIENT_SWORD.get()), 0, 0, Ingredient.fromItems(BloodMagicItems.PETTY_GEM.get()), Ingredient.fromItems(Items.IRON_SWORD)).build(consumer, BloodMagic.rl(basePath + "sentientsword")); TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicItems.REAGENT_AIR.get()), 128, 20, Ingredient.fromItems(Items.GHAST_TEAR), Ingredient.fromTag(Tags.Items.FEATHERS), Ingredient.fromTag(Tags.Items.FEATHERS)).build(consumer, BloodMagic.rl(basePath + "reagent_air")); @@ -33,7 +37,17 @@ public class TartaricForgeRecipeProvider implements ISubRecipeProvider TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicItems.REAGENT_MAGNETISM.get()), 600, 10, Ingredient.fromTag(Tags.Items.STRING), Ingredient.fromTag(Tags.Items.INGOTS_GOLD), Ingredient.fromTag(Tags.Items.INGOTS_GOLD), Ingredient.fromTag(Tags.Items.STORAGE_BLOCKS_IRON)).build(consumer, BloodMagic.rl(basePath + "reagent_magnetism")); TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicItems.REAGENT_FAST_MINER.get()), 128, 20, Ingredient.fromItems(Items.IRON_PICKAXE), Ingredient.fromItems(Items.IRON_AXE), Ingredient.fromItems(Items.IRON_SHOVEL), Ingredient.fromTag(Tags.Items.GUNPOWDER)).build(consumer, BloodMagic.rl(basePath + "reagent_fastminer")); + TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicBlocks.DEMON_CRUCIBLE.get()), 400, 100, Ingredient.fromItems(Items.CAULDRON), Ingredient.fromTag(Tags.Items.STONE), Ingredient.fromTag(Tags.Items.GEMS_LAPIS), Ingredient.fromTag(Tags.Items.GEMS_DIAMOND)).build(consumer, BloodMagic.rl(basePath + "demon_crucible")); + TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicBlocks.DEMON_CRYSTALLIZER.get()), 500, 100, Ingredient.fromItems(BloodMagicBlocks.SOUL_FORGE.get()), Ingredient.fromTag(Tags.Items.STONE), Ingredient.fromTag(Tags.Items.GEMS_LAPIS), Ingredient.fromTag(Tags.Items.GLASS)).build(consumer, BloodMagic.rl(basePath + "demon_crystallizer")); + TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicItems.SANGUINE_REVERTER.get()), 350, 30, Ingredient.fromItems(Items.SHEARS), Ingredient.fromTag(Tags.Items.STONE), Ingredient.fromItems(BloodMagicItems.IMBUED_SLATE.get()), Ingredient.fromTag(Tags.Items.INGOTS_IRON)).build(consumer, BloodMagic.rl(basePath + "sanguine_reverter")); + TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicItems.PRIMITIVE_CRYSTALLINE_RESONATOR.get()), 1200, 200, Ingredient.fromTag(Tags.Items.STONE), Ingredient.fromTag(Tags.Items.INGOTS), Ingredient.fromItems(BloodMagicItems.RAW_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.RAW_CRYSTAL.get())).build(consumer, BloodMagic.rl(basePath + "primitive_crystalline_resonator")); + + TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicBlocks.RAW_CRYSTAL_BLOCK.get()), 1200, 100, Ingredient.fromItems(BloodMagicItems.RAW_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.RAW_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.RAW_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.RAW_CRYSTAL.get())).build(consumer, BloodMagic.rl(basePath + "raw_crystal_block")); + TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicBlocks.CORROSIVE_CRYSTAL_BLOCK.get()), 1200, 100, Ingredient.fromItems(BloodMagicItems.CORROSIVE_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.CORROSIVE_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.CORROSIVE_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.CORROSIVE_CRYSTAL.get())).build(consumer, BloodMagic.rl(basePath + "corrosive_crystal_block")); + TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicBlocks.DESTRUCTIVE_CRYSTAL_BLOCK.get()), 1200, 100, Ingredient.fromItems(BloodMagicItems.DESTRUCTIVE_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.DESTRUCTIVE_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.DESTRUCTIVE_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.DESTRUCTIVE_CRYSTAL.get())).build(consumer, BloodMagic.rl(basePath + "destructive_crystal_block")); + TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicBlocks.VENGEFUL_CRYSTAL_BLOCK.get()), 1200, 100, Ingredient.fromItems(BloodMagicItems.VENGEFUL_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.VENGEFUL_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.VENGEFUL_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.VENGEFUL_CRYSTAL.get())).build(consumer, BloodMagic.rl(basePath + "vengeful_crystal_block")); + TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicBlocks.STEADFAST_CRYSTAL_BLOCK.get()), 1200, 100, Ingredient.fromItems(BloodMagicItems.STEADFAST_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.STEADFAST_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.STEADFAST_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.STEADFAST_CRYSTAL.get())).build(consumer, BloodMagic.rl(basePath + "steadfast_crystal_block")); } } diff --git a/src/main/java/wayoftime/bloodmagic/common/tags/BloodMagicTags.java b/src/main/java/wayoftime/bloodmagic/common/tags/BloodMagicTags.java index 0075ce4b..7fc61032 100644 --- a/src/main/java/wayoftime/bloodmagic/common/tags/BloodMagicTags.java +++ b/src/main/java/wayoftime/bloodmagic/common/tags/BloodMagicTags.java @@ -12,16 +12,50 @@ public class BloodMagicTags public static final ITag.INamedTag ARC_TOOL_REVERTER = ItemTags.makeWrapperTag("bloodmagic:arc/reverter"); public static final ITag.INamedTag ARC_TOOL_EXPLOSIVE = ItemTags.makeWrapperTag("bloodmagic:arc/explosive"); public static final ITag.INamedTag ARC_TOOL_HYDRATE = ItemTags.makeWrapperTag("bloodmagic:arc/hydrate"); + public static final ITag.INamedTag ARC_TOOL_RESONATOR = ItemTags.makeWrapperTag("bloodmagic:arc/resonator"); + public static final ITag.INamedTag ARC_TOOL_CUTTINGFLUID = ItemTags.makeWrapperTag("bloodmagic:arc/cuttingfluid"); - // Dusts + public static final ITag.INamedTag CRYSTAL_DEMON = ItemTags.makeWrapperTag("bloodmagic:crystals/demon"); + + // Ores + public static final ITag.INamedTag ORE_COPPER = getForgeOreTag("copper"); + public static final ITag.INamedTag ORE_TIN = getForgeOreTag("tin"); + public static final ITag.INamedTag ORE_LEAD = getForgeOreTag("lead"); + public static final ITag.INamedTag ORE_OSMIUM = getForgeOreTag("osmium"); + public static final ITag.INamedTag ORE_SILVER = getForgeOreTag("silver"); + + // 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"); + // Fragments + public static final ITag.INamedTag FRAGMENT_IRON = getFragmentTag("iron"); + public static final ITag.INamedTag FRAGMENT_GOLD = getFragmentTag("gold"); + + // Gravels + public static final ITag.INamedTag GRAVEL_IRON = getGravelTag("iron"); + public static final ITag.INamedTag GRAVEL_GOLD = getGravelTag("gold"); + + public static ITag.INamedTag getForgeOreTag(String name) + { + return ItemTags.makeWrapperTag("forge:ores/" + name); + } + public static ITag.INamedTag getForgeDustTag(String name) { return ItemTags.makeWrapperTag("forge:dusts/" + name); } + + public static ITag.INamedTag getFragmentTag(String name) + { + return ItemTags.makeWrapperTag("bloodmagic:fragments/" + name); + } + + public static ITag.INamedTag getGravelTag(String name) + { + return ItemTags.makeWrapperTag("bloodmagic:gravels/" + name); + } } diff --git a/src/main/java/wayoftime/bloodmagic/compat/jei/forge/TartaricForgeRecipeCategory.java b/src/main/java/wayoftime/bloodmagic/compat/jei/forge/TartaricForgeRecipeCategory.java index 44d1fdd3..590ff6c3 100644 --- a/src/main/java/wayoftime/bloodmagic/compat/jei/forge/TartaricForgeRecipeCategory.java +++ b/src/main/java/wayoftime/bloodmagic/compat/jei/forge/TartaricForgeRecipeCategory.java @@ -153,11 +153,11 @@ public class TartaricForgeRecipeCategory implements IRecipeCategory TYPE; @@ -113,8 +115,8 @@ public class TileAlchemicalReactionChamber extends TileInventory implements ITic ItemStack fullBucketStack = this.getStackInSlot(INPUT_BUCKET_SLOT); ItemStack emptyBucketStack = this.getStackInSlot(OUTPUT_BUCKET_SLOT); - ItemStack[] outputInventory = new ItemStack[] - { getStackInSlot(1), getStackInSlot(2), getStackInSlot(3), getStackInSlot(4), getStackInSlot(5) }; + ItemStack[] outputInventory = new ItemStack[] { getStackInSlot(1), getStackInSlot(2), getStackInSlot(3), + getStackInSlot(4), getStackInSlot(5) }; MultiSlotItemHandler outputSlotHandler = new MultiSlotItemHandler(outputInventory, 64); @@ -365,4 +367,49 @@ public class TileAlchemicalReactionChamber extends TileInventory implements ITic { return currentProgress; } + + @Override + public int[] getSlotsForFace(Direction side) + { + switch (side) + { + case UP: + return new int[] { ARC_TOOL_SLOT }; + case DOWN: + return new int[] { 1, 2, 3, 4, 5 }; + default: + return new int[] { 6, 7, 8 }; + } + } + + @Override + public boolean canInsertItem(int index, ItemStack itemStack, Direction direction) + { + if (index == INPUT_BUCKET_SLOT || index == OUTPUT_BUCKET_SLOT) + { + Optional fluidStackOptional = FluidUtil.getFluidContained(itemStack); + + return fluidStackOptional.isPresent() + && ((index == OUTPUT_BUCKET_SLOT && !fluidStackOptional.get().isEmpty()) + || (index == INPUT_BUCKET_SLOT && fluidStackOptional.get().isEmpty())); + } + + if (index >= OUTPUT_SLOT && index < OUTPUT_SLOT + NUM_OUTPUTS) + { + return false; + } + + if (index == ARC_TOOL_SLOT) + { + return itemStack.getItem().isIn(BloodMagicTags.ARC_TOOL); + } + + return true; + } + + @Override + public boolean canExtractItem(int index, ItemStack stack, Direction direction) + { + return index >= OUTPUT_SLOT && index < OUTPUT_SLOT + NUM_OUTPUTS; + } } \ No newline at end of file diff --git a/src/main/java/wayoftime/bloodmagic/tile/TileDemonCrystal.java b/src/main/java/wayoftime/bloodmagic/tile/TileDemonCrystal.java index f091ec66..d62fe823 100644 --- a/src/main/java/wayoftime/bloodmagic/tile/TileDemonCrystal.java +++ b/src/main/java/wayoftime/bloodmagic/tile/TileDemonCrystal.java @@ -15,8 +15,8 @@ import wayoftime.bloodmagic.will.EnumDemonWillType; public class TileDemonCrystal extends TileTicking { - public static final double sameWillConversionRate = 50; - public static final double defaultWillConversionRate = 100; + public static final double sameWillConversionRate = 45; + public static final double defaultWillConversionRate = 90; public static final double timeDelayForWrongWill = 0.6; public final int maxWill = 100; public final double drainRate = 1; @@ -49,7 +49,7 @@ public class TileDemonCrystal extends TileTicking @Override public void onUpdate() { - if (getWorld().isRemote) + if (world.isRemote) { return; } @@ -163,7 +163,6 @@ public class TileDemonCrystal extends TileTicking int crystalCount = getCrystalCount(); if (!getWorld().isRemote && crystalCount > 1) { - BlockState state = getWorld().getBlockState(pos); EnumDemonWillType type = getWillType(); // EnumDemonWillType type = state.getValue(BlockDemonCrystal.TYPE); ItemStack stack = BlockDemonCrystal.getItemStackDropped(type, 1); @@ -181,6 +180,7 @@ public class TileDemonCrystal extends TileTicking public double getCrystalGrowthPerSecond(double will) { +// return 0.1; return 1.0 / 200 * Math.sqrt(will / 200); } @@ -204,7 +204,7 @@ public class TileDemonCrystal extends TileTicking public int getCrystalCount() { BlockState state = world.getBlockState(getPos()); - return state.get(BlockDemonCrystal.AGE); + return state.get(BlockDemonCrystal.AGE) + 1; } public void setCrystalCount(int crystalCount) diff --git a/src/main/java/wayoftime/bloodmagic/tile/TileDemonCrystallizer.java b/src/main/java/wayoftime/bloodmagic/tile/TileDemonCrystallizer.java new file mode 100644 index 00000000..b8cefb0d --- /dev/null +++ b/src/main/java/wayoftime/bloodmagic/tile/TileDemonCrystallizer.java @@ -0,0 +1,187 @@ +package wayoftime.bloodmagic.tile; + +import net.minecraft.block.Block; +import net.minecraft.nbt.CompoundNBT; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.tileentity.TileEntityType; +import net.minecraft.util.Direction; +import net.minecraft.util.math.BlockPos; +import net.minecraftforge.registries.ObjectHolder; +import wayoftime.bloodmagic.common.block.BloodMagicBlocks; +import wayoftime.bloodmagic.demonaura.WorldDemonWillHandler; +import wayoftime.bloodmagic.tile.base.TileTicking; +import wayoftime.bloodmagic.will.DemonWillHolder; +import wayoftime.bloodmagic.will.EnumDemonWillType; +import wayoftime.bloodmagic.will.IDemonWillConduit; + +public class TileDemonCrystallizer extends TileTicking implements IDemonWillConduit +{ + @ObjectHolder("bloodmagic:demoncrystallizer") + public static TileEntityType TYPE; + + public static final int maxWill = 100; + public static final double drainRate = 1; + public static final double willToFormCrystal = 99; + public static final double totalFormationTime = 1000; + // The whole purpose of this block is to grow a crystal initially. The + // acceleration and crystal growing is up to the crystal itself afterwards. + public DemonWillHolder holder = new DemonWillHolder(); + public double internalCounter = 0; + + public TileDemonCrystallizer(TileEntityType type) + { + super(type); + } + + public TileDemonCrystallizer() + { + this(TYPE); + } + + @Override + public void onUpdate() + { + if (world.isRemote) + { + return; + } + + BlockPos offsetPos = pos.offset(Direction.UP); + if (getWorld().isAirBlock(offsetPos)) // Room for a crystal to grow + { + EnumDemonWillType highestType = WorldDemonWillHandler.getHighestDemonWillType(getWorld(), pos); + double amount = WorldDemonWillHandler.getCurrentWill(getWorld(), pos, highestType); + if (amount >= willToFormCrystal) + { + internalCounter += getCrystalFormationRate(amount); + if (internalCounter >= totalFormationTime) + { + if (WorldDemonWillHandler.drainWill(getWorld(), getPos(), highestType, willToFormCrystal, false) >= willToFormCrystal) + { + if (formCrystal(highestType, offsetPos)) + { + WorldDemonWillHandler.drainWill(getWorld(), getPos(), highestType, willToFormCrystal, true); + internalCounter = 0; + } + } + } + } + } + } + + public boolean formCrystal(EnumDemonWillType type, BlockPos position) + { + Block block = BloodMagicBlocks.RAW_CRYSTAL_BLOCK.get(); + switch (type) + { + case CORROSIVE: + block = BloodMagicBlocks.CORROSIVE_CRYSTAL_BLOCK.get(); + break; + case DESTRUCTIVE: + block = BloodMagicBlocks.DESTRUCTIVE_CRYSTAL_BLOCK.get(); + break; + case STEADFAST: + block = BloodMagicBlocks.STEADFAST_CRYSTAL_BLOCK.get(); + break; + case VENGEFUL: + block = BloodMagicBlocks.VENGEFUL_CRYSTAL_BLOCK.get(); + break; + default: + break; + } + getWorld().setBlockState(position, block.getDefaultState()); + TileEntity tile = getWorld().getTileEntity(position); + if (tile instanceof TileDemonCrystal) + { + ((TileDemonCrystal) tile).setPlacement(Direction.UP); + return true; + } + + return false; + } + + public double getCrystalFormationRate(double currentWill) + { + return 1; + } + + @Override + public void deserialize(CompoundNBT tag) + { + holder.readFromNBT(tag, "Will"); + internalCounter = tag.getDouble("internalCounter"); + } + + @Override + public CompoundNBT serialize(CompoundNBT tag) + { + holder.writeToNBT(tag, "Will"); + tag.putDouble("internalCounter", internalCounter); + return tag; + } + + // IDemonWillConduit + + @Override + public int getWeight() + { + return 10; + } + + @Override + public double fillDemonWill(EnumDemonWillType type, double amount, boolean doFill) + { + if (amount <= 0) + { + return 0; + } + + if (!canFill(type)) + { + return 0; + } + + if (!doFill) + { + return Math.min(maxWill - holder.getWill(type), amount); + } + + return holder.addWill(type, amount, maxWill); + } + + @Override + public double drainDemonWill(EnumDemonWillType type, double amount, boolean doDrain) + { + double drained = amount; + double current = holder.getWill(type); + if (current < drained) + { + drained = current; + } + + if (doDrain) + { + return holder.drainWill(type, amount); + } + + return drained; + } + + @Override + public boolean canFill(EnumDemonWillType type) + { + return true; + } + + @Override + public boolean canDrain(EnumDemonWillType type) + { + return true; + } + + @Override + public double getCurrentWill(EnumDemonWillType type) + { + return holder.getWill(type); + } +} diff --git a/src/main/resources/assets/bloodmagic/textures/item/copperfragment.png b/src/main/resources/assets/bloodmagic/textures/item/copperfragment.png new file mode 100644 index 0000000000000000000000000000000000000000..b668f31a8a7139d0d75ffdd35c61e1bed4a4318d GIT binary patch literal 889 zcmV-<1BU#GP)EX>4Tx04R}tkv&MmKpe$iQ$;D23U*L&$WWauh>AE$6^me@v=v%)FuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La) z#baVNw<`9$B7h-;5kkMjOg)ia%)oPe-NVP%yC~1{KKJM7Q}QMQd?N82(+!JwgLr1s z(mC%FhgnHdh|h_~4Z0xlBiCh@-#8Z?7I5bWxZD8-pLEHP9LY~pC=`JAGy0|+FmMY5*4*A&`#607GSt=b4RCM> zj1?(+-Q(T8oxS~grq$mMVS;j?z&5&G00006VoOIv00000008+zyMF)x010qNS#tmY z4X^+J4X^=yWm)A?9U>@)%Ygs@0d`45K~y-)wNt-K0&yIDcb=Sj zgM-u(I0OaW5hN!Ewj5I3;N%!IG}h427(}CM|3FhB4MAhIIy5vS*y*VaU4q zZ!n{lMNuS@B;lG6%m_EX>4Tx04R}tkv&MmKpe$iQ$;D23U*L&$WWauh>AE$6^me@v=v%)FuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La) z#baVNw<`9$B7h-;5kkMjOg)ia%)oPe-NVP%yC~1{KKJM7Q}QMQd?N82(+!JwgLr1s z(mC%FhgnHdh|h_~4Z0xlBiCh@-#8Z?7I5bWxZD8-pLEHP9LY~pC=`JAGy0|+FmMY5*4*A&`#607GSt=b4RCM> zj1?(+-Q(T8oxS~grq$mMVS;j?z&5&G00006VoOIv00000008+zyMF)x010qNS#tmY z4X^+J4X^=yWm)A?AU0UFS3&>)0gFjQK~y-)?UJ!e8*v=PKbIVh zNn5<=Su7EfVC$9;B$vrS4xtK;4hHc*aCUR<(xt0g=Yn+5OwY7|5xn3G(R z67Mb-^XnwkCfcc6-}wE0-{ZZ<7yjc#%+1aUUDw4+H-YCC`Fvh1j17`V#L4BfXGP?G z!(2`isZ@%ZEHmzTtYnjX9*c?Z8$YDKI?#1pWV0Hg+r>0Z=7zgiw^t;`KhiHw;7@WU zli}0rdmP8Xy0ci@D)RO48VLvn13hu1-)(=%&v0g(auZLZ*#>)&3GQ1hreD?Av_oib zd=#g~db!2+&aU*NgJe8G(T{QwdPnR0oFV&)$(YBMr?T-Nk-R?Oa(D#0VG|0C_Lk^) z9fbmsF5(f6r|(2y%7MGmzG4^_fb`qMx#O1vQQL- znOK-+`INKwDUM1<6bePDufSs$Q6vSGEPsn`*9+63>#XvZW kEXy>1HYt@1>7Ts&FUP@~to-g}d;kCd07*qoM6N<$f_F`yg8%>k literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/bloodmagic/textures/item/coppersand.png b/src/main/resources/assets/bloodmagic/textures/item/coppersand.png new file mode 100644 index 0000000000000000000000000000000000000000..586ec8d6d93163fd1920b8f5a277560be3e936d8 GIT binary patch literal 928 zcmV;R17G}!P)EX>4Tx04R}tkv&MmKpe$iQ$;D23U*L&$WWauh>AE$6^me@v=v%)FuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La) z#baVNw<`9$B7h-;5kkMjOg)ia%)oPe-NVP%yC~1{KKJM7Q}QMQd?N82(+!JwgLr1s z(mC%FhgnHdh|h_~4Z0xlBiCh@-#8Z?7I5bWxZD8-pLEHP9LY~pC=`JAGy0|+FmMY5*4*A&`#607GSt=b4RCM> zj1?(+-Q(T8oxS~grq$mMVS;j?z&5&G00006VoOIv00000008+zyMF)x010qNS#tmY z3ljhU3ljkVnw%H_000McNliruA?86cwNZ>azP0i8)iK~y-)&62xoQ*ji>KQ~E@ zkBUnPMX4_ktqRh#R!mBzTtTqK`m=+&)UB6xDQ=ElXvWNv!KL{FE{G3s?qUSF2Ko5| zi-Um#egvfD7M14aI3-|Tii@7{ob&yhC;azjtrcsn>=sY#C3erBl9{oQE@-Em)NbO5 z!ILt1PL95-yS}U1M#@Q2Kt(DvPEHn8m$$e>-7U!6~p6Br3WggzWwGEQk zI_q?9h$l~%NhKU=jRxnA_ObeKhN$#gEuz3~w~K3k@* zcRvTyX|9gD9O*qo?eizr*S;bmL{Ws+S^!d>=TRsW0BDO~*EWdbnBl4WY?>+`-mb9O zig{gKCHnTA$p;=`7!rmd07+wvU$566yROTRWSSQ*UvZ!($wo`4zF8p_;rTnm9dD6~ zqd6*-3PBJ!#u)#X+iH11cCG0&+BxewHBq+j#d8%@>jxtVm|>N-OFijG=~`g0000EX>4Tx04R}tkv&MmKpe$iQ$;D23U*L&$WWauh>AE$6^me@v=v%)FuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La) z#baVNw<`9$B7h-;5kkMjOg)ia%)oPe-NVP%yC~1{KKJM7Q}QMQd?N82(+!JwgLr1s z(mC%FhgnHdh|h_~4Z0xlBiCh@-#8Z?7I5bWxZD8-pLEHP9LY~pC=`JAGy0|+FmMY5*4*A&`#607GSt=b4RCM> zj1?(+-Q(T8oxS~grq$mMVS;j?z&5&G00006VoOIv0O0`P0O6C`J!t>{010qNS#tmY z4X^+J4X^=yWm)A>G8KSe=(+#^0;x$vK~y-)t&>Yn6JZ#IpDCTT z%uG82C`BT25wzH(ATa`B)WnSo{Sl^dCmS_ljK&x*F)rMgm}u<(aA(jEOzM z(o%$$X*->v)6a$4nz+=ndf&x)7ANPxKT7)Zi5@vB6ive_mB8bntEZQmaIvfkh4pnD z%cAO5Nxyhe_j!LG1EXW&;KX6d#Ug8&6~>Pp!xe(%#YJq}CK`=WDwOH1T8HV|%=-TU^@9UBsLfTrtw zN~JLK1)BVRo}M|)p37G;H#hm7TjR^(XGX`z>FVyGY?>IlLC`R$1DaKpj?PYoZ{NX# z#PIkbW+u-PxpIvTkHpZ(0g7b{*LCTOL;z9G&GR!#3AZL#fBcBpjaz)rpHFw4S?&qD4I$po8|S?1^TBh<5*>Cl0@aFw*IEgWWbWd+$MV_9XIn!J?CWdh9s z5~*bYHGL_k#uC<>0_u#w9#_iG3LMLz(cY#^F{-}Hh20000< KMNUMnLSTX_9VN^F literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/bloodmagic/textures/item/goldfragment.png b/src/main/resources/assets/bloodmagic/textures/item/goldfragment.png new file mode 100644 index 0000000000000000000000000000000000000000..24d21b30792f5c2180ba1ad5f5d808a668c82f81 GIT binary patch literal 876 zcmV-y1C#uTP)EX>4Tx04R}tkv&MmKpe$iQ$;D23U*L&$WWauh>AE$6^me@v=v%)FuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La) z#baVNw<`9$B7h-;5kkMjOg)ia%)oPe-NVP%yC~1{KKJM7Q}QMQd?N82(+!JwgLr1s z(mC%FhgnHdh|h_~4Z0xlBiCh@-#8Z?7I5bWxZD8-pLEHP9LY~pC=`JAGy0|+FmMY5*4*A&`#607GSt=b4RCM> zj1?(+-Q(T8oxS~grq$mMVS;j?z&5&G00006VoOIv0O0`P0O6C`J!t>{010qNS#tmY z4X^+J4X^=yWm)A>5E8kzJ2?OV0clA@K~y-)wNpK7!T=C`k%U;K zIEbrLmqt5Cf{-pYgCbIJ>srSyPJ;iyMd;eKyPaAZx>#^bVR-Q(VUJYb(lrBbx5Ca^IX2tW`7+NpaclOf-KqK}6>Ns>eWu#Dfqt|N=0 zNa=JM)#@{1F$LMIg}LWZp-_P1IMna=nO{c`MUgt44(jzYgu`K2mW5WUg%?djrE&tE z=eH^F;lE$N2XJ-N!|mH8a=9E9<~i)gS1cAkDa1{jU*P%K`f*XEX>4Tx04R}tkv&MmKpe$iQ$;D23U*L&$WWauh>AE$6^me@v=v%)FuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La) z#baVNw<`9$B7h-;5kkMjOg)ia%)oPe-NVP%yC~1{KKJM7Q}QMQd?N82(+!JwgLr1s z(mC%FhgnHdh|h_~4Z0xlBiCh@-#8Z?7I5bWxZD8-pLEHP9LY~pC=`JAGy0|+FmMY5*4*A&`#607GSt=b4RCM> zj1?(+-Q(T8oxS~grq$mMVS;j?z&5&G00006VoOIv0O0`P0O6C`J!t>{010qNS#tmY z4X^+J4X^=yWm)A>6*l<7E3E(k0f0WoPWH5@L$|)uz|8k!zF~lWeXCxtmn2D|?`BM2HT-@*?a$cYa5O^{1^N|06a{j* zT#!#ZXmz$Al}cl1&__Q4NRmWdT>_|9LpGa5Xt5LeeIJ~y?PwIo^wG@oJl0oAP*oMV zd=CBnGJK;127uXY`Z|s%3RJBgl6F5%E6dA76r*q`M02yVL=>Z`$w`XG=248$JQlN(JR|8L~V8 zEgHt$k_Ux?9k+Ma&@>GbryMwrgRZkM^zsXUc^hLS5Fkz0!Eqdl#Uk!J8Q?r<}fN14-Df7YJMB@5e7!pcxP@1sEc>IsmW%8#bUwZ h(<2n+nE8`;e+JXHsj#2d(`*0$002ovPDHLkV1hTukgxy% literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/bloodmagic/textures/item/ironfragment.png b/src/main/resources/assets/bloodmagic/textures/item/ironfragment.png new file mode 100644 index 0000000000000000000000000000000000000000..dd381fb5c8eab7977f1760fa098d46844890eab5 GIT binary patch literal 903 zcmV;219<$2P)EX>4Tx04R}tkv&MmKpe$iQ$;D23U*L&$WWauh>AE$6^me@v=v%)FuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La) z#baVNw<`9$B7h-;5kkMjOg)ia%)oPe-NVP%yC~1{KKJM7Q}QMQd?N82(+!JwgLr1s z(mC%FhgnHdh|h_~4Z0xlBiCh@-#8Z?7I5bWxZD8-pLEHP9LY~pC=`JAGy0|+FmMY5*4*A&`#607GSt=b4RCM> zj1?(+-Q(T8oxS~grq$mMVS;j?z&5&G00006VoOIv0O0`P0O6C`J!t>{010qNS#tmY z4X^+J4X^=yWm)A>3>Pn}lIs8f0fb3JK~y-)wUfP18gUrMKR*OK zytp{2P1;SGFc9iX04>^GjfprlP5+LjqeB;0jp@`x6DJpS!9}B%hBQrq)8iK7W{Fch zIJg73r++{djET?sJkRHO`#$iTmPjO|S4^OrGtwU>IW;Lysy>&=h;i^ub~jdKa^j5u z#N+Y*V8Q#6)5)aF&b?*pxX4}0CzYPY^V;(9!+XAZo>-Qp9vtCaW=3|_K9e1PMV~;w zu9H9e&ffYesTW~1P3zu)?KoUoWducZD1c>mSX`K=VqI`uy&<4fcYuHAb9Cik*KJy! zNB&2Fndvn9e>&s~1&XDz>Usrza1giE2Gz&u$r%TmUsz7P=G?r%FwP@AmsqdYXgChK z9%g6l6Tg4`#C08)jdf@xONlO!FB d#pGE(_8*(ho+nYY&=UXv002ovPDHLkV1gNlnWO*! literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/bloodmagic/textures/item/irongravel.png b/src/main/resources/assets/bloodmagic/textures/item/irongravel.png new file mode 100644 index 0000000000000000000000000000000000000000..ee1a7b0acc38e1a1021a9a195be971169467d93f GIT binary patch literal 934 zcmV;X16lluP)EX>4Tx04R}tkv&MmKpe$iQ$;D23U*L&$WWauh>AE$6^me@v=v%)FuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La) z#baVNw<`9$B7h-;5kkMjOg)ia%)oPe-NVP%yC~1{KKJM7Q}QMQd?N82(+!JwgLr1s z(mC%FhgnHdh|h_~4Z0xlBiCh@-#8Z?7I5bWxZD8-pLEHP9LY~pC=`JAGy0|+FmMY5*4*A&`#607GSt=b4RCM> zj1?(+-Q(T8oxS~grq$mMVS;j?z&5&G00006VoOIv00RI500L8KbnO5D010qNS#tmY z4X^+J4X^=yWm)A=CJ^6dp;rI^0i#JoK~y-)?UKPu6mb;CKa(Tw z1}-a&26k{I0wLYTaHkHr!~~(>K?#X<@!%=w6dnR^<+(q=E?zx|;z6Wi1(F%I&dMCx z)a{U~ju<468Epe)Vnoi=NF`ZI?#1p^z_6KgtyYukN(%w-e834b}1Khr`$- zmE3WeP-7!6hkJQ%Y%v^j*dt@@-Su}Fw^Lh3y3)gj-oX(&q3f|@+ zzUNoJ!DuomT+c&M6l~kZIyfL44)eI{20MGZEX>4Tx04R}tkv&MmKpe$iQ$;D23U*L&$WWauh>AE$6^me@v=v%)FuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La) z#baVNw<`9$B7h-;5kkMjOg)ia%)oPe-NVP%yC~1{KKJM7Q}QMQd?N82(+!JwgLr1s z(mC%FhgnHdh|h_~4Z0xlBiCh@-#8Z?7I5bWxZD8-pLEHP9LY~pC=`JAGy0|+FmMY5*4*A&`#607GSt=b4RCM> zj1?(+-Q(T8oxS~grq$mMVS;j?z&5&G00006VoOIv00000008+zyMF)x010qNS#tmY z4X^+J4X^=yWm)B39RqFjBD(+p0vt(1K~y-)t&_b@8$lF>znNK& z*9nL}DMgA@K|;ca1;h(P0@(?9guDbrWQs^o1*PC6Qjsb@Aj}((hQbI$1X5565O#|& zyE`*C1@dC0R;y9~y!R-;IY$&ld|iIQtKEI_JV!+E-XkI?buT!IBE0t$fIg)D zZ4adskB5fXTdA@9d50uP$g&LAgSnnXYwaI^F$SeI&DV97zwDA_86|7ksW0JHYb-7< z7I|o`QA!nRG=NeHV+>kr_Eu`tcbeRFyOiUYqc`tyt2L6jIV6N4$N>x9d$iU>y>)dq z-m&m$9YomP-o`$E%Guc&u9t;~V2l~G;Jv@6D#cN&MYPqV`f-g9&)U5G^@PdE$ztdI zZ4`k12cTRoBf$5A1EQ@aKbF?m+}xzmXfVI9z}@XFA%wz$0hpMWSRWo99tcPq!}aww z&N;5Gt~ftGr_pHe^WuWb%S+NUrPJwbXaH+1&N)H|Mf0L48h8&64+|yzFbAqUJ3A|5 zV`Jobj&lxcZBd^79rR0eb92MV$%%S!Oi7Z6_ntV8i%_-Jgb+y6lt+~cX_j$(e609i Z^BZZD8I9DzD|7$=002ovPDHLkV1lsl*Af5# literal 0 HcmV?d00001