24class PackSettingsFactory {
44 Stats& operator=(Stats
const&);
49 using PackIdToSettingsMap = ::std::unordered_map<::mce::UUID, ::std::unique_ptr<::PackSettings>>;
54 ::ll::TypedStorage<8, 8, uint64 const> mMaxGlobalPackSettingEntriesPerFile;
55 ::ll::TypedStorage<8, 32, ::Core::PathBuffer<::std::string>> mGlobalPackSettingsPath;
56 ::ll::TypedStorage<4, 16, ::PackSettingsFactory::Stats> mStats;
57 ::ll::TypedStorage<8, 128, ::cereal::ReflectionCtx> mReflectionCtx;
71 void(
::mce::UUID const&, ::std::string
const&, ::std::variant<float, bool, ::std::string>
const&),
78 ::std::unique_ptr<::std::unordered_map<
80 ::std::unique_ptr<::PackSettings, ::std::default_delete<::PackSettings>>>>>
85 ::std::unordered_map<::std::string, ::std::unordered_map<::mce::UUID, ::std::unique_ptr<::PackSettings>>>>
87 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::SharedTypes::v1_21_100::PackSettingsDefinition::Document>>
93 unordered_map<::std::string, ::std::unique_ptr<::SharedTypes::v1_21_100::PackSettingsDefinition::Document>>>
94 mPerWorldUserOverrides;
99 PackSettingsFactory();
104 virtual ~PackSettingsFactory();
106 virtual uint64 getAccessTimestamp()
const;
113 PackSettingsFactory(uint64 maxGlobalPackSettingEntriesPerFile, ::std::optional<::Core::PathView> globalPathRoot);
115 MCAPI ::PackSettings* _getGlobalPackSettings(
::PackManifest const& manifest);
117 MCAPI ::std::unordered_map<::mce::UUID, ::std::unique_ptr<::PackSettings>>&
118 _getWorldIdToPackSettingsMap(::std::string
const& worldId);
120 MCAPI ::PackSettings* _getWorldPackSettings(
::PackManifest const& manifest, ::std::optional<::std::string> worldId);
122 MCAPI ::std::unique_ptr<::SharedTypes::v1_21_100::PackSettingsDefinition::Document>
123 _loadUserOverridesFromFile(
::Core::Path const& path)
const;
126 MCAPI
bool _saveUserOverridesToFile(
131 MCAPI
void _syncPackSettingsToSaveDoc(
135 bool includeTimestamp
139 MCAPI ::PackSettings* getPackSettings(
::PackManifest const& manifest, ::std::optional<::std::string> worldId);
141 MCAPI
bool loadPerWorldUserOverrides(::std::string
const& worldId,
::Core::Path const& worldPath);
144 MCAPI ::Bedrock::PubSub::Subscription registerObserver(
146 void(
::mce::UUID const&, ::std::string
const&, ::std::variant<float, bool, ::std::string>
const&)> callback
149 MCAPI
bool saveGlobalUserOverrides();
151 MCAPI
bool savePerWorldUserOverrides(::std::string
const& worldId,
::Core::Path const& worldPath);
153 MCAPI ::std::string serializePackSettingsNameValueMap(
154 ::std::unordered_map<::std::string, ::PackSettingValueAndDefault>
const& packSettingsNameValueMap
162 MCAPI static ::brstd::basic_cstring_view<char, ::std::char_traits<char>>
const&
163 GLOBAL_RESOURCE_PACK_SETTINGS_FILENAME();
165 MCAPI static ::brstd::basic_cstring_view<char, ::std::char_traits<char>>
const&
166 WORLD_BEHAVIOR_PACK_SETTINGS_FILENAME();
172 MCAPI
void* $ctor(uint64 maxGlobalPackSettingEntriesPerFile, ::std::optional<::Core::PathView> globalPathRoot);
184 MCAPI uint64 $getAccessTimestamp()
const;