LeviLamina
Loading...
Searching...
No Matches
ContainerModel.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/pub_sub/Publisher.h"
7#include "mc/deps/shared_types/legacy/ContainerType.h"
8#include "mc/world/ContainerContentChangeListener.h"
9#include "mc/world/containers/FullContainerName.h"
10#include "mc/world/containers/models/ContainerCategory.h"
11#include "mc/world/containers/models/ContainerExpandStatus.h"
12
13// auto generated forward declare list
14// clang-format off
15class Container;
17class ItemInstance;
18class ItemStack;
19class ItemStackBase;
21struct SlotData;
22namespace Bedrock::PubSub::ThreadModel { struct SingleThreaded; }
23// clang-format on
24
26public:
27 // member variables
28 // NOLINTBEGIN
29 ::ll::TypedStorage<1, 1, bool const> mIsClientSide;
30 ::ll::TypedStorage<8, 32, ::std::string> mContainerStringName;
31 ::ll::TypedStorage<4, 12, ::FullContainerName const> mFullContainerName;
32 ::ll::TypedStorage<
33 8,
34 64,
35 ::std::unordered_map<
36 ::SharedTypes::Legacy::ContainerType,
37 ::std::function<void(int, ::ItemStack const&, ::ItemStack const&)>>>
38 mTrackedOnContainerChangedCallbacks;
39 ::ll::TypedStorage<8, 24, ::std::vector<::std::function<void(int, ::ItemStack const&, ::ItemStack const&)>>>
40 mOnContainerChangedCallbacks;
41 ::ll::TypedStorage<8, 64, ::std::function<void(int, ::ItemStack const&, ::ItemStack const&)>>
42 mPlayerNotificationCallbacks;
43 ::ll::TypedStorage<
44 8,
45 24,
46 ::std::vector<::Bedrock::PubSub::
48 mContainerSlotChangePublishers;
49 ::ll::TypedStorage<4, 4, ::ContainerCategory> mContainerCategory;
50 ::ll::TypedStorage<8, 24, ::std::vector<::SlotData>> mItemSource;
51 ::ll::TypedStorage<8, 8, ::SparseContainerClient*> mClientUIContainer;
52 ::ll::
54 mContainerSizeChangePublisher;
55 ::ll::TypedStorage<8, 24, ::std::vector<::ItemStack>> mItems;
56 // NOLINTEND
57
58public:
59 // prevent constructor by default
61
62public:
63 // virtual functions
64 // NOLINTBEGIN
65 // vIndex: 1
66 virtual ~ContainerModel() /*override*/;
67
68 // vIndex: 2
69 virtual void postInit();
70
71 // vIndex: 3
72 virtual void releaseResources();
73
74 // vIndex: 0
75 virtual void containerContentChanged(int slot) /*override*/;
76
77 // vIndex: 4
78 virtual int getContainerSize() const;
79
80 // vIndex: 5
81 virtual int getFilteredContainerSize() const;
82
83 // vIndex: 6
84 virtual void tick(int selectedSlot);
85
86 // vIndex: 7
87 virtual ::ContainerWeakRef getContainerWeakRef() const;
88
89 // vIndex: 8
90 virtual ::ItemStack const& getItemStack(int modelSlot) const;
91
92 // vIndex: 9
93 virtual ::std::vector<::ItemStack> const& getItems() const;
94
95 // vIndex: 10
96 virtual ::ItemInstance const& getItemInstance(int modelSlot) const;
97
98 // vIndex: 11
99 virtual ::ItemStackBase const& getItemStackBase(int modelSlot) const;
100
101 // vIndex: 12
102 virtual bool isItemInstanceBased() const;
103
104 // vIndex: 13
105 virtual void setItem(int modelSlot, ::ItemStack const& item);
106
107 // vIndex: 14
108 virtual bool isValid();
109
110 // vIndex: 15
111 virtual bool isItemFiltered(::ItemStackBase const& item) const;
112
113 // vIndex: 16
114 virtual bool isExpanableItemFiltered(int index) const;
115
116 // vIndex: 17
117 virtual ::ContainerExpandStatus getItemExpandStatus(int itemId) const;
118
119 // vIndex: 18
120 virtual ::std::string const& getItemGroupName(int itemId) const;
121
122 // vIndex: 19
123 virtual void switchItemExpando(int itemId);
124
125 // vIndex: 20
126 virtual bool isSlotDisabled(int) const;
127
128 // vIndex: 21
129 virtual ::Container* _getContainer() const;
130
131 // vIndex: 22
132 virtual int _getContainerOffset() const;
133
134 // vIndex: 23
135 virtual void _init();
136
137 // vIndex: 24
138 virtual void _onItemChanged(int modelSlot, ::ItemStack const& oldItem, ::ItemStack const& newItem);
139 // NOLINTEND
140
141public:
142 // member functions
143 // NOLINTBEGIN
145 ::FullContainerName const& fullContainerName,
146 int containerSize,
147 ::ContainerCategory containerCategory,
148 bool isClientSide
149 );
150
151 MCNAPI void
152 _onClientUIItemNetworkChanged(int containerSlot, ::ItemStack const& oldItem, ::ItemStack const& newItem);
153
154 MCNAPI void networkUpdateItem(int modelSlot, ::ItemStack const& oldItem, ::ItemStack const& newItem);
155
156 MCNAPI void
157 registerOnContainerChangedCallback(::std::function<void(int, ::ItemStack const&, ::ItemStack const&)> callback);
158
159 MCNAPI void
160 registerPlayerNotificationCallback(::std::function<void(int, ::ItemStack const&, ::ItemStack const&)> callback);
161
162 MCNAPI void setClientUIContainer(::SparseContainerClient* clientUIContainer);
163
164 MCNAPI void setItemSource(int slot, ::SlotData const& srcSlot);
165 // NOLINTEND
166
167public:
168 // constructor thunks
169 // NOLINTBEGIN
170 MCNAPI void* $ctor(
171 ::FullContainerName const& fullContainerName,
172 int containerSize,
173 ::ContainerCategory containerCategory,
174 bool isClientSide
175 );
176 // NOLINTEND
177
178public:
179 // destructor thunk
180 // NOLINTBEGIN
181 MCNAPI void $dtor();
182 // NOLINTEND
183
184public:
185 // virtual function thunks
186 // NOLINTBEGIN
187 MCNAPI void $postInit();
188
189 MCNAPI void $releaseResources();
190
191 MCNAPI void $containerContentChanged(int slot);
192
193 MCNAPI int $getContainerSize() const;
194
195 MCNAPI int $getFilteredContainerSize() const;
196
197 MCNAPI void $tick(int selectedSlot);
198
199 MCNAPI ::ContainerWeakRef $getContainerWeakRef() const;
200
201 MCNAPI ::ItemStack const& $getItemStack(int modelSlot) const;
202
203 MCNAPI ::std::vector<::ItemStack> const& $getItems() const;
204
205 MCNAPI ::ItemInstance const& $getItemInstance(int modelSlot) const;
206
207 MCNAPI ::ItemStackBase const& $getItemStackBase(int modelSlot) const;
208
209 MCNAPI bool $isItemInstanceBased() const;
210
211 MCNAPI void $setItem(int modelSlot, ::ItemStack const& item);
212
213 MCNAPI bool $isValid();
214
215 MCNAPI bool $isItemFiltered(::ItemStackBase const& item) const;
216
217 MCNAPI bool $isExpanableItemFiltered(int index) const;
218
219 MCNAPI ::ContainerExpandStatus $getItemExpandStatus(int itemId) const;
220
221 MCNAPI ::std::string const& $getItemGroupName(int itemId) const;
222
223 MCNAPI void $switchItemExpando(int itemId);
224
225 MCNAPI bool $isSlotDisabled(int) const;
226
227 MCNAPI ::Container* $_getContainer() const;
228
229 MCNAPI int $_getContainerOffset() const;
230
231 MCNAPI void $_init();
232
233 MCNAPI void $_onItemChanged(int modelSlot, ::ItemStack const& oldItem, ::ItemStack const& newItem);
234 // NOLINTEND
235
236public:
237 // vftables
238 // NOLINTBEGIN
239 MCNAPI static void** $vftable();
240 // NOLINTEND
241};
Definition Publisher.h:8
Definition ContainerContentChangeListener.h:5
Definition ContainerModel.h:25
MCAPI::ItemInstance const & $getItemInstance(int modelSlot) const
MCAPI void $_init()
MCAPI ::std::vector<::ItemStack > const & $getItems() const
MCAPI int $_getContainerOffset() const
MCAPI bool $isItemFiltered(::ItemStackBase const &item) const
MCAPI::ContainerWeakRef $getContainerWeakRef() const
MCAPI::ContainerExpandStatus $getItemExpandStatus(int itemId) const
MCAPI bool $isValid()
MCAPI void $tick(int selectedSlot)
MCAPI::Container * $_getContainer() const
MCAPI void setItemSource(int slot, ::SlotData const &srcSlot)
MCAPI::std::string const & $getItemGroupName(int itemId) const
MCAPI int $getFilteredContainerSize() const
MCAPI::ItemStackBase const & $getItemStackBase(int modelSlot) const
MCAPI bool $isItemInstanceBased() const
MCAPI void registerOnContainerChangedCallback(::std::function< void(int, ::ItemStack const &, ::ItemStack const &)> callback)
MCAPI void $containerContentChanged(int slot)
MCAPI void $dtor()
MCAPI void registerPlayerNotificationCallback(::std::function< void(int, ::ItemStack const &, ::ItemStack const &)> callback)
static MCAPI void ** $vftable()
MCAPI void $setItem(int modelSlot, ::ItemStack const &item)
MCAPI void networkUpdateItem(int modelSlot, ::ItemStack const &oldItem, ::ItemStack const &newItem)
MCAPI void $switchItemExpando(int itemId)
MCAPI bool $isExpanableItemFiltered(int index) const
MCAPI void setClientUIContainer(::SparseContainerClient *clientUIContainer)
MCAPI void $_onItemChanged(int modelSlot, ::ItemStack const &oldItem, ::ItemStack const &newItem)
MCAPI void $postInit()
MCAPI void $releaseResources()
MCAPI void _onClientUIItemNetworkChanged(int containerSlot, ::ItemStack const &oldItem, ::ItemStack const &newItem)
MCAPI ContainerModel(::FullContainerName const &fullContainerName, int containerSize, ::ContainerCategory containerCategory, bool isClientSide)
MCAPI void * $ctor(::FullContainerName const &fullContainerName, int containerSize, ::ContainerCategory containerCategory, bool isClientSide)
MCAPI int $getContainerSize() const
MCAPI bool $isSlotDisabled(int) const
MCAPI::ItemStack const & $getItemStack(int modelSlot) const
Definition ContainerWeakRef.h:17
Definition Container.h:30
Definition ItemInstance.h:16
Definition ItemStackBase.h:35
Definition ItemStack.h:25
Definition SparseContainerClient.h:14
Definition FullContainerName.h:8
Definition SlotData.h:5