21class ExpandoContainerModel :
public ::ContainerModel {
24 using OnItemExpandedCallback = ::std::function<void(::std::string
const&,
int,
int)>;
29 ::ll::TypedStorage<8, 24, ::std::vector<::std::pair<::ItemInstance, uint>>> mItems;
30 ::ll::TypedStorage<8, 24, ::std::vector<::ExpandoModelElement>> mCurrentItems;
31 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::CreativeItemRegistry>> mCreativeItemRegistry;
32 ::ll::TypedStorage<8, 24, ::std::vector<::ExpandoModelElement>> mExpandedItems;
33 ::ll::TypedStorage<8, 64, ::std::function<void(::std::string
const&,
int,
int)>> mOnItemExpanded;
38 ExpandoContainerModel();
43 virtual ~ExpandoContainerModel() ;
45 virtual void containerContentChanged(
int slot) ;
47 virtual ::ItemInstance
const& getItemInstance(
int modelSlot)
const ;
49 virtual void setItemInstance(
int modelSlot,
::ItemInstance const& item);
51 virtual bool isItemInstanceBased()
const ;
53 virtual void setItem(
int modelSlot,
::ItemStack const& item) ;
55 virtual ::ItemStack
const& getItemStack(
int modelSlot)
const ;
57 virtual ::std::vector<::ItemStack>
const& getItems()
const ;
59 virtual ::ItemStackBase
const& getItemStackBase(
int modelSlot)
const ;
61 virtual int getContainerSize()
const ;
63 virtual int getFilteredContainerSize()
const ;
65 virtual ::ContainerExpandStatus getItemExpandStatus(
int itemId)
const ;
67 virtual ::std::string
const& getItemGroupName(
int itemId)
const ;
69 virtual void switchItemExpando(
int itemId) ;
71 virtual void refreshContainer(
bool fullRefresh) ;
75 virtual void _init() ;
81 MCAPI ExpandoContainerModel(
84 ::ContainerCategory containerCategory,
85 ::Bedrock::NotNullNonOwnerPtr<::CreativeItemRegistry> creativeItemRegistry
88 MCAPI
void _generateCurrentItems();
90 MCAPI
void _refreshContainer(
bool fullRefresh);
93 MCAPI
void setOnItemExpandedCallback(::std::function<
void(::std::string
const&,
int,
int)> callback);
103 ::ContainerCategory containerCategory,
104 ::Bedrock::NotNullNonOwnerPtr<::CreativeItemRegistry> creativeItemRegistry
117 MCAPI
void $containerContentChanged(
int slot);
119 MCAPI ::ItemInstance
const& $getItemInstance(
int modelSlot)
const;
121 MCAPI
void $setItemInstance(
int modelSlot,
::ItemInstance const& item);
123 MCFOLD
bool $isItemInstanceBased()
const;
125 MCFOLD
void $setItem(
int modelSlot,
::ItemStack const& item);
127 MCFOLD ::ItemStack
const& $getItemStack(
int modelSlot)
const;
129 MCFOLD ::std::vector<::ItemStack>
const& $getItems()
const;
131 MCFOLD ::ItemStackBase
const& $getItemStackBase(
int modelSlot)
const;
133 MCFOLD
int $getContainerSize()
const;
135 MCFOLD
int $getFilteredContainerSize()
const;
137 MCAPI ::ContainerExpandStatus $getItemExpandStatus(
int itemId)
const;
139 MCAPI ::std::string
const& $getItemGroupName(
int itemId)
const;
141 MCAPI
void $switchItemExpando(
int itemId);
143 MCAPI
void $refreshContainer(
bool fullRefresh);