-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhud.d.ts
145 lines (122 loc) · 3.83 KB
/
hud.d.ts
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
135
136
137
138
139
140
141
142
143
144
145
type HudAxis = [c: number];
type HudPoint = [x: number, y: number] | { x: number; y: number };
type HudPath = HudPoint[];
type HudText = [text: string, x: number, y: number];
type HudRect =
| [x: number, y: number, width: number, height: number, rotation?: number]
| { x: number; y: number; width: number; height: number; rotation?: number };
type HudCircle = [x: number, y: number, r: number] | { x: number; y: number; r: number };
type HudShape = HudPoint | HudAxis | HudLineSegment | HudPath | HudText | HudRect | HudCircle;
type HudLineSegment =
| { x1: number; y1: number; x2: number; y2: number }
| { a: HudPoint; b: HudPoint }
| { from: HudPoint; to: HudPoint }
| { begin: HudPoint; end: HudPoint }
| { start: HudPoint; end: HudPoint }
| [HudPoint, HudPoint];
type HudTransform = {
// log shape to console
log: () => HudTransform;
// draw corners to view
corners: () => HudTransform;
points: () => HudTransform;
coords: () => HudTransform;
coordinates: () => HudTransform;
// draw angles to view
angles: () => HudTransform;
angle: () => HudTransform;
// draw edges/lines/dimensions to view
length: () => HudTransform;
lengths: () => HudTransform;
size: () => HudTransform;
edges: () => HudTransform;
dimensions: () => HudTransform;
// path
path: () => HudTransform;
// apply custom color to this shape
color: (color: string) => HudTransform;
// shortcuts to default colors
red: () => HudTransform;
orange: () => HudTransform;
amber: () => HudTransform;
yellow: () => HudTransform;
lime: () => HudTransform;
green: () => HudTransform;
emerald: () => HudTransform;
teal: () => HudTransform;
cyan: () => HudTransform;
sky: () => HudTransform;
blue: () => HudTransform;
indigo: () => HudTransform;
violet: () => HudTransform;
purple: () => HudTransform;
fuchsia: () => HudTransform;
pink: () => HudTransform;
rose: () => HudTransform;
white: () => HudTransform;
black: () => HudTransform;
silver: () => HudTransform;
};
type Hud = {
// line
(c: number): HudTransform;
// point
(x: number, y: number): HudTransform;
(point: HudPoint): HudTransform;
// path
(...points: { x: number; y: number }[]): HudTransform;
// text
(text: string, x: number, y: number): HudTransform;
// rect
(x: number, y: number, width: number, height: number, rotation?: number): HudTransform;
(rect: {
x: number;
y: number;
width: number;
height: number;
rotation?: number;
}): HudTransform;
// circle
(x: number, y: number, r: number): HudTransform;
(circle: { x: number; y: number; r: number }): HudTransform;
// line
(line: HudLineSegment): HudTransform;
// group
(shape: HudShape[]): HudTransform;
/**
* Clears the HUD
*/
clear: () => Hud;
/**
* Adjust opacity of HUD
* @param opacity - opacity between 0 and 1
*/
opacity: (opacity: number) => Hud;
/**
* Adjust translation of shapes
* @param x - x offset or vector
* @param y - y offset
*/
translate: (x: number | { x: number; y: number }, y?: number) => Hud;
/**
* Adjust scale of shapes
* @param scale - scale factor, minimum is 1
*/
scale: (scale: number) => Hud;
/**
* Adjust drawing line thickness
* @param strength - increase or decrease drawing strength, defaults to 2, minimum is 1
*/
strength: (opacity: number) => Hud;
/**
* Adjust color shapes
* @param color - set generic color, defaults to undefined
*/
color: (color: string) => Hud;
/**
* Adjust digits to round values to
* @param color - default to undefined
*/
precision: (amount: number) => Hud;
};
declare let hud: Hud;