LeviLamina
Loading...
Searching...
No Matches
SparseContainerClient Class Reference
Inheritance diagram for SparseContainerClient:

Public Types

enum class  PushSlotPredictionResult : int { Succeeded = 0 , FailedWithFuturePrediction = 1 , FailedWithError = 2 }
using ItemNetworkChangedCallback = ::std::function<void(int, ::ItemStack const&, ::ItemStack const&)>
using ItemStackNetIdChangedCallback = ::std::function<void(int, ::ItemStack const&)>
using TransactionContext = std::function<void(::Container&, int, ::ItemStack const&, ::ItemStack const&)>
using Iterator = ContainerIterator<Container>
using ConstIterator = ContainerIterator<Container const>
using ReverseIterator = std::reverse_iterator<Iterator>
using ConstReverseIterator = std::reverse_iterator<ConstIterator>

Public Member Functions

MCAPI void _networkUpdateItem (int slot, ::ItemStack const &newItem)
MCNAPI_C void _pushHistoricPredictionItem (int slot, int amount, ::ItemStackNetId const &itemStackNetId, ::Bedrock::Safety::RedactableString const &customName, short durabilityCorrection, ::ItemStack &&item)
MCNAPI_C::ItemStack const & _setCreatedItem (::ItemStackRequestId const &currentRequestId, int slot, ::ItemStack const &item)
MCNAPI_C void clearAllPredictions (::ItemStackRequestId const &requestId, bool shouldBeEmpty, ::Player &player)
MCNAPI_C::SparseContainerClient::PushSlotPredictionResult tryPushSlotPrediction (::ItemStackRequestId const &requestId, int requestedSlot, int backingSlot, int amount, ::ItemStackNetId const &itemStackNetId, ::Bedrock::Safety::RedactableString const &customName, ::ItemStack *zeroedOutItem, short durabilityCorrection)
MCNAPI_C void * $ctor (::Container &backingContainer, ::SparseContainerBackingSetType backingSetType, bool isItemStackNetManagerEnabled, ::std::unique_ptr<::ISparseContainerSetListener > netManagerSetter, ::std::unique_ptr<::IPlayerContainerSetter > playerSetter)
virtual::ItemStack const & getItem (int index) const
virtual int getContainerSize () const
virtual int getMaxStackSize () const
virtual void containerContentChanged (int slot)
virtual void setItem (int slot, ::ItemStack const &item)
virtual void serverInitItemStackIds (int, int, ::std::function< void(int, ::ItemStack const &)>)
virtual void startOpen (::Actor &actor)
virtual void stopOpen (::Actor &actor)
virtual void removeItem (int slot, int count)
MCAPI_C int _getAvailableAddCount (::ContainerScreenContext const &context, ::ContainerEnumName name, ::ItemStack const &itemInSlot) const
MCAPI_C bool _isItemAllowedInSlot (::ContainerEnumName name, int slot, ::ItemStackBase const &item, int amount) const
MCAPI void _onItemNetworkChanged (int slot, ::ItemStack const &oldItem, ::ItemStack const &newItem)
MCAPI_C void _setBackingContainerSlot (int slot, ::ItemStack const &newItem)
MCAPI_C void addAvailableSetCountCallback (::ContainerEnumName name, ::std::function< int(int, ::ItemStackBase const &)> availableSetCountCallback)
MCAPI_C void addItemAllowedInSlotCallback (::ContainerEnumName name, ::std::function< bool(int, ::ItemStackBase const &, int)> itemAllowedCallback)
MCAPI_C void addItemAllowedToAddCallback (::ContainerEnumName name, ::std::function< bool(::ItemStackBase const &)> itemAllowedCallback)
MCAPI_C void addItemAllowedToRemoveCallback (::ContainerEnumName name, ::std::function< bool(::ItemStackBase const &)> itemAllowedCallback)
MCAPI_C void addValidSlotForContainerCallback (::ContainerEnumName name, ::std::function< bool(int)> validSlotForContainerCallback)
MCAPI_C::ItemAddType canAdd (::ContainerScreenContext const &context, ::FullContainerName const &openContainerNetId, int slot, ::ItemStackBase const &item, int amount) const
MCAPI_C bool canRemove (::ContainerEnumName name, int slot, int amount) const
MCAPI_C::ItemSetType canSet (::ContainerScreenContext const &context, ::FullContainerName const &name, int slot, ::ItemStackBase const &item, int amount) const
MCAPI_C int getAvailableSetCount (::ContainerScreenContext const &context, ::FullContainerName const &name, int slot, ::ItemStackBase const &item) const
MCAPI_C bool isValidSlot (::ContainerEnumName name, int slot) const
MCAPI_C void * $ctor (::Container &backingContainer, ::SparseContainerBackingSetType backingSetType, bool isClientSide, bool isItemStackNetManagerEnabled, ::std::unique_ptr<::ISparseContainerSetListener > netManagerSetter, ::std::unique_ptr<::IPlayerContainerSetter > playerSetter)
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)
MCAPI_C void * $ctor (::SharedTypes::Legacy::ContainerType type, ::Bedrock::Safety::RedactableString const &name, bool customName)
MCAPI void $dtor ()
std::string const & getTypeName () const
LLNDAPI optional_ref< ItemStackgetItemNonConst (int index)
ItemStackoperator[] (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 setItemWithForceBalance (int slot, ::ItemStack const &item, bool forceBalanced)
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 ::std::vector<::ItemStackgetSlotCopies () const
virtual ::std::vector<::ItemStack const * > const getSlots () const
virtual int getEmptySlotsCount () const
virtual int getItemCount (::ItemStack const &compare) const
MCAPI int getItemCount (::std::function< bool(::ItemStack const &)> comparator) 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, int, ::ItemStack const &) const
virtual bool canPullOutItem (int, int, ::ItemStack const &) 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 createTransactionContext (::std::function< void(::Container &, int, ::ItemStack const &, ::ItemStack const &)> callback, ::std::function< void()> execute)
virtual void initializeContainerContents (::BlockSource &region)
virtual bool isEmpty () const
virtual bool isSlotDisabled (int) const
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 int getRedstoneSignalFromContainer (::BlockSource &region)
MCAPI void removeCloseListener (::ContainerCloseListener *listener)
MCAPI void triggerTransactionChange (int slot, ::ItemStack const &oldItem, ::ItemStack const &newItem)
MCFOLD void $init ()
MCAPI void $addContentChangeListener (::ContainerContentChangeListener *listener)
MCAPI void $removeContentChangeListener (::ContainerContentChangeListener *listener)
MCFOLD ::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)
MCFOLD void $setItemWithForceBalance (int slot, ::ItemStack const &item, bool forceBalanced)
MCAPI void $removeItem (int slot, int count)
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
MCFOLD 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, int, ::ItemStack const &) const
MCFOLD bool $canPullOutItem (int, int, ::ItemStack const &) const
MCAPI void $setContainerChanged (int slot)
MCAPI void $setContainerMoved ()
MCAPI void $setCustomName (::Bedrock::Safety::RedactableString const &name)
MCAPI bool $hasCustomName () const
MCAPI void $readAdditionalSaveData (::CompoundTag const &tag)
MCAPI void $addAdditionalSaveData (::CompoundTag &tag)
MCAPI void $createTransactionContext (::std::function< void(::Container &, int, ::ItemStack const &, ::ItemStack const &)> callback, ::std::function< void()> execute)
MCFOLD void $initializeContainerContents (::BlockSource &region)
MCAPI bool $isEmpty () const
MCFOLD bool $isSlotDisabled (int) const

Static Public Member Functions

static MCAPI ::BidirectionalUnorderedMap<::SparseContainerClient::PushSlotPredictionResult, ::std::string > const & pushSlotPredictionResultMap ()
static MCAPI void ** $vftableForContainerContentChangeListener ()
static MCAPI void ** $vftableForContainer ()
static MCAPI ::SharedTypes::Legacy::ContainerType getContainerTypeId (::std::string const &name)
static MCAPI ::std::function< bool(::ItemStack const &)> sameItemAndAuxComparator (::ItemDescriptor const &descriptor)
static MCAPI ::BidirectionalUnorderedMap<::SharedTypes::Legacy::ContainerType, ::std::string > const & containerTypeMap ()
static MCAPI void ** $vftable ()
static MCAPI void ** $vftable ()

Public Attributes

::ll::TypedStorage< 4, 4, ::SparseContainerBackingSetType const > mBackingSetType
::ll::TypedStorage< 8, 8, ::Container & > mBackingContainer
::ll::TypedStorage< 8, 64, ::std::unordered_map< int, ::ItemStack > > mItems
::ll::TypedStorage< 8, 8, ::std::unique_ptr<::ISparseContainerSetListener > > mNetManagerSetter
::ll::TypedStorage< 8, 8, ::std::unique_ptr<::IPlayerContainerSetter > > mPlayerSetter
::ll::TypedStorage< 8, 64, ::std::unordered_map<::ContainerEnumName, ::std::function< void(int, ::ItemStack const &, ::ItemStack const &)> > > mItemNetworkChangedCallbacks
::ll::TypedStorage< 8, 64, ::std::unordered_map<::ContainerEnumName, ::std::function< bool(int, ::ItemStackBase const &, int)> > > mItemAllowedInSlotCallbacks
::ll::TypedStorage< 8, 64, ::std::unordered_map<::ContainerEnumName, ::std::function< bool(::ItemStackBase const &)> > > mItemAllowedToAddCallbacks
::ll::TypedStorage< 8, 64, ::std::unordered_map<::ContainerEnumName, ::std::function< int(int, ::ItemStackBase const &)> > > mAvailableSetCountCallbacks
::ll::TypedStorage< 8, 64, ::std::unordered_map<::ContainerEnumName, ::std::function< bool(int)> > > mValidSlotForContainerCallbacks
::ll::TypedStorage< 8, 64, ::std::unordered_map<::ContainerEnumName, ::std::function< bool(::ItemStackBase const &)> > > mItemAllowedToRemoveCallbacks
::ll::TypedStorage< 8, 64, ::std::unordered_map<::ContainerEnumName, ::std::function< bool(::ItemStackBase const &)> > > mItemAllowedInContainerCallbacks
::ll::TypedStorage< 1, 1, bool const > mIsClientSide
::ll::TypedStorage< 1, 1, bool const > mIsItemStackNetManagerEnabled
::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 Function Documentation

◆ _networkUpdateItem()

MCAPI void SparseContainerClient::_networkUpdateItem ( int slot,
::ItemStack const & newItem )
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.

◆ pushSlotPredictionResultMap()

MCAPI ::BidirectionalUnorderedMap<::SparseContainerClient::PushSlotPredictionResult, ::std::string > const & SparseContainerClient::pushSlotPredictionResultMap ( )
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.

◆ $vftableForContainerContentChangeListener()

MCAPI void ** SparseContainerClient::$vftableForContainerContentChangeListener ( )
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.

◆ $vftableForContainer()

MCAPI void ** SparseContainerClient::$vftableForContainer ( )
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.

◆ getItem()

virtual::ItemStack const & SparseContainer::getItem ( int index) const
virtualinherited

Implements Container.

◆ getContainerSize()

virtual int SparseContainer::getContainerSize ( ) const
virtualinherited

Implements Container.

◆ getMaxStackSize()

virtual int SparseContainer::getMaxStackSize ( ) const
virtualinherited

Implements Container.

◆ containerContentChanged()

virtual void SparseContainer::containerContentChanged ( int slot)
virtualinherited

◆ setItem()

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

Implements Container.

◆ serverInitItemStackIds()

virtual void SparseContainer::serverInitItemStackIds ( int ,
int ,
::std::function< void(int, ::ItemStack const &)>  )
virtualinherited

Implements Container.

◆ startOpen()

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

Implements Container.

◆ stopOpen()

virtual void SparseContainer::stopOpen ( ::Actor & actor)
virtualinherited

Reimplemented from Container.

◆ removeItem()

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

Reimplemented from Container.


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