mirror of
https://github.com/Pumpkin-MC/Pumpkin.git
synced 2026-08-31 20:32:34 +00:00
Placement for Glazed Terracottas (#974)
* feat: add placement for glazed_terracottas * fmt --------- Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
This commit is contained in:
46
pumpkin/src/block/blocks/glazed_terracotta.rs
Normal file
46
pumpkin/src/block/blocks/glazed_terracotta.rs
Normal file
@@ -0,0 +1,46 @@
|
||||
use crate::block::BlockIsReplacing;
|
||||
use crate::block::pumpkin_block::{BlockMetadata, PumpkinBlock};
|
||||
use crate::entity::player::Player;
|
||||
use crate::server::Server;
|
||||
use crate::world::World;
|
||||
use async_trait::async_trait;
|
||||
use pumpkin_data::block_properties::{BlockProperties, WallTorchLikeProperties};
|
||||
use pumpkin_data::tag::{RegistryKey, get_tag_values};
|
||||
use pumpkin_data::{Block, BlockDirection};
|
||||
use pumpkin_protocol::java::server::play::SUseItemOn;
|
||||
use pumpkin_util::math::position::BlockPos;
|
||||
use pumpkin_world::BlockStateId;
|
||||
|
||||
pub struct GlazedTerracottaBlock;
|
||||
impl BlockMetadata for GlazedTerracottaBlock {
|
||||
fn namespace(&self) -> &'static str {
|
||||
"minecraft"
|
||||
}
|
||||
|
||||
fn ids(&self) -> &'static [&'static str] {
|
||||
get_tag_values(RegistryKey::Block, "c:glazed_terracottas").unwrap()
|
||||
}
|
||||
}
|
||||
|
||||
#[async_trait]
|
||||
impl PumpkinBlock for GlazedTerracottaBlock {
|
||||
async fn on_place(
|
||||
&self,
|
||||
_server: &Server,
|
||||
_world: &World,
|
||||
player: &Player,
|
||||
block: &Block,
|
||||
_block_pos: &BlockPos,
|
||||
_face: BlockDirection,
|
||||
_replacing: BlockIsReplacing,
|
||||
_use_item_on: &SUseItemOn,
|
||||
) -> BlockStateId {
|
||||
let mut prop = WallTorchLikeProperties::default(block);
|
||||
prop.facing = player
|
||||
.living_entity
|
||||
.entity
|
||||
.get_horizontal_facing()
|
||||
.opposite();
|
||||
prop.to_state_id(block)
|
||||
}
|
||||
}
|
||||
@@ -19,6 +19,7 @@ pub mod fire;
|
||||
pub mod flower_pots;
|
||||
pub mod furnace;
|
||||
pub mod glass_panes;
|
||||
pub mod glazed_terracotta;
|
||||
pub mod grindstone;
|
||||
pub mod iron_bars;
|
||||
pub mod jukebox;
|
||||
|
||||
@@ -76,6 +76,7 @@ use pumpkin_world::BlockStateId;
|
||||
|
||||
use crate::block::blocks::campfire::CampfireBlock;
|
||||
use crate::block::blocks::flower_pots::FlowerPotBlock;
|
||||
use crate::block::blocks::glazed_terracotta::GlazedTerracottaBlock;
|
||||
use crate::block::blocks::plant::roots::RootsBlock;
|
||||
use crate::block::blocks::skull_block::SkullBlock;
|
||||
use crate::block::loot::LootContextParameters;
|
||||
@@ -114,6 +115,7 @@ pub fn default_registry() -> Arc<BlockRegistry> {
|
||||
manager.register(FlowerPotBlock);
|
||||
manager.register(FurnaceBlock);
|
||||
manager.register(GlassPaneBlock);
|
||||
manager.register(GlazedTerracottaBlock);
|
||||
manager.register(GrindstoneBlock);
|
||||
manager.register(IronBarsBlock);
|
||||
manager.register(JukeboxBlock);
|
||||
|
||||
Reference in New Issue
Block a user