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