17#include "NetworkPhysicsComponent.generated.h"
19#ifndef DEBUG_NETWORK_PHYSICS_DELTASERIALIZATION
20#define DEBUG_NETWORK_PHYSICS_DELTASERIALIZATION 0
30template<
typename DataType,
bool bLegacyData = false>
227 FrameData.ServerFrame = FrameData.LocalFrame + FrameOffset;
270#if DEBUG_NETWORK_PHYSICS
271 UE_LOG(
LogChaos,
Log,
TEXT(
"SERVER | PT | Input Buffer Empty, Injecting Received Input at frame %d || LocalFrame = %d || ServerFrame = %d || bDataAltered = %d || Data: %s")
309 else if (!Data.bReceivedData && Data.LocalFrame ==
ReceivedData.LocalFrame)
312 if (Data.bDataAltered)
322 Data.bReceivedData =
true;
345 UE_DEPRECATED(5.6,
"Deprecated, use the NetSerialize call with parameter that takes a function DataSetupFunction, pass in nullptr to opt out of implementing a function.")
406 Data.ClearImplementationComponent();
407 Data.ClearDeltaSourceData();
431 InputFrames[FrameIndex] = FrameData.bDataAltered ? 1 : 0;
437 virtual void DebugData(
const FString& DebugText)
override
446 UE_LOG(
LogChaos,
Log,
TEXT(
" Index: %d || LocalFrame = %d || ServerFrame = %d || bDataAltered = %d || bReceivedData = %d || bImportant = %d || Data: %s")
461 static int32 GetMaxArraySize()
470 bool bOutSuccess =
false;
478 UE_LOG(
LogTemp,
Error,
TEXT(
"TNetRewindHistory::NetSerializeData called on data struct %s without a native NetSerialize"), *ScriptStruct->
GetName());
511 UE_DEPRECATED(5.6,
"Deprecated, use the NetSerializeBase call with parameter that takes a function GetDeltaSourceData, pass in nullptr to opt out of implementing a source for delta compression")
525 bool bDeltaSerializationIssue =
false;
733 ENGINE_API virtual void Deinitialize()
override;
784 virtual const FString
DebugData() {
return FString(
" - DebugData() not implemented - "); }
785 virtual const FString
DebugData()
const {
return FString(
" - DebugData() not implemented - "); }
788 bool bDataAltered =
false;
791 bool bReceivedData =
false;
794 bool bImportant =
false;
798 LocalFrame = CurrentFrame;
800 bDataAltered =
false;
801 bReceivedData =
false;
806 UE_DEPRECATED(5.7,
"Temporary virtual function for backwards compatibility with FNetworkPhysicsData. Use the InterpolateData function that passes the LerpAlpha instead")
842 if (DataArray.Num() >= 0)
844 for (
int32 FrameIndex = 0; FrameIndex < DataArray.Num(); ++FrameIndex)
851 UE_LOG(
LogChaos,
Log,
TEXT(
" Index: %d || LocalFrame = %d || ServerFrame = %d || bDataAltered = %d || bReceivedData = %d || bImportant = %d || Data: %s")
856 , Data->bReceivedData
858 , *Data->DebugData());
880template<
typename InputType,
typename StateType>
912template<
typename InputType,
typename StateType>
966#if WITH_EDITORONLY_DATA
968 UE_DEPRECATED(5.6,
"InputFrame is no longer replicated or used. Use bDataAltered to check if an input has been altered.")
1020 LocalFrame = ServerFrame;
1043 LocalFrame = ServerFrame;
1047 check((ServerFrame + 1) >= 0);
1102 virtual const FString
DebugData() {
return FString(
" - DebugData() not implemented - "); }
1106 return ServerFrame ==
Other.ServerFrame && LocalFrame ==
Other.LocalFrame;
1110 UE_DEPRECATED(5.7,
"Temporary virtual function for backwards compatibility with FNetworkPhysicsData. Use the InterpolateData function that passes the LerpAlpha instead")
1154template<
typename DataType,
bool bLegacyData = false>
1181 if (
ensure(To.DataArray.Num() > 0) ==
false)
1198 if (
ensure(To.DataArray.Num() > 0) ==
false)
1224 if (
ensure(To.DataArray.Num() > 0) ==
false)
1268 if (Data.LocalFrame > LatestValidatedInput_External)
1273 LatestValidatedInput_External = FMath::Max(LatestValidatedInput_External,
NetHistory->GetLatestFrame());
1285 if (Data.LocalFrame > LatestValidatedInput_Internal)
1290 LatestValidatedInput_Internal = FMath::Max(LatestValidatedInput_Internal,
NetHistory->GetLatestFrame());
1312 int32 LatestValidatedInput_External = 0;
1313 int32 LatestValidatedInput_Internal = 0;
1320UCLASS(BlueprintType, MinimalAPI)
1346 ENGINE_API virtual void BeginPlay()
override;
1349 ENGINE_API virtual void InitializeComponent()
override;
1379 ENGINE_API bool IsNetworkPhysicsTickOffsetAssigned()
const;
1394 if (bIsRelayingLocalInputs)
1396 bStopRelayingLocalInputsDeferred =
true;
1421 ENGINE_API void OnRep_SetReplicatedDeltaSourceInput();
1425 ENGINE_API void OnRep_SetReplicatedDeltaSourceState();
1474 ENGINE_API void OnRep_SetReplicatedRemoteInputs();
1500 ENGINE_API void OnRep_SetReplicatedInputCollection();
1504 ENGINE_API void OnRep_SetReplicatedRemoteInputCollection();
1508 ENGINE_API void OnRep_SetReplicatedStateCollection();
1525 void NetworkMarshaledData();
1528 void UpdateAsyncComponent(const
bool bFullUpdate);
1536 void SetNumberOfInputsToNetwork(const
uint16 NumInputs)
1538 InputsToNetwork_OwnerDefault = FMath::Max(NumInputs,
static_cast<uint16>(1));
1539 InputsToNetwork_Owner = InputsToNetwork_OwnerDefault;
1544 void SetNumberOfRemoteInputsToNetwork(
const uint16 NumInputs)
1546 InputsToNetwork_Simulated = FMath::Max(NumInputs,
static_cast<uint16>(1));
1550 void SetNumberOfStatesToNetwork(
const uint16 NumInputs)
1552 StatesToNetwork = FMath::Max(NumInputs,
static_cast<uint16>(1));
1556 void AddDeltaSourceInput();
1559 void AddDeltaSourceState();
1562 const int32 GetNextDeltaSourceInputIndex()
const {
return GetDeltaSourceIndexForFrame(LatestCachedDeltaSourceInputIndex + 1); }
1565 const int32 GetNextDeltaSourceStateIndex()
const {
return GetDeltaSourceIndexForFrame(LatestCachedDeltaSourceStateIndex + 1); }
1568 const bool IsValidNextDeltaSourceInput(
const int32 Frame)
const {
return GetDeltaSourceIndexForFrame(
Frame) == GetNextDeltaSourceInputIndex(); }
1571 const bool IsValidNextDeltaSourceState(
const int32 Frame)
const {
return GetDeltaSourceIndexForFrame(
Frame) == GetNextDeltaSourceStateIndex(); }
1585 static const int32 DeltaSourceBufferSize = 10;
1591 template<
typename PhysicsTraits>
1597 template<
class InputsType>
1601 template<
typename Input,
typename State>
1618 bool bIsUsingLegacyData =
false;
1643 uint16 InputsToNetwork_Owner = 3;
1646 uint16 InputsToNetwork_OwnerDefault = 3;
1649 uint16 InputsToNetwork_Simulated = 2;
1652 uint16 StatesToNetwork = 1;
1656 int32 LatestAcknowledgedDeltaSourceInputIndex = 0;
1657 int32 LatestCachedDeltaSourceInputIndex = 0;
1658 double TimeToSyncDeltaSourceInput = 0;
1662 int32 LatestAcknowledgedDeltaSourceStateIndex = 0;
1663 int32 LatestCachedDeltaSourceStateIndex = 0;
1664 double TimeToSyncDeltaSourceState = 0;
1675 bool bIsRelayingLocalInputs =
false;
1678 bool bStopRelayingLocalInputsDeferred =
false;
1681 bool bCompareStateToTriggerRewind =
false;
1682 bool bCompareStateToTriggerRewindIncludeSimProxies =
false;
1683 bool bCompareInputToTriggerRewind =
false;
1686 bool bEnableUnreliableFlow =
true;
1687 bool bEnableReliableFlow =
false;
1688 bool bValidateDataOnGameThread =
false;
1692#if WITH_EDITORONLY_DATA
1693 UE_DEPRECATED(5.6,
"Deprecated, use InputsToNetwork_Owner instead")
1695 UE_DEPRECATED(5.6, "Deprecated, use InputsToNetwork_Simulated
instead")
1700template<
typename Input,
typename State>
1703 bIsUsingLegacyData =
false;
1711 CreateAsyncDataHistory();
1714template<
typename PhysicsTraits>
1717 bIsUsingLegacyData =
true;
1755 CreateAsyncDataHistory();
1758template<
class InputsType>
1761 bIsUsingLegacyData =
true;
1787 CreateAsyncDataHistory();
1888 FAsyncNetworkPhysicsComponentInput,
1889 FAsyncNetworkPhysicsComponentOutput,
1890 Chaos::ESimCallbackOptions::PhysicsObjectUnregister>
1930 void OnInitialize_Internal();
1933 void OnUninitialize_Internal();
1938 void OnPreProcessInputs_Internal(
const int32 PhysicsStep);
1941 void OnPostProcessInputs_Internal(
const int32 PhysicsStep);
1944 void ConsumeAsyncInput(
const int32 PhysicsStep);
1956 void TriggerResimulation(
int32 ResimFrame);
1968 void UpdateDynamicInputScaling();
1971 bool bIsLocallyControlled;
1974 int32 NetworkPhysicsTickOffset;
1977 bool bIsUsingLegacyData;
2018 uint16 InputsToNetwork_OwnerDefault = 3;
2019 uint16 InputsToNetwork_Owner = 3;
2020 uint16 InputsToNetwork_Simulated = 2;
2023 float TimeOfLastDynamicInputScaling = 0.0f;
2024 float DynamicInputScalingAverageInputs = 0.0f;
2025 int32 MissingInputCount = 0;
2028 uint16 StatesToNetwork = 1;
2031 bool bCompareStateToTriggerRewind;
2034 bool bCompareStateToTriggerRewindIncludeSimProxies;
2037 bool bCompareInputToTriggerRewind;
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
#define ensure( InExpression)
Definition AssertionMacros.h:464
@ STRUCT_NetSerializeNative
Definition Class.h:1048
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_MULTICAST_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
Definition DelegateCombinations.h:58
#define DECLARE_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:49
ENetMode
Definition EngineBaseTypes.h:937
@ NM_DedicatedServer
Definition EngineBaseTypes.h:942
@ NM_ListenServer
Definition EngineBaseTypes.h:945
ELevelTick
Definition EngineBaseTypes.h:70
ENetRole
Definition EngineTypes.h:3346
EPhysicsReplicationMode
Definition EngineTypes.h:3378
#define UE_LOG(CategoryName, Verbosity, Format,...)
Definition LogMacros.h:270
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
UE_FORCEINLINE_HINT TUniquePtr< T > MakeUnique(TArgs &&... Args)
Definition UniquePtr.h:918
uint32 Size
Definition VulkanMemory.cpp:4034
if(Failed) console_printf("Failed.\n")
UEBinkAudioDecodeInterface * Interface
Definition binka_ue_decode_test.cpp:24
Definition Controller.h:41
Definition PlayerController.h:261
Definition PBDRigidsEvolutionGBF.h:51
Definition PBDRigidsSolver.h:84
Definition RewindData.h:2189
Definition SimCallbackObject.h:68
bool HasOption(const ESimCallbackOptions Option) const
Definition SimCallbackObject.h:212
Definition SimCallbackObject.h:521
Definition Archive.h:1208
virtual CORE_API void SerializeIntPacked(uint32 &Value)
Definition Archive.cpp:1328
UE_FORCEINLINE_HINT bool IsLoading() const
Definition Archive.h:236
CORE_API void SetError()
Definition Archive.cpp:314
virtual void SerializeBits(void *V, int64 LengthBits)
Definition Archive.h:1707
Definition NetworkPhysicsComponent.h:1891
void RegisterDataHistoryInRewindData()
Definition NetworkPhysicsComponent.cpp:2587
FAsyncNetworkPhysicsComponentOutput & GetAsyncOutput_Internal()
Definition NetworkPhysicsComponent.cpp:1969
const bool IsLocallyControlled() const
Definition NetworkPhysicsComponent.h:1902
const FString GetActorName() const
Definition NetworkPhysicsComponent.h:1911
const int32 GetNetworkPhysicsTickOffset() const
Definition NetworkPhysicsComponent.h:1914
const ENetRole GetNetRole() const
Definition NetworkPhysicsComponent.h:1908
void UnregisterDataHistoryFromRewindData()
Definition NetworkPhysicsComponent.cpp:2610
const bool IsServer() const
Definition NetworkPhysicsComponent.h:1905
FAsyncNetworkPhysicsComponent()
Definition NetworkPhysicsComponent.cpp:1698
const EPhysicsReplicationMode GetPhysicsReplicationMode() const
Definition NetworkPhysicsComponent.h:1917
const int32 SetupRewindData()
Definition NetworkPhysicsComponent.cpp:2625
~FAsyncNetworkPhysicsComponent()
Definition NetworkPhysicsComponent.h:1896
Definition IDelegateInstance.h:14
Definition UnrealType.h:3087
Definition SubsystemCollection.h:15
SizeType Remove(const ElementType &Item)
Definition Array.h:3091
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void Reset(SizeType NewSize=0)
Definition Array.h:2246
void SetNum(SizeType NewNum, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2308
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
Definition SharedPointer.h:692
Definition StrongObjectPtrTemplates.h:26
Definition FunctionFwd.h:19
Definition UniquePtr.h:107
Definition SharedPointer.h:1295
Definition ActorComponent.h:152
Definition NetworkPhysicsComponent.h:1322
FNetworkPhysicsRewindDataImportantStateProxy ReplicatedImportantState
Definition NetworkPhysicsComponent.h:1466
TSharedPtr< Chaos::FBaseRewindHistory > & GetInputHistory_External()
Definition NetworkPhysicsComponent.h:1367
FNetworkPhysicsRewindDataDeltaSourceInputProxy ReplicatedDeltaSourceInput
Definition NetworkPhysicsComponent.h:1429
const bool GetIsRelayingLocalInputs() const
Definition NetworkPhysicsComponent.h:1401
FNetworkPhysicsRewindDataImportantInputProxy ReplicatedImportantInput
Definition NetworkPhysicsComponent.h:1462
FNetworkPhysicsRewindDataDeltaSourceStateProxy ReplicatedDeltaSourceState
Definition NetworkPhysicsComponent.h:1433
void SetIsRelayingLocalInputs(bool bInRelayingLocalInputs)
Definition NetworkPhysicsComponent.h:1384
static const int32 DeltaSourceBufferSize
Definition NetworkPhysicsComponent.h:1585
TWeakObjectPtr< UActorComponent > ActorComponent
Definition NetworkPhysicsComponent.h:1668
void CreateInputHistory(UActorComponent *HistoryComponent)
Definition NetworkPhysicsComponent.h:1759
TSharedPtr< Chaos::FBaseRewindHistory > & GetStateHistory_External()
Definition NetworkPhysicsComponent.h:1361
FNetworkPhysicsRewindDataInputProxy ReplicatedInputs
Definition NetworkPhysicsComponent.h:1482
void StopRelayingLocalInputsDeferred()
Definition NetworkPhysicsComponent.h:1392
FNetworkPhysicsRewindDataStateProxy ReplicatedStates
Definition NetworkPhysicsComponent.h:1490
static const int32 GetDeltaSourceIndexForFrame(const int32 Frame)
Definition NetworkPhysicsComponent.h:1588
FNetworkPhysicsRewindDataRemoteInputProxy ReplicatedRemoteInputs
Definition NetworkPhysicsComponent.h:1486
void CreateDataHistory(UActorComponent *HistoryComponent)
Definition NetworkPhysicsComponent.h:1715
FAsyncNetworkPhysicsComponent * GetNetworkPhysicsComponent_Internal()
Definition NetworkPhysicsComponent.h:1411
Definition NetworkPhysicsComponent.h:723
UE_FORCEINLINE_HINT FString GetName() const
Definition UObjectBaseUtility.h:439
int32 GetPhysicsHistoryCount() const
Definition PhysicsSettings.h:380
static UPhysicsSettings * Get()
Definition PhysicsSettings.h:377
ICppStructOps * GetCppStructOps() const
Definition Class.h:2292
EStructFlags StructFlags
Definition Class.h:2224
Definition WorldSubsystem.h:16
Definition SkeletalMeshComponent.h:307
Definition NetworkPhysicsComponent.cpp:2657
int32 GetUpcomingServerFrame_External(UWorld *World)
Definition NetworkPhysicsComponent.cpp:2658
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition RewindData.h:32
virtual void ResetFast()
Definition RewindData.h:158
virtual void ResizeDataHistory(const int32 FrameCount, const EAllowShrinking AllowShrinking=EAllowShrinking::Default)
Definition RewindData.h:155
Definition PhysicsObjectInternal.h:16
Definition SimCallbackInput.h:18
Definition RewindData.h:164
DataType & GetAndLoadEarliestData()
Definition RewindData.h:405
int32 NumFrames
Definition RewindData.h:547
virtual void Initialize()
Definition RewindData.h:179
TArray< DataType > DataHistory
Definition RewindData.h:535
int32 CurrentIndex
Definition RewindData.h:544
FORCEINLINE const uint32 GetFrameIndex(const int32 Frame) const
Definition RewindData.h:503
FORCEINLINE bool EvalData(const int32 EvalFrame)
Definition RewindData.h:317
virtual const int32 GetLatestFrame() const override
Definition RewindData.h:459
virtual FORCEINLINE bool RecordData(const int32 RecordFrame, const void *HistoryData) override
Definition RewindData.h:329
bool bIsLocalHistory
Definition RewindData.h:529
FORCEINLINE bool LoadData(const int32 LoadFrame)
Definition RewindData.h:308
virtual FORCEINLINE bool RecordDataGrowingOrdered(const void *HistoryData) override
Definition RewindData.h:347
FORCEINLINE uint32 NumValidData(const uint32 StartFrame, const uint32 EndFrame) const
Definition RewindData.h:441
Definition EngineBaseTypes.h:571
Definition NetworkPhysicsComponent.h:1859
TOptional< uint16 > InputsToNetwork_Owner
Definition NetworkPhysicsComponent.h:1860
TUniquePtr< Chaos::FBaseRewindHistory > InputData
Definition NetworkPhysicsComponent.h:1862
TArray< TUniquePtr< Chaos::FBaseRewindHistory > > StateDataImportant
Definition NetworkPhysicsComponent.h:1866
TUniquePtr< Chaos::FBaseRewindHistory > StateData
Definition NetworkPhysicsComponent.h:1863
TArray< TUniquePtr< Chaos::FBaseRewindHistory > > InputDataImportant
Definition NetworkPhysicsComponent.h:1865
void Reset()
Definition NetworkPhysicsComponent.h:1868
static constexpr UE_FORCEINLINE_HINT T Clamp(const T X, const T MinValue, const T MaxValue)
Definition UnrealMathUtility.h:592
Definition NetworkPhysicsComponent.h:680
FNetworkPhysicsCallback(UWorld *InWorld)
Definition NetworkPhysicsComponent.h:681
virtual void PreResimStep_Internal(int32 PhysicsStep, bool bFirst) override
Definition NetworkPhysicsComponent.cpp:317
virtual int32 TriggerRewindIfNeeded_Internal(int32 LatestStepCompleted) override
Definition NetworkPhysicsComponent.cpp:333
virtual void ProcessInputs_External(int32 PhysicsStep, const TArray< Chaos::FSimCallbackInputAndObject > &SimCallbackInputs)
Definition NetworkPhysicsComponent.cpp:372
TArray< Chaos::ISimCallbackObject * > RewindableCallbackObjects
Definition NetworkPhysicsComponent.h:714
FOnInjectInputsExternal InjectInputsExternal
Definition NetworkPhysicsComponent.h:688
FOnPreProcessInputsInternal PreProcessInputsInternal
Definition NetworkPhysicsComponent.h:685
virtual void UnregisterRewindableSimCallback_Internal(Chaos::ISimCallbackObject *SimCallbackObject) override
Definition NetworkPhysicsComponent.h:705
FOnPostProcessInputsInternal PostProcessInputsInternal
Definition NetworkPhysicsComponent.h:686
virtual void ProcessInputs_Internal(int32 PhysicsStep, const TArray< Chaos::FSimCallbackInputAndObject > &SimCallbackInputs) override
Definition NetworkPhysicsComponent.cpp:307
virtual void PostResimStep_Internal(int32 PhysicsStep) override
Definition NetworkPhysicsComponent.cpp:328
virtual void RegisterRewindableSimCallback_Internal(Chaos::ISimCallbackObject *SimCallbackObject) override
Definition NetworkPhysicsComponent.h:697
virtual void InjectInputs_External(int32 PhysicsStep, int32 NumSteps) override
Definition NetworkPhysicsComponent.cpp:367
UWorld * World
Definition NetworkPhysicsComponent.h:711
Definition NetworkPhysicsComponent.h:821
TArray< TInstancedStruct< FNetworkPhysicsPayload > > DataArray
Definition NetworkPhysicsComponent.h:825
void DebugCollection(const FString &DebugText) const
Definition NetworkPhysicsComponent.h:837
Definition NetworkPhysicsComponent.h:1119
virtual TUniquePtr< FNetworkPhysicsDataHelper > Clone() const =0
virtual void ValidateData(Chaos::FBaseRewindHistory *History, INetworkPhysicsInputState_Internal &Interface)=0
virtual void CopyData(const FNetworkPhysicsDataCollection &From, Chaos::FBaseRewindHistory *To)=0
virtual void CopyIncrementalData(const Chaos::FBaseRewindHistory *From, FNetworkPhysicsDataCollection &To)=0
virtual bool IsUsingLegacyData()=0
virtual ~FNetworkPhysicsDataHelper()=default
virtual void ValidateData(Chaos::FBaseRewindHistory *History, INetworkPhysicsInputState_External &Interface)=0
virtual TUniquePtr< Chaos::FBaseRewindHistory > CreateUniqueRewindHistory(const int32 Size) const =0
virtual void CopyDataGrowingOrdered(const FNetworkPhysicsDataCollection &From, Chaos::FBaseRewindHistory *To)=0
virtual TUniquePtr< FNetworkPhysicsPayload > CreateUniqueData() const =0
virtual bool CopyAlteredData(const Chaos::FBaseRewindHistory *From, FNetworkPhysicsDataCollection &To)=0
virtual void CopyData(const Chaos::FBaseRewindHistory *From, FNetworkPhysicsDataCollection &To)=0
Definition NetworkPhysicsComponent.h:954
virtual void ApplyData(UActorComponent *NetworkComponent) const
Definition NetworkPhysicsComponent.h:1062
FNetworkPhysicsData(const FNetworkPhysicsData &)=default
void SetImportant(bool bIsImportant)
Definition NetworkPhysicsComponent.h:1056
PRAGMA_DISABLE_DEPRECATION_WARNINGS FNetworkPhysicsData()=default
virtual void ValidateData(const UActorComponent *NetworkComponent)
Definition NetworkPhysicsComponent.h:1092
bool CompareData(const FNetworkPhysicsPayload &PredictedData) const override
Definition NetworkPhysicsComponent.h:1113
virtual const FString DebugData()
Definition NetworkPhysicsComponent.h:1102
void MergeData(const FNetworkPhysicsPayload &FromData) override
Definition NetworkPhysicsComponent.h:1112
void SerializeFrames(FArchive &Ar)
Definition NetworkPhysicsComponent.h:993
FNetworkPhysicsData(FNetworkPhysicsData &&)=default
virtual void BuildData(const UActorComponent *NetworkComponent)
Definition NetworkPhysicsComponent.h:1065
virtual bool CompareData(const FNetworkPhysicsData &PredictedData)
Definition NetworkPhysicsComponent.h:1099
virtual void DecayData(float DecayAmount) override
Definition NetworkPhysicsComponent.h:1079
virtual void MergeData(const FNetworkPhysicsData &FromData)
Definition NetworkPhysicsComponent.h:1086
void SetDeltaSourceData(FNetworkPhysicsData *IntDeltaSourceData)
Definition NetworkPhysicsComponent.h:986
FNetworkPhysicsData & operator=(FNetworkPhysicsData &&)=default
FNetworkPhysicsData & operator=(const FNetworkPhysicsData &)=default
void SetImplementationComponent(UActorComponent *InImplementationComponent)
Definition NetworkPhysicsComponent.h:977
virtual void InterpolateData(const FNetworkPhysicsData &MinData, const FNetworkPhysicsData &MaxData)
Definition NetworkPhysicsComponent.h:1072
bool operator==(const FNetworkPhysicsData &Other) const
Definition NetworkPhysicsComponent.h:1104
virtual ~FNetworkPhysicsData()=default
void ClearImplementationComponent()
Definition NetworkPhysicsComponent.h:981
void ClearDeltaSourceData()
Definition NetworkPhysicsComponent.h:990
Definition NetworkPhysicsComponent.h:744
virtual const FString DebugData()
Definition NetworkPhysicsComponent.h:784
virtual void DecayData(float DecayAmount)
Definition NetworkPhysicsComponent.h:774
virtual bool CompareData(const FNetworkPhysicsPayload &PredictedData) const
Definition NetworkPhysicsComponent.h:781
int32 ServerFrame
Definition NetworkPhysicsComponent.h:750
virtual const FString DebugData() const
Definition NetworkPhysicsComponent.h:785
virtual void MergeData(const FNetworkPhysicsPayload &FromData)
Definition NetworkPhysicsComponent.h:767
void PrepareFrame(int32 CurrentFrame, bool bIsServer, int32 ClientFrameOffset)
Definition NetworkPhysicsComponent.h:796
virtual void InterpolateData(const FNetworkPhysicsPayload &MinData, const FNetworkPhysicsPayload &MaxData, float LerpAlpha)
Definition NetworkPhysicsComponent.h:760
Definition NetworkPhysicsComponent.h:638
Definition NetworkPhysicsComponent.h:616
Definition NetworkPhysicsComponent.h:502
TUniquePtr< Chaos::FBaseRewindHistory > History
Definition NetworkPhysicsComponent.h:518
bool NetSerializeBase(FArchive &Ar, class UPackageMap *Map, bool &bOutSuccess, TUniqueFunction< TUniquePtr< Chaos::FBaseRewindHistory >()> CreateHistoryFunction)
Definition NetworkPhysicsComponent.h:512
bool operator==(const FNetworkPhysicsRewindDataProxy &Other) const
Definition NetworkPhysicsComponent.h:508
TObjectPtr< UNetworkPhysicsComponent > Owner
Definition NetworkPhysicsComponent.h:522
Definition NetworkPhysicsComponent.h:575
Definition NetworkPhysicsSettingsComponent.h:473
Definition WorldInitializationValues.h:9
Definition InstancedStruct.h:307
static TInstancedStruct Make()
Definition InstancedStruct.h:379
Definition NetworkPhysicsComponent.h:32
virtual void NetSerialize(FArchive &Ar, UPackageMap *InPackageMap) override
Definition NetworkPhysicsComponent.h:346
virtual void SetImportant(const bool bImportant, const int32 Frame=INDEX_NONE) override
Definition NetworkPhysicsComponent.h:111
virtual TUniquePtr< Chaos::FBaseRewindHistory > CopyFramesWithOffset(const uint32 StartFrame, const uint32 EndFrame, const int32 FrameOffset) override
Definition NetworkPhysicsComponent.h:214
virtual void ValidateDataInHistory(const void *ActorComponent) override
Definition NetworkPhysicsComponent.h:59
virtual void ApplyDataRange(const int32 FromFrame, const int32 ToFrame, void *ActorComponent, const bool bOnlyImportant=false) override
Definition NetworkPhysicsComponent.h:132
TNetRewindHistory(const int32 FrameCount, const bool bIsHistoryLocal)
Definition NetworkPhysicsComponent.h:35
virtual TUniquePtr< Chaos::FBaseRewindHistory > Clone() const
Definition NetworkPhysicsComponent.h:54
TNetRewindHistory(const int32 FrameCount)
Definition NetworkPhysicsComponent.h:40
virtual TUniquePtr< Chaos::FBaseRewindHistory > CreateNew() const
Definition NetworkPhysicsComponent.h:47
virtual bool ShouldRecordReceivedDataOnFrame(const DataType &ReceivedData, DataType *NextReceivedData=nullptr)
Definition NetworkPhysicsComponent.h:293
virtual bool CopyAlteredData(Chaos::FBaseRewindHistory &OutHistory, bool bIncludeUnimportant=true, bool bIncludeImportant=false) override
Definition NetworkPhysicsComponent.h:170
virtual int32 CountValidData(const uint32 StartFrame, const uint32 EndFrame, const bool bIncludeUnimportant=true, const bool bIncludeImportant=false) override
Definition NetworkPhysicsComponent.h:72
virtual void NetSerialize(FArchive &Ar, UPackageMap *InPackageMap, TUniqueFunction< void(void *Data, const int32 DataIndex)> DataSetupFunction) override
Definition NetworkPhysicsComponent.h:351
virtual ~TNetRewindHistory()
Definition NetworkPhysicsComponent.h:45
virtual void DebugData(const FString &DebugText) override
Definition NetworkPhysicsComponent.h:437
virtual bool CopyAllData(Chaos::FBaseRewindHistory &OutHistory, bool bIncludeUnimportant=true, bool bIncludeImportant=false) override
Definition NetworkPhysicsComponent.h:150
virtual bool TriggerRewindFromNewData(DataType &NewData)
Definition NetworkPhysicsComponent.h:335
virtual bool CopyData(Chaos::FBaseRewindHistory &OutHistory, const uint32 StartFrame, const uint32 EndFrame, bool bIncludeUnimportant=true, bool bIncludeImportant=false) override
Definition NetworkPhysicsComponent.h:190
virtual int32 ReceiveNewData(Chaos::FBaseRewindHistory &NewData, const int32 FrameOffset, bool CompareDataForRewind=false, const bool bImportant=false, int32 TryInjectAtFrame=INDEX_NONE) override
Definition NetworkPhysicsComponent.h:235
virtual int32 CountAlteredData(const bool bIncludeUnimportant=true, const bool bIncludeImportant=false) override
Definition NetworkPhysicsComponent.h:94
virtual void DebugData(const Chaos::FBaseRewindHistory &DebugHistory, TArray< int32 > &LocalFrames, TArray< int32 > &ServerFrames, TArray< int32 > &InputFrames) override
Definition NetworkPhysicsComponent.h:415
Definition NetworkPhysicsComponent.h:1156
void ValidateData(Chaos::FBaseRewindHistory *History, INetworkPhysicsInputState_External &Interface) override
Definition NetworkPhysicsComponent.h:1260
void CopyDataGrowingOrdered(const FNetworkPhysicsDataCollection &From, Chaos::FBaseRewindHistory *To) override
Definition NetworkPhysicsComponent.h:1249
void ValidateData(Chaos::FBaseRewindHistory *History, INetworkPhysicsInputState_Internal &Interface) override
Definition NetworkPhysicsComponent.h:1277
void CopyData(const FNetworkPhysicsDataCollection &From, Chaos::FBaseRewindHistory *To) override
Definition NetworkPhysicsComponent.h:1164
TUniquePtr< Chaos::FBaseRewindHistory > CreateUniqueRewindHistory(const int32 Size) const override
Definition NetworkPhysicsComponent.h:1160
~TNetworkPhysicsDataHelper()=default
TUniquePtr< FNetworkPhysicsPayload > CreateUniqueData() const override
Definition NetworkPhysicsComponent.h:1159
bool CopyAlteredData(const Chaos::FBaseRewindHistory *From, FNetworkPhysicsDataCollection &To) override
Definition NetworkPhysicsComponent.h:1221
bool IsUsingLegacyData()
Definition NetworkPhysicsComponent.h:1161
void CopyIncrementalData(const Chaos::FBaseRewindHistory *From, FNetworkPhysicsDataCollection &To) override
Definition NetworkPhysicsComponent.h:1196
void CopyData(const Chaos::FBaseRewindHistory *From, FNetworkPhysicsDataCollection &To) override
Definition NetworkPhysicsComponent.h:1179
TUniquePtr< FNetworkPhysicsDataHelper > Clone() const override
Definition NetworkPhysicsComponent.h:1158
Definition ObjectPtr.h:488
Definition Optional.h:131
void Reset()
Definition Optional.h:306
Definition StructOpsTypeTraits.h:11
@ WithIdenticalViaEquality
Definition StructOpsTypeTraits.h:18
@ WithNetSerializer
Definition StructOpsTypeTraits.h:26
Definition StructOpsTypeTraits.h:46
Definition WeakObjectPtrTemplates.h:25
bool NetSerialize(FArchive &Ar, UPackageMap *Map, bool &bOutSuccess, void *Data)
Definition Class.h:1861