LeviLamina
Loading...
Searching...
No Matches
StonecutterContainerManagerController.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/containers/managers/controllers/ItemResultPreview.h"
9#include "mc/world/inventory/network/TypedServerNetId.h"
10#include "mc/world/inventory/simulation/ContainerScreenRequestActionType.h"
11
12// auto generated forward declare list
13// clang-format off
14class ItemInstance;
15class ItemStackBase;
17struct AutoPlaceItem;
18struct AutoPlaceResult;
23struct RecipeNetIdTag;
24struct SelectedSlotInfo;
25// clang-format on
26
27class StonecutterContainerManagerController : public ::ContainerManagerController {
28public:
29 // member variables
30 // NOLINTBEGIN
31 ::ll::TypedStorage<4, 4, int> mSelectedStoneIndex;
32 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::StonecutterContainerManagerModel>> mStonecutterContainerManagerModel;
33 ::ll::TypedStorage<8, 40, ::SlotData const> mCreatedItemOutputSlot;
34 ::ll::TypedStorage<8, 136, ::ItemResultPreview> mResultPreview;
35 // NOLINTEND
36
37#ifdef LL_PLAT_S
38#else // LL_PLAT_C
39public:
40 // prevent constructor by default
41 StonecutterContainerManagerController();
42
43#endif
44public:
45 // virtual functions
46 // NOLINTBEGIN
47 virtual ~StonecutterContainerManagerController() /*override*/ = default;
48
49 virtual void postInit(::std::weak_ptr<::ContainerManagerController> self) /*override*/;
50
51 virtual bool isOutputSlot(::std::string const& collectionName) const /*override*/;
52
53 virtual void handleTakeAmount(::SlotData const& dstSlot, int amount, ::SlotData const& srcSlot) /*override*/;
54
55 virtual void handleTakeAll(::SlotData const& dstSlot, ::SlotData const& srcSlot) /*override*/;
56
57 virtual void handlePlaceAll(::SelectedSlotInfo const& selected, ::SlotData const& dstSlot) /*override*/;
58
59 virtual void handleTakeHalf(::SlotData const& dstSlot, ::SlotData const& srcSlot) /*override*/;
60
61 virtual void handlePlaceOne(::SlotData const& srcSlot, ::SlotData const& dstSlot) /*override*/;
62
63 virtual int handleAutoPlace(
64 ::SlotData const& srcSlot,
65 int amount,
66 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
67 ::std::vector<::AutoPlaceResult>& destinations
68 ) /*override*/;
69
70 virtual ::ItemStackBase const& getTakeableItemStackBase(::SlotData const& slot) const /*override*/;
71
72 virtual void _onContainerScreenAction(::ContainerScreenActionResult const& result) /*override*/;
73
74 virtual ::CreateContainerItemScope
75 _makeCreateItemScope(::SlotData const& srcSlot, ::ItemTransferAmount const& takeAmount) /*override*/;
76
77 virtual void _onItemAcquired(::ItemInstance const& instance, ::SlotData const& srcSlot) /*override*/;
78
79 virtual void _updateItemStackRequest(
80 ::ContainerScreenRequestActionType,
82 ::ItemStackRequestScope& requestScope
83 ) /*override*/;
84 // NOLINTEND
85
86public:
87 // member functions
88 // NOLINTBEGIN
89#ifdef LL_PLAT_C
90 MCNAPI explicit StonecutterContainerManagerController(
91 ::std::weak_ptr<::StonecutterContainerManagerModel> containerManagerModel
92 );
93
94 MCNAPI ::std::pair<::ItemInstance, ::RecipeNetId> _buildResultItem();
95
96 MCNAPI bool
97 _createCraftItem(::ItemInstance& instance, ::ItemStackRequestScope const& requestScope, uchar craftCount);
98
99 MCNAPI bool _handleTransferCraft(::SlotData const& srcSlot, ::SlotData const& dstSlot);
100
101 MCNAPI void _setupCallbacks();
102
103 MCNAPI void _updateResultItem();
104
105 MCNAPI int getItemIdAuxForStonePattern(int collectionIndex) const;
106
107 MCNAPI ::ItemInstance getItemInstanceForStonePattern(int collectionIndex) const;
108
109 MCNAPI int getNumberOfStonePatterns() const;
110
111 MCNAPI int getStackCountForStonePattern(int collectionIndex) const;
112#endif
113 // NOLINTEND
114
115public:
116 // constructor thunks
117 // NOLINTBEGIN
118#ifdef LL_PLAT_C
119 MCNAPI void* $ctor(::std::weak_ptr<::StonecutterContainerManagerModel> containerManagerModel);
120#endif
121 // NOLINTEND
122
123public:
124 // virtual function thunks
125 // NOLINTBEGIN
126#ifdef LL_PLAT_C
127 MCNAPI void $postInit(::std::weak_ptr<::ContainerManagerController> self);
128
129 MCNAPI bool $isOutputSlot(::std::string const& collectionName) const;
130
131 MCNAPI void $handleTakeAmount(::SlotData const& dstSlot, int amount, ::SlotData const& srcSlot);
132
133 MCNAPI void $handleTakeAll(::SlotData const& dstSlot, ::SlotData const& srcSlot);
134
135 MCNAPI void $handlePlaceAll(::SelectedSlotInfo const& selected, ::SlotData const& dstSlot);
136
137 MCNAPI void $handleTakeHalf(::SlotData const& dstSlot, ::SlotData const& srcSlot);
138
139 MCNAPI void $handlePlaceOne(::SlotData const& srcSlot, ::SlotData const& dstSlot);
140
141 MCNAPI int $handleAutoPlace(
142 ::SlotData const& srcSlot,
143 int amount,
144 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
145 ::std::vector<::AutoPlaceResult>& destinations
146 );
147
148 MCNAPI ::ItemStackBase const& $getTakeableItemStackBase(::SlotData const& slot) const;
149
150 MCNAPI void $_onContainerScreenAction(::ContainerScreenActionResult const& result);
151
152 MCNAPI ::CreateContainerItemScope
153 $_makeCreateItemScope(::SlotData const& srcSlot, ::ItemTransferAmount const& takeAmount);
154
155 MCNAPI void $_onItemAcquired(::ItemInstance const& instance, ::SlotData const& srcSlot);
156
157 MCNAPI void $_updateItemStackRequest(
158 ::ContainerScreenRequestActionType,
159 ::ContainerScreenActionResult const& result,
160 ::ItemStackRequestScope& requestScope
161 );
162#endif
163
164
165 // NOLINTEND
166
167public:
168 // vftables
169 // NOLINTBEGIN
170 MCNAPI static void** $vftable();
171 // NOLINTEND
172};
Definition ItemInstance.h:15
Definition ItemStackBase.h:44
Definition StonecutterContainerManagerModel.h:20
Definition AutoPlaceItem.h:5
Definition AutoPlaceResult.h:5
Definition ContainerScreenActionResult.h:11
Definition CreateContainerItemScope.h:18
Definition ItemStackRequestScope.h:14
Definition ItemTransferAmount.h:5
Definition RecipeNetIdTag.h:5
Definition SelectedSlotInfo.h:10
Definition SlotData.h:5