4#include "CoreMinimal.h"
6#include "WeaponInstanceVehicle.generated.h"
9class UVehicleWeaponSeatComponent;
17 GENERATED_UCLASS_BODY()
19 virtual bool IsLocallyOwnedRemote()
const override;
20 virtual bool IsLocallyOwned()
const override;
21 virtual bool IsSimulatedOnly()
const override;
22 virtual bool IsAuthority()
const override;
23 virtual bool IsNonOwningAuthority()
const override;
25 virtual void EndPlay(
const EEndPlayReason::Type EndPlayReason)
override;
26 virtual void InitializeWeapon(
bool bFromBatchInitialization =
false)
override;
27 virtual bool Equip()
override;
28 virtual bool UnEquip(
bool bForce=
false)
override;
29 virtual bool GetProjectileTransform_Implementation(FTransform& Transform, FTransform& CosmeticTransform)
override;
30 virtual bool CanFire(
EWeaponError& ErrorMessage, uint8
Mode = 0)
const override;
31 UFUNCTION(BlueprintCallable, Category =
Weapon)
33 UFUNCTION(BlueprintCallable, Category =
Weapon)
34 UVehicleSeatComponent* GetSeat()
const;
36 bool ShouldProcessViewRotation()
const;
37 void SetSeatOwner(UVehicleSeatComponent* NewSeatOwner);
38 void ProcessViewRotation();
39 void UpdateRotation(FRotator& Rotation, FRotator& DeltaRotation,
float DeltaTime);
40 void GetInterpolatedRotation(FRotator& Rotation,
const FRotator& Target,
float DeltaTime);
41 void ClampRotation(FRotator& Rotation);
43 virtual void PlayWeaponFireEffects(uint8 BurstCounter = 0);
46 virtual void ProcessViewRotation(
float DeltaTime, FRotator& OutViewRotation, FRotator& OutDeltaRot,
bool& bUseDefaultProcess);
47 virtual TArray<AActor*> GetIgnoredActors()
override;
52 UVehicleSeatComponent* SeatOwner = NULL;
55 bool bLockRotation = false;
58 UPROPERTY(EditDefaultsOnly, Category = "
Vehicle Weapon", meta = (EditCondition="bLockRotation"))
59 float YawClamp = -1.f;
61 UPROPERTY(EditDefaultsOnly, Category = "
Vehicle Weapon", meta = (EditCondition="bLockRotation"))
62 float PitchClampUp = -1.f;
64 UPROPERTY(EditDefaultsOnly, Category = "
Vehicle Weapon", meta = (EditCondition = "bLockRotation"))
65 float PitchClampDown = -1.f;
68 bool bRotationToRate = false;
71 bool bUseSmoothRotation = true;
73 UPROPERTY(EditDefaultsOnly, Category = "
Vehicle Weapon", meta = (EditCondition="bRotationToRate"))
74 float RotationRate = -1.f;
76 UPROPERTY(EditDefaultsOnly, Category = "
Vehicle Weapon", meta = (EditCondition = "bRotationToRate && bUseSmoothRotation"))
77 float SmoothRotationRate = 7.0f;
79 UPROPERTY(EditDefaultsOnly, Category = "
Vehicle Weapon", meta = (EditCondition = "bRotationToRate && bUseSmoothRotation"))
80 float SmoothThresholdDot = 0.95f;
83 FRotator RelativeRotation = FRotator(ForceInit);
85 float PitchRotationRate = 0.f;
87 float YawRotationRate = 0.f;
89 FDelegateHandle ViewUpdateHandle;
EWeaponError
Definition: WeaponComponent.h:15
Definition: ProjectXPlayerController.h:83
Definition: ProjectXVehicle.h:56
Definition: WeaponInstanceProjectile.h:36
Definition: WeaponInstanceVehicle.h:16