// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "Kismet/BlueprintFunctionLibrary.h" #include "AgrarianEditorAutomationLibrary.generated.h" class AAgrarianGameCharacter; class AAgrarianResourceNode; class AAgrarianWildlifeBase; class UAgrarianRecipeDataAsset; /** * Editor automation helpers used by Python setup scripts. */ UCLASS() class AGRARIANGAME_API UAgrarianEditorAutomationLibrary : public UBlueprintFunctionLibrary { GENERATED_BODY() public: UFUNCTION(BlueprintCallable, Category = "Agrarian|Editor Automation") static AActor* SpawnActorInEditorWorld(TSubclassOf ActorClass, const FVector& Location, const FRotator& Rotation, const FString& ActorLabel); UFUNCTION(BlueprintCallable, Category = "Agrarian|Editor Automation") static FString RunPlayableLoopSmokeTest(TSubclassOf CharacterClass, AAgrarianResourceNode* ResourceNode, UAgrarianRecipeDataAsset* ShelterRecipe, TSubclassOf ShelterClass); UFUNCTION(BlueprintCallable, Category = "Agrarian|Editor Automation") static FString RunNaturalShelterLoopSmokeTest( TSubclassOf CharacterClass, AAgrarianResourceNode* WoodNode, AAgrarianResourceNode* FiberNode, AAgrarianWildlifeBase* Wildlife, UAgrarianRecipeDataAsset* FrameRecipe, UAgrarianRecipeDataAsset* WallPanelRecipe, UAgrarianRecipeDataAsset* RoofPanelRecipe, UAgrarianRecipeDataAsset* ShelterRecipe, TSubclassOf ShelterClass); UFUNCTION(BlueprintCallable, Category = "Agrarian|Editor Automation") static FString RunPersistenceSubsystemSmokeTest(TSubclassOf ShelterClass, const FString& SlotName); UFUNCTION(BlueprintCallable, Category = "Agrarian|Editor Automation") static FString ImportLandscapeHeightmapIntoEditorWorld( const FString& HeightmapFilename, int32 Width, int32 Height, float XScaleCm, float YScaleCm, float ZScaleCm, const FString& ActorLabel); };