LeviLamina
Loading...
Searching...
No Matches
AnvilContainerManagerController.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/safety/RedactableString.h"
7#include "mc/world/containers/SlotData.h"
8#include "mc/world/containers/managers/controllers/ContainerManagerController.h"
9#include "mc/world/containers/managers/controllers/ItemResultPreview.h"
10#include "mc/world/inventory/network/TypedServerNetId.h"
11#include "mc/world/inventory/simulation/ContainerScreenRequestActionType.h"
12
13// auto generated forward declare list
14// clang-format off
16class ItemInstance;
17class ItemStackBase;
18class Recipe;
19struct AutoPlaceItem;
20struct AutoPlaceResult;
25struct RecipeNetIdTag;
26struct SelectedSlotInfo;
27// clang-format on
28
30public:
31 // member variables
32 // NOLINTBEGIN
33 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::AnvilContainerManagerModel>> mAnvilContainerManagerModel;
34 ::ll::TypedStorage<4, 4, int> mCost;
35 ::ll::TypedStorage<8, 72, ::Bedrock::Safety::RedactableString> mPreviewName;
36 ::ll::TypedStorage<8, 72, ::Bedrock::Safety::RedactableString> mItemName;
37 ::ll::TypedStorage<1, 1, bool> mIsMapRecipe;
38 ::ll::TypedStorage<8, 136, ::ItemResultPreview> mResultPreview;
39 ::ll::TypedStorage<1, 1, bool> mIsEnchantingBookRecipe;
40 ::ll::TypedStorage<4, 4, int> mRepairItemCountCost;
41 ::ll::TypedStorage<4, 4, ::RecipeNetId> mCurrentRecipeNetId;
42 ::ll::TypedStorage<8, 8, ::Recipe const*> mMapCraftingRecipe;
43 ::ll::TypedStorage<8, 40, ::SlotData const> mCreatedItemOutputSlot;
44 // NOLINTEND
45
46public:
47 // virtual functions
48 // NOLINTBEGIN
49 virtual ~AnvilContainerManagerController() /*override*/ = default;
50
51 virtual void postInit(::std::weak_ptr<::ContainerManagerController> self) /*override*/;
52
53 virtual void updatePreviewItem() /*override*/;
54
55 virtual void setPreviewItemName(::Bedrock::Safety::RedactableString const& name) /*override*/;
56
57 virtual void setItemName(::Bedrock::Safety::RedactableString const& name) /*override*/;
58
59 virtual ::Bedrock::Safety::RedactableString const& getPreviewItemName() const /*override*/;
60
61 virtual ::Bedrock::Safety::RedactableString const& getItemName() const /*override*/;
62
63 virtual bool isOutputSlot(::std::string const& collectionName) const /*override*/;
64
65 virtual ::ItemStackBase const& getTakeableItemStackBase(::SlotData const& slot) const /*override*/;
66
67 virtual void handleTakeAmount(::SlotData const& dstSlot, int amount, ::SlotData const& srcSlot) /*override*/;
68
69 virtual void handleTakeAll(::SlotData const& dstSlot, ::SlotData const& srcSlot) /*override*/;
70
71 virtual void handleTakeHalf(::SlotData const& dstSlot, ::SlotData const& srcSlot) /*override*/;
72
73 virtual void handlePlaceAll(::SelectedSlotInfo const& selected, ::SlotData const& dstSlot) /*override*/;
74
75 virtual int handleAutoPlace(
76 ::SlotData const& srcSlot,
77 int amount,
78 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
79 ::std::vector<::AutoPlaceResult>& destinations
80 ) /*override*/;
81
82 virtual void _onItemAcquired(::ItemInstance const& stack, ::SlotData const& srcSlot) /*override*/;
83
84 virtual ::CreateContainerItemScope
85 _makeCreateItemScope(::SlotData const& srcSlot, ::ItemTransferAmount const&) /*override*/;
86
87 virtual void _updateItemStackRequest(
88 ::ContainerScreenRequestActionType,
90 ::ItemStackRequestScope& requestScope
91 ) /*override*/;
92 // NOLINTEND
93
94public:
95 // member functions
96 // NOLINTBEGIN
97 MCNAPI_C void _consumeMaterials();
98
99 MCNAPI_C bool _consumeOneFromAnvilInputSlot();
100
101 MCNAPI_C void _createCraftItem(::ItemInstance& stack, ::ItemStackRequestScope const& requestScope);
102
103 MCNAPI_C bool _handleTransferCraft(::SlotData const& srcSlot, ::SlotData const& dstSlot);
104
105 MCNAPI_C bool _isTooExpensive();
106
107 MCNAPI_C void _onItemGrabbed();
108
109 MCNAPI_C bool _playerHasEnoughXP();
110
111 MCNAPI_C void _setupCallbacks();
112
113 MCNAPI_C ::std::string getCostText();
114
115 MCNAPI_C bool shouldDrawRed();
116 // NOLINTEND
117
118public:
119 // constructor thunks
120 // NOLINTBEGIN
121 MCNAPI_C void* $ctor(::std::weak_ptr<::AnvilContainerManagerModel> containerManagerModel);
122 // NOLINTEND
123
124public:
125 // virtual function thunks
126 // NOLINTBEGIN
127#ifdef LL_PLAT_C
128 MCNAPI void $postInit(::std::weak_ptr<::ContainerManagerController> self);
129
130 MCNAPI void $updatePreviewItem();
131
132 MCNAPI void $setPreviewItemName(::Bedrock::Safety::RedactableString const& name);
133
134 MCNAPI void $setItemName(::Bedrock::Safety::RedactableString const& name);
135
136 MCNAPI ::Bedrock::Safety::RedactableString const& $getPreviewItemName() const;
137
138 MCNAPI ::Bedrock::Safety::RedactableString const& $getItemName() const;
139
140 MCNAPI bool $isOutputSlot(::std::string const& collectionName) const;
141
142 MCNAPI ::ItemStackBase const& $getTakeableItemStackBase(::SlotData const& slot) const;
143
144 MCNAPI void $handleTakeAmount(::SlotData const& dstSlot, int amount, ::SlotData const& srcSlot);
145
146 MCNAPI void $handleTakeAll(::SlotData const& dstSlot, ::SlotData const& srcSlot);
147
148 MCNAPI void $handleTakeHalf(::SlotData const& dstSlot, ::SlotData const& srcSlot);
149
150 MCNAPI void $handlePlaceAll(::SelectedSlotInfo const& selected, ::SlotData const& dstSlot);
151
152 MCNAPI int $handleAutoPlace(
153 ::SlotData const& srcSlot,
154 int amount,
155 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
156 ::std::vector<::AutoPlaceResult>& destinations
157 );
158
159 MCNAPI void $_onItemAcquired(::ItemInstance const& stack, ::SlotData const& srcSlot);
160
161 MCNAPI ::CreateContainerItemScope $_makeCreateItemScope(::SlotData const& srcSlot, ::ItemTransferAmount const&);
162
163 MCNAPI void $_updateItemStackRequest(
164 ::ContainerScreenRequestActionType,
165 ::ContainerScreenActionResult const& result,
166 ::ItemStackRequestScope& requestScope
167 );
168#endif
169
170
171 // NOLINTEND
172
173public:
174 // vftables
175 // NOLINTBEGIN
176 MCNAPI static void** $vftable();
177 // NOLINTEND
178};
Definition AnvilContainerManagerController.h:29
static MCAPI void ** $vftable()
Definition AnvilContainerManagerModel.h:18
Definition RedactableString.h:10
Definition ContainerManagerController.h:47
Definition ItemInstance.h:15
Definition ItemStackBase.h:44
Definition Recipe.h:31
Definition AutoPlaceItem.h:5
Definition AutoPlaceResult.h:5
Definition ContainerScreenActionResult.h:11
Definition CreateContainerItemScope.h:18
Definition ItemStackRequestScope.h:14
Definition ItemTransferAmount.h:5
Definition RecipeNetIdTag.h:5
Definition SelectedSlotInfo.h:5
Definition SlotData.h:5