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
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 // virtual functions
37 // NOLINTBEGIN
38 virtual ~FilteredContainerModel() /*override*/ = default;
39
40 virtual void containerContentChanged(int) /*override*/;
41
42 virtual ::ItemInstance const& getItemInstance(int modelSlot) const /*override*/;
43
44 virtual void setItemInstance(int modelSlot, ::ItemInstance const& item) /*override*/;
45
46 virtual void refreshContainer(bool fullRefresh) /*override*/;
47
48 virtual int getContainerSize() const /*override*/;
49
50 virtual int getFilteredContainerSize() const /*override*/;
51
52 virtual bool isExpanableItemFiltered(int index) const /*override*/;
53
54 virtual int getIndexForCreativeItem(::ItemStackBase const& item) const /*override*/;
55
56 virtual void _init() /*override*/;
57 // NOLINTEND
58
59public:
60 // member functions
61 // NOLINTBEGIN
62 MCNAPI_C void _refreshContainer(bool fullRefresh);
63
64 MCNAPI_C void setFilteringRule(::std::function<::FilterResult(::ItemInstance const&, bool)> rule);
65 // NOLINTEND
66
67public:
68 // constructor thunks
69 // NOLINTBEGIN
70 MCNAPI_C void* $ctor(
71 ::FullContainerName const& containerName,
72 int size,
73 ::ContainerCategory containerCategory,
74 ::Bedrock::NotNullNonOwnerPtr<::CreativeItemRegistry> creativeItemRegistry,
75 bool doExpandoGroups,
76 bool filter,
77 ::std::function<::FilterResult(::ItemInstance const&, bool)> rule
78 );
79 // NOLINTEND
80
81public:
82 // virtual function thunks
83 // NOLINTBEGIN
84#ifdef LL_PLAT_C
85 MCNAPI void $containerContentChanged(int);
86
87 MCNAPI ::ItemInstance const& $getItemInstance(int modelSlot) const;
88
89 MCNAPI void $setItemInstance(int modelSlot, ::ItemInstance const& item);
90
91 MCNAPI void $refreshContainer(bool fullRefresh);
92
93 MCNAPI int $getContainerSize() const;
94
95 MCNAPI int $getFilteredContainerSize() const;
96
97 MCNAPI bool $isExpanableItemFiltered(int index) const;
98
99 MCNAPI int $getIndexForCreativeItem(::ItemStackBase const& item) const;
100
101 MCNAPI void $_init();
102#endif
103
104
105 // NOLINTEND
106
107public:
108 // vftables
109 // NOLINTBEGIN
110 MCNAPI static void** $vftable();
111 // NOLINTEND
112};
Definition CreativeItemRegistry.h:23
Definition ExpandoContainerModel.h:21
Definition FilteredContainerModel.h:19
static MCAPI void ** $vftable()
Definition ItemInstance.h:15
Definition ItemStackBase.h:44
Definition FullContainerName.h:8