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
22class LoomContainerManagerController : public ::ContainerManagerController {
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
35#ifdef LL_PLAT_S
36#else // LL_PLAT_C
37public:
38 // prevent constructor by default
39 LoomContainerManagerController();
40
41#endif
42public:
43 // virtual functions
44 // NOLINTBEGIN
45#ifdef LL_PLAT_S
46 virtual ~LoomContainerManagerController() /*override*/ = default;
47#else // LL_PLAT_C
48 virtual ~LoomContainerManagerController() /*override*/;
49#endif
50
51 virtual bool isOutputSlot(::std::string const& collectionName) const /*override*/;
52
53 virtual void handleTakeAmount(::SlotData const& dstSlot, int amount, ::SlotData const& srcSlot) /*override*/;
54
55 virtual void handleTakeAll(::SlotData const& dstSlot, ::SlotData const& srcSlot) /*override*/;
56
57 virtual void handlePlaceAll(::SelectedSlotInfo const& selected, ::SlotData const& dstSlot) /*override*/;
58
59 virtual void handleTakeHalf(::SlotData const& dstSlot, ::SlotData const& srcSlot) /*override*/;
60
61 virtual void handlePlaceOne(::SlotData const& srcSlot, ::SlotData const& dstSlot) /*override*/;
62
63 virtual int handleAutoPlace(
64 ::SlotData const& srcSlot,
65 int amount,
66 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
67 ::std::vector<::AutoPlaceResult>& destinations
68 ) /*override*/;
69
70 virtual ::ItemStackBase const& getTakeableItemStackBase(::SlotData const& slot) const /*override*/;
71
72 virtual ::CreateContainerItemScope
73 _makeCreateItemScope(::SlotData const& srcSlot, ::ItemTransferAmount const& takeAmount) /*override*/;
74
75 virtual void _onItemAcquired(::ItemInstance const& instance, ::SlotData const& srcSlot) /*override*/;
76 // NOLINTEND
77
78public:
79 // member functions
80 // NOLINTBEGIN
81#ifdef LL_PLAT_C
82 MCNAPI explicit LoomContainerManagerController(::std::weak_ptr<::LoomContainerManagerModel> containerManagerModel);
83
84 MCNAPI ::ItemInstance _buildResultItem();
85
86 MCNAPI void
87 _createCraftItem(::ItemInstance& instance, ::ItemStackRequestScope const& requestScope, uchar numCrafts);
88
89 MCNAPI void _filterPatterns();
90
91 MCNAPI bool _handleTransferCraft(::SlotData const& srcSlot, ::SlotData const& dstSlot);
92
93 MCNAPI void _networkUpdateResultItem();
94
95 MCNAPI void _setupCallbacks();
96
97 MCNAPI void pullInPatternItemForPattern();
98#endif
99 // NOLINTEND
100
101public:
102 // constructor thunks
103 // NOLINTBEGIN
104#ifdef LL_PLAT_C
105 MCNAPI void* $ctor(::std::weak_ptr<::LoomContainerManagerModel> containerManagerModel);
106#endif
107 // NOLINTEND
108
109public:
110 // destructor thunk
111 // NOLINTBEGIN
112 MCNAPI void $dtor();
113 // NOLINTEND
114
115public:
116 // virtual function thunks
117 // NOLINTBEGIN
118#ifdef LL_PLAT_C
119 MCNAPI bool $isOutputSlot(::std::string const& collectionName) const;
120
121 MCNAPI void $handleTakeAmount(::SlotData const& dstSlot, int amount, ::SlotData const& srcSlot);
122
123 MCNAPI void $handleTakeAll(::SlotData const& dstSlot, ::SlotData const& srcSlot);
124
125 MCNAPI void $handlePlaceAll(::SelectedSlotInfo const& selected, ::SlotData const& dstSlot);
126
127 MCNAPI void $handleTakeHalf(::SlotData const& dstSlot, ::SlotData const& srcSlot);
128
129 MCNAPI void $handlePlaceOne(::SlotData const& srcSlot, ::SlotData const& dstSlot);
130
131 MCNAPI int $handleAutoPlace(
132 ::SlotData const& srcSlot,
133 int amount,
134 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
135 ::std::vector<::AutoPlaceResult>& destinations
136 );
137
138 MCNAPI ::ItemStackBase const& $getTakeableItemStackBase(::SlotData const& slot) const;
139
140 MCNAPI ::CreateContainerItemScope
141 $_makeCreateItemScope(::SlotData const& srcSlot, ::ItemTransferAmount const& takeAmount);
142
143 MCNAPI void $_onItemAcquired(::ItemInstance const& instance, ::SlotData const& srcSlot);
144#endif
145
146
147 // NOLINTEND
148
149public:
150 // vftables
151 // NOLINTBEGIN
152 MCNAPI static void** $vftable();
153 // NOLINTEND
154};
Definition ItemInstance.h:15
Definition ItemStackBase.h:44
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:10
Definition SlotData.h:5