51 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::ContainerManagerModel>> mContainerManagerModel;
52 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::std::shared_ptr<::ContainerController>>>
54 ::ll::TypedStorage<8, 24, ::std::vector<::ContainerSplitControl>> mContainerSplitItemStackItems;
55 ::ll::TypedStorage<8, 24, ::std::vector<::ContainerSimulationSplitStack>> mContainerSimulationSplitItemStacks;
56 ::ll::TypedStorage<4, 4, int> mSplitItemRemainder;
57 ::ll::TypedStorage<1, 1, bool> mContainerDirty;
58 ::ll::TypedStorage<1, 1, bool> mContainersClosed;
59 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ContainerScreenSimulation>> mSimulation;
60 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mDynamicContainerNotifier;
72 virtual void postInit(::std::weak_ptr<::ContainerManagerController>);
74 virtual void registerContainerCallbacks();
80 virtual ::Bedrock::Safety::RedactableString
const& getPreviewItemName()
const;
82 virtual ::Bedrock::Safety::RedactableString
const& getItemName()
const;
84 virtual void updatePreviewItem();
86 virtual ::ItemStackBase
const& getTakeableItemStackBase(
::SlotData const& slot)
const;
98 virtual void handlePlaceAmount(
::SlotData const& srcSlot,
int amount,
::SlotData const& dstSlot);
100 virtual int handleAutoPlace(
103 ::std::vector<::AutoPlaceItem>
const& autoPlaceOrder,
104 ::std::vector<::AutoPlaceResult>& destinations
107 virtual int handleAutoPlaceStack(
109 ::ItemTakeType takeType,
110 ::std::vector<::AutoPlaceItem>
const& autoPlaceOrder,
111 ::std::vector<::AutoPlaceResult>& destinations
116 virtual void handleSplitMultiple(
122 virtual bool handleCoalesce(
124 ::std::vector<::std::string>
const& coalesceOrder,
125 ::std::string
const& coalesceSrc
138 virtual void handleAddToStack(
::SlotData const& dstSlot,
::SlotData const& srcSlot, ::ItemTakeType type);
140 virtual void closeContainers();
142 virtual bool isOutputSlot(::std::string
const& collectionName)
const;
144 virtual void _updateItemStackRequest(
145 ::ContainerScreenRequestActionType,
166 MCNAPI_C
void _addContainer(::std::shared_ptr<::ContainerController> uiContainer);
168 MCNAPI_C
void _addOutputsAsDestinations(
170 ::std::vector<::AutoPlaceResult>& destinations
173 MCNAPI_C
int _appendAutoPlaceOutputs(
177 ::std::vector<::AutoPlaceItem>
const& autoPlaceOrder,
181 MCNAPI_C
void _autoPlaceOrDrop(
184 ::std::vector<::AutoPlaceItem>
const& autoPlaceOrder
187 MCNAPI_C
int _buildAutoPlaceRequest(
190 ::std::vector<::AutoPlaceItem>
const& autoPlaceOrder,
194 MCNAPI_C
int _bulkAutoPlaceOutput(
199 ::std::vector<::AutoPlaceItem>
const& autoPlaceOrder,
200 ::std::vector<::AutoPlaceResult>& destinations
203 MCNAPI_C ::AutoPlaceRequest
const _canAutoPlace(
206 ::std::vector<::AutoPlaceItem>
const& autoPlaceOrder
211 MCNAPI_C
void _clearCreativeHotbar();
215 MCNAPI_C ::ContainerValidationSlotData _getContainerValidationSlotData(
::SlotData const& slotData)
const;
217 MCNAPI_C ::ItemStack
const& _getItem(
::SlotData const& slot,
bool canBeEmpty)
const;
219 MCNAPI_C ::ItemStack
const& _getItem0(::ContainerEnumName collectionEnumName)
const;
221 MCNAPI_C ::std::tuple<::ItemStack const&, ::std::shared_ptr<::ContainerController>>
222 _getItemAndContainerController(
::SlotData const& slot,
bool canBeEmpty)
const;
224 MCNAPI_C ::std::unordered_map<::FullContainerName, ::std::shared_ptr<::Container>> _getPredictiveContainers();
226 MCNAPI_C ::ContainerScreenContext _getScreenContext()
const;
232 MCNAPI_C
void _handleSplitMultiple(
238 MCNAPI_C
bool _isContainerSimulationEnabled()
const;
240 MCNAPI_C
void _onItemTransferring(
250 MCNAPI_C
void _playCraftingSound(
251 ::std::weak_ptr<::ContainerManagerModel>
const& containerManagerModel,
252 ::SharedTypes::Legacy::LevelSoundEvent soundEvent
255 MCNAPI_C
void _registerSetThisDirtyCallback(::std::shared_ptr<::ContainerModel> containerModel);
257 MCNAPI_C ::ContainerCategory
262 MCNAPI_C
void _shiftLeftStorageItemContents(
263 ::std::string
const& collectionName,
265 ::std::vector<::ItemStack>
const& items
268 MCNAPI_C
bool _transfer(
269 ::ItemTransferType transferType,
274 bool allowVisualOnlySameItemSwap
277 MCNAPI_C
bool _transferAll(::ItemTransferType transferType,
::SlotData const& dstSlot,
::SlotData const& srcSlot);
290 MCNAPI_C ::std::string getBlockName(
::BlockPos const& blockPos)
const;
292 MCNAPI_C ::std::shared_ptr<::ContainerController> getContainerController(::std::string
const& containerName)
const;
294 MCNAPI_C ::std::weak_ptr<::ContainerModel> getContainerModel(::std::string
const& containerName)
const;
296 MCNAPI_C
int getContainerSize(::std::string
const& collectionName)
const;
298 MCNAPI_C
void getCurrentContainerStateList(::std::vector<::ItemStateData>& inventoryState);
300 MCNAPI_C ::std::shared_ptr<::ContainerModel> getDynamicContainerModel(
::FullContainerName const& name);
302 MCNAPI_C ::std::string getEntityName(
::ActorUniqueID const& entityUniqueID)
const;
304 MCNAPI_C ::std::string getExpandoGroupName(::std::string
const& collectionName,
int collectionIndex)
const;
306 MCNAPI_C ::ContainerExpandStatus getExpandoStatus(::std::string
const& containerName,
int collectionIndex)
const;
308 MCNAPI_C ::ItemStack
const& getItemStack(::std::string
const& collectionName,
int collectionIndex)
const;
310 MCNAPI_C
bool handleMoveItemFromSlotIntoStorageItem(
313 ::std::optional<uchar> requestedAmount
316 MCNAPI_C
bool handleMoveSelectedItemFromStorageItem(
322 MCNAPI_C
bool handleMoveSelectedItemFromStorageItemToStorageItem(
328 MCNAPI_C
bool handleMoveTopItemFromStorageItem(
::ItemStack const& srcStorageItem,
::SlotData const& dstSlot);
330 MCNAPI_C
bool hasContainerController(::std::string
const& containerName)
const;
332 MCNAPI_C
bool isExpandoItem(::std::string
const& collectionName,
int collectionIndex);
334 MCNAPI_C
bool isItemFiltered(::std::vector<::std::string> containerNames,
::ItemStackBase const& item)
const;
336 MCNAPI_C
bool isValid(
float pickRange);
338 MCNAPI_C
bool playerHasRoomForItem(
::ItemInstance const& item)
const;
340 MCNAPI_C
void resetSplitStack();
342 MCNAPI_C
void sortStorageContainer(::std::string
const& storageName);
348 MCNAPI_C static ::std::string_view
const& TRANSFER_NO_DESTINATION();
350 MCNAPI_C static ::std::string_view
const& TRANSFER_NO_ORIGIN();
356 MCNAPI_C
void* $ctor(::std::weak_ptr<::ContainerManagerModel> containerManagerModel);
369 MCNAPI
void $postInit(::std::weak_ptr<::ContainerManagerController>);
371 MCNAPI
void $registerContainerCallbacks();
377 MCNAPI ::Bedrock::Safety::RedactableString
const& $getPreviewItemName()
const;
379 MCNAPI ::Bedrock::Safety::RedactableString
const& $getItemName()
const;
381 MCNAPI
void $updatePreviewItem();
383 MCNAPI ::ItemStackBase
const& $getTakeableItemStackBase(
::SlotData const& slot)
const;
385 MCNAPI
void $handleTakeAmount(
::SlotData const& dstSlot,
int amount,
::SlotData const& srcSlot);
395 MCNAPI
void $handlePlaceAmount(
::SlotData const& srcSlot,
int amount,
::SlotData const& dstSlot);
397 MCNAPI
int $handleAutoPlace(
400 ::std::vector<::AutoPlaceItem>
const& autoPlaceOrder,
401 ::std::vector<::AutoPlaceResult>& destinations
404 MCNAPI
int $handleAutoPlaceStack(
406 ::ItemTakeType takeType,
407 ::std::vector<::AutoPlaceItem>
const& autoPlaceOrder,
408 ::std::vector<::AutoPlaceResult>& destinations
413 MCNAPI
void $handleSplitMultiple(
419 MCNAPI
bool $handleCoalesce(
421 ::std::vector<::std::string>
const& coalesceOrder,
422 ::std::string
const& coalesceSrc
435 MCNAPI
void $handleAddToStack(
::SlotData const& dstSlot,
::SlotData const& srcSlot, ::ItemTakeType type);
437 MCNAPI
void $closeContainers();
439 MCNAPI
bool $isOutputSlot(::std::string
const& collectionName)
const;
441 MCNAPI
void $_updateItemStackRequest(
442 ::ContainerScreenRequestActionType,