pub struct ResultSlot {
handler: Arc<dyn ResultHandler + Send + Sync>,
storage: SlotStorage,
}Expand description
A fake Slot that contains the resulting item of f.e. a craft
Fields§
§handler: Arc<dyn ResultHandler + Send + Sync>§storage: SlotStorageImplementations§
Source§impl ResultSlot
impl ResultSlot
Sourcepub fn new(handler: impl ResultHandler + 'static) -> Self
pub fn new(handler: impl ResultHandler + 'static) -> Self
Creates a new ResultSlot backed by the handler’s result container.
Sourcepub(crate) fn result_container(&self) -> &ContainerRef
pub(crate) fn result_container(&self) -> &ContainerRef
Returns the result container this slot derived from its handler.
Trait Implementations§
Source§impl DowncastType for ResultSlot
impl DowncastType for ResultSlot
Source§const TYPE_KEY: DowncastTypeKey
const TYPE_KEY: DowncastTypeKey
The process-wide key for this concrete type.
Source§impl Slot for ResultSlot
impl Slot for ResultSlot
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 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_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 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 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 is_fake(&self) -> bool
fn is_fake(&self) -> bool
Returns true if normal menu persistence and transfer rules must not be
applied to this slot. Read more
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 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 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 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 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 ResultSlot
impl !UnwindSafe for ResultSlot
impl Freeze for ResultSlot
impl Send for ResultSlot
impl Sync for ResultSlot
impl Unpin for ResultSlot
impl UnsafeUnpin for ResultSlot
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<>>