23class PackSettingsFactory {
43 Stats& operator=(Stats
const&);
48 using PackIdToSettingsMap = ::std::unordered_map<::mce::UUID, ::std::unique_ptr<::PackSettings>>;
53 ::ll::TypedStorage<8, 8, uint64 const> mMaxGlobalPackSettingEntriesPerFile;
54 ::ll::TypedStorage<8, 32, ::Core::PathBuffer<::std::string>> mGlobalPackSettingsPath;
55 ::ll::TypedStorage<4, 16, ::PackSettingsFactory::Stats> mStats;
56 ::ll::TypedStorage<8, 128, ::cereal::ReflectionCtx> mReflectionCtx;
74 ::std::variant<
float,
bool, ::std::string, ::std::vector<::std::string>>
const&
82 ::std::unique_ptr<::std::unordered_map<
84 ::std::unique_ptr<::PackSettings, ::std::default_delete<::PackSettings>>>>>
89 ::std::unordered_map<::std::string, ::std::unordered_map<::mce::UUID, ::std::unique_ptr<::PackSettings>>>>
91 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::SharedTypes::v1_26_40::PackSettingsDefinition::Document>>
97 unordered_map<::std::string, ::std::unique_ptr<::SharedTypes::v1_26_40::PackSettingsDefinition::Document>>>
98 mPerWorldUserOverrides;
103 PackSettingsFactory();
108 virtual ~PackSettingsFactory() =
default;
110 virtual uint64 getAccessTimestamp()
const;
117 PackSettingsFactory(uint64 maxGlobalPackSettingEntriesPerFile, ::std::optional<::Core::PathView> globalPathRoot);
119 MCAPI ::PackSettings* _getGlobalPackSettings(
::PackManifest const& manifest);
121 MCAPI ::PackSettings* _getWorldPackSettings(
::PackManifest const& manifest, ::std::optional<::std::string> worldId);
123 MCAPI ::std::unique_ptr<::SharedTypes::v1_26_40::PackSettingsDefinition::Document>
124 _loadUserOverridesFromFile(
::Core::Path const& path)
const;
127 MCAPI
bool _saveUserOverridesToFile(
132 MCAPI
void _syncPackSettingsToSaveDoc(
136 bool includeTimestamp
140 MCAPI ::PackSettings* getPackSettings(
::PackManifest const& manifest, ::std::optional<::std::string> worldId);
142 MCAPI
bool loadPerWorldUserOverrides(::std::string
const& worldId,
::Core::Path const& worldPath);
145 MCAPI
bool saveGlobalUserOverrides();
147 MCAPI
bool savePerWorldUserOverrides(::std::string
const& worldId,
::Core::Path const& worldPath);
149 MCAPI ::std::string serializePackSettingsNameValueMap(
150 ::std::unordered_map<::std::string, ::PackSettingValueAndDefault>
const& packSettingsNameValueMap
158 MCAPI static ::brstd::basic_cstring_view<char, ::std::char_traits<char>>
const&
159 GLOBAL_RESOURCE_PACK_SETTINGS_FILENAME();
161 MCAPI static ::brstd::basic_cstring_view<char, ::std::char_traits<char>>
const&
162 WORLD_BEHAVIOR_PACK_SETTINGS_FILENAME();
168 MCAPI
void* $ctor(uint64 maxGlobalPackSettingEntriesPerFile, ::std::optional<::Core::PathView> globalPathRoot);
174 MCFOLD uint64 $getAccessTimestamp()
const;