Live Config
Loading...
Searching...
No Matches
LiveConfigProfile.h
1// Copyright (c) 2026 Nicholas Arthur
2// Licensed under the MIT License
3
4#pragma once
5
6#include "CoreMinimal.h"
7#include "LiveConfigPropertyName.h"
8#include "LiveConfigProfile.generated.h"
9
10USTRUCT(BlueprintType)
12{
13 GENERATED_BODY()
14
15 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Live Config")
16 FLiveConfigProperty Property;
17
18 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Live Config")
19 FString Value;
20};
21
22USTRUCT(BlueprintType)
24{
25 GENERATED_BODY()
26
27 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Live Config")
28 FName ProfileName;
29
30 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Live Config", NotReplicated, SkipSerialization)
31 TMap<FLiveConfigProperty, FString> Overrides;
32
33 bool IsValid() const { return ProfileName != NAME_None; }
34
39 void Redirect();
40
41 // May be able to handle this behavior via a net serializer rather than forcing us to do a pre/post call
42 void PrepareForReplication()
43 {
44 ReplicatedOverrides.Empty();
45 for (const auto& Pair : Overrides)
46 {
47 ReplicatedOverrides.Add({Pair.Key, Pair.Value});
48 }
49 }
50
51 void OnAfterReplication()
52 {
53 Overrides.Empty();
54 for (const auto& Override : ReplicatedOverrides)
55 {
56 Overrides.Add(Override.Property, Override.Value);
57 }
58 }
59
60 bool operator==(const FLiveConfigProfile& OtherProfile) const;
61 bool operator!=(const FLiveConfigProfile& OtherProfile) const;
62
63private:
65 UPROPERTY(meta = (SkipSerialization))
66 TArray<FLiveConfigOverride> ReplicatedOverrides;
67
68};
Definition LiveConfigProfile.h:12
Definition LiveConfigProfile.h:24
Definition LiveConfigPropertyName.h:14