52 lines
1.7 KiB
C++
52 lines
1.7 KiB
C++
// Copyright 2025 https://yuewu.dev/en All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "Runtime/Launch/Resources/Version.h"
|
|
#include "GMS_ZipliningMode.h"
|
|
#include "MovementModeTransition.h"
|
|
#include "GMS_ZiplineModeTransition.generated.h"
|
|
|
|
|
|
/**
|
|
* Transition that handles starting ziplining based on input. Character must be airborne to catch the
|
|
* zipline, regardless of input.
|
|
*/
|
|
UCLASS(Blueprintable, BlueprintType)
|
|
class UGMS_ZiplineStartTransition : public UBaseMovementModeTransition
|
|
{
|
|
GENERATED_UCLASS_BODY()
|
|
#if ENGINE_MINOR_VERSION >= 6
|
|
virtual FTransitionEvalResult Evaluate_Implementation(const FSimulationTickParams& Params) const override;
|
|
#else
|
|
virtual FTransitionEvalResult OnEvaluate(const FSimulationTickParams& Params) const override;
|
|
#endif
|
|
|
|
UPROPERTY(EditAnywhere, Category = "Ziplining")
|
|
FName ZipliningModeName = ExtendedModeNames::Ziplining;
|
|
|
|
UPROPERTY(EditAnywhere, Category = "Ziplining")
|
|
FGameplayTag ZipliningInputTag;
|
|
};
|
|
|
|
/**
|
|
* Transition that handles exiting ziplining based on input
|
|
*/
|
|
UCLASS(Blueprintable, BlueprintType)
|
|
class UGMS_ZiplineEndTransition : public UBaseMovementModeTransition
|
|
{
|
|
GENERATED_UCLASS_BODY()
|
|
#if ENGINE_MINOR_VERSION >= 6
|
|
virtual FTransitionEvalResult Evaluate_Implementation(const FSimulationTickParams& Params) const override;
|
|
virtual void Trigger_Implementation(const FSimulationTickParams& Params) override;
|
|
#else
|
|
virtual FTransitionEvalResult OnEvaluate(const FSimulationTickParams& Params) const override;
|
|
virtual void OnTrigger(const FSimulationTickParams& Params) override;
|
|
#endif
|
|
|
|
// Mode to enter when exiting the zipline
|
|
UPROPERTY(EditAnywhere, Category = "Ziplining")
|
|
FName AutoExitToMode = DefaultModeNames::Falling;
|
|
};
|