LeviLamina
Loading...
Searching...
No Matches
CreativeItemRegistry.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
7#include "mc/deps/shared_types/item/CreativeItemCategory.h"
8#include "mc/platform/brstd/flat_map.h"
9#include "mc/platform/brstd/function_ref.h"
10#include "mc/world/inventory/network/TypedServerNetId.h"
11
12// auto generated forward declare list
13// clang-format off
14class BlockPalette;
19class ItemInstance;
21// clang-format on
22
23class CreativeItemRegistry : public ::Bedrock::EnableNonOwnerReferences {
24public:
25 // member variables
26 // NOLINTBEGIN
27 ::ll::TypedStorage<8, 24, ::std::vector<::CreativeItemEntry>> mCreativeItems;
28 ::ll::TypedStorage<8, 24, ::std::vector<::CreativeGroupInfo>> mCreativeGroups;
29 ::ll::TypedStorage<8, 64, ::std::unordered_map<::SharedTypes::CreativeItemCategory, ::CreativeItemGroupCategory>>
30 mCreativeGroupCategories;
31 ::ll::TypedStorage<8, 64, ::std::unordered_map<::CreativeItemNetId, uint64>> mCreativeNetIdIndex;
32 // NOLINTEND
33
34public:
35 // virtual functions
36 // NOLINTBEGIN
37 virtual ~CreativeItemRegistry() /*override*/;
38 // NOLINTEND
39
40public:
41 // member functions
42 // NOLINTBEGIN
43 MCAPI CreativeItemRegistry();
44
45 MCAPI ::brstd::flat_map<
46 ::SharedTypes::CreativeItemCategory,
47 ::gsl::not_null<::CreativeItemGroupCategory*>,
48 ::std::less<::SharedTypes::CreativeItemCategory>,
49 ::std::vector<::SharedTypes::CreativeItemCategory>,
50 ::std::vector<::gsl::not_null<::CreativeItemGroupCategory*>>>
51 createCategories();
52
53 MCAPI ::CreativeItemEntry* findCreativeItemEntry(::ItemInstance const& instance);
54
55 MCAPI ::CreativeItemEntry* findCreativeItemEntry(::CreativeItemNetId const& netId);
56
57 MCAPI void forEachCreativeItemInstance(::brstd::function_ref<bool(::ItemInstance const&)> func) const;
58
59 MCAPI ::CreativeItemGroupCategory* getCreativeCategory(::SharedTypes::CreativeItemCategory category);
60
61#ifdef LL_PLAT_C
62 MCAPI ::CreativeGroupInfo* getCreativeGroup(uint index);
63#endif
64
65 MCFOLD ::std::vector<::CreativeGroupInfo> const& getCreativeGroups() const;
66
67 MCFOLD ::std::vector<::CreativeItemEntry> const& getCreativeItemEntries() const;
68
69 MCAPI ::CreativeItemEntry* getItemEntry(uint index);
70
71#ifdef LL_PLAT_C
72 MCAPI void initializeFromCreativeContentPacket(
73 ::CreativeContentPacket const& creativeContentPacket,
74 ::BlockPalette const& blockPalette
75 );
76#endif
77
78 MCAPI ::CreativeItemEntry* newItemEntry(::CreativeItemNetId const& creativeNetId, ::ItemInstance const& item);
79
80 MCAPI ::CreativeItemEntry* updateItemEntry(uint index, ::ItemInstance const& item);
81
82 MCAPI void updateNetIdMap();
83 // NOLINTEND
84
85public:
86 // constructor thunks
87 // NOLINTBEGIN
88 MCAPI void* $ctor();
89 // NOLINTEND
90
91public:
92 // destructor thunk
93 // NOLINTBEGIN
94 MCAPI void $dtor();
95 // NOLINTEND
96
97public:
98 // vftables
99 // NOLINTBEGIN
100 MCNAPI static void** $vftable();
101 // NOLINTEND
102};
Definition EnableNonOwnerReferences.h:7
Definition BlockPalette.h:21
Definition CreativeContentPacket.h:22
Definition CreativeGroupInfo.h:17
Definition CreativeItemEntry.h:17
Definition CreativeItemGroupCategory.h:17
static MCAPI void ** $vftable()
Definition ItemInstance.h:15
Definition function_ref.h:60
Definition CreativeItemNetIdTag.h:5