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