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
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
37public:
38 // virtual functions
39 // NOLINTBEGIN
40 virtual ~TradeContainerManagerController() /*override*/ = default;
41
42 virtual bool isOutputSlot(::std::string const& collectionName) const /*override*/;
43
44 virtual ::ItemStackBase const& getTakeableItemStackBase(::SlotData const& slot) const /*override*/;
45
46 virtual void handleTakeAll(::SlotData const& dstSlot, ::SlotData const& srcSlot) /*override*/;
47
48 virtual void handleTakeAmount(::SlotData const& dstSlot, int amount, ::SlotData const& srcSlot) /*override*/;
49
50 virtual void handleTakeHalf(::SlotData const& dstSlot, ::SlotData const& srcSlot) /*override*/;
51
52 virtual int handleAutoPlace(
53 ::SlotData const& srcSlot,
54 int amount,
55 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
56 ::std::vector<::AutoPlaceResult>& destinations
57 ) /*override*/;
58
59 virtual void handlePlaceAll(::SelectedSlotInfo const& selected, ::SlotData const& dstSlot) /*override*/;
60
61 virtual void handlePlaceOne(::SlotData const& srcSlot, ::SlotData const& dstSlot) /*override*/;
62
63 virtual void
64 handleAddToStack(::SlotData const& dstSlot, ::SlotData const& srcSlot, ::ItemTakeType type) /*override*/;
65
66 virtual ::CreateContainerItemScope
67 _makeCreateItemScope(::SlotData const& srcSlot, ::ItemTransferAmount const& takeAmount) /*override*/;
68 // NOLINTEND
69
70public:
71 // member functions
72 // NOLINTBEGIN
73 MCNAPI_C void _consumeIngredients(uchar numCrafts);
74
75 MCNAPI_C void
76 _consumeMaterials(::ItemStack const& containerItem, int amount, ::ContainerEnumName inputContainerEnumName);
77
78 MCNAPI_C void _createResult(bool shouldPlayAudio);
79
80 MCNAPI_C void
81 _createTradeItem(::ItemInstance& itemInstance, ::ItemStackRequestScope const& requestScope, uchar numCrafts);
82
83 MCNAPI_C ::MerchantRecipe* _getActiveRecipe();
84
85 MCNAPI_C bool _handleTransferTrade(::SlotData const& srcSlot, ::SlotData const& dstSlot);
86
87 MCNAPI_C void _moveItemsBackToInventory();
88
89 MCNAPI_C void _setupCallbacks();
90
91 MCNAPI_C int getAvailableRecipeListSize();
92
93 MCNAPI_C ::std::string getDisplayName();
94
95 MCNAPI_C ::MerchantRecipe* getRecipe(int CurrentIndex);
96
97 MCNAPI_C void setRecipeIndex(int index);
98 // NOLINTEND
99
100public:
101 // constructor thunks
102 // NOLINTBEGIN
103 MCNAPI_C void* $ctor(::std::weak_ptr<::TradeContainerManagerModel> pModel);
104 // NOLINTEND
105
106public:
107 // virtual function thunks
108 // NOLINTBEGIN
109#ifdef LL_PLAT_C
110 MCNAPI bool $isOutputSlot(::std::string const& collectionName) const;
111
112 MCNAPI ::ItemStackBase const& $getTakeableItemStackBase(::SlotData const& slot) const;
113
114 MCNAPI void $handleTakeAll(::SlotData const& dstSlot, ::SlotData const& srcSlot);
115
116 MCNAPI void $handleTakeAmount(::SlotData const& dstSlot, int amount, ::SlotData const& srcSlot);
117
118 MCNAPI void $handleTakeHalf(::SlotData const& dstSlot, ::SlotData const& srcSlot);
119
120 MCNAPI int $handleAutoPlace(
121 ::SlotData const& srcSlot,
122 int amount,
123 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
124 ::std::vector<::AutoPlaceResult>& destinations
125 );
126
127 MCNAPI void $handlePlaceAll(::SelectedSlotInfo const& selected, ::SlotData const& dstSlot);
128
129 MCNAPI void $handlePlaceOne(::SlotData const& srcSlot, ::SlotData const& dstSlot);
130
131 MCNAPI void $handleAddToStack(::SlotData const& dstSlot, ::SlotData const& srcSlot, ::ItemTakeType type);
132
133 MCNAPI ::CreateContainerItemScope
134 $_makeCreateItemScope(::SlotData const& srcSlot, ::ItemTransferAmount const& takeAmount);
135#endif
136
137
138 // NOLINTEND
139
140public:
141 // vftables
142 // NOLINTBEGIN
143 MCNAPI static void** $vftable();
144 // NOLINTEND
145};
Definition ContainerManagerController.h:47
Definition ItemInstance.h:15
Definition ItemStackBase.h:44
Definition ItemStack.h:26
Definition MerchantRecipe.h:20
Definition TradeContainerManagerController.h:26
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:5
Definition SlotData.h:5