Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Fill out your copyright notice in the Description page of Project Settings.
- #pragma once
- #include "CoreMinimal.h"
- #include "UObject/ObjectMacros.h"
- #include "Engine/Brush.h"
- #include "Components/BrushComponent.h"
- #include "GameFramework/Volume.h"
- #include "Engine/Public/EngineUtils.h"
- #include "Engine/Classes/Components/InstancedStaticMeshComponent.h"
- #include "Foliage/Public/InstancedFoliageActor.h"
- #include "Classes/Engine/TextureRenderTarget2D.h"
- #include "Core/Public/Logging/MessageLog.h"
- #include "UnrealEd/Public/ScopedTransaction.h"
- #include "Engine/Classes/Engine/CanvasRenderTarget2D.h"
- #include "Runtime/Engine/Classes/Engine/Canvas.h"
- #include "Runtime/Engine/Classes/Kismet/KismetRenderingLibrary.h"
- #include "Runtime/Core/Public/Misc/ScopedSlowTask.h"
- #include "Runtime/Landscape/Classes/LandscapeProxy.h"
- #include "Landscape/Classes/Landscape.h"
- #include "Landscape/Classes/LandscapeStreamingProxy.h"
- #include "Landscape/Public/LandscapeEdit.h"
- #include "HyperFoliageCollection.h"
- #include "HyperFoliageFlora.h"
- #include "HyperFoliageISMC.h"
- #include "HyperFoliageISM.h"
- #include "Engine/LevelStreaming.h"
- #include "Engine/Engine.h"
- #include "HyperFoliageTypes.h"
- #include "Engine/CollisionProfile.h"
- #include "HyperFoliageVolume.generated.h"
- class UHyperFoliageCollection;
- class UHyperFoliageFlora;
- class UHyperFoliageISMC;
- USTRUCT(BlueprintType)
- struct FHyperFoliageLandscapeLayer
- {
- GENERATED_USTRUCT_BODY()
- UPROPERTY()
- ALandscapeProxy * Landscape;
- UPROPERTY()
- FName Layer;
- UPROPERTY()
- UCanvasRenderTarget2D * Texture;
- FHyperFoliageLandscapeLayer() {};
- FHyperFoliageLandscapeLayer(ALandscapeProxy * InLandscape, FName InLayer)
- {
- Landscape = InLandscape;
- Layer = InLayer;
- };
- };
- UCLASS() // NotBlueprintable, HideDropdown, CollapseCategories, AutoExpandCategories=("Brush Settings")
- class HYPERFOLIAGEPLUGIN_API AHyperFoliageVolume : public AVolume
- {
- GENERATED_UCLASS_BODY()
- friend UHyperFoliageFlora;
- public:
- /**
- * Whether the volume is currently enabled or not.
- */
- UPROPERTY(EditAnywhere, BlueprintReadOnly)
- uint32 bEnabled : 1;
- // HyperFoliage properties and functions
- UPROPERTY(EditAnywhere, SimpleDisplay, Category = "HyperFoliage")
- TSubclassOf <UHyperFoliageCollection> HyperFoliageCollectionType;
- UPROPERTY()
- UHyperFoliageCollection * HyperFoliageCollection;
- UPROPERTY()
- TArray <UHyperFoliageFlora *> HyperFoliageFlora;
- UPROPERTY(EditAnywhere, AdvancedDisplay, Category = "HyperFoliage")
- TArray <FHyperFoliageInstance> HyperFoliageInstances;
- UPROPERTY()
- TArray <UHyperFoliageISMC *> HyperISMCs;
- FScopedSlowTask * SlowTask;
- float SlowTaskIncrement;
- UPROPERTY()
- TArray <FHyperFoliageNeighbour> Neighbours;
- UPROPERTY()
- AHyperFoliageISM * FoliageActor;
- UPROPERTY()
- ULevel * CurrentLandscape;
- UPROPERTY()
- TArray <FHyperFoliageLandscapeLayer> RenderTargets;
- UFUNCTION(BlueprintCallable, meta = (UnsafeDuringActorConstruction = "true"), Category = "HyperFoliage")
- bool LandscapeImportWeightmapFromRenderTarget(UTextureRenderTarget2D * InRenderTarget, FName InLayerName, ALandscapeProxy * Landscape);
- void GenerateFoliage();
- void ClearFoliage();
- bool DistributeFoliage();
- bool PlaceFoliage(FHyperFoliageInstance HyperFoliageInstance);
- bool PaintLandscapeLayer(FHyperFoliageInstance HyperFoliageInstance);
- bool SaveLandscapeLayers();
- float GatherWorkNeeded(TSubclassOf <UHyperFoliageFlora> HyperFoliageFloraType);
- void ChangeCurrentLandscape(ALandscapeProxy * Landscape);
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement