3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/DirtyFlag.h"
7#include "mc/client/gui/ViewRequest.h"
8#include "mc/client/gui/screens/controllers/ContainerScreenController.h"
9#include "mc/client/gui/screens/controllers/FadeInIconBehavior.h"
10#include "mc/deps/json/Value.h"
11#include "mc/world/item/ItemInstance.h"
12#include "mc/world/item/trading/MerchantRecipe.h"
30 enum class LeftTabIndex :
int {
40 ::ll::TypedStorage<8, 16, ::Json::Value const> mCollections;
41 ::ll::TypedStorage<1, 2, ::std::optional<bool>> mHasTradeItem1Collection;
42 ::ll::TypedStorage<1, 2, ::std::optional<bool>> mHasTradeItem2Collection;
43 ::ll::TypedStorage<1, 2, ::std::optional<bool>> mHasSellItemCollection;
44 ::ll::TypedStorage<1, 2, ::std::optional<bool>> mHasValidTradeItemCollections;
45 ::ll::TypedStorage<1, 2, ::std::optional<bool>> mHasValidTradeToggleCollections;
46 ::ll::TypedStorage<4, 8, ::std::optional<int>> mTierIndex;
47 ::ll::TypedStorage<4, 8, ::std::optional<int>> mTradeIndex;
48 ::ll::TypedStorage<8, 16, ::std::optional<::MerchantRecipe*>> mTrade;
54 MCAPI
int getTierIndex()
const;
56 MCAPI
int getTradeIndex()
const;
58 MCAPI
bool hasSellItemCollection()
const;
60 MCAPI
bool hasTradeItem1Collection()
const;
62 MCAPI
bool hasTradeItem2Collection()
const;
64 MCAPI
bool hasValidTradeToggleCollections()
const;
66 MCAPI ~TradeItemCollections();
79 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::Trade2ContainerManagerController>> mTradeContainerManagerController;
80 ::ll::TypedStorage<8, 24, ::std::vector<int>> mNumberOfTradesByTier;
81 ::ll::TypedStorage<4, 4, int> mSelectedLeftTab;
82 ::ll::TypedStorage<4, 4, int> mLastExp;
83 ::ll::TypedStorage<4, 4, int> mNewExp;
84 ::ll::TypedStorage<4, 4, int> mExpAnimationTimer;
85 ::ll::TypedStorage<1, 1, bool> mShowVisualOffer;
86 ::ll::TypedStorage<8, 432, ::MerchantRecipe> mVisualOffer;
87 ::ll::TypedStorage<8, 128, ::ItemInstance> mVisualBuyAItem;
88 ::ll::TypedStorage<8, 128, ::ItemInstance> mVisualBuyBItem;
89 ::ll::TypedStorage<8, 128, ::ItemInstance> mVisualSellItem;
94 Trade2ScreenController();
99 virtual ~Trade2ScreenController() =
default;
101 virtual ::ui::DirtyFlag tick() ;
103 virtual void addStaticScreenVars(::Json::Value& globalVars) ;
105 virtual void onLeave() ;
107 virtual ::ui::ViewRequest _onContainerSlotPressed(::std::string
const& collectionName,
int index) ;
109 virtual bool _getGestureControlEnabled() const ;
111 virtual
void _registerCoalesceOrder() ;
113 virtual
void _registerAutoPlaceOrder() ;
115 virtual
bool _isStillValid() const ;
117 virtual ::ItemStackBase const&
118 _getVisualItemStackImpl(::std::
string const& collectionName,
int collectionIndex) const ;
120 virtual
void _sendFlyingItem(
121 ::ItemStackBase const& item,
122 ::std::
string const& fromName,
124 ::std::
string const& toName,
126 ::FadeInIconBehavior fadeInIconBehavior
129 virtual ::std::
string _getButtonADescription() ;
135 MCAPI Trade2ScreenController(::std::shared_ptr<::ClientInstanceScreenModel> pModel, ::ActorUniqueID uniqueID);
137 MCAPI
void _changeLeftTab(
int dir);
139 MCAPI ::ItemInstance const& _getItemForTrade(::Trade2ScreenController::
TradeItemCollections const& tic) const;
141 MCAPI ::std::
string _getTradeErrorDetails(::ItemStackBase const& item,
bool itemA) const;
143 MCAPI
bool _hasAdjustedBuyCount(::Trade2ScreenController::
TradeItemCollections const& tic) const;
145 MCAPI
void _makeEnchantmentDetails() const;
147 MCAPI
void _makeTradeDetails(
bool itemA) const;
149 MCAPI
void _registerBindings();
151 MCAPI
void _registerEventHandlers();
153 MCAPI
void _registerStateMachine();
159 MCAPI static ::std::string_view const& SELL_ITEM_COLLECTION();
161 MCAPI static ::std::string_view const& TIER_COLLECTION();
163 MCAPI static ::std::string_view const& TRADE_COLLECTION();
165 MCAPI static ::std::string_view const& TRADE_ITEM_1_COLLECTION();
167 MCAPI static ::std::string_view const& TRADE_ITEM_2_COLLECTION();
173 MCAPI
void* $ctor(::std::shared_ptr<::ClientInstanceScreenModel> pModel, ::ActorUniqueID uniqueID);
179 MCAPI ::ui::DirtyFlag $tick();
181 MCAPI
void $addStaticScreenVars(::Json::Value& globalVars);
183 MCAPI
void $onLeave();
185 MCAPI ::ui::ViewRequest $_onContainerSlotPressed(::std::
string const& collectionName,
int index);
187 MCFOLD
bool $_getGestureControlEnabled() const;
189 MCAPI
void $_registerCoalesceOrder();
191 MCAPI
void $_registerAutoPlaceOrder();
193 MCFOLD
bool $_isStillValid() const;
195 MCAPI ::ItemStackBase const&
196 $_getVisualItemStackImpl(::std::
string const& collectionName,
int collectionIndex) const;
198 MCAPI
void $_sendFlyingItem(
199 ::ItemStackBase const& item,
200 ::std::
string const& fromName,
202 ::std::
string const& toName,
204 ::FadeInIconBehavior fadeInIconBehavior
207 MCAPI ::std::
string $_getButtonADescription();
Definition ClientInstanceScreenModel.h:5
Definition ContainerScreenController.h:5
Definition ItemStackBase.h:44
Definition Trade2ContainerManagerController.h:28
Definition Trade2ScreenController.h:15
Definition Trade2ScreenController.h:5
static MCAPI void ** $vftableForScreenController()
static MCAPI void ** $vftableForEnableNonOwnerReferences()
Definition ActorUniqueID.h:5