-
-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathsettings.ts
88 lines (69 loc) · 2.11 KB
/
settings.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
const BENCH = "Benchwarmer.Bench";
const BIN = "Benchwarmer.Bin";
const QUEUETV = "Benchwarmer.QueueTV";
const BUILD = "Benchwarmer.BuildOnAllSlopedFootpaths";
const PRESERVE = "Benchwarmer.PreserveOtherAdditions";
const AS_YOU_GO = "Benchwarmer.BuildAsYouGo";
type Selections = {
bench: number;
bin: number;
queuetv: number;
};
export class Settings {
benches: LoadedObject[];
bins: LoadedObject[];
queuetvs: LoadedObject[];
constructor(all: LoadedObject[]) {
this.benches = all.filter((a) => a.identifier.includes("bench"));
this.bins = all.filter((a) => a.identifier.includes("litter"));
this.queuetvs = all.filter((a) => a.identifier.includes("qtv"));
}
get bench(): number {
return this.benches[this.selections.bench].index;
}
set bench(index: number) {
context.sharedStorage.set(BENCH, index);
}
get bin(): number {
return this.bins[this.selections.bin]?.index;
}
set bin(index: number) {
context.sharedStorage.set(BIN, index);
}
get queuetv(): number {
return this.queuetvs[this.selections.queuetv]?.index;
}
set queuetv(index: number) {
context.sharedStorage.set(QUEUETV, index);
}
get selections(): Selections {
const bench = context.sharedStorage.get(BENCH, 0);
const bin = context.sharedStorage.get(BIN, 0);
const queuetv = context.sharedStorage.get(QUEUETV, 0);
return { bench, bin, queuetv };
}
get buildBinsOnAllSlopedPaths(): boolean {
return context.sharedStorage.get(BUILD, false);
}
set buildBinsOnAllSlopedPaths(value: boolean) {
context.sharedStorage.set(BUILD, value);
}
get preserveOtherAdditions(): boolean {
return context.sharedStorage.get(PRESERVE, true);
}
set preserveOtherAdditions(value: boolean) {
context.sharedStorage.set(PRESERVE, value);
}
get configured(): boolean {
return this.bench !== null && this.bin !== null;
}
get queueTVConfigured(): boolean {
return this.queuetv !== null;
}
get asYouGo(): boolean {
return context.sharedStorage.get(AS_YOU_GO, false);
}
set asYouGo(value: boolean) {
context.sharedStorage.set(AS_YOU_GO, value);
}
}