-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathHCConfig.cs
More file actions
134 lines (111 loc) · 3.87 KB
/
HCConfig.cs
File metadata and controls
134 lines (111 loc) · 3.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
using RichHudFramework.IO;
using System.Xml.Serialization;
using VRageMath;
namespace HudCompassMod
{
[XmlRoot, XmlType(TypeName = "FlightHudSettings")]
public class HcConfig : ConfigRoot<HcConfig>
{
[XmlElement(ElementName = "CameraSettings")]
public CameraConfig Camera;
[XmlElement(ElementName = "ShipSettings")]
public ShipConfig Ship;
[XmlElement(ElementName = "ShipTickerSettings")]
public ShipTickerConfig ShipTicker;
[XmlElement(ElementName = "GlobalSettings")]
public GlobalConfig Global;
protected override HcConfig GetDefaults()
{
return new HcConfig
{
Camera = CameraConfig.Defaults,
Ship = ShipConfig.Defaults,
ShipTicker = ShipTickerConfig.Defaults,
Global = GlobalConfig.Defaults
};
}
}
public class CameraConfig : Config<CameraConfig>
{
[XmlElement(ElementName = "EnableCamera")]
public bool EnableCamera;
[XmlElement(ElementName = "CameraAzi")]
public Vector2D CameraAzi;
[XmlElement(ElementName = "CameraEle")]
public Vector2D CameraEle;
protected override CameraConfig GetDefaults()
{
return new CameraConfig
{
EnableCamera = true,
CameraAzi = new Vector2D(0, 0.91),
CameraEle = new Vector2D(-0.91, 0)
};
}
public override void Validate()
{
CameraAzi = Vector2D.Clamp(CameraAzi, new Vector2D(-1, -1), new Vector2D(1, 1));
CameraEle = Vector2D.Clamp(CameraEle, new Vector2D(-1, -1), new Vector2D(1, 1));
}
}
public class ShipConfig : Config<ShipConfig>
{
[XmlElement(ElementName = "ShipAzi")]
public Vector2D ShipAzi;
[XmlElement(ElementName = "ShipEle")]
public Vector2D ShipEle;
protected override ShipConfig GetDefaults()
{
return new ShipConfig
{
ShipAzi = new Vector2D(0, 0.95),
ShipEle = new Vector2D(-0.95, 0),
};
}
public override void Validate()
{
ShipAzi = Vector2D.Clamp(ShipAzi, new Vector2D(-1, -1), new Vector2D(1, 1));
ShipEle = Vector2D.Clamp(ShipEle, new Vector2D(-1, -1), new Vector2D(1, 1));
}
}
public class ShipTickerConfig : Config<ShipTickerConfig>
{
[XmlElement(ElementName = "ShipAziTicker")]
public Vector2D ShipAziTicker;
[XmlElement(ElementName = "ShipEleTicker")]
public Vector2D ShipEleTicker;
protected override ShipTickerConfig GetDefaults()
{
return new ShipTickerConfig
{
ShipAziTicker = new Vector2D(0, 0.99),
ShipEleTicker = new Vector2D(-0.99, 0)
};
}
public override void Validate()
{
ShipAziTicker = Vector2D.Clamp(ShipAziTicker, new Vector2D(-1, -1), new Vector2D(1, 1));
ShipEleTicker = Vector2D.Clamp(ShipEleTicker, new Vector2D(-1, -1), new Vector2D(1, 1));
}
}
public class GlobalConfig : Config<GlobalConfig>
{
[XmlElement(ElementName = "HudColor")]
public Color HudColor;
[XmlElement(ElementName = "HudScale")]
public double HudScale;
protected override GlobalConfig GetDefaults()
{
return new GlobalConfig
{
HudColor = Color.White,
HudScale = 1
};
}
public override void Validate()
{
HudScale = MathHelper.Clamp(HudScale, 0.1D, 10D);
//not sure what to do for the colour validation, im just going to leave it blank and hope
}
}
}