119 lines
4.4 KiB
C++
Executable file
119 lines
4.4 KiB
C++
Executable file
#pragma once
|
|
#include "CoreMinimal.h"
|
|
#include "UObject/NoExportTypes.h"
|
|
#include "UObject/NoExportTypes.h"
|
|
#include "UObject/NoExportTypes.h"
|
|
#include "Engine/EngineTypes.h"
|
|
#include "GameplayTagContainer.h"
|
|
#include "AnimatedItem.h"
|
|
#include "ELaserPointerMarkerType.h"
|
|
#include "LaserPointerData.h"
|
|
#include "MarkerPlacedDelegateDelegate.h"
|
|
#include "Templates/SubclassOf.h"
|
|
#include "LaserPointerItem.generated.h"
|
|
|
|
class AActor;
|
|
class AFSDGameState;
|
|
class ALaserPointerMarker;
|
|
class ALaserPointerWaypoint;
|
|
class UDialogDataAsset;
|
|
class UObject;
|
|
class UObjectInfoComponent;
|
|
class UPrimitiveComponent;
|
|
class USceneComponent;
|
|
class UTerrainMaterial;
|
|
class UTexture2D;
|
|
|
|
UCLASS(Abstract, Blueprintable)
|
|
class ALaserPointerItem : public AAnimatedItem {
|
|
GENERATED_BODY()
|
|
public:
|
|
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
FMarkerPlacedDelegate OnMarkerPlaced;
|
|
|
|
protected:
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
TSubclassOf<ALaserPointerMarker> MarkerType;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
TSubclassOf<ALaserPointerMarker> SecondaryMarkerType;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
|
|
TWeakObjectPtr<ALaserPointerMarker> ActiveMarker;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
FGameplayTagContainer enemyTags;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
TSubclassOf<ALaserPointerWaypoint> WaypointType;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
int32 MaxWaypoints;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
|
|
TArray<ALaserPointerWaypoint*> Waypoints;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
|
|
int32 NextWaypointIndex;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
float MarkerLifeTime;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
UDialogDataAsset* DefaultLookAtShout;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
|
|
UDialogDataAsset* DefaultEnemyShout;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
|
|
USceneComponent* PointerComponent;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
|
|
FHitResult LookAtHit;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Export, Transient, meta=(AllowPrivateAccess=true))
|
|
TWeakObjectPtr<UObjectInfoComponent> LookAtInfo;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
|
|
TWeakObjectPtr<UTerrainMaterial> LookAtTerrainMaterial;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
|
|
FLaserPointerData LookAtData;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
|
|
float LookAtDistance;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
|
|
UDialogDataAsset* LookAtShout;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
|
|
UDialogDataAsset* MissionControlLookAtShout;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
|
|
AFSDGameState* GameState;
|
|
|
|
public:
|
|
ALaserPointerItem();
|
|
protected:
|
|
UFUNCTION(BlueprintCallable, meta=(WorldContext="WorldContextObject"))
|
|
void UnlockToMinersManual(UObject* WorldContextObject, FGuid ObjectID);
|
|
|
|
public:
|
|
UFUNCTION(BlueprintCallable, BlueprintNativeEvent)
|
|
void ToggleLaserVisible(bool aVisible);
|
|
|
|
protected:
|
|
UFUNCTION(BlueprintCallable, Reliable, Server)
|
|
void ServerPlaceMarker(FVector Location, AActor* Actor, UPrimitiveComponent* Cmponent, UTerrainMaterial* TerrainMaterial, ELaserPointerMarkerType eMarkerType);
|
|
|
|
UFUNCTION(BlueprintCallable, Reliable, Server)
|
|
void Server_SecondaryUse();
|
|
|
|
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
|
|
void OnPointOfInterest(AActor* TargetActor, FVector TargetLocation, UTexture2D* TargetIcon);
|
|
|
|
UFUNCTION(BlueprintCallable, BlueprintNativeEvent, BlueprintPure)
|
|
void GetPointTransform(FTransform& PointTransform);
|
|
|
|
};
|
|
|