CelticCraft/Plugins/VoxelFree/Source/Voxel/Public/VoxelImporters/VoxelLandscapeImporter.h

47 lines
1.3 KiB
C
Raw Permalink Normal View History

2023-07-03 16:17:13 +00:00
// Copyright 2020 Phyronnaz
#pragma once
#include "CoreMinimal.h"
#include "VoxelEnums.h"
#include "VoxelAssets/VoxelHeightmapAsset.h"
#include "GameFramework/Actor.h"
#include "VoxelLandscapeImporter.generated.h"
class ULandscapeLayerInfoObject;
class ALandscape;
USTRUCT()
struct VOXEL_API FVoxelLandscapeImporterLayerInfo
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, Category = "Voxel")
TObjectPtr<ULandscapeLayerInfoObject> LayerInfo = nullptr;
UPROPERTY(EditAnywhere, Category = "Voxel")
EVoxelRGBA Layer = EVoxelRGBA::R;
UPROPERTY(EditAnywhere, Category = "Voxel")
uint8 Index = 0;
};
UCLASS(BlueprintType, HideCategories = ("Tick", "Replication", "Input", "Actor", "Rendering", "HOLD", "LOD", "Cooking"))
class VOXEL_API AVoxelLandscapeImporter : public AActor
{
GENERATED_BODY()
public:
UPROPERTY(EditAnywhere, Category = "Import configuration")
TObjectPtr<ALandscape> Landscape = nullptr;
UPROPERTY(EditAnywhere, Category = "Import configuration")
EVoxelHeightmapImporterMaterialConfig MaterialConfig = EVoxelHeightmapImporterMaterialConfig::RGB;
UPROPERTY(EditAnywhere, Category = "Import configuration")
TArray<FVoxelLandscapeImporterLayerInfo> LayerInfos;
#if WITH_EDITOR
virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
#endif
};