34 UPROPERTY(BlueprintAssignable, Category = "VRDialComponent")
35 FVRDialStateChangedSignature OnDialHitSnapAngle;
37 UFUNCTION(BlueprintImplementableEvent, meta = (
DisplayName = "Dial Hit Snap Angle"))
38 void ReceiveDialHitSnapAngle(
float DialMilestoneAngle);
41 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "VRDialComponent|Lerping")
42 bool bLerpBackOnRelease;
44 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "VRDialComponent|Lerping")
45 bool bSendDialEventsDuringLerp;
47 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "VRDialComponent|Lerping")
48 float DialReturnSpeed;
50 UPROPERTY(BlueprintReadOnly, Category = "VRDialComponent|Lerping")
53 UPROPERTY(BlueprintAssignable, Category = "VRDialComponent|Lerping")
54 FVRDialFinishedLerpingSignature OnDialFinishedLerping;
56 UFUNCTION(BlueprintImplementableEvent, meta = (
DisplayName = "Dial Finished Lerping"))
57 void ReceiveDialFinishedLerping();
59 UPROPERTY(BlueprintReadOnly, Category = "VRDialComponent")
60 float CurrentDialAngle;
62 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "VRDialComponent")
63 float ClockwiseMaximumDialAngle;
65 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "VRDialComponent")
66 float CClockwiseMaximumDialAngle;
70 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "VRDialComponent")
73 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "VRDialComponent")
74 bool bDialUsesAngleSnap;
76 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "VRDialComponent")
77 bool bDialUseSnapAngleList;
80 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "VRDialComponent", meta = (editcondition = "bDialUseSnapAngleList"))
81 TArray<
float> DialSnapAngleList;
84 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "VRDialComponent", meta = (editcondition = "!bDialUseSnapAngleList", ClampMin = "0.0", ClampMax = "180.0", UIMin = "0.0", UIMax = "180.0"))
85 float SnapAngleIncrement;
88 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "VRDialComponent", meta = (editcondition = "!bDialUseSnapAngleList", ClampMin = "0.0", ClampMax = "180.0", UIMin = "0.0", UIMax = "180.0"))
89 float SnapAngleThreshold;
92 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "VRDialComponent", meta = (ClampMin = "0.0", ClampMax = "180.0", UIMin = "0.0", UIMax = "180.0"))
95 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "VRDialComponent")
100 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "VRDialComponent")
101 bool bDialUseDirectHandRotation;
104 float InitialGripRot;
105 float InitialRotBackEnd;
107 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "VRDialComponent", meta = (editcondition = "bDialUseDirectHandRotation"))
110 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "GripSettings")
111 float PrimarySlotRange;
113 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "GripSettings")
114 float SecondarySlotRange;
116 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "GripSettings")
120 UFUNCTION(BlueprintCallable, Category = "GripSettings")
121 void SetGripPriority(
int NewGripPriority);
124 virtual
void OnRegister() override;
127 UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_InitialRelativeTransform, Category = "VRDialComponent")
131 virtual
void OnRep_InitialRelativeTransform()
133 CalculateDialProgress();
136 void CalculateDialProgress();
139 FVector InitialInteractorLocation;
140 FVector InitialDropLocation;
142 FRotator LastRotation;
146 UFUNCTION(BlueprintCallable, Category =
"VRLeverComponent")
147 void ResetInitialDialLocation();
150 UFUNCTION(BlueprintCallable, Category = "VRLeverComponent")
151 void AddDialAngle(
float DialAngleDelta,
bool bCallEvents = false,
bool bSkipSettingRot = false);
154 UFUNCTION(BlueprintCallable, Category = "VRLeverComponent")
155 void SetDialAngle(
float DialAngle,
bool bCallEvents = false);
162 virtual
void GetOwnedGameplayTags(FGameplayTagContainer& TagContainer)
const override
164 TagContainer = GameplayTags;
168 UPROPERTY(EditAnywhere, Replicated, BlueprintReadWrite, Category =
"GameplayTags")
169 FGameplayTagContainer GameplayTags;
173 virtual
void PreReplication(IRepChangedPropertyTracker & ChangedPropertyTracker) override;
177 UPROPERTY(EditAnywhere, Replicated, BlueprintReadWrite, Category = "VRGripInterface")
178 bool bRepGameplayTags;
181 UPROPERTY(EditAnywhere, Replicated, BlueprintReadWrite, Category = "VRGripInterface|Replication")
182 bool bReplicateMovement;
184 virtual
void TickComponent(
float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction) override;
185 virtual
void BeginPlay() override;
187 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "VRGripInterface")
190 UPROPERTY(BlueprintReadOnly, Category = "VRGripInterface", meta = (ScriptName = "IsCurrentlyHeld"))
193 UPROPERTY(BlueprintReadOnly, Category = "VRGripInterface")
195 bool bOriginalReplicatesMovement;
199 UPROPERTY(BlueprintAssignable, Category = "Grip Events")
200 FVROnGripSignature OnGripped;
204 UPROPERTY(BlueprintAssignable, Category = "Grip Events")
205 FVROnDropSignature OnDropped;
208 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "VRGripInterface")
212 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "VRGripInterface", meta = (ScriptName = "IsDenyGripping"))
225 bool SimulateOnDrop_Implementation() override;
240 void GetGripStiffnessAndDamping_Implementation(
float &GripStiffnessOut,
float &GripDampingOut) override;
246 float GripBreakDistance_Implementation() override;
249 void ClosestGripSlotInRange_Implementation(FVector WorldLocation,
bool bSecondarySlot,
bool & bHadSlotInRange, FTransform & SlotWorldTransform, FName & SlotName,
UGripMotionControllerComponent * CallingController =
nullptr, FName OverridePrefix = NAME_None) override;
252 bool AllowsMultipleGrips_Implementation() override;
255 void IsHeld_Implementation(TArray<
FBPGripPair>& CurHoldingControllers,
bool & bCurIsHeld) override;
267 bool GetGripScripts_Implementation(TArray<
UVRGripScriptBase*> & ArrayReference) override;
296 void OnUsed_Implementation() override;
299 void OnEndUsed_Implementation() override;
302 void OnSecondaryUsed_Implementation() override;
305 void OnEndSecondaryUsed_Implementation() override;
308 void OnInput_Implementation(FKey Key, EInputEvent KeyEvent) override;