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, 120, ::cereal::ReflectionCtx> mReflectionCtx;
66 void(
::mce::UUID const&, ::std::string
const&, ::std::variant<float, bool, ::std::string>
const&),
70 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::std::unordered_map<::mce::UUID, ::std::unique_ptr<::PackSettings>>>>
75 ::std::unordered_map<::std::string, ::std::unordered_map<::mce::UUID, ::std::unique_ptr<::PackSettings>>>>
77 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::SharedTypes::v1_21_100::PackSettingsDefinition::Document>>
83 unordered_map<::std::string, ::std::unique_ptr<::SharedTypes::v1_21_100::PackSettingsDefinition::Document>>>
84 mPerWorldUserOverrides;
89 PackSettingsFactory();
94 virtual ~PackSettingsFactory();
96 virtual uint64 getAccessTimestamp()
const;
103 PackSettingsFactory(uint64 maxGlobalPackSettingEntriesPerFile, ::std::optional<::Core::PathView> globalPathRoot);
105 MCAPI ::PackSettings* _getGlobalPackSettings(
::PackManifest const& manifest);
107 MCAPI ::std::unordered_map<::mce::UUID, ::std::unique_ptr<::PackSettings>>&
108 _getWorldIdToPackSettingsMap(::std::string
const& worldId);
110 MCAPI ::PackSettings* _getWorldPackSettings(
::PackManifest const& manifest, ::std::optional<::std::string> worldId);
112 MCAPI ::std::unique_ptr<::SharedTypes::v1_21_100::PackSettingsDefinition::Document>
113 _loadUserOverridesFromFile(
::Core::Path const& path)
const;
115 MCAPI_C
bool _saveUserOverridesToFile(
120 MCAPI_C
void _syncPackSettingsToSaveDoc(
124 bool includeTimestamp
127 MCAPI ::PackSettings* getPackSettings(
::PackManifest const& manifest, ::std::optional<::std::string> worldId);
129 MCAPI
bool loadPerWorldUserOverrides(::std::string
const& worldId,
::Core::Path const& worldPath);
131 MCAPI_C ::Bedrock::PubSub::Subscription registerObserver(
133 void(
::mce::UUID const&, ::std::string
const&, ::std::variant<float, bool, ::std::string>
const&)> callback
136 MCAPI_C
bool saveGlobalUserOverrides();
138 MCAPI_C
bool savePerWorldUserOverrides(::std::string
const& worldId,
::Core::Path const& worldPath);
140 MCAPI_C ::std::string serializePackSettingsNameValueMap(
141 ::std::unordered_map<::std::string, ::PackSettingValueAndDefault>
const& packSettingsNameValueMap
148 MCAPI static ::std::string_view
const& GLOBAL_RESOURCE_PACK_SETTINGS_FILENAME();
150 MCAPI static ::std::string_view
const& WORLD_BEHAVIOR_PACK_SETTINGS_FILENAME();
156 MCAPI
void* $ctor(uint64 maxGlobalPackSettingEntriesPerFile, ::std::optional<::Core::PathView> globalPathRoot);
168 MCAPI uint64 $getAccessTimestamp()
const;