Esempio n. 1
0
 /// <summary>
 ///     Parse a ClassInfo proto.
 /// </summary>
 /// <param name="proto">Class info proto</param>
 /// <returns>EntityClass instance</returns>
 public static EntityClass CreateWith(CSVCMsg_ClassInfo.class_t proto)
 {
     return new EntityClass
     {
         Id = (uint) proto.class_id,
         DataTableName = proto.data_table_name,
         ClassName = proto.class_name
     };
 }
Esempio n. 2
0
        private Events? Handle(CSVCMsg_ClassInfo message)
        {
            // Every single class is added here, CDOTA_Hero_... etc
            foreach (var clazz in message.classes)
            {
                var created = EntityClass.CreateWith(clazz);
                state.Classes.Add(created);
                state.ClassesByName.Add(created.ClassName, created);
            }

            foreach (var table in state.SendTables)
            {
                for (var i = 0; i < table.Properties.Count; ++i)
                {
                    var prop = table.Properties[i];

                    if (prop.Type == PropertyInfo.PropertyType.Array)
                    {
                        prop.ArrayProp = table.Properties[i - 1];
                    }
                }
            }

            state.FlatTables.AddRange(sendTableFlattener.Flatten(state.SendTables));
            return null;
        }