Skip to content
LeviMC
English
AutoLightDark
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 ItemStackBase;
15struct AutoPlaceItem;
16struct AutoPlaceResult;
18// clang-format on
19
20class MaterialReducerContainerManagerController : public ::ContainerManagerController {
21public:
22 // MaterialReducerContainerManagerController inner types define
23 using ActionScope = ::gsl::final_action<::std::function<void()>>;
24
25public:
26 // member variables
27 // NOLINTBEGIN
28 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::MaterialReducerContainerManagerModel>> mModel;
29 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::CraftableCompounds>> mCraftableCompounds;
30 ::ll::TypedStorage<8, 8, ::BlockReducer*> mBlockReducer;
31 ::ll::TypedStorage<1, 1, bool> mObservingContainers;
32 ::ll::TypedStorage<8, 40, ::SlotData const> mCreatedItemOutputSlot;
33 // NOLINTEND
34
35#ifdef LL_PLAT_S
36#else // LL_PLAT_C
37public:
38 // prevent constructor by default
39 MaterialReducerContainerManagerController();
40
41#endif
42public:
43 // virtual functions
44 // NOLINTBEGIN
45 virtual ~MaterialReducerContainerManagerController() /*override*/ = default;
46
47 virtual bool isOutputSlot(::std::string const& collectionName) const /*override*/;
48
49 virtual void closeContainers() /*override*/;
50
51 virtual bool handlePlaceOne(::SlotData const& srcSlot, ::SlotData const& dstSlot) /*override*/;
52
53 virtual int handleAutoPlace(
54 ::SlotData const& srcSlot,
55 int amount,
56 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
57 ::std::vector<::AutoPlaceResult>& destinations
58 ) /*override*/;
59
60 virtual bool handleSwap(::SlotData const& slotA, ::SlotData const& slotB) /*override*/;
61 // NOLINTEND
62
63public:
64 // member functions
65 // NOLINTBEGIN
66#ifdef LL_PLAT_C
67 MCNAPI explicit MaterialReducerContainerManagerController(
68 ::std::weak_ptr<::MaterialReducerContainerManagerModel> containerManagerModel
69 );
70
71 MCNAPI void _destroySlot(::SlotData const& slot, ::ItemTransferAmount amount);
72
73 MCNAPI void _fireReducerBlockEntered(::ItemStackBase const& input);
74
75 MCNAPI bool _hasAnyInput();
76
77 MCNAPI bool _hasAnyOutput();
78
79 MCNAPI bool canInputAddToCursor();
80#endif
81 // NOLINTEND
82
83public:
84 // constructor thunks
85 // NOLINTBEGIN
86#ifdef LL_PLAT_C
87 MCNAPI void* $ctor(::std::weak_ptr<::MaterialReducerContainerManagerModel> containerManagerModel);
88#endif
89 // NOLINTEND
90
91public:
92 // virtual function thunks
93 // NOLINTBEGIN
94#ifdef LL_PLAT_C
95 MCNAPI bool $isOutputSlot(::std::string const& collectionName) const;
96
97 MCNAPI void $closeContainers();
98
99 MCNAPI bool $handlePlaceOne(::SlotData const& srcSlot, ::SlotData const& dstSlot);
100
101 MCNAPI int $handleAutoPlace(
102 ::SlotData const& srcSlot,
103 int amount,
104 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
105 ::std::vector<::AutoPlaceResult>& destinations
106 );
107
108 MCNAPI bool $handleSwap(::SlotData const& slotA, ::SlotData const& slotB);
109#endif
110
111
112 // NOLINTEND
113};
Definition BlockReducer.h:14
Definition CraftableCompounds.h:16
Definition ItemStackBase.h:45
Definition MaterialReducerContainerManagerModel.h:15
Definition AutoPlaceItem.h:5
Definition AutoPlaceResult.h:5
Definition ItemTransferAmount.h:5
Definition SlotData.h:5