Skip to content

Commit

Permalink
redid FCardinal and did the orange move arrow
Browse files Browse the repository at this point in the history
  • Loading branch information
goodtrailer committed Apr 2, 2020
1 parent d981ba6 commit 51660c4
Show file tree
Hide file tree
Showing 12 changed files with 253 additions and 86 deletions.
2 changes: 1 addition & 1 deletion Config/DefaultGame.ini
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[/Script/EngineSettings.GeneralProjectSettings]
ProjectID=FA4C324E4A5C4B80062CE78CD25A8147
ProjectName=Paper
ProjectVersion=0.3.0.2
ProjectVersion=0.3.3
Description="ue4 videogame based on paper board games "

[/Script/UnrealEd.ProjectPackagingSettings]
Expand Down
Binary file modified Content/Blueprints/BP_Ground.uasset
Binary file not shown.
Binary file modified Content/Blueprints/BP_Unit.uasset
Binary file not shown.
Binary file modified Content/Maps/Episode_01.umap
Binary file not shown.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Paper v0.3.1
# Paper v0.3.3
UE4 videogame based on paper board games from my childhood. Multiplayer through IP connections like Minecraft. It works over LAN and can work over the internet either through port forwarding or P2P VPNs like Hamachi or Wippien.

# Screenshots (WIP)
Expand Down
45 changes: 23 additions & 22 deletions Source/Paper/BoardGenerator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,32 +42,33 @@ bool ABoardGenerator::SpawnUnit(ETeam team, TSubclassOf<AUnit> type)



void ABoardGenerator::Server_Move_Implementation(int start, int destination)
void ABoardGenerator::Server_Move_Implementation(int start, int destination, uint8 energyLeft)
{
if (UnitBoard[destination] == nullptr /* && check if destination is within range */)
{
if (IsRunningDedicatedServer())
Move(start, destination);
Multicast_Move(start, destination);
Move(start, destination, energyLeft);
Multicast_Move(start, destination, energyLeft);
}
}

bool ABoardGenerator::Server_Move_Validate(int start, int destination)
bool ABoardGenerator::Server_Move_Validate(int start, int destination, uint8 energyLeft)
{
return true;
}

void ABoardGenerator::Multicast_Move_Implementation(int start, int destination)
void ABoardGenerator::Multicast_Move_Implementation(int start, int destination, uint8 energyLeft)
{
Move(start, destination);
Move(start, destination, energyLeft);
}

void ABoardGenerator::Move(int start, int destination)
void ABoardGenerator::Move(int start, int destination, uint8 energyLeft)
{
UnitBoard[destination] = UnitBoard[start];
UnitBoard[start] = nullptr;
UnitBoard[destination]->Coordinates = destination;
UnitBoard[destination]->SetActorLocation(FVector(destination % BoardWidth * 200, destination / BoardWidth * 200, UnitBoard[destination]->GetActorLocation().Z));
UnitBoard[destination]->Energy = energyLeft;
}


Expand Down Expand Up @@ -117,45 +118,45 @@ void ABoardGenerator::GenerateBoard()
GroundBoard[CurrentBoardCoordinates] = GetWorld()->SpawnActor<AUnit>(GroundBP, SpawnLocation, SpawnRotation);

if (ColorsNearlyEqual(CurrentColor, ColorCode::Ground))
for (unsigned char q = FCardinal::Up; q <= FCardinal::Left; q++)
GroundBoard[CurrentBoardCoordinates]->bIsCollidable.Set(q, false);
for (uint8 q = 0; q <= 3; q++)
GroundBoard[CurrentBoardCoordinates]->bIsCollidable[q] = false;

// if directional ground
else if (ColorsNearlyEqual(CurrentColor, ColorCode::OneWayU))
GroundBoard[CurrentBoardCoordinates]->bIsCollidable.Set(FCardinal::Up, true);
GroundBoard[CurrentBoardCoordinates]->bIsCollidable[EDirection::Up] = true;
else if (ColorsNearlyEqual(CurrentColor, ColorCode::OneWayR))
GroundBoard[CurrentBoardCoordinates]->bIsCollidable.Set(FCardinal::Right, true);
GroundBoard[CurrentBoardCoordinates]->bIsCollidable[EDirection::Right] = true;
else if (ColorsNearlyEqual(CurrentColor, ColorCode::OneWayD))
GroundBoard[CurrentBoardCoordinates]->bIsCollidable.Set(FCardinal::Down, true);
GroundBoard[CurrentBoardCoordinates]->bIsCollidable[EDirection::Down] = true;
else if (ColorsNearlyEqual(CurrentColor, ColorCode::OneWayL))
GroundBoard[CurrentBoardCoordinates]->bIsCollidable.Set(FCardinal::Left, true);
GroundBoard[CurrentBoardCoordinates]->bIsCollidable[EDirection::Left] = true;
else if (ColorsNearlyEqual(CurrentColor, ColorCode::OneWayUL))
{
GroundBoard[CurrentBoardCoordinates]->bIsCollidable.Set(FCardinal::Up, true);
GroundBoard[CurrentBoardCoordinates]->bIsCollidable.Set(FCardinal::Left, true);
GroundBoard[CurrentBoardCoordinates]->bIsCollidable[EDirection::Up] = true;
GroundBoard[CurrentBoardCoordinates]->bIsCollidable[EDirection::Left] = true;
}
else if (ColorsNearlyEqual(CurrentColor, ColorCode::OneWayUR))
{
GroundBoard[CurrentBoardCoordinates]->bIsCollidable.Set(FCardinal::Up, true);
GroundBoard[CurrentBoardCoordinates]->bIsCollidable.Set(FCardinal::Right, true);
GroundBoard[CurrentBoardCoordinates]->bIsCollidable[EDirection::Up] = true;
GroundBoard[CurrentBoardCoordinates]->bIsCollidable[EDirection::Right] = true;

}
else if (ColorsNearlyEqual(CurrentColor, ColorCode::OneWayDR))
{
GroundBoard[CurrentBoardCoordinates]->bIsCollidable.Set(FCardinal::Down, true);
GroundBoard[CurrentBoardCoordinates]->bIsCollidable.Set(FCardinal::Right, true);
GroundBoard[CurrentBoardCoordinates]->bIsCollidable[EDirection::Down] = true;
GroundBoard[CurrentBoardCoordinates]->bIsCollidable[EDirection::Right] = true;
}
else if (ColorsNearlyEqual(CurrentColor, ColorCode::OneWayDL))
{
GroundBoard[CurrentBoardCoordinates]->bIsCollidable.Set(FCardinal::Down, true);
GroundBoard[CurrentBoardCoordinates]->bIsCollidable.Set(FCardinal::Left, true);
GroundBoard[CurrentBoardCoordinates]->bIsCollidable[EDirection::Down] = true;
GroundBoard[CurrentBoardCoordinates]->bIsCollidable[EDirection::Left] = true;
}

else
{
// if ground not explicitly normal nor directional, then the ground underneath is normal
for (unsigned char i = 0; i < 4; i++)
GroundBoard[CurrentBoardCoordinates]->bIsCollidable.Set(i, false);
GroundBoard[CurrentBoardCoordinates]->bIsCollidable[i] = false;
// surface layer now, so spawn 200 units up (size of a block)
SpawnLocation.Z += 200;

Expand Down
6 changes: 3 additions & 3 deletions Source/Paper/BoardGenerator.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,16 @@ class PAPER_API ABoardGenerator : public AActor
bool SpawnUnit(ETeam team, TSubclassOf<AUnit> type);

UFUNCTION(Server, Reliable, WithValidation)
void Server_Move(int start, int destination);
void Server_Move(int start, int destination, uint8 energyLeft);

protected:
virtual void BeginPlay() override;
void GenerateBoard();
bool ColorsNearlyEqual(FColor a, FColor b);

UFUNCTION(NetMulticast, Reliable)
void Multicast_Move(int start, int destination);
void Move(int start, int destination);
void Multicast_Move(int start, int destination, uint8 energyLeft);
void Move(int start, int destination, uint8 energyLeft);

public:
//BoardSpawn[team color (green ~ 0, red ~ 1)][spawn number (there can be multiple spawn locations)]
Expand Down
90 changes: 58 additions & 32 deletions Source/Paper/CameraPawn.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ void ACameraPawn::Tick(float DeltaTime)
FRotator Pitch(MouseY, 0.f, 0.f);
AddActorLocalRotation(Pitch * RotateSensitivity);
}
else if (bPanButtonDown && (SelectedUnit == nullptr || SelectedUnit->Team != Team))
else if (bPanButtonDown && (!IsTurn() || !SelectedUnit || (!SelectedUnit->Energy && SelectedUnit->Team == Team)))
AddActorLocalOffset(FVector(0.f, MouseX, MouseY) * -PanSensitivity * SpringArm->TargetArmLength / 1000);


Expand All @@ -67,7 +67,30 @@ void ACameraPawn::Tick(float DeltaTime)
}
if (bMoveOverlayIsOn && LastHoveredForMoveUnit != HoveredUnit)
{
UE_LOG(LogTemp, Display, TEXT("Update Move Arrow"))
if (MoveOverlayArray.Num())
for (auto MoveOverlay : MoveOverlayArray)
MoveOverlay->Destroy();
MoveOverlayArray.Empty();
if (HoveredUnit && MovableTiles.Contains(HoveredUnit->Coordinates))
{
UWorld* World = GetWorld();

int16 yRotation = 90 * static_cast<int>(MovableTiles[HoveredUnit->Coordinates].DirectionToSourceTile);
MoveOverlayArray.Add(World->SpawnActor<AActor>(MoveArrowBP, 200 * FVector(HoveredUnit->Coordinates % BoardGenerator->BoardWidth, HoveredUnit->Coordinates / BoardGenerator->BoardWidth, 1), FRotator(0, yRotation, 0)));
int CurrentTileCoordinates = MovableTiles[HoveredUnit->Coordinates].SourceTileCoordinates;
MoveOverlayArray.Add(World->SpawnActor<AActor>(MoveLineBP, 200 * FVector(CurrentTileCoordinates % BoardGenerator->BoardWidth, CurrentTileCoordinates / BoardGenerator->BoardWidth, 1), FRotator(0, 180 + yRotation, 0)));

for (int i = 1; i < SelectedUnit->Energy - MovableTiles[HoveredUnit->Coordinates].EnergyLeft; i++)
{
yRotation = 90 * static_cast<int>(MovableTiles[CurrentTileCoordinates].DirectionToSourceTile);
MoveOverlayArray.Add(World->SpawnActor<AActor>(MoveLineBP, 200 * FVector(CurrentTileCoordinates % BoardGenerator->BoardWidth, CurrentTileCoordinates / BoardGenerator->BoardWidth, 1), FRotator(0, yRotation, 0)));
MoveOverlayArray.Add(World->SpawnActor<AActor>(MoveJointBP, 200 * FVector(CurrentTileCoordinates % BoardGenerator->BoardWidth, CurrentTileCoordinates / BoardGenerator->BoardWidth, 1), FRotator::ZeroRotator));
CurrentTileCoordinates = MovableTiles[CurrentTileCoordinates].SourceTileCoordinates;
MoveOverlayArray.Add(World->SpawnActor<AActor>(MoveLineBP, 200 * FVector(CurrentTileCoordinates % BoardGenerator->BoardWidth, CurrentTileCoordinates / BoardGenerator->BoardWidth, 1), FRotator(0, 180 + yRotation, 0)));
}
UE_LOG(LogTemp, Display, TEXT("\n-------------------\n"))
}
// to check for next tick
LastHoveredForMoveUnit = HoveredUnit;
}

Expand Down Expand Up @@ -175,7 +198,7 @@ void ACameraPawn::SelectUnit()
else
SelectedUnit = BoardGenerator->UnitBoard[HoveredUnit->Coordinates];
bSelectButtonDown = true;
MoveOverlayOn();
MovableOverlayOn();
}
else
SelectedUnit = nullptr;
Expand All @@ -185,18 +208,16 @@ void ACameraPawn::MoveUnit()
{
bSelectButtonDown = false;
if (SelectedUnit != nullptr && IsTurn() && HoveredUnit != nullptr && MovableTiles.Contains(HoveredUnit->Coordinates) && SelectedUnit->Team == Team)
BoardGenerator->Server_Move(SelectedUnit->Coordinates, HoveredUnit->Coordinates);
MoveOverlayOff();
BoardGenerator->Server_Move(SelectedUnit->Coordinates, HoveredUnit->Coordinates, MovableTiles[HoveredUnit->Coordinates].EnergyLeft);
MovableOverlayOff();
}

void ACameraPawn::MoveOverlayOn()
void ACameraPawn::MovableOverlayOn()
{
LastHoveredForMoveUnit = nullptr;
bMoveOverlayIsOn = true;
if (SelectedUnit != nullptr && BoardGenerator->Turn % 2 == static_cast<int>(Team) && SelectedUnit->Team == Team)
if (SelectedUnit && SelectedUnit->Energy > 0 && BoardGenerator->Turn % 2 == static_cast<int>(Team) && SelectedUnit->Team == Team)
{
UE_LOG(LogTemp, Display, TEXT("START"))
GEngine->AddOnScreenDebugMessage(3, 1.f, FColor::Green, TEXT("Move Overlay ON"), false);
LastHoveredForMoveUnit = nullptr;
bMoveOverlayIsOn = true;

TSet<int> TilesForNextPass;
TSet<int> TilesForCurrentPass;
Expand All @@ -212,70 +233,70 @@ void ACameraPawn::MoveOverlayOn()
// Prevent repeating passing on tiles, since that would result in using up all your energy for any move, even one space moves
&& !TilesPreviouslyQueuedForPassing.Contains(SelectedUnit->Coordinates - BoardGenerator->BoardWidth)
// Check if passable upwards, since there are ground tiles that block one direction
&& !BoardGenerator->GroundBoard[SelectedUnit->Coordinates - BoardGenerator->BoardWidth]->bIsCollidable.Get(FCardinal::Down))
&& !BoardGenerator->GroundBoard[SelectedUnit->Coordinates - BoardGenerator->BoardWidth]->bIsCollidable.Directions[static_cast<uint8>(EDirection::Down)])
{
TilesForNextPass.Add(SelectedUnit->Coordinates - BoardGenerator->BoardWidth);
TilesPreviouslyQueuedForPassing.Add(SelectedUnit->Coordinates - BoardGenerator->BoardWidth);
MovableTiles.Add(SelectedUnit->Coordinates - BoardGenerator->BoardWidth, { 0, SelectedUnit->Coordinates });
MovableTiles.Add(SelectedUnit->Coordinates - BoardGenerator->BoardWidth, { 0, SelectedUnit->Coordinates, EDirection::Down });
}

// Same calculations, but right
if (SelectedUnit->Coordinates % BoardGenerator->BoardWidth < BoardGenerator->BoardWidth - 1 && !BoardGenerator->UnitBoard[SelectedUnit->Coordinates + 1] && !TilesPreviouslyQueuedForPassing.Contains(SelectedUnit->Coordinates + 1) && !BoardGenerator->GroundBoard[SelectedUnit->Coordinates + 1]->bIsCollidable.Get(FCardinal::Left))
if (SelectedUnit->Coordinates % BoardGenerator->BoardWidth < BoardGenerator->BoardWidth - 1 && !BoardGenerator->UnitBoard[SelectedUnit->Coordinates + 1] && !TilesPreviouslyQueuedForPassing.Contains(SelectedUnit->Coordinates + 1) && !BoardGenerator->GroundBoard[SelectedUnit->Coordinates + 1]->bIsCollidable.Directions[static_cast<uint8>(EDirection::Left)])
{
TilesForNextPass.Add(SelectedUnit->Coordinates + 1);
TilesPreviouslyQueuedForPassing.Add(SelectedUnit->Coordinates + 1);
MovableTiles.Add(SelectedUnit->Coordinates + 1, { 0, SelectedUnit->Coordinates });
MovableTiles.Add(SelectedUnit->Coordinates + 1, { 0, SelectedUnit->Coordinates, EDirection::Left });
}

// Same calculations, but down
if (SelectedUnit->Coordinates / BoardGenerator->BoardWidth < BoardGenerator->BoardHeight - 1 && !BoardGenerator->UnitBoard[SelectedUnit->Coordinates + BoardGenerator->BoardWidth] && !TilesPreviouslyQueuedForPassing.Contains(SelectedUnit->Coordinates + BoardGenerator->BoardWidth) && !BoardGenerator->GroundBoard[SelectedUnit->Coordinates + BoardGenerator->BoardWidth]->bIsCollidable.Get(FCardinal::Up))
if (SelectedUnit->Coordinates / BoardGenerator->BoardWidth < BoardGenerator->BoardHeight - 1 && !BoardGenerator->UnitBoard[SelectedUnit->Coordinates + BoardGenerator->BoardWidth] && !TilesPreviouslyQueuedForPassing.Contains(SelectedUnit->Coordinates + BoardGenerator->BoardWidth) && !BoardGenerator->GroundBoard[SelectedUnit->Coordinates + BoardGenerator->BoardWidth]->bIsCollidable.Directions[static_cast<uint8>(EDirection::Up)])
{
TilesForNextPass.Add(SelectedUnit->Coordinates + BoardGenerator->BoardWidth);
TilesPreviouslyQueuedForPassing.Add(SelectedUnit->Coordinates + BoardGenerator->BoardWidth);
MovableTiles.Add(SelectedUnit->Coordinates + BoardGenerator->BoardWidth, { 0, SelectedUnit->Coordinates });
MovableTiles.Add(SelectedUnit->Coordinates + BoardGenerator->BoardWidth, { 0, SelectedUnit->Coordinates, EDirection::Up });
}

// Same calculations, but left
if (SelectedUnit->Coordinates % BoardGenerator->BoardWidth > 0 && !BoardGenerator->UnitBoard[SelectedUnit->Coordinates - 1] && !TilesPreviouslyQueuedForPassing.Contains(SelectedUnit->Coordinates - 1) && !BoardGenerator->GroundBoard[SelectedUnit->Coordinates - 1]->bIsCollidable.Get(FCardinal::Right))
if (SelectedUnit->Coordinates % BoardGenerator->BoardWidth > 0 && !BoardGenerator->UnitBoard[SelectedUnit->Coordinates - 1] && !TilesPreviouslyQueuedForPassing.Contains(SelectedUnit->Coordinates - 1) && !BoardGenerator->GroundBoard[SelectedUnit->Coordinates - 1]->bIsCollidable.Directions[static_cast<uint8>(EDirection::Right)])
{
TilesForNextPass.Add(SelectedUnit->Coordinates - 1);
TilesPreviouslyQueuedForPassing.Add(SelectedUnit->Coordinates - 1);
MovableTiles.Add(SelectedUnit->Coordinates - 1, { 0, SelectedUnit->Coordinates });
MovableTiles.Add(SelectedUnit->Coordinates - 1, { 0, SelectedUnit->Coordinates, EDirection::Right });
}

for (int16 EnergyLeft = SelectedUnit->Energy - 1; EnergyLeft > -1; EnergyLeft--)
for (int16 EnergyLeft = SelectedUnit->Energy - 1; EnergyLeft > 0; EnergyLeft--)
{
TilesForCurrentPass = TilesForNextPass;
TilesForNextPass.Empty();
for (auto coord : TilesForCurrentPass)
{
MovableTiles[coord].EnergyLeft = EnergyLeft;
if (coord / BoardGenerator->BoardWidth > 0 && !BoardGenerator->UnitBoard[coord - BoardGenerator->BoardWidth] && !TilesPreviouslyQueuedForPassing.Contains(coord - BoardGenerator->BoardWidth) && !BoardGenerator->GroundBoard[coord - BoardGenerator->BoardWidth]->bIsCollidable.Get(FCardinal::Down))
if (coord / BoardGenerator->BoardWidth > 0 && !BoardGenerator->UnitBoard[coord - BoardGenerator->BoardWidth] && !TilesPreviouslyQueuedForPassing.Contains(coord - BoardGenerator->BoardWidth) && !BoardGenerator->GroundBoard[coord - BoardGenerator->BoardWidth]->bIsCollidable.Directions[static_cast<uint8>(EDirection::Down)])
{
TilesForNextPass.Add(coord - BoardGenerator->BoardWidth);
TilesPreviouslyQueuedForPassing.Add(coord - BoardGenerator->BoardWidth);
MovableTiles.Add(coord - BoardGenerator->BoardWidth, { 0, coord });
MovableTiles.Add(coord - BoardGenerator->BoardWidth, { 0, coord, EDirection::Down });
}

if (coord % BoardGenerator->BoardWidth < BoardGenerator->BoardWidth - 1 && !BoardGenerator->UnitBoard[coord + 1] && !TilesPreviouslyQueuedForPassing.Contains(coord + 1) && !BoardGenerator->GroundBoard[coord + 1]->bIsCollidable.Get(FCardinal::Left))
if (coord % BoardGenerator->BoardWidth < BoardGenerator->BoardWidth - 1 && !BoardGenerator->UnitBoard[coord + 1] && !TilesPreviouslyQueuedForPassing.Contains(coord + 1) && !BoardGenerator->GroundBoard[coord + 1]->bIsCollidable.Directions[static_cast<uint8>(EDirection::Left)])
{
TilesForNextPass.Add(coord + 1);
TilesPreviouslyQueuedForPassing.Add(coord + 1);
MovableTiles.Add(coord + 1, { 0, coord });
MovableTiles.Add(coord + 1, { 0, coord, EDirection::Left });
}

if (coord / BoardGenerator->BoardWidth < BoardGenerator->BoardHeight - 1 && !BoardGenerator->UnitBoard[coord + BoardGenerator->BoardWidth] && !TilesPreviouslyQueuedForPassing.Contains(coord + BoardGenerator->BoardWidth) && !BoardGenerator->GroundBoard[coord + BoardGenerator->BoardWidth]->bIsCollidable.Get(FCardinal::Up))
if (coord / BoardGenerator->BoardWidth < BoardGenerator->BoardHeight - 1 && !BoardGenerator->UnitBoard[coord + BoardGenerator->BoardWidth] && !TilesPreviouslyQueuedForPassing.Contains(coord + BoardGenerator->BoardWidth) && !BoardGenerator->GroundBoard[coord + BoardGenerator->BoardWidth]->bIsCollidable.Directions[static_cast<uint8>(EDirection::Up)])
{
TilesForNextPass.Add(coord + BoardGenerator->BoardWidth);
TilesPreviouslyQueuedForPassing.Add(coord + BoardGenerator->BoardWidth);
MovableTiles.Add(coord + BoardGenerator->BoardWidth, { 0, coord });
MovableTiles.Add(coord + BoardGenerator->BoardWidth, { 0, coord, EDirection::Up });
}

if (coord % BoardGenerator->BoardWidth > 0 && !BoardGenerator->UnitBoard[coord - 1] && !TilesPreviouslyQueuedForPassing.Contains(coord - 1) && !BoardGenerator->GroundBoard[coord - 1]->bIsCollidable.Get(FCardinal::Right))
if (coord % BoardGenerator->BoardWidth > 0 && !BoardGenerator->UnitBoard[coord - 1] && !TilesPreviouslyQueuedForPassing.Contains(coord - 1) && !BoardGenerator->GroundBoard[coord - 1]->bIsCollidable.Directions[static_cast<uint8>(EDirection::Right)])
{
TilesForNextPass.Add(coord - 1);
TilesPreviouslyQueuedForPassing.Add(coord - 1);
MovableTiles.Add(coord - 1, { 0, coord });
MovableTiles.Add(coord - 1, { 0, coord, EDirection::Right });
}
}
}
Expand All @@ -284,16 +305,21 @@ void ACameraPawn::MoveOverlayOn()
}
}

void ACameraPawn::MoveOverlayOff()
void ACameraPawn::MovableOverlayOff()
{
bMoveOverlayIsOn = false;
if (SelectedUnit != nullptr && BoardGenerator->Turn % 2 == static_cast<int>(Team) && SelectedUnit->Team == Team)
{
bMoveOverlayIsOn = false;
for (auto MovableOverlay : MovableOverlayArray)
MovableOverlay->Destroy();
MovableOverlayArray.Empty();
if (MoveOverlayArray.Num())
for (auto MoveOverlay : MoveOverlayArray)
MoveOverlay->Destroy();
MovableOverlayArray.Empty();
MovableTiles.Empty();
}
MovableTiles.Empty();

}


Expand All @@ -312,7 +338,7 @@ void ACameraPawn::SetupPlayerInputComponent(UInputComponent* PlayerInputComponen
PlayerInputComponent->BindAction("Debug", IE_Pressed, this, &ACameraPawn::Debug);
PlayerInputComponent->BindAction("Select Unit", IE_Pressed, this, &ACameraPawn::SelectUnit);
PlayerInputComponent->BindAction("Select Unit", IE_Released, this, &ACameraPawn::MoveUnit);
PlayerInputComponent->BindAction("Move Unit", IE_Pressed, this, &ACameraPawn::MoveOverlayOn);
PlayerInputComponent->BindAction("Move Unit", IE_Pressed, this, &ACameraPawn::MovableOverlayOn);
PlayerInputComponent->BindAction("Move Unit", IE_Released, this, &ACameraPawn::MoveUnit);
}

Expand Down
5 changes: 3 additions & 2 deletions Source/Paper/CameraPawn.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ class PAPER_API ACameraPawn : public APawn
{
uint8 EnergyLeft;
int SourceTileCoordinates;
EDirection DirectionToSourceTile;
};

virtual void BeginPlay() override;
Expand Down Expand Up @@ -64,8 +65,8 @@ class PAPER_API ACameraPawn : public APawn

void MoveUnit();
void SelectUnit();
void MoveOverlayOn();
void MoveOverlayOff();
void MovableOverlayOn();
void MovableOverlayOff();

public:
UPROPERTY(BlueprintReadOnly)
Expand Down
Loading

0 comments on commit 51660c4

Please sign in to comment.