LeviLamina
Loading...
Searching...
No Matches
FilteredContainerModel.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/NonOwnerPointer.h"
7#include "mc/world/containers/models/ContainerCategory.h"
8#include "mc/world/containers/models/ExpandoContainerModel.h"
9#include "mc/world/containers/models/FilterResult.h"
10
11// auto generated forward declare list
12// clang-format off
14class ItemInstance;
15class ItemStackBase;
17// clang-format on
18
19class FilteredContainerModel : public ::ExpandoContainerModel {
20public:
21 // FilteredContainerModel inner types define
22 using FilterFunction = ::std::function<::FilterResult(::ItemInstance const&, bool)>;
23
24public:
25 // member variables
26 // NOLINTBEGIN
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;
33 // NOLINTEND
34
35public:
36 // prevent constructor by default
37 FilteredContainerModel();
38
39public:
40 // virtual functions
41 // NOLINTBEGIN
42 virtual ~FilteredContainerModel() /*override*/;
43
44 virtual void containerContentChanged(int slot) /*override*/;
45
46 virtual ::ItemInstance const& getItemInstance(int modelSlot) const /*override*/;
47
48 virtual void setItemInstance(int modelSlot, ::ItemInstance const& item) /*override*/;
49
50 virtual void refreshContainer(bool fullRefresh) /*override*/;
51
52 virtual int getContainerSize() const /*override*/;
53
54 virtual int getFilteredContainerSize() const /*override*/;
55
56 virtual bool isExpanableItemFiltered(int index) const /*override*/;
57
58 virtual int getIndexForCreativeItem(::ItemStackBase const& item) const /*override*/;
59
60 virtual void _init() /*override*/;
61 // NOLINTEND
62
63public:
64 // member functions
65 // NOLINTBEGIN
66 MCAPI FilteredContainerModel(
67 ::FullContainerName const& containerName,
68 int size,
69 ::ContainerCategory containerCategory,
70 ::Bedrock::NotNullNonOwnerPtr<::CreativeItemRegistry> creativeItemRegistry,
71 bool doExpandoGroups,
72 bool filter,
73 ::std::function<::FilterResult(::ItemInstance const&, bool)> rule
74 );
75
76 MCAPI void _refreshContainer(bool fullRefresh);
77
78 MCAPI void setFiltering(bool filter);
79
80#ifdef LL_PLAT_C
81 MCAPI void setFilteringRule(::std::function<::FilterResult(::ItemInstance const&, bool)> rule);
82#endif
83 // NOLINTEND
84
85public:
86 // constructor thunks
87 // NOLINTBEGIN
88 MCAPI void* $ctor(
89 ::FullContainerName const& containerName,
90 int size,
91 ::ContainerCategory containerCategory,
92 ::Bedrock::NotNullNonOwnerPtr<::CreativeItemRegistry> creativeItemRegistry,
93 bool doExpandoGroups,
94 bool filter,
95 ::std::function<::FilterResult(::ItemInstance const&, bool)> rule
96 );
97 // NOLINTEND
98
99public:
100 // destructor thunk
101 // NOLINTBEGIN
102 MCAPI void $dtor();
103 // NOLINTEND
104
105public:
106 // virtual function thunks
107 // NOLINTBEGIN
108 MCFOLD void $containerContentChanged(int slot);
109
110 MCAPI ::ItemInstance const& $getItemInstance(int modelSlot) const;
111
112 MCAPI void $setItemInstance(int modelSlot, ::ItemInstance const& item);
113
114 MCAPI void $refreshContainer(bool fullRefresh);
115
116 MCFOLD int $getContainerSize() const;
117
118 MCFOLD int $getFilteredContainerSize() const;
119
120 MCAPI bool $isExpanableItemFiltered(int index) const;
121
122 MCAPI int $getIndexForCreativeItem(::ItemStackBase const& item) const;
123
124 MCFOLD void $_init();
125
126
127 // NOLINTEND
128
129public:
130 // vftables
131 // NOLINTBEGIN
132 MCNAPI static void** $vftable();
133 // NOLINTEND
134};
Definition CreativeItemRegistry.h:23
static MCAPI void ** $vftable()
Definition ItemInstance.h:15
Definition ItemStackBase.h:52
Definition FullContainerName.h:8