19class FilteredContainerModel :
public ::ExpandoContainerModel {
22 using FilterFunction = ::std::function<::FilterResult(
::ItemInstance const&,
bool)>;
27 ::ll::TypedStorage<1, 1, bool> mDoExpandoGroups;
28 ::ll::TypedStorage<1, 1, bool> mIsFiltering;
29 ::ll::TypedStorage<4, 4, int> mFilteredItemCount;
30 ::ll::TypedStorage<8, 24, ::std::vector<::std::pair<::ItemInstance, uint>>> mSavedItems;
31 ::ll::TypedStorage<8, 24, ::std::vector<::std::pair<::ItemInstance, uint>>> mActiveFilteredExpandableSetHeads;
32 ::ll::TypedStorage<8, 64, ::std::function<::FilterResult(
::ItemInstance const&,
bool)>> mFilterRule;
37 FilteredContainerModel();
42 virtual ~FilteredContainerModel() =
default;
44 virtual void containerContentChanged(
int slot) ;
46 virtual ::ItemInstance
const& getItemInstance(
int modelSlot)
const ;
48 virtual void setItemInstance(
int modelSlot,
::ItemInstance const& item) ;
50 virtual void refreshContainer(
bool fullRefresh) ;
52 virtual int getContainerSize()
const ;
54 virtual int getFilteredContainerSize()
const ;
56 virtual bool isExpanableItemFiltered(
int index)
const ;
58 virtual int getIndexForCreativeItem(
::ItemStackBase const& item)
const ;
60 virtual void _init() ;
66 MCAPI FilteredContainerModel(
69 ::ContainerCategory containerCategory,
70 ::Bedrock::NotNullNonOwnerPtr<::CreativeItemRegistry> creativeItemRegistry,
76 MCAPI
void _refreshContainer(
bool fullRefresh);
79 MCAPI
void setFilteringRule(::std::function<::FilterResult(
::ItemInstance const&,
bool)> rule);
89 ::ContainerCategory containerCategory,
90 ::Bedrock::NotNullNonOwnerPtr<::CreativeItemRegistry> creativeItemRegistry,
100 MCFOLD
void $containerContentChanged(
int slot);
102 MCAPI ::ItemInstance
const& $getItemInstance(
int modelSlot)
const;
104 MCAPI
void $setItemInstance(
int modelSlot,
::ItemInstance const& item);
106 MCAPI
void $refreshContainer(
bool fullRefresh);
108 MCFOLD
int $getContainerSize()
const;
110 MCFOLD
int $getFilteredContainerSize()
const;
112 MCAPI
bool $isExpanableItemFiltered(
int index)
const;
116 MCFOLD
void $_init();