123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.genCode = void 0;
- const csharp_1 = require("csharp");
- const CodeWriter_1 = require("./CodeWriter");
- function genCode(handler) {
- let settings = handler.project.GetSettings("Publish").codeGeneration;
- let codePkgName = handler.ToFilename(handler.pkg.name); //convert chinese to pinyin, remove special chars etc.
- handler.exportCodePath = handler.exportCodePath.replace(/\\/g, "/") + '/' + codePkgName;
- let exportCodePath = handler.exportCodePath
- let namespaceName = codePkgName;
- let isMonoGame = handler.project.type == csharp_1.FairyEditor.ProjectType.MonoGame;
- if (settings.packageName)
- namespaceName = settings.packageName + '.' + namespaceName;
- //CollectClasses(stripeMemeber, stripeClass, fguiNamespace)
- let classes = handler.CollectClasses(settings.ignoreNoname, settings.ignoreNoname, null);
- handler.SetupCodeFolder(exportCodePath, "cs"); //check if target folder exists, and delete old files
- let getMemberByName = settings.getMemberByName;
- let classCnt = classes.Count;
- let writer = new CodeWriter_1.default();
- for (let i = 0; i < classCnt; i++) {
- let classInfo = classes.get_Item(i);
- let 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', classInfo.className);
- writer.startBlock();
- writer.writeln('public %s %s;', classInfo.superClassName, "target");
- let memberCnt = members.Count;
- for (let j = 0; j < memberCnt; j++) {
- let memberInfo = members.get_Item(j);
- writer.writeln('public %s %s;', memberInfo.type, memberInfo.varName);
- }
- writer.writeln('public const string URL = "ui://%s%s";', handler.pkg.id, classInfo.resId);
- writer.writeln('public const string PACKAGE_NAME = "%s";', handler.pkg.name);
- writer.writeln('public const string RES_NAME = "%s";', classInfo.resName);
- writer.writeln('private static %s _proxy;', classInfo.className);
- writer.writeln();
- writer.writeln('public static %s Create(GObject gObject = null)', classInfo.className);
- writer.startBlock();
- writer.writeln("var ui = new %s();", classInfo.className);
- writer.writeln("if(gObject == null)");
- writer.writeln('\tui.target = (%s)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);', classInfo.superClassName);
- writer.writeln("else");
- writer.writeln('\tui.target = (%s)gObject;', classInfo.superClassName);
- writer.writeln("ui.Init(ui.target);");
- writer.writeln("return ui;");
- writer.endBlock();
- writer.writeln();
- writer.writeln('public static %s Proxy(GObject gObject = null)', classInfo.className);
- writer.startBlock();
- writer.writeln("if(_proxy == null)");
- writer.startBlock();
- writer.writeln("_proxy = new %s();", classInfo.className);
- writer.endBlock();
- writer.writeln("var ui = _proxy;");
- writer.writeln("if(gObject == null)");
- writer.writeln('\tui.target = (%s)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);', classInfo.superClassName);
- writer.writeln("else");
- writer.writeln('\tui.target = (%s)gObject;', classInfo.superClassName);
- writer.writeln("ui.Init(ui.target);");
- writer.writeln("return ui;");
- writer.endBlock();
- writer.writeln();
- writer.writeln('public static void ProxyEnd()');
- writer.startBlock();
- writer.writeln("if (_proxy != null)");
- writer.startBlock();
- writer.writeln("_proxy.Dispose();");
- writer.endBlock();
- writer.endBlock();
- writer.writeln();
- writer.writeln('public static void ClearProxy()');
- writer.startBlock();
- writer.writeln("ProxyEnd();");
- writer.writeln("_proxy = null;");
- writer.endBlock();
- writer.writeln();
- writer.writeln('private void Init(GComponent comp)');
- writer.startBlock();
- for (let j = 0; j < memberCnt; j++) {
- let memberInfo = members.get_Item(j);
- if (memberInfo.group == 0) {
- if (getMemberByName) {
- if (memberInfo.type.indexOf("UI_") == 0) {
- writer.writeln('%s = (%s)%s.Create(comp.GetChild("%s"));', memberInfo.varName, memberInfo.type, memberInfo.type, memberInfo.name);
- }
- else
- writer.writeln('%s = (%s)comp.GetChild("%s");', memberInfo.varName, memberInfo.type, memberInfo.name);
- }
- else {
- if (memberInfo.type.indexOf("UI_") == 0) {
- writer.writeln('%s = (%s)%s.Create(comp.GetChildAt(%s));', memberInfo.varName, memberInfo.type, memberInfo.type, memberInfo.index);
- }
- else
- writer.writeln('%s = (%s)comp.GetChildAt(%s);', memberInfo.varName, memberInfo.type, memberInfo.index);
- }
- }
- else if (memberInfo.group == 1) {
- if (getMemberByName)
- writer.writeln('%s = comp.GetController("%s");', memberInfo.varName, memberInfo.name);
- else
- writer.writeln('%s = comp.GetControllerAt(%s);', memberInfo.varName, memberInfo.index);
- }
- else {
- if (getMemberByName)
- writer.writeln('%s = comp.GetTransition("%s");', memberInfo.varName, memberInfo.name);
- else
- writer.writeln('%s = comp.GetTransitionAt(%s);', memberInfo.varName, memberInfo.index);
- }
- }
- writer.endBlock();
- writer.writeln('public void Dispose(bool disposeTarget = false)');
- writer.startBlock();
- for (let j = 0; j < memberCnt; j++) {
- let memberInfo = members.get_Item(j);
- if (memberInfo.type.indexOf("UI_") == 0) {
- writer.writeln('%s.Dispose();', memberInfo.varName);
- }
- writer.writeln('%s = null;', memberInfo.varName);
- }
- writer.writeln('if(disposeTarget && target != null)');
- writer.startBlock();
- writer.writeln('target.RemoveFromParent();');
- writer.writeln('target.Dispose();');
- writer.endBlock();
- writer.writeln('target = null;');
- writer.endBlock();
- writer.endBlock(); //class
- writer.endBlock(); //namepsace
- writer.save(exportCodePath + '/' + classInfo.className + '.cs');
- }
- writer.reset();
- }
- exports.genCode = genCode;
|