【调整】调整cfg typescript有多种输出类型,解决每种类型引入 ByteBuf类及Bright类的方式不一样的问题。
parent
6a43f7af6f
commit
00de219e16
|
|
@ -36,7 +36,7 @@ namespace Luban.Job.Cfg.Generate
|
||||||
|
|
||||||
export {{if x.is_abstract_type}} abstract {{end}} class {{name}} {{if parent_def_type}} extends {{x.parent}}{{end}} {
|
export {{if x.is_abstract_type}} abstract {{end}} class {{name}} {{if parent_def_type}} extends {{x.parent}}{{end}} {
|
||||||
{{~if x.is_abstract_type~}}
|
{{~if x.is_abstract_type~}}
|
||||||
static constructorFrom(_buf_: Bright.Serialization.ByteBuf): {{name}} {
|
static constructorFrom(_buf_: ByteBuf): {{name}} {
|
||||||
switch (_buf_.ReadInt()) {
|
switch (_buf_.ReadInt()) {
|
||||||
{{~ for child in x.hierarchy_not_abstract_children~}}
|
{{~ for child in x.hierarchy_not_abstract_children~}}
|
||||||
case {{child.id}}: return new {{child.full_name}}(_buf_)
|
case {{child.id}}: return new {{child.full_name}}(_buf_)
|
||||||
|
|
@ -46,7 +46,7 @@ export {{if x.is_abstract_type}} abstract {{end}} class {{name}} {{if parent_def
|
||||||
}
|
}
|
||||||
{{~end~}}
|
{{~end~}}
|
||||||
|
|
||||||
constructor(_buf_: Bright.Serialization.ByteBuf) {
|
constructor(_buf_: ByteBuf) {
|
||||||
{{~if parent_def_type~}}
|
{{~if parent_def_type~}}
|
||||||
super(_buf_)
|
super(_buf_)
|
||||||
{{~end~}}
|
{{~end~}}
|
||||||
|
|
@ -101,7 +101,7 @@ export class {{name}} {
|
||||||
private _dataMap: Map<{{ts_define_type key_type}}, {{ts_define_type value_type}}>
|
private _dataMap: Map<{{ts_define_type key_type}}, {{ts_define_type value_type}}>
|
||||||
private _dataList: {{ts_define_type value_type}}[]
|
private _dataList: {{ts_define_type value_type}}[]
|
||||||
|
|
||||||
constructor(_buf_: Bright.Serialization.ByteBuf) {
|
constructor(_buf_: ByteBuf) {
|
||||||
this._dataMap = new Map<{{ts_define_type key_type}}, {{ts_define_type value_type}}>()
|
this._dataMap = new Map<{{ts_define_type key_type}}, {{ts_define_type value_type}}>()
|
||||||
this._dataList = []
|
this._dataList = []
|
||||||
|
|
||||||
|
|
@ -128,7 +128,7 @@ export class {{name}} {
|
||||||
|
|
||||||
private _data: {{ts_define_type value_type}}
|
private _data: {{ts_define_type value_type}}
|
||||||
|
|
||||||
constructor(_buf_: Bright.Serialization.ByteBuf) {
|
constructor(_buf_: ByteBuf) {
|
||||||
if (_buf_.ReadInt() != 1) throw new Error('table mode=one, but size != 1')
|
if (_buf_.ReadInt() != 1) throw new Error('table mode=one, but size != 1')
|
||||||
{{ts_bin_constructor 'this._data' '_buf_' value_type}}
|
{{ts_bin_constructor 'this._data' '_buf_' value_type}}
|
||||||
}
|
}
|
||||||
|
|
@ -164,7 +164,7 @@ export class {{name}} {
|
||||||
|
|
||||||
}}
|
}}
|
||||||
|
|
||||||
type ByteBufLoader = (file: string) => Bright.Serialization.ByteBuf
|
type ByteBufLoader = (file: string) => ByteBuf
|
||||||
|
|
||||||
export class {{name}} {
|
export class {{name}} {
|
||||||
{{~ for table in tables ~}}
|
{{~ for table in tables ~}}
|
||||||
|
|
|
||||||
|
|
@ -76,8 +76,14 @@ namespace Luban.Job.Cfg
|
||||||
[Option("branch_input_data_dir", Required = false, HelpText = "branch input data root dir")]
|
[Option("branch_input_data_dir", Required = false, HelpText = "branch input data root dir")]
|
||||||
public string BranchInputDataDir { get; set; }
|
public string BranchInputDataDir { get; set; }
|
||||||
|
|
||||||
[Option("typescript_bytebuf_require_path", Required = false, HelpText = "bytebuf require path in typescript")]
|
[Option("typescript_bright_require_path", Required = false, HelpText = "bright require path in typescript")]
|
||||||
public string TypescriptByteBufRequirePath { get; set; }
|
public string TypescriptBrightRequirePath { get; set; }
|
||||||
|
|
||||||
|
[Option("use_puerts_bytebuf", Required = false, HelpText = "use puerts bytebuf class. default is false")]
|
||||||
|
public bool UsePuertsByteBuf { get; set; }
|
||||||
|
|
||||||
|
[Option("embed_bright_types", Required = false, HelpText = "use puerts bytebuf class. default is false")]
|
||||||
|
public bool EmbedBrightTypes { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
private ICodeRender CreateCodeRender(string genType)
|
private ICodeRender CreateCodeRender(string genType)
|
||||||
|
|
@ -173,6 +179,17 @@ namespace Luban.Job.Cfg
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!options.UsePuertsByteBuf && string.IsNullOrWhiteSpace(options.TypescriptBrightRequirePath))
|
||||||
|
{
|
||||||
|
errMsg = $"while use_puerts_bytebuf is false, should provide option --typescript_bright_require_path";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!options.EmbedBrightTypes && string.IsNullOrWhiteSpace(options.TypescriptBrightRequirePath))
|
||||||
|
{
|
||||||
|
errMsg = $"while embed_bright_types is false, should provide option --typescript_bright_require_path";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -423,112 +440,49 @@ namespace {ass.TopModule}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case "code_typescript_bin":
|
||||||
case "code_typescript_json":
|
case "code_typescript_json":
|
||||||
{
|
{
|
||||||
var render = new TypeScriptJsonCodeRender();
|
bool isGenBinary = genType.EndsWith("bin");
|
||||||
|
CodeRenderBase render = isGenBinary ? new TypeScriptBinCodeRender() : new TypeScriptJsonCodeRender();
|
||||||
|
var brightRequirePath = args.TypescriptBrightRequirePath;
|
||||||
tasks.Add(Task.Run(() =>
|
tasks.Add(Task.Run(() =>
|
||||||
{
|
{
|
||||||
var fileContent = new List<string>
|
var fileContent = new List<string>();
|
||||||
|
if (isGenBinary)
|
||||||
{
|
{
|
||||||
@$"
|
if (args.UsePuertsByteBuf)
|
||||||
export namespace {ass.TopModule} {{
|
{
|
||||||
",
|
fileContent.Add(TypescriptBrightTypeTemplates.PuertsByteBufImports);
|
||||||
|
|
||||||
@"
|
|
||||||
export class Vector2 {
|
|
||||||
x: number
|
|
||||||
y: number
|
|
||||||
constructor(x: number, y: number) {
|
|
||||||
this.x = x
|
|
||||||
this.y = y
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
static from(_json_: any): Vector2 {
|
{
|
||||||
let x = _json_['x']
|
fileContent.Add(string.Format(TypescriptBrightTypeTemplates.BrightByteBufImportsFormat, brightRequirePath));
|
||||||
let y = _json_['y']
|
|
||||||
if (x == null || y == null) {
|
|
||||||
throw new Error()
|
|
||||||
}
|
|
||||||
return new Vector2(x, y)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (args.EmbedBrightTypes)
|
||||||
export class Vector3 {
|
{
|
||||||
x: number
|
fileContent.Add(isGenBinary ? TypescriptBrightTypeTemplates.VectorTypesByteBuf : TypescriptBrightTypeTemplates.VectorTypesJson);
|
||||||
y: number
|
if (isGenBinary)
|
||||||
z: number
|
{
|
||||||
constructor(x: number, y: number, z: number) {
|
fileContent.Add(TypescriptBrightTypeTemplates.SerializeTypes);
|
||||||
this.x = x
|
}
|
||||||
this.y = y
|
}
|
||||||
this.z = z
|
else
|
||||||
|
{
|
||||||
|
if (isGenBinary)
|
||||||
|
{
|
||||||
|
fileContent.Add(string.Format(TypescriptBrightTypeTemplates.SerializeImportsFormat, brightRequirePath));
|
||||||
|
}
|
||||||
|
fileContent.Add(string.Format(TypescriptBrightTypeTemplates.VectorImportsFormat, brightRequirePath));
|
||||||
}
|
}
|
||||||
|
|
||||||
static from(_json_: any): Vector3 {
|
fileContent.Add(@$"export namespace {ass.TopModule} {{");
|
||||||
let x = _json_['x']
|
|
||||||
let y = _json_['y']
|
|
||||||
let z = _json_['z']
|
|
||||||
if (x == null || y == null || z == null) {
|
|
||||||
throw new Error()
|
|
||||||
}
|
|
||||||
return new Vector3(x, y, z)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export class Vector4 {
|
|
||||||
x: number
|
|
||||||
y: number
|
|
||||||
z: number
|
|
||||||
w: number
|
|
||||||
constructor(x: number, y: number, z: number, w: number) {
|
|
||||||
this.x = x
|
|
||||||
this.y = y
|
|
||||||
this.z = z
|
|
||||||
this.w = w
|
|
||||||
}
|
|
||||||
|
|
||||||
static from(_json_: any): Vector4 {
|
|
||||||
let x = _json_['x']
|
|
||||||
let y = _json_['y']
|
|
||||||
let z = _json_['z']
|
|
||||||
let w = _json_['w']
|
|
||||||
if (x == null || y == null || z == null || w == null) {
|
|
||||||
throw new Error()
|
|
||||||
}
|
|
||||||
return new Vector4(x, y, z, w)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
"
|
|
||||||
};
|
|
||||||
|
|
||||||
foreach (var type in exportTypes)
|
foreach (var type in exportTypes)
|
||||||
{
|
{
|
||||||
if (type is DefEnum e)
|
fileContent.Add(render.RenderAny(type));
|
||||||
{
|
|
||||||
fileContent.Add(render.Render(e));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var type in exportTypes)
|
|
||||||
{
|
|
||||||
if (type is DefConst c)
|
|
||||||
{
|
|
||||||
fileContent.Add(render.Render(c));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var type in exportTypes)
|
|
||||||
{
|
|
||||||
if (type is DefBean e)
|
|
||||||
{
|
|
||||||
fileContent.Add(render.Render(e));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var type in exportTables)
|
|
||||||
{
|
|
||||||
fileContent.Add(render.Render(type));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fileContent.Add(render.RenderService("Tables", ass.TopModule, exportTables));
|
fileContent.Add(render.RenderService("Tables", ass.TopModule, exportTables));
|
||||||
|
|
@ -543,119 +497,50 @@ export class Vector2 {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case "code_typescript_bin":
|
//case "code_typescript_bin":
|
||||||
{
|
//{
|
||||||
var render = new TypeScriptBinCodeRender();
|
// var render = new TypeScriptBinCodeRender();
|
||||||
var byteBufRequirePath = args.TypescriptByteBufRequirePath ?? "csharp";
|
// var brightRequirePath = args.TypescriptBrightRequirePath;
|
||||||
tasks.Add(Task.Run(() =>
|
// tasks.Add(Task.Run(() =>
|
||||||
{
|
// {
|
||||||
var fileContent = new List<string>
|
// var fileContent = new List<string>();
|
||||||
{
|
// if (args.UsePuertsByteBuf)
|
||||||
@$"
|
// {
|
||||||
import {{Bright}} from '{byteBufRequirePath}'
|
// fileContent.Add(TypescriptBrightTypeTemplates.PuertsByteBufImports);
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// fileContent.Add(string.Format(TypescriptBrightTypeTemplates.BrightByteBufImportsFormat, brightRequirePath));
|
||||||
|
// }
|
||||||
|
// if (args.EmbedBrightTypes)
|
||||||
|
// {
|
||||||
|
// fileContent.Add(TypescriptBrightTypeTemplates.VectorTypes);
|
||||||
|
// fileContent.Add(TypescriptBrightTypeTemplates.SerializeTypes);
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// fileContent.Add(string.Format(TypescriptBrightTypeTemplates.SerializeImportsFormat, brightRequirePath));
|
||||||
|
// fileContent.Add(string.Format(TypescriptBrightTypeTemplates.VectorImportsFormat, brightRequirePath));
|
||||||
|
// }
|
||||||
|
|
||||||
export namespace {ass.TopModule} {{
|
// fileContent.Add(@$"export namespace {ass.TopModule} {{");
|
||||||
",
|
|
||||||
|
|
||||||
@"
|
// foreach (var type in exportTypes)
|
||||||
export class Vector2 {
|
// {
|
||||||
x: number
|
// fileContent.Add(render.RenderAny(type));
|
||||||
y: number
|
// }
|
||||||
constructor(x: number, y: number) {
|
|
||||||
this.x = x
|
|
||||||
this.y = y
|
|
||||||
}
|
|
||||||
|
|
||||||
static from(_buf_: Bright.Serialization.ByteBuf): Vector2 {
|
// fileContent.Add(render.RenderService("Tables", ass.TopModule, exportTables));
|
||||||
let x = _buf_.ReadFloat()
|
|
||||||
let y = _buf_.ReadFloat()
|
|
||||||
return new Vector2(x, y)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
// fileContent.Add("}"); // end of topmodule
|
||||||
|
|
||||||
export class Vector3 {
|
// var content = FileHeaderUtil.ConcatAutoGenerationHeader(string.Join('\n', fileContent), ELanguage.TYPESCRIPT);
|
||||||
x: number
|
// var file = "Types.ts";
|
||||||
y: number
|
// var md5 = CacheFileUtil.GenMd5AndAddCache(file, content);
|
||||||
z: number
|
// genCodeFilesInOutputCodeDir.Add(new FileInfo() { FilePath = file, MD5 = md5 });
|
||||||
constructor(x: number, y: number, z: number) {
|
// }));
|
||||||
this.x = x
|
// break;
|
||||||
this.y = y
|
//}
|
||||||
this.z = z
|
|
||||||
}
|
|
||||||
|
|
||||||
static from(_buf_: Bright.Serialization.ByteBuf): Vector3 {
|
|
||||||
let x = _buf_.ReadFloat()
|
|
||||||
let y = _buf_.ReadFloat()
|
|
||||||
let z = _buf_.ReadFloat()
|
|
||||||
return new Vector3(x, y, z)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export class Vector4 {
|
|
||||||
x: number
|
|
||||||
y: number
|
|
||||||
z: number
|
|
||||||
w: number
|
|
||||||
constructor(x: number, y: number, z: number, w: number) {
|
|
||||||
this.x = x
|
|
||||||
this.y = y
|
|
||||||
this.z = z
|
|
||||||
this.w = w
|
|
||||||
}
|
|
||||||
|
|
||||||
static from(_buf_: Bright.Serialization.ByteBuf): Vector4 {
|
|
||||||
let x = _buf_.ReadFloat()
|
|
||||||
let y = _buf_.ReadFloat()
|
|
||||||
let z = _buf_.ReadFloat()
|
|
||||||
let w = _buf_.ReadFloat()
|
|
||||||
return new Vector4(x, y, z, w)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
"
|
|
||||||
};
|
|
||||||
|
|
||||||
foreach (var type in exportTypes)
|
|
||||||
{
|
|
||||||
if (type is DefEnum e)
|
|
||||||
{
|
|
||||||
fileContent.Add(render.Render(e));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var type in exportTypes)
|
|
||||||
{
|
|
||||||
if (type is DefConst c)
|
|
||||||
{
|
|
||||||
fileContent.Add(render.Render(c));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var type in exportTypes)
|
|
||||||
{
|
|
||||||
if (type is DefBean e)
|
|
||||||
{
|
|
||||||
fileContent.Add(render.Render(e));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var type in exportTables)
|
|
||||||
{
|
|
||||||
fileContent.Add(render.Render(type));
|
|
||||||
}
|
|
||||||
|
|
||||||
fileContent.Add(render.RenderService("Tables", ass.TopModule, exportTables));
|
|
||||||
|
|
||||||
fileContent.Add("}"); // end of topmodule
|
|
||||||
|
|
||||||
var content = FileHeaderUtil.ConcatAutoGenerationHeader(string.Join('\n', fileContent), ELanguage.TYPESCRIPT);
|
|
||||||
var file = "Types.ts";
|
|
||||||
var md5 = CacheFileUtil.GenMd5AndAddCache(file, content);
|
|
||||||
genCodeFilesInOutputCodeDir.Add(new FileInfo() { FilePath = file, MD5 = md5 });
|
|
||||||
}));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case "code_python27_json":
|
case "code_python27_json":
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -133,17 +133,17 @@ namespace Luban.Job.Cfg.TypeVisitors
|
||||||
|
|
||||||
public string Accept(TVector2 type, string jsonVarName, string fieldName)
|
public string Accept(TVector2 type, string jsonVarName, string fieldName)
|
||||||
{
|
{
|
||||||
return $"{fieldName} = Vector2.from({jsonVarName})";
|
return $"{fieldName} = Vector2.deserializeFromJson({jsonVarName})";
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Accept(TVector3 type, string jsonVarName, string fieldName)
|
public string Accept(TVector3 type, string jsonVarName, string fieldName)
|
||||||
{
|
{
|
||||||
return $"{fieldName} = Vector3.from({jsonVarName})";
|
return $"{fieldName} = Vector3.deserializeFromJson({jsonVarName})";
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Accept(TVector4 type, string jsonVarName, string fieldName)
|
public string Accept(TVector4 type, string jsonVarName, string fieldName)
|
||||||
{
|
{
|
||||||
return $"{fieldName} = Vector4.from({jsonVarName})";
|
return $"{fieldName} = Vector4.deserializeFromJson({jsonVarName})";
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Accept(TDateTime type, string jsonVarName, string fieldName)
|
public string Accept(TDateTime type, string jsonVarName, string fieldName)
|
||||||
|
|
|
||||||
|
|
@ -133,12 +133,12 @@ namespace Luban.Job.Common.TypeVisitors
|
||||||
|
|
||||||
public string Accept(TSet type, string bufVarName, string fieldName)
|
public string Accept(TSet type, string bufVarName, string fieldName)
|
||||||
{
|
{
|
||||||
return $"{{ {fieldName} = new {type.Apply(TypescriptDefineTypeName.Ins)}(); for(let i = 0, n = {bufVarName}.ReadSize() ; i < n ; i++) {{ let _e:{type.ElementType.Apply(TypescriptDefineTypeName.Ins)};{type.ElementType.Apply(this, bufVarName, "_e")} {fieldName}.add(_e);}}}}";
|
return $"{{ {fieldName} = new {type.Apply(TypescriptDefineTypeName.Ins)}(); for(let i = 0, n = {bufVarName}.ReadSize() ; i < n ; i++) {{ let _e:{type.ElementType.Apply(TypescriptDefineTypeName.Ins)};{type.ElementType.Apply(this, bufVarName, "_e")}; {fieldName}.add(_e);}}}}";
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Accept(TMap type, string bufVarName, string fieldName)
|
public string Accept(TMap type, string bufVarName, string fieldName)
|
||||||
{
|
{
|
||||||
return $"{{ {fieldName} = new {type.Apply(TypescriptDefineTypeName.Ins)}(); for(let i = 0, n = {bufVarName}.ReadSize() ; i < n ; i++) {{ let _k:{type.KeyType.Apply(TypescriptDefineTypeName.Ins)}; {type.KeyType.Apply(this, bufVarName, "_k")}; let _v:{type.ValueType.Apply(TypescriptDefineTypeName.Ins)}; {type.ValueType.Apply(this, bufVarName, "_v")} {fieldName}.set(_k, _v); }} }}";
|
return $"{{ {fieldName} = new {type.Apply(TypescriptDefineTypeName.Ins)}(); for(let i = 0, n = {bufVarName}.ReadSize() ; i < n ; i++) {{ let _k:{type.KeyType.Apply(TypescriptDefineTypeName.Ins)}; {type.KeyType.Apply(this, bufVarName, "_k")}; let _v:{type.ValueType.Apply(TypescriptDefineTypeName.Ins)}; {type.ValueType.Apply(this, bufVarName, "_v")}; {fieldName}.set(_k, _v); }} }}";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,76 @@ export abstract class Protocol implements ISerializable {
|
||||||
}
|
}
|
||||||
";
|
";
|
||||||
|
|
||||||
public const string VectorTypes = @"
|
public const string VectorTypesJson = @"
|
||||||
|
|
||||||
|
export class Vector2 {
|
||||||
|
static deserializeFromJson(json: any): Vector2 {
|
||||||
|
let x = json['x']
|
||||||
|
let y = json['y']
|
||||||
|
if (x == null || y == null) {
|
||||||
|
throw new Error()
|
||||||
|
}
|
||||||
|
return new Vector2(x, y)
|
||||||
|
}
|
||||||
|
|
||||||
|
x: number
|
||||||
|
y: number
|
||||||
|
constructor(x: number = 0, y: number = 0) {
|
||||||
|
this.x = x
|
||||||
|
this.y = y
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Vector3 {
|
||||||
|
static deserializeFromJson(json: any): Vector3 {
|
||||||
|
let x = json['x']
|
||||||
|
let y = json['y']
|
||||||
|
let z = json['z']
|
||||||
|
if (x == null || y == null || z == null) {
|
||||||
|
throw new Error()
|
||||||
|
}
|
||||||
|
return new Vector3(x, y, z)
|
||||||
|
}
|
||||||
|
|
||||||
|
x: number
|
||||||
|
y: number
|
||||||
|
z: number
|
||||||
|
|
||||||
|
constructor(x: number = 0, y: number = 0, z: number = 0) {
|
||||||
|
this.x = x
|
||||||
|
this.y = y
|
||||||
|
this.z = z
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Vector4 {
|
||||||
|
static deserializeFromJson(json: any): Vector4 {
|
||||||
|
let x = json['x']
|
||||||
|
let y = json['y']
|
||||||
|
let z = json['z']
|
||||||
|
let w = json['w']
|
||||||
|
if (x == null || y == null || z == null || w == null) {
|
||||||
|
throw new Error()
|
||||||
|
}
|
||||||
|
return new Vector4(x, y, z, w)
|
||||||
|
}
|
||||||
|
|
||||||
|
x: number
|
||||||
|
y: number
|
||||||
|
z: number
|
||||||
|
w: number
|
||||||
|
|
||||||
|
constructor(x: number = 0, y: number = 0, z: number = 0, w: number = 0) {
|
||||||
|
this.x = x
|
||||||
|
this.y = y
|
||||||
|
this.z = z
|
||||||
|
this.w = w
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
";
|
||||||
|
|
||||||
|
public const string VectorTypesByteBuf = @"
|
||||||
|
|
||||||
export class Vector2 implements ISerializable {
|
export class Vector2 implements ISerializable {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -186,7 +186,7 @@ namespace Luban.Job.Proto
|
||||||
}
|
}
|
||||||
if (args.EmbedBrightTypes)
|
if (args.EmbedBrightTypes)
|
||||||
{
|
{
|
||||||
fileContent.Add(TypescriptBrightTypeTemplates.VectorTypes);
|
fileContent.Add(TypescriptBrightTypeTemplates.VectorTypesByteBuf);
|
||||||
fileContent.Add(TypescriptBrightTypeTemplates.SerializeTypes);
|
fileContent.Add(TypescriptBrightTypeTemplates.SerializeTypes);
|
||||||
fileContent.Add(TypescriptBrightTypeTemplates.ProtoTypes);
|
fileContent.Add(TypescriptBrightTypeTemplates.ProtoTypes);
|
||||||
}
|
}
|
||||||
|
|
@ -197,9 +197,7 @@ namespace Luban.Job.Proto
|
||||||
fileContent.Add(string.Format(TypescriptBrightTypeTemplates.VectorImportsFormat, brightRequirePath));
|
fileContent.Add(string.Format(TypescriptBrightTypeTemplates.VectorImportsFormat, brightRequirePath));
|
||||||
}
|
}
|
||||||
|
|
||||||
fileContent.Add(@$"
|
fileContent.Add(@$"export namespace {ass.TopModule} {{");
|
||||||
export namespace {ass.TopModule} {{
|
|
||||||
");
|
|
||||||
|
|
||||||
foreach (var type in exportTypes)
|
foreach (var type in exportTypes)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue