AzureAbyss/Source/the_twilight_abyss/PlayerTemp/TempCharacter.cpp

76 lines
2.3 KiB
C++

// Fill out your copyright notice in the Description page of Project Settings.
#include "TempCharacter.h"
#include "../../../Plugins/Developer/RiderLink/Source/RD/thirdparty/clsocket/src/ActiveSocket.h"
// CONSTRUCTOR
ATempCharacter::ATempCharacter()
{
// Set this character to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
}
// Called when the game starts or when spawned
void ATempCharacter::BeginPlay()
{
Super::BeginPlay();
}
//Binds the input we made in the setup player component to the forward vector
void ATempCharacter::ForwardInput(float Axis)
{
AddMovementInput(GetActorForwardVector()* Axis);
}
//Binds the input we made in the setup player component to the right vector
void ATempCharacter::RightMoveInput(float Axis)
{
AddMovementInput(GetActorRightVector()* Axis);
}
// Called every frame
void ATempCharacter::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
}
// Called to bind functionality to input
void ATempCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
Super::SetupPlayerInputComponent(PlayerInputComponent);
PlayerInputComponent->BindAxis(TEXT("Move Forward / Backward"), this, &ATempCharacter::ForwardInput);
PlayerInputComponent->BindAxis(TEXT("Move Right / Left"), this, &ATempCharacter::RightMoveInput);
PlayerInputComponent->BindAxis(TEXT("Turn Right / Left Mouse"), this, &ATempCharacter::AddControllerYawInput);
PlayerInputComponent->BindAxis(TEXT("Look Up / Down Mouse"), this, &ATempCharacter::AddControllerPitchInput);
PlayerInputComponent->BindAction("Interact", IE_Pressed, this, &ATempCharacter::KeyPressed); // custom keybind Interact
}
void ATempCharacter::KeyPressed()
{
//vars for LineTraceSingleByChannel
TraceDistance = 1000;
FHitResult Hit;
FVector Start = GetActorLocation();
FVector End = Start + TraceDistance * GetActorForwardVector();
FCollisionQueryParams TraceParams;
TraceParams.AddIgnoredActor(this);
bool bHit = GetWorld()->LineTraceSingleByChannel(Hit,Start,End,ECC_Visibility, TraceParams);
if(bHit)
{
if(Hit.GetActor()->ActorHasTag("MerchantTag"))
{
DrawDebugLine(GetWorld(),Start, End, FColor::Green, false, 1.0f);
UE_LOG(LogTemp, Display, TEXT("HIT: %s"), *Hit.GetActor()->GetName());
}
}
}