luban/src/Luban.Job.Cfg/Source/DataExporters/LuaExportor.cs

35 lines
1.0 KiB
C#

using Luban.Job.Cfg.Datas;
using Luban.Job.Cfg.DataSources;
using Luban.Job.Cfg.DataVisitors;
using Luban.Job.Cfg.Defs;
using System.Collections.Generic;
using System.Text;
namespace Luban.Job.Cfg.DataExporters
{
class LuaExportor
{
public static LuaExportor Ins { get; } = new LuaExportor();
public void ExportTableSingleton(DefTable t, Record record, StringBuilder result)
{
result.Append("return ").AppendLine();
result.Append(record.Data.Apply(ToLuaLiteralVisitor.Ins));
}
public void ExportTableMap(DefTable t, List<Record> records, StringBuilder s)
{
s.Append("return").AppendLine();
s.Append('{').AppendLine();
foreach (Record r in records)
{
DBean d = r.Data;
s.Append($"[{d.GetField(t.Index).Apply(ToLuaLiteralVisitor.Ins)}] = ");
s.Append(d.Apply(ToLuaLiteralVisitor.Ins));
s.Append(',').AppendLine();
}
s.Append('}');
}
}
}