Add MVP server travel flow
This commit is contained in:
@@ -22,6 +22,20 @@
|
||||
namespace
|
||||
{
|
||||
const FVector GroundZeroDeveloperTravelHomeLocation(-22000.0f, -3500.0f, 1148.0f);
|
||||
const TCHAR* GroundZeroServerTravelMapPath = TEXT("/Game/Agrarian/Maps/L_GroundZeroTerrain_Test");
|
||||
|
||||
bool ResolveAgrarianServerTravelMap(const FName MapName, FString& OutTravelMap)
|
||||
{
|
||||
if (MapName == NAME_None
|
||||
|| MapName == TEXT("GroundZero")
|
||||
|| MapName == TEXT("L_GroundZeroTerrain_Test"))
|
||||
{
|
||||
OutTravelMap = GroundZeroServerTravelMapPath;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ApplyAgrarianItemUseEffect(const FName ItemId, const int32 Quantity, UAgrarianSurvivalComponent* SurvivalComponent, FString& OutEffectSummary)
|
||||
{
|
||||
@@ -260,6 +274,11 @@ void AAgrarianGamePlayerController::AgrarianTravelHome()
|
||||
ServerAgrarianTravel(GroundZeroDeveloperTravelHomeLocation);
|
||||
}
|
||||
|
||||
void AAgrarianGamePlayerController::AgrarianServerTravel(FName MapName)
|
||||
{
|
||||
ServerAgrarianServerTravel(MapName);
|
||||
}
|
||||
|
||||
void AAgrarianGamePlayerController::ServerAgrarianGrantItem_Implementation(FName ItemId, int32 Quantity)
|
||||
{
|
||||
AAgrarianGameCharacter* AgrarianCharacter = GetPawn<AAgrarianGameCharacter>();
|
||||
@@ -521,3 +540,24 @@ void AAgrarianGamePlayerController::ServerAgrarianTravel_Implementation(FVector
|
||||
ClientMessage(TEXT("Developer travel failed: invalid destination."));
|
||||
}
|
||||
}
|
||||
|
||||
void AAgrarianGamePlayerController::ServerAgrarianServerTravel_Implementation(FName MapName)
|
||||
{
|
||||
UWorld* World = GetWorld();
|
||||
if (!World || !HasAuthority())
|
||||
{
|
||||
ClientMessage(TEXT("Agrarian server travel failed: no authoritative world."));
|
||||
return;
|
||||
}
|
||||
|
||||
FString TravelMap;
|
||||
if (!ResolveAgrarianServerTravelMap(MapName, TravelMap))
|
||||
{
|
||||
ClientMessage(TEXT("Usage: AgrarianServerTravel GroundZero"));
|
||||
return;
|
||||
}
|
||||
|
||||
const FString TravelURL = FString::Printf(TEXT("%s?listen"), *TravelMap);
|
||||
ClientMessage(FString::Printf(TEXT("Agrarian server travel requested: %s"), *TravelURL));
|
||||
World->ServerTravel(TravelURL, false, false);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user