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*/ = default;
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#ifdef LL_PLAT_C
79 MCAPI void setFilteringRule(::std::function<::FilterResult(::ItemInstance const&, bool)> rule);
80#endif
81 // NOLINTEND
82
83public:
84 // constructor thunks
85 // NOLINTBEGIN
86 MCAPI void* $ctor(
87 ::FullContainerName const& containerName,
88 int size,
89 ::ContainerCategory containerCategory,
90 ::Bedrock::NotNullNonOwnerPtr<::CreativeItemRegistry> creativeItemRegistry,
91 bool doExpandoGroups,
92 bool filter,
93 ::std::function<::FilterResult(::ItemInstance const&, bool)> rule
94 );
95 // NOLINTEND
96
97public:
98 // virtual function thunks
99 // NOLINTBEGIN
100 MCFOLD void $containerContentChanged(int slot);
101
102 MCAPI ::ItemInstance const& $getItemInstance(int modelSlot) const;
103
104 MCAPI void $setItemInstance(int modelSlot, ::ItemInstance const& item);
105
106 MCAPI void $refreshContainer(bool fullRefresh);
107
108 MCFOLD int $getContainerSize() const;
109
110 MCFOLD int $getFilteredContainerSize() const;
111
112 MCAPI bool $isExpanableItemFiltered(int index) const;
113
114 MCAPI int $getIndexForCreativeItem(::ItemStackBase const& item) const;
115
116 MCFOLD void $_init();
117
118
119 // NOLINTEND
120
121public:
122 // vftables
123 // NOLINTBEGIN
124 MCNAPI static void** $vftable();
125 // NOLINTEND
126};
Definition CreativeItemRegistry.h:24
static MCAPI void ** $vftable()
Definition ItemInstance.h:15
Definition ItemStackBase.h:44
Definition FullContainerName.h:8