3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/gameplay/api/gameplayui/AnvilInfo.h"
7#include "mc/client/gui/gameplay/api/gameplayui/QueryConnector.h"
8#include "mc/client/gui/gameplay/data/gameplayui/ChestType.h"
9#include "mc/deps/core/utility/pub_sub/Publisher.h"
10#include "mc/deps/shared_types/legacy/ContainerType.h"
11#include "mc/legacy/ActorUniqueID.h"
12#include "mc/world/containers/ContainerEnumName.h"
13#include "mc/world/containers/SlotData.h"
14#include "mc/world/containers/controllers/ItemCraftType.h"
15#include "mc/world/item/ItemGroup.h"
16#include "mc/world/level/BlockPos.h"
57 ::ll::TypedStorage<8, 136, ::ItemGroup> distributionSource;
58 ::ll::TypedStorage<8, 40, ::SlotData> lastPlaceAllSlot;
59 ::ll::TypedStorage<4, 4, int> lastPlaceAllAmount;
67 ::ll::TypedStorage<8, 40, ::SlotData> lastPlaceOneSelectedSlot;
68 ::ll::TypedStorage<8, 40, ::SlotData> lastPlaceOneDestinationSlot;
75 ::ll::TypedStorage<8, 8, ::LocalPlayer*> mLocalPlayer;
76 ::ll::TypedStorage<8, 64, ::std::function<::ItemRegistryRef()>> mGetItemRegistryRef;
77 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ContainerManagerController>> mContainerManagerController;
78 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::AnvilContainerManagerModel>> mAnvilContainerManagerModel;
79 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::BrewingStandContainerManagerModel>> mBrewingStandContainerManagerModel;
80 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::ChestContainerManagerModel>> mChestContainerManagerModel;
81 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::CraftingContainerManagerModel>> mCraftingContainerManagerModel;
82 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::FurnaceContainerManagerModel>> mFurnaceContainerManagerModel;
83 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::GrindstoneContainerManagerModel>> mGrindstoneContainerManagerModel;
84 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::HopperContainerManagerModel>> mHopperContainerManagerModel;
85 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::DropperContainerManagerModel>> mDropperContainerManagerModel;
86 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::DispenserContainerManagerModel>> mDispenserContainerManagerModel;
87 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::Trade2ContainerManagerModel>> mTrade2ContainerManagerModel;
88 ::ll::TypedStorage<4, 12, ::BlockPos> mContainerBlockPos;
89 ::ll::TypedStorage<8, 8, ::ActorUniqueID> mUniqueActorId;
90 ::ll::TypedStorage<8, 80, ::GameplayUI::AnvilInfo> mAnvilInfo;
94 ::Bedrock::PubSub::Publisher<void(::ItemStackBase
const&), ::Bedrock::PubSub::ThreadModel::SingleThreaded, 0>>
95 mPreviewItemPublisher;
99 ::Bedrock::PubSub::Publisher<void(::std::string
const&), ::Bedrock::PubSub::ThreadModel::SingleThreaded, 0>>
100 mRecipeBookSearchPublisher;
102 TypedStorage<8, 48, ::Bedrock::PubSub::Publisher<void(
bool), ::Bedrock::PubSub::ThreadModel::SingleThreaded, 0>>
103 mRecipeBookIsFilteringPublisher;
104 ::ll::TypedStorage<8, 184, ::GameplayUI::ContainerAPI::SplitMultipleState> mSplitMultipleState;
105 ::ll::TypedStorage<8, 88, ::std::optional<::GameplayUI::ContainerAPI::SplitSingleState>> mSplitSingleState;
115 MCAPI
explicit ContainerAPI(::std::function<::ItemRegistryRef()> getItemRegistryRef);
117 MCAPI
void _recipeAutoCraft(::ContainerEnumName collectionName,
int collectionIndex, ::ItemCraftType craftType);
119 MCAPI ::std::shared_ptr<::ContainerModel> _tryGetContainerModel(::ContainerEnumName containerName);
121 MCAPI
void autoPlaceItems(::ContainerEnumName sourceName,
int sourceIndex);
123 MCAPI
void closeContainer();
125 MCAPI
void coalesceItems(::ContainerEnumName destinationName,
int destinationIndex, ::ContainerEnumName sourceName);
127 MCAPI
void coalesceOrAutoPlaceItems(::ContainerEnumName destinationName,
int destinationIndex);
129 MCAPI
void dropAllItems(::ContainerEnumName sourceName,
int sourceIndex);
131 MCAPI
void dropOneItem(::ContainerEnumName sourceName,
int sourceIndex);
133 MCAPI ::std::optional<::GameplayUI::AnvilInfo> getAnvilInfo();
135 MCAPI ::GameplayUI::ContainerItem getCraftingScreenContainerItem(::ContainerEnumName containerName,
int index);
137 MCAPI ::GameplayUI::TradeOfferInfo getTradeOfferInfo(
int tradeTier,
int tradeIndex);
139 MCAPI ::GameplayUI::TradeOverview getTradeOverview();
141 MCAPI ::GameplayUI::ContainerItem getTradeScreenResultPreviewContainerItem(
int index);
143 MCAPI ::GameplayUI::TradeTierInfo getTradeTierInfo(
int tradeTier);
145 MCAPI
void onPlayerOpenContainer(
146 ::SharedTypes::Legacy::ContainerType containerType,
147 ::BlockPos
const& blockPos,
148 ::ActorUniqueID
const& uniqueId
151 MCAPI
void placeAllItems(
152 ::ContainerEnumName selectedName,
154 ::ContainerEnumName destinationName,
158 MCAPI
void placeAmountOfItems(
159 ::ContainerEnumName selectedName,
161 ::ContainerEnumName destinationName,
162 int destinationIndex,
166 MCAPI
void placeOneItem(
167 ::ContainerEnumName selectedName,
169 ::ContainerEnumName destinationName,
173 MCAPI ::GameplayUI::QueryConnector<::GameplayUI::ContainerItem>
174 queryContainerItem(::ContainerEnumName containerName,
int index);
176 MCAPI ::GameplayUI::QueryConnector<::std::string> queryContainerName();
178 MCAPI ::GameplayUI::QueryConnector<::std::string> queryRecipeBookSearchString();
180 MCAPI
void selectRecipe(::ContainerEnumName sourceName,
int sourceIndex,
bool displayOnly);
182 MCAPI
void setAnvilPreviewItemName(::std::string
const& name);
184 MCAPI
void setDistributeAllSource(::ContainerEnumName sourceName,
int sourceIndex);
186 MCAPI
void setRecipeBookFiltering(
bool isFiltering);
188 MCAPI
void setRecipeBookSearchString(::std::string
const& searchText);
190 MCAPI
void splitMultipleItems(
191 ::ContainerEnumName selectedName,
193 ::ContainerEnumName destinationName,
197 MCAPI
void splitMultipleItemsTouch(
198 ::ContainerEnumName selectedName,
200 ::ContainerEnumName destinationName,
204 MCAPI
void splitSingleItem(
205 ::ContainerEnumName sourceName,
207 ::ContainerEnumName destinationName,
211 MCAPI
void takeAllItems(
212 ::ContainerEnumName destinationName,
213 int destinationIndex,
214 ::ContainerEnumName sourceName,
218 MCAPI
void takeHalfItems(
219 ::ContainerEnumName destinationName,
220 int destinationIndex,
221 ::ContainerEnumName sourceName,
225 MCAPI
void takeOneItem(
226 ::ContainerEnumName destinationName,
227 int destinationIndex,
228 ::ContainerEnumName sourceName,
232 MCAPI ::std::optional<::GameplayUI::ChestType> tryGetChestType();
234 MCAPI ~ContainerAPI();
240 MCAPI
void* $ctor(::std::function<::ItemRegistryRef()> getItemRegistryRef);
Definition AnvilContainerManagerModel.h:18
Definition BrewingStandContainerManagerModel.h:19
Definition ChestContainerManagerModel.h:19
Definition ContainerManagerController.h:47
Definition ContainerModel.h:27
Definition CraftingContainerManagerModel.h:25
Definition DispenserContainerManagerModel.h:16
Definition DropperContainerManagerModel.h:16
Definition FurnaceContainerManagerModel.h:29
Definition ContainerAPI.h:7
Definition GrindstoneContainerManagerModel.h:18
Definition HopperContainerManagerModel.h:17
Definition ItemRegistryRef.h:36
Definition ItemStackBase.h:44
Definition LocalPlayer.h:5
Definition Trade2ContainerManagerModel.h:18
Definition SingleThreaded.h:7
Definition ContainerAPI.h:16
Definition ContainerAPI.h:18
Definition ContainerItem.h:7
Definition TradeOfferInfo.h:7
Definition TradeOverview.h:7
Definition TradeTierInfo.h:7