OLS/Source/ols/Public/Characters/OLSCharacter.h

57 lines
1.7 KiB
C
Raw Normal View History

2024-09-22 21:11:19 +00:00
// © 2024 Long Ly. All rights reserved. Any unauthorized use, reproduction, or distribution of this trademark is strictly prohibited and may result in legal action.
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Character.h"
#include "Interfaces/OLSAnimationInterface.h"
#include "Interfaces/OLSMoveableInterface.h"
#include "Interfaces/OLSReplicatedMovableInterface.h"
#include "OLSCharacter.generated.h"
UCLASS()
class OLS_API AOLSCharacter : public ACharacter,
public IOLSMoveableInterface,
public IOLSAnimationInterface
{
GENERATED_BODY()
public:
// Sets default values for this character's properties
AOLSCharacter(const FObjectInitializer& objectInitializer);
protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
public:
// Called every frame
virtual void Tick(float DeltaTime) override;
// Called to bind functionality to input
virtual void SetupPlayerInputComponent(class UInputComponent* playerInputComponent) override;
public:
//~ IOLSMoveableInterface BEGIN
virtual class UPawnMovementComponent* GetMovementComponent() const override;
virtual class UOLSLocomotionComponent* GetLocomotionComponent() const override;
virtual float GetMaxAcceleration() const override;
virtual FVector GetCurrentAcceleration() const override;
virtual EMovementMode GetMovementMode() const override;
virtual void SetMaxWalkSpeed(const float newMaxWalkSpeed) override;
//~ IOLSMoveableInterface END
//~ IOLSAnimationInterface BEGIN
virtual class UAnimInstance* GetAnimInstance() const override;
//~ IOLSAnimationInterface END
protected:
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = Components)
TObjectPtr<class UOLSLocomotionComponent> LocomotionComponent = nullptr;
};