A modded EditSaber for making beat saber maps.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

65 lines
2.1 KiB

#pragma once
#include "ZipUtilityInterface.h"
#include "ZipFileFunctionInternalCallback.generated.h"
/**
* This is used to provide a callback for unzipping single files, it ends up getting called from the ListFiles lambda.
*/
UCLASS(ClassGroup = ZipUtility)
class ZIPUTILITY_API UZipFileFunctionInternalCallback : public UObject, public IZipUtilityInterface
{
GENERATED_BODY()
private:
/** Compression format used to unzip */
UPROPERTY(Transient)
TEnumAsByte<ZipUtilityCompressionFormat> CompressionFormat;
/** Path of the file */
UPROPERTY(Transient)
FString File;
UPROPERTY(Transient)
FString DestinationFolder;
/** Current File index parsed */
UPROPERTY(Transient)
int32 FileIndex = 0;
/** Callback object */
UPROPERTY(Transient)
UObject* Callback;
UPROPERTY(Transient)
bool bSingleFile;
UPROPERTY(Transient)
bool bFileFound;
UPROPERTY(Transient)
bool bUnzipto;
public:
UZipFileFunctionInternalCallback();
//IZipUtilityInterface overrides
virtual void OnProgress_Implementation(const FString& archive, float percentage, int32 bytes) override {};
virtual void OnDone_Implementation(const FString& archive, EZipUtilityCompletionState CompletionState) override {};
virtual void OnStartProcess_Implementation(const FString& archive, int32 bytes) override {};
virtual void OnFileDone_Implementation(const FString& archive, const FString& file) override {
UE_LOG(LogTemp, Log, TEXT("OnFileDone_Implementation"));
};
virtual void OnFileFound_Implementation(const FString& archive, const FString& fileIn, int32 size) override;
void SetCallback(const FString& FileName, UObject* CallbackIn, TEnumAsByte<ZipUtilityCompressionFormat> CompressionFormatIn = ZipUtilityCompressionFormat::COMPRESSION_FORMAT_UNKNOWN);
void SetCallback(const FString& FileName, const FString& DestinationFolder, UObject* CallbackIn, TEnumAsByte<ZipUtilityCompressionFormat> CompressionFormatIn = ZipUtilityCompressionFormat::COMPRESSION_FORMAT_UNKNOWN);
FORCEINLINE bool GetSingleFile() const { return bSingleFile; }
FORCEINLINE void SetSingleFile(bool val) { bSingleFile = val; }
};