Skip to content
LeviMC
English
AutoLightDark
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;
18struct SelectedSlotInfo;
19// clang-format on
20
21class LoomContainerManagerController : public ::ContainerManagerController {
22public:
23 // member variables
24 // NOLINTBEGIN
25 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::LoomContainerManagerModel>> mLoomContainerManagerModel;
26 ::ll::TypedStorage<8, 24, ::std::vector<int>> mFilteredPatterns;
27 ::ll::TypedStorage<4, 4, int> mSelectedPatternIndex;
28 ::ll::TypedStorage<1, 1, bool> mCurrentlyCrafting;
29 ::ll::TypedStorage<8, 40, ::SlotData const> mCreatedItemOutputSlot;
30 ::ll::TypedStorage<8, 128, ::ItemInstance> mResultItemPreview;
31 ::ll::TypedStorage<8, 32, ::std::string> mResultPatternNameId;
32 // NOLINTEND
33
34#ifdef LL_PLAT_S
35#else // LL_PLAT_C
36public:
37 // prevent constructor by default
38 LoomContainerManagerController();
39
40#endif
41public:
42 // virtual functions
43 // NOLINTBEGIN
44 virtual ~LoomContainerManagerController() /*override*/ = default;
45
46 virtual bool isOutputSlot(::std::string const& collectionName) const /*override*/;
47
48 virtual bool handleTakeAmount(::SlotData const& dstSlot, int amount, ::SlotData const& srcSlot) /*override*/;
49
50 virtual bool handleTakeAll(::SlotData const& dstSlot, ::SlotData const& srcSlot) /*override*/;
51
52 virtual bool handlePlaceAll(::SelectedSlotInfo const& selected, ::SlotData const& dstSlot) /*override*/;
53
54 virtual bool handleTakeHalf(::SlotData const& dstSlot, ::SlotData const& srcSlot) /*override*/;
55
56 virtual bool handlePlaceOne(::SlotData const& srcSlot, ::SlotData const& dstSlot) /*override*/;
57
58 virtual int handleAutoPlace(
59 ::SlotData const& srcSlot,
60 int amount,
61 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
62 ::std::vector<::AutoPlaceResult>& destinations
63 ) /*override*/;
64
65 virtual ::ItemStackBase const& getTakeableItemStackBase(::SlotData const& slot) const /*override*/;
66
67 virtual ::CreateContainerItemScope
68 _makeCreateItemScope(::SlotData const& srcSlot, ::ItemTransferAmount const& takeAmount) /*override*/;
69
70 virtual void _onItemAcquired(::ItemInstance const& instance, ::SlotData const& srcSlot) /*override*/;
71 // NOLINTEND
72
73public:
74 // member functions
75 // NOLINTBEGIN
76#ifdef LL_PLAT_C
77 MCNAPI explicit LoomContainerManagerController(::std::weak_ptr<::LoomContainerManagerModel> containerManagerModel);
78
79 MCNAPI ::ItemInstance _buildResultItem();
80
81 MCNAPI bool _handleTransferCraft(::SlotData const& srcSlot, ::SlotData const& dstSlot);
82
83 MCNAPI void pullInPatternItemForPattern();
84
85 MCNAPI void setSelectedPattern(int collectionIndex);
86#endif
87 // NOLINTEND
88
89public:
90 // constructor thunks
91 // NOLINTBEGIN
92#ifdef LL_PLAT_C
93 MCNAPI void* $ctor(::std::weak_ptr<::LoomContainerManagerModel> containerManagerModel);
94#endif
95 // NOLINTEND
96
97public:
98 // virtual function thunks
99 // NOLINTBEGIN
100#ifdef LL_PLAT_C
101 MCNAPI bool $isOutputSlot(::std::string const& collectionName) const;
102
103 MCNAPI bool $handleTakeAmount(::SlotData const& dstSlot, int amount, ::SlotData const& srcSlot);
104
105 MCNAPI bool $handleTakeAll(::SlotData const& dstSlot, ::SlotData const& srcSlot);
106
107 MCNAPI bool $handlePlaceAll(::SelectedSlotInfo const& selected, ::SlotData const& dstSlot);
108
109 MCNAPI bool $handleTakeHalf(::SlotData const& dstSlot, ::SlotData const& srcSlot);
110
111 MCNAPI bool $handlePlaceOne(::SlotData const& srcSlot, ::SlotData const& dstSlot);
112
113 MCNAPI int $handleAutoPlace(
114 ::SlotData const& srcSlot,
115 int amount,
116 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
117 ::std::vector<::AutoPlaceResult>& destinations
118 );
119
120 MCNAPI ::ItemStackBase const& $getTakeableItemStackBase(::SlotData const& slot) const;
121
122 MCNAPI ::CreateContainerItemScope
123 $_makeCreateItemScope(::SlotData const& srcSlot, ::ItemTransferAmount const& takeAmount);
124
125 MCNAPI void $_onItemAcquired(::ItemInstance const& instance, ::SlotData const& srcSlot);
126#endif
127
128
129 // NOLINTEND
130};
Definition ItemInstance.h:15
Definition ItemStackBase.h:45
Definition LoomContainerManagerModel.h:16
Definition AutoPlaceItem.h:5
Definition AutoPlaceResult.h:5
Definition CreateContainerItemScope.h:18
Definition ItemTransferAmount.h:5
Definition SelectedSlotInfo.h:10
Definition SlotData.h:5