LeviLamina
Loading...
Searching...
No Matches
PackAccessStrategy.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/file/PathBuffer.h"
7#include "mc/deps/core/string/BasicStackString.h"
8#include "mc/resources/PackAccessAssetGenerationResult.h"
9#include "mc/resources/PackAccessStrategyType.h"
10
11// auto generated forward declare list
12// clang-format off
13class ContentIdentity;
15namespace Bedrock::Resources { class PreloadedPathHandle; }
16namespace Bedrock::Resources::Archive { class Reader; }
17namespace Core { class Path; }
18namespace Json { class Value; }
19// clang-format on
20
21class PackAccessStrategy {
22public:
23 // member variables
24 // NOLINTBEGIN
27 // NOLINTEND
28
29public:
30 // prevent constructor by default
31 PackAccessStrategy& operator=(PackAccessStrategy const&);
32 PackAccessStrategy(PackAccessStrategy const&);
33
34public:
35 // virtual functions
36 // NOLINTBEGIN
37 virtual ~PackAccessStrategy();
38
39 virtual uint64 getPackSize() const = 0;
40
41 virtual ::ResourceLocation const& getPackLocation() const = 0;
42
43 virtual ::std::string const& getPackName() const = 0;
44
45 virtual bool isWritable() const = 0;
46
47 virtual bool isTrusted() const = 0;
48
49 virtual bool hasAsset(::Core::Path const& packRelativePath, bool trustedContentOnly, bool caseSensative) const = 0;
50
51 virtual bool hasFolder(::Core::Path const& packRelativePath) const = 0;
52
53 virtual bool
54 getAsset(::Core::Path const& packRelativePath, ::std::string& result, bool trustedContentOnly) const = 0;
55
56 virtual void forEachIn(
57 ::Core::Path const& packRelativePath,
58 ::std::function<void(::Core::Path const&)> callback,
59 bool recurseAnyways
60 ) const = 0;
61
62 virtual void
63 forEachInAssetSet(::Core::Path const& packRelativePath, ::std::function<void(::Core::Path const&)> callback) const;
64
65 virtual ::PackAccessStrategyType getStrategyType() const = 0;
66
67 virtual ::Core::PathBuffer<::std::string> const& getSubPath() const;
68
69 virtual bool supportsSignatureVerification() const;
70
71 virtual ::std::unique_ptr<::PackAccessStrategy> createSubPack(::Core::Path const& subPath) const = 0;
72
73 virtual ::PackAccessAssetGenerationResult generateAssetSet();
74
75 virtual ::PackAccessAssetGenerationResult regenerateAssetSet();
76
77 virtual bool canRecurse() const;
78
79 virtual void unload() = 0;
80
81 virtual ::ContentIdentity readContentIdentity() const;
82
83 virtual bool isAssetExtractionViable() const;
84
85 virtual ::std::unique_ptr<::Bedrock::Resources::Archive::Reader>
86 _loadArchive(::Core::Path const& packRelativePath) const;
87
88 virtual ::std::vector<::Bedrock::Resources::PreloadedPathHandle>
89 _preloadSubFolders(::Core::Path const& packRelativePath) const;
90 // NOLINTEND
91
92public:
93 // member functions
94 // NOLINTBEGIN
96
97 MCNAPI void _forEachInAssetSet(::std::function<void(::Core::Path const&)> callback) const;
98
99 MCNAPI bool _isInAssetSet(::Core::Path const& path) const;
100
101 MCNAPI bool _isInAssetSetCaseInsensative(::Core::Path const& path) const;
102
104
105 MCNAPI ::Bedrock::Resources::PreloadedPathHandle preloadArchive(::Core::Path const& packRelativePath) const;
106
107 MCNAPI ::std::vector<::Bedrock::Resources::PreloadedPathHandle>
108 preloadPath(::Core::Path const& packRelativePath) const;
109 // NOLINTEND
110
111public:
112 // static variables
113 // NOLINTBEGIN
114 MCNAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>> const& ARCHIVE_EXTENSION();
115
116 MCNAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>> const& ARCHIVE_FOLDER();
117
118 MCNAPI static ::Core::PathBuffer<::std::string> const& PACK_IMPORT_LOCK_FILE();
119 // NOLINTEND
120
121public:
122 // constructor thunks
123 // NOLINTBEGIN
124 MCNAPI void* $ctor();
125 // NOLINTEND
126
127public:
128 // destructor thunk
129 // NOLINTBEGIN
130 MCNAPI void $dtor();
131 // NOLINTEND
132
133public:
134 // virtual function thunks
135 // NOLINTBEGIN
136 MCNAPI void
137 $forEachInAssetSet(::Core::Path const& packRelativePath, ::std::function<void(::Core::Path const&)> callback) const;
138
139 MCNAPI ::Core::PathBuffer<::std::string> const& $getSubPath() const;
140
142
143 MCNAPI ::PackAccessAssetGenerationResult $generateAssetSet();
144
145 MCNAPI ::PackAccessAssetGenerationResult $regenerateAssetSet();
146
147 MCNAPI bool $canRecurse() const;
148
149 MCNAPI ::ContentIdentity $readContentIdentity() const;
150
151 MCNAPI bool $isAssetExtractionViable() const;
152
153 MCNAPI ::std::unique_ptr<::Bedrock::Resources::Archive::Reader>
154 $_loadArchive(::Core::Path const& packRelativePath) const;
155
156 MCNAPI ::std::vector<::Bedrock::Resources::PreloadedPathHandle>
157 $_preloadSubFolders(::Core::Path const& packRelativePath) const;
158
159
160 // NOLINTEND
161
162public:
163 // vftables
164 // NOLINTBEGIN
165 MCNAPI static void** $vftable();
166 // NOLINTEND
167};
Definition PreloadedPathHandle.h:15
Definition ContentIdentity.h:8
Definition Path.h:17
Definition Value.h:16
MCAPI::Bedrock::Resources::PreloadedPathHandle preloadArchive(::Core::Path const &packRelativePath) const
MCAPI void $forEachInAssetSet(::Core::Path const &packRelativePath, ::std::function< void(::Core::Path const &)> callback) const
MCAPI ::std::vector<::Bedrock::Resources::PreloadedPathHandle > $_preloadSubFolders(::Core::Path const &packRelativePath) const
MCAPI::ContentIdentity $readContentIdentity() const
MCAPI bool $canRecurse() const
static MCAPI void ** $vftable()
static MCAPI ::Core::PathBuffer<::Core::BasicStackString< char, 1024 > > const & ARCHIVE_EXTENSION()
MCAPI void * $ctor()
MCAPI bool $isAssetExtractionViable() const
MCAPI ::Core::PathBuffer<::std::string > const & $getSubPath() const
MCAPI void $dtor()
MCAPI bool _isInAssetSet(::Core::Path const &path) const
MCAPI ::std::unique_ptr<::Bedrock::Resources::Archive::Reader > $_loadArchive(::Core::Path const &packRelativePath) const
MCAPI void _upgradeContentsFile(::Json::Value &root)
MCAPI bool $supportsSignatureVerification() const
MCAPI::PackAccessAssetGenerationResult $regenerateAssetSet()
MCAPI ::std::vector<::Bedrock::Resources::PreloadedPathHandle > preloadPath(::Core::Path const &packRelativePath) const
MCAPI void _forEachInAssetSet(::std::function< void(::Core::Path const &)> callback) const
MCAPI::PackAccessAssetGenerationResult $generateAssetSet()
static MCAPI ::Core::PathBuffer<::std::string > const & PACK_IMPORT_LOCK_FILE()
static MCAPI ::Core::PathBuffer<::Core::BasicStackString< char, 1024 > > const & ARCHIVE_FOLDER()
MCAPI PackAccessStrategy()
MCAPI bool _isInAssetSetCaseInsensative(::Core::Path const &path) const
Definition ResourceLocation.h:15
Definition Alias.h:14