Space Plunder
Loading...
Searching...
No Matches
WeaponPickup.h
Go to the documentation of this file.
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "CoreMinimal.h"
9#include "WeaponPickup.generated.h"
10
11
19UCLASS()
21{
22 GENERATED_BODY()
23
24public:
25 explicit AWeaponPickup(const FObjectInitializer& ObjectInitializer);
26
27
28
29 //- For when weapon is spawned //
30 UFUNCTION(BlueprintCallable, Category="Weapons|Pickup")
31 virtual void WeaponDroppedEvent(const FWeaponData_T& DroppedWeaponData) override;
32
33 UFUNCTION(BlueprintCallable, Category="Weapons|Pickup")
34 virtual void AddImpulseToWeapon(const FVector& Impulse, const FName& BoneName = NAME_None, const bool bVelChange = false) override;
35
36 virtual void OnFinishSpawning() override;
37
38 UFUNCTION(NetMulticast, Reliable, Category="Pickup")
39 virtual void MulticastOnFinishSpawning();
40
41protected:
42 virtual void OnConstruction(const FTransform& Transform) override;
43 virtual void BeginPlay() override;
44
45 UFUNCTION(BlueprintCallable, Category="Weapons|Pickup")
46 void SetMesh() const;
47 UFUNCTION(BlueprintCallable, Category="Weapons|Pickup")
48 void SetAttachments();
49 UFUNCTION(BlueprintCallable, Category="Weapons|Pickup")
50 void AddAttachment(const FString& AttachmentID);
51
52 UFUNCTION(NetMulticast, Reliable, Category="Weapons|Pickup")
53 virtual void Multicast_WeaponDroppedEvent(const FWeaponData_T& DroppedWeaponData);
54
55
57 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Pickup")
58 bool bManuallySpawned = true;
59
61 UPROPERTY(Replicated, EditAnywhere, BlueprintReadWrite, Category = "Pickup")
62 FString WeaponID = "DefaultWeapon";
64 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Pickup")
65 bool bOverrideWeaponData = false;
66 //- Weapon Data //
67 UPROPERTY(Replicated, EditAnywhere, BlueprintReadWrite, Category = "Pickup", meta=(EditCondition="bOverrideWeaponData"))
68 FWeaponData_T WeaponPickupData;
69
70
71 //- Visual Components
72 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Components")
73 class USkeletalMeshComponent* GunMesh;
74 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Components")
75 class UCapsuleComponent* CapsuleComponent;
76
77 //- Interface Functions //
78 virtual void OnInteract(AActor* Caller, const int32 InteractionType) override;
79 virtual void InteractionComplete() override;
80 virtual void OnEndInteract(AActor* Caller) override;
81 virtual bool OnOverlap(AActor* Caller) override;
82 virtual void StartFocus() override;
83 virtual void EndFocus() override;
84
85
86 virtual void ToggleSwitch(AActor* Caller, bool bOn) override;
87 virtual FVector GetInteractionLocation() const override;
88 virtual UPrimitiveComponent* GetGrabComponent() const override{return Cast<UPrimitiveComponent>(RootComponent);};
89
90private:
91
92
93};
UCLASS(Blueprintable, BlueprintType, ClassGroup=(BucciGames), meta=(BlueprintSpawnableComponent)) class CHATSYSTEM_API UChatSystemComponent
Definition ChatSystemComponent.h:13
Definition InteractableActorWithPrompt.h:18
Represents a weapon pickup in the game.
Definition WeaponPickup.h:21
Definition WeaponPickupInterface.h:21
Struct representing data of a weapon that changes.
Definition WeaponStructs.h:861