LogicDataGenerator.MessageDslParser.GenAllJsMessagesEnum C# (CSharp) Method

GenAllJsMessagesEnum() private method

private GenAllJsMessagesEnum ( string jsFile, string enumName ) : void
jsFile string
enumName string
return void
        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();
              }
        }

Usage Example

Esempio n. 1
0
 private static void GenClientLobbyMessage()
 {
     MessageDslParser parser = new MessageDslParser();
       parser.Init("ProtoFiles/LobbyMsg.dsl");
       parser.GenAllMessagesEnum("ProtoFiles/LobbyMsgEnum.cs", "LobbyMessageDefine", string.Empty);
       parser.GenAllJsMessagesEnum("ProtoFiles/LobbyMsgEnum.js", "LobbyMessageDefine", string.Empty);
       parser.GenAllMessageProtos("ProtoFiles/LobbyMsg.proto", string.Empty);
 }