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;
							 | 
						|||
| 
								 | 
							
								};
							 |