Files
UnrealEngine/Engine/Source/Editor/UnrealEd/Public/Commandlets/WorldPartitionCommandletHelpers.h
2025-05-18 13:04:45 +08:00

43 lines
1.4 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "UObject/ObjectMacros.h"
#include "UObject/UObjectAnnotation.h"
class FPackageSourceControlHelper;
class ULevel;
class UWorld;
namespace WorldPartitionCommandletHelpers
{
UNREALED_API DECLARE_LOG_CATEGORY_EXTERN(LogWorldPartitionCommandletUtils, Log, All);
UWorld* LoadAndInitWorld(const FString& LevelToLoad);
UWorld* LoadWorld(const FString& LevelToLoad);
ULevel* InitLevel(UWorld* World);
bool Checkout(const TArray<UPackage*>& PackagesToCheckout, FPackageSourceControlHelper& SCHelper);
bool Checkout(UPackage* PackagesToCheckout, FPackageSourceControlHelper& SCHelper);
bool Save(const TArray<UPackage*>& PackagesToSave);
bool Save(UPackage* PackagesToSave);
bool AddToSourceControl(const TArray<UPackage*>& PackagesToAdd, FPackageSourceControlHelper& SCHelper);
bool AddToSourceControl(UPackage* PackageToAdd, FPackageSourceControlHelper& SCHelper);
bool Delete(const TArray<UPackage*>& PackagesToDelete, FPackageSourceControlHelper& SCHelper);
bool Delete(UPackage* PackagesToDelete, FPackageSourceControlHelper& SCHelper);
template<class T>
bool CheckoutSaveAdd(T&& ToSave, FPackageSourceControlHelper& SCHelper)
{
if (Checkout(ToSave, SCHelper))
{
if (Save(ToSave))
{
return AddToSourceControl(ToSave, SCHelper);
}
}
return false;
}
}