21 virtual void BeginPlay()
override;
22 virtual void Tick(
float DeltaTime)
override;
24 virtual void GetLifetimeReplicatedProps(TArray<class FLifetimeProperty>& OutLifetimeProps)
const override;
27 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
28 TObjectPtr<class UBoxComponent> BoxComp;
30 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
31 TObjectPtr<class UStaticMeshComponent> Mesh1Comp;
32 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
33 TObjectPtr<class UStaticMeshComponent> Mesh2Comp;
34 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
35 TObjectPtr<class UStaticMeshComponent> Mesh3Comp;
37 UPROPERTY(VisibleAnywhere)
38 TObjectPtr<class UInteractableComponent> InteractableComp;
39 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
40 TObjectPtr<class UWidgetComponent> WidgetComp;
42 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
43 TObjectPtr<class UHookComponent> HookComp;
54 UPROPERTY(ReplicatedUsing=OnRep_IsBeingHooked, BlueprintReadOnly, Category = "
Hook")
55 bool bIsBeingHooked = false;
61 UPROPERTY(Replicated, BlueprintReadOnly, Category = "
Hook")
62 TObjectPtr<AActor> HookedBy =
nullptr;
69 void OnRep_IsBeingHooked();
73 UPROPERTY(ReplicatedUsing=OnRep_CollisionEnabled)
74 bool bCollisionEnabled = true;
77 void OnRep_CollisionEnabled();
79 void ApplyCollisionState(
bool bEnable);
93 UFUNCTION(BlueprintCallable)
94 void SetLuggageInfo(int32 InIdx, FString InColor, FString InPattern);
96 FORCEINLINE int32 GetSpawnIdx() {
return SpawnIdx;}
102 UPROPERTY(ReplicatedUsing=OnRep_ColorIdx)
105 UPROPERTY(ReplicatedUsing=OnRep_PatternIdx)
106 int32 PatternIdx = -1;
109 void OnRep_ColorIdx();
112 void OnRep_PatternIdx();
115 void ApplyColorToMesh(int32 InColorIdx);
117 void ApplyPatternToMesh(int32 InPatternIdx);
123 UFUNCTION(BlueprintCallable, Category = "Collision")
124 void SetAllCollision(
bool bEnable);
128 bool bWidgetInitialized = false;
136 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Quest")
140 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Quest")
145 UFUNCTION(BlueprintCallable, Category = "Interaction")
146 void OnInteract(AActor* Interactor);
150 UFUNCTION(Server, Reliable, WithValidation)
151 void ServerNotifySelection(class APlayerState* Player);
156 void OnOutlineStateChanged(
bool bShouldShowOutline);
159 bool UpdateDissolve();
163 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Dissolve")
164 TObjectPtr<class UMaterialInterface> cubeBodyMaterial;
166 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Dissolve")
167 TObjectPtr<class UMaterialInterface> cubeStickerMaterial;
169 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Dissolve")
170 TObjectPtr<class UMaterialInterface> cubeCoverMaterial;
172 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Dissolve")
173 TObjectPtr<class UMaterialInstanceDynamic> cubeBodyMID;
175 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Dissolve")
176 TObjectPtr<class UMaterialInstanceDynamic> cubeStickerMID;
178 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Dissolve")
179 TObjectPtr<class UMaterialInstanceDynamic> cubeCoverMID;
181 const
float dissolveMaxVal = 3.2f;
182 float dissolveVal = -1.2f;
183 float dissolveSpeed = 0.08f;
191 void RequestListenAudio(const FString& AudioText);