// Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "UObject/NoExportTypes.h" #include "TangibleManager.generated.h" /** * */ USTRUCT() struct INTEGRATION_API FTangibleManager { GENERATED_BODY() public: using IdList = TArrayView; public: // A pointer to the UWorld. UWorld* World; // A pointer to uclass TangibleActor. UPROPERTY() TSubclassOf ClassTangibleActor; // Given a tangible ID, look up actor pointer (or NULL if actor was deleted) UPROPERTY() TMap IdToActor; // Actor tangible Id. int64 Actor; // Tangibles near the actor. IdList Near; public: FTangibleManager(); // Initialize the tangible manager. // void Init(UWorld *world, UClass* tanact); // Get the tangible if it exists, otherwise return NULL AActor* GetTangible(int64 id); // Get the tangible if it exists, otherwise create it. AActor* MakeTangible(int64 id); // Delete the tangible. void DeleteTangible(int64 id); // Get/Set the Id of the actor. // int64 GetActor() const { return Actor; }; void SetActor(int64 id) { Actor = id; } // Get/Set the list of tangibles near the player. // IdList GetNear() const { return Near; } void SetNear(IdList near) { Near = near; } };