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
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
39public:
40 // virtual functions
41 // NOLINTBEGIN
42 virtual ~MaterialReducerContainerManagerController() /*override*/ = default;
43
44 virtual bool isOutputSlot(::std::string const& collectionName) const /*override*/;
45
46 virtual void closeContainers() /*override*/;
47
48 virtual void handlePlaceOne(::SlotData const& srcSlot, ::SlotData const& dstSlot) /*override*/;
49
50 virtual int handleAutoPlace(
51 ::SlotData const& srcSlot,
52 int amount,
53 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
54 ::std::vector<::AutoPlaceResult>& destinations
55 ) /*override*/;
56
57 virtual bool handleSwap(::SlotData const& slotA, ::SlotData const& slotB) /*override*/;
58 // NOLINTEND
59
60public:
61 // member functions
62 // NOLINTBEGIN
63 MCNAPI_C void _consumeInputItem();
64
65 MCNAPI_C void _destroySlot(::SlotData const& slot, ::ItemTransferAmount amount);
66
67 MCNAPI_C void _fireReducerBlockEntered(::ItemStackBase const& input);
68
69 MCNAPI_C bool _hasAnyInput();
70
71 MCNAPI_C bool _hasAnyOutput();
72
73 MCNAPI_C ::CreateContainerItemScope _makeCreateOutputItemScope(
74 ::ItemStackRequestScope const& requestScope,
75 ::SlotData const& srcSlot,
76 ::ItemInstance const& instance
77 );
78
79 MCNAPI_C void _setupCallbacks();
80
81 MCNAPI_C void _updateResult(::ItemStack const& input);
82
83 MCNAPI_C bool isStillValid(float pickRange);
84 // NOLINTEND
85
86public:
87 // constructor thunks
88 // NOLINTBEGIN
89 MCNAPI_C void* $ctor(::std::weak_ptr<::MaterialReducerContainerManagerModel> containerManagerModel);
90 // NOLINTEND
91
92public:
93 // virtual function thunks
94 // NOLINTBEGIN
95#ifdef LL_PLAT_C
96 MCNAPI bool $isOutputSlot(::std::string const& collectionName) const;
97
98 MCNAPI void $closeContainers();
99
100 MCNAPI void $handlePlaceOne(::SlotData const& srcSlot, ::SlotData const& dstSlot);
101
102 MCNAPI int $handleAutoPlace(
103 ::SlotData const& srcSlot,
104 int amount,
105 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
106 ::std::vector<::AutoPlaceResult>& destinations
107 );
108
109 MCNAPI bool $handleSwap(::SlotData const& slotA, ::SlotData const& slotB);
110#endif
111
112
113 // NOLINTEND
114
115public:
116 // vftables
117 // NOLINTBEGIN
118 MCNAPI static void** $vftable();
119 // NOLINTEND
120};
Definition BlockReducer.h:12
Definition ContainerManagerController.h:47
Definition CraftableCompounds.h:17
Definition ItemInstance.h:15
Definition ItemStackBase.h:44
Definition ItemStack.h:26
Definition MaterialReducerContainerManagerController.h:24
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