Skip to content
LeviMC
English
AutoLightDark
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/shared_types/legacy/ContainerType.h"
7#include "mc/world/ContainerContentChangeListener.h"
8#include "mc/world/containers/FullContainerName.h"
9#include "mc/world/containers/models/ContainerCategory.h"
10#include "mc/world/containers/models/ContainerExpandStatus.h"
11
12// auto generated forward declare list
13// clang-format off
14class Container;
16class ItemInstance;
17class ItemStack;
18class ItemStackBase;
20struct SlotData;
21// clang-format on
22
23class ContainerModel : public ::ContainerContentChangeListener {
24public:
25 // member variables
26 // NOLINTBEGIN
27 ::ll::TypedStorage<1, 1, bool const> mIsClientSide;
28 ::ll::TypedStorage<8, 32, ::std::string> mContainerStringName;
29 ::ll::TypedStorage<4, 12, ::FullContainerName const> mFullContainerName;
30 ::ll::TypedStorage<
31 8,
32 64,
33 ::std::unordered_map<
34 ::SharedTypes::Legacy::ContainerType,
35 ::std::function<void(int, ::ItemStack const&, ::ItemStack const&)>>>
36 mTrackedOnContainerChangedCallbacks;
37 ::ll::TypedStorage<8, 24, ::std::vector<::std::function<void(int, ::ItemStack const&, ::ItemStack const&)>>>
38 mOnContainerChangedCallbacks;
39 ::ll::TypedStorage<8, 64, ::std::function<void(int, ::ItemStack const&, ::ItemStack const&)>>
40 mPlayerNotificationCallbacks;
41 ::ll::TypedStorage<4, 4, ::ContainerCategory> mContainerCategory;
42 ::ll::TypedStorage<8, 24, ::std::vector<::SlotData>> mItemSource;
43 ::ll::TypedStorage<8, 8, ::SparseContainerClient*> mClientUIContainer;
44 ::ll::TypedStorage<8, 24, ::std::vector<::ItemStack>> mItems;
45 // NOLINTEND
46
47public:
48 // prevent constructor by default
49 ContainerModel();
50
51public:
52 // virtual functions
53 // NOLINTBEGIN
54 virtual ~ContainerModel() /*override*/;
55
56 virtual void postInit();
57
58 virtual void releaseResources();
59
60 virtual void containerContentChanged(int slot) /*override*/;
61
62 virtual int getContainerSize() const;
63
64 virtual int getFilteredContainerSize() const;
65
66 virtual void tick(int selectedSlot);
67
68 virtual ::ContainerWeakRef getContainerWeakRef() const;
69
70 virtual ::ItemStack const& getItemStack(int modelSlot) const;
71
72 virtual ::std::vector<::ItemStack> const& getItems() const;
73
74 virtual ::ItemInstance const& getItemInstance(int modelSlot) const;
75
76 virtual ::ItemStackBase const& getItemStackBase(int modelSlot) const;
77
78 virtual bool isItemInstanceBased() const;
79
80 virtual void setItem(int modelSlot, ::ItemStack const& item);
81
82 virtual bool isValid();
83
84 virtual bool isItemFiltered(::ItemStackBase const& item) const;
85
86 virtual bool isExpanableItemFiltered(int index) const;
87
88 virtual ::ContainerExpandStatus getItemExpandStatus(int itemId) const;
89
90 virtual ::std::string const& getItemGroupName(int itemId) const;
91
92 virtual void switchItemExpando(int itemId);
93
94 virtual bool isSlotDisabled(int slot) const;
95
96 virtual void refreshContainer(bool fullRefresh);
97
98 virtual ::Container* _getContainer() const;
99
100 virtual int _getContainerOffset() const;
101
102 virtual void _init();
103
104 virtual void _onItemChanged(int modelSlot, ::ItemStack const& oldItem, ::ItemStack const& newItem);
105 // NOLINTEND
106
107public:
108 // member functions
109 // NOLINTBEGIN
110 MCAPI ContainerModel(
111 ::FullContainerName const& fullContainerName,
112 int containerSize,
113 ::ContainerCategory containerCategory,
114 bool isClientSide
115 );
116
117 MCNAPI void
118 _onClientUIItemNetworkChanged(int containerSlot, ::ItemStack const& oldItem, ::ItemStack const& newItem);
119
120 MCNAPI void networkUpdateItem(int modelSlot, ::ItemStack const& oldItem, ::ItemStack const& newItem);
121
122 MCNAPI void
123 registerOnContainerChangedCallback(::std::function<void(int, ::ItemStack const&, ::ItemStack const&)> callback);
124
125 MCNAPI void
126 registerPlayerNotificationCallback(::std::function<void(int, ::ItemStack const&, ::ItemStack const&)> callback);
127
128 MCNAPI void setClientUIContainer(::SparseContainerClient* clientUIContainer);
129 // NOLINTEND
130
131public:
132 // constructor thunks
133 // NOLINTBEGIN
134 MCAPI void* $ctor(
135 ::FullContainerName const& fullContainerName,
136 int containerSize,
137 ::ContainerCategory containerCategory,
138 bool isClientSide
139 );
140 // NOLINTEND
141
142public:
143 // destructor thunk
144 // NOLINTBEGIN
145 MCAPI void $dtor();
146 // NOLINTEND
147
148public:
149 // virtual function thunks
150 // NOLINTBEGIN
151 MCFOLD void $postInit();
152
153 MCAPI void $releaseResources();
154
155 MCAPI void $containerContentChanged(int slot);
156
157 MCAPI int $getContainerSize() const;
158
159 MCAPI int $getFilteredContainerSize() const;
160
161 MCFOLD void $tick(int selectedSlot);
162
163 MCNAPI ::ContainerWeakRef $getContainerWeakRef() const;
164
165 MCNAPI ::ItemStack const& $getItemStack(int modelSlot) const;
166
167 MCNAPI ::std::vector<::ItemStack> const& $getItems() const;
168
169 MCAPI ::ItemInstance const& $getItemInstance(int modelSlot) const;
170
171 MCAPI ::ItemStackBase const& $getItemStackBase(int modelSlot) const;
172
173 MCFOLD bool $isItemInstanceBased() const;
174
175 MCNAPI void $setItem(int modelSlot, ::ItemStack const& item);
176
177 MCNAPI bool $isValid();
178
179 MCFOLD bool $isItemFiltered(::ItemStackBase const& item) const;
180
181 MCFOLD bool $isExpanableItemFiltered(int index) const;
182
183 MCFOLD ::ContainerExpandStatus $getItemExpandStatus(int itemId) const;
184
185 MCFOLD ::std::string const& $getItemGroupName(int itemId) const;
186
187 MCFOLD void $switchItemExpando(int itemId);
188
189 MCFOLD bool $isSlotDisabled(int slot) const;
190
191 MCFOLD void $refreshContainer(bool fullRefresh);
192
193 MCNAPI ::Container* $_getContainer() const;
194
195 MCFOLD int $_getContainerOffset() const;
196
197 MCNAPI void $_init();
198
199#ifdef LL_PLAT_S
200 MCAPI void $_onItemChanged(int modelSlot, ::ItemStack const& oldItem, ::ItemStack const& newItem);
201#else // LL_PLAT_C
202 MCNAPI void $_onItemChanged(int modelSlot, ::ItemStack const& oldItem, ::ItemStack const& newItem);
203#endif
204
205
206 // NOLINTEND
207};
Definition ContainerContentChangeListener.h:5
MCAPI void $_init()
MCAPI ::std::vector<::ItemStack > const & $getItems() const
MCAPI::ContainerWeakRef $getContainerWeakRef() const
MCAPI bool $isValid()
MCAPI::Container * $_getContainer() const
MCAPI void registerOnContainerChangedCallback(::std::function< void(int, ::ItemStack const &, ::ItemStack const &)> callback)
MCAPI void registerPlayerNotificationCallback(::std::function< void(int, ::ItemStack const &, ::ItemStack const &)> callback)
MCAPI void $setItem(int modelSlot, ::ItemStack const &item)
MCAPI void networkUpdateItem(int modelSlot, ::ItemStack const &oldItem, ::ItemStack const &newItem)
MCAPI void setClientUIContainer(::SparseContainerClient *clientUIContainer)
MCAPI void $_onItemChanged(int modelSlot, ::ItemStack const &oldItem, ::ItemStack const &newItem)
MCAPI void _onClientUIItemNetworkChanged(int containerSlot, ::ItemStack const &oldItem, ::ItemStack const &newItem)
MCAPI::ItemStack const & $getItemStack(int modelSlot) const
Definition ContainerWeakRef.h:17
Definition Container.h:36
Definition ItemInstance.h:15
Definition ItemStackBase.h:45
Definition ItemStack.h:26
Definition SparseContainerClient.h:20
Definition FullContainerName.h:8
Definition SlotData.h:5