#pragma once #include "CoreMinimal.h" #include "Components/ActorComponent.h" #include "GameplayTagContainer.h" #include "BPC_MovementStateSystem.generated.h" DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnMovementModeChanged, FGameplayTag, NewMode, FGameplayTag, OldMode); UCLASS(Blueprintable, ClassGroup=(Framework), meta=(BlueprintSpawnableComponent)) class PG_FRAMEWORK_API UBPC_MovementStateSystem : public UActorComponent { GENERATED_BODY() public: UBPC_MovementStateSystem(); UPROPERTY(BlueprintReadOnly, Category = "Framework|Movement") FGameplayTag CurrentMovementMode; UPROPERTY(BlueprintAssignable, Category = "Framework|Events") FOnMovementModeChanged OnMovementModeChanged; };