28class Trade2ContainerManagerController :
public ::ContainerManagerController {
32 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::Trade2ContainerManagerModel>> mTradeContainerManagerModel;
33 ::ll::TypedStorage<1, 1, bool> mSelectBestTradeOnItemPlace;
34 ::ll::TypedStorage<8, 40, ::SlotData const> mCreatedItemOutputSlot;
35 ::ll::TypedStorage<8, 128, ::ItemInstance> mResultPreviewItem;
42 Trade2ContainerManagerController();
49 virtual ~Trade2ContainerManagerController() =
default;
51 virtual ~Trade2ContainerManagerController() ;
55 virtual bool isOutputSlot(::std::string
const&)
const ;
57 virtual bool isOutputSlot(::std::string
const& collectionName)
const ;
61 virtual int handleAutoPlace(
64 ::std::vector<::AutoPlaceItem>
const&,
65 ::std::vector<::AutoPlaceResult>&
68 virtual int handleAutoPlace(
71 ::std::vector<::AutoPlaceItem>
const& autoPlaceOrder,
72 ::std::vector<::AutoPlaceResult>& destinations
77 virtual ::ItemStackBase
const& getTakeableItemStackBase(
::SlotData const&)
const ;
79 virtual ::ItemStackBase
const& getTakeableItemStackBase(
::SlotData const& slot)
const ;
91 virtual void handleTakeAmount(
::SlotData const& dstSlot,
int amount,
::SlotData const& srcSlot) ;
120 virtual ::CreateContainerItemScope
123 virtual ::CreateContainerItemScope
133 MCNAPI
explicit Trade2ContainerManagerController(::std::weak_ptr<::Trade2ContainerManagerModel> pModel);
135 MCNAPI
void _consumeIngredients(uchar numCrafts);
137 MCNAPI
void _consumeMaterials(
int amount, ::ContainerEnumName ingredientContainerEnumName);
139 MCNAPI
void _createResult(
bool shouldPlayAudio);
148 MCNAPI
bool _ingredientsMatchRecipe(
154 MCNAPI
void _pullInIngredientItemsFromInventory(
159 bool ignoreCustomNamedItems
162 MCNAPI
void _selectBestTradeForIngredients();
164 MCNAPI
void _setupCallbacks();
166 MCNAPI
int getCurrentTradeExp()
const;
168 MCNAPI ::std::string getDisplayName();
170 MCNAPI ::std::string getDisplayNameTag()
const;
172 MCNAPI
int getEntityMaxTradeTier()
const;
174 MCNAPI
int getEntityTradeTier()
const;
176 MCNAPI ::std::vector<int> getNumberOfTradesByTier()
const;
178 MCNAPI ::MerchantRecipe* getSelectedTrade()
const;
180 MCNAPI ::MerchantRecipe* getTrade(
int tier,
int index)
const;
182 MCNAPI
int getTradeExpForCurrentRequirement(uint currentExp)
const;
184 MCNAPI
int getTradeExpToNextRequirement(uint currentExp)
const;
186 MCNAPI
void handleAutoTrade(
int tier,
int index, ::std::vector<::AutoPlaceResult>&);
188 MCNAPI
bool hasAvailableTradeWithSecondItem()
const;
190 MCNAPI
bool isItemValidForSelectedTrade(
::ItemStackBase const& item,
bool withCount,
bool buyA)
const;
192 MCNAPI
bool isSelectedTrade(
int tier,
int index)
const;
194 MCNAPI
bool isSelectedTradeValid()
const;
196 MCNAPI
void moveIngredientsBackToInventory();
200 MCNAPI ::std::pair<bool, bool> playerHasItemsForTradeInInventory(
::MerchantRecipe const* recipe)
const;
202 MCNAPI
void pullInIngredientsForSelectedTrade();
204 MCNAPI
bool selectOfferedTrade();
206 MCNAPI
void setSelectedTrade(
int tier,
int index);
214 MCNAPI
void* $ctor(::std::weak_ptr<::Trade2ContainerManagerModel> pModel);
228 MCNAPI
bool $isOutputSlot(::std::string
const& collectionName)
const;
230 MCNAPI
int $handleAutoPlace(
233 ::std::vector<::AutoPlaceItem>
const& autoPlaceOrder,
234 ::std::vector<::AutoPlaceResult>& destinations
237 MCNAPI ::ItemStackBase
const& $getTakeableItemStackBase(
::SlotData const& slot)
const;
241 MCNAPI
void $handleTakeAmount(
::SlotData const& dstSlot,
int amount,
::SlotData const& srcSlot);
247 MCNAPI
void $handleAddToStack(
::SlotData const& dstSlot,
::SlotData const& srcSlot, ::ItemTakeType type);
251 MCNAPI ::CreateContainerItemScope