LeviLamina
Loading...
Searching...
No Matches
ExpandoContainerModel.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/ContainerExpandStatus.h"
9#include "mc/world/containers/models/ContainerModel.h"
10
11// auto generated forward declare list
12// clang-format off
14class ItemInstance;
15class ItemStack;
16class ItemStackBase;
19// clang-format on
20
21class ExpandoContainerModel : public ::ContainerModel {
22public:
23 // ExpandoContainerModel inner types define
24 using OnItemExpandedCallback = ::std::function<void(::std::string const&, int, int)>;
25
26public:
27 // member variables
28 // NOLINTBEGIN
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;
34 // NOLINTEND
35
36public:
37 // prevent constructor by default
38 ExpandoContainerModel();
39
40public:
41 // virtual functions
42 // NOLINTBEGIN
43 virtual ~ExpandoContainerModel() /*override*/;
44
45 virtual void containerContentChanged(int slot) /*override*/;
46
47 virtual ::ItemInstance const& getItemInstance(int modelSlot) const /*override*/;
48
49 virtual void setItemInstance(int modelSlot, ::ItemInstance const& item);
50
51 virtual bool isItemInstanceBased() const /*override*/;
52
53 virtual void setItem(int modelSlot, ::ItemStack const& item) /*override*/;
54
55 virtual ::ItemStack const& getItemStack(int modelSlot) const /*override*/;
56
57 virtual ::std::vector<::ItemStack> const& getItems() const /*override*/;
58
59 virtual ::ItemStackBase const& getItemStackBase(int modelSlot) const /*override*/;
60
61 virtual int getContainerSize() const /*override*/;
62
63 virtual int getFilteredContainerSize() const /*override*/;
64
65 virtual ::ContainerExpandStatus getItemExpandStatus(int itemId) const /*override*/;
66
67 virtual ::std::string const& getItemGroupName(int itemId) const /*override*/;
68
69 virtual void switchItemExpando(int itemId) /*override*/;
70
71 virtual void refreshContainer(bool fullRefresh) /*override*/;
72
73 virtual int getIndexForCreativeItem(::ItemStackBase const& item) const;
74
75 virtual void _init() /*override*/;
76 // NOLINTEND
77
78public:
79 // member functions
80 // NOLINTBEGIN
81 MCAPI ExpandoContainerModel(
82 ::FullContainerName const& containerName,
83 int containerSize,
84 ::ContainerCategory containerCategory,
85 ::Bedrock::NotNullNonOwnerPtr<::CreativeItemRegistry> creativeItemRegistry
86 );
87
88 MCAPI void _generateCurrentItems();
89
90 MCAPI void _refreshContainer(bool fullRefresh);
91
92#ifdef LL_PLAT_C
93 MCAPI void setOnItemExpandedCallback(::std::function<void(::std::string const&, int, int)> callback);
94#endif
95 // NOLINTEND
96
97public:
98 // constructor thunks
99 // NOLINTBEGIN
100 MCAPI void* $ctor(
101 ::FullContainerName const& containerName,
102 int containerSize,
103 ::ContainerCategory containerCategory,
104 ::Bedrock::NotNullNonOwnerPtr<::CreativeItemRegistry> creativeItemRegistry
105 );
106 // NOLINTEND
107
108public:
109 // destructor thunk
110 // NOLINTBEGIN
111 MCAPI void $dtor();
112 // NOLINTEND
113
114public:
115 // virtual function thunks
116 // NOLINTBEGIN
117 MCAPI void $containerContentChanged(int slot);
118
119 MCAPI ::ItemInstance const& $getItemInstance(int modelSlot) const;
120
121 MCAPI void $setItemInstance(int modelSlot, ::ItemInstance const& item);
122
123 MCFOLD bool $isItemInstanceBased() const;
124
125 MCFOLD void $setItem(int modelSlot, ::ItemStack const& item);
126
127 MCFOLD ::ItemStack const& $getItemStack(int modelSlot) const;
128
129 MCFOLD ::std::vector<::ItemStack> const& $getItems() const;
130
131 MCFOLD ::ItemStackBase const& $getItemStackBase(int modelSlot) const;
132
133 MCFOLD int $getContainerSize() const;
134
135 MCFOLD int $getFilteredContainerSize() const;
136
137 MCAPI ::ContainerExpandStatus $getItemExpandStatus(int itemId) const;
138
139 MCAPI ::std::string const& $getItemGroupName(int itemId) const;
140
141 MCAPI void $switchItemExpando(int itemId);
142
143 MCAPI void $refreshContainer(bool fullRefresh);
144
145 MCAPI int $getIndexForCreativeItem(::ItemStackBase const& item) const;
146
147 MCAPI void $_init();
148
149
150 // NOLINTEND
151
152public:
153 // vftables
154 // NOLINTBEGIN
155 MCNAPI static void** $vftable();
156 // NOLINTEND
157};
Definition CreativeItemRegistry.h:23
static MCAPI void ** $vftable()
Definition ItemInstance.h:15
Definition ItemStackBase.h:52
Definition ItemStack.h:35
Definition ExpandoModelElement.h:9
Definition FullContainerName.h:8