Rework interaction system

This commit is contained in:
koritsa
2026-05-28 21:53:34 +03:00
parent 94c8f91220
commit 4bc12d2f0c
26 changed files with 496 additions and 216 deletions
@@ -9,17 +9,15 @@
#include "NakedDesire/Global/Gait.h"
#include "NakedDesire/Global/NakedDesireUserSettings.h"
#include "NakedDesire/Global/Stance.h"
#include "NakedDesire/UI/RadialMenu/RadialMenuController.h"
#include "Perception/AISightTargetInterface.h"
#include "NakedDesireCharacter.generated.h"
class UInteractionComponent;
class ANakedDesireHUD;
class UClothingItem;
class UClothingItemInstance;
class UClothingSlotsData;
class URadialMenuController;
class UAIPerceptionStimuliSourceComponent;
class UInteractionManager;
class UClothingManager;
class UStatsManager;
class UMissionsManager;
@@ -27,7 +25,6 @@ class ANPCAIController;
class ULocationData;
DECLARE_MULTICAST_DELEGATE_OneParam(FOnNoticedSignature, ANPCAIController*);
DECLARE_MULTICAST_DELEGATE_OneParam(FOnAreaChangeSignature, ULocationData*);
UCLASS(config=Game)
class ANakedDesireCharacter : public ACharacter, public IAISightTargetInterface
@@ -55,6 +52,9 @@ public:
UPROPERTY(EditDefaultsOnly, Category = "Input")
UInputAction* EquipmentAction;
UPROPERTY(EditDefaultsOnly, Category = "Input")
UInputAction* InteractAction;
// Clothing
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Clothing")
@@ -136,14 +136,11 @@ public:
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
UMissionsManager* MissionsManager;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
UInteractionManager* InteractionManager;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
UAIPerceptionStimuliSourceComponent* StimuliSourceComponent;
UPROPERTY(EditDefaultsOnly)
TObjectPtr<URadialMenuController> RadialMenuController;
UPROPERTY(EditDefaultsOnly, Category = "Interaction")
TObjectPtr<UInteractionComponent> InteractionComponent;
// Variables
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
@@ -159,18 +156,12 @@ public:
FOnNoticedSignature OnNoticed;
FOnAreaChangeSignature OnAreaEnter;
FOnAreaChangeSignature OnAreaExit;
void NotifyNoticed(ANPCAIController* NPCController);
void SetIsRunning(bool Value);
UFUNCTION(BlueprintPure)
EGait GetGait() const;
UFUNCTION(BlueprintPure)
EStance GetStance() const;
virtual void Tick(float DeltaTime) override;
virtual void SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) override;
virtual void NotifyControllerChanged() override;
@@ -180,14 +171,6 @@ public:
private:
EGait Gait = EGait::Walk;
EStance Stance = EStance::Stand;
UFUNCTION()
void OnBeginOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp,
int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult);
UFUNCTION()
void OnEndOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp,
int32 OtherBodyIndex);
UFUNCTION()
void OnClothingEquip(UClothingItemInstance* ClothingItemInstance);
@@ -204,8 +187,7 @@ private:
void OnRunRelease(const FInputActionValue& Value);
void OnCrouchToggle(const FInputActionValue& Value);
void OnEquipmentPress(const FInputActionValue& Value);
void BuildRadialMenuEntries();
void OnInteractPress(const FInputActionValue& Value);
bool CheckSight(const FVector& StartLocation, const FVector& EndLocation, FHitResult& HitResult, const AActor* IgnoreActor);