#pragma once #include "CoreMinimal.h" #include "Engine/EngineTypes.h" #include "FakeMoveState.h" #include "FakeMoverState.h" #include "ProjectileBase.h" #include "FakePhysicsProjectile.generated.h" class AActor; class UFakeMoverSettings; class UPrimitiveComponent; UCLASS(Blueprintable) class AFakePhysicsProjectile : public AProjectileBase { GENERATED_BODY() public: UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) FFakeMoverState MoverState; UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, ReplicatedUsing=OnRep_PosVel, meta=(AllowPrivateAccess=true)) FFakeMoveState PosVel; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) UFakeMoverSettings* MoveSettings; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) float InitialSpeed; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) float DampOmega; UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true)) float SyncTime; AFakePhysicsProjectile(); virtual void GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const override; private: UFUNCTION(BlueprintCallable) void SphereBeginOverlap(UPrimitiveComponent* OverlappedComp, AActor* Other, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult); public: UFUNCTION(BlueprintCallable) void OnRep_PosVel(const FFakeMoveState& NewPosVel); };