LeviLamina
Loading...
Searching...
No Matches
ContainerManagerController.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/pub_sub/Subscription.h"
7#include "mc/deps/shared_types/legacy/ContainerType.h"
8#include "mc/deps/shared_types/legacy/LevelSoundEvent.h"
9#include "mc/world/containers/ContainerEnumName.h"
10#include "mc/world/containers/controllers/ItemTakeType.h"
11#include "mc/world/containers/managers/controllers/ItemSpecialLocation.h"
12#include "mc/world/containers/managers/controllers/ItemTransferType.h"
13#include "mc/world/containers/models/ContainerCategory.h"
14#include "mc/world/containers/models/ContainerExpandStatus.h"
15#include "mc/world/inventory/simulation/ContainerScreenRequestActionType.h"
16
17// auto generated forward declare list
18// clang-format off
19class BlockPos;
20class Container;
23class ContainerModel;
26class ItemInstance;
27class ItemStack;
28class ItemStackBase;
29struct ActorUniqueID;
30struct AutoPlaceItem;
31struct AutoPlaceRequest;
32struct AutoPlaceResult;
40struct ItemStateData;
43struct SelectedSlotInfo;
44struct SlotData;
45namespace Bedrock::Safety { class RedactableString; }
46// clang-format on
47
48class ContainerManagerController : public ::std::enable_shared_from_this<::ContainerManagerController> {
49public:
50 // member variables
51 // NOLINTBEGIN
52 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::ContainerManagerModel>> mContainerManagerModel;
53 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::std::shared_ptr<::ContainerController>>>
54 mContainers;
55 ::ll::TypedStorage<8, 24, ::std::vector<::ContainerSplitControl>> mContainerSplitItemStackItems;
56 ::ll::TypedStorage<8, 24, ::std::vector<::ContainerSimulationSplitStack>> mContainerSimulationSplitItemStacks;
57 ::ll::TypedStorage<4, 4, int> mSplitItemRemainder;
58 ::ll::TypedStorage<1, 1, bool> mContainerDirty;
59 ::ll::TypedStorage<1, 1, bool> mContainersClosed;
60 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ContainerScreenSimulation>> mSimulation;
61 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mDynamicContainerNotifier;
62 // NOLINTEND
63
64#ifdef LL_PLAT_S
65#else // LL_PLAT_C
66public:
67 // prevent constructor by default
68 ContainerManagerController();
69
70#endif
71public:
72 // virtual functions
73 // NOLINTBEGIN
74#ifdef LL_PLAT_S
75 virtual ~ContainerManagerController() = default;
76#else // LL_PLAT_C
77 virtual ~ContainerManagerController();
78#endif
79
80#ifdef LL_PLAT_S
81 virtual void postInit(::std::weak_ptr<::ContainerManagerController>);
82#else // LL_PLAT_C
83 virtual void postInit(::std::weak_ptr<::ContainerManagerController> self);
84#endif
85
86 virtual void registerContainerCallbacks();
87
88#ifdef LL_PLAT_S
89 virtual void setPreviewItemName(::Bedrock::Safety::RedactableString const&);
90#else // LL_PLAT_C
91 virtual void setPreviewItemName(::Bedrock::Safety::RedactableString const& name);
92#endif
93
94#ifdef LL_PLAT_S
95 virtual void setItemName(::Bedrock::Safety::RedactableString const&);
96#else // LL_PLAT_C
97 virtual void setItemName(::Bedrock::Safety::RedactableString const& name);
98#endif
99
100 virtual ::Bedrock::Safety::RedactableString const& getPreviewItemName() const;
101
102 virtual ::Bedrock::Safety::RedactableString const& getItemName() const;
103
104 virtual void updatePreviewItem();
105
106#ifdef LL_PLAT_S
107 virtual ::ItemStackBase const& getTakeableItemStackBase(::SlotData const&) const;
108#else // LL_PLAT_C
109 virtual ::ItemStackBase const& getTakeableItemStackBase(::SlotData const& slot) const;
110#endif
111
112#ifdef LL_PLAT_S
113 virtual void handleTakeAmount(::SlotData const&, int, ::SlotData const&);
114#else // LL_PLAT_C
115 virtual void handleTakeAmount(::SlotData const& dstSlot, int amount, ::SlotData const& srcSlot);
116#endif
117
118#ifdef LL_PLAT_S
119 virtual void handleTakeAll(::SlotData const&, ::SlotData const&);
120#else // LL_PLAT_C
121 virtual void handleTakeAll(::SlotData const& dstSlot, ::SlotData const& srcSlot);
122#endif
123
124#ifdef LL_PLAT_S
125 virtual void handlePlaceAll(::SelectedSlotInfo const&, ::SlotData const&);
126#else // LL_PLAT_C
127 virtual void handlePlaceAll(::SelectedSlotInfo const& selected, ::SlotData const& dstSlot);
128#endif
129
130#ifdef LL_PLAT_S
131 virtual void handleTakeHalf(::SlotData const&, ::SlotData const&);
132#else // LL_PLAT_C
133 virtual void handleTakeHalf(::SlotData const& dstSlot, ::SlotData const& srcSlot);
134#endif
135
136#ifdef LL_PLAT_S
137 virtual void handlePlaceOne(::SlotData const&, ::SlotData const&);
138#else // LL_PLAT_C
139 virtual void handlePlaceOne(::SlotData const& srcSlot, ::SlotData const& dstSlot);
140#endif
141
142#ifdef LL_PLAT_S
143 virtual void handlePlaceAmount(::SlotData const&, int, ::SlotData const&);
144#else // LL_PLAT_C
145 virtual void handlePlaceAmount(::SlotData const& srcSlot, int amount, ::SlotData const& dstSlot);
146#endif
147
148#ifdef LL_PLAT_S
149 virtual int
150 handleAutoPlace(::SlotData const&, int, ::std::vector<::AutoPlaceItem> const&, ::std::vector<::AutoPlaceResult>&);
151#else // LL_PLAT_C
152 virtual int handleAutoPlace(
153 ::SlotData const& srcSlot,
154 int amount,
155 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
156 ::std::vector<::AutoPlaceResult>& destinations
157 );
158#endif
159
160#ifdef LL_PLAT_S
161 virtual int handleAutoPlaceStack(
162 ::SlotData const&,
163 ::ItemTakeType,
164 ::std::vector<::AutoPlaceItem> const&,
165 ::std::vector<::AutoPlaceResult>&
166 );
167#else // LL_PLAT_C
168 virtual int handleAutoPlaceStack(
169 ::SlotData const& srcSlot,
170 ::ItemTakeType takeType,
171 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
172 ::std::vector<::AutoPlaceResult>& destinations
173 );
174#endif
175
176#ifdef LL_PLAT_S
177 virtual void handleSplitSingle(::SlotData const&, ::SlotData const&);
178#else // LL_PLAT_C
179 virtual void handleSplitSingle(::SlotData const& srcSlot, ::SlotData const& dstSlot);
180#endif
181
182#ifdef LL_PLAT_S
183 virtual void handleSplitMultiple(::SelectedSlotInfo const&, ::ItemInstance const&, ::SlotData const&);
184#else // LL_PLAT_C
185 virtual void handleSplitMultiple(
186 ::SelectedSlotInfo const& selected,
187 ::ItemInstance const& itemTemplate,
188 ::SlotData const& dstSlot
189 );
190#endif
191
192#ifdef LL_PLAT_S
193 virtual bool handleCoalesce(::SlotData const&, ::std::vector<::std::string> const&, ::std::string const&);
194#else // LL_PLAT_C
195 virtual bool handleCoalesce(
196 ::SlotData const& dstSlot,
197 ::std::vector<::std::string> const& coalesceOrder,
198 ::std::string const& coalesceSrc
199 );
200#endif
201
202#ifdef LL_PLAT_S
203 virtual bool handleSwap(::SlotData const&, ::SlotData const&);
204#else // LL_PLAT_C
205 virtual bool handleSwap(::SlotData const& slotA, ::SlotData const& slotB);
206#endif
207
208#ifdef LL_PLAT_S
209 virtual bool handleDrop(::SlotData const&, ::ItemTransferAmount const);
210#else // LL_PLAT_C
211 virtual bool handleDrop(::SlotData const& srcSlot, ::ItemTransferAmount const transferAmount);
212#endif
213
214#ifdef LL_PLAT_S
215 virtual bool handleDestroy(::SelectedSlotInfo const&, ::ItemTransferAmount const);
216#else // LL_PLAT_C
217 virtual bool handleDestroy(::SelectedSlotInfo const& selected, ::ItemTransferAmount const transferAmount);
218#endif
219
220#ifdef LL_PLAT_S
221 virtual bool handleDestroy(::SlotData const&, ::ItemTransferAmount const);
222#else // LL_PLAT_C
223 virtual bool handleDestroy(::SlotData const& srcSlot, ::ItemTransferAmount const transferAmount);
224#endif
225
226#ifdef LL_PLAT_S
227 virtual bool handleConsume(::SlotData const&, ::ItemTransferAmount const);
228#else // LL_PLAT_C
229 virtual bool handleConsume(::SlotData const& srcSlot, ::ItemTransferAmount const transferAmount);
230#endif
231
232#ifdef LL_PLAT_S
233 virtual void handleAddToStack(::SlotData const&, ::SlotData const&, ::ItemTakeType);
234#else // LL_PLAT_C
235 virtual void handleAddToStack(::SlotData const& dstSlot, ::SlotData const& srcSlot, ::ItemTakeType type);
236#endif
237
238 virtual void closeContainers();
239
240#ifdef LL_PLAT_S
241 virtual bool isOutputSlot(::std::string const&) const;
242#else // LL_PLAT_C
243 virtual bool isOutputSlot(::std::string const& collectionName) const;
244#endif
245
246 virtual void _updateItemStackRequest(
247 ::ContainerScreenRequestActionType,
250 );
251
252#ifdef LL_PLAT_S
253 virtual ::CreateContainerItemScope _makeCreateItemScope(::SlotData const&, ::ItemTransferAmount const&);
254#else // LL_PLAT_C
255 virtual ::CreateContainerItemScope
256 _makeCreateItemScope(::SlotData const& srcSlot, ::ItemTransferAmount const& amount);
257#endif
258
259#ifdef LL_PLAT_S
260 virtual void _onItemTransferredFrom(::ItemInstance const&, ::SlotData const&);
261#else // LL_PLAT_C
262 virtual void _onItemTransferredFrom(::ItemInstance const& stack, ::SlotData const& srcSlot);
263#endif
264
265#ifdef LL_PLAT_S
266 virtual void _onItemTransferredTo(::ItemInstance const&, ::SlotData const&);
267#else // LL_PLAT_C
268 virtual void _onItemTransferredTo(::ItemInstance const& stack, ::SlotData const& dstSlot);
269#endif
270
271#ifdef LL_PLAT_S
272 virtual void _onItemAcquired(::ItemInstance const&, ::SlotData const&);
273#else // LL_PLAT_C
274 virtual void _onItemAcquired(::ItemInstance const& stack, ::SlotData const& srcSlot);
275#endif
276
277#ifdef LL_PLAT_S
278 virtual void _onItemPlaced(::ItemInstance const&, ::SlotData const&);
279#else // LL_PLAT_C
280 virtual void _onItemPlaced(::ItemInstance const& itemInstance, ::SlotData const& dstSlot);
281#endif
282
283#ifdef LL_PLAT_S
284 virtual void _onContainerScreenAction(::ContainerScreenActionResult const&);
285#else // LL_PLAT_C
286 virtual void _onContainerScreenAction(::ContainerScreenActionResult const& result);
287#endif
288
289 // NOLINTEND
290
291public:
292 // member functions
293 // NOLINTBEGIN
294#ifdef LL_PLAT_C
295 MCAPI explicit ContainerManagerController(::std::weak_ptr<::ContainerManagerModel> containerManagerModel);
296
297 MCAPI void _addContainer(::std::shared_ptr<::ContainerController> uiContainer);
298
299 MCAPI void _addOutputsAsDestinations(
300 ::ContainerScreenActionResult const& result,
301 ::std::vector<::AutoPlaceResult>& destinations
302 ) const;
303
304 MCAPI int _appendAutoPlaceOutputs(
305 ::ItemTransferRequest& request,
306 ::ItemStackBase const& itemToPlace,
307 int requestAmount,
308 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
309 int placementGroup
310 );
311
312 MCAPI void _autoPlaceOrDrop(
313 ::SlotData const& srcSlot,
315 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder
316 );
317
318 MCAPI int _buildAutoPlaceRequest(
319 ::SlotData const& srcSlot,
320 ::ItemTransferAmount requestTakeAmount,
321 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
322 ::ItemTransferRequest& request
323 );
324
325 MCAPI void _buildContainerControllers();
326
327 MCAPI int _bulkAutoPlaceOutput(
328 int craftableCount,
329 int amount,
330 ::ItemInstance outputItem,
331 ::SlotData const& srcSlot,
332 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
333 ::std::vector<::AutoPlaceResult>& destinations
334 );
335
336 MCAPI ::AutoPlaceRequest const _canAutoPlace(
337 ::SlotData const& srcSlot,
338 ::ItemTransferAmount requestTakeAmount,
339 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder
340 );
341
342 MCAPI bool _canCraftIntoStorageItem(::ItemInstance const& itemToCraft, ::ItemStack const& storageItem);
343
344 MCAPI void _clearCreativeHotbar();
345
346 MCAPI void _closeContainers(::ContainerManagerModel& containerModel);
347
348 MCAPI ::std::shared_ptr<::ContainerController> _getContainerController(::SlotData const& slot) const;
349
350 MCAPI ::ContainerValidationSlotData _getContainerValidationSlotData(::SlotData const& slotData) const;
351
352 MCAPI ::ItemStack const& _getItem(::SlotData const& slot, bool) const;
353
354 MCAPI ::ItemStack const& _getItem0(::ContainerEnumName collectionEnumName) const;
355
356 MCAPI ::std::tuple<::ItemStack const&, ::std::shared_ptr<::ContainerController>>
357 _getItemAndContainerController(::SlotData const& slot, bool) const;
358
359 MCAPI ::std::unordered_map<::FullContainerName, ::std::shared_ptr<::Container>> _getPredictiveContainers();
360
361 MCAPI ::ContainerScreenContext _getScreenContext() const;
362
363 MCAPI ::SlotData _getSlotData(::ContainerValidationSlotData const& containerValidationSlotData) const;
364
365 MCAPI bool _handleAutoPlace(::ItemTransferRequest const& request);
366
367 MCAPI void _handleSplitMultiple(
368 ::SelectedSlotInfo const& selected,
369 ::ItemInstance const& itemTemplate,
370 ::SlotData const& dstSlot
371 );
372
373 MCAPI bool _isContainerSimulationEnabled() const;
374
375 MCAPI void _onItemTransferring(
376 ::ItemStack const& stack,
377 ::SlotData const& srcSlot,
378 ::ContainerModel* srcModel,
379 ::SlotData const& dstSlot,
380 ::ContainerModel* dstModel
381 );
382
383 MCAPI void _onTransfer(::ContainerScreenActionResult const& result);
384
385 MCAPI void _playCraftingSound(
386 ::std::weak_ptr<::ContainerManagerModel> const& containerManagerModel,
387 ::SharedTypes::Legacy::LevelSoundEvent soundEvent
388 );
389
390 MCAPI void _registerSetThisDirtyCallback(::std::shared_ptr<::ContainerModel> containerModel);
391
392 MCAPI ::ContainerCategory
393 _resolveToRealSourceSlot(::ContainerModel* srcModel, ::SlotData const& srcSlot, ::SlotData& realSrcSlot) const;
394
395 MCAPI void _returnToPlayerOrDrop(::SlotData const& srcSlot, ::ItemTransferAmount amount);
396
397 MCAPI void _shiftLeftStorageItemContents(
398 ::std::string const& collectionName,
399 int selectedItemIdx,
400 ::std::vector<::ItemStack> const& items
401 );
402
403 MCAPI bool _transfer(
404 ::ItemTransferType transferType,
405 ::SlotData const& dstSlot,
406 ::SlotData const& srcSlot,
407 ::ItemTransferAmount transferAmount,
408 bool allowSwap,
409 bool allowVisualOnlySameItemSwap
410 );
411
412 MCAPI bool _transferAll(::ItemTransferType transferType, ::SlotData const& dstSlot, ::SlotData const& srcSlot);
413
414 MCAPI bool
415 _transferSpecial(::SlotData const& srcSlot, ::ItemTransferAmount transferAmount, ::ItemSpecialLocation location);
416
417 MCAPI ::ItemStackRequestScope _tryBeginItemStackRequest(::ContainerManagerModel const* managerModel);
418
419 MCAPI void
420 _updateItemStackRequest(::ContainerScreenActionResult const& result, ::ItemStackRequestScope& requestScope);
421
422 MCAPI bool
423 _updatePreviewItem(::ItemInstance& previewItem, ::ItemInstance const& newItem, ::std::string const& collectionName);
424
425 MCAPI bool blockHasCustomName(::BlockPos const& blockPos) const;
426
427 MCAPI bool getAndResetContainerDirty();
428
429 MCAPI ::std::string getBlockName(::BlockPos const& blockPos) const;
430
431 MCAPI ::std::shared_ptr<::ContainerController> getContainerController(::ContainerEnumName containerEnumName) const;
432
433 MCAPI ::std::shared_ptr<::ContainerController> getContainerController(::std::string const& containerName) const;
434
435 MCFOLD ::std::weak_ptr<::ContainerManagerModel> getContainerManagerModel();
436
437 MCAPI ::std::weak_ptr<::ContainerModel> getContainerModel(::std::string const& containerName) const;
438
439 MCAPI int getContainerSize(::std::string const& collectionName) const;
440
441 MCAPI ::SharedTypes::Legacy::ContainerType getContainerType() const;
442
443 MCAPI void getCurrentContainerStateList(::std::vector<::ItemStateData>& inventoryState);
444
445 MCAPI ::std::shared_ptr<::ContainerModel> getDynamicContainerModel(::FullContainerName const& name);
446
447 MCAPI ::std::string getEntityName(::ActorUniqueID const& entityUniqueID) const;
448
449 MCAPI ::std::string getExpandoGroupName(::std::string const& collectionName, int collectionIndex) const;
450
451 MCAPI ::ContainerExpandStatus getExpandoStatus(::std::string const& containerName, int collectionIndex) const;
452
453 MCFOLD ::ItemStack const& getItemStack(::SlotData const& slot) const;
454
455 MCAPI ::ItemStack const& getItemStack(::std::string const& collectionName, int collectionIndex) const;
456
457 MCAPI bool handleMoveItemFromSlotIntoStorageItem(
458 ::SlotData const& srcSlot,
459 ::ItemStack const& dstStorageItem,
460 ::std::optional<uchar> requestedAmount
461 );
462
463 MCAPI bool handleMoveSelectedItemFromStorageItem(
464 ::ItemStack const& srcStorageItem,
465 int selectedItemIdx,
466 ::SlotData const& dstSlot
467 );
468
469 MCAPI bool handleMoveSelectedItemFromStorageItemToStorageItem(
470 ::ItemStack const& srcStorageItem,
471 int selectedItemIdx,
472 ::ItemStack const& dstStorageItem
473 );
474
475 MCAPI bool handleMoveTopItemFromStorageItem(::ItemStack const& srcStorageItem, ::SlotData const& dstSlot);
476
477 MCAPI bool hasContainerController(::std::string const& containerName) const;
478
479 MCAPI bool isExpandoItem(::std::string const& collectionName, int collectionIndex);
480
481 MCAPI bool isItemFiltered(::std::vector<::std::string> containerNames, ::ItemStackBase const& item) const;
482
483 MCAPI bool isValid(float pickRange);
484
485 MCAPI bool playerHasRoomForItem(::ItemInstance const& item) const;
486
487 MCAPI void resetSplitStack();
488
489 MCAPI void sortStorageContainer(::std::string const& storageName);
490#endif
491 // NOLINTEND
492
493public:
494 // static variables
495 // NOLINTBEGIN
496 MCAPI static ::std::string_view const& TRANSFER_NO_DESTINATION();
497
498 MCAPI static ::std::string_view const& TRANSFER_NO_ORIGIN();
499 // NOLINTEND
500
501public:
502 // constructor thunks
503 // NOLINTBEGIN
504#ifdef LL_PLAT_C
505 MCAPI void* $ctor(::std::weak_ptr<::ContainerManagerModel> containerManagerModel);
506#endif
507 // NOLINTEND
508
509public:
510 // destructor thunk
511 // NOLINTBEGIN
512 MCAPI void $dtor();
513 // NOLINTEND
514
515public:
516 // virtual function thunks
517 // NOLINTBEGIN
518#ifdef LL_PLAT_C
519 MCFOLD void $postInit(::std::weak_ptr<::ContainerManagerController> self);
520
521 MCAPI void $registerContainerCallbacks();
522
523 MCFOLD void $setPreviewItemName(::Bedrock::Safety::RedactableString const& name);
524
525 MCFOLD void $setItemName(::Bedrock::Safety::RedactableString const& name);
526
527 MCFOLD ::Bedrock::Safety::RedactableString const& $getPreviewItemName() const;
528
529 MCFOLD ::Bedrock::Safety::RedactableString const& $getItemName() const;
530
531 MCFOLD void $updatePreviewItem();
532
533 MCFOLD ::ItemStackBase const& $getTakeableItemStackBase(::SlotData const& slot) const;
534
535 MCAPI void $handleTakeAmount(::SlotData const& dstSlot, int amount, ::SlotData const& srcSlot);
536
537 MCAPI void $handleTakeAll(::SlotData const& dstSlot, ::SlotData const& srcSlot);
538
539 MCAPI void $handlePlaceAll(::SelectedSlotInfo const& selected, ::SlotData const& dstSlot);
540
541 MCAPI void $handleTakeHalf(::SlotData const& dstSlot, ::SlotData const& srcSlot);
542
543 MCAPI void $handlePlaceOne(::SlotData const& srcSlot, ::SlotData const& dstSlot);
544
545 MCAPI void $handlePlaceAmount(::SlotData const& srcSlot, int amount, ::SlotData const& dstSlot);
546
547 MCAPI int $handleAutoPlace(
548 ::SlotData const& srcSlot,
549 int amount,
550 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
551 ::std::vector<::AutoPlaceResult>& destinations
552 );
553
554 MCAPI int $handleAutoPlaceStack(
555 ::SlotData const& srcSlot,
556 ::ItemTakeType takeType,
557 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
558 ::std::vector<::AutoPlaceResult>& destinations
559 );
560
561 MCAPI void $handleSplitSingle(::SlotData const& srcSlot, ::SlotData const& dstSlot);
562
563 MCAPI void $handleSplitMultiple(
564 ::SelectedSlotInfo const& selected,
565 ::ItemInstance const& itemTemplate,
566 ::SlotData const& dstSlot
567 );
568
569 MCAPI bool $handleCoalesce(
570 ::SlotData const& dstSlot,
571 ::std::vector<::std::string> const& coalesceOrder,
572 ::std::string const& coalesceSrc
573 );
574
575 MCAPI bool $handleSwap(::SlotData const& slotA, ::SlotData const& slotB);
576
577 MCAPI bool $handleDrop(::SlotData const& srcSlot, ::ItemTransferAmount const transferAmount);
578
579 MCAPI bool $handleDestroy(::SelectedSlotInfo const& selected, ::ItemTransferAmount const transferAmount);
580
581 MCAPI bool $handleDestroy(::SlotData const& srcSlot, ::ItemTransferAmount const transferAmount);
582
583 MCAPI bool $handleConsume(::SlotData const& srcSlot, ::ItemTransferAmount const transferAmount);
584
585 MCAPI void $handleAddToStack(::SlotData const& dstSlot, ::SlotData const& srcSlot, ::ItemTakeType type);
586
587 MCAPI void $closeContainers();
588
589 MCFOLD bool $isOutputSlot(::std::string const& collectionName) const;
590
591 MCFOLD void $_updateItemStackRequest(
592 ::ContainerScreenRequestActionType,
595 );
596
597 MCAPI ::CreateContainerItemScope
598 $_makeCreateItemScope(::SlotData const& srcSlot, ::ItemTransferAmount const& amount);
599
600 MCAPI void $_onItemTransferredFrom(::ItemInstance const& stack, ::SlotData const& srcSlot);
601
602 MCAPI void $_onItemTransferredTo(::ItemInstance const& stack, ::SlotData const& dstSlot);
603
604 MCFOLD void $_onItemAcquired(::ItemInstance const& stack, ::SlotData const& srcSlot);
605
606 MCFOLD void $_onItemPlaced(::ItemInstance const& itemInstance, ::SlotData const& dstSlot);
607
608 MCFOLD void $_onContainerScreenAction(::ContainerScreenActionResult const& result);
609#endif
610
611
612 // NOLINTEND
613
614public:
615 // vftables
616 // NOLINTBEGIN
617 MCNAPI static void** $vftable();
618 // NOLINTEND
619};
Definition RedactableString.h:10
Definition BlockPos.h:21
Definition ContainerController.h:21
static MCAPI void ** $vftable()
Definition ContainerManagerModel.h:34
Definition ContainerModel.h:28
Definition ContainerScreenContext.h:19
Definition ContainerScreenSimulation.h:32
Definition Container.h:34
Definition ItemInstance.h:15
Definition ItemStackBase.h:52
Definition ItemStack.h:35
Definition ActorUniqueID.h:10
Definition AutoPlaceItem.h:5
Definition AutoPlaceRequest.h:5
Definition AutoPlaceResult.h:5
Definition ContainerScreenActionResult.h:14
Definition ContainerSimulationSplitStack.h:8
Definition ContainerSplitControl.h:9
Definition ContainerValidationSlotData.h:8
Definition CreateContainerItemScope.h:18
Definition FullContainerName.h:8
Definition ItemStackRequestScope.h:16
Definition ItemStateData.h:10
Definition ItemTransferAmount.h:9
Definition ItemTransferRequest.h:10
Definition SelectedSlotInfo.h:10
Definition SlotData.h:10