public void WriteToJson(Newtonsoft.Json.JsonWriter writer) { writer.WriteStartObject(); writer.WritePropertyName("title_1"); writer.WriteValue(Title.Length > 0 ? Title[0] : ""); writer.WritePropertyName("title_2"); writer.WriteValue(Title.Length > 1 ? Title[1] : ""); writer.WritePropertyName("colour"); if (Color == null) { new RgbColor(255, 255, 255).WriteToJson(writer); } else { Color.WriteToJson(writer); } writer.WritePropertyName("weight"); writer.WriteValue(Weight); // Write descriptions for (int i = 0; i < Description.Length; i++) { writer.WritePropertyName("description_" + (i + 1)); writer.WriteValue(Description[i]); } for (int i = Description.Length; i < 10; i++) { writer.WritePropertyName("description_" + (i + 1)); writer.WriteValue(""); } writer.WritePropertyName("preview_scale"); writer.WriteValue(PreviewScale); // Write preview offset if not default if (PreviewOffset != NoOffset && (PreviewOffset != null && PreviewOffset.Length == 3)) { writer.WritePropertyName("preview_offset"); writer.WriteStartObject(); writer.WritePropertyName("x"); writer.WriteValue(PreviewOffset[0]); writer.WritePropertyName("y"); writer.WriteValue(PreviewOffset[1]); writer.WritePropertyName("z"); writer.WriteValue(PreviewOffset[2]); writer.WriteEndObject(); } writer.WriteEndObject(); }