From 295488f144f3e7dd0ae30f24cbe92dc27b1a0d3d Mon Sep 17 00:00:00 2001 From: WayofTime Date: Sat, 21 Nov 2020 09:54:13 -0500 Subject: [PATCH] Finished adding the "Creeping Doubt" plant block. Still need to do some more work, such as adding the seeds and the material you get from the plant. --- build.gradle | 2 +- changelog.txt | 14 ++ src/generated/resources/.cache/cache | 11 ++ .../blockstates/creeping_doubt.json | 28 +++ .../models/block/creeping_doubt_1.json | 6 + .../models/block/creeping_doubt_2.json | 6 + .../models/block/creeping_doubt_3.json | 6 + .../models/block/creeping_doubt_4.json | 6 + .../models/block/creeping_doubt_5.json | 6 + .../models/block/creeping_doubt_6.json | 6 + .../models/block/creeping_doubt_7.json | 6 + .../models/block/creeping_doubt_8.json | 6 + .../models/item/creeping_doubt.json | 6 + .../loot_tables/blocks/creeping_doubt.json | 173 ++++++++++++++++++ .../bloodmagic/client/ClientEvents.java | 3 +- .../common/block/BlockGrowingDoubt.java | 45 +++++ .../common/block/BloodMagicBlocks.java | 26 ++- .../common/data/GeneratorBlockStates.java | 19 +- .../common/data/GeneratorItemModels.java | 1 + .../common/data/GeneratorLootTable.java | 15 ++ .../common/item/BloodMagicItems.java | 1 + .../util/handler/event/GenericHandler.java | 15 +- .../bloodmagic/models/item/doubt_bucket.json | 5 + .../textures/block/creeping_doubt_1.png | Bin 0 -> 608 bytes .../textures/block/creeping_doubt_2.png | Bin 0 -> 629 bytes .../textures/block/creeping_doubt_3.png | Bin 0 -> 667 bytes .../textures/block/creeping_doubt_4.png | Bin 0 -> 702 bytes .../textures/block/creeping_doubt_5.png | Bin 0 -> 696 bytes .../textures/block/creeping_doubt_6.png | Bin 0 -> 736 bytes .../textures/block/creeping_doubt_7.png | Bin 0 -> 783 bytes .../textures/block/creeping_doubt_8.png | Bin 0 -> 967 bytes .../textures/block/liquid_doubt_flowing.png | Bin 0 -> 12700 bytes .../block/liquid_doubt_flowing.png.mcmeta | 5 + .../textures/block/liquid_doubt_still.png | Bin 0 -> 12831 bytes .../block/liquid_doubt_still.png.mcmeta | 45 +++++ .../guide/en_us/entries/altar/bloodaltar.json | 4 +- 36 files changed, 451 insertions(+), 15 deletions(-) create mode 100644 src/generated/resources/assets/bloodmagic/blockstates/creeping_doubt.json create mode 100644 src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_1.json create mode 100644 src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_2.json create mode 100644 src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_3.json create mode 100644 src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_4.json create mode 100644 src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_5.json create mode 100644 src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_6.json create mode 100644 src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_7.json create mode 100644 src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_8.json create mode 100644 src/generated/resources/assets/bloodmagic/models/item/creeping_doubt.json create mode 100644 src/generated/resources/data/bloodmagic/loot_tables/blocks/creeping_doubt.json create mode 100644 src/main/java/wayoftime/bloodmagic/common/block/BlockGrowingDoubt.java create mode 100644 src/main/resources/assets/bloodmagic/models/item/doubt_bucket.json create mode 100644 src/main/resources/assets/bloodmagic/textures/block/creeping_doubt_1.png create mode 100644 src/main/resources/assets/bloodmagic/textures/block/creeping_doubt_2.png create mode 100644 src/main/resources/assets/bloodmagic/textures/block/creeping_doubt_3.png create mode 100644 src/main/resources/assets/bloodmagic/textures/block/creeping_doubt_4.png create mode 100644 src/main/resources/assets/bloodmagic/textures/block/creeping_doubt_5.png create mode 100644 src/main/resources/assets/bloodmagic/textures/block/creeping_doubt_6.png create mode 100644 src/main/resources/assets/bloodmagic/textures/block/creeping_doubt_7.png create mode 100644 src/main/resources/assets/bloodmagic/textures/block/creeping_doubt_8.png create mode 100644 src/main/resources/assets/bloodmagic/textures/block/liquid_doubt_flowing.png create mode 100644 src/main/resources/assets/bloodmagic/textures/block/liquid_doubt_flowing.png.mcmeta create mode 100644 src/main/resources/assets/bloodmagic/textures/block/liquid_doubt_still.png create mode 100644 src/main/resources/assets/bloodmagic/textures/block/liquid_doubt_still.png.mcmeta diff --git a/build.gradle b/build.gradle index 895a405b..88cd5e79 100644 --- a/build.gradle +++ b/build.gradle @@ -13,7 +13,7 @@ apply plugin: 'net.minecraftforge.gradle' apply plugin: 'eclipse' apply plugin: 'maven-publish' -version = '1.16.3-3.0.0-5' +version = '1.16.3-3.0.1-6' group = 'com.yourname.modid' // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = 'BloodMagic' diff --git a/changelog.txt b/changelog.txt index 98c18c43..38cbd0f5 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,17 @@ +------------------------------------------------------ +Version 3.0.1 +------------------------------------------------------ + +- Reimplemented the Incense Altar with all appropriate blocks. +- Added guide entries for the Incense Altar and Blood Altar. Other misc entries added, too. +- Fixed a server-related crash on the client on the Sigil of the Green Grove. +- Added ore processing to Ancient Debris. +- Readded the other Sentient Tool types (with one more on the way). +- Added a few WIP items that cannot be used yet - they're part of the D*$)@ D*#@(@* system that I'm adding for Tier 4. +- Added the API - It's still in flux, so expect it to change very soon! +- Probably forgot something important. + + ------------------------------------------------------ Version 2.4.3 ------------------------------------------------------ diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index f572a3fd..ead33962 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -8,6 +8,7 @@ cb435652c27b4978d8db83af2fd531ccaa82ada7 assets/bloodmagic/blockstates/accelerat 5f3898cc4891f85091fe6104800d6c88d9e85e29 assets/bloodmagic/blockstates/bloodstonebrick.json 631b579c38652efbcd9e5771d09ad6e476f3ba00 assets/bloodmagic/blockstates/chargingrune.json a35188b0244bf9808098c7d49d0af9bd32cef297 assets/bloodmagic/blockstates/corrosivedemoncrystal.json +b943c6433f295c168841aec3c3f62e525c5c9cc9 assets/bloodmagic/blockstates/creeping_doubt.json b696f680545dffa4d3fbcc83b4b81ab58ac69aef assets/bloodmagic/blockstates/destructivedemoncrystal.json 6bd58d1d02a40416cec29409dee7ef80038b26d5 assets/bloodmagic/blockstates/dislocationrune.json 0b7d0241c379d0b3a8a4fa2dae79d4f998800a1f assets/bloodmagic/blockstates/dungeon_brick1.json @@ -65,6 +66,14 @@ adf6c0b1e25451609486dc8c8cfbd9cf0f8c67f4 assets/bloodmagic/models/block/alchemic 3c83e090a1cff00e2bb2c7eb475785954b6eb980 assets/bloodmagic/models/block/bloodlight.json ae2ff1abd707f2193d04d235de8f0ce92ada1d0f assets/bloodmagic/models/block/bloodstonebrick.json 320827ad2feaa51a90ebb7064a70bdc6d3765203 assets/bloodmagic/models/block/chargingrune.json +d5d82916652aee95adb8c16c97788be0a0f9f9d6 assets/bloodmagic/models/block/creeping_doubt_1.json +3effbe56422e18a44138e13e33eb26ba33b9381f assets/bloodmagic/models/block/creeping_doubt_2.json +8a7e5bfc63d3de0987bd71c1237fb580a6317601 assets/bloodmagic/models/block/creeping_doubt_3.json +8c75a72923902d5000852728436313f5979e903a assets/bloodmagic/models/block/creeping_doubt_4.json +38d083dbe1852d6dc0995a46d63a8a6dbe2c31ac assets/bloodmagic/models/block/creeping_doubt_5.json +ec5fcd20fee4260f131c82ec0a6558cc4e70e781 assets/bloodmagic/models/block/creeping_doubt_6.json +f38c5b52e9215a3d819e0b35c590d8924ca84200 assets/bloodmagic/models/block/creeping_doubt_7.json +9b332dc0443cb28c08d3af52096b7dd4fb2b68cc assets/bloodmagic/models/block/creeping_doubt_8.json 17ed7bf0e4e0aba9fc6390c8fa46f02b63145b1c assets/bloodmagic/models/block/crystal/corrosivecrystal1.json 0ae47095829ba2218113131f29e0a870b7ac7c71 assets/bloodmagic/models/block/crystal/corrosivecrystal2.json f2fa5d770d52b5888d4fcba9161bc6485938cc21 assets/bloodmagic/models/block/crystal/corrosivecrystal3.json @@ -201,6 +210,7 @@ c795d1b7aa99ce27da63868f81bac615cf199c66 assets/bloodmagic/models/item/bloodston e8bdf0e3f557bb09c665312df380672e676f4382 assets/bloodmagic/models/item/corrosivedemoncrystal.json e4822c0c7e2a41b7b450839fb51b985ff36c4d0f assets/bloodmagic/models/item/corrupted_dust.json a14760b028650f41da69454701c1611e68a33056 assets/bloodmagic/models/item/corrupted_tinydust.json +9b332dc0443cb28c08d3af52096b7dd4fb2b68cc assets/bloodmagic/models/item/creeping_doubt.json 5ffcaf5c5378e51d9474b4e75fb3a9cae946a492 assets/bloodmagic/models/item/crystalline_resonator.json f404148f9df3a61da3c18175885ffa56b2a85a6a assets/bloodmagic/models/item/daggerofsacrifice.json 6b89387f771da9535a0234f1a267af1b6853724d assets/bloodmagic/models/item/defaultcrystal.json @@ -429,6 +439,7 @@ f1a8e3131d85077665563372cad868534a72fb31 data/bloodmagic/loot_tables/blocks/bloo f0827ad5bf71c06a71f50aeb0298c04d0cb1a1d9 data/bloodmagic/loot_tables/blocks/bloodstonebrick.json 779b809a2a51e6dab46f9e6799249f2f14653ebb data/bloodmagic/loot_tables/blocks/chargingrune.json 0d501e4eb447e84b38250ab1c396abe1218d129c data/bloodmagic/loot_tables/blocks/corrosivedemoncrystal.json +e59c93dcc8d42b3ddb71dad1695573b1c284213f data/bloodmagic/loot_tables/blocks/creeping_doubt.json 4c9ed83e7e7215f995df35054e96d2f4e5027016 data/bloodmagic/loot_tables/blocks/demoncrucible.json c590b923d28b3d7916932dfcb05091df815f71dd data/bloodmagic/loot_tables/blocks/demoncrystallizer.json b0ce964c69f63aa13350259279e5fe831ae18e2c data/bloodmagic/loot_tables/blocks/destructivedemoncrystal.json diff --git a/src/generated/resources/assets/bloodmagic/blockstates/creeping_doubt.json b/src/generated/resources/assets/bloodmagic/blockstates/creeping_doubt.json new file mode 100644 index 00000000..d7e819a0 --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/blockstates/creeping_doubt.json @@ -0,0 +1,28 @@ +{ + "variants": { + "age=0": { + "model": "bloodmagic:block/creeping_doubt_1" + }, + "age=1": { + "model": "bloodmagic:block/creeping_doubt_2" + }, + "age=2": { + "model": "bloodmagic:block/creeping_doubt_3" + }, + "age=3": { + "model": "bloodmagic:block/creeping_doubt_4" + }, + "age=4": { + "model": "bloodmagic:block/creeping_doubt_5" + }, + "age=5": { + "model": "bloodmagic:block/creeping_doubt_6" + }, + "age=6": { + "model": "bloodmagic:block/creeping_doubt_7" + }, + "age=7": { + "model": "bloodmagic:block/creeping_doubt_8" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_1.json b/src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_1.json new file mode 100644 index 00000000..2f9e67a5 --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "bloodmagic:block/creeping_doubt_1" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_2.json b/src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_2.json new file mode 100644 index 00000000..614b4b22 --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "bloodmagic:block/creeping_doubt_2" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_3.json b/src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_3.json new file mode 100644 index 00000000..b8c6af48 --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "bloodmagic:block/creeping_doubt_3" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_4.json b/src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_4.json new file mode 100644 index 00000000..a9f300dd --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_4.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "bloodmagic:block/creeping_doubt_4" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_5.json b/src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_5.json new file mode 100644 index 00000000..cba7434f --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_5.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "bloodmagic:block/creeping_doubt_5" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_6.json b/src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_6.json new file mode 100644 index 00000000..ebe9679d --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_6.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "bloodmagic:block/creeping_doubt_6" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_7.json b/src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_7.json new file mode 100644 index 00000000..d0b2d010 --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_7.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "bloodmagic:block/creeping_doubt_7" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_8.json b/src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_8.json new file mode 100644 index 00000000..9763321c --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/block/creeping_doubt_8.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "bloodmagic:block/creeping_doubt_8" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bloodmagic/models/item/creeping_doubt.json b/src/generated/resources/assets/bloodmagic/models/item/creeping_doubt.json new file mode 100644 index 00000000..9763321c --- /dev/null +++ b/src/generated/resources/assets/bloodmagic/models/item/creeping_doubt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "bloodmagic:block/creeping_doubt_8" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/loot_tables/blocks/creeping_doubt.json b/src/generated/resources/data/bloodmagic/loot_tables/blocks/creeping_doubt.json new file mode 100644 index 00000000..2c5b9549 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/loot_tables/blocks/creeping_doubt.json @@ -0,0 +1,173 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "bloodmagic:creeping_doubt", + "properties": { + "age": "0" + } + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": 1 + } + ], + "name": "bloodmagic:weakbloodshard" + } + ] + }, + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "bloodmagic:creeping_doubt", + "properties": { + "age": "1" + } + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": 1 + } + ], + "name": "bloodmagic:weakbloodshard" + } + ] + }, + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "bloodmagic:creeping_doubt", + "properties": { + "age": "2" + } + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": 1 + } + ], + "name": "bloodmagic:weakbloodshard" + } + ] + }, + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "bloodmagic:creeping_doubt", + "properties": { + "age": "3" + } + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": 1 + } + ], + "name": "bloodmagic:weakbloodshard" + } + ] + }, + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "bloodmagic:creeping_doubt", + "properties": { + "age": "4" + } + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": 1 + } + ], + "name": "bloodmagic:weakbloodshard" + } + ] + }, + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "bloodmagic:creeping_doubt", + "properties": { + "age": "5" + } + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": 1 + } + ], + "name": "bloodmagic:weakbloodshard" + } + ] + }, + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "bloodmagic:creeping_doubt", + "properties": { + "age": "6" + } + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": 1 + } + ], + "name": "bloodmagic:weakbloodshard" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/java/wayoftime/bloodmagic/client/ClientEvents.java b/src/main/java/wayoftime/bloodmagic/client/ClientEvents.java index 002d0832..8e6e8fd4 100644 --- a/src/main/java/wayoftime/bloodmagic/client/ClientEvents.java +++ b/src/main/java/wayoftime/bloodmagic/client/ClientEvents.java @@ -18,6 +18,7 @@ import net.minecraftforge.fml.client.registry.RenderingRegistry; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; import wayoftime.bloodmagic.BloodMagic; +import wayoftime.bloodmagic.api.item.IMultiWillTool; import wayoftime.bloodmagic.client.render.block.RenderAlchemyArray; import wayoftime.bloodmagic.client.render.block.RenderAltar; import wayoftime.bloodmagic.client.render.block.RenderDemonCrucible; @@ -32,7 +33,6 @@ import wayoftime.bloodmagic.common.item.ItemSacrificialDagger; import wayoftime.bloodmagic.common.item.sigil.ItemSigilToggleable; import wayoftime.bloodmagic.common.item.soul.ItemSentientSword; import wayoftime.bloodmagic.common.registries.BloodMagicEntityTypes; -import wayoftime.bloodmagic.api.item.IMultiWillTool; import wayoftime.bloodmagic.tile.TileAlchemyArray; import wayoftime.bloodmagic.tile.TileAltar; import wayoftime.bloodmagic.tile.TileDemonCrucible; @@ -65,6 +65,7 @@ public class ClientEvents DeferredWorkQueue.runLater(() -> { RenderType rendertype = RenderType.getCutoutMipped(); RenderTypeLookup.setRenderLayer(BloodMagicBlocks.ALCHEMY_TABLE.get(), rendertype); + RenderTypeLookup.setRenderLayer(BloodMagicBlocks.GROWING_DOUBT.get(), rendertype); ClientEvents.registerContainerScreens(); diff --git a/src/main/java/wayoftime/bloodmagic/common/block/BlockGrowingDoubt.java b/src/main/java/wayoftime/bloodmagic/common/block/BlockGrowingDoubt.java new file mode 100644 index 00000000..a56760c5 --- /dev/null +++ b/src/main/java/wayoftime/bloodmagic/common/block/BlockGrowingDoubt.java @@ -0,0 +1,45 @@ +package wayoftime.bloodmagic.common.block; + +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.CropsBlock; +import net.minecraft.item.Items; +import net.minecraft.util.IItemProvider; +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; + +public class BlockGrowingDoubt extends CropsBlock +{ + private static final VoxelShape[] SHAPES = new VoxelShape[] { + Block.makeCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 4.0D, 16.0D), + Block.makeCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 6.0D, 16.0D), + Block.makeCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 7.0D, 16.0D), + Block.makeCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 9.0D, 16.0D), + Block.makeCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 10.0D, 16.0D), + Block.makeCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 11.0D, 16.0D), + Block.makeCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 14.0D, 16.0D), + Block.makeCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 16.0D, 16.0D) }; + + public BlockGrowingDoubt(AbstractBlock.Properties properties) + { + super(properties); + } + + protected boolean isValidGround(BlockState state, IBlockReader worldIn, BlockPos pos) + { + return state.isIn(BloodMagicBlocks.NETHER_SOIL.get()); + } + + protected IItemProvider getSeedsItem() + { + return Items.POTATO; + } + + public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) + { + return SHAPES[state.get(this.getAgeProperty())]; + } +} diff --git a/src/main/java/wayoftime/bloodmagic/common/block/BloodMagicBlocks.java b/src/main/java/wayoftime/bloodmagic/common/block/BloodMagicBlocks.java index 0c4591a6..97f75b94 100644 --- a/src/main/java/wayoftime/bloodmagic/common/block/BloodMagicBlocks.java +++ b/src/main/java/wayoftime/bloodmagic/common/block/BloodMagicBlocks.java @@ -4,7 +4,6 @@ import net.minecraft.block.AbstractBlock; import net.minecraft.block.AbstractBlock.Properties; import net.minecraft.block.Block; import net.minecraft.block.BlockState; -import net.minecraft.block.FarmlandBlock; import net.minecraft.block.FenceGateBlock; import net.minecraft.block.FlowingFluidBlock; import net.minecraft.block.RotatedPillarBlock; @@ -19,6 +18,7 @@ import net.minecraft.item.BucketItem; import net.minecraft.item.Item; import net.minecraft.item.Items; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.SoundEvents; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockReader; import net.minecraftforge.common.ToolType; @@ -105,16 +105,28 @@ public class BloodMagicBlocks public static final RegistryObject MIMIC = BLOCKS.register("mimic", () -> new BlockMimic(Properties.create(Material.IRON).sound(SoundType.METAL).hardnessAndResistance(2.0f).setOpaque(BloodMagicBlocks::isntSolid).setSuffocates(BloodMagicBlocks::isntSolid).setBlocksVision(BloodMagicBlocks::isntSolid).notSolid())); public static final RegistryObject ETHEREAL_MIMIC = BLOCKS.register("ethereal_mimic", () -> new BlockMimic(Properties.create(Material.IRON).sound(SoundType.METAL).hardnessAndResistance(2.0f).setOpaque(BloodMagicBlocks::isntSolid).setSuffocates(BloodMagicBlocks::isntSolid).setBlocksVision(BloodMagicBlocks::isntSolid).notSolid().doesNotBlockMovement())); - private static ForgeFlowingFluid.Properties makeProperties() + private static ForgeFlowingFluid.Properties makeLifeEssenceProperties() { - return new ForgeFlowingFluid.Properties(LIFE_ESSENCE_FLUID, LIFE_ESSENCE_FLUID_FLOWING, FluidAttributes.builder(FLUID_STILL, FLUID_FLOWING)).bucket(LIFE_ESSENCE_BUCKET).block(LIFE_ESSENCE_BLOCK); + return new ForgeFlowingFluid.Properties(LIFE_ESSENCE_FLUID, LIFE_ESSENCE_FLUID_FLOWING, FluidAttributes.builder(FLUID_STILL, FLUID_FLOWING).overlay(new ResourceLocation("block/water_overlay")).viscosity(1).sound(SoundEvents.ITEM_BUCKET_FILL, SoundEvents.ITEM_BUCKET_EMPTY)).bucket(LIFE_ESSENCE_BUCKET).block(LIFE_ESSENCE_BLOCK); } - public static RegistryObject LIFE_ESSENCE_FLUID = FLUIDS.register("life_essence_fluid", () -> new ForgeFlowingFluid.Source(makeProperties())); - public static RegistryObject LIFE_ESSENCE_FLUID_FLOWING = FLUIDS.register("life_essence_fluid_flowing", () -> new ForgeFlowingFluid.Flowing(makeProperties())); + public static final ResourceLocation DOUBT_STILL_RESOURCE = new ResourceLocation("bloodmagic:block/liquid_doubt_still"); + public static final ResourceLocation DOUBT_FLOWING_RESOURCE = new ResourceLocation("bloodmagic:block/liquid_doubt_flowing"); + + private static ForgeFlowingFluid.Properties makeDoubtProperties() + { + return new ForgeFlowingFluid.Properties(DOUBT_FLUID, DOUBT_FLUID_FLOWING, FluidAttributes.builder(DOUBT_STILL_RESOURCE, DOUBT_FLOWING_RESOURCE).overlay(new ResourceLocation("block/water_overlay")).viscosity(1).sound(SoundEvents.ITEM_BUCKET_FILL, SoundEvents.ITEM_BUCKET_EMPTY)).bucket(DOUBT_BUCKET).block(DOUBT_BLOCK); + } + + public static RegistryObject LIFE_ESSENCE_FLUID = FLUIDS.register("life_essence_fluid", () -> new ForgeFlowingFluid.Source(makeLifeEssenceProperties())); + public static RegistryObject LIFE_ESSENCE_FLUID_FLOWING = FLUIDS.register("life_essence_fluid_flowing", () -> new ForgeFlowingFluid.Flowing(makeLifeEssenceProperties())); + public static RegistryObject DOUBT_FLUID = FLUIDS.register("doubt_fluid", () -> new ForgeFlowingFluid.Source(makeDoubtProperties())); + public static RegistryObject DOUBT_FLUID_FLOWING = FLUIDS.register("doubt_fluid_flowing", () -> new ForgeFlowingFluid.Flowing(makeDoubtProperties())); public static RegistryObject LIFE_ESSENCE_BLOCK = BLOCKS.register("life_essence_block", () -> new FlowingFluidBlock(LIFE_ESSENCE_FLUID, Block.Properties.create(net.minecraft.block.material.Material.WATER).doesNotBlockMovement().hardnessAndResistance(100.0F).noDrops())); + public static RegistryObject DOUBT_BLOCK = BLOCKS.register("doubt_block", () -> new FlowingFluidBlock(DOUBT_FLUID, Block.Properties.create(net.minecraft.block.material.Material.WATER).doesNotBlockMovement().hardnessAndResistance(100.0F).noDrops())); public static RegistryObject LIFE_ESSENCE_BUCKET = ITEMS.register("life_essence_bucket", () -> new BucketItem(LIFE_ESSENCE_FLUID, new Item.Properties().containerItem(Items.BUCKET).maxStackSize(1).group(BloodMagic.TAB))); + public static RegistryObject DOUBT_BUCKET = ITEMS.register("doubt_bucket", () -> new BucketItem(DOUBT_FLUID, new Item.Properties().containerItem(Items.BUCKET).maxStackSize(1).group(BloodMagic.TAB))); public static final RegistryObject> SOUL_FORGE_CONTAINER = CONTAINERS.register("soul_forge_container", () -> IForgeContainerType.create(ContainerSoulForge::new)); public static final RegistryObject> ARC_CONTAINER = CONTAINERS.register("arc_container", () -> IForgeContainerType.create(ContainerAlchemicalReactionChamber::new)); @@ -151,7 +163,9 @@ public class BloodMagicBlocks public static final RegistryObject HELLFORGED_BLOCK = DUNGEONBLOCKS.register("dungeon_metal", () -> new Block(Properties.create(Material.IRON).hardnessAndResistance(5.0F, 6.0F).sound(SoundType.METAL).harvestTool(ToolType.PICKAXE).harvestLevel(2).setRequiresTool())); - public static final RegistryObject NETHER_SOIL = BLOCKS.register("nether_soil", () -> new FarmlandBlock(Properties.create(Material.EARTH).hardnessAndResistance(0.4F, 0.4F).sound(SoundType.NETHERRACK).harvestTool(ToolType.PICKAXE))); + public static final RegistryObject NETHER_SOIL = BLOCKS.register("nether_soil", () -> new BlockNetherrackSoil(Properties.create(Material.EARTH).hardnessAndResistance(0.4F, 0.4F).sound(SoundType.NETHERRACK).harvestTool(ToolType.PICKAXE).tickRandomly())); + + public static final RegistryObject GROWING_DOUBT = BLOCKS.register("creeping_doubt", () -> new BlockGrowingDoubt(Properties.create(Material.PLANTS).doesNotBlockMovement().tickRandomly().zeroHardnessAndResistance().sound(SoundType.CROP))); private static boolean isntSolid(BlockState state, IBlockReader reader, BlockPos pos) { diff --git a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorBlockStates.java b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorBlockStates.java index a3b05ad7..10a0ecf9 100644 --- a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorBlockStates.java +++ b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorBlockStates.java @@ -1,11 +1,13 @@ package wayoftime.bloodmagic.common.data; import net.minecraft.block.Block; +import net.minecraft.block.CropsBlock; import net.minecraft.block.FenceGateBlock; import net.minecraft.block.RotatedPillarBlock; import net.minecraft.block.StairsBlock; import net.minecraft.block.WallBlock; import net.minecraft.data.DataGenerator; +import net.minecraft.state.IntegerProperty; import net.minecraft.util.Direction; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.model.generators.BlockModelBuilder; @@ -86,12 +88,21 @@ public class GeneratorBlockStates extends BlockStateProvider buildCubeAllWithTextureName("solidclearmimic"); buildCubeAllWithTextureName("solidlightmimic"); buildCubeAllWithTextureName("solidopaquemimic"); + + buildCrop(BloodMagicBlocks.GROWING_DOUBT.get(), CropsBlock.AGE, 7, BloodMagic.rl("block/creeping_doubt_1"), BloodMagic.rl("block/creeping_doubt_2"), BloodMagic.rl("block/creeping_doubt_3"), BloodMagic.rl("block/creeping_doubt_4"), BloodMagic.rl("block/creeping_doubt_5"), BloodMagic.rl("block/creeping_doubt_6"), BloodMagic.rl("block/creeping_doubt_7"), BloodMagic.rl("block/creeping_doubt_8")); } -// private void buildCustomLoader(Block block) -// { -// ModelFile modelFile = models().crop("", null); -// } + private void buildCrop(Block block, IntegerProperty prop, int maxAge, ResourceLocation... textures) + { + String basePath = block.getRegistryName().getPath(); + VariantBlockStateBuilder builder = getVariantBuilder(block); + + for (int i = 0; i <= maxAge; i++) + { + ModelFile modelFile = models().crop(basePath + "_" + (i + 1), textures[i]); + builder.partialState().with(prop, i).modelForState().modelFile(modelFile).addModel(); + } + } private void buildFarmland(Block block, ResourceLocation top, ResourceLocation side) { diff --git a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorItemModels.java b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorItemModels.java index 44a4699d..a7ca5890 100644 --- a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorItemModels.java +++ b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorItemModels.java @@ -85,6 +85,7 @@ public class GeneratorItemModels extends ItemModelProvider registerCustomFullTexture(BloodMagicBlocks.MIMIC.get(), "solidopaquemimic"); registerCustomFullTexture(BloodMagicBlocks.ETHEREAL_MIMIC.get(), "etherealopaquemimic"); + this.crop(BloodMagicBlocks.GROWING_DOUBT.get().getRegistryName().getPath(), modLoc("block/creeping_doubt_8")); } private void registerCustomFullTexture(Block block, String texturePath) diff --git a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLootTable.java b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLootTable.java index 1da798f6..bc5550c2 100644 --- a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLootTable.java +++ b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLootTable.java @@ -13,6 +13,7 @@ import com.mojang.datafixers.util.Pair; import net.minecraft.advancements.criterion.StatePropertiesPredicate; import net.minecraft.block.Block; import net.minecraft.block.Blocks; +import net.minecraft.block.CropsBlock; import net.minecraft.data.DataGenerator; import net.minecraft.data.LootTableProvider; import net.minecraft.data.loot.BlockLootTables; @@ -129,6 +130,7 @@ public class GeneratorLootTable extends LootTableProvider registerDropSelfLootTable(BloodMagicBlocks.MIMIC.get()); registerDropSelfLootTable(BloodMagicBlocks.ETHEREAL_MIMIC.get()); + registerCropDropLootTable(BloodMagicBlocks.GROWING_DOUBT.get(), BloodMagicItems.WEAK_BLOOD_SHARD.get()); } private void registerNoDropLootTable(Block block) @@ -137,6 +139,19 @@ public class GeneratorLootTable extends LootTableProvider this.registerLootTable(block, LootTable.builder().addLootPool(builder)); } + private void registerCropDropLootTable(Block block, Item item) + { + LootTable.Builder builder = LootTable.builder(); + + for (int i = 0; i < 7; i++) + { + ILootCondition.IBuilder harvestAge = BlockStateProperty.builder(block).fromProperties(StatePropertiesPredicate.Builder.newBuilder().withIntProp(CropsBlock.AGE, i)); + builder = builder.addLootPool(LootPool.builder().addEntry(ItemLootEntry.builder(item).acceptFunction(SetCount.builder(ConstantRange.of(1))).acceptCondition(harvestAge))); + } + + this.registerLootTable(block, builder); + } + private void registerDropCrystalsLootTable(Block block, Item item) { LootTable.Builder builder = LootTable.builder(); diff --git a/src/main/java/wayoftime/bloodmagic/common/item/BloodMagicItems.java b/src/main/java/wayoftime/bloodmagic/common/item/BloodMagicItems.java index 164dcce1..5cf691b6 100644 --- a/src/main/java/wayoftime/bloodmagic/common/item/BloodMagicItems.java +++ b/src/main/java/wayoftime/bloodmagic/common/item/BloodMagicItems.java @@ -95,6 +95,7 @@ public class BloodMagicItems public static final RegistryObject MIMIC_ETHEREAL_ITEM = ITEMS.register("ethereal_mimic", () -> new ItemBlockMimic(BloodMagicBlocks.ETHEREAL_MIMIC.get(), new Item.Properties().group(BloodMagic.TAB))); public static final RegistryObject NETHE_SOIL_ITEM = ITEMS.register("nether_soil", () -> new BlockItem(BloodMagicBlocks.NETHER_SOIL.get(), new Item.Properties().group(BloodMagic.TAB))); + public static final RegistryObject GROWING_DOUBT_ITEM = ITEMS.register("growing_doubt", () -> new BlockItem(BloodMagicBlocks.GROWING_DOUBT.get(), new Item.Properties().group(BloodMagic.TAB))); // TODO: Need to rework the above instantiations for the ItemBlocks so that it's // done with the Blocks. diff --git a/src/main/java/wayoftime/bloodmagic/util/handler/event/GenericHandler.java b/src/main/java/wayoftime/bloodmagic/util/handler/event/GenericHandler.java index faf9549f..194c6fde 100644 --- a/src/main/java/wayoftime/bloodmagic/util/handler/event/GenericHandler.java +++ b/src/main/java/wayoftime/bloodmagic/util/handler/event/GenericHandler.java @@ -5,15 +5,19 @@ import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.util.math.BlockPos; import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.Tags; +import net.minecraftforge.common.ToolType; import net.minecraftforge.event.entity.player.PlayerInteractEvent; +import net.minecraftforge.event.world.BlockEvent.BlockToolInteractEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import wayoftime.bloodmagic.BloodMagic; +import wayoftime.bloodmagic.api.item.IBindable; +import wayoftime.bloodmagic.common.block.BloodMagicBlocks; import wayoftime.bloodmagic.core.data.Binding; import wayoftime.bloodmagic.core.data.SoulNetwork; import wayoftime.bloodmagic.demonaura.WorldDemonWillHandler; import wayoftime.bloodmagic.event.ItemBindEvent; -import wayoftime.bloodmagic.api.item.IBindable; import wayoftime.bloodmagic.network.DemonAuraClientPacket; import wayoftime.bloodmagic.orb.BloodOrb; import wayoftime.bloodmagic.orb.IBloodOrb; @@ -75,6 +79,15 @@ public class GenericHandler } } + @SubscribeEvent + public void onHoe(BlockToolInteractEvent event) + { + if (event.getToolType() == ToolType.HOE && Tags.Blocks.NETHERRACK.contains(event.getState().getBlock())) + { + event.setFinalState(BloodMagicBlocks.NETHER_SOIL.get().getDefaultState()); + } + } + public static void sendPlayerDemonWillAura(PlayerEntity player) { if (player instanceof ServerPlayerEntity) diff --git a/src/main/resources/assets/bloodmagic/models/item/doubt_bucket.json b/src/main/resources/assets/bloodmagic/models/item/doubt_bucket.json new file mode 100644 index 00000000..7988cf44 --- /dev/null +++ b/src/main/resources/assets/bloodmagic/models/item/doubt_bucket.json @@ -0,0 +1,5 @@ +{ + "parent": "forge:item/bucket_drip", + "loader": "forge:bucket", + "fluid": "bloodmagic:test_fluid" +} \ No newline at end of file diff --git a/src/main/resources/assets/bloodmagic/textures/block/creeping_doubt_1.png b/src/main/resources/assets/bloodmagic/textures/block/creeping_doubt_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a6005e5a15feea851825c44e984baf226c36c898 GIT binary patch literal 608 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 N002ovPDHLkV1hc0V7>qV literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/bloodmagic/textures/block/creeping_doubt_8.png b/src/main/resources/assets/bloodmagic/textures/block/creeping_doubt_8.png new file mode 100644 index 0000000000000000000000000000000000000000..0ca1b657b05b7ba0955b1abf94fe94a763faed9d GIT binary patch literal 967 zcmV;&133JNP)EX>4Tx04R}tkv&MmKpe$iTcx5EhZYoZ$WWauh>D7nRIvyaN?V~-2a`*`ph-iL z;^HW{799LotU9+0Yt2!bCVPL58BE>hzEl0u6Z503ls?%w0>9pJ5(nPPN|0g7ts z$yij#WLE|MD|!$_KV~s4GDC}}7SnJYU-$6v^)AA*+|T_vdgYwK0FOXC$28p}-XNaZ zG&Roq#35D`W#V(+K;;U2W@|XToSoT zVB}ap1qwvl5B>+gyEXC?<4#f_3Ut0$*2gg5-vt^q%lbaHti}o8dj_u5mcLR5Wl754hX`2A(ug7j4N$)0@u&?`QN)Ss-`|bgwzRHTQA)0Hmp_g`!6Q00F~EL_t(I%YBm1OB+EH$3HW~ z6at<~l^&zgQ=wXlf!;#@0VVZRke=Go1W%>cY;Q$+()=Jf_NsyW7sZ4%1y4EbE-WPw z)M5i-)WGXuo$VO6zSEm|-}ilQK8)g?D2>lW^a!Oim6>^!q)Gh~o}pAK7M8Al%kE5u zR;SM(3@J_msiv}bOmt~{F1rshpTg=2j@ylekYN!1#BsX>zQ=4Kiy7AH^Z<}aAR4YYa=SS7CV}t829@-j>aRbI znz!Fj)z1|A4^F*lZFPaJq#vu3cdu><_YV#Qpqg4z*@eZZ`370wdpPwbM{XC?6&fJ# zj(CxK84Cwt2*Ccqp*(yv9|NnT=hW=iw*)dm7dOQSRXRj?LAA})W z8*8`7=iTwmuw?~A8nq=3vHrAAZ{NIM@ci&gn29{m4Ih1P+vFnKp05(5; p76Z{{G7Wb6tdnTlrb&i&`~^fn@6%qj2jTz#002ovPDHLkV1o35v#tOD literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/bloodmagic/textures/block/liquid_doubt_flowing.png b/src/main/resources/assets/bloodmagic/textures/block/liquid_doubt_flowing.png new file mode 100644 index 0000000000000000000000000000000000000000..3eaa219e3abe943b9b3546895c8aa45ee3b6c13c GIT binary patch literal 12700 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 CO$`G8 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/bloodmagic/textures/block/liquid_doubt_flowing.png.mcmeta b/src/main/resources/assets/bloodmagic/textures/block/liquid_doubt_flowing.png.mcmeta new file mode 100644 index 00000000..8e55e43b --- /dev/null +++ b/src/main/resources/assets/bloodmagic/textures/block/liquid_doubt_flowing.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 3 + } +} diff --git a/src/main/resources/assets/bloodmagic/textures/block/liquid_doubt_still.png b/src/main/resources/assets/bloodmagic/textures/block/liquid_doubt_still.png new file mode 100644 index 0000000000000000000000000000000000000000..b9c8daf0effc83dac091eb263a9f7c68c95770c5 GIT binary patch literal 12831 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 Yv}&psVev}z?Ehc&bxgFYwVb2>3(X$kApigX literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/bloodmagic/textures/block/liquid_doubt_still.png.mcmeta b/src/main/resources/assets/bloodmagic/textures/block/liquid_doubt_still.png.mcmeta new file mode 100644 index 00000000..7ceb3639 --- /dev/null +++ b/src/main/resources/assets/bloodmagic/textures/block/liquid_doubt_still.png.mcmeta @@ -0,0 +1,45 @@ +{ + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 18, + 17, + 16, + 15, + 14, + 13, + 12, + 11, + 10, + 9, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1 + ] + } +} \ No newline at end of file diff --git a/src/main/resources/data/bloodmagic/patchouli_books/guide/en_us/entries/altar/bloodaltar.json b/src/main/resources/data/bloodmagic/patchouli_books/guide/en_us/entries/altar/bloodaltar.json index 5e7f1f7d..b11db215 100644 --- a/src/main/resources/data/bloodmagic/patchouli_books/guide/en_us/entries/altar/bloodaltar.json +++ b/src/main/resources/data/bloodmagic/patchouli_books/guide/en_us/entries/altar/bloodaltar.json @@ -79,7 +79,7 @@ }, { "type": "text", - "text": "To upgrade the Blood Altar to Tier 4, place 9 $(item) Blood Runes$() one block down and two blocks away from the previous set of runes along each edge. Then place four solid blocks in each corner, starting above the new ring of runes, and then cap each pillar with $(item)Bloodstone Bricks$() and/or $(item)Large Bloodstone Bricks$()." + "text": "To upgrade the Blood Altar to Tier 4, place 7 $(item) Blood Runes$() one block down and two blocks away from the previous set of runes along each edge. Then place four solid blocks in each corner, starting above the new ring of runes, and then cap each pillar with $(item)Bloodstone Bricks$() and/or $(item)Large Bloodstone Bricks$()." }, { "type": "image", @@ -89,7 +89,7 @@ ], "title": "Tier 4 Altar", "border": true, - "text": "The Tier 4 Blood Altar, which has 64 total runes." + "text": "The Tier 4 Blood Altar, which has 56 total runes." } ] } \ No newline at end of file