DRG-Femboy-Voice/Source/FSD/Public/LaserPointerItem.h
2025-04-15 12:39:31 -07:00

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);
};