27class Trade2ContainerManagerController :
public ::ContainerManagerController {
31 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::Trade2ContainerManagerModel>> mTradeContainerManagerModel;
32 ::ll::TypedStorage<1, 1, bool> mSelectBestTradeOnItemPlace;
33 ::ll::TypedStorage<8, 40, ::SlotData const> mCreatedItemOutputSlot;
34 ::ll::TypedStorage<8, 128, ::ItemInstance> mResultPreviewItem;
41 Trade2ContainerManagerController();
47 virtual ~Trade2ContainerManagerController() =
default;
49 virtual bool isOutputSlot(::std::string
const& collectionName)
const ;
51 virtual int handleAutoPlace(
54 ::std::vector<::AutoPlaceItem>
const& autoPlaceOrder,
55 ::std::vector<::AutoPlaceResult>& destinations
58 virtual ::ItemStackBase
const& getTakeableItemStackBase(
::SlotData const& slot)
const ;
62 virtual bool handleTakeAmount(
::SlotData const& dstSlot,
int amount,
::SlotData const& srcSlot) ;
74 virtual ::CreateContainerItemScope
77 virtual ::CreateContainerItemScope
87 MCNAPI
explicit Trade2ContainerManagerController(::std::weak_ptr<::Trade2ContainerManagerModel> pModel);
89 MCNAPI
void _consumeIngredients(uchar
const numCrafts);
91 MCNAPI
void _consumeMaterials(
int amount, ::ContainerEnumName
const ingredientContainerEnumName);
93 MCNAPI
void _createResult(
bool shouldPlayAudio);
97 MCNAPI
void _pullInIngredientItemsFromInventory(
102 bool ignoreCustomNamedItems
105 MCNAPI
void _selectBestTradeForIngredients();
107 MCNAPI
void _setupCallbacks();
109 MCNAPI
int getCurrentTradeExp()
const;
111 MCNAPI
int getEntityMaxTradeTier()
const;
113 MCNAPI ::MerchantRecipe* getSelectedTrade()
const;
115 MCNAPI ::MerchantRecipe* getTrade(
int tier,
int index)
const;
117 MCNAPI
void handleAutoTrade(
int tier,
int index, ::std::vector<::AutoPlaceResult>&);
119 MCNAPI
bool isItemValidForSelectedTrade(
::ItemStackBase const& item,
bool withCount,
bool buyA)
const;
121 MCNAPI
bool isSelectedTrade(
int tier,
int index)
const;
123 MCNAPI
bool isSelectedTradeValid()
const;
125 MCNAPI
void moveIngredientsBackToInventory();
129 MCNAPI ::std::pair<bool, bool> playerHasItemsForTradeInInventory(
::MerchantRecipe const* recipe)
const;
131 MCNAPI
void pullInIngredientsForSelectedTrade();
133 MCNAPI
bool selectOfferedTrade();
135 MCNAPI
void setSelectedTrade(
int tier,
int index);
155 MCNAPI
void* $ctor(::std::weak_ptr<::Trade2ContainerManagerModel> pModel);
163 MCNAPI
bool $isOutputSlot(::std::string
const& collectionName)
const;
165 MCNAPI
int $handleAutoPlace(
168 ::std::vector<::AutoPlaceItem>
const& autoPlaceOrder,
169 ::std::vector<::AutoPlaceResult>& destinations
172 MCNAPI ::ItemStackBase
const& $getTakeableItemStackBase(
::SlotData const& slot)
const;
176 MCNAPI
bool $handleTakeAmount(
::SlotData const& dstSlot,
int amount,
::SlotData const& srcSlot);
182 MCNAPI
bool $handleAddToStack(
::SlotData const& dstSlot,
::SlotData const& srcSlot, ::ItemTakeType type);
186 MCNAPI ::CreateContainerItemScope