Merge pull request 'Solved movement and basic replication' (#1) from multiplayerv2 into main
Reviewed-on: http://git.keeper317.com/Keeper317/open-conflict/pulls/1
This commit is contained in:
File diff suppressed because one or more lines are too long
BIN
Content/Input/Default_IMC.uasset
Normal file
BIN
Content/Input/Default_IMC.uasset
Normal file
Binary file not shown.
BIN
Content/Input/Jump_IA.uasset
Normal file
BIN
Content/Input/Jump_IA.uasset
Normal file
Binary file not shown.
BIN
Content/Input/Look_IA.uasset
Normal file
BIN
Content/Input/Look_IA.uasset
Normal file
Binary file not shown.
BIN
Content/Input/Move_IA.uasset
Normal file
BIN
Content/Input/Move_IA.uasset
Normal file
Binary file not shown.
BIN
Content/ProofOfConcept/DDICharacter_BP.uasset
Normal file
BIN
Content/ProofOfConcept/DDICharacter_BP.uasset
Normal file
Binary file not shown.
BIN
Content/ProofOfConcept/DDIGamemode.uasset
Normal file
BIN
Content/ProofOfConcept/DDIGamemode.uasset
Normal file
Binary file not shown.
BIN
Content/ProofOfConcept/DDIPlayerController_BP.uasset
Normal file
BIN
Content/ProofOfConcept/DDIPlayerController_BP.uasset
Normal file
Binary file not shown.
Binary file not shown.
BIN
Content/Worlds/_GENERATED/Core/Box_57D2F4E3.uasset
Normal file
BIN
Content/Worlds/_GENERATED/Core/Box_57D2F4E3.uasset
Normal file
Binary file not shown.
@@ -7,7 +7,10 @@
|
||||
{
|
||||
"Name": "OpenConflict",
|
||||
"Type": "Runtime",
|
||||
"LoadingPhase": "Default"
|
||||
"LoadingPhase": "Default",
|
||||
"AdditionalDependencies": [
|
||||
"Engine"
|
||||
]
|
||||
}
|
||||
],
|
||||
"Plugins": [
|
||||
|
||||
5
Source/OpenConflict/DDIGamemodeBase.cpp
Normal file
5
Source/OpenConflict/DDIGamemodeBase.cpp
Normal file
@@ -0,0 +1,5 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
|
||||
#include "DDIGamemodeBase.h"
|
||||
|
||||
17
Source/OpenConflict/DDIGamemodeBase.h
Normal file
17
Source/OpenConflict/DDIGamemodeBase.h
Normal file
@@ -0,0 +1,17 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "GameFramework/GameModeBase.h"
|
||||
#include "DDIGamemodeBase.generated.h"
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UCLASS()
|
||||
class OPENCONFLICT_API ADDIGamemodeBase : public AGameModeBase
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
};
|
||||
35
Source/OpenConflict/PlayerCharacter/DDICharacter.cpp
Normal file
35
Source/OpenConflict/PlayerCharacter/DDICharacter.cpp
Normal file
@@ -0,0 +1,35 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
|
||||
#include "DDICharacter.h"
|
||||
|
||||
// Sets default values
|
||||
ADDICharacter::ADDICharacter()
|
||||
{
|
||||
// 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;
|
||||
bReplicates = true;
|
||||
// bReplicateMovement = true;
|
||||
|
||||
CameraComponent = CreateDefaultSubobject<UCameraComponent>(TEXT("CameraComponent"));
|
||||
CameraComponent->SetupAttachment(GetMesh());
|
||||
CameraComponent->SetRelativeLocation(FVector(0.0f, 0.0f, 50.0f));
|
||||
CameraComponent->bUsePawnControlRotation = true;
|
||||
|
||||
}
|
||||
|
||||
// Called when the game starts or when spawned
|
||||
void ADDICharacter::BeginPlay()
|
||||
{
|
||||
Super::BeginPlay();
|
||||
|
||||
}
|
||||
|
||||
// Called every frame
|
||||
void ADDICharacter::Tick(float DeltaTime)
|
||||
{
|
||||
Super::Tick(DeltaTime);
|
||||
|
||||
}
|
||||
|
||||
|
||||
29
Source/OpenConflict/PlayerCharacter/DDICharacter.h
Normal file
29
Source/OpenConflict/PlayerCharacter/DDICharacter.h
Normal file
@@ -0,0 +1,29 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "Camera/CameraComponent.h"
|
||||
#include "GameFramework/Character.h"
|
||||
#include "DDICharacter.generated.h"
|
||||
|
||||
UCLASS()
|
||||
class OPENCONFLICT_API ADDICharacter : public ACharacter
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
// Sets default values for this character's properties
|
||||
ADDICharacter();
|
||||
|
||||
protected:
|
||||
// Called when the game starts or when spawned
|
||||
virtual void BeginPlay() override;
|
||||
|
||||
public:
|
||||
// Called every frame
|
||||
virtual void Tick(float DeltaTime) override;
|
||||
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Camera")
|
||||
UCameraComponent* CameraComponent;
|
||||
};
|
||||
100
Source/OpenConflict/PlayerCharacter/DDIPlayerController.cpp
Normal file
100
Source/OpenConflict/PlayerCharacter/DDIPlayerController.cpp
Normal file
@@ -0,0 +1,100 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
|
||||
#include "DDIPlayerController.h"
|
||||
#include "EnhancedInputComponent.h"
|
||||
#include "EnhancedInputSubsystems.h"
|
||||
#include "GameFramework/Character.h"
|
||||
|
||||
ADDIPlayerController::ADDIPlayerController()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
void ADDIPlayerController::BeginPlay()
|
||||
{
|
||||
Super::BeginPlay();
|
||||
|
||||
if (UEnhancedInputLocalPlayerSubsystem* Subsystem = ULocalPlayer::GetSubsystem<UEnhancedInputLocalPlayerSubsystem>(GetLocalPlayer()))
|
||||
{
|
||||
for (UInputMappingContext* CurrentContext : MappingContexts)
|
||||
{
|
||||
Subsystem->AddMappingContext(CurrentContext, 0);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void ADDIPlayerController::SetupInputComponent()
|
||||
{
|
||||
Super::SetupInputComponent();
|
||||
|
||||
if (UEnhancedInputComponent* Subsystem = Cast<UEnhancedInputComponent>(InputComponent))
|
||||
{
|
||||
if (MoveAction) Subsystem->BindAction(MoveAction, ETriggerEvent::Triggered, this, &ADDIPlayerController::Move);
|
||||
if (LookAction) Subsystem->BindAction(LookAction, ETriggerEvent::Triggered, this, &ADDIPlayerController::Look);
|
||||
if (JumpAction)
|
||||
{
|
||||
Subsystem->BindAction(JumpAction, ETriggerEvent::Started, this, &ADDIPlayerController::Jump);
|
||||
Subsystem->BindAction(JumpAction, ETriggerEvent::Completed, this, &ADDIPlayerController::JumpEnd);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ADDIPlayerController::OnPossess(APawn* InPawn)
|
||||
{
|
||||
Super::OnPossess(InPawn);
|
||||
|
||||
// is this a shooter character?
|
||||
// if (ADDICharacter* DDICharacter = Cast<ADDICharacter>(InPawn))
|
||||
// {
|
||||
// // add the player tag
|
||||
// DDICharacter->Tags.Add(PlayerPawnTag);
|
||||
// }
|
||||
}
|
||||
|
||||
void ADDIPlayerController::Move(const FInputActionValue& Value)
|
||||
{
|
||||
const FVector2D MovementVector = Value.Get<FVector2D>();
|
||||
|
||||
if (APawn* ControlledPawn = GetPawn())
|
||||
{
|
||||
FRotator CameraRotation = GetControlRotation();
|
||||
FRotator YawRotation(0.f, CameraRotation.Yaw, 0.f);
|
||||
|
||||
FVector ForwardDiection = FRotationMatrix(YawRotation).GetUnitAxis(EAxis::X);
|
||||
FVector RightDirection = FRotationMatrix(YawRotation).GetUnitAxis(EAxis::Y);
|
||||
|
||||
ControlledPawn->AddMovementInput(ForwardDiection, MovementVector.Y);
|
||||
ControlledPawn->AddMovementInput(RightDirection,MovementVector.X);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void ADDIPlayerController::Look(const FInputActionValue& Value)
|
||||
{
|
||||
const FVector2D LookAxisVector = Value.Get<FVector2D>();
|
||||
|
||||
if (APawn* ControlledPawn = GetPawn())
|
||||
{
|
||||
AddYawInput(LookAxisVector.X);
|
||||
AddPitchInput(LookAxisVector.Y);
|
||||
}
|
||||
}
|
||||
|
||||
void ADDIPlayerController::Jump(const FInputActionValue& Value)
|
||||
{
|
||||
if (ACharacter* character = GetCharacter())
|
||||
{
|
||||
character->Jump();
|
||||
}
|
||||
}
|
||||
|
||||
void ADDIPlayerController::JumpEnd(const FInputActionValue& Value)
|
||||
{
|
||||
if (ACharacter* character = GetCharacter())
|
||||
{
|
||||
character->StopJumping();
|
||||
}
|
||||
}
|
||||
70
Source/OpenConflict/PlayerCharacter/DDIPlayerController.h
Normal file
70
Source/OpenConflict/PlayerCharacter/DDIPlayerController.h
Normal file
@@ -0,0 +1,70 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "EnhancedInputComponent.h"
|
||||
#include "EnhancedInputSubsystems.h"
|
||||
#include "GameFramework/PlayerController.h"
|
||||
#include "DDIPlayerController.generated.h"
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UCLASS()
|
||||
class OPENCONFLICT_API ADDIPlayerController : public APlayerController
|
||||
{
|
||||
GENERATED_BODY()
|
||||
/*UPROPERTY and UFUNCTION declarations*/
|
||||
private:
|
||||
/*Properties*/
|
||||
|
||||
/*Functions*/
|
||||
|
||||
protected:
|
||||
/*Properties*/
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "INPUT", meta = (AllowPrivateAccess = "true"))
|
||||
TArray<class UInputMappingContext*> MappingContexts;
|
||||
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "INPUT", meta = (AllowPrivateAccess = "true"))
|
||||
UInputAction* JumpAction;
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "INPUT", meta = (AllowPrivateAccess = "true"))
|
||||
UInputAction* MoveAction;
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "INPUT", meta = (AllowPrivateAccess = "true"))
|
||||
UInputAction* LookAction;
|
||||
|
||||
UPROPERTY(EditAnywhere, Category="Shooter")
|
||||
FName PlayerPawnTag = FName("Player");
|
||||
|
||||
/*Functions*/
|
||||
|
||||
|
||||
public:
|
||||
/*Properties*/
|
||||
|
||||
/*Functions*/
|
||||
|
||||
/*C++ only declarations*/
|
||||
private:
|
||||
/*Properties*/
|
||||
|
||||
/*Functions*/
|
||||
|
||||
protected:
|
||||
/*Properties*/
|
||||
|
||||
/*Functions*/
|
||||
virtual void SetupInputComponent() override;
|
||||
virtual void BeginPlay() override;
|
||||
virtual void OnPossess(APawn *InPawn) override;
|
||||
void Move(const FInputActionValue& Value);
|
||||
void Look(const FInputActionValue& Value);
|
||||
void Jump(const FInputActionValue& Value);
|
||||
void JumpEnd(const FInputActionValue& Value);
|
||||
|
||||
public:
|
||||
/*Properties*/
|
||||
|
||||
/*Functions*/
|
||||
ADDIPlayerController();
|
||||
};
|
||||
Reference in New Issue
Block a user