LeviLamina
Loading...
Searching...
No Matches
LoomContainerManagerController.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/containers/SlotData.h"
7#include "mc/world/containers/managers/controllers/ContainerManagerController.h"
8#include "mc/world/item/ItemInstance.h"
9
10// auto generated forward declare list
11// clang-format off
12class BannerPattern;
13class ItemStackBase;
15struct AutoPlaceItem;
16struct AutoPlaceResult;
20struct SelectedSlotInfo;
21// clang-format on
22
23class LoomContainerManagerController : public ::ContainerManagerController {
24public:
25 // member variables
26 // NOLINTBEGIN
27 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::LoomContainerManagerModel>> mLoomContainerManagerModel;
28 ::ll::TypedStorage<8, 24, ::std::vector<int>> mFilteredPatterns;
29 ::ll::TypedStorage<4, 4, int> mSelectedPatternIndex;
30 ::ll::TypedStorage<1, 1, bool> mCurrentlyCrafting;
31 ::ll::TypedStorage<8, 40, ::SlotData const> mCreatedItemOutputSlot;
32 ::ll::TypedStorage<8, 128, ::ItemInstance> mResultItemPreview;
33 ::ll::TypedStorage<8, 32, ::std::string> mResultPatternNameId;
34 // NOLINTEND
35
36#ifdef LL_PLAT_S
37#else // LL_PLAT_C
38public:
39 // prevent constructor by default
40 LoomContainerManagerController();
41
42#endif
43public:
44 // virtual functions
45 // NOLINTBEGIN
46#ifdef LL_PLAT_S
47 virtual ~LoomContainerManagerController() /*override*/ = default;
48#else // LL_PLAT_C
49 virtual ~LoomContainerManagerController() /*override*/;
50#endif
51
52#ifdef LL_PLAT_S
53 virtual bool isOutputSlot(::std::string const&) const /*override*/;
54#else // LL_PLAT_C
55 virtual bool isOutputSlot(::std::string const& collectionName) const /*override*/;
56#endif
57
58#ifdef LL_PLAT_S
59 virtual void handleTakeAmount(::SlotData const&, int, ::SlotData const&) /*override*/;
60#else // LL_PLAT_C
61 virtual void handleTakeAmount(::SlotData const& dstSlot, int amount, ::SlotData const& srcSlot) /*override*/;
62#endif
63
64#ifdef LL_PLAT_S
65 virtual void handleTakeAll(::SlotData const&, ::SlotData const&) /*override*/;
66#else // LL_PLAT_C
67 virtual void handleTakeAll(::SlotData const& dstSlot, ::SlotData const& srcSlot) /*override*/;
68#endif
69
70#ifdef LL_PLAT_S
71 virtual void handlePlaceAll(::SelectedSlotInfo const&, ::SlotData const&) /*override*/;
72#else // LL_PLAT_C
73 virtual void handlePlaceAll(::SelectedSlotInfo const& selected, ::SlotData const& dstSlot) /*override*/;
74#endif
75
76#ifdef LL_PLAT_S
77 virtual void handleTakeHalf(::SlotData const&, ::SlotData const&) /*override*/;
78#else // LL_PLAT_C
79 virtual void handleTakeHalf(::SlotData const& dstSlot, ::SlotData const& srcSlot) /*override*/;
80#endif
81
82#ifdef LL_PLAT_S
83 virtual void handlePlaceOne(::SlotData const&, ::SlotData const&) /*override*/;
84#else // LL_PLAT_C
85 virtual void handlePlaceOne(::SlotData const& srcSlot, ::SlotData const& dstSlot) /*override*/;
86#endif
87
88#ifdef LL_PLAT_S
89 virtual int handleAutoPlace(
90 ::SlotData const&,
91 int,
92 ::std::vector<::AutoPlaceItem> const&,
93 ::std::vector<::AutoPlaceResult>&
94 ) /*override*/;
95#else // LL_PLAT_C
96 virtual int handleAutoPlace(
97 ::SlotData const& srcSlot,
98 int amount,
99 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
100 ::std::vector<::AutoPlaceResult>& destinations
101 ) /*override*/;
102#endif
103
104#ifdef LL_PLAT_S
105 virtual ::ItemStackBase const& getTakeableItemStackBase(::SlotData const&) const /*override*/;
106#else // LL_PLAT_C
107 virtual ::ItemStackBase const& getTakeableItemStackBase(::SlotData const& slot) const /*override*/;
108#endif
109
110#ifdef LL_PLAT_S
111 virtual ::CreateContainerItemScope
112 _makeCreateItemScope(::SlotData const&, ::ItemTransferAmount const&) /*override*/;
113#else // LL_PLAT_C
114 virtual ::CreateContainerItemScope
115 _makeCreateItemScope(::SlotData const& srcSlot, ::ItemTransferAmount const& takeAmount) /*override*/;
116#endif
117
118#ifdef LL_PLAT_S
119 virtual void _onItemAcquired(::ItemInstance const&, ::SlotData const&) /*override*/;
120#else // LL_PLAT_C
121 virtual void _onItemAcquired(::ItemInstance const& instance, ::SlotData const& srcSlot) /*override*/;
122#endif
123
124 // NOLINTEND
125
126public:
127 // member functions
128 // NOLINTBEGIN
129#ifdef LL_PLAT_C
130 MCNAPI explicit LoomContainerManagerController(::std::weak_ptr<::LoomContainerManagerModel> containerManagerModel);
131
132 MCNAPI ::ItemInstance _buildResultItem();
133
134 MCNAPI void
135 _createCraftItem(::ItemInstance& instance, ::ItemStackRequestScope const& requestScope, uchar numCrafts);
136
137 MCNAPI void _filterPatterns();
138
139 MCNAPI bool _handleTransferCraft(::SlotData const& srcSlot, ::SlotData const& dstSlot);
140
141 MCNAPI void _setupCallbacks();
142
143 MCNAPI int getNumberOfPatterns() const;
144
145 MCNAPI ::BannerPattern const* getPattern(int collectionIndex) const;
146
147 MCNAPI ::BannerPattern const* getSelectedPattern() const;
148
149 MCNAPI int getSelectedPatternIndex() const;
150
151 MCNAPI bool isSelectedPattern(int collectionIndex) const;
152
153 MCNAPI void pullInPatternItemForPattern();
154
155 MCNAPI void setSelectedPattern(int collectionIndex);
156#endif
157 // NOLINTEND
158
159public:
160 // constructor thunks
161 // NOLINTBEGIN
162#ifdef LL_PLAT_C
163 MCNAPI void* $ctor(::std::weak_ptr<::LoomContainerManagerModel> containerManagerModel);
164#endif
165 // NOLINTEND
166
167public:
168 // destructor thunk
169 // NOLINTBEGIN
170 MCNAPI void $dtor();
171 // NOLINTEND
172
173public:
174 // virtual function thunks
175 // NOLINTBEGIN
176#ifdef LL_PLAT_C
177 MCNAPI bool $isOutputSlot(::std::string const& collectionName) const;
178
179 MCNAPI void $handleTakeAmount(::SlotData const& dstSlot, int amount, ::SlotData const& srcSlot);
180
181 MCNAPI void $handleTakeAll(::SlotData const& dstSlot, ::SlotData const& srcSlot);
182
183 MCNAPI void $handlePlaceAll(::SelectedSlotInfo const& selected, ::SlotData const& dstSlot);
184
185 MCNAPI void $handleTakeHalf(::SlotData const& dstSlot, ::SlotData const& srcSlot);
186
187 MCNAPI void $handlePlaceOne(::SlotData const& srcSlot, ::SlotData const& dstSlot);
188
189 MCNAPI int $handleAutoPlace(
190 ::SlotData const& srcSlot,
191 int amount,
192 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
193 ::std::vector<::AutoPlaceResult>& destinations
194 );
195
196 MCNAPI ::ItemStackBase const& $getTakeableItemStackBase(::SlotData const& slot) const;
197
198 MCNAPI ::CreateContainerItemScope
199 $_makeCreateItemScope(::SlotData const& srcSlot, ::ItemTransferAmount const& takeAmount);
200
201 MCNAPI void $_onItemAcquired(::ItemInstance const& instance, ::SlotData const& srcSlot);
202#endif
203
204
205 // NOLINTEND
206
207public:
208 // vftables
209 // NOLINTBEGIN
210 MCNAPI static void** $vftable();
211 // NOLINTEND
212};
Definition BannerPattern.h:17
Definition ItemInstance.h:15
Definition ItemStackBase.h:52
static MCAPI void ** $vftable()
Definition LoomContainerManagerModel.h:18
Definition AutoPlaceItem.h:5
Definition AutoPlaceResult.h:5
Definition CreateContainerItemScope.h:18
Definition ItemStackRequestScope.h:16
Definition ItemTransferAmount.h:9
Definition SelectedSlotInfo.h:10
Definition SlotData.h:10