Files
PalUIExtension/Api/Mod/PalStatus_PalNumber.hpp
2026-09-07 19:33:58 -04:00

101 lines
3.1 KiB
C++

#pragma once
#include <optional>
#include <cstring>
#include <Unreal/FText.hpp>
#include <Unreal/NameTypes.hpp>
#include <Api/UmgTypes.hpp>
#include <Api/UnrealWrapper.hpp>
#include <Api/Widget.hpp>
#include <Api/UserWidget.hpp>
#include <Api/WidgetTree.hpp>
#include <Api/TextBlock.hpp>
#include <Api/CanvasPanel.hpp>
#include <Api/Pal/PalIndividual.hpp>
#include <Api/Pal/PalIndividualCharacterHandle.hpp>
#include <Api/Pal/PalIndividualCharacterParameter.hpp>
using namespace PalUIExtension::Api::Pal;
namespace PalUIExtension::Api::Mod
{
class PalStatus_PalNumberWidget : public UserWidget
{
public:
static auto ClassPath() -> const TCHAR* {
return STR("/Game/Mods/PalUIExtension/PalStatus_PalNumber.PalStatus_PalNumber_C");
}
static auto WidgetTreePath() -> const TCHAR* {
return STR("/Game/Mods/PalUIExtension/PalStatus_PalNumber.PalStatus_PalNumber_C:WidgetTree");
}
static auto DebugTag() -> const TCHAR* { return STR("PalStatus_PalNumber"); }
PalStatus_PalNumberWidget() = default;
explicit PalStatus_PalNumberWidget(UObject* Obj) : UserWidget(Obj, ClassOf<PalStatus_PalNumberWidget>(), DebugTag()) {
}
auto GetBindedHandle() -> UObject*
{
struct P { UObject* returnValue; } p{ nullptr };
if (!CallForReturn(STR("GetBindedHandle"), p, &P::returnValue)) return nullptr;
return p.returnValue;
}
auto GetBindedName() -> std::optional<FName>
{
struct P { FName returnValue; } p{ FName{} };
if (!CallForReturn(STR("GetBindedName"), p, &P::returnValue)) return std::nullopt;
return p.returnValue;
}
auto CurrentHandle() -> PalIndividualCharacterHandle
{
UObject* H = GetBindedHandle();
return H ? PalIndividualCharacterHandle{ H } : PalIndividualCharacterHandle{};
}
auto HasBinding() -> bool
{
return CallForReturn<bool>(STR("GetHasBinding")).value_or(false);
}
// ---- calls ---------------------------------------------------
struct SetPalNumberTextFrame { FString text; };
auto SetPalNumberText(const FString& text) -> bool {
SetPalNumberTextFrame p{text};
if (!Call(STR("SetPalNumberText"), p)) return false;
return true;
}
auto SetPalBinding(FPalInstanceID _target) -> std::optional<FName>{
struct P {
FPalInstanceID TargetInstanceId;
FName ResolvedName;
UObject* GetIndivCharacterParamReturnVal;
bool IsValid;
FName GetCharacterIdReturnVal;
} p{ _target, FName{} };
if (!CallForReturn(STR("SetPalBinding"), p, &P::ResolvedName)) return std::nullopt;
return p.ResolvedName;
}
protected:
PalStatus_PalNumberWidget(UObject* Obj, UClass* Expected, const TCHAR* Tag)
: UserWidget(Obj, Expected, Tag) {
}
};
}