#pragma once #include "CoreMinimal.h" #include "GameFramework/Actor.h" #include "BeamCollision.h" #include "LockOnBeam.generated.h" class ALockOnWeapon; class UMaterialInterface; class USceneComponent; class USplineComponent; class USplineMeshComponent; UCLASS(Abstract, Blueprintable) class ALockOnBeam : public AActor { GENERATED_BODY() public: protected: UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true)) USplineComponent* BeamSpline; UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true)) USplineMeshComponent* BeamMeshComponent01; UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true)) USplineMeshComponent* BeamMeshComponent02; UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true)) USplineMeshComponent* BeamMeshComponent03; UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true)) USceneComponent* BlockedNodeComponent; UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true)) USceneComponent* PreviewLocationComponent; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) UMaterialInterface* BeamMaterial; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) UMaterialInterface* BlockedBeamMaterial; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) UMaterialInterface* SeekerMaterial; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) float BeamThicknessScale; UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true)) TWeakObjectPtr Item; UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true)) TWeakObjectPtr TargetActor; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) FBeamCollision Collision; public: ALockOnBeam(); protected: UFUNCTION(BlueprintCallable, BlueprintImplementableEvent) void ReceiveItemSet(); };