LeviLamina
Loading...
Searching...
No Matches
TradeContainerManagerController.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/containers/ContainerEnumName.h"
7#include "mc/world/containers/SlotData.h"
8#include "mc/world/containers/controllers/ItemTakeType.h"
9#include "mc/world/containers/managers/controllers/ContainerManagerController.h"
10#include "mc/world/item/ItemInstance.h"
11
12// auto generated forward declare list
13// clang-format off
14class ItemStack;
15class ItemStackBase;
16class MerchantRecipe;
18struct AutoPlaceItem;
19struct AutoPlaceResult;
23struct SelectedSlotInfo;
24// clang-format on
25
26class TradeContainerManagerController : public ::ContainerManagerController {
27public:
28 // member variables
29 // NOLINTBEGIN
30 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::TradeContainerManagerModel>> mTradeContainerMangerModel;
31 ::ll::TypedStorage<4, 4, int> mCurrentRecipeIndex;
32 ::ll::TypedStorage<8, 40, ::SlotData const> mCreatedItemOutputSlot;
33 ::ll::TypedStorage<8, 128, ::ItemInstance> mResultPreviewItem;
34 ::ll::TypedStorage<8, 8, ::MerchantRecipe*> mResultPreviewRecipe;
35 // NOLINTEND
36
37#ifdef LL_PLAT_S
38#else // LL_PLAT_C
39public:
40 // prevent constructor by default
41 TradeContainerManagerController();
42
43#endif
44public:
45 // virtual functions
46 // NOLINTBEGIN
47 virtual ~TradeContainerManagerController() /*override*/ = default;
48
49 virtual bool isOutputSlot(::std::string const& collectionName) const /*override*/;
50
51 virtual ::ItemStackBase const& getTakeableItemStackBase(::SlotData const& slot) const /*override*/;
52
53 virtual void handleTakeAll(::SlotData const& dstSlot, ::SlotData const& srcSlot) /*override*/;
54
55 virtual void handleTakeAmount(::SlotData const& dstSlot, int amount, ::SlotData const& srcSlot) /*override*/;
56
57 virtual void handleTakeHalf(::SlotData const& dstSlot, ::SlotData const& srcSlot) /*override*/;
58
59 virtual int handleAutoPlace(
60 ::SlotData const& srcSlot,
61 int amount,
62 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
63 ::std::vector<::AutoPlaceResult>& destinations
64 ) /*override*/;
65
66 virtual void handlePlaceAll(::SelectedSlotInfo const& selected, ::SlotData const& dstSlot) /*override*/;
67
68 virtual void handlePlaceOne(::SlotData const& srcSlot, ::SlotData const& dstSlot) /*override*/;
69
70 virtual void
71 handleAddToStack(::SlotData const& dstSlot, ::SlotData const& srcSlot, ::ItemTakeType type) /*override*/;
72
73 virtual ::CreateContainerItemScope
74 _makeCreateItemScope(::SlotData const& srcSlot, ::ItemTransferAmount const& takeAmount) /*override*/;
75 // NOLINTEND
76
77public:
78 // member functions
79 // NOLINTBEGIN
80#ifdef LL_PLAT_C
81 MCNAPI explicit TradeContainerManagerController(::std::weak_ptr<::TradeContainerManagerModel> pModel);
82
83 MCNAPI void _consumeIngredients(uchar numCrafts);
84
85 MCNAPI void
86 _consumeMaterials(::ItemStack const& containerItem, int amount, ::ContainerEnumName inputContainerEnumName);
87
88 MCNAPI void _createResult(bool shouldPlayAudio);
89
90 MCNAPI void
91 _createTradeItem(::ItemInstance& itemInstance, ::ItemStackRequestScope const& requestScope, uchar numCrafts);
92
93 MCNAPI ::MerchantRecipe* _getActiveRecipe();
94
95 MCNAPI bool _handleTransferTrade(::SlotData const& srcSlot, ::SlotData const& dstSlot);
96
97 MCNAPI void _moveItemsBackToInventory();
98
99 MCNAPI void _setupCallbacks();
100
101 MCNAPI int getAvailableRecipeListSize();
102
103 MCNAPI ::std::string getDisplayName();
104
105 MCNAPI ::MerchantRecipe* getRecipe(int CurrentIndex);
106
107 MCNAPI void setRecipeIndex(int index);
108#endif
109 // NOLINTEND
110
111public:
112 // constructor thunks
113 // NOLINTBEGIN
114#ifdef LL_PLAT_C
115 MCNAPI void* $ctor(::std::weak_ptr<::TradeContainerManagerModel> pModel);
116#endif
117 // NOLINTEND
118
119public:
120 // virtual function thunks
121 // NOLINTBEGIN
122#ifdef LL_PLAT_C
123 MCNAPI bool $isOutputSlot(::std::string const& collectionName) const;
124
125 MCNAPI ::ItemStackBase const& $getTakeableItemStackBase(::SlotData const& slot) const;
126
127 MCNAPI void $handleTakeAll(::SlotData const& dstSlot, ::SlotData const& srcSlot);
128
129 MCNAPI void $handleTakeAmount(::SlotData const& dstSlot, int amount, ::SlotData const& srcSlot);
130
131 MCNAPI void $handleTakeHalf(::SlotData const& dstSlot, ::SlotData const& srcSlot);
132
133 MCNAPI int $handleAutoPlace(
134 ::SlotData const& srcSlot,
135 int amount,
136 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
137 ::std::vector<::AutoPlaceResult>& destinations
138 );
139
140 MCNAPI void $handlePlaceAll(::SelectedSlotInfo const& selected, ::SlotData const& dstSlot);
141
142 MCNAPI void $handlePlaceOne(::SlotData const& srcSlot, ::SlotData const& dstSlot);
143
144 MCNAPI void $handleAddToStack(::SlotData const& dstSlot, ::SlotData const& srcSlot, ::ItemTakeType type);
145
146 MCNAPI ::CreateContainerItemScope
147 $_makeCreateItemScope(::SlotData const& srcSlot, ::ItemTransferAmount const& takeAmount);
148#endif
149
150
151 // NOLINTEND
152
153public:
154 // vftables
155 // NOLINTBEGIN
156 MCNAPI static void** $vftable();
157 // NOLINTEND
158};
Definition ItemInstance.h:15
Definition ItemStackBase.h:44
Definition ItemStack.h:26
Definition MerchantRecipe.h:20
static MCAPI void ** $vftable()
Definition TradeContainerManagerModel.h:15
Definition AutoPlaceItem.h:5
Definition AutoPlaceResult.h:5
Definition CreateContainerItemScope.h:18
Definition ItemStackRequestScope.h:14
Definition ItemTransferAmount.h:5
Definition SelectedSlotInfo.h:10
Definition SlotData.h:5