Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
ElementConstructorContainerManagerController.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/controllers/ItemTakeType.h"
8#include "mc/world/containers/managers/controllers/ContainerManagerController.h"
9#include "mc/world/item/ItemInstance.h"
10
11// auto generated forward declare list
12// clang-format off
15class ItemStack;
16class ItemStackBase;
17struct AutoPlaceItem;
18struct AutoPlaceResult;
21// clang-format on
22
23class ElementConstructorContainerManagerController : public ::ContainerManagerController {
24public:
25 // member variables
26 // NOLINTBEGIN
27 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::ElementConstructorContainerManagerModel>> mModel;
28 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::CraftableElements>> mElements;
29 ::ll::TypedStorage<8, 64, ::std::function<void(int, int, int)>> mSetParticles;
30 ::ll::TypedStorage<8, 40, ::SlotData const> mCreatedItemOutputSlot;
31 ::ll::TypedStorage<8, 128, ::ItemInstance> mResultItemPreview;
32 // NOLINTEND
33
34#ifdef LL_PLAT_S
35#else // LL_PLAT_C
36public:
37 // prevent constructor by default
38 ElementConstructorContainerManagerController();
39
40#endif
41public:
42 // virtual functions
43 // NOLINTBEGIN
44 virtual ~ElementConstructorContainerManagerController() /*override*/ = default;
45
46 virtual ::ItemStackBase const& getTakeableItemStackBase(::SlotData const& slot) const /*override*/;
47
48 virtual bool handleTakeAll(::SlotData const& dstSlot, ::SlotData const& srcSlot) /*override*/;
49
50 virtual bool handleTakeHalf(::SlotData const& dstSlot, ::SlotData const& srcSlot) /*override*/;
51
52 virtual int handleAutoPlace(
53 ::SlotData const& srcSlot,
54 int amount,
55 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
56 ::std::vector<::AutoPlaceResult>& destinations
57 ) /*override*/;
58
59 virtual bool
60 handleAddToStack(::SlotData const& dstSlot, ::SlotData const& srcSlot, ::ItemTakeType type) /*override*/;
61
62 virtual void _onItemAcquired(::ItemInstance const& stack, ::SlotData const& srcSlot) /*override*/;
63
64 virtual bool isOutputSlot(::std::string const& collectionName) const /*override*/;
65
66 virtual ::CreateContainerItemScope
67 _makeCreateItemScope(::SlotData const& srcSlot, ::ItemTransferAmount const& amount) /*override*/;
68 // NOLINTEND
69
70public:
71 // member functions
72 // NOLINTBEGIN
73#ifdef LL_PLAT_C
74 MCNAPI explicit ElementConstructorContainerManagerController(
75 ::std::weak_ptr<::ElementConstructorContainerManagerModel> containerManagerModel
76 );
77
78 MCNAPI bool _handleOutputSwap(::SlotData const& src, ::SlotData const& dest, ::ItemTransferAmount amount);
79
80 MCNAPI bool _updateOutputPreview(::ItemStack const& stack);
81
82 MCNAPI void updateOutput(int protons, int electrons, int neutrons);
83
84 MCNAPI void updateOutputFromSlot(::SlotData const& src);
85#endif
86 // NOLINTEND
87
88public:
89 // constructor thunks
90 // NOLINTBEGIN
91#ifdef LL_PLAT_C
92 MCNAPI void* $ctor(::std::weak_ptr<::ElementConstructorContainerManagerModel> containerManagerModel);
93#endif
94 // NOLINTEND
95
96public:
97 // virtual function thunks
98 // NOLINTBEGIN
99#ifdef LL_PLAT_C
100 MCNAPI ::ItemStackBase const& $getTakeableItemStackBase(::SlotData const& slot) const;
101
102 MCNAPI bool $handleTakeAll(::SlotData const& dstSlot, ::SlotData const& srcSlot);
103
104 MCNAPI bool $handleTakeHalf(::SlotData const& dstSlot, ::SlotData const& srcSlot);
105
106 MCNAPI int $handleAutoPlace(
107 ::SlotData const& srcSlot,
108 int amount,
109 ::std::vector<::AutoPlaceItem> const& autoPlaceOrder,
110 ::std::vector<::AutoPlaceResult>& destinations
111 );
112
113 MCNAPI bool $handleAddToStack(::SlotData const& dstSlot, ::SlotData const& srcSlot, ::ItemTakeType type);
114
115 MCNAPI void $_onItemAcquired(::ItemInstance const& stack, ::SlotData const& srcSlot);
116
117 MCNAPI bool $isOutputSlot(::std::string const& collectionName) const;
118
119 MCNAPI ::CreateContainerItemScope
120 $_makeCreateItemScope(::SlotData const& srcSlot, ::ItemTransferAmount const& amount);
121#endif
122
123
124 // NOLINTEND
125};
Definition CraftableElements.h:8
Definition ElementConstructorContainerManagerModel.h:15
Definition ItemInstance.h:15
Definition ItemStackBase.h:45
Definition ItemStack.h:26
Definition AutoPlaceItem.h:5
Definition AutoPlaceResult.h:5
Definition CreateContainerItemScope.h:18
Definition ItemTransferAmount.h:5
Definition SlotData.h:5