private static Dictionary <string, string> BuildMonolessControllerReplacements(GenParams genParams) { var result = new Dictionary <string, string>(); result.Add("$uiViewName$", genParams.uiViewName); return(result); }
private static Dictionary <string, string> BuildProxyReplacements(GenParams genParams) { var result = new Dictionary <string, string>(); result.Add("$moduleName$", genParams.moduleName); result.Add("$timeDecls$", System.DateTime.Now.ToString()); return(result); }
public static void GenerateUICodeAutoGen(IEnumerable <UIComponentInfo> comSet, GenParams genParams) { var path = GetViewPath(genParams.generatePath) + genParams.uiViewName + "AutoGen.cs"; var success = GenerateFile(path, true); if (success) { var replacements = BuildViewAutoGenReplacements(comSet, genParams); UpdateFileContent(path, AutoGenViewTemplatePath, replacements); } }
private static void GenerateViewController(IEnumerable <UIComponentInfo> comSet, GenParams genParams, string tempPath) { var path = GetControllerPath(genParams.generatePath) + genParams.uiViewName + "Controller.cs"; var success = GenerateFile(path, false); if (success) { var replacements = BuildControllerReplacements(comSet, genParams); UpdateFileContent(path, tempPath, replacements); } }
public static void GenerateMonolessController(GenParams genParams) { var path = GetControllerPath(genParams.generatePath) + genParams.uiViewName + "Controller.cs";; var success = GenerateFile(path, false); if (!success) { return; } var replacements = BuildMonolessControllerReplacements(genParams); UpdateFileContent(path, CustomMonolessControllerTemplatePath, replacements); }
private static void GenerateAutoGenModule(GenParams genParams) { var path = GetModelPath(genParams.generatePath) + genParams.dataClassName + "MgrAutoGen.cs"; var success = GenerateFile(path, true); if (!success) { return; } var replacements = BuildModelReplacements(genParams); UpdateFileContent(path, AutoGenCustomModelTemplatePath, replacements); }
public static void GenerateNetMsg(GenParams genParams) { var path = GetModelPath(genParams.generatePath) + genParams.moduleName + "NetMsg.cs"; var success = GenerateFile(path, false); if (!success) { return; } var replacements = BuildNetMsgReplacements(genParams); UpdateFileContent(path, NetMsgTemplatePath, replacements); }
public static void GenerateHelper(GenParams genParams) { var path = GetModelPath(genParams.generatePath) + "/" + genParams.moduleName + "Helper.cs"; var success = GenerateFile(path, false); if (!success) { return; } var replacements = BuildProxyReplacements(genParams); UpdateFileContent(path, HelperTemplatePath, replacements); }
public static void GenerateProxy(GenParams genParams) { var path = genParams.generatePath + "/Proxy" + genParams.moduleName + ".cs"; var success = GenerateFile(path, false); if (!success) { return; } var replacements = BuildProxyReplacements(genParams); UpdateFileContent(path, ProxyTemplatePath, replacements); }
public static void GenerateModuleData(GenParams genParams) { var path = GetModelPath(genParams.generatePath) + genParams.dataClassName + ".cs"; var success = GenerateFile(path, false); if (!success) { return; } var replacements = BuildModelReplacements(genParams); UpdateFileContent(path, CustomModelDataTemplatePath, replacements); }
private static void GenerateCode( IEnumerable <UIComponentInfo> comSet , GenParams genParams , string name , PathType ty , bool isOverwrite , string tempPath) { var path = GetControllerPath(genParams.generatePath) + genParams.uiViewName + name; var success = GenerateFile(path, isOverwrite); if (!success) { return; } var replacements = BuildLogicReplacements(comSet, genParams); UpdateFileContent(path, tempPath, replacements); }
public bool ProduceCSharpCode(List <UIComponentInfo> componentList) { if (string.IsNullOrEmpty(_modulePath)) { _modulePath = EditorUtility.SaveFolderPanel("Please Select Module Directory To Save", VIEWCODE_GENERATED_PATH, ""); } if (string.IsNullOrEmpty(_modulePath)) { _modulePath = DefaultPath; } try { var name = UIPrefabRoot == null ? string.Empty : UIPrefabRoot.name; var genParams = new GenParams() { author = mAuthor, uiViewName = name, moduleName = mModuleName, generatePath = _modulePath, }; if (mgenerateView) { if (UIPrefabRoot == null) { ShowNotification(new GUIContent("请放入一个PrefabInstance")); return(false); } FRPCodeGeneratorHelper.GenerateUICodeAutoGen(componentList, genParams); var viewPath = _modulePath + "/View/" + genParams.uiViewName + "AutoGen.cs"; UpdatePateList(genParams.uiViewName, viewPath); } if (mGenerateController) { if (UIPrefabRoot == null) { ShowNotification(new GUIContent("请放入一个PrefabInstance")); return(false); } switch ((ControllerType)selectControllerType) { case ControllerType.IsFRPBaseViewController: FRPCodeGeneratorHelper.GenerateFRPControllerAutoGen(componentList, genParams); FRPCodeGeneratorHelper.GenerateFRPController(componentList, genParams); FRPCodeGeneratorHelper.GenerateFRPLogic(componentList, genParams); break; case ControllerType.IsMonoLessViewController: FRPCodeGeneratorHelper.GenerateMonolessController(genParams); FRPCodeGeneratorHelper.GenerateMonolessControllerAutoGen(componentList, genParams); break; case ControllerType.IsMonoViewController: FRPCodeGeneratorHelper.GenerateMonoViewControllerAutoGen(componentList, genParams); FRPCodeGeneratorHelper.GenerateMonoViewController(componentList, genParams); FRPCodeGeneratorHelper.GenerateLogic(componentList, genParams); break; default: throw new ArgumentOutOfRangeException(); } } if (mGenerateModel) { FRPCodeGeneratorHelper.GenerateModule(genParams); FRPCodeGeneratorHelper.GenerateModuleData(genParams); FRPCodeGeneratorHelper.GenerateProxy(genParams); } if (mGenerateNetMsg) { FRPCodeGeneratorHelper.GenerateNetMsg(genParams); } if (mgenerateHelper) { FRPCodeGeneratorHelper.GenerateHelper(genParams); } ShowNotification(new GUIContent("Success 生成C#代码完毕")); // Refresh assets. // AssetDatabase.Refresh (); } catch (System.Exception e) { Debug.Log("An error occurred while saving file: " + e); } return(true); }
public static void GenerateModule(GenParams genParams) { GenerateCustomModule(genParams); GenerateAutoGenModule(genParams); }
private static Dictionary <string, string> BuildViewAutoGenReplacements(IEnumerable <UIComponentInfo> comSet, GenParams genParams) { var result = new Dictionary <string, string>(); result.Add("$uiViewName$", genParams.uiViewName); var BindElemets = new StringBuilder(); var GameObjectBindingDecl = new StringBuilder(); foreach (var item in comSet) { if (GameObjectStr == item.comType) { GameObjectBindingDecl.AppendFormat("{0}public GameObject {1};\n", indent, item.memberName); BindElemets.AppendFormat("{0}{1} = root.FindGameObject(\"{2}\");\n", indent2, item.memberName, item.path); } else if (TransformStr == item.comType) { GameObjectBindingDecl.AppendFormat("{0}public {1} {2};\n", indent, item.comType, item.memberName); BindElemets.AppendFormat("{0}{1} = root.FindTrans(\"{2}\");\n", indent2, item.memberName, item.path); } else { GameObjectBindingDecl.AppendFormat("{0}public {1} {2};\n", indent, item.comType, item.memberName); BindElemets.AppendFormat("{0}{1} = root.FindScript<{2}>(\"{3}\");\n", indent2, item.memberName, item.comType, item.path); } } result.Add("$BindElemets$", BindElemets.ToString()); result.Add("$GameObjectBindingDecl$", GameObjectBindingDecl.ToString()); return(result); }
private static Dictionary <string, string> BuildControllerAutoGenReplacements(IEnumerable <UIComponentInfo> comSet, GenParams genParams) { var result = new Dictionary <string, string>(); result.Add("$uiViewName$", genParams.uiViewName); result.Add("$dataClassName$", genParams.dataClassName); var EventStreamDecl = new StringBuilder(); var CloseEventStream = new StringBuilder(); var CreateEventStream = new StringBuilder(); var ExposeEventStream = new StringBuilder(); foreach (var item in comSet) { if (item.comType != ButtonObjectStr) { continue; } EventStreamDecl.AppendFormat("{0} UniRx.IObservable<Unit> On{1}Click{2}\n", indent, item.memberName, getter); CreateEventStream.AppendFormat("{0}{1}Evt = View.{1}.AsObservable();\n", indent, item.memberName); CloseEventStream.AppendFormat("{0}{1}Evt = {1}Evt.CloseOnceNull();\n", indent2, item.memberName); ExposeEventStream.AppendFormat("{0}private Subject<Unit> {1}Evt;\n", indent, item.memberName); ExposeEventStream.AppendFormat("{0}public UniRx.IObservable<Unit> On{1}Click{2}\n", indent, item.memberName, "{"); ExposeEventStream.AppendFormat("{0}get {1} {2}Evt;{3}\n", indent2, "{return", item.memberName, "}"); ExposeEventStream.AppendFormat("{0}{1}\n", indent, "}\n"); } result.Add("$EventStreamDecl$", EventStreamDecl.ToString()); result.Add("$CreateEventStream$", CreateEventStream.ToString()); result.Add("$CloseEventStream$", CloseEventStream.ToString()); result.Add("$ExposeEventStream$", ExposeEventStream.ToString()); return(result); }
private static Dictionary <string, string> BuildLogicReplacements(IEnumerable <UIComponentInfo> comSet, GenParams genParams) { var result = new Dictionary <string, string>(); result.Add("$uiViewName$", genParams.uiViewName); result.Add("$dataClassName$", genParams.dataClassName); result.Add("$Author$", genParams.author); result.Add("$timeDecls$", System.DateTime.Now.ToString()); var subscribeEvts = new StringBuilder(); var reactiveImplements = new StringBuilder(); foreach (var item in comSet) { if (item.comType != ButtonObjectStr) { continue; } var funName = item.memberName + "Click"; subscribeEvts.AppendFormat("{0}_disposable.Add(ctrl.On{1}.Subscribe(_=>{1}()));\n", indent3, funName); reactiveImplements.AppendFormat("{0}private static void {1}()\n{2}{3}", indent2, funName, indent2 + "{\n", indent2 + "}\n"); } result.Add("$subscribeEvts$", subscribeEvts.ToString()); result.Add("$reactiveImplements$", reactiveImplements.ToString()); return(result); }
private static Dictionary <string, string> BuildControllerReplacements(IEnumerable <UIComponentInfo> comSet, GenParams genParams) { var result = new Dictionary <string, string>(); result.Add("$uiViewName$", genParams.uiViewName); result.Add("$dataClassName$", genParams.dataClassName); result.Add("$Author$", genParams.author); result.Add("$timeDecls$", System.DateTime.Now.ToString()); return(result); }
public static void GenerateMonolessControllerAutoGen(IEnumerable <UIComponentInfo> comSet, GenParams genParams) { var path = GetControllerPath(genParams.generatePath) + genParams.uiViewName + "ControllerAutoGen.cs"; var success = GenerateFile(path, true); if (!success) { return; } var replacements = BuildMonolessControllerAutoGenReplacements(comSet, genParams); UpdateFileContent(path, AutoGenMonolessControllerTemplatePath, replacements); }
public static void GenerateMonoViewController(List <UIComponentInfo> comSet, GenParams genParams) { GenerateViewController(comSet, genParams, CustomControllerTemplatePath); }
public static void GenerateFRPControllerAutoGen(IEnumerable <UIComponentInfo> comSet, GenParams genParams) { GenerateControllerAutoGen(comSet, genParams, AutoGenFRPBaseControllerTemplatePath); }
public static void GenerateFRPLogic(IEnumerable <UIComponentInfo> comSet, GenParams genParams) { GenerateCode(comSet, genParams, "Logic.cs", PathType.Controller, false, FRPLogicTemplatePath); }
public static void GenerateFRPController(IEnumerable <UIComponentInfo> comSet, GenParams genParams) { GenerateViewController(comSet, genParams, CustomFRPControllerTemplatePath); }