67 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// Tencent is pleased to support the open source community by making UnLua available.
 | 
						|
// 
 | 
						|
// Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved.
 | 
						|
//
 | 
						|
// Licensed under the MIT License (the "License"); 
 | 
						|
// you may not use this file except in compliance with the License. You may obtain a copy of the License at
 | 
						|
//
 | 
						|
// http://opensource.org/licenses/MIT
 | 
						|
//
 | 
						|
// Unless required by applicable law or agreed to in writing, 
 | 
						|
// software distributed under the License is distributed on an "AS IS" BASIS, 
 | 
						|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
 | 
						|
// See the License for the specific language governing permissions and limitations under the License.
 | 
						|
 | 
						|
#pragma once
 | 
						|
 | 
						|
#include "CoreUObject.h"
 | 
						|
 | 
						|
class UBlueprint;
 | 
						|
class UWidgetBlueprint;
 | 
						|
 | 
						|
class FUnLuaIntelliSenseGenerator
 | 
						|
{
 | 
						|
public:
 | 
						|
    FUnLuaIntelliSenseGenerator()
 | 
						|
        : bInitialized(false)
 | 
						|
    {
 | 
						|
    }
 | 
						|
 | 
						|
    static TSharedRef<FUnLuaIntelliSenseGenerator> Get();
 | 
						|
    
 | 
						|
    // Update all Blueprints from command
 | 
						|
    void UpdateAll();
 | 
						|
 | 
						|
    void Initialize();
 | 
						|
 | 
						|
private:
 | 
						|
    static TSharedPtr<FUnLuaIntelliSenseGenerator> Singleton;
 | 
						|
 | 
						|
    static bool IsBlueprint(const FAssetData& AssetData);
 | 
						|
 | 
						|
    static bool ShouldExport(const FAssetData& AssetData, bool bLoad = false);
 | 
						|
 | 
						|
    void Export(const UBlueprint* Blueprint);
 | 
						|
 | 
						|
    void Export(const UField* Field);
 | 
						|
 | 
						|
    void ExportUE(const TArray<const UField*> Types);
 | 
						|
 | 
						|
    void ExportUnLua();
 | 
						|
 | 
						|
    void CollectTypes(TArray<const UField*> &Types);
 | 
						|
    
 | 
						|
    // File helper
 | 
						|
    void SaveFile(const FString& ModuleName, const FString& FileName, const FString& GeneratedFileContent);
 | 
						|
    void DeleteFile(const FString& ModuleName, const FString& FileName);
 | 
						|
 | 
						|
    // Handle asset event
 | 
						|
    void OnAssetAdded(const FAssetData& AssetData);
 | 
						|
    void OnAssetRemoved(const FAssetData& AssetData);
 | 
						|
    void OnAssetRenamed(const FAssetData& AssetData, const FString& OldPath);
 | 
						|
    void OnAssetUpdated(const FAssetData& AssetData);
 | 
						|
 | 
						|
    FString OutputDir;
 | 
						|
    bool bInitialized;
 | 
						|
};
 |