50 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// Fill out your copyright notice in the Description page of Project Settings.
 | 
						|
 | 
						|
#pragma once
 | 
						|
 | 
						|
#include "CoreMinimal.h"
 | 
						|
#include "CSGlueGenerator.h"
 | 
						|
#include "CSAssetManagerGlueGenerator.generated.h"
 | 
						|
 | 
						|
UCLASS(DisplayName="Asset Manager Glue Generator", NotBlueprintable, NotBlueprintType)
 | 
						|
class UCSAssetManagerGlueGenerator : public UCSGlueGenerator
 | 
						|
{
 | 
						|
	GENERATED_BODY()
 | 
						|
private:
 | 
						|
	// UCSGlueGenerator interface
 | 
						|
	virtual void Initialize() override;
 | 
						|
	virtual void ForceRefresh() override
 | 
						|
	{
 | 
						|
		ProcessAssetIds();
 | 
						|
		ProcessAssetTypes();
 | 
						|
	}
 | 
						|
	// End of UCSGlueGenerator interface
 | 
						|
 | 
						|
	void TryRegisterAssetTypes();
 | 
						|
	
 | 
						|
	void OnModulesChanged(FName InModuleName, EModuleChangeReason InModuleChangeReason);
 | 
						|
	void OnCompletedInitialScan();
 | 
						|
 | 
						|
	void OnAssetRemoved(const FAssetData& AssetData);
 | 
						|
	void OnAssetRenamed(const FAssetData& AssetData, const FString& OldObjectPath);
 | 
						|
	void OnInMemoryAssetCreated(UObject* Object);
 | 
						|
	void OnInMemoryAssetDeleted(UObject* Object);
 | 
						|
 | 
						|
	void OnAssetSearchRootAdded(const FString& RootPath);
 | 
						|
 | 
						|
	void OnAssetManagerSettingsChanged(UObject* Object, FPropertyChangedEvent& PropertyChangedEvent);
 | 
						|
 | 
						|
	bool IsRegisteredAssetType(const FAssetData& AssetData) { return IsRegisteredAssetType(AssetData.GetClass()); }
 | 
						|
	bool IsRegisteredAssetType(UClass* Class);
 | 
						|
 | 
						|
	void WaitUpdateAssetTypes()
 | 
						|
	{
 | 
						|
		GEditor->GetTimerManager()->SetTimerForNextTick(FTimerDelegate::CreateUObject(this, &ThisClass::ProcessAssetIds));
 | 
						|
	}
 | 
						|
 | 
						|
	void ProcessAssetIds();
 | 
						|
	void ProcessAssetTypes();
 | 
						|
 | 
						|
	bool bHasRegisteredAssetTypes = false;
 | 
						|
};
 |