#pragma once #include "CoreMinimal.h" #include "UObject/NoExportTypes.h" #include "UObject/NoExportTypes.h" #include "Components/InstancedStaticMeshComponent.h" #include "SplineDecoratorComponent.generated.h" class UMaterialInterface; class USplineComponent; UCLASS(Blueprintable, EditInlineNew, ClassGroup=Custom, meta=(BlueprintSpawnableComponent)) class FSD_API USplineDecoratorComponent : public UInstancedStaticMeshComponent { GENERATED_BODY() public: protected: UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) float DistanceBetweenInstances; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) int32 StartIndex; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) int32 EndIndex; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) bool bUpdateContinuously; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) FVector VerticalOffset; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) FVector Scale; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) float DistanceProgress; UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, Transient, meta=(AllowPrivateAccess=true)) USplineComponent* SplineComponent; UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true)) TArray NewInstancesTransforms; UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true)) float Phase; public: USplineDecoratorComponent(); UFUNCTION(BlueprintCallable) void Update(float DeltaTime); UFUNCTION(BlueprintCallable) void SetUpdateContinuously(bool InContinuously); UFUNCTION(BlueprintCallable) void SetSplineComponentAndMaterial(USplineComponent* InSplineComponent, int32 ElementIndex, UMaterialInterface* Material); UFUNCTION(BlueprintCallable) void SetSplineComponent(USplineComponent* InSplineComponent); };