diff --git a/pumpkin/src/block/blocks/conduit.rs b/pumpkin/src/block/blocks/conduit.rs new file mode 100644 index 000000000..a6a2a3768 --- /dev/null +++ b/pumpkin/src/block/blocks/conduit.rs @@ -0,0 +1,19 @@ +use crate::block::{BlockBehaviour, BlockFuture, OnPlaceArgs}; +use pumpkin_data::block_properties::BlockProperties; +use pumpkin_macros::pumpkin_block; +use pumpkin_world::BlockStateId; + +#[pumpkin_block("minecraft:conduit")] +pub struct ConduitBlock; + +impl BlockBehaviour for ConduitBlock { + fn on_place<'a>(&'a self, args: OnPlaceArgs<'a>) -> BlockFuture<'a, BlockStateId> { + Box::pin(async move { + let mut props = + pumpkin_data::block_properties::MangroveRootsLikeProperties::default(args.block); + props.r#waterlogged = args.replacing.water_source(); + + props.to_state_id(args.block) + }) + } +} diff --git a/pumpkin/src/block/blocks/mod.rs b/pumpkin/src/block/blocks/mod.rs index 83c6adb4c..380b64130 100644 --- a/pumpkin/src/block/blocks/mod.rs +++ b/pumpkin/src/block/blocks/mod.rs @@ -14,6 +14,7 @@ pub mod chiseled_bookshelf; pub mod cobweb; pub mod command; pub mod composter; +pub mod conduit; pub mod crafting_table; pub mod dirt_path; pub mod doors; diff --git a/pumpkin/src/block/registry.rs b/pumpkin/src/block/registry.rs index ac5016e27..bc6a9b9ca 100644 --- a/pumpkin/src/block/registry.rs +++ b/pumpkin/src/block/registry.rs @@ -14,6 +14,7 @@ use crate::block::blocks::chests::{ChestBlock, CopperChestBlock, TrappedChestBlo use crate::block::blocks::chiseled_bookshelf::ChiseledBookshelfBlock; use crate::block::blocks::command::CommandBlock; use crate::block::blocks::composter::ComposterBlock; +use crate::block::blocks::conduit::ConduitBlock; use crate::block::blocks::dirt_path::DirtPathBlock; use crate::block::blocks::doors::DoorBlock; use crate::block::blocks::end_portal::EndPortalBlock; @@ -261,6 +262,7 @@ pub fn default_registry() -> Arc { manager.register(FungusBlock); manager.register(NetherSproutsBlock); manager.register(SporeBlossomBlock); + manager.register(ConduitBlock); manager.register(FallingBlock);