LeviLamina
Loading...
Searching...
No Matches
ResourcePackStack.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/resource/PackType.h"
7#include "mc/deps/core/utility/NonOwnerPointer.h"
8#include "mc/platform/brstd/function_ref.h"
9
10// auto generated forward declare list
11// clang-format off
12class ContentIdentity;
14class ContentTierInfo;
17class PackInstance;
21struct PackIdVersion;
22struct PackInstanceId;
23// clang-format on
24
25class ResourcePackStack {
26public:
27 // ResourcePackStack inner types define
28 using PackInstanceStack = ::std::vector<::PackInstance>;
29
30public:
31 // member variables
32 // NOLINTBEGIN
33 ::ll::TypedStorage<8, 24, ::std::vector<::PackInstance>> mStack;
34 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PackSourceReport>> mPackSourceReport;
35 // NOLINTEND
36
37public:
38 // prevent constructor by default
39 ResourcePackStack();
40
41public:
42 // virtual functions
43 // NOLINTBEGIN
44 virtual ~ResourcePackStack();
45
46 virtual ::std::vector<::LoadedResourceData> loadAllVersionsOf(::ResourceLocation const& resourceLocation) const;
47
48 virtual bool
49 loadAllVersionsOf(::ResourceLocation const& resourceLocation, ::ResourcePackMergeStrategy& mergeStrategy) const;
50
51 virtual bool loadAllVersionsOf(
52 ::ResourceLocation const& resourceLocation,
53 ::brstd::function_ref<bool(::PackInstance const&)> packInstanceFilter,
54 ::ResourcePackMergeStrategy& mergeStrategy
55 ) const;
56 // NOLINTEND
57
58public:
59 // member functions
60 // NOLINTBEGIN
61 MCAPI ResourcePackStack(
62 ::std::vector<::PackInstanceId> const& identities,
63 ::Bedrock::NotNullNonOwnerPtr<::IResourcePackRepository const> const& repo,
64 bool anyVersion
65 );
66
67 MCAPI void _setLoadingReport(::Bedrock::NotNullNonOwnerPtr<::IResourcePackRepository const> const& repo);
68
69 MCAPI void
70 add(::PackInstance packInstance,
71 ::Bedrock::NotNullNonOwnerPtr<::IResourcePackRepository const> const& repo,
72 bool isDependent);
73
74 MCAPI_C ::ContentTierIncompatibleReason canSupportPacks(::ContentTierInfo const& contentInfoTier) const;
75
76 MCAPI ::std::vector<::std::string> getPackTelemetryNamesWithVersion(::PackType type) const;
77
78 MCAPI ::std::vector<::PackInstance> getPacksWhereAssetExtractionNotViable(
79 ::std::function<::std::string(::ContentIdentity const&)> getContentKey,
80 ::std::string const& sourceContext
81 ) const;
82
83 MCAPI void getSplitStacks(::ResourcePackStack& clientStack, ::ResourcePackStack& serverStack) const;
84
85 MCAPI_C ::std::vector<::PackInstanceId> getStackAsIdentities() const;
86
87 MCAPI bool hasCapabilityInStack(::std::string_view capability) const;
88
89 MCAPI bool hasPlatformLockedContent() const;
90
91 MCAPI_C bool isOnStack(::PackIdVersion const& packIdentity) const;
92
93 MCAPI void removeDuplicates();
94
95 MCAPI bool removeIf(::std::function<bool(::PackInstance const&)> const& callback);
96
97 MCAPI void removeInvalidPacks();
98
99 MCAPI_C void serialize(::std::ostream& fileStream) const;
100
101 MCAPI_C bool supportsVibrantVisuals() const;
102 // NOLINTEND
103
104public:
105 // static functions
106 // NOLINTBEGIN
107 MCAPI static void _populateDependencies(
108 ::std::vector<::PackInstance>& packStack,
109 ::PackInstance& packInstance,
110 ::Bedrock::NotNullNonOwnerPtr<::IResourcePackRepository const> const& repo,
111 bool isDependent
112 );
113
114 MCAPI static ::std::unique_ptr<::ResourcePackStack> deserialize(
115 ::std::istream& fileStream,
116 ::Bedrock::NotNullNonOwnerPtr<::IResourcePackRepository const> const& repo,
117 ::std::optional<::std::string> levelId
118 );
119
120 MCAPI_C static ::std::unique_ptr<::ResourcePackStack> deserialize(
121 ::std::vector<::PackInstanceId> const& ids,
122 ::Bedrock::NotNullNonOwnerPtr<::IResourcePackRepository const> const& repo,
123 ::std::optional<::std::string> levelId
124 );
125 // NOLINTEND
126
127public:
128 // constructor thunks
129 // NOLINTBEGIN
130 MCAPI_C void* $ctor(
131 ::std::vector<::PackInstance> const& packs,
132 ::Bedrock::NotNullNonOwnerPtr<::IResourcePackRepository const> const& repo
133 );
134
135 MCAPI void* $ctor(
136 ::std::vector<::PackInstanceId> const& identities,
137 ::Bedrock::NotNullNonOwnerPtr<::IResourcePackRepository const> const& repo,
138 bool anyVersion
139 );
140 // NOLINTEND
141
142public:
143 // destructor thunk
144 // NOLINTBEGIN
145 MCAPI void $dtor();
146 // NOLINTEND
147
148public:
149 // virtual function thunks
150 // NOLINTBEGIN
151 MCAPI ::std::vector<::LoadedResourceData> $loadAllVersionsOf(::ResourceLocation const& resourceLocation) const;
152
153 MCAPI bool
154 $loadAllVersionsOf(::ResourceLocation const& resourceLocation, ::ResourcePackMergeStrategy& mergeStrategy) const;
155
156 MCAPI bool $loadAllVersionsOf(
157 ::ResourceLocation const& resourceLocation,
158 ::brstd::function_ref<bool(::PackInstance const&)> packInstanceFilter,
159 ::ResourcePackMergeStrategy& mergeStrategy
160 ) const;
161
162
163 // NOLINTEND
164
165public:
166 // vftables
167 // NOLINTBEGIN
168 MCNAPI static void** $vftable();
169 // NOLINTEND
170};
Definition ContentIdentity.h:8
Definition ContentTierIncompatibleReason.h:5
Definition ContentTierInfo.h:5
Definition IResourcePackRepository.h:34
Definition LoadedResourceData.h:5
Definition PackInstance.h:16
Definition PackSourceReport.h:11
Definition ResourceLocation.h:15
Definition ResourcePackMergeStrategy.h:10
static MCAPI void ** $vftable()
Definition function_ref.h:60
Definition PackIdVersion.h:10
Definition PackInstanceId.h:8