7 using Vintagestory.API.MathTools;
11 //ProtocolBuffer does not actually INHERIT the base class without an extra attribute on it...'lovely, just freakin' lovely.'
13 [JsonConverter(typeof(BlockPosConverter))]
14 [ProtoContract(ImplicitFields = ImplicitFields.None)]
15 public class BlockPosJson : BlockPos
23 public BlockPosJson(BlockPos orig) : base(x: orig.X, y: orig.Y, z: orig.Z)
29 get { return base.X; }
30 set { base.X = value; }
35 get { return base.Y; }
36 set { base.Y = value; }
41 get { return base.Z; }
42 set { base.Z = value; }
47 /// How JSON object conversion should be done for special formatting
49 public class BlockPosConverter : JsonConverter
51 public override bool CanConvert(Type objectType)
53 return objectType == typeof(BlockPosJson);
56 public override bool CanRead {
63 public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
65 throw new NotImplementedException( );
68 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
71 BlockPosJson bpj = value as BlockPosJson;
73 writer.WriteStartArray( );
74 writer.WriteValue(bpj.X);
75 writer.WriteValue(bpj.Y);
76 writer.WriteValue(bpj.Z);
77 writer.WriteEndArray( );
79 else writer.WriteNull( );