Files
2026-05-19 13:42:41 +07:00

56 lines
1.4 KiB
C++

// VRM4U Copyright (c) 2021-2024 Haruyoshi Yamamoto. This software is released under the MIT License.
#pragma once
#include "CoreMinimal.h"
#include "UObject/WeakObjectPtr.h"
#include "Engine/LatentActionManager.h"
#include "LatentActions.h"
#include "VrmUtil.h"
class UVrmAssetListObject;
struct FImportOptionData;
class FVrmAsyncLoadActionParam {
public:
const UVrmAssetListObject* InVrmAsset;
UVrmAssetListObject*& OutVrmAsset;
const FImportOptionData OptionForRuntimeLoad;
const FString filepath;
const uint8* pData;
size_t dataSize;
};
class FVrmAsyncLoadAction : public FPendingLatentAction
{
public:
FName ExecutionFunction;
int32 OutputLink;
FWeakObjectPtr CallbackTarget;
int SequenceCount = 0;
FGraphEventRef t2 = nullptr;
FVrmAsyncLoadActionParam param;
FVrmAsyncLoadAction(const FLatentActionInfo& LatentInfo, FVrmAsyncLoadActionParam &);
virtual void UpdateOperation(FLatentResponse& Response) override;
#if WITH_EDITOR
// Returns a human readable description of the latent operation's current state
virtual FString GetDescription() const override
{
//static const FNumberFormattingOptions DelayTimeFormatOptions = FNumberFormattingOptions()
// .SetMinimumFractionalDigits(3)
// .SetMaximumFractionalDigits(3);
//return FText::Format(NSLOCTEXT("DelayAction", "DelayActionTimeFmt", "Delay ({0} seconds left)"), FText::AsNumber(TimeRemaining, &DelayTimeFormatOptions)).ToString();
return FString("");
}
#endif
};