Files
DedicatedServerCourse/Source/DedicatedServers/Private/UI/APITest/APITestOverlay.cpp

60 lines
2.1 KiB
C++
Raw Normal View History

2026-03-26 21:38:50 -04:00
// Fill out your copyright notice in the Description page of Project Settings.
#include "UI/APITest/APITestOverlay.h"
2026-03-29 07:54:19 -04:00
2026-03-30 21:39:09 -04:00
#include "Blueprint/WidgetLayoutLibrary.h"
2026-03-29 07:54:19 -04:00
#include "Components/Button.h"
2026-03-30 21:39:09 -04:00
#include "Components/ScrollBox.h"
#include "Components/TextBlock.h"
#include "UI/API/ListFleets/FleetId.h"
2026-03-29 07:54:19 -04:00
#include "UI/API/ListFleets/ListFleetsBox.h"
#include "UI/APITest/APITestManager.h"
2026-03-30 21:39:09 -04:00
#include "UI/HTTP/HTTPRequestTypes.h"
2026-03-29 07:54:19 -04:00
void UAPITestOverlay::NativeConstruct()
{
Super::NativeConstruct();
check(APITestManagerClass);
APITestManager = NewObject<UAPITestManager>(this, APITestManagerClass);
check(ListFleetsBox)
check(ListFleetsBox->Button_ListFleets)
2026-03-30 17:30:24 -04:00
ListFleetsBox->Button_ListFleets->OnClicked.AddDynamic(this, &UAPITestOverlay::ListFleetsButtonClicked);
2026-03-29 07:54:19 -04:00
}
2026-03-30 17:30:24 -04:00
void UAPITestOverlay::ListFleetsButtonClicked()
{
check (APITestManager)
APITestManager->OnListFleetsResponseReceived.AddDynamic(this, &UAPITestOverlay::OnListFleetsResponseReceived);
APITestManager->ListFleets();
ListFleetsBox->Button_ListFleets->SetIsEnabled(false);
}
void UAPITestOverlay::OnListFleetsResponseReceived(const FDSListFleetsResponse& ListFleetsResponse, bool bWasSuccessful)
{
2026-03-30 21:39:09 -04:00
if (APITestManager->OnListFleetsResponseReceived.IsAlreadyBound(this, &UAPITestOverlay::OnListFleetsResponseReceived))
{
APITestManager->OnListFleetsResponseReceived.RemoveDynamic(this, &UAPITestOverlay::OnListFleetsResponseReceived);
}
ListFleetsBox->ScrollBox_ListFleets->ClearChildren();
check(FleetIdWidgetClass);
2026-03-30 17:30:24 -04:00
if (bWasSuccessful)
{
2026-03-30 21:39:09 -04:00
for (const FString& FleetId : ListFleetsResponse.FleetIds)
{
UFleetId* FleetIdWidget = CreateWidget<UFleetId>(this, FleetIdWidgetClass);
FleetIdWidget->TextBlock_FleetId->SetText(FText::FromString(FleetId));
ListFleetsBox->ScrollBox_ListFleets->AddChild(FleetIdWidget);
}
2026-03-30 17:30:24 -04:00
}
else
{
2026-03-30 21:39:09 -04:00
UFleetId* FleetIdWidget = CreateWidget<UFleetId>(this, FleetIdWidgetClass);
FleetIdWidget->TextBlock_FleetId->SetText(FText::FromString("Something went wrong!"));
ListFleetsBox->ScrollBox_ListFleets->AddChild(FleetIdWidget);
2026-03-30 17:30:24 -04:00
}
ListFleetsBox->Button_ListFleets->SetIsEnabled(true);
}