Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
SystemDrawingTypesConverters.cs
浏览该文件的文档.
1using System.Drawing;
2
3namespace Engine.Serialization {
5 [HumanReadableConverter(typeof(System.Drawing.Color))]
7 public string ConvertToString(object value) {
8 System.Drawing.Color color = (System.Drawing.Color)value;
9 return color.A != byte.MaxValue
10 ? HumanReadableConverter.ValuesListToString(',', color.A, color.R, color.G, color.B)
11 : HumanReadableConverter.ValuesListToString(',', color.R, color.G, color.B);
12 }
13
14 public object ConvertFromString(Type type, string data) {
15 data = data.Trim();
16 if (data.Length > 0) {
17 if (!char.IsDigit(data[0])
18 && data[0] != '-'
19 && data[0] != '+') {
20 return System.Drawing.Color.FromName(data);
21 }
22 byte[] array = HumanReadableConverter.ValuesListFromString<byte>(',', data);
23 if (array.Length == 3) {
24 return System.Drawing.Color.FromArgb(array[0], array[1], array[2]);
25 }
26 if (array.Length == 4) {
27 return System.Drawing.Color.FromArgb(array[0], array[1], array[2], array[3]);
28 }
29 }
30 throw new InvalidOperationException($"Cannot convert string \"{data}\" to a value of type {type.FullName}.");
31 }
32 }
33
34 [HumanReadableConverter(typeof(Point))]
36 public string ConvertToString(object value) {
37 Point point = (Point)value;
38 return HumanReadableConverter.ValuesListToString(',', point.X, point.Y);
39 }
40
41 public object ConvertFromString(Type type, string data) {
42 int[] array = HumanReadableConverter.ValuesListFromString<int>(',', data);
43 return array.Length == 2
44 ? (object)new Point(array[0], array[1])
45 : throw new InvalidOperationException($"Cannot convert string \"{data}\" to a value of type {type.FullName}.");
46 }
47 }
48
49 [HumanReadableConverter(typeof(PointF))]
51 public string ConvertToString(object value) {
52 PointF pointF = (PointF)value;
53 return HumanReadableConverter.ValuesListToString(',', pointF.X, pointF.Y);
54 }
55
56 public object ConvertFromString(Type type, string data) {
57 float[] array = HumanReadableConverter.ValuesListFromString<float>(',', data);
58 return array.Length == 2
59 ? (object)new PointF(array[0], array[1])
60 : throw new InvalidOperationException($"Cannot convert string \"{data}\" to a value of type {type.FullName}.");
61 }
62 }
63
64 [HumanReadableConverter(typeof(Size))]
66 public string ConvertToString(object value) {
67 Size size = (Size)value;
68 return HumanReadableConverter.ValuesListToString(',', size.Width, size.Height);
69 }
70
71 public object ConvertFromString(Type type, string data) {
72 int[] array = HumanReadableConverter.ValuesListFromString<int>(',', data);
73 return array.Length == 2
74 ? (object)new Size(array[0], array[1])
75 : throw new InvalidOperationException($"Cannot convert string \"{data}\" to a value of type {type.FullName}.");
76 }
77 }
78
79 [HumanReadableConverter(typeof(SizeF))]
81 public string ConvertToString(object value) {
82 SizeF sizeF = (SizeF)value;
83 return HumanReadableConverter.ValuesListToString(',', sizeF.Width, sizeF.Height);
84 }
85
86 public object ConvertFromString(Type type, string data) {
87 float[] array = HumanReadableConverter.ValuesListFromString<float>(',', data);
88 return array.Length == 2
89 ? (object)new SizeF(array[0], array[1])
90 : throw new InvalidOperationException($"Cannot convert string \"{data}\" to a value of type {type.FullName}.");
91 }
92 }
93
94 [HumanReadableConverter(typeof(System.Drawing.Rectangle))]
96 public string ConvertToString(object value) {
97 System.Drawing.Rectangle rectangle = (System.Drawing.Rectangle)value;
98 return HumanReadableConverter.ValuesListToString(',', rectangle.X, rectangle.Y, rectangle.Width, rectangle.Height);
99 }
100
101 public object ConvertFromString(Type type, string data) {
102 int[] array = HumanReadableConverter.ValuesListFromString<int>(',', data);
103 return array.Length == 4
104 ? (object)new System.Drawing.Rectangle(array[0], array[1], array[2], array[3])
105 : throw new InvalidOperationException($"Cannot convert string \"{data}\" to a value of type {type.FullName}.");
106 }
107 }
108
109 [HumanReadableConverter(typeof(RectangleF))]
111 public string ConvertToString(object value) {
112 RectangleF rectangleF = (RectangleF)value;
113 return HumanReadableConverter.ValuesListToString(',', rectangleF.X, rectangleF.Y, rectangleF.Width, rectangleF.Height);
114 }
115
116 public object ConvertFromString(Type type, string data) {
117 float[] array = HumanReadableConverter.ValuesListFromString<float>(',', data);
118 return array.Length == 4
119 ? (object)new RectangleF(array[0], array[1], array[2], array[3])
120 : throw new InvalidOperationException($"Cannot convert string \"{data}\" to a value of type {type.FullName}.");
121 }
122 }
123 }
124}