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/core/string/HashedString.h"
11#include "mc/world/containers/ContainerEnumName.h"
12#include "mc/world/item/FurnaceItemCategory.h"
24namespace Json {
class Value; }
35 enum class CategoryTabState :
int {
44 ::ll::TypedStorage<4, 4, ::FurnaceItemCategory> category;
45 ::ll::TypedStorage<1, 1, ::ContainerEnumName> containerEnum;
46 ::ll::TypedStorage<8, 32, ::std::string> tabName;
52 MCAPI ~CategoryTabInfo();
65 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::FurnaceContainerManagerController>>
66 mFurnaceContainerManagerController;
67 ::ll::TypedStorage<1, 1, ::ContainerEnumName> mHoveredContainer;
68 ::ll::TypedStorage<1, 1, ::ContainerEnumName const> mIngredientEnumName;
69 ::ll::TypedStorage<4, 4, int> mStartHeldFurnaceResultTime;
70 ::ll::TypedStorage<1, 1, bool> mPocket;
71 ::ll::TypedStorage<1, 1, bool> mEntered;
72 ::ll::TypedStorage<1, 1, bool> mRecipeLocked;
73 ::ll::TypedStorage<1, 1, bool> mUseRecipeUnlocking;
74 ::ll::TypedStorage<4, 4, int> mLayout;
75 ::ll::TypedStorage<4, 4, int> mSavedLayout;
76 ::ll::TypedStorage<1, 1, bool> mSmeltableFilterOn;
77 ::ll::TypedStorage<1, 1, bool> mSearchBarSelected;
78 ::ll::TypedStorage<8, 40, ::std::optional<::std::string>> mDelayedSearchString;
79 ::ll::TypedStorage<1, 1, bool> mHasInitalCategoryTabsState;
80 ::ll::TypedStorage<4, 4, int> mTicksLeftUntilCategoryTabUpdate;
81 ::ll::TypedStorage<4, 4, int> mTabFiltersDirty;
82 ::ll::TypedStorage<8, 48, ::HashedString> mRecipeTag;
83 ::ll::TypedStorage<4, 4, int> mSelectedLeftTab;
84 ::ll::TypedStorage<8, 32, ::std::string> mSelectedCollectionName;
85 ::ll::TypedStorage<4, 4, int> mSelectedCollectionIndex;
90 FurnaceScreenController();
95 virtual ~FurnaceScreenController() ;
97 virtual ::ui::DirtyFlag tick() ;
99 virtual void onEntered() ;
101 virtual void addStaticScreenVars(::Json::Value& globalVars) ;
103 virtual bool _isStillValid() const ;
105 virtual
void _handlePlaceAll(::std::
string const& collectionName,
int index) ;
107 virtual
void _handlePlaceOne(::std::
string const& collectionName,
int index) ;
109 virtual
void _registerCoalesceOrder() ;
111 virtual
void _registerAutoPlaceOrder() ;
113 virtual ::std::
string _getCollectionName(::UIPropertyBag* bag) const ;
115 virtual ::SlotData _reevaluateSlotData(::SlotData&& slotData) const ;
117 virtual ::ItemStackBase const&
118 _getVisualItemStackImpl(::std::
string const& collectionName,
int collectionIndex) const ;
120 virtual
bool _shouldSwap(
121 ::std::
string const& collectionName,
123 ::std::
string const& otherCollectionName,
124 int otherCollectionIndex
127 virtual
void _handleSelectSlot(::std::
string const& collectionName,
int collectionIndex) ;
129 virtual ::std::
string _getButtonADescription() ;
131 virtual ::std::
string _getButtonBDescription() ;
133 virtual ::std::
string _getButtonXDescription() ;
135 virtual ::std::
string _getButtonYDescription() ;
137 virtual ::ui::ViewRequest _onContainerSlotHovered(::std::
string const& collectionName,
int index) ;
139 virtual
bool _isInCreativeContainer(::std::
string const& containerName) const ;
141 virtual
void _sendFlyingItem(
142 ::ItemStackBase const& item,
143 ::std::
string const& fromName,
145 ::std::
string const& toName,
147 ::FadeInIconBehavior fadeInIconBehavior
154 MCAPI FurnaceScreenController(
155 ::std::shared_ptr<::ClientInstanceScreenModel> model,
157 ::BlockPos const& pos,
158 ::ActorUniqueID uniqueId,
159 ::HashedString const& recipeTag
162 MCAPI
int _findNextLeftSideTab(
int dir) const;
164 MCAPI ::std::
string _getExpandoItemGroupName(::std::
string const& collectionName,
int collectionIndex);
166 MCAPI ::std::
string _getRecipeHoverText(::std::
string const& collectionName,
int collectionIndex);
168 MCAPI
void _handleClearGrid();
170 MCAPI
void _handleRecipeSelect(::std::
string const& collectionName,
int collectionIndex);
172 MCAPI
bool _isRecipeIngredientSelected(::std::
string const& collectionName,
int collectionIndex) const;
174 MCAPI
bool _isRecipeLocked(::std::
string const& collectionName,
int collectionIndex) const;
176 MCAPI
void _loadPlayerOptions();
178 MCAPI
void _refreshFilters(
int tabIndex,
bool forceRefresh);
180 MCAPI
void _registerBindings();
182 MCAPI
void _registerEventHandlers();
184 MCAPI
void _registerStateMachine();
186 MCAPI
void _savePlayerOptions();
188 MCAPI
void _selectRecipe(::std::
string const& collectionName,
int collectionIndex);
190 MCAPI
void _setLeftSideTab(
int tabIndex);
196 MCAPI static ::std::unordered_map<
int, ::FurnaceScreenController::
CategoryTabInfo> const& mCategoryTabs();
203 ::std::shared_ptr<::ClientInstanceScreenModel> model,
205 ::BlockPos const& pos,
206 ::ActorUniqueID uniqueId,
207 ::HashedString const& recipeTag
220 MCAPI ::ui::DirtyFlag $tick();
222 MCAPI
void $onEntered();
224 MCAPI
void $addStaticScreenVars(::Json::Value& globalVars);
226 MCFOLD
bool $_isStillValid() const;
228 MCAPI
void $_handlePlaceAll(::std::
string const& collectionName,
int index);
230 MCAPI
void $_handlePlaceOne(::std::
string const& collectionName,
int index);
232 MCAPI
void $_registerCoalesceOrder();
234 MCAPI
void $_registerAutoPlaceOrder();
236 MCAPI ::std::
string $_getCollectionName(::UIPropertyBag* bag) const;
238 MCAPI ::SlotData $_reevaluateSlotData(::SlotData&& slotData) const;
240 MCAPI ::ItemStackBase const&
241 $_getVisualItemStackImpl(::std::
string const& collectionName,
int collectionIndex) const;
243 MCAPI
bool $_shouldSwap(
244 ::std::
string const& collectionName,
246 ::std::
string const& otherCollectionName,
247 int otherCollectionIndex
250 MCAPI
void $_handleSelectSlot(::std::
string const& collectionName,
int collectionIndex);
252 MCAPI ::std::
string $_getButtonADescription();
254 MCAPI ::std::
string $_getButtonBDescription();
256 MCAPI ::std::
string $_getButtonXDescription();
258 MCAPI ::std::
string $_getButtonYDescription();
260 MCAPI ::ui::ViewRequest $_onContainerSlotHovered(::std::
string const& collectionName,
int index);
262 MCAPI
bool $_isInCreativeContainer(::std::
string const& containerName) const;
264 MCAPI
void $_sendFlyingItem(
265 ::ItemStackBase const& item,
266 ::std::
string const& fromName,
268 ::std::
string const& toName,
270 ::FadeInIconBehavior fadeInIconBehavior
Definition ClientInstanceScreenModel.h:5
Definition ContainerScreenController.h:5
Definition FurnaceContainerManagerController.h:22
Definition FurnaceScreenController.h:5
static MCAPI void ** $vftableForEnableNonOwnerReferences()
static MCAPI void ** $vftableForScreenController()
Definition ItemStackBase.h:52
Definition UIPropertyBag.h:5
Definition ActorUniqueID.h:10
Definition FurnaceScreenController.h:15