* Added PostInit callback to UNetObjectFactory
* Moved PostInit code from bridges to their respective factory
#rnx
#rb Mattias.Hornlund
[CL 36390399 by louisphilippe seguin in 5.5 branch]
* Added NetObjectFactory API
* Users can now create their own net object factories to handle discovery and instantiation of any replicated object types.
* An exemple of using this factory is to create your own replicated root objects that are not derived from the Actor class.
Iris ActorBridge:
* Created new Actor and SubObject net object factories.
* Deleted existing code handling discovery and instantiation of actors from the Bridge
ReplicationSystemTest:
* Converted Test bridge to use the new net object factory API
#jira UE-223565
#rb Mattias.Hornlund
[CL 36240214 by louisphilippe seguin in 5.5 branch]
* Demystify BeginReplication functions in the bridges by renaming them to what type of replicated object they create.
* Renamed FCreateNetRefHandleParams to FRootObjectReplicationParams.
* Removed FCreateNetRefHandleParams from SubObject BeginReplication function. All of the params could only be set on Root Objects.
#rb Mattias.Hornlund
[CL 35824786 by louisphilippe seguin in ue5-main branch]
* Fix dormant objects getting replicated if one of their push model property was set dirty or force net update was called on them.
* Added dormancy iris unit test
#jira UE-219859
#rnx
#rb Peter.Engstrom
[CL 35032278 by louisphilippe seguin in ue5-main branch]
- Implemented support for capturing and caching CreationInfo which allows us to capture final snapshot of replicated objects data including information we need to send creation info to clients. This allows flushing of replicated state and rpcs even if the owning actor is destroyed.
- Iris now supports flushing state for Networked objects created and destroyed during the same frame.
- Autoflush behavior can be disabled by cvar net.Iris.EnableFlushReliableRPCOnDestroy 0
#rb Peter.Engstrom
[CL 33258927 by mattias hornlund in ue5-main branch]
- Reduced overhead when calling PreReplcate functions as we do it for many objects.
#rb Peter.Engstrom
[CL 32892012 by mattias hornlund in ue5-main branch]
* Added NetRefHandle::GetInvalid() and replaced existing calls to FNetRefHandle() to GetInvalid()
#rnx
#rb Peter.Engstrom
[CL 31426712 by louisphilippe seguin in ue5-main branch]
* Added unit test for setting a push model property dirty from inside PreNetUpdate
#rnx
#rb Mattias.Hornlund
[CL 30237765 by louisphilippe seguin in ue5-main branch]
- Implemented optimized path only dequantizing dirty members of received statedata during apply
#rb Peter.Engstrom
[CL 28666208 by mattias hornlund in ue5-main branch]
* Iris creation data will now replicate the true Outer of replicated subobjects.
* Refactored CallWriteNetRefHandleCreationInfo and made CallWriteNetRefHandleDestructionInfo.
#jira UE-127405, FORT-650140, FORT-650133, FORT-650141
#rb Mattias.Hornlund
#rnx
[CL 27798306 by louisphilippe seguin in ue5-main branch]
- Added friend declaration for inlined subclass to comply with recent compilers.
#rb Peter.Engstrom
[CL 27407575 by mattias hornlund in ue5-main branch]
- Implemented initial support for being able to skip over data for objects that fail to be instantiated
#rb Peter.Engstrom
[CL 27371360 by mattias hornlund in ue5-main branch]
* Poll configs are now set using Frequency (updates per second) instead of frames between polls.
* This allows the poll configs to work with any type of server tick rate
* Added ability to recover a given object's poll frequency via GetPollFrequencyOfRootObject
* ActorReplicationBridge will now listen to changes in server tick rates and reinitalize the poll frame updates of all objects via ReinitPollFrequency()
#jira UE-185786
#rb Peter.Engstorm
#rnx
[CL 25894242 by louisphilippe seguin in ue5-main branch]
* Formalize the concept of ForceNetUpdate by splitting MarkDirty and ForceNetUpdate into seperate lists.
* Now dirty objects will not be forced to be polled immediately anymore. It's only if you call ForceNetUpdate that you can skip your polling frequency.
* Another exeception is when a subobject gets added to a root object. There we are forcing a call to ForceNetUpdate.
* Added code to ensure that only the currently updated object can be marked dirty during the poll phase.
#jira UE-181952
#rb Peter.Engstorm, Mattias.Hornlund
#rnx
[CL 25814811 by louisphilippe seguin in ue5-main branch]
* Added GridFilter unit tests
* Encapsulated RepTag creation hack for unit tests
* Fix FragmentGridFilter reading world location fragment using wrong FVector unit type
#rb Peter.Engstorm
#rnx
[CL 25214436 by louisphilippe seguin in ue5-main branch]
COND_Dynamic allows for a property to decide its actual replication condition after instantiation of the actor/component rather than be the same for all instances. The condition can be changed using the macros DOREPDYNAMICCONDITION_INITCONDITION_FAST, when used in the object's GetReplicatedCustomConditionState implementation, or DOREPDYNAMICCONDITION_SETCONDITION_FAST in any other place where it's appropriate to change the condition. If the condition is never modified, thus remaining COND_Dynamic, the property will always replicate when changed. It's possible to use the DOREPCUSTOMCONDITION_ macros too on properties with this condition.
#jira UE-122444
#preflight 63eb3ca1923476b686190e5a
#rb louisphilippe.seguin, ryan.gerleve, mattias.hornlund, brian.bekich
[CL 24307287 by peter engstrom in ue5-main branch]
This fixes various crashes related to deleting default subobjects and such.
#jira UE-174664
#rb mattias.hornlund
#preflight 63cfeb52d83c1837b1974232
[CL 23831933 by peter engstrom in ue5-main branch]