LeviLamina
Loading...
Searching...
No Matches
CraftingContainerManagerModel.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/ContainerID.h"
7#include "mc/world/containers/ContainerEnumName.h"
8#include "mc/world/containers/managers/models/ContainerManagerModel.h"
9#include "mc/world/containers/models/FilterResult.h"
10#include "mc/world/containers/models/TextSearchMode.h"
11#include "mc/world/item/ItemInstance.h"
12#include "mc/world/item/crafting/RecipeIngredientSet.h"
13#include "mc/world/level/BlockPos.h"
14
15// auto generated forward declare list
16// clang-format off
17class ContainerModel;
21class ItemStack;
22class Player;
23// clang-format on
24
25class CraftingContainerManagerModel : public ::ContainerManagerModel {
26public:
27 // CraftingContainerManagerModel inner types define
28 using FilterFunction = ::std::function<::FilterResult(::ItemInstance const&, bool)>;
29
30public:
31 // member variables
32 // NOLINTBEGIN
33 ::ll::TypedStorage<4, 12, ::BlockPos> mBlockPos;
34 ::ll::TypedStorage<1, 1, bool> mWorkbench;
35 ::ll::TypedStorage<1, 1, bool> mPocket;
36 ::ll::TypedStorage<1, 1, bool> mCraftableFilterOn;
37 ::ll::TypedStorage<8, 32, ::std::string> mSearchString;
38 ::ll::TypedStorage<8, 32, ::std::string> mCaseFoldedSearchString;
39 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::ContainerModel>> mInventoryContainerModel;
40 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::ContainerModel>> mCraftingInputContainerModel;
41 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::ContainerModel>> mHotbarContainerModel;
42 ::ll::TypedStorage<8, 64, ::RecipeIngredientSet> mIngredientSet;
43 ::ll::TypedStorage<8, 128, ::ItemInstance> mLastCraftedItem;
44 ::ll::TypedStorage<4, 4, int> mContainerPopulationTabIndex;
45 ::ll::TypedStorage<8, 8, uint64> mContainerPopulationGroupIndex;
46 ::ll::TypedStorage<8, 8, uint64> mContainerPopulationGroupItemIndex;
47 ::ll::TypedStorage<8, 8, uint64> mContainerPopulationItemIndex;
48 ::ll::TypedStorage<8, 8, uint64> mContainerPopulationTotalItemCount;
49 // NOLINTEND
50
51#ifdef LL_PLAT_S
52#else // LL_PLAT_C
53public:
54 // prevent constructor by default
55 CraftingContainerManagerModel();
56
57#endif
58public:
59 // virtual functions
60 // NOLINTBEGIN
61#ifdef LL_PLAT_S
62 virtual ~CraftingContainerManagerModel() /*override*/ = default;
63#else // LL_PLAT_C
64 virtual ~CraftingContainerManagerModel() /*override*/;
65#endif
66
67 virtual ::std::vector<::ItemStack> getItemCopies() const /*override*/;
68
69 virtual void setSlot(int, ::ItemStack const&, bool) /*override*/;
70
71 virtual ::ItemStack const& getSlot(int) const /*override*/;
72
73 virtual void setData(int, int) /*override*/;
74
75 virtual void broadcastChanges() /*override*/;
76
77#ifdef LL_PLAT_S
78 virtual bool isValid(float) /*override*/;
79#else // LL_PLAT_C
80 virtual bool isValid(float pickRange) /*override*/;
81#endif
82
83 virtual bool tick() /*override*/;
84
85 virtual ::ContainerScreenContext _postInit() /*override*/;
86 // NOLINTEND
87
88public:
89 // member functions
90 // NOLINTBEGIN
91#ifdef LL_PLAT_C
92 MCAPI CraftingContainerManagerModel(
93 ::ContainerID containerId,
94 ::Player& player,
95 bool workbench,
96 bool pocket,
97 bool craftableFilterOn,
98 ::BlockPos const& pos,
99 ::std::string const& inventorySearch
100 );
101
102 MCAPI ::std::shared_ptr<::FilteredContainerModel> _createContainerModel(
103 ::ContainerEnumName containerEnumName,
104 ::CreativeItemGroupCategory* const category,
105 bool doExpando,
106 ::std::function<::FilterResult(::ItemInstance const&, bool)> rule
107 );
108
109 MCAPI ::std::shared_ptr<::FilteredContainerModel> _createContainerModel(
110 ::ContainerEnumName containerEnumName,
111 ::std::vector<::ItemInstance> const& itemInstanceVector,
112 bool doExpando,
113 ::std::function<::FilterResult(::ItemInstance const&, bool)> rule
114 );
115
116 MCAPI ::FilterResult _filterByInventory(::ItemInstance const& item, bool includeCursorItem) const;
117
118 MCAPI ::FilterResult _filterByText(::ItemInstance const& item, ::TextSearchMode searchMode) const;
119
120 MCAPI bool _foundInStartOfAnyWord(::std::string const& itemName) const;
121
122 MCAPI bool _hasUnlockedRecipes(::ItemInstance const& item) const;
123
124 MCAPI bool _populateContainers(uint64& count);
125
126 MCFOLD void fireItemAcquiredEvent(::ItemInstance const& itemInstance, int count);
127
128 MCAPI ::std::vector<::std::string> const getCraftingTags() const;
129
130 MCAPI bool hasIngredientSetChanged(::ItemStack const& inHand);
131
132 MCAPI void setIsFiltering(bool craftableFilterOn);
133
134 MCAPI void setSearchString(::std::string const& searchString);
135#endif
136 // NOLINTEND
137
138public:
139 // constructor thunks
140 // NOLINTBEGIN
141#ifdef LL_PLAT_C
142 MCAPI void* $ctor(
143 ::ContainerID containerId,
144 ::Player& player,
145 bool workbench,
146 bool pocket,
147 bool craftableFilterOn,
148 ::BlockPos const& pos,
149 ::std::string const& inventorySearch
150 );
151#endif
152 // NOLINTEND
153
154public:
155 // destructor thunk
156 // NOLINTBEGIN
157 MCAPI void $dtor();
158 // NOLINTEND
159
160public:
161 // virtual function thunks
162 // NOLINTBEGIN
163#ifdef LL_PLAT_C
164 MCFOLD ::std::vector<::ItemStack> $getItemCopies() const;
165
166 MCFOLD void $setSlot(int, ::ItemStack const&, bool);
167
168 MCFOLD ::ItemStack const& $getSlot(int) const;
169
170 MCFOLD void $setData(int, int);
171
172 MCFOLD void $broadcastChanges();
173
174 MCAPI bool $isValid(float pickRange);
175
176 MCAPI bool $tick();
177
178 MCAPI ::ContainerScreenContext $_postInit();
179#endif
180
181
182 // NOLINTEND
183
184public:
185 // vftables
186 // NOLINTBEGIN
187 MCNAPI static void** $vftable();
188 // NOLINTEND
189};
Definition BlockPos.h:21
Definition ContainerModel.h:28
Definition ContainerScreenContext.h:19
static MCAPI void ** $vftable()
Definition CreativeItemGroupCategory.h:17
Definition FilteredContainerModel.h:19
Definition ItemInstance.h:15
Definition ItemStack.h:35
Definition Player.h:137