17DECLARE_MULTICAST_DELEGATE_OneParam(FOnRemoteSyncDetected,
const TArray<FLiveConfigPropertyDefinition>&);
34 FOnLiveConfigPropertiesUpdated OnPropertiesUpdated;
36 FSimpleMulticastDelegate OnTagsChanged;
54 virtual void Initialize(FSubsystemCollectionBase& Collection)
override;
55 virtual void Deinitialize()
override;
56 virtual bool ShouldCreateSubsystem(UObject* Outer)
const override;
111 UScriptStruct* Struct = TBaseStructure<T>::Get();
114 Struct = T::StaticStruct();
116 GetLiveConfigStruct_Internal(Struct, &OutStruct, StructProperty);
127 RedirectPropertyName(Property);
128 return Cache.GetValue<T>(Property);
131 void GetLiveConfigStruct_Internal(
class UScriptStruct* Struct,
void* OutStructPtr,
FLiveConfigProperty Prefix)
const;
133 void GetStructPropertyMembers(
FLiveConfigProperty StructProperty, TArray<FLiveConfigProperty>& OutProperties);
140 void GetSubProperties(FName PropertyPath, TArray<FLiveConfigProperty>& OutProperties);
143 UFUNCTION(BlueprintCallable, Category =
"Live Config")
144 bool IsDataReady()
const {
return bIsDataReady; }
149 UFUNCTION(BlueprintCallable, Category =
"Live Config")
156 void SyncRemoteToLocal();
177 void DownloadConfig();
180 void RebuildConfigCache();
184 UFUNCTION(BlueprintCallable, Category = "Live Config")
195 static
void GetActiveSource(ELiveConfigSourceType& OutSourceType, FString& OutSourcePath);
201 void RemoveRedirect(FName OldPropertyName);
203 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "General")
206 UPROPERTY(Config, VisibleAnywhere, BlueprintReadOnly, Category = "General")
207 TArray<FName> PropertyTags;
209 void HandleTagsChanged();
213 TMap<FName, FName> PropertyRedirects;
217 double TimeLoadStarted = -9999;
218 float RateLimitSeconds = 5;
219 FTimerHandle PollingTimer;
220 FTSTicker::FDelegateHandle TimeoutTimer;
228 float TimeoutDuration;
230 void OnTravel(UWorld* World, FWorldInitializationValues WorldInitializationValues);
231 void OnStartGameInstance(UGameInstance* GameInstance);
239 void PopulateAutoCompleteEntries(TArray<FAutoCompleteCommand>& AutoCompleteCommands);
247 void FetchOverrides(ELiveConfigSourceType SourceType, const FString& SourcePath, const FOnRemoteOverridesFetched& OnComplete);
250 void FetchProfileCommand(const TArray<FString>& Args);
253 bool bIsDataReady = false;