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