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
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
37public:
38 // virtual functions
39 // NOLINTBEGIN
40 virtual ~StonecutterContainerManagerController() /*override*/ = default;
41
42 virtual void postInit(::std::weak_ptr<::ContainerManagerController> self) /*override*/;
43
44 virtual bool isOutputSlot(::std::string const& collectionName) const /*override*/;
45
46 virtual void handleTakeAmount(::SlotData const& dstSlot, int amount, ::SlotData const& srcSlot) /*override*/;
47
48 virtual void handleTakeAll(::SlotData const& dstSlot, ::SlotData const& srcSlot) /*override*/;
49
50 virtual void handlePlaceAll(::SelectedSlotInfo const& selected, ::SlotData const& dstSlot) /*override*/;
51
52 virtual void handleTakeHalf(::SlotData const& dstSlot, ::SlotData const& srcSlot) /*override*/;
53
54 virtual void handlePlaceOne(::SlotData const& srcSlot, ::SlotData const& dstSlot) /*override*/;
55
56 virtual int handleAutoPlace(
57 ::SlotData const& srcSlot,
58 int amount,
59 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
60 ::std::vector<::AutoPlaceResult>& destinations
61 ) /*override*/;
62
63 virtual ::ItemStackBase const& getTakeableItemStackBase(::SlotData const& slot) const /*override*/;
64
65 virtual void _onContainerScreenAction(::ContainerScreenActionResult const& result) /*override*/;
66
67 virtual ::CreateContainerItemScope
68 _makeCreateItemScope(::SlotData const& srcSlot, ::ItemTransferAmount const& takeAmount) /*override*/;
69
70 virtual void _onItemAcquired(::ItemInstance const& stack, ::SlotData const& srcSlot) /*override*/;
71
72 virtual void _updateItemStackRequest(
73 ::ContainerScreenRequestActionType,
75 ::ItemStackRequestScope& requestScope
76 ) /*override*/;
77 // NOLINTEND
78
79public:
80 // member functions
81 // NOLINTBEGIN
82 MCNAPI_C ::std::pair<::ItemInstance, ::RecipeNetId> _buildResultItem();
83
84 MCNAPI_C bool
85 _createCraftItem(::ItemInstance& instance, ::ItemStackRequestScope const& requestScope, uchar craftCount);
86
87 MCNAPI_C bool _handleTransferCraft(::SlotData const& srcSlot, ::SlotData const& dstSlot);
88
89 MCNAPI_C void _setupCallbacks();
90
91 MCNAPI_C void _updateResultItem();
92
93 MCNAPI_C int getItemIdAuxForStonePattern(int collectionIndex) const;
94
95 MCNAPI_C ::ItemInstance getItemInstanceForStonePattern(int collectionIndex) const;
96
97 MCNAPI_C int getNumberOfStonePatterns() const;
98
99 MCNAPI_C int getStackCountForStonePattern(int collectionIndex) const;
100 // NOLINTEND
101
102public:
103 // constructor thunks
104 // NOLINTBEGIN
105 MCNAPI_C void* $ctor(::std::weak_ptr<::StonecutterContainerManagerModel> containerManagerModel);
106 // NOLINTEND
107
108public:
109 // virtual function thunks
110 // NOLINTBEGIN
111#ifdef LL_PLAT_C
112 MCNAPI void $postInit(::std::weak_ptr<::ContainerManagerController> self);
113
114 MCNAPI bool $isOutputSlot(::std::string const& collectionName) const;
115
116 MCNAPI void $handleTakeAmount(::SlotData const& dstSlot, int amount, ::SlotData const& srcSlot);
117
118 MCNAPI void $handleTakeAll(::SlotData const& dstSlot, ::SlotData const& srcSlot);
119
120 MCNAPI void $handlePlaceAll(::SelectedSlotInfo const& selected, ::SlotData const& dstSlot);
121
122 MCNAPI void $handleTakeHalf(::SlotData const& dstSlot, ::SlotData const& srcSlot);
123
124 MCNAPI void $handlePlaceOne(::SlotData const& srcSlot, ::SlotData const& dstSlot);
125
126 MCNAPI int $handleAutoPlace(
127 ::SlotData const& srcSlot,
128 int amount,
129 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
130 ::std::vector<::AutoPlaceResult>& destinations
131 );
132
133 MCNAPI ::ItemStackBase const& $getTakeableItemStackBase(::SlotData const& slot) const;
134
135 MCNAPI void $_onContainerScreenAction(::ContainerScreenActionResult const& result);
136
137 MCNAPI ::CreateContainerItemScope
138 $_makeCreateItemScope(::SlotData const& srcSlot, ::ItemTransferAmount const& takeAmount);
139
140 MCNAPI void $_onItemAcquired(::ItemInstance const& stack, ::SlotData const& srcSlot);
141
142 MCNAPI void $_updateItemStackRequest(
143 ::ContainerScreenRequestActionType,
144 ::ContainerScreenActionResult const& result,
145 ::ItemStackRequestScope& requestScope
146 );
147#endif
148
149
150 // NOLINTEND
151
152public:
153 // vftables
154 // NOLINTBEGIN
155 MCNAPI static void** $vftable();
156 // NOLINTEND
157};
Definition ContainerManagerController.h:47
Definition ItemInstance.h:15
Definition ItemStackBase.h:44
Definition StonecutterContainerManagerController.h:27
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:5
Definition SlotData.h:5