internal void GenAllJsMessagesEnum(string jsFile, string enumName, params string[] groups)
{
HashSet<string> expectGroups = new HashSet<string>(groups);
if (expectGroups.Count <= 0) {
expectGroups.Add(string.Empty);
}
using (StreamWriter sw = new StreamWriter(jsFile, true)) {
sw.WriteLine("//----------------------------------------------------------------------------");
sw.WriteLine("//!!!不要手动修改此文件,此文件由LogicDataGenerator按{0}生成!!!", m_DslFile);
sw.WriteLine("//----------------------------------------------------------------------------");
sw.WriteLine("var {0} = {{", enumName);
bool first = true;
string specValue = string.Empty;
int index = 1;
foreach (string message in m_SortedMessageEnums) {
MessageDef messageDef;
if (m_Messages.TryGetValue(message, out messageDef)) {
if (!messageDef.m_DontGenEnum) {
if (!string.IsNullOrEmpty(messageDef.m_EnumValue)) {
sw.WriteLine("\t{0} : {1},", message, messageDef.m_EnumValue);
specValue = messageDef.m_EnumValue;
index = 1;
} else {
if (first || string.IsNullOrEmpty(specValue)) {
sw.WriteLine("\t{0} : {1},", message, index);
++index;
} else {
sw.WriteLine("\t{0} : {1} + {2},", message, specValue, index);
++index;
}
}
first = false;
}
}
}
sw.WriteLine("};");
sw.WriteLine();
if (!string.IsNullOrEmpty(m_Package)) {
sw.WriteLine("exports.{0} = {{", m_Package);
} else {
sw.WriteLine("exports = {{", m_Package);
}
sw.WriteLine();
sw.WriteLine("\t{0} : {0},", enumName);
sw.WriteLine();
sw.WriteLine("};");
sw.Close();
}
}