//===============生成lua的DBModel=====================
sbr.Clear();
sbr.Append("--数据访问\r\n");
sbr.AppendFormat("{0}DBModel = {{ }}\r\n", fileName);
sbr.Append("\r\n");
sbr.AppendFormat("local this = {0}DBModel;\r\n", fileName);
sbr.Append("\r\n");
sbr.AppendFormat("local {0}Table = {{ }}; --定义表格\r\n", fileName.ToLower());
sbr.Append("\r\n");
sbr.AppendFormat("function {0}DBModel.LoadList()\r\n", fileName);
sbr.Append(" GameInit.AddTotalLoadTableCount();\r\n");
sbr.AppendFormat(" CS.YouYou.GameEntry.Lua:LoadDataTable(\"{0}\", this.LoadFormMS);\r\n", fileName);
sbr.Append("end\r\n");
sbr.Append("\r\n");
sbr.AppendFormat("function {0}DBModel.LoadFormMS(ms)\r\n", fileName);
sbr.Append(" local rows = ms:ReadInt();\r\n");
sbr.Append(" ms:ReadInt();\r\n");
sbr.Append("\r\n");
sbr.Append(" for i = 0, rows, 1 do\r\n");
sbr.AppendFormat(" {0}Table[#{0}Table + 1] = {1}Entity.New(\r\n", fileName.ToLower(), fileName);
string str = "";
for (int i = 0; i < dataArr.GetLength(0); i++)
{
if (dataArr[i, 1].Equals("byte", StringComparison.CurrentCultureIgnoreCase))
{
str += string.Format(" ms:Read{1}(),\r\n", dataArr[i, 0], ChangeTypeName(dataArr[i, 1]));
}
else
{
str += string.Format(" ms:Read{1}(),\r\n", dataArr[i, 0], ChangeTypeName(dataArr[i, 1]));
}
}
str = str.TrimEnd(',', '\r', '\n');
sbr.AppendFormat("{0}\r\n", str);
sbr.Append(" );\r\n");
sbr.Append(" end\r\n");
sbr.Append(" GameInit.LoadOneTableComplete();\r\n");
sbr.Append("end\r\n");
sbr.Append("\r\n");
sbr.AppendFormat("function {0}DBModel.GetList()\r\n", fileName);
sbr.AppendFormat(" return {0}Table;\r\n", fileName.ToLower());
sbr.Append("end");
sbr.Append("\r\n");
sbr.Append("\r\n");
sbr.AppendFormat("function {0}DBModel.GetEntity(id)\r\n", fileName);
sbr.AppendFormat(" local ret = nil;\r\n");
sbr.AppendFormat(" for i = 1, #{0}Table, 1 do\r\n", fileName.ToLower());
sbr.AppendFormat(" if ({0}Table[i].Id == id) then\r\n", fileName.ToLower());
sbr.AppendFormat(" ret = {0}Table[i];\r\n", fileName.ToLower());
sbr.AppendFormat(" break;\r\n");
sbr.AppendFormat(" end\r\n");
sbr.AppendFormat(" end\r\n");
sbr.AppendFormat(" return ret;\r\n");
sbr.AppendFormat("end");
using (FileStream fs = new FileStream(string.Format("{0}/{1}DBModel.bytes", OutLuaFilePath, fileName), FileMode.Create))
{
using (StreamWriter sw = new StreamWriter(fs))
{
sw.Write(sbr.ToString());
}
}
--数据访问
ChapterDBModel = { }
local this = ChapterDBModel;
local chapterTable = { }; --定义表格
function ChapterDBModel.LoadList()
GameInit.AddTotalLoadTableCount();
--传入表名,
CS.YouYou.GameEntry.Lua:LoadDataTable("Chapter", this.LoadFormMS);
end
function ChapterDBModel.LoadFormMS(ms)
local rows = ms:ReadInt();
for i = 0, rows, 1 do
chapterTable[#chapterTable + 1] = ChapterEntity.New(
ms:ReadInt(),
ms:ReadUTF8String(),
ms:ReadInt(),
ms:ReadUTF8String(),
ms:ReadFloat(),
ms:ReadFloat()
);
end
GameInit.LoadOneTableComplete();
end
function ChapterDBModel.GetList()
return chapterTable;
end
function ChapterDBModel.GetEntity(id)
local ret = nil;
for i = 1, #chapterTable, 1 do
if (chapterTable[i].Id == id) then
ret = chapterTable[i];
break;
end
end
return ret;
end