Skip to main content

ShulkerBoxBlockEntity

Struct ShulkerBoxBlockEntity 

Source
pub struct ShulkerBoxBlockEntity {
    base: Arc<BlockEntityBase>,
    container: Arc<SyncMutex<ShulkerBoxContainer>>,
    container_ref: ContainerRef,
    animation: SyncMutex<ShulkerBoxAnimation>,
    open_count: AtomicI32,
}
Expand description

Block entity backing every shulker box color, including the undyed one.

Fields§

§base: Arc<BlockEntityBase>§container: Arc<SyncMutex<ShulkerBoxContainer>>§container_ref: ContainerRef§animation: SyncMutex<ShulkerBoxAnimation>§open_count: AtomicI32

Implementations§

Source§

impl ShulkerBoxBlockEntity

Source

pub fn new(level: Weak<World>, pos: BlockPos, state: BlockStateId) -> Self

Creates a new shulker box block entity.

Source

fn update_animation( &self, world: &Arc<World>, pos: BlockPos, state: BlockStateId, )

Source

fn move_collided_entities( &self, world: &Arc<World>, pos: BlockPos, state: BlockStateId, )

Source

pub fn shulker_box_as_item(&self, state: BlockStateId) -> ItemStack

Builds the item form of a placed, possibly-filled shulker box. Vanilla ShulkerBoxBlockEntity.collectComponents() + BaseContainerBlockEntity.collectImplicitComponents(CONTAINER).

Source

pub fn get_progress_delta_aabb<I: Space>( size: f32, direction: Direction, progress_from: f32, progress_to: f32, position: DVec3, ) -> Aabb<DVec3, I>

Calculates the bounding box of a shulker during its opening animation.

The bounds are expanded in the opening direction based on the animation progress.

Source

pub fn get_bounding_box(&self, state: BlockStateId) -> BlockLocalAabb

Block-local bounds of the box including the lid at its current progress.

Source

pub fn can_open( &self, state: BlockStateId, world: &Arc<World>, pos: BlockPos, ) -> bool

Returns whether the shulker box can open

Source

pub fn is_empty(&self) -> bool

Checks if the block entity’s container has any items

Source

pub fn collect_components(&self) -> ItemContainerContents

Collect all the items inside the shulker box into an ItemContainerContents

§Panics

Panics if shulker box somehow has more than 256 slots. This should never happen

Source

pub fn progress(&self, partial_tick: f32) -> f32

Interpolated progress for smooth rendering between ticks.

Source

pub fn animation_status(&self) -> AnimationStatus

Get the current animation state

Trait Implementations§

Source§

impl BlockEntity for ShulkerBoxBlockEntity

Source§

fn base(&self) -> &BlockEntityBase

Returns the common metadata owned by this block entity.
Source§

fn tick(&self, world: &Arc<World>)

Called every game tick for ticking block entities. Read more
Source§

fn trigger_event(&self, kind: i32, data: i32) -> bool

Handles a block event delegated by the owning block behavior. Read more
Source§

fn load_additional(&self, nbt: &BaseNbtCompound<'_>)

Loads additional data from NBT. Read more
Source§

fn save_additional(&self, nbt: &mut NbtCompound)

Saves additional data to NBT. Read more
Source§

fn apply_components_from_item(&self, item: &ItemStack)

Vanilla BlockEntity.applyComponentsFromItemStack. Read more
Source§

fn container_ref(&self) -> Option<ContainerRef>

Returns the independently lockable container capability owned by this entity.
Source§

fn get_type(&self) -> BlockEntityTypeRef

Returns the type of this block entity.
Source§

fn get_block_pos(&self) -> BlockPos

Returns the position of this block entity in the world.
Source§

fn get_block_state(&self) -> BlockStateId

Returns the current block state associated with this entity.
Source§

fn is_valid_block_state(&self, state: BlockStateId) -> bool

Returns whether this entity’s registered type accepts state. Read more
Source§

fn on_block_state_changed(&self, _state: BlockStateId)

Called after the cached block state changes. Read more
Source§

fn on_set_removed(&self)

Called after each invocation that marks this entity removed. Read more
Source§

fn on_clear_removed(&self)

Called after this entity transitions from removed back to active. Read more
Source§

fn set_changed(&self)

Called when the block entity’s data changes. Read more
Source§

fn get_level(&self) -> Option<Arc<World>>

Gets the world reference if still valid. Read more
Source§

fn pre_remove_side_effects(&self, pos: BlockPos, state: BlockStateId)

Called before the block entity is removed to handle side effects. Read more
Source§

fn load_with_components(&self, nbt: &BorrowedNbtCompound<'_>)

Loads entity-specific data and the base block-entity component map.
Source§

fn load_with_owned_components(&self, nbt: &NbtCompound) -> Result<(), Error>

Loads entity data from an owned command/runtime compound. Read more
Source§

fn save_custom_only(&self) -> NbtCompound

Saves only entity-specific data, excluding vanilla type and position metadata.
Source§

fn save_without_metadata(&self) -> NbtCompound

Saves entity-specific data and stored components without position/type metadata.
Source§

fn save_with_full_metadata(&self) -> NbtCompound

Saves command-visible data together with vanilla block-entity metadata.
Source§

fn get_update_tag(&self) -> Option<NbtCompound>

Returns the NBT data to send to clients for initial sync. Read more
Source§

fn game_event_listener(&self) -> Option<SharedGameEventListener>

Returns this entity’s fixed game-event listener, if it provides one. Read more
Source§

impl DowncastType for ShulkerBoxBlockEntity

Source§

const TYPE_KEY: DowncastTypeKey

The process-wide key for this concrete type.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> BlockEntityLifecycleExt for T
where T: BlockEntity + ?Sized,

Source§

fn is_removed(&self) -> bool

Returns whether this block entity has been marked for removal.
Source§

fn set_block_state(&self, state: BlockStateId)

Updates the cached block state and orders its callback.
Source§

fn set_removed(&self)

Marks this block entity as removed and orders its lifecycle callback.
Source§

fn clear_removed(&self)

Reactivates this block entity and orders its lifecycle callback when the flag changed.
Source§

fn dispatch_lifecycle_events(&self)

Drains lifecycle callbacks in flag-update order without retaining the lifecycle lock. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Downcast for T
where T: ErasedType + ?Sized,

Source§

fn is<T>(&self) -> bool
where T: DowncastType,

Returns whether the erased value has concrete type T.
Source§

fn downcast_ref<T>(&self) -> Option<&T>
where T: DowncastType,

Returns the erased value as T when its key matches.
Source§

fn downcast_mut<T>(&mut self) -> Option<&mut T>
where T: DowncastType,

Returns the erased value as mutable T when its key matches.
Source§

impl<T> ErasedType for T
where T: DowncastType,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> IntoShared for T

Source§

fn into_shared(self) -> Arc<Mutex<RawMutex, Self>> ⓘ

Wraps this value in an Arc<SyncMutex<>>
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more