LeviLamina
Loading...
Searching...
No Matches
MaterialReducerContainerManagerController.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
9// auto generated forward declare list
10// clang-format off
11class BlockReducer;
13class ItemInstance;
14class ItemStack;
15class ItemStackBase;
17struct AutoPlaceItem;
18struct AutoPlaceResult;
22// clang-format on
23
24class MaterialReducerContainerManagerController : public ::ContainerManagerController {
25public:
26 // MaterialReducerContainerManagerController inner types define
27 using ActionScope = ::gsl::final_action<::std::function<void()>>;
28
29public:
30 // member variables
31 // NOLINTBEGIN
32 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::MaterialReducerContainerManagerModel>> mModel;
33 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::CraftableCompounds>> mCraftableCompounds;
34 ::ll::TypedStorage<8, 8, ::BlockReducer*> mBlockReducer;
35 ::ll::TypedStorage<1, 1, bool> mObservingContainers;
36 ::ll::TypedStorage<8, 40, ::SlotData const> mCreatedItemOutputSlot;
37 // NOLINTEND
38
39#ifdef LL_PLAT_S
40#else // LL_PLAT_C
41public:
42 // prevent constructor by default
43 MaterialReducerContainerManagerController();
44
45#endif
46public:
47 // virtual functions
48 // NOLINTBEGIN
49 virtual ~MaterialReducerContainerManagerController() /*override*/ = default;
50
51 virtual bool isOutputSlot(::std::string const& collectionName) const /*override*/;
52
53 virtual void closeContainers() /*override*/;
54
55 virtual void handlePlaceOne(::SlotData const& srcSlot, ::SlotData const& dstSlot) /*override*/;
56
57 virtual int handleAutoPlace(
58 ::SlotData const& srcSlot,
59 int amount,
60 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
61 ::std::vector<::AutoPlaceResult>& destinations
62 ) /*override*/;
63
64 virtual bool handleSwap(::SlotData const& slotA, ::SlotData const& slotB) /*override*/;
65 // NOLINTEND
66
67public:
68 // member functions
69 // NOLINTBEGIN
70#ifdef LL_PLAT_C
71 MCNAPI explicit MaterialReducerContainerManagerController(
72 ::std::weak_ptr<::MaterialReducerContainerManagerModel> containerManagerModel
73 );
74
75 MCNAPI void _consumeInputItem();
76
77 MCNAPI void _destroySlot(::SlotData const& slot, ::ItemTransferAmount amount);
78
79 MCNAPI void _fireReducerBlockEntered(::ItemStackBase const& input);
80
81 MCNAPI bool _hasAnyInput();
82
83 MCNAPI bool _hasAnyOutput();
84
85 MCNAPI ::CreateContainerItemScope _makeCreateOutputItemScope(
86 ::ItemStackRequestScope const& requestScope,
87 ::SlotData const& srcSlot,
88 ::ItemInstance const& instance
89 );
90
91 MCNAPI void _setupCallbacks();
92
93 MCNAPI void _updateResult(::ItemStack const& input);
94
95 MCNAPI bool isStillValid(float pickRange);
96#endif
97 // NOLINTEND
98
99public:
100 // constructor thunks
101 // NOLINTBEGIN
102#ifdef LL_PLAT_C
103 MCNAPI void* $ctor(::std::weak_ptr<::MaterialReducerContainerManagerModel> containerManagerModel);
104#endif
105 // NOLINTEND
106
107public:
108 // virtual function thunks
109 // NOLINTBEGIN
110#ifdef LL_PLAT_C
111 MCNAPI bool $isOutputSlot(::std::string const& collectionName) const;
112
113 MCNAPI void $closeContainers();
114
115 MCNAPI void $handlePlaceOne(::SlotData const& srcSlot, ::SlotData const& dstSlot);
116
117 MCNAPI int $handleAutoPlace(
118 ::SlotData const& srcSlot,
119 int amount,
120 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
121 ::std::vector<::AutoPlaceResult>& destinations
122 );
123
124 MCNAPI bool $handleSwap(::SlotData const& slotA, ::SlotData const& slotB);
125#endif
126
127
128 // NOLINTEND
129
130public:
131 // vftables
132 // NOLINTBEGIN
133 MCNAPI static void** $vftable();
134 // NOLINTEND
135};
Definition BlockReducer.h:12
Definition CraftableCompounds.h:17
Definition ItemInstance.h:15
Definition ItemStackBase.h:44
Definition ItemStack.h:26
Definition MaterialReducerContainerManagerModel.h:17
Definition AutoPlaceItem.h:5
Definition AutoPlaceResult.h:5
Definition CreateContainerItemScope.h:18
Definition ItemStackRequestScope.h:14
Definition ItemTransferAmount.h:5
Definition SlotData.h:5