Browse Source

删除FGUI NGK插件(无用的插件,总是会生成代码文件夹)

大爷 1 year ago
parent
commit
50434ae694

BIN
FGUIProject/NKGCodeGenForET6.7z


+ 0 - 24
FGUIProject/plugins/NKGCodeGenForET6/CodeGenConfig.lua

@@ -1,24 +0,0 @@
----@class CodeGenConfig 代码生成配置
-local GenerateHotfixCodeConfig = {
-    --- 热更代码配置
-    --- 热更层命名空间
-    HotfixNameSpace = "ET",
-    --- 热更层代码输出目录
-    HotfixCodeOutPutPath = "../../Unity/Packages/ProjectS_Hotfix/ModelView/ProjectS/FGUI/AutoGeneratedCode/",
-
-    --- 非热更代码配置
-    --- 非热更层命名空间
-    ModelNameSpace = "ET",
-    --- 非热更层代码输出目录
-    ModelCodeOutPutPath = "../../Unity/Assets/Mono/ProjectS/AutoGeneratedCode/",
-    
-    --- 代码裁剪,即是否为默认名称对象生成获取代码,如果为true,代表不会生成,否则会生成,注意如果开启可能会导致需要导出的类也没有导出的情况
-    CodeStrip = false,
-    
-    --- 组件名前缀
-    ClassNamePrefix = "FUI_",
-    --- 成员名前缀
-    MemerVarNamePrefix = "m_"
-}
-
-return GenerateHotfixCodeConfig

+ 0 - 311
FGUIProject/plugins/NKGCodeGenForET6/HotfixCodeGenHandler.lua

@@ -1,311 +0,0 @@
----@class HotfixCodeGenHandler 热更层代码生成器
-local HotfixCodeGenHandler = {}
-
---- 执行生成热更层代码
----@param handler CS.FairyEditor.PublishHandler
----@param codeGenConfig CodeGenConfig
-function HotfixCodeGenHandler.Do(handler, codeGenConfig)
-    local codePkgName = handler:ToFilename(handler.pkg.name); --convert chinese to pinyin, remove special chars etc.
-
-    --- 从自定义配置中读取路径和命名空间
-    local exportCodePath = codeGenConfig.HotfixCodeOutPutPath .. '/' .. codePkgName
-    local namespaceName = codeGenConfig.HotfixNameSpace
-
-    --- 初始化自定义组件名前缀
-    local classNamePrefix = codeGenConfig.ClassNamePrefix
-    --- 初始化自定义成员变量名前缀
-    local memberVarNamePrefix = codeGenConfig.MemerVarNamePrefix
-    
-    --- 从FGUI编辑器中读取配置
-    ---@type CS.FairyEditor.GlobalPublishSettings.CodeGenerationConfig
-    local settings = handler.project:GetSettings("Publish").codeGeneration
-    local getMemberByName = settings.getMemberByName
-
-    --- 所有将要导出的类(当前包的所有设置为导出的组件,以及当前包所有被引用的组件)
-    ---@type CS.FairyEditor.PublishHandler.ClassInfo[]
-    local classes = handler:CollectClasses(codeGenConfig.CodeStrip, codeGenConfig.CodeStrip, nil)
-    handler:SetupCodeFolder(exportCodePath, "cs") --check if target folder exists, and delete old files
-
-    local classCnt = classes.Count
-    local writer = CodeWriter.new()
-    for i = 0, classCnt - 1 do
-        local classInfo = classes[i]
-        local members = classInfo.members
-        writer:reset()
-
-        writer:writeln('using FairyGUI;')
-		writer:writeln('using Cysharp.Threading.Tasks;')
-        writer:writeln()
-        writer:writeln('namespace %s', namespaceName)
-        writer:startBlock()
-        
-        --- 组装自定义组件前缀
-        local className = classNamePrefix .. classInfo.className
-        -- 1
-        writer:writeln([[public class %sAwakeSystem : AwakeSystem<%s, GObject>
-    {
-        public override void Awake(%s self, GObject go)
-        {
-            self.Awake(go);
-        }
-    }
-        ]], className, className, className)
-		
-        writer:writeln([[public class %sDestroySystem : DestroySystem<%s>
-    {
-        public override void Destroy(%s self)
-        {
-            self.Destroy();
-        }
-    }
-        ]], className, className, className)
-
-        writer:writeln([[public sealed class %s : FUI
-    {	
-        public const string UIPackageName = "%s";
-        public const string UIResName = "%s";
-        
-        /// <summary>
-        /// {uiResName}的组件类型(GComponent、GButton、GProcessBar等),它们都是GObject的子类。
-        /// </summary>
-        public %s self;
-            ]], className, codePkgName, classInfo.resName, classInfo.superClassName)
-
-        local memberCnt = members.Count
-
-        -- 是否为自定义类型组件标记数组
-        local customComponentFlagsArray = {}
-        -- 是否为跨包组件标记数组
-        local crossPackageFlagsArray = {}
-
-        for j = 0, memberCnt - 1
-        do
-            local memberInfo = members[j]
-            customComponentFlagsArray[j] = false
-            crossPackageFlagsArray[j] = false
-
-            -- 判断是不是我们自定义类型组件
-            local typeName = memberInfo.type
-            for k = 0, classCnt - 1
-            do
-                if typeName == classes[k].className
-                then
-                    typeName = classNamePrefix .. classes[k].className
-                    customComponentFlagsArray[j] = true
-                    break
-                end
-            end
-
-            -- 判断是不是跨包类型组件
-            if memberInfo.res ~= nil then
-                --- 组装自定义组件前缀
-                typeName = classNamePrefix .. memberInfo.res.name
-                crossPackageFlagsArray[j] = true
-            end
-            
-            --- 组装自定义成员前缀
-            writer:writeln('\tpublic %s %s;', typeName, memberVarNamePrefix .. memberInfo.varName)
-        end
-        writer:writeln('\tpublic const string URL = "ui://%s%s";', handler.pkg.id, classInfo.resId)
-        writer:writeln()
-
-        writer:writeln([[   
-        private static GObject CreateGObject()
-        {
-            return UIPackage.CreateObject(UIPackageName, UIResName);
-        }
-    
-        private static void CreateGObjectAsync(UIPackage.CreateObjectCallback result)
-        {
-            UIPackage.CreateObjectAsync(UIPackageName, UIResName, result);
-        }
-        ]])
-
-        writer:writeln([[   
-        public static %s CreateInstance(Entity parent)
-        {			
-            return parent.AddChild<%s, GObject>(CreateGObject());
-        }
-        ]], className, className)
-
-        writer:writeln([[   
-        public static UniTask<%s> CreateInstanceAsync(Entity parent)
-        {
-            UniTaskCompletionSource<%s> tcs = new UniTaskCompletionSource<%s>();
-    
-            CreateGObjectAsync((go) =>
-            {
-                tcs.TrySetResult(parent.AddChild<%s, GObject>(go));
-            });
-    
-            return tcs.Task;
-        }
-        ]], className, className, className, className)
-
-        writer:writeln([[   
-        /// <summary>
-        /// 仅用于go已经实例化情况下的创建(例如另一个组件引用了此组件)
-        /// </summary>
-        /// <param name="domain"></param>
-        /// <param name="go"></param>
-        /// <returns></returns>
-        public static %s Create(Entity parent, GObject go)
-        {
-            return parent.AddChild<%s, GObject>(go);
-        }
-            ]], className, className)
-
-        writer:writeln([[   
-        /// <summary>
-        /// 通过此方法获取的FUI,在Dispose时不会释放GObject,需要自行管理(一般在配合FGUI的Pool机制时使用)。
-        /// </summary>
-        public static %s GetFormPool(Entity domain, GObject go)
-        {
-            var fui = go.Get<%s>();
-        
-            if(fui == null)
-            {
-                fui = Create(domain, go);
-            }
-        
-            fui.isFromFGUIPool = true;
-        
-            return fui;
-        }
-            ]], className, className)
-
-        writer:writeln([[
-    public void Awake(GObject go)
-        {
-            if(go == null)
-            {
-                return;
-            }
-            
-            GObject = go;	
-            
-            if (string.IsNullOrWhiteSpace(Name))
-            {
-                Name = Id.ToString();
-            }
-            
-            self = (%s)go;
-            
-            self.Add(this);
-            
-            var com = go.asCom;
-                
-            if(com != null)
-            {	
-                ]], classInfo.superClassName)
-
-        for j = 0, memberCnt - 1
-        do
-            local memberInfo = members[j]
-            --- 组装自定义成员前缀
-            local memberVarName = memberVarNamePrefix .. memberInfo.varName
-            if memberInfo.group == 0
-            then
-                if getMemberByName
-                then
-                    if customComponentFlagsArray[j]
-                    then
-                        --- 组装自定义组件前缀
-                        writer:writeln('\t\t\t%s = %s.Create(this, com.GetChild("%s"));', memberVarName, classNamePrefix .. memberInfo.type, memberInfo.name)
-                    elseif crossPackageFlagsArray[j]
-                    then
-                        --- 组装自定义组件前缀
-                        writer:writeln('\t\t\t%s = %s.Create(this, com.GetChild("%s"));', memberVarName, classNamePrefix .. memberInfo.res.name, memberInfo.name)
-                    else
-                        writer:writeln('\t\t\t%s = (%s)com.GetChild("%s");', memberVarName, memberInfo.type, memberInfo.name)
-                    end
-
-                else
-                    if customComponentFlagsArray[j]
-                    then
-                        --- 组装自定义组件前缀
-                        writer:writeln('\t\t\t%s = %s.Create(this, com.GetChildAt(%s));', memberVarName, classNamePrefix .. memberInfo.type, memberInfo.index)
-                    elseif crossPackageFlagsArray[j]
-                    then
-                        --- 组装自定义组件前缀
-                        writer:writeln('\t\t\t%s = %s.Create(this, com.GetChildAt(%s));', memberVarName, classNamePrefix .. memberInfo.res.name, memberInfo.index)
-                    else
-                        writer:writeln('\t\t\t%s = (%s)com.GetChildAt(%s);', memberVarName, memberInfo.type, memberInfo.index)
-                    end
-                end
-            elseif memberInfo.group == 1
-            then
-                if getMemberByName
-                then
-                    writer:writeln('\t\t\t%s = com.GetController("%s");', memberVarName, memberInfo.name)
-                else
-                    writer:writeln('\t\t\t%s = com.GetControllerAt(%s);', memberVarName, memberInfo.index)
-                end
-            else
-                if getMemberByName
-                then
-                    writer:writeln('\t\t\t%s = com.GetTransition("%s");', memberVarName, memberInfo.name)
-                else
-                    writer:writeln('\t\t\t%s = com.GetTransitionAt(%s);', memberVarName, memberInfo.index)
-                end
-            end
-        end
-        writer:writeln('\t\t}')
-
-        writer:writeln('\t}')
-
-        writer:writeln([[       
-        public override void Destroy()
-        {            
-            base.Destroy();
-            
-            self.Remove();
-            self = null;
-            ]])
-
-        for j = 0, memberCnt - 1 do
-            local memberInfo = members[j]
-            
-            --- 组装自定义成员前缀
-            local memberVarName = memberVarNamePrefix .. memberInfo.varName
-            if memberInfo.group == 0 then
-                if customComponentFlagsArray[j] or crossPackageFlagsArray[j] then
-                    writer:writeln('\t\t%s.Dispose();', memberVarName)
-                end
-                writer:writeln('\t\t%s = null;', memberVarName)
-            elseif memberInfo.group == 1 then
-                writer:writeln('\t\t%s = null;', memberVarName)
-            else
-                writer:writeln('\t\t%s = null;', memberVarName)
-            end
-        end
-        writer:writeln('\t}')
-
-        writer:writeln('}')
-        writer:endBlock()
-
-        writer:save(exportCodePath .. '/' .. className .. '.cs')
-    end
-
-    -- 写入fuipackage
-    writer:reset()
-
-    writer:writeln('namespace %s', namespaceName)
-    writer:startBlock()
-    writer:writeln('public static partial class FUIPackage')
-    writer:startBlock()
-
-    writer:writeln('public const string %s = "%s";', codePkgName, codePkgName)
-
-    for i = 0, classCnt - 1 do
-        local classInfo = classes[i]
-        writer:writeln('public const string %s_%s = "ui://%s/%s";', codePkgName, classInfo.resName, codePkgName, classInfo.resName)
-    end
-
-    writer:endBlock() --class
-    writer:endBlock() --namespace
-    local binderPackageName = 'Package' .. codePkgName
-    writer:save(exportCodePath .. '/' .. binderPackageName .. '.cs')
-end
-
-return HotfixCodeGenHandler

+ 0 - 157
FGUIProject/plugins/NKGCodeGenForET6/ModelCodeGenHandler.lua

@@ -1,157 +0,0 @@
----@class ModelCodeGenHandler 非热更层代码生成器
-local ModelCodeGenHandler = {}
-
---- 执行生成非热更层代码
----@param handler CS.FairyEditor.PublishHandler
----@param codeGenConfig CodeGenConfig
-function ModelCodeGenHandler.Do(handler, codeGenConfig)
-    local codePkgName = handler:ToFilename(handler.pkg.name); --convert chinese to pinyin, remove special chars etc.
-
-    --- 从自定义配置中读取路径和命名空间
-    local exportCodePath = codeGenConfig.ModelCodeOutPutPath .. '/' .. codePkgName
-    local namespaceName = codeGenConfig.ModelNameSpace
-
-    --- 初始化自定义组件名前缀
-    local classNamePrefix = codeGenConfig.ClassNamePrefix
-    --- 初始化自定义成员变量名前缀
-    local memberVarNamePrefix = codeGenConfig.MemerVarNamePrefix
-    
-    --- 从FGUI编辑器中读取配置
-    ---@type CS.FairyEditor.GlobalPublishSettings.CodeGenerationConfig
-    local settings = handler.project:GetSettings("Publish").codeGeneration
-    local getMemberByName = settings.getMemberByName
-
-    --- 所有将要导出的类
-    ---@type CS.FairyEditor.PublishHandler.ClassInfo[]
-    local classes = handler:CollectClasses(codeGenConfig.CodeStrip, codeGenConfig.CodeStrip, nil)
-    handler:SetupCodeFolder(exportCodePath, "cs") --check if target folder exists, and delete old files
-
-    local classCnt = classes.Count
-    local writer = CodeWriter.new()
-    for i = 0, classCnt - 1 do
-        local classInfo = classes[i]
-        local members = classInfo.members
-        writer:reset()
-
-        writer:writeln('using FairyGUI;')
-        writer:writeln('using FairyGUI.Utils;')
-        writer:writeln()
-        writer:writeln('namespace %s', namespaceName)
-        writer:startBlock()
-        writer:writeln('public partial class %s%s : %s', classNamePrefix, classInfo.className, classInfo.superClassName)
-        writer:startBlock()
-
-        -- 是否为自定义组件标记数组
-        local crossPackageFlagsArray = {}
-
-        local memberCnt = members.Count
-        for j = 0, memberCnt - 1 do
-            ---@type CS.FairyEditor.PublishHandler.MemberInfo
-            local memberInfo = members[j]
-            local typeName =  memberInfo.type
-            crossPackageFlagsArray[j] = false
-            -- 判断是不是自定义类型组件
-            if memberInfo.res ~= nil then
-                --- 组装自定义组件前缀
-                typeName = classNamePrefix .. memberInfo.res.name
-                crossPackageFlagsArray[j] = true
-            end
-            --- 组装自定义成员前缀
-            writer:writeln('public %s %s;', typeName, memberVarNamePrefix .. memberInfo.varName)
-        end
-
-        --- 组装自定义组件前缀
-        local className = classNamePrefix .. classInfo.className
-
-        writer:writeln('public const string URL = "ui://%s%s";', handler.pkg.id, classInfo.resId)
-        writer:writeln()
-
-        writer:writeln('public static %s CreateInstance()', className)
-        writer:startBlock()
-        writer:writeln('return (%s)UIPackage.CreateObject("%s", "%s", typeof(%s));', className, handler.pkg.name, classInfo.resName, className)
-        writer:endBlock()
-        writer:writeln()
-
-        if handler.project.type == ProjectType.MonoGame then
-            writer:writeln("protected override void OnConstruct()")
-            writer:startBlock()
-        else
-            writer:writeln('public override void ConstructFromXML(XML xml)')
-            writer:startBlock()
-            writer:writeln('base.ConstructFromXML(xml);')
-            writer:writeln()
-        end
-        for j = 0, memberCnt - 1 do
-            local memberInfo = members[j]
-            --- 组装自定义成员前缀
-            local memberVarName = memberVarNamePrefix .. memberInfo.varName
-            if memberInfo.group == 0 then
-                if getMemberByName then
-                    if crossPackageFlagsArray[j]
-                    then
-                        --- 组装自定义组件前缀
-                        writer:writeln('%s = (%s)GetChild("%s");', memberVarName, classNamePrefix .. memberInfo.res.name, memberInfo.name)
-                    else
-                        writer:writeln('%s = (%s)GetChild("%s");', memberVarName, memberInfo.type, memberInfo.name)
-                    end
-                else
-                    if crossPackageFlagsArray[j]
-                    then
-                        --- 组装自定义组件前缀
-                        writer:writeln('%s = (%s)GetChildAt(%s);', memberVarName, classNamePrefix .. memberInfo.res.name, memberInfo.index)
-                    else
-                        writer:writeln('%s = (%s)GetChildAt(%s);', memberVarName, memberInfo.type, memberInfo.index)
-                    end
-
-                end
-            elseif memberInfo.group == 1 then
-                if getMemberByName then
-                    writer:writeln('%s = GetController("%s");', memberVarName, memberInfo.name)
-                else
-                    writer:writeln('%s = GetControllerAt(%s);', memberVarName, memberInfo.index)
-                end
-            else
-                if getMemberByName then
-                    writer:writeln('%s = GetTransition("%s");', memberVarName, memberInfo.name)
-                else
-                    writer:writeln('%s = GetTransitionAt(%s);', memberVarName, memberInfo.index)
-                end
-            end
-        end
-        writer:endBlock()
-
-        writer:endBlock() --class
-        writer:endBlock() --namepsace
-
-        writer:save(exportCodePath .. '/' .. className .. '.cs')
-    end
-
-    writer:reset()
-
-    --- 为了统一命名,这里也组装自定义组件前缀
-    local binderName = classNamePrefix .. codePkgName .. 'Binder'
-
-    writer:writeln('using FairyGUI;')
-    writer:writeln()
-    writer:writeln('namespace %s', 'ET')
-    writer:startBlock()
-    writer:writeln('public class %s', binderName)
-    writer:startBlock()
-
-    writer:writeln('public static void BindAll()')
-    writer:startBlock()
-    for i = 0, classCnt - 1 do
-        local classInfo = classes[i]
-        --- 组装自定义组件前缀
-        local className = classNamePrefix .. classInfo.className
-        writer:writeln('UIObjectFactory.SetPackageItemExtension(%s.URL, typeof(%s));', className, className)
-    end
-    writer:endBlock() --bindall
-
-    writer:endBlock() --class
-    writer:endBlock() --namespace
-
-    writer:save(exportCodePath .. '/' .. binderName .. '.cs')
-end
-
-return ModelCodeGenHandler

+ 0 - 22
FGUIProject/plugins/NKGCodeGenForET6/NKGCodeGenEntry.lua

@@ -1,22 +0,0 @@
-local NKGCodeGenEntry = {}
-
----@type HotfixCodeGenHandler
-NKGCodeGenEntry.HotfixCodeGenHandler = require(PluginPath .. '/HotfixCodeGenHandler')
----@type ModelCodeGenHandler
-NKGCodeGenEntry.ModelCodeGenHandler = require(PluginPath .. '/ModelCodeGenHandler')
----@type CodeGenConfig
-NKGCodeGenEntry.CodeGenConfig = require(PluginPath .. "/CodeGenConfig")
-
---- 点击发布工程时的回调
----@param handler CS.FairyEditor.PublishHandler 发布处理者
-function onPublish(handler)
-    --- 不勾选生成代码时,将为其生成热更层代码
-    if not handler.genCode then
-        NKGCodeGenEntry.HotfixCodeGenHandler.Do(handler, NKGCodeGenEntry.CodeGenConfig)
-    else
-        --- 勾选生成代码时,将为其生成非热更层代码
-        NKGCodeGenEntry.ModelCodeGenHandler.Do(handler, NKGCodeGenEntry.CodeGenConfig)
-    end
-end
-
-return NKGCodeGenEntry

BIN
FGUIProject/plugins/NKGCodeGenForET6/icon.png


+ 0 - 11
FGUIProject/plugins/NKGCodeGenForET6/package.json

@@ -1,11 +0,0 @@
-{
-  "name": "NKGCodeGenForET6",
-  "displayName": "FGUI代码生成插件",
-  "description": "为NKGFramework定制的FGUI生成代码插件",
-  "version": "0.0.2",
-  "author": {
-    "name": "烟雨迷离半世殇"
-  },
-  "icon": "icon.png",
-  "main": "NKGCodeGenEntry.lua"
-}