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