101 lines
3.1 KiB
C++
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 PalDetail_PalNumberWidget : public UserWidget
|
|
{
|
|
public:
|
|
|
|
static auto ClassPath() -> const TCHAR* {
|
|
return STR("/Game/Mods/PalUIExtension/PalDetail_PalNumber.PalDetail_PalNumber_C");
|
|
}
|
|
|
|
static auto WidgetTreePath() -> const TCHAR* {
|
|
return STR("/Game/Mods/PalUIExtension/PalDetail_PalNumber.PalDetail_PalNumber_C:WidgetTree");
|
|
}
|
|
|
|
|
|
|
|
static auto DebugTag() -> const TCHAR* { return STR("PalDetail_PalNumber"); }
|
|
|
|
PalDetail_PalNumberWidget() = default;
|
|
|
|
explicit PalDetail_PalNumberWidget(UObject* Obj) : UserWidget(Obj, ClassOf<PalDetail_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:
|
|
PalDetail_PalNumberWidget(UObject* Obj, UClass* Expected, const TCHAR* Tag)
|
|
: UserWidget(Obj, Expected, Tag) {
|
|
}
|
|
};
|
|
} |