LeviLamina
Loading...
Searching...
No Matches
ContainerAPI.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/gui/gameplay/api/gameplayui/AnvilInfo.h"
7#include "mc/client/gui/gameplay/api/gameplayui/ContainerItemType.h"
8#include "mc/client/gui/gameplay/data/gameplayui/ChestType.h"
9#include "mc/client/gui/gameplay/data/gameplayui/ContainerColorMode.h"
10#include "mc/deps/shared_types/legacy/ContainerType.h"
11#include "mc/legacy/ActorUniqueID.h"
12#include "mc/world/containers/ContainerEnumName.h"
13#include "mc/world/containers/SlotData.h"
14#include "mc/world/containers/controllers/ItemCraftType.h"
15#include "mc/world/item/ItemGroup.h"
16#include "mc/world/level/BlockPos.h"
17
18// auto generated forward declare list
19// clang-format off
24class ContainerModel;
31class ItemRegistryRef;
32class ItemStackBase;
33class LocalPlayer;
35namespace GameplayUI { struct BrewingStandInfo; }
36namespace GameplayUI { struct ContainerItem; }
37namespace GameplayUI { struct TradeOfferInfo; }
38namespace GameplayUI { struct TradeOverview; }
39namespace GameplayUI { struct TradeTierInfo; }
40// clang-format on
41
42namespace GameplayUI {
43
44class ContainerAPI {
45public:
46 // ContainerAPI inner types declare
47 // clang-format off
48 struct SplitMultipleState;
49 struct SplitSingleState;
50 // clang-format on
51
52 // ContainerAPI inner types define
53 struct SplitMultipleState {
54 public:
55 // member variables
56 // NOLINTBEGIN
57 ::ll::TypedStorage<8, 136, ::ItemGroup> distributionSource;
58 ::ll::TypedStorage<8, 40, ::SlotData> lastPlaceAllSlot;
59 ::ll::TypedStorage<4, 4, int> lastPlaceAllAmount;
60 // NOLINTEND
61 };
62
63 struct SplitSingleState {
64 public:
65 // member variables
66 // NOLINTBEGIN
67 ::ll::TypedStorage<8, 40, ::SlotData> lastPlaceOneSelectedSlot;
68 ::ll::TypedStorage<8, 40, ::SlotData> lastPlaceOneDestinationSlot;
69 // NOLINTEND
70
71 public:
72 // prevent constructor by default
73 SplitSingleState& operator=(SplitSingleState const&);
74 SplitSingleState(SplitSingleState const&);
75 SplitSingleState();
76
77 public:
78 // member functions
79 // NOLINTBEGIN
80 MCAPI ::GameplayUI::ContainerAPI::SplitSingleState& operator=(::GameplayUI::ContainerAPI::SplitSingleState&&);
81 // NOLINTEND
82 };
83
84public:
85 // member variables
86 // NOLINTBEGIN
87 ::ll::TypedStorage<8, 8, ::LocalPlayer*> mLocalPlayer;
88 ::ll::TypedStorage<8, 64, ::std::function<::ItemRegistryRef()>> mGetItemRegistryRef;
89 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ContainerManagerController>> mContainerManagerController;
90 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::AnvilContainerManagerModel>> mAnvilContainerManagerModel;
91 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::BrewingStandContainerManagerModel>> mBrewingStandContainerManagerModel;
92 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::ChestContainerManagerModel>> mChestContainerManagerModel;
93 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::CraftingContainerManagerModel>> mCraftingContainerManagerModel;
94 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::FurnaceContainerManagerModel>> mFurnaceContainerManagerModel;
95 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::GrindstoneContainerManagerModel>> mGrindstoneContainerManagerModel;
96 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::HopperContainerManagerModel>> mHopperContainerManagerModel;
97 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::DropperContainerManagerModel>> mDropperContainerManagerModel;
98 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::DispenserContainerManagerModel>> mDispenserContainerManagerModel;
99 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::Trade2ContainerManagerModel>> mTrade2ContainerManagerModel;
100 ::ll::TypedStorage<4, 12, ::BlockPos> mContainerBlockPos;
101 ::ll::TypedStorage<8, 8, ::ActorUniqueID> mUniqueActorId;
102 ::ll::TypedStorage<8, 80, ::GameplayUI::AnvilInfo> mAnvilInfo;
103 ::ll::TypedStorage<8, 184, ::GameplayUI::ContainerAPI::SplitMultipleState> mSplitMultipleState;
104 ::ll::TypedStorage<8, 88, ::std::optional<::GameplayUI::ContainerAPI::SplitSingleState>> mSplitSingleState;
105 // NOLINTEND
106
107public:
108 // prevent constructor by default
109 ContainerAPI();
110
111public:
112 // member functions
113 // NOLINTBEGIN
114 MCAPI explicit ContainerAPI(::std::function<::ItemRegistryRef()> getItemRegistryRef);
115
116 MCAPI ::GameplayUI::ContainerItem
117 _containerItemFromItemStack(::ItemStackBase const& item, ::GameplayUI::ContainerItemType containerItemType) const;
118
119 MCAPI void _recipeAutoCraft(::ContainerEnumName collectionName, int collectionIndex, ::ItemCraftType craftType);
120
121 MCAPI ::std::shared_ptr<::ContainerModel> _tryGetContainerModel(::ContainerEnumName containerName) const;
122
123 MCAPI void _tryUpdateCraftingContainer();
124
125 MCAPI void autoCraftAllItemsFromRecipe(::ContainerEnumName sourceName, int sourceIndex);
126
127 MCAPI void autoCraftOneItemFromRecipe(::ContainerEnumName sourceName, int sourceIndex);
128
129 MCAPI void autoPlaceItems(::ContainerEnumName sourceName, int sourceIndex);
130
131 MCAPI void closeContainer();
132
133 MCAPI void coalesceItems(::ContainerEnumName destinationName, int destinationIndex, ::ContainerEnumName sourceName);
134
135 MCAPI void coalesceOrAutoPlaceItems(::ContainerEnumName destinationName, int destinationIndex);
136
137 MCAPI void dropAllItems(::ContainerEnumName sourceName, int sourceIndex);
138
139 MCAPI void dropOneItem(::ContainerEnumName sourceName, int sourceIndex);
140
141 MCAPI ::std::optional<::GameplayUI::AnvilInfo> getAnvilInfo() const;
142
143 MCAPI ::std::optional<::GameplayUI::BrewingStandInfo> getBrewingStandInfo() const;
144
145 MCAPI ::std::vector<::GameplayUI::ContainerItem> getBundleContent(int bundleID) const;
146
147 MCAPI ::std::optional<::GameplayUI::ChestType> getChestType() const;
148
149 MCAPI ::std::optional<::GameplayUI::ContainerColorMode> getContainerColorMode();
150
151 MCAPI ::std::optional<::GameplayUI::ContainerItem>
152 getContainerItem(::ContainerEnumName containerName, int index) const;
153
154 MCAPI ::std::string getContainerName() const;
155
156 MCAPI ::std::optional<int> getContainerSize(::ContainerEnumName containerName) const;
157
158 MCAPI ::std::optional<::GameplayUI::ContainerItem>
159 getCraftingScreenContainerItem(::ContainerEnumName containerName, int index) const;
160
161 MCAPI ::std::string getRecipeBookSearchString() const;
162
163 MCAPI ::GameplayUI::TradeOfferInfo getTradeOfferInfo(int tradeTier, int tradeIndex) const;
164
165 MCAPI ::GameplayUI::TradeOverview getTradeOverview() const;
166
167 MCAPI ::GameplayUI::ContainerItem getTradeScreenResultPreviewContainerItem(int index) const;
168
169 MCAPI ::GameplayUI::TradeTierInfo getTradeTierInfo(int tradeTier) const;
170
171 MCAPI bool isItemStackableWithCursor(::ContainerEnumName containerName, int index) const;
172
173 MCAPI bool isRecipeBookFiltering() const;
174
175 MCAPI void onPlayerOpenContainer(
176 ::SharedTypes::Legacy::ContainerType containerType,
177 ::BlockPos const& blockPos,
178 ::ActorUniqueID const& uniqueId
179 );
180
181 MCAPI void performAutoTrade(int tradeTier, int tradeIndex);
182
183 MCAPI void placeAllItems(
184 ::ContainerEnumName selectedName,
185 int selectedIndex,
186 ::ContainerEnumName destinationName,
187 int destinationIndex
188 );
189
190 MCAPI void placeAmountOfItems(
191 ::ContainerEnumName selectedName,
192 int selectedIndex,
193 ::ContainerEnumName destinationName,
194 int destinationIndex,
195 int amount
196 );
197
198 MCAPI void placeOneItem(
199 ::ContainerEnumName selectedName,
200 int selectedIndex,
201 ::ContainerEnumName destinationName,
202 int destinationIndex
203 );
204
205 MCAPI void pullInIngredientsForSelectedTrade();
206
207 MCAPI void resetSplitStack();
208
209 MCAPI void selectRecipe(::ContainerEnumName sourceName, int sourceIndex, bool displayOnly);
210
211 MCAPI void selectTrade(int tradeTier, int tradeIndex);
212
213 MCAPI void setAnvilPreviewItemName(::std::string const& name);
214
215 MCAPI void setDistributeAllSource(::ContainerEnumName sourceName, int sourceIndex);
216
217 MCAPI void setRecipeBookFiltering(bool isFiltering);
218
219 MCAPI void setRecipeBookSearchString(::std::string const& searchText);
220
221 MCAPI void splitMultipleItems(
222 ::ContainerEnumName selectedName,
223 int selectedIndex,
224 ::ContainerEnumName destinationName,
225 int destinationIndex
226 );
227
228 MCAPI void splitMultipleItemsTouch(
229 ::ContainerEnumName selectedName,
230 int selectedIndex,
231 ::ContainerEnumName destinationName,
232 int destinationIndex
233 );
234
235 MCAPI void splitSingleItem(
236 ::ContainerEnumName sourceName,
237 int sourceIndex,
238 ::ContainerEnumName destinationName,
239 int destinationIndex
240 );
241
242 MCAPI void takeAllItems(
243 ::ContainerEnumName destinationName,
244 int destinationIndex,
245 ::ContainerEnumName sourceName,
246 int sourceIndex
247 );
248
249 MCAPI void takeHalfItems(
250 ::ContainerEnumName destinationName,
251 int destinationIndex,
252 ::ContainerEnumName sourceName,
253 int sourceIndex
254 );
255
256 MCAPI void takeOneItem(
257 ::ContainerEnumName destinationName,
258 int destinationIndex,
259 ::ContainerEnumName sourceName,
260 int sourceIndex
261 );
262
263 MCAPI ~ContainerAPI();
264 // NOLINTEND
265
266public:
267 // constructor thunks
268 // NOLINTBEGIN
269 MCAPI void* $ctor(::std::function<::ItemRegistryRef()> getItemRegistryRef);
270 // NOLINTEND
271
272public:
273 // destructor thunk
274 // NOLINTBEGIN
275 MCAPI void $dtor();
276 // NOLINTEND
277};
278
279} // namespace GameplayUI
Definition AnvilContainerManagerModel.h:18
Definition BrewingStandContainerManagerModel.h:19
Definition ChestContainerManagerModel.h:19
Definition ContainerManagerController.h:48
Definition ContainerModel.h:28
Definition CraftingContainerManagerModel.h:25
Definition DispenserContainerManagerModel.h:16
Definition DropperContainerManagerModel.h:16
Definition FurnaceContainerManagerModel.h:29
Definition ContainerAPI.h:7
Definition GrindstoneContainerManagerModel.h:18
Definition HopperContainerManagerModel.h:17
Definition ItemRegistryRef.h:42
Definition ItemStackBase.h:52
Definition LocalPlayer.h:5
Definition Trade2ContainerManagerModel.h:20
Definition BrewingStandInfo.h:7
Definition ContainerAPI.h:18
Definition ContainerItem.h:7
Definition TradeOfferInfo.h:7
Definition TradeOverview.h:7
Definition TradeTierInfo.h:7