3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/core/utility/pub_sub/Publisher.h"
7#include "mc/deps/shared_types/legacy/ContainerType.h"
8#include "mc/world/ContainerContentChangeListener.h"
9#include "mc/world/containers/FullContainerName.h"
10#include "mc/world/containers/models/ContainerCategory.h"
11#include "mc/world/containers/models/ContainerExpandStatus.h"
22namespace Bedrock::PubSub::ThreadModel {
struct SingleThreaded; }
29 ::ll::TypedStorage<1, 1, bool const> mIsClientSide;
30 ::ll::TypedStorage<8, 32, ::std::string> mContainerStringName;
31 ::ll::TypedStorage<4, 12, ::FullContainerName const> mFullContainerName;
36 ::SharedTypes::Legacy::ContainerType,
38 mTrackedOnContainerChangedCallbacks;
39 ::ll::TypedStorage<8, 24, ::std::vector<::std::function<void(
int,
::ItemStack const&,
::ItemStack const&)>>>
40 mOnContainerChangedCallbacks;
42 mPlayerNotificationCallbacks;
46 ::std::vector<::Bedrock::PubSub::
48 mContainerSlotChangePublishers;
49 ::ll::TypedStorage<4, 4, ::ContainerCategory> mContainerCategory;
50 ::ll::TypedStorage<8, 24, ::std::vector<::SlotData>> mItemSource;
51 ::ll::TypedStorage<8, 8, ::SparseContainerClient*> mClientUIContainer;
54 mContainerSizeChangePublisher;
55 ::ll::TypedStorage<8, 24, ::std::vector<::ItemStack>> mItems;
69 virtual void postInit();
72 virtual void releaseResources();
75 virtual void containerContentChanged(
int slot) ;
78 virtual int getContainerSize()
const;
81 virtual int getFilteredContainerSize()
const;
84 virtual void tick(
int selectedSlot);
87 virtual ::ContainerWeakRef getContainerWeakRef()
const;
90 virtual ::ItemStack
const& getItemStack(
int modelSlot)
const;
93 virtual ::std::vector<::ItemStack>
const& getItems()
const;
96 virtual ::ItemInstance
const& getItemInstance(
int modelSlot)
const;
99 virtual ::ItemStackBase
const& getItemStackBase(
int modelSlot)
const;
102 virtual bool isItemInstanceBased()
const;
105 virtual void setItem(
int modelSlot,
::ItemStack const& item);
108 virtual bool isValid();
114 virtual bool isExpanableItemFiltered(
int index)
const;
117 virtual ::ContainerExpandStatus getItemExpandStatus(
int itemId)
const;
120 virtual ::std::string
const& getItemGroupName(
int itemId)
const;
123 virtual void switchItemExpando(
int itemId);
126 virtual bool isSlotDisabled(
int)
const;
129 virtual ::Container* _getContainer()
const;
132 virtual int _getContainerOffset()
const;
135 virtual void _init();
147 ::ContainerCategory containerCategory,
173 ::ContainerCategory containerCategory,
197 MCNAPI
void $tick(
int selectedSlot);
203 MCNAPI ::std::vector<::ItemStack>
const&
$getItems()
const;
Definition ContainerContentChangeListener.h:5
Definition ContainerModel.h:25
MCAPI::ItemInstance const & $getItemInstance(int modelSlot) const
MCAPI ::std::vector<::ItemStack > const & $getItems() const
MCAPI int $_getContainerOffset() const
MCAPI bool $isItemFiltered(::ItemStackBase const &item) const
MCAPI::ContainerWeakRef $getContainerWeakRef() const
MCAPI::ContainerExpandStatus $getItemExpandStatus(int itemId) const
MCAPI void $tick(int selectedSlot)
MCAPI::Container * $_getContainer() const
MCAPI void setItemSource(int slot, ::SlotData const &srcSlot)
MCAPI::std::string const & $getItemGroupName(int itemId) const
MCAPI int $getFilteredContainerSize() const
MCAPI::ItemStackBase const & $getItemStackBase(int modelSlot) const
MCAPI bool $isItemInstanceBased() const
MCAPI void registerOnContainerChangedCallback(::std::function< void(int, ::ItemStack const &, ::ItemStack const &)> callback)
MCAPI void $containerContentChanged(int slot)
MCAPI void registerPlayerNotificationCallback(::std::function< void(int, ::ItemStack const &, ::ItemStack const &)> callback)
static MCAPI void ** $vftable()
MCAPI void $setItem(int modelSlot, ::ItemStack const &item)
MCAPI void networkUpdateItem(int modelSlot, ::ItemStack const &oldItem, ::ItemStack const &newItem)
MCAPI void $switchItemExpando(int itemId)
MCAPI bool $isExpanableItemFiltered(int index) const
MCAPI void setClientUIContainer(::SparseContainerClient *clientUIContainer)
MCAPI void $_onItemChanged(int modelSlot, ::ItemStack const &oldItem, ::ItemStack const &newItem)
MCAPI void $releaseResources()
MCAPI void _onClientUIItemNetworkChanged(int containerSlot, ::ItemStack const &oldItem, ::ItemStack const &newItem)
MCAPI ContainerModel(::FullContainerName const &fullContainerName, int containerSize, ::ContainerCategory containerCategory, bool isClientSide)
MCAPI void * $ctor(::FullContainerName const &fullContainerName, int containerSize, ::ContainerCategory containerCategory, bool isClientSide)
MCAPI int $getContainerSize() const
MCAPI bool $isSlotDisabled(int) const
MCAPI::ItemStack const & $getItemStack(int modelSlot) const
Definition ContainerWeakRef.h:17
Definition Container.h:30
Definition ItemInstance.h:16
Definition ItemStackBase.h:35
Definition ItemStack.h:25
Definition SparseContainerClient.h:14
Definition SingleThreaded.h:7
Definition FullContainerName.h:8