private string getFieldTypeString(GameDataField field) { if (isPrimitiveFieldType(field)) { return(getPrimitiveFieldTypeString(field)); } else { return(getCompositeFieldTypeString(field)); } }
private string getFieldBuilder(GameDataField field) { StringBuilder fieldBuilder = new StringBuilder(); fieldBuilder .Append(JsonConvert.ToString(field.fieldName)) .Append(": ") .Append(getFieldValueBuilder(field)); return(fieldBuilder.ToString()); }
private string getCompositeFieldTypeString(GameDataField field) { StringBuilder compositeFieldTypeBuilder = new StringBuilder(); compositeFieldTypeBuilder .Append("vector") .Append("<") .Append(getFieldTypeString(field.innerField)) .Append(">"); return(compositeFieldTypeBuilder.ToString()); }
private string getFieldTypeString(GameDataField field, bool isRecall = false) { if (isPrimitiveFieldType(field)) { string fieldType = getPrimitiveFieldTypeString(field); return(types.Contains(fieldType) ? fieldType.ToLower().Replace("i18n", "int") : fieldType); } else { return(getCompositeFieldTypeString(field)); } }
private string getFieldString(GameDataField field) { StringBuilder fieldBuilder = new StringBuilder(); fieldBuilder .Append("public") .Append(" ") .Append(getFieldTypeString(field)) .Append(" ") .Append(getFieldNameString(field)); return(fieldBuilder.ToString()); }
internal void AddField(D2OReader reader) { GameDataField field = new GameDataField(reader); Fields.Add(field); }
private static bool isPrimitiveFieldType(GameDataField field) { return(field.innerField == null); }
private string getFieldNameString(GameDataField field) { return(field.fieldName); }
private string getPrimitiveFieldTypeString(GameDataField field) { return(field.fieldType > 0 ? classDefinitions[(int)field.fieldType].Name : field.fieldType.ToString()); }
private string getFieldValueBuilder(GameDataField field) { StringBuilder fieldValueBuilder = new StringBuilder(); switch (field.fieldType) { case GameDataTypeEnum.Vector: fieldValueBuilder.Append("["); int vectorLength = reader.ReadInt(); for (int i = 0; i < vectorLength; i++) { fieldValueBuilder .Append(getFieldValueBuilder(field.innerField)) .Append(writeCommaIfHasMore(vectorLength, i)); } fieldValueBuilder.Append("]"); break; case GameDataTypeEnum.Int: fieldValueBuilder.Append(reader.ReadInt()); break; case GameDataTypeEnum.UInt: fieldValueBuilder.Append(reader.ReadUInt()); break; case GameDataTypeEnum.I18N: fieldValueBuilder.Append(reader.ReadInt()); break; case GameDataTypeEnum.String: fieldValueBuilder.Append(JsonConvert.ToString(reader.ReadUtf8())); break; case GameDataTypeEnum.Bool: fieldValueBuilder.Append(JsonConvert.ToString(reader.ReadBool())); //in json bool is true/false not True/False break; case GameDataTypeEnum.Double: fieldValueBuilder.Append(JsonConvert.ToString(reader.ReadDouble())); //handling the "," vs "." problem of the culture specifics break; default: if (field.fieldType > 0) //if type is an object { int classId = reader.ReadInt(); if (classDefinitions.ContainsKey(classId)) { fieldValueBuilder.Append(getObjectBuilder(classId)); } } else { Console.WriteLine("Error: invalid type( {0} ) for field {1}", field.fieldType, field.fieldName); } break; } return(fieldValueBuilder.ToString()); }