LeviLamina
Loading...
Searching...
No Matches
LoomContainerManagerController.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/containers/SlotData.h"
7#include "mc/world/containers/managers/controllers/ContainerManagerController.h"
8#include "mc/world/item/ItemInstance.h"
9
10// auto generated forward declare list
11// clang-format off
12class ItemStackBase;
14struct AutoPlaceItem;
15struct AutoPlaceResult;
19struct SelectedSlotInfo;
20// clang-format on
21
23public:
24 // member variables
25 // NOLINTBEGIN
26 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::LoomContainerManagerModel>> mLoomContainerManagerModel;
27 ::ll::TypedStorage<8, 24, ::std::vector<int>> mFilteredPatterns;
28 ::ll::TypedStorage<4, 4, int> mSelectedPatternIndex;
29 ::ll::TypedStorage<1, 1, bool> mCurrentlyCrafting;
30 ::ll::TypedStorage<8, 40, ::SlotData const> mCreatedItemOutputSlot;
31 ::ll::TypedStorage<8, 128, ::ItemInstance> mResultItemPreview;
32 ::ll::TypedStorage<8, 32, ::std::string> mResultPatternNameId;
33 // NOLINTEND
34
35public:
36 // virtual functions
37 // NOLINTBEGIN
38#ifdef LL_PLAT_S
39 virtual ~LoomContainerManagerController() /*override*/ = default;
40#else // LL_PLAT_C
41 virtual ~LoomContainerManagerController() /*override*/;
42#endif
43
44 virtual bool isOutputSlot(::std::string const& collectionName) const /*override*/;
45
46 virtual void handleTakeAmount(::SlotData const& dstSlot, int amount, ::SlotData const& srcSlot) /*override*/;
47
48 virtual void handleTakeAll(::SlotData const& dstSlot, ::SlotData const& srcSlot) /*override*/;
49
50 virtual void handlePlaceAll(::SelectedSlotInfo const& selected, ::SlotData const& dstSlot) /*override*/;
51
52 virtual void handleTakeHalf(::SlotData const& dstSlot, ::SlotData const& srcSlot) /*override*/;
53
54 virtual void handlePlaceOne(::SlotData const& srcSlot, ::SlotData const& dstSlot) /*override*/;
55
56 virtual int handleAutoPlace(
57 ::SlotData const& srcSlot,
58 int amount,
59 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
60 ::std::vector<::AutoPlaceResult>& destinations
61 ) /*override*/;
62
63 virtual ::ItemStackBase const& getTakeableItemStackBase(::SlotData const& slot) const /*override*/;
64
65 virtual ::CreateContainerItemScope
66 _makeCreateItemScope(::SlotData const& srcSlot, ::ItemTransferAmount const& takeAmount) /*override*/;
67
68 virtual void _onItemAcquired(::ItemInstance const& instance, ::SlotData const& srcSlot) /*override*/;
69 // NOLINTEND
70
71public:
72 // member functions
73 // NOLINTBEGIN
74 MCNAPI_C ::ItemInstance _buildResultItem();
75
76 MCNAPI_C void
77 _createCraftItem(::ItemInstance& instance, ::ItemStackRequestScope const& requestScope, uchar numCrafts);
78
79 MCNAPI_C void _filterPatterns();
80
81 MCNAPI_C bool _handleTransferCraft(::SlotData const& srcSlot, ::SlotData const& dstSlot);
82
83 MCNAPI_C void _networkUpdateResultItem();
84
85 MCNAPI_C void _setupCallbacks();
86
87 MCNAPI_C void pullInPatternItemForPattern();
88 // NOLINTEND
89
90public:
91 // constructor thunks
92 // NOLINTBEGIN
93 MCNAPI_C void* $ctor(::std::weak_ptr<::LoomContainerManagerModel> containerManagerModel);
94 // NOLINTEND
95
96public:
97 // destructor thunk
98 // NOLINTBEGIN
99 MCNAPI void $dtor();
100 // NOLINTEND
101
102public:
103 // virtual function thunks
104 // NOLINTBEGIN
105#ifdef LL_PLAT_C
106 MCNAPI bool $isOutputSlot(::std::string const& collectionName) const;
107
108 MCNAPI void $handleTakeAmount(::SlotData const& dstSlot, int amount, ::SlotData const& srcSlot);
109
110 MCNAPI void $handleTakeAll(::SlotData const& dstSlot, ::SlotData const& srcSlot);
111
112 MCNAPI void $handlePlaceAll(::SelectedSlotInfo const& selected, ::SlotData const& dstSlot);
113
114 MCNAPI void $handleTakeHalf(::SlotData const& dstSlot, ::SlotData const& srcSlot);
115
116 MCNAPI void $handlePlaceOne(::SlotData const& srcSlot, ::SlotData const& dstSlot);
117
118 MCNAPI int $handleAutoPlace(
119 ::SlotData const& srcSlot,
120 int amount,
121 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
122 ::std::vector<::AutoPlaceResult>& destinations
123 );
124
125 MCNAPI ::ItemStackBase const& $getTakeableItemStackBase(::SlotData const& slot) const;
126
127 MCNAPI ::CreateContainerItemScope
128 $_makeCreateItemScope(::SlotData const& srcSlot, ::ItemTransferAmount const& takeAmount);
129
130 MCNAPI void $_onItemAcquired(::ItemInstance const& instance, ::SlotData const& srcSlot);
131#endif
132
133
134 // NOLINTEND
135
136public:
137 // vftables
138 // NOLINTBEGIN
139 MCNAPI static void** $vftable();
140 // NOLINTEND
141};
Definition ContainerManagerController.h:47
Definition ItemInstance.h:15
Definition ItemStackBase.h:44
Definition LoomContainerManagerController.h:22
static MCAPI void ** $vftable()
Definition LoomContainerManagerModel.h:18
Definition AutoPlaceItem.h:5
Definition AutoPlaceResult.h:5
Definition CreateContainerItemScope.h:18
Definition ItemStackRequestScope.h:14
Definition ItemTransferAmount.h:5
Definition SelectedSlotInfo.h:5
Definition SlotData.h:5