Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
LockingFillingContainer Class Reference
Inheritance diagram for LockingFillingContainer:

Public Types

using ItemList = ::std::vector<::ItemStack>
using ItemStackNetIdChangedCallback = ::std::function<void(int, ::ItemStack const&)>
using TransactionContext
using Iterator = ContainerIterator<Container>
using ConstIterator = ContainerIterator<Container const>
using ReverseIterator = std::reverse_iterator<Iterator>
using ConstReverseIterator = std::reverse_iterator<ConstIterator>

Public Member Functions

virtual int clearInventory (int resizeTo)
virtual void swapSlots (int from, int to)
virtual void setItemWithForceBalance (int slot, ::ItemStack const &item, bool forceBalanced)
virtual ::std::unique_ptr<::ListTag > saveToTag (::SaveContext const &saveContext) const
virtual::ItemStack const & getItem (int slot) const
virtual void serverInitItemStackIds (int containerSlot, int count, ::std::function< void(int, ::ItemStack const &)> onNetIdChanged)
virtual void _trySetInSlot (::ItemStack &item, int const &slot, int const &inventorySize, int &backCompatOffset)
MCAPI LockingFillingContainer (int numTotalSlots, ::SharedTypes::Legacy::ContainerType containerType, ::std::weak_ptr<::Bedrock::Threading::SharedRecursiveMutex > serializationMutex, bool isClientSide)
MCAPI int getWeightInStorageItem () const
MCAPI void * $ctor (int numTotalSlots, ::SharedTypes::Legacy::ContainerType containerType, ::std::weak_ptr<::Bedrock::Threading::SharedRecursiveMutex > serializationMutex, bool isClientSide)
MCAPI int $clearInventory (int resizeTo)
MCAPI void $swapSlots (int from, int to)
MCAPI void $setItemWithForceBalance (int slot, ::ItemStack const &item, bool forceBalanced)
MCAPI ::std::unique_ptr<::ListTag > $saveToTag (::SaveContext const &saveContext) const
MCAPI::ItemStack const & $getItem (int slot) const
MCAPI void $serverInitItemStackIds (int containerSlot, int count, ::std::function< void(int, ::ItemStack const &)> onNetIdChanged)
MCAPI void $_trySetInSlot (::ItemStack &item, int const &slot, int const &inventorySize, int &backCompatOffset)
virtual int removeResource (::ItemStack const &item, bool requireExactAux, bool requireExactData, int maxCount)
MCAPI bool removeResource (int type)
virtual bool add (::ItemStack &item)
virtual bool canAdd (::ItemStack const &item) const
virtual void removeItem (int slot, int count)
virtual void clearSlot (int slot)
virtual void loadFromTag (::ListTag const &inventoryList)
virtual void setItem (int slot, ::ItemStack const &item)
virtual int getMaxStackSize () const
virtual int getContainerSize () const
virtual void startOpen (::Actor &actor)
MCAPI int _addResource (::ItemStack const &item)
MCAPI int _getSlotWithRemainingSpace (::ItemStack const &newItem) const
MCAPI int getSlotWithItem (::ItemStack const &item, bool checkAux, bool checkData) const
MCAPI void $dtor ()
MCAPI int $removeResource (::ItemStack const &item, bool requireExactAux, bool requireExactData, int maxCount)
MCAPI bool $add (::ItemStack &item)
MCAPI bool $canAdd (::ItemStack const &item) const
MCAPI void $removeItem (int slot, int count)
MCAPI void $clearSlot (int slot)
MCAPI void $loadFromTag (::ListTag const &inventoryList)
MCAPI void $setItem (int slot, ::ItemStack const &item)
MCAPI int $getMaxStackSize () const
MCAPI int $getContainerSize () const
MCAPI void $startOpen (::Actor &actor)
std::string const & getTypeName () const
LLNDAPI optional_ref< ItemStack > getItemNonConst (int index)
ItemStack & operator[] (int index)
ItemStack const & operator[] (int index) const
constexpr Iterator begin () noexcept
constexpr ConstIterator cbegin () const noexcept
constexpr Iterator end () noexcept
constexpr ConstIterator cend () const noexcept
constexpr ReverseIterator rbegin () noexcept
constexpr ConstReverseIterator crbegin () const noexcept
constexpr ReverseIterator rend () noexcept
constexpr ConstReverseIterator crend () const noexcept
virtual void init ()
virtual void addContentChangeListener (::ContainerContentChangeListener *listener)
virtual void removeContentChangeListener (::ContainerContentChangeListener *listener)
virtual ::Bedrock::PubSub::Connector< void()> * getContainerRemovedConnector ()
virtual bool hasRemovedSubscribers () const
virtual bool hasRoomForItem (::ItemStack const &item) const
virtual bool addItem (::ItemStack &item)
virtual bool addItemWithForceBalance (::ItemStack &item)
virtual bool addItemToFirstEmptySlot (::ItemStack const &item)
virtual void removeAllItems ()
virtual void removeAllItemsWithForceBalance ()
virtual void containerRemoved ()
virtual void dropSlotContent (::BlockSource &region, ::Vec3 const &pos, bool randomizeDrop, int slot)
virtual void dropContents (::BlockSource &region, ::Vec3 const &pos, bool randomizeDrop)
virtual void stopOpen (::Actor &actor)
virtual ::std::vector<::ItemStack > getSlotCopies () const
virtual ::std::vector<::ItemStack const * > const getSlots () const
virtual int getEmptySlotsCount () const
virtual int getItemCount (::ItemStack const &compare) const
MCAPI int getItemCount (::ItemDescriptor const &descriptor) const
virtual int firstEmptySlot () const
virtual int firstItem () const
virtual int findFirstSlotForItem (::ItemStack const &item) const
virtual int reverseFindFirstSlotForItem (::ItemStack const &item) const
virtual bool canPushInItem (int slot, int face, ::ItemStack const &item) const
virtual bool canPullOutItem (int slot, int face, ::ItemStack const &item) const
virtual void setContainerChanged (int slot)
virtual void setContainerMoved ()
virtual void setCustomName (::Bedrock::Safety::RedactableString const &name)
virtual bool hasCustomName () const
virtual void readAdditionalSaveData (::CompoundTag const &tag)
virtual void addAdditionalSaveData (::CompoundTag &tag)
virtual void initializeContainerContents (::BlockSource &region)
virtual bool isEmpty () const
virtual bool isSlotDisabled (int slot) const
virtual void receiveContainerLifetimes (::DynamicContainerTracker const &tracker)
MCAPI void _dropSlotContent (::BlockSource &region, ::Random &random, ::Vec3 const &pos, bool randomizeDrop, int slot)
MCAPI void _serverInitId (int slot, ::ItemStack &item, ::std::function< void(int, ::ItemStack const &)> onNetIdChanged)
MCAPI void createTransactionContext (::brstd::copyable_function< void(::Container &, int, ::ItemStack const &, ::ItemStack const &)> callback, ::brstd::function_ref< void()> execute)
MCAPI int getRedstoneSignalFromContainer (::BlockSource &region)
MCAPI void serverInitItemStackIdsAll (::std::function< void(int, ::ItemStack const &)> onNetIdChanged)
MCAPI void * $ctor (::Container const &)
MCAPI void * $ctor (::SharedTypes::Legacy::ContainerType type)
MCAPI void * $ctor (::SharedTypes::Legacy::ContainerType type, ::std::string const &name, bool customName)
MCFOLD void $init ()
MCAPI void $addContentChangeListener (::ContainerContentChangeListener *listener)
MCAPI void $removeContentChangeListener (::ContainerContentChangeListener *listener)
MCAPI ::Bedrock::PubSub::Connector< void()> * $getContainerRemovedConnector ()
MCAPI bool $hasRemovedSubscribers () const
MCAPI bool $hasRoomForItem (::ItemStack const &item) const
MCAPI bool $addItem (::ItemStack &item)
MCAPI bool $addItemWithForceBalance (::ItemStack &item)
MCAPI bool $addItemToFirstEmptySlot (::ItemStack const &item)
MCAPI void $removeAllItems ()
MCAPI void $removeAllItemsWithForceBalance ()
MCAPI void $containerRemoved ()
MCAPI void $dropSlotContent (::BlockSource &region, ::Vec3 const &pos, bool randomizeDrop, int slot)
MCAPI void $dropContents (::BlockSource &region, ::Vec3 const &pos, bool randomizeDrop)
MCAPI void $stopOpen (::Actor &actor)
MCAPI ::std::vector<::ItemStack > $getSlotCopies () const
MCAPI ::std::vector<::ItemStack const * > const $getSlots () const
MCAPI int $getEmptySlotsCount () const
MCAPI int $getItemCount (::ItemStack const &compare) const
MCAPI int $firstEmptySlot () const
MCAPI int $firstItem () const
MCAPI int $findFirstSlotForItem (::ItemStack const &item) const
MCAPI int $reverseFindFirstSlotForItem (::ItemStack const &item) const
MCFOLD bool $canPushInItem (int slot, int face, ::ItemStack const &item) const
MCFOLD bool $canPullOutItem (int slot, int face, ::ItemStack const &item) const
MCAPI void $setContainerChanged (int slot)
MCAPI void $setContainerMoved ()
MCAPI void $setCustomName (::Bedrock::Safety::RedactableString const &name)
MCFOLD bool $hasCustomName () const
MCAPI void $readAdditionalSaveData (::CompoundTag const &tag)
MCAPI void $addAdditionalSaveData (::CompoundTag &tag)
MCFOLD void $initializeContainerContents (::BlockSource &region)
MCAPI bool $isEmpty () const
MCFOLD bool $isSlotDisabled (int slot) const
MCAPI void $receiveContainerLifetimes (::DynamicContainerTracker const &tracker)

Static Public Member Functions

static MCAPI void ** $vftable ()
static MCAPI ::SharedTypes::Legacy::ContainerType getContainerTypeId (::std::string const &name)
static MCAPI ::BidirectionalUnorderedMap<::SharedTypes::Legacy::ContainerType, ::std::string > const & containerTypeMap ()

Public Attributes

::ll::TypedStorage< 8, 16, ::std::weak_ptr<::Bedrock::Threading::SharedRecursiveMutex > > mContainerContextMutex
::ll::TypedStorage< 4, 4, int > mWeightInStorageItem
::ll::TypedStorage< 1, 1, bool > mIsClientSide
::ll::TypedStorage< 8, 24, ::std::vector<::ItemStack > > mItems
::ll::TypedStorage< 8, 8, ::Player * > mPlayer
::SharedTypes::Legacy::ContainerType mContainerType
::SharedTypes::Legacy::ContainerType mGameplayContainerType
::std::unordered_set<::ContainerContentChangeListener * > mContentChangeListeners
::std::unordered_set<::ContainerSizeChangeListener * > mSizeChangeListeners
::std::unordered_set<::ContainerCloseListener * > mCloseListeners
::Container::PublisherWrapper mRemovedPublisher
::std::deque< TransactionContext > mTransactionContextStack
::Bedrock::Safety::RedactableString mName
bool mCustomName
::ContainerOwner mContainerOwner
::ContainerRuntimeId mContainerRuntimeId

Member Typedef Documentation

◆ TransactionContext

using Container::TransactionContext
inherited
Initial value:
::brstd::copyable_function<void(::Container&, int, ::ItemStack const&, ::ItemStack const&)>
Definition ItemStack.h:26
Definition copyable_function.h:8

Constructor & Destructor Documentation

◆ LockingFillingContainer()

MCAPI LockingFillingContainer::LockingFillingContainer ( int numTotalSlots,
::SharedTypes::Legacy::ContainerType containerType,
::std::weak_ptr<::Bedrock::Threading::SharedRecursiveMutex > serializationMutex,
bool isClientSide )
Attention
This function is not yet publicly available. To request access: reference this function in your code and attempt to link. The linker will report the exact symbol name. Submit a access request at https://github.com/LiteLDev/mcapi-requests/issues/new including the full symbol name.

Member Function Documentation

◆ clearInventory()

virtual int LockingFillingContainer::clearInventory ( int resizeTo)
virtual

Reimplemented from FillingContainer.

◆ swapSlots()

virtual void LockingFillingContainer::swapSlots ( int from,
int to )
virtual

Reimplemented from FillingContainer.

◆ setItemWithForceBalance()

virtual void LockingFillingContainer::setItemWithForceBalance ( int slot,
::ItemStack const & item,
bool forceBalanced )
virtual

Reimplemented from FillingContainer.

◆ getItem()

virtual::ItemStack const & LockingFillingContainer::getItem ( int slot) const
virtual

Reimplemented from FillingContainer.

◆ serverInitItemStackIds()

virtual void LockingFillingContainer::serverInitItemStackIds ( int containerSlot,
int count,
::std::function< void(int, ::ItemStack const &)> onNetIdChanged )
virtual

Reimplemented from FillingContainer.

◆ _trySetInSlot()

virtual void LockingFillingContainer::_trySetInSlot ( ::ItemStack & item,
int const & slot,
int const & inventorySize,
int & backCompatOffset )
virtual

Reimplemented from FillingContainer.

◆ getWeightInStorageItem()

MCAPI int LockingFillingContainer::getWeightInStorageItem ( ) const
Attention
This function is not yet publicly available. To request access: reference this function in your code and attempt to link. The linker will report the exact symbol name. Submit a access request at https://github.com/LiteLDev/mcapi-requests/issues/new including the full symbol name.

◆ $ctor() [1/2]

MCAPI void * LockingFillingContainer::$ctor ( int numTotalSlots,
::SharedTypes::Legacy::ContainerType containerType,
::std::weak_ptr<::Bedrock::Threading::SharedRecursiveMutex > serializationMutex,
bool isClientSide )
Attention
This function is not yet publicly available. To request access: reference this function in your code and attempt to link. The linker will report the exact symbol name. Submit a access request at https://github.com/LiteLDev/mcapi-requests/issues/new including the full symbol name.

◆ $clearInventory()

MCAPI int LockingFillingContainer::$clearInventory ( int resizeTo)
Attention
This function is not yet publicly available. To request access: reference this function in your code and attempt to link. The linker will report the exact symbol name. Submit a access request at https://github.com/LiteLDev/mcapi-requests/issues/new including the full symbol name.

◆ $swapSlots()

MCAPI void LockingFillingContainer::$swapSlots ( int from,
int to )
Attention
This function is not yet publicly available. To request access: reference this function in your code and attempt to link. The linker will report the exact symbol name. Submit a access request at https://github.com/LiteLDev/mcapi-requests/issues/new including the full symbol name.

◆ $setItemWithForceBalance()

MCAPI void LockingFillingContainer::$setItemWithForceBalance ( int slot,
::ItemStack const & item,
bool forceBalanced )
Attention
This function is not yet publicly available. To request access: reference this function in your code and attempt to link. The linker will report the exact symbol name. Submit a access request at https://github.com/LiteLDev/mcapi-requests/issues/new including the full symbol name.

◆ $saveToTag()

MCAPI ::std::unique_ptr<::ListTag > LockingFillingContainer::$saveToTag ( ::SaveContext const & saveContext) const
Attention
This function is not yet publicly available. To request access: reference this function in your code and attempt to link. The linker will report the exact symbol name. Submit a access request at https://github.com/LiteLDev/mcapi-requests/issues/new including the full symbol name.

◆ $getItem()

MCAPI::ItemStack const & LockingFillingContainer::$getItem ( int slot) const
Attention
This function is not yet publicly available. To request access: reference this function in your code and attempt to link. The linker will report the exact symbol name. Submit a access request at https://github.com/LiteLDev/mcapi-requests/issues/new including the full symbol name.

◆ $serverInitItemStackIds()

MCAPI void LockingFillingContainer::$serverInitItemStackIds ( int containerSlot,
int count,
::std::function< void(int, ::ItemStack const &)> onNetIdChanged )
Attention
This function is not yet publicly available. To request access: reference this function in your code and attempt to link. The linker will report the exact symbol name. Submit a access request at https://github.com/LiteLDev/mcapi-requests/issues/new including the full symbol name.

◆ $_trySetInSlot()

MCAPI void LockingFillingContainer::$_trySetInSlot ( ::ItemStack & item,
int const & slot,
int const & inventorySize,
int & backCompatOffset )
Attention
This function is not yet publicly available. To request access: reference this function in your code and attempt to link. The linker will report the exact symbol name. Submit a access request at https://github.com/LiteLDev/mcapi-requests/issues/new including the full symbol name.

◆ $vftable()

MCAPI void ** LockingFillingContainer::$vftable ( )
static
Attention
This function is not yet publicly available. To request access: reference this function in your code and attempt to link. The linker will report the exact symbol name. Submit a access request at https://github.com/LiteLDev/mcapi-requests/issues/new including the full symbol name.

◆ removeResource()

MCAPI bool FillingContainer::removeResource ( int type)
inherited
Attention
This function is not yet publicly available. To request access: reference this function in your code and attempt to link. The linker will report the exact symbol name. Submit a access request at https://github.com/LiteLDev/mcapi-requests/issues/new including the full symbol name.

◆ removeItem()

virtual void FillingContainer::removeItem ( int slot,
int count )
virtualinherited

Reimplemented from Container.

◆ setItem()

virtual void FillingContainer::setItem ( int slot,
::ItemStack const & item )
virtualinherited

Implements Container.

◆ getMaxStackSize()

virtual int FillingContainer::getMaxStackSize ( ) const
virtualinherited

Implements Container.

◆ getContainerSize()

virtual int FillingContainer::getContainerSize ( ) const
virtualinherited

Implements Container.

◆ startOpen()

virtual void FillingContainer::startOpen ( ::Actor & actor)
virtualinherited

Implements Container.

◆ _addResource()

MCAPI int FillingContainer::_addResource ( ::ItemStack const & item)
inherited
Attention
This function is not yet publicly available. To request access: reference this function in your code and attempt to link. The linker will report the exact symbol name. Submit a access request at https://github.com/LiteLDev/mcapi-requests/issues/new including the full symbol name.

◆ _getSlotWithRemainingSpace()

MCAPI int FillingContainer::_getSlotWithRemainingSpace ( ::ItemStack const & newItem) const
inherited
Attention
This function is not yet publicly available. To request access: reference this function in your code and attempt to link. The linker will report the exact symbol name. Submit a access request at https://github.com/LiteLDev/mcapi-requests/issues/new including the full symbol name.

◆ $dtor()

MCAPI void FillingContainer::$dtor ( )
inherited
Attention
This function is not yet publicly available. To request access: reference this function in your code and attempt to link. The linker will report the exact symbol name. Submit a access request at https://github.com/LiteLDev/mcapi-requests/issues/new including the full symbol name.

◆ $canAdd()

MCAPI bool FillingContainer::$canAdd ( ::ItemStack const & item) const
inherited
Attention
This function is not yet publicly available. To request access: reference this function in your code and attempt to link. The linker will report the exact symbol name. Submit a access request at https://github.com/LiteLDev/mcapi-requests/issues/new including the full symbol name.

◆ $setItem()

MCAPI void FillingContainer::$setItem ( int slot,
::ItemStack const & item )
inherited
Attention
This function is not yet publicly available. To request access: reference this function in your code and attempt to link. The linker will report the exact symbol name. Submit a access request at https://github.com/LiteLDev/mcapi-requests/issues/new including the full symbol name.

◆ $getMaxStackSize()

MCAPI int FillingContainer::$getMaxStackSize ( ) const
inherited
Attention
This function is not yet publicly available. To request access: reference this function in your code and attempt to link. The linker will report the exact symbol name. Submit a access request at https://github.com/LiteLDev/mcapi-requests/issues/new including the full symbol name.

◆ $getContainerSize()

MCAPI int FillingContainer::$getContainerSize ( ) const
inherited
Attention
This function is not yet publicly available. To request access: reference this function in your code and attempt to link. The linker will report the exact symbol name. Submit a access request at https://github.com/LiteLDev/mcapi-requests/issues/new including the full symbol name.

◆ $startOpen()

MCAPI void FillingContainer::$startOpen ( ::Actor & actor)
inherited
Attention
This function is not yet publicly available. To request access: reference this function in your code and attempt to link. The linker will report the exact symbol name. Submit a access request at https://github.com/LiteLDev/mcapi-requests/issues/new including the full symbol name.

◆ _dropSlotContent()

MCAPI void Container::_dropSlotContent ( ::BlockSource & region,
::Random & random,
::Vec3 const & pos,
bool randomizeDrop,
int slot )
inherited
Attention
This function is not yet publicly available. To request access: reference this function in your code and attempt to link. The linker will report the exact symbol name. Submit a access request at https://github.com/LiteLDev/mcapi-requests/issues/new including the full symbol name.

◆ _serverInitId()

MCAPI void Container::_serverInitId ( int slot,
::ItemStack & item,
::std::function< void(int, ::ItemStack const &)> onNetIdChanged )
inherited
Attention
This function is not yet publicly available. To request access: reference this function in your code and attempt to link. The linker will report the exact symbol name. Submit a access request at https://github.com/LiteLDev/mcapi-requests/issues/new including the full symbol name.

◆ createTransactionContext()

MCAPI void Container::createTransactionContext ( ::brstd::copyable_function< void(::Container &, int, ::ItemStack const &, ::ItemStack const &)> callback,
::brstd::function_ref< void()> execute )
inherited
Attention
This function is not yet publicly available. To request access: reference this function in your code and attempt to link. The linker will report the exact symbol name. Submit a access request at https://github.com/LiteLDev/mcapi-requests/issues/new including the full symbol name.

◆ serverInitItemStackIdsAll()

MCAPI void Container::serverInitItemStackIdsAll ( ::std::function< void(int, ::ItemStack const &)> onNetIdChanged)
inherited
Attention
This function is not yet publicly available. To request access: reference this function in your code and attempt to link. The linker will report the exact symbol name. Submit a access request at https://github.com/LiteLDev/mcapi-requests/issues/new including the full symbol name.

◆ getContainerTypeId()

MCAPI ::SharedTypes::Legacy::ContainerType Container::getContainerTypeId ( ::std::string const & name)
staticinherited
Attention
This function is not yet publicly available. To request access: reference this function in your code and attempt to link. The linker will report the exact symbol name. Submit a access request at https://github.com/LiteLDev/mcapi-requests/issues/new including the full symbol name.

◆ $ctor() [2/2]

MCAPI void * Container::$ctor ( ::Container const & )
inherited
Attention
This function is not yet publicly available. To request access: reference this function in your code and attempt to link. The linker will report the exact symbol name. Submit a access request at https://github.com/LiteLDev/mcapi-requests/issues/new including the full symbol name.

The documentation for this class was generated from the following file: