修改ui样式
This commit is contained in:
@@ -5,6 +5,14 @@ import CodeWriter, { ICodeWriterConfig } from './CodeWriter';
|
||||
import genSetting, { ComponentData, MemberData } from './GenCodeSettings'
|
||||
import languageSetting, { LanguageComponentChildData } from './LanguageSettings'
|
||||
|
||||
// Tween 使用运行时 require,避免跨项目编译输出位置错乱;本地定义最小类型接口
|
||||
interface TweenComponentChildData { id: string; key: string; useable: number }
|
||||
// 注意:运行时从相对路径加载已编译的 JS(CustomAttributer/TweenSettings.js)
|
||||
declare const require: any;
|
||||
const tweenSetting: any = (function(){
|
||||
try { return require('../whoot-tween/TweenSettings').default || require('../whoot-tween/TweenSettings'); } catch { return null; }
|
||||
})();
|
||||
|
||||
const File = System.IO.File;
|
||||
const Directory = System.IO.Directory;
|
||||
const App = FairyEditor.App;
|
||||
@@ -137,6 +145,8 @@ function genCSCode(handler: FairyEditor.PublishHandler) {
|
||||
console.log("生成Binder,count="+componentClassNameArr.length)
|
||||
genBinder(codePkgName, componentClassNameArr);
|
||||
genLanguage();
|
||||
// 生成动效配置
|
||||
genTween();
|
||||
}
|
||||
|
||||
function getScriptName(className: string, comUrl: string) {
|
||||
@@ -587,4 +597,87 @@ function genLanguage() {
|
||||
writer.save(savePath);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 生成动效配置
|
||||
* 结构参考多语言生成:按包 -> 组件URL -> 子项id,写入 C# 配置类
|
||||
*/
|
||||
function genTween() {
|
||||
let binderName = 'UITweenConfig';
|
||||
|
||||
if (!tweenSetting || !tweenSetting.getAllPackage) {
|
||||
console.warn('UITweenConfig 生成被跳过:未找到 ../whoot-tween/TweenSettings.js 或接口不完整');
|
||||
return;
|
||||
}
|
||||
let tweenMap = tweenSetting.getAllPackage();
|
||||
|
||||
let codeConfig: WhootCodeWriterConfig = new WhootCodeWriterConfig();
|
||||
codeConfig.fileMark = "/**注册组件动效绑定。本脚本为自动生成,每次生成会覆盖!请勿手动修改,生成插件文档及项目地址:https://git.whoot.com/whoot-games/whoot.fguieditorplugin**/"
|
||||
|
||||
let writer = new CodeWriter(codeConfig);
|
||||
writer.reset();
|
||||
|
||||
writer.writeln('using System.Collections.Generic;');
|
||||
writer.writeln('using FairyGUI;');
|
||||
writer.writeln('using NBC;');
|
||||
writer.writeln();
|
||||
if (setNamespaceName) {
|
||||
writer.writeln('namespace %s', namespaceName);
|
||||
writer.startBlock();
|
||||
}
|
||||
writer.writeln('public class %s : UIComponentTweenPack', binderName);
|
||||
writer.startBlock();
|
||||
|
||||
writer.writeln('public %s()', binderName);
|
||||
writer.startBlock();
|
||||
writer.writeln('AddData();');
|
||||
writer.endBlock();
|
||||
|
||||
writer.writeln();
|
||||
writer.writeln('private void AddData()');
|
||||
writer.startBlock();
|
||||
|
||||
let keys = tweenMap.keys();
|
||||
for (let key of keys) {
|
||||
let pack = tweenMap.get(key);
|
||||
let tweenData = pack.components;
|
||||
|
||||
for (let comUrl in tweenData) {
|
||||
let comObj = tweenData[comUrl];
|
||||
if (comObj == undefined) continue;
|
||||
writer.writeln('// %s', key);
|
||||
writer.writeln('Add("%s", new UIComponentTween()', comUrl);
|
||||
writer.startBlock();
|
||||
for (let childId in comObj) {
|
||||
var cfg = comObj[childId] as TweenComponentChildData | any;
|
||||
let useable = cfg['useable'];
|
||||
let tweenKey = cfg['key'];
|
||||
if (useable != 1) continue;
|
||||
writer.writeln('{ "%s", "%s" },', childId, tweenKey);
|
||||
}
|
||||
writer.endBlock();
|
||||
writer.writeln(');');
|
||||
}
|
||||
|
||||
writer.writeln();
|
||||
}
|
||||
|
||||
writer.endBlock(); // AddData
|
||||
|
||||
writer.endBlock(); // class
|
||||
if (setNamespaceName) {
|
||||
writer.endBlock(); // namespace
|
||||
}
|
||||
|
||||
let fileName = binderName + '.cs'
|
||||
let savePath = exportCodePath + '/' + fileName
|
||||
console.log("生成 tween=", fileName)
|
||||
if (existScriptPaths.hasOwnProperty(fileName)) {
|
||||
savePath = existScriptPaths[fileName]
|
||||
}
|
||||
|
||||
writer.save(savePath);
|
||||
}
|
||||
|
||||
|
||||
export { genCSCode };
|
||||
Reference in New Issue
Block a user