internal void GenAllMessageProtos(string file, params string[] groups)
{
HashSet<string> expectGroups = new HashSet<string>(groups);
if (expectGroups.Count <= 0) {
expectGroups.Add(string.Empty);
}
try {
using (StreamWriter sw = new StreamWriter(file, true)) {
sw.WriteLine("//----------------------------------------------------------------------------");
sw.WriteLine("//!!!不要手动修改此文件,此文件由LogicDataGenerator按{0}生成!!!", m_DslFile);
sw.WriteLine("//----------------------------------------------------------------------------");
if (!string.IsNullOrEmpty(m_Package)) {
sw.WriteLine("package {0};", m_Package);
}
foreach (var enumTypePair in m_EnumTypes) {
string enumType = enumTypePair.Key;
EnumTypeDef enumTypeDef = enumTypePair.Value;
if (expectGroups.Contains(enumTypeDef.m_GroupName)) {
GenEnumTypeProto(enumTypeDef, 0, sw);
}
}
foreach (var messagePair in m_Messages) {
string message = messagePair.Key;
MessageDef messageDef = messagePair.Value;
if (expectGroups.Contains(messageDef.m_GroupName)) {
GenMessageProto(messageDef, 0, sw);
}
}
sw.Close();
}
} catch (Exception ex) {
Console.WriteLine(ex);
}
}