/
getDisplayName.ts
102 lines (97 loc) · 2.78 KB
/
getDisplayName.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
import { assertNever } from "@systemic-games/pixels-core-utils";
import { ActionType } from "./ActionType";
import { ConditionType } from "./ConditionType";
import { AnimationType } from "../animations/AnimationType";
/**
* @category Profile
*/
export interface NameAndOrder {
name: string;
order: number;
}
/**
* @category Profile
*/
export function getAnimationTypeDisplayName(
animType: AnimationType
): NameAndOrder | undefined {
switch (animType) {
case "none":
return;
case "simple":
return { name: "Simple Flashes", order: 0 };
case "rainbow":
return { name: "Colorful Rainbow", order: 1 };
case "keyframed":
return { name: "Colored Design", order: 3 };
case "gradientPattern":
return { name: "Mixed Design", order: 4 };
case "gradient":
return { name: "Simple Gradient", order: 2 };
case "noise":
return { name: "Noise", order: 5 };
case "normals":
return { name: "Normals", order: 6 };
case "sequence":
return { name: "Sequence", order: 7 };
case "cycle":
case "name":
throw new Error(
`getAnimationTypeDisplayName: unsupported animation type: ${animType}`
);
default:
assertNever(animType, `Unknown animation type: ${animType}`);
}
}
/**
* @category Profile
*/
export function getActionTypeDisplayName(
actionType: ActionType
): NameAndOrder | undefined {
switch (actionType) {
case "none":
return;
case "playAnimation":
return { name: "Trigger Pattern", order: 0 };
case "playAudioClip":
return { name: "Play Audio Clip", order: 1 };
case "makeWebRequest":
return { name: "Make Web Request", order: 2 };
case "speakText":
return { name: "Speak Text", order: 3 };
default:
assertNever(actionType, `Unknown action type: ${actionType}`);
}
}
/**
* @category Profile
*/
export function getConditionTypeDisplayName(
conditionType: ConditionType
): NameAndOrder | undefined {
switch (conditionType) {
case "none":
return;
case "helloGoodbye":
return { name: "Pixel wakes up / sleeps", order: 0 };
case "handling":
return { name: "Pixel is picked up", order: 1 };
case "rolling":
return { name: "Pixel is rolling", order: 2 };
case "faceCompare":
return { name: "Pixel roll is...", order: 3 };
case "crooked":
return { name: "Pixel is crooked", order: 4 };
case "connection":
return { name: "Bluetooth Event...", order: 5 };
case "battery":
return { name: "Battery Event...", order: 6 };
case "idle":
return { name: "Pixel is idle for...", order: 7 };
case "rolled":
return { name: "Pixel roll is one of...", order: 8 };
default:
assertNever(conditionType, `Unknown condition type: ${conditionType}`);
}
}