61 UPROPERTY(Replicated, ReplicatedUsing = OnRep_AttachmentReplication)
64 virtual
void GatherCurrentMovement() override;
66 UPROPERTY(EditAnywhere, Replicated, BlueprintReadOnly, Instanced, Category = "VRGripInterface")
72 UPROPERTY(EditAnywhere, Replicated, BlueprintReadWrite, Category = "VRGripInterface")
73 bool bReplicateGripScripts;
75 bool ReplicateSubobjects(UActorChannel* Channel, class FOutBunch* Bunch, FReplicationFlags* RepFlags) override;
76 virtual
void GetSubobjectsWithStableNamesForNetworking(TArray<
UObject*>& ObjList) override;
79 UFUNCTION(BlueprintCallable, Category = "VRGripInterface")
80 void SetDenyGripping(
bool bDenyGripping);
83 UFUNCTION(BlueprintCallable, Category = "VRGripInterface")
84 void SetGripPriority(
int NewGripPriority);
88 UPROPERTY(BlueprintAssignable, Category = "Grip Events")
89 FVROnGripSignature OnGripped;
93 UPROPERTY(BlueprintAssignable, Category = "Grip Events")
94 FVROnDropSignature OnDropped;
98 UPROPERTY(BlueprintAssignable, Category = "Grip Events")
99 FVROnGripSignature OnSecondaryGripAdded;
103 UPROPERTY(BlueprintAssignable, Category = "Grip Events")
104 FVROnGripSignature OnSecondaryGripRemoved;
110 UPROPERTY(EditAnywhere, Replicated, BlueprintReadWrite, Category = "Replication")
114 UFUNCTION(BlueprintCallable, Category = "Networking")
115 bool AddToClientReplicationBucket();
118 UFUNCTION(BlueprintCallable, Category = "Networking")
119 bool RemoveFromClientReplicationBucket();
122 bool PollReplicationEvent();
124 UFUNCTION(Category = "Networking")
125 void CeaseReplicationBlocking();
128 UFUNCTION(Reliable, Server, WithValidation, Category = "Networking")
129 void Server_EndClientAuthReplication();
132 UFUNCTION(UnReliable, Server, WithValidation, Category = "Networking")
133 void Server_GetClientAuthReplication(const
FRepMovementVR& newMovement);
136 UFUNCTION(BlueprintPure, Category = "Networking")
137 FORCEINLINE
bool IsCurrentlyClientAuthThrowing()
149 virtual void GetOwnedGameplayTags(FGameplayTagContainer& TagContainer)
const override
151 TagContainer = GameplayTags;
155 UPROPERTY(EditAnywhere, Replicated, BlueprintReadWrite, Category =
"GameplayTags")
156 FGameplayTagContainer GameplayTags;
160 virtual
void PreReplication(IRepChangedPropertyTracker& ChangedPropertyTracker) override;
163 UPROPERTY(EditAnywhere, Replicated, BlueprintReadWrite, Category = "Replication")
164 bool bAllowIgnoringAttachOnOwner;
167 inline
bool ShouldWeSkipAttachmentReplication(
bool bConsiderHeld = true)
const
169 if ((bConsiderHeld && !VRGripInterfaceSettings.bWasHeld) || GetNetMode() < ENetMode::NM_Client)
175 return HasLocalNetOwner();
182 virtual void OnRep_AttachmentReplication()
override;
183 virtual void OnRep_ReplicateMovement()
override;
184 virtual void OnRep_ReplicatedMovement()
override;
185 virtual void PostNetReceivePhysicState()
override;
196 virtual void MarkComponentsAsPendingKill()
override;
200 virtual void PreDestroyFromReplication()
override;
203 virtual void BeginDestroy()
override;
205 UPROPERTY(EditAnywhere, Replicated, BlueprintReadWrite, Category =
"VRGripInterface")
206 bool bRepGripSettingsAndGameplayTags;
208 UPROPERTY(EditAnywhere, Replicated, BlueprintReadWrite, Category = "VRGripInterface")
219 virtual
bool SimulateOnDrop_Implementation() override;
234 virtual
void GetGripStiffnessAndDamping_Implementation(
float& GripStiffnessOut,
float& GripDampingOut) override;
240 virtual
float GripBreakDistance_Implementation() override;
243 virtual
void ClosestGripSlotInRange_Implementation(FVector WorldLocation,
bool bSecondarySlot,
bool& bHadSlotInRange, FTransform& SlotWorldTransform, FName& SlotName,
UGripMotionControllerComponent* CallingController =
nullptr, FName OverridePrefix = NAME_None) override;
246 virtual
bool AllowsMultipleGrips_Implementation() override;
249 virtual
void IsHeld_Implementation(TArray<
FBPGripPair>& HoldingControllers,
bool& bIsHeld) override;
261 virtual
bool GetGripScripts_Implementation(TArray<
UVRGripScriptBase*>& ArrayReference) override;
289 virtual
void OnUsed_Implementation() override;
292 virtual
void OnEndUsed_Implementation() override;
295 virtual
void OnSecondaryUsed_Implementation() override;
298 virtual
void OnEndSecondaryUsed_Implementation() override;
301 virtual
void OnInput_Implementation(FKey Key, EInputEvent KeyEvent) override;