54 lines
1.2 KiB
JavaScript
54 lines
1.2 KiB
JavaScript
/* eslint-disable max-classes-per-file */
|
|
/** This describes all forms of settings used by Cookie Monster */
|
|
|
|
/** The basic setting class */
|
|
export class Setting {
|
|
constructor(type, group) {
|
|
this.type = type;
|
|
this.group = group;
|
|
}
|
|
}
|
|
|
|
/** The standard toggle setting class */
|
|
export class SettingStandard extends Setting {
|
|
constructor(type, group, label, desc, toggle, func = null) {
|
|
super(type, group);
|
|
this.label = label;
|
|
this.desc = desc;
|
|
this.toggle = toggle;
|
|
if (func) {
|
|
this.func = func;
|
|
}
|
|
}
|
|
}
|
|
/** The colour picker setting class */
|
|
export class SettingColours extends Setting {
|
|
constructor(type, group, desc) {
|
|
super(type, group);
|
|
this.desc = desc;
|
|
}
|
|
}
|
|
|
|
/** The volume level setting class */
|
|
export class SettingVolume extends Setting {
|
|
constructor(type, group, label, desc) {
|
|
super(type, group);
|
|
this.label = label;
|
|
this.desc = desc;
|
|
for (let i = 0; i < 101; i++) {
|
|
this.label[i] = `${i}%`;
|
|
}
|
|
}
|
|
}
|
|
|
|
/** The number input setting class */
|
|
export class SettingInputNumber extends Setting {
|
|
constructor(type, group, label, desc, min, max) {
|
|
super(type, group);
|
|
this.label = label;
|
|
this.desc = desc;
|
|
this.min = min;
|
|
this.max = max;
|
|
}
|
|
}
|