lyra_game_ue/Source/LyraGame/System/LyraReplicationGraphSettings.h
Goran Lazarevski 3bcab085f8 Initial commit
2025-03-20 11:06:26 +01:00

66 lines
2.9 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreTypes.h"
#include "Engine/DeveloperSettingsBackedByCVars.h"
#include "LyraReplicationGraphTypes.h"
#include "LyraReplicationGraphSettings.generated.h"
/**
* Default settings for the Lyra replication graph
*/
UCLASS(config=Game, MinimalAPI)
class ULyraReplicationGraphSettings : public UDeveloperSettingsBackedByCVars
{
GENERATED_BODY()
public:
ULyraReplicationGraphSettings();
public:
UPROPERTY(config, EditAnywhere, Category = ReplicationGraph)
bool bDisableReplicationGraph = true;
UPROPERTY(config, EditAnywhere, Category = ReplicationGraph, meta = (MetaClass = "/Script/LyraGame.LyraReplicationGraph"))
FSoftClassPath DefaultReplicationGraphClass;
UPROPERTY(EditAnywhere, Category = FastSharedPath, meta = (ConsoleVariable = "Lyra.RepGraph.EnableFastSharedPath"))
bool bEnableFastSharedPath = true;
// How much bandwidth to use for FastShared movement updates. This is counted independently of the NetDriver's target bandwidth.
UPROPERTY(EditAnywhere, Category = FastSharedPath, meta = (ForceUnits=Kilobytes, ConsoleVariable = "Lyra.RepGraph.TargetKBytesSecFastSharedPath"))
int32 TargetKBytesSecFastSharedPath = 10;
UPROPERTY(EditAnywhere, Category = FastSharedPath, meta = (ConsoleVariable = "Lyra.RepGraph.FastSharedPathCullDistPct"))
float FastSharedPathCullDistPct = 0.80f;
UPROPERTY(EditAnywhere, Category = DestructionInfo, meta = (ForceUnits = cm, ConsoleVariable = "Lyra.RepGraph.DestructInfo.MaxDist"))
float DestructionInfoMaxDist = 30000.f;
UPROPERTY(EditAnywhere, Category=SpatialGrid, meta=(ForceUnits=cm, ConsoleVariable = "Lyra.RepGraph.CellSize"))
float SpatialGridCellSize = 10000.0f;
// Essentially "Min X" for replication. This is just an initial value. The system will reset itself if actors appears outside of this.
UPROPERTY(EditAnywhere, Category=SpatialGrid, meta=(ForceUnits=cm, ConsoleVariable = "Lyra.RepGraph.SpatialBiasX"))
float SpatialBiasX = -200000.0f;
// Essentially "Min Y" for replication. This is just an initial value. The system will reset itself if actors appears outside of this.
UPROPERTY(EditAnywhere, Category=SpatialGrid, meta=(ForceUnits=cm, ConsoleVariable = "Lyra.RepGraph.SpatialBiasY"))
float SpatialBiasY = -200000.0f;
UPROPERTY(EditAnywhere, Category=SpatialGrid, meta = (ConsoleVariable = "Lyra.RepGraph.DisableSpatialRebuilds"))
bool bDisableSpatialRebuilds = true;
// How many buckets to spread dynamic, spatialized actors across.
// High number = more buckets = smaller effective replication frequency.
// This happens before individual actors do their own NetUpdateFrequency check.
UPROPERTY(EditAnywhere, Category = DynamicSpatialFrequency, meta = (ConsoleVariable = "Lyra.RepGraph.DynamicActorFrequencyBuckets"))
int32 DynamicActorFrequencyBuckets = 3;
// Array of Custom Settings for Specific Classes
UPROPERTY(config, EditAnywhere, Category = ReplicationGraph)
TArray<FRepGraphActorClassSettings> ClassSettings;
};