forked from kobber/curvebots
-
Notifications
You must be signed in to change notification settings - Fork 0
/
messages.d.ts
82 lines (67 loc) · 1.38 KB
/
messages.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
import * as Paper from "paper";
declare const enum TYPE {
curve = 'curve'
}
// Other types
type curveCommand = 1 | 0 | -1;
interface Direction {
x: number;
y: number;
rad: number;
deg: number;
}
// Worker messages
declare const enum WorkerMessageType {
READY = 'ready',
UPDATE = 'update',
PAINT = 'paint'
}
interface WorkerMessage_ready {
type: WorkerMessageType.READY
}
interface WorkerMessage_update {
type: WorkerMessageType.UPDATE,
id: number,
command: curveCommand
}
interface WorkerMessage_paint {
type: WorkerMessageType.PAINT,
paperState: string
}
type WorkerMessageData = WorkerMessage_ready | WorkerMessage_update | WorkerMessage_paint
interface WorkerMessage extends MessageEvent {
data: WorkerMessageData
}
// App messages
declare const enum AppMessageType {
INIT = 'init',
UPDATE = 'update'
}
interface Direction {
x: number,
y: number
}
interface Curve {
id: number,
pos: Paper.Point,
direction: Direction,
path: Paper.CompoundPath
}
interface AppMessage_init {
type: AppMessageType.INIT,
width: number,
height: number
playerId: number
}
interface AppMessage_update {
type: AppMessageType.UPDATE,
paperState: string,
curves: Array<Curve>,
pos: Paper.Point,
direction: Direction,
id: number
}
type AppMessageData = AppMessage_init | AppMessage_update;
interface AppMessage extends MessageEvent {
data: AppMessageData
}