/// <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 }; }
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; }