pub struct NormalSlot {
storage: SlotStorage,
}Expand description
A normal slot that references a container and index.
Fields§
§storage: SlotStorageImplementations§
Source§impl NormalSlot
impl NormalSlot
Sourcepub fn new(container: impl Into<ContainerRef>, index: usize) -> Self
pub fn new(container: impl Into<ContainerRef>, index: usize) -> Self
Creates a new normal slot from a ContainerRef.
Sourcepub fn container_ref(&self) -> ContainerRef
pub fn container_ref(&self) -> ContainerRef
Returns a reference to the container.
fn backing(&self) -> (&ContainerRef, usize)
Trait Implementations§
Source§impl DowncastType for NormalSlot
impl DowncastType for NormalSlot
Source§const TYPE_KEY: DowncastTypeKey
const TYPE_KEY: DowncastTypeKey
The process-wide key for this concrete type.
Source§impl Slot for NormalSlot
impl Slot for NormalSlot
Source§fn storage(&self) -> &SlotStorage
fn storage(&self) -> &SlotStorage
Returns this slot’s physical storage and auxiliary dependencies.
Source§fn get_item<'a>(&self, guard: &'a ContainerLockGuard) -> &'a ItemStack
fn get_item<'a>(&self, guard: &'a ContainerLockGuard) -> &'a ItemStack
Returns a reference to the item in this slot.
Source§fn get_item_mut<'a>(
&self,
guard: &'a mut ContainerLockGuard,
) -> &'a mut ItemStack
fn get_item_mut<'a>( &self, guard: &'a mut ContainerLockGuard, ) -> &'a mut ItemStack
Returns a mutable reference to the item in this slot.
Source§fn set_item(&self, guard: &mut ContainerLockGuard, stack: ItemStack)
fn set_item(&self, guard: &mut ContainerLockGuard, stack: ItemStack)
Sets the item in this slot.
Source§fn remove(&self, guard: &mut ContainerLockGuard, amount: i32) -> ItemStack
fn remove(&self, guard: &mut ContainerLockGuard, amount: i32) -> ItemStack
Removes up to
amount items from this slot and returns them.Source§fn set_changed(&self, guard: &mut ContainerLockGuard)
fn set_changed(&self, guard: &mut ContainerLockGuard)
Marks the slot’s container as changed.
Source§fn get_container_slot(&self) -> usize
fn get_container_slot(&self) -> usize
Returns the container slot index.
Source§fn get_max_stack_size(&self, guard: &ContainerLockGuard) -> i32
fn get_max_stack_size(&self, guard: &ContainerLockGuard) -> i32
Returns the maximum stack size for this slot.
Source§fn set_by_player(
&self,
guard: &mut ContainerLockGuard,
stack: ItemStack,
_previous: &ItemStack,
)
fn set_by_player( &self, guard: &mut ContainerLockGuard, stack: ItemStack, _previous: &ItemStack, )
Sets the item, triggered by a player action.
previous is the prior item.Source§fn has_item(&self, guard: &ContainerLockGuard) -> bool
fn has_item(&self, guard: &ContainerLockGuard) -> bool
Returns true if this slot has an item.
Source§fn may_place(&self, _stack: &ItemStack) -> bool
fn may_place(&self, _stack: &ItemStack) -> bool
Returns true if the given item can be placed in this slot.
Source§fn may_pickup(&self, _guard: &ContainerLockGuard, _player: &Player) -> bool
fn may_pickup(&self, _guard: &ContainerLockGuard, _player: &Player) -> bool
Returns true if items can be picked up from this slot.
Source§fn allow_modification(
&self,
guard: &ContainerLockGuard,
player: &Player,
) -> bool
fn allow_modification( &self, guard: &ContainerLockGuard, player: &Player, ) -> bool
Returns true if partial removal is allowed from this slot.
Source§fn get_max_stack_size_for_item(
&self,
guard: &ContainerLockGuard,
stack: &ItemStack,
) -> i32
fn get_max_stack_size_for_item( &self, guard: &ContainerLockGuard, stack: &ItemStack, ) -> i32
Returns the max stack size for
stack here (min of slot and item limits).Source§fn try_remove(
&self,
guard: &mut ContainerLockGuard,
amount: i32,
max_amount: i32,
player: &Player,
) -> Option<ItemStack>
fn try_remove( &self, guard: &mut ContainerLockGuard, amount: i32, max_amount: i32, player: &Player, ) -> Option<ItemStack>
Tries to remove items from this slot with validation.
Source§fn on_take(
&self,
guard: &mut ContainerLockGuard,
_stack: &ItemStack,
_player: &Player,
) -> Option<ItemStack>
fn on_take( &self, guard: &mut ContainerLockGuard, _stack: &ItemStack, _player: &Player, ) -> Option<ItemStack>
Called when an item is taken. Returns any remainder that couldn’t be placed back.
Source§fn safe_take(
&self,
guard: &mut ContainerLockGuard,
amount: i32,
max_amount: i32,
player: &Player,
) -> ItemStack
fn safe_take( &self, guard: &mut ContainerLockGuard, amount: i32, max_amount: i32, player: &Player, ) -> ItemStack
Takes items with all checks and callbacks. Returns the items taken.
Source§fn safe_insert(
&self,
guard: &mut ContainerLockGuard,
input: ItemStack,
amount: i32,
) -> ItemStack
fn safe_insert( &self, guard: &mut ContainerLockGuard, input: ItemStack, amount: i32, ) -> ItemStack
Inserts up to
amount items, firing set callbacks.Auto Trait Implementations§
impl !RefUnwindSafe for NormalSlot
impl !UnwindSafe for NormalSlot
impl Freeze for NormalSlot
impl Send for NormalSlot
impl Sync for NormalSlot
impl Unpin for NormalSlot
impl UnsafeUnpin for NormalSlot
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Downcast for Twhere
T: ErasedType + ?Sized,
impl<T> Downcast for Twhere
T: ErasedType + ?Sized,
Source§fn is<T>(&self) -> boolwhere
T: DowncastType,
fn is<T>(&self) -> boolwhere
T: DowncastType,
Returns whether the erased value has concrete type
T.Source§fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastType,
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,
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 Twhere
T: DowncastType,
impl<T> ErasedType for Twhere
T: DowncastType,
fn downcast_type_key(&self) -> DowncastTypeKey
fn downcast_data(&self) -> *const ()
fn downcast_data_mut(&mut self) -> *mut ()
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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 moreWraps this value in an
Arc<SyncMutex<>>