5#include "CoreMinimal.h"
7#include "WeaponInstanceSpawnable.generated.h"
18 GENERATED_UCLASS_BODY()
21 virtual bool Fire(uint8
Mode,
float WorldTimeOverride)
override;
22 virtual void EndPlay(
const EEndPlayReason::Type EndPlayReason)
override;
23 virtual void OwnerDied()
override;
24 virtual bool CanReload(
EWeaponError& ErrorMessage)
const override;
25 virtual bool Reload(
float WorldTimeOverride)
override;
26 virtual bool UnEquip(
bool bForce =
false)
override;
30 virtual void TickComponent(
float DeltaTime,
enum ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction)
override;
31 virtual void DisplayDeployMarker();
32 virtual void HideDeployMarker();
33 virtual bool UpdateDeployMarker();
34 virtual void InitializeWeapon(
bool bFromBatchInitialization =
false)
override;
37 virtual bool ValidateDeploy(FTransform& Transform)
const;
40 UFUNCTION(BlueprintNativeEvent)
41 void GetSpawnTransform(FTransform& SpawnTransform);
43 UFUNCTION(BlueprintCallable, Category = Spawnable)
44 TSubclassOf<
ADeployable> GetDeployableClass()
const {
return DeployableClass; }
45 UPROPERTY(BlueprintAssignable)
46 FSpawnableEventSignature ActiveSpawnableEvent;
48 UFUNCTION(BlueprintCallable, Category = Spawnable)
49 bool CanInteractWithActiveDeployables() const;
51 UFUNCTION(
Server, Reliable, WithValidation)
52 void Server_SpawnActor(const FTransform& DeployTransform);
55 virtual
void DestroyOldestDeployable();
57 virtual
void OnDeployableSpawned(
ADeployable* DeployedActor);
59 virtual
void OnDeployableDestroyed(
ADeployable* DeployedActor);
66 bool bFireValidated = false;
69 UPROPERTY(EditDefaultsOnly, Category = "Deployable
Weapon")
70 float GroundCheckDistance = 100.f;
73 UPROPERTY(EditDefaultsOnly, Category = "Deployable
Weapon")
74 float DeployableForwardOffset = 500.f;
80 UPROPERTY(EditDefaultsOnly, Category = "Deployable
Weapon")
84 UPROPERTY(EditDefaultsOnly, Category = "Deployable
Weapon")
88 UPROPERTY(EditDefaultsOnly, Category = "Deployable
Weapon")
89 bool bUseWorldBasedDeployment = true;
91 UPROPERTY(EditDefaultsOnly, Category = "Deployable
Weapon", meta = (EditCondition = "!bUseWorldBasedDeployment"))
92 bool bUseProjectileBasedDeployment = false;
94 UPROPERTY(EditDefaultsOnly, Category = "Deployable
Weapon", meta = (EditCondition = "bUseWorldBasedDeployment || bUseProjectileBasedDeployment"))
95 FVector RelativeOffset = FVector::ZeroVector;
97 UPROPERTY(EditDefaultsOnly, Category = "Deployable
Weapon", meta = (EditCondition = "bUseWorldBasedDeployment"))
98 float DeployDistanceLeniency = 200.f;
101 UPROPERTY(EditDefaultsOnly, Category = "Deployable
Weapon")
102 bool bFireAndForgetDeployables = true;
104 float DeployableExtraTimeMultiplier = 1.0f;
EWeaponError
Definition: WeaponComponent.h:15
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FSpawnableEventSignature)
Definition: Deployable.h:47
Definition: DeployableMarker.h:35
Definition: WeaponInstance.h:220
Definition: WeaponInstanceSpawnable.h:17